SixML - Datenmodell

Diese Seite zeigt eine Übersicht über das Datenmodell von appicals. Die in den Aktivitätsphasen definierten Nachrichtentypen rufen einen definierten Teil dieser Daten ab, um die Parsingaufwände für Geräte und Klienten gering zu halten. Für Geräte-Proxies mit größerer Rechenleistung und erheblicher Bandbreite wie z.B. Webserver sind auch andere Anfragen denkbar, die REST benutzen, um größere Datenmengen strukturiert abzufragen. Damit wären dann auch Anfragen wie "Alle Geräte im Wohnzimmer" oder "Schalte das Licht in der aktuellen Zone" möglich.

Elemente wie DeviceList, ServiceList, ActionList usw. sind als Arrays zu verstehen. Container sind 0..* mal vorhanden und werden über Eigenschaften wie ID oder ListIndex identifiziert.

Das vollständige Datenmodell von appicals hat folgende Struktur. Nicht alle Dienste und Geräte enthalten alle aufgeführten Informationen, dies hängt u.a. vom Diensttyp ab. Auch sind nicht alle Elemente in allen Repräsentationen verfügbar, so werden in der Binärrepräsentation keine Float- oder UserFriendly-Werte übertragen.

Kurzbeschreibung

DeviceContainer beschreiben physikalische oder virtuelle Geräte.

ServiceContainer enthalten alle Daten für individuelle Dienste, welche eine bestimmte Funktion, z.B. einen Sensorwert, eine Lampe oder auch Fahrzeugdaten oder Aufgaben, zur Verfügung stellen.

Der ValueContainer enthält den aktuellen Dienstwert. Über ValueSnapshotContainer kann definiert auf Historienwerte des Dienstes zugegriffen werden.

Für komplexere Dienste enthält die CompositePartList die Beschreibungen für individuelle Dienstteilwerte (siehe Composite-Werte).

Dienste können Aktionen zur Verfügung stellen (z.B. Play oder Next für MediaControl), welche über ActionContainer repräsentiert werden.

Dienste, welche aufgrund der Datenmenge nicht alle Informationen im Dienstwert unterbringen können, werden als Item-Dienste geführt, z.B. MediaInformation. Sie enthalten somit einen einzelnen ItemContainer. Jede Eigenschaft des Items wird über einen PropertyContainer beschrieben.

Dienste, die viele gleichartige Items enthalten, z.B. Regeln, Aufgaben, eMails oder ähnliches werden als ItemListen-Dienste strukturiert.

GroupContainer erlauben die Darstellung einer 2-Level Struktur, wobei Items in mehreren Gruppen gleichzeitig sein können.

Zugriffsmethoden

Aufbauend auf dem Datenmodell werden GET und SET Methoden definiert, die den Zugriff auf einzelne Geräte und Dienste erlauben. Jeder Zugriff besteht aus zwei Elementen, dem PATH sowie INCLUDE. Einträge in eckigen Klammern sind jeweils echte Werte, also z.B. 10001 für eine DeviceID oder 2 für eine ServiceID.

Die vordefinierten Requests lassen sich damit folgendermassen darstellen.