Web Services


   simplesourcecodes@live.com
• 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.
                      simplesourcecodes@live.com
Communication between Web-Service and
        heterogeneous clients




             simplesourcecodes@live.com
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
4
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.
                  simplesourcecodes@live.com
PortType
<portType name="glossaryTerms">
   <operation name="setTerm">
    <input name="newTerm"
  message="newTermValues"/>
   </operation>
  </portType >




                simplesourcecodes@live.com
Operation Types

The request-response type is the most common operation type, but
WSDL defines four types:

Type             Definition
One-way          The operation can receive a message but
                 will not return a response
Request-response The operation can receive a request and will
                 return a response
Solicit-response The operation can send a request and will
                 wait for a response
Notification     The operation can send a message but will
                 not wait for a response




                           simplesourcecodes@live.com
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

                     simplesourcecodes@live.com
SOAP-based communication
  Waiting for
  Waiting for                                      Sending
                                                    Sending
   requests
    requests             Data in XML format       requests,
                                                   requests,
  (known location,
   (known location,
    known port)
                                                    getting
                                                     getting
     known port)
                                                    results
                                                     results




• SOAP:
   – Data in a well-defined XML format
   – Transport over various protocols
      • HTTP, SMTP are the most used, perhaps because
        they are firewall-friendly
   – server 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

Web services

  • 1.
    Web Services simplesourcecodes@live.com
  • 2.
    • SOAP (SimpleObject 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. simplesourcecodes@live.com
  • 3.
    Communication between Web-Serviceand heterogeneous clients simplesourcecodes@live.com
  • 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 4
  • 5.
    WSDL • WSDL iswritten 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. simplesourcecodes@live.com
  • 6.
    PortType <portType name="glossaryTerms"> <operation name="setTerm"> <input name="newTerm" message="newTermValues"/> </operation> </portType > simplesourcecodes@live.com
  • 7.
    Operation Types The request-responsetype is the most common operation type, but WSDL defines four types: Type Definition One-way The operation can receive a message but will not return a response Request-response The operation can receive a request and will return a response Solicit-response The operation can send a request and will wait for a response Notification The operation can send a message but will not wait for a response simplesourcecodes@live.com
  • 8.
    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 simplesourcecodes@live.com
  • 9.
    SOAP-based communication Waiting for Waiting for Sending Sending requests requests Data in XML format requests, requests, (known location, (known location, known port) getting getting known port) results results • SOAP: – Data in a well-defined XML format – Transport over various protocols • HTTP, SMTP are the most used, perhaps because they are firewall-friendly – server side: either an RPC call or a message delivered
  • 10.
    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.
  • 11.
    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>
  • 12.
    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>
  • 13.
    SOAP Fault • Usedto 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
  • 14.
    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.
  • 15.
    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>
  • 16.

Editor's Notes

  • #10 A basic scenario of a distributed computing. RPC based communications. Various protocols.