SlideShare a Scribd company logo
1 of 68
Download to read offline
KIT – Universität des Landes Baden-Württemberg und 
nationales Forschungszentrum in der Helmholtz-Gemeinschaft 
INFORMATIONSINTEGRATION UND WEBPORTALE 
www.kit.edu 
Klick-And-Bau 
Informationsintegration und Webportale 
INFORMATIONSINTEGRATION UND WEBPORTALE 
Mehrschichtenarchitekturen und Enterprise Java Beans 
Dr. Simone Braun
Informationsintegration und Web-Portale Wintersemester 2014/2015 
2 
ZU MEINER PERSON 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
3 
Dr. Simone Braun (CAS Software AG, früher FZI) 
Ausbildung Promotion über kollaborative Ontologieerstellung in der Anwendung von Social Semantic Tagging, Prof. Studer, AIFB Aktuelle Tätigkeit Manager Innovation & Business Design, CAS Software AG Interessen CRM, xRM, Wissensmanagement, Semantic Web, E-Learning, Cloud Computing Aktuelle Projekte Broker@Cloud – Continuous Quality Assurance and Optimisation for Cloud Brokers MAC4U - Mass Customization für individualisierte Produkterweiterungen OSMOSE – OSMOsis applications for the Sensing Enterprise Lehre Seit 2008 TGL-Seminar im SoSe: http://tgl.fzi.de Seit 2011 IIWP Mehrschichtenarchitekturen für skalierbare, zuverlässige, wartbare Anwendungen Konzepte zur Informationsintegration, d.h. Einbindung externer Inhalte & Quellen 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
4 
CAS Software AG 
Deutscher CRM-Marktführer für KMU 
Beteiligungen 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
5 
CAS SmartCompanies & SmartEnterprise 
„To each customer their own CAS“ 
Car Dealerships 
Efficient & professional customer management tailored to the car trade 
Successful Relationships 
Educational 
Institutions 
SMEs 
Aviation 
Industry 
Multi-variant 
Production / Services 
Business Ecosystems 
Associations 
Networks 
Flexible solutions for hihger education and schools to suit individually defined processes 
Multi-awarded market-leading xRM solution for SMEs 
Individual solutions for product configuration management and sales processes for aviation industries 
Software solution and expert knowledge for configuration and sales support of complex products 
Smart solutions for strategic cooperation and efficient cross- company processes 
Innovative software solution for networks with integrated portal for communication purposes 
Devolpment / Production 
Development, PM, Test, QM, Support, Innovation Management, Design Thinking 
Services 
Marketing, Communication, Finance, HR, IT, Acedemy 
xRM Plattform 
CAS SmartDesign 
IT Platform 
CAS SmartEnterprise Plattform 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
6 
MOTIVATION MEHRSCHICHTEN- ARCHITEKTUREN 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
7 
Herausforderungen 
Wie baut man moderne Shop-Anwendungen? Wie baut man sie skalierbar wartbar zuverlässig? 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
8 
Beispielszenario Baumärkteportal Für einen Kunden soll ein Konsumenten-Portal Klick-Und-Bau.com erstellt werden 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014 
Warenkatalog 
Redaktioneller Teil 
Onlinebestellung 
Angebote verschiedener 
Baumärkte 
Personalisierte Angebote 
Community: Produktbewertungen 
Anbindung an Bezahlsysteme 
Klick-And-Bau Informationsintegration und Webportale
Informationsintegration und Web-Portale Wintersemester 2014/2015 
9 
Baumärkteportal: Inhalte und Quellen 
Eine Analyse der Inhalte und Quellen führte zur folgenden Übersicht 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014 
Anbieter 1: OBI 
Waren- verwaltung 
Bestell- 
system 
Anbieter 2: Hornbach 
Waren- 
verwaltung 
Bestell- 
system 
Anbieter 3: Praktiker 
Waren- verwaltung 
Bestell- 
system 
Anbieter 3: Hagebau 
Waren- 
verwaltung 
Bestell- 
system 
DoYou 
Google+ 
Facebook 
Twitter 
VISA 
Paypal 
MasterCard 
Maestro 
Klick-und- bau.com 
Waren- 
verwaltung 
Bestell- 
system 
Kunden- verwaltung 
Bezahl- system 
Such- maschine 
Content- Management 
Webseiten- verwaltung
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
10 
Beispiel für eine verteilte Shop- 
Anwendung 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Quelle: Prof. Thai 
17.11.2014
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
11 
Viele Daten & viel Datenaustausch 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Quelle: Prof. Thai 
17.11.2014
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
12 
Viele Anforderungen 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Quelle: Prof. Thai 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
13 
Herausforderungen (2) Skalierbarkeit Wie können wir wachsende Besucherzahlen bewältigen? Wie können wir ein wachsendes Produkt- und Dienstleistungsangebot bewältigen? Zuverlässigkeit Wie können wir unser System robust gegen Ausfälle gestalten? Wartbarkeit und Agilität Wie können wir neue Versionen ohne Ausfallzeiten online bringen? Wie können wir das System so gestalten, dass wir möglichst schnell Änderungen ohne Seiteneffekte umsetzen können? 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
14 
Technische Antworten Komponentenorientierung Ermöglichen modularen Aufbau Komponenten sind austauschbar, wiederverwendbar und möglichst isoliert wartbar Verteilung Lastausgleich Ausfallsicherheit durch Redundanz Hot Deployment Aktualisieren von Enterprise Anwendungen im laufenden Betrieb Kein Stoppen oder Neustarten des Servers Transaktionen Folge von Verarbeitungsschritten, die nur gemeinsam oder gar nicht durchgeführt werden 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
15 
MEHRSCHICHTEN- ARCHITEKTUREN 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
16 
Software-Architektur 
„The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.“ 
„eine strukturierte oder hierarchische Anordnung der Systemkomponenten sowie Beschreibung ihrer Beziehungen“ 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Quelle: Bass, Clemens, Kazman. Software Architecture in Practice. Addison-Weslay 1998 
Quelle: Helmut Balzert: Lehrbuch der Softwaretechnik. Spektrum Akademischer Verlag, 2011
Informationsintegration und Web-Portale Wintersemester 2014/2015 
17 
Schichtenarchitekturen Schichtung ist weit verbreitetes Architekturmuster Definieren Prinzipien zur Strukturierung von Software-Architekturen Häufig angewandt: hierarchische Strukturierung Jeder Schicht wird ein bestimmter Aspekt zugeordnet, z.B. Teil- Funktionalität, Komponente oder auch Klasse 
 Ordnet die Abhängigkeit von Komponenten in Schichten, die sich nur begrenzt gegenseitig nutzen dürfen, z.B. „höhere“ Schicht darf nur „tiefere“ Schichten verwenden 
 Beziehung der Komponenten untereinander ist zu beschreiben Ziel: Bessere Strukturierung und Reduktion von Komplexität 
 durch wechselseitige Abhängigkeiten 
 vereinfacht und abstrahiert die Funktionen der individuellen Komponenten 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
