![]() | |
Sun Java Enterprise System 2005Q2 - Technischer Überblick |
Kapitel 1
Einführung in Java Enterprise SystemSun Java 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:
Wozu benötigen Sie Java Enterprise System?Die Geschäftsanforderungen von heute fordern Softwarelösungen, die über eine Netzwerk- oder Internetumgebung hinweg verteilt sind und sehr viel Leistung, Verfügbarkeit, Sicherheit, Skalierbarkeit und Zweckmäßigkeit bieten.
Java Enterprise System bietet Infrastrukturdienste, die benötigt werden, um Verteilte Unternehmensanwendungen zu unterstützen, die in der Regel folgende Merkmale aufweisen:
- Verteilt: Die Anwendung umfasst interagierende Software-Komponenten, die über eine vernetzte Umgebung hinweg bereitgestellt werden, zu der geografisch andere Standorte gehören können. Diese verteilten Komponenten, die auf den verschiedenen Computern der Umgebung ausgeführt werden, arbeiten zusammen, um spezielle Geschäftsfunktionen für die Endbenutzer 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 zugrundeliegende 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 wiederum 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 ist. Dienste von Java Enterprise System umfassen jedoch auch einige Dienste der Anwendungsebene, auf die Endbenutzer zugreifen können.
Abbildung 1-1 Erforderliche Unterstützung für verteilte Unternehmensanwendungen
Zu den von Java Enterprise System bereitgestellten Diensten gehören:
- Zugangsdienste: Über diese Dienste können Mitarbeiter, Telecommuter, 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. Diese Dienste basieren auf der Technologie der Java 2 Platform, Enterprise Edition (J2EE).
Das 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 bereitstellen, von denen jeder mehrere Java Enterprise System-Komponenten enthalten kann.
Java Enterprise System-KomponentenJava Enterprise System stellt eine Integration verschiedener unabhängiger Softwareprodukte 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 gemeinsam genutzter Bibliotheken synchronisiert.
- Alle Java Enterprise System-Komponenten werden mithilfe eines einzigen Installationsprogramms installiert.
- Alle Java Enterprise System-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 Systemkomponenten können, wie in der folgenden Abbildung dargestellt, in drei Hauptkategorien unterteilt werden:
- Systemdienstkomponenten: Diese Komponenten bieten die wesentlichen Java Enterprise System-Infrastrukturdienste für verteilte Unternehmensanwendungen.
- Dienstqualitätskomponenten: Diese Komponenten verbessern die Verfügbarkeit, Sicherheit, Skalierbarkeit, Zweckmäßigkeit sowie weitere Qualitäten von Systemdienstkomponenten und verteilten Anwendungskomponenten.
- Gemeinsam genutzte Komponenten: Diese Komponenten bilden die Umgebung, in der viele Systemdienst- und Dienstqualitätskomponenten laufen.
Abbildung 1-2 Kategorien von Java Enterprise System-Komponenten
Systemdienstkomponenten
Einige Java Enterprise System-Komponenten bilden die Hauptdienste für die Unterstützung verteilter Softwarelösungen. Zu diesen Systemdiensten gehören Zugangsdienste, Kommunikations- und Zusammenarbeitsdienste, Identitäts- und Sicherheitsdienste, Webcontainerdienste und J2EE-Anwendungsdienste.
Die folgende Tabelle enthält eine kurze Beschreibung der Systemdienstkomponenten, die diese verteilten Dienste bereitstellen und der von diesen angebotenen Dienste. Jede Systemdienstkomponente ist ein Servervorgang mit mehreren Threads, der eine Vielzahl von Clients unterstützen kann. Weitere Details zu den einzelnen Komponenten finden Sie unter Beschreibungen der Systemdienstkomponenten.
Dienstqualitätskomponenten
Neben den in der Tabelle 1-1 aufgeführten Systemdienstkomponenten enthält das Java Enterprise System einige Komponenten, die die Qualität der von Systemdienstkomponenten oder von durch kundenspezifisch entwickelte Anwendungskomponenten angebotenen Dienste verbessern. Diese Dienstqualitätskomponenten fallen in folgende Kategorien:
Verfügbarkeitskomponenten
Verfügbarkeitskomponenten sorgen für eine nahezu kontinuierliche Systembetriebszeit von Systemdienstkomponenten und Anwendungskomponenten. Die folgende Tabelle enthält die in Java Enterprise System enthaltenen Komponenten und die von diesen angebotenen Dienste. Weitere Details zu den einzelnen Komponenten finden Sie unter Beschreibung der Verfügbarkeitskomponenten.
Zugriffskomponenten
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 zeigt die in Java Enterprise System enthaltenen Komponenten und die von diesen angebotenen Dienste. Weitere Details zu den einzelnen Komponenten finden Sie unter Beschreibung der Zugriffskomponenten.
Verwaltungskomponenten
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 Details zu den einzelnen Komponenten finden Sie unter Beschreibung der Verwaltungskomponenten.
Gemeinsam genutzte Komponenten
Java Enterprise System enthält einige lokal installierte gemeinsam genutzte Bibliotheken, von denen viele Systemdienstkomponenten und Dienstqualitätskomponenten abhängen. Java Enterprise System Gemeinsam genutzte Komponenten bieten lokale Dienste für Java Enterprise System-Komponenten, die auf demselben Hostcomputer laufen.
Gemeinsam genutzte Komponenten werden oft eingesetzt, um die Portierbarkeit zwischen unterschiedlichen Betriebssystemen zu gewährleisten. Beispiele für gemeinsam genutzte Komponenten von Java Enterprise System sind u. a.: Java 2 Platform, Standard Edition (J2SE-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.
Arbeiten mit Java Enterprise SystemBeim Erstellen von auf Java Enterprise System-Software basierenden Unternehmenslösungen fallen einige Standardaufgaben an. Diese Aufgaben sind, abhängig Startpunkt des Einsatzes von Java Enterprise System und von der Art der Lösung, die Sie erstellen und bereitstellen wollen, unterschiedlich aufwändig und unterschiedlich schwierig.
Dieser Abschnitt behandelt zwei Aspekte des Arbeitens mit Java Enterprise System: Den Java Enterprise System-Lösungslebenszyklus und die verschiedenen Einsatzszenarios, die in der Regel bestehen.
Java Enterprise System Lösungslebenszyklus
Die Aufgaben, die beim Erstellen von auf Java Enterprise System-Software basierenden Unternehmenslösungen anfallen, können in mehrere Phasen unterteilt werden, die in Abbildung 1-3 dargestellt sind. 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 übersetzt: 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 übersetzt. 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 eingehender vorgestellt im Kapitel 4, „Aufgaben des Lösungslebenszyklus von Java Enterprise System.“
Abbildung 1-3 Phasen des Lebenszyklus einer Lösung und Benutzerkategorien
Abbildung 1-3 zeigt die Java Enterprise System-Benutzer, die üblicherweise die für die Lebenszyklusphase angegebenen Aufgaben durchführen. Wenn Sie mit Java Enterprise System 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.
Java Enterprise System Einführungsszenarien
Der Unternehmensbedarf, der zur Einführung von Java Enterprise System führt, ist sehr unterschiedlich. Das höchste Ziel nahezu jeder Java Enterprise System-Bereitstellung passt allerdings zu einem wie folgt aussehenden Einführungsszenario:
- Neues System: Sie besitzen noch kein Softwaresystem und beginnen mit der Bereitstellung der Java Enterprise System-Software, um eine neue Geschäftslösung zu unterstützen.
- Verbesserung: Sie besitzen eine IT-Infrastruktur und ersetzen einige oder alle Teile Ihres Systems durch Java Enterprise System-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 besitzen eine IT-Infrastruktur und beginnen mit der Bereitstellung von Java Enterprise System-Software, die in Ihrem System nicht vorhanden 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 Enterprise System-Portal oder Java-Authentifizierung und -Autorisierung für vorhandene Dienste.
- Aufrüstung: Sie besitzen eine IT-Infrastruktur, die aus einer früheren Version von Java Enterprise System oder aus früheren Sun-Produkten besteht, und nehmen eine Aufrüstung auf die aktuellste Version der Java Enterprise System-Komponenten vor.
Jedes Einführungsszenario bietet eigene Aspekte und Herausforderungen. Unabhängig davon, welches Szenario Ihre Situation kennzeichnet, der in Abbildung 1-3 gezeigte Prozess des Lösungslebenszyklus zutrifft. 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 führt oft dazu, dass Sie neue Softwarekomponenten in die verbleibenden Subsysteme integrieren müssen. 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 führt zu Änderungen der IT-Verfahren und der notwendigen Kenntnisse. 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 Enterprise System von Bedeutung sind.
Tabelle 1-6 Aspekte unterschiedlicher Java ES-Einführungsszeanrien
Einführungsszenarien
Migration
Integration
Schulung
Hardware
Neues System
Nicht zutreffend
Relativ einfache Integration neuer Komponenten
Normalerweise ein wichtiger Aspekt
Ausgleich zwischen Ausrüstungskosten und Arbeitskosten.1
Verbesserung
Kann ein bedeutender Aspekt sein
Neue Komponenten müssen in vorhandene Systeme integriert werden
Kann ein wichtiger Aspekt sein
Kann wegen vorhandener Anlagen zu signifikanten Einschränkungen führen
Erweiterung
Üblicherweise kein Aspekt
Gegebenenfalls müssen neue Komponenten in vorhandene Systeme integriert werden
Gegebenenfalls ein wichtiger Aspekt
Macht üblicherweise neue Hardware notwendig, mit denselben Abwägungen wie bei einem neuen System
Aufrüstung
Kann ein wichtiger Aspekt sein
Relativ einfache Integration aufgerüsteter Komponenten
Relativ unwesentlicher Aspekt
Relativ unwesentlicher Aspekt
1Der Einsatz einiger leistungsstarker Computer erhöht im Allgemeinen die Anlagekosten, wenn weniger IT-Ressourcen benötigt werden. Der Einsatz vieler kleiner Computer senkt im Allgemeinen die Anlagekosten, wenn mehr IT-Ressourcen benötigt werden.
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.
Einführungsszenario Der wesentliche Grund für die Bereitstellung der Java Enterprise System-Software, zusammen mit den Merkmalen des Softwaresystems, mit dem Sie beginnen und dem von Ihnen gewünschten Ziel. Es gibt vier grundlegende Einführungsszenarien für Java Enterprise System: Neues System, Erneuerung, Erweiterung und Aufrüstung.
Komponente Eine Softwarelogikeinheit, die zum Aufbau von verteilten Anwendungen verwendet wird. Bei einer Komponente kann es sich um eine der im Java Enterprise System enthaltenen Systemkomponenten oder um eine kundenspezifisch entwickelte Anwendungskomponente handeln. Eine Anwendungskomponente entspricht in der Regel einem Modell verteilter Komponenten (wie CORBA und die J2EE-Plattform). Sie führt bestimmte Datenverarbeitungsfunktionen durch. Einzeln oder kombiniert bieten diese Komponenten Geschäftsdienste und können zu Webdiensten zusammengefasst werden.
Verteilte Unternehmensanwendung 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).
Endbenutzer Ein Mitarbeiter, der 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 Bereitstellungsarchitektur der Anwendung.
Dienst Eine Softwarefunktion, die für einen oder mehrere Clients ausgeführt wird. Diese Funktion kann sich auf einer sehr niedrigen oder einer sehr hohen Ebene befinden, wie beispielsweise eine Kreditüberprüfung durch einen Geschäftsdienst. Ein auf hoher Ebene liegender Dienst kann aus einer ganzen Reihe einzelner Dienste bestehen. Die Dienste können lokal (für lokale Clients verfügbar) oder verteilt (für Remote-Clients verfügbar) sein.
Dienstqualitätskomponente Eine der in Java Enterprise System enthaltenen Arten von Systemkomponenten. Wartungskomponenten, die Zugriffs- und Verwaltungskomponenten enthalten, bieten Unterstützung für Systemdienstkomponenten.
Gemeinsam genutzte Komponente Eine der in Java Enterprise System enthaltenen Arten von Systemkomponenten. Gemeinsam genutzte Komponenten, in der Regel Bibliotheken, bieten lokale Dienste für andere Systemkomponenten. Im Gegensatz dazu stellt eine Systemdienstkomponente verteilte Infrastrukturdienste für andere Systemkomponenten (oder für Anwendungskomponenten) bereit.
Systemkomponente 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: Systemdienstkomponenten, die verteilte Infrastruktur-Dienste bieten, Dienstqualitätskomponenten, die die Systemdienstkomponenten durch Zugriffs- und Verwaltungsdienste unterstützen, und Gemeinsam genutzte Komponenten, die lokale Dienste für andere Systemkomponenten bieten.
Systemdienst Einer oder mehrere verteilte Dienste, die die von einem Java Enterprise System bereitgestellten einzigartigen Funktionen definieren. Systemdienste erfordern in der Regel die Unterstützung durch eine Reihe von Dienstqualitätskomponenten, Gemeinsam genutzte Komponenten oder mehrere von beiden.
Systemdienstkomponente Eine der in Java Enterprise System enthaltenen Arten von Systemkomponenten. Systemdienstkomponenten bilden die wesentlichen Infrastrukturdienste von Java Enterprise System: Zugangsdienste, Kommunikations- und Zusammenarbeitsdienste, Identitäts- und Sicherheitsdienste, Web- und Anwendungsdienste sowie Verfügbarkeitsdienste.