PPT

Werbung
Spontane Vernetzung
Christoph Hoche
19. Februar 2002
Inhalt
Einleitung
Spontane Vernetzung
Infrastrukturen
1.
2.
3.
1.
2.
3.
JINI (Java Intelligent Network Interface)
SLP (Service Location Protocol)
WebServices
1.
2.
3.
SOAP (Simple Object Access Protocol)
WSDL (Web-Service Description Language)
UDDI (Universal Description Discovery and Integration)
2
Einleitung
3
Spontane Vernetzung



Jedes Gerät stellt seine Dienste anderen zur Verfügung
Automatische Integration neuer Geräte/Dienste
Ebenen der spontanen Vernetzung:
1.
Netzwerkebene


Automatische Vernetzung
Festlegen von Kommunikationsparametern in einem Protokollstack:



2.
Infrastrukturebene


3.
Zuweisung einer IP-Adresse mittels DHCP
Authentifizierung
…
Software zur vereinfachten Nutzung der Netzwerkebene
Vermittlung und Verwaltung von Diensten
Dienstebene

Bereitstellen und Nutzen von Diensten
4
Dienstvermittlung
Dienstvermittler
3. Dienstrückgabe
1. Registrierung
2. Dienstanfrage
Dienstnehmer
Dienstanbieter
4. Dienstnutzung
5
Infrastrukturen
JINI (Java Intelligent Network Interface)
SLP (Service Location Protocol)
WebServices
1.
2.
3.
1.
2.
3.
SOAP (Simple Object Access Protocol)
WSDL (Web-Service Description Language)
UDDI (Universal Description Discovery and
Integration)
6
JINI







Java Intelligent Network Infrastructure
Sun Microsystems
Vermittlung von Diensten in lokalen Netzen
Dienstvermittlung zentral (Lookup-ServiceGruppen möglich)
Vollständig in Java implementiert
Publikation der Dienste mittels Proxy-Objekte
Informationen:

http://www.sun.com/jini
7
JINI Dienstvermittlung
1.
2.
3.
4.
5.
6.
Discovery I
Join
Discovery II
Lookup
Receive
Use
1
Network
Service
Service
Proxy2
Lookup
Service
Service
Request
Proxy
5
6
3 4
Request
Network
Client
8
Jini Beispiel

Dienstbeschreibung:

Bedienung durch Interface
interface PrinterInterface
implements Serializable
{
void print ();
}

Eigenschaften durch Klassen:
class Resolution extends AbstractEntry {
int dpi;
Resolution (int dpi) {this.dpi = dpi ;}
}
class Info extens AbstractEntry {
String vendor;
int
year;
Info (String vendor, int year) {
this.vendor = vendor;
this.year = year ;}
}


Dienstregistrierung:
PrinterInterface printerProxy = new PrinterImpl();
Entry [] attr = {new Resolution (600),
new Info (“HP”, “2001”)};
JoinManager jm = new JoinManager (printerProxy, attr,
null, null, null);

Anfrage:
Class[] classes = {PrinterInterface.class};
Entry[] attr = {new Resolution(600),
new Info(“HP”, null)};
ServiceTemplate anfrage = new ServiceTemplate(null,
classes, attr);
ServiceRegistrar serviceRegistrar; //Lookup-Service
…
ServiceItem[] serviceItems = serviceRegistrar.lookup
(anfrage);
PrinterInterface printerProxy =
(PrinterInterface)serviceItem[0].service;
printerProxy.print();
Dienstimplementierung:
public class PrinterImpl
implements PrinterInterface
{
void print () {…}
}
9
SLP






Service Location Protocol
Standard der IETF
(RFC2608)
Protokoll zur lokalen
Dienstvermittlung
Mit/ohne zentrale
Dienstvermittlung
Reine SchnittstellenBeschreibung
Informationen:

http://www.srvlog.org
10
Dienstbeschreibung



Dienst als URL: Protokoll und Location
Attribute als Name-Wert-Paare in der Form (Name = Wert)
Textbasiert
Lifetime:
URL:
Attributes:
10800
service:lpr://www.ibr.cs.tubs.de:515/queue
(SCOPE = STUDENTS),
(PAPERCOLOR = WHITE),
(PAPERSIZE = A4),
(UNRESTRICTED_ACCESS),
(LANGUAGE = POSTSCRIPT),
(FLOOR = 1),
(ROOM = 168)
11
SLP - Anfrage / Nutzung

Dienstanfrage:


Angabe des Servicetyps
Boolsche Verknüpfung der Attribute
lpr//(&(LANGUAGE == POSTSCRIPT),
(UNRESTRICTED_ACCESS),
(FLOOR == 1))/

Dienstvermittlung:


Erfüllen des boolschen Ausdrucks der Anfrage für den verlangten Servicetyp
Rückgabe:

Resultat ist die URL des Service
service:lpr://www.ibr.cs.tu-bs.de:515/queue
12
Web-Services





Dienst, erreichbar über das
Internet
Verwendung offener Standards
Programmiersprachen
unabhängig, da reine
Schnittstellenbeschreibung
Globale Verwaltung in einer
Registry
Web-Service Umgebungen:





Microsoft .NET
SUN ONE
Hewlett Packard E-Services
Oracle 9i
IBM Websphere mit IBM WebServices Toolkit

Protokolle:



SOAP (Simple Object Access
Protocol)
WSDL (Web-Service
Description Language)
UDDI (Universal Description,
Discovery and Integration)
13
SOAP







Simple Object Access Protocol
W3C-Spezifikation
Protokoll für Remote-Procedure-Calls
XML-basiert -> textbasiert -> transparent
Unabhängig vom Transportprotokoll (HTTP,
SMTP, FTP, …)
Geht durch Firewalls
Weitere Informationen:

