13.02.2017
Grosse Applikationen in einem Unternehmen laufen heutzutage nicht mehr auf einem einzigen Rechner, sondern auf mehreren Servern. Ist eigentlich auch logisch, denn wenn der Hauptcomputer ausfallen würde und man etwa die Buchhaltungsapplikation nicht mehr verwenden könnte, wäre das nicht gerade optimal.
Läuft eine Applikation auf mehreren Servern spricht man von einem verteilten System. Bei ganz grossen Firmen ist das System nicht nur verteilt auf mehrere Server, sondern die Server selber sind auch von der Lokation her an verschiedenen Orten. Die Daten werden dann üblicherweise dupliziert und redundant gehalten. So kann ein Serverzentrum die volle Funktionalität übernehmen, wenn das zweite ausfallen würde – Am Besten so, dass der Kunde nichts davon merkt.
Was sind die Vorteile von verteilten Systemen?
Nun, wie erwähnt will man die Ausfallsicherheit eines Systems erhöhen. Stellen Sie sich vor, das Ebanking ihrer Bank würde für eine Woche ausfallen – Das wäre eine Katastrophe!
Desweiteren hat man bei einem verteilten System die Möglichkeit, bei der Überlastung eines Servers die Last auf weitere Server zu verteilen, siehe Was ist ein Load Balancer?
Aus diesen Gründen ist es daher sowieso keine Frage, ob grosse Firmen ein verteiltes System verwenden oder nicht. Systeme von Grossfirmen sind mittlerweile riesig und über etliche Jahre gewachsen. Systeme haben auch die Natur, dass sie sich ständig ändern. Daher muss die Architektur so skalierbar sein wie möglich.
Was ist eine typische Architektur eines verteilten Systems?
Eine Architektur, die man am sehr oft antrifft, ist die sogenannte Three Tier Architektur. Mit Tier ist dabei einfach eine Stufe einer Applikation gemeint.
Beim Tier 1 geht es um den Kunden, der an seinem Computer sitzt und die Anwendung er Firma benutzt. Er wird üblicherweise Client genannt. Diese Stufe findet also beim Kunden auf seinem Computer statt – Heutzutage normalerweise im Browser, da man praktisch nur noch Webapps baut statt echte Desktopprogramme.
Der Tier 2 geschieht dann bereits auf den Servern einer Firma. Dort läuft die Stufe der Anwendungsserver oder Applikationsserver. Die Benutzereingaben werden dort gesammelt und je nachdem, was gemacht werden muss, werden verschiedene Module aufgerufen. Dort ist auch der Kern oder der Wert einer Firma versteckt: In den Algorithmen und der Geschäftslogik.
Im Tier 3 geht es dann noch darum, die Daten zu persistieren und auf Datenbanken abzuspeichern.
Haben alle Firmen dieselbe Architektur?
Ha, schön wäre es! Wie es in der Natur des Menschen liegt, hat jede Firma ihre eigene Architektur und sogar innerhalb einer Firma existieren zig Architekturen, die verwendet werden. Alte Systeme werden am Leben gelassen, weil man zum Beispiel den alten Code nicht mehr versteht und lieber nichts ändert. Neue Systeme richten sich nicht an alten Systemen. Mitarbeiter werden ausgetauscht, die jeweils unterschiedliche Technologien bevorzugen oder kennen – Da passiert viel in einer wirklich grossen Firma.
Denken Sie auch daran, dass die Three Tier Architektur wirklich nur ein ganz grundlegender, traditioneller Gedanke ist. Innerhalb einer Stufe können verschiedene Unterstufen und Technolgien zum Einsatz kommen.
Ein Client kann zum Beispiel eine mit Java und JavaScript gebaute Buchhaltungssoftware verwenden, die per REST Services mit dem Applikationsserver kommuniziert. Im Applikationsserver gibt es nun eine Applikation, welche die Benutzerdaten in einer Oracle Datenbank abspeichert und mit Java darauf zugreift. Die Buchhaltungsdaten selber werden aber an einen Cobolservice weitergereicht, der diese Daten wiederum in einer DB2 Datenbank abspeichert.
Sie sehen, in der Realität können sehr viele Stufen durchlaufen werden, wenn man in einer Webapplikation einen simplen Knopfdruck macht.