Dr. Welf Löwe und Markus Noga1 Java und Enterprise Java Beans Arnold, Gosling. Java Language Manual. Version 1.1. www.javasoft.com. Privat einmal ausdruckbar.

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

E-Commerce Shop System
C ommon O bject R equest B roker A rchitecture
DI Christian Donner cd (at) donners.com
Aktuelle Java-Trends, Norbert Schuler1 Jini Java im Netz.
Basis-Architekturen für Web-Anwendungen
© 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, Gerald Weber.
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Objektorientierte Programmierung
Datenbankzugriff im WWW (Kommerzielle Systeme)
Lightweight Directory Access Protocol
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Stephan Bury  Pascal Busch  Bita Gerami
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
DOM (Document Object Model)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Java2 Enterprise Edition René Noack Mai 2003
JAVA RMI.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Remote Methode Invocation (RMI)
DVG Klassen und Objekte
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
JDBC: JAVA Database Connectivity
Workshop: Active Directory
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Eine Präsentation von Peter Rasser
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
CGI (Common Gateway Interface)
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Management- und Web Services- Architekturen
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
XML und Datenbanken © 2006 Markus Röder
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Datenanbindung in Webapplikationen
Untersuchungen zur Erstellung eines
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Reinhold Rumberger Web Services.
Enhydra Shark Workflow-Management Frank Aurich Markus Reisch.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Vortrag - Diplomarbeiten (HS I)
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
EJB Architektur für große Web - Applikationen Gerald Weber
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Web Services Dr. Wolfgang Wörndl
Verteilte Anwendungen: J2EE
 Präsentation transkript:

Dr. Welf Löwe und Markus Noga1 Java und Enterprise Java Beans Arnold, Gosling. Java Language Manual. Version Privat einmal ausdruckbar. JavaSoft. Java Beans Specification. Gut lesbar, schöne Einführung zu den Konzeptenwww.javasoft.com JavaSoft. Enterprise Java Beans Specification Umfassende Erklärung.

Dr. Welf Löwe und Markus Noga2 Geschichte von Java Ursprung: Eingebettete Systeme für Hausgeräte –Neue Sprache an C++ angelehnt –Reduktion der Komplexität –Exakt und sauber spezifiziert Verbreitung durch Java-Applets in Netscape (1994) –Java benutzt das Web als Zugpferd, so wie C UNIX –Write once, run anywhere (WORA) durch Virtual Machine –Frei nutzbar, doch feste Schnittstellen (Lizenzvertrag) Klassenbibliotheken: –AWT, Swing (GUI) –Java Beans (1997) –Enterprise Java Beans (1998/99)

Dr. Welf Löwe und Markus Noga3 Spracheigenschaften Objektorientiert Mehrfachvererbung von Schnittstellen Einfachvererbung von Code Automatische Speicherbereinigung Keine Zeiger, nur Referenzen –Keine Funktionsparameter –Callbacks durch Hilfsklassen möglich Synchronisation mit kritischen Abschnitten auf Methoden Einfaches, hierarchisches Paketkonzept –Entspricht Namensräumen Keine Generizität Extraktion von Dokumentation ( javadoc )

Dr. Welf Löwe und Markus Noga4 Laufzeitumgebung Java Virtual Machine –Abstraktion von konkreter Maschine und Plattform –prinzipiell sprachunabhängig –Übersetzer für andere Sprachen, z.B. ECMAscript Java Bytecode –Stapelorientiert (für Interpretation durch Java Virtual Machine) –Plattformunabhängig –Volle Typinformation –Sicherheit durch Bytecode Verifier prüfbar

Dr. Welf Löwe und Markus Noga5 Klassen und Dateien Einbettung in Dateisystem –Eine öffentliche Klasse pro Datei –Pakete entsprechen Verzeichnissen –Auffindung: Suchpfad CLASSPATH Definiert Abbildung von Namen auf Klassen Primitive Registrierdatenbank Pendant zu CORBA interface/implementation repositories Eintragen von Klassen durch Kopieren im Dateisystem Java Archive Format (JAR) –Im Prinzip ZIP –Klassendateien –Serialisierte Objekte –Dokumentation

