Development and Development and Deployment of Deployment of Web Services Web 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 servicesWSDL 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 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:
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
Top Related