Lecture 17

  • Uploaded by: Uday Kumar
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Lecture 17 as PDF for free.

More details

  • Words: 2,505
  • Pages: 23
Network Computing Lecture 17 Professor Louise E. Moser Spring 2008

W b Services Web S i „ „

Web Services are services offered by y one application pp to other applications over the World Wide Web In a typical Web Services scenario … …

„

„

A bbusiness i application li ti sends d a requestt to t a Web W b Service S i att a given URL using the SOAP protocol over HTTP The Web Service receives the request, processes it, and returns a response

Web Services and their consumers are typically businesses, making g Web Services Business-to-Business ((B2B)) applications A business can be both a provider and a consumer of Web Services 2

E Example l Web W bS Services i „

A Stock Quote Service where …

The request from the client asks for the current price of a specific stock … The response of the Web Service is the price of that stock „

A Parcel P l Delivery D li Service S i where h …

The request contains one or more delivery destinations … The response of the Web Service is the most cost-effective delivery route „

„

The time it takes to calculate the best route depends on the complexity of the route, so the response is sent separately from the request, i.e., asynchronously

A Wholesale Coffee Bean Distributor which is …

A consumer when it uses a Web Service to check on the availability of coffee beans … A provider when it supplies a prospective customer with different suppliers' prices for coffee beans

3

Use off W U Web bS Services i iin B2B Applications „ „

Company A (customer) orders goods from Company B (distributor) Company B checks the availability of the goods from Company C (supplier) and arranges payment and shipping of the goods to Company A, without human intervention Company A (customer)

Company B (distributor)

Company C (supplier)

Web Service Client

Web Service

Web Service

Web services middleware other tiers and operating system

1. Order the item 3. Arrange payment & shipping

Web services middleware other tiers and operating system

2. Check availability

Web services middleware other tiers and operating system

4

W b Services Web S i A Architecture hit t „

The Web Services architecture is based on the following technology and standards …

eXtensible Markup Language (XML) - Defines the syntax of Web Services documents so that the information in those documents is self-describing

…

Simple Object Access Protocol (SOAP) - Provides a standard way to encode d diff different protocols l andd interaction i i mechanisms h i in i XML, XML so that XML documents can be easily exchanged across the Internet

…

Web Services Description Language (WSDL) - An advanced form of Interface Definition Language (IDL) that has been augmented to define additional aspects of a service description

…

Universal Description p Discovery y and Integration g ((UDDI)) - Used byy the registry where service providers publish and advertise available services, and clients query and search for services 5

W b Services Web S i A Architecture hit t Company p yA (service requester)

Company p yB (service provider)

Web Service Client

Web Service

Web services middleware (internal middleware)

Web services middleware (internal middleware)

other tiers and operating system

3. Use the service

other tiers and operating system

1. Publish the service description

2. Find the service Service Registry ((external middleware)) service descriptions Web services middleware ((internal middleware)) other tiers and operating system

6

W b Services Web S i „

A Web Service is a server-side application pp that implements p procedures that clients can call, and that is deployed in a server-side container …

„

A Web Service can make itself available to potential clients via a Web Services Description Language (WSDL) document …

„

The server-side Th id container t i can be b a Servlet S l t container t i suchh as Apache A h Tomcat, or an EJB container in a J2EE application server such as JBoss

A WSDL description is an XML document that gives information about a Web Service (its name, name operations that can be called on it, it parameters for those operations, location to send requests)

A Web client can use a WSDL document to discover what the Web Service offers and how to access it 7

W b Services Web S i ((cont) t) „

An XML business registry g y pprovides WSDL documents that contain such information about Web Services

„

There are two standards for business registries g …

ebXML Registry and Repository standard

…

Universal Description, Discovery, and Integration (UDDI) project

„

When searching an XML business registry, a client might get several WSDL documents, one for each Web Service that satisfies its search criteria

„

The most important requirement of a Web Service is that it is interoperable across clients and servers 8

I t Interoperability bilit „

SOAP and WSDL make interoperability possible … SOAP

defines standards for XML messaging and mapping of data types, so that an application adhering to those standards can communicate with each other „

A JAX-RPC remote procedure call is implemented as a request-response request response SOAP message

„

With JAX-RPC, a client written in a language other than Java can access a Web Service developed and deployed on the Java platform

„

Conversely, C l a client li t written itt in i Java J can communicate i t with ith a Web Service developed and deployed on another platform

