Klick-And-Bau. Mehrschichtenarchitekturen und Enterprise Java Beans Dr. Simone Braun. www.kit.edu. Informationsintegration und Webportale



Ähnliche Dokumente
Softwareentwicklung mit Enterprise JAVA Beans

Klick-And-Bau. Mehrschichtenarchitekturen und Enterprise Java Beans Dr. Simone Braun. Informationsintegration und Webportale

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

SE2-10-Entwurfsmuster-2 15

Entwicklung von Web-Anwendungen auf JAVA EE Basis

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Java 2, Enterprise Edition Einführung und Überblick

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

Java Enterprise Architekturen Willkommen in der Realität

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

e-business - Patterns Stefan Brauch (sb058) -- Julian Stoltmann (js057)

Der lokale und verteilte Fall

SAP NetWeaver Gateway. 2013

ORACLE Business Components for Java (BC4J) Marco Grawunder

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Architekturmuster. Übung MSE,

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

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

Enterprise Java Beans

Online Banking System

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

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

Spring Dynamic Modules for OSGi Service Platforms

Java EE Projektseminar

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Design Patterns 2. Model-View-Controller in der Praxis

Was ist neu in Sage CRM 6.1

Zend PHP Cloud Application Platform

Client/Server-Systeme

easycms Content Management System

VTC CRM Private Cloud

WebSphere Application Server Installation

business.people.technology.

Das Warenwirtschaftswunder

Leistungsstarke Enterprise Apps. Für Menschen erdacht. Für Veränderungen entwickelt.

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Cloud Computing bei schweizerischen Unternehmen Offene Fragen und Antworten

Content Management Datenbanken, Schnittstellen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

IT im Wandel Kommunale Anforderungen - zentrales Clientmanagement versus Standardtechnologie!?

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

BIF/SWE - Übungsbeispiel

All for One Steeb. Das SAP Haus. ALL FOR ONE STEEB DAS SAP HAUS

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

ONET: FT-NIR-Netzwerke mit zentraler Administration & Datenspeicherung. ONET Server

VEDA Managed Services VEDA-SOFTWARE

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Datenmanagement in Android-Apps. 16. Mai 2013

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

EJB jar.xml und Name Service (JNDI)

LIVE/11 - WEBSPECIAL. Andreas Förthner - Clemens Kalb

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

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt

Inside. IT-Informatik. Die besseren IT-Lösungen.

Erfassung von Umgebungskontext und Kontextmanagement

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

SEP 114. Design by Contract

Summer Workshop Mehr Innovationskraft mit Change Management

Übungen zu Softwaretechnik

BUSINESS SOFTWARE. www. sage.at

Open Source als de-facto Standard bei Swisscom Cloud Services

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Adventskalender Gewinnspiel

Enterprise Java Beans Einführung

toolwear Die Verbindung aller Systemwelten

Skills-Management Investieren in Kompetenz

esearch one-single-point-of-information Federated Search Modul

Programmierung von Client/Server- Anwendungen

QSC - tengo: ALLES IN MEINER HAND

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

OP-LOG

SharePoint Demonstration

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Softwaretechnische Anforderungen zu Opale bluepearl Version 1.0 vom

ELitE Bestell- und Lieferplattform für Informationen & Literatur

where IT drives business

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich furtwangen.de furtwangen.

Content Management System mit INTREXX 2002.

Warum EJB Technologie (1)?

Viele gute Stellen sind frei. Besetzen Sie eine.

Test zur Bereitschaft für die Cloud

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

Bundeskanzlei BK Programm GEVER Bund. als Basis für GEVER. 29. November 2012

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Workflow Systeme mit der Windows Workflow Foundation

MULTICHANNEL IN SOZIALEN NETZWERKEN

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Architektur von Business Apps

Entwicklung einer Methode zur Bewertung der Transformierbarkeit von On-Premise Anwendungssystemen in Software as a Service Lösungen

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Transkript:

INFORMATIONSINTEGRATION UND WEBPORTALE Mehrschichtenarchitekturen und Enterprise Java Beans Dr. Simone Braun INFORMATIONSINTEGRATION UND WEBPORTALE Klick-And-Bau Informationsintegration und Webportale KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

ZU MEINER PERSON 2 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 Innovations- und Wissenschaftsmanagement CRM, xrm Wissensmanagement, Enterprise 2.0, Semantic Web E-Learning, Kompetenzmanagement 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 3 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

CAS Software AG - Deutscher CRM-Marktführer im Mittelstand 1986 Gründung Hubschneider & Neer >450 Mitarbeiter CAS-Gruppe >290 Mitarbeiter für xrm-lösungen 17% Wachstum Gesamtleistung 2012 21% Investition in Innovation 2012 >50% wirtschaftliche EK-Quote 4 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB Beteiligungen

