Web Services

Werbung
Hochschule
Bonn-Rhein-Sieg
Service-Orientierte Architekturen
Kapitel 4: Web Services I
Vorlesung im Masterstudiengang Informatik
Sommersemester 2010
Prof. Dr. Sascha Alda
([email protected])
(Vorläufiger) Aufbau der Vorlesung
Kapitel
Thema
 1
 2
 3
Organisation, Einführung in Software-Architekturen
4 (11.5.)
Web Services I (SOAP, WSDL)
5 (18.5.)
Web Services II (Axis2,...)
6 (25.5.)
Modellierung von Geschäftsprozessen (BPEL, BPMN)
7 (1.6.)
Vertiefung und Backup Web Services
8 (8.6.)
OSGi Service Plattform
9 (15.6.)
Einführung in Swordfish
10
11 (22.6.)
Einführung in Service-Orientierte Architekturen
Design Prinzipien von Service-Orientierten Architekturen
REST Architekturen
Exception Handling in SOA (Gastvortrag)
12 (29.6.) SOA Point of View von Accenture (Gastvortrag)
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 2
Ziele dieser Unterrichtseinheit
 
 
 
Grundlagen des Web Services Framework verstehen
Die beiden wichtigsten Web Services Standards verstehen und anwenden
(SOAP und WSDL)
Implementierungen eines Web Service basierend auf gängigen Technologien
verstehen und eigenständig anwenden können
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 3
Aufbau dieser Veranstaltung
Kapitel 4: Einführung in Web Services, Teil 1
1
Überblick über Web Services
2
Einführung in SOAP
3
Einführung in WSDL
4
Implementierung von Web Services: AXIS2 und
5
Zusammenfassung und Ausblick
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 4
Web Services
 
 
 
Technologie-Framework für die Entwicklung und Integration von verteilten
Systemen
Seit ca. 2000 bekannt
Festlegung der Standards durch Web Service Interoperability Organization
(WS-I)
- 
- 
- 
 
 
Aktueller Standard: Basic Profile (BP) 1.1
Draft Version: Basic Profile (BP) 1.2
Getrieben durch IBM, Microsoft, Bea, Fujitsu, Oracle u.a.
Web Services repräsentieren eine Möglichkeit zur Implementierung einer
SOA
Stand heute: De-Facto Framework für die Implementierung
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 5
Aufbau einer SOAP-basierten Web Services Architektur
UDDI
(-compatible)
Directory
Return“possibleservices” : WSDL[ ]
Discover
“aService”
SOAP
SOAP
Publish
“aService” : WSDL
SOAP
Service
Consumer
Service Bind / Interaction
Web Service
Provider
Web Service
“aService” : WSDL
SOAP
• 
XML-basiertes Nachrichtenformat für den Aufruf / Interaktion mit einem Web Service
WSDL (Web Service Description Language)
• 
XML-basierte Meta-Sprache zur Beschreibung der Schnittstelle eines Web Service
UDDI (Universal Description, Discovery and Integration)
• 
Directory-Service für die Publikation und Suche von Web Services
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
XML – Basis für Web Services Architekturen
• 
XML (exTensible Markup Language) ist die Grundlage einer Vielzahl der Web
Services Standards.
- 
Metasprache zur Definition von (Austausch-)Dokumenten
- 
Hohe Interoperabilität (plattform- und programmiersprachenneutral)
- 
Hierarchische Dokument-Struktur  „lesbare“ Darstellung
- 
Typirisierung von Dokument-Elementen und Attribute durch Namensräume
XML-Typ Deklaration
f. Zeichensatz
Typ-Definition (XML-Schema)
Hierarchische Struktur
eines XML-Dokuments
Deklaration des
Namensraums
<?xml version = „1.0“ encoding = „UTF-8“ ?>
<schema xmlns = „http://www.w3.org/2001/XMLSchema“
<?xml version = „1.0“ encoding = „UTF-8“ ?>
xmlns : mySchema = „http://myweb.de/types“
<database xmlns = „http://myweb.de/types“ >
<person>
<vorname>Sascha</vorname>
<nachname>Alda</nachname>
</person>
</database>
targetNamespace = „„http://myweb.de/types“
Type-System
für
<element name „person“ type = „mySchema:PersonType“ />
<complexType name = „PersonType“ >
<sequence>
<element name = „vorname“ type = „string“/>
<element name = „nachname“ type = „string“/>
</sequence>
</complexType>
</schema>
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
XML – Basis für Web Services Architekturen
• 
XML (exTensible Markup Language) ist die Grundlage einer Vielzahl der Web
Services Standards.
- 
Metasprache zur Definition von (Austausch-)Dokumenten
- 
Hohe Interoperabilität (plattform- und programmiersprachenneutral)
- 
Hierarchische Dokument-Struktur  „lesbare“ Darstellung
- 
Typirisierung von Dokument-Elementen und Attribute durch Namensräume
XML-Typ Deklaration
f. Zeichensatz
Hierarchische Struktur
eines XML-Dokuments
(mit Präfix f. Namensraum)
Typ-Definition (XML-Schema)
Deklaration des
Namensraums
<?xml version = „1.0“ encoding = „UTF-8“ ?>
<schema xmlns = „http://www.w3.org/2001/XMLSchema“
<?xml version = „1.0“ encoding = „UTF-8“ ?>
xmlns : mySchema = „http://myweb.de/types“
<database xmlns:d= „http://myweb.de/types“ >
<d:person>
<d:vorname>Sascha</vorname>
<d:nachname>Alda</nachname>
</d:person>
<database>
targetNamespace = „„http://myweb.de/types“
Type-System
für
<element name „person“ type = „mySchema:PersonType“ />
<complexType name = „PersonType“ >
<sequence>
<element name = „vorname“ type = „string“/>
<element name = „nachname“ type = „string“/>
</sequence>
</complexType>
</schema>
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Aufbau dieser Veranstaltung
Kapitel 4: Einführung in Web Services, Teil 1
1
 
