Enterprise Computing



Ähnliche Dokumente
Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Softwareentwicklung mit Enterprise JAVA Beans

Enterprise Computing

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 2. Servlets

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 3. Enterprise Java Beans

4D Server v12 64-bit Version BETA VERSION

SE2-10-Entwurfsmuster-2 15

ObjectBridge Java Edition

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Lizenzierung von Windows Server 2012

Java 2, Enterprise Edition Einführung und Überblick

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Java - Webapplikationen

Web 2.0 Software-Architekturen

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Online Banking System

OP-LOG

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Lizenzierung von System Center 2012

Einführung in Eclipse und Java

Workflow, Business Process Management, 4.Teil

Installation der SAS Foundation Software auf Windows

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Step by Step Webserver unter Windows Server von Christian Bartl

Lokale Installation von DotNetNuke 4 ohne IIS

Enterprise Java Beans

Internet und WWW Übungen

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Java zur Realisierung von Internetanwendungen

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

IBM SPSS Modeler Server Adapter Installation

6.9 Java Server Pages

Enterprise Java Beans Einführung

Lizenzierung von Windows Server 2012 R2. Lizenzierung von Windows Server 2012 R2

SAP NetWeaver Gateway. 2013

Planung für Organisation und Technik

Installationsanleitung dateiagent Pro

Applets I. Grundlagen der g Applet-Programmierung

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Windows 8 Lizenzierung in Szenarien

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. WebSphere Application Server Teil 2. Schnittstellen

Windows Server 2012 R2 Essentials & Hyper-V

Lizenzierung von SharePoint Server 2013

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Connection Architecture Teil 3

Betriebshandbuch. MyInTouch Import Tool

Lizenzen auschecken. Was ist zu tun?

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Virtual Desktop Infrasstructure - VDI

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

MetaQuotes Empfehlungen zum Gebrauch von

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C

Calogero Fontana Fachseminar WS09/10. Virtualisierung

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 4. Schnittstellen

Übung: Verwendung von Java-Threads

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Softwareentwicklung mit JAVA EE

Bridging the Gap between the Enterprise and You. Who s the JBoss now?

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand Copyright

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Internetanbindung von Datenbanken

JDO Java Data Objects

1 Application Compatibility Toolkit (ACT) 5.6

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Übungen zur Softwaretechnik

Verwendung des Terminalservers der MUG

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

RL

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

JPC Visualisierung in Java

Java Webentwicklung (mit JSP)

KNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE Burgkirchen Web:

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Lizenzierung von SharePoint Server 2013

Wiederholung: Beginn

Transkript:

Enterprise Computing Prof. Dr.-Ing. Wilhelm G. Spruth WS 2011/12 Teil 11 Web Application Server

Maschinensprache der Java Virtual Machine (JVM) Parallele Ausführung von Java Klassen in der Form von Java Threads Java Virtual Machine Betriebssystem JVM ist ein Emulator für die Java Hardware Architektur. Der Maschinencode des Java Prozessors wird als Byte Code bezeichnet.