… WSDL

allows you to describe a Web Service as an XML document, which makes the description portable 9

Th Role The R l off XML and dJ Java „

XML makes data portable and allows data to be integrated … Internally, within

an enterprise for sharing legacy data among departments … Externally, between enterprises for sharing data „

„

Java makes code portable and allows enterprises using different computing platforms to communicate with each other A J2EE application server provides support for security, transactions, connection pooling, etc, that can be used for secure, secure high performance, performance and scalable Web Services 10

A Java J Web W bS Service i „

A Java Web Service basically consists of two files that contain … An

interface that declares the Web Service Service'ss remote methods

…A

„

class that implements p those methods

The interface extends java.rmi.Remote and its methods throw a java.rmi.RemoteException java rmi RemoteException

11

J Java APIs API for f XML „

The Java Web Services Developer p Pack ((WSDP)) supports Java APIs for XML that make it easier to use XML from Java application programs … The

Java WSDP includes JAR files implementing the APIs, as well as documentation and examples … The examples in the Java WSDP run in the Tomcat container and also in an EJB container in a J2EE application server, such as the Sun One application server where the Java WSDP JAR files are installed „

The Java APIs for XML fall into two categories … Document-oriented D i d … Procedure-oriented

12

J Java APIs API for f XML ((cont) t) „

Document-Oriented … Java

API for XML Processing (JAXP) - Processes XML documents using various parsers … Java J A hit t Architecture for f XML Binding Bi di (JAXB) - Processes P XML documents using schema-derived Java Beans classes … SOAP with Attachments API for Java ((SAAJ)) - Sends SOAP messages over the Internet in a standard way „

Procedure-Oriented … Java

API for XML Registries (JAXR) - Provides access to business registries and allows sharing of information … Java API for XML XML-based based RPC (JAX-RPC) (JAX RPC) - Sends SOAP method calls to remote computers across the Internet 13 and receives the results

SOAP for f b both th SAAJ and d JAX JAX-RPC RPC „ „

The Simple p Object j Access Protocol ((SOAP)) defines a standard for the exchange of XML documents The SOAP specification available at http://www.w3.org/ defines … What

is required and optional in a SOAP message … How H ddata can bbe encoded d d and d transmitted i d „ „ „

SAAJ is the lower-level alternative to JAX-RPC for SOAP messaging Both SAAJ and JAX-RPC are based on SOAP We will learn more about SOAP in the next lecture 14

JAX RPC JAX-RPC „ „

JAX-RPC is the Java API that allows you to develop and use Web W b Services S i JAX-RPC is based on Remote Procedure Call (RPC) …

A client of a Web Service makes a Java method call „

…

On the server side, the Web Service simply implements the application-level service that it offers „

„

All the internal marshalling, unmarshalling, and transmission are done automatically under the covers

It does not need to bother with the underlying implementation mechanisms

JAX-RPC uses the request/response synchronous (blocking) model, although it can also provide asynchronous communication and one-way one way messaging messaging, which allows you to send documents or document fragments 15

St b and Stubs d Ti Ties „

„

A tool named wscompile uses a WSDL document to create stubs, the l low-level l l classes l that th t a client li t needs d to t be b able bl to t communicate i t with ith a remote Web Service Another tool named wsdeploy creates ties (skeletons), the low-level classes l that h the h server needs d to communicate i with i h a remote client li …

„

wsdeploy can also be used to create WSDL documents

The JAX-RPC mechanism uses the stubs and ties under the covers …

On the client side, it converts the client's remote method call into a SOAP message and sends it to the Web Service as an HTTP request … On the server side, the JAX-RPC runtime system receives the client’s request, translates l the h SOAP message iinto a method h d call, ll andd invokes i k the h method h d … Next, the Web Service processes the request … The JAX-RPC runtime system goes through similar steps to return the result to the client „

These mechanisms are invisible to the clients and the Web Services 16

C Creating ti aJ Java W Web bS Service i „ „

„ „

„

First, you write the Web Service's interface and implementation class Next, you run the mapping tools, which generate the stub and tie classes from the interface and its implementation, and also other classes as needed You can also use the mapping pp g tools to create the WSDL description for the Web Service Next, you package the Web Service in a W bA Web Application li ti Archive A hi (WAR) fil file, to t make k it easy to distribute and install Finally, you deploy the Web Service 17

