Zeiterfassung

Initiator des Projektes war die SHE AG, die nach einer mobilen Eingabemöglichkeit zur Zeiterfassung suchte.

Die Zeiterfassung der SHE AG bestand aus einer Lösung, die via Browser bedient wird. Als Software wurde der MS IIS eingesetzt, der über ASPs mit integrierten JavaScript die Anfragen verabeitet und an eine Oracle Datenbank weitergibt. Usertracking erfolgte über Cookies. Als Betriebsystem lief WindowsNTServer 4.0. Da die gesamte Business-Logik sich einerseits auf die ASP-Seiten und andererseits auf JavaScript-Scripte verteilte, gab es keine vordefinierte Schnittstelle zur Anbindung. Weiterhin wäre es zu aufwändig geworden, eine Lösung zu entwickeln, die direkt Einträge in die Datenbank schreibt, da die gesamte Logik noch einmal hätte implementiert werden müssen. Deshalb wurde eine JAVA-Anwendung entwickelt, die sich wie ein Anwender über http an der Zeiterfassung anmeldet, die HTML-Seite mit den Projekten, welche zur Auswahl stehen parst und in eine Datei speichert, welche dann auf den Handheld synchronisiert wird. Weiterhin wurde die Datei mit den abgearbeiteten Projekten, die vom Handheld kommt, über die HTTP-Post-Methode an die Zeiterfassung geschickt und somit eingetragen.  Das Parsen der HTML-Dokumente wurde unter Zuhilfenahme des Parsergenerators JavaCC entwickelt, der sich aufgrund der Anlehnung seiner Syntax an JAVA sehr gut in das Gesamtkonzept einfügt. 

Als Handheld sollten Palms mit PalmOS (PalmV, PalmIII, PalmIIIx, PalmM100 ...) und palmsizedPCs mit WindowsCE (Casio E105 ...) zum Einsatz kommen. Somit musste auf Plattformunabhängigkeit geachtet werden. Bei der Suche nach einer Portierung von JAVA auf mobile Geräte ließ sich feststellen, dass SUN für die beiden Systeme (PalmOS, WindowsCE) zwei verschiedene Programmierumgebungen anbietet, die untereinander nicht kompatibel waren. Daher wurde WABA von www.wabasoft.com ausgewählt - eine virtuelle Maschine, die für WindowsCE und PalmOS angeboten wurde. Die Sprache selbst ist ähnlich zu JAVA, doch in einigen Bereichen mussten Einschränkungen gemacht werden, da die Geräte mit PalmOS recht wenig Leistung besaßen. Der Quellcode von WABA war vollständig erhältlich und Programme, die mit WABA entwickelt wurden, liefen fast problemlos auf beiden Systemen. Lediglich beim Dateizugriff mussten verschiedene Techniken implementiert und das unterschiedlich große Display beachtet werden.

Das Problem mit dem Dateizugriff wurde mit dem Design-Pattern "Abstract Class" gelöst. Für jedes Betriebsystem gab es eine Spezialisierung dieser abstrakten Klasse. Das hatte den Vorteil, dass für eine Erweiterung um ein neues Betriebssystem nur eine neue Spezialisierung dieser abstrakten Klasse implementiert werden musste. Ein weiteres Pattern war "Model-View-Controller", um die Daten und die implementierte Logik von der Ansicht getrennt zu halten. Die Implementation dieses Patterns war nicht vollständig möglich, da WABA keine Trennung von der Anzeige und der Eingabe zuließ, Daten und Logik ließen sich jedoch abtrennen.

Mehr zum Thema Java Compiler