Abbildung 1 - Kollaboratives Formular in zwei Browsern (zum Vergrössern klicken)
Echtzeit Kollaboration in Web-Formularen mit verteilten Datenstrukturen aus dem Fluid Framework.
Kollaboration, Verteilte Datenstrukturen, Fluid Framework, Web-Applikation, HTML5, Angular, TypeScript, Node.js
Im Rahmen dieser Arbeit sollen die Möglichkeiten für den Einsatz des Fluid Frameworks
in den dynamischen Formularen der "i-engine" evaluiert werden.
Anhand eines Prototypen soll aufezeigt werden, wie das Framework integriert werden kann. Da diese Integration
verschiedenste Aspekte betrachtet,
sollen verschiedene Fragestellungen rund um den Einsatz des Frameworks behandelt werden. Diese betreffen
Themen wie,
Mit dem Fluid Framework hat Microsoft Ende 2020 ein neues Framework
zur Echtzeit-Kollaboration im Web veröffentlicht. Das Framework
ermöglicht die Zusammenarbeit über mehrere Browser hinweg. Über
verteilte Datenstrukturen werden gemeinsame Datenzustände
synchronisiert. Die Programmierung soll durch den Einsatz der
verteilten Datenstrukturen erleichtert werden, da sich diese an
allgemein bekannte Programmiermuster anlehnen.
Die Firma "the i-engineers" bietet mit ihrer Softwarelösung "i-engine"
eine Menge an konfigurierbaren Formularen an, die auf einem
generischen Datenmodell basieren. Die konfigurierten Formulare kommen
in verschiedenen Bereichen, hauptsächlich aber im Gesundheitswesen zum
Einsatz. In der Webapplikation der "i-engine" lassen sich die
Formulare aktuell nur von einer Person gleichzeitig bearbeiten. Neu
soll ein gleichzeitiges, kollaboratives Bearbeiten der Formulare
möglich sein. Dazu sollen das Fluid Framework eingesetzt und dessen
Möglichkeiten evaluiert werden.
Im Demo-Bereich der bestehenden Webapplikation der "i-engine" wurde
das Fluid Framework eingebunden. Formulare mit einfachen
Eingabefeldtypen, wie beispielsweise Text, Nummern oder Auswahllisten,
können nun gleichzeitig bearbeitet werden. Das nachfolgende Video 1
zeigt vier unterschiedliche Benutzende, die hier je als ein
Browserfenster dargestellt werden. Sobald eine Benutzerin eine Textbox
im Formular ausfüllt, erscheint der geschriebene Text auch bei den
anderen Benutzenden.
Video 1 - Kollaborative Formulare im Einsatz
Um das Fluid Framework optimal einsetzen zu können, wurden im Rahmen dieser Arbeit verschiedene
Aspekte rund um die Themen "Zugriffsberechtigungen", "Performance" und "Datenhaltung/-austausch" behandelt.
Das Fluid Framework verwendet für die Synchronisation von zusammengehörenden Datensätzen sogannte "Container".
Diese können unterschiedlich viele Datensätze gleichzeitig beinhalten. Im Falle der i-engine bedeutet das,
dass mehrere unterschiedliche Formulare entweder in einem gemeinsamen oder mehreren einzelnen Fluid Container
gehalten und synchronisiert werden können.
Für die Ermittlung der sich am besten geeigneten Containerarchitektur wurden mehrere Ansätze erarbeitet und in
Betracht der gewählten Aspekte einander gegenübergestellt.
Der Einsatz eines einzelnen Container pro dynamischen Formular erwies sich dabei als die beste Wahl, da somit
die bestehenden Zugriffsberechtigungen der i-engine beibehalten werden
und für die Benutzenden keine spürbaren Performanceeinbussen sichtbar werden.
Um in einem kollaborativen Formular eine Einigung bezüglich des
Speicherns der Daten zu erlangen, wurde ein Speicherprotokoll
konzipiert. Dieses sieht verschiedene Varianten der Konsensfindung
vor. Ein solches Szenario setzt beispielsweise voraus, dass alle
Teilnehmenden in einem Formular das Speichern bestätigen. Das Konzept
dazu wurde durch die Implementierung im Demo-Bereich auf dessen
Umsetzbarkeit geprüft. Daraus resultiert die Implementierung eines
zweistufigen Speicherprotokolls, welches in einem ersten Schritt
sicherstellt, dass alle Teilnehmenden denselben Stand einsehen. In
einem zweiten Schritt bestimmen die Teilnehmenden anhand eines
auszuwählenden Speicherszenarios, ob die Daten gespeichert werden
sollen oder nicht. Eine Testsuite mit End-to-End Tests stellt die
Funktionalität des Speicherprotokolls, sowie der Kollaboration in den
Formularen sicher.
Video 2 - Demonstration des erarbeiteten Speicherprotokolls
Projekttyp: Bachelor Thesis Informatik
Projektdauer: 26 Wochen
Aufwand: 720h (2x 360h)
Teamgrösse: 2
the i-engineers AG
Badenerstrasse 141
8004 Zürich
Janick Hürzeler
Fabian Terranova
Prof. Dr. Wolfgang Weck, wolfgang.weck@fhnw.ch