JavaEE Grundlagen. Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A

Ähnliche Dokumente
FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

Application Frameworks

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Contexts and Dependency Injection. W3L AG

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

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

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

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

Geschäftskomponenten mit EJBs

Spring Dynamic Modules for OSGi Service Platforms

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Softwareentwicklung mit Enterprise JAVA Beans

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

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

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Spring Dynamic Modules for OSGi Service Platforms

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

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

JBoss Seam. Ein JEE 5 Webframework. Jörg Wüthrich Infopoint, 4. Februar 2009

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Aspektorientierte Middleware Florian Wagner

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Enterprise Java Beans Einführung

SE2-10-Entwurfsmuster-2 15

ORACLE Business Components for Java (BC4J) Marco Grawunder

Java Enterprise Architekturen Willkommen in der Realität

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

E-Business Architekturen

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

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

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

Workshop II. BAPI-basierte Business Collaboration mit dem SAP Web Application Server

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

PROFILE, PORTFOLIO, TECHNOLOGIES

Zend PHP Cloud Application Platform

Prozessautomatisierung mit BPMN 2.0 und Java.

Enterprise Java Beans

MEHR INNOVATION. MIT SICHERHEIT. COMPAREX Briefing Circle 2014

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

Secure Network Communications (BC-SEC-SNC)

Herausforderungen des Enterprise Endpoint Managements

WebSphere Application Server Installation

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner

Liste V Enterprise JavaBeans

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

OPplus Document Capture

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Architecture Blueprints

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG

Seminare Softwaretechnik - Einführungsveranstaltung

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Weblogic Server: Administration für Umsteiger

Das Interceptor Muster

Enterprise Mobility, Live! Pascal Kaufmann, Swisscom IT Services AG 12. Juni 2013

ObjectBridge Java Edition

Gemeinsam mehr erreichen.

Bes 10 Für ios und Android

Java EE Projektseminar

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

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

WebService in Java SE und EE

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Einheitliche Verwaltung von Soft- und Hardware mobiler Geräte

12.4 Sicherheitsarchitektur

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

Oracle Forms 11g Upgradepfade & Lizenzierungsmodelle. Holger Pölzl Senior Channel Manager ISV

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

Prinzipien Objektorientierter Programmierung

Internetanbindung von Datenbanken

Daten haben wir reichlich! The unbelievable Machine Company 1

An integrated total solution for automatic job scheduling without user interaction

REST-Services mit Dropwizard ruck-zuck erstellt, dokumentiert und getestet

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

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

jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Clientkonfiguration für Hosted Exchange 2010

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

Geschäftskomponenten mit EJB 3.1

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

SDD System Design Document

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Leitfaden zur Nutzung von binder CryptShare

Security Technologien in Java EE 6

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

Open Source. Hendrik Ebbers 2015

Transkript:

JavaEE Grundlagen FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A Sommersemester 2012

2

Die Java EE Plattform Java EE Spezifikation definiert ein Programmiermodell für Applikationen eine Laufzeitumgebung für Applikationen Konkrete Implementierungen von Java EE Laufzeitumgebungen werden von Herstellern geliefert IBM WebSphere Application Server 8.0 ORACLE Glassfish Server 3 (JavaEE 6 RI) & WebLogic Server 11g Rel 1 (10.3.3) RED HAT JBOSS Application Server 7.1.0 Fokus auf server-seitigen Java-Applikationen mit web-basierten Benutzeroberflächen Aktuelle Version: Java EE 6 4

Ziele der Java EE Plattform Standardisierter Container für Java EE Applikationen mit essentiellen Infrastrukturdiensten Remoting / Transaktionen / Security / Persistenz Portable server-seitige Applikationen Flexibler Technologie-Stack für spezifische Anforderungen (Profiles) Verbesserte Erweiterbarkeit Leichte und schnelle Entwicklung von Applikationen Einfaches, POJO-basiertes Entwicklungsmodell Annotationen ersetzen Deployment-Deskriptoren Minimaler Konfigurationsaufwand (Convention over Configuration) Abhängigkeiten zwischen Komponenten werden vom Container erkannt und aufgelöst (Dependency Injection) 5

