© materna gmbh 2008 workshop oldenburg, 23.10.2008 devices profile for web services

52
www.materna.de 1 © MATERNA GmbH 2008 Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

Upload: friederike-westermann

Post on 05-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 1© MATERNA GmbH 2008

Workshop

Oldenburg, 23.10.2008

Devices Profile for Web Services

Page 2: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 2© MATERNA GmbH 2008

Tagesablauf

SOA • Web Services DPWS DPWS Explorer DPWS Multi Edition Stack DPWS gSOAP Stack DPWS-AXIS2 OSGi/DPWS-Integration WS4D-Pipes

Page 3: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 3© MATERNA GmbH 2008

SOA • Web Services

Page 4: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 4© MATERNA GmbH 2008

SOA

Was ist SOA? Abstraktes Konzept einer Software-Architektur Dienste anbieten, suchen und nutzen

Eigenschaften von Diensten in SOA Wieder verwendbar Offen zugreifbar Plattform- und sprachenunabhängig Lose gekoppelt

Page 5: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 5© MATERNA GmbH 2008

SOA – Infrastruktur

Rollen in der SOA Anbieter Nutzer Vermittler

Dienst-anbieter

Dienst-nutzer

Dienst-vermittler

Service Client

veröffentlichen finden

interagieren

Page 6: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 6© MATERNA GmbH 2008

Web Services

Was sind Web Services? Umsetzung des SOA-Konzepts Maschine-Maschine Interaktion im Netzwerk

Realisierung durch Standards XML SOAP WSDL UDDI

Page 7: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 7© MATERNA GmbH 2008

Web Services – Infrastruktur

Rollen in der Web Services Architektur Anbieter Nutzer Verzeichnis (Vermittler)

Dienst-anbieter

Dienst-nutzer

Dienst-verzeichnis

Service Client

veröffentlichen Verweis auf Dienst

Abfrage der Beschreibung

UDDI

WSDL WSDL

SOAP

suchen

SOAPNutzung

Page 8: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 8© MATERNA GmbH 2008

Web Services – SOAP

Aufbau einer SOAP-Nachricht SOAP Envelope, Header, Body

Verwendung Datentransport Methodenaufruf (SOAP-RPC)

Transportprotokolle HTTP, SMTP, FTP, RMI, …

SOAP beschreibt das XML-basierte Nachrichtenformat der Kommunikation

und dessen Einbettung in ein Transportprotokoll

Envelope

Header

Body

Page 9: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 9© MATERNA GmbH 2008

Web Services – WSDL

Aufbau eines WSDL-Dokuments Types Interface (portType) Bindings Services

WSDL ist eine XML-basierte Sprache, um Web-Services-Schnittstellenzu beschreiben

description

types

portType

binding

service

operation

input

output

operation

endpoint

Page 10: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 10© MATERNA GmbH 2008

Web Services – DPWS

Problem Keine dynamische Suche von Diensten Keine Ereignisverarbeitung Keine Ressourcen-Optimierung

Page 11: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 11© MATERNA GmbH 2008

DPWS

Page 12: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 12© MATERNA GmbH 2008

DPWS

Devices Profile for Web Services Specification:

„DPWS defines a minimal set of implementation constraints to enable secure Web service messaging, discovery, description, and eventing on resource-constrained endpoints.“

Fakten Erstveröffentlichung in 2004 Seit 2008 existiert OASIS WS-DD TC Standard von Microsoft, Intel, Nortel, Lexmark, Red Hat, … Integraler Bestandteil von Windows Vista

Page 13: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 13© MATERNA GmbH 2008

DPWS

"The formation of the WS-DD Technical Committee is an important milestone and builds upon mature WS-* base protocols by expanding the scope to include the wide variety of devices being used today in homes and enterprises. Defining protocols for discovering, securely consuming and exposing Web services in a lightweight footprint that suits these devices has the potential to greatly broaden the reach of Web services to meet customers' needs."

Sriram Rajagopalan, Leiter von Program Management for Windows Device and Storage Technologies in Microsoft:

Page 14: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 14© MATERNA GmbH 2008

DPWS – Infrastruktur

Terminologie Device (Dienstanbieter) Client (Dienstnutzer) Discovery ersetzt Vermittler

Device(Hosting Service)

HostedServices

Device(Hosting Service)

HostedServices

Client

Client

Messages

Page 15: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 15© MATERNA GmbH 2008

DPWS – Messaging

Protokolle und Spezifikationen SOAP 1.2 HTTP/1.1 WS-Addressing UUID URI UDP MTOM