http://www.w3c.org/2000/xp
14
SOAP Message

SOAP Message


Protocol Header
SOAP Envelope
Soap Message:

Protocol-Header:

SOAP Header
Headers


Message Name & Data
Container für SOAP-Header und SOAP-Body
SOAP Header:




Ist vom verwendeten Transportprotokoll
abhängig
SOAP Envelope:

SOAP Body
Stellt genau eine Anfrage oder eine Antwort dar
Besteht aus Protokoll-Header und SOAPEnvelope
Daten über SOAP-Nachricht
Anweisungen für die aufgerufene Anwendung
Optional
SOAP-Body:

Enthält die eigentliche Nachricht
15
SOAP Beispiel

SOAP Message
Protocol Header
SOAP Envelope
SOAP Header
Headers
POST /Object http/1.1
Host: 134.169.34.18
Content-Type: text/xml
Content-Length: 184
SOAPAction: „urn:print-com:Printer#print”
<SOAP-ENV:Envelope
xmlns:SOAPENV=“http://schemas.xmlsoap.org/soap/envelope/“
SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/“
xmlns:xsi=“http://www.w3c.org/1999/XML-Schema-instance“
xmlns:xsd=„http://www.w3c.org/1999/XML-Schema“>
<SOAP-ENV:Body>
<p:print xmlns:p=“http://www.ibr.cs.tu-bs.de/WebServices/print“>
<text xsi:type=”xsi:string”>
Hello World
</text>
</p:print>
</SOAP-ENV:Body>
<SOAP-ENV:Envelope>

SOAP Body
Message Name & Data
Anfrage:
Antwort:
200 OK
Content-Type: text/xml
Content-Length: 192
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/“
SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/“
xmlns:xsi=“http://www.w3c.org/1999/XML-Schema-instance“
xmlns:xsd=“http://www.w3c.org/1999/XML-Schema“
<SOAP-ENV:Body>
<p:printerResponse xmlns:p=“http://www.ibr.cs.tu-bs.de/WebServices/print“>
<text xsi:type=”xsd:string”>
11 Bytes printed.
</text>
</p:printerResponse>
</SOAP-ENV:Body>
<SOAP-ENV:Envelope>
16
WSDL






Web Service Description Language
W3C-Spezifikation
XML basiert
Beschreibung von Web-Services (wie IDL in
CORBA)
Kann aus Klassen gewonnen werden (und
umgekehrt)
Informationen:

http://www.w3.org/TR/wsdl
17
WSDL - Elemente

WSDL-Datei
Types
Messages
PortTypes
Bindings
Service
Port
Types:


Definition von Datentypen
Syntax nach XML-Schema
<types>
<schema targetNamespace=”http://www.ibr.cs.tubs.de/WebServices/printService.xsd”
xmlns=“www.w3.org/2000/10/XMLSchema“>
<element name=“PrintInstruction“>
<complexType>
<all>
<element name=”printString”
type=”string”>
</all>
</complexType>
</element>
<element name=“PrinterResponse“>
<complexType>
<all>
<element name=”responseString”
type=”string”>
</all>
</complexType>
</element>
</types>
18
WSDL - Elemente

Message:

WSDL-Datei
Types
Messages
<message name=“SendPrintInstruction“>
<part name=”data”
element=”xsdl:PrintInstruction”/>
</message>
<message name=“GetPrinterResponse“>
<part name=”return”
element=”xsdl:PrinterResponse”/>
</message>
PortTypes

Bindings
Service
Port
Zusammensetzen der Types zu einer Nachricht.
PortTypes:


Art der möglichen Operationen auf einem Port
Kann Eingabe und/oder Ausgabe haben
<portType name=“PrintPortType“>
<operation name=”Print”>
<input
message=”tns:SendPrintInstruction”/>
<output
message=”tns:GetPrinterResponse”/>
</operation>
</portType>
19
WSDL - Elemente

Bindings:

WSDL-Datei
Types
Messages
<binding name=”PrintBinding”
type=”tns:PrintPortType“>
<soap:binding style=“document“
transport=“http://schemas.xmlsoap.org/...
...soap/http/”/>
<operation name=“Print“>
<soap:operation
soapAction=”http://www.ibr.cs.tu-bs.de/WebServices/Print”/>
</operation>
</binding>
PortTypes

Bindings
Port
Port:


Service
Binden eines PortTypes an Protokolle
Endpunkt eines Dienstes (URL)
Service:

Zusammenfassung von Ports
<service name=”PrintService”
<port name=“PrintPort“ binding=“tns:PrintBinding“>
<soap:address
location=“http://www.ibr.cs.tu-...
...bs.de/WebServices/Print”/>
</port>
</service>
20
UDDI


Universal Description, Discovery and Integration
Globale Business-Registry:


Logisch zentral
White-Pages:


Yellow-Pages:


Branchenspezifische Suche nach Unternehmen (Branche, Land)
Green-Pages:


Informationen zu den Anbietern (URL, Adresse, TelNr.)
Technische Beschreibung der Plattformen und Dienste eines
Unternehmens
Weitere Informationen:

http://www.uddi.org
21
Zusammenfassung
JINI
SLP
Web-Services
Programmiersprache Java
Unabhängig
Unabhängig
Dienstbeschreibung
Java-Interface,
Java-Klassen
Textbasiert
XML-basiert
Dienstvermittlung
Lokal
Lokal
Global
Dienstnutzung
Proxy-Objekt
Service-Aufruf
Service-Aufruf
22
Herunterladen