Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Overview of Web Service Standards Tevfik Bultan Department of Computer Science University of California, Santa Barbara.

Similar presentations


Presentation on theme: "An Overview of Web Service Standards Tevfik Bultan Department of Computer Science University of California, Santa Barbara."— Presentation transcript:

1 An Overview of Web Service Standards Tevfik Bultan Department of Computer Science University of California, Santa Barbara

2 Outline What are Web Services? Web Service Standards Stack Web Services: Challenges and How to Address Them XML, XPATH XML Schema, MSL WSDL BPEL

3 Web Revolution Sharing information using Internet has been a big success Key components –Internet –Internet protocols such as TCP/IP –WWW and HTTP –HTML format –Web browsers Sharing information using the http+html+browser framework has been successful in a lot of applications –List your favorite web sites here

4 What Next? There are applications where http+html+browser framework does not work –Business to business applications HTML is developed for displaying information in a way that is understandable for humans HTML is not very useful in helping computers understand the content Basic Question Can we extend the interaction and sharing that WWW created among humans to interaction and sharing among computers where the computers share information and collaborate using the Internet?

5 More Questions What should be the format that the computers share the information? How will the information format be defined? What protocol will the computers use to send and receive information? How can a computer find out about the information provided by another computer? How can we describe the interaction among multiple computers?

6 Some Proposed Answers What should be the format that the computers share the information? –XML How will the information format be defined? –XML Schema What protocol will the computers use to send and receive information? –SOAP How can a computer find out about the information provided by another computer? –WSDL How can we describe the interaction among multiple computers? –BPEL, WSCI

7 Web Services Standards Stack Data Type Service Behavior Message BPEL, WSCI Web Service Standards Implementation Platforms Microsoft.Net, Sun J2EE WSDL SOAP XML Schema XML

8 What are Web Services? Web services can be described as –web accessible software that provide interfaces for service description, discovery, and interaction

9 Web Services: Challenges Web services implemented using different implementation platforms should be able to interact with each other –There are different implementation platforms such as.Net or J2EE It should be possible to modify an existing web service without modifying other services that interact with it Web services should be able tolerate pauses in availability of other services and slow data transmission

10 Web Services: Challenges Can’t we solve these challenges with existing technologies? Existing technologies for distributed computing such as CORBA and RMI require tight coupling among applications It is not possible to specify interactions among services using stateless protocols

11 Web Services: Characteristics Web services address these challenges with the following common characteristics: Standardized data transmission via XML Loose coupling among interacting web services through standardized interfaces Asynchronous message passing

12 Web Service Standards Stack Data Type Service Behavior Message BPEL, WSCI Web Service Standards Implementation Platforms Microsoft.Net, Sun J2EE WSDL SOAP XML Schema XML

13 An Example: Stock Analysis Service The stock analysis service involves: –three peers Investor, Stock Broker Firm, and Research Department Here is how the stock analysis service operates: Investor initiates the stock analysis service by sending a register message to the Stock Broker Firm The Stock Broker Firm may accept or reject the registration If the registration is accepted, the Stock Broker Firm sends an analysis request to the Research Department

14 An Example: Stock Analysis Service Research Department sends the results of the analysis directly to the Investor as a report After receiving a report the Investor can either send an ack to the Stock Broker Firm or cancel the service Then, the Stock Broker Firm either sends the bill for the services to the Investor, or continues the service with another analysis request

15 IBlink: register() IBlink: reject() IBlink: accept() RIlink: report() IBlink: ack() IBlink: cancel() RIlink: bill() Investor reject() accept() bill() Callback port report() Data port IBlink: register() IBlink: reject() IBlink: accept() BRlink: request() IBlink: ack() IBlink: cancel() RIlink: bill() Stock Broker Firm register() cancel() Service Port request() Delegate Port Service PortOutput Port RIlinkBRlink IBlink BRlink: request() RIlink: report() Research Dept. ack() Stock Analysis Service

16 In the following slides I will discuss how different parts of the stock analysis service can be described using emerging web service standards –Message contents: XML –Message type: XML Schema –Message ports: WSDL –Behavior: BPEL

17 XML (eXtensible Markup Language) XML is a markup language like HTML Similar to HTML, XML tags are written as followed by HTML vs. XML –In HTML, tags are used to describe the appearance of the data... –In XML, tags are used to describe the content of the data rather than the appearance XML documents can be modeled as trees where each internal node corresponds to a tag and leaf nodes correspond to basic types

18 investorID Register 1234 requestList AAAABBBB payment accountNum 56 stockID An XML Document and Its Tree 1234 AAAA BBBB 56

19 XML Schema XML provides a standard way to exchange data over the internet. However, the parties which exchange XML documents still have to agree on the type of the data –what are the tags that will appear in the document, in what order, etc. XML Schema is a language for defining XML data types

20 MSL (Model Schema Language) MSL (Model Schema Language) is a compact formal model language which captures most features of XML Schema Basic MSL syntax g   | b | t [ g ] | g { m, n } | g, g | g & g | g | g g is an XML type (i.e., an MSL type expression)  is the empty sequence b is a basic type such as string, boolean, int, etc. t is a tag m and n are positive integers [ ] { } &, | are MSL type constructors

21 MSL Semantics t [ g ] denotes a type with root node labeled t with children of type g g { m, n } denotes a sequence of size at least m and at most n where each member is of type g g 1, g 2 denotes an ordered sequence where the first member is of type g 1 and the second member is of type g 2 g 1 & g 2 denotes an unordered sequence where one member is of type g 1 and the other member is of type g 2 g | g denotes a choice between type g 1 and type g 2, i.e., either type g 1 or type g 2, but not both

