Objektorientierter Systementwurf mit Java



Ähnliche Dokumente
Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Enterprise JavaBeans (mit JBoss)

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

EJB jar.xml und Name Service (JNDI)

Enterprise Java Beans

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

ORACLE Business Components for Java (BC4J) Marco Grawunder

ATHOS Benutzertreffen 2012 ODS 5.3.0

CORBA. Systemprogrammierung WS

Warum EJB Technologie (1)?

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

Der lokale und verteilte Fall

FH LU JEE Vorlesung SS Ralf Gitzel

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Client-Server-Beziehungen

Software Entwicklung II (SS12)

Informationsintegration und Web-Portale. Tutorial: Enterprise Java Beans. Erik Buchmann

Java Beans Enterprise Java Beans. Eine kurze Einführung in die Welt der Bohnen

Einführung in die Programmierung für NF

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)

Sorgfalt im Umgang mit Identitätskennungen (fürs Zertifikat)

Enterprise Java Beans Einführung

BIF/SWE - Übungsbeispiel

Einführung in WebCT CE 6 Blackboard Learning System

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Assoziation und Aggregation

Studienplan TECHNIKPÄDAGOGIK AUFBAUSTUDIENGANG Anhang C. Universitätsstr. 38 Tel

Informationsblatt zu den Seminaren am Lehrstuhl. für Transportsysteme und -logistik

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

AJAX Implementierung mit Joomla!

Übungsaufgabe Transaktion als Middleware

Liste V Enterprise JavaBeans

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Innovator 11 classix. Enterprise JavaBeans (EJB) für JBuilder. Connect. Alexander Borschet.

Arrays Fortgeschrittene Verwendung

Clustering von Application Servern am Beispiel von JBoss 3.2

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, Universität Freiburg, Germany

Single Sign-on im SAP environment. SAGA Arbeitsgruppe SAP Basis Linz, Günther Berger

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Web Application Security

Applet Firewall und Freigabe der Objekte

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Federated Identity Management

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Kleines Handbuch zur Fotogalerie der Pixel AG

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Einführung in die Programmierung

ASB - Automatische Software-Bewertung

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

Dokumentation. Passwortgeschützte Webseite anlegen

Online Banking System

Übungen zur Softwaretechnik

Einsatz von E-Learning in Vorlesungen und Seminaren

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

11. Enterprise Java Beans Grundlagen der Programmierung II (Java)

Anwendung eines Enterprise Java Beans

Übungsblatt 5 - Lösungshilfe

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Software Engineering Klassendiagramme Assoziationen

Etablierung serviceorientierter Architekturen mit Web Services

Java Einführung Packages

Java: Vererbung. Teil 3: super()

Programmieren Tutorium

Folie 2 1. Profilverwaltung OIP-Benutzer tapiadmin einrichten. Folie 4 2. tapiadmin den "TAPI_ADMINISTRATORS" zuordnen

SJ OFFICE - Update 3.0

JSP vs. PHP. Ein persönlicher Vergleich. EQUIcon Software GmbH Jena, Jörg Spilling Frankfurter Treffen Agenda

JDO Java Data Objects

Die neue RA-Oberfläche der DFN-PKI. Jan Mönnich

Anforderungen an die HIS

Software Systems Engineering

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Einführung in die Programmierung für Wirtschaftsinformatik

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

VMware VVOLs mit HP 3PAR

Datenbanken auf Sybase SQL-Anywhere

Application Frameworks

Kommunikation. Sitzung /11. Dezember 2015

Grundbegriffe der Informatik

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

ModeView Bedienungsanleitung

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Klausur zur Einführung in die objektorientierte Programmierung mit Java

3-schichtige Informationssystem-Architektur

Stud.IP. Inhalt. Rechenzentrum. Vorgehen zur Eintragung in Veranstaltungen / Gruppen. Stand: Januar 2015

Datenmanagement in Android-Apps. 16. Mai 2013

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Transkript:

Objektorientierter Systementwurf mit Java Seminar im Arbeitsbereich Technische Informatik (SoSe 2001) EJB-Design und Implementierung in der Praxis (Tobias Frech)

