Task / Area: Software Frameworks
Status: Finished
Editor: Markus Knoop
Description:
arvato direct services ist eine Untergruppe der Bertelsmann AG. Es handelt sich
dabei um ein Dienstleistungsunternehmen, das im Namen von Auftraggebern dessen
Kundenbeziehung verwaltet. Da die Anforderung variieren, müssen für die
effektive Erreichung des Unternehmensziels entsprechende Applikation für die
Kundenbetreuung entwickeln werden. Die Abteilung DCO von arvato direct services
ist für die Erstellung dieser Software zuständig.
Die benötigten Applikationen zur Kundenbetreuung werden zum großen Teil aus
bestehenden Frameworks entwickelt. Deren Modularität erlaubt eine Zusammensetzung
der einzelnen Elemente entsprechend einem Baukastensystem, wodurch
die Erstellung eines qualitativ hochwertigen Endproduktes in möglichst kurzer
Zeit erreicht werden kann. Bei dem momentanen Stand der Entwicklung wird dabei
primär die Programmiersprache Java eingesetzt, die auch eine Plattformunabhängigkeit
ermöglicht. Ein Framework, was bei der Entwicklung unter Anderem
eingesetzt wird, ist das Open Source Projekt „CUBA“ [CUBA22]. Dieses übernimmt
die Funktion eines Containers für Komponenten, die dem Enterprise Java
Beans Standard entsprechen, ohne dafür extra einen J2EE Applikation Server besitzen
zu müssen. Der Container erlaubt die drei Modi als EJB, AXIS-Webservice
und Stand-Alone (auch „Wired“ genannt). Je nach Auswahl kann entsprechend
auf die beinhaltende Komponente und deren Methoden zugegriffen werden, wodurch
Software in ihrer Struktur unabhängig von der physischen Verteilung gestaltet
werden kann. Im weiteren Verlauf dieses Proposals wird ausschließlich der
AXIS-Webservice-Modus betrachtet, da in diesem Bereich ein Erweiterungsbedarf
besteht. Dieser Modus erlaubt einen Zugriff des Clients weltweit über das
Internet. Die für die Kommunikation notwendigen Webservice-Schichten werden
dafür von CUBA für den Client und den Server automatisch aus der der Geschäftslogik
generiert. In Abbildung 1 ist ein beispielhaftes Modell dargestellt.
Die Übertragung der Daten zwischen Client und Server erfolgt mittels SOAP
und dem Webservice-Framework Apache AXIS. SOAP erlaubt die Kommunikation
über HTTP und ermöglicht eine Kopplung ohne zusätzliche Änderungen
seitens der Netzwerkadministration, da der Port 80 standardmäßig für Browseraktivitäten
freigegeben ist. Die übermittelten Datentypen werden als Base64-
kodierte Strings übertragen und müssen auf der jeweiligen Seite wieder interpretiert
werden. Für nicht-primitive Datentypen werden dem Client in dem CUBAWebservice-
Adapter dafür alle notwendigen Bibliotheken bereitgestellt. Auf
diese Weise werden dem Client alle Methodenaufrufe der Geschäftslogik ohne Einschränkungen ermöglicht. Das CUBA-Framework berücksichtigt bei der Codegenerierung
der Kommunikationsschichten für den Client und den Server keine
Sessionverwaltung. Daher können innerhalb der Geschäftslogik nur statuslose
(stateless) Enterprise Java Beans genutzt werden, d.h. jede Anfrage von einem
Client wird unabhängig von vorherigen bearbeitet. Die EJB-Instanzen werden auf
der Serverseite in einem Pool gehalten und bei Clientanfragen entsprechend zugewiesen.
Nach beendeter Ausführung eines Aufrufes werden die Instanzen wieder
in den Pool freigegeben. Zwischen dem Client und der verwendeten EJB-Instanz
besteht keinerlei Verbindung mehr. Diese Nutzungsart ist zwar einfach und auch
ressourceneffizient, jedoch nicht immer ausreichend.
Knowledge:
Contact: Dipl.-Wirt.-Inf. Andreas Wübbeke
Download: No document found yet