Monday, March 22, 2004


Nothing/Everything is a Web Service

I've been on a bit of a rant lately to folks who complain that nothing is a Web service - my simple minded retort is everything is a Web service. 

What I mean by that is that nearly any executable/programmatic resource/component can be described using WSDL and, generally, though not necessarily, talked to using SOAP.  Some of these things are nicely standardized in the Java world with J2EE 1.4; others are provided by vendor/product extensions (e.g. JMS Web services are not standardized but most folks offer some solution in the space; database DML/SQL are not Web services but nearly every database vendor worth their salt gives you tooling to do these things via a Web service, nearly all proprietary platforms inevitably offer their "things" as Web services too etc).

This doesn't mean that when you build a Web service centric solution that every endpoint will be the ideal Web service.  Real life is messy.  Things like C programs, Forms applications, CICs, JCA and much more don't quite fit but more often than there are relatively painless ways to make them work (see the resolution in my Forms note as an example).  Further, there are interesting technologies like WSIF which enable WSDL descriptions of endpoints but then let clients bind using native protocols rather than packaging things up using SOAP (e.g. native bindings to JCA). 

But if your going in position when building a new Web service centric solution is that everything of interest can be normalized to a service with WSDL, then it shapes how you go about about solving the problem.  The cries of performance, reliability, transactions security and much more will inevitably come up (and all are clear issues to be dealt with) but starting from a "everything can be a Web service" gives a consistent context to shape your response and ultimate solution.

I think a common sentiment and it is just my turn to say the obvious.  I must be in my "everything is a nail because I have a hammer" mode which generally indicates too big of a problem is being solved.  I suppose we will see.



comment []
10:11:30 PM