Example: Coffee Order Interface „

A wholesale coffee distributor makes methods in the CoffeeOrderIF interface available to prospective customers package coffees; import java.rmi.Remote; import java.rmi.RemoteException; public interface CoffeeOrderIF extends Remote { public Coffee[] getPriceList() throws RemoteException; public String orderCoffee(String coffeeName coffeeName, int quantity) throws RemoteException; }

„ „ „

The method getPriceList() returns an array of Coffee objects, objects each of which contains a name field and a price field There is one Coffee object for each of the coffees that the distributor currently has for sale The method orderCoffee() returns a String that confirms the orders 18 or states that the coffee is on back order

Example: Coffee Order Implementation package coffees; public class CoffeeOrderImpl implements CoffeeOrderIF { // Query the company's database to get the current information // and return the result as an array of Coffee objects public Coffee[] getPriceList() throws RemoteException { // Implementation omitted } // Query the company's database to see if the particular // coffee ff is i available il bl in i the h quantity i specified. ifi d // If so, set the internal order process in motion and send // a reply to the customer that the order will be filled // Iff not,, place p an order to replenish p the supply pp y and // notify the customer that the coffee is back ordered public String orderCoffee(String coffeeName, int quantity) throws RemoteException { // Implementation omitted } }

19

Packaging a Web Service in a WAR File „

A Web Application Archive (WAR) file is a JAR file that contains all of the files needed for the Web application in compressed form …

„

An XML Deployment Descriptor file, named web.xml, that contains information needed to deploy the service, must be present in every WAR file …

„

For example, the CoffeeOrder Web Service might be packaged in the j jaxrpc-coffees.war ff fil file

For example, if a Servlet engine such as Tomcat is used, the XML Deployment Descriptor includes the Servlet name and description, the Servlet class, initialization parameters, and other startup information

A Configuration file is one of the files, referenced in a web.xml pp g tool file,, that is automaticallyy ggenerated byy the mapping …

For example, in the CoffeeOrder Web Service, this Configuration file is named CoffeeOrder_Config.properties 20

D l i Deploying aW Web bS Service i „

Deploying p y g the CoffeeOrder ff Web Service in a Tomcat container is accomplished by copying the jaxrpc-coffees.war file to the Tomcat webapps directory

„

Deploying the CoffeeOrder Web Service within a EJB container in a J2EE application server is facilitated by deployment tools supplied by the J2EE application server vendor

21

Coding the Client package coffees; public class CoffeeClient { public static void main(String[] args) { try { CoffeeOrderIF coffeeOrder = new CoffeeOrderServiceImpl().getCoffeeOrderIF(); Coffee[] priceList = coffeeOrder.getPriceList(); for (int i = 0; i < priceList.length; i++) { System.out.print(priceList[i].getName() + " "); S System.out.println(priceList[i].getPrice()); i l ( i Li [i] P i ()) } catch (Exception ex) { ex.printStackTrace(); p (); }}}} „ „

The class CoffeeOrderServiceImpl is generated by the mapping tool; it is a stub factory that creates an instance coffeeOrder of CoffeeOrderIF The variable coffeeOrder represents a client stub that can be used to call the getPriceList() method of CoffeeOrderIF 22

Invoking a Remote Method „

First, the client must discover the Web Service …

The JAX Th JAX-RPC RPC runtime ti can ddetermine t i the th CoffeeOrder C ff O d Web Service URI from its WSDL description … If a WSDL document is not used, you need to supply the Web Service URI as a command-line argument at the client „

Then, the client can invoke one of the methods of the Web Service, e.g., to invoke the getPriceList() method of the CoffeeOrder Web Service, you would type on the command-line java coffees.CoffeeClient …

This is a static remote method call that determines the RPC at compile time … It is also p possible to make a dynamic y remote method call at run time, using a dynamic proxy or the Dynamic Invocation Interface (DII), although doing so is quite expensive 23

Related Documents

Lecture 17
November 2019 26
Lecture 17
October 2019 23
Lecture 17
May 2020 14
Lecture 17
November 2019 23
Lecture 17
April 2020 11
Lecture 17
October 2019 30

More Documents from ""

Web Services Slides
November 2019 13
Wsdlcontracts
November 2019 13
Jax-ws
November 2019 13
Wsdl11soap12
November 2019 17
Hibernate Join Fetch
October 2019 19