FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

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

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?

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

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

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

Contexts and Dependency Injection. W3L AG

Spring Dynamic Modules for OSGi Service Platforms

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Geschäftskomponenten mit EJBs

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

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

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

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

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

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

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

SE2-10-Entwurfsmuster-2 15

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

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Softwareentwicklung mit Enterprise JAVA Beans

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

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

Spring Dynamic Modules for OSGi Service Platforms

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

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

WebService in Java SE und EE

Enterprise Java Beans Einführung

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

Aspektorientierte Middleware Florian Wagner

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

Enterprise Java Beans

Zend PHP Cloud Application Platform

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

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

Themen. Web Service - Clients. Kommunikation zw. Web Services

ObjectBridge Java Edition

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

Prinzipien Objektorientierter Programmierung

Architecture Blueprints

Java Enterprise Architekturen Willkommen in der Realität

Internetanbindung von Datenbanken

ORACLE Business Components for Java (BC4J) Marco Grawunder

12.4 Sicherheitsarchitektur

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

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Übungsaufgabe Transaktion als Middleware

Architektur des agimatec-validation Frameworks

Der lokale und verteilte Fall

Geschäftskomponenten mit EJB 3.1

Installation von NetBeans inkl. Glassfish Anwendungs-Server

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

Das Interceptor Muster

AOSTA. Aspects in Operating Systems: Tools and Applications

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

Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi

3. Stored Procedures und PL/SQL

jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG

Seminare Softwaretechnik - Einführungsveranstaltung

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R3: Administration

Secure Network Communications (BC-SEC-SNC)

Refaktorisierung des Eclipse- Plugins Saros für die Portierung auf andere IDEs. Verteidigung der Bachelorarbeit von Arndt Tigges

Komponentenbasierte Softwareentwicklung

PROFILE, PORTFOLIO, TECHNOLOGIES

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

CORBA. Systemprogrammierung WS

Gemeinsam mehr erreichen.

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

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

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG

FAQ The FAQ/knowledge base. Version 2.1.1

Web- Applikationen. in Java-Web

News actum consulting products GmbH. Alle Rechte vorbehalten.

Weblogic Server: Administration für Umsteiger

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Hivemind Ein leichtgewichteter Container

PQ Explorer. Netzübergreifende Power Quality Analyse. Copyright by Enetech Alle Rechte vorbehalten.

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

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

SRH Hochschule Heidelberg

Robert Hartmann Public v1.0 (Feb 2015) Architektur & Agilität - Praxisbericht

Android-Geräte Programmieren 4. Hinweise zur Android-Programmierung. Stefan Rothe

Etablierung serviceorientierter Architekturen mit Web Services

Daten haben wir reichlich! The unbelievable Machine Company 1

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Integrating Architecture Apps for the Enterprise

Administrator Handbuch

Java Frameworks im Vergleich - ADF vs. Grails vs. Spring

Java EE Projektseminar

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Systemvoraussetzungen

Transkript:

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

Java EE Spezifikation definiert ein Programmiermodell für Applikationen die Eigenschaften einer Laufzeitumgebung für Applikationen (Application Server) Hersteller liefern konkrete Implementierungen Fokus auf server-seitige Applikationen mit webbasierter Benutzeroberfläche Aktuelle Version: JavaEE 6

Standardisierter Applikationscontainer mit essentiellen Infrastrukturdiensten Remoting, Transaktionen, Security, Persistenz Leichte und schnelle Entwicklung von portablen, serverseitigen Applikationen POJO-basiertes Modell, Annotations, Convention over Configuration, Dependency Injection, AOP Flexibler Technologiestack (Profiles) Ausgelegt auf Erweiterbarkeit

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

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 )

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 INTEGRATIONSSCHICHT UI Komponente Geschäftskomponente Ressourcezugriffskomponente 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 Ressourcezugriffskomponenten aus der Integrationsschicht befinden sich im EJB-Modul

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 Ressourcezugriffskomponenten 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 Ressourcezugriffskomponenten EJB Client (JAR) Öffentliche Interfaces EJB (JAR) Geschäftskomponenten EJB (JAR) Datenzugriffskomponenten Hohe Komplexität: Wie mittlere Komplexität aber alle Ressourcezugriffskomponenten werden in ein eigenes EJB-Modul verpackt Mehrere Module pro Schicht möglich

Gemeinsame Patterns und Prinzipien

Don t call us, we call you! Kontrolle wandert von der Applikation in das verwendete Framework: 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 und Brian Foote Journal of Object-Oriented Programming Juni/Juli 1988, S. 22-35ff http://www.laputan.org/drc/drc.html

Präzisierung des Inversion of Control-Patterns u.a. von Martin Fowler Ein sog. Assemblierer löst die Abhängigkeiten zwischen Objekten auf Lose gekoppelte POJOs leben in einem Inversion of Control-Container Container bestimmt Lebenszyklus der Objekte Container löst als Assemblierer die Abhängigkeiten auf

Implementierungsklasse des Service public class ServiceImpl implements Service public void dosomething() { // Hier wird etwas gemacht } } Interface des Service public interface Service { public void dosomething(); } Consumer ist abhängig vom Service-Interface public class Consumer { private Service service;... public void useservice() { this.service.dosomething(); }

Traditionell Consumer erzeugt Objekt von ServiceImpl und initialisiert damit Feld service: public class Consumer { private Service service = new ServiceImpl(); Consumer wird abhängig von konkreter Implementierung Mit Dependency Injection Consumer markiert Feld service als Ziel für Dependency Injection: public class Consumer { @Inject private Service service; Container erkennt annotiertes Feld, erzeugt ein Objekt von ServiceImpl und injiziert Referenz in Feld service Consumer kennt nicht die konkrete Implementierung

Alle vom Container zu verwaltenden Klassen werden mit Annotationen markiert @Named public class Consumer { } @Named public class ServiceImpl { } Container scannt alle Klassen im Klassenpfad Objekte der markierten Klassen werden nach Bedarf erzeugt Beziehungen zwischen den Objekten werden über Dependency Injection aufgelöst

Gemeinsame Patterns und Prinzipien

Modularisierung von cross-cutting concerns Aspekt AOP Proxy Advice Pointcut quellmethode() zielmethode() Methodenaufruf (= Joinpoint) Target Object

EJB-Container verwendet AOP für Transaktionsmanagement, Zugriffskontrolle und Remoting JAX-WS verwendet AOP für das Mapping von Methodenaufrufen mit Parametern auf SOAP- Nachrichten und umgekehrt JPA verwendet AOP für die Zustandsüberwachung von Entities

Gemeinsame Patterns und Prinzipien

Einfaches Prinzip zur Erleichterung der Programmierung übernommen aus RUBY Standardmäßig verwendet die Laufzeitumgebung sinnvolle Voreinstellungen Nur im davon abweichenden Fall muss eine Konfiguration vorgenommen werden

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

Eric Jendrock et. al.: The Java EE 6 Tutorial http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle Januar 2013 Adam Bien: Real World Java EE Patterns: Rethinking Best Practices press.adam-bien.com September 2012; ISBN 978-0-300-14931-6 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

Michael Theis Lehrbeauftragter Hochschule München email michael.theis@hm.edu mobile + 49 170 5403805 web http://www.tschutschu.de/lehrauftrag.html