SOA and Web Services Primer
SOA and Web Services Primer
SOA and Web Services Primer
Introduction
SOA
Web Services
Web Service design methodology (on a very high level)
Bottom up method
Top down method
SOAP
The structure of SOAP messages: Envelope, Header and Body
WSDL
Structure of a WSDL and How to read a WSDL
The Message styles: RPC/Encoded, RPC/Literal, Document/Literal,
Wrapped and Bare
Comparison of the SOAP Engines Axis, Axis2, Metro and CXF
Key Terms
SOA
SOAP
WSDL
JBI
ESB
Service Oriented Architecture
Connections
Enhances reliability
Reduces hardware acquisition costs
Leverages existing development skills
Accelerates movement towards application
consolidation
Provides a data bridge between incompatible
technologies
Long-term benefits
The three most common styles of use are RPC, SOA and
REST.
RPC
Literal – Means that the type definitions literally follow an XML schema
definition.
Encoded – refers to the representation of application data in XML,
usually according to the SOAP encoding rules of the SOAP 1.1
specification. The rules to encode and interpret a SOAP body are in a
URL specified by the encodingStyle attribute.
In the binding you can find the transport option for the
operation.
Inside the operation element there is a soap:operation
element defining details for the SOAP protocol and its
transport. The soapAction is a reminiscent from the
past and is used with a fixed value of an empty string.
How to read a WSDL (Binding)
Because Web Services set the focus on message not parameters,
information about the transport of these messages can be found in the
wsdl:input and wsdl:output element.
A service may specify one or more faults as an alternative for the output.
How to read a WSDL (Binding)
Now we have crossed the border from the concrete details about the transport and
location of a service to its pure abstract description of its interface.
How to read a WSDL (PortType)
But this time the input and output describe the structure of
the message not transport specific options
How to read a WSDL (Message)
The message attribute of the input refers again up in the
WSDL document.
Routing — In a large enterprise with numerous applications and channels to connect them, a message may have to go
through several channels to reach its final destination. The route a message must follow may be so complex that the
original sender does not know what channel will get the message to the final receiver. Instead, the original sender
sends the message to a Message Router, an application component and filter in the pipes-and-filters architecture,
which will determine how to navigate the channel topology and direct the message to the final receiver, or at least to
the next router.
Transformation — Various applications may not agree on the format for the same conceptual data; the sender formats
the message one way, yet the receiver expects it to be formatted another way. To reconcile this, the message must
go through an intermediate filter, a Message Translator, that converts the message from one format to another.
Endpoints — An application does not have some built-in capability to interface with a messaging system. Rather, it must
contain a layer of code that knows both how the application works and how the messaging system works, bridging
the two so that they work together. This bridge code is a set of coordinated Message Endpoints that enable the
application to send and receive messages.
Enterprise Service Bus