CallcenterFür einen IT-Dienstleister im Bankensektor sollte eine bestehende Callcenter
Plattform, um ein neues Modul erweitert werden. Mit dieser Funktionserweiterung
sollen Kunden aktiv angesprochen werden können, um Produkte zu verkaufen
oder Kunden zu betreuen (Outbound Geschäft). Bei Aufsetzen der technischen
Spezifikation stellte sich schnell heraus, dass eine größere Anzahl von
neuen Fachobjekten modelliert werden muss. Die Fachobjekte und deren Beziehungen
werden in UML modelliert und dokumentiert. Mit dem Open ArchitectureWare
Framework werden aus dem Modell Codeteile wie Javaklassen (Entities), DB2
Tabellen und OJB Mappings erzeugt. Die Applikationslogik wurde in HiveMind-Services
implementiert. Abhängigkeiten der neuen Services zu bestehenden Services
oder anderen Ressourcen werden über HiveMind-Mitteln per Property-Injektion
von außen gesetzt. Die Verwendung von HiveMind-Services, die als einfache
Javaklasse implementiert werden, erlauben es ohne viel Aufwand die Funktionalität
mit JUnit-Tests zu testen, im Gegensatz zu EJBs, die zuvor auf einem Applikationsserver
deployed werden mussten. Die GUI der Webapplikation wurde mit Tapestry
realisiert. Durch die objektorientierte und einfache Verwendung bleibt
der Codierungsaufwand für die Seiten gering und dadurch übersichtlich.
Durch das Event-Listener-Konzept lassen sich Codeteile leicht wiederfinden,
die nach einem Submit auf der Seite ausgeführt werden. Der Fluss zwischen
den Seiten wird über eine Workflowengine gesteuert, die über HiveMind-Contributions
mit Workflowinformationen versorgt wird. Bei der Definition der Seiten
wurde der HTML Code strikt vom Rest getrennt:
- HTML Seite (Tapestry Template) enthält bis auf die jwcid nur reines HTML
und kann somit unabhängig von Tapestry mit einem Browser betrachtet oder
mit einem herkömmlichen HTML Editor bearbeitet werden, was sehr praktisch
in der HTML Prototypphase ist.
- In der Tapestry Seiten-Spezifikation werden alle Komponenten (mit jwcid)
der Seite definiert. In der zugehörigen Pageklasse werden Daten bereitgestellt
und die Event-Listener implementiert.
|