Emulator Auf einem Rechner mit der Hardware-Architektur x (Host) kann ein Rechner mit der Hardware-Architektur y (Gast) emuliert werden. Beispiele sind: Hercules und pdt emulieren einen zseries Rechner mit dem z/os Betriebssystem auf einem Intel/AMD Windows oder Linux Rechner. Microsoft VirtualPC emuliert einen Intel/AMD Windows Rechner auf einem (älterem) Apple MAC PowerPC Rechner.(Vorsicht, unter dem gleichen Namen gibt es ein weiteres aber unabhängiges Microsoft Produkt, welches ähnlich wie VMWare arbeitet. Bochs ist ein in C++ geschriebener Open Source Emulator, der die Intel/AMD Architektur auf vielen anderen Plattformen emuliert. Eine Java Virtual Machine wird heute fast immer durch eine Emulation auf einer Pentium, PowerPC oder System z Plattform usw. implementiert. Im Gegensatz zu anderen Emulatoren ist der Leistungsverlust bei der Emulation der JVM Architektur relativ klein, z.b. Faktor 3 im Vergleich zu einem Faktor 15 bei der Emulation der System z Architektur auf einem Intel Processor.

Java Source Code System z Object Code Byte Code System z Hardware JVM Unter z/os ist die Ausführung sowohl als System zobject Code als auch als Byte Code möglich. In der großen Mehrzahl der Fälle wird die Ausführung als Byte Code gewählt.

Browser http Server statische HTML Pages z.b. Apache Statische HTML Pages

Anderes Beispiel: www.google.de Dynamische HTML Seite

<HTML> <HEAD><TITLE> Login </TITLE> </HEAD> <BODY> <H2>Login to Secure Site</H2> < FORM METHOD=POST ACTION="http://abc.de/servlet/xyz.servlet" > Username: <INPUT TYPE="TEXT" NAME="username" SIZE="25"><BR> Password: <INPUT TYPE="PASSWORD" NAME="password" SIZE="25"><P> <INPUT TYPE="SUBMIT" VALUE="Submit"> <INPUT TYPE="RESET" VALUE="Clear"> </FORM> </BODY> </HTML> Der FORM Tag spezifiziert: Die zu benutzende HTTP- Methode. Hier ist dies POST; die Daten werden innerhalb des Bodys der Nachricht übertragen. Die Action. Dies ist meistens die URL, es kann aber auch die Action mit ihrem Namen angegeben werden. Der Typ der MIME- Enkodierung der Daten in der FORM. Der Default ist "application/x-www-formencoded". HTML Forms

HTTP HTML Web Server CGI oder Servlet SQL Browser (WEB) Application Server Datenbank Dynamischer WEB Seiten Inhalt (1) Alternativen: CGI Java Servlet.

HTML WEB Browser JDBC WEB WEB Java Browser Server Servlet SQL WEB Browser (WEB) Application Server Datenbank Server der HTML Code <FORM METHOD=POST ACTION="/servlet/HelloWorld"> ruft ein Java Servlet mit dem Namen HelloWorld auf. Dies setzt voraus: (1) Der angesprochene Web Server unterstützt Servlets (2) ein "Hello World" Servlet existiert in dem Directory, in dem der angesprochene Webserver seine Servlets speichert.

Servlet Container Servlets laufen in einer Servlet-spezifischen Laufzeitumgebung, die als Container oder Servlet Engine bezeichnet wird. Diese verbessert u.a. die Servlet-Ausführungszeit und stellen dem Programmierer vorgefertigte Strukturen zur Verfügung. Servlet Container haben keine Transactions-, Persistence- und Sicherheitseigenschaften. Ein Servlet Container ist eine Gruppe von Java Klassen, die Requests für Servlets und Java Server Pages (JSP) behandelt. Der Servlet Container enthält Java Klassen mit Funktionen für: Erstellung von Servlet-Instanzen, Initialisierung von Servlets, Dispatching von Requests, Verwaltung des Servlet-Kontextes für die Nutzung durch die Web-Anwendungen. Eine Java Klasse erbt mit Hilfe von extends HttpServlet die Servlet Eigenschaften.

public class HalloWeltServlet extends HttpServlet { public final static String message = "<html>\n" + "<head><title>hallo Welt</title></head>\n" + "<body>\n" + "<h1>hallo Welt</h1>\n" + "</body></html>\n"; public void init() { System.out.println("In HalloWeltServlet init"); } public void destroy() { System.out.println("In HalloWeltServlet destroy"); } Beispiel: HalloWeltServlet.java Die Methode service ist für die Bearbeitung des Servlet Aufrufs zuständig. } public void service(servletrequest req, ServletResponse res) throws ServletException, IOException { PrintWriter out = res.getwriter(); out.println(message); }

Java Server Pages (JSP) Java Server Pages sind in der Java Programmiersprache geschrieben. Eine JSP ist in Wirklichkeit eine andere Darstellungsform eines Servlets. JSPs benutzen XML-artige Tags und Scriplets um die Logik zu kapseln, die den Inhalt der Seite generiert. Alternativ kann die Anwendungslogik woanders liegen, und die Java Server Page greift hierauf mit den Tags und Scriplets zu. Dies ermöglicht eine Trennung der Seiten-Logik vom Seitenentwurf und der Seitenwiedergabe.

Einfache Java Server Page (1) Java Server Pages sind im Aufbau vergleichbar mit HTML-Dokumenten. Sie bestehen jedoch aus zwei Teilen, einem HTML Text sowie beliebig vielen, darin eingebetteten Anweisungen an den JSP Server. Den folgenden Text in einer Datei mit der.jsp extension im JSP directory speichern und mit einem Browser ansehen: <html> <head> <title>jsp Example </title> </head> <body> Hello! The time is now <%= new java.util.date() %> </body> </html> Die Zeichenfolgen <%= und %> schließen Java Epressions ein. Diese werden zur Run Time ausgewertet. Bei jedem Reload der HTML Seite in den Browser wird die gültige Zeit wiedergegeben. Normalerweise enthält ein JSP Programm eine komplexere Präsentationslogik, z.b. in der Form eines Scriplets. http://www.jsptut.com/

Web Server Browser Request Servlet Container Servlet Interaktion Servlet - JSP In der Praxis ist es eher selten, dass eine JSP direkt aufgerufen wird. Response Call Page Java Server Page In der Regel wird ein Servlet aufgerufen, welches wiederum eine JSP aufruft. Web Application Server

Web Application Server Plattform für die Ausführung von Java Servlets, Java Server Pages und EJBs BEA Web Logic verfügbar auf allen Plattformen IBM WebSphere Windows, Unix, Linux, z/os Deutlich mehr als die Hälfte aller in der Wirtschaft eingesetzten Web Application Server verwenden die Firmen-eigenen Transaktionsmonitore: Tuxedo, CICS, SAP. Der SAP Netweaver Web Application Server wird in der Regel in Verbindung mit SAP Software Komponenten eingesetzt. Die Microsoft DotNet Alternative (.Net ) unterstützt kein Java. Während Web Application Server ursprünglich nur Java Code verarbeiten konnten, werden heute alle gängigen Programmiersprachen unterstützt, spezifisch also auch Cobol, PL/1 und C++.

Web Application Server Open Source Web Application Server sind: Tomcat (nur Servlets) Geronimo der Apache Foundation GlassFish (Sun) Pseudo-Open Source : JBOSS (Red Hat) JBOSS, Geronimo und GlassFish liegen bezüglich ihrer Funktionalität weit hinter WebLogic, WebSphere oder Netweaver zurück. Kompatibilität

Java Beans Kleine Java-Programme (Klassen) mit festgelegten Konventionen für die Schnittstellen, die eine Wiederverwendung in mehreren Anwendungen (Applikationen, Servlets und Applets) ermöglichen. Dafür gibt es ein eigenes Beans Development Kit BDK, das man zusätzlich zum JDK installieren kann, und ein Package java.beans, das ab Version 1.1 im JDK enthalten ist, JavaBeans sind ein Objektorientiertes Java Komponenten Modell - JavaBeans sind Java binary parts. Sie werden häufig für visuelle Komponenten eingesetzt (etwa Buttons und Scrollbalken) Hauptmerkmale der Java Beans sind: Methoden Properties (Eigenschaften, z.b. Methoden wie get und set) Events (Ereignisse) Namens Konventionen Introspection (BeanInfo Klasse)

Java CICS oder Java Datenbank- Presen- Business Prozeß tation Logik z.b. Oracle, DB2 PC Registrierkasse Geldausgabeautomat Anwendungs- Prozeß Business- und Präsentationslogik

Browser Web Application Server HTML Page Servlet prepare Bean (Form ) call Bean HTML Page JSP (Ergebnis) access Bean SQL Nutzung von Java Beans Ein Servlet ist ein Java Programm, das Bildschirm Output in der Form einer HTML Datei produziert. Eine JAVA ServerPage ist eine HTML Seite mit zusätzlichen JSP Tags. Wird eine JSP Seite aufgerufen, so kompiliert sie ein JSP Übersetzer in ein Servlet.

Servlet Architektur einer JSP Web Anwendung

Model - View - Controller Ansatz 1. HTML page: static or dynamic HTML page, created from a previous step, contains one or multiple forms that invoke a servlet for processing of the next interaction. 2. Servlet gets control from the Application Server to perform validation and control of flow; sets up and calls command beans that perform the business logic. 3. Command beans control the processing of the business logic; logic may be imbedded in the command bean, or it can be delegated to back-end or enterprise systems, such as relational databases, transactions systems (CICS, MQSeries, IMS, and so forth); command bean may perform one specific function or it may contain many methods, each for a specific task (task wrappers). Command beans invoke database and transaction systems using connectors. 4. Results of command beans (or back-end systems) processing are stored in data beans. Data beans could contain an SQL result or a CICS communication area. 5. View beans provide the contract between the output producing JSPs and the data beans that contain the dynamic data to be displayed in the output; servlet initializes the view beans and registers them with the request block so that the JSPs can find them. 6. Servlet calls a JSP for output processing and formatting depending on the results of the command beans; JSPs generate the output for the browser. 7. JSP use tags to declare the view beans and get access to all the dynamic data that must be displayed in the output. 8. View beans contain one or multiple data beans and provides tailored methods so that the JSP has access to the data stored in the data beans; data beans may not provide the necessary methods for a JSP to access the data. 9. JSP assembles the output and sends it back to the browser as an HTML page with dynamic data; in many cases, that output again contains form(s) to enable the user to continue the dialog with the application. Servlet is the controller Command beans provide the model JSP is the view

Web Browser HTML Enterprise Java Bean(s) SQL WEB Servlet Server JSP JDBC (oder andere) WEB Application Server Datenbank Server Dynamischer WEB Seiten Inhalt (3) Im einfachsten Fall enthält das Java Servlet die Anwendungslogik. In komplexeren Fällen lohnt es sich, die Anwendung in Komponentenform zu implementieren. Java Beans implementieren das Java Komponentenmodell. Enterprise Java Beans (EJB) sind Java Beans mit zusätzlicher Funktionalität, besonders Transaktionseigenschaften (ACID), Persistenz und Sicherheit.

Mainframe PC, Workstation Java 2 Editionen Embedded Devices, Klein- und Kleinstgeräte

JEE Die Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten verteilten Geschäftsanwendungen und insbesondere Web-Anwendungen. Darin ist spezifiert: Enterprise JavaBeans (EJB), die Komponenten der Geschäftsanwendungen, Infrastruktur zur Ausführung von EJBs. Die Infrastruktur beinhaltet Web-Applikationsserver mit sogenannten Containern, in denen die EJBs ausgeführt werden. Der Server beziehungsweise der Container interagiert mit den Unternehmenssystem-Ressourcen (z.b. Datenbank) übernimmt die Interaktion mit verteilten Beans in anderen Servern und Maschinen. kontrolliert die Ausführung von selbst definierten Transaktionen handhabt Sicherheitseinstellungen.

JEE Entwicklung Version Datum JEE Version 1.0 1998 JEE Version 1.2 1999 JEE Version 1.3 2001 JEE Version 1.4 2003 JEE Version 5 2006 JEE Version 6 2009 Zum Teil sehr wesentliche Änderungen!!! Java EE umfasst mehrere API Specifikations, z.b. JDBC, RMI, JMS, Web Services und XML, sowie Spezifikationen für eigene Komponenten wie Servlets und JavaServer Pages, Enterprise Java Beans, Connectors,...

z.b. Servlet Client Klassen rufen EJB Methoden direct auf, wenn in der gleichen JVM. Wenn nicht, Remote Method Invocation (RMI).

HTML Web Servlets Server JSPs EJBs SQL HTTP Servlet EJB Server Container Container Backend Bevorzugte Struktur eines Web Application Servers Java Application Server Browser Web Application Server Datenbank Server In dieser Konfguration ist der HTTP Server (Web Server) lediglich ein Zusatz und gehört nicht unbedingt zum Lieferumfang eines Web Application Servers. Servlet Container und EJB Container laufen in einer gemeinsamen Java virtuellen Maschine (JVM). Dies reduziert den Kommunikationsaufwand. Servlet Klassen können EJB Klassen direkt aufrufen. Bei getrennten JVMs erfolgt die entsprechende Kommunikation mit Hilfe des RMI Protokolls (JRMP oder RMI/IIOP). Der Web Application Server enthält weitere Elemente für Administration und Datenbankzugriff.

EJB EJB EJB EJB EJB EJB EJB EJB Container (andere Bezeichnungen:Laufzeitumgebung, Framework, Object Transaction Monitor - OTM) EJB Dienste JTS JIDL JNDI JMS JMAPI JDBC JTS Java Transaction Service JNDI Java Naming and Directory Interface JMS Java Messaging Servics JDBC Java Data Base Connectivity JMAPI Java Management API JIDL Java Interface Definition Language

Enterprise Java Beans (EJB) Enterprise Java Beans sind Java Beans mit erweiterter Funktionalität. Dies sind unter anderem: JTS, Transaction Service, an API for invoking transaction services. JNDI, Java Naming and Directory Interface, an API for accessing naming and directory services. JMS, Java Message Service, an API for invoking asynchronous message delivery services. JDBC, Java Database Connectivity API, accesses data in existing databases through a common interface. JMAPI, Java Management API, which defines access to a set of services for managing Java resources. JIDL, Java interface definition language, an interface to the CORBA set of services for distributed computing.

E M S M E E S S Container (andere Bezeichnungen:Laufzeitumgebung, Framework, Object Transaction Monitor - OTM) EJB Dienste Drei verschiedene Arten von EJBs Entity Beans Session Beans Message Beans JTS JIDL JNDI JMS JMAPI JDBC

Persistenz Die permanente Speicherung eines Objektes auf einem Plattenspeicher wird als Persistenz bezeichnet. Moderne RAID Technologien und Backup Strategien stellen sicher, dass Daten auch Fehlerfälle intakt überstehen. Konzeptuell können Objekte in einer Objektdatenbank (z.b. POET oder Jasmine) gespeichert werden.in der Praxis werden SQL (oder IMS, ADABAS oder VSAM) Daten als Objekte gekapselt; der Zugriff erfolgt z.b. über eine JDBC (Java Data Base Connectivity), SQLJ oder DB2Connect Schnittstelle. Persistente Objekte existieren permanent außerhalb des Gültigkeitsbereichs des Programms, das sie erzeugt hat. Persistenz wird implementiert, indem der Status (die Attribute) eines Objekts zwischen den einzelnen Programmausführungen gespeichert wird. Wenn das Objekt erneut benötigt wird, wird es aus seiner gespeicherten Form wieder hergestellt. Der Herstellungsprozeß erzeugt ein neues Objekt, das mit dem ursprünglichen identisch ist.

Session Bean Man unterscheidet zustandslose (stateless) und zustandsbehaftete (stateful) Session Beans. Eine zustandsbehaftete Session Bean hat ein eigenes Gedächtnis. Sie kann Informationen aus einem Methodenaufruf speichern, damit sie bei einem späteren Aufruf einer anderen (oder der gleichen) Methode wieder zur Verfügung stehen. Die Zustandsbehaftung wird durch die Vergabe einer eindeutigen ID umgesetzt, über diese ID können die zustandsbehafteten (stateful) Session Beans unterschieden werden. Im Gegensatz dazu müssen einer zustandslosen Session Bean bei jedem Aufruf alle Informationen als Parameter übergeben werden, die für die Abarbeitung dieses Aufrufs benötigt werden. Da eine zustandslose Session Bean keine Informationen speichern kann, ist sie nicht von anderen Session Beans der gleichen Klasse unterscheidbar, sie hat also keine eigene Identität.

Entity Beans Entity Beans repräsentieren für den Client eine objektorientierte Sicht auf einen Datensatz, z.b. eine Zeile in einer Datenbank. Sie erlauben im Gegensatz zu Session Beans auch Mehrbenutzerbetrieb: Auf eine Instanz eines Entity Beans können gleichzeitig mehrere Benutzer zugreifen. Der Container, in den Entity Beans während der gesamten Lebensdauer eingebettet sind, stellt dazu entsprechende Mechanismen bereit, um z.b. Sicherheit, Transaktionskonsistenz und Parallelität sicherzustellen. Da Entity Beans nicht an einen einzelnen Client gebunden sind, endet ihre Lebensdauer nicht nach dem Beenden einer Client - Verbindung. Im Gegensatz zu Session Beans können bzw. müssen sie sogar nach einem Systemausfall automatisch wiederhergestellt werden, da in der Regel ihre Existenz an das Vorhandensein der mit ihnen verbundenen Daten gebunden ist. Das heißt, die Erstellung einer Instanz eines Entity Beans erzeugt z.b. automatisch eine neue Zeile in einer Datenbank und fügt die bei der Erstellung mit übergebenen Daten des erstellten Datensatzes der Datenbank hinzu. Wird die Instanz entfernt, wird automatisch der mit dieser Instanz verbundene Datensatz aus der Datenbank gelöscht.

EJB Client Entity Bean (z,b. Servlet) ruft Methoden der Session Bean auf EJB Client Session Bean Entity Bean Entity Bean Session Fassade EJB Architektur Aufgabenteilung: Session Beans enthalten die Business Logik Entity Beans speichern Daten Für Entity Beans war die persistente Speicherung in Objekt Datenbanken (z. B. Poet, Jasmin) vorgesehen, an Stelle von relationalen Datenbanken. Dies hat sich jedoch nicht durchgesetzt.

Emterprise Java Bean Deployment Descriptor Beispiele für Parameter des Deployment Descriptors: EJB *.jar File EJB Container Datenbank Name Verbindung zu Legacy Anwendungen JNDI Namensraum des Containers Transaktions-Semantik Umgebungseigenschaften Deployment Descriptor Der Deployment Descriptor legt die Parameter einer EJB fest. Parameter können statisch zur Assembly Zeit oder dynamisch zur Laufzeit festgelegt werden Der Deployment Descriptor wird typischerweise durch den EJB Entwickler angelegt, kann aber durch einen Administrator mit Hilfe eines Tools abgeändert werden

Deployment Descriptor Der Deployment Deskriptor ist eine Datei im XML Format, die eine oder mehrere EJBs, deren Zusammenwirken und die Art, wie der EJB Container sie zur Laufzeit behandeln soll, beschreibt. Er enthält hauptsächlich deklarative Informationen, welche nicht im EJB Code zu finden sind. Dies sind vor allem Informationen über die Struktur der EJB und ihrer Abhängigkeiten zu anderen EJBs oder Ressourcen wie z. B. einer Datenbankverbindung. Außerdem können im Deployment Deskriptor Umgebungsvariablen gesetzt werden, die von der EJB ausgelesen werden können und somit ihr Verhalten beeinflussen. Dies führt zu einer höheren Flexibilität, da dieselbe EJB in verschiedenen Umgebungen eingesetzt werden kann und nur der Deployment Deskriptor angepasst werden muss.

Vergleich CICS Enterprise Java Beans CICS EJB Definition Define Deployment Command Descriptor Installation Install Deploy Command Command Package Group JAR, WAR, EAR Anwendungsprogramm xxxx Mapset yyyy CICS Group TRID zzzz

Enterprise Application Ressource EAR Deployment Descriptor Web Application Ressource EJB Java Archiv WAR JAR HTML..EJB Servlet Deployment Descriptor EJB Deployment Descriptor JSP..EJB Enterprise Archive (EAR) Eine J2EE Anwendung besteht aus Web und EJB Komponenten. Beide Arten von Komponenten sind in Archiven verpackt, Verhalten und Eigenschaften sind in Deployment Deskriptoren (DD) definiert. Alle Komponenten einer Anwendung sind in einem EAR (Enterprise Application Ressource) zusammengestellt. Eine vollständige Anwendung kann durch Installation eines EAR Files auf einen anderen Application Server verteilt werden und sollte sich dort wie erforderlich konfigurieren lassen.