380 likes | 654 Views
J2EE. Java2 Enterprise Edition René Noack Mai 2003. J2EE – Java2 Enterprise Edition. Überblick: Einordnung J2EE J2EE Architektur EJB (Enterprise JavaBeans) JNDI ( Java Naming and Directory Interface ). J2EE – Java2 Enterprise Edition Einordnung J2EE. J2SE Java2 Standard Edition
E N D
J2EE Java2 Enterprise Edition René Noack Mai 2003
J2EE – Java2 Enterprise Edition Überblick: • Einordnung J2EE • J2EE Architektur • EJB (Enterprise JavaBeans) • JNDI (Java Naming and Directory Interface)
J2EE – Java2 Enterprise EditionEinordnung J2EE • J2SE Java2 Standard Edition • Kern der Java Plattform(Applets, implementierte Java-Anwendungen) • J2ME Java2 Micro Edition • Zusatzfunktionen für eingebettete Systeme • Reduktion von Sprach- & Funktionsumfang von Java • J2EE Java2 Enterprise Edition • Funktionen von J2SE • + Schnittstellen (APIs) für den Einsatzin Mehrschichtenarchitekturenund für Serveranwendungen
J2EE – Java2 Enterprise EditionEinordnung J2EE • Entwicklung durch Herstellerkonsortium(IBM, Oracle, BEA,…) • Weiterentwicklung durch Java Community Process (JCP) • Implementierungen • IBM WebSphere • BEA WebLogic • Sun One (Sun besitzt Referenzimplementierung)
J2EE – Java2 Enterprise EditionEinordnung J2EE • Eigenschaften von J2EE: • Komponenten – orientiert • Netzwerk – orientiert • Web – Browser ist primäres User – Interface • RMI, für die Realisierung entfernter Methodenaufrufe • verteilte Anwendungen möglich • Programmiersprache Java
J2EE – Java2 Enterprise EditionEinordnung J2EE • weitere Eigenschaften von J2EE: • Plattformunabhängigkeit (durch Java) • Herstellerunabhängigkeit (Java – Spezifikation) • Integration bestehender Konzepte(Servlets, JavaServerPages (JSP), EJB, …) • besser handhabbar als CORBA (geringere Komplexität) • 3 – Tier – Architektur
J2EE – Java2 Enterprise EditionJ2EE Architektur 3 – Tier – Architektur Client – Schicht Anwendungs- schicht (Middleware) Datenablage- schicht Client Client Client Enterprise JavaBeans Middleware – Komponenten Datenablage Datenablage
J2EE – Java2 Enterprise EditionJ2EE Architektur J2EE – Komponenten J2EE Server Client – Container Web – Container EJB - Container Enterprise Bean Servlet Enterprise Bean JSP - Datei Enterprise Bean
J2EE – Java2 Enterprise EditionJ2EE Architektur Beispiel für die Kommunikation zwischen den Containern: • Browser (Client - Container) greift auf Servlet bzw. JavaServerPages (JSP) im Web – Container zu • Servlets bzw. JSP besitzen Geschäftslogik • Für die Umsetzung sind u.U. Rückgriffe auf EJB – Methoden notwendig, die sich im EJB – Container befinden. • Die Rückgabewerte der EJB – Methoden erhält der Web – Container. • Web – Container leitet Ergebnis zurück zum Browser (Client – Container)
J2EE – Java2 Enterprise EditionJ2EE Architektur Client – Container • beinhaltet Java Applet, Java Applikationen, HTML – Browser sowie die Kombination des Genannten • greifen Java – basierende Client – Applikationen auf Enterprise JavaBeans zu, so existiert beim Client eine EJB – Container spezifische Bibliothek • Bibliothek enthält Details zur Kommunikation mit dem Server
J2EE – Java2 Enterprise EditionJ2EE Architektur Web – Container • Laufzeitumgebung für Servlets bzw. JSP • dynamische Webinhalte möglich • Anforderung dafür: Unterstützung HTTP (bei Bedarf HTTPS) • Transport von Requests und Antworten • Verwaltung der Servlet – Instanzen (Lebenszyklen)
J2EE – Java2 Enterprise EditionJ2EE Architektur Web – Container Servlets: • Webkomponenten zur Erzeugung dynamischer Dokumente auf dem Server (meist HTML) • Verwaltung erfolgt durch Server • Requests werden formatiert und zu Servlet geleitet • Ausgabe des Servlets wird gelesen und zum Aufrufer gesendet • Servlet schreibt Ausgabe in übergebenes Objekt • ungeeignet für die Erzeugung komplexer Seiten
J2EE – Java2 Enterprise EditionJ2EE Architektur Web – Container JavaServerPages (JSP): • Erweiterung des Servlet – Konzeptes • Trennung von Struktur & Layout durch JSP – Tags • Server erkennt JSPs an URL • Ersetzung der JSP – Tags vor Versenden zum Client • intern: Umwandlung JSP zu Servlet
J2EE – Java2 Enterprise EditionJ2EE Architektur EJB – Container Aufgaben: • Laufzeitumgebung für EJBs • Dienstanbieter (Transaktions- / Sicherheitsdienst) • Dienste durch aufrufenden Client und EJBs nutzbar • Delegation von Anfragen an EJB / Antworten einer EJB an den Client • Bean kommuniziert mit dem Container, nicht mit dem Server
J2EE – Java2 Enterprise EditionJ2EE Architektur EJB – Container Aufgaben: • Transparenz für den Benutzer sichern • Verwaltung der Lebenszyklen der EJBs • Gewährleistung der persistenten Datenhaltung • Koordination von Transaktionen • Bereitstellung von Sicherheitsmechanismen
J2EE – Java2 Enterprise EditionJ2EE Architektur EJB – Container Leistung: • Namens- & Verzeichnisdienst • Thread-, Prozessmanagement, damit Nebenläufigkeit erreicht wird (betrifft: Dienste, EJB, EJB - Container) • Zugriff auf Zusatzressourcen (Bsp.: Datenbanken) • Clustering und Lastverteilung
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Enterprise Java Beans JavaBeans: • hauptsächlich visuelle Konstruktion wiederverwendbarer Komponenten Enterprise JavaBeans: • verteilte, transaktionsgesteuerte, sichere, skalierbare, portable, serverseitige Java – Applikation realisierbar • durch EJB – Container transparente Dienstnutzung
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Anforderungen an moderne Anwendungen • logisch und räumlich verteilbar • Handhabung umfangreicher Datenmengen(nebenläufiger Zugriff) • Datenmanipulation innerhalb von Transaktionen • Sicherheit bzw. Zugriffsschutz
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Test, der Eignung von EJBs • Muss Architektur auf weltweit anerkannten Standards basieren? • Muss Anwendung auf unterschiedlichste Datenquellen zugreifen können und Transaktionen unterstützen? • Soll nebenläufiger Zugriff möglich sein? • Ist Zugriffsschutz erforderlich?
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) EJB - Eigenschaften: • serverseitige Komponenten • ermöglichen Logik-Implementierung einer Anwendung • Ablauf in spezieller Laufzeit – Umgebung • Dienste des EJB – Containers explizit oder implizit nutzbar (Persistenz, Sicherheit, …)
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) EJB - Eigenschaften: • EJB – Instanzen werden zur Laufzeit vom EJB – Container erzeugt und verwaltet • EJB anpassbar durch Modifikation der Umgebungsvariablen während der Laufzeit • Zugriff durch Client wird durch EJB – Container vermittelt • Bean Entwickler legt Sicht auf EJB fest
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Local Interface vs. Remote Interface • viele Anwendungen erfordern Komm. zwischen EJBs • oft im gleichen Adressraum • Version 1.1 • Remote – Aufruf trotz eigenem Adressraum • RMI – Overhead überflüssig • Seit Spezifikation 2.0 • Kommunikation des Clients über Local – Interface möglich
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Local Interface vs. Remote Interface Local Interface Remote Interface - - ortstransparent - Call by Reference - Call by Value - ohne RMI - RMI - nur bei gleichem Adressraum - immer verwendbar - verminderter Overhead - - bessere Performanz für - lokale Aufrufe
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Arten von Enterprise JavaBeans Enterprise JavaBean Session Bean Entity Bean Message Driven Bean Stateless Stateful Container Managed Persistence Bean Managed Persistence
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Session Bean: • wird für einen Client exklusiv ausgeführt • kann innerhalb einer Transaktion ausgeführt werden • repräsentiert nicht direkt Geschäftsdaten, aber kann diese ändern, z.B. mittels DB-Zugriffen über JDBC • Lebensdauer entspricht Sitzungsdauer
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Stateless – Session Bean: • Methodenaufrufe entkoppelt • zu verarbeitende Daten müssen explizit übergeben werden • Stateless – Session Beans gleichen Typs besitzen gleiche Identität
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Stateful – Session Bean: • Zugriff auf Daten eines vorangegangenen Methodenaufrufs möglich • zu verarbeitende Daten können explizit übergeben werden • Stateful – Session Beans gleichen Typs besitzen unterschiedliche Identitäten
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Entity Bean: • stellt Daten einer Datenbasis als Objekt dar • kann gleichzeitig durch mehrere Clients genutzt werden • kann innerhalb von Transaktionen ausgeführt werden • Lebensdauer ist an die Bestandsdauer der Daten in der Datenbank geknüpft
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Entity Bean: Container Managed Persistence: • EJB – Container übernimmt die Sicherung eines Zustandes einer Entity - Bean Bean Managed Persistence: • Bean – Entwickler implementiert das Management der Persistenzierung selbst
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Message Driven Bean: • zustandslos, asynchron, gedächtnislos • angesprochen durch Nachrichten • Nachrichtenzustellung erfolgt, sobald EJB – Container Nachricht aus JMS – Warteschlange od. Topic erhält • Lebensdauer: solange onMessage() ausgeführt wird
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Persistenz: • EJB – Container ermöglicht DB – Zugriff über JNDI • Beans können selbst für Persistenz sorgen • automatische Persistenz durch EJB – Container • Enterprise Bean unabhängig vom vorh. Persistenzmedium • transparente Persistenz • Entwicklung von EJB – Containern mit Zugriff auf andere Anwendungssysteme
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Transaktionen: • Spezifikation unterstützt flache Transaktionen • Nutzung durch direkte Kommunikation mit Dienst über Java Transaction API (JTA) • Deklarative Transaktionen • Bei Installation von Entity Bean werden ausgewählte Methoden Transaktionen zugeordnet • EJB – Container sorgt für Einhaltung • Bean unangetastet
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Messaging: • seit Version 2.0 Einbindung von Messaging – Dienst über JMS API vorgeschrieben • durch EJB asynchron, parallel • Enterprise Beans und Clients können Nachrichten versenden • jeder Client kann Nachrichten asynchron senden und / oder empfangen (Sender + Empfänger anonym)
J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans) Sicherheit: • bestimmt durch Systemadmin. und Bean – Installateur • Umsetzung durch EJB – Container • Benutzerrollen / Benutzerrechte definierbar • zur Laufzeit Test Rolle / Rechte durch EJB – Container • auch Authentifizierung und sichere Komm. möglich
J2EE – Java2 Enterprise EditionJNDI (Java Naming and Directory Interface) JAVA Naming and Directory Interface • Mechanismus zum Auffinden von J2EE Komponentenbzw. Schnittstelle zum Ansprechen von Namens- &Verzeichnisdiensten Namensdienst: • Binding • Referenzen auf entfernte Objekte bilden • Namen wählen • an definiertem Platz hinterlegen • Lookup • Wiederfinden von (an Namensdienst) gebundenen Objekten
J2EE – Java2 Enterprise EditionJNDI (Java Naming and Directory Interface) JAVA Naming and Directory Interface Verzeichnisdienst: • leistungsfähiger als Namensdienst • verwaltet Objekte & Ressourcen (Drucker, Dateien,..) mit Hierarchie – Strukturen • kann Zusatzinformationen zu Remote – Objekt bereitstellen
J2EE – Java2 Enterprise EditionQuellenverzeichnis Quellen der Literatur: [DP02] Denninger, Stefan; Peters, Ingo: Enterprise JabaBeans 2.0. Addison – Wesley, 2., überarbeitete Auflage, 2002. [SS02] Schäffer, Stefan; Schilder, Walter: Enterprise Java mit IBM WebSphere. Addison – Wesley, 2002. Quellen des Internet: http://www.sun.com/j2ee Java™ 2 Platform Enterprise Edition Specification, v1.4 (Public Draft) http://www.fhs-hagenberg.ac.at/staff/jheinzel/WS2002/PRG5/Docs/EJB_Einfuehrung.pdf Erlach, Andreas: Enterprise JavaBeans (EJB), 2002.
J2EE – Java2 Enterprise EditionAbkürzungsverzeichnis JCA - Java Connector Architecture JDBC - Java Database Connectivity JMX - Java Management Extensions JMS - Java Message Service JNDI - Java Naming and Directory Interface JNLP - Java Network Launch Protocol (Java Web Start) JRMI - Java Remote Method Invocation JSP - JavaServer Pages JTA - Java Transaction API JTS - Java Transaction Service RMI – IIOP - Remote Method Invocation – Internet Inter ORB Protokoll SAAJ - SOAP with Attachments API for Java SPI - Service Provider Interface API - Application Programming Interface BMP - Bean managed persistence CMP - Container managed persistence EJB - Enterprise JavaBeans HTTP - Hyper Text Transfer Protocol J2EE - Java 2 Enterprise Edition J2EE SPI - J2EE Service Provider Interfaces J2SE - Java 2 Standard Edition JAAS - Java Authentication and Authorization Service JACC - Java Authorization Service Provider Contract for Containers JAF - JavaBeans Activation Framework JAX-RPC - Java API for XML-based RPC JAXP - Java API for XML Parsing JAXR - Java API for XML Registries