Serverseitiges Java: Ebenen zählen - eins, zwei oder n?

Ich hasse Artikel, die Sie durch Berge von Texten waten lassen, bevor Sie zur Sache kommen. Dementsprechend ist hier ein Diagramm, das die Vor- und Nachteile verschiedener Architekturen für verteilte Anwendungen zusammenfasst, die in diesem Artikel erörtert werden.

Auf Ebenen

Am Anfang war das Leben einfach. Computer waren separate, einzelne Geräte. Programme hatten über computergebundene Geräte Zugriff auf alle Ein- und Ausgänge des Computers. Mit der Erfindung der Netzwerke wurde das Leben komplizierter. Jetzt müssen wir Programme schreiben, die von anderen Programmen abhängen, die auf weit entfernten Computern ausgeführt werden. Oft müssen wir auch all diese weit entfernten Programme schreiben! Dies nennt man verteilte Programmierung.

Eine kurze Definition: Eine verteilte Anwendung ist ein System, das aus Programmen besteht, die auf mehreren Hostcomputern ausgeführt werden. Die Architektur dieser verteilten Anwendung ist eine Skizze der verschiedenen Programme, in der beschrieben wird, welche Programme auf welchen Hosts ausgeführt werden, welche Verantwortlichkeiten sie haben und welche Protokolle die Art und Weise bestimmen, in der verschiedene Teile des Systems miteinander kommunizieren.

Die Architektur Vorteile Nachteile
Eine Stufe

Einfach

Sehr hohe Leistung

In sich geschlossen

Kein Netzwerk - kann nicht auf Remote-Dienste zugreifen

Potenzial für Spaghetti-Code

Zwei Ebenen

Sauberes, modulares Design

Weniger Netzwerkverkehr

Sichere Algorithmen

Kann die Benutzeroberfläche von der Geschäftslogik trennen

Protokoll muss entworfen / implementiert werden

Muss zuverlässige Datenspeicherung entwerfen / implementieren

Drei Ebenen

Kann Benutzeroberfläche, Logik und Speicher trennen

Zuverlässige, replizierbare Daten

Gleichzeitiger Datenzugriff über Transaktionen

Effizienter Datenzugriff

Müssen Datenbankprodukt kaufen

Müssen DBA mieten

Müssen neue Sprache lernen (SQL)

Objektrelationale Zuordnung ist schwierig

N Ebenen

Unterstützen Sie mehrere Anwendungen einfacher

Gemeinsames Protokoll / API

Ziemlich ineffizient

Muss API lernen (CORBA, RMI, etc.)

Teure Produkte

Komplexer; somit mehr Potenzial für Fehler

Schwieriger, Lasten auszugleichen

Das Konzept der Ebenen bietet eine bequeme Möglichkeit, verschiedene Architekturklassen zu gruppieren. Wenn Ihre Anwendung auf einem einzelnen Computer ausgeführt wird, verfügt sie grundsätzlich über eine einstufige Architektur. Wenn Ihre Anwendung auf zwei Computern ausgeführt wird - beispielsweise einer typischen Web-CGI-Anwendung, die auf einem Webbrowser (Client) und einem Webserver ausgeführt wird -, hat sie zwei Ebenen. In einem zweistufigen System haben Sie ein Client- Programm und ein Server- Programm. Der Hauptunterschied zwischen den beiden besteht darin, dass der Server auf Anforderungen von vielen verschiedenen Clients reagiert, während die Clients normalerweise die Informationsanforderungen von einem einzelnen Server initiieren.

Eine dreistufige Anwendung fügt dem Mix ein drittes Programm hinzu, normalerweise eine Datenbank, in der der Server seine Daten speichert. Die dreistufige Anwendung ist eine schrittweise Verbesserung der zweistufigen Architektur. Der Informationsfluss ist immer noch im Wesentlichen linear: Eine Anforderung kommt vom Client an den Server. Der Server fordert Daten an oder speichert sie in der Datenbank. Die Datenbank gibt Informationen an den Server zurück. Der Server gibt Informationen an den Client zurück.

Eine n-Tier-Architektur hingegen ermöglicht es einer unbegrenzten Anzahl von Programmen, gleichzeitig ausgeführt zu werden, Informationen aneinander zu senden, unterschiedliche Protokolle für die Kommunikation zu verwenden und gleichzeitig zu interagieren. Dies ermöglicht eine viel leistungsfähigere Anwendung, die vielen verschiedenen Clients viele verschiedene Dienste bietet.

Es öffnet auch eine riesige Dose Würmer, was zu neuen Problemen bei Design, Implementierung und Leistung führt. Es gibt viele Technologien, die dazu beitragen, diesen Albtraum der Komplexität einzudämmen, darunter CORBA, EJB, DCOM und RMI, und viele Produkte, die auf diesen Technologien basieren, werden heftig vermarktet. Der Sprung von dreistufig zu n-stufig - oder der Sprung von ein- zu zweistufig oder von zwei- zu dreistufig - darf jedoch nicht leicht genommen werden. Es ist einfach, eine Dose Würmer zu öffnen, aber Sie benötigen immer eine größere Dose, um sie wieder einzusetzen. Die Befürworter dieser Technologien sind von ihren Vorteilen begeistert und erwähnen oft nicht die Nachteile des Sprunges zu einer komplizierteren Architektur.

In diesem Artikel werde ich die Vor- und Nachteile der einzelnen Architekturstile erläutern und Ihnen einige Informationen geben, die Ihnen bei der Auswahl der richtigen Architektur für Ihre Anwendung helfen. Berücksichtigen Sie diese Gründe, bevor Sie sich für ein Produkt entscheiden, da das Informationsblatt Ihnen das Leben erleichtern soll.