bmap4j - Batch Management And Processing For Java

xinventa logo

Das bmap4j Framework - Batch Processing

en

Batch Processing mit bmap4j

Der Processing Layer der BTP-Architektur implementiert den fachlichen Teil des Batch Programmes. Dabei muss eine grosse Freiheit bei der Implementierung gewährleistet werden können. So müssen verschiedene Ablaufmodelle - sequenzielle oder parallele - als auch unterschiedliche Transaktionsmodelle möglich sein.

Verarbeitungsmodi

An die spezifische Aufgabe des Batch Programms angepasste Verarbeitungsmodi sorgen dafür, dass die richtige Komplexität bei der Implementierung des Programms gewählt wird. Dadurch wir der Entwicklungs-, Wartungs- und Betriebsaufwand optimiert.

Der Processing Layer von bmap4j unterstützt folgende Verarbeitungsmodi:

Transaktionsmodelle

Die parallele Verarbeitung erfolgt in EE Umfeld per sogenannter Message-Driven-Beans (MDB's). Dies ist unter Java EE die einzig erlaubte Möglichkeit, mehrere Threads parallel laufen zu lassen. Dabei wird der asynchrone Messageing-Mechanismus des Applikations-Servers eingesetzt. Der Entwickler wird dabei bewusst von der Komplexität und Fehleranfälligkeit der Entwicklung von parallelen Prozessen entlastet.

Die parallele Verarbeitung mittels JMS hilft auf der einen Seite die geforderte Performanz zu erreichen. Auf der anderen Seite hat sie aber aus Sicht des Entwicklers den Nachteil, dass die Kontrolle der einzelnen Threads grundsätzlich beim Applikations-Server liegt. Falls ein Fehler bei der Bearbeitung eines Threads auftritt, wird der Applikations-Server mit der transaktionalen Verarbeitung dafür sorgen, dass die durch den Thread bearbeiteten Daten zurückgesetzt werden. Dies ist in vielen Fällen auch die gewünschte Verhaltensweise.

Es kann aber auch sein, dass dieses Verhalten dazu führt, dass fehlerhafte Daten immer wieder zur Verarbeitung gelangen und das System so zu kollabieren droht. In diese Fall helfen spezielle Transaktionsmodelle des Frameworks wie

  • Consume-On-Exception
  • Max-Worker-Run

die Kontrolle zu behalten.

Java EE

Komplexe parallele Ablaufmodelle mit den entsprechenden Transaktionsmodellen lassen sich mit EE Unterstützung effizient entwickeln und betreiben. Darum setzt bmap4j für das Processing auf Java EE und im speziellen auf EJB3. Dabei können die Programme direkt von den vorteilhaften Eigenschaften der Java EE Plattform wie Portabilität, Skalierbarkeit und Sicherheit profitieren.

Da das Processing strikt auf den Java EE Standard aufbaut, kann ein unter bmap4j entwickeltes Batch Programm problemlos auf verschiedenen Java EE zertifizierten Applikationsservern laufen gelassen werden. Damit wird im Bereich des Batch Processing die Bindung an die Batch Erweiterung des jeweiligen Herstellers des Applikationsservers vermieden.

Auch einfache Programme, welche problemlos in einer SE Umgebung lauffähig wären, können direkt von einem EE Deployment profitieren, indem die vorhandenen Deployment-Funktionen genutzt oder beispielsweise die diversen Pooling-Mechanismen verwendet werden können.