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 in diesem Buch als verteilte Unternehmensanwendungen bezeichnet.
Java Enterprise System ist gleichzeitig eine Sun-Softwareversion und eine Zustellungsmethode sowie eine Geschäfts- und Preisstrategie. Der Schwerpunkt dieses Buchs liegt jedoch auf den Softwarekomponenten von Java Enterprise System und den dadurch bereitgestellten Diensten.
In diesem Kapitel werden das Java Enterprise System und die Aufgaben vorgestellt, die bei Verwendung des Systems ausgeführt werden. Es deckt folgende Themen ab:
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 Enterprise System bietet Infrastrukturdienste, die benötigt werden, um distributed enterprise applications zu unterstützen, das heißt, Anwendungen, die in der Regel folgende Merkmale aufweisen:
Verteilt. Die Anwendung besteht aus interagierenden Software- components, 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 services, die den verteilten Komponenten die Kommunikation untereinander, die Koordination der Arbeit, die Implementierung eines sicheren Zugriffs usw. ermöglichen. Diese Infrastrukturdienste werden ihrerseits 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 Enterprise System stellt überwiegend die Ebene der verteilten Infrastrukturdienste bereit, die in Abbildung 1–1 dargestellt sind. Dienste von Java Enterprise System umfassen jedoch auch einige Dienste der Anwendungsebene, auf die Endbenutzer zugreifen können.
Zu den von Java Enterprise System 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.
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äte. Die Dienste basieren auf der Enterprise Edition (J2EETM)-Technologie für die Java 2-Plattform.
Java Enterprise System bietet außerdem Dienste, mit denen die Verfügbarkeit, Skalierbarkeit, Zweckmäßigkeit und weitere Anwendungs- oder Systemqualitäten verbessert werden. Zu den von Java Enterprise System 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 Enterprise System-Dienste.
Verwaltungsdienste. Diese Dienste unterstützen die Wartung und Leistungsregulierung der von Java Enterprise System unterstützten Anwendungen.
Sie können einen oder mehrere Java Enterprise System-Dienste bereitstellten, von denen jeder mehrere Java Enterprise System-Komponenten enthalten kann.
Java Enterprise System stellt eine Integration verschiedener unabhängiger Softwareprodukte und -komponenten in einem einzigen Softwaresystem dar. Die Komponenten dieses Systems wurden zusammen getestet, um volle Interoperabilität zu gewährleisten. Die Integration der Komponenten wird durch eine Reihe von Funktionen auf Systemebene ermöglicht:
Alle Komponenten werden mit einem Satz gemeinsamer 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.
Diese Funktionen werden in den nachfolgenden Kapiteln dieses Buchs beschrieben. In diesem Abschnitt werden hauptsächlich die verschiedenen in Java Enterprise System integrierten Komponenten vorgestellt. Diese system components können in drei Hauptkategorien unterteilt werden, wie in der folgenden Darstellung gezeigt:
Systemdienstkomponenten. Diese Komponenten bieten die grundlegenden Java Enterprise System-Infrastrukturdienste, die für die Unterstützung verteilter Unternehmensanwendungen benötigt werden.
Dienstqualitätskomponenten. 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.
Einige Java ES-Komponenten bilden die Hauptdienste für die Unterstützung verteilter Softwarelösungen. Zu diesen system services gehören Zugangsdienste, Kommunikations- und Zusammenarbeitsdienste, Identitäts- und Sicherheitsdienste, Webcontainerdienste sowie J2EE-Anwendungsdienste.
Die folgende Tabelle enthält eine kurze Beschreibung der system service components, die diese verteilten Dienste bereitstellen, und der von diesen Diensten angebotenen Dienste. Jede Systemdienstkomponente ist ein Servervorgang mit mehreren Threads, der eine Vielzahl von Clients unterstützen kann. Weitere Informationen zu den einzelnen Komponenten finden Sie unterBeschreibungen der Systemdienstkomponenten.
Tabelle 1–1 Java ES-Systemdienstkomponenten
Neben den in Tabelle 1–1 gezeigten Systemdienstkomponenten enthält Java Enterprise System 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 service quality components lassen sich in folgende Kategorien unterteilen:
Verfügbarkeitskomponenten
Zugriffskomponenten
Verwaltungskomponenten
Verfügbarkeitskomponenten sorgen für eine nahezu kontinuierliche Systembetriebszeit von Systemdienstkomponenten und benutzerdefinierten Anwendungsdiensten. Die folgende Tabelle enthält die in Java Enterprise System enthaltenen Verfügbarkeitskomponenten und die von diesen angebotenen Dienste. Weitere Informationen zu den einzelnen Komponenten finden Sie unter Beschreibung der Verfügbarkeitskomponenten.
Tabelle 1–2 Java ES-Verfügbarkeitskomponenten
Komponente |
Bereitgestellte Verfügbarkeitsdienste |
---|---|
Bietet Hochverfügbarkeits- und Skalierbarkeitsdienste für Java Enterprise System und für die Anwendungen, die basierend auf der Java Enterprise System-Infrastruktur ausgeführt werden, sowie für die Hardwareumgebung, in der beide bereitgestellt werden. |
|
Bietet einen Datenspeicher, der Anwendungsdaten, insbesondere Sitzungsstatusdaten, auch im Fehlerfall verfügbar macht. |
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-Funktion. Die folgende Tabelle enthält die in Java Enterprise System enthaltenen Zugriffskomponenten und die von diesen angebotenen Dienste. Weitere Informationen zu den einzelnen Komponenten finden Sie unter Beschreibung der Zugriffskomponenten.
Tabelle 1–3 Java ES-Zugriffskomponenten
Komponente |
Bereitgestellte Zugriffsdienste |
---|---|
Bietet Sicherheitsdienste für Directory Server von außerhalb der Unternehmens-Firewall. Directory Proxy Server bietet Verzeichniszugriffssteuerung und Routing für mehrere Directory Server-Instanzen. |
|
Sun Java System Web Proxy Server |
Übernimmt Cache- und Filterfunktionen sowie die Verteilung von Webinhalt sowohl für ausgehende als auch für eingehende Internetanforderungen. |
Sun Java System Communications Express |
Bietet, je nach Konfiguration, webbasierten Zugriff auf Messaging Server, Calendar Server und Directory Server. |
Bietet sicheren Internetzugriff von außerhalb der Unternehmens-Firewall auf den Inhalt und die Dienste von Portal Server, einschließlich interner Portale. |
|
|
|
Bietet Desktop-Clients, die Microsoft Outlook nutzen, eine Schnittstelle zu Messaging Server und Calendar Server. |
Verwaltungskomponenten bieten Verwaltungsfunktionen für Systemdienste, wie Konfiguration und Überwachung. Die folgende Tabelle enthält die in Java Enterprise System enthaltenen Verwaltungskomponenten und die von diesen angebotenen Dienste. Weitere Informationen zu den einzelnen Komponenten finden Sie unter Beschreibung der Verwaltungskomponenten.
Tabelle 1–4 Java ES-Verwaltungskomponenten
Komponente |
Bereitgestellte Verwaltungsdienste |
---|---|
Bietet ein grafisches Verwaltungstool für die Konfiguration und Verwaltung von Directory Server und Messaging Server. |
|
Bietet ein Skript für die Konfiguration von Directory Server mit dem Schema, das benötigt wird, damit Benutzer auf Messaging Server und Calendar Server zugreifen können. |
|
Bietet Tools für die Befehlszeile und die Benutzeroberfläche, mit denen Benutzer Einträge in Directory Server mit den von Messaging Server und Calendar Server benötigten Benutzerattributen auffüllen können. |
Java Enterprise System enthält eine Vielzahl an lokal installierten gemeinsam genutzten Bibliotheken, von denen viele Systemdienstkomponenten und Dienstqualitätskomponenten abhängen. Die shared components von Java ES bieten lokale Dienste für Java ES-Komponenten, 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 Java Enterprise System-Komponenten: Java 2 Platform, Standard Edition (J2SETM-Plattform), Netscape Portable Runtime (NSPR), Network Security Services (NSS), Network Security Services for Java (JSS) usw. Eine vollständige Liste finden Sie unter Gemeinsam genutzte Komponenten.
Die gemeinsam genutzten Komponenten werden automatisch vom Java ES-Installationsprogramm entsprechend der zu installierenden Systemdienste und Dienstqualitätskomponenten installiert.
Beim Erstellen von auf Java Enterprise System-Software basierenden Unternehmenslösungen fallen einige Standardaufgaben an. Diese Aufgaben fallen je nach Startpunkt der Einführung von Java Enterprise System und der Art der Lösung, die erstellt und bereitgestellt werden soll, unterschiedlich aus.
Dieser Abschnitt behandelt zwei Aspekte des Arbeitens mit Java Enterprise System: Den Java Enterprise System-Lösungslebenszyklus und die verschiedenen Einführungsszenarien, 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 Abbildung 1–3 dargestellt. Die Abbildung zeigt außerdem, welche Kategorien von Java Enterprise System-Benutzern diese Aufgaben normalerweise durchführen.
Die in Abbildung 1–3 gezeigten Lebenszyklusphasen können in folgende allgemeine Gruppen unterteilt werden:
Bereitstellungsvorbereitung. In dieser Phase wird eine Unternehmensanforderung in ein Bereitstellungsszenario übertragen: Eine logische Architektur und einen Satz von Dienstqualitätsanforderungen. 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.
Der Lösungslebenszyklus und die in jeder Phase anfallenden Aufgaben (siehe Abbildung 1–3) werden in Kapitel 4, Aufgaben des Lösungslebenszyklus von Java Enterprise System eingehend erläutert.
Abbildung 1–3 zeigt die Java ES-Benutzer, die üblicherweise die Aufgaben in den einzelnen Lebenszyklusphasen durchführen. Wenn Sie mit Java ES arbeiten, sollte Ihre Funktion einer oder mehreren der Benutzerkategorien entsprechen, die in Abbildung 1–3 aufgeführt sind. Die folgende Tabelle beschreibt die Kenntnisse und den Hintergrund der einzelnen Benutzerkategorien.
Tabelle 1–5 Java ES-Benutzerkategorieren 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 Enterprise System-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. Anders ausgedrückt: Sie wünschen sich eine bessere Investitionsrentabilität, als es Ihr vorhandenes System bietet.
Erweiterung.Sie verfügen über eine IT-Infrastruktur und stellen Java Enterprise System-Software bereit, die noch nicht Bestandteil Ihres Systems ist. Üblicherweise werden Softwaresysteme auf diese Art 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 Enterprise System oder Sun-Produkten, die Java Enterprise System vorausgegangen sind, und nehmen eine Aufrüstung auf die aktuelle Version der Java Enterprise System-Komponenten vor.
Jedes Einführungsszenario bietet eigene Aspekte und Herausforderungen. Der in Abbildung 1–3 gezeigte Lösungslebenszyklus kommt unabhängig davon, welches Einführungsszenario auf Ihre Situation zutrifft, zur Anwendung. Abhängig von Ihrem Einführungsszenario sind die in der Lebenszyklusphase zu lösenden Probleme und die zu investierenden Ressourcen jedoch unterschiedlich.
Die folgenden Punkte gelten abgestuft für die Einführungsszenarien:
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 Enterprise System-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ührungsszenarien von Java ES von Bedeutung sind.
Tabelle 1–6 Aspekte unterschiedlicher Java ES-Einführungsszenarien
Dieser 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.
Der wesentliche Grund für die Bereitstellung von Java Enterprise System-Software, der durch die Ausgangssitutation hinsichtlich der Systemsoftware und das zu erreichende Ziel gekennzeichnet ist. Es gibt vier grundlegende Java Enterprise System-Einführungsszenarien: 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 Enterprise System enthaltenen system components handeln oder um eine kundenspezifische entwickelte Anwendungs- komponente. Eine Anwendungskomponente entspricht normalerweise einem verteilten Komponentenmodell (z. B. CORBA und der J2EETM-Plattform) und führt bestimmte Computerfunktionen durch. Diese Komponenten bieten einzeln oder kombiniert business services und können als web services zusammengefasst werden.
Eine Anwendung, deren Logik sich über eine Netzwerk- oder Internetumgebung hinweg erstreckt (der Verteilungsaspekt) und deren Umfang und Größe 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 dieBereitstellungs- 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 dargestellt werden, beispielsweise eine Kreditüberprüfung durch einenGeschäftsdienst. 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.
Eine der in Java Enterprise System enthaltenen Arten von system components. Komponenten verbessern die Verfügbarkeit, Sicherheit, Skalierbarkeit, Zweckmäßigkeit sowie andere Bereiche der Systemdienstkomponenten und verteilten Anwendungskomponenten.
Eine der in Java Enterprise System enthaltenen Arten von system components. Gemeinsam genutzte Komponenten, normalerweise Bibliotheken, stellen für andere Systemkomponenten lokale Dienste bereit. Im Gegensatz dazu stellt eineSystemdienstkomponente verteilte Infrastrukturdienste für andere Systemkomponenten (oder fürapplication components bereit).
Alle Softwarepakete oder Gruppen von Paketen, die Teil von Java Enterprise System sind und vom Java Enterprise System-Installationsprogramm installiert werden. Es gibt verschiedene Arten von Systemkomponenten: system service components, die verteilte Infrastrukturservices bieten, service quality components, die die Systemdienstkomponenten durch Zugriffs- und Verwaltungsdienste unterstützen, und shared components, die lokale Dienste für andere Systemkomponenten bieten.
Einer oder mehrere verteilte services, die die die von einem Java Enterprise System bereitgestellten einzigartigen Funktionen definieren. Systemdienste erfordern in der Regel die Unterstützung durch eine Reihe von service quality components, shared components oder mehrere von beiden Komponentenarten.
Eine oder mehrere der in Java Enterprise System enthaltenen Arten von system components. Systemdienstkomponenten bilden die wesentlichen Infrastrukturdienste von Java Enterprise System: Zugangsdienste, Kommunikations- und Zusammenarbeitsdienste, Identitäts- und Sicherheitsdienste, Web- und Anwendungsdienste sowie Verfügbarkeitsdienste.