Download
web services axis n.
Skip this Video
Loading SlideShow in 5 Seconds..
Web Services (Axis) PowerPoint Presentation
Download Presentation
Web Services (Axis)

Web Services (Axis)

127 Vues Download Presentation
Télécharger la présentation

Web Services (Axis)

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Web Services (Axis) ETIS SS05

  2. Gliederung • Motivation • Ablauf der Kommunikation • Bestandteile • SOAP • WSDL • UDDI • AXIS • Web Services erstellen • Web Services nutzen • Zusammenfassung Web Services (Axis)

  3. Motivation - Web Service (WS) • Software-Anwendung im Internet, die durch standardbasierte Protokolle wie HTTP nutzbar ist • durch Uniform Resource Identifier (URI) eindeutig identifizierbar • Beschreibung, Verzeichnisdienste und Nachrichtenaustausch XML-basiert • als Middleware im Bereich E-Business von zunehmender Bedeutung • bekannte Beispiele: Web Services von google, amazon, ebay Web Services (Axis)

  4. Ablauf der Kommunikation UDDI Service Registry veröffentlichen finden WSDL WSDL Requester (Client) SOAP Provider (Service) zusammenarbeiten Web Services (Axis)

  5. Wichtige Bestandteile • SOAP • Simple Object Access Protocol (bis SOAP1.2) • Protokollstandard des W3C zur Kommunikation • WSDL • Web Service Description Language • Sprache zur Beschreibung der unterstützten Methoden und Parameter • UDDI • Universal Description, Discovery, and Integration • Verzeichnisdienst zur Registrierung von Web Services • ermöglicht dynamisches Finden von Web Service Web Services (Axis)

  6. SOAP • Protokoll zum Datenaustausch in dezentralisierter, verteilter Umgebungen • Basiert auf XML Datenrepräsentation und Internet-Protokollen zur Nachrichten-Übertragung (gängig: SOAP über HTTP + TCP) • Standardisiert, plattform-, programmiersprachenunabhängig, robust, skalierbar • durch XML: etwas Overhead und geringere Performance • Struktur: • Envelope: oberstes Element, umschließt gesamte Nachricht • Header (optional): Metainformationen der Nachricht (Routing, Verschlüsselung, Zugehörigkeit zu einer Transaktion) • Body: Nutzdaten, die vom Empfänger interpretiert werden • Evtl. Anhänge - abhängig von Transportprotokoll an Nachricht gehängt Web Services (Axis)

  7. SOAP <?xml version="1.0" encoding=“utf-8“?> <soap:Envelope xmlns:soap=“http://schemas.xmlsoap.org/soap/envelope“> <soap:Header> <Digest>xyz</Digest> </soap:Header> <soap:Body> <StockReport> <Symbol>IBM</Symbol> <Prise>65.42</Prise> </StockReport> </soap:Body> </soap:Envelope> Web Services (Axis)

  8. WSDL • plattform-, programmiersprachen-, protokollunabhängiger XML-Standard zur WS-Beschreibung (für Nachrichtenaustausch) • Inhalt: funktionelle Angaben zum Interface, Zugangsprotokoll, Deployment-Details, Zugriffsinformationen • Hauptelemente: • types: Definition der Datentypen zum message-Austausch • messages: Abstrakte Definitionen übertragener Daten • portType: Menge von abstrakten Arbeitsschritten • binding: Bestimmt konkretes Protokoll + Datenformat für Arbeitsschritte und Mitteilungen • ports: Spezifizieren Adresse für binding (i.d.R. URI) • services: Zusammenfassung verwandter Ports • mit WSDL auf Server verfügbare Funktionen bestimmenbar Web Services (Axis)

  9. UDDI • Verzeichnisdienst - zentrale Rolle für dynamische WS • Services beschreiben (mittels WSDL), finden und integrieren • plattformunabhängig, Kommunikation über SOAP • Drei Arten der Informationen über WS: • White Pages - eine Art Telefonbuch • Namensregister der Anbieter + Detailangaben und Kontaktinformationen • Yellow Pages - Branchenverzeichnis • Suche gemäß Taxonomie (Ort, Dienstart,...) , verweist auf White Pages • Green Pages • Informationen über Geschäftsmodell und Geschäftsprozesse des Unternehmens, technische Details zu angebotenen WS Web Services (Axis)

  10. AXIS • Open source Implementierung von SOAP • Von Apache Software Foundation • Basiert auf SAX • Anwendung, u.a. • Implementierung + Bereitstellung von Web-Services • Entwicklung von Clients • Unterstützte Standards • SOAP • WSDL • JAX-RPC-Spezifikation (Simple API for XML-based RPC) • SAAJ (SOAP with Attachments for Java) Web Services (Axis)

  11. AXIS - Eigene Web Services erstellen I • JWS-Dateien • Als WS zu veröffentlichende Java-Klasse Endung .jws geben • .jws in Wurzelverzeichnis von axis kopieren • Bei erstem Aufruf über URL automatisches Kompilieren + Ausführen • begrenzt Konfigurationsmöglichkeiten, Packagenutzung… • AdminClient + Web Service Deployment Descriptor (WSDD) • .class-Datei zu veröffentlichenden WS in axis\WEB-INF\classes kopieren • Mit WSDD (XML-basierte Konfigurationsdatei) • Beschreibung Deployment-Vorgang + • Verhalten von Axis bei Ausführung des WS Web Services (Axis)

  12. AXIS - Eigene Web Services erstellen II • WSDD-Datei wird Admin-Client zugeführt und damit wird Web Service in Laufzeitumgebung eingebracht • Bsp.-WSDD-Datei: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="MyService" provider="java:RPC"> <parameter name="className" value="bsp.MyService"/> <parameter name="allowedMethods" value="*"/> </service> </deployment> Web Services (Axis)

  13. AXIS - Web Services nutzen I • Über URL-Eingabe im Browser http://localhost:8080/axis/services/Version?method=getVersion • Client schreiben • Instanzierung der Klassen Service und Call, um damit: • Metadaten zum Aufruf des Service zu speichern und • Methoden bereitzustellen, mit denen sich der Service aufrufen lässt • URL (Endpoint) des Services angeben • Aufzurufende Methode angeben • Aufruf des Web-Service mit Methode invoke Web Services (Axis)

  14. AXIS - Web Services nutzen II try { String endpoint = "http://localhost:8080/axis/services/echo"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName(new QName("echoString")); String ret = (String) call.invoke( new Object[] { "Peter" } ); System.out.println("Hello " + ret); } catch (Exception e) { System.err.println(e.toString()); } Web Services (Axis)

  15. Zusammenfassung • Vorteile • Kostenvorteile, da basierend auf offenen Standards (Lizenzkosten) und allgegenwärtigen internetbasierten Technologien • HTTP-Protokoll zur Datenübertragung: selten Probleme mit Firewalls (Gegensatz: CORBA, RMI) • nicht an HTTP gebunden (SMTP, FTP möglich) • offene und flexible Architektur, unabhängig von Plattformen, Programmiersprachen und Protokollen • Nachteile • Sicherheitsaspekte - wichtige Web Services verschlüsseln! • Geringere Performance: XML, Parsen und Dateigröße • relativ viel Know How erforderlich Web Services (Axis)

  16. JAX-RPC Quelle: JAX, Java APIs for XML Kick Start Web Services (Axis)

  17. Literatur • Wikipedia • http://de.wikipedia.org/wiki/SOAP • http://de.wikipedia.org/wiki/Web_Service • http://ivs.cs.uni-magdeburg.de/~schmiete/lehre/vorlesung/ss_05_md.html • http://www.torsten-horn.de/techdocs/soap.htm • T. Bayer, T. Frotscher, M. Teufel, D. Wang, Die Achse des Guten, Javamagazin 07/04. • http://ws.apache.org/axis/ • http://www.w3.org/2002/ws/ • A. Chowdhury, P. Choudhary, JAX, Java APIs for XML Kick Start, Sams, 2002. http://www.developer.com/java/ent/article.php/2109561 Web Services (Axis)