WebServices:
Principles&Technology
Slide 4.1
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Mike P. Papazoglou
mikep@uvt.nl
Chapter 4
SOAP: Simple Object Access Protocol
Slide 4.2
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Topics
•• Inter application communicationInter application communication
•• SOAP as a messaging protocolSOAP as a messaging protocol
•• Structure of a SOAP messageStructure of a SOAP message
•• SOAP communication modelSOAP communication model
•• SOAP fault messageSOAP fault message
•• SOAP over HTTPSOAP over HTTP
•• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
Slide 4.3
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Inter-Application Communication
• Conventional distributed applications use distributed communication
technologies, e.g., CORBA, DCOM, Java/RMI, based on object RPC
(ORPC) protocols that attempted to marry object orientation and
network protocols.
– ORPC request is an identifier or symbolic name that the server could use to
locate the target object inside the server process.
• Weaknesses
– Both ends of the communication link would need to be implemented under
the same distributed object model (Java/RMI or CORBA/IIOP)
– Difficulty of getting these protocols to work over firewalls or proxy servers,
e.g, most firewalls are configured to allow hypertext transfer protocol
(HTTP) to pass across, but not IIOP.
• To address the problem of overcoming proprietary systems running on
heterogeneous infrastructures, Web services rely on SOAP, an XML-
based communication protocol for exchanging messages between
computers regardless of their operating systems, programming
environment or object model framework.
Slide 4.4
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Topics
•• Inter application communicationInter application communication
•• SOAP as a messaging protocolSOAP as a messaging protocol
•• Structure of a SOAP messageStructure of a SOAP message
•• SOAP communication modelSOAP communication model
•• SOAP fault messageSOAP fault message
•• SOAP over HTTPSOAP over HTTP
•• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
Slide 4.5
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
What is SOAP?
• SOAP is the standard messaging protocol used by Web services.
SOAP’s primary application is inter application communication. SOAP
codifies the use of XML as an encoding scheme for request and
response parameters using HTTP as a means for transport.
Service providerService requestor
Application object
(client)
Application object
(service provider)
SOAP-based
middleware
SOAP-based
middleware
SOAP messages
exchanged on top of,
HTTP, SMTP, or other
transport
Converts procedure calls to/from XML
messages sent through HTTP or other
protocols.
Slide 4.6
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
What is SOAP? (continued)
• SOAP covers the following four main areas:
– A message format for one-way communication describing
how a message can be packed into an XML document.
– A description of how a SOAP message should be
transported using HTTP (for Web-based interaction) or SMTP
(for e-mail-based interaction).
– A set of rules that must be followed when processing a
SOAP message and a simple classification of the entities
involved in processing a SOAP message.
– A set of conventions on how to turn an RPC call into a
SOAP message and back.
Slide 4.7
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
SOAP as a lightweight protocol
• SOAP is a lightweight protocol
that allows applications to pass
messages and data back and
forth between disparate systems
in a distributed environment
enabling remote method
invocation.
• By lightweight we mean that the
SOAP protocol possesses only
two fundamental properties. It
can:
– send and receive HTTP (or
other) transport protocol packets,
and
– process XML messages.
• This can be contrasted with the
heavyweight protocols such as
ORPC protocols.
Slide 4.8
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Distributed messaging using SOAP
Slide 4.9
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Topics
•• Inter application communicationInter application communication
•• SOAP as a messaging protocolSOAP as a messaging protocol
•• Structure of a SOAP messageStructure of a SOAP message
•• SOAP communication modelSOAP communication model
•• SOAP fault messageSOAP fault message
•• SOAP over HTTPSOAP over HTTP
•• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
Slide 4.10
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
SOAP messages
• SOAP is based on message exchanges.
• Messages are seen as envelopes where
the application encloses the data to be
sent.
• A SOAP message consists of an
<Envelope> element containing an
optional <Header> and a mandatory
<Body> element.
• The contents of these elements are
application defined and not a part of the
SOAP specification.
• A SOAP <Header> contains blocks of
information relevant to how the message is
to be processed. This helps pass
information in SOAP messages that is not
for the application but for the SOAP engine
• The SOAP <Body> is where the main end-
to-end information conveyed in a SOAP
message must be carried.
SOAP envelope
SOAP header
header block
SOAP body
body block
Slide 4.11
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
<env:Envelope
xmlns:env=“http://www.w3.org/2003/05/soap-envelope”
env:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
……
</env:Envelope>
<env:Envelope
xmlns:env=“http://www.w3.org/2003/05/soap-envelope” >
…
<env:Header>
<tx:transaction-id
xmlns:tx=”http://www.transaction.com/transaction”
env:mustUnderstand=”true”>
512
</tx:transaction-id>
<notary:token xmlns:notary=”http://www.notarization-services.com/token”
env:mustUnderstand=”true”>
GRAAL-5YF3
</notary:token>
</env:Header>
……………
</env:Envelope>
Example of SOAP envelope
Example of SOAP header
SOAP envelope and header
Slide 4.12
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
SOAP Intermediaries
• SOAP headers have been
designed in anticipation of
participation of other SOAP
processing nodes – called SOAP
intermediaries – along a
message's path from an initial
SOAP sender to an ultimate
SOAP receiver.
• A SOAP message travels along
the message path from a sender
to a receiver.
• All SOAP messages start with an
initial sender, which creates the
SOAP message, and end with an
ultimate receiver.
Slide 4.13
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope
xmlns:env=“http://www.w3.org/2003/05/soap-envelope”>
<env:Header>
<m:order
xmlns:m="http://www.plastics_supply.com/purchase-order"
env:role="http://www.w3.org/2003/05/soap-
envelope/role/next"
env:mustUnderstand="true">
<m:order-no >uuid:0411a2daa</m:order-no>
<m:date>2004-11-8</m:date>
</m:order>
<n:customer xmlns:n="http://www.supply.com/customers"
env:role="http://www.w3.org/2003/05/soap-
envelope/role/next"
env:mustUnderstand="true">
<n:name> Marvin Sanders </n:name>
</n:customer >
</env:Header>
<env:Body>
<-- Payload element goes here -->
</env:Body>
</env:Envelope>
Example of SOAP header with
message routing
The “next” role is one
that all SOAP nodes are
required to support;
By tagging each header
in this message with the
“next” role, this message
is saying that all SOAP
nodes (intermediaries
and the ultimate
receiver) MUST
understand and be able
to process the m:order
header and the
n:customer header.
Slide 4.14
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
The SOAP Body
• The SOAP body is the area of the SOAP message, where the
application specific XML data (payload) being exchanged in the
message is placed.
• The <Body> element must be present and is an immediate child of the
envelope. It may contain a number of child elements, called body
entries, but it may also be empty. The <Body> element contains either
of the following:
– Application-specific data: is the information that is exchanged with a Web
service. The SOAP <Body> is where the method call information and its
related arguments are encoded. It is where the response to a method call is
placed, and where error information can be stored.
– fault message: is used only when an error occurs.
• A SOAP message may carry either application-specific data or a fault,
but not both.
Slide 4.15
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Example SOAP Message
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope" >
<env:Header>
<t:transactionID
xmlns:t="http://intermediary.example.com/procurement"
env:role="http://www.w3.org/2002/06/soap-envelope/role/next"
env:mustUnderstand="true" >
57539
</t:transactionID>
</env:Header>
<env:Body>
<m:orderGoods
env:encodingStyle="http://www.w3.org/2002/06/soap-encoding"
xmlns:m="http://example.com/procurement">
<m:productItem>
<name>ACME Softener</name>
</m:productItem>
<m:quantity>
35
</m:quantity>
</m:orderGoods>
</env:Body>
</env:Envelope>
Header
Body
Blocks
Envelope
Slide 4.16
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Topics
•• Inter application communicationInter application communication
•• SOAP as a messaging protocolSOAP as a messaging protocol
•• Structure of a SOAP messageStructure of a SOAP message
•• SOAP communication modelSOAP communication model
•• SOAP fault messageSOAP fault message
•• SOAP over HTTPSOAP over HTTP
•• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
Slide 4.17
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
The SOAP Communication Model
• SOAP supports two possible communication styles:
– remote procedure call (RPC) and
– document (or message).
RPC-style interaction Document-style interaction
Slide 4.18
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
RPC-style SOAP Services
• A remote procedure call (RPC)-style Web service appears as a remote
object to a client application. The interaction between a client and an
RPC-style Web service centers around a service-specific interface.
Clients express their request as a method call with a set of arguments,
which returns a response containing a return value.
SOAP envelope
SOAP body
Method name
orderGoods
Input parameter 1
product item
Input parameter 2
quantity
SOAP envelope
SOAP body
Method return
Return value
order id
Slide 4.19
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
<env:Envelope
xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope”
xmlns:m="http://www.plastics_supply.com/product-prices">
<env:Header>
<tx:Transaction-id
xmlns:t=”http://www.transaction.com/transactions”
env:mustUnderstand='1'>
512
</tx:Transaction-id>
</env:Header>
<env:Body>
<m:GetProductPrice>
<product-id> 450R6OP </product-id >
</m:GetProductPrice >
</env:Body>
</env:Envelope>
<env:Envelope
xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope”
xmlns:m="http://www.plastics_supply.com/product-prices">
<env:Header>
<--! – Optional context information -->
</env:Header>
<env:Body>
<m:GetProductPriceResponse>
<product-price> 134.32 </product-price>
</m:GetProductPriceResponse>
</env:Body>
</env:Envelope>
Example of RPC-style SOAP body
Example of RPC-style SOAP response message
RPC-style web services
Slide 4.20
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Document (Message)-style SOAP Services
• In the document-style of messaging, the SOAP <Body> contains an
XML document fragment. The <Body> element reflects no explicit XML
structure.
• The SOAP run-time environment accepts the SOAP <Body> element
as it stands and hands it over to the application it is destined for
unchanged. There may or may not be a response associated with this
message.
SOAP envelope
SOAP body
PurchaseOrder
document
-product item
-quantity
SOAP envelope
SOAP body
Acknowledgement
document
-order id
Slide 4.21
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
<env:Envelope
xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope”>
<env:Header>
<tx:Transaction-id
xmlns:t=”http://www.transaction.com/transactions”
env:mustUnderstand='1'>
512
</env:Header>
<env:Body>
<po:PurchaseOrder oderDate=”2004-12-02”
xmlns:m="http://www.plastics_supply.com/POs">
<po:from>
<po:accountName> RightPlastics </po:accountName>
<po:accountNumber> PSC-0343-02 </po:accountNumber>
</po:from>
<po:to>
<po:supplierName> Plastic Supplies Inc. </po:supplierName>
<po:supplierAddress> Yara Valley Melbourne </po:supplierAddress>
</po:to>
<po:product>
<po:product-name> injection molder </po:product-name>
<po:product-model> G-100T </po:product-model>
<po:quantity> 2 </po:quantity>
</po:product>
</ po:PurchaseOrder >
</env:Body>
</env:Envelope>
Example of document-style SOAP body
Example of document-style SOAP body
Slide 4.22
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Topics
•• Inter application communicationInter application communication
•• SOAP as a messaging protocolSOAP as a messaging protocol
•• Structure of a SOAP messageStructure of a SOAP message
•• SOAP communication modelSOAP communication model
•• SOAP fault messageSOAP fault message
•• SOAP over HTTPSOAP over HTTP
•• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
Slide 4.23
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
SOAP Fault element
• SOAP provides a model for handling faults arise.
• It distinguishes between the conditions that result in a fault, and the ability to
signal that fault to the originator of the faulty message or another node. The
SOAP <Body> is the place where fault information is placed.
<env:Envelope
xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope”
xmlns:m="http://www.plastics_supply.com/product-prices">
<env:Header>
<tx:Transaction-id
xmlns:t=”http://www.transaction.com/transactions”
env:mustUnderstand='1'>
512
</tx:Transaction-id>
</env:Header>
<env:Body>
<env:Fault>
<env:Code>
<env:Value>env:Sender</env:Value>
<env:Subcode>
<env:Value> m:InvalidPurchaseOrder </env:Value>
</env:Subcode>
</env:Code>
<env:Reason>
<env:Text xml:lang="en-UK"> Specified product did not exist </env:Text>
</env:Reason>
<env:Detail>
<err:myFaultDetails
xmlns:err="http://www.plastics_supply.com/faults">
<err:message> Product number contains invalid characters </err:message>
<err:errorcode> 129 </err:errorcode>
</err:myFaultDetails>
</env:Detail>
</env:Fault>
</env:Body>
</env:Envelope>
Slide 4.24
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Topics
•• Inter application communicationInter application communication
•• SOAP as a messaging protocolSOAP as a messaging protocol
•• Structure of a SOAP messageStructure of a SOAP message
•• SOAP communication modelSOAP communication model
•• SOAP fault messageSOAP fault message
•• SOAP over HTTPSOAP over HTTP
•• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
Slide 4.25
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
SOAP and HTTP
 A binding of SOAP to a transport protocol is
