While SOA offers all the goodies of loose-coupling, it does require understanding of some basic concepts and formats.
SOAP and WSDL are the prime candidates (or culprits, depending on your view)
SOAP is just a protocol for passing information, important is WSDL.
A WSDL(Web Service Description Language) file defines the contract for web service. It is just like the menu in a restaurant or a table of contents of a book. It tells about what is offered.
Without wasting more time, lets just get to work – understanding WSDL.
A WSDL file may be provided to you or it can generally be accessed by appending “?wsdl” at the end of a web service address.
A WSDL file is best-read bottom-up. It consists of abstract as well as concrete parts. Important parts to focus are (concrete)-
- wsdl:service – this is the tag which tells you about the name of the service. Consider it synonymous with class file.
- wsdl:port or port – this tag tells about the place where you can connect to. There can be multiple ports. Each port will have an “address” element. The location attribute specifies the endpoint address of the service. Pay attention the binding attribute of the port.
- wsdl:binding – this tag refers to the actual implementation of the service. It’ll be further up in the wsdl document. It contains the methods of the service.
- wsdl:operation – this tag refers to the operations provided by the port. wsdl:operation will contain soap:operation or similar tag depending on the binding.
- wsdl:input and wsdl:output – specifies the form of input/output. This is because it can be either literal or encoded.
Now focus on the Type attribute of the wsdl:binding, and trace it up in the document. It leads you to portType element. portType is the abstract part of the wsdl.
- portType – is something like an Interface, in fact it is called as interface in wsdl 2.0. It’ll have a no. of operations.
- operation – specifies input and output message variable types. These types are specified further up in the wsdl.