Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, 12.5.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
Object Relational Mapping
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
der Universität Oldenburg
RMI RMI Systemarchitektur Servlet Cont. Präsentation Logik Datenbank Servlet Cont. Servlet Cont. EJB-Container Oracle RMI JDBC.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Objekt – Relationales – Modell Tomasz Makowski IN
DI Christian Donner cd (at) donners.com
MySQL.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
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
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Objektorientierung
MD 5/02 CORBA Lebensdauer von Objekten, Transaktionen.
Markplätze für Agenten Seminar Softwareagenten Timo Hoelzel.
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Transaction Script Software Component Technology for Distributed Applications.
Java2 Enterprise Edition René Noack Mai 2003
JAVA RMI.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
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)
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Systementwicklungsprojekt:
JDBC: JAVA Database Connectivity
YouTube5 .0 Projektpräsentation
FQTQ ShowCase Prototyp einer Applikation zur Beratungsunterstützung.
Open Services Gateway Initiative
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Herzlich Willkommen… welcome… soyez la bienvenue….
Working With Persistent Objects
Software Architektur II
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
SharePoint 2010 for Information Architects
EJB-Applikationsserver
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
HORIZONT 1 XINFO ® Das IT - Informationssystem Assembler HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Einführung in Datenbankmodellierung und SQL
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Komponentenarchitekturen, Enterprise Java Beans (EJB)
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Reinhold Rumberger Web Services.
Kaseya Virtual System Administrator Produkt Update 7.0 Rocco van der Zwet Copyright ©2014 Kaseya 1.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Enterprise Java Beans (EJB) Projekt Verteilte Informationssysteme Freitag, Gerald Weber.
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Klausur-Termin? 120 Minuten Bearbeitungszeit Mögliche Termine (unter.
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.
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
1 Persistence Strategies for WebServices Senior Consultant Java Forum Stuttgart, 27. Juni 2002.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen,
Verteilte Anwendungen: J2EE
 Präsentation transkript:

Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, Gerald Weber

Gerald Weber - EJB 2 Themen Zweck, Nutzung, Funktion der Beans Standard auf Java-Sprachebene [EJBSpec 1.1 prelim] u Allgemein u Session Beans u Entity Beans u Transaktionen u Sicherheit, Zugriff, Benutzeridentifikation Kritik

Gerald Weber - EJB 3 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 4 EJB Architektur RMI EJB-Server Clients RDBMS CORBA JDBC Container Legacy- Application B B

Gerald Weber - EJB 5 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 6 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 7 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 8 Welche Analyse-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 9 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 10 Beispiel: Die EntityBean MyCat Home-Interface MyCatHome: u create(String Name) u findByPrimaryKey(String) u findLike(String keyword) 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 11 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 12 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 13 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 14 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 15 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 16 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 nur bei einfacher Abbildung Business-Methoden werden in gleicher Weise implementiert

Gerald Weber - EJB 17 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 18 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 19 Nachteile CMP - aktueller Standard: Kein Standard für OO -zu-Relational - Mapping Finder-Methoden nur informell beschrieben,daher nur semiautomatsiches Deployment Keine Standard-Anpassung an bestehende Datenbank-Schemata Eager loading: Gesamter Zustand wird geladen Kein dirty-flag, eager writing

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

Gerald Weber - EJB 21 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 22 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 23 Kritik Container-Managed Persistence nicht genügend spezifiziert Problem des Persistenzmodells: n-Zeilen-Reports benötigen n Queries Keine Abstraktion zw. Business- und Persistenz- Impl. Noch viele Unklarheiten in der Spezifikation (Gültigkeit Handle, Bean-To-Bean Roles)