JAXR Java API for XML Registries

Werbung
JAXR
Java API for XML Registries
Jasmin Hatteh
Übersicht
z Web Service
yArchitektur
yRollenverteilung
yInteraktionen
z Business-Registry
yUDDI
yebXML
z JAXR
yArchitektur
yInteraktionen
yPakete
Was sind Web Services?
zVernetzte Dienste
zProgrammierbar
zLose gekoppelt
zOrtstransparenz
zProtokolltransparenz
zPlattformtransparenz
XML-based open standards
zSimple Object Access Protocol (SOAP)
zWeb Services Description Language (WSDL)
zUniversal Description, Discovery and Integration
(UDDI)
zelectronic business XML (ebXML) Registry
Prinzip einer Service orientierten
Architektur
ServiceBroker
publish
Service
Provider
Service Provider
stellt Service zur Verfügung
publiziert Service
Service
Broker
bind, invoke
find
Stellt Verzeichnis zur
Verfügung, wo Services
publiziert und gefunden
werden können
Service
Requestor
Service Requestor
findet gewünschten Dienst beim Service
Broker und bindet sich an den Service
Provider
Web Services Rollen
WSDL publish
und
UDDI
Web
Service
Service
Provider
UDDI
Registry
Service
Broker
bind, invoke
SOAP
Service Provider
stellt Service zur Verfügung
publiziert Service
ServiceBroker
find
Stellt Verzeichnis zur
Verfügung, wo Services
publiziert und gefunden
werden können
UDDI
und
WSDL
Service
Requestor
Client
Anwendung
Service Requestor
findet gewünschten Dienst beim Service
Broker und bindet sich an den Service
Provider
Web Service Interaktionen
4
Web Service Interaktionen(1)
UDDI
Service
4
Im ersten Schritt wird ein Web
Service mittels JAXR bei einem
UDDI-Server registriert. Dieser
Vorgang erfolgt mittels SOAPRequest. In diesem Schritt erfolgt
das Veröffentlichen(publish)des
Services.
JAXR
1
Web Service Interaktionen(2)
Business partner
or other System
4
UDDI
Service
2
Ein Client ist auf der Suche nach
einem bestimmten Web Service.
Um diesen zu finden, fragt er bei
einem UDDI-Server an , welcher
ihn auf den Web Service verweist
Web Service Interaktionen(3)
Business partner
or other System
3
4
Im dritten Schritt erfordert der
Client das WSDL-Dokument an,
in welchem der Vertrag für die
Kommunikation enthalten ist.
WSDL Dokument
Web Service Interaktionen(4)
Business partner
or other System
4
Servlets
Erst im vierten Schritt wird der
Web Service tatsächlich in
Anspruch genommen.
Was ist eine „Business-Registry“? (1)
zähneln Gelben Seiten
zenthalten Informationen zu einem
Unternehmen, seinen Diensten sowie dem
Zugriffsmechanismus
zstellen die Infrastruktur für lose gekoppelte
Business-2-Business-Interaktionen zur
Verfügung
Was ist eine „Business-Registry“? (2)
zwei XML-Registry-Standards:
zUDDI (Universal Description, Discovery, and
Integration)
yspezifiziert von einer Gruppe von Unternehmen
ywww.uddi.org
zebXML (electronic business XML )
ydefiniert von OASIS und U.N./CEFACT
ywww.ebxml.org
Beim Umgang mit einer BusinessRegistry fallen zwei Kernaufgaben an:
zRegistrieren, Ändern und Löschen eines
Unternehmens beziehungsweise seiner Dienste
(Publishing)
zAbfragen registrierter Unternehmen
beziehungsweise ihrer Dienste (Inquiry)
UDDI
Universal Description, Discovery and Integration (1)
White Pages
Adressinformationen
Name, Beschreibung, Kontaktinformationen
Yellow Pages
Business-Kategorisierung
Katalogiesierung des Angebots
Green Pages
Webservice-Beschreibung
technische Informationen über den Service
UDDI
Universal Description, Discovery and Integration (2)
z ein "Telefonbuch" mit weißen, gelben und grünen
Seiten
z Spezifikation zur Publizierung und Suche von Firmen
und Web Services
yUDDI Spezifikationen definieren wie in UDDI Business
Registries Webservices publiziert und gefunden werden
können
z UDDI Spezifikationen basieren auf XML und SOAP
yXML basierende Datenstrukturen, die einen WebService in
einer UDDI Registry definieren
yAPIs um mit einem UDDI Registry zu kommunizieren
basieren auf SOAP
UDDI
Universal Description, Discovery and Integration (3)
zur Zeit 3 öffentliche Registry Knoten im Web
zgesponsort von IBM, Microsoft und HP
zin den UDDI Business Registries registrieren sich
Firmen
zInhalt ist Informationen über Firmen und ihre
Services
zRegistrierung ist kostenlos
zEinträge werden täglich repliziert
UDDI
Universal Description, Discovery and Integration (4)
ebXML
electronic business XML Registry (1)
z Initiative von UN/CEFACT und OASIS
yGünstige Alternative zu EDI (Electronic Data Interchange)
yBasierend auf XML
yÜber das WWW nutzbar
z Elektronische Abwicklung von Geschäften
ySpezifikation von Kommunikation
yProfile von Geschäftspartnern
z Unterteilung in Registry und Repository
yRegistry referenziert auf Daten
yRepository speichert Daten
UDDI vs. ebXML
z
z
z
z
UDDI
Datenstruktur: einfach,
übersichtlich. Nur Metadaten.
Bietet Grundfunktionalität, ist
flexibel anwendbar
Nur URL-Verweis auf
Webservice-Beschreibung
Sicherheit zwar streng, aber
nicht standardisiert
ebXML
z Datenstruktur komplex,
Unterteilung in Registry und
Repository. Kann willkürliche
Inhalte haben.
z Erweiterte technische
Funktionalität, spezialisierter
z Sicherheit einheitlich geregelt
Beide Standards werden von großen Firmen unterstützt und
werden mittelfristig zueinander kompatibel sein.
JAXR
Java API for XML Registries
zWerkzeug zum lesenden und schreibenden
Zugriff. Ermöglicht komfortablen Zugriff auf
Business-Registries mit Hilfe von Java über das
Internet
zUnternehmen kann sich selbst registrieren und
Informationen wie Unternehmensname,
Geschäftsbeschreibung etc. hinterlegen oder
nach Informationen von anderen Organisationen
suchen
JAXR
Java API for XML Registries
zJAXR abstrahiert von der zugrundeliegenden
Registry und beschreibt anhand eines
allgemeinen Informationsmodells deren Inhalt
und die Metadaten.
zUnterstützt gängige Registry-Standards wie
UDDI und ebXML
JAXR Architektur (1)
Registry
Service
JAXR Architektur (2)
z JAXR-Client: Ein JavaProgramm, das das JAXR
API verwendet, um auf
eine Business-Registry
zuzugreifen, die von
einem JAXR-Provider zur
Verfügung gestellt wird.
JAXR Architektur (3)
z JAXR-Provider:
Implementierung der JAXR
API. Der JAXR-Provider ist
pluggable, d.h. er
implementiert die JAXR API
unabhängig von einer
bestimmten BusinessRegistry. Wird normalerweise
implementiert, um auf einen
existierenden RegistryProvider zuzugreifen.
JAXR Architektur (4)
zRegistry-Provider:
Implementierung
einer RegistrySpezifikation oder Standard wie UDDI
und ebXML.
JAXR Architektur (5)
zRegistry: Das sind die
tatsächlichen
Registry-Daten von
UDDI und ebXML.
JAXR Architektur Vorteile:
zWird ein neuer Registry-Standard entwickelt,
kann dieser in die JAXR-Provider
Implementierung aufgenommen werden, ohne
daß das den JAXR-Client beeinflußt.
zEin JAXR-Client kann mit mehreren Registries in
einer Session interagieren.
zZusätzliche Capability Profiles erlauben es, den
Funktionsumfang eines JAXR-Providers
einzuschränken beziehungsweise zu erweitern.
Interaktion (1)
JAXR
Client
5
1
JAXR
Provider
2
4
Registry
Provider
3
zJAXR Client stellt eine
Anfrage
zEIN JAXR-Client gebraucht
JAXR-Schnittstellen und
Klassen, um um den Zugang
zu einer Registrierung zu
bitten. Der Klient sendet den
Antrag an einen JAXRProvider.
Interaktion (2)
JAXR
Client
5
1
JAXR
Provider
2
4
Registry
Provider
3
z Wenn ein JAXR-Provider einen
Antrag von einem JAXR-Client
erhält, transformiert er den
Antrag in einen equivalenten
Antrag um, welcher auf der
Spezifizierungen der ZielRegistry basiert. Der JAXRProvider leitet dann diesen
umgestalteten Antrag an einen
Registry-Provider weiter.
Interaktion (3)
JAXR
Client
5
1
JAXR
Provider
2
4
Registry
Provider
3
zDer Registry-Provider erhält
einen Antrag von einem
JAXR-Provider und
bearbeitet ihn. Der Prozeß
wird dann umgekehrt...
Interaktion (4)
JAXR
Client
5
1
JAXR
Provider
2
4
Registry
Provider
3
zDer Registry-Provider schickt
dem JAXR-Provider eine
Antwort, welche in eine
equivalente JAXR Antwort
umgewandelt wird.
Interaktion (5)
zDer JAXR-Provider sendet
die JAXR Antwort an den
JAXR-Client.
JAXR
Client
5
1
JAXR
Provider
2
4
Registry
Provider
3
Der JAXR-Provider implementiert
zwei Hauptpakete:
javax.xml.registry
zAPI-Schnittstellen und -Klassen
zdefinieren Schnittstelle für den Zugriff auf die
Registry
javax.xml.registry.infomodel
zSchnittstellen, die das Informationsmodell für
JAXR definieren.
javax.xml.registry Paket
Basisschnittstellen
Connection
z Der Klient muß eine Verbindung mit dem JAXR-Provider
schaffen, um eine Registry zu gebrauchen. Sie vertritt
eine Client-Session mit einem Registry-Provider.
RegistryService
z Der Client erhält ein RegistryService Objekt von seiner
Verbindung
z bietet dem Client andere Schnittstellen, um auf eine
Registry zuzugreifen
javax.xml.registry Paket
Primäre Schnittstellen
BusinessQueryManager
z erlaubt dem Client in der Registry nach Informationen
zu suchen
BusinessLifeCycleManager
z erlaubt dem Client die Informationen in einer Registry zu
modifizieren durch speichern (aktualisieren) oder
löschen.
DeclarativeQueryManager:
z erlaubt dem Client SQL Syntax für Queries zu benutzen.
(Noch nicht implementiert)
javax.xml.registry.infomodel
javax.xml.registry.infomodel
z Schnittstellen, die das Informationsmodell für JAXR
definieren.
z Diese Schnittstellen definieren die Types of Objects , die
in einer Registry liegen und ihre Beziehungen. Die
grundlegenden Schnittstellen in diesem Paket ist das
RegistryObject interface und seine Subinterfaces
Organization, Service und ServiceBinding.
JAXR Exception
zBei einem Fehler wird eine JAXR API Methode
oder eines ihrer Unterklassen aufgerufen
zEinige Methoden in der JAXR API nutzen eine
Collection als Argument oder Returnwert. Das
ermöglicht den gleichzeitigen Betrieb von
mehreren Registry Objekts
Vielen Dank für die
Aufmerksamkeit!
JAXR
Java API for XML Registries
Georg Pferdmenges
JAXR
Java API for XML Registries
- Allgemein
Ablauf von
- Verbindungserstellung
- Abfrage vorhandener Dienste
- Registrieren eines eigenen Dienstes
mittels der API
JAXR
Allgemein
Hauptklassen IsoQuery und PublishORG
beinhalten Funktionen um Verbindungen zu
erstellen, Services abzufragen und zu registrieren
Verbindungserstellung über die Funktionen
makeConnection(String queryUrl);
bzw.
makeConnection(String publishUrl, String queryUrl);
JAXR
Verbindung Abfrage
makeConnection(String queryUrl);
Übergabe der Verbindungskonfiguration, z.B.
http://uddi.ibm.com/testregistry/inquiryapi
Angabe eines Verbindungstyps durch
setProperty([..] xml.registry.uddi[..]);
Objekt vom Typ ConnectionFactory erzeugt mit
den Werten eine Verbindung
JAXR
Verbindung Eintrag
makeConnection(String publishUrl, String queryUrl);
zusätzlich eine publishURL
https://uddi.ibm.com/testregistry/protect/publishapi
Verbindungstyp
setProperty([..] xml.registry.uddi[..]);
Angabe meines Webservices
props.setProperty("javax.xml.registry.http.proxyHost","myhos
t.mydomain");
Verbindungserstellung wie zuvor
JAXR
Abfrage
(bei stehender Verbindung)
executeQuery()
Angabe des Klassifikation Schemas
(suchen, aber wie):
findClassificationSchemeByName(findQualifiers,
"iso-ch:3166:1999");
Klassifikation erzeugen
(suchen, aber was):
createClassification(cScheme,"Europe", "DE");
Zusatzoptionen:
findOrganizations(null, null, classifications, null, null, null);
à Fordert die Ergebnisse kumulativ !
Starten der Abfrage
getCollection()
JAXR
Abfrage
(bei stehender Verbindung)
Ergebnis sind Services die den von uns
vorgegebenen Parametern bezüglich Schema,
Klassifikation und zusätzlichen Kriterien
entsprechen.
JAXR
Eintrag
(bei stehender Verbindung)
executePublish(String username, String password)
Authentifikation über user/ pass (Bekommen von IBM)
connection.setCredentials(credits);
user und pass sind durch PasswordAuthentication(user, pass)
in der Variablen credits enthalten. Bei fehlerhafter
Authentification gibt es eine exception
Eingabe der notwenigen Parameter unseres
Webservices:
- createOrganization(String);
„organization“
// erstellt neue Hauptinstanz
JAXR
Eintrag
-
(bei stehender Verbindung)
createInternationalString(String);
createPersonName(String);
setNumber(String);
createEmailAddress(String); // Werden der Hauptinstanz
„organization“ hinzugefügt
Auch hier: Setzen des Klassifikationschemas!
Das Schema wird der Hauptinstanz „organization“
zugeordnet
JAXR
Eintrag
(bei stehender Verbindung)
Neue Services:
createService(String);
setDescription();
//
//
Titel
Beschreibung
nun die Bindung zum Service angeben:
setAccessURI(ourWebServiceURL);
durch addServices(services); die neuen Services an unsere
Hauptinstanz weitergeben
Unsere gespeicherten Organisation(en) registrieren:
saveOrganizations(our_organizations);
JAXR
Eintrag
(bei stehender Verbindung)
Durch die Funktion
getId() des
javax.xml.registry.infomodel.Key
unserer Organisation.
Moduls
bekommen wir die ID
Vielen Dank für die
Aufmerksamkeit!
Herunterladen