ActivityModel

Ähnlichkeit zu UPnP/DLNA

UPnP ist aus aktueller Sicht die relevanteste verteilte Architektur, welche echtes Plug&Play ermöglicht. Auch die Offenheit und die Möglichkeit der Dienststandardisierung heben UPnP von anderen Produkten ab. Daher stand es Pate beim Entwurf von appicals, wesentliche Mechanismen wurden als Basis übernommen.

UPnP verhält sich an verschiedenen Stellen problematisch. So ist die Kommunikation nur über TCP/IP standardisiert, die Verwendung von Gateways ist aufwendig (z.B. durch VPN-Tunnel), die Ereignisverarbeitung skaliert schlecht und Security ist zwar prinzipiell möglich, aber nicht in kommerziellen Produkten implementiert. Für diese offenen Punkte sind in appicals eigene Lösungen entwickelt worden.

SixML

Nachrichtenformat

Die Entscheidung für TLV-Tupel als grundlegende Nachrichtenstruktur erlaubt auf einfachste Art und Weise Rückwärtskompatibilität. Zusätzlich ist der Verwaltungs-Overhead relativ gering. Das Format hat sich in anderen Protokollen wie DHCP bewährt. Die Nutzung von XML verbietet sich angesichts des angedachten Einsatzzweckes in preisgünstigen Mikrokontrollern. Durch die Verwendung von Container-Tupeln ist eine XML-ähnliche Schachtelung von Informationen möglich, die trotzdem einfach geparst werden können.

Nachrichtenaufbau

Eine der wichtigsten Eigenschaften des Frameworks ist Skalierbarkeit, da die Anzahl an vernetzten Geräten in der Zukunft innerhalb eines Heimnetzes mehrere Dutzend umfassen wird. Dies bedeutet, dass die häufig ausgetauschten Nachrichten, also Aktionen und Ereignisse so klein wie möglich sein müssen. Daher enthalten diese Nachrichten nur kurze IDs zur Identifikation, welche erst im Zusammenspiel mit den Geräte- und Dienstbeschreibungen Sinn machen. Wichtig ist in diesem Zusammenhang auch die Möglichkeit des Cachings,d.h., Klienten müssen in der Lage sein, Änderungen an Geräten (z.B. die Verfügbarkeit neuer Dienste) erkennen zu können. Aus dem gleichen Grund enthalten Dienstbeschreibungen keine aktuellen Dienstdaten, da die Beschreibungen über verschiedene Geräte gleich sind (was auf die Dienstdaten nicht zutrifft).

Nachrichtengröße

Für die Nachrichtengrösse muss ein Kompromiss zwischen RAM-Verbrauch und einfacher Dienstnutzung gefunden werden. Auch die Paketgröße der verschiedenen Schnittstellen spielt hier eine Rolle. Für Geräte kann die maximal nötige Nachrichtengröße für den Empfang aufgrund der zur Verfügung gestellten Dienste abgeschätzt werden. Die grössten Nachrichten sind Dienstbeschreibungen, welche das Gerät nur senden muss (bei Nutzung von Standard-Diensten kann es darauf verzichten, der Klient holt diese dann aus einer lokalen Datenbank). Damit muss z.B. ein Temperatursensor, der nicht als Gateway dient, lediglich Nachrichten mit einer Größe kleiner als 64 Bytes verarbeiten können.

Für Ereignisnachrichten, welche proaktiv versendet werden und evtl. über mehrere Schnittstellen weitergeleitet werden müssen, wird eine Maximalgröße von 64 Bytes vereinbart. Dies muss bei der Definition von Diensten berücksichtigt werden (z.B. wird der aktuelle Wert des TextInputServices nicht als Event übertragen, sondern muss von interessierten Klienten über einen ControlRequest abgefragt werden.

CommFramework

Übertragungsmedium

Um möglichst viele existierende Produkte einbinden zu können, muss das physikalische Übertragungsmedium irrelevant sein. Ein ähnlicher Ansatz wird in KNX beschritten. Es werden Definitionen für die aus aktueller Sicht am weitesten verbreiteten Schnittstellen definiert, dies umfasst LAN/WLAN, seriell (auch Seriell-über-Bluetooth), CAN, 802.15.4, ZigBee. Zusätzlich wird als LowCost-Schnittstelle ein 868 MHz-Funk eingeführt.

Protokolle

Wo möglich wird auf existierende akzeptierte Standards zurückgegriffen, so z.B. UDP/IP für LAN/WLAN und IsoTP für CAN. Für den 868-MHz Funk als Low-Cost Lösung setzen wir auf einen preiswerten IC, der mit FSK ein störunanfälliges Protokoll benutzt.

Auf den mittleren ISO/OSI Layern benutzen die nicht-standardisierten Schnittstellen Protokolle wie STRAP und SHR, die sich in ihrem Aufbau an Protokollen wie UDP orientieren.