Upload
moira
View
30
Download
0
Embed Size (px)
DESCRIPTION
Web Services (Axis). ETIS SS05. Gliederung. Motivation Ablauf der Kommunikation Bestandteile SOAP WSDL UDDI AXIS Web Services erstellen Web Services nutzen Zusammenfassung. Motivation - Web Service (WS). - PowerPoint PPT Presentation
Citation preview
Web Services (Axis)
ETIS SS05
ETIS SS05 Nadine Fröhlich Web Services (Axis) 2
Gliederung
• Motivation
• Ablauf der Kommunikation
• Bestandteile– SOAP
– WSDL
– UDDI
• AXIS– Web Services erstellen
– Web Services nutzen
• Zusammenfassung
ETIS SS05 Nadine Fröhlich 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
ETIS SS05 Nadine Fröhlich Web Services (Axis) 4
Ablauf der Kommunikation
WSDLWSDL
SOAP
veröffentlichenfinden
zusammenarbeiten
Provider(Service)
Requester(Client)
ServiceRegistry
UDDI
ETIS SS05 Nadine Fröhlich 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
ETIS SS05 Nadine Fröhlich 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
ETIS SS05 Nadine Fröhlich 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>
ETIS SS05 Nadine Fröhlich 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
ETIS SS05 Nadine Fröhlich 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
ETIS SS05 Nadine Fröhlich 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)
ETIS SS05 Nadine Fröhlich 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
ETIS SS05 Nadine Fröhlich 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>
ETIS SS05 Nadine Fröhlich 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
ETIS SS05 Nadine Fröhlich 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());
}
ETIS SS05 Nadine Fröhlich 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
ETIS SS05 Nadine Fröhlich Web Services (Axis) 16
JAX-RPC
Quelle: JAX, Java APIs for XML Kick Start
ETIS SS05 Nadine Fröhlich 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