Überblick über Web Services
2
Einführung in SOAP
3
Einführung in WSDL
4
Implementierung von Web Services: AXIS2 und
5
Zusammenfassung und Ausblick
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 9
SOAP
 
 
 
XML-basiertes Nachrichtenformat für den Aufruf / Interaktion mit einem Web
Service
Die Bezeichnung „Protokoll“ ist bedingt richtig: SOAP basiert auf bekannten
Protokollen wie HTTP, TCP usw.
Versionen:
- 
- 
- 
- 
 
 
Ursprüngliche Bezeichnung in 1.1: „Simple Object Access Protocol“
Ab 1.2: keine Bedeutung!
- 
- 
 
SOAP 1.1 (http://www.w3.org/TR/2000/NOTE-SOAP-20000508/)
SOAP 1.2 (http://www.w3.org/TR/soap12-part1/), seit 2007
SOAP 1.2 ist abwärtskompatibel zu 1.1
SOAP 1.1 ist (noch) weiter verbreitet als 1.2
SOAP spezifiziert keine Objekte
SOAP legt kein Protokoll fest
SOAP sieht zwei grundlegende Nachrichtenformate vor:
- 
- 
Methodenbasiert, RPC-Style (RPC / literal)
Dokumentbasiert (document / literal)
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 10
SOAP – Struktur und Beispielcode
• 
SOAP ist ein Nachrichtenformat für die Interaktion mit Web Services
- 
- 
XML-basiertes Nachrichten-Format  XML-Fragmente werden verschickt
SOAP-Nachrichten haben einen hierarchischen Aufbau
Service-Aufruf
Rückantwort
Service
Consumer
Envelope
Header
Übertragungsspezifische
Daten
-optional-
SOAPNachricht
Web Service
Provider
Web Service
“aService” : WSDL
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
…
</s:Header>
<s:Body>
Body
Anwendungsspezifische
Daten
-required-
</s:Body>
</s:Envelope>
Hierarchischer Aufbau
(Meta-Modell)
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
XML-Struktur
SOAP – RPC-Style
SOAP Request
• 
Der RPC-Style von SOAP impliziert, dass das ausgetauschte XML-Fragment
auf einem Operationsaufruf sowie auf eine entsprechende Rückantwort basiert
Service-Aufruf
Rückantwort
Service
Consumer
SOAPNachricht
Envelope
Header
Übertragungsspezifische
Daten
-optional-
Body
Operation
definiert in
Anwendungsspezifische
Daten
WSDL
-required-
file
Web Service
Provider
Web Service
“aService” : WSDL
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
…
</s:Header>
<s:Body>
<m:GetAddress xmlns:m="http://www.myserver.de/soap">
<m:surname> Alda </m:surname>
<m:/GetAddress>
</s:Body>
</s:Envelope>
Meta-Modell
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
XML-Struktur (SOAP Request für
Service-Aufruf, RPC-Style)
SOAP – RPC-Style
SOAP Response
• 
Der RPC-Style von SOAP impliziert, dass das ausgetauschte XML-Fragment
auf einem Operationsaufruf sowie auf eine entsprechende Rückantwort basiert
Service-Aufruf
Rückantwort
Service
Consumer
SOAPNachricht
Envelope
Header
Übertragungsspezifische
Daten
-optional-
Body
Anwendungsspezifische
Daten
-required-
Rückgabewert
definiert in
WSDL
file
Web Service
Provider
Web Service
“aService” : WSDL
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
…
</s:Header>
<s:Body>
<m:GetAddressResponse xmlns:m="http://www.myserver.de/soap">
<m:city> Bonn, NRW </city>
</m:GetAddressResponse>
</s:Body>
</s:Envelope>
Meta-Modell
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
XML-Struktur (SOAP Response für
Service-Aufruf, RPC-Style)
SOAP – RPC-Style
SOAP Fault
• 
Der RPC-Style von SOAP impliziert, dass das ausgetauschte XML-Fragment
auf einem Operationsaufruf sowie auf eine entsprechende Rückantwort basiert
Service-Aufruf
Fehler!
Service
Consumer
Envelope
Header
Übertragungsspezifische
Daten
-optional-
Body
Anwendungsspezifische
Daten
-required-
SOAPNachricht
Web Service
Provider
Web Service
“aService” : WSDL
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Body>
<s:Fault>
<s:Reason>
<s:Text> Invalild Method </s:Text>
</s:Reason>
<s:Detail>
<!– ggf. Eigene Daten mit eigenem Namespace ->
</s:Detail>
</s:Fault>
</s:Body>
</s:Envelope>
Meta-Modell
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
XML-Struktur (SOAP Response für Fehlermeldung)
SOAP – Document-Style
• 
• 
Der Document-Style von SOAP impliziert, dass das ausgetauschte XMLFragment ein Dokument ist und nicht auf einem Methodenaufruf basiert.
Nur One-Way Kommunikation
Service-Aufruf
Service
Consumer
SOAPNachricht
Envelope
Header
Übertragungsspezifische
Daten
-optional-
Body
Operation
definiert in
Anwendungsspezifische
Daten
WSDL
-required-
file
Web Service
Provider
Web Service
“aService” : WSDL
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
…
</s:Header>
<s:Body>
<p:Person xmlns:p="http://www.myserver.de/soap">
<p:surname> Alda </p:surname>
</p:Person>
</s:Body>
</s:Envelope>
Meta-Modell
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
XML-Struktur (SOAP Document, Document-Style)
Verarbeitungsmodell bei SOAP
 
 
 
Eine SOAP-Nachricht kann über mehrer Zwischenknoten (Intermediaries)
geleitet werden
Intermediaries können in den Verarbeitungsprozess einer SOAP-Nachricht
eingreifen
Intermediaries sollten nur auf SOAP-Header zugreifen
SOAP
Request
Service Client
SOAP
Request
Intermediary A
SOAP
Response
SOAP
Request
Intermediary B
Service Provider
(ultimate SOAP
receiver)
SOAP
Response
Intermediary B
Intermediary
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 16
Aufbau einer SOAP-basierten Architektur mit HTTP
POST web/my HTTP/1.1
Host myserver.com
Content-Type: application/
soap+xml
<<entity>>
Person
SOAP Envelope
….
Client Host
• 
<<WebService>>
ERPService
Application Server
Web Service
“ERPService” : WSDL
SOAP verwendet bekannte Web-Protokolle zur Übertragung
von SOAP-Nachrichten
- 
- 
• 
HTTP
<<Service
Consumer>>
getAddress()
Standard ist HTTP: Verwendung der POST-Methode
Alternative: SMTP, TCP / IP
Web Service übernimmt Dispatcher Rolle
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
<<entity>>
Address
getCity()
<<control>>
Process
Relocation
performRelocation()
Aufbau dieser Veranstaltung
Kapitel 4: Einführung in Web Services, Teil 1
1
2
 
 
Überblick über Web Services
Einführung in SOAP
3
Einführung in WSDL
4
Implementierung von Web Services: AXIS2 und
5
Zusammenfassung und Ausblick
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 18
Überblick zu WSDL
 
Die Web Service Description Language (WSDL) ist ein XML-Format, um die
Schnittstelle eines Web Services zu beschreiben
- 
- 
 
 
Abstrakte Beschreibung von Operationen und deren Parametern
(Nachrichten)
Anbindung an ein bestimmtes Netzwerk-Protokoll für den Zugriff auf einen
Web Service
- 
 
 
Interface Definition Language (IDL)
Abbildung auf gängige Programmiersprachen möglich
Standard: SOAP über HTTP
Spezifikation des Endpunktes (Endpoints) um auf einen speziellen Web
Services zugreifen zu können
Zwei Standards:
- 
- 
WSDL 1.1 (aktueller Standard)
WSDL 2.0 (in vielen Server-Implementierungen bereits übernommen)
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 19
WSDL – Grundlegende Struktur
port-type
abstrakt
operation b
operation a
inMessage
outMessage
binding
(SOAP over SMTP)
konkret
binding
(SOAP over HTTP)
service
port
port
Meta-Modell
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Aufbau einer WSDL-Beschreibung
 
Datentypen (types)
- 
- 
- 
 
Nachrichten (message)
- 
- 
 
Beschreibung der Datentypen der Nachrichten, die für den Aufruf eines Web
Service verwendet werden
Nur komplexe Datentypen müssen definiert werden, einfache Datentypen wie
integer, float, double oder string sind bereits durch das grundlegende XMLSchema vorgegeben
Wiederverwendung von externen Schemata (import-Befehl)
Beschreibung der Nachrichten, die zwischen Client und Web Service beim Aufruf
einer Operation ausgetauscht werden
Eine Nachricht kann mehrere Teile haben, wobei jeder Teil einem Datentyp
zugeordnet ist
Schnittstellen (portType)
- 
- 
In einer Schnittstellen werden eine Reihe von Operationen zusammengefasst
Jede Operation ist definiert auf Basis der zuvor definierten Nachrichten und
Datentypen
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 21
Aufbau einer WSDL-Beschreibung
 
Protokoll (binding)
- 
- 
 
Kommunikationsendpunkt (port)
- 
 
Festlegung, wie mit der abstrakten Schnittstelle des Web Service kommuniziert
werden kann
Angabe des Kommunikationsformat (z.B. SOAP-Nachrichten) und das
Transportprotokoll (z.B. HTTP)
Ein einzelner Service-Endpunkt für eine Kommunikation durch die Angabe einer
Adresse (z.B. eine URL) für eines der zuvor definierten Bindings.
Service (service)
- 
- 
Zusammenfassung einer Menge von einzelnen Endpunkten (ports) unter einem
logischen Namen
Mehre Ports können auf den gleichen PortType verweisen, jeweils mit anderen
Binding-Alternativen
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 22
XML-basierter Aufbau einer WSDL-Beschreibung
<?xml version=„1.0“>
<definitions name = „StockQuote“>
<types>
<schema> ....
</schema>
</types>
<message name = „PriceInput“> ....
</message>
<portType name = „StockQuotePortType“>
<operation name = „GetLastTradePrice“> ...
<operation>
</portType>
<binding name = „StockQuoteSoapBinding“> ...
</binding>
<service name = „StockQuoteService>
<port name = „StockQuotePort“> ....
</port>
<service>
<definitions>
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 23
WSDL – Struktur und Beispielcode
<message name=„PersonData">
<part name=„surname" type="xsd:string"/>
</message>
port-type
abstrakt
operation b
operation a
inMessage
outMessage
binding
binding
(SOAP over HTTP)
(SOAP over SMTP)
<message name=„AddressData">
<part name=„city" type="xsd:string"/>
</message>
<portType name=„ERPManager">
<operation name=„GetAddress">
<input message=„PersonData "/>
<output message=„AddressData"/>
</operation>
</portType>
konkret
WSDL Dokument (Ausschnitt)
<s:Body>
service
port
port
Meta-Modell
<GetAddress>
<surname> Alda </surname>
</GetAddress>
</s:Body>
SOAP Request (RPC-Style)
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Muster für den Nachrichtenaustausch
 
WSDL unterstützt vier verschiedene Muster zum Nachrichtenaustausch
(Message Exchange Pattern, MEP)
Client
Web
Service
<input>
RequestResponse
Client
Web
Service
<input>
<output>
SolicitResponse
Client
Web
Service
<output>
<input>
Notification
Client
Web
Service
<output>
One-way
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 25
WSDL – Binding an Netzwerkprotokoll und Nachrichtenformat
<binding name=„AdressBinding“ type = „ERPManager“ >
<soap:binding style = „rpc“ // Nachrichtenformat SOAP/rpc. Alternative: document
transport = „http://schemas.xmlsoap.org/soap/http“/> // HTTP als Protokoll
<operation name=„GetAddress">
<soap:operation soapAction = „GetAddress“>
<input>
<soap:body parts=„GetAddressRequest“ ... >
</input>
<output>
<soap:body parts=„GetAddressResponse“ ... >
</output>
</operation>
....
</binding>
WSDL-Dokument (Ausschnitt) zur Definition von Bindings
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
WSDL – Definition des Ports
<service name = „ERPService“>
<port name = „ERPService_http“ binding = „AdressBinding“>
<soap: address location=„http://myserver.com/axis2/services/ERPService“/>
</port>
....
</service>
WSDL-Dokument (Ausschnitt) zur Definition eines Service
 
 
 
Zu jedem Binding wird ein Port definiert
Ein Binding kann das gleiche PortType (Schnittstelle) mehrfach binden mit
unterschiedlichen Protokollen / Formaten
Aus der Adresse des Service und aus SOAPAction (siehe Binding) wird der
betreffende HTTP_Request erstellt
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Binding - SOAP over HTTP
• 
SOAP kann HTTP zur Übertragung von SOAP-Nachrichten verwenden
- 
- 
- 
Standard-Binding, da transparente Übertragung über Port 80
Ausschließliche Verwendung der POST-Methode des HTTP Protokolls
Übernahme der Adress-Daten aus WSDL
POST /axis2/services/ERPService HTTP 1.1
Host myserver.com
Content-Type: application/soap+xml
SOAPAction: “urn:GetAddress”
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
…
</s:Header>
<s:Body>
<GetAddress xmlns:m="http://www.myserver.de/soap">
<m:nachname> Alda </m:nachname>
</m:GetAddress>
</s:Body>
</s:Envelope>
HTTP-Request inkl. SOAP Nachricht
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
HTTP Header
HTTP entity-body
= SOAP Nachricht
Software Bibliotheken für SOAP
• 
Eine Vielzahl von Software Bibliotheken für die Entwicklung einer SOAPbasierten Web Services Architektur stehen zur Verfügung
- 
• 
Unterstütze Programmiersprachen: Java, Python, PHP, C, C++ …
Open Source Software Bibliotheken in Java:
- 
- 
Gängige Frameworks: Apache Axis2, Apache CXF
Sun Java Web Services Developer Pack (JWSDP)
Name
Package
Java API for XML Web Services (JAXWS)
javax.xml.ws
Java Architecture for XML Binding (JAXB)
javax.xml.bind
SOAP with Attachments API for Java (SAAJ)
javax.xml.soap
Java Web Services Metadata (JSR 181)
javax.jws
  Download für J2SE 1.4.2 sowie J2SE 5.0 verfügbar
  Ab Java SE 6 standardmäßig integriert
29
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Code-Demo: Verwendung des JWSDP (1/2)
Implementierung des Service und des Server
package com.bonn.erp;
package com.bonn.erp;
import
import
import
import
import javax.xml.ws.Endpoint;
javax.jws.WebMethod;
javax.jws.WebService;
javax.jws.soap.SOAPBinding;
javax.jws.soap.SOAPBinding.Style;
@WebService
@SOAPBinding(style=Style.RPC)
public class ERPManager {
@WebMethod
public String getAddress( String NachName ){
String Address =
AdressStore.getAddress( NachName );
return Address;
} }
public class MyAppServer {
public static void main(String[] args) {
ERPManager server = new ERPManager();
Endpoint endpoint =
Endpoint.publish("http://localhost:8080/
services", server);
System.out.println("Server is started");
}
}
Java Code Web Service
Coding
Java Code „Application Server“
Compile
Run Server
javac *.java
java MyAppServer
Generate Stubs for Client
wsimport -keep http://localhost:8080/
erpmanager?wsdl
ERPManager.class
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
ERPManagerService.class
Code-Demo: Verwendung des JWSDP (2/2)
Implementierung des Client
package com.client;
import com.bonn.erp.ERPManager;
import com.bonn.erp.ERPManagerService;
Import der zuvor
erzeugten Klassen
public class MyClient {
public static void main(String args[]) {
// Initialisierung Web Service mit generierten Klassen
ERPManagerService service = new ERPManagerService();
ERPManager manager = service.getERPManagerPort();
// Verwendung des Web Service
String adresse = manager.getAddress( "Alda" );
System.out.println("Adresse von Hr. Alda: " + adresse);
} }
Java Code Client
Import
Stubs
ERPManager.class
ERPManagerService.class
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Compile
Run Client
javac *.java
java MyClient
(Vorläufiger) Aufbau der Vorlesung
Kapitel
 1
 2
 3
 4 (11.5.)
Thema
Organisation, Einführung in Software-Architekturen
Einführung in Service-Orientierte Architekturen
Design Prinzipien von Service-Orientierten Architekturen
Web Services I (SOAP, WSDL)
5 (18.5.)
Web Services II (Axis2,...)
6 (25.5.)
Modellierung von Geschäftsprozessen (BPEL, BPMN)
7 (1.6.)
Vertiefung und Backup Web Services
8 (8.6.)
OSGi Service Plattform
9 (15.6.)
Einführung in Swordfish
10
11 (22.6.)
REST Architekturen
Exception Handling in SOA (Gastvortrag)
12 (29.6.) SOA Point of View von Accenture (Gastvortrag)
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 32
Zeitplan der Team-Präsentationen
Kapitel
8.6.
Thema
Vortrag 1: (Team )
Vortrag 2: (Team )
15.6.
Vortrag 3: (Team )
Vortrag 4: (Team )
Vortrag 5: (Team )
22.6.
Vortrag 6: (Team )
Vortrag 7: (Team )
29.6.
Vortrag 8: (Team )
Vortrag 9: (Team )
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 33
Überblick Team-Präsentationen
Team
Fanta5
Temporär
Blau
Gummibärenbande
ichweissnicht
Jajowada
Mars
Massup
Sprint
Temporär
Thema
Finanzbuchhaltung in einem ERP-System
Persistente Speicherung von Daten
Verarbeitung elektronischer Rechnungen
Zukunftsweisende Hardware-Struktur
Software für Digitale Signatur
Bearbeitung von KPI
Portal-Integration
Scannen und Integration von Dokumenten
Zugriff auf LDAP-Verzeichnis
Persistente Speicherung von Daten
Prof. Dr. Sascha Alda, Hochschule Bonn-Rhein-Sieg, FB Informatik. c/o 2010
Folie 34
Herunterladen