Enterprise Java Beans (EJB) Projekt Verteilte Informationssysteme Freitag, 3.11.2000 Gerald Weber.

Slides:



Advertisements
Ähnliche Präsentationen
EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise.
Advertisements

Object Relational Mapping
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
RMI RMI Systemarchitektur Servlet Cont. Präsentation Logik Datenbank Servlet Cont. Servlet Cont. EJB-Container Oracle RMI JDBC.
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
DI Christian Donner cd (at) donners.com
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, Gerald Weber.
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Stephan Bury  Pascal Busch  Bita Gerami
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
MD 5/02 CORBA Lebensdauer von Objekten, Transaktionen.
Markplätze für Agenten Seminar Softwareagenten Timo Hoelzel.
Spezielle Aspekte der Anbindung von Datenbanken im Web.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
XML in Client-Server und GRID Architektur
Java2 Enterprise Edition René Noack Mai 2003
JAVA RMI.
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Remote Methode Invocation (RMI)
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Rechnernetze und verteilte Systeme (BSRvS II)
JDBC: JAVA Database Connectivity
FQTQ ShowCase Prototyp einer Applikation zur Beratungsunterstützung.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Working With Persistent Objects
Software Architektur II
EJB-Applikationsserver
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Sesame Florian Mayrhuber
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Management- und Web Services- Architekturen
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Datenanbindung in Webapplikationen
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
->Prinzip ->Systeme ->Peer – to – Peer
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Vortrag - Diplomarbeiten (HS I)
Datenbanken im Web 1.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
EJB Architektur für große Web - Applikationen Gerald Weber
1 Prof. Dr. Andreas SchmietendorfWS06/07 Übung 3 Test der Möglichkeiten des JDBC-Interfaces.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
Realisierung verteilter Anwendungen: Teil 6 zBeim vorigen Mal: yEinführung in Multitier-Architekturen yDynamische Seitengenerierung (JSP und Servlets)
Workflowsysteme und Datenbanksysteme Gliederung Motivation Basis- funktionalitäten Klassifikations- merkmale Referenz-Modell MQ Workflow Zusammenfassung.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
C++ FÜR cOMPUTERSPIELENTWICKLER
Vergleich verschiedener Kommunikationsinfrastrukturen in Enterprise Information Systems Ben Mainz Seminar am Lehrstuhl für Software Engineering RWTH Aachen.
Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen,
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Verteilte Anwendungen: J2EE
Implementieren von Klassen
Remote Method Invocation
 Präsentation transkript:

Enterprise Java Beans (EJB) Projekt Verteilte Informationssysteme Freitag, Gerald Weber

Gerald Weber - EJB 2 Überblick  Middleware, Zweck und Funktion -> Bedarf für EJB  Applikationsserver: EJB für Skalierbarkeit  EJB als Komponenten

Gerald Weber - EJB 3 Middleware  Zweck: Unterstützung von Verteiter Applikationsprogrammierung.  Bietet Infrastruktur, die von Low-Level Aufgaben abstrahiert.  Middleware-Ansätze: - Remote Procedure Call (RPC) - Message Oriented Middleware (MOM) - Object Oriented Middleware: CORBA, DCOM, RMI

Gerald Weber - EJB 4 RPC und CORBA: Motivation  Motivation aus Sicht der Verteilungsproblematik: Kommunikation zwischen Verteilten Prozessen soll durch den Austausch strukturierter Daten erfolgen.  Motivation aus Sicht der Programmierparadigmen: Verteilungstransparenz! Ein verteilter Aufruf soll wie ein lokaler Aufruf wirken.  Realisierung über Proxies

Gerald Weber - EJB 5 Stub Naming-S. STUB calls SKELETON Skeleton Client Server Lokales Objekt Proxies, Stubs, Skeletons

Gerald Weber - EJB 6 Realisierung des Aufrufs Möglichkeiten der Parameterübergabe:  Call by reference: Bei verteilt zugreifbaren Referenzen.  Call by Value: Bei Daten.  Strukturierte Daten werden durch Middleware als Datenstrom versandt.