a description of how a SOAP message is to
be sent using that transport protocol.
 The typical binding for SOAP is HTTP.
 SOAP can use GET or POST. With GET,
the request is not a SOAP message but the
response is a SOAP message, with POST
both request and response are SOAP
messages (in version 1.2, version 1.1
mainly considers the use of POST).
 SOAP uses the same error and status
codes as those used in HTTP so that HTTP
responses can be directly interpreted by a
SOAP module.
SOAP envelope
SOAP header
Transactional
context
SOAP body
Input parameter 1
Input parameter 2
Name of procedure
HTTP POST
Slide 4.26
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
RPC call using SOAP over HTTP
Service provider
SOAP
engine
Service implementation
(other tiers)
HTTP
engine
Service requestor
HTTP
engine
Client implementation (other
tiers)
SOAP
engine
SOAP envelope
SOAP header
Transactional
context
SOAP body
Name of the
procedure
Input parameter 1
Input parameter 2
HTTP Post
SOAP envelope
SOAP header
transactional
context
SOAP body
return
parameter
SOAP envelope
SOAP header
Transactional
context
SOAP body
Return
parameter
HTTP Post
Slide 4.27
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Topics
•• Inter application communicationInter application communication
•• SOAP as a messaging protocolSOAP as a messaging protocol
•• Structure of a SOAP messageStructure of a SOAP message
•• SOAP communication modelSOAP communication model
•• SOAP fault messageSOAP fault message
•• SOAP over HTTPSOAP over HTTP
•• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
Slide 4.28
Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008
Advantages and disadvantages of SOAP
• Advantages of SOAP are:
– Simplicity
– Portability
– Firewall friendliness
– Use of open standards
– Interoperability
– Universal acceptance.
• Disadvantages of SOAP are:
– Too much reliance on HTTP
– Statelessness
– Serialization by value and not by reference.
Try not to laugh too hard at this assertion!!!

