Autor-Archiv admin

Vonadmin

Herausforderungen von Offline-fähigen Webanwendungen

Im Rahmen meines letzten Projekts musste ich eine Webanwendung planen, die den Offline-Speicher des Browsers verwendet. In der Theorie sollte ja alles wunderbar funktionieren, doch in der Praxis hatten wir einige harte Nüsse zu knacken. Die wichtigsten Herausforderungen möchte ich hier kurz darstellen.

Wahl des „richtigen“ Offline-Speichers

Sie haben richtig gelesen, als erstes müssen Sie sich entscheiden, welchen Offline-Speicher Sie verwenden wollen. Es gibt nämlich unterschiedliche Speicherorte, die alle Vor- und Nachteile haben. Die einfachste Art der Speicherung ist der WebStorage (localStorage). Hier können Sie in einer key-value Map beliebige zuvor serialisierte Datenobjekte über einen eindeutigen Schlüssel speichern. Dieser Speicher ist einfach zu benutzen, allerdings hat er einige Einschränkungen. Obwohl diesen Speicher jeder Browser unterstützt, ist er limitiert in seiner Größe. Manche Browser können zwar die Speichergröße über 5 MB anheben. Der Nachteil hier ist allerdings die sinkende Performance der Zugriffe, speziell bei größeren Objekten.

IndexedDB bietet einen größeren, unlimitierten Speicherplatz mit einer hierarchischen key/value Persistierung und einer Basisindizierung. Diese Speicherquelle wird aber noch nicht auf allen Browsern unterstützt und bietet leider auch noch keinen SQL-Zugriff.

Für SQL-Fans ideal ist die Verfügbarkeit der bekannten Abfragesprache in WebSQL Database. Allerdings ist dieser Speicherstandard vorerst Chrome-Browsern vorbehalten und daher für viele Projekte nicht geeignet.

Egal für welche Speichermöglichkeit Sie sich entscheiden, Sie müssen jedenfalls die Vor- und Nachteile abwiegen und dann später mit der Entscheidung leben. Ein Umstieg in laufendem Betrieb ist eine eigene Herausforderung, die einer großen Vorbereitung bedarf.

Verschlüsselung der Daten

Sollten Sie sensible Daten in Webbrowsern speichern wollen, so müssen Sie auf jeden Fall eine Verschlüsselung ins Auge fassen. Dabei sind mehrere Aspekte zu planen:

  1. Wahl der Verschlüsselungsmethode:
    Dies hängt in erster Linie auch von der gewünschten Sicherheit ab. Sind die Geräte gehärtet, d.h. ist bei Entwendung der Geräte sichergestellt, dass niemand die Festplatten auslesen kann, ist hier eventuell eine geringere Sicherheit möglich. Ansonsten sollten Sie die höchstmögliche Sicherheitsstufe anstreben.
  2. Eingabe des Ver- und Entschlüsselungskeys
    Die Sicherheit nutzt nichts, wenn der Key im Programmcode hinterlegt wird. Wenn Sie wirklich sicher gehen wollen, müssen Sie hier den User miteinbeziehen, um einen Teil des Schlüssels beim Programmstart einzugeben.
  3. Ebene der Verschlüsselung
    Wollen Sie ganze Datenobjekte verschlüsseln oder nur einzelne Attribute? Diese Entscheidung hängt zu einem großen Teil auch von der Wahl des Offline-Speichers ab, da Sie z.B. beim LocalStorage in der Regel immer ganze Objekte serialisiert abspeichern.

Wahl der Datenstrukturen

In der Entwicklungsphase ändern sich die Datenstrukturen laufend. Dies ist da auch überhaupt kein Problem, da Sie einfach neu deployen und den localStorage mit über die Entwickler-Konsole mit dem Befehl

localStorage.clear();

löschen können.

Aber sobald Ihre Anwendung in Produktion ist, werden Sie mit jeder Änderung der Datenstruktur große Probleme einfahren, weil Sie prüfen müssen, ob die in der alten Version gespeicherten Offline-Daten mit der neuen Version noch lesbar sind.

Bei uns hat sich daher als sinnvoll erwiesen, folgende Maßnahmen zu ergreifen:

  1. eine Generische Datenstruktur, die sich einer Key-Value-Map bedient, kann am einfachsten erweitert werden
  2. eine Serialisierung über JSON ist besser als z.B. die native-GWT-Serialisierung zu verwenden
  3. Weglöschen von nicht mehr benötigten Datenfeldern kann tödlich sein!

 Migrationsaufwand nicht unterschätzen

Sobald eine Anwendung in Produktion ist, sollten Sie sich ein Szenario für die Migration von einer Version auf die nächste überlegen. Nicht zuletzt, um sicher zu stellen, dass die Offline-Daten die Migration überleben, auch um die Kompatibilität der Client-Server-Schnittstellen zu gewährleisten, ist hier ein hoher Testaufwand einzuplanen.

 

Vonadmin

18plus

