Kein Folientitel

Werbung
Web Services (Axis)
ETIS SS05
Gliederung
• Motivation
• Ablauf der Kommunikation
• Bestandteile
– SOAP
– WSDL
– UDDI
• AXIS
– Web Services erstellen
– Web Services nutzen
• Zusammenfassung
Web Services (Axis)
ETIS SS05 Nadine Fröhlich
2
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)
ETIS SS05 Nadine Fröhlich
3
Ablauf der Kommunikation
UDDI
Service
Registry
finden
Requester
(Client)
Web Services (Axis)
WSDL
WSDL
veröffentlichen
SOAP
zusammenarbeiten
ETIS SS05 Nadine Fröhlich
Provider
(Service)
4
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)
ETIS SS05 Nadine Fröhlich
5
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)
ETIS SS05 Nadine Fröhlich
6
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)
ETIS SS05 Nadine Fröhlich
7
WSDL
• plattform-, programmiersprachen-, protokollunabhängiger XMLStandard 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)
ETIS SS05 Nadine Fröhlich
8
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)
ETIS SS05 Nadine Fröhlich
9
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)
ETIS SS05 Nadine Fröhlich
10
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)
ETIS SS05 Nadine Fröhlich
11
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)
ETIS SS05 Nadine Fröhlich
12
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)
ETIS SS05 Nadine Fröhlich
13
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)
ETIS SS05 Nadine Fröhlich
14
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)
ETIS SS05 Nadine Fröhlich
15
JAX-RPC
Quelle: JAX, Java APIs for XML Kick Start
Web Services (Axis)
ETIS SS05 Nadine Fröhlich
16
Literatur
• Wikipedia
– http://de.wikipedia.org/wiki/SOAP
– http://de.wikipedia.org/wiki/Web_Service
• http://ivs.cs.unimagdeburg.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)
ETIS SS05 Nadine Fröhlich
17
Herunterladen