Ausgezeichnet für mehr Leistung 2006: Innovator des Jahres 2009: Bestes Innovationsmanagement 2009: Arbeitgeber des Jahres 2011: Innovator des Jahres CRM Best Practice Award Auszeichnungen von bisher neun CAS- Kunden, zuletzt 2011 Airbus Award for Excellence 2008 Kategorie Innovation, CAS Configurator 5 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Die Smart Companies der CAS im Überblick CAS Mittelstand bietet kleinen und mittelständischen Unternehmen die CRM-Lösung, die zum Unternehmen und ihren Kunden passt. Ob als Festinstallation oder webbasierte Lösung, zum Kauf oder zur Miete, als individualisierbare Standard- oder Branchenlösung. CAS Ecosystems bietet Firmen und Organisationen, die ihre Arbeitsweise auf strategische Zusammenarbeit ausrichten, Software für effiziente firmenübergreifende Prozesse CAS Drive bietet professionelles Kundenmanagement speziell für den Automobil-handel, steigert Kundenzufriedenheit und schafft somit Wettbewerbsvorteile. CAS Merlin unterstützt die Anbieter komplexer, variantenreicher Produkte mit Softwarelösungen und Dienstleistungen zur Vertriebsunterstützung, für das Vertriebsdatenmanagement und die Produktkonfiguration. CAS Aviation bietet individuelle Softwarelösungen und Dienstleistungen für Vertriebs- und After-Sales Prozesse und die Produktkonfiguration für die Luftfahrtindustrie. CAS Communities bietet innovative Softwarelösungen für Netzwerke, die CRM-Funktionen für die Verwaltung mit einem integrierten Portal für die Kommunikation mit den Mitgliedern kombinieren. CAS Education ist Spezialist für Lösungen im Bildungsbereich, die sich flexibel an individuell definierte Prozesse anpassen lassen. Die Software-Lösungen CAS Campus, CAS Alumni und CAS Platon sind in enger Abstimmung mit Hochschulen und Schulen entstanden. 6 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

MOTIVATION MEHRSCHICHTEN- ARCHITEKTUREN 7 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Herausforderungen Wie baut man moderne Shop-Anwendungen? Wie baut man sie skalierbar wartbar zuverlässig? 8 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

9 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Das selbstgenügsame Stadtviertel Integration verschiedener Anwendungen (mit Daten) erforderlich: Warenwirtschafts- und Bestellsysteme verschiedener Einkaufsmärkte Plattform für virtuelle Bestellungen der Haushalte Denkbare Maßnahme: Neue Shopping Lösungen mit Vorauswahl in virtuellen Zentren, Transportlösungen zu realen Zentren, intelligenter Lieferlogistik 10 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Beispielszenario Baumärkteportal Für einen Kunden soll ein Konsumenten-Portal Klick-Und-Bau.com erstellt werden Klick-And-Bau Informationsintegration und Webportale Warenkatalog Redaktioneller Teil Angebote verschiedener Baumärkte Onlinebestellung Anbindung an Bezahlsysteme Community: Produktbewertungen Personalisierte Angebote 11 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

DoYou Google+ Facebook Twitter Baumärkteportal: Inhalte und Quellen Eine Analyse der Inhalte und Quellen führte zur folgenden Übersicht Klick-undbau.com VISA Paypal MasterCard Maestro Warenverwaltung Suchmaschine Webseitenverwaltung Bestellsystem Content- Management Kundenverwaltung Bezahlsystem Anbieter 1: OBI Anbieter 2: Hornbach Anbieter 3: Praktiker Anbieter 3: Hagebau Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem 12 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Beispiel für eine verteilte Shop- Anwendung Quelle: Prof. Thai 13 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Viele Daten & viel Datenaustausch Quelle: Prof. Thai 14 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Viele Anforderungen Quelle: Prof. Thai 15 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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? 16 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Technische Antworten Komponentenorientierung Modularer 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 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

MEHRSCHICHTEN- ARCHITEKTUREN 18 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Schichtenarchitekturen Schichtung 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 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 19 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Schichtenarchitekturen Unterschiedliche Schichtenarchitekturen je nach dem wie und wo Präsentation, Anwendungslogik und Datenhaltung einer Anwendung implementiert sind Bekannte Schichtenarchitekturen sind die Drei-Schichten-Architektur (Three-Tier-Architecture) oder Mehr-Schichten-Architekturen (Multi- Tier-Architecture) Tier vs. Layer: Layer = logische Verteilung Tier = physische Verteilung Für Web-Anwendungen de facto die Standard-Architektur 20 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

1-Schichtenmodell 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 Mehrere Rechner mit einer solchen über (grafische) Terminals verbunden Typisch bei Mainframeanwendungen 21 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

2-Schichtenmodell Üblicherweise Trennung von Präsentation und dem Rest (Anwendungslogik und Datenhaltung) Client-Server-Systeme mit thin/fat clients Client enthält Präsentation mit GUI und behandelt Interaktion mit Nutzer Server kapselt Anwendungslogik und Datenhaltung 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 Eingeschränkte Skalierbarkeit und Legacy Probleme durch aufgeblähte Clients Ein Server muss in der Regel alle Clients bedienen oder mehrere bzgl. Datenzugriff nicht synchronisierte Server, wo Client zum Integrator wird 22 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Thin Client / Fat Client 23 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

3-Schichtenmodell 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 24 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

