Softwarearchitektur: Umgebungsunabhängigkeit

UmgebungenIn dem Beitrag “Java: SOAP – Web Service Client schreiben” habe ich großspurig berichtet, wie man innerhalb kürzester Zeit einen Web Service Client in Java implementiert (hier das gleiche für PHP). Jedoch sollte man beachten, dass dieser Client immer nur den Web Service Endpoint anspricht, der in der WSDL angegebene wurde und das ist im Standardfall “localhost“.
Will man nun Web Services in einem Unternehmen mit verschiedenen Umgebungen (Entwicklung, Test, Produktion) einführen, braucht man eine allgemeingültige und konfigurierbare Lösung. In diesem Artikel beschreibe ich zunächst, was eigentlich Umgebungsunabhängigkeit / Ebenenunabhängigkeit bedeutet und wie man diese umsetzen kann. In einem zweiten Artikel erkläre ich ausführlich, wie man einen umgebungsunabhängigen Java Web Service Clients implementiert.

 

Umgebungskonzept

Zur Entwicklung von Software nutzen sehr sehr sehr sehr viele Firmen, dass so genannte “Umgebungskonzept“. Dabei enthält eine Systemumgebung sämtliche IT-Systeme, Programme und Ressourcen, die für einen produktiven Betrieb nötig sind. Im Regelfall werden Systemumgebungen isoliert betrieben und koexistieren.
Je nach Verwendungszweck nennt man die Systemumgebung z.B. Entwicklungsumgebung, Testumgebung oder Produktionsumgebung. So kann ein Entwickler die neue Version der Software auf der Entwicklungsumgebung testen/programmieren und parallel der Tester einen Regressionstest auf der Testumgebung durchführen. Neben dem Verwendungszeck finden sich weitere Bezeichnungen wie Integrations-, Schnittstellentest-, Qualitäts- oder Pilotumgebung, die spezielle Varianten von Testumgebungen sind und evtl. nur für eine begrenzte Dauer existieren. Weitere Systemumgebungen werden oft für spezielle Zwecke eingerichtet, wie zum Beispiel für Beta-Versionen, Schulungen oder Weiterbildungen.

 

Beispiel

Die AxxG Deutschland AG besitzt vier verschiedene Systemumgebungen. Jede Umgebung besteht dabei aus einer eigenen Systemlandschaft und einer eigenen Datenbank.

  • Entwicklungsumgebung (ENTW)
    • Die Entwicklungsumgebung wird ausschließlich von Programmierern genutzt und gepflegt. Die Komponenten werden erstmalig getestet oder direkt in der Umgebung entwickelt. Dadurch ist die Entwicklungsumgebung sehr instabil und es kann zu Fehlermeldungen oder Abstürzen kommen. Die Ressourcen der Entwicklungsumgebung, wie z.B: Festplattenspeicher, Rechenkapazität oder Datenbankconntections, sind meisten sehr begrenzt und so ausgelegt, dass sie sehr schnell wiederhergestellt werden können.
  • Integrationstestumgebung (INT) oder Testumgebung
    • Auf dieser Ebene werden Schnittstellentests, Geschäftsprozesstests, Performancetests und Abnahmetests durchgeführt. Für den Test werden nur selbst erstellte Testfälle und anonymisierte Daten aus der Produktionsdatenbank genutzt.
  • Produktionsumgebung (PROD)
    • In der Produktionsumgebung wird das operative Geschäft getätigt. Weder die Tester noch die Entwickler haben Zugriff auf die Systeme oder die Datenbank. Nur wenige Personen, die das Produktions-Clearing (PCL) durchführen, dürfen die Daten in dieser Datenbank ändern.
  • Wartungsumgebung (WART)
    • Die Wartungsumgebung ist eine komplette Spiegelung der Produktionsumgebung. Diese wird zur Sicherung, für PCL und in Ausnahmefällen zum Testen von Batchen, verwendet. In regelmäßigen Abständen wird die Spiegelung durchgeführt. Nur ausgewählte Mitarbeiter haben Zugriff auf diese Ebene.

 

Quellen

  • Bild by Thorben-Wengert – pixelio.de
  • Wikipedia



Kommentar verfassen