Gerald Weber - EJB 7 Verteiltes OO-Modell vs. lokales OO-Modell  Das Verteilte Modell kann auf verschiedene Zielsprachen abgebildet werden (CORBA)  Ein verteiltes Objekt soll länger leben als einzelne Prozesse (insbesondere bei Persistenz)  Die Infrastruktur erfordert weitere, technische Methoden neben den Business-Methoden.  Naives Mapping (z.B. RMI): Ein lokales Objekt entspricht einem verteilten Objekt -> Skalierbarkeitsproblem.

Gerald Weber - EJB 8 Einfache Serverarchitektur  Ein Serverprozess nimmt alle Requests an einem Rechner entgegen.  Jedem Request ordnet er nach einer Namenskonvention ein ausführbares Programm zu.  Das Programm wird als Prozess gestartet.  Es erhält die Parameter als Standardinput.  Der Standardoutput ist der Rückgabewert.  Hohe Verfügbarkeit, keine Alterung.  begrenzt skalierbar.

Gerald Weber - EJB 9 Überblick  Middleware, Zweck und Funktion -> Bedarf für EJB  Applikationsserver: EJB für Skalierbarkeit  EJB als Komponenten

Gerald Weber - EJB 10 Applikationsserver: EJB für Skalierbarkeit  Verteilte OO-Systeme benötigen Server.  Skalierbarkeitsproblem: Es sind oft mehr verteilte Objekte referenziert als im Server lokal gehalten werden können.  Performanceproblem: Die Ressourcen, die zur Bearbeitung eines Requests erforderlich sind, sind - begrenzt - teuer beim Aufbau.  Lösung: Objektpools.

Gerald Weber - EJB 11 EJB als Standard für Objektpools  Mismatch zwischen lokalen und verteilten Objekten: EJB definiert einen „Standard-Mismatch“  Server-Implementierung hängt von Objekt-Charakter ab. Oberklassen: u Entity = persistenter Zustand u Transaction = kapselt Prozedur u Session = Clientbezogener Kontext u Message Client = Asynchroner Service

Gerald Weber - EJB 12 EJB Objektpool  EJB-Objektpool ist ein Pool von Java-Objekten (Terminus: Servants, leider in EJB nicht verwandt), der vom Server vorgehalten wird.  Servants können in ihrem Leben verschiedene verteilte Objekte repräsentieren. Entscheidende Zustände: u gebunden (sie repräsentieren ein verteiltes Objekt) u gepoolt (sie sind bereit, gebunden zu werden)

Gerald Weber - EJB 13 Auslagerung  EJB verwendet nicht die Virtual-Memory Funktion des Betriebssystems.  Alle Servants sind im Hauptspeicher.  Wenn zu viele verteilte Objekte referenziert sind, müssen Servants ihre Bindung abgeben und ihr Zustand muss ausgelagert werden: passivate/activate

Gerald Weber - EJB 14 Life-Cycle-management  Der Lebenszyklus verteilter Objekte wird bei EJB auf standardisierte Weise gemanaged.  In einer EJB-Welt gibt es Kollektionen von Objekten. (EJ Beans?)  Jede Kollektion von Objekten besitzt u zum Life-Cycle-Management ein Home-Interface u ein Remote-Interface, mit den Business-Methoden (Instanzmethoden).  Nur ein Pool für beide Interfaces

Gerald Weber - EJB 15 EJB Pool Container Remote Home Servant Home Pool Client

Gerald Weber - EJB 16 Überblick  Middleware, Zweck und Funktion -> Bedarf für EJB  Applikationsserver: EJB für Skalierbarkeit  EJB als Komponenten

Gerald Weber - EJB 17 EJB als Komponenten  Zweck, Nutzung, Funktion der Beans  Standard auf Java-Sprachebene [EJBSpec 2.0] u Allgemein u Session Beans u Entity Beans u Transaktionen u Sicherheit, Zugriff, Benutzeridentifikation  Kritik

Gerald Weber - EJB 18 Ziele der EJB Architektur  Standard-Applikationsserver-Architektur für Java  Abstraktion von Low-Level Aufgaben bei Transaktionen, Multithreading, Connection Pooling  Komponenten-Orientierung: Applikationen können aus Teilen verschiedener Hersteller aufgebaut werden  Definierte Rollenverteilung für die Systemerstellung, Definition der Aufgaben der Rollen durch Contracts