More Related Content

PDF
Lecture 3 soap
PPTX
Soap xp-wg
PDF
Introduction to SOAP
PPT
SOAP Overview
PDF
Introduction to SOAP
PPTX
SOAP--Simple Object Access Protocol
PPTX
ASP.NET Web API and HTTP Fundamentals
PDF
Web technology-guide
Lecture 3 soap
Soap xp-wg
Introduction to SOAP
SOAP Overview
Introduction to SOAP
SOAP--Simple Object Access Protocol
ASP.NET Web API and HTTP Fundamentals
Web technology-guide

What's hot (20)

PPTX
SOAP - Simple Object Access Protocol
PPT
Intro to web services
PPTX
Simple Object Access Protocol (SOAP)
PPTX
The Full Power of ASP.NET Web API
PPTX
Simple object access protocol(soap )
PPT
Excellent rest using asp.net web api
PPT
computer networks layers
PPT
Application layer chapter-9
PDF
Web Services Tutorial
PPTX
CS8651 Internet Programming - Basics of HTML, HTML5, CSS
PPT
webservices overview
PPT
Web Services Presentation - Introduction, Vulnerabilities, & Countermeasures
PPTX
Soap web service
PPTX
Web technologies: HTTP
PPTX
Web API or WCF - An Architectural Comparison
PPT
SOAP:Simple Object Access Protocol -XML-RPC
KEY
A Conversation About REST - Extended Version
PDF
Introduction to Web Services
PDF
Web Services (SOAP, WSDL, UDDI)
PPTX
Web Service
SOAP - Simple Object Access Protocol
Intro to web services
Simple Object Access Protocol (SOAP)
The Full Power of ASP.NET Web API
Simple object access protocol(soap )
Excellent rest using asp.net web api
computer networks layers
Application layer chapter-9
Web Services Tutorial
CS8651 Internet Programming - Basics of HTML, HTML5, CSS
webservices overview
Web Services Presentation - Introduction, Vulnerabilities, & Countermeasures
Soap web service
Web technologies: HTTP
Web API or WCF - An Architectural Comparison
SOAP:Simple Object Access Protocol -XML-RPC
A Conversation About REST - Extended Version
Introduction to Web Services
Web Services (SOAP, WSDL, UDDI)
Web Service
Ad

