Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, 12.5.2000 Gerald Weber."—  Präsentation transkript:

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

2 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

3 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

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

5 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

6 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

7 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.

8 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

9 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

10 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().

11 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.

12 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.

13 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.

14 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.

15 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

16 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

17 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 }

18 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"

19 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

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

21 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

22 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

23 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)


Herunterladen ppt "Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, 12.5.2000 Gerald Weber."

Ähnliche Präsentationen


Google-Anzeigen