tutorial on web services
play

Tutorial on Web Services HY559 Infrastructure Technologies for - PowerPoint PPT Presentation

Tutorial on Web Services HY559 Infrastructure Technologies for Large- Scale Service-Oriented Systems Jason Polakis polakis@csd.uoc.gr Required Software Eclipse IDE for Java developers EE http://www.eclipse.org/downloads/ Netbeans IDE


  1. Tutorial on Web Services HY559 Infrastructure Technologies for Large- Scale Service-Oriented Systems Jason Polakis polakis@csd.uoc.gr

  2. Required Software • Eclipse IDE for Java developers EE http://www.eclipse.org/downloads/ • Netbeans IDE http://netbeans.org/downloads/ • Apache Tomcat • Apache Tomcat http://tomcat.apache.org/ • Apache AXIS2 http://axis.apache.org/axis2/java/core/download.cgi • Apache JUDDI http://juddi.apache.org/releases.html

  3. Getting Software • Either directly from given links, or: • In Ubuntu (as root) • To search for software – apt-cache search <program name> – Returns list of <packages> with short description • To install software – apt-get install <package> – Installs software, as well as dependencies

  4. Web Services “Any piece of software that makes itself available over the Internet and uses a standardized XML messaging system” • Extremely available • Language and platform independent • Distributed application components • Discoverable via a simple find mechanism • Components of Web Services – SOAP (Simple Object Access Protocol) – WSDL (Web Services Description Language) – UDDI (Universal Description, Discovery and Integration)

  5. Web Service Architecture • Web Service Protocol Stack – Service transport (transport messages between applications) • HTTP, SMTP, FTP – XML messaging (encode messages in common XML format ) – XML messaging (encode messages in common XML format ) • XML-RPC, WS-Addressing, and SOAP – Service description (describe public interface of service) – Service discovery (centralize services into common registry) • Programming models: – REST-based web services – SOAP-based web services

  6. SOAP-based Services • Use SOAP – protocol for exchanging structured information • Use WSDL – xml-based language for describing Web services • WSDL file – created based on the JAVA code in the service – created based on the JAVA code in the service – exposed on the net • To use service, must create a client – based on WSDL info • Messages exchanged in SOAP • Java API for XML Web Services (JAX-WS) model also used for SOAP services. Can use instead of AXIS2.

  7. WSDL example • Web service • Single publicly available function sayHello – argument: string – return value: string

  8. WSDL Definitions element <definitions name="HelloService" targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> ................................................ ................................................ </definitions> • container of all other elements • specifies that this document is the HelloService • Namespace: abstract container providing context -> logical grouping of code • specifies a targetNamespace attribute (XML convention) → enables self reference • specifies a default namespace • specifies numerous namespaces that will be used

  9. WSDL types <types> <schema targetNamespace="http://example.com/stockquote.xsd" • Describes data types used xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> between client and server <complexType> <all> • Uses W3C XML Schema <element name="tickerSymbol" type="string"/> specification as default specification as default </all> choice to define data types </complexType> </element> • If the service uses only XML <element name="TradePrice"> Schema built-in simple <complexType> <all> types, such as strings and <element name="price" type="float"/> integers, then types element </all> </complexType> is not required </element> </schema> </types>

  10. WSDL message <message name="SayHelloRequest"> <part name="firstName" type="xsd:string"/> </message> <message name="SayHelloResponse"> <part name="greeting" type="xsd:string"/> </message> • • <message>: describes the data exchanged between service providers and consumers • Each Web Service has two messages: input and output • Input: parameters for the Web Service • Output: return data from the Web Service • Each message contains zero or more <part> parameters, one for each parameter of the function • Each <part> parameter associates with a concrete type defined in the <types> container element

  11. WSDL portType element <portType name="Hello_PortType"> <operation name="sayHello"> <input message="tns:SayHelloRequest"/> <output message="tns:SayHelloResponse"/> </operation> </portType> • • Basically, defines an interface: how unrelated objects communicate with each other • "portType“ used to define one or multiple operations • Operation: a sequence of messages to form an input-output pattern • WSDL supports four basic patterns of operation – One-way (input) – Request-response (input, output) – Solicit-response (output, input) – Notification (output) • Is an abstract definition

  12. WSDL Binding Element • Concrete implement. of <binding name="Hello_Binding" type="tns:Hello_PortType"> portType <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> • How portType operation will <operation name="sayHello"> be transmitted <soap:operation soapAction="sayHello"/> • Where service is located <input> <soap:body • name attribute defines the encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name of the binding namespace="urn:examples:helloservice" • type attribute points to the use="encoded"/> </input> port for the binding <output> • Binding: format of messages, <soap:body transport type (http) encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" • Operation: specifies that namespace="urn:examples:helloservice" use="encoded"/> soapAction HTTP header </output> identifies the service </operation> • Body: specify the details of </binding> the input and output messages

  13. WSDL port <service name="Hello_Service"> <documentation>WSDL File for HelloService</documentation> <port binding="tns:Hello_Binding" name="Hello_Port"> <soap:address location="http://www.examples.com/SayHello/"> </port> </service> </service> • <port> element defines individual endpoint. Specifies single address for binding • name attribute: unique name among all ports defined • binding attribute: refers to binding element

  14. WSDL service <service name="Hello_Service"> <documentation>WSDL File for HelloService</documentation> <port binding="tns:Hello_Binding" name="Hello_Port"> <soap:address location="http://www.examples.com/SayHello/"> </port> </service> • Defines ports supported by Web service • Service element: a collection of ports • For each supported protocol, there is one port element • clients learn from service element – where to access the service – through which port to access the Web service • Human-readable documentation • Binding attribute associates service with binding element

  15. Apache Tomcat • Open source servlet container • HTTP web server environment for serving Java Implements • Java Servlet: class for responding to HTTP requests – Create object that receives a request – Generates responses based on requests • JavaServer Pages (JSP): serve dynamically generated web pages – Java code interleaved with static web content – Compiled and executed on server – Resulting HTML or XML document served

  16. Apache AXIS2 • Web service framework • Will run over Tomcat • SOAP / WSDL engine • Also supports RESTful web services • Web service creation example – http://netbeans.org/kb/docs/websvc/gs- axis.html#deploy_axis – http://today.java.net/pub/a/today/2006/12/13/in voking-web-services-using-apache-axis2.html

  17. Apache AXIS2 • Send SOAP messages • Receive and process SOAP messages • Create a Web service out of a plain Java class • Create implementation classes for both the • Create implementation classes for both the server and client using WSDL • Easily retrieve the WSDL for a service • Send and receive SOAP messages with attachments • Create or utilize a REST-based Web service

  18. Netbeans IDE • Creating an Axis2 “Hello World” Web Service • First setup Axis2 and Tomcat – http://netbeans.org/kb/docs/websvc/gs- axis.html#setup – http://netbeans.org/kb/docs/websvc/gs- axis.html#axis_options_tomcat

  19. Netbeans IDE example File -> New Project Name it AxisHello, click Finish Right-click project node , context menu opens choose New -> Other, Wizard opens

  20. Netbeans IDE example • Click Next, Name the Java class HelloAxisWorld. • Name the package axishello. Click Finish. • Application created.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend