Download presentation
Presentation is loading. Please wait.
Published byJake Gorsuch Modified over 10 years ago
1
An Introduction to Web Services Sriram Krishnan, Ph.D. sriram@sdsc.edu
2
Web Services: Definition Many different definitions are available IBM (Gottschalk, et al): A web service is an interface that describes a collection of operations that are network accessible through standardized XML messaging. Microsoft (on MSDN): A programmable application logic accessible using standard Internet protocols. Another Web Service definition: – A network service that provides a programmatic interface to remote clients
3
Web Services: Requirements Accessible through standard Web protocols –Interoperability is important Standard description language Publishable to a registry of services Discoverable via standard mechanisms
4
Web Services: Features Independent of programming language and OS Not bound to any single platform or specific protocol All information required to contact a service is captured by the Web Service Description –Web Services Description encapsulates an interface definition, data types being used, and the protocol information
5
Web Services Architecture Service Registry Service Requestor Service Provider Lookup Publish Interact
6
Need to know three things about WS What does the service do? How is the service accessed? Where is the service located?
7
WSDL Web Services Definition Language (WSDL) Standard to describe the invocation syntax of a Web Service Authors: IBM, Microsoft and others WSDL is an XML document that describes –Interface types for each port –Content of messages it receives and sends –Bindings of interfaces to protocols SOAP is default, others possible Describes the access points (host/port) for the protocol
8
Web Services Stack Service Discovery Layer Service Description Layer Service Messaging Layer Service Transport Layer
9
WSDL Elements PortTypes Message Types Binding Port Service SoapStruct echoStruct(SoapStruct ss)
10
WSDL: Types Types: collection of all data types used in the Web service (any schema language can be used, typically XML Schemas) –referenced by messages
11
WSDL: Message Message: abstract, typed definition of the data being sent
12
WSDL: PortType portType: an abstract set of operations supported by one or more endpoints
13
WSDL: Binding Protocol Binding: details of how elements in PortType are converted into concrete representations <soap:body use="encoded" namespace="http://test.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <soap:body use="encoded" namespace="http://test.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
14
WSDL: Service and Port Service: a named collection of ports Port: how a binding is deployed to a particular endpoint <port binding="tns:TestSoapBinding“ name="echo"> <soap:address location="http://test.org:5049/serv/echo"/>
15
Three properties of a Web service PortType: What does the service do? Binding: How is the service accessed? Service: Where is the service located?
16
Web Services Stack Service Discovery Layer: WSIL, UDDI Service Description Layer: WSDL, RDF Service Messaging Layer: SOAP Service Transport Layer: HTTP, SMTP
17
WSDL Information Model Separation between –Abstract specification –Concrete implementation of specification In WSDL –Abstract: portType + messages –Concrete: service + port + binding
18
SOAP SOAP = HTTP + XML XML –De facto standard for representing data in a platform independent way HTTP – Simple universally supported protocol Interoperability: – Easily understood Network Protocol: HTTP – Common Data Format: XML
19
Characteristics of SOAP XML based Internet-based Independent of – Programming language – Transport mechanism Can be used with protocols other than HTTP – SMTP: Simple Mail Transfer Protocol – JMS: Java Message Service
20
Example of SOAP request Example of SOAP request POST /serv/echo HTTP/1.1 Host: www.test.orgwww.test.org Content-Type: text/xml Content-Length: 357 SoapAction:” http://test.org/”http://test.org/ <SOAP-ENV:Envelope xmlns:SOAP-ENV = http://schemas…envelope”http://schemas…envelope SOAP-ENV:encodingStyle=“http://…/encoding”> Stay Classy, San Diego! 2006
21
Example of SOAP response HTTP/1.1 200 OK Content-Type: text/xml Content-Length: 343 <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://…/envelope/” SOAP-ENV:encoding=“http://…/encoding/”> http://../ I am Ron Burgundy? 2006
22
Web Service Toolkits Apache Axis: http://ws.apache.org/axis/http://ws.apache.org/axis/ –One of the most popular toolkits –User by several projects here like NBCR, GEON, CAMERA, GLEON Microsoft.NET: http://msdn.microsoft.com/webservices/ http://msdn.microsoft.com/webservices/ SUN: http://java.sun.com/webservices/http://java.sun.com/webservices/ Several other lightweight implementations: XSUL, ZSI (Python), SOAP::Lite (Perl)
23
Writing a Web Service: Apache Axis Define a Web service interface –Use WSDL to define port types, messages, and data types Use a stub compiler to generate Java sources –WSDL2Java generates client and server side bindings from the WSDL –Also generates Web Services Deployment Descriptors (WSDD)
24
Writing a Web Service: Apache Axis (contd.) Implement the service implementation (server- side) Deploy the service into a Container –Jakarta Tomcat: http://tomcat.apache.org/http://tomcat.apache.org/ –Hosting environment - provides desirable features such as reliability, scalability, security, etc Write custom clients based on the generated stubs –Can also write clients in other languages, viz. Python, Javascript, Perl, etc
25
Summary Hopefully, we have a better idea of what Web services are –What? How? Where? Next, we will see how Web services are applicable to the scientific community
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.