Die Entwicklung von Java EE Whitepaper: Introduction to the JavaEE 6 Platform, Sun Microsystems Inc. December 2009 (https://www.sun.com/offers/details/java_ee6_overview_paper.xml) 6

Module einer JavaEE-Applikation Enterprise Application (EAR) Web Application Web UI (WAR) Service EJB Client Facades (JAR) EJB (JAR) Utility (JAR) Utility (JAR) Utility (JAR) DD DD DD Eine typische Java EE Applikation wird durch ein Enterprise Application Archive (EAR) repräsentiert ZIP-Datei mit standardisiertem Inhalt In sich vollständige Installationseinheit Ein EAR besteht im allgemeinen aus einer Webapplikation (WAR), die die Benutzeroberfläche repräsentiert aus einem EJB JAR mit Enterprise Java Beans, die die Businesslogik der Applikation repräsentieren aus einem EJB Client JAR, welches die Interfaces zu den EJBs zur Verfügung stellt aus mehreren Utility JARs, die Querschnittsfunktionalität für alle Module zur Verfügung stellt (Frameworks, Security, Logging ) 8

Module, Schichten und Komponenten Enterprise Application (EAR) Web Application (WAR) Web Application (WAR) EJB Client (JAR) EJB (JAR) Business EJB Client (JAR) EJB (JAR) Integration Präsentationsschicht Geschäftslogikschicht Datenhaltungsschicht UI Komponente Geschäftskomponente Datenzugriffskomponente Alle UI-Komponenten aus der Präsentationsschicht befinden sich im Web-Modul Alle Geschäftskomponenten aus der Geschäftslogikschicht befinden sich im EJB-Modul Die öffentlichen Interfaces der Geschäftskomponenten befinden sich im EJB-Client-Modul Die Datenzugriffskomponenten aus der Datenhaltungsschicht befinden sich im EJB-Modul 9

Modulvariationen Enterprise Application (EAR) Web Application (WAR) UI-Komponenten Enterprise Application (EAR) Web Application (WAR) UI-Komponenten Enterprise Application (EAR) Web Application (WAR) UI-Komponenten EJB (JAR) Geschäftskomponenten Datenzugriffskomponenten Einfache Komplexität: Kein EJB-Client Modul EJB-Modul enthält alle Geschäftskomponenten und Datenzugriffskomponenten EJB Client (JAR) Öffentliche Interfaces EJB (JAR) Geschäftskomponenten Datenzugriffskomponenten Mittlere Komplexität: EJB-Client Modul beinhaltet die Interfaces der Geschäftskomponenten und die Domänenobjekte EJB-Modul enthält alle Geschäftskomponenten und Datenzugriffskomponenten EJB Client (JAR) Öffentliche Interfaces EJB (JAR) Geschäftskomponenten EJB (JAR) Datenzugriffskomponenten Hohe Komplexität: Wie mittlere Komplexität aber alle Datenzugriffskomponenten werden in ein eigenes EJB-Modul verpackt Mehrere Module pro Schicht möglich 10

Inversion of Control Hollywood-Prinzip: "Don't call us, we call you One important characteristic of a framework is that the methods defined by the user to tailor the framework will often be called from within the framework itself, rather than from the user's application code. The framework often plays the role of the main program in coordinating and sequencing application activity. This inversion of control gives frameworks the power to serve as extensible skeletons. The methods supplied by the user tailor the generic algorithms defined in the framework for a particular application. Designing Reusable Classes von Ralph E. Johnson & Brian Foote Journal of Object-Oriented Programming Juni/Juli 1988 S. 22-35ff http://www.laputan.org/drc/drc.html

Inversion of Control? The question, is what aspect of control are they inverting? Inversion of Control Containers and the Dependency Injection pattern von Martin Fowler auf http://www.martinfowler.com/articles/injection.html 13

Dependency Injection Dependency Injection Präzisierung des IoC-Patterns u.a. von Martin Fowler Ein eigenes Objekt ein Assemblierer löst die Abhängigkeit zwischen zwei Objekten A und B, indem er in Objekt A ein Feld mit der Referenz auf das benötigte Objekt B setzt. Im Kontext von IoC-Containern übernimmt der Container die Rolle des Assemblierers. Arten von Dependency Injection Constructor Injection = Dependency Injection über Konstruktorparameter Setter Injection = Dependency Injection über Setter-Methode Field Injection = Dependency Injection direkt in Felder Method Injection = Dependency Injection über Lookup-Methode

Dependency Injection konkret (I) Anwendungsfall: Consumer benötigt Service Service-Interface Service public interface Service { public void dosomething(); } Service-Implementierung ServiceImpl public class ServiceImpl implements Service public void dosomething() { // Hier wird etwas gemacht } } Consumer benötigt konkreten Service soll aber nur dessen Interface kennen public class Consumer { private Service service;... public void useservice() { this.service.dosomething(); } Wie kommt der Consumer an den Service?

Dependency Injection konkret (II) Traditionelle Lösung Consumer instanziiert selber ServiceImpl public class Consumer { private Service service = new ServiceImpl(); Consumer wird abhängig von konkreter Service-Implementierung Lösung mit Dependency Injection Consumer markiert die benötigte Referenz mit einer Annotation public class Consumer { @Inject private Service service; IoC-Container instanziiert Consumer und ServiceImpl und löst die Beziehung zwischen beiden auf Consumer bleibt unabhängig von der konkreten Service-Implementierung! 16

Dependency Injection konkret (III) Aber wie kommen die Objekte in den IoC-Container? Alle vom IoC-Container zu verwaltenden Objekte werden auch mit Annotations markiert @Named public class Consumer { } @Named public class ServiceImpl { } IoC-Container scannt alle Klassen im Klassenpfad Alle markierten Klassen werden vom IoC-Container verwaltet Die Beziehungen unter den Objekten markierten Klassen werden zur Laufzeit vom Container aufgelöst Statt Annotationen kann meistens auch ein XML-Konfigurationsfile zur Deklaration der Objekte und ihrer Beziehungen verwendet werden 17

Aspect Oriented Programming Modularisierung sog. Cross Cutting Concerns in Advices Aspekt AOP Proxy Advice Pointcut quellmethode() zielmethode() Methodenaufruf Joinpoint Target Object 18

Convention over Configuration Übernommen aus der Programmiersprache RUBY Einfaches Prinzip zur Erleichterung der Programmierung Standardmäßig verwendet die Laufzeitumgebung sinnvolle Voreinstellungen Nur im davon abweichenden Fall muss eine Konfiguration vorgenommen werden Beispiele für Convention over Configuration in Java EE Stateless Session Beans oder Managed Beans werden unter dem einfachen Klassennamen registriert, falls nichts anderes angegeben Methodenaufrufe eines Enterprise Java Beans laufen immer in einem transaktionalen Kontext (TRANSACTION_REQUIRED) Die Java Persistence Architecture (JPA) mappt automatisch Klassennamen von Entitäten auf Tabellennamen und Feldnamen auf Spaltennamen 19

Quellen Eric Jendrock et. al. The Java EE 6 Tutorial http://docs.oracle.com/javaee/6/tutoria l/doc/ Oracle February 2012 Adam Bien Real World Java EE Patterns: Rethinking Best Practices press.adam-bien.com June 2009 ISBN 978-0-557-07832-5 Eric Evans Domain Driven Design: Tackling Complexity in the Heart of Software Addison Wesley 2004 ISBN 0-321-12521-5 Rod Johnson J2EE Design and Development Wrox Press 2002 ISBN 1-86100-784-1 Martin Fowler Patterns of Enterprise Application Architecture Addison Wesley 2003 ISBN 0-321-12742-0 21

Vielen Dank! Michael Theis Senior Developer UniCredit Business Integrated Solutions S.C.p.A. email michael.theis@hm.edu phone + 49 89 378-46498 mobile + 49 170 7875474 web http://www.tschutschu.de/lehrauftrag.html 23