Web Services Invocation Framework: Difference between revisions

Content deleted Content added
Cleaned up using AutoEd; jargon; redundancy; person
Description: fixed grammar
Line 49:
If the software one uses moves to a different server, the code breaks. The SOAP libraries one uses change - for example, when one moves from using Apache SOAP to Apache Axis – so code breaks because it uses a now deprecated SOAP API. Something that was previously accessible as an EJB is now available through messaging middleware via JMS - again, you need to fix the code that uses the software, or if one has an EJB which is offered as a SOAP service to external clients. Using SOAP results in a performance penalty as compared to accessing the EJB directly. SOAP is a baseline protocol for platform and language independence, but shouldn't java clients be able to take advantage of the fact that the software they are accessing is really an EJB? So your java customers pay a performance penalty since you have to use SOAP for to accommodate you non-java clients.
 
WSIF fixes these problems by allowing WSDL to be used as a normalized description of disparate software, and allows one to access this software in a manner that is independent of protocol or ___location. So whether it is SOAP, an EJB, JMS (or potentially .NET and other software frameworks), there is an API centered around WSDL which is used to access the functionality, which lets one write code that adapts to changes easily. The separation of the API from the actual protocol also means there is flexibility - you can switch protocols, ___location, etc. without having to even recompile your client code. So if your an externally available SOAP service becomes available as an EJB, one can switch to using RMI/IIOP by just changing the service description (the WSDL), without having to make any modification in applications that use the service. You can exploit WSDL's extensibility, its capability to offer multiple bindings for the same service, deciding on a binding at runtime, etc.
 
== Differences between WSIF and Axis ==