Web Services ( JAX

Werbung
Web Services ( JAX-RPC )
Referenten
n
n
n
n
Roman Korn
Houman Moshtagh
Kuo-Sek Lee
Xuefei Niu
Übersicht
I.
WebServices, WSDP, JAX-RPC
II.
Wie wird ein Web Service entwickelt?
I.
II.
III.
Der Server
Der Client
Vorstellung der verteilten Anwendung
„Bibliothek“
Roman Korn
Web Services
n
n
n
n
n
n
Leichtgewichtige Web Services (Browser)
Schwergewichtige Web Services (CORBA)
Java API for XML based RPC (JAX-RPC)
SOAP-RPC
WSDL
Interoperabilität
Client
Server
Registry
Roman Korn
Kommunikation
Roman Korn
Nachrichtenarten
Client
Server
Synchron
(unterstützt)
One-way
(unterstützt)
Non-blocking
(nicht unterstützt)
Roman Korn
Web Service Development
Pack (WSDP)
n
n
n
n
n
Java XML Pack
JAX-RPC API
Ant Build Tool
Apache Tomcat
Deploymenttool
Roman Korn
Core API – Client Side
n
n
n
n
n
The javax.xml.rpc.Stub interface
The javax.xml.rpc.Call interface
The javax.xml.rpc.Service interface
The javax.xml.rpc.ServiceFactory class
The javax.xml.rpc.JAXRPCException
class
Roman Korn
Core API – Server Side
n
n
It is important to note that the JAX-RPC
specification does not define and
require any standard APIs for the EJB
container based implementation of a
JAX-RPC server-side runtime system.
The internals of a J2EE container based
JAX-RPC runtime system are
implementation specific.
Roman Korn
Übersicht
I.
Web Services und JAX-RPC
II.
Wie wird ein Web Service entwickelt
I.
II.
III.
Der Server
Der Client
Vorstellung der verteilten
Anwendung „Bibliothek“
Roman Korn
Übersicht
I.
Web Services und JAX-RPC
II.
Wie wird ein Web Service entwickelt
I.
II.
III.
Der Server
Der Client
Vorstellung der verteilten
Anwendung „Bibliothek“
Roman Korn
Übersicht
I.
Web Services und JAX-RPC
II.
Wie wird ein Web Service entwickelt
I.
II.
III.
Der Server
Der Client
Vorstellung der verteilten
Anwendung „Bibliothek“
Roman Korn
JAVA API JAX-RPC
- JAX-RPC bietet eine einfache Möglichkeit, ein SOAP
basiertes Webservice zu entwickeln.
- Entwickler brauchen nicht die Komplexität der
Laufzeitumgebung zu berücksichtigen.
- JAX-RPC unterstützt die Abbildung von WSDL -> JAVA,
JAVA -> WSDL aus seitens des Clients und des Servers.
Kyu-sek Lee
Funktion eines Web Services
Kyu-sek Lee
JAX-RPC Architektur
Client
Server
Kyu-sek Lee
Projekt Bibliothekverwaltung
Kyu-sek Lee
Aufbau und Entwicklung eines
Services (1)
n
Deklaration der Service Interface Klasse
package buecher;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface BibliothekIF extends Remote {
public Buecher[] anzeigen() throws RemoteException;
public Meldung neuesBuchHinzufuegen(Buch buch,int anzahlBuch) throws RemoteException;
public Meldung entfernen(int isbnNr, int anzahlBuch) throws RemoteException;
public Buecher suchen(int isbnNr) throws RemoteException;
public Meldung nachbestellen(int isbnNr,int anzahlBuch) throws RemoteException;
}
Kyu-sek Lee
Aufbau und Entwicklung eines
Services (2)
n
Implementierung der Service Klasse
<<interface>>
BibliothekIF
<<interface>>
java.rmi.Remote
.
.
.
n
•Buecher[] anzeigen()
•Meldung neuesBuchHinzufuegen(Buch
buch,int anzahlBuch)
•Meldung entfernen(int isbnNr, int
anzahlBuch)
•Buecher suchen(int isbnNr)
•Meldung nachbestellen(int isbnNr,int
anzahlBuch)
Terminal
.
.
.
und Kompilierung der Service Klasse
n ant compile-server
Kyu-sek Lee
Aufbau und Entwicklung eines
Services (3)
n
Einpacken der Klassen in einer .WAR Datei
n
n
ant setup-web-inf
ant package
Kyu-sek Lee
Aufbau und Entwicklung eines
Services (4)
n
n
Generierung der Tie Klassen und der WSDL Datei
n ant process-war
Den Service deployen
n ant deploy
Kyu-sek Lee
JAX-RPC Client
n
n
Was ist ein JAX-RPC Client?
-der Client ruft denWebservice an aderen
Platform auf,und führt das Programm durch.
Wie kann dieser Aktion realisiert werden
-JAX-API kombiniert XML mit Remote
Procedure Call(RPC)
-Dieser Mechanismus ermöglicht Clients ,
Prozeduren auf dem verteilten System oder
entfernten System ,auszuführen.
Xuefei niu
JAX-RPC Architektur
Server side
Client side
Client application
Service Endpoint
JAX_RPC
SERVICE
RUNTIME
ENVIRONMENT
JAX-RPC CLIENT
RUNTIME
ENVIRONMENT
SOAP
HTTP
Xuefei niu
Xuefei niu
JAX-RPC runtime und
generiert Klasse
Was ist Stub?
Web Service
Client Application
ties
Stubs
SOAP MESSAGE
JAX-RPC
RUNTIME
http
JAX-RPC
RUNTIME
Xuefei niu
Methode für Ausführung von
Endpoint Service
n
n
n
Stub-based programming model
Dynamic Invocation Interface(DII)
Dynamic Proxies
Xuefei niu
Entwicklung eines Client
Programms
n
n
n
n
n
Generate stubs
Code the client
Compile the client code
Package the client classes into a JAR file
Run the client
Xuefei niu
mit static Stubs Client zu erzeugen
n
n
n
n
n
Config.xml Datei,um zu WSDL Datei den Pfad
anzugeben
Command eingabe zur Erzeugung von Stub:
ant generate-stub
wscompile -gen:client -d build/client classpath build/shared config.xml
Compile client code:
ant compile-client (BibClient.java)
Packaging the client:
ant jar-client (danach dist/buecher-client.jar )
Run Programm: ant run
Xuefei niu
public static Buecher[] anzeigen(){
Buecher Array[];
try {
Stub stub = createProxy();
BibliothekIF MyProxy = (BibliothekIF)stub;
Array=MyProxy.anzeigen();
} catch (Exception ex) {
ex.printStackTrace();
Array=new Buecher[0];
Array[0].setStatus(false);
Array[0].setMeldung(fehler);
}
return Array;
}
private static Stub createProxy() {
return (Stub)(new MyBibliothek_Impl().getBibliothekIFPort());
}
Xuefei niu
Weitere Einführung
n
n
A dynamic Proxy Client
keine config.xml datei,Pfad zu WSDL Datei
direct
im client angeben
A Dynamic Invocation Interface Client
Xuefei niu
Herunterladen