Dr. Welf Löwe und Markus Noga6 Dienste der Bibliothek Reflektion (Java Reflection) mit Klassenobjekten java.lang.Class –Zugriff auf Felder mit java.lang.Field –Zugriff auf Methoden mit java.lang.Method Parallelität durch Threads mit java.lang.Thread Ereignisse mit EventListener Persistenz durch Serialisierung mit java.io.ObjectOutputStream Enterprise APIs: Frontend für Dienste aller Anbieter –Verteilung mit Java RMI –Namen über Java Naming Directory Interface (JNDI) –Datenbankzugriff über Java Database Connection (JDBC) –Transaktionen mit Java Transaction Server (JTS) Makeln mit Java Intelligent Network Infrastructure (JINI) Anbindung fremder Sprachen über Java Native Interface (JNI) Java Spaces (Tuple space à la LINDA, typisierte Whiteboards)

Dr. Welf Löwe und Markus Noga7 Kardinalproblem Leistung Bytecode ist Kellerarchitektur –gut interpretierbar –schlecht auf reale Maschinen abzubilden Registerzuteilung Superskalarität Codeauswahl Nur primitive Skalare als Wertetypen –Objektidentität ist Overhead (Objekte min. 32 Byte) –Objekterzeugung ist teuerste Operation Sprache teilweise überdefiniert –Reihenfolge der Parameterauswertung –Reihenfolge von Ausnahmen

Dr. Welf Löwe und Markus Noga8 Standardisierung Java gehört Sun Microsystems –Definition von Schnittstellen in einem öffentlichen Prozess –Jeder kann Vorschläge einbringen –Java Community Process, Java Developer Connection –Ziel: Abwenden von Zersplitterung durch Konkurrenten Ob Java ein ISO-Standard wird, ist fraglich Was passiert, wenn Java den Markt dominiert, aber proprietär bleibt?

Dr. Welf Löwe und Markus Noga9 Was fehlt von CORBA? Plattformunabhängig, doch de facto sprachabhänig –Keine IDL Fehlende Dienste –Relationen –strukturierter Speicher –Lizensierung nicht allgemein gelöst –Container (keine typisierten generischen Behälter bis auf Array) Keine vertikalen facilities –Zeitfrage? Anschluß an CORBA in EJB vorhanden

Dr. Welf Löwe und Markus Noga10 JavaBeans Erste Komponentenarchitektur für Java (1997) Ziel: Visuelle Komposition in Entwicklungsumgebungen –insbesondere GUI –motiviert durch Borland/Inprise Delphi Nicht abgedeckt –Verteilung –Persistenz –Schnittstellen zu Fremdsystemen Ansatz: –Standardisierung von Schnittstellen –Speicherung von Metainformationen

Dr. Welf Löwe und Markus Noga11 Bean und BeanInfo Bean –Enthält Funktionalität –Standardisierte Namensgebung set/getXXX für Attribute add/RemoveXXXListener für Ereignisse –Unterstützung für Ereignisadapter BeanInfo –Enthält Metainformation über Attribute, Ereignisse –Erlaubt Reflektion über Beans, z. B. durch Entwicklungsumgebung Semantikannotation insgesamt schwach –Fast ausschließlich über Namensgebung –keine Erweiterung à la Corba Properties –dafür erneutes Übersetzen nötig

Dr. Welf Löwe und Markus Noga12 XML Beans Idee: Konvergenz von JavaBeans und XML IBM Bean Markup Language kodiert BeanInfo Auch Komposition, Referenzen auf Beans Serialisierung von Java-Objekten nach XML BML Compiler komponiert statisch Siehe

Dr. Welf Löwe und Markus Noga13 Enterprise JavaBeans (EJBs) Ziel: Plattform für verteilte (Geschäfts)-Anwendungen Transparenz von –Verteilung und Parallelität –Persistenz und Transaktionen –Resourcenmanagement Komposition ohne Rekompilation –Erzeugen von Anpassungen Offene Anbindung von Komponenten und Werkzeugen –durch herstellerunabhängige Schnittstellen (z.B. JNDI, JDBC) –durch CORBA Anbindung Gemeinsamkeiten mit einfachen JavaBeans –Name –Namensgebung der Schnittstellen

Dr. Welf Löwe und Markus Noga14 EJBs, Behälter und Deskriptoren Komponenten: Klassen, die EJB Interface implementieren –Lebenszyklus –Geschäftsfunktionalität Verwaltung in Behältern (BeanContainer) –Auffindung –Stellt Ausführungskontext bereit, z.B. Thread –Verwaltet Lebenszyklus, Persistenz von Zuständen –Sicherheits- und Transaktionsverwaltung –Kontrolle aller Außenkontakte Beschreibung durch XML Bean Descriptor –z.B. Attribute, Geschäftsmethoden –Anpassung an Behälter in Deployment Phase