Unter dem Titel „18plus“ betreibt das BM für Wissenschaft, Forschung und Wirtschaft eine Website, die SchülerInnen vor der Matura bei der Berufs- und Studienwahl unterstützt. Dazu werden psychologische Beratungen angeboten, die von den BildungsberaterInnen in den Schulen gebucht werden können. Zusätzlich werden zwei Interessenstests online angeboten, die von den SchülerInnen genutzt werden können. Dazu werden über unser System Zugangscodes generiert, die für eines der beiden Testsysteme verwendet werden können.

Weiters können BildungsberaterInnen Unterrichtsmaterialien über diese Plattform bestellen und Schüler einen Online-Fragebogen absolvieren, der Empfehlungen für die weiteren Schritte der Berufs- und Studienwahl geben kann.

Rolle:
Berater, Systemanalyst, Entwickler

Kunde:
BMWFW

Zeitraum:
seit 2008

 

Vonadmin

Erfassungsprogramm für die Güterverkehrsstatistik

Rolle:
Software-Architekt, Oberflächen-Programmierung

Kunde:
Statistik Austria

Zeitraum:
01/2013-08/2013

Projektbeschreibung:
Für die Statistik Austria entwickelten wir eine RCP-Anwendung zur Erfassung der Güterverkehrsstatistik.  Die Anwendung hat diverse Erfassungsmasken mit komplexen Datenvalidierungen und Plausibilitätsprüfungen. Da sich die Prüfungen ändern können, musste die Software in der Lage sein, die Prüfroutinen einfach auszutauschen. Daher wurden die Prüfregeln in einer eigenen Plaus-Sprache erfasst, die zur Laufzeit von einem selbst entwickelten Interpreter ausgewertet wurden.

Vonadmin

Grenzkontroll-Software für BMI

Rolle:Software-Entwickler, Oberflächen-Programmierer

Zeitraum:08/2011-12/2012

Kunde:Bundesministerium für Inneres

Projekt-Beschreibung:
Gestaltung der Oberfläche der Grenzkontroll-Software und Programmierung der Schnittstellen zu den zentralen Datenbanken des BMI. Die Anwendung konnte mit Hilfe einer BioMiddle-Software über den Dokumentenleser die MRZ und den Chip von Reisedokumenten auslesen und die Daten mit Treffern aus den zentralen Datenbanken abgleichen. Personen mit einem Visum müssen zusätzlich Ihre Fingerabdrücke überprüfen lassen, welche wir über die Software ebenfalls auslesen konnten. Dabei war die Herausforderung, dass die Prüfung so schnell wie möglich funktionieren soll und das System so einfach wie möglich für die Grenzkontroll-Beamten zu bedienen ist.

Vonadmin

Studienwahl – Online-Datenbank

Zeitraum
2007-09
Kunde
Österr. Wissenschaftsministerium
Tätigkeit im Projekt:
technische Projektleitung, Realisierung
Aufgabenbereich:
Überarbeitung einer Internet-Präsenz des Ministeriums, wobei Daten aus zwei
unterschiedlichen Quellen mittels XML in ein neues System eingebracht werden
müssen; von dort werden verschiedene Websuchen (WAI-konform) realisiert, die
unterschiedlichen Suchzugängen entsprechen.

Vonadmin

Mitgliederverwaltung

Zeitraum
  2007-12 bis 2008-05, laufende Wartung
Kunde
  Privates Krankenhaus
Tätigkeit
  technische Projektleitung, Realisierung
Aufgabenbereich
  Entwicklung der Mitgliederverwaltung des Fördervereins als Weblösung in PHP,
wobei eine Anbindung an MS Word, sowie MS Excel zu erfolgen hatte, und
Ausdrucke als PDF generiert werden mussten.
Vonadmin

Online-Fragebogen

Zeitraum
  2010-03 bis 2010-04
Kunde
  Österr. Wissenschaftsministerium
Tätigkeit
  Umsetzung
Aufgabenbereich
  Umsetzung eines Online-Surveys mit dem OpenSource – Produkt „limeSurvey“
Vonadmin

Webdatenbank für medizinische Proben

Zeitraum
  2008-07 bis 2008-09
Kunde
  Medizinische Uni Wien
Tätigkeit
  Konzept & Realisierung
Aufgabenbereich
  Entwicklung einer Webdatenbank für medizinische Proben im Rahmen eines EU-Projekts
Auf die Datenbank haben verschiedene medizinische Einrichtungen in Europa Zugriff.
PHP-Lösung mit Schnittstellen zu MS-Office Produkten.

 

Vonadmin

Visa Informations System

Zeitraum
  2008-10 bis 2012
Kunde
  BM. f. Inneres
Tätigkeit
  Weiterentwicklung an dem nationalen Visa Informations System, welches auf ein neu zu errichtendes EU-weites Visa Informations System zugreift und als eine Art Datendrehscheibe arbeitet. Die Kommunikation erfolgt über XML-Nachrichten.
Die Anwendung läuft unter J2EE auf einem Websphere Server am IBM Host. Als Kommunikationswege werden JMS und Webservices verwendet.
Schnittstellen werden zum EU-System, sowie zum Aussenamt, Grenzkontrolle, etc. umgesetzt.
Weiters werden Software-Lösungen für die Grenzkontrolle erarbeitet.
Technologien:
  J2EE, Hibernate, JSF, IBM WAF, XML, XSD