View
216
Download
0
Category
Preview:
Citation preview
Praktikum aus Softwareentwicklung 2
1Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
Web Services
Praktikum aus Softwareentwicklung 2
2Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
Web Services
• Einführung– Definition, Eigenschaften, Anwendungen....
• JAX-RPC– Überblick, Architektur...
• JAX– Übersicht, Architektur…
Praktikum aus Softwareentwicklung 2
3Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
• „...eine über das Internet zugängliche Programmier-Schnittstelle, basierend auf Internet-Technologien„
• „Mittels HTTP Adresse eindeutig identifizierbar.“• „Gemeinsame Nutzung von Programmfunktionen über Rechnergrenzen.“
Web Services EinführungDefinition
Praktikum aus Softwareentwicklung 2
4Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
• Lagerbestand von Händler abfragen– ISBN– Artikelbezeichnung
• Buchen von Flügen– Reisebüros bieten aktuelle Flüge verschiedener Gesellschaften (zentral)
• Abfragen an Suchmaschinen• Collaboration Plattformen
– Hersteller/Zulieferer...– http://www.covisint.com/
Web Services EinführungAnwendungsbeispiele (B2B)
Praktikum aus Softwareentwicklung 2
5Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
Web Services Einführung Kommunikation
Lose Kopplung:HTTP - zustandsloses Kommunikationsprotokoll
XML - "neutrales" Beschreibungs- und Nachrichtenformat
Praktikum aus Softwareentwicklung 2
6Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
Web Services Einführung Basistechnologien
Z.B. ein .NET-Programm
Stellt HTTP Verbindung her
Z.B. eine Java-Web App.
HTTP-Listener
DOM, SAX
Eine Komponente, dieAnwendungsfunktionalität bereit stellt
HTTP:TCP/IP, UDP
XML:SOAP, WSDL
DOM, SAX
Praktikum aus Softwareentwicklung 2
7Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
Web Services EinführungService Orientierte Architektur (SOA)
Praktikum aus Softwareentwicklung 2
8Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
ArchitekturTechnologie Stack
UDDI – Universal Description, Discovery and Integration
WSDL – Webservice Description Language
SOAP – Simple Object Access Protocoll
Praktikum aus Softwareentwicklung 2
9Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
Web Services EinführungLinks
• Apache– http://ws.apache.org/axis/java/index.html– http://ws.apache.org/axis2/
• IBM– http://www-106.ibm.com/developerworks/webservices
• Microsoft– http://msdn.microsoft.com/webservices
• Sun Microsystems– http://java.sun.com/webservices
• W3C– http://www.w3.org/2002/ws
Praktikum aus Softwareentwicklung 2
10Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
Web Services
• Einführung– Definition, Eigenschaften, Anwendungen....
• JAX-RPC– Übersicht, Architektur….
• JAX– Überblick, Architektur....
Praktikum aus Softwareentwicklung 2
11Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX-RPCÜbersicht
• Java API for XML based RPC• RPC = Remote Procedure Call• Programmierschnittstelle
– für die Entwicklung von Web Services– für die Entwicklung von Web Service Clients
Praktikum aus Softwareentwicklung 2
12Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
• RPC – Remote Procedure Call– Sun RPC (NFS - Nework File System)– C/C++
• IIOP – Internet Inter-ORB Protocol– CORBA - Common Object Request Broker Architecture– Ziel ist Sprachunabhängigkeit– OMG Standard http://www.omg.org/
• DCOM – Distributed Component Object Model– Objektorientiertes RPC-System von Microsoft, COM Erweiterung– .NET Remoting und Enterprise Services ab MS Vista integriert
• RMI – Remote Method Invocation– 100% Java, Serialisierung (fast) beliebiger Objekte
JAX-RPCVorfahren und Verwandte
Praktikum aus Softwareentwicklung 2
13Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX-RPCClient/Server Schnittstelle
• Protokoll basiert auf SOAP• API “versteckt” hohe Komplexität• Ein Service X implementiert ein Interface welches ein oder mehrere Remote Prozeduren des Services beschreibt
• Client verwendet Stub Objekt zum Aufrufen von Methoden des Service Objekts Tie
Praktikum aus Softwareentwicklung 2
14Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX-RPCClient/Server Schichten
Praktikum aus Softwareentwicklung 2
15Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
• Web Service Description Language– Service Beschreibung in XML
• Server stellt WSDL zur Verfügung• Client Tool „versteht“ WSDL
– Generiert Client API (Java, .NET, C++)
JAX-RPCWSDL
Praktikum aus Softwareentwicklung 2
16Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX-RPCService: Java/WSDL Mapping
Praktikum aus Softwareentwicklung 2
17Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX-RPCDaten: Type Mappings
Praktikum aus Softwareentwicklung 2
18Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX-RPCEntwicklungsschritte
• Entwicklung des Webservices1. Implementierung: Codierung des „service endpoint interface“
2. Build (otpional): Generierung, Übersetzung und Verpackung der Dateien welche für den Service benötigt werden – kann auch zur Laufzeit erfoglen, wie bei Axis via Reflection
3. Deploy: abhängig von Distribution (JAR, WAR, deployment descriptor…)
Praktikum aus Softwareentwicklung 2
19Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX-RPCArten von Clients
• 3 Arten von Webservice Clients– Static stub: die Stub-Klasse wird vor der Laufzeit erzeugt. Die Stub Klasse wird als statischer Proxy verwendet
– Dynamic proxy: die Stub-Klasse wird zur Laufzeit erzeugt und kann auch als dynamischer Proxy bezeichnet werden
– Dynamic invocation interface (DII): mit diesen Interface können Remote Procedures auch dann aufgerufen werden, wenn die Signatur oder der Service bis zur Laufzeit nicht bekannt sind. Diese Clients sind kompliziert zu entwickeln und man benötigt genau Kenntnisse von WSDL - Dokumenten
Praktikum aus Softwareentwicklung 2
20Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
• REpresentational State Transfer• RESTful Web Services• Service Requests
– HTTP (GET, POST)– Kein WSDL - keine Methoden und Typ Informationen– Dokument Format nicht definiert: XML, JSON...– Clients APIs können nicht generiert werden
● Yahoo Web Services ● http://developer.yahoo.com/answers/
JAX-RPCAlernative REST
Praktikum aus Softwareentwicklung 2
21Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
• Apache Axis– Axis 1– Axis 2
• Sun JAX-WS– https://jax-ws.dev.java.net/ – NetBeans– Ab Java 6 integriert
• XFire– http://xfire.codehaus.org/ – MyEclipse
• Alle basieren auf JAX-RPC
JAX-RPCJava Implementierungen
Praktikum aus Softwareentwicklung 2
22Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
• Einführung– Definition, Eigenschaften, Anwendungen....
• JAX-RPC– Übersicht, Architektur…
• JAX– Überblick, Architektur....
Web Services
Praktikum aus Softwareentwicklung 2
23Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAXÜberblick
• JAX – Java API‘s for XML• Unterteilung in 2 Arten:
– Prozedur-orientiert• JAX-RPC – Java API for XML-based RPC• JAXR – Java API for XML Registries
– Dokumenten-orientiert• JAXP – Java API für XML Processing• JAXB – Java Architecture for XML Binding• SAAJ – SOAP with Attachments API for Java (SAAJ ist eine Implementation von JAXM – Java API for XML Messaging
Praktikum aus Softwareentwicklung 2
24Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAXArchitektur
Praktikum aus Softwareentwicklung 2
25Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAXJAXP
• JAXP – Java API für XML Processing– SAX API– Simple API for XML– DOM API – Document Object Model– XSLT API – XML Transformations
• XML Stylesheet Language (XSL) bestimmt wie die XML Daten angezeigt werden
• XSLT benutzt die Formatangaben von XSL für die Transformation
Praktikum aus Softwareentwicklung 2
26Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAXJAXB – Bind Process
Praktikum aus Softwareentwicklung 2
27Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX JAXR - Registries
• Java API for XML Registries• Registries sind Verzeichnisse von Services• Generische API zum Abfragen/Bearbeiten von Registries, die JAXR Provider bereitstellen
• Unterstützt Vereinigungsmenge der Konzepte komplementärer Ansätze (z.B. UDDI, ebXML)
• Package: javax.xml.registry
Praktikum aus Softwareentwicklung 2
28Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX JAXR - Architketur
Praktikum aus Softwareentwicklung 2
29Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX SOAP
• Simple Object Access Protocol• Lightweight Message Protokoll• Getypter Datenaustausch zwischen Applikationen• Nachrichtenstruktur wird in XML definiert• Besonders geeignet für RPC Funktionalität• Lose Kopplung• Transport Binding über darunterliegendes Transport Protokoll - HTTP
Praktikum aus Softwareentwicklung 2
30Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX SOAP
Praktikum aus Softwareentwicklung 2
31Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
JAX SOAP
• Spezifikation SOAP• W3C Spezifikation: http://www.w3.org• Umfasst:
– SOAP envelope – Struktur eine SOAP Nachricht– SOAP encoding – deserialisierungs Regeln– SOAP binding Framework – Binding an ein bestimmtes Transport Protokoll
– SOAP RPC
Praktikum aus Softwareentwicklung 2
32Java Praktikum – SS 2010 – Gerald.Ehmayer@borland.com
Ende der 8. Übung
Recommended