Thursday, March 22, 2007

Problems With Web Services

In previous posts I'd been talking about why Web Services are not for Web and how Semantic Web Services promise to solve the problem etc etc. While I was reading about WS and listing down what are the problems we have with the technology, I came up with a list of issues which needs to be addressed any technology which claims to be superior to Web Services.

Web Services are one of the best means to share applications in today's world. It frees one from worries of Applications, Infrastructure, Platform, Language, Upgradation etc. But while they are great for ordinary use. They do have few issues which need to be resolved to enable them serve their purpose.
  1. Web Services today have problems like Automated Discovery, Choreography and Composition. Not to mention the security aspect this is not even thought about.
  2. Currently web services use the infrastructure provided by the World Wide Web (WWW) but they do not actually operate on web. The World Wide Web is built on the top of the Infrastructure provided by Internet. Web Services operated on Internet infrastructure but do not work on the core principles of World-Wide-Web.
  3. Web services also lack the capability of asynchronous communication or callback functionality.
  4. Web services are very rigid in terms of messaging syntax. They have a fixed format for input and output messages.
  5. There is no way to determine at execution time as which web services to pick up and which one serves the purpose. As web services do not work on Semantic structure (meaning) and they work on Syntactic structure. What this means is, they are very much discovered early or have a static binding. There is no dynamic discovery in Web Services
  6. Web services also lack the capability of asynchronous communication or callback functionality.
  7. Due to the Black-Box nature of Web-Services we often don’t know what is happening inside. By looking at a Web Service Description we can get information about the input parameters (message format) and Output Result (output message format) but we do not get any information about how it is doing what it is doing. In a nutshell the transparency is not there at all.
  8. While using Web Services we assume that the output we are getting as result is correct. Since we don’t know (rather most of the time we don’t care) about the internals we cannot really verify the steps (logics) used to derive the final result from the input parameters passed to it. So verifiability is another concern we have in regards to Web Services. That affects the reliability on the Web Services as well.
I guess I'd been very negative about Web Services here. But then it is a great way to take our existing system functionality to a next level. Next post on will start touching on what is required to have a Semantic Web Services.

Until Next Time... :)

2 comments:

jaybinks said...

It seems to me that people have unreasonable expectations of web-services.

web-services are simply remote procedure calls, your expected to have API documentation to know how they work, and know what functions you can call and YES.. you expect that the results are correct.

Also Callbacks CAN be implemented in web-services. but not simply.

there is nothing stopping Server A, making a web-service call to Server B... having Server B Process the request, and call a web-service on Server A to send the result through (and notify of completion)...

thats all a Callback is...

Anonymous said...

Your argument is excellent!! Unique points in the same, here one more website I like DBA Metrix Solutions.