Übersicht Design-Entscheidung Persistenz: CMP oder BMP Logik: Entity oder Vererbung mit EJB Design einer Beipielapplikation

Themeneingrenzung

EJB Wiederholung Client: (Applikation / Applet / JSP / Servlet) Server: (EJB Server) HomeInterface RemoteInterface Container Implementierung

Beispielapplikation: Vorlesungsverwaltung Person Veranstaltung Student Dozent Seminar Vorlesung Übung Hauptseminar Proseminar

Beispielapplikation: Vorlesungsverwaltung Vererbung zwischen Beans wird im EJB Standard explizit ausgeklammert praktisch aber "Mission possible" Person ID: Integer Name: String getid(): String setid(id: String) getname(): String setname(name: String) Student Veranstaltung Raum: String Termin: String Teilnehmer: List get/set... anmelden(teilnehmer: Student) Seminar Vortragende: List traegtvor(dozent: Student) MatrikelNo: String HatVordiplom: Boolean getmatrikelno(): String setmatrikelno(no: String) gethatvordiplom(): Boolean sethatvordiplom(stat: Boolean) Hauptseminar traegtvor(dozent: Student)

Design-Entscheidung CMP oder BMP CMP: Container Managed Persistence Daten Daten Container Entity BMP: Bean Managed Persistence Container Entity steuert Daten bank Daten bank + sehr portabel + kein Datenbankcode Kontrolle nur über Deskriptor + volle Kontrolle eigener Datenbankcode evtl. schwieriger zu portieren

Vererbung mit/bei CMP Person ID: Integer Name: String getid(): String setid(id: String) getname(): String setname(name: String) Student MatrikelNo: String HatVordiplom: Boolean getmatrikelno(): String setmatrikelno(no: String) gethatvordiplom(): Boolean sethatvordiplom(stat: Boolean) PersonDB StudentDB ID Name ID Name MatrikelNo HatVordiplom

Wohin mit der Logik? Entity Geschäftsprozeß? Stateful Stateless

Wohin mit der Logik: Design-Prozeß Entity Locking Blockieren Reentrant Zustand wichtig? Verklemmungen (dead locks)? bei hoher Last? Aufwand für Synchronisierung! Stateful Stateless

Beispielapplikation: Vorlesungsverwaltung create Anmelden Home Anmelden lookup Hauptseminar Home traegtvor lookup Hauptseminar Student Home gethatvordiplom Student

Vererbung mit EJB: Mission impossible PersonDB Person suchen Client StudentDB erstellen Student Lösungsansatz: Typ des gesuchten Objekts vorab "wissen"

Vererbung praktisch: super() create: Veranstaltung Seminar Hauptseminar leere "Raum" leere "Termin" lege Teilnehmer Array an create: create: anmelden: anmelden: anmelden: speichere Student in Teilnehmer Array lege Vortragenden Array an super.create() (vererbt) (vererbt) hole "HatVordiplom" des Studenten überprüfen super.anmelden()

Zusammenfassung Entwurfsentscheidungen: CMP oder BMP Wohin mit Geschäftsprozessen Locking Blockieren Reentrant Container Daten Daten Entity Entity bank Zustand wichtig? Stateful Stateless Vererbung: grundsätzlich ok Suchen (lookups) problematisch super() Benutzung Veranstaltung PersonDB Raum: String Person Veranstaltung Seminar Hauptseminar Termin: String ID: Integer Teilnehmer: List create: create: create: Person Name: String leere "Raum" lege Vortragenden get/set... suchen leere "Termin" Array an getid(): String (vererbt) anmelden(teilnehmer: Student) lege Teilnehmer super.create() setid(id: String) Client Array an getname(): String setname(name: String) anmelden: anmelden: anmelden: Student MatrikelNo: String HatVordiplom: Boolean Seminar Vortragende: List traegtvor(dozent: Student) erstellen Student StudentDB speichere Student in Teilnehmer Array (vererbt) hole "HatVordiplom" des Studenten überprüfen super.anmelden() getmatrikelno(): String setmatrikelno(no: String) gethatvordiplom(): Boolean sethatvordiplom(stat: Boolean) Hauptseminar anmelden(teilnehmer: Student)