30 August 2011

Im Application-Server können mehrere EAR-Files deployed werden. Solche EAR-Files enthalten JARs und auch WAR-Files. Es sind letztlich mehrere Module, die zu einem großen Ganzen zusammengesteckt werden. Dies macht Sinn, wenn es um Systeme geht, die mehrere Module enthalten, um eine fachliche Aufgabe zu erledigen.
Es gibt die unterschiedlichsten nicht funktionalen Anforderungen an Systeme. So unter anderem auch Robustheit. Für mich bedeutet dies nicht nur für einen robusten Betrieb zu sorgen, sondern auch für robuste Wartung und Betreuung.
Wenn nun ein großes System mit einer langen Prozesskette und mehreren Prozessschritten in 2 EAR-Files verpackt wird, ist es unter Umständen für die Wartung und Betreuung nicht mehr robust, weil ein möglicher Fehler in einem Prozessschritt die komplette Prozesskette lahm legt, wenn wegen diesem Fehler eines oder beide EAR-Files neu deployed werden müssen.
Aus meiner Sicht, müssen die einzelnen Prozessschritte herausgelöst werden und bestimmte Prozessschritte in ein eigenes EAR-File verpackt werden. So ist es dann auch möglich, das System robuster zu gestalten; denn einzelne Prozessschritte können auf andere Maschinen ausgelagert werden. Fällt ein Fehler auf, kann ein Prozessschritt für kurze Zeit gestoppt werden, ohne dass andere Prozessschritte davon betroffen sind.

Übrigens: Fehler treten dann auf, wenn man sie am wenigsten erwartet. Beispiel: Nach 3 Jahren fehlerlosem Betrieb gab es eine Konstellation, die wegen eines falschen Parameters zu einer falschen Ausgabe führte.