R0029: A SERVICE SHOULD NOT send a SOAP ENVELOPE that has more octets than the MTU over UDP.

R0034: A SERVICE MUST at least receive and send SOAP 1.2 SOAP Envelopes.

R0004: A DEVICE SHOULD use a urn:uuid scheme URI as the [address] property of its Endpoint Reference.

Page 16: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 16© MATERNA GmbH 2008

DPWS – Discovery

Spezifikation WS-Discovery

Nachrichten Hello Bye Probe und Probe Match Resolve und Resolve Match

Device Client

Hello / multicast

Resolve Match / unicast

Bye / multicast

Probe Match / unicastProbe / multicast

Resolve / multicast

Page 17: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 17© MATERNA GmbH 2008

DPWS – Description

Spezifikationen WSDL 1.1 WS-MetadataExchange WS-Policy WS-Transfer

Device-Eigenschaften Manufacturer, ModelName, FriendlyName, …

Service-Eigenschaften Beschreibung, Zugehörigkeit, Nachrichten, Transport, Security, …

<wsdp:ThisDevice> <wsdp:FriendlyName xml:lang=„en-US“> Our New Coffee Maker </wsdp:FriendlyName><wsdp:FirmwareVersion> 2008.09CM_v01 </wsdp:FirmwareVersion><wsdp:SerialNumber> 12345-123-1234 </wsdp:SerialNumber></wsdp:ThisDevice>

<wsdp:Hosted> <wsa:EndpointReference> <wsa:Address> http://139.2.1.3/makeCoffee </wsa:Address> </wsa:EndpointReference> <wsdp:Types> img:MakeCappucinoPortType img:MakeEspressoPortType </wsdp:Types> <wsdp:ServiceId> http://coffee.example.org/ CoffeeService </wsdp:ServiceId></wsdp:Hosted>

Page 18: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 18© MATERNA GmbH 2008

DPWS – Eventing

Spezifikation WS-Eventing

Parteien Event Sink (Client) Event Source (Hosted Service) Subscription Manager

Subscription Notifications (Event Messages) zeitliche Dauer

Delivery Mode Push

HostedSevice Client

subscribe()

sendEvent(…)

Observable Observer

setChanged()

notifyObservers()

unsubscribe()

Observer Design Pattern

Page 19: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 19© MATERNA GmbH 2008

DPWS – Security

Spezifikationen WS-Security

Integrität XML Signature

Vertraulichkeit XML Encryption

Authentifizierung Transport Layer Security (https)

Page 20: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 20© MATERNA GmbH 2008

DPWS Explorer

Page 21: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 21© MATERNA GmbH 2008

DPWS Explorer

Funktionen Discovery Eventing Methodenaufrufe Filter WSDL-Import

Unterstützung bei Fehlersuche

Page 22: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 22© MATERNA GmbH 2008

DPWS Java Multi Edition Stack

Page 23: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 23© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Historie

Stack wird entwickelt in Zusammenarbeit von

Entwicklung wurde im Herbst 2005 begonnen

Open Source seit 2007

Sourceforge: WS4D.org Java Multi Edition DPWS Stack

Aktuelle Version: 0.9.5

Website: www.ws4d.org

Page 24: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 24© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Spezifkationen

Implementierung der DPWS-spezifischen Anforderungen von

WS-DiscoveryErkennung von Geräten im lokalen Netzwerk

WS-EventingEreignisgesteuerter Nachrichtenaustausch

WS-Transfer und WS Metadata ExchangeMetadatenaustausch von Entitäten

WS-SecuritySSL-Transportsicherheit

MTOMVersand von Binärinformationen

Page 25: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 25© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Features Teil 1

Vielseitigkeit durch Unterstützung aller Java-LaufzeitumgebungenJava SE, Java ME (CLDC und CDC)

Skalierbarkeit durch AnpassungsfähigkeitVerwendung spezifischer Plattformen und Module

Generisches Webinterface PresentationURL

Page 26: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 26© MATERNA GmbH 2008

Device(Hosting Service)

HostedServices

Client

DPWS Java Multi Edition Stack – Features Teil 2

Interoperabilität mit anderen DPWS-ImplementierungenVista (WSDAPI), gSOAP, Axis2, Schneider

WSDL-Generierung und Interpretation zur LaufzeitOn-the-fly Generierung von Proxies zu DPWS-Devices und Services

Remote Device...<wsdl:portType name="HelloWorldService"> <wsdl:operation name="SayHelloWorld"> <wsdl:input ... /> </wsdl:operation></wsdl:portType>...Remote

