3901438f5cef251e67a90076c6fdcdf9.ppt
- Количество слайдов: 23
Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, 12. 5. 2000 4. 11. 1999 Gerald Weber - EJB Gerald Weber
Themen u u u 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 2
Ziele der EJB Architektur u u 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 3
EJB Architektur EJB-Server RMI Clients RDBMS B JDBC Contain er B CORBA Legacy. Application Gerald Weber - EJB 4
Beispiel: E-Commerce-System u Bean-Provider Cat. com bietet Produktkatalog My. Cat an u App. Assembler Web. Vend erstellt Applikation Buy. Me u Marktplatz Good. Stuff ist Deployer, EJBServer und Container kommen von Mega. Beans . jar JSP Client Gerald Weber - EJB HTTP My. Cat Cart. jar Order DD EJB M. Serv. + Cont. C. O. 5
EJB Rollen u u u 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 Systemprogrammierung, Load Balancing) System-Administrator Gerald Weber - EJB 6
Komponentenbegriff u u u 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 7
Welche Analyse-Klassen stellen EJB dar? u u 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 8
Java-Sprachebene: Elemente einer EJBean u u u 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) Gerald Weber - EJB Home Remote Bean Helper 9
Beispiel: Die Entity. Bean My. Cat u u Home-Interface My. Cat. Home: u create(String Name) u find. By. Primary. Key(String) u find. Like(String keyword) Remote-Interface My. Cat: u get. Price() etc. u set. Price() etc. u buy(int pieces) u u Bean-Klasse My. Cat. Bean: Implementiert Methoden aus My. Cat. Home und My. Cat. Deployment Descriptor: u type: entity u role admin: Alle Methoden u role customer: nicht set. Price(). Gerald Weber - EJB 10
EJB Contracts: Client-View-Contract u u u 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 JVMGrenzen hinweg. Dyn. Bean-Nutzung mit Meta. Data-Interface. Gerald Weber - EJB 11
Component Contract (Erklärt Container) u u u 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 12
Session. Beans u u u 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 13
Transaktionen: ACID Eigenschaften u u 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 14
Grundidee der Persistenz bei EJB u u 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. Gerald Weber - EJB DBMS Beans 15
Persistenz: Alternativen bei EJB Bean Managed u Datenzugriff muß programmiert werden u Routinen: find, load, store, remove, create Container Managed u Datenzugriff wird vom Container beim Deployment erzeugt u Automatisches Mapping nur bei einfacher Abbildung Business-Methoden werden in gleicher Weise implementie Gerald Weber - EJB 16
CMP am Beispiel u u Einträge im Deployment Descriptor u Persistente Felder: price, stock, description, vendor u Informelle Beschreibung der Finder. Methoden: find. Like: „Findet alle Produkte mit ähnlichem Namen“ set. Price(int newprice) { price = newprice } Gerald Weber - EJB 17
Bean Managed Persistence am Beispiel u u u ejb. Create(. . . ): "insert into Cat. Table Values (. . . )" ejbfind. Like(keyword): "select. . . where ID = $name"; ejb. Load(): "select. . . where ID = $name"; price = resultset. get(" price "). . . ejb. Store(): if (dirty) "update. . . where ID = $name" ; ejb. Remove(): "delete. . . where ID = $name" Gerald Weber - EJB 18
Nachteile CMP - aktueller Standard: u u u 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 19
Verteilte Transaktionen Client T. Object Transactional Client begin. T, commit Recoverable Server R. S. abort Tr. Service Gerald Weber - EJB Context 2 PC 20
Transaction Demarcation u u u Session. Beans: Container-/Bean-managed Entity. Beans: Nur Container-managed Container Managed: u Transaktions-attribut im DD per Methode: Required, Supports, not. Supp. , Req. New, Mand. , Never u Bei Client-Call ohne Transaktionskontext: Business-methode wird mit Transaktion gekapselt u Für Abbruch set. Rollback. Only(), auch bei Exceptions Ses. B. : Updates bleiben, Ent. B. : Updates verloren Gerald Weber - EJB 21
Security u u 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. get. Caller. Principal() EJBContext. is. Caller. In. Role(String role) //z. B. Limits Gerald Weber - EJB 22
Kritik u u 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) Gerald Weber - EJB 23
3901438f5cef251e67a90076c6fdcdf9.ppt