Viewers also liked (19)

PPTX
Introducing visual studio_2010_v1.0--chappell
PDF
Workshop 04 android-development
PDF
9 content-providers
PDF
Aws tkv-ug
PDF
Visual studio-2012-product-guide
PDF
Rad grid dynamically building a grid and adding a hierarchy with declarative...
PPT
Item based approach
PPT
Lec7 collaborative filtering
PDF
Secc tutorials development and deployment of rest web services in java_v2.0
PDF
Twdatasci cjlin-big data analytics - challenges and opportunities
PDF
Emergency androidstudiochapter
DOCX
Android wear notes
PDF
Brian.suda.thesis
PPT
Collaborative filtering
PDF
Wcf tutorial
PPT
Recommender lecture
PPT
Robust recommendation
PDF
Release documentation
PPT
Collab filtering-tutorial
Introducing visual studio_2010_v1.0--chappell
Workshop 04 android-development
9 content-providers
Aws tkv-ug
Visual studio-2012-product-guide
Rad grid dynamically building a grid and adding a hierarchy with declarative...
Item based approach
Lec7 collaborative filtering
Secc tutorials development and deployment of rest web services in java_v2.0
Twdatasci cjlin-big data analytics - challenges and opportunities
Emergency androidstudiochapter
Android wear notes
Brian.suda.thesis
Collaborative filtering
Wcf tutorial
Recommender lecture
Robust recommendation
Release documentation
Collab filtering-tutorial
Ad

Similar to Lecture 3 soap (20)

DOCX
fffSeminar
PDF
0321146182
PPT
Soa business centric and soap basic
PDF
Java Web Services [2/5]: Introduction to SOAP
PPTX
SOAP WEB TECHNOLOGIES
PPTX
Soa 10 soa technology soap
PPT
WebServices
PDF
PPTX
SOAP by luv
PPTX
Presentation on Simple Object Access Protocol | SOAP | PPT | CSE | Presentation
PPTX
Consuming SOAP
DOCX
Soap.doc
PPTX
Web services SOAP
PPTX
Web services with soap
PPTX
Web services soap
PPTX
Web services soap
PPTX
Web-Services!.pptx
PPTX
fffSeminar
0321146182
Soa business centric and soap basic
Java Web Services [2/5]: Introduction to SOAP
SOAP WEB TECHNOLOGIES
Soa 10 soa technology soap
WebServices
SOAP by luv
Presentation on Simple Object Access Protocol | SOAP | PPT | CSE | Presentation
Consuming SOAP
Soap.doc
Web services SOAP
Web services with soap
Web services soap
Web services soap
Web-Services!.pptx

Recently uploaded (20)

PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
CloudStack 4.21: First Look Webinar slides
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
STKI Israel Market Study 2025 version august
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Five Habits of High-Impact Board Members
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Developing a website for English-speaking practice to English as a foreign la...
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
Flame analysis and combustion estimation using large language and vision assi...
The influence of sentiment analysis in enhancing early warning system model f...
Taming the Chaos: How to Turn Unstructured Data into Decisions
Zenith AI: Advanced Artificial Intelligence
CloudStack 4.21: First Look Webinar slides
OpenACC and Open Hackathons Monthly Highlights July 2025
1 - Historical Antecedents, Social Consideration.pdf
Abstractive summarization using multilingual text-to-text transfer transforme...
Microsoft Excel 365/2024 Beginner's training
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
A contest of sentiment analysis: k-nearest neighbor versus neural network
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
STKI Israel Market Study 2025 version august
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Five Habits of High-Impact Board Members
Benefits of Physical activity for teenagers.pptx
Developing a website for English-speaking practice to English as a foreign la...
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
A proposed approach for plagiarism detection in Myanmar Unicode text

Lecture 3 soap

  • 1. WebServices: Principles&Technology Slide 4.1 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Mike P. Papazoglou [email protected] Chapter 4 SOAP: Simple Object Access Protocol
  • 2. Slide 4.2 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Topics •• Inter application communicationInter application communication •• SOAP as a messaging protocolSOAP as a messaging protocol •• Structure of a SOAP messageStructure of a SOAP message •• SOAP communication modelSOAP communication model •• SOAP fault messageSOAP fault message •• SOAP over HTTPSOAP over HTTP •• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
  • 3. Slide 4.3 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Inter-Application Communication • Conventional distributed applications use distributed communication technologies, e.g., CORBA, DCOM, Java/RMI, based on object RPC (ORPC) protocols that attempted to marry object orientation and network protocols. – ORPC request is an identifier or symbolic name that the server could use to locate the target object inside the server process. • Weaknesses – Both ends of the communication link would need to be implemented under the same distributed object model (Java/RMI or CORBA/IIOP) – Difficulty of getting these protocols to work over firewalls or proxy servers, e.g, most firewalls are configured to allow hypertext transfer protocol (HTTP) to pass across, but not IIOP. • To address the problem of overcoming proprietary systems running on heterogeneous infrastructures, Web services rely on SOAP, an XML- based communication protocol for exchanging messages between computers regardless of their operating systems, programming environment or object model framework.
  • 4. Slide 4.4 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Topics •• Inter application communicationInter application communication •• SOAP as a messaging protocolSOAP as a messaging protocol •• Structure of a SOAP messageStructure of a SOAP message •• SOAP communication modelSOAP communication model •• SOAP fault messageSOAP fault message •• SOAP over HTTPSOAP over HTTP •• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
  • 5. Slide 4.5 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 What is SOAP? • SOAP is the standard messaging protocol used by Web services. SOAP’s primary application is inter application communication. SOAP codifies the use of XML as an encoding scheme for request and response parameters using HTTP as a means for transport. Service providerService requestor Application object (client) Application object (service provider) SOAP-based middleware SOAP-based middleware SOAP messages exchanged on top of, HTTP, SMTP, or other transport Converts procedure calls to/from XML messages sent through HTTP or other protocols.
  • 6. Slide 4.6 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 What is SOAP? (continued) • SOAP covers the following four main areas: – A message format for one-way communication describing how a message can be packed into an XML document. – A description of how a SOAP message should be transported using HTTP (for Web-based interaction) or SMTP (for e-mail-based interaction). – A set of rules that must be followed when processing a SOAP message and a simple classification of the entities involved in processing a SOAP message. – A set of conventions on how to turn an RPC call into a SOAP message and back.
  • 7. Slide 4.7 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 SOAP as a lightweight protocol • SOAP is a lightweight protocol that allows applications to pass messages and data back and forth between disparate systems in a distributed environment enabling remote method invocation. • By lightweight we mean that the SOAP protocol possesses only two fundamental properties. It can: – send and receive HTTP (or other) transport protocol packets, and – process XML messages. • This can be contrasted with the heavyweight protocols such as ORPC protocols.
  • 8. Slide 4.8 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Distributed messaging using SOAP
  • 9. Slide 4.9 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Topics •• Inter application communicationInter application communication •• SOAP as a messaging protocolSOAP as a messaging protocol •• Structure of a SOAP messageStructure of a SOAP message •• SOAP communication modelSOAP communication model •• SOAP fault messageSOAP fault message •• SOAP over HTTPSOAP over HTTP •• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
  • 10. Slide 4.10 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 SOAP messages • SOAP is based on message exchanges. • Messages are seen as envelopes where the application encloses the data to be sent. • A SOAP message consists of an <Envelope> element containing an optional <Header> and a mandatory <Body> element. • The contents of these elements are application defined and not a part of the SOAP specification. • A SOAP <Header> contains blocks of information relevant to how the message is to be processed. This helps pass information in SOAP messages that is not for the application but for the SOAP engine • The SOAP <Body> is where the main end- to-end information conveyed in a SOAP message must be carried. SOAP envelope SOAP header header block SOAP body body block
  • 11. Slide 4.11 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 <env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope” env:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”> …… </env:Envelope> <env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope” > … <env:Header> <tx:transaction-id xmlns:tx=”http://www.transaction.com/transaction” env:mustUnderstand=”true”> 512 </tx:transaction-id> <notary:token xmlns:notary=”http://www.notarization-services.com/token” env:mustUnderstand=”true”> GRAAL-5YF3 </notary:token> </env:Header> …………… </env:Envelope> Example of SOAP envelope Example of SOAP header SOAP envelope and header
  • 12. Slide 4.12 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 SOAP Intermediaries • SOAP headers have been designed in anticipation of participation of other SOAP processing nodes – called SOAP intermediaries – along a message's path from an initial SOAP sender to an ultimate SOAP receiver. • A SOAP message travels along the message path from a sender to a receiver. • All SOAP messages start with an initial sender, which creates the SOAP message, and end with an ultimate receiver.
  • 13. Slide 4.13 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env=“http://www.w3.org/2003/05/soap-envelope”> <env:Header> <m:order xmlns:m="http://www.plastics_supply.com/purchase-order" env:role="http://www.w3.org/2003/05/soap- envelope/role/next" env:mustUnderstand="true"> <m:order-no >uuid:0411a2daa</m:order-no> <m:date>2004-11-8</m:date> </m:order> <n:customer xmlns:n="http://www.supply.com/customers" env:role="http://www.w3.org/2003/05/soap- envelope/role/next" env:mustUnderstand="true"> <n:name> Marvin Sanders </n:name> </n:customer > </env:Header> <env:Body> <-- Payload element goes here --> </env:Body> </env:Envelope> Example of SOAP header with message routing The “next” role is one that all SOAP nodes are required to support; By tagging each header in this message with the “next” role, this message is saying that all SOAP nodes (intermediaries and the ultimate receiver) MUST understand and be able to process the m:order header and the n:customer header.
  • 14. Slide 4.14 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 The SOAP Body • The SOAP body is the area of the SOAP message, where the application specific XML data (payload) being exchanged in the message is placed. • The <Body> element must be present and is an immediate child of the envelope. It may contain a number of child elements, called body entries, but it may also be empty. The <Body> element contains either of the following: – Application-specific data: is the information that is exchanged with a Web service. The SOAP <Body> is where the method call information and its related arguments are encoded. It is where the response to a method call is placed, and where error information can be stored. – fault message: is used only when an error occurs. • A SOAP message may carry either application-specific data or a fault, but not both.
  • 15. Slide 4.15 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Example SOAP Message <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope" > <env:Header> <t:transactionID xmlns:t="http://intermediary.example.com/procurement" env:role="http://www.w3.org/2002/06/soap-envelope/role/next" env:mustUnderstand="true" > 57539 </t:transactionID> </env:Header> <env:Body> <m:orderGoods env:encodingStyle="http://www.w3.org/2002/06/soap-encoding" xmlns:m="http://example.com/procurement"> <m:productItem> <name>ACME Softener</name> </m:productItem> <m:quantity> 35 </m:quantity> </m:orderGoods> </env:Body> </env:Envelope> Header Body Blocks Envelope
  • 16. Slide 4.16 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Topics •• Inter application communicationInter application communication •• SOAP as a messaging protocolSOAP as a messaging protocol •• Structure of a SOAP messageStructure of a SOAP message •• SOAP communication modelSOAP communication model •• SOAP fault messageSOAP fault message •• SOAP over HTTPSOAP over HTTP •• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
  • 17. Slide 4.17 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 The SOAP Communication Model • SOAP supports two possible communication styles: – remote procedure call (RPC) and – document (or message). RPC-style interaction Document-style interaction
  • 18. Slide 4.18 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 RPC-style SOAP Services • A remote procedure call (RPC)-style Web service appears as a remote object to a client application. The interaction between a client and an RPC-style Web service centers around a service-specific interface. Clients express their request as a method call with a set of arguments, which returns a response containing a return value. SOAP envelope SOAP body Method name orderGoods Input parameter 1 product item Input parameter 2 quantity SOAP envelope SOAP body Method return Return value order id
  • 19. Slide 4.19 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 <env:Envelope xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope” xmlns:m="http://www.plastics_supply.com/product-prices"> <env:Header> <tx:Transaction-id xmlns:t=”http://www.transaction.com/transactions” env:mustUnderstand='1'> 512 </tx:Transaction-id> </env:Header> <env:Body> <m:GetProductPrice> <product-id> 450R6OP </product-id > </m:GetProductPrice > </env:Body> </env:Envelope> <env:Envelope xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope” xmlns:m="http://www.plastics_supply.com/product-prices"> <env:Header> <--! – Optional context information --> </env:Header> <env:Body> <m:GetProductPriceResponse> <product-price> 134.32 </product-price> </m:GetProductPriceResponse> </env:Body> </env:Envelope> Example of RPC-style SOAP body Example of RPC-style SOAP response message RPC-style web services
  • 20. Slide 4.20 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Document (Message)-style SOAP Services • In the document-style of messaging, the SOAP <Body> contains an XML document fragment. The <Body> element reflects no explicit XML structure. • The SOAP run-time environment accepts the SOAP <Body> element as it stands and hands it over to the application it is destined for unchanged. There may or may not be a response associated with this message. SOAP envelope SOAP body PurchaseOrder document -product item -quantity SOAP envelope SOAP body Acknowledgement document -order id
  • 21. Slide 4.21 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 <env:Envelope xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope”> <env:Header> <tx:Transaction-id xmlns:t=”http://www.transaction.com/transactions” env:mustUnderstand='1'> 512 </env:Header> <env:Body> <po:PurchaseOrder oderDate=”2004-12-02” xmlns:m="http://www.plastics_supply.com/POs"> <po:from> <po:accountName> RightPlastics </po:accountName> <po:accountNumber> PSC-0343-02 </po:accountNumber> </po:from> <po:to> <po:supplierName> Plastic Supplies Inc. </po:supplierName> <po:supplierAddress> Yara Valley Melbourne </po:supplierAddress> </po:to> <po:product> <po:product-name> injection molder </po:product-name> <po:product-model> G-100T </po:product-model> <po:quantity> 2 </po:quantity> </po:product> </ po:PurchaseOrder > </env:Body> </env:Envelope> Example of document-style SOAP body Example of document-style SOAP body
  • 22. Slide 4.22 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Topics •• Inter application communicationInter application communication •• SOAP as a messaging protocolSOAP as a messaging protocol •• Structure of a SOAP messageStructure of a SOAP message •• SOAP communication modelSOAP communication model •• SOAP fault messageSOAP fault message •• SOAP over HTTPSOAP over HTTP •• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
  • 23. Slide 4.23 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 SOAP Fault element • SOAP provides a model for handling faults arise. • It distinguishes between the conditions that result in a fault, and the ability to signal that fault to the originator of the faulty message or another node. The SOAP <Body> is the place where fault information is placed. <env:Envelope xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope” xmlns:m="http://www.plastics_supply.com/product-prices"> <env:Header> <tx:Transaction-id xmlns:t=”http://www.transaction.com/transactions” env:mustUnderstand='1'> 512 </tx:Transaction-id> </env:Header> <env:Body> <env:Fault> <env:Code> <env:Value>env:Sender</env:Value> <env:Subcode> <env:Value> m:InvalidPurchaseOrder </env:Value> </env:Subcode> </env:Code> <env:Reason> <env:Text xml:lang="en-UK"> Specified product did not exist </env:Text> </env:Reason> <env:Detail> <err:myFaultDetails xmlns:err="http://www.plastics_supply.com/faults"> <err:message> Product number contains invalid characters </err:message> <err:errorcode> 129 </err:errorcode> </err:myFaultDetails> </env:Detail> </env:Fault> </env:Body> </env:Envelope>
  • 24. Slide 4.24 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Topics •• Inter application communicationInter application communication •• SOAP as a messaging protocolSOAP as a messaging protocol •• Structure of a SOAP messageStructure of a SOAP message •• SOAP communication modelSOAP communication model •• SOAP fault messageSOAP fault message •• SOAP over HTTPSOAP over HTTP •• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
  • 25. Slide 4.25 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 SOAP and HTTP  A binding of SOAP to a transport protocol is a description of how a SOAP message is to be sent using that transport protocol.  The typical binding for SOAP is HTTP.  SOAP can use GET or POST. With GET, the request is not a SOAP message but the response is a SOAP message, with POST both request and response are SOAP messages (in version 1.2, version 1.1 mainly considers the use of POST).  SOAP uses the same error and status codes as those used in HTTP so that HTTP responses can be directly interpreted by a SOAP module. SOAP envelope SOAP header Transactional context SOAP body Input parameter 1 Input parameter 2 Name of procedure HTTP POST
  • 26. Slide 4.26 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 RPC call using SOAP over HTTP Service provider SOAP engine Service implementation (other tiers) HTTP engine Service requestor HTTP engine Client implementation (other tiers) SOAP engine SOAP envelope SOAP header Transactional context SOAP body Name of the procedure Input parameter 1 Input parameter 2 HTTP Post SOAP envelope SOAP header transactional context SOAP body return parameter SOAP envelope SOAP header Transactional context SOAP body Return parameter HTTP Post
  • 27. Slide 4.27 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Topics •• Inter application communicationInter application communication •• SOAP as a messaging protocolSOAP as a messaging protocol •• Structure of a SOAP messageStructure of a SOAP message •• SOAP communication modelSOAP communication model •• SOAP fault messageSOAP fault message •• SOAP over HTTPSOAP over HTTP •• Advantages and disadvantages of SOAPAdvantages and disadvantages of SOAP
  • 28. Slide 4.28 Michael P. Papazoglou, Web Services, 1st Edition, © Pearson Education Limited 2008 Advantages and disadvantages of SOAP • Advantages of SOAP are: – Simplicity – Portability – Firewall friendliness – Use of open standards – Interoperability – Universal acceptance. • Disadvantages of SOAP are: – Too much reliance on HTTP – Statelessness – Serialization by value and not by reference. Try not to laugh too hard at this assertion!!!