Java ES-Komponenten sind in unterschiedliche Kategorien gruppiert, wie in Sun Java Enterprise System 5 – Technische Übersicht beschrieben. Gemäß der in diesem Dokument bereitgestellten Informationen stellen Systemdienstkomponenten die Hauptdienste der Java ES-Infrastruktur bereit, während Dienstqualitätkomponenten diese Systemdienste erweitern. Diese zwei Arten von Java ES-Komponenten werden hier zusammenfassend als Produktkomponenten bezeichnet, also die Komponenten, die im Java ES-Installationsprogramm auswählbar sind.
Jede Produktkomponente hängt von einer oder mehreren lokal freigegebenen Bibliotheken ab, die als gemeinsam genutzte Java ES-Komponenten bezeichnet werden. Gemeinsam genutzte Komponenten werden, in Abhängigkeit von der installierten Produktkomponente, während der Installation einer Produktkomponente vom Java ES-Installationsprogramm automatisch installiert. Sie werden bei der Bereitstellung von Java ES-Produktkomponenten weder einzeln ausgewählt, installiert noch konfiguriert.
Die Erläuterung im Abschnitt Gründe für die Verwendung von Zonen für Java ES konzentriert sich auf die Verwendung von Zonen durch Java ES-Produktkomponenten: diese können im Java ES-Installationsprogramm explizit ausgewählt und in verschiedenen Zonen installiert und konfiguriert werden, um die gewünsche Bereitstellungsarchitektur und Funktionalität zu erzielen. Die gemeinsam genutzten Komponenten jedoch, von denen die Produktkomponenten abhängen, führen zu verschiedenen Beschränkungen in Bezug auf die Java ES-Bereitstellung in einer Multi-Zonen-Umgebung. Für gemeinsam genutzte Java ES-Komponenten und Zonen gelten insbesondere die folgenden zwei Einschränkungen:
Die Schwierigkeit, sämtliche der (etwa 30) komplexen Interaktionen zwischen den gemeinsam genutzten Java ES-Komponenten und Java ES-Produktkomponenten zu testen und zu unterstützen, macht es erforderlich, dass alle gemeinsam genutzten Komponenten innerhalb einer Betriebssysteminstanz für dieselbe Java ES-Version synchronisiert werden müssen. Anders ausgedrückt: Alle in einer Nicht-Zonen-Umgebung oder in einer einzelnen Zone mit einer Solaris 10-Umgebung installierten gemeinsam genutzten Java ES-Komponenten müssen dieselbe Version aufweisen. Diese Anforderung führt zu gewissen Einschränkungen in Bezug auf die Verwendung von Java ES in einer Multi-Zonen-Umgebung.
Diese Synchronisierungsanforderung hat folgende Auswirkungen:
Unterschiedliche Versionen von gemeinsam genutzten Java ES-Komponenten können nur in unterschiedlichen Zonen vorliegen. Sie können beispielsweise die gemeinsam genutzten Komponenten von Java ES Version 4 in einer Zone und gemeinsam genutzte Komponenten von Java ES Version 5 in einer anderen Zone installieren, eine Kombination in derselben Zone ist jedoch nicht möglich.
Wenn eine gemeinsam genutzte Komponente in einer Zone aktualisiert oder eine neue gemeinsam genutzte Komponente einer höheren Version eingeführt wird, dann müssen alle gemeinsam genutzten Komponenten in dieser Zone ebenfalls aktualisiert werden. (Gemeinsam genutzte Komponenten bieten Abwärtskompatibilität, daher stellt es kein Problem dar, Produktkomponenten der Version 4 mit gemeinsam genutzten Komponenten der Version 5 auszuführen.) Angenommen, eine Produktkomponente der Version 5 wird in einer Zone installiert, in der mindestens eine Produktkomponente der Version 4 installiert ist. Da die Version 5-Produktkomponente einige der gemeinsam genutzten Komponenten für Version 5 benötigt, muss während der Installation der Version 5-Produktkomponente eine Synchronisierung aller gemeinsam genutzten Komponenten für Version 4 in dieser Zone auf Version 5 erfolgen. Dies ist auch dann der Fall, wenn die zu installierende Version 5-Produktkomponente gemeinsam genutzte Komponenten erfordert, die von den bereits in der Zone installierten gemeinsam genutzten Komponenten abweichen.
Wenn gemeinsam genutzte Komponenten in der globalen Zone installiert und von dort verbreitet werden (siehe Java ES-Verbreitungsrichtlinien), dann muss besonders auf die Synchronisierung der gemeinsam genutzten Komponenten in allen Zonen geachtet werden. Anderenfalls wäre es möglich, dass gemeinsam genutzte Komponenten einer früheren Version in einer nicht globalen Zone mit den gemeinsam genutzten Komponenten für Version 5 gemischt werden, die über die globale Zone verbreitet wurden. (Als Vorsichtsmaßnahme wird die Lebenszyklusverwaltung für gemeinsam genutzte Komponenten normalerweise ausschließlich in der globalen Zone durchgeführt: Weitere Informationen finden Sie in Tabelle A–2 sowie unter Sonderfälle bei gemeinsam genutzten Komponenten.)
Die Synchronisierungsanforderung für gemeinsam genutzte Komponenten führt zu Beschränkungen für das Java ES-Installationsprogramm in einer Multi-Zonen-Umgebung (siehe Zonenunterstützung im Java ES-Installationsprogramm) und hat darüber hinaus Auswirkung auf die Verfahren zur Installation und Aktualisierung von Java ES-Produktkomponenten in einer Multi-Zonen-Umgebung.
Ein weiterer Aspekt bei der Verwendung von Java ES in einer Multi-Zonen-Umgebung ist der, dass zahlreiche gemeinsam genutzte Komponenten in Sparse-Root-Zonen nicht installiert werden können, da in Sparse-Root-Zonen mit schreibgeschützten Dateisystemen gearbeitet wird. Aus diesem Grund müssen gemeinsam genutzte Komponenten mit dem Basisverzeichnis /usr (ein Verzeichnis, das per Voreinstellung in der globalen Zone freigegeben ist) in der globalen Zone installiert werden, damit sie in einer Sparse-Root-Zone zur Verfügung stehen.
Die Unfähigkeit, verschiedene der gemeinsam genutzten Java ES-Komponenten in Sparse-Root-Zonen zu installieren, macht es erforderlich, dass zur erfolgreichen Installation von Produktkomponenten, die von diesen gemeinsam genutzten Komponenten abhängen, die Produktkomponenten zunächst in der globalen Zone installiert und anschließend auf die nicht globalen Zonen verbreitet werden müssen.
Einige der im Abschnitt Gründe für die Verwendung von Zonen für Java ES besprochenen Ziele in Bezug auf die Verwendung von Java ES in einer Multi-Zonen-Umgebung sowie die damit verbundenen Verwendungsszenarien setzen die Verbreitungsfunktionalität der globalen Zone ein, um die Lebenszyklusverwaltung der Java ES-Produktkomponenten zu vereinfachen. In diesen Szenarien erfolgt die Lebenszyklusverwaltung der Java ES-Produktkomponenten in der globalen Zone durch den globalen Administrator, während die Konfigurations- und Laufzeitverwaltung dieser Komponenten in den nicht globalen Zonen durch Zonenadministratoren durchgeführt wird.
Anders gesagt: Produktkomponenten werden in der globalen Zone installiert und aktualisiert, die Instanzen jedoch werden in nicht globalen Zonen konfiguriert und ausgeführt. Dieses Verwendungsszenario kombiniert die Vorteile der zentralen Lebenszyklusverwaltung mit der Isolierung und Sicherheit nicht globaler Zonen.
Dieses Szenario hängt jedoch von der Fähigkeit jeder Produktkomponente ab, in der globalen Zone installiert und in einer nicht globalen Zone konfiguriert und ausgeführt werden zu können. Diese Trennung richtet sich danach, wie eine Produktkomponente konfiguriert wird, wo Konfigurations- und dynamische Anwendungsdaten gespeichert werden, wie Konfigurationsdaten durch Ausführung von Binärdateien ermittelt und wie Upgrades durchgeführt werden. Die Trennung kann beispielsweise davon abhängen, was bei der Ausführung von vor- oder nachbereitenden Installations- oder Upgrade-Skripts geschieht: Start oder Stopp von Komponenteninstanzen, Einrichtung von Links zu Konfigurationsdaten oder Durchführung von anderen Aufgaben, welche die Grenze zwischen Lebenszyklus- und Konfigurationsverwaltung verwischen.
Diese Trennung kann auch davon abhängen, ob die Konfiguration in einer Whole-Root- oder Sparse-Root-Zone erfolgt. Wenn beispielsweise ein Konfigurationsskript für eine Produktkomponente versucht, einen Schreibvorgang in einem schreibgeschützten Dateisystem in einer Sparse-Root-Zone durchzuführen (z. B. /usr), oder wenn ein nicht standardmäßiges Dateisystem (z. B./opt) gemeinsam mit einer Sparse-Root-Zone verwendet wird, kann die Konfiguration einer Komponente fehlschlagen.
Nahezu alle Java ES-Komponenten werden im Verzeichnis /opt installiert, das per Voreinstellung in Sparse-Root-Zonen beschreibbar ist. Weitere Informationen finden Sie in Sun Java Enterprise System 5 Installationsreferenz für UNIX.
Zurzeit wird für die etwa 20 Java ES-Produktkomponenten die Trennung von Lebenszyklusverwaltung und Konfigurations-/Laufzeitverwaltung zwischen globalen und nicht globalen Zonen noch nicht unterstützt. Die verschiedenen Produktkomponenten verwenden verschiedene Ansätze für Konfiguration und Upgrade. Aufgrund dieser Situation kann sich die Verbreitung der meisten Java ES-Produktkomponenten (ausgenommen Message Queue) schwierig gestalten. Weitere Informationen finden Sie in den Java ES-Verbreitungsrichtlinien.