Sun JavaTM Enterprise System (Java ES) besteht aus einem Satz von Softwarekomponenten, die Dienste bieten, die bei der Unterstützung verteilter Anwendungen in Unternehmensstärke in einer Netzwerk- oder Internetumgebung benötigt werden. Solche Anwendungen werden als verteilte Unternehmensanwendungen bezeichnet. In diesem Handbuch werden die Softwarekomponenten von Java ES und die von ihnen bereitgestellten Dienste beschrieben.
In diesem Kapitel werden das System Java ES und die Aufgaben vorgestellt, die bei Verwendung des Systems ausgeführt werden. Das Kapitel enthält die folgenden Abschnitte:
Die Geschäftsanforderungen von heute fordern Softwarelösungen, die über eine Netzwerk- oder Internetumgebung hinweg verteilt sind sowie hohe Leistung, Verfügbarkeit, Sicherheit, Skalierbarkeit und Zweckmäßigkeit bieten.
Java ES bietet Infrastrukturdienste, die benötigt werden, um verteilte Unternehmensanwendungen zu unterstützen, die in der Regel folgende Merkmale aufweisen:
Verteilt: Die Anwendung besteht aus interagierenden Software- komponenten, die über eine vernetzte Umgebung verteilt werden, die geografisch entfernte Standorte umfassen kann. Diese verteilten Komponenten, die auf den verschiedenen Computern der Umgebung ausgeführt werden, arbeiten zusammen, um spezielle Geschäftsfunktionen für die end users und andere Geschäftsanwendungen bereitzustellen.
Unternehmensstärke: Umfang und Größe der Anwendung erfüllen die Anforderungen einer Produktionsumgebung oder eines Internetdienstanbieters. Die Anwendung erstreckt sich in der Regel über ein gesamtes Unternehmen und integriert zahlreiche Abteilungen, Einsatzbereiche und Vorgänge in einem einzigen Softwaresystem. Die Anwendung muss hohe Dienstqualitätsanforderungen in Bezug auf die Leistung, Verfügbarkeit, Sicherheit, Zweckmäßigkeit und Skalierbarkeit erfüllen.
Verteilte Unternehmensanwendungen erfordern eine zugrunde liegende Infrastruktur von Diensten, die den verteilten Komponenten die Kommunikation untereinander, die Koordination der Arbeit, die Implementierung eines sicheren Zugriffs usw. ermöglichen. Diese Infrastrukturdienste werden von einer Hardwareumgebung aus Computern und Netzwerkverbindungen unterstützt. Diese Umgebung enthält die Hardware-Architekturen SPARC® und x86 (Intel und AMD).
In der folgenden Abbildung ist das allgemeine Ebenenschema dargestellt. Java ES stellt überwiegend die Ebene der verteilten Infrastrukturdienste bereit, die in der Abbildung dargestellt sind.
Zu den von Java ES bereitgestellten Diensten gehören:
Zugangsdienste: Über diese Dienste können Mitarbeiter, Telearbeiter, Knowledge Worker, Geschäftspartner, Lieferanten und Kunden von innerhalb und außerhalb des Unternehmensnetzwerks auf die Unternehmensressourcen zugreifen. Diese Dienste bieten Benutzer-Communities jederzeit und von beliebigen Standorten Zugriff und sorgen für personalisierte Integration, Aggregation, Sicherheit, mobilen Zugriff und Suchfunktionen.
Kommunikations- und Zusammenarbeitsdienste: Diese Dienste ermöglichen den sicheren Austausch von Informationen innerhalb verschiedener Benutzer-Communities. Im Kontext der Unternehmensumgebung des jeweiligen Benutzers stehen spezifische Funktionen, wie beispielsweise Messaging, Zusammenarbeit in Echtzeit sowie Instant Messaging und Konferenz- oder Kalenderplanungsfunktionen zur Verfügung.
Dieses Handbuch bezieht sich auf Komponenten der Sun Java Communications Suite, die von Java ES-Komponenten abhängig sind und innerhalb der Java ES-Bereitstellungsarchitektur verwendet werden. Kommunikations- und Zusammenarbeitskomponenten sind nicht in Java ES enthalten.
Netzwerkidentitäts- und Sicherheitsdienste: Diese Dienste verbessern die Sicherheit und den Schutz wichtiger Unternehmensinformationen, indem sie auf globaler Basis die Durchsetzung entsprechender Zugriffssteuerungsrichtlinien über alle Communities, Anwendungen und Dienste hinweg gewährleisten. Diese Dienste verwenden ein zentrales Repository zum Speichern und Verwalten von Identitätsprofilen, Zugriffsrechten sowie von Informationen zu Anwendungen und Netzwerkressourcen.
Webcontainer- und Anwendungsdienste: Diese Dienste sorgen dafür, dass verteilte Komponenten während der Laufzeit miteinander kommunizieren können und unterstützen die Entwicklung, Bereitstellung und Verwaltung von Anwendungen für eine Vielzahl von Servern, Clients und Geräten. Diese Dienste basieren auf J2EE-Technologie.
Java ES bietet außerdem Dienste, mit denen die Verfügbarkeit, Skalierbarkeit, Zweckmäßigkeit und weitere Anwendungs- oder Systemqualitäten verbessert werden. Zu den von Java ES bereitgestellten Dienstqualitätsfunktionen gehören:
Verfügbarkeitsdienste: Diese Dienste sorgen für eine nahezu kontinuierliche Verfügbarkeit und bieten die Anwendungs- und Infrastrukturkomponenten, die diese unterstützen.
Zugriffsdienste: Diese Dienste bieten einen internet- oder browserbasierten Zugriff auf Java ES-Dienste.
Überwachungsdienste. Diese Dienste liefern Echtzeit-Informationen zu Java ES-Komponenten.
Sie können einen oder mehrere Java ES-Dienste bereitstellen, von denen jeder mehrere Java ES-Komponenten enthalten kann.
Java ES stellt eine Integration verschiedener unabhängiger Softwareprodukte und -komponenten in einem einzigen Softwaresystem dar. Diese Integration wird durch eine Reihe von Funktionen auf Systemebene wie im Folgenden beschrieben ermöglicht:
Alle Komponenten werden mit einem Satz gemeinsam genutzter Bibliotheken synchronisiert.
Alle Java ES-Komponenten werden mithilfe eines einzigen Installationsprogramms installiert.
Alle Java ES-Komponenten können gemeinsam ein integriertes Benutzeridentitäts- und Sicherheitsverwaltungssystem nutzen.
Sämtliche Java ES-Komponenten verfügen über ein gemeinsames Überwachungs-Framework.
Diese Funktionen werden in den nachfolgenden Kapiteln dieses Buchs beschrieben. In diesem Abschnitt werden hauptsächlich die in Java ES integrierten Komponenten vorgestellt. Diese Systemkomponenten können in drei Hauptkategorien unterteilt werden, wie in der folgenden Abbildung gezeigt:
Die einzelnen Komponenten bieten folgende Dienste:
Systemdienstkomponenten: Diese Komponenten bieten die grundlegenden Java ES-Infrastrukturdienste, die für die Unterstützung verteilter Unternehmensanwendungen benötigt werden.
Dienstqualitäts- komponenten: Diese Komponenten verbessern die Verfügbarkeit, Sicherheit, Skalierbarkeit, Zweckmäßigkeit sowie andere Bereiche der Systemdienstkomponenten und verteilten Anwendungskomponenten.
Gemeinsam genutzte Komponenten: Diese Komponenten bilden die Umgebung, in der viele Systemdienst- und Dienstqualitätskomponenten ausgeführt werden.
Eine Liste der Java ES-Komponenten finden Sie unter Anhang A, Java ES-Komponenten.
Einige Java ES-Komponenten bilden die Hauptdienste für die Unterstützung verteilter Softwarelösungen. Diese Systemdienste beinhalten Zugangsdienste, Identitäts- und Sicherheitsdienste, Webcontainerdienste, J2EE-Anwendungsdienste und Persistenzdienste.
Die Systemdienstkomponenten, die diese verteilten Dienste bereitstellen und die von ihnen bereitgestellten Dienste werden in folgender Tabelle alphabetisch aufgeführt und kurz beschrieben. Jede Systemdienstkomponente ist ein Servervorgang mit mehreren Threads, der eine Vielzahl von Clients unterstützen kann. Weitere Informationen zu den einzelnen Komponenten finden Sie unterSystemdienstkomponenten.
Tabelle 1–1 Java ES-Systemdienstkomponenten
Neben den in Tabelle 1–1 gezeigten Systemdienstkomponenten enthält Java ES eine Vielzahl von Komponenten, mit denen die Qualität der von den Systemdienstkomponenten bereitgestellten Dienste verbessert wird. Dienstqualitätskomponenten können auch kundenspezifisch entwickelte Anwendungsdienste verbessern. Die Dienstqualitätskomponenten lassen sich in folgende Kategorien unterteilen:
Verfügbarkeitskomponenten
Zugriffskomponenten
Überwachungskomponenten
Verfügbarkeitskomponenten sorgen für eine nahezu kontinuierliche Systembetriebszeit von Systemdienstkomponenten und benutzerdefinierten Anwendungsdiensten. Die folgende Tabelle enthält die in Java ES enthaltenen Verfügbarkeitskomponenten und die von diesen angebotenen Dienste. Weitere Informationen zu den einzelnen Komponenten finden Sie unter Verfügbarkeitskomponenten.
Tabelle 1–2 Java ES-Verfügbarkeitskomponenten
Zugriffskomponenten bieten Front-End-Zugriff auf Systemdienste und sorgen für einen sicheren Zugriff über Internetstandorte, die sich außerhalb der Firewall des Unternehmens befinden. Neben diesen Zugriffsmöglichkeiten bieten viele auch eine Routing- und Speicherfunktion. Die folgende Tabelle enthält die in Java ES enthaltenen Zugriffskomponenten und die von diesen angebotenen Dienste. Weitere Informationen zu den einzelnen Komponenten finden Sie unter Zugriffskomponenten.
Tabelle 1–3 Java ES-Zugriffskomponenten
Java ES enthält eine neue Überwachungsfunktion, die Echtzeit-Systemstatus und anpassbare Überwachungsaufträge bereitstellt. Die Überwachung wird von Sun Java System Monitoring Console Produktkomponente implementiert, die vom Sun Java System Monitoring Framework Gemeinsam genutzte Komponente unterstützt wird. Weitere Informationen finden Sie im Abschnitt Überwachungskomponenten.
Java ES enthält eine Vielzahl an lokal installierten gemeinsam genutzten Bibliotheken, von denen viele Systemdienstkomponenten und Dienstqualitätskomponenten abhängen. Die gemeinsam genutzten Komponenten von Java ES bieten lokale Dienste für Java ES- Produktkomponenten, die auf demselben Hostcomputer ausgeführt werden.
Gemeinsam genutzte Komponenten werden oft eingesetzt, um die Portierbarkeit zwischen unterschiedlichen Betriebssystemen zu gewährleisten. Beispiele für gemeinsam genutzte Komponenten von Java ES sind unter anderem: Java 2 Platform, Standard Edition (J2SE), Netscape Portable Runtime (NSPR), Network Security Services (NSS), Java Security Services for Java (JSS) usw. Eine vollständige Liste finden Sie unter Freigegebene Komponenten.
Die gemeinsam genutzten Komponenten werden automatisch vom Java ES-Installationsprogramm entsprechend der zu installierenden Systemdienste und Dienstqualitätskomponenten installiert.
Java ES ist sowohl als einzelne End-to-End-Infrastruktur-Softwareverteilung als auch in Form von einzelnen Suite-Verteilungen verfügbar, die auf kritische Geschäftsbedürfnisse ausgelegt sind. Java ES beinhaltet sämtliche Java ES-Komponenten, während Sun Java System-Suites Teile dieser Komponenten enthält, die ausgewählt wurden, um bestimmte Bedürfnisse im Geschäftsleben zu erfüllen. Die Java ES-Installations- und Deinstallationsprogramme sind zwar in sämtlichen Suite-Verteilungen enthalten, sie sind jedoch insofern abgespeckt, dass Sie nur die Komponenten innerhalb der Suite bearbeiten. Sämtliche gemeinsam genutzten Komponenten sind auch in sämtlichen Suite-Verteilungen enthalten.
Der Inhalt der einzelnen Suite und die Geschäftsanforderungen, die jede Suite erfüllen soll, werden in folgender Tabelle aufgeführt.
Tabelle 1–4 In Sun Java Suites enthaltene Komponenten
Beim Erstellen von auf Java ES-Software basierenden Unternehmenslösungen fallen einige Standardaufgaben an. Diese Aufgaben fallen je nach Startpunkt der Einführung von Java ES und der Art der Lösung, die erstellt und bereitgestellt werden soll, unterschiedlich aus.
Dieser Abschnitt behandelt zwei Aspekte des Arbeitens mit Java ES: Den Java ES-Lösungslebenszyklus und die verschiedenen Einführungsszenarios, die in der Regel bestehen.
Die Aufgaben, die beim Erstellen von auf Java ES-Software basierenden Unternehmenslösungen anfallen, können in mehrere Phasen unterteilt werden. Diese sind in der folgenden Abbildung dargestellt. Die Abbildung zeigt außerdem, welche Kategorien von Java ES-Benutzern diese Aufgaben normalerweise durchführen.
Die in der vorherigen Abbildung gezeigten Lebenszyklusphasen können in die folgenden allgemeinen Gruppen unterteilt werden:
Bereitstellungsvorbereitung: In diesen Phasen wird ein Geschäftsbedarf in ein Bereitstellungsszenario umgesetzt, bei dem es sich um eine logische Architektur und eine Qualitätsreihe von Dienstanforderungen handelt. Das Bereitstellungsszenario dient als Spezifikation für die Konzeption einer Bereitstellungsarchitektur.
Bereitstellung: In dieser Phase wird ein Bereitstellungsszenario in eine Bereitstellungsarchitektur umgesetzt. Diese Architektur kann als Grundlage für die Genehmigung und Budgetierung des Projekts verwendet werden. Diese Bereitstellungsarchitektur ist auch die Grundlage für eine Implementierungsspezifikation, die die erforderlichen Details für die Bereitstellung (Erstellung, Testen und Einsatz) einer Softwarelösung in einer Produktionsumgebung enthält.
Bereitstellungsnachbereitung: In der Einsatzphase läuft eine bereitgestellte Lösung unter Produktionsbedingungen und wird hinsichtlich der Leistung überwacht und optimiert. Die bereitgestellte Lösung wird bei Bedarf mit neuen Funktionen aktualisiert.
Die unter Abbildung 1–3 aufgeführten Aufgaben innerhalb der einzelnen Lebenszyklusphasen sind in Kapitel 4, Java ES-Lösungslebenszyklus genauer dargestellt.
Abbildung 1–3 zeigt die Java ES-Benutzer, die üblicherweise die Aufgaben in den einzelnen Lebenszyklusphasen durchführen. Die folgende Tabelle beschreibt die Kenntnisse und den Hintergrund der einzelnen Benutzerkategorien.
Tabelle 1–5 Java ES-Benutzerkategorien für Aufgaben im Lebenszyklus
Der Unternehmensbedarf, der zur Einführung von Java ES führt, ist sehr unterschiedlich. Das übergeordnete Ziel nahezu jeder Java ES-Bereitstellung stimmt jedoch mit einem der folgenden adoption scenarios überein:
Neues System: Sie verfügen über kein Softwaresystem und beginnen mit der Bereitstellung der Java ES-Software, um eine neue Geschäftslösung zu unterstützen.
Verbesserung: Sie verfügen über eine IT-Infrastruktur und ersetzen einige oder alle Teile Ihres Systems durch Java ES-Software. Üblicherweise werden Systeme oder Subsysteme ersetzt, weil deren Erhaltung zu kompliziert, zu eingeschränkt oder zu teuer wäre. Sie können beispielsweise bessere Sicherheit, höhere Verfügbarkeit, mehr Skalierbarkeit, mehr Flexibilität, weniger Komplexität, zusätzliche Funktionen (wie Single Sign-On) oder eine bessere Nutzung von IT-Ressourcen benötigen.
Erweiterung:Sie verfügen über eine IT-Infrastruktur und stellen Java ES-Software bereit, die noch nicht Bestandteil Ihres Systems ist. Üblicherweise werden Softwaresysteme erweitert, weil neue Geschäftsanforderungen erfüllt werden müssen. Sie benötigen gegebenenfalls neue Funktionen, wie personalisierte Aggregation vorhandener Dienste über ein Java ES-Portal oder Java-Authentifizierung und -Autorisierung für vorhandene Dienste.
Aufrüstung: Sie verfügen über eine IT-Infrastruktur bestehend aus einer früheren Version von Java ES oder Sun-Produkten, die Java ES vorausgegangen sind, und nehmen eine Aufrüstung auf die aktuelle Version der Java ES-Komponenten vor.
Jedes Einführungsszenario bietet eigene Überlegungen und Herausforderungen. Abhängig von Ihrem Einführungsszenario sind die in der Lebenszyklusphase zu lösenden Probleme und die zu investierenden Ressourcen unterschiedlich, wie in Abbildung 1–3 beschrieben.
Die folgenden Punkte gelten abgestuft für die Einführungsszenarios:
Migration: Die Verbesserung oder Aufrüstung der vorhandenen Infrastruktur durch neue Software macht häufig die Migration von Daten aus vorhandenen in neue Systeme notwendig. Bei den Daten kann es sich um Konfigurations-, Benutzer- oder Anwendungsinformationen handeln. Gegebenenfalls müssen Sie aufgrund neuer Programmierschnittstellen außerdem die Geschäfts- oder Darstellungslogik migrieren.
Integration: Das Hinzufügen neuer Software zu einem vorhandenen System oder das Ersetzen von Software-Subsystemen macht häufig eine Integration der neuen Softwarekomponenten in die verbleibenden Subsysteme erforderlich. Zur Integration kann die Entwicklung neuer Schnittstellenebenen, der Einsatz von J2EE Connectoren oder Ressourcen-Adaptern, die Neukonfiguration vorhandener Komponenten sowie die Implementierung von Datentransformationsschemata gehören.
Schulung: Nahezu jede Veränderung der Infrastruktur zieht Änderungen der IT-Verfahren und der erforderlichen Kenntnisse nach sich. Ihre IT-Abteilung benötigt einen angemessenen Zeitraum, um die Kenntnisse für die neuen Java ES-Technologien zu erlangen oder die vorhandenen Kenntnisse weiterzuvermitteln.
Hardware: Wenn Sie ein vorhandenes System oder Subsystem ersetzen, können es die Unternehmensbedingungen erforderlich machen, dass vorhandene Hardware weiterverwendet wird. Abhängig von Ihrem Einführungsszenario können die Hardwareressourcen zu einem wichtigen Faktor werden.
Die folgende Tabelle fasst die Art der Punkte zusammen, die bei den einzelnen Einführungsszenarios von Java ES von Bedeutung sind.
Tabelle 1–6 Aspekte unterschiedlicher Java ES-Einführungsszenarios
In diesem Abschnitt werden die wichtigsten in diesem Kapitel verwendeten technischen Bedingungen erläutert, wobei auf die Verwendung dieser Bedingungen im Zusammenhang mit Java ES besonders eingegangen wird.
Der wesentliche Grund für die Bereitstellung von Java ES-Software, durch die die Ausgangssituation hinsichtlich der Systemsoftware und das zu erreichende Ziel beschrieben wird. Die folgenden vier Einführungsszenarios sind in Java ES vorhanden: neues System, Ersatz, Erweiterung und Aufrüstung.
Eine Softwarelogikeinheit, die zum Aufbau von verteilten Anwendungen verwendet wird. Bei einer Komponente kann es sich um eine der in Java ES enthaltenen Systemkomponenten handeln oder um eine kundenspezifische entwickelte Anwendungskomponente. Eine Anwendungskomponente entspricht normalerweise einem verteilten Komponentenmodell (z. B. CORBA und der J2EETM-Plattform) und führt eine bestimmte Computerfunktion durch. Diese Komponenten bieten einzeln oder kombiniert business services und können als web services zusammengefasst werden.
Eine Anwendung mit einer Logik, die sich über eine Netzwerk- oder Internetumgebung hinweg erstreckt (der Verteilungsaspekt) und mit einem Umfang und einer Größe, die die Anforderungen einer Produktionsumgebung oder eines Dienstanbieters erfüllen (der Unternehmensaspekt).
Eine Person, die eine verteilte Anwendung nutzt, häufig über eine grafische Benutzeroberfläche, wie die Oberfläche eines Internetbrowsers oder eines mobilen Geräts. Die Anzahl der gleichzeitig von einer Anwendung unterstützten Endbenutzer bildet einen wichtigen Faktor für die Bereitstellungs- architektur der Anwendung.
Eine Softwarefunktion, die von einem oder mehreren clients ausgeführt wird. Diese Funktion kann auf einer sehr niedrigen Ebene, beispielsweise eine Arbeitsspeicherverwaltung, oder auf hoher Ebene, beispielsweise eine Kreditüberprüfung durch einen Geschäftsdienst, dargestellt werden. Ein Dienst auf hoher Ebene kann aus einer Reihe einzelner Dienste bestehen. Die Dienste können lokal (für lokale Clients verfügbar) oder verteilt (für Remote-Clients verfügbar) sein.
Java ES Systemdienstkomponenten, durch die die Hauptinfrastrukturdienste von Java ES bereitgestellt werden und Java ES-Dienstqualitätskomponenten , durch die solche Systemdienste verbessert werden. Produktkomponenten können innerhalb des Java ES-Installationsprogramms ausgewählt werden.
Eine in Java ES enthaltene Systemkomponente. Diese Komponenten verbessern die Verfügbarkeit, Sicherheit, Skalierbarkeit, Zweckmäßigkeit sowie andere Qualitäten der Systemdienstkomponenten und verteilten Anwendungskomponenten.
Eine in Java ES enthaltene Systemkomponente. Gemeinsam genutzte Komponenten, normalerweise Bibliotheken, stellen für andere Systemkomponenten lokale Dienste bereit.
Alle Softwarepakete oder Gruppen von Paketen, die Teil von Java ES sind und vom Java ES-Installationsprogramm installiert werden. Die folgenden Arten von Systemkomponenten sind vorhanden: Produktkomponenten, die Java ES-Infrastrukturdienste bereitstellen und gemeinsam genutzte Komponenten, die lokale Dienste für andere Systemkomponenten bereitstellen.
Einer oder mehrere verteilte services, die die von einem Java ES bereitgestellten einzigartigen Funktionen definieren. Systemdienste erfordern in der Regel die Unterstützung durch eine Reihe von Dienstqualitätskomponenten, gemeinsam genutzten Komponenten oder mehrere von beiden Komponentenarten.
Eine in Java ES enthaltene Systemkomponente. Systemdienstkomponenten bilden die wesentlichen Java ES-Infrastrukturdienste von: Zugangsdiensten, Identitäts- und Sicherheitsdiensten, Web- und Anwendungsdiensten, sowie Verfügbarkeitsdiensten.