Integrationsarchitekturen

Die Evolution der IT-Architekturen

18.02.2015
Von   
Bernhard Steppan arbeitet als IT-Chefarchitekt bei DB Systel GmbH (Deutsche Bahn) in Frankfurt am Main. Er hat 100+ Artikel und zahlreiche Bücher über C++ und Java verfasst. Er betreibt mehrere Blogs, unter anderem http://steppan.net, http://artouro.org und http://tourbine.com

Client-Server-Architekturen

Mit der Einführung einer Client-Server-Architektur werden die beteiligten Systeme aufgebrochen, so dass Services entstehen. Eine Anwendung ist in dieser Architektur üblicherweise zweigeteilt: Vielen identischen Clients steht normalerweise ein Server gegenüber (Siehe Bild "Client-Server-Architektur"). Zwischen dem Clients und dem Server lassen sich Load Balancer zwischenschalten, die Anfragen dorthin leiten, wo die Last am geringsten und eine Antwort daher schnell zu erwarten ist.

Client-Server-Architekturen sind der erste Ansatz, Services zu etablieren. Meistens sind diese jedoch sehr auf einen speziellen Client zugeschnitten und können nicht wiederverwendet werden.
Client-Server-Architekturen sind der erste Ansatz, Services zu etablieren. Meistens sind diese jedoch sehr auf einen speziellen Client zugeschnitten und können nicht wiederverwendet werden.
Foto: Steppan

Die Vorteile der Client-Server-Architektur sind, dass man die Systeme im Vergleich zu Peer-to-Peer-Lösungen besser skalieren kann. Wird die Last auf den Server durch eine steigende Zahl von Anwendern größer, lassen sich einfach neue Server hinzufügen, ohne die Architektur ändern zu müssen. Unumgänglich sind solche Architekturen natürlich immer dann, wenn man monolithische Fat Clients durch schlanke Rich Clients ersetzen möchte. Mit dieser Architektur lassen sich zudem die Anzahl der Abhängigkeiten reduzieren.

Auch hier stehen den Vorteilen der vergleichsweise einfachen Architektur einige Nachteile gegenüber. Zu nennen wäre etwa der Grad der Wiederverwendung. Dadurch, dass der Server in der Regel speziell für "seine" Client-Landschaft entwickelt wurde, können seine Funktionen meist nicht wiederverwendet werden. Ein weiterer Nachteil sind die aufwendigen Adapter zu nennen, die für die Integration mit weiteren Systemen geschrieben werden müssen. Da das Programmiermodell für solche Adapter nicht durch Standards genormt ist, besteht die Gefahr von sehr speziellen Individualentwicklungen. Zudem ist auch hier oftmals nicht klar, wie viele Abhängigkeiten zu Nachbarsystemen bestehen.