nw  

Kollaborative Formulare mit verteilten Datenstrukturen aus dem Fluid Framework

Titelbild Kollaborative Formulare mit dem Fluid Framework Abbildung 1 - Kollaboratives Formular in zwei Browsern (zum Vergrössern klicken)

Zusammenfassung

Echtzeit Kollaboration in Web-Formularen mit verteilten Datenstrukturen aus dem Fluid Framework.

Schlüsselbegriffe

Kollaboration, Verteilte Datenstrukturen, Fluid Framework, Web-Applikation, HTML5, Angular, TypeScript, Node.js

Zielsetzung

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,

Ausgangslage

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.

Ergebnisse

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

Projektdaten

Projekttyp: Bachelor Thesis Informatik

Projektdauer: 26 Wochen

Aufwand: 720h (2x 360h)

Teamgrösse: 2

Auftraggeber
the i-engineers AG Logo

the i-engineers AG

Badenerstrasse 141

8004 Zürich


https://www.tie.ch

Projektteam

Janick Hürzeler

Fabian Terranova

Kontakt

Prof. Dr. Wolfgang Weck, wolfgang.weck@fhnw.ch

<< zurück