N-Schichtenmodell 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 25 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Ausgangslage Shop-Anwendung Klienten mit unterschiedlichen Fähigkeiten Enterprise Application Rohdaten und -dienste (nicht integriert) SAP R/3 26 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Mehrschichtenarchitekturen Klienten mit unterschiedlichen Fähigkeiten Interaktion Geschäftsprozesse (auf Basis der Geschäftsobjekte) Geschäftsobjekte (technisch und inhaltlich integrierte Daten) Datenmanagement und Systemintegration Rohdaten und -dienste (nicht integriert) SAP R/3 27 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Modularisierung Klienten mit unterschiedlichen Fähigkeiten Interaktion Baumansicht Kalender Geschäftsprozesse Geschäftsobjekte Verfügbarkeitsprüfung Produkt Datenmanagement und Systemintegration RDBMS- Anbindung Authentisierung Kunde XML Parsen Produktsuche Transaktionsverwaltung Rohdaten und -dienste (nicht integriert) SAP R/3 28 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Separation of Concerns Trennung von Aufgabenbereichen/Belangen Klienten mit unterschiedlichen Fähigkeiten Interaktion Geschäftsprozesse Geschäftsobjekte Produkt Fachliche Aspekte Verfügbarkeitsprüfung Datenmanagement und Systemintegration Produktsuche Kunde Kalender Baumansicht Authentisierung Technische Aspekte Transaktionsverwaltung RDBMS- Anbindung XML Parsen Rohdaten und -dienste (nicht integriert) SAP R/3 29 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Standardisierung Klienten mit unterschiedlichen Fähigkeiten Interaktion Kalender Baumansicht Geschäftsprozesse Verfügbarkeitsprüfung Produktsuche Authentisierung Geschäftsobjekte Kunde Produkt Datenmanagement und Systemintegration Transaktionsverwaltung RDBMS- Anbindung XML Parsen Rohdaten und -dienste (nicht integriert) SAP R/3 30 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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!) 31 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Zusammenfassung typischer Schichten Präsentation Business / Geschäftsprozesse Geschäftsobjekte / Data Access Layer Daten / Datenbank Integration 32 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Framework für Mehrschicht-Anwendungen J2EE 33 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

J2EE 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 Java2EE Server Geschäftsschicht-Komponenten auf dem Java2EE Server Enterprise Information System (EIS) Schicht Software (z.b. Legacy Anwendung, ERP System etc.) auf EIS Server 34 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Anatomie einer J2EE-Anwendung 35 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Container-Konzept Laufzeitumgebung Kommunikation mit den Anwendungskomponenten über standardisierte APIs Bereitstellung von generischen Diensten Verzeichnis-/Namensdienste Datenbankverbindungen incl. Pooling Transaktionen Nachrichtendienste Authentisierung, Autorisierung 36 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Anatomie einer J2EE-Anwendung (2) Database Legacy Application ERP System 37 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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) 38 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 39 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

3 Arten von Beans Session Beans Bilden die wesentliche Applikationslogik ab Stateless Stateful Sind unabhängig vom konkreten Aufrufkontext Können gepoolt werden Hängen z.b. von Benutzer-Session ab Message-Driven Beans Asynchron aufrufbare Komponenten (= stateless session bean + message listener) 40 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 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 41 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Ein sehr einfaches Beispiel 1. Schritt: Definition des Bean-Interfaces package foo; import javax.ejb.*; @Remote public interface FooRemote { public String echo(string s); } 42 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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; } } 43 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 ) } } 44 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Elemente einer J2EE-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 45 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

EJB Packaging 46 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Was gehört noch alles dazu? 47 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 48 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 49 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 () {...}... 50 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

JCA - Java Connector Architecture 51 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 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 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

JCA - Java Connector Architecture 52 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

JCA (2) 53 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 54 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Fazit Mehrschichtenarchitekturen de facto Standard für die Entwicklung von web-zentrierten Anwendungen J2EE / 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) 55 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

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 56 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

SONSTIGES 57 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB

Praktikum/Abschlussarbeit Technology Research Aviation ÜBERSICHT: EU-Projekt OSMOSE: Lücke zwischen virtueller Welt (Helikopter-Simulator-Training) und realer Welt (echter Helikopter) durch eine Middleware schließen THEMEN: 1. Untersuchung des State-of-the-art geeigneter Technologien zur Realisierung des Projekts. Sie untersuchen und klassifizieren die Projektanforderungen und wählen passende Technologien aus den Bereichen IOT und SOA aus. 2. Untersuchung relevanter Prozesse im Bereich Helikopterherstellung und -Training und Ableiten eines Referenzmodells. 3. Übertragung der im Rahmen des Projekts entwickelten Architektur und Modelle auf andere Industriezweige, z.b. Automotive oder Maschinenbau. WIR BIETEN: Praktische Mitarbeit an neuen Technologien im spannenden Praxis- und Forschungsumfeld Eine intensive begleitende Betreuung Nähere Informationen: Lisa Kopf, jobs@cas.de 58 25.11.2013 Dr. Simone Braun Mehrschichtenarchitekturen und EJB