Presentation is loading. Please wait.

Presentation is loading. Please wait.

03-60-5691 Web Service Jianguo Lu. 03-60-5692 SW and WS WWW (HTML, HTTP, URI) Semantic Web (RDF, RDFS, OWL) Web Service (WSDL, SOAP, UDDI) SWS, Intelligent.

Similar presentations


Presentation on theme: "03-60-5691 Web Service Jianguo Lu. 03-60-5692 SW and WS WWW (HTML, HTTP, URI) Semantic Web (RDF, RDFS, OWL) Web Service (WSDL, SOAP, UDDI) SWS, Intelligent."— Presentation transcript:

1 03-60-5691 Web Service Jianguo Lu

2 03-60-5692 SW and WS WWW (HTML, HTTP, URI) Semantic Web (RDF, RDFS, OWL) Web Service (WSDL, SOAP, UDDI) SWS, Intelligent Web Agent

3 03-60-5693 Service Oriented Architecture Discovery agency ProviderRequester interact find publish

4 03-60-5694 A concrete SOA UDDI Registry WSDL Web Service Provider SOAP Service Consumer Points to description publish Describes Service Finds Service Communicates with XML Messages

5 03-60-5695 Web service definitions A web service is an application accessible to other applications over the internet “Self-contained, modular business applications that have open, internet-oriented, standard based interfaces”—UDDI Consortium “a software application identified by a URI, whose interfaces and bindings are capable of being defined, described, and discovered as XML artifacts. A web service supports direct interactions with other software agents using XML-based messages exchanged via Internet-based protocols.” --W3C “a standardized way of integrating Web-based applications using the XML, SOAP, WSDL, and UDDI open standards over an Internet protocol backbone. XML is used to tag the data, SOAP is used to transfer the data, WSDL is used for describing the service available, and UDDI is used for listing what services are available”--Webopedia More concrete

6 03-60-5696 Web Service definition “encapsulated, loosely coupled, contracted software objects offered via standard protocols” --ZapThink Research –Encapsulated Web Service implementation is invisible to entities outside the service Exposes an interface but hides details –Loosely Coupled Service and consumer software can be redesigned independently

7 03-60-5697 Why Web Service “Just as the web revolutionized how users talk to applications, XML transforms way applications talk to each other”—Bill Gates “Web services will be bigger than Java or XML”. – Rod Smith, VP of Emerging Technology, IBM “Web services are expected to revolutionize our life in much the same way as the internet has during the past decade or so.”— Gartner “By 2004, 40% of the financial services transactions and 35% of online government services will be web service-based.” –Gartner There are web services for Google, Amazon, Fedex, EBay … … It is another hype?

8 03-60-5698 History of Interface Definition Languages (IDLs) IDL has a long history in distributed computing –DCE (Distributed Computing Environment) –CORBA IDL, OMG (Object Management Group) –COM IDL, Microsoft –WSDL Traditional IDLs –Specifying what to call: the operation names, their signatures, exceptions. This is the job of IDL. –Agreeing on how to make an invocation: the mechanism of naming, activation, data encoding. This is what distributed standards such as CORBA or COM do. WSDL needs to specify the both: the operation provided by the service, and the mechanism to access the service.

9 03-60-5699 Web Service Description Language WSDL defines –What the service is: the operations the service provides, including the signature of the operation –- what –Access specification: details of the data format and protocol necessary to access the service’s operation–- how –Location of the service: details of the network address, such as a URL –- where

10 03-60-56910 WSDL functionality view OperationPort Type MessageBinding PortService Supports Input & Output Provides How to encode Formats & Protocols How to invoke Implements Interface Endpoints –What –how –where Legend: In WSDL 2.0, portType is changed to interface.

11 03-60-56911 WSDL document structure view WSDL specification abstract part types messages operations port types concrete part bindings services and ports

12 03-60-56912 <definitions name="Procurement" targetNamespace="http://example.com/procurement/definitions" xmlns:tns="http://example.com/procurement/definitions" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" > <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> port and service binding operation and port type messages abstract part concrete part

13 03-60-56913 Returns price of a book at BN.com given an ISBN number

14 03-60-56914 Visual representation

15 03-60-56915 WSDL structure—interconnection view WSDL document Types (type information for the document, e.g., XML Schema) Message 1Message 4Message 3Message 2 Operation 1Operation 3Operation 2 Message 5 Interface (abstract service) binding 1 endpoint 1 binding 2 endpoint 2 binding 3 endpoint 3 binding 4 endpoint 4 Service (the interface in all its available implementations) Abstract description of the service Concrete description of the service By Gustavo Alonso and Cesare Pautasso

16 03-60-56916 A WSDL example <definitions name="PriceCheck" targetNamespace="http://www.skatestown.com/services/PriceCheck" xmlns:pc="http://www.skatestown.com/services/PriceCheck" xmlns:avail="http://www.skatestown.com/ns/availability" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> … This example is from Steve Graham et al: Building Web Services with Java

17 03-60-56917 PortType defines the interface of web service. Just as Java Interface declaration; –Will change the name to in WSDL 2.0. It consists of a sequence of operation declarations. WSDL can have zero or more s. Typically just one. It has a name attribute, must be unique. –The binding will refer the portType by its name