Services

Page 27: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 27© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Architektur

Application

Core

Platform Toolkit (SE, CDC, CLDC)

Java Virtual Machine

Remote

Client

SOAP

UDPHTTP

TCP

Plug-ins Attachment

PresentationURL

DeviceAdmin

Core

Plug-ins

Discovery Eventing

Java Virtual Machine

SOAP

UDPHTTP

TCP

Service

Discovery EventingRemote

Application

Security

Client Service

Platform Toolkit (SE, CDC, CLDC)

Page 28: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 28© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Klassenübersicht

HostingServiceDevice

HostedServiceService

QualifiedNamePort-Typen

ParameterOperanden von Actions

ActionOperation

Client

Device(Hosting Service)

HostedServices

Client

Remote Device

...<wsdl:portType name="HelloWorldService"> <wsdl:operation name="SayHelloWorld"> <wsdl:input ... /> </wsdl:operation></wsdl:portType>...Remote

Services

Action A

Action B

Page 29: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 29© MATERNA GmbH 2008

Funktion: DPWS Device

Konstruktor: public HostingService( QualifiedName deviceType )

DPWS Java Multi Edition Stack – Klasse HostingService

Aufgaben: Device-Port-Type setzen

Device-Metadaten setzen

Client: RemoteDevice

public class SampleDevice extends HostingService {public static final String NAMESPACE="http://www.ws4d.org";public static final String PORTTYPE="SampleDevice";

public static final QualifiedName QN_PORTTYPE= new QualifiedName( PORTTYPE, NAMESPACE );

public SampleDevice() {super(QN_PORTTYPE);

// MetadatensetFriendlyName("de-DE", "Marcus' Device");setModelName("de-DE", "Model 42");

}...

}

Page 30: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 30© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Klasse HostedService

Funktion: DPWS Service

Konstruktor: public HostedService()

Aufgaben: Service-Port-Type definieren

Actions erzeugen

Actions hinzufügen

Client: RemoteService

public class HelloWorldService extends HostedService {

public static final String NAMESPACE=SampleDevice.NAMESPACE;

public static final String PORTTYPE="HelloWorldService";

public static final QualifiedName QN_PORTTYPE= new QualifiedName(PORTTYPE, NAMESPACE);

public HelloWorldService() {

super();

// -- hello world action --

HelloWorldAction helloWorldAct = new HelloWorldAction();

addAction(helloWorldAct);

}

...

}

Page 31: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 31© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Klasse Action

Funktion: DPWS Action / Operation

Konstruktor: public Action( String actionName, QualifiedName serviceType, boolean oneway)

Aufgaben: Parameter definieren

und erzeugen

Input/Output-Parameterhinzufügen

Eventing: EventedAction

Client: RemoteAction

public class HelloWorldAction extends Action{

public static final StringACT_HW_NAME= "SayHelloWorld";

public static final StringPARAM_HW_INPUT= "Name";

public static final StringPARAM_HW_OUTPUT= "Greetings";

public HelloWorldAction() {

super(ACT_HW_NAME, QN_PORTTYPE, false);

Parameter helloWorldInput = new Parameter(PARAM_HW_INPUT, NAMESPACE,

ParameterType.PARAMETER_TYPE_STRING);

Parameter helloWorldOutput = new Parameter( PARAM_HW_OUTPUT, NAMESPACE,ParameterType.PARAMETER_TYPE_STRING);

addInputParameterDefinition( helloWorldInput );

addOutputParameterDefinition( helloWorldOutput );

}...

}

Page 32: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 32© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Methode Action.invoke()

Funktion: Eingehende Remote-Operation-Aufrufe verarbeiten

Aufgaben: Input-Parameter holen, Wert auslesen

Output-Parameter holen, Wert setzen

@Override

public void invoke() throws DPWSException {

Parameter helloWorldInput = getInputParameter(PARAM_HW_INPUT);

Parameter helloWorldOutput = getOutputParameter(PARAM_HW_OUTPUT);

String name = helloWorldInput.getValue();

String outputGreetings = "Hello World from Marcus' Service, " +name+ "!";

helloWorldOutput.setValue(outputGreetings);

}

Page 33: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 33© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Device starten

Aufgaben: Device erzeugen Services erzeugen Services zum HostingService hinzufügen Eventing initialisieren (optional) Device starten

public static void main(String[] args) {

SampleDevice device = new SampleDevice();

HelloWorldService service = new HelloWorldService();

device.addHostedService(service);

device.start();

}

Page 34: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 34© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Klasse Client

