bmap4j - Batch Management And Processing For Java

xinventa logo

Das bmap4j Framework - Batch Management

en

Batch Management mit bmap4j

Das bmap4j Framework stellt eine Vielzahl von Funktionen für den effizienten Einsatz von Batch-Programmen in J2EE und J2SE Umgebungen zur Verfügung.

Zusammen mit der Repository Komponente von Xinventa und der BatchRepo Webadmin Applikation steht eine vollständige Lösung zur Planung, Überwachung und Auswertung von Batch Jobs zur Verfügung, welche sich heute in der Praxis tagtäglich bewährt.

Job Management

Das bmap4j Framework stellt ein standardisiertes, auf JMX basiertes Interface zur Verfügung, welches Funktionen zur Steuerung und Abfrage von Statusinformationen von Batch Jobs zur Verfügung stellt.

Dieses Interface kann von unterschiedlichen Management Applikationen und Tools, welche JMX unterstützen zum Management der Jobs verwendet werden (z.B. JConsole, JMX for Ant, bmap4j Admin Client, WebSphere wsadmin, JBoss twiddle, ...). Enterprise Scheduler, welche JMX nicht direkt unterstützen (z.B. Control-M) werden über entsprechende Scripts an den entsprechenden Applikations-Server angebunden. Auch diese Scripts stehen als Teil des Frameworks zur Verfügung.

Der Teil "Batch Management" des Frameworks umfasst diejenigen Funktionen, welche zur Steuerung von Batch Jobs sowie zur Abfrage von Informationen über Programme und Jobs dienen:

  • Aufsetzen von Batch Jobs
  • Setzen von Job Parametern
  • Validierung der Job Parameter
  • Starten, Stoppen und Abbrechen von Jobs
  • Anhalten und Wiederaufnehmen von Jobs
  • Abfrage von Job Status und Fortschritt

Parameter Management

Batch Programme werden normalerweise durch Parameter gesteuert. Je nach auszuführendem Job nehmen diese Parameter spezifische Werte-Vektoren an und definieren damit die Wirkungsweise des einzelnen Jobs. Die für einen Job gewünschten Werte werden diesem beim Start mitgegeben.

Wird bmap4j ohne Repository eingesetzt, erfolgt die Definition der Werte-Vektoren ausserhalb des bmap4j Frameworks - z.B. im Scheduler als Kommando-Zeilen-Parameter der oben erwähnten JMX Tools. Dies bedeutet, dass Änderungen in den Batch Parameter Werten im Scheduler vorgenommen werden müssen, was bei fachlichen Parametern aufwändige und teilweise fehleranfällige Prozesse zur Folge hat.

Demgegenüber kann mit dem Batch Repository das Parameter Management zentral über das Batchrepo Webadmin GUI erfolgen. Dort können die verschiedenen benötigten Parameter-Werte-Vektoren als sogenannte Paramter-Templates zentral definiert werden. Beim Job Start werden die spezifischen Werte über die Template-Id dann von JobController aus dem Repository geholt und an das Programm geliefert, ohne dass weitere Komponenten involviert sind.

Im Scheduler muss dann nur noch die entsprechende Template-Id hinterlegt werden, welche den zu startenden Job spezifiziert. Änderungen an Parameterwerten können mit entsprechenden Rechten auch vom fachlichen Betrieb vorgenommen werden und werden dann aber nachvollziehbar protokolliert.

Job Protokoll

In Zusammenarbeit mit dem Processing ist der Management Layer dafür verantwortlich, dass das Job Protokoll entsprechend erstellt wird. Standardmässig erfolgt die Protokollierung in einem speziellen Job Log-File.

Zusammen mit dem Batch Repository werden diese Informationen zu einem persistenten Job Protokoll. Mittels des Batchrepo Webadmin GUI's lassen sich daraus detaillierte Auswertungen auf Stufe Job und Programm erstellen.

Fehlerlisten

Im Normalfall muss ein Batch Programm seine Ausführung nicht unterbrechen, falls einzelne applikatorische Fehler auftreten. Diese Fehler müssen jedoch gesammelt und weitergeleitet werden, damit die entsprechenden Aktionen zur Korrektur durchgeführt werden können. Das bmap4j Framework stellt in diesem Fall Hilfsfunktionen zur Erstellung von Fehlerlisten zur Verfügung und stellt zudem sicher, dass die Fehler falls nötig unter entsprechender Transaktionskontrolle protokolliert werden.

Java EE Programm Deployment

Wie jede andere EE Applikation auch werden Batch Programme mit bmap4j Unterstützung in einer Java EE Umgebung als EAR deployt. Der Management-Teil des Frameworks kann daher für das Deployment des Batch Programmes direkt vom Deployment-Dienst des eingesetzten Applikations-Servers profitieren. Daher fügt sich das Deployment der Batch Programme auch nahtlos in den Deployment-Prozess Ihres Unternehmens ein.

Für das Registrieren/Deregistrieren von spezifischen Management-Komponenten wie beispielsweise den JobController werden je nach verwendetem Applikations-Server mehr oder weniger herstellerspezifische Funktionen benötigt. Beim Design der Architektur wurde jedoch darauf geachtet, dass dennoch möglichst standardisierte Technologien zum Einsatz kommen.

Da die Steuerung der Batch Jobs über den Management Layer erfolgt, werden keine EE Application Clients benötigt, um Batch Jobs laufen zu lassen. Das heisst, dass für die BTP-Funktionen keine EE Application Client Umgebungen unterhalten werden müssen.

Java SE Programm Deployment

Batch Programme welche die Java EE Services wie z.B. den Transaktionsservice nicht zwingend benötigen, können zu Test- oder Debugzwecken im durch das Framework zur Verfügung gestellten InProcess-Server laufen gelassen werden. Das produktive Deployment von Batch Programmen im SE Umfeld ist zwar möglich, wird jedoch in Anbetracht der Verfügbarkeit von open-source Applikationsservern nicht empfohlen.

JMX

Seit Java SE Version 1.4 verfügbar und in Version 1.5 als Standardkomponente in die JVM integriert, bietet JMX aus folgenden Gründen die optimale Basis für die Steuerung von Batch Programmen:

  • Erweiterbare Schnittstelle, welche die Realisierung von spezifischen Funktionen erlaubt.
  • Offener Standard, welcher auch die Anbindung von nicht Java basierten Management Tools erlaubt.

Einbindung Enterprise Scheduler

Einer der Gründe anfallende Aufgaben als Batches zu realisieren ist der Wunsch, die Verarbeitungsleistung der Server ausserhalb der online Zeit von interaktiven Programmen zu nutzen. Dies bedeutet, dass die Batch Programme auch vielfach ausserhalb der Betriebszeiten gesteuert werden müssen. Dies erfolgt normalerweise automatisiert durch Scheduling-Programme.

In kleineren Unternehmen werden vielfach die plattformspezifischen Tools (z.B. cron, at) verwendet. Sind diese den gestellten Anforderungen nicht gewachsen, werden plattformübergreifende Enterprise Scheduler (z.B. BMC Software Control-M, CA Workload Automation, arvato Systems Bagjas, etc.) eingesetzt.

Die von bmap4j Framework über JMX zur Verfügung gestellten Management Funktionen erlauben die effiziente Integration der Batch Programme in die Scheduler Komponenten.