-
Notifications
You must be signed in to change notification settings - Fork 1
Systemarchitektur
Auf dieser Wikiseite können die Informationen zu der Architektur von videbligo gefunden werden.
Wir verwenden AngularJs in der Version 1.3 als Framework für unsere Applikation. Diese Version wird noch 3 bis 5 Jahre unterstützt.
Angular soll uns ein modulares entwickeln der einzelnen Widgets ermöglichen und dem Endanwender unseres Codes eine sehr leichte Einbindung in bereits bestehendes HTML ermöglichen.
Außerdem hat AngularJs eine konfliktfreie Einbindung von jQuery (einer bereits verwendeten Library), was die Möglichkeiten zur DOM Manipulation in den Widgets erhöht. Desweiteren erhalten wir mit Angular eine erprobte Templating Engine sowie eine große Anzahl an beriets implementierten Event Listener um die Interaktion mit dem User zu ermöglichen.
Wir verwenden crossfilter für die Datenhaltung und -verwaltung, sowie für das Filtern der Daten entsprechend der Einstellungen der Filter.
Es handelt sich um eine Angular Applikation und die Library crossfilter. Die Applikation ist in zwei Teile aufgeteilt. Zum einen den Core (Angular Service) der die Datenhaltung und -verwaltung steuert und zum anderen eine unbestimmte Anzahl von Widgets (Angular Direktiven), welche als Filter für einzelne Metadaten bzw. auch als Ergebnisliste dienen. Jedes Widget wird als eigene abgeschlossene Direktive umgesetzt, die über den Angular eigene Message Bus mit dem Service und somit indirekt mit anderen Widgets kommuniziert.
Bestandteile: 1-n Widgets, 1 Core-Objekt
Unsere Systemarchitektur besteht hauptsächlich aus mehreren Widget-Objekten sowie einem Core-Objekt, welches die Widget-Objekte in einer Liste verwaltet. Das Core-Objekt wird durch ein Singleton – Pattern realisiert.
Die Datenhaltung und Verwaltung wird mit einem Angular Service realisiert. Dieser ist ein Singleton und somit werden die recht großen Datenmengen nicht unnötig oft im Speicher des Browser gehalten. Der Service stellt Daten für die Widgets über getter Methoden bereit und überträgt die gefilterten Daten an die Widgets. Über setter Methoden können Widgets die Filter ändern, dabei werden nach dem Ändern der Filter alle anderen Widgets über den Angular eigenen Message Bus informiert, damit diese sich die angepassten Daten über die oben genannten getter erneut holen können. Der Service nutzt die Drittanbieter Library crossfilter zum filtern aller Metadaten.
Jede Filtermöglichkeit, sowie die Ergebnisliste werden als sogenannte Widgets umgesetzt. Diese Widgets werden in Angular als Direktiven umgesetzt. Diese Direktiven können als eigene HTML5 Elemente in den HTML Code des Endnutzers eingebunden werden und ersetzten das Element durch ein eigenes HTML Template und versehen es mit den nötigen Funktionalitäten. Widgets kommunizieren mit dem Core Service über den von Angular bereitgestellten Message Bus und setter und getter Funktionen.