Projektziele
Das Projekt zielt auf die Entwicklung einer frei verfügbaren Lösung für ein CAFM-System ab, welches durch offene Schnittstellen und Protokolle erweiterbar ist und ebenso Daten für weitere Anwendungen bereitstellen kann. Hierfür stellt die zu entwickelnde Ontologie ein wichtiges Kriterium neben der RESTful API dar. Beide erlauben es, weitere Elemente in das System zu integrieren. Denkbar ist hier zum Beispiel ein Echtzeit-Monitoring von Anlagen oder von Energieverbräuchen.
Ein weiteres Hauptaugenmerk liegt auf der Plattformunabhängigkeit, welches das System auf einem beliebigen Endgerät nutzbar machen soll. Um dies zu erreichen, wird eine Webapplikation entwickelt, die dem Benutzer sowohl auf einem Desktop PC, als auch auf einem mobilen Endgerät wie einem Smartphone oder einem Tablet PC zur Verfügung steht. Das auf dem Endgerät genutzte Betriebssystem spielt hierbei keine Rolle.
Um diese Ziele zu erreichen wird auf bereits vorhandene Standards des Internets gesetzt. So kommen unter Anderem HTTP, JSON, AJAX sowie HTML, CSS, JavaScript und SVG zum Einsatz.
Relationale Datenbank vs. Tripple-Store
Relationale Datenbanken organisieren ihre Daten in Tabellenform. Die Verknüpfung dieser Daten geschieht über feste Beziehungen. Eine Auflösung dieser Beziehungen ist ohne eine Kenntnis des Datenbankschemas nicht möglich. Diesen Missstand beheben sogenannte Ontologien, welche als Datenbankschemen für Tripple-Stores fungieren. In diesen besteht jeder Datensatz aus einer Verknüpfung von Subjekt, Prädikat und Objekt, welche zusammen auch als Tripple bezeichnet werden. Mit Hilfe der darin enthaltenen semantischen Informationen können Rückschlüsse auf das Schema der Datenbank beziehungsweise auf Verknüpfungen zwischen Datensätzen gezogen werden.
Ontologien werden nicht wie relationale Datenbanken als Tabellen dargestellt sondern als Graphenmodell. In diesem sind die Verknüpfungen der einzelnen Klassen untereinander beschrieben. Eine scheinbare Verwandtschaft zur objektorientierten Programmierung ist allerdings nur beschränkt übertragbar, da man zwar von Klasse und Vererbung spricht, aber beispielsweise keine Objekte sondern Individuen erzeugt.
Benutzeroberfläche & Kommunikation
Bei der Benutzeroberfläche (GUI) wird konsequent auf Techniken des Internets gesetzt. Um eine möglichst hohe Kompatibilität zu erreichen, wurde kein Flash® verwendet. Für das Layout und die Darstellung von Grafiken wird das CSS-Framework YAML und die Grafikformate PNG, GIF sowie SVG verwendet. Um mit dem Benutzer in Interaktion zu treten, wird auf die JavaScript-Bibliothek jQuery gesetzt, welche mit Plug-ins erweitert wird.
Der Datenaustausch zwischen GUI und der Datenbank erfolgt über eine RESTful-API. REST steht für Representational State Transfer und bezeichnet ein Programmierparadigma für Webanwendungen, welches die eindeutige Identifikation einer Ressource im Internet fordert. Auf dieser Ressource können dann die verschiedene HTTP-Methoden (GET, POST, PUT usw.) ausgeführt werden. Um dem Benutzer ein ähnliches „Look and Feel“ wie bei einer Desktop-Applikation zu bieten, erfolgt ein asynchroner Datenaustausch via AJAX im Hintergrund der Anwendung.
Endgeräte
Durch Anpassungen im Layout und die konsequente Nutzung der Internetstandards ist die Verwendung auf allen internetfähigen Endgeräten mit einem grafischen Browser denkbar. Da jedoch die Standards unterschiedlich stark unterstützt werden, ist gegebenenfalls eine Anpassung nötig.