Funktion: DPWS Client

Konstruktor: public Client()

Aufgaben:

Client erzeugen und starten

Suche definieren und starten Device Port Type

Service Port Type

Scope

Device UUID

public class HelloWorldClient extends Client {

public static void main(String[] args) {

HelloWorldClient client = new HelloWorldClient();

client.start();

// Definiere und starte Suche

SearchParameter search = new SearchParameter(client);

search.addDeviceType(SampleDevice.QN_PORTTYPE);

search.addServiceType(HelloWorldService.QN_PORTTYPE);

SearchManager.getInstance().searchService(search);

}

@Override

public void onServiceFound( ISearchResult result ){

...

}

Page 35: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 35© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Such-Callback

Funktion: Ergebnis eigener Suche (Client)

Callback-Methoden: onServiceFound(...) onDeviceFound(...) onDeviceProbe(...)

Aufgaben: z. B. RemoteAction aufrufen

@Override

public void onServiceFound( ISearchResult result ){

IRemoteService service = result.getRemoteService();

// RemoteAction aufrufen

...

}

Page 36: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 36© MATERNA GmbH 2008

DPWS Java Multi Edition Stack – Operationsaufruf

Funktion: Aufruf einer Remote-Operation

Methodenaufruf: RemoteAction.invoke()

Aufgaben: Hole Input-Parameter,

Wert setzen

Hole Output-Parameter,Wert auslesen

Lokale Aufrufe auch möglich

@Override

public void onServiceFound( ISearchResult result ){

IRemoteService service = result.getRemoteService();

AbstractAction action = service.getAction(

HelloWorldService.HelloWorldAction.ACT_HW_NAME,

HelloWorldService.QN_PORTTYPE);

Parameter input = action.getInputParameter(

HelloWorldService.HelloWorldAction.PARAM_HW_INPUT);

input.setValue("Marcus' Client");

try {

action.invoke();

} catch (DPWSException e) {

e.printStackTrace();

}

Parameter output = action.getOutputParameter(

HelloWorldService.HelloWorldAction.PARAM_HW_OUTPUT);

System.out.println(output.getValue());

}

Page 37: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 37© MATERNA GmbH 2008

OSGi/DPWS-Integration

Web-Service-Integration für eingebettete Systeme mittels

DPWS-fähiger OSGi-Plattformen

Page 38: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 38© MATERNA GmbH 2008

OSGi/DPWS-Integration – Symbolik

Bundle mit OSGi Service

Physikalisches Gerät mit OSGi Framework (Server/Client)

Import von Paketen

Verwendung von

Empfang/Versand einer DPWS-Nachricht

Page 39: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 39© MATERNA GmbH 2008

OSGi und Verteilung – Ist-Zustand

OSGi Services können nur innerhalb einer VM interagieren Eine plattformübergreifende Nutzung ist nicht vorgesehen Verteilte Lösungen lassen sich somit nicht realisieren Im Draft RFC 119 wird ein Konzept für eine transparente verteilte

Kommunikation spezifiziert

Physical Device: OSGi Framework

Bundle Bundle

Physical Device: OSGi Framework

Bundle Bundle

X

Page 40: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 40© MATERNA GmbH 2008

OSGi und Verteilung – Unsere Anforderungen

Einbettung von OSGi in eine verteilte SOA Verschmelzung von SOA und OSGi Nutzung offener und plattformunabhängiger Standards (Web Services) Einsatz auf ressourcenbeschränkten Geräten Keine Anpassungen der OSGi-Konzepte und -mechanismen Keine Unterscheidung zwischen lokalen und entfernten Services Anbieten von Legacy Services als entfernte Services ohne Anpassung Einsetzbarkeit auf möglichst allen OSGi Frameworks Rückgriff lediglich auf OSGi Standard Services

Physical Device: OSGi Framework

Bundle Bundle

Physical Device: OSGi Framework

Bundle Bundle

Page 41: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 41© MATERNA GmbH 2008

OSGi/DPWS-Integration – Adaptergenerierung

Physical Device: OSGi Framework

Adapter Generator

DPWSDevice A

HostedService A

DefaultSerialization

CustomSerializationBundle A

BundleRepository

Hello-MsgDPWS Stack

Page 42: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 42© MATERNA GmbH 2008

OSGi/DPWS-Integration – Proxy-Generierung

Physical Device: OSGi Framework

DefaultSerialization

CustomSerialization

DPWS Stack

Proxy A

RemoteService A

Proxy Generator

DPWS Client

Package(Host-Bundle)

InterfaceX

InterfaceY

BundleRepository

Hello-Msg

Bundle B(Client)

Page 43: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 43© MATERNA GmbH 2008

OSGi/DPWS-Integration – Service-Nutzung (Proxy)

Physical Device: OSGi Framework

DefaultSerialization

CustomSerializationProxy A

DPWS Stack

Package(Host-Bundle)

InterfaceX

InterfaceY

Bundle B(Client)

RemoteService A

Invocation-Msg

Page 44: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 44© MATERNA GmbH 2008

OSGi/DPWS-Integration – Service-Nutzung (Adapter)

Physical Device: OSGi Framework

DefaultSerialization

CustomSerializationBundle A

DPWS Stack

DPWSDevice A

DPWSService A

Adapter Generator

Invocation-Msg

Page 45: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 45© MATERNA GmbH 2008

OSGi/DPWS-Integration – Events (Source)

Physical Device: OSGi Framework

DefaultSerializationEvent Admin

Event-MsgDPWS Stack

Event Converter(Event Handler)

DPWS DeviceEvent Converter

DPWSService

Subscription-Msg

Page 46: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 46© MATERNA GmbH 2008

Physical Device: OSGi Framework

OSGi/DPWS-Integration – Events (Target)

DefaultSerialization

Event-Msg

Event AdminEvent Converter

(Event Handler)

DPWS DeviceEvent Converter

DPWSService

DPWS Stack

Page 47: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 47© MATERNA GmbH 2008

OSGi/DPWS-Integration – Herausforderungen

Unter welchen Interfaces wird ein Proxy registriert? Wie werden Properties eines Service übertragen? Wie wird die Vererbungshierarchie der Java-Interfaces rekonstruiert? Wie werden Methoden den Java-Interfaces zugeordnet? Welche lokalen Services/Bundles sollen entfernt zugreifbar sein? Welche entfernten Services/Bundles sollen lokal eingebunden werden? Kann die entfernte Service-Nutzung gesichert erfolgen?

Page 48: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 48© MATERNA GmbH 2008

OSGi/DPWS-Integration – Zusatz-Services

Zusätzliche Attribute eines DPWS-Service geben an, unter welchen Interfaces ein Service registriert wird

Je nach Bedarf werden DPWS-Zusatz-Services für ein Bundle-Device verfügbar gemacht: OSGi-Zusatz-Service:

Überträgt die Eigenschaften eines Service (Properties) Java-Zusatz-Service:

Liefert Informationen über die Interface-Vererbungshierarchie und die Zuordnung der Methoden zu den Interfaces

Page 49: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 49© MATERNA GmbH 2008

OSGi/DPWS-Integration – Filter

Der Proxy- und Adapter-Generator sind (im Sinne von OSGi) managebar Adapter-Generator:

White List über die Services, die entfernt zugreifbar sein sollen(BUNDLE-SYMBOLIC_NAME, INTERFACE_NAME)

White List über die zu sicherenden Services(BUNDLE-SYMBOLIC_NAME, INTERFACE_NAME)

Proxy-Generator: White List über die einzubindenden Services

(FRAMEWORK-ID, BUNDLE-SYMBOLIC_NAME, SERVICE_IMPL)

Page 50: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 50© MATERNA GmbH 2008

OSGi/DPWS-Integration – Beispielszenario

(max, min)

Setze Schwellenwerte

ALARM

Home Gateway Ergometer(Überwachtes Training)

Klinik(Supervisor)

StarteVideokonferenz

Page 51: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 51© MATERNA GmbH 2008

OSGi/DPWS-Integration – Beispielszenario (schematisch)

OSGi Framework

EKGEKGProxy

VideoKonferenzEKG

Proxy

VideoKonferenz

Proxy

DPWS

EKGMonitoring

ALARMALARM

OSGi Framework

Klinik Home Gateway Sensor

Videostream

OSGi Framework

Page 52: © MATERNA GmbH 2008  Workshop Oldenburg, 23.10.2008 Devices Profile for Web Services

www.materna.de 52© MATERNA GmbH 2008

OSGi/DPWS-Integration – Offene Punkte

Unterstützung von REQUIRE-BUNDLE Berücksichtigung der OSGi-Security-Mechanismen Evaluierung und Abgrenzung zu:

Distributed OSGi R-OSGi Nyota

Tests in praxisnahen Szenarien Definition komplexer Datentypen für das Java Collection Framework Mapping eines nativen DPWS-Service auf seinen Proxy (Interface-Name,

Registrierung, Properties, …)