Modernisierung eines Datenpflegesystems mit Spring, Hibernate und jBPM
Unser Kunde hatte bereits vor einigen Jahren erfolgreich seine zentralen Anwendungen zur Datenpflege und Informationsbereitstellung von IBM Mainframe auf eine Linux-Infrastruktur migriert. Mit der Zeit entstand hoher Bedarf an der Optimierung und Erweiterung der vorhandenen Arbeitsschritte. Die Möglichkeiten, die gewachsenen Prozesse im terminalbasierten Java-Frontend der vorhandenen Anwendung zu realisieren, waren an ihre Grenzen gestoßen. Neue Funktionen waren schwer umsetzbar, geänderte Abläufe im Sinne einer Workflow-Steuerung nur über umfangreiche Erweiterungen zu implementieren.
Zur Erhöhung der Produktivität und Qualität wurde unter Verwendung von Standard-Frameworks eine mehrschichtige Architektur mit zeitgemäßem, bedienerfreundlichem Frontend realisiert. Die Anwender werden nun in ihrer Arbeit mit Hilfe eines regelgesteuerten Workflowsystems bei der effizienten Erledigung ihrer Arbeitsaufgaben geführt und unterstützt.
Lösung
Während der Analyse ergab sich der Bedarf, die veraltete Java-Version zu ersetzen und damit die eingesetzten Server-Komponenten auf völlig neue Beine zu stellen. Als Server in der umgesetzten Architektur bot sich Tomcat (Version 6) an und als Frontend ein Rich-Client (Swing). Als Entwicklungswerkzeug wurde die etablierte IDE Eclipse mit der aktuellen Java-Runtime gewählt.
Zur Unterstützung der Server-Funktionen wurde das Spring-Framework als leichtgewichtiger Container eingesetzt. Konfiguration (DI und AOP), Kommunikation und Sicherheit (Authentifizierung sowie Autorisierung gegen ein LDAP Repository) wurden über entsprechende Spring-Module abgebildet. Als Datenbasis diente eine IBM DB2 Datenbank, deren Struktur aus Gründen der Abwärtskompatibilität komplett übernommen wurde. Die Kopplung der Geschäftsobjekte an die Datenbank wurde von Plain–JDBC auf Hibernate als Implementierung der JPA umgestellt. Zur Abbildung der Geschäftsprozesse wurde JBoss jBPM als BPM Framework verwendet. Das komplexe fachliche Regelwerk wurde mit JBoss Drools als BRM-Werkzeug umgesetzt.
Das BRM-Werkzeug diente zur Unterstützung der Prozesse sowie zur Validierung und Plausibilisierung der Ein- und Ausgabedaten (client- und serverseitig). Zur Steuerung und Verwaltung sämtlicher verteilter Transaktionen wird Atomikos verwendet.
Im Swing-Client wurde die Fachlogik nahezu 1:1 übernommen, bedienungstechnisch aber auf völlig neue Beine gestellt. Zur Umsetzung der komplexen Anforderungen an Eingabe und clientseitiger Verarbeitung wurde das PAC-Pattern ausgewählt, welches den MVC-Ansatz entsprechend erweitert. Sämtliche Eingabeelemente wurden dynamisch über Beans-Binding an die Geschäftsobjekte gebunden. Eingabefehler und Unstimmigkeiten werden dem Anwender regelgesteuert direkt an entsprechender Stelle kenntlich gemacht. Dabei können die Regeln zentral und losgelöst von der Implementierung gewartet werden.
Die Entwicklung wurde durch Aufteilung in aufgabenspezifische Komponenten erleichtert und das Build-Management mit Maven2 realisiert. Als zentrales Projekt-Repository kam Subversion zum Einsatz. JUnit-Tests in Verbindung mit Continuous Integration und geeignete Code Coverage Tools halfen, ein gefordertes Maß an Qualität zu gewährleisten. Für das Tracking von Fehlern sowie Feature-Wünschen und andere Kommunikationsaufgaben im Projekt kamen ebenfalls entsprechende Werkzeuge zum Einsatz. Damit wurde der komplette Application Lifecycle durch ein hohes Maß an Automatisierung unterstützt.
Methodisches Vorgehen
Im Rahmen des Anforderungsmanagements wurden folgende Schritte durchgeführt:
- Systematische IST-Aufnahme der vorhandenen Fachprozesse und der Anforderungen der Benutzer und Strukturen an die neu zu entwickelnde Anwendung
- Modellierung der fachlichen SOLL-Prozesse unter Einbeziehung der künftigen Anwender
- Technische Analyse der Altanwendung und Ableitung des komplexen fachlichen Regelwerkes
- Design der Benutzerschnittstelle unter Berücksichtigung von Usability-Aspekten, Einbeziehung der Anwender mit Hilfe von Prototypen
Folgende Architektur- und Designentscheidungen wurden getroffen:
- Auswahl der einzusetzenden Frameworks gemeinsam mit dem Kunden-Entwicklerteam
- Modularisierung der Gesamtanwendung nach fachlichen und technischen Aspekten
- Entwicklung eines Objektmodells als fachliche Repräsentationsschicht der persistenten Daten in der Datenbank
Dabei ergaben sich unter anderem folgende Herausforderungen:
- Teilweise umfangreiches Reengineering zur Ermittlung von Fachfunktionen
- Parallelbetrieb mit dem Alt-System musste gewährleistet sein
- Funktionen im vorhandenen Alt-System wurden aufgrund von rechtlichen Vorgaben während der Design- und Entwicklungsphase angepasst. Ein 100%-iger „Code-Freeze“ war dadurch nicht möglich
Im Rahmen der Implementierung wurde teilweise mit agilen Methoden nach Scrum gearbeitet:
- Implementierung der Fachobjekt-Persistierung über ein OR-Mapping
- Abbildung des fachlichen Regelwerks in einer Regelmaschine
- Unterstützung der Benutzerführung über Aufgabenlisten, die von einer Prozessmaschine gesteuert werden
- Monitoring und Reporting der Prozesse über geeignete Werkzeuge zur Erzeugung von Managementinformationen
- Entwicklung der Benutzeroberfläche anhand von Prototypen
Bei der Vereinheitlichung des Softwareentwicklungsprozesses beim Kunden ist insbesondere
- die Weiterentwicklung des Build- und Deploymentprozesses sowie
- die Integration automatisierter Unit-Tests hin zu einem Continuous Integration Verfahren
zu nennen.
Rolle der cimt ag
Die cimt ag hat den Kunden hinsichtlich der Technologieauswahl und des Software-Entwicklungsprozesses beraten. Außerdem wurde ein Großteil der Umsetzung des neuen Systems übernommen. Die Mitarbeiter waren für alle Leistungen vor Ort anwesend und konnten durch ihr Spezial-Wissen zu den verwendeten Technologien direkt auf Kundenwünsche reagieren. Die Mitarbeiter des Kunden wurden durch gezieltes Coaching in die Verfeinerung der Entwicklungsprozesse einbezogen. Im produktiven Betrieb unterstützten die Mitarbeiter der cimt ag anfänglich den Kunden bei der Betriebsführung, ein eigenständiger Betrieb ist jedoch schnell möglich geworden.
Nutzen für den Kunden
Der Kunde hat sich aufgrund der Beratungsleistung der cimt ag für eine tragfähige und zukunftssichere technologische Plattform entschieden. Durch die Modularisierung ist die Wiederverwendung einzelner Komponenten in anderen Zusammenhängen der Unternehmens IT gesichert. Der Einsatz etablierter Open Source-Technologien trägt zu einer optimierten Kostenstruktur im Betrieb bei. Durch das konsequente fachliche Objektmodell und die Auslagerung der Geschäftslogik in ein Regelwerk ist die Wartbarkeit und Erweiterbarkeit der neu entwickelten Anwendung gegenüber der Altanwendung wesentlich verbessert worden.
Leistungsfähigkeit des Systems
Der Kunde wickelt mittels der integrierten Auftragssteuerung aktuell monatlich bis zu 120.000 Prozesse ab. Mit dem System arbeiten bis zu 200 Anwender gleichzeitig. Durch die Abbildung von Geschäftsabläufen in das System sind vor allem eine Steigerung von Termintreue und Arbeitsqualität möglich gewesen.