Gerald Weber - EJB 19 EJB Architektur RMI EJB-Server Clients RDBMS CORBA JDBC Container Legacy- Application B B

Gerald Weber - EJB 20 Beispiel: E-Commerce-System  Bean-Provider Cat.com bietet Produktkatalog MyCat an  App. Assembler WebVend erstellt Applikation BuyMe  Marktplatz GoodStuff ist Deployer, EJBServer und Container kommen von MegaBeans MyCat.jar MyCat.jar Order Cart JSP M. O.C. EJB Serv.+ Cont. HTTP Client DD

Gerald Weber - EJB 21 EJB Rollen  Bean Provider (Experte im Anwendungsbereich)  Application Assembler: (Experte im Anwendungsbereich)  Deployer (Experte für spezielle Systemumgebung)  EJB Server Experte (TP-Experte, z.B. DB-Anbieter)  EJB Container Provider (Experte für System- programmierung, Load Balancing)  System-Administrator

Gerald Weber - EJB 22 Komponentenbegriff  Beans implementieren Business-Logik.  Beans sind verteilte Objekte.  Bean ist über eine Anzahl von Parametern anpaßbar.  Beans enthalten deklarative Information (Deployment- Descriptor).  Client-Zugriff erfolgt durch festgelegte Interfacegruppe.

Gerald Weber - EJB 23 Welche Klassen stellen EJB dar?  EJB repräsentieren grobkörnige Business-Objekte: u Sitzungsobjekte: Session Beans u Persistente Objekte: Entity Beans  Beispiel: Eine Bean für Rechnung, aber nicht für Rechnungsposten  Keine aktiven Objekte  Beans haben ein Analyse-Interface

Gerald Weber - EJB 24 Java-Sprachebene: Elemente einer EJBean  Home Interface: Feste Arten von Klassen-Methoden. U.a. Life-cycle-Management Methoden  Remote Interface: Instanzmethoden, Business- Methoden  Beanklasse: Implementiert beide Interfaces  Deployment Descriptor  Verwendete andere Klassen (Helper Classes) HomeRemote Bean Helper

Gerald Weber - EJB 25 Beispiel: Die EntityBean MyCat  Home-Interface MyCatHome: u create(String Name) u findByPrimaryKey(String) u findLike(String keyword) u ssv(integer percent)  Remote-Interface MyCat: u getPrice() etc. u setPrice() etc. u buy(int pieces)  Bean-Klasse MyCatBean: Implementiert Methoden aus MyCatHome und MyCat.  Deployment Descriptor: u type: entity u role admin: Alle Methoden u role customer: nicht setPrice().

Gerald Weber - EJB 26 EJB Contracts: Client-View-Contract  Client kann durch RMI oder CORBA auf Bean zugreifen.  Pro Deployment einer Bean ist ein Home-Interface- Objekt in JNDI eingetragen und für den Client nutzbar.  Bean Instanzen implementieren das Remote-interface Der Client erhält sie durch das Home-Interface.  Der Client kann ein sog. Handle erhalten. Dieses identifiziert Bean-Instanzen oder -Homes über JVM- Grenzen hinweg.  Dyn. Bean-Nutzung mit MetaData-Interface.

Gerald Weber - EJB 27 Component Contract (Erklärt Container)  Bean implementiert Business-M., Life-cycle-M. u.a. Callbacks. Container ruft diese sinngemäß auf.  Container behandelt Trans., Security and Exceptions.  Container bietet JNDI-Environment, EJBContext.  Bean Provider vermeidet Programmierung, die das Container Runtime Management stört.  Optional: Container behandelt Persistenz.  Deployment-Descriptor enthält entsprechende Daten.

Gerald Weber - EJB 28 Einschränkungen für EJB  Dürfen keine Nebenläufigkeitsmechanismen (Threads, synchronised-Statement) nutzen.  Dürfen keine r/w statischen Variablen nutzen.  Dürfen nur die explizit erlaubten Dienste nutzen.  Dürfen nicht selbst Transaktionsgrenzen setzen.

