distributed
play

DISTRIBUTED SYSTEMS Practical Lab WebServices 2 A pragmatic - PowerPoint PPT Presentation

1 DISTRIBUTED SYSTEMS Practical Lab WebServices 2 A pragmatic Introduction WS - Overview 3 Problem Sockets / RMI / CORBA requires open ports for communication Active firewalls may prohibit proprietary communication protocol


  1. 1 DISTRIBUTED SYSTEMS Practical Lab

  2. WebServices 2 A pragmatic Introduction

  3. WS - Overview 3  Problem  Sockets / RMI / CORBA requires open ports for communication  Active firewalls may prohibit proprietary communication protocol  Idea  Use http based messages for remote method invocations  Messages, Interfaces and the Communication are defined/realized using standardized protocols  SOAP / WSDL and HTTP (defined by W3C)

  4. WS - Overall Architecture 4  Requester / Provider and Service Broker

  5. WebServices - Overview 5  Architecture – Programmers Perspective  Server offers its service via a Web Container (not stand alone)  E.g. Apache Tomcat, WebSphere , …  Messages are encoded using SOAP (XML file format)  Interfaces are defined using WSDL (XML based description)  Communication is realized using HTTP (requires a webserver) JVM - A JVM - B Client Service Gen. Artefacts Web Container SOAP/HTTP

  6. SOAP – The message protocol 6  Former: Simple Object Access Protocol  XML based message exchange format SOAP-ENV: Envelope SOAP-ENV: Header SOAP-ENV: Body  See: http://de.wikipedia.org/wiki/SOAP

  7. WSDL – Interface Specification 7  Web Services Description Language  XML base description language of service interfaces  Defines (examples):  Endpoints – connection information  Ports/Interfaces – the service interface (collection of operations)  Operations – one “method” offered by the interface  Messages – used to encode arguments for operations  See: http://en.wikipedia.org/wiki/Web_Services_Description_Language

  8. WebServices in Java 8

  9. Building a WebService using Java 9  Requires WebService Framework  Various implementations available  Apache Axis - http://ws.apache.org/axis/  Apache CXF - http://cxf.apache.org/  JAX-WS – part of SDK since Java 6  J2EE Container specific implementations  We will use JAX-WS (requires Java 6)

  10. Defining an Interface (JAX-WS) 10  Can be an interface or an actual implementation  Definition marked using @WebSphere annotation  => see DemoWS.java in WS Demo  Additional markup options offered via annotations  See package javax.jws in Java API  Potential types for parameters and return types are heavily restricted  See http://download.oracle.com/javaee/5/tutorial/doc/bnaz q.html#bnazs

  11. Implement a Server 11  Server instantiates implementation of Service  Publishes service using an Endpoint  See: Server.java in WS demo Endpoint.publish("http://localhost:8080/services", new DemoWS());  JAX-WS is automatically generating WSDL for Service  Can be accessed via the URL http://localhost:8080/services?wsdl while the server is running.

  12. Implementing a Client 12  To access the server, code has to be generated based on the WSDL  Generation tool: wsimport (part of JDK) wsimport -d ../../ -keep -p demo.ws.gen <URL>  - d … root for code generation  - p … package name  - keep … preserves generated files  Note:  files are compiled after generating them  May lead to problems with eclipse => delete *.class  Generates code for “complex” classes, independent of original classes  The tool does not support all kind of WSDL features

  13. Implementing a Client (2) 13  Use generated classes to access Service  XYZService … to obtain remote reference (Port)  Use generated interface to invoke methods  See: Client.java  Attention:  generated classes are incompatible to original classes

  14. WS – RMI comparison 14  RMI  WebService  Uses “native” Java  Uses XML files for means (Serialization) communication  Supported by the JVM  Requires additional tools (part of SDK)  Full support of user- defined data types  Complexity for parameters / results is limited  Supports synchronous  Synchronous and asynchronous calls invocations only  Independent of Java  Only for Java

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