SlideShare a Scribd company logo
SAFWAN HASHMI
Introduction to SOAP
2
Where did it come from?
• Microsoft, UserLand, DevelopMentor, IBM, Ariba,
Commerce One, Compaq, HP, IONA, Lotus, SAP
~ Submitted to W3C May 2000.
• XML based protocol
• Intended to be a simple wire-protocol for exchange of
info. Largest use may be over Internet HTTP.
3
Motivation
• Many Distributed applications communicate using remote
procedure calls (RPC) between distributed objects like
DCOM and CORBA.
• HTTP isn’t designed for those objects, so RPC calls aren’t
easily adapted to the Internet.
• Security problems exist for those methods of RPC, so
most firewalls and proxy servers are set to block this
traffic.
• HTTP is supported by all Internet browsers and servers,
so SOAP presents a nice protocol for doing RPC.
4
What is SOAP?
SOAP IS:
• Lightweight communication protocol
• For communication between applications
one-way, request/response, multicast, etc..
• Designed to communicate via HTTP
• Not tied to any component technology
• Not tied to any programming language
• Based on XML
• Simple and extensible
5
Basic Structure of Soap
• Envelope
Defines the content of the message
• Header (optional)
contains header information
• Body
contains call and response information
6
SOAP Contains Four Parts:
• An extensible envelope expressing (mandatory)
• what features and services are represented in a message;
• who should deal with them,
• whether they are optional or mandatory.
• A set of encoding rules for data (optional)
• Exchange instances of application-defined data types and directed
graphs
• Uniform model for serializing abstract data models that can not
directly be expressed in XML schema
• A Convention for representation RPC (optional)
• How to make calls and responses
• A protocol binding to HTTP and HTTP-EF (optional)
7
SOAP Envelope
SOAP Example in HTTP
HTTP Request
SOAP-HTTP Binding
SOAP Header
SOAP Body
POST /Accounts/Henrik HTTP/1.1
Host: www.webservicebank.com
Content-Length: nnnn
Content-Type: text/xml; charset="utf-8"
SOAPAction: "Some-URI"
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP:Header>
<t:Transaction xmlns:t="some-URI" SOAP:mustUnderstand="1">
5
</t:Transaction>
</SOAP:Header>
<SOAP:Body>
<m:Deposit xmlns:m="Some-URI">
<m:amount>200</m:amount>
</m:Deposit>
</SOAP:Body>
</SOAP:Envelope>
8
SOAP Example in SIP
SOAP Envelope
SIP Request
SOAP-SIP Binding
SOAP Body
SERVICE sip:broker.ubiquity.net SIP/2.0
To: sip:broker.ubiquity.net
From: sip:proxy.ubiquity.net
Call-ID:648324@193.195.52.30
CSeq: 1 SERVICE
Via: SIP/2.0/UDP proxy.ubiquity.net
Content-Type: text/xml
Content-Length: 381
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope”
SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP:Body>
<m:SetCreditStatus xmlns:m="http://www.ubiquity.net/sipservices">
<m:user>sip:jo@ubiquity.net</m:user>
<m:status>super</m:status>
</m:SetCreditStatus>
</SOAP:Body>
</SOAP:Envelope>
9
… or SOAP by Itself…
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope”
SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP:Header>
<m:MessageInfo xmlns:m="http://www.info.org/soap/message">
<m:to href="mailto:you@your.com"/>
<m:from href="mailto:me@my.com"/>
<m:contact href="mailto:someone@my.com">
</m:MessageInfo>
</SOAP:Header>
<SOAP:Body>
<msg:Message xmlns:m="http://www.info.org/soap/message">
<msg:subject>Your house is on fire!</msg:subject>
<msg:feed href="ram://livenews.com/yourhouse"/>
</msg:Message>
</SOAP:Body>
</SOAP:Envelope>
10
Note Again: SOAP is a Protocol!
• What does this mean?
• It is not a distributed object system
• It is not an RPC system
• It is not even a Web application
• Your application decides what your application is!
• You can build a tightly coupled system
…or…
• You can build a loosely coupled system
11
Why Not Roll My Own XML Protocol?
• SOAP allows you to define your particular feature or
service in such a way that it can co-exist with other
features and services within a SOAP message
• What is a feature or a service?
• Authentication service
• Payment service
• Security service
• Transaction management service
• Privacy service
• Not owning the message means easier deployment and
better interoperability
12
Syntax Rules
• MUST be encoded using XML
• MUST have a SOAP Envelope
• CAN have a SOAP header
• MUST have a SOAP Body
• MUST use the SOAP Envelope namespace
• MUST use the SOAP Encoding namespace
• Must NOT contain a DTD reference
• Must NOT contain XML Processing
13
SOAP Fault Element
• Error messages from a SOAP application are carried inside a Fault element.
• Must appear as an element w/in the <Body> element and can only appear once in a SOAP
message.
• Fault sub elements:
<faultcode> MUST: --code identifying the error, for use by the software
<faultstring> MUST: --error as a string
<faultactor> MUST(Apps not acting as ultimate destination of SOAP message)
--who caused the error
<detail> MUST(if contents of Body could not be successfully processed)
--specific error information
• Fault Codes:
VersionMismatch Invalid namespace for the SOAP Envelope Element
MustUnderstand A child element of the Header element, with the mustUnderstand attribute
set to “1”, was not understood
Client The message was incorrectly formed or contained incorrect information.
Server There was a problem with the server so the message could not be process
• Example: <env:Fault>
<faultcode>env:MustUnderstand</faultcode>
<faultstring>SOAP Must Understand Error</faultstring>
</env:Fault>
14
CORBA vs. SOAP
CORBA
(Common Object Request Broker
Architecture)
SOAP
(Simple Object Access Protocol)
CORBA provides a true object-oriented
component architecture.
Web services like (UDDI/WSDL/SOAP)
are not providing true object-oriented
component architecture.
Fast Compared to SOAP Because of the verbose XML format,
SOAP can be considerably slower than
CORBA
Can be difficult to use if server and/or
client is behind a firewall or if network
address translation is being used
HTTP works well with network
firewalls
Problems with implementations It is XML based implementation
compare to
CORBA,SOAP Implementation is easy.
It uses IIOP (Internet Inter ORB
Protocol)
Simple XML-based protocol to let
applications exchange information
over HTTP
15
Advantages of SOAP are:
• Portability
• Firewall friendliness
• Use of open standards
• Interoperability
• Universal acceptance.
Language neutrality:
SOAP can be developed using any language.
• Interoperability and Platform Independence:
SOAP can be implemented in any language and can be
executed in any platform.
SOAP messages are in very simple XML format.
• Scalability:
SOAP uses HTTP protocol for transport due to which it
becomes scalable.
16
Disadvantages of SOAP
• – Too much reliance on HTTP
• – Statelessness
• – Serialization by value and not by reference
17
Summary
• SOAP envelope provides
• SOAP can be used with many protocols
• Easy to deploy with existing infrastructure
• SOAP is fundamentally a one-way message
• Supports request/response, RPC etc.
• Your application decides what it is!

More Related Content

PDF
Introduction to SOAP
Hayati Guvence
 
PPTX
Simple object access protocol(soap )
balamurugan.k Kalibalamurugan
 
PPTX
Advanced WCF Workshop
Ido Flatow
 
PPTX
ASP.NET Web API and HTTP Fundamentals
Ido Flatow
 
PDF
Lecture 3 soap
Jetender Sambyal
 
PPTX
Web API or WCF - An Architectural Comparison
Adnan Masood
 
PPT
SOAP:Simple Object Access Protocol -XML-RPC
elliando dias
 
PDF
Web Services Tutorial
Lorna Mitchell
 
Introduction to SOAP
Hayati Guvence
 
Simple object access protocol(soap )
balamurugan.k Kalibalamurugan
 
Advanced WCF Workshop
Ido Flatow
 
ASP.NET Web API and HTTP Fundamentals
Ido Flatow
 
Lecture 3 soap
Jetender Sambyal
 
Web API or WCF - An Architectural Comparison
Adnan Masood
 
SOAP:Simple Object Access Protocol -XML-RPC
elliando dias
 
Web Services Tutorial
Lorna Mitchell
 

What's hot (20)

PPTX
Web services - A Practical Approach
Madhaiyan Muthu
 
PDF
PHP and Web Services
Bruno Pedro
 
ODP
Web Server-Side Programming Techniques
guest8899ec02
 
PPT
Excellent rest using asp.net web api
Maurice De Beijer [MVP]
 
DOC
WCF tutorial
Abhi Arya
 
PDF
Web Services
Katrien Verbert
 
PDF
Connecting Applications Everywhere with ActiveMQ
Rob Davies
 
PPTX
Enjoying the Move from WCF to the Web API
Kevin Hazzard
 
PPTX
Web services soap and rest by mandakini for TechGig
Mandakini Kumari
 
PPTX
Overview of Rest Service and ASP.NET WEB API
Pankaj Bajaj
 
PPTX
Enterprise Integration Patterns
Sergey Podolsky
 
PPTX
Windows Communication Foundation (WCF) Best Practices
Orbit One - We create coherence
 
PPT
WCF
Vishwa Mohan
 
PPT
WCF And ASMX Web Services
Manny Siddiqui MCS, MBA, PMP
 
PPTX
1. WCF Services - Exam 70-487
Bat Programmer
 
PPTX
Messaging for Web and Mobile with Apache ActiveMQ
dejanb
 
PPT
Web servers
webhostingguy
 
PPT
Web Server Technologies I: HTTP & Getting Started
Port80 Software
 
PDF
Enterprise Integration Patterns
Oleg Tsal-Tsalko
 
PPS
Wcf Transaction Handling
Gaurav Arora
 
Web services - A Practical Approach
Madhaiyan Muthu
 
PHP and Web Services
Bruno Pedro
 
Web Server-Side Programming Techniques
guest8899ec02
 
Excellent rest using asp.net web api
Maurice De Beijer [MVP]
 
WCF tutorial
Abhi Arya
 
Web Services
Katrien Verbert
 
Connecting Applications Everywhere with ActiveMQ
Rob Davies
 
Enjoying the Move from WCF to the Web API
Kevin Hazzard
 
Web services soap and rest by mandakini for TechGig
Mandakini Kumari
 
Overview of Rest Service and ASP.NET WEB API
Pankaj Bajaj
 
Enterprise Integration Patterns
Sergey Podolsky
 
Windows Communication Foundation (WCF) Best Practices
Orbit One - We create coherence
 
WCF And ASMX Web Services
Manny Siddiqui MCS, MBA, PMP
 
1. WCF Services - Exam 70-487
Bat Programmer
 
Messaging for Web and Mobile with Apache ActiveMQ
dejanb
 
Web servers
webhostingguy
 
Web Server Technologies I: HTTP & Getting Started
Port80 Software
 
Enterprise Integration Patterns
Oleg Tsal-Tsalko
 
Wcf Transaction Handling
Gaurav Arora
 
Ad

Viewers also liked (15)

PPT
SOAP Overview
elliando dias
 
PPTX
600.412.Lecture06
ragibhasan
 
PPT
Soap
Eri Alam
 
PPTX
Simple Object Access Protocol
Saatviga Sudhahar
 
PDF
12 adversal search
Tianlu Wang
 
PPTX
SOAP--Simple Object Access Protocol
Masud Rahman
 
PPTX
Adversarial search
Farah M. Altufaili
 
PDF
Alphabeta
afshan_j
 
PPTX
Adversarial search with Game Playing
Aman Patel
 
PPTX
Alpha beta pruning
Nilesh Bandekar
 
PPT
Alpha beta prouning
Safwan Hashmi
 
PPTX
Minimax
Nagarajan
 
PPTX
Game playing in artificial intelligent technique
syeda zoya mehdi
 
PDF
Web Services (SOAP, WSDL, UDDI)
Peter R. Egli
 
DOCX
Best topics for seminar
shilpi nagpal
 
SOAP Overview
elliando dias
 
600.412.Lecture06
ragibhasan
 
Soap
Eri Alam
 
Simple Object Access Protocol
Saatviga Sudhahar
 
12 adversal search
Tianlu Wang
 
SOAP--Simple Object Access Protocol
Masud Rahman
 
Adversarial search
Farah M. Altufaili
 
Alphabeta
afshan_j
 
Adversarial search with Game Playing
Aman Patel
 
Alpha beta pruning
Nilesh Bandekar
 
Alpha beta prouning
Safwan Hashmi
 
Minimax
Nagarajan
 
Game playing in artificial intelligent technique
syeda zoya mehdi
 
Web Services (SOAP, WSDL, UDDI)
Peter R. Egli
 
Best topics for seminar
shilpi nagpal
 
Ad

Similar to Soap xp-wg (20)

PPT
Intro to web services
Neil Ghosh
 
PDF
Introduction to SOAP
Safwan Hashmi
 
PDF
Lecture 3 soap
Aravindharamanan S
 
PDF
C# ASP.NET WEB API APPLICATION DEVELOPMENT
Dr. Awase Khirni Syed
 
PPT
WebServices.ppt
Iftikhar70
 
PPT
what is soap
elliando dias
 
PPTX
SOAP WEB TECHNOLOGIES
tamilmozhiyaltamilmo
 
PPTX
Web-Services!.pptx
ssuserae0316
 
PPT
jkljklj
hoefo
 
PPTX
Soap Standard
Kumar
 
PPT
soap toolkit
elliando dias
 
PPT
SOA and web services
Sreekanth Narayanan
 
PDF
Web technology-guide
Srihari
 
PPTX
web programming
shreeuva
 
PDF
D1-3-Signaling
Oleg Levy
 
PPTX
java web services middleware technology
atsmurthy76
 
PPTX
Soap
Gourav Pal
 
PDF
Java Web Services [2/5]: Introduction to SOAP
IMC Institute
 
PPT
WebServices SOAP WSDL and UDDI
Rajkattamuri
 
PPT
SOAP, WSDL and UDDI
Shahid Shaik
 
Intro to web services
Neil Ghosh
 
Introduction to SOAP
Safwan Hashmi
 
Lecture 3 soap
Aravindharamanan S
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
Dr. Awase Khirni Syed
 
WebServices.ppt
Iftikhar70
 
what is soap
elliando dias
 
SOAP WEB TECHNOLOGIES
tamilmozhiyaltamilmo
 
Web-Services!.pptx
ssuserae0316
 
jkljklj
hoefo
 
Soap Standard
Kumar
 
soap toolkit
elliando dias
 
SOA and web services
Sreekanth Narayanan
 
Web technology-guide
Srihari
 
web programming
shreeuva
 
D1-3-Signaling
Oleg Levy
 
java web services middleware technology
atsmurthy76
 
Java Web Services [2/5]: Introduction to SOAP
IMC Institute
 
WebServices SOAP WSDL and UDDI
Rajkattamuri
 
SOAP, WSDL and UDDI
Shahid Shaik
 

More from Safwan Hashmi (14)

PDF
MODERAN BLOCK CIPHER
Safwan Hashmi
 
PPTX
Dark web
Safwan Hashmi
 
PDF
CEASER & VIGENERE CIPHER IMPLEMENTATION
Safwan Hashmi
 
PDF
Incident managment plan
Safwan Hashmi
 
PDF
Business continuity plan
Safwan Hashmi
 
PDF
Sql injection
Safwan Hashmi
 
PPT
Sql security
Safwan Hashmi
 
DOCX
Database design
Safwan Hashmi
 
PPTX
Color and color models
Safwan Hashmi
 
PPTX
Democracy.s
Safwan Hashmi
 
PPTX
Democracy01
Safwan Hashmi
 
PPSX
Democracy.ppt
Safwan Hashmi
 
PPTX
Calunization
Safwan Hashmi
 
DOCX
Development
Safwan Hashmi
 
MODERAN BLOCK CIPHER
Safwan Hashmi
 
Dark web
Safwan Hashmi
 
CEASER & VIGENERE CIPHER IMPLEMENTATION
Safwan Hashmi
 
Incident managment plan
Safwan Hashmi
 
Business continuity plan
Safwan Hashmi
 
Sql injection
Safwan Hashmi
 
Sql security
Safwan Hashmi
 
Database design
Safwan Hashmi
 
Color and color models
Safwan Hashmi
 
Democracy.s
Safwan Hashmi
 
Democracy01
Safwan Hashmi
 
Democracy.ppt
Safwan Hashmi
 
Calunization
Safwan Hashmi
 
Development
Safwan Hashmi
 

Recently uploaded (20)

PPTX
sunil mishra pptmmmmmmmmmmmmmmmmmmmmmmmmm
singhamit111
 
PDF
2025 Laurence Sigler - Advancing Decision Support. Content Management Ecommer...
Francisco Javier Mora Serrano
 
PDF
All chapters of Strength of materials.ppt
girmabiniyam1234
 
PDF
Cryptography and Information :Security Fundamentals
Dr. Madhuri Jawale
 
PDF
67243-Cooling and Heating & Calculation.pdf
DHAKA POLYTECHNIC
 
PPT
Understanding the Key Components and Parts of a Drone System.ppt
Siva Reddy
 
PDF
Machine Learning All topics Covers In This Single Slides
AmritTiwari19
 
PPTX
Module2 Data Base Design- ER and NF.pptx
gomathisankariv2
 
PDF
Zero carbon Building Design Guidelines V4
BassemOsman1
 
PPTX
Information Retrieval and Extraction - Module 7
premSankar19
 
PDF
top-5-use-cases-for-splunk-security-analytics.pdf
yaghutialireza
 
PDF
67243-Cooling and Heating & Calculation.pdf
DHAKA POLYTECHNIC
 
PPTX
Inventory management chapter in automation and robotics.
atisht0104
 
PPTX
quantum computing transition from classical mechanics.pptx
gvlbcy
 
PDF
Unit I Part II.pdf : Security Fundamentals
Dr. Madhuri Jawale
 
PPTX
22PCOAM21 Session 2 Understanding Data Source.pptx
Guru Nanak Technical Institutions
 
PPTX
MT Chapter 1.pptx- Magnetic particle testing
ABCAnyBodyCanRelax
 
PDF
The Effect of Artifact Removal from EEG Signals on the Detection of Epileptic...
Partho Prosad
 
PPTX
business incubation centre aaaaaaaaaaaaaa
hodeeesite4
 
PDF
2010_Book_EnvironmentalBioengineering (1).pdf
EmilianoRodriguezTll
 
sunil mishra pptmmmmmmmmmmmmmmmmmmmmmmmmm
singhamit111
 
2025 Laurence Sigler - Advancing Decision Support. Content Management Ecommer...
Francisco Javier Mora Serrano
 
All chapters of Strength of materials.ppt
girmabiniyam1234
 
Cryptography and Information :Security Fundamentals
Dr. Madhuri Jawale
 
67243-Cooling and Heating & Calculation.pdf
DHAKA POLYTECHNIC
 
Understanding the Key Components and Parts of a Drone System.ppt
Siva Reddy
 
Machine Learning All topics Covers In This Single Slides
AmritTiwari19
 
Module2 Data Base Design- ER and NF.pptx
gomathisankariv2
 
Zero carbon Building Design Guidelines V4
BassemOsman1
 
Information Retrieval and Extraction - Module 7
premSankar19
 
top-5-use-cases-for-splunk-security-analytics.pdf
yaghutialireza
 
67243-Cooling and Heating & Calculation.pdf
DHAKA POLYTECHNIC
 
Inventory management chapter in automation and robotics.
atisht0104
 
quantum computing transition from classical mechanics.pptx
gvlbcy
 
Unit I Part II.pdf : Security Fundamentals
Dr. Madhuri Jawale
 
22PCOAM21 Session 2 Understanding Data Source.pptx
Guru Nanak Technical Institutions
 
MT Chapter 1.pptx- Magnetic particle testing
ABCAnyBodyCanRelax
 
The Effect of Artifact Removal from EEG Signals on the Detection of Epileptic...
Partho Prosad
 
business incubation centre aaaaaaaaaaaaaa
hodeeesite4
 
2010_Book_EnvironmentalBioengineering (1).pdf
EmilianoRodriguezTll
 

Soap xp-wg

  • 2. 2 Where did it come from? • Microsoft, UserLand, DevelopMentor, IBM, Ariba, Commerce One, Compaq, HP, IONA, Lotus, SAP ~ Submitted to W3C May 2000. • XML based protocol • Intended to be a simple wire-protocol for exchange of info. Largest use may be over Internet HTTP.
  • 3. 3 Motivation • Many Distributed applications communicate using remote procedure calls (RPC) between distributed objects like DCOM and CORBA. • HTTP isn’t designed for those objects, so RPC calls aren’t easily adapted to the Internet. • Security problems exist for those methods of RPC, so most firewalls and proxy servers are set to block this traffic. • HTTP is supported by all Internet browsers and servers, so SOAP presents a nice protocol for doing RPC.
  • 4. 4 What is SOAP? SOAP IS: • Lightweight communication protocol • For communication between applications one-way, request/response, multicast, etc.. • Designed to communicate via HTTP • Not tied to any component technology • Not tied to any programming language • Based on XML • Simple and extensible
  • 5. 5 Basic Structure of Soap • Envelope Defines the content of the message • Header (optional) contains header information • Body contains call and response information
  • 6. 6 SOAP Contains Four Parts: • An extensible envelope expressing (mandatory) • what features and services are represented in a message; • who should deal with them, • whether they are optional or mandatory. • A set of encoding rules for data (optional) • Exchange instances of application-defined data types and directed graphs • Uniform model for serializing abstract data models that can not directly be expressed in XML schema • A Convention for representation RPC (optional) • How to make calls and responses • A protocol binding to HTTP and HTTP-EF (optional)
  • 7. 7 SOAP Envelope SOAP Example in HTTP HTTP Request SOAP-HTTP Binding SOAP Header SOAP Body POST /Accounts/Henrik HTTP/1.1 Host: www.webservicebank.com Content-Length: nnnn Content-Type: text/xml; charset="utf-8" SOAPAction: "Some-URI" <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Header> <t:Transaction xmlns:t="some-URI" SOAP:mustUnderstand="1"> 5 </t:Transaction> </SOAP:Header> <SOAP:Body> <m:Deposit xmlns:m="Some-URI"> <m:amount>200</m:amount> </m:Deposit> </SOAP:Body> </SOAP:Envelope>
  • 8. 8 SOAP Example in SIP SOAP Envelope SIP Request SOAP-SIP Binding SOAP Body SERVICE sip:broker.ubiquity.net SIP/2.0 To: sip:broker.ubiquity.net From: sip:proxy.ubiquity.net Call-ID:[email protected] CSeq: 1 SERVICE Via: SIP/2.0/UDP proxy.ubiquity.net Content-Type: text/xml Content-Length: 381 <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope” SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Body> <m:SetCreditStatus xmlns:m="http://www.ubiquity.net/sipservices"> <m:user>sip:[email protected]</m:user> <m:status>super</m:status> </m:SetCreditStatus> </SOAP:Body> </SOAP:Envelope>
  • 9. 9 … or SOAP by Itself… <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope” SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Header> <m:MessageInfo xmlns:m="http://www.info.org/soap/message"> <m:to href="mailto:[email protected]"/> <m:from href="mailto:[email protected]"/> <m:contact href="mailto:[email protected]"> </m:MessageInfo> </SOAP:Header> <SOAP:Body> <msg:Message xmlns:m="http://www.info.org/soap/message"> <msg:subject>Your house is on fire!</msg:subject> <msg:feed href="ram://livenews.com/yourhouse"/> </msg:Message> </SOAP:Body> </SOAP:Envelope>
  • 10. 10 Note Again: SOAP is a Protocol! • What does this mean? • It is not a distributed object system • It is not an RPC system • It is not even a Web application • Your application decides what your application is! • You can build a tightly coupled system …or… • You can build a loosely coupled system
  • 11. 11 Why Not Roll My Own XML Protocol? • SOAP allows you to define your particular feature or service in such a way that it can co-exist with other features and services within a SOAP message • What is a feature or a service? • Authentication service • Payment service • Security service • Transaction management service • Privacy service • Not owning the message means easier deployment and better interoperability
  • 12. 12 Syntax Rules • MUST be encoded using XML • MUST have a SOAP Envelope • CAN have a SOAP header • MUST have a SOAP Body • MUST use the SOAP Envelope namespace • MUST use the SOAP Encoding namespace • Must NOT contain a DTD reference • Must NOT contain XML Processing
  • 13. 13 SOAP Fault Element • Error messages from a SOAP application are carried inside a Fault element. • Must appear as an element w/in the <Body> element and can only appear once in a SOAP message. • Fault sub elements: <faultcode> MUST: --code identifying the error, for use by the software <faultstring> MUST: --error as a string <faultactor> MUST(Apps not acting as ultimate destination of SOAP message) --who caused the error <detail> MUST(if contents of Body could not be successfully processed) --specific error information • Fault Codes: VersionMismatch Invalid namespace for the SOAP Envelope Element MustUnderstand A child element of the Header element, with the mustUnderstand attribute set to “1”, was not understood Client The message was incorrectly formed or contained incorrect information. Server There was a problem with the server so the message could not be process • Example: <env:Fault> <faultcode>env:MustUnderstand</faultcode> <faultstring>SOAP Must Understand Error</faultstring> </env:Fault>
  • 14. 14 CORBA vs. SOAP CORBA (Common Object Request Broker Architecture) SOAP (Simple Object Access Protocol) CORBA provides a true object-oriented component architecture. Web services like (UDDI/WSDL/SOAP) are not providing true object-oriented component architecture. Fast Compared to SOAP Because of the verbose XML format, SOAP can be considerably slower than CORBA Can be difficult to use if server and/or client is behind a firewall or if network address translation is being used HTTP works well with network firewalls Problems with implementations It is XML based implementation compare to CORBA,SOAP Implementation is easy. It uses IIOP (Internet Inter ORB Protocol) Simple XML-based protocol to let applications exchange information over HTTP
  • 15. 15 Advantages of SOAP are: • Portability • Firewall friendliness • Use of open standards • Interoperability • Universal acceptance. Language neutrality: SOAP can be developed using any language. • Interoperability and Platform Independence: SOAP can be implemented in any language and can be executed in any platform. SOAP messages are in very simple XML format. • Scalability: SOAP uses HTTP protocol for transport due to which it becomes scalable.
  • 16. 16 Disadvantages of SOAP • – Too much reliance on HTTP • – Statelessness • – Serialization by value and not by reference
  • 17. 17 Summary • SOAP envelope provides • SOAP can be used with many protocols • Easy to deploy with existing infrastructure • SOAP is fundamentally a one-way message • Supports request/response, RPC etc. • Your application decides what it is!

Editor's Notes

  • #9: SIP (Session Initiation Protocol) is a text-based signaling protocol used to establish multimedia sessions on the Internet