Dr. Welf Löwe und Markus Noga15 Drei Sorten EJBs Zustandslose Session Beans –Träger von Geschäftslogik –gebunden an eine Benutzersitzung –Instanzen einer Klasse ununterscheidbar Zustandsbehaftete Session Beans –wie oben, nur mit Zustand und damit unterscheidbar Entity Beans –Träger von Geschäftsdaten –persistent –entsprechen meist einer Datenbankzeile –selbst oder durch Container verwaltet

Dr. Welf Löwe und Markus Noga16 Beans aus Kundensicht

Dr. Welf Löwe und Markus Noga17 Die Kundenschnittstelle (client view) Invariant bezüglich Server und Container Heimatschnittstelle (erbt von javx.ejb.EJBHome ) –Standardisiert –Auffinden von Beans mit JNDI –Erzeugen, Löschen –evtl. globale Identifikatoren mit getPrimaryKey() Entfernte Schnittstelle (erbt von javx.ejb.EJBObject ) –Definiert durch Anbieter der EJB –Bietet Geschäftsfunktionalität Metadaten (erbt von javx.ejb.Metadata ) –zur Reflektion über die Bean

Dr. Welf Löwe und Markus Noga18 Die Container-Komponenten-Schnittstelle Entspricht CORBA BOA Schnittstellen für Container und Komponente –SessionBean-Schnittstellen javax.ejb.SessionBean –EntityBean-Schnittstelle javax.ejb.EntityBean –Container-verwaltete Persistenz –Session-Kontext-Schnittstelle –JNDI-Namenskontext –Transaktionsverwaltung Distribution als EJB JAR –Klassenbytecode –Deployment-Deskriptor

Dr. Welf Löwe und Markus Noga19 Deployment-Deskriptor EJB Eigenschaften –Namen: Name, Klasse, Heimatschnittstellenname, Remote- Schnittstellenname, Klasse des primären Schlüssels –Typ (Session, entity) –Zustand –Persistenzverwaltung –Referenzen auf andere EJB Zusatzinformation für Anwendungsersteller –Name, Umgebungswerte, Beschreibungsfelder –Einbettung in Transaktionen Deskriptor ist XML-Dokument nach DD-DTD

Dr. Welf Löwe und Markus Noga20 Ein Deployment-Deskriptor This is an EJB Session bean 1 here EmployeeService com-wombat.empl.EmployeeServiceHome com.wombat.empl.EmployeeService com.wombat.empl.EmployeeServiceBean ejb-EmplRecords …

Dr. Welf Löwe und Markus Noga21 Anpassungen in der Deployment Phase Erzeugung von Klassen –entfernte Schnittstelle –Metadaten –Lokale Handles und Klebecode Generierte Anpassungen –Anpassung Bean / Container analog zu CORBA BOA –Einweben von Aspekte aus Bean Descriptor Persistenz Transaktionsverwaltung Komposition

Dr. Welf Löwe und Markus Noga22 Entwicklerrollen bei EJB Bohnenbauer (bean provider) ist ein Anwendungsexperte und baut ein EJB-jar mit fachspezifischen Methoden, Deployment-Deskriptor, remote, home interface Anwendungsersteller (application assembler, Anwendungsexperte) komponiert EJB zu grösseren EJB, d.h. Anwendungseinheiten. Er erweitert dazu die Deployment-Deskriptoren. Anwender (deployer) setzt die EJB in eine Umgebung ein, die aus einem EJB Server und Container (Adapter) besteht. Damit wird die EJB mit einem EJB-Container verbunden, konfiguriert und einsatzfähig EJB-Server-Hersteller (server provider) ist ein Spezialist in Transationsmanagement und verteilten Systemen und stellt für die Bohnen diese Basisfunktionalität zur Verfügung. EJB-Container-Hersteller (container provider) liefert mit dem Container Werkzeuge zur Konfiguration und zur Laufzeitinspektion von EJB. Der Container sorgt für die Persistenz von Dauerbohnen, Generierung von Kommunikationscode (Klebecode) zu unterliegenden Datenbanken,