Gerald Weber - EJB 29 SessionBeans  Enthalten Interaktionszustand (conversational state)  Lebensdauer wird vom Client kontrolliert.  Kann auf Platte ausgelagert werden (passivation) mittels Serialization.  Kann nur von einem Client angesprochen werden.  Kann gespeichert werden als Handle.

Gerald Weber - EJB 30 Transaktionen: ACID - Eigenschaften  Atomicity: Jede Transaktion wird ganz oder gar nicht ausgeführt (= Sicht der anderen Nutzer).  Consistency: Transaktionen hinterlassen die Datenbank in einem konsistenten Zustand.  Isolation: Transaktionen erscheinen, als wenn sie hintereinander (sequentiell) ausgeführt würden.  Durability: Wenn eine Transaktion erfolgreich beendet ist, sind ihre Änderungen an Daten persistent.

Gerald Weber - EJB 31 Grundidee der Persistenz bei EJB  ACID - Eigenschaften von Transaktionen werden genutzt.  Innerhalb einer Transaktion kann mit genau einer Kopie gearbeitet werden.  Diese muß vor einem Commit gespeichert werden.  Eine Kopie je Transaktion. DBMS Beans

Gerald Weber - EJB 32 Persistenz: Alternativen bei EJB Bean Managed  Datenzugriff muß programmiert werden  Routinen: find, load, store, remove, create Container Managed  Datenzugriff wird vom Container beim Deployment erzeugt  Automatisches Mapping auf die Datenbank. Business-Methoden werden in gleicher Weise implementiert

Gerald Weber - EJB 33 CMP am Beispiel  Einträge im Deployment Descriptor u Persistente Felder: price, stock, description, vendor u Informelle Beschreibung der FinderMethoden: findLike: „Findet alle Produkte mit ähnlichem Namen“  setPrice(int newprice) { price = newprice }

Gerald Weber - EJB 34 Bean Managed Persistence am Beispiel  ejbCreate(...): "insert into CatTable Values (...)"  ejbfindLike(keyword): "select... where ID = $name";  ejbLoad():"select... where ID = $name"; price = resultset.get(" price ")...  ejbStore(): if (dirty) "update... where ID = $name" ;  ejbRemove(): "delete... where ID = $name"

Gerald Weber - EJB 35 CMP in EJB Version 2.0  Wird vom Persistence-Manager gelöst.  UML-artige Modelle können verarbeitet werden.  Finder-Methoden werden mit EJBQL beschrieben: SQL, aber Ergebnis ist immer Primärschlüsselliste.  Business-Methoden können weitergehende select- Anfragen stellen.

Gerald Weber - EJB 36 Verteilte Transaktionen Context Client Transactional Client T. Object Recoverable Server R.S. T. Object beginT, commit abort 2PCTr.- Service

Gerald Weber - EJB 37 Transaction Demarcation  SessionBeans: Container-/Bean-managed  EntityBeans: Nur Container-managed  Container Managed: u Transaktions-attribut im DD per Methode:Required, Supports, notSupp., Req.New, Mand., Never u Bei Client-Call ohne Transaktionskontext: Business-methode wird mit Transaktion gekapselt u Für Abbruch setRollbackOnly(), auch bei Exceptions Ses.B.: Updates bleiben, Ent.B.: Updates verloren

Gerald Weber - EJB 38 Security  App.Ass. definiert Sicherheits-Rollen (security roles), diesen gibt er (das) Zugriffsrecht per Methode  Deployer weist Benutzern (Principals) S.-Rollen zu, ebenso weist er Beans Rollen zu (auch zu RM)  Container ermöglicht dieses Sicherheitsprotokoll  Bean-managed Security (zusätzlich): EJBContext.getCallerPrincipal() EJBContext.isCallerInRole(String role) //z.B. Limits

Gerald Weber - EJB 39 Kritik  Ständig sich ändernder Standard (?)  Performanz ist unklar.  Unklarkeiten bei der gesamten Architektur.  Unklarheiten in der Spezifikation Gültigkeit Handle, Bean-To-Bean Roles