Title: SOAP
1SOAP
2Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
3Software as a service
providing unified software, which every customer will able to use
building IT-systems ultimately utility like electricity and gas to provide ability for everyone plug into it
deliver the SOA (Service Oriented Architecture) in the more natural way cause widespread acceptance of the Internet
4Private IT generating stations
Today organizations build their own home-grown, large and complex IT generating stations using existed technologies like J2EE, CORBA, DCOM and others.
5Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
6Service oriented architecture (SOA)
- Previously
- The way a service was created and delivered to
the customer was dictated by the available
technology - Our goal
- To start with the service we want to provide
and then work backwards into the technology
7Delivering SOA
Choosing the technology
Providing Service
- Natural way to provide SOA is to reverse above
trend
Backwards into the technology
Working under Service we want to provide
8Delivering SOA (2)
- The quote from IBM
- So it (SOA) basically boils down to distributed
computing with standards that tell us how to
invoke different applications as services in a
secure and reliable way and then how we can link
the different services together using
choreography to create business processes. And
then finally so that we can manage these services
so that ultimately we can manage and monitor our
business performance. - Resume while this is technologically valid, it
is missing the point of SOA we are focused on
the technology that enables SOA and not on SOA
itself.
9Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
10SOAP philosophy
- SOAP is stands by Simple Object Access Protocol
- SOAP is a simple and flexible messaging
framework for transferring information specified
in the form of an XML infoset between an initial
SOAP sender and ultimate SOAP receiver - SOAP does not define any application semantics
but defines the mechanism to express application
messaging semantics
11SOAP philosophy (2)
- More formal SOAP definition
- SOAP is a lightweight protocol intended for
exchanging structured information in a
decentralized, distributed environment. SOAP uses
XML technologies to define an extensible
messaging framework, which provides a message
construct that can be exchanged over a variety of
underlying protocols. The framework has been
designed to be independent of any particular
programming model and other implementation
specific semantics.
12SOAP terminology
- Node Enforcing the rules that govern the
exchange of SOAP messages. It accesses the
services provided by the underlying protocols
through one or more SOAP bindings - Role A SOAP nodes expected function in
message processing - Binding Formal set of rules for carrying a
SOAP message within or on the top of another
protocol (underlying protocol) for the purpose of
exchange - SOAP Application Software entity that
produces, consumes or otherwise acts upon SOAP
message in a manner conforming to the SOAP
processing model - Message path Set of SOAP nodes through which a
single SOAP message passes
13Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
14SOAP messages
- Standard SOAP message
- lt?xml version1.0?gt
- ltsoapEnvelope xmlnssoap"http//schemas.xmlsoap.
org/soap/envelope/gt - ltsoapHeadergt lt!-- optional --gt
- lt!-- header blocks go here... --gt
- lt/soapHeadergt
- ltsoapBodygt
- lt!-- payload or Fault element goes here--gt
- lt/soapBodygt
- lt/soapEnvelopegt
Envelope
Header Contains requirements specific to message optional
Body Information used by application (object data, error messages, return values) required
15SOAP request
Example of the SOAP message that represents a request to transfer funds between bank accounts
lt?xml version1.0?gt ltsoapEnvelope xmlnssoap"http//schemas.xmlsoap.org/soap/envelope/"gt ltsoapBodygt ltxTransferFunds xmlnsx"urnexamples-orgbanking"gt ltfromgt22-342439lt/fromgt lttogt98-283843lt/togt ltamountgt100.00lt/amountgt lt/xTransferFundsgt lt/soapBodygt lt/soapEnvelopegt
16SOAP response
Response
ltsoapEnvelope xmlnssoap"http//schemas.xmlsoap.org/soap/envelope/"gt ltsoapBodygt ltxTransferFundsResponse xmlnsx"urnexamples-orgbanking"gt ltbalancesgt ltaccountgt ltidgt22-342439lt/idgt ltbalancegt33.45lt/balancegt lt/accountgt ltaccountgt ltidgt98-283843lt/idgt ltbalancegt932.73lt/balancegt lt/accountgt lt/balancesgt lt/xTransferFundsResponsegt lt/soapBodygt lt/soapEnvelopegt
17SOAP fault codes
Name Meaning
VersionMismatch The processing party found an invalid namespace for the SOAP Envelope element
MustUnderstand An immediate child element of the SOAP Header element that was either not understood or not obeyed by the processing party contained a SOAP mustUnderstand attribute with a value of 1
Client The Client class of errors indicates that the message was incorrectly formed or didnt contain the appropriate information in order to succeed. It is generally an indication that the message should not be resent without change
Server The Server class of errors indicates that the message could not be processed for reasons not directly attributable to the contents of the message, but rather to the processing of the message. For example, processing could include communicating with an upstream processor, which didnt respond. The message may succeed if re-sent at a later point in time
18SOAP fault example
The following sample SOAP message contains Fault element that indicates an Insufficient Funds error occurred while processing the previous request
ltsoapEnvelope xmlnssoap"http//schemas.xmlsoap.org/soap/envelope/"gt ltsoapBodygt ltsoapFaultgt ltfaultcodegtsoapServerlt/faultcodegt ltfaultstringgtInsufficient fundslt/faultstringgt ltdetailgt ltxTransferError xmlnsx"urnexamples-orgbanking"gt ltsourceAccountgt22-342439lt/sourceAccountgt lttransferAmountgt100.00lt/transferAmountgt ltcurrentBalancegt89.23lt/currentBalancegt lt/xTransferErrorgt lt/detailgt lt/soapFaultgt lt/soapBodygt lt/soapEnvelopegt
19Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
20SOAP Header
- Header element, like the Body element, is a
generic container for control information - Elements placed in the Header are referred to
as header blocks - Header should contain information that
influences payload processing - Header is the right place to put some
credential information that helps control access
to the operation
21SOAP Header (example)
This example related to our previous example dedicated to bank accounts
ltsoapEnvelope xmlnssoap"http//schemas.xmlsoap.org/soap/envelope/"gt ltsoapHeadergt lt!-- security credentials --gt ltscredentials xmlnss"urnexamples-orgsecurity mustUnderstand1gt ltusernamegtdavelt/usernamegt ltpasswordgtevadlt/passwordgt lt/scredentialsgt lt/soapHeadergt ltsoapBodygt ltxTransferFunds xmlnsx"urnexamples-orgbanking"gt ltfromgt22-342439lt/fromgt lttogt98-283843lt/togt ltamountgt100.00lt/amountgt lt/xTransferFundsgt lt/soapBodygt lt/soapEnvelopegt
22Simple messaging scenario
- SOAP defines a processing model that outlines
rules for processing a SOAP message as it travels
from SOAP sender to a SOAP receiver
23Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
24Sophisticated SOAP messaging
- However, SOAP processing model allows for more
interesting architectures, which contains
multiple intermediary nodes
25Intermediaries nodes
while processing a message, a SOAP node assumes one or more roles that influence how SOAP header is processed roles are given unique names (in the form of URIs), so they can be identified during processing
ltsoapEnvelope xmlnssoap"http//schemas.xmlsoap.org/soap/envelope/"gt ltsoapHeadergt ltwsrppath xmlnswsrp"http//schemas.xmlsoap.org/rp" soapactor"http//schemas.xmlsoap.org/soap/actor/next" soapmustUnderstand"1" gt ...
26SOAP 1.2 Roles
SOAP role name Description
http//www.w3.org/2002/06/soap-envelope/role/next Each SOAP intermediary and the ultimate SOAP receiver MUST act in this role and MAY additionally assume zero or more other SOAP roles
http//www.w3.org/2002/06/soap-envelope/role/none SOAP nodes MUST NOT act in this role
http//www.w3.org/2002/06/soap-envelope/role/ultimateReceiver To establish itself as an ultimate SOAP receiver, a SOAP node MUST act in this role. SOAP intermediaries MUST NOT act in this role
- Remark SOAP 1.1 defines only one role next.
Every node must acts as next role
27Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
28Protocol Bindings
- each intermediary could choose to use different
communication protocol without affecting the SOAP
message - standard protocol binding is required to ensure
high level of interoperability across SOAP
applications and infrastructure - a concrete protocol binding defines exactly how
SOAP message should be transmitted with given
protocol - it defines the details of how SOAP fits within
the scope of another protocol, which probably has
its own messaging framework with a variety of
headers
29SOAP HTTP Bindings
- SOAP 1.1 specification only codifies a protocol
binding for HTTP, due to its wide use - Remark the context type header for both HTTP
request and response messages must be set to
txt/xml (application/soapxml in SOAP 1.2)
30Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
31Industry acceptance for SOAP
- developers have been able to download and use
the technology, rather than just read
specifications and industry analysis - SOAP changes both the way software will be
developed and the way industry rivals and
cooperating - many of the key industry software leaders have
announced their support for SOAP, including, HP,
SAP, Software AG, Sun Microsystems, and Oracle - Microsoft and IBM have lead to the release of
Web Services platform, with SOAP services being
the core technology in the initial releases - emergence of Web Services Definition Language
(WSDL) and Universal Description, Discovery and
Integration (UDDI)
32SOAP transport
- Most of SOAP servers currently use HTTP as the
transport protocol for the XML payload in SOAP
message cause HTTP satisfies a number of
requirements - Ubiquity
- Firewall friendliness
- Simplicity
- Scalability
- Readily capable of being secure
- There are a number of SOAP implementations that
support other transport layers, such as - HTTPS using SSL provides security
- SMTP enables asynchronous SOAP requests /
SOAP report - It can be expected that other transport
protocols, such as MSMQ or FTP, will be supported
eventually. IBM has an interesting for HTTPR to
provide a reliable transport layer for SOAP
messages
33SOAP extensibility
- SOAP defines a communication framework that
allows for such features to be added down the
road as layered extensions. Microsoft, IBM and
other software vendors working out a common suite
of SOAP extensions that will add many of these
features that most developers expect. SOAP
extensibility is key.
34Enterprise Application Integration (EAI)
- There has been considerable speculation that
current Enterprise Application Integration (EAI)
products will be made redundant by SOAP. - But, there is still a role for heavy-duty,
enterprise-grade EAI products that integrate with
more obscure legacy systems or provide unusually
high qualities of service. - Significant SOAP will encourage and enable a
whole new generation of EAI projects that were
not previously possible due to technical and cost
constraints.
35SOAP advantages and disadvantages
- Advantages
-
- Human readable XML
- Easy to debug
- SOAP runs over HTTP
- Firewalls not affected
- Services can be written in any language,
- platform or operating system
- Disadvantages
-
- S-L-O..-W
- XML produces a lot of overhead for small
messages - Web Services speed relies on Internet traffic
conditions - Not strictly-typed XML
36Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
37What about definition?
- Each software vendor defines Web Service in a
slightly different way - Gartner WS is loosely coupled software
components that interact with one another
dynamically via standard Internet technology. - Forrest Research WS is a formatted connection
between people, systems and applications, that
expose elements of business functionality as a
software service and create new business value. - Common feature WS is components that you can
use, re-use, mix, and match to enhance Internet
and Intranet applications.
38At the basic level
- Web Service is
- universal client/server architecture that
allows disparate systems to communicate with each
other without using proprietary client libraries - architecture that simplifies the development
process typically associated with client/server
applications by effectively eliminating code
dependencies between client and server - architecture where server interface
information is disclosed to the client via a
configuration file encoded in a standard format
(WSDL). Doing so allows the server to publish a
single file for all target client platforms
39Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
40Whats from WebServices.org?
Layer Example
Service Negotiation Treading partner agreement
Workflow, discovery and Register UDDI (Universal Description, Discovery Integration)
Service description language WSDL (Web Services Definition Language)
Messaging SOAP
Transport protocol HTTP, HTTPS, SMTP
Business Issues Management, Quality of service, Security, Open standards
41Interaction with Web Service
42Accessing publication
43Agenda
- ? Introduction
- Software as a service
- Starting with the service
- ? What is SOAP?
- SOAP how it is
- SOAP messaging framework
- Extensibility
- SOAP processing model
- Protocol binding
- ? Why SOAP?
- ? Web Services Solution
- What is the Web Service?
- Stack of layers
- Demo example
44Demo service main page
45Demo service method call page
46SOAP request
47SOAP response
48HTTP POST request and response
492 3 whats the answer?
50Simple VB script client
Something go wrong
Everything alright With your message
51Everything alright? But, wheres my answer?
Dont worry! Here is!!!
52Whats go wrong?
Heres the answer
53Thank you for your attention!!!
54Case studies
Mothers cakes
Little Red Riding Hood
How we can help Little Red Riding Hood reach the
grandma with mothers cakes?
Grandma