18 03-60-56918 Operation Operation defines a method signature; –Name, input, output, and fault Input and output elements are associated with messages; Different combinations of input/output define different operations types.

19 03-60-56919 Operation Types The request-response type is the most common operation type, but WSDL defines four types: –Request-response: The operation can receive a request and will return a response –One-way: The operation can receive a message but will not return a response. –Notification:The operation can send a message but will not wait for a response –Solicit-response:The operation can send a request and will wait for a response Different types are defined by decided by the order/occurrences of input and output.

20 03-60-56920 Messages Describe the abstract form of input, output, or fault. A WSDL file can have zero or more messages. Each message has a name, which is unique within the document. Each message has a collection of elements.

21 03-60-56921 Part A element can be compared to a parameter in a method. A part element has two properties: one is name, the other is its kind. Kind can be a type or an element –Element refers to an element defined in XML Schema –Type refers to a simpleType or a complexType in XSD In corresponding sku definition is:

22 03-60-56922 Types in WSDL <xsd:schema targetNamespace="http://www.skatestown.com/ns/availability" > <xsd:element name="StockAvailability" type="avail:availabilityType" /> The default type system is XML Schema; –Theoretically you can use any type system, such as Java types. To be used in element; We can also import XML Schemas

23 03-60-56923 SOAP request message <soapenv:Envelope xmlns:soapenv=“http://schema.xmlsoap.org/soap/evelope/” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”> 123 Relevant part of the WSDL file: Envelope Body Message Payload Header #1 Header #0

24 03-60-56924 SOAP response message <soapenv:Envelope xmlns:soapenv= … xmlns:xsd=… xmlns:xsi=… > 123 100.00 12 Relevant part of the WSDL file: <xsd:complexType name="availabilityType">

25 03-60-56925 Binding <soap:operation soapAction = "http://www.skatestown.com/services/PriceCheck/checkPrice" /> Name of the binding should be unique; Link to the portType is achieved by the portType name –This explains why portType name should be unique. Typically, there is only one element; Defines: –Invocation style –SOAPAction –Input message appearance –Output message appearance

26 03-60-56926 Invocation Style All operations in this portType use SOAP messages; The style attribute indicates that operations will follow a document-centric approach; –The body of the SOAP message is a straight XML document; –This is in contrast to RPC style;

27 03-60-56927 RPC style and document style When using Document style, you can structure the contents of the SOAP Body any way you like. When using RPC style, the contents of the SOAP Body must conform to a structure that indicates the method name and contains a set of parameters. It looks like this:......... Document style:... RPC style:...

28 03-60-56928 Service <wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.0" /> <soap:address location = "http://www.skatestown.com/services/PriceCheck"/> Contains a set of elements; combines the interface binding with a network address specified by a URI; A web service can be available in different web addresses;

29 03-60-56929 Implications of WSDL Interaction mode: –Not only expose the operations to invoke, but also a service behave like a client. Blurring the distinction between a client and server. Does not presume a particular form of communication, protocol, data encoding. –You can use HTTP, or SMTP, or FTP, … –You can use SOAP, or others

30 03-60-56930 WSDL 1.1 vs WSDL 2.0 WSDL 2.0 Endpoints Interfaces –Support for Interface inheritance Removed operation overloading Messages defined through Types Operations nested inside Interfaces Endpoints nested inside Bindings 9 Message Exchange Patterns New: Features and Properties WSDL 1.1 Ports PortTypes Supported operation overloading Messages composed of Parts 6 Top level elements: Messages, Operations, PortTypes, Bindings, Ports and Services. 4 Transmission Primitives –(One-way, Request-Response, Solicit-Response, Notification)

31 03-60-56931 Tools WSDL parser: WSDL4J Apache Axis –Invoking SOAP web service; –Translate WSDL to Java, and vice versa; –Mapping Java into XML Schema, and vice versa; –Host web service; –API for manipulating SOAP;

32 03-60-56932 Mapping between Java and WSDL in JAX-RPC A simple example public interface FooBar extends java.rmi.Remote{ public float foo(java.lang.String para1) throws java.rmi.RemoteException; }

33 03-60-56933 Multiple input parameters public interface FooBar extends java.rmi.Remote{ public float foo(String param1, int param2, boolean param3) throws java.rmi.RemoteException; }

34 03-60-56934 Multiple output parameters public interface FooBar extends java.rmi.Remote{ public void foo(String param1, javax.xml.rpc.holders.IntHolder param2, javax.xml.rpc.holders.BooleanHolder param3, javax.xml.rpc.holders.FloatHolder param3, ) throws java.rmi.RemoteException; }

35 03-60-56935 Mapping XML Schema to Java public class Address { private String street; private String city; public String getCity(){return city; } public void setCity(String c){city=c; } … } Class has to have correct getters and setters; In axis, you can use WSDL2Java and Java2WSDL to do the mapping.


Download ppt "03-60-5691 Web Service Jianguo Lu. 03-60-5692 SW and WS WWW (HTML, HTTP, URI) Semantic Web (RDF, RDFS, OWL) Web Service (WSDL, SOAP, UDDI) SWS, Intelligent."

Similar presentations


Ads by Google