Studienarbeit Entwurf und Implementierung eines UPnP-Browsers Stefan Budde Betreuer: Bernhard Thurm, Verena Kahmann
Übersicht Kurze Einführung in UPnP Siemens UPnP Implementierung Aufgabe und resultierende Probleme Implementierung des Browsers
Was ist UPnP? UPnP = “Universal Plug and Play” Spezifikation zur Service-Erkennung und Service-Nutzung in einem Netzwerk betriebssystem- und implementierungsunabhängig basiert auf Standard-Protokollen funktioniert in Ad-hoc- und stationären Netzwerken
Clients (Control Points) UPnP Architektur Client / Server – Architektur: Server (Devices) Clients (Control Points)
Wie funktioniert UPnP? Adressierung Erkennung Beschreibung Benachrichtigung Steuerung Präsentation
Siemens UPnP Stack Java - Implementierung Aufteilung in 3 Gruppen bzw. Packages com.siemens.upnp com.siemens.upnp.devicehost com.siemens.upnp.controlpoint
UPnP Suche Per SSDP, Multicast UDP Alle Geräte (ssdp:all) Nach upnp:rootdevice Bestimmter Device-Typ Nach Device UUID Bestimmter Service-Typ M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" MX: seconds to delay response ST: search target Kaum Einschränkungen der Suchergebnisse! Beispiele für Anwendungen: Netzwerkkameradienst Bilderdienst Gebäude/Lampen
Aufgaben des ServiceBrowsers Erweiterung der UPnP-Suchmöglichkeiten Attributensuche und Filterung Probleme? Aktualitätsproblem Steuerung der gefundenen Services
Erster Lösungsansatz Notifizierungsmechanismus Nachteile: Fortlaufende Information über Änderungen der Zustandsvariablen Anmeldung auf Änderungen Nachteile: Nur bei Variablen mit Benachrichtigung Skalierbarkeit
Zweiter Lösungsansatz Polling-Verfahren Service-Beschreibung nach relatedStateVariable durchsuchen SOAP-Aktion beim Filterprozess, um den aktuellen Wert abzufragen Nachteile Passende SOAP-Aktion u.U. nicht ermittelbar Skalierbarkeit
Implementierung Filter: Laden und Speichern möglich Aufbau eines Filters Service-Typ-spezifisch Filterbedingungen implizit “UND”-verknüpft Aufbau der Filterbedingungen <Zustandsvariable> <Operator> <Text> „Location“ EQUALS „Room 10“
Filterungsprozess „Location“ EQUALS „Room 10“ Service-Typ gleich? Enthält der Service die Zustandsvariable? Filterbedingung wahr? Noch Filterbedingungen vorhanden? „Location“ EQUALS „Room 10“ Filterbedingungen erfüllt! Filterbedingungen nicht erfüllt!
Screenshot
Zusammenfassung Implementierung des ersten Lösungsansatzes Attributensuche möglich Testergebnisse Fragen?