Скачать презентацию Enterprise Java Beans EJB VL Anwendungssysteme Freitag 12 Скачать презентацию Enterprise Java Beans EJB VL Anwendungssysteme Freitag 12

3901438f5cef251e67a90076c6fdcdf9.ppt

  • Количество слайдов: 23

Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, 12. 5. 2000 4. 11. 1999 Gerald 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. 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 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 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 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 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 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 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. 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 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 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. 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. 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 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. 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, 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, 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(. . . ): 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 - 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. 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: 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 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 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