Dr. Welf Löwe und Markus Noga23 Szenario Aardvark Lohnbuch Jar EJB Berdvark Datensatz Aardvark Lohnbuch Aardvark Lohnbuch Berdvark Dienst Jar mit Kompositionsanweisungen Berdvark Datensatz Aardvark Lohnbuch Berdvark Dienst Angewendete EJB Cerdvark FIBU Cerdvark EJB Container Cerdvark EJB Server Web Server Datenban k Formulare Altsysteme Assembling Deploying

Dr. Welf Löwe und Markus Noga24 Sitzungsbohnen (session beans) Transient oder halb-transient, ausgeführt auf Anfrage eines einzelnen Kunden hin möglicherweise in Transaktion ausgeführt stirbt mit dem Bohnen-Container zustandsbehaftet oder auch nicht Passivierung bedeutet –Serialisierung aller Objekte, die transitiv von nicht-transienten Attributen aus erreichbar sind Aktivierung bedeutet Deserialisierung. Session-Kontext hält den jeweiligen Zustand fest

Dr. Welf Löwe und Markus Noga25 Erzeugen von Sitzungsbohnen Kunde EJB Heimat EJB Objekt Sitzungs- Kontext Instanz Create New SetSessionContext ejbCreate(args) Das ist nur eine von sehr vielen Protokollspezifikationen der EJB Standard- komponenten. Die Protokolle definieren zusätzlich zum Typcheck verschärfte Zusammensetzbarkeits- kriterien.

Dr. Welf Löwe und Markus Noga26 Dauerbohnen (entity beans) persistent mehrbenutzerfähig, transaktionsorientiert globaler Identifikator (analog GUID, IOR) ähnlich zu Monikers und Corba-Objekten

Dr. Welf Löwe und Markus Noga27 Szenario Context initialContext = new InitialContext(); CartHome cartHome = (CartHome)javax.rmi.PortableRemoteObject.narrow( initialContext.lookup("applications/mail/freds-carts"), CartHome.class); Cart cart = cartHome.create(...); // EJB spezifisch, vom Bohnenbauer spezifiziert cart.addItem(66); cart.addItem(44); // Speichere die Sitzungsbohne Handle cartHandle = cart.getHandle();.. serialisiere auf Datei Handle cartHandle =.. deserialisiere von Datei Cart cart = (Cart)javax.rmi.PortableRemoteObject.narrow( cartHandle.getEJBObject(), Cart.class); cart.purchase(); cart.remose();

Dr. Welf Löwe und Markus Noga28 JINI intelligent networks JINI ist der Java Maklerdienst (trading service). –Verwirklicht dynamischen Aufruf und Dienstvermittlung –ähnlich wie in CORBA werden Dienste durch Schnittstellen und Eigenschaften (properties) beschrieben Dienste können im Netz gesucht werden durch Makler (lookup service LUS) –Wird ein entsprechender Dienst geladen, wird auf dem Kunden ein Stellvertreterobjekt erzeugt, dass die Kommunikation mit dem Dienst regelt (analog DCOM) –baut auf RMI, JNDI, Migration auf. Klassen werden im Bytecode verschickt Leasing ist möglich durch eine Leases-Schnittstelle Dienste können in Gruppen organisieren. –Ein Drucker kann sich zur Hardware-, Durcker- oder Raum111-Gruppe zuordnen Es gibt verschiedene Suchprotokolle

Dr. Welf Löwe und Markus Noga29 JINI - Generelles Schema Anbieten –Suchen des Maklers (discovery) –Anbieten beim Makler (join) –Dienst wird nur eine Weile veröffentlicht (leasing) Finden –Suche nach Makler (discovery) –Suche nach Dienst (lookup) –Benutzung (use) Also: nichts neues unter der Sonne

Dr. Welf Löwe und Markus Noga30 Wie die Zukunft aussehen wird Java wird ein harter DCOM-Konkurrent werden. Prognose der Gartner Group (Information week 10/99): –75% aller Großunternehmen setzen bereits heute Java ein –Microsoft wird es nicht gelingen, Java an den Rand zu drängen. –Im Jahr 2002 wird Java die wichtigste Technologie für Netzwerkapplikationen sein (bei mehr als 60% der Unternehmen) –2001 wird die Geschwindigkeit von Java in 95% aller Anwendungen keine Rolle mehr spielen