Presentation is loading. Please wait.

Presentation is loading. Please wait.

OOP IIICMU/MSCF1 Web Services Description Language ?url=/library/en-us/dnwebsrv/html/understandWSDL.asp Notes.

Similar presentations


Presentation on theme: "OOP IIICMU/MSCF1 Web Services Description Language ?url=/library/en-us/dnwebsrv/html/understandWSDL.asp Notes."— Presentation transcript:

1 OOP IIICMU/MSCF1 Web Services Description Language http://msdn.microsoft.com/library/default.asp ?url=/library/en-us/dnwebsrv/html/understandWSDL.asp Notes from article by Aaron Skonnard found at

2 OOP IIICMU/MSCF2 XSDL and WSDL XSDL (The XML Schema Definition Language) allows us to describe the structure of an XML message WSDL allows us to describe message exchanges

3 OOP IIICMU/MSCF3 WSDL A message exchange is called an operation Related operations are grouped into interfaces A binding specifies concrete details about what goes on the wire

4 OOP IIICMU/MSCF4 WSDL Describes the contract between applications Can be automatically generated from a collection of Java or C# classes Can be read by utilities that generate client side stub code or server side ties See wscompile (Sun’s J2EE) or wsdl.exe on the Microsoft side

5 OOP IIICMU/MSCF5 WSDL Structure <!– abstract definitions  <!– concrete definitions 

6 OOP IIICMU/MSCF6 WSDL Structure <!– Terms found in application code  <!– Handled by XML infrastructure 

7 OOP IIICMU/MSCF7 WSDL Structure - a container for XSDL Type definitions - element names may be defined here as well

8 OOP IIICMU/MSCF8 WSDL Structure For example, in Google’s WSDL,GoogleSearchResult is defined as a complex type with many elements.

9 OOP IIICMU/MSCF9 WSDL Structure - May have more than one part (think parameters) - Define the input or output of an operation - RPC style messages associate a name with a type (defined above) - Document style messages associate a name with an XML element

10 OOP IIICMU/MSCF10 WSDL Structure Two examples: - In Google’s WSDL, a doGoogleSearch message is defined with many parts of basic xsd types. - In Google’s WSDL, a doGoogleSearchResponse message is defined as of type GoogleSearchResult

11 OOP IIICMU/MSCF11 WSDL Structure - The definition of an interface or group of operations - The term “portType” will be replaced with the term “interface” in WSDL 1.2 - Each operation has a name and normally specifies both input and output messages

12 OOP IIICMU/MSCF12 WSDL Structure - For example, in Google’s WSDL, GoogleSearchPort contains three operations. - The operation doGoogleSearch has an input message (doGoogleSearch) and an output message (doGoogleSearchResponse.)

13 OOP IIICMU/MSCF13 WSDL Structure - Each binding has a unique name that is associated with a particular interface. - The protocol used is specified. - Details found here specify how the data will look on the wire.

14 OOP IIICMU/MSCF14 WSDL Structure - For example, in Google’s WSDL, the binding name GoogleSearchBinding is introduced and is associated with the interface GoogleSearchPort. - Each operation within that interface is described as soap operations.

15 OOP IIICMU/MSCF15 WSDL Structure - Defines a collection of ports (endpoints) that exposes a particular bindind - An address is associated with a binding

16 OOP IIICMU/MSCF16 WSDL Structure For example, in Google’s WSDL, the service name GoogleSearchService is introduced. The interface GoogleSearchPort is associated with the binding GoogleSearchBinding. The service element holds the address of the service.

17 OOP IIICMU/MSCF17 WSDL Message Exchange Patterns An interface may define four types of operations: One-Way The endpoint receives a message. Request-response The endpoint receives a message and returns a message. Solicit-response The endpoint sends a message and receives a response. Notification The endpoint sends a message.

18 OOP IIICMU/MSCF18 Writing A Google Client (1)Get the WSDL from http://www.google.com/apis/http://www.google.com/apis/ (2)Run wscompile on config.xml and generate an API from the WSDL (3)Examine the WSDL and note the service element The API has a GoogleSearchService_Impl() class with a getGoogleSearchPort() method. The GoogleSearchPort interface implements operations like doSpellingSuggestion and doGoogleSearch.

19 OOP IIICMU/MSCF19 A Google Client // Running a simple Google RPC client import javax.xml.rpc.Stub; import stubcode.*; public class MyGoogleClient{ private static String endpointAddress = "http://api.google.com/search/beta2";

20 OOP IIICMU/MSCF20 public static void main(String[] args) throws Exception { System.out.println("Contacting Google Web Service at " + endpointAddress); Stub stub = (Stub) (new GoogleSearchService_Impl().getGoogleSearchPort()); stub._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, endpointAddress); GoogleSearchPort gsp = (GoogleSearchPort)stub; String answer = gsp.doSpellingSuggestion( "n6lHU/FQFHIHzpbzRTPFvrUP4Cw+/k+N", "buuaty"); System.out.println(answer); }

21 OOP IIICMU/MSCF21 D:\McCarthy\www\95-702\examples\GoogleWSDLOnly>java MyGoogleClient Contacting Google Web Service at http://api.google.com/search/beta2 beauty

22 OOP IIICMU/MSCF22 Another simple client Look over some web services at http://www.capescience.com/webservices/index.shtml Suppose we choose Airport Weather http://www.capescience.com/webservices/airportweather/index.shtml We need the WSDL for this service. It’s found at http://live.capescience.com/wsdl/AirportWeather.wsdl

23 OOP IIICMU/MSCF23 Code Generation We will run wscompile against the WSDL Build a simple config.xml that points to the WSDL <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">

24 OOP IIICMU/MSCF24 Code Generation Set up for wscompile (provided with the J2EE Application server) Prior to running wscompile, my D:\Sun\AppServer\jdk\jre\lib\endorsed contains the following.jar files: activation, dom, jax-qname, jaxrpc-api, jsf-api mail, saaj-api, saaj-impl, xalan, xercesImpl, jaxrpc-impl.jar

25 OOP IIICMU/MSCF25 Code Generation Running wscompile C:> wscompile -gen:client -keep -d airport config.xml Generates client side files in the airport directory and keeps the source code.

26 OOP IIICMU/MSCF26 Examine the WSDL AirportWeather <soap:address location= "http://live.capescience.com:80/ccx/AirportWeather"/> The API has a AirportWeather_Impl class with a getStation() method. The Station interface implements operations like getSkyConditions, getLocation, and getVisibility.

27 OOP IIICMU/MSCF27 Write a Java Client import airport.*; public class Client { public static void main (String args[]) throws Exception { AirportWeather_Impl service = new AirportWeather_Impl(); Station stub = service.getStation(); String temp = stub.getTemperature ( "KCID" ); System.out.println ( temp ); }

28 OOP IIICMU/MSCF28 D:\McCarthy\www\95-702\examples\AirPort>java Client The Temperature at Cedar Rapids, The Eastern Iowa Airport, IA, United States is 46.9 F (8.3 C) The Output


Download ppt "OOP IIICMU/MSCF1 Web Services Description Language ?url=/library/en-us/dnwebsrv/html/understandWSDL.asp Notes."

Similar presentations


Ads by Google