17
Web Services (Axis) ETIS SS05

Web Services (Axis)

  • 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

Page 1: Web Services (Axis)

Web Services (Axis)

ETIS SS05

Page 2: Web Services (Axis)

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

Page 3: Web Services (Axis)

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

Page 4: Web Services (Axis)

ETIS SS05 Nadine Fröhlich Web Services (Axis) 4

Ablauf der Kommunikation

WSDLWSDL

SOAP

veröffentlichenfinden

zusammenarbeiten

Provider(Service)

Requester(Client)

ServiceRegistry

UDDI

Page 5: Web Services (Axis)

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

Page 6: Web Services (Axis)

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

Page 7: Web Services (Axis)

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>

Page 8: Web Services (Axis)

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

Page 9: Web Services (Axis)

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

Page 10: Web Services (Axis)

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)

Page 11: Web Services (Axis)

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

Page 12: Web Services (Axis)

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>

Page 13: Web Services (Axis)

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

Page 14: Web Services (Axis)

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());

}

Page 15: Web Services (Axis)

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

Page 16: Web Services (Axis)

ETIS SS05 Nadine Fröhlich Web Services (Axis) 16

JAX-RPC

Quelle: JAX, Java APIs for XML Kick Start

Page 17: Web Services (Axis)

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