In den Phasen Bereitstellung des Lebenszyklus übertragen Sie ein Bereitstellungsszenario in ein Bereitstellungskonzept, das anschließend implementiert, getestet und in einer Produktionsumgebung eingesetzt wird.
Der Bereitstellungsprozess umfasst im Allgemeinen Softwarekomponenten aller Schichten und aller Infrastrukturdienstebenen, die zur Unterstützung einer Softwarelösung erforderlich sind. Grundsätzlich müssen Sie kundenspezfisch entwickelte Anwendungskomponenten (J2EE-Komponenten, Webdienste oder andere Server) und die für die Lösung benötigten Java ES-Komponenten bereitstellen.
Die Aufgaben der Bereitstellung werden in zwei Phasen aufgeteilt, wie in Abbildung 4–1 gezeigt:
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 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 untersucht.
In der Bereitstellungskonzeptphase erstellen Sie eine Bereitstellungsarchitektur auf hoher Ebene, gefolgt von Implementierungsspezifikationen auf niedriger Ebene.
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.
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. Referenzbereitstellungsarchitekturen dienen als Ausgangspunkt für Java ES-Bereitstellungskonzepte.
Eine Referenzarchitektur basiert auf einem bestimmten Bereitstellungsszenario: Eine logische 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 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 beschreiben, wie Sie die Durchführung der verschiedenen Aufgaben der Phase der Bereitstellungsimplementierung geplant haben. Die Pläne enthalten in der Regel folgende Aufgaben:
Einrichten der Hardware
Installation, Aktualisierung und Migration der Software
Konfiguration und Anpassung des Systems
Entwicklung und Integration
Testen
Produktionseinsatz
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 üblicherweise ausgeführt werden.
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.
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 ES).
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 ES durchführen oder ob Sie zuvor bereits installierte Java ES-Komponenten aktualisieren oder ob Sie Komponenten anderer Hersteller durch Java ES ersetzen. Bei den beiden letztgenannten Java ES-Einführungsszenarios ist es häufig notwendig, dass aus Gründen der Kompatibilität Daten oder Anwendungscode migriert werden müssen.
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. Sie passen beispielsweise Portal Server für gewöhnlich an, um Anschlusskanäle verfügbar zu machen und Access Manager, um Autorisierungsaufgaben durchzuführen usw.
Die logische Architektur, die im Bereitstellungsszenario festgelegt ist, bestimmt das Ausmaß der kundenspezifischen Entwicklungarbeit, die für die 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 Anwendungsserver- 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 JavaTM Studio verschiedene Tools für die Programmierung verteilter Komponenten oder Geschäftsdienste. Die Entwickler-Tools von Sun Java Studio vereinfachen 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 Anwendungsserver-Umgebung aufnehmen, indem Sie J2EE-Ressourcenadapter entwickeln. Message Queue bietet für die Integration diverser Anwendungen eine robuste, asynchrone Messaging-Funktion.
Je nach Anpassungsgrad oder Entwicklungsaufwand müssen Sie Ihre Bereitstellungsarchitektur zu einem bestimmten Zeitpunkt wie folgt testen: Sie müssen die Lösung anhand der Anwendungsfälle testen und überprüfen, ob sie die Dienstqualitätsanforderungen erfüllt.
Wenn Sie relativ wenig kundenspezifisch entwickelte Dienste einsetzen (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.
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. Üblicherweise 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.