Komponenten Integration

Jan Burse, erstellt 08. Apr 2009 Wir haben festgestellt dass das geplante Verkaufssystem einiges an Integrationsaufgaben für uns bereit hält. Wir möchten nun beleuchten wie unsere technische Architektur dieses Vorhaben unterstützt. Von weitem betrachtet benutzen wir einen 3-stufigen Aufbau bestehend aus Browser, Webserver und Datenbanken. Integration findet interessanterweise auf jeder Stufe statt, wenn auch in unterschiedlicher Form. Die Integration im Webserver ist am offensichtlichsten, hier werden Programmteile zusammengeschraubt. Integrationsmöglichkeiten sind aber auch im Browser gegeben. Einfache Hyperlinks genügen um Teilanwendungen miteinander zu verknüpfen. Schliesslich müssen wir zugeben dass sich auch Daten in unvorhergesehener Weise integrieren lassen, indem z.B. Schlüssel in Textfeldern kodiert werden. Die von uns verwendeten Technologien sind sehr einfach. Für den Ablauf der Teilanwendungen beschränken wir uns auf primitive Web Konversationen, sodass kein JavaScript oder keine Applets zur Anwendung kommen. Während des HTA Projektes hat unsere Client/Server Architektur den Namen „Ultra Thin“ erhalten, da der Client sich nur auf die Darstellung von HTML beschränkt. Die Arbeit wird über JSP, Servlets und Java im Webserver abgewickelt, sowie über Anfragen und Aktualisierungen die an die Datenbanken geschickt werden. Der Datenbankzugriff wird von Matula abgewickelt was eine automatische Anpassung an verschiedene SQL Dialekte garantiert. Aber wie steht es mit SOA? Nun wir betrachten die zu integrierenden Teilanwendungen weder rein aus der Sicht der Benutzerschnittestelle noch rein aus der Sicht der Daten. Vielmehr gehen wir davon aus, dass die Teilanwendungen Services bereitstellen und das Verkaufssystem diese verknüpft. Trotz dieser Gemeinsamkeiten mit SOA ist unser Ansatz hier nicht ganz klassisch. Wird ein Service oft als Funktion mit Input/Output Parameter angesehen, so verwenden wir stattdessen eine Variante von Moment-Intervall Objekten, bei denen wir die Input/Output Parametern via Setter/Getter bestücken. Auf Moment-Intervall Objekte sind wir durch das UML Buch von Peter Coad gestossen. Der grosse Vorteil besteht darin, dass keine Synchronisierung notwenig ist, wenn diese jeweils vom ausführenden Thread transient angelegt werden. Trotzdem können diese Objekte über einen eigenen State verfügen. Wir benutzen Moment-Intervall Objekte nicht nur in Servlets, sondern auch im JSP und im Java. Schliesslich liefert Matula ebenfalls Moment-Intervall Objekte für den Datenbankzugriff. Diese Objekte implementieren jeweils das Cursor Pattern. Mittels des Cursor Patterns lässt sich im Gegensatz zum Finder Pattern auch auf grosse Datenmengen speichereffizient zugreifen.

Kommentare