![]() | |
Sun Java Enterprise System 2005Q2 - Technischer Überblick |
Kapitel 4
Aufgaben des Lösungslebenszyklus von Java Enterprise SystemDer Java ES-Lösungslebenszyklus wurde im Kapitel 1, „Einführung in Java Enterprise System,“ als Standardansatz für die Implementierung von Geschäftslösungen mit der Java ES-Software vorgestellt. In diesem Kapitel werden die zu den einzelnen Lebenszyklusphasen gehörenden Aufgaben beschrieben. Das Lebenszyklusdiagramm wird zu Referenzwecken noch einmal wiederholt (Abbildung 4-1).
In diesem Kapitel werden die für jede Phase relevanten Konzepte und die zugehörige Terminologie besprochen. Der Schwerpunkt liegt dabei auf den Bereitstellungsaufgaben, insbesondere auf dem Bereitstellungskonzept und den Aufgaben der Bereitstellungsimplementierung.
Das Kapitel ist nach den folgenden drei Lebenszyklusphasen aufgebaut.
BereitstellungsvorbereitungIn der Lebenszyklusphase Bereitstellungsvorbereitung setzen Sie eine Analyse der Geschäftsanforderungen in ein Bereitstellungsszenario um. Das Bereitstellungsszenario dient als Spezifikation für ein Bereitstellungskonzept.
Die vor der Bereitstellung notwendigen Aufgaben werden zu drei Phasen zusammengefasst, die in Abbildung 4-1 dargestellt sind:
- Geschäftsanalyse: In dieser Phase definieren Sie die Geschäftsziele eines Bereitstellungsvorschlags und nennen die Geschäftsanforderungen und -beschränkungen, die zur Erreichung dieses Ziels erfüllt werden müssen.
- Technische Anforderungen: In dieser Phase erstellen Sie anhand der Ergebnisse der Geschäftsanalyse Anwendungsfalle , die die Interaktion der Benutzer mit einem vorweggenommenen Softwaresystem abbilden. Außerdem legen Sie die für diese Anwendungsfälle erwarteten Anwendungsmuster fest. Unter Berücksichtigung der Geschäftsanalyse und der Anwendungsanalyse formulieren Sie Dienstqualitätsanforderungen (siehe Tabelle 2-2), die der Bereitstellungsvorschlag einhalten muss.
- Logisches Konzept: In dieser Phase analysieren Sie die in der Phase der technischen Anforderungen entwickelten Anwendungsfälle, um festzustellen, welche Java ES-Infrastrukturkomponenten und welche kundenspezifisch entwickelten Anwendungskomponenten Sie für die Endbenutzer benötigen. Anhand der im Kapitel 2, „Lösungsarchitekturen von Java Enterprise System,“ besprochenen Konzepte entwerfen Sie eine logische Architektur. Die logische Architektur enthält alle Komponenten und alle zwischen den Komponenten stattfindenden Interaktionen, die notwendig sind, damit die Anwendungsfälle einer bestimmten Softwarelösung umgesetzt werden.
Die logische Architektur wird, wie in der nachfolgenden Abbildung dargestellt, zusammen mit Leistungs-, Verfügbarkeits-, Sicherheits- und anderen Dienstqualitätsanforderungen im Bereitstellungsszenario zusammengefasst. Weitere Informationen über die vor der Bereitstellung anfallenden Lebenszyklusphasen finden Sie im Java Enterprise System Deployment Planning Guide.
Abbildung 4-2 Spezifizieren eines Bereitstellungsszenarios
BereitstellungIn den Bereitstellungsphasen des Lebenszyklus setzen Sie ein Bereitstellungsszenario in ein Bereitstellungskonzept um, das Sie dann implementieren, testen und schließlich in einer Produktionsumgebung einsetzen.
Der Bereitstellungsprozess umfasst im Allgemeinen Softwarekomponenten aller Schichten und aller Infrastrukturdienstebenen, die zur Unterstützung einer Softwarelösung erforderlich sind. Meist müssen Sie sowohl kundenspezifisch entwickelte Anwendungskomponenten (J2EE-Komponenten, Webdienste oder andere Server) sowie die für die Lösung benötigten Java ES-Komponenten bereitstellen.
Die Bereitstellungsaufgaben werden zu drei Phasen zusammengefasst, die Abbildung 4-1 darstellt:
- Bereitstellungskonzept. Das Bereitstellungskonzept hängt sowohl von der logischen Architektur einer Lösung als auch von der Leistung, Verfügbarkeit, Sicherheit, Skalierbarkeit, Zweckmäßigkeit und anderen Dienstqualitätsanforderungen ab, die eine Lösung erfüllen muss. Die Dimension der Dienstqualität einer Bereitstellungsarchitektur spielt in der Phase des Bereitstellungskonzepts eine wichtige Rolle.
- Bereitstellungsimplementierung. Die Implementierung eines Bereitstellungskonzepts stellt einen häufig iterativ verlaufenden Prozess dar, der die Einrichtung der Hardware, die Installation und Konfiguration der Software, die Entwicklung und Integration, das Testen und andere Aspekte des Produktionseinsatzes umfasst.
Diese beiden Phasen des Bereitstellungsprozesses werden in den folgenden Abschnitten eingehender beschrieben.
Bereitstellungskonzept
In der Phase des Bereitstellungskonzepts erstellen Sie eine Bereitstellungsarchitektur auf hoher Ebene, gefolgt von Implementierungsspezifikationen auf niedriger Ebene.
Bereitstellungsarchitektur
Eine Bereitstellungsarchitektur wird durch Zuordnung der logischen Modulblöcke einer Anwendung (die logische Architektur) zu einer physischen Computerumgebung erstellt. Hierbei müssen die im Bereitstellungsszenario festgelegten Dienstqualitätsanforderungen erfüllt sein.
Das Bereitstellungsszenario wird, wie in der folgenden Abbildung dargestellt, in eine Bereitstellungsarchitektur umgesetzt.
Abbildung 4-3 Umsetzen eines Bereitstellungsszenarios in eine Bereitstellungsarchitektur
Ein Aspekt dieses Architekturkonzepts bildet die Festlegung der Größe der physischen Umgebung (Bestimmung der Anzahl der Computer und Schätzung ihrer Prozessorstärke und RAM-Anforderungen), die notwendig ist, um die Anforderungen hinsichtlich der Leistung, Verfügbarkeit, Sicherheit und anderer Dienstqualitätsanforderungen zu erfüllen. Nachdem Sie die Größe festgelegt haben, weisen Sie den Computern in der physischen Umgebung Java ES-Komponenten und Anwendungskomponenten zu. Die resultierende Bereitstellungsarchitektur muss die Funktionen der verschiedenen Computer, die Eigenschaften der Systeminfrastrukturdienste und die Beschränkungen für die Betriebs- oder Verfügbarkeitskosten berücksichtigen.
Je größer die Anzahl der Java ES-Komponenten im Bereitstellungsszenario ist und je höher die Dienstqualitätsanforderungen sind, desto höher sind die Ansprüche, die an die Computer und die Netzwerkbandbreite gestellt werden. Wenn die Hardware begrenzt oder extrem teuer ist, müssen Sie eventuell Kompromisse zwischen den Festkosten (Hardware) und den variablen Kosten (Personalbedarf) oder zwischen den verschiedenen Dienstqualitätsanforderungen schließen. Möglicherweise müssen Sie aber auch Ihr Konzept vereinfachen.
Die Konzeption einer Bereitstellungsarchitektur erfolgt oft in sich wiederholenden Schritten. Als Ausgangspunkt für ein Bereitstellungskonzept entwickelt das Java Enterprise System jedoch eine Reihe von Referenz-Bereitstellungsarchitekturen.
Eine Referenzarchitektur basiert auf einem bestimmten Bereitstellungsszenario: Einer logischen Architektur mit bestimmten Dienstqualitätsanforderungen. In der Referenzarchitektur wird eine Softwarelösung so innerhalb einer bestimmten physischen Umgebung bereitgestellt, dass die vorgegebenen Dienstqualitätsanforderungen erfüllt werden. Das Testen der Leistung bei vorgegebenen Lasten basiert auf derselben Gruppe von Anwendungsfällen, aus denen das Bereitstellungsszenario entwickelt wurde. Dokumentation zur Referenzarchitektur ist für Java ES-Kunden öffentlich verfügbar.
Auf der Grundlage einer Referenz-Bereitstellungsarchitektur oder einer Kombination von Referenzarchitekturen können Sie eine erste näherungsweise Bereitstellungsarchitektur entwerfen, die Ihre eigenen Bereitstellungsszenario-Anforderungen erfüllt. Sie können unter Berücksichtigung der Unterschiede zwischen Ihrem eigenen Bereitstellungsszenario und den Bereitstellungsszenarios, auf denen die Referenzarchitekturen basieren, die Referenzarchitekturen anpassen oder als Referenzpunkte verwenden. Auf diese Weise können Sie die Auswirkungen Ihrer eigenen Größen-, Leistungs-, Sicherheits-, Verfügbarkeits-, Kapazitäts- und Zweckmäßigkeitsanforderungen beurteilen.
Implementierungsspezifikationen
Implementierungsspezifikationen enthalten die für die Implementierung einer Bereitstellungsarchitektur notwendigen Einzelheiten. Die Spezifikationen enthalten in der Regel folgende Informationen:
- Vorhandene Hardware, mit Computern, Speichergeräten, Lastausgleichsmodulen und Netzwerkkabeln
- Betriebssysteme
- Netzwerkstruktur, mit Subnetzen und Sicherheitszonen
- Einzelheiten des Verfügbarkeitskonzepts
- Einzelheiten des Sicherheitskonzepts
- Für das Einrichten von Endbenutzern benötigte Informationen über das Verzeichniskonzept
Implementierungspläne
Implementierungspläne beschreiben, wie Sie die Durchführung der verschiedenen Aufgaben der Phase der Bereitstellungsimplementierung geplant haben. Die Pläne enthalten in der Regel folgende Aufgaben
Bereitstellungsimplementierung
Die Implementierung eines Bereitstellungskonzepts besteht aus den im vorherigen Abschnitt aufgeführten Aufgaben, die auch in Abbildung 4-1 dargestellt sind. Die Reihenfolge dieser Aufgaben ist nicht streng vorgegeben, da der Bereitstellungsprozess als solcher iterativ verläuft. In den nachfolgenden Unterabschnitten werden die wichtigsten Aufgaben der Bereitstellungsimplementierung in der Reihenfolge beschrieben, in der sie in der Regel ausgeführt werden. Detaillierte Dokumentation zu diesen Aufgaben entnehmen Sie der Java Enterprise System Documentation Roadmap.
Einrichten der Hardware
Die Implementierungsspezifikationen enthalten alle Details Ihrer physischen Umgebung: Computer, Netzwerkstruktur, Netzwerkhardware (mit Leitungen, Schaltern, Routern und Lastausgleichsmodulen), Speichergeräte usw. Die gesamte Hardware muss als Plattform für Ihre Java ES-Lösung eingerichtet werden.
Installation, Aktualisierung und Migration der Software
Aus der Bereitstellungsarchitektur und den in den Implementierungsspezifikationen enthaltenen zusätzlichen Details erfahren Sie, welche Anwendungskomponenten und welche Java ES-Komponenten auf jedem Computer Ihrer physischen Umgebung vorhanden sein müssen. Mit dem in Java ES integrierten Installationsprogramm installieren Sie auf jedem Computer Ihrer Bereitstellungsarchitektur die entsprechenden Java ES-Komponenten (siehe Das integrierte Installationsprogramm von Java Enterprise System).
Ihr Installationsplan beschreibt den Ablauf und den Umfang der Installationssitzungen. Nach welchem Ansatz Sie die Installationen durchführen, kann jedoch davon abhängen, ob Sie eine Neuinstallation von Java Enterprise System durchführen oder ob Sie zuvor bereits installierte Java ES-Komponenten aktualisieren oder ob Sie Komponenten anderer Hersteller durch Java Enterprise System ersetzen. Bei den beiden letztgenannten Java ES-Einführungsszenarien ist es häufig notwendig, dass aus Gründen der Kompatibilität Daten oder Anwendungscode migriert werden müssen.
Konfiguration und Anpassung des Systems
Damit die verschiedenen Systemkomponenten als integriertes System zusammenarbeiten, muss die Systemkonfiguration an einigen Stellen angepasst werden. Dazu gehört zuerst die für den Start jeder Systemkomponente notwendige Erstkonfiguration. Anschließend müssen alle Java ES-Komponenten so konfiguriert werden, dass sie mit den Komponenten kommunizieren, mit denen sie interagieren.
Entsprechend der für jede Komponente vorliegenden Verfügbarkeitslösung muss darüber hinaus die Hochverfügbarkeit konfiguriert werden. Die Benutzer müssen eingerichtet werden, damit sie auf die verschiedenen Dienste zugreifen können. Darüber hinaus müssen die Richtlinien und die Steuerung für die Authentifizierung und die Autorisierung eingerichtet werden (siehe Integrierte Identitäts- und Sicherheitsdienste).
In den meisten Fällen gehören zu den Konfigurationsaufgaben auch gewisse Anpassungen der Java ES-Komponenten, damit exakt die benötigten Funktionen verfügbar sind. So passen Sie in der Regel den Portal Server an, damit er Zugangskanäle bereitstellt, den Access Manager, damit er Autorisierungsaufgaben durchführt und den Messaging Server, damit er die Virusprüfung und den Spam-Filter einsetzt.
Entwicklung und Integration
Die logische Architektur, die im Bereitstellungsszenario festgelegt ist, bestimmt das Ausmaß der kundenspezifischen Entwicklungsarbeit, die zur Implementierung einer Lösung erforderlich ist.
Für einige Bereitstellungen kann die Entwicklungsarbeit viel umfangreicher sein. Möglicherweise müssen Sie unter Verwendung von J2EE-Komponenten, die in einer Application Server- oder Web Server-Umgebung ausgeführt werden, ganz neue Geschäfts- und Präsentationsdienste entwickeln. In diesen Fällen erstellen Sie einen Prototyp für die Lösung und testen das Konzept, bevor Sie mit der vollständigen Entwicklung anfangen.
Für Lösungen, bei denen umfangreiche Entwicklungsarbeiten notwendig sind, bietet Sun Java Studio verschiedene Tools für die Programmierung verteilter Komponenten oder Geschäftsdienste. Sun Java Studio vereinfacht die Programmierung und das Testen von Anwendungen, die von der Java ES-Infrastruktur unterstützt werden.
In bestimmten Situationen müssen Java ES-Komponenten mit Legacy-Anwendungen oder Diensten anderer Hersteller integriert werden. Eine solche Integration kann in der Datenschicht vorhandene Verzeichnis- oder Datendienste oder in der Geschäftsdienstschicht vorhandene Komponenten betreffen. Für die Integration von Java ES-Komponenten in solche Systeme kann die Migration von Daten oder Anwendungscode notwendig sein.
Die J2EE-Plattform bietet ein Connector Framework, mit dem Sie vorhandene Anwendungen in die Application Server-Umgebung aufnehmen, indem Sie J2EE-Ressourcenadapter entwickeln. Auch Message Queue bietet für die Integration diverser Anwendungen eine robuste, asynchrone Messaging-Funktion.
Testen von Prototypen und Piloten
Abhängig vom Umfang der notwendigen Anpassungs- oder Entwicklungsarbeiten, müssen Sie Ihre Bereitstellungsarchitektur an bestimmten Punkten überprüfen. Sie müssen die Lösung im Hinblick auf die Anwendungsfälle testen und prüfen, ob die Dienstqualitätsanforderungen erfüllt werden.
Wenn Sie relativ wenig kundenspezifisch entwickelte Dienste besitzen (die Bereitstellung also überwiegend Out-of-the-Box erfolgt), müssen für Ihre Lösung lediglich die Java ES-Komponenten angepasst und ein Pilottest des Systems durchgeführt werden.
Wenn Sie jedoch eine wichtige neue Anwendungslogik entwickelt und benutzerdefinierte Dienste erstellt haben, müssen Sie wahrscheinlich umfangreichere Tests durchführen, wie Prototyp-Tests, Integrationstest usw.
Wenn diese Tests Schwachstellen Ihrer Bereitstellungsarchitektur aufzeigen, müssen Sie die Architektur ändern und erneut testen. Dieser schrittweise Prozess sollte schließlich zu einer Bereitstellungsarchitektur und einer Implementierung führen, die die Bereitstellung in einer Produktionsumgebung gewährleisten kann.
Produktionseinsatz
Der Produktionseinsatz besteht in der Anwendung Ihrer Bereitstellungsimplementierung in einer Produktionsumgebung. Diese Phase umfasst das Installieren, Konfigurieren und Starten der verteilten Anwendungen und Infrastrukturdienste in einer Produktionsumgebung, die Einrichtung von Produktionssystem-Endbenutzern sowie die Einrichtung von Single Sign-On, Zugriffsrichtlinien usw. In der Regel beginnen Sie mit einer eingeschränkten Bereitstellung und dehnen diese dann auf das gesamte Unternehmen aus. Hierbei führen Sie Testläufe aus, in denen Sie die Belastung stetig steigern, um zu bestätigen, dass die Qualitätsanforderungen erfüllt werden.
BereitstellungsnachbereitungIn der Lebenszyklusphase Bereitstellungsnachbereitung betreiben Sie eine bereitgestellte Lösung in einer Produktionsumgebung. Zur Betriebsphase des Lebenszyklus gehörende folgende Aufgaben:
- Überwachung: Zu dieser Aufgabe gehört die regelmäßige Überwachung der Systemleistung und der Systemfunktionen.
- Wartung: Zu dieser Aufgabe gehören die täglich anfallenden Verwaltungsfunktionen, wie das Hinzufügen neuer Benutzer zu einem System, das Ändern von Passwörtern, das Hinzufügen neuer administrativer Benutzer, das Ändern von Zugriffsberechtigungen, die Durchführung regelmäßiger Sicherungen usw.
- Leistungsoptimierung: Zu dieser Aufgabe gehört die Auswertung regelmäßiger Überwachungsinformationen, um Engpässe beim Systembetrieb zu erkennen und diese dann durch Änderungen der Konfigurationseinstellungen, Hinzufügen von Kapazität usw. zu beseitigen.
- Systemerweiterungen und Aktualisierungen: Zu diesen Aufgaben gehört das Hinzufügen neuer Java ES-Komponenten zu einem System, um neue Funktionen verfügbar zu machen, oder um Nicht-Java ES-Komponenten zu ersetzen. In beiden Fällen kann eine Neukonzeption des Systems notwendig sein, die mit den ersten Phasen des Lösungslebenszyklus anfängt. Aktualisierungsaufgaben sind weniger umfangreich, da es sich meist um die Aktualisierung von Java ES-Komponenten handelt.
Jede Java ES-Komponente verfügt über eigene Tools für die Konfiguration, Optimierung oder Verwaltung. Ziel ist die Bereitstellung einer gemeinsamen Überwachungs- und Verwaltungsinfrastruktur sowie von Tools, mit denen das System als Ganzes verwaltet werden kann.
In diesem Kapitel enthaltene SchlüsselbegriffeDieser Abschnitt erläutert in diesem Kapitel verwendete wichtige technische Begriffe, wobei der Schwerpunkt darauf liegt zu verdeutlichen, welche Beziehung zwischen diesen Begriffen im Java Enterprise System-Kontext vorliegt.
Bereitstellung Ein Abschnitt im Lebenszyklus einer Java Enterprise System-Lösung, in dem ein Bereitstellungsszenario in ein Bereitstellungskonzept überführt, dann implementiert, als Prototyp getestet und schließlich in einer Produktionsumgebung eingesetzt wird. Das Endprodukt dieses Prozesses wird ebenfalls als Bereitstellung (oder bereitgestellte Lösung) bezeichnet.
Bereitstellungsszenario Die logische Architektur einer Java Enterprise System-Lösung und die Dienstqualitätsanforderungen, die die Lösung erfüllen muss, um den Geschäftsanforderungen zu entsprechen. Die Dienstqualitätsanforderungen betreffen u. a. Leistung, Verfügbarkeit, Sicherheit, Zweckmäßigkeit und Skalierbarkeit/latente Kapazität. Ein Bereitstellungsszenario ist der Ausgangspunkt für ein Bereitstellungskonzept.
Entwicklung Eine Aufgabe im Bereitstellungsprozess der Java Enterprise System-Lösung, bei der die angepassten Komponenten einer Bereitstellungsarchitektur programmiert und getestet werden.
Bereitstellungsvorbereitung Ein Abschnitt im Lebenszyklus der Java Enterprise System-Lösung, in dem die Geschäftsanforderungen in ein Bereitstellungsszenario umgesetzt werden: Eine logische Architektur und eine Reihe von Dienstqualitätsanforderungen, die die Lösung erfüllen muss.
Bereitstellungsnachbereitung Ein Abschnitt im Lebenszyklus einer Java Enterprise System-Lösung, in dem verteilte Anwendungen gestartet, überwacht, zur Optimierung der Leistung angepasst und dynamisch mit neuen Funktionen aufgerüstet werden.
Referenz-Bereitstellungsarchitektur Eine Bereitstellungsarchitektur, die hinsichtlich der Leistung entworfen, implementiert und getestet wurde. Referenz-Bereitstellungsarchitekturen dienen als Ausgangspunkt für die Konzeption maßgeschneiderter Lösungen.
Anwendungsfall Eine bestimmte Endbenutzeraufgabe oder eine Reihe von Aufgaben, die eine Verteilte Unternehmensanwendung ausführt und die als Basis für die Konzipierung, das Testen und das Messen der Leistung der Anwendung dient.