22 An MSL Type Declaration and an Instance Register[ investorID[xsd:int] & requestList[ stockID[xsd:string]{1,50} ] & payment[ creditCardNum[xsd:int] | accountNum[xsd:int] ] 1234 AAAA BBBB 56

23 An MSL Type Declaration and an Instance Register[ investorID[1234] & requestList[ stockID[AAAA], stockID[BBBB] ] & payment[ accountNum[56] ] ] MSL can also be used as a compact language for specifying data instances investorID Register 1234 requestList AAAABBBB payment accountNum 56 stockID

24 XPATH In order to write specifications or programs that manipulate XML documents we need: –an expression language to access values and nodes in XML documents XPATH is a language for writing expressions (queries) that navigate through XML trees and return a set of answer nodes An XPATH query defines a function which –takes and XML tree and a context node (in the same tree) as input and –returns a set of nodes (in the same tree) as output

25 XPATH Syntax Basic XPATH syntax: q . |.. | b | t | * | / q | // q | q / q | q // q | q [ q ] | q [ exp ] q is an XPATH query exp denotes a predicate on basic types, i.e., on the leaf nodes of the XML tree b denotes a basic type such as string, boolean, int, etc. t denotes a tag

26 XPATH Semantics Given an XML tree and a node n as a context node. returns n.. returns the parent of n Given an XML tree and a set of nodes * returns all the nodes b returns the nodes that are of basic type b t returns the nodes which are labeled with tag t

27 XPATH Semantics Contd. Starting at the context node / q returns the nodes that match q // q returns the nodes that match q starting at any descendant q 1 / q 2 returns each node which matches q 2 starting at a child of a node which matches q 1 q 1 // q 2 returns each node which matches q 2 starting at a descendant of a node which matches q 1 q 1 [ q 2 ] applies q 2 to the children of the nodes which match q 1 q [ exp ] returns the nodes that match q and for children of which the expression exp evaluates to true

28 Example XPATH Queries investorID Register 1234 requestList AAAABBBB payment accountNum 56 stockID //payment/* returns the node labeled accountNum /Register/requestList/stockID/string returns the nodes labeled AAAA and BBBB //stockID[string=AAAA]/string returns the node labeled AAAA //*[int>100]/int returns the node labeled 1234

29 WSDL (Web Services Description Language) WSDL is an XML-based language used to declare and publish the public interfaces of Web services With the WSDL description, the invoker of a particular web service can learn about –the web service location –the calls supported by the web service –the format of the messages to place a call WSDL uses XML Schema to define message types –Contents of the messages are XML documents WSDL specifications declare message ports –input ports, output ports etc.

30 WSDL Example: Declaring Message Types <definitions targetNamesspace = "http://..." xmlns:broker = "http://.../broker/broker.xsd">...

31 WSDL Example: Declaring Message Types The following is a paragraph taken from broker.xsd used in the Register declaration in the previous slide <xsd:element name = "stockid" type="string" minOccurs="1" maxOccurs="10"/>

32 WSDL Example: Declaring Message Ports...

33 IBlink: register() IBlink: reject() IBlink: accept() RIlink: report() IBlink: ack() IBlink: cancel() RIlink: bill() Investor reject() accept() bill() Callback port report() Data port IBlink: register() IBlink: reject() IBlink: accept() BRlink: request() IBlink: ack() IBlink: cancel() RIlink: bill() Stock Broker Firm register() cancel() Service Port request() Delegate Port Service PortOutput Port RIlinkBRlink IBlink BRlink: request() RIlink: report() Research Dept. ack() Stock Analysis Service

34 BPEL (Business Process Execution Language) The simple function call model employed by WSDL makes it hard to capture long running complex composite web services such as the stock analysis service –the ordering between the calls can not be expressed The control flow (i.e., the behavior) of the peers of the stock analysis service can be specified using BPEL

35 BPEL: Partner Links In the BPEL specification, first a set of partner-links are declared –The partner links for the example in the stock analysis service are named IBLink, BRLink and RLink Each partner link connects a pair of port declared in the WSDL specification After the declaration of the partner links, BPEL specification for each peer includes the control flow of the corresponding peer with the associated receive and send operations through the partner links and WSDL ports

36 BPEL: Partner Links <variable name = "registerVar" messageType = "Register"/>...

37 BPEL: Control Flow BPEL borrows many control structures from common programming languages, such as –sequence, while, switch, etc. The atomic operations in BPEL are –invoke, receive, and reply used for sending and receiving messages; and –assign used for updating values of the variables. Since assignments are conducted on complex type variables (WSDL messages declared as XML Schema types), BPEL supports XPath expressions to identify the sources and the destinations of the assignments statements.

38 BPEL: Control Flow <receive partnerlink = "IBlink“ operation = "register“ variable = "registerVar">...... <invoke partnerlink = "BRlink" operation = "request“ variable = "requestVar" >......

39 Web Services Standards Stack Data Type Service Behavior Message BPEL, WSCI Web Service Standards Implementation Platforms Microsoft.Net, Sun J2EE WSDL SOAP XML Schema XML


Download ppt "An Overview of Web Service Standards Tevfik Bultan Department of Computer Science University of California, Santa Barbara."

Similar presentations


Ads by Google