Enterprise JavaBeans

  • Upload
    nuwa

  • View
    31

  • Download
    3

Embed Size (px)

DESCRIPTION

Enterprise JavaBeans. +. +. Referenten Albrecht Karlusch [email protected] Konradin Maier [email protected] Elisabeth Vinek [email protected] Alexis Robin Rondeau [email protected] Peter Beran [email protected] Leitung Mag. Rainer Schmidt. - PowerPoint PPT Presentation

Citation preview

  • Enterprise JavaBeansReferentenAlbrecht Karlusch [email protected] Maier [email protected] Elisabeth Vinek [email protected] Alexis Robin Rondeau [email protected] Peter Beran [email protected] LeitungMag. Rainer Schmidt++

  • EJB Was ist denn das?EJB ist eine Architektur bzw. ein Framework fr komponentenbasierte verteilte Anwendungen.

    Die EBeans sind hierbei die Komponenten verteilter, transaktionsorientierter Anwendungen, die dem WORA Paradigma folgen

    Die EBeans werden im Programm durch Objekte reprsentiert

  • EJB Was ist denn das?

    Die EJB-Spezifikation ist in gewisser Weise die Konvergenz von zwei Technologien: TP-Monitore und verteilter Komponentenservices (Java RMI, CORBA, DCOM)

    EJB Server bieten eine TP-Monitor hnliche Umgebung fr verteilte Komponenten.

  • Die EBeans finden wir

  • EJBs allgemeiner Aufbau

  • Arten von JavaBeansSession BeanStatelessStateful

    Entity BeanBean managedContainer managed

    Message Driven Bean

  • EJB - VorteileKomponentenarchitekturunterschiedliche ProgrammiersprachenTrennung von Interface und Implementationerhhte Wiederverwendbarkeitvorgefertigte KomponentenKomponenten hoher Qualitt

  • EJB - Vorteile 2Verschiedene Clients mglichEJB ist auch verteiltZugriff auf alle EJBs im Netzwerk mglichMultiuser- fhigProtokoll unabhngigIIOP, JRMP, HTTP...

  • EJB - Vorteile 3Applikationsserver bernimmt InfrastrukturaufgabenSkalierbarkeit durch ClusterRessourcen- PoolingPersistenzSicherheitZustandsmanagement,...

  • EJB - Vorteile 4Verbesserter SWE- Prozess durchWiederverwendbarkeitdeskriptive Realisierung von Infrastrukturaufgabenn- Tier Architekturen mglichThin- Clients

  • Rollen in einer EJB-Umgebung

  • Das EJB-ObjektDrei Java-Interfaces/Klassen:Ein Bean (Client)-Interface (entfernte und/oder lokale Version)Ein Home-Interface (entfernte und/oder lokale Version)Eine Bean-Implementierung: implementiert alle Methoden der Interfaces + Methoden fr den Container

  • Der EJB-ClientBenutzt entfernte EJB-Objekte, damit diese auf Daten zugreifen, Aufgaben ausfhren usw.Schritte, die der Client durchfhrt:Er holt einen JNDI-Kontext vom J2EE/EJB-Server.Er sucht mit diesem Kontext das Home-Interface der zu verwendenden Bean.Mit Hilfe des Home-Interfaces erzeugt (oder findet) er eine Referenz auf eine EJB.Er ruft Methoden dieser Bean auf.

  • Der EJB-ContainerDas Herz der EJB-UmgebungAufgaben:Registrierung der Home-Interfaces in einem JNDI NamensraumVerwaltung der Lebenszyklen der BeansTransaktionsverarbeitungenSicherheitRessourcen-PoolingDatenpersistenzErzeugung von Klassen, die die einzelnen Komponenten zusammenhalten

  • EJBs auf einen Blick

  • DeploymentVorweg:Package javax.ejbApplication Server (z.B. JBoss), EJB-Container integriertEJB-Komponenten in JAR-Dateien verpackt.EJB-Komponenten mit Deployment-Deskriptoren beschrieben.Inbetriebnahme:Deployment-Informationen in Form einer XML-Datei.Generieren der vom Container zur Verfgung gestellten Klassen.Verpacken der EJBs in einer ejb-jar Datei.

  • Zielgruppenerfahrene Java- bzw. Enterprise-EntwicklerSoftwareentwickler IT-SystemanalytikerIT-Fach und -FhrungskrfteIT-EntscheidungstrgerOpen Source - Unternehmen

  • HerstellerSUN Microsystems (http://java.sun.com/products/ejb/)JCP (Java Community Process)

    VersionenEJB 2.1 (Final Release)EJB 3.0 (Early Draft Review)

  • Application Server AnbieterSunJava System Application Server 8 2004Q4JBoss IncJBoss Application Server 4.0.0Object Web ConsortiumEnhydra Server 5.1-16 Dev2DevBEA WebLogic Server 8.1

  • SchlussworteHerzlichen Dank fr Eure Aufmerksamkeit !!

    EnterpriseBeans (EBeans) sind die verteilten Komponenten, die in EJBs verwendet werden.EBeans sind in JAVA geschrieben.

    Wenn eine EBean entwickelt ist, kann sie mit anderen EBeans zu komplexen Anwendungen kombiniert werden. Der EBean- Einsatz erfolgt im Kontext eines EJB-Containers

    Transaktionsorientert: optimieren die Strukturierung der gespeicherten Daten im Hinblick auf dievorzunehmenden Transaktionen (z.B. durch Redundanzvermeidung).

    WORA- Write Once Run Anywhere

    Deployment Time: Verhalten bzgl. Persistenz und (TA-) Sicherheit kann durch deklarative Attribute festgelegt werden.Deklarativ bedeutet in diesem Zusammenhang, dass vorhandener Quelltext nicht modifiziert werden muss und dieKlassen nicht erneut kompiliert werden mssen. Zur Laufzeit liest das Programm die ntigen Informationen aus einerDeskriptor-Datei aus, um sich dann dynamisch umzukonfigurieren.

    Die TP (=transaction processing) Monitore berwachen ...Realisierung des Transaktionskonzeptes (ACID) in verteilten SystemenKontrolle der Verteilung durch den TP-MonitorVerbergen der Heterogenitt hinsichtlich Kommunikationsprotokollen, Netzwerken und BetriebssystemenErhaltung der OrtstransparenzBereitstellung der prozeduralen AnwendungslogikSteuerung des konkurrierenden Zugriff bei Mehrbenutzerbetrieb

    situiert in 3-schichten-Architektur (Middle-Tier)Vertreter: CICS, TUXEDO, Encina

    Vorteil: Reduktion der Programmierkomplexitt durch automatische Verwaltung der gesamten Anwendungsumgebung (insbesondere TAs, Sicherheit, Persistenz, Lastausgleich, ...)

    Properties:Eine Bean definiert Eigenschaften durch Attribute

    Customization: Beans besitzen konfigurierbare Eigenschaften, die ihr Verhalten festlegen. Aussehen und Verhalten einer Komponente knnen durch Verndern der Eigenschaften beeinflusst werden Vernderung erfolgt durch Methodenaufrufe ohne die Komponente hierbei neu bersetzen zu mssen

    Events: Die Interaktion zwischen Beans basiert auf dem Senden und Empfangen von Nachrichten. Eine Bean sendet Events um registrierte Listener ber nderungen ihres internen Zustandes oder sonstige wichtige Ereignisse zu unterrichten.

    Persistence: Jede Bean ist serialisierbar und desserialisierbar. Die Einstellungen und der Status einer Komponente knnen gespeichert werden.

    Introspection: Die Funktionalitt einer Bean kann von der Bean selbst erfragt oder durch Analyse der Komponentenklasse ermittelt werden. Dadurch knnen dem Entwickler alle ffentlichen Eigenschaften, Methoden und Ereignisse mengesteuert angeboten werden

    Session Bean: stellt Prozess fr einen Client , nicht persistent (Systemausfall), kann gemeinsamgenutzte Daten in einer Datenbank verndern. stateful: knnen Zustand speichern, einem Client zugeordnet:Bsp: Sie werden also bei einfachen Methodenaufrufen verwendet, wie z.B. bei Zahlungsvorgngen, bei denen eine Kreditkartennummer und der Betrag bermittelt wird, das Bean die Zahlungsfhigkeit berprft und dann eine positive oder negative Besttigung zurckschickt. Ein weiterer Anwendungsfall wre eine komplexere Berechnung. Dem Bean werden mehrere Eingangsdaten bergeben, die sie dann auswertet und ein Ergebnis zurckschickt. stateless: kein gespeicherter Zustang, Ausgabewert ausschlielich von Eingabewert abhngig, keine Client ZuordnungBsp: Als Paradebeispiel knnte man einen Webshop anfhren. Der Benutzer sucht sich eine Ware aus und legt sie in seinen Warenkorb. Das Bean mu sich jetzt natrlich merken, was alles im Warenkorb ist und speichert folglich ihren aktuellen Zustand. Dieser wrde jedoch verloren gehen, sofern es zu einer Strung, z.B. Client- oder Serverabsturz kommt. Dies ist bei Entity Beans nicht der Fall. Entity Bean: stellt Daten dar. Entitt oder Objekt im persistenten Speicher (meist DBMS) langlebig+ berlebt Abstrze, glz (shared) Datenzugriff von mehreren Cients mglich. Entity Beans sind fr die Behandlung von permanenten Daten in einem Anwendungsprogramm geeignet, da sie Persistenz gewhrleisten. Bei diesen Beans besteht nicht fr jeden Client eine eigene Instanz, sondern fr alle Clients eine gemeinsame, auf die jedoch ein gleichzeitiger Datenzugriff mglich ist. Hinter Entity Beans steht meist direkt eine Datenbank, d.h. es handelt sich hierbei um langlebige Komponenten, die auch Serverabstrze berleben. Alle Zugriffe unterliegen der Transaktionsverwaltung, d.h. die Daten bleiben in einem konsistenten Zustand. Bean-Managed: Bei den Bean-Managed EJB bleibt es dem Komponentenentwickler berlassen sich um die Persistenz zu kmmern. Er ist selbst dafr verantwortlich eine Verbindung zu einer Datenbank aufzubauen und die ntigen Daten darin zu speichern und auch wieder zu laden. Die Kommunikation mit der Datenbank knnte beispielsweise mittels SQL ber JDBC erfolgen. Dies erlaubt zwar eine hhere Flexibilitt, widerspricht aber eigentlich dem Prinzip der Kapselung der einzelnen Komponenten, da sich der Komponentenentwickler wieder sowohl mit seinem Anwendungsproblem als auch mit der Anbindung von Datenbanken auseinandersetzen mu und die Komponente dann auch abhngig an die jeweilige Datenbank gebunden ist.Container-Managed: Er mu hier lediglich beschreiben welche Daten er gespeichert haben mchte und der Container erledigt dann den Rest. D.h. der Container baut die Verbindung zur Datenbank auf, speichert, sucht und ldt die Daten von dort. Dies wird als auch als automatische Persistenz bezeichnet. Ein weiterer Vorteil ist die Unabhngigkeit von der Datenbank. Bei diesen Beans kann z.B. leicht von einer relationalen auf eine objektorientierte Datenbank umgestellt werden. Die Komponenten mssen deshalb nicht angepat werden. Einzige Voraussetzung ist, da der Container objektorientierte Datenbanken untersttzt.

    Message Driven Bean: stellt einen Nachrichten-Empfnger dar, Ist relativ kurzlebig , kein Zustand, eine direkte Client Zuordnung, horcht auf einem JMS Kanal. Einzige Asynchrone Bean! Bsp: So wre es z.B. mglich, da jemand ber ein mobiles Endgert in einem E- Commerce Shop etwas einkauft und nach dem Orderprozess sofort wieder offline geht. Es luft nun ein komplexer Orderprozess im Hintergrund ab, bei dem der Lagerbestand des bestellten Artikel geprft und eventuell bei Lieferanten nachbestellt oder eine Just in Time Produktion angestoen wird. Sobald der Orderprozess beendet ist und alle ntigen Informationen vorliegen bekommt der Kufer z.B. ber SMS eine Besttigung mit Lieferdatum. 3 wesentliche Rollen in einer EJB-Umgebung:Die EJB-Objekte => fhren Methoden aus (nach Anfrage eines Clients)Der EJB-Client => sucht, erzeugt, lscht Bean-Objekte, ruft Methoden von Beans aufDer EJB-Container => bernimmt die Verwaltung der AblufeDas EJB-Objekt:Wenn man ein EJB Objekt entwickelt, muss man drei Java-Interfaces/Klassen zur Verfgung stellen, um es fr einen EJB Container vollstndig zu beschreiben:Ein Bean-Interface (entfernte und/oder lokale Version)Ein Home-Interface (entfernte und/oder lokale Version)Eine Enterprise-Bean ImplementierungAbhngig von der Art der Bean kann es mehr oder weniger Klassen und Interfaces geben (z.B. Message-driven Beans, die kein Home-Interface bentigen) aber die angefhrten Elemente sind typisch fr die meisten Session- und Entity EJBs.Das Bean-Interface definiert die extern aufrufbaren Operationen der EJB. (entfernte Version => gibt Operationen an, die entfernte Clients aufrufen knnen, lokale Version => gibt Operationen an, die lokale Clients (andere EJBs, Java-Beans und Servlets, die in derselben JVM laufen)).Ein (lokaler oder entfernter) Client fhrt Methodenanfragen ber einen Stub durch, der von dem Bean-Interface abgeleitet ist, und irgendwann finden diese Anfragen ihren Weg zu der korrespondierenden Bean-Instanz, die innerhalb des EJB-Containers luft. Das Home-Interface stellt eine Objekt-Factory dar und bietet dem Client die Mglichkeit, die von ihm verwendeten EJB-Objekte zu erzeugen, zu lokalisieren und zu zerstren.Die Implementierung eines EJB Objektes muss alle Methoden implementieren, die in dem entfernten und lokalen Interface offen gelegt sind, und zustzlich einige Methoden, mit denen der Container das Objekt ber verschiedene Ereignisse der Lebenszeit informiert.Die Home- und Client Interfaces sind ausschlielich fr die Nutzung durch den Client vorgesehen; sie ermglichen dem Client, EJB Objekte zu erzeugen und ihre Methoden aufzurufen. Andererseits untersttzt die Implementierungsklasse einer Bean nicht nur die fr Clients zugnglichen Methoden, sondern auch jene, die der Container bentigt, damit er das EJB Objekt z.B. ber transaktions- oder persistenzbezogene Ereignisse informieren kann.Der EJB Client:Er benutzt entfernte EJB-Objekte, damit diese auf Daten zugreifen, Aufgaben ausfhren oder generell irgend etwas fr ihn erledigen. Als erstes sucht ein Client in einer EJB Umgebung das Home Interface des von ihm bentigten Bean-Objektes. Dieses Home-Interface ist eine Art Objekt-Factory, mit der man neue Instanzen eines EJB-Typs erzeugen, bestehende Instanzen suchen und EJB Objekte lschen kann. Die wesentlichen Schritte, die ein EJB Client durchfhrt, sind die folgenden:Er holt einen JNDI-Kontext vom EJB/J2EE Server.Er sucht mit diesem Kontext das Home-Interface der zu verwendenden Bean.Mit Hilfe dieses Home-Interfaces erzeugt (oder findet) er eine Referenz auf eine EJB.Er ruft Methoden dieser Bean auf.

    Im AS integriert.Der EJB ContainerSpezielle Applikationsserver wie z.B. JBoss hat einen internen EJB Container.Der EJB Container implementiert die erweiterten Mglichkeiten, die EJB bietet. Er verwaltet den Lebenszyklus der EJBs sowie die gesamte Transaktionsverarbeitung, die Sicherheit, das Ressourcen-Pooling und die Datenpersistenz. Damit erleichtert er den Client-Anwendungen und den EJB Objekten ihre Arbeit und ermglicht ihnen, sich auf ihre eigentliche Aufgabe zu konzentrieren.EJB Container: das Herz der EJB Umgebung. Registriert das Home Interface zu jedem Bean-Typ unter einem festgelegten Namen in einem JNDI Namensraum und ermglicht es damit den Clients, das Home-Interface zu finden und es zur Erzeugung von Enterprise-Beans zu verwenden.Der EJB Container erzeugt jene Klassen, die alle Komponenten zusammenhalten.Bei der Inbetriebnahme eines EJB Objekts in einem EJB Server kann man angeben, wie der Container die Bean zur Laufzeit bezglich der Transaktionsverwaltung, des Ressourcen Pooling, der Zugriffskontrollen und der Datenpersistenz behandeln soll. Fr diesen Zweck werden Daployment Deskriptoren eingesetzt, die Parametereinstellungen fr diese diversen Optionen enthalten.In grn: Bean-eigene Interfaces/KlassenIn rot: Vom EJB-Container generierte Klassen

    EnterpriseBeans (EBeans) sind die verteilten Komponenten, die in EJBs verwendet werden.EBeans sind in JAVA geschrieben.

    Wenn eine EBean entwickelt ist, kann sie mit anderen EBeans zu komplexen Anwendungen kombiniert werden. Der EBean- Einsatz erfolgt im Kontext eines EJB-Containers

    Transaktionsorientert: optimieren die Strukturierung der gespeicherten Daten im Hinblick auf dievorzunehmenden Transaktionen (z.B. durch Redundanzvermeidung).

    WORA- Write Once Run Anywhere

    Deployment Time: Verhalten bzgl. Persistenz und (TA-) Sicherheit kann durch deklarative Attribute festgelegt werden.Deklarativ bedeutet in diesem Zusammenhang, dass vorhandener Quelltext nicht modifiziert werden muss und dieKlassen nicht erneut kompiliert werden mssen. Zur Laufzeit liest das Programm die ntigen Informationen aus einerDeskriptor-Datei aus, um sich dann dynamisch umzukonfigurieren.

    EnterpriseBeans (EBeans) sind die verteilten Komponenten, die in EJBs verwendet werden.EBeans sind in JAVA geschrieben.

    Wenn eine EBean entwickelt ist, kann sie mit anderen EBeans zu komplexen Anwendungen kombiniert werden. Der EBean- Einsatz erfolgt im Kontext eines EJB-Containers

    Transaktionsorientert: optimieren die Strukturierung der gespeicherten Daten im Hinblick auf dievorzunehmenden Transaktionen (z.B. durch Redundanzvermeidung).

    WORA- Write Once Run Anywhere

    Deployment Time: Verhalten bzgl. Persistenz und (TA-) Sicherheit kann durch deklarative Attribute festgelegt werden.Deklarativ bedeutet in diesem Zusammenhang, dass vorhandener Quelltext nicht modifiziert werden muss und dieKlassen nicht erneut kompiliert werden mssen. Zur Laufzeit liest das Programm die ntigen Informationen aus einerDeskriptor-Datei aus, um sich dann dynamisch umzukonfigurieren.

    EnterpriseBeans (EBeans) sind die verteilten Komponenten, die in EJBs verwendet werden.EBeans sind in JAVA geschrieben.

    Wenn eine EBean entwickelt ist, kann sie mit anderen EBeans zu komplexen Anwendungen kombiniert werden. Der EBean- Einsatz erfolgt im Kontext eines EJB-Containers

    Transaktionsorientert: optimieren die Strukturierung der gespeicherten Daten im Hinblick auf dievorzunehmenden Transaktionen (z.B. durch Redundanzvermeidung).

    WORA- Write Once Run Anywhere

    Deployment Time: Verhalten bzgl. Persistenz und (TA-) Sicherheit kann durch deklarative Attribute festgelegt werden.Deklarativ bedeutet in diesem Zusammenhang, dass vorhandener Quelltext nicht modifiziert werden muss und dieKlassen nicht erneut kompiliert werden mssen. Zur Laufzeit liest das Programm die ntigen Informationen aus einerDeskriptor-Datei aus, um sich dann dynamisch umzukonfigurieren.