What is unique about web services is that the requests are made across the Internet the same way you would make a request using your web browser – using the HyperText Transfer Protocol (HTTP). This means that an existing infrastructure can be used to set up a web service and make it instantly accessible to the world.
Another significant feature of Web Services is that they use XML to communicate. This creates a generic and well-defined way of passing information. Since XML is the Extensible Markup Language, you can format your message in any way you like. XML just provides the syntax, not the semantics of your message. To define the message further you need a Web Service Definition Language file or WSDL. The WSDL is both in XML and available from the web service as well. Putting your WSDL on line “publishes” the web service for all to see and use.
It isn’t enough to publish the web service and pass XML over HTTP, you need some sort of wrapper to encapsulate the message. The XML is wrapped with a SOAP message (in XML again) that gives some details about the message itself.
The real value of all of this is that it is operating system and language agnostic (Although in this article we’ll look mostly at Java). A web service can be written in .NET and consumed by a client written in Java. Since all the communication between the two parties is in XML, there is no need to translate from one format to another.
All of this does not come without a fee. XML must eventually be consumed and translated into a form that the consumer can understand. This “marshalling” and “unmarshalling” of XML to and from native tongue can take as much as 25% of the processing time of an application; a pretty hefty price to pay for system agnostic messaging.
Creating client code is non-trivial and there are many code generators which will do it for you. BEA’s WebLogic will create a client from a WSDL as well IBM’s WebSphere. Both create clients that require proprietary libraries to work. It is therefore best to use an open source solution that will allow you to migrate your client from one system to another without much work.
No comments:
Post a Comment