Deutsch English Nederlands  | 

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 (Authentifi­zierung 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 Ab­wärtskompatibilität komplett übernommen wurde. Die Kopplung der Geschäfts­objekte 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 umge­setzt.

 

Das BRM-Werkzeug diente zur Unterstützung der Prozesse sowie zur Validierung und Plausi­bi­lisierung der Ein- und Ausgabedaten (client- und serverseitig). Zur Steuerung und Verwaltung sämtlicher verteil­ter 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 Kom­mu­nikationsaufgaben 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 Regel­werkes
  • 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-Ent­wicklerteam
  • 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 insbe­sondere

  • 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-Entwicklungspro­zesses beraten. Außerdem wurde ein Großteil der Umsetzung des neuen Systems über­nommen. Die Mitarbeiter waren für alle Leistungen vor Ort anwesend und konnten durch ihr Spezial-Wissen zu den verwendeten Technologien direkt auf Kundenwünsche rea­gie­ren. 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 zukunfts­sichere technologische Plattform entschieden. Durch die Modularisierung ist die Wiederver­wendung einzelner Komponenten in anderen Zusammenhängen der Unternehmens IT ge­sichert. Der Einsatz etablierter Open Source-Technologien trägt zu einer optimierten Kosten­struktur 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.