1 Studienarbeit Entwurf und Implementierung eines UPnP-Browsers Stefan Budde Betreuer: Bernhard...

Preview:

Citation preview

1

StudienarbeitStudienarbeit

Entwurf und Implementierung eines Entwurf und Implementierung eines

UPnP-BrowsersUPnP-Browsers

Stefan BuddeStefan Budde

Betreuer: Bernhard Thurm, Verena KahmannBetreuer: Bernhard Thurm, Verena Kahmann

2

ÜbersichtÜbersicht

Kurze Einführung in UPnPKurze Einführung in UPnP

Siemens UPnP ImplementierungSiemens UPnP Implementierung

Aufgabe und resultierende ProblemeAufgabe und resultierende Probleme

Implementierung des BrowsersImplementierung des Browsers

3

Was ist UPnP?Was ist UPnP?

UPnP = “Universal Plug and Play”UPnP = “Universal Plug and Play” Spezifikation zur Service-Erkennung und Service-Spezifikation zur Service-Erkennung und Service-

Nutzung in einem NetzwerkNutzung in einem Netzwerk betriebssystem- und implementierungsunabhängigbetriebssystem- und implementierungsunabhängig basiert auf Standard-Protokollen basiert auf Standard-Protokollen funktioniert in Ad-hoc- und stationären funktioniert in Ad-hoc- und stationären

NetzwerkenNetzwerken

4

UPnP ArchitekturUPnP Architektur Client / Server – Architektur:Client / Server – Architektur:

Server (Devices)

Clients (Control Points)

5

Wie funktioniert UPnP?Wie funktioniert UPnP?

Adressierung

Erkennung

Beschreibung

Benachrichtigung Steuerung Präsentation

6

Siemens UPnP StackSiemens UPnP Stack

Java - ImplementierungJava - Implementierung

com.siemens.upnp

com.siemens.upnp.controlpoint

com.siemens.upnp.devicehost

Aufteilung in 3 Gruppen bzw. PackagesAufteilung in 3 Gruppen bzw. Packages

7

UPnP SucheUPnP Suche

Per SSDP, Multicast UDPPer SSDP, Multicast UDP

M-SEARCH * HTTP/1.1HOST: 239.255.255.250:1900MAN: "ssdp:discover"MX: seconds to delay responseST: search target

Kaum Einschränkungen der Suchergebnisse!Kaum Einschränkungen der Suchergebnisse!

Alle Geräte (ssdp:all) Nach upnp:rootdevice Bestimmter Device-Typ Nach Device UUID Bestimmter Service-Typ

Beispiele für Anwendungen: Beispiele für Anwendungen:

–NetzwerkkameradienstNetzwerkkameradienst

–BilderdienstBilderdienst

–Gebäude/LampenGebäude/Lampen

8

Aufgaben des ServiceBrowsersAufgaben des ServiceBrowsers

Erweiterung der UPnP-SuchmöglichkeitenErweiterung der UPnP-Suchmöglichkeiten– Attributensuche und FilterungAttributensuche und Filterung

Probleme?Probleme?

– AktualitätsproblemAktualitätsproblem

Steuerung der gefundenen ServicesSteuerung der gefundenen Services

9

Erster LösungsansatzErster Lösungsansatz

NotifizierungsmechanismusNotifizierungsmechanismus– Fortlaufende Information über Änderungen der Fortlaufende Information über Änderungen der

ZustandsvariablenZustandsvariablen– Anmeldung auf ÄnderungenAnmeldung auf Änderungen

Nachteile: Nachteile: – Nur bei Variablen mit BenachrichtigungNur bei Variablen mit Benachrichtigung– SkalierbarkeitSkalierbarkeit

10

Zweiter LösungsansatzZweiter Lösungsansatz

Polling-VerfahrenPolling-Verfahren– Service-Beschreibung nach Service-Beschreibung nach relatedStateVariablerelatedStateVariable durchsuchen durchsuchen

– SOAP-Aktion beim Filterprozess, um den SOAP-Aktion beim Filterprozess, um den aktuellen Wert abzufragenaktuellen Wert abzufragen

NachteileNachteile– Passende SOAP-Aktion u.U. nicht ermittelbar Passende SOAP-Aktion u.U. nicht ermittelbar – SkalierbarkeitSkalierbarkeit

11

ImplementierungImplementierung Filter: Laden und Speichern möglichFilter: Laden und Speichern möglich

Aufbau eines FiltersAufbau eines Filters

– Service-Typ-spezifischService-Typ-spezifisch

– Filterbedingungen implizit “UND”-verknüpftFilterbedingungen implizit “UND”-verknüpft

Aufbau der FilterbedingungenAufbau der Filterbedingungen

<Zustandsvariable> <Operator> <Text>

„Location“ EQUALS „Room 10“

12

FilterungsprozessFilterungsprozessService-Typ gleich?

Enthält der Service die Zustandsvariable?

Filterbedingung wahr?

Noch Filterbedingungen vorhanden?

Filterbedingungen erfüllt! Filterbedingungen nicht erfüllt!

„Location“ EQUALS „Room 10“

13

ScreenshotScreenshot

14

ZusammenfassungZusammenfassung

Implementierung des ersten Implementierung des ersten LösungsansatzesLösungsansatzes

Attributensuche möglichAttributensuche möglich TestergebnisseTestergebnisse Fragen?Fragen?

Recommended