38
J2EE Java2 Enterprise Edition René Noack Mai 2003

J2EE Java2 Enterprise Edition René Noack Mai 2003

Embed Size (px)

Citation preview

Page 1: J2EE Java2 Enterprise Edition René Noack Mai 2003

J2EE

Java2 Enterprise Edition

René NoackMai 2003

Page 2: J2EE Java2 Enterprise Edition René Noack Mai 2003

2

J2EE – Java2 Enterprise Edition

Überblick:

1. Einordnung J2EE

2. J2EE Architektur

3. EJB (Enterprise JavaBeans)

4. JNDI (Java Naming and Directory Interface)

Page 3: J2EE Java2 Enterprise Edition René Noack Mai 2003

3

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 Einsatz

in Mehrschichtenarchitekturenund für Serveranwendungen

Page 4: J2EE Java2 Enterprise Edition René Noack Mai 2003

4

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)

Page 5: J2EE Java2 Enterprise Edition René Noack Mai 2003

5

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

Page 6: J2EE Java2 Enterprise Edition René Noack Mai 2003

6

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

Page 7: J2EE Java2 Enterprise Edition René Noack Mai 2003

7

3 – Tier – Architektur

Client – Schicht

Anwendungs-

schicht

(Middleware)

Datenablage-

schicht

J2EE – Java2 Enterprise EditionJ2EE Architektur

Client Client Client

Enterprise JavaBeansMiddleware – Komponenten

Datenablage Datenablage

Page 8: J2EE Java2 Enterprise Edition René Noack Mai 2003

8

J2EE Server

J2EE – Java2 Enterprise EditionJ2EE Architektur

Client – Container Web – Container EJB - Container

J2EE – Komponenten

JSP - Datei

ServletEnterprise

Bean

EnterpriseBean

EnterpriseBean

Page 9: J2EE Java2 Enterprise Edition René Noack Mai 2003

9

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)

Page 10: J2EE Java2 Enterprise Edition René Noack Mai 2003

10

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

Page 11: J2EE Java2 Enterprise Edition René Noack Mai 2003

11

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)

Page 12: J2EE Java2 Enterprise Edition René Noack Mai 2003

12

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

Page 13: J2EE Java2 Enterprise Edition René Noack Mai 2003

13

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

Page 14: J2EE Java2 Enterprise Edition René Noack Mai 2003

14

J2EE – Java2 Enterprise EditionJ2EE Architektur

EJB – ContainerAufgaben:

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

Page 15: J2EE Java2 Enterprise Edition René Noack Mai 2003

15

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

Page 16: J2EE Java2 Enterprise Edition René Noack Mai 2003

16

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

Page 17: J2EE Java2 Enterprise Edition René Noack Mai 2003

17

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

Page 18: J2EE Java2 Enterprise Edition René Noack Mai 2003

18

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

Page 19: J2EE Java2 Enterprise Edition René Noack Mai 2003

19

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?

Page 20: J2EE Java2 Enterprise Edition René Noack Mai 2003

20

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, …)

Page 21: J2EE Java2 Enterprise Edition René Noack Mai 2003

21

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

Page 22: J2EE Java2 Enterprise Edition René Noack Mai 2003

22

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

Page 23: J2EE Java2 Enterprise Edition René Noack Mai 2003

23

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

Page 24: J2EE Java2 Enterprise Edition René Noack Mai 2003

24

J2EE – Java2 Enterprise EditionEJB (Enterprise JavaBeans)

Arten von Enterprise JavaBeans

ContainerManaged

Persistence

BeanManaged

Persistence

EnterpriseJavaBean

SessionBean

EntityBean

MessageDrivenBean

Stateless Stateful

Page 25: J2EE Java2 Enterprise Edition René Noack Mai 2003

25

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

Page 26: J2EE Java2 Enterprise Edition René Noack Mai 2003

26

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

Page 27: J2EE Java2 Enterprise Edition René Noack Mai 2003

27

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

Page 28: J2EE Java2 Enterprise Edition René Noack Mai 2003

28

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

Page 29: J2EE Java2 Enterprise Edition René Noack Mai 2003

29

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

Page 30: J2EE Java2 Enterprise Edition René Noack Mai 2003

30

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

Page 31: J2EE Java2 Enterprise Edition René Noack Mai 2003

31

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

Page 32: J2EE Java2 Enterprise Edition René Noack Mai 2003

32

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

Page 33: J2EE Java2 Enterprise Edition René Noack Mai 2003

33

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)

Page 34: J2EE Java2 Enterprise Edition René Noack Mai 2003

34

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

Page 35: J2EE Java2 Enterprise Edition René Noack Mai 2003

35

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

Page 36: J2EE Java2 Enterprise Edition René Noack Mai 2003

36

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

Page 37: J2EE Java2 Enterprise Edition René Noack Mai 2003

37

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/j2eeJava™ 2 Platform Enterprise Edition Specification, v1.4 (Public Draft)

http://www.fhs-hagenberg.ac.at/staff/jheinzel/WS2002/PRG5/Docs/EJB_Einfuehrung.pdfErlach, Andreas: Enterprise JavaBeans (EJB), 2002.

Page 38: J2EE Java2 Enterprise Edition René Noack Mai 2003

38

J2EE – Java2 Enterprise EditionAbkürzungsverzeichnis

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

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