Development andDevelopment and
Deployment ofDeployment of
Web ServicesWeb Services
What is Web service ?
• Method of communication between two electronic
devices over the web
• A service that is "always on”
• W3C definition
– a software system designed to support interoperable
machine-to-machine interaction over a network.
3
• 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
More about Web service
Web service Platform elements
• SOAP is a simple protocol for exchange of information.
• UDDI is a specification designed to allow businesses of all
sizes to benefit in the new digital economy.
• WSDL defines the XML grammar for describing services as
collections of communication endpoints capable of
exchanging messages.
Communication between Web-Service and
heterogeneous clients
Web Service Architecture
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.
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
Operation Types
The request-response type is the most common operation type, but
WSDL defines four types:
PortType
<portType name="glossaryTerms">
  <operation name="getTerm">
    <input
message="getTermRequest"/>
    <output
message="getTermResponse"/>
  </operation>
</portType>
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
SOAP-based communication
SOAP:
• Data in a well-defined XML format
• Transport over various protocols
• HTTP, SMTP are the most used
• 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-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 Request
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
JSON
• Java Script Object Notation
• A new ”fat“ free alternative to XML
• Much smaller grammar
• Maps more directly onto the data
structures used in modern programming
languages
• JSON has the same interoperability
potential as XML
JSON Objects and JSON
Arrays
• JSON values can be
• Number, string, Boolean or null value
• JSON Objects
• Contains multiple name value pairs
• JSON Array
• Contains multiple JSON objects
JSON code example
{
"employees":
[
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" ,
"lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
Deploying a Web Service
Web deploying tools
• Web Deploy for Microsoft IIS
• Web Sphere for IBM servers
• Axis
• UDDI4J
• Ivory
A more specific example
THANK YOUTHANK YOU

Developmeant and deployment of webservice

Editor's Notes

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