18 
Schichtenarchitekturen 
Die Komponenten einer Software- architektur können in logische Ebenen (Layer) angeordnet werden, z.B. in Ebene mit Komponenten zur Erzeugung der GUI und Kommunikation mit Nutzer Ebene mit Komponenten mit Anwendungslogik Ebene mit Komponenten zur Daten- /Ressourcenhaltung-, -management und -zugriff 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Präsentation 
Anwendungsebene 
Datenhaltung 
17.11.2014
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
19 
Schichtenarchitekturen 
Unterschiedliche Schichtenarchitekturen je nach dem wie und wo 
Präsentation, Anwendungslogik und Datenhaltung einer Anwendung 
implementiert sind 
Tiers = physische Verteilung von Schichten auf Rechner 
Layers = logische Verteilung 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
0 
10 
20 
30 
40 
50 
60 
70 
80 
90 
1. Qrtl. 2. Qrtl. 3. Qrtl. 
0 
20 
40 
60 
80 
100 
1. 
Qrtl. 
2. 
Qrtl. 
3. 
Qrtl. 
Präsentation Kontrolle 
Funktion 
Modell 
1. Qrtl. 2. Qrtl. 3. Qrtl. 
Ost 20,4 27,4 90 
West 30,6 38,6 34,6 
Nord 45,9 46,9 45 
Wie verteilen wir Funktionalitäten 
(z.B. als Schichten) auf 
verschiedene Rechner? 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
20 
1-Schichtenverteilung Präsentation, Anwendungslogik und Datenhaltung in einer Schicht Management der Ressourcen erfolgt zentral Software selbst kann hoch-optimiert werden (Trennung zwischen Schichten hier nicht zwingend notwendig) 
Nutzer arbeiten mit einer monolithischen Anwendung z.B. Textverarbeitung für einzelnen Nutzer; ggf. geteiltes Dateisystem 
Mehrere Nutzer: Mehrere Rechner mit monolithischer Anwendung über (grafische) Terminals verbunden z.B. typisch bei Mainframeanwendungen Windows oder Terminal Server (WTS) 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014 
Thin Client 
Terminal 
Mainframe
Informationsintegration und Web-Portale Wintersemester 2014/2015 
21 
Datenbankserver auf Daten- haltungsschicht 
Client mit 
Anwendung auf 
gemeinsamer 
Präsentations-/ 
Anwendungsschicht 
2-Schichtenverteilung aka. Client-Server-Systeme 
a)Trennung von Präsentation und dem Rest (Anwendungslogik und Datenhaltung) Client enthält Präsentation mit GUI und behandelt Interaktion mit Nutzer  Thin Client Server kapselt Anwendungslogik und Datenhaltung 
b)Trennung von Datenhaltung und dem Rest (Präsentation und Anwendungslogik) Client enthält Anwendung mit GUI und Logik  Fat Client Server kümmert sich um Datenmanagement und -haltung 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
22 
2-Schichtenverteilung Clients sind (weitgehend) unabhängig voneinander Es kann auch verschiedene Clients für verschiedene (Teil-) Funktionalitäten geben Erlaubt die Nutzung komplexerer GUI's mit intensiverer CPU-Nutzung, da Clients verteilt sind Universelle Kommunikationsschnittstellen zwischen Client und Server müssen bereitgestellt werden 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
23 
Thin Client / Fat Client 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
24 
2-Schichtenverteilung Nachteile bei a) Ein Server muss in der Regel alle Clients bedienen 
Nachteile bei b) Mehrere Server, die bzgl. dem Ressourcenzugriff nicht synchronisiert sind da gemeinsam genutzte Anwendungslogik fehlt (wo diese stattfinden kann) 
Client ist Integrator beim Zugriff auf Server mit verschiedenen Funktionalitäten 
Client muss wissen, wo was ist, wie er darauf zugreifen kann, wie Konsistenz garantiert werden kann, etc. 
Ineffizienz nur durch Erweiterung der Schichtverteilung zu lösen 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
25 
3-Schichtenverteilung Trennung der Präsentation, Anwendungslogik und Datenhaltung voll modularisiertes System Verschiedene Schichten können über Netzwerktechnologien miteinander kommunizieren Die Schichten werden dabei oft auch auf verschiedene Rechnersysteme verteilt Dadurch höhere Skalierbarkeit Ggf. Performanzverlust durch Verteilung Middleware wird als universelle Kommunikations-"Brücke" zwischen den einzelnen Schichten eingesetzt trennt Anwendungslogik zu einem gewissen Teil von der Kommunikationslogik erhöht die Interoperabilität von Softwaresystemen über Rechnergrenzen hinweg 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
26 
3-Schichtenverteilung Typisches Beispiel 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014 
Datenlogik & Datenhaltung 
Präsentation 
Anwendungslogik 
Client 
Application- Server 
Datenlogik & Datenhaltung 
DB-Server 
DB-Server
Informationsintegration und Web-Portale Wintersemester 2014/2015 
27 
3-Schichtenverteilung 
Prinzipien: Client-Server Architektur Jede Schicht (Präsentation, Anwendungslogik, Datenhaltung) sollte unabhängig sein und keine Abhängigkeiten zur Implementierung aufzeigen Nicht direkt verbundene Schichten sollten nicht miteinander kommunizieren Änderungen einer Plattform betreffen nur die darauf laufende Schicht 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
28 
3-Schichtenverteilung 
Präsentation Stellt UI zur Verfügung Behandelt Nutzerinteraktionen auch GUI oder Client View oder Front-end Sollte keine Anwendungslogik oder Datenzugriffslogik enthalten 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
29 
3-Schichtenverteilung 
Anwendungslogik Regelset zur Informationsverarbeitung Kann mehrere Nutzer verwalten Manchmal auch als Middleware oder Back-end bezeichnet Sollte keine Präsentations- oder Datenzugriffslogik enthalten 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
30 
3-Schichtenverteilung 
Datenhaltung physische Speicherspeicherung zur Datenpersistenz Managt Zugriff auf die DB Manchmal auch Back-end genannt Sollte keine Präsentations- oder Anwendungslogik enthalten 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
31 
N-Schichtenverteilung Durch Hinzufügen weiterer Schichten z.B. bei Web-Anwendungen durch zusätzlichen Web-Tier  Einsatz von komponenten-orientierten Frameworks, die auf Application Server basieren Komplette Frameworks für Mehrschicht-Anwendungen: .NET Framework Java J2EE Durch Verknüpfungen mehrerer Mehrschicht- Anwendungen über zusätzliche Integrationsschicht 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
32 
Ausgangslage Shop-Anwendung 
17.11.2014 
SAP R/3 
• • • 
• • • 
• • • 
Rohdaten und -dienste 
(nicht integriert) 
„Enterprise Application“ 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Client mit 
unterschiedlichen 
Fähigkeiten
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
33 
Mehrschichtenarchitektur 
17.11.2014 
SAP R/3 
• • • 
• • • 
• • • 
Rohdaten und -dienste 
(nicht integriert) 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Client mit 
unterschiedlichen 
Fähigkeiten 
Aufeinander aufbauende 
Applikationen 
Web-Server mit 
Personalisierungsschicht 
Datenlogik & Datenhaltung 
Anwendungslogik 
Präsentation
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
34 
Mehrschichtenarchitekturen 
17.11.2014 
SAP R/3 
• • • 
• • • 
• • • 
Rohdaten und -dienste 
(nicht integriert) 
Interaktion 
Geschäftsprozesse (auf Basis der Geschäftsobjekte) 
Geschäftsobjekte (technisch und inhaltlich integrierte Daten) 
Datenmanagement und Systemintegration 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Client mit 
unterschiedlichen 
Fähigkeiten
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
35 
Modularisierung 
17.11.2014 
SAP R/3 
• • • 
• • • 
• • • 
Rohdaten und -dienste 
(nicht integriert) 
Interaktion 
Geschäftsprozesse 
Geschäftsobjekte 
Datenmanagement und Systemintegration 
Kalender 
Baumansicht 
Produktsuche 
Produkt 
Kunde 
Verfügbarkeits-prüfung 
Authentisierung 
Transaktions-verwaltung 
RDBMS- XML Parsen 
Anbindung 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Client mit 
unterschiedlichen 
Fähigkeiten
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
36 
„Separation of Concerns“ – Trennung von 
Aufgabenbereichen/Belangen 
17.11.2014 
SAP R/3 
• • • 
• • • 
• • • 
Rohdaten und -dienste 
(nicht integriert) 
Interaktion 
Geschäftsprozesse 
Geschäftsobjekte 
Datenmanagement und Systemintegration 
Kalender 
Baumansicht 
Produkt 
Kunde 
Verfügbarkeits-prüfung 
Authentisierung 
RDBMS-Anbindung 
Produktsuche 
XML Parsen 
Transaktions-verwaltung 
Technische Aspekte 
Fachliche Aspekte 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Client mit 
unterschiedlichen 
Fähigkeiten
Informationsintegration und Web-Portale 
Wintersemester 2014/2015 
37 
SAP R/3 
• • • 
• • • 
• • • 
Rohdaten und -dienste 
(nicht integriert) 
Interaktion 
Geschäftsprozesse 
Geschäftsobjekte 
Datenmanagement und Systemintegration 
Produkt 
Kunde 
Verfügbarkeits-prüfung 
Produktsuche 
Standardisierung 
17.11.2014 
Baumansicht 
Authentisierung 
Kalender 
Transaktions-verwaltung 
RDBMS-Anbindung 
XML Parsen 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Client mit 
unterschiedlichen 
Fähigkeiten
Informationsintegration und Web-Portale Wintersemester 2014/2015 
38 
Die Vorteile auf einen Blick Mehrschichtenarchitektur Austauschbarkeit einzelner Schichten 1:N-Lösungen (z.B. ein Prozess – mehrere Oberflächen) Modularisierung Detaillierte Strukturierung des Entwicklungsprozesses Eine gewisse Wiederverwendbarkeit von Teillösungen „Separation of Concerns“ Hohe Wiederverwendbarkeit und Austauschbarkeit technischer Module (hier noch unternehmensintern!) 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
39 
JAVA EE 
Framework für Mehrschicht-Anwendungen 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
40 
Java EE Framework für Mehrschicht-Anwendungen Basierend auf der Java-Technologie Komponenten laufen typischerweise auf unterschiedlichen Maschinen Client-Schicht-Komponenten auf dem Client-Rechner Web-Schicht-Komponenten auf dem Java EE Server Geschäftsschicht-Komponenten auf dem Java EE Server Enterprise Information System (EIS) Schicht Software (z.B. Legacy Anwendung, ERP System etc.) auf EIS Server 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
41 
Anatomie einer Java EE-Anwendung 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
42 
Container-Konzept Laufzeitumgebung Kommunikation mit den Anwendungskomponenten über standardisierte APIs Bereitstellung von generischen Diensten Verzeichnis-/Namensdienste Datenbankverbindungen incl. Pooling Transaktionen Nachrichtendienste Authentisierung, Autorisierung … 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
43 
Anatomie einer Java EE-Anwendung (2) 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
Database 
Legacy Application 
ERP System
Informationsintegration und Web-Portale Wintersemester 2014/2015 
44 
EJB 3.x Die ersten Versionen von EJB (1998-2003) galten Entwicklern als zu umständlich z.B. Deployment-Deskriptoren Deshalb hatten sich immer stärker leichtgewichtige Alternativen durchgesetzt, die mit POJOs und Frameworks wie Spring arbeiteten Mit EJB 3.0 (2006) wurde eine annotationsbasierte Entwicklung ermöglicht, die den Overhead deutlich reduziert Aktuelle Version EJB 3.1 (2009) 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
45 
Java Beans Sind Software-Komponenten für Java mit Felder und Methoden, die Module der Geschäftslogik implementieren Werden als Container zur Datenübertragung verwendet D.h. Komponente implementier Standard-Interface Dadurch wird das Bean an einen Bean Container gekoppelt (= Runtime Object für ein Bean)  Java Klasse, die ein Standard-Bean-Interface implementiert ist ein Bean Haben parameterlosen Konstruktur Attribute (properties) zur Speicherung persistenter Daten, bestehend aus Private Instanzvariablen & Getter- & Setter-Methoden für öffentlichen Zugriff Sind serialisierbar Java Bean kann aus anderen JavaBeans aufgebaut sein 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
46 
3 Arten von Beans Session Beans Bilden die wesentliche Applikationslogik ab Stateless Sind unabhängig vom konkreten Aufrufkontext Können gepoolt werden Stateful Hängen z.B. von Benutzer-Session ab Message-Driven Beans Asynchron aufrufbare Komponenten (= stateless session bean + message listener) Persistenz-Beans (früher Entity Beans) Objektorientierte Repräsentationen der zu speichernden Daten Nutzen JPA (vgl. Vorlesung zu Objektrelationalem Mapping) „Container-Managed Persistence“: Persistenz wird durch Bean-Container gemanaged 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
47 
Annotationen Annotationen markieren Klassen als Session Beans und definieren deren Eigenschaften @Stateless macht aus beliebiger Klasse ein Stateless Session Bean @Remote macht aus einem implementierten Business-Interface ein Remote-Interface; @Local ein Local-Interface @TransactionAttribute definiert die Transaktionalität der gesamten Klasse oder einzelner Methoden @RolesAllowed, @PermitAll, und @DenyAll bestimmen die erforderlichen Zugriffsrechte für den Aufruf Über @PostConstruct und @PreDestroy lässt sich der Lebenszyklus der Bean verfolgen Dependency Injection über @Resource, @EJB, @PersistenceUnit, @PersistenceContext ermöglicht die deklarative Verknüpfung von Session Beans und den von ihnen benötigten Ressourcen 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
48 
Ein sehr einfaches Beispiel 1. Schritt: Definition des Bean-Interfaces 
package foo; 
import javax.ejb.*; 
@Remote 
public interface FooRemote { 
public String echo(String s); 
} 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
49 
Ein sehr einfaches Beispiel (2) 2. Schritt: Bean-Implementierung 
package foo; 
import javax.ejb.*; 
@Stateless 
public class FooBean implements FooRemote { 
public String echo(String s) { 
return s; 
} 
} 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
50 
Ein sehr einfaches Beispiel (3) 
Context ic = new InitialContext(); 
Object obj = ic.lookup(FooRemote.class.getName()); 
FooRemote foo = (FooRemote) obj; 
String s = foo.echo(„test“); 
Mit Dependency Injection geht es noch einfacher: 
Class TestDI 
{ 
@EJB(name=„ejb/FooBean“) bean; 
public void test() { bean.echo(„test“) } 
} 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
51 
Elemente einer Java EE-Anwendungen Interaktion Java Server Pages (JSP), Servlets als Controller Java Server Faces (JSF) – Komponentenframework + CSS, Bilder etc. Geschäftsprozesse Umsetzung als SessionBeans Geschäftsobjekte Objektmodell mit Abbildung über JPA Datenbanksystem Relationale oder objektorientierte Datenbank 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
52 
EJB Packaging 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
53 
Was gehört noch alles dazu? 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
54 
Weitere Elemente Präsentationsebene: Java Server Pages (JSP) und Java Server Faces (JSF) Applikationsebene Transaktionale Semantik für Komponentenaufrufe Dienstebene: Anbindung als Web Services (JAX-WS) Datenebene: Java Persistence API (JPA) für die Anbindung von Datenbanken (vor allem relationale Datenbanken) Java Connector Architecture (JCA) für die Anbindung von Enterprise- Systemen Infrastruktur JNDI als Namensdienst JavaMail für die Verarbeitung von Emails Management-Funktionalitäten 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
55 
Declarative Security: Zugriffskontrolle auf Anwendungsebene Zugriffsschutz beim Aufruf von EJBs wird über Annotations definiert @DeclareRoles: Definiert Rollen, gegen die beim Aufruf geprüft werden kann @RolesAllowed: Definiert eine Liste von Rollen, die ein angemeldeter Benutzer haben muss, um Methoden eines EJBs aufzurufen @DenyAll: Weist den Aufruf von Methoden eines EJBs für alle angemeldeten Benutzer ab 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
56 
Declarative Security: Zugriffskontrolle auf Anwendungsebene 
@RolesAllowed("admin") 
public class SomeClass { 
public void aMethod () {...} 
public void bMethod () {...} 
... 
} 
@Stateless public class MyBean implements A extends SomeClass 
{ 
@RolesAllowed("HR") 
public void aMethod () {...} 
public void cMethod () {...} 
... 
} 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
57 
JCA - Java Connector Architecture Java Connector Architecture (JCA) ist Software-Architektur und Programmierschnittstelle (API) zur Integration von heterogenen Anwendungen und EIS JCA Resource Adapter: Library, die vom Applikationsserver/Client zum Verbinden mit dem Resource Manager verwendet wird (z.B. JDBC) Common Client Interface: universelle API für die Interaktion mit beliebigen Resource Adaptoren Reduzieren anwendungsspezifische Verbindungen, da keine Anpassung pro Applikations-Server mehr notwendig ist 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
58 
JCA - Java Connector Architecture Resource Adapter sind die Implementierungen einer Schnittstelle, die mehrere Server-Laufzeitkontrakte gleichzeitig erfüllt Verbindungsmanagement: Verwaltung des Verbindungspools zum EIS; sprich Connection Pooling Transaktionsmanagement: Einbindung in einen transaktionalen Kontext und Connection Sharing Sicherheitsmanagement: sicherer Zugriff auf EIS, d.h. Übergabe von Credentials 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
59 
JCA - Java Connector Architecture 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
60 
JCA (2) 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
61 
EJB vs. Spring Lange Zeit umstritten, ob EJB oder POJO mit Frameworks wie Spring der bessere Weg ist Inzwischen haben sich die beiden Lösungen angenähert EJB leichter zu benutzen: weniger Konfigurationsdateien, mehr Annotationen, Dependency Injection, Nutzung von JPA, … Spring hat einen kompletten Stack an Funktionalität entwickelt, der ähnliche Aufgabenstellungen wie EJB abdeckt Hauptunterschied EJB lokalisiert das Framework im Application Server (Container) Dadurch schwergewichtigere AS, z.B. JBoss, Websphere, etc. Spring ist ein Framework oberhalb des Application Servers Dadurch lassen sich auch leichtgewichtige Application Server einsetzen, wie z.B. Tomcat, Jetty oder Resin 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
62 
Fazit Mehrschichtenarchitekturen de facto Standard für die Entwicklung von web-zentrierten Anwendungen Java EE / Enterprise Java Beans sind ein Technologiestack für Mehrschichtenarchitekturen, der im Zentrum auf einen Application Server aufsetzt Ab v3.0 deutlich einfacher und wettbewerbsfähiger Alternative Ansätze bleiben relevant (z.B. Spring) 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
63 
Weiterführende Literatur EJB 3.1 Ihns et. Al: EJB 3.1 professionell – Grundlagen und Expertenwissen zu Enterprise JavaBeans 3.1 inkl JPA 2.0, dpunkt, 2011 Spring Framework http://www.springframework.org 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
64 
SONSTIGES 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
65 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
66 
Abschlussarbeiten/Praktikum/WerkstudentIn CAS Merlin (ab sofort): Industriepraktikum/Master-/Bachelorarbeit in den Bereichen Mobile, SmartDesign, HTML5/Vaadin Prototypische Implementierung anhand CAS M.Model/M.Sales Einsatz von Mobile- und Webtechnologien Industriepraktikum/Master-/Bachelorarbeit zur Textuellen Regeldefinition im Configuration Management (Prototyping anhand CAS M.Model) Prototypische Umsetzung einer 'Domain Specific Language' für das Configuration Management. Basis ist CAS M.Model (Produktkonfigurator). CAS Aviation (ab Februar): Master-/Bachelorarbeit im Bereich Supply-Chain Knowledge Management und Configuration Management Wissensaustausch zwischen Unternehmen mit unterschiedlichen Wissensdomänen. Konfiguration von Wissensverknüpfungen zwischen semantisch formalisiertem Wissen Konfigurationsregeln auf Basis von CAS M.Model 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014
Informationsintegration und Web-Portale Wintersemester 2014/2015 
67 
Abschlussarbeiten/Praktikum/WerkstudentIn Praktikum/WerkstudentIn IBD Unterstützung bei der Beantragung & Durchführung inter-/nationaler Forschungsprojekte Abschlussarbeiten/Praktikum im Campus-Management Umfeld Konzepte, Softwareentwicklung, Usability etc. 
http://www.cas-selbst-erleben.de 
17.11.2014 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
Informationsintegration und Web-Portale Wintersemester 2014/2015 
68 
Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 
17.11.2014

More Related Content

Viewers also liked

Decalogo navideño
Decalogo navideñoDecalogo navideño
Decalogo navideño
EuArCo
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
alexro8913
 
Industry meets Makers 2016 - Pilotprojekt
Industry meets Makers 2016 - PilotprojektIndustry meets Makers 2016 - Pilotprojekt
Industry meets Makers 2016 - Pilotprojekt
IndustrymeetsMakers
 
Destelbergen
DestelbergenDestelbergen
Destelbergen
raoulv
 
La burbuja inmobiliaria
La burbuja inmobiliariaLa burbuja inmobiliaria
La burbuja inmobiliaria
Betty Borrallo
 
Afrodescendientes proyecto sustitutivo (1)
Afrodescendientes proyecto sustitutivo (1)Afrodescendientes proyecto sustitutivo (1)
Afrodescendientes proyecto sustitutivo (1)
Noelia Maciel
 
Visita al jardín botánico 5 años
Visita  al  jardín  botánico 5 añosVisita  al  jardín  botánico 5 años
Visita al jardín botánico 5 años
vallec11
 

Viewers also liked (20)

Decalogo navideño
Decalogo navideñoDecalogo navideño
Decalogo navideño
 
4° Sec .- I Bim - Conjuntos III
4° Sec .- I Bim - Conjuntos III4° Sec .- I Bim - Conjuntos III
4° Sec .- I Bim - Conjuntos III
 
Codigo de convivencia
Codigo de convivenciaCodigo de convivencia
Codigo de convivencia
 
Gestión del Conocimiento de acuerdo a Rafael Andreu
Gestión del Conocimiento de acuerdo a Rafael AndreuGestión del Conocimiento de acuerdo a Rafael Andreu
Gestión del Conocimiento de acuerdo a Rafael Andreu
 
D&D 2.0 -el libro de los elfos
D&D   2.0 -el libro de los elfosD&D   2.0 -el libro de los elfos
D&D 2.0 -el libro de los elfos
 
Creación de una lan
Creación de una lanCreación de una lan
Creación de una lan
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
 
Costa Brava
Costa BravaCosta Brava
Costa Brava
 
MHHT-HTSF
MHHT-HTSFMHHT-HTSF
MHHT-HTSF
 
Industry meets Makers 2016 - Pilotprojekt
Industry meets Makers 2016 - PilotprojektIndustry meets Makers 2016 - Pilotprojekt
Industry meets Makers 2016 - Pilotprojekt
 
#HONDARTZAN - KIT DIWO
#HONDARTZAN - KIT DIWO#HONDARTZAN - KIT DIWO
#HONDARTZAN - KIT DIWO
 
Análisis funcional
Análisis funcionalAnálisis funcional
Análisis funcional
 
Destelbergen
DestelbergenDestelbergen
Destelbergen
 
La burbuja inmobiliaria
La burbuja inmobiliariaLa burbuja inmobiliaria
La burbuja inmobiliaria
 
#HONDARTZAN_08 - Comunidad-Recurso-Gobernanza (informe)
#HONDARTZAN_08 - Comunidad-Recurso-Gobernanza (informe)#HONDARTZAN_08 - Comunidad-Recurso-Gobernanza (informe)
#HONDARTZAN_08 - Comunidad-Recurso-Gobernanza (informe)
 
B 50 maravillas del_mundo
B 50 maravillas del_mundoB 50 maravillas del_mundo
B 50 maravillas del_mundo
 
Afrodescendientes proyecto sustitutivo (1)
Afrodescendientes proyecto sustitutivo (1)Afrodescendientes proyecto sustitutivo (1)
Afrodescendientes proyecto sustitutivo (1)
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
 
Visita al jardín botánico 5 años
Visita  al  jardín  botánico 5 añosVisita  al  jardín  botánico 5 años
Visita al jardín botánico 5 años
 
#Juntasemprendemos Bilbao_Presentación Sesion4
#Juntasemprendemos Bilbao_Presentación Sesion4#Juntasemprendemos Bilbao_Presentación Sesion4
#Juntasemprendemos Bilbao_Presentación Sesion4
 

Similar to 05 Mehrschichtenarchitekturen und Enterprise Java Beans

Erp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinausErp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinaus
Dedagroup
 

Similar to 05 Mehrschichtenarchitekturen und Enterprise Java Beans (20)

IT-Ringvorlesung - Präsentation Unister
IT-Ringvorlesung - Präsentation UnisterIT-Ringvorlesung - Präsentation Unister
IT-Ringvorlesung - Präsentation Unister
 
Dienstorientierte Integration von Komponenten
Dienstorientierte Integration von KomponentenDienstorientierte Integration von Komponenten
Dienstorientierte Integration von Komponenten
 
Lehrstuhl KickOff 2010
Lehrstuhl KickOff 2010Lehrstuhl KickOff 2010
Lehrstuhl KickOff 2010
 
Kick Off 2010
Kick Off 2010Kick Off 2010
Kick Off 2010
 
Print, Web, App – Multi-Channel-Marketing im täglichen Leben eines Handelsunt...
Print, Web, App – Multi-Channel-Marketing im täglichen Leben eines Handelsunt...Print, Web, App – Multi-Channel-Marketing im täglichen Leben eines Handelsunt...
Print, Web, App – Multi-Channel-Marketing im täglichen Leben eines Handelsunt...
 
2016 - Mobile Revolution - Fachvortrag an der FHS St.Gallen.
 2016 - Mobile Revolution - Fachvortrag an der FHS St.Gallen. 2016 - Mobile Revolution - Fachvortrag an der FHS St.Gallen.
2016 - Mobile Revolution - Fachvortrag an der FHS St.Gallen.
 
Erp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinausErp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinaus
 
Roadmap zum Modernen Arbeitsplatz: Praxisszenario. Rainer Haselmeier, YAVEON AG
Roadmap zum Modernen Arbeitsplatz: Praxisszenario. Rainer Haselmeier, YAVEON AGRoadmap zum Modernen Arbeitsplatz: Praxisszenario. Rainer Haselmeier, YAVEON AG
Roadmap zum Modernen Arbeitsplatz: Praxisszenario. Rainer Haselmeier, YAVEON AG
 
2010 09 30 11-00 r schoch
2010 09 30 11-00 r schoch2010 09 30 11-00 r schoch
2010 09 30 11-00 r schoch
 
Webinar - Maschine kaputt - finde den Fehler!
Webinar - Maschine kaputt - finde den Fehler!Webinar - Maschine kaputt - finde den Fehler!
Webinar - Maschine kaputt - finde den Fehler!
 
Gentics Webinar: Unser Intranet mit SAP Netweaver Portal und CMS 22-09-2009
Gentics Webinar: Unser Intranet mit SAP Netweaver Portal und CMS 22-09-2009Gentics Webinar: Unser Intranet mit SAP Netweaver Portal und CMS 22-09-2009
Gentics Webinar: Unser Intranet mit SAP Netweaver Portal und CMS 22-09-2009
 
Fachtagung eCommerce und PIM
Fachtagung eCommerce und PIMFachtagung eCommerce und PIM
Fachtagung eCommerce und PIM
 
2010 09 30 11-30 thomas marx
2010 09 30 11-30 thomas marx2010 09 30 11-30 thomas marx
2010 09 30 11-30 thomas marx
 
Digitale Kommunikation in Fertigungsnetzwerken neu gedacht
Digitale Kommunikation in Fertigungsnetzwerken neu gedachtDigitale Kommunikation in Fertigungsnetzwerken neu gedacht
Digitale Kommunikation in Fertigungsnetzwerken neu gedacht
 
PLM-Zukunftsthemen
PLM-ZukunftsthemenPLM-Zukunftsthemen
PLM-Zukunftsthemen
 
Präsentation BÄNG - Der luggs e-Coach
Präsentation BÄNG - Der luggs e-CoachPräsentation BÄNG - Der luggs e-Coach
Präsentation BÄNG - Der luggs e-Coach
 
Public Cloud? Aber sicher! Orchestrierung komplexer Cloud-Lösungen - Partner...
Public Cloud? Aber sicher!  Orchestrierung komplexer Cloud-Lösungen - Partner...Public Cloud? Aber sicher!  Orchestrierung komplexer Cloud-Lösungen - Partner...
Public Cloud? Aber sicher! Orchestrierung komplexer Cloud-Lösungen - Partner...
 
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)
 
02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale
 
Drupal vs. Joomla vs. Wordpress
Drupal vs. Joomla vs. WordpressDrupal vs. Joomla vs. Wordpress
Drupal vs. Joomla vs. Wordpress
 

Recently uploaded

1029-Danh muc Sach Giao Khoa khoi 12.pdf
1029-Danh muc Sach Giao Khoa khoi 12.pdf1029-Danh muc Sach Giao Khoa khoi 12.pdf
1029-Danh muc Sach Giao Khoa khoi 12.pdf
QucHHunhnh
 
1029-Danh muc Sach Giao Khoa khoi 11.pdf
1029-Danh muc Sach Giao Khoa khoi 11.pdf1029-Danh muc Sach Giao Khoa khoi 11.pdf
1029-Danh muc Sach Giao Khoa khoi 11.pdf
QucHHunhnh
 

Recently uploaded (8)

Angewandte Kognitions- und Medienwissenschaft an der Universität Duisburg_Essen
Angewandte Kognitions- und Medienwissenschaft an der Universität Duisburg_EssenAngewandte Kognitions- und Medienwissenschaft an der Universität Duisburg_Essen
Angewandte Kognitions- und Medienwissenschaft an der Universität Duisburg_Essen
 
1029-Danh muc Sach Giao Khoa khoi 12.pdf
1029-Danh muc Sach Giao Khoa khoi 12.pdf1029-Danh muc Sach Giao Khoa khoi 12.pdf
1029-Danh muc Sach Giao Khoa khoi 12.pdf
 
LAKO Kreativpreis_2024_Startnummer_02_(LFS_LA).pdf
LAKO Kreativpreis_2024_Startnummer_02_(LFS_LA).pdfLAKO Kreativpreis_2024_Startnummer_02_(LFS_LA).pdf
LAKO Kreativpreis_2024_Startnummer_02_(LFS_LA).pdf
 
Angewandte Philosophie an der Universität Duisburg-Essen.
Angewandte Philosophie an der Universität Duisburg-Essen.Angewandte Philosophie an der Universität Duisburg-Essen.
Angewandte Philosophie an der Universität Duisburg-Essen.
 
Betriebswirtschaftslehre (B.Sc.) an der Universität Duisburg Essen
Betriebswirtschaftslehre (B.Sc.) an der Universität Duisburg EssenBetriebswirtschaftslehre (B.Sc.) an der Universität Duisburg Essen
Betriebswirtschaftslehre (B.Sc.) an der Universität Duisburg Essen
 
1029-Danh muc Sach Giao Khoa khoi 11.pdf
1029-Danh muc Sach Giao Khoa khoi 11.pdf1029-Danh muc Sach Giao Khoa khoi 11.pdf
1029-Danh muc Sach Giao Khoa khoi 11.pdf
 
Welche KI-Kompetenzen brauchen Lehrpersonen?!
Welche KI-Kompetenzen brauchen Lehrpersonen?!Welche KI-Kompetenzen brauchen Lehrpersonen?!
Welche KI-Kompetenzen brauchen Lehrpersonen?!
 
Wirtschaftsingenieurwesen an der Universität Duisburg-Essen
Wirtschaftsingenieurwesen an der Universität Duisburg-EssenWirtschaftsingenieurwesen an der Universität Duisburg-Essen
Wirtschaftsingenieurwesen an der Universität Duisburg-Essen
 

05 Mehrschichtenarchitekturen und Enterprise Java Beans

  • 1. KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu Klick-And-Bau Informationsintegration und Webportale INFORMATIONSINTEGRATION UND WEBPORTALE Mehrschichtenarchitekturen und Enterprise Java Beans Dr. Simone Braun
  • 2. Informationsintegration und Web-Portale Wintersemester 2014/2015 2 ZU MEINER PERSON Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 3. Informationsintegration und Web-Portale Wintersemester 2014/2015 3 Dr. Simone Braun (CAS Software AG, früher FZI) Ausbildung Promotion über kollaborative Ontologieerstellung in der Anwendung von Social Semantic Tagging, Prof. Studer, AIFB Aktuelle Tätigkeit Manager Innovation & Business Design, CAS Software AG Interessen CRM, xRM, Wissensmanagement, Semantic Web, E-Learning, Cloud Computing Aktuelle Projekte Broker@Cloud – Continuous Quality Assurance and Optimisation for Cloud Brokers MAC4U - Mass Customization für individualisierte Produkterweiterungen OSMOSE – OSMOsis applications for the Sensing Enterprise Lehre Seit 2008 TGL-Seminar im SoSe: http://tgl.fzi.de Seit 2011 IIWP Mehrschichtenarchitekturen für skalierbare, zuverlässige, wartbare Anwendungen Konzepte zur Informationsintegration, d.h. Einbindung externer Inhalte & Quellen 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 4. Informationsintegration und Web-Portale Wintersemester 2014/2015 4 CAS Software AG Deutscher CRM-Marktführer für KMU Beteiligungen 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 5. Informationsintegration und Web-Portale Wintersemester 2014/2015 5 CAS SmartCompanies & SmartEnterprise „To each customer their own CAS“ Car Dealerships Efficient & professional customer management tailored to the car trade Successful Relationships Educational Institutions SMEs Aviation Industry Multi-variant Production / Services Business Ecosystems Associations Networks Flexible solutions for hihger education and schools to suit individually defined processes Multi-awarded market-leading xRM solution for SMEs Individual solutions for product configuration management and sales processes for aviation industries Software solution and expert knowledge for configuration and sales support of complex products Smart solutions for strategic cooperation and efficient cross- company processes Innovative software solution for networks with integrated portal for communication purposes Devolpment / Production Development, PM, Test, QM, Support, Innovation Management, Design Thinking Services Marketing, Communication, Finance, HR, IT, Acedemy xRM Plattform CAS SmartDesign IT Platform CAS SmartEnterprise Plattform 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 6. Informationsintegration und Web-Portale Wintersemester 2014/2015 6 MOTIVATION MEHRSCHICHTEN- ARCHITEKTUREN Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 7. Informationsintegration und Web-Portale Wintersemester 2014/2015 7 Herausforderungen Wie baut man moderne Shop-Anwendungen? Wie baut man sie skalierbar wartbar zuverlässig? 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 8. Informationsintegration und Web-Portale Wintersemester 2014/2015 8 Beispielszenario Baumärkteportal Für einen Kunden soll ein Konsumenten-Portal Klick-Und-Bau.com erstellt werden Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014 Warenkatalog Redaktioneller Teil Onlinebestellung Angebote verschiedener Baumärkte Personalisierte Angebote Community: Produktbewertungen Anbindung an Bezahlsysteme Klick-And-Bau Informationsintegration und Webportale
  • 9. Informationsintegration und Web-Portale Wintersemester 2014/2015 9 Baumärkteportal: Inhalte und Quellen Eine Analyse der Inhalte und Quellen führte zur folgenden Übersicht Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014 Anbieter 1: OBI Waren- verwaltung Bestell- system Anbieter 2: Hornbach Waren- verwaltung Bestell- system Anbieter 3: Praktiker Waren- verwaltung Bestell- system Anbieter 3: Hagebau Waren- verwaltung Bestell- system DoYou Google+ Facebook Twitter VISA Paypal MasterCard Maestro Klick-und- bau.com Waren- verwaltung Bestell- system Kunden- verwaltung Bezahl- system Such- maschine Content- Management Webseiten- verwaltung
  • 10. Informationsintegration und Web-Portale Wintersemester 2014/2015 10 Beispiel für eine verteilte Shop- Anwendung Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Quelle: Prof. Thai 17.11.2014
  • 11. Informationsintegration und Web-Portale Wintersemester 2014/2015 11 Viele Daten & viel Datenaustausch Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Quelle: Prof. Thai 17.11.2014
  • 12. Informationsintegration und Web-Portale Wintersemester 2014/2015 12 Viele Anforderungen Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Quelle: Prof. Thai 17.11.2014
  • 13. Informationsintegration und Web-Portale Wintersemester 2014/2015 13 Herausforderungen (2) Skalierbarkeit Wie können wir wachsende Besucherzahlen bewältigen? Wie können wir ein wachsendes Produkt- und Dienstleistungsangebot bewältigen? Zuverlässigkeit Wie können wir unser System robust gegen Ausfälle gestalten? Wartbarkeit und Agilität Wie können wir neue Versionen ohne Ausfallzeiten online bringen? Wie können wir das System so gestalten, dass wir möglichst schnell Änderungen ohne Seiteneffekte umsetzen können? 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 14. Informationsintegration und Web-Portale Wintersemester 2014/2015 14 Technische Antworten Komponentenorientierung Ermöglichen modularen Aufbau Komponenten sind austauschbar, wiederverwendbar und möglichst isoliert wartbar Verteilung Lastausgleich Ausfallsicherheit durch Redundanz Hot Deployment Aktualisieren von Enterprise Anwendungen im laufenden Betrieb Kein Stoppen oder Neustarten des Servers Transaktionen Folge von Verarbeitungsschritten, die nur gemeinsam oder gar nicht durchgeführt werden 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 15. Informationsintegration und Web-Portale Wintersemester 2014/2015 15 MEHRSCHICHTEN- ARCHITEKTUREN Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 16. Informationsintegration und Web-Portale Wintersemester 2014/2015 16 Software-Architektur „The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.“ „eine strukturierte oder hierarchische Anordnung der Systemkomponenten sowie Beschreibung ihrer Beziehungen“ 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Quelle: Bass, Clemens, Kazman. Software Architecture in Practice. Addison-Weslay 1998 Quelle: Helmut Balzert: Lehrbuch der Softwaretechnik. Spektrum Akademischer Verlag, 2011
  • 17. Informationsintegration und Web-Portale Wintersemester 2014/2015 17 Schichtenarchitekturen Schichtung ist weit verbreitetes Architekturmuster Definieren Prinzipien zur Strukturierung von Software-Architekturen Häufig angewandt: hierarchische Strukturierung Jeder Schicht wird ein bestimmter Aspekt zugeordnet, z.B. Teil- Funktionalität, Komponente oder auch Klasse  Ordnet die Abhängigkeit von Komponenten in Schichten, die sich nur begrenzt gegenseitig nutzen dürfen, z.B. „höhere“ Schicht darf nur „tiefere“ Schichten verwenden  Beziehung der Komponenten untereinander ist zu beschreiben Ziel: Bessere Strukturierung und Reduktion von Komplexität  durch wechselseitige Abhängigkeiten  vereinfacht und abstrahiert die Funktionen der individuellen Komponenten 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 18. Informationsintegration und Web-Portale Wintersemester 2014/2015 18 Schichtenarchitekturen Die Komponenten einer Software- architektur können in logische Ebenen (Layer) angeordnet werden, z.B. in Ebene mit Komponenten zur Erzeugung der GUI und Kommunikation mit Nutzer Ebene mit Komponenten mit Anwendungslogik Ebene mit Komponenten zur Daten- /Ressourcenhaltung-, -management und -zugriff Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Präsentation Anwendungsebene Datenhaltung 17.11.2014
  • 19. Informationsintegration und Web-Portale Wintersemester 2014/2015 19 Schichtenarchitekturen Unterschiedliche Schichtenarchitekturen je nach dem wie und wo Präsentation, Anwendungslogik und Datenhaltung einer Anwendung implementiert sind Tiers = physische Verteilung von Schichten auf Rechner Layers = logische Verteilung Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 0 10 20 30 40 50 60 70 80 90 1. Qrtl. 2. Qrtl. 3. Qrtl. 0 20 40 60 80 100 1. Qrtl. 2. Qrtl. 3. Qrtl. Präsentation Kontrolle Funktion Modell 1. Qrtl. 2. Qrtl. 3. Qrtl. Ost 20,4 27,4 90 West 30,6 38,6 34,6 Nord 45,9 46,9 45 Wie verteilen wir Funktionalitäten (z.B. als Schichten) auf verschiedene Rechner? 17.11.2014
  • 20. Informationsintegration und Web-Portale Wintersemester 2014/2015 20 1-Schichtenverteilung Präsentation, Anwendungslogik und Datenhaltung in einer Schicht Management der Ressourcen erfolgt zentral Software selbst kann hoch-optimiert werden (Trennung zwischen Schichten hier nicht zwingend notwendig) Nutzer arbeiten mit einer monolithischen Anwendung z.B. Textverarbeitung für einzelnen Nutzer; ggf. geteiltes Dateisystem Mehrere Nutzer: Mehrere Rechner mit monolithischer Anwendung über (grafische) Terminals verbunden z.B. typisch bei Mainframeanwendungen Windows oder Terminal Server (WTS) Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014 Thin Client Terminal Mainframe
  • 21. Informationsintegration und Web-Portale Wintersemester 2014/2015 21 Datenbankserver auf Daten- haltungsschicht Client mit Anwendung auf gemeinsamer Präsentations-/ Anwendungsschicht 2-Schichtenverteilung aka. Client-Server-Systeme a)Trennung von Präsentation und dem Rest (Anwendungslogik und Datenhaltung) Client enthält Präsentation mit GUI und behandelt Interaktion mit Nutzer  Thin Client Server kapselt Anwendungslogik und Datenhaltung b)Trennung von Datenhaltung und dem Rest (Präsentation und Anwendungslogik) Client enthält Anwendung mit GUI und Logik  Fat Client Server kümmert sich um Datenmanagement und -haltung Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 22. Informationsintegration und Web-Portale Wintersemester 2014/2015 22 2-Schichtenverteilung Clients sind (weitgehend) unabhängig voneinander Es kann auch verschiedene Clients für verschiedene (Teil-) Funktionalitäten geben Erlaubt die Nutzung komplexerer GUI's mit intensiverer CPU-Nutzung, da Clients verteilt sind Universelle Kommunikationsschnittstellen zwischen Client und Server müssen bereitgestellt werden Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 23. Informationsintegration und Web-Portale Wintersemester 2014/2015 23 Thin Client / Fat Client Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 24. Informationsintegration und Web-Portale Wintersemester 2014/2015 24 2-Schichtenverteilung Nachteile bei a) Ein Server muss in der Regel alle Clients bedienen Nachteile bei b) Mehrere Server, die bzgl. dem Ressourcenzugriff nicht synchronisiert sind da gemeinsam genutzte Anwendungslogik fehlt (wo diese stattfinden kann) Client ist Integrator beim Zugriff auf Server mit verschiedenen Funktionalitäten Client muss wissen, wo was ist, wie er darauf zugreifen kann, wie Konsistenz garantiert werden kann, etc. Ineffizienz nur durch Erweiterung der Schichtverteilung zu lösen Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 25. Informationsintegration und Web-Portale Wintersemester 2014/2015 25 3-Schichtenverteilung Trennung der Präsentation, Anwendungslogik und Datenhaltung voll modularisiertes System Verschiedene Schichten können über Netzwerktechnologien miteinander kommunizieren Die Schichten werden dabei oft auch auf verschiedene Rechnersysteme verteilt Dadurch höhere Skalierbarkeit Ggf. Performanzverlust durch Verteilung Middleware wird als universelle Kommunikations-"Brücke" zwischen den einzelnen Schichten eingesetzt trennt Anwendungslogik zu einem gewissen Teil von der Kommunikationslogik erhöht die Interoperabilität von Softwaresystemen über Rechnergrenzen hinweg Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 26. Informationsintegration und Web-Portale Wintersemester 2014/2015 26 3-Schichtenverteilung Typisches Beispiel Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014 Datenlogik & Datenhaltung Präsentation Anwendungslogik Client Application- Server Datenlogik & Datenhaltung DB-Server DB-Server
  • 27. Informationsintegration und Web-Portale Wintersemester 2014/2015 27 3-Schichtenverteilung Prinzipien: Client-Server Architektur Jede Schicht (Präsentation, Anwendungslogik, Datenhaltung) sollte unabhängig sein und keine Abhängigkeiten zur Implementierung aufzeigen Nicht direkt verbundene Schichten sollten nicht miteinander kommunizieren Änderungen einer Plattform betreffen nur die darauf laufende Schicht Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 28. Informationsintegration und Web-Portale Wintersemester 2014/2015 28 3-Schichtenverteilung Präsentation Stellt UI zur Verfügung Behandelt Nutzerinteraktionen auch GUI oder Client View oder Front-end Sollte keine Anwendungslogik oder Datenzugriffslogik enthalten Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 29. Informationsintegration und Web-Portale Wintersemester 2014/2015 29 3-Schichtenverteilung Anwendungslogik Regelset zur Informationsverarbeitung Kann mehrere Nutzer verwalten Manchmal auch als Middleware oder Back-end bezeichnet Sollte keine Präsentations- oder Datenzugriffslogik enthalten Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 30. Informationsintegration und Web-Portale Wintersemester 2014/2015 30 3-Schichtenverteilung Datenhaltung physische Speicherspeicherung zur Datenpersistenz Managt Zugriff auf die DB Manchmal auch Back-end genannt Sollte keine Präsentations- oder Anwendungslogik enthalten Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 31. Informationsintegration und Web-Portale Wintersemester 2014/2015 31 N-Schichtenverteilung Durch Hinzufügen weiterer Schichten z.B. bei Web-Anwendungen durch zusätzlichen Web-Tier  Einsatz von komponenten-orientierten Frameworks, die auf Application Server basieren Komplette Frameworks für Mehrschicht-Anwendungen: .NET Framework Java J2EE Durch Verknüpfungen mehrerer Mehrschicht- Anwendungen über zusätzliche Integrationsschicht Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 32. Informationsintegration und Web-Portale Wintersemester 2014/2015 32 Ausgangslage Shop-Anwendung 17.11.2014 SAP R/3 • • • • • • • • • Rohdaten und -dienste (nicht integriert) „Enterprise Application“ Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Client mit unterschiedlichen Fähigkeiten
  • 33. Informationsintegration und Web-Portale Wintersemester 2014/2015 33 Mehrschichtenarchitektur 17.11.2014 SAP R/3 • • • • • • • • • Rohdaten und -dienste (nicht integriert) Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Client mit unterschiedlichen Fähigkeiten Aufeinander aufbauende Applikationen Web-Server mit Personalisierungsschicht Datenlogik & Datenhaltung Anwendungslogik Präsentation
  • 34. Informationsintegration und Web-Portale Wintersemester 2014/2015 34 Mehrschichtenarchitekturen 17.11.2014 SAP R/3 • • • • • • • • • Rohdaten und -dienste (nicht integriert) Interaktion Geschäftsprozesse (auf Basis der Geschäftsobjekte) Geschäftsobjekte (technisch und inhaltlich integrierte Daten) Datenmanagement und Systemintegration Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Client mit unterschiedlichen Fähigkeiten
  • 35. Informationsintegration und Web-Portale Wintersemester 2014/2015 35 Modularisierung 17.11.2014 SAP R/3 • • • • • • • • • Rohdaten und -dienste (nicht integriert) Interaktion Geschäftsprozesse Geschäftsobjekte Datenmanagement und Systemintegration Kalender Baumansicht Produktsuche Produkt Kunde Verfügbarkeits-prüfung Authentisierung Transaktions-verwaltung RDBMS- XML Parsen Anbindung Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Client mit unterschiedlichen Fähigkeiten
  • 36. Informationsintegration und Web-Portale Wintersemester 2014/2015 36 „Separation of Concerns“ – Trennung von Aufgabenbereichen/Belangen 17.11.2014 SAP R/3 • • • • • • • • • Rohdaten und -dienste (nicht integriert) Interaktion Geschäftsprozesse Geschäftsobjekte Datenmanagement und Systemintegration Kalender Baumansicht Produkt Kunde Verfügbarkeits-prüfung Authentisierung RDBMS-Anbindung Produktsuche XML Parsen Transaktions-verwaltung Technische Aspekte Fachliche Aspekte Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Client mit unterschiedlichen Fähigkeiten
  • 37. Informationsintegration und Web-Portale Wintersemester 2014/2015 37 SAP R/3 • • • • • • • • • Rohdaten und -dienste (nicht integriert) Interaktion Geschäftsprozesse Geschäftsobjekte Datenmanagement und Systemintegration Produkt Kunde Verfügbarkeits-prüfung Produktsuche Standardisierung 17.11.2014 Baumansicht Authentisierung Kalender Transaktions-verwaltung RDBMS-Anbindung XML Parsen Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Client mit unterschiedlichen Fähigkeiten
  • 38. Informationsintegration und Web-Portale Wintersemester 2014/2015 38 Die Vorteile auf einen Blick Mehrschichtenarchitektur Austauschbarkeit einzelner Schichten 1:N-Lösungen (z.B. ein Prozess – mehrere Oberflächen) Modularisierung Detaillierte Strukturierung des Entwicklungsprozesses Eine gewisse Wiederverwendbarkeit von Teillösungen „Separation of Concerns“ Hohe Wiederverwendbarkeit und Austauschbarkeit technischer Module (hier noch unternehmensintern!) 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 39. Informationsintegration und Web-Portale Wintersemester 2014/2015 39 JAVA EE Framework für Mehrschicht-Anwendungen Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 40. Informationsintegration und Web-Portale Wintersemester 2014/2015 40 Java EE Framework für Mehrschicht-Anwendungen Basierend auf der Java-Technologie Komponenten laufen typischerweise auf unterschiedlichen Maschinen Client-Schicht-Komponenten auf dem Client-Rechner Web-Schicht-Komponenten auf dem Java EE Server Geschäftsschicht-Komponenten auf dem Java EE Server Enterprise Information System (EIS) Schicht Software (z.B. Legacy Anwendung, ERP System etc.) auf EIS Server Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 41. Informationsintegration und Web-Portale Wintersemester 2014/2015 41 Anatomie einer Java EE-Anwendung 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 42. Informationsintegration und Web-Portale Wintersemester 2014/2015 42 Container-Konzept Laufzeitumgebung Kommunikation mit den Anwendungskomponenten über standardisierte APIs Bereitstellung von generischen Diensten Verzeichnis-/Namensdienste Datenbankverbindungen incl. Pooling Transaktionen Nachrichtendienste Authentisierung, Autorisierung … 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 43. Informationsintegration und Web-Portale Wintersemester 2014/2015 43 Anatomie einer Java EE-Anwendung (2) 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB Database Legacy Application ERP System
  • 44. Informationsintegration und Web-Portale Wintersemester 2014/2015 44 EJB 3.x Die ersten Versionen von EJB (1998-2003) galten Entwicklern als zu umständlich z.B. Deployment-Deskriptoren Deshalb hatten sich immer stärker leichtgewichtige Alternativen durchgesetzt, die mit POJOs und Frameworks wie Spring arbeiteten Mit EJB 3.0 (2006) wurde eine annotationsbasierte Entwicklung ermöglicht, die den Overhead deutlich reduziert Aktuelle Version EJB 3.1 (2009) 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 45. Informationsintegration und Web-Portale Wintersemester 2014/2015 45 Java Beans Sind Software-Komponenten für Java mit Felder und Methoden, die Module der Geschäftslogik implementieren Werden als Container zur Datenübertragung verwendet D.h. Komponente implementier Standard-Interface Dadurch wird das Bean an einen Bean Container gekoppelt (= Runtime Object für ein Bean)  Java Klasse, die ein Standard-Bean-Interface implementiert ist ein Bean Haben parameterlosen Konstruktur Attribute (properties) zur Speicherung persistenter Daten, bestehend aus Private Instanzvariablen & Getter- & Setter-Methoden für öffentlichen Zugriff Sind serialisierbar Java Bean kann aus anderen JavaBeans aufgebaut sein Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 46. Informationsintegration und Web-Portale Wintersemester 2014/2015 46 3 Arten von Beans Session Beans Bilden die wesentliche Applikationslogik ab Stateless Sind unabhängig vom konkreten Aufrufkontext Können gepoolt werden Stateful Hängen z.B. von Benutzer-Session ab Message-Driven Beans Asynchron aufrufbare Komponenten (= stateless session bean + message listener) Persistenz-Beans (früher Entity Beans) Objektorientierte Repräsentationen der zu speichernden Daten Nutzen JPA (vgl. Vorlesung zu Objektrelationalem Mapping) „Container-Managed Persistence“: Persistenz wird durch Bean-Container gemanaged 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 47. Informationsintegration und Web-Portale Wintersemester 2014/2015 47 Annotationen Annotationen markieren Klassen als Session Beans und definieren deren Eigenschaften @Stateless macht aus beliebiger Klasse ein Stateless Session Bean @Remote macht aus einem implementierten Business-Interface ein Remote-Interface; @Local ein Local-Interface @TransactionAttribute definiert die Transaktionalität der gesamten Klasse oder einzelner Methoden @RolesAllowed, @PermitAll, und @DenyAll bestimmen die erforderlichen Zugriffsrechte für den Aufruf Über @PostConstruct und @PreDestroy lässt sich der Lebenszyklus der Bean verfolgen Dependency Injection über @Resource, @EJB, @PersistenceUnit, @PersistenceContext ermöglicht die deklarative Verknüpfung von Session Beans und den von ihnen benötigten Ressourcen Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 48. Informationsintegration und Web-Portale Wintersemester 2014/2015 48 Ein sehr einfaches Beispiel 1. Schritt: Definition des Bean-Interfaces package foo; import javax.ejb.*; @Remote public interface FooRemote { public String echo(String s); } 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 49. Informationsintegration und Web-Portale Wintersemester 2014/2015 49 Ein sehr einfaches Beispiel (2) 2. Schritt: Bean-Implementierung package foo; import javax.ejb.*; @Stateless public class FooBean implements FooRemote { public String echo(String s) { return s; } } 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 50. Informationsintegration und Web-Portale Wintersemester 2014/2015 50 Ein sehr einfaches Beispiel (3) Context ic = new InitialContext(); Object obj = ic.lookup(FooRemote.class.getName()); FooRemote foo = (FooRemote) obj; String s = foo.echo(„test“); Mit Dependency Injection geht es noch einfacher: Class TestDI { @EJB(name=„ejb/FooBean“) bean; public void test() { bean.echo(„test“) } } 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 51. Informationsintegration und Web-Portale Wintersemester 2014/2015 51 Elemente einer Java EE-Anwendungen Interaktion Java Server Pages (JSP), Servlets als Controller Java Server Faces (JSF) – Komponentenframework + CSS, Bilder etc. Geschäftsprozesse Umsetzung als SessionBeans Geschäftsobjekte Objektmodell mit Abbildung über JPA Datenbanksystem Relationale oder objektorientierte Datenbank 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 52. Informationsintegration und Web-Portale Wintersemester 2014/2015 52 EJB Packaging 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 53. Informationsintegration und Web-Portale Wintersemester 2014/2015 53 Was gehört noch alles dazu? 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 54. Informationsintegration und Web-Portale Wintersemester 2014/2015 54 Weitere Elemente Präsentationsebene: Java Server Pages (JSP) und Java Server Faces (JSF) Applikationsebene Transaktionale Semantik für Komponentenaufrufe Dienstebene: Anbindung als Web Services (JAX-WS) Datenebene: Java Persistence API (JPA) für die Anbindung von Datenbanken (vor allem relationale Datenbanken) Java Connector Architecture (JCA) für die Anbindung von Enterprise- Systemen Infrastruktur JNDI als Namensdienst JavaMail für die Verarbeitung von Emails Management-Funktionalitäten 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 55. Informationsintegration und Web-Portale Wintersemester 2014/2015 55 Declarative Security: Zugriffskontrolle auf Anwendungsebene Zugriffsschutz beim Aufruf von EJBs wird über Annotations definiert @DeclareRoles: Definiert Rollen, gegen die beim Aufruf geprüft werden kann @RolesAllowed: Definiert eine Liste von Rollen, die ein angemeldeter Benutzer haben muss, um Methoden eines EJBs aufzurufen @DenyAll: Weist den Aufruf von Methoden eines EJBs für alle angemeldeten Benutzer ab 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 56. Informationsintegration und Web-Portale Wintersemester 2014/2015 56 Declarative Security: Zugriffskontrolle auf Anwendungsebene @RolesAllowed("admin") public class SomeClass { public void aMethod () {...} public void bMethod () {...} ... } @Stateless public class MyBean implements A extends SomeClass { @RolesAllowed("HR") public void aMethod () {...} public void cMethod () {...} ... } 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 57. Informationsintegration und Web-Portale Wintersemester 2014/2015 57 JCA - Java Connector Architecture Java Connector Architecture (JCA) ist Software-Architektur und Programmierschnittstelle (API) zur Integration von heterogenen Anwendungen und EIS JCA Resource Adapter: Library, die vom Applikationsserver/Client zum Verbinden mit dem Resource Manager verwendet wird (z.B. JDBC) Common Client Interface: universelle API für die Interaktion mit beliebigen Resource Adaptoren Reduzieren anwendungsspezifische Verbindungen, da keine Anpassung pro Applikations-Server mehr notwendig ist 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 58. Informationsintegration und Web-Portale Wintersemester 2014/2015 58 JCA - Java Connector Architecture Resource Adapter sind die Implementierungen einer Schnittstelle, die mehrere Server-Laufzeitkontrakte gleichzeitig erfüllt Verbindungsmanagement: Verwaltung des Verbindungspools zum EIS; sprich Connection Pooling Transaktionsmanagement: Einbindung in einen transaktionalen Kontext und Connection Sharing Sicherheitsmanagement: sicherer Zugriff auf EIS, d.h. Übergabe von Credentials 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 59. Informationsintegration und Web-Portale Wintersemester 2014/2015 59 JCA - Java Connector Architecture 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 60. Informationsintegration und Web-Portale Wintersemester 2014/2015 60 JCA (2) 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 61. Informationsintegration und Web-Portale Wintersemester 2014/2015 61 EJB vs. Spring Lange Zeit umstritten, ob EJB oder POJO mit Frameworks wie Spring der bessere Weg ist Inzwischen haben sich die beiden Lösungen angenähert EJB leichter zu benutzen: weniger Konfigurationsdateien, mehr Annotationen, Dependency Injection, Nutzung von JPA, … Spring hat einen kompletten Stack an Funktionalität entwickelt, der ähnliche Aufgabenstellungen wie EJB abdeckt Hauptunterschied EJB lokalisiert das Framework im Application Server (Container) Dadurch schwergewichtigere AS, z.B. JBoss, Websphere, etc. Spring ist ein Framework oberhalb des Application Servers Dadurch lassen sich auch leichtgewichtige Application Server einsetzen, wie z.B. Tomcat, Jetty oder Resin 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 62. Informationsintegration und Web-Portale Wintersemester 2014/2015 62 Fazit Mehrschichtenarchitekturen de facto Standard für die Entwicklung von web-zentrierten Anwendungen Java EE / Enterprise Java Beans sind ein Technologiestack für Mehrschichtenarchitekturen, der im Zentrum auf einen Application Server aufsetzt Ab v3.0 deutlich einfacher und wettbewerbsfähiger Alternative Ansätze bleiben relevant (z.B. Spring) 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 63. Informationsintegration und Web-Portale Wintersemester 2014/2015 63 Weiterführende Literatur EJB 3.1 Ihns et. Al: EJB 3.1 professionell – Grundlagen und Expertenwissen zu Enterprise JavaBeans 3.1 inkl JPA 2.0, dpunkt, 2011 Spring Framework http://www.springframework.org 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 64. Informationsintegration und Web-Portale Wintersemester 2014/2015 64 SONSTIGES Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 65. Informationsintegration und Web-Portale Wintersemester 2014/2015 65 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 66. Informationsintegration und Web-Portale Wintersemester 2014/2015 66 Abschlussarbeiten/Praktikum/WerkstudentIn CAS Merlin (ab sofort): Industriepraktikum/Master-/Bachelorarbeit in den Bereichen Mobile, SmartDesign, HTML5/Vaadin Prototypische Implementierung anhand CAS M.Model/M.Sales Einsatz von Mobile- und Webtechnologien Industriepraktikum/Master-/Bachelorarbeit zur Textuellen Regeldefinition im Configuration Management (Prototyping anhand CAS M.Model) Prototypische Umsetzung einer 'Domain Specific Language' für das Configuration Management. Basis ist CAS M.Model (Produktkonfigurator). CAS Aviation (ab Februar): Master-/Bachelorarbeit im Bereich Supply-Chain Knowledge Management und Configuration Management Wissensaustausch zwischen Unternehmen mit unterschiedlichen Wissensdomänen. Konfiguration von Wissensverknüpfungen zwischen semantisch formalisiertem Wissen Konfigurationsregeln auf Basis von CAS M.Model Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014
  • 67. Informationsintegration und Web-Portale Wintersemester 2014/2015 67 Abschlussarbeiten/Praktikum/WerkstudentIn Praktikum/WerkstudentIn IBD Unterstützung bei der Beantragung & Durchführung inter-/nationaler Forschungsprojekte Abschlussarbeiten/Praktikum im Campus-Management Umfeld Konzepte, Softwareentwicklung, Usability etc. http://www.cas-selbst-erleben.de 17.11.2014 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB
  • 68. Informationsintegration und Web-Portale Wintersemester 2014/2015 68 Dr. Simone Braun – Mehrschichtenarchitekturen und EJB 17.11.2014