web services
TRANSCRIPT
Web Services
• SOAP (Simple Object Access Protocol) is a simple protocol for exchange of information.
• UDDI (Universal Description, Discovery, and Integration) is a specification designed to allow businesses of all sizes to benefit in the new digital economy.
• WSDL (Web Services Description Language) defines the XML grammar for describing services as collections of communication endpoints capable of exchanging messages.
Communication between Web-Service and heterogeneous clients
4
Introduction• A Web service is a method of communication between
two electronic devices over the web (internet).
• It has an interface described in a machine-processable format (WSDL)
• Other systems interact with the Web service using SOAP messages
Features of Web Services• Language Independent• Operating System Independent
WSDL
• WSDL is written in XML• used to describe & locate Web services
WSDL Ports• The <portType> element is the most
important WSDL element.• It defines a web service, the operations that
can be performed, and the messages that are involved.
PortType
<portType name="glossaryTerms"> <operation name="setTerm"> <input name="newTerm" message="newTermValues"/> </operation></portType >
Type DefinitionOne-way The operation can receive a message but
will not return a responseRequest-response The operation can receive a request and will
return a responseSolicit-response The operation can send a request and will
wait for a responseNotification The operation can send a message but will
not wait for a response
Operation Types
The request-response type is the most common operation type, but
WSDL defines four types:
UDDI
• Universal Description, Discovery and Integration (UDDI)
• UDDI is a directory for storing information about web services
• UDDI is a directory of web service interfaces described by WSDL
• UDDI communicates via SOAP• UDDI uses WSDL to describe interfaces to web
services
Sending requests,
getting results
Sending requests,
getting results
Waiting for requests
(known location,known port)
Waiting for requests
(known location,known port)
Data in XML format
SOAP-based communicationSOAP-based communication
• SOAP:SOAP:– Data in a well-defined XML formatData in a well-defined XML format
– Transport over various protocolsTransport over various protocols
• HTTP, SMTP are the most used, perhaps because HTTP, SMTP are the most used, perhaps because they are firewall-friendlythey are firewall-friendly
– server side: either an RPC call or a message deliveredserver side: either an RPC call or a message delivered
SOAP Elements• Envelope (mandatory)
– Top element of the XML document representing the message.
• Header (optional)– Determines how a recipient of a SOAP message should
process the message– Adds features to the SOAP message such as
authentication, transaction management, payment, message routes, etc…
• Body (mandatory)– Exchanges information intended for the recipient of the
message. – Typical use is for RPC calls and error reporting.
SOAP Request
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”>
<SOAP-ENV:Header>
<t:transId xmlns:t=“http://a.com/trans”>345</t:transId>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:Add xmlns:m=“http://a.com/Calculator”>
<n1>3</n1>
<n2>4</n2>
</m:Add>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP Response
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”>
<SOAP-ENV:Header>
<t:transId xmlns:t=“http://a.com/trans”>345</t:transId>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:AddResponse xmlns:m=“http://a.com/Calculator”>
<result>7</result>
</m:AddResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP Fault
• Used to carry error and/or status information within a SOAP message
• Appears within the SOAP body• Defines the following:– faultcode (mandatory)
• algorithmic mechanism for identifying the fault • defined in the SOAP spec
– Faultstring (mandatory)• human readable explanation of the fault
SOAP Fault
– faultactor (optional)• information about who caused the fault to happen • URI value identifying the source
– Detail• error information related only to the Body element. • if not present then indicates that the fault is not
related to the Body element.
SOAP Fault Example
<SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Server</faultcode> <faultstring>Internal Application Error</faultstring> <detail xmlns:f=“http://www.a.com/CalculatorFault”> <f:errorCode>794634</f:errorCode> <f:errorMsg>Divide by zero</f:errorMsg> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body></SOAP-ENV:Envelope>
XML Messaging Using SOAP