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

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

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

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

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

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

Entwicklung von Web-Anwendungen auf JAVA EE Basis

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

Softwareentwicklung mit Enterprise JAVA Beans

Ablauf, Inhalt und Themen SS2016

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

Axis2, CXF und JAX-WS RI im Vergleich

J2EE mit Eclipse 3 und JBoss

Automatisierter Java EE Entwicklungs-Lifecycle mit WebLogic Server 12c. Robin Müller-Bady Systemberater, Oracle Deutschland

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

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

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

Ablauf, Inhalt und Themen SS2014

Mit Java von der Datenbank in den Browser Thomas Bröll Principal Consultant Trivadis GmbH, Stuttgart

Eberhard Wolff. Spring. Framework für die Java-Entwicklung. "BJ dpunkt.verlag

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Eclipse, Spring und OSGi 1

Oracle Weblogic Administration Grundlagen

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Softwareentwicklung in verteilten Umgebungen, Teil 12 Enterprise Middleware. Dieter Schmalstieg. Dieter Schmalstieg SVU Enterprise Middleware

VAADIN, SPRING BOOT & REST

Spring Dynamic Modules for OSGi Service Platforms

26. DECUS Symposium

ORACLE CLOUD VERLEIHT ADF ANWENDUNGEN FLÜGEL. Andreas Koop CEO & Consultant Oracle Technologies

Programmierung von Client/Server- Anwendungen

Geschäftskomponenten mit EJBs

Wenn Anwendungen vom OC4J-Container auf WebLogic umziehen

Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr. Spring & Hibernate. Eine praxisbezogene Einführung HANSER

Spring & Hibernate Eine praxisbezogene Einführung

HAGEN KLATT. Geburtsjahr 1989 Profil-Stand Juni Triona Information und Technologie GmbH Dekan-Laist-Straße 15a Mainz

PROFIL HAGEN KLATT. Stand: Juni Triona Information und Technologie GmbH. Dekan-Laist-Str. 15a Mainz. Tel: /

Oracle Weblogic Administration Grundlagen

WildFly Application Server Administration

Application Server und Continuous Integration

Introduction to JSF technology and Rapid Application Development Roland Zänger

Liste V Enterprise JavaBeans

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

Spring & Hibernate HANSER. Eine praxisbezogene Einführung. Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr

Programmierung von verteilten Systemen und Webanwendungen mit Java EE

Enterprise JavaBeans (mit JBoss)

Security Technologien in Java EE 6

Portal-Entwicklung mit ADF und PDK

Masterkurs Verteilte betriebliche Informationssysteme

CAS Enterprise Application Development Java EE

CAS Enterprise Application Development Java EE

Web-Anwendungen mit JavaServer Faces

Persistenz. Ralf Gitzel

Geschäftskomponenten mit EJB 3.1

Enterprise Application Integration Erfahrungen aus der Praxis

Deep Dive in WebLogic Server und Multi- Tenancy

Java 2, Enterprise Edition Einführung und Überblick

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

Guten Morgen Geronimo

Geronimo, konfigurierbarer Java EE Application Server

Axis2, CXF und JAX-WS RI im Vergleich

Administration und Konfiguration für JBoss 7

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Einführung in Oracle ADF für Entwickler. Jürgen Menge Oracle Deutschland

Tomcat Konfiguration und Administration

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

Java EE Projektseminar

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Upgrade von Java Anwendungen von OracleAS 10g auf FMW 11g

WebForms ohne Oracle Application Server

Mail: Web: juergen-schuster-it.de

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG

Entwicklung einer Mobile Application mit ADF Mobile

Oracle Public Cloud benutzen

Inhaltsverzeichnis. 1 Ein Einstieg mit Profil 1. 2 Aufsetzen der Entwicklungsumgebung 19

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 3. Enterprise Java Beans

Java.NET Web-Technologien Mobile

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

Mainframe und J2EE auf Augenhöhe? JCA 1.5 am Beispiel von Oracle 10g und BeanConnect 2.0

Steuerflucht ins Ausland? Bringt nichts!

Spring Dynamic Modules for OSGi Service Platforms

Java-Trends - Ein Kurzüberblick

Java Technologie Update

20. Deutsche Anwenderkonferenz 2007 Software Entwicklung 2.0

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

JDO Java Data Objects

PROFIL ODILON NANGUE GUEZAN Triona Information und Technologie GmbH

Enterprise JavaBeans Überblick

IT im Wandel. Der richtige Weg zu modernen Apps und in die Oracle Cloud

Enterprise JavaBeans Überblick

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Transkript:

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

2

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 web-basierter Benutzeroberfläche Aktuelle Version: JavaEE 7 3

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 4

Profile ermöglichen flexiblen Technologiestack Java EE kommt mit zwei Profilen Full Profile = komplette Laufzeitumgebung Web Profile = reduzierte Laufzeitumgebung für Web-Applikationen ( Tomcat mit EJBs ) 5

Servlet API JEE Enterprise Application JDBC Websockets JSF JAX-WS JAX-RS JMS JAXB JSON-P EJB JPA JCA JAX-WS JAX-RS JMS CDI Servlet API: Support für (HTTP-)Endpunkte Websockets: Support für Websockets JSF: Java Server Faces; webbasierte Uis JAX-WS: Java API for XML Web Services (SOAP) JAXB: Java Architecture for XML Binding; schon aus Java SE JAX-RS: Java API for RESTful Web Services (REST) JSON-P: Java API for JSON Processing JMS: Java Message Service; Integration von Messaging Systemen EJB: Enterprise Java Beans; Support für serverseitige transaktionale Komponenten CDI: Contexts and Dependency Injection JDBC: Java Database Connectivity; Integration von relationalen Datenbanken aus Java SE JPA: Java Persistence API; Standard für persistente Java-Objekte JCA: Java EE Connector Architecture; Integration von transaktionalen Enterprise Information Systemen 6

Rolle eines JEE Application Servers und dessen Zusammenspiel mit JEE Applikationen 7

JEE Application Server stellt Laufzeitumgebung für JEE Applikationen dar JEE Application Server bietet standardisierte Infrastrukturdienste und Ressourcen für Applikationen JEE Applikation muss bestimmte Schnittstellen unterstützen, damit der JEE Application Server sie ausführen kann JEE Application Server (z.b. Glassfish) JEE Application Konnektoren zur und Endpunkte für Außenwelt 8

JEE Application Server Web / Servlet Container WC WC WC CDI Container CMB CMB CMB EJB Container EJB EJB EJB JEE Applikation bestehen aus Komponenten von bestimmten Typen Pro Komponententyp gibt es eigene Container im JEE Application Server: Web-Komponenten (WC) laufen im Servlet Container CDI-Container verwaltet alle CDI managed Beans (CMB) EJB-Container kontrolliert alle Enterprise Java Beans (EJB) Container kennen sich untereinander 9

10

Gepackt in Module 11

Modul: austauschbares, komplexes Element innerhalb eines Gesamtsystems [..], das eine geschlossene funktionale Einheit bildet. (Quelle: Duden) Funktionseinheit (Functional Unit) Geschlossene fachliche Funktionseinheit Eigener Namensraum (Package) Baueinheit (Build Unit) Zusammenfassung von Funktionseinheiten Wird durch ein Build-Tool gebaut Deploymenteinheit (Deployment Unit) Zusammenfassung von Baueinheiten Kann einzeln auf einer Laufzeitumgebung bereitgestellt und ausgeführt werden 12

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 ) (/lib) 13

${appname}.ear ${webmodname}.war ${ejbclientmodname}.jar ${ejbmodname}.jar /META-INF application.xml glassfish-application.xml /lib ${utilitymodname}.jar ${utilitymodname}.jar Applikationsmodule: Web Application Module (WAR), EJB Client Module (JAR), EJB Module (JAR) Deployment Deskriptoren (optional): application.xml = Standard-Deskriptor glassfish-application.xml = Hersteller-spezifischer Deskriptor Alle Utility-JARs, die keine Web Application Module, keine EJB (Client) Module sind 14

Web Application (WAR) Kompilierte Java-Klassen (/WEB-INF/classes) Web-Ressourcen (/*, /resources/${libraryname}/*) Utility (JAR) Utility (JAR) Utility (JAR) DD Eine typische Java EE Web-Applikation wird durch ein Web Application Archive (WAR) repräsentiert ZIP-Datei mit standardisiertem Inhalt In sich vollständige Installationseinheit Ein WAR besteht im allgemeinen aus kompilierten Java-Klassen (/WEB-INF/classes) aus Web-Ressourcen wie (X)HTML, Grafiken, CSS, JavaScript (/*) aus JSF-Ressource-Bibliotheken (/resources/${libraryname}/* aus mehreren Utility-JARs (/WEB-INF/lib) Enterprise Java Beans (EJB) werden auch unterstützt (EJB Lite = EJB ohne Remote Interfaces) 15

${webappname}.war [static web resources] /WEB-INF web.xml glassfish-web.xml beans.xml faces-config.xml persistence.xml /classes [compiled classes].class /lib ${utilitymodname}.jar ${utilitymodname}.jar Statische Web-Ressourcen (HTML, CSS, JS, Bilder) mit beliebiger Verzeichnisstruktur Deployment Deskriptoren und Konfigurationsdateien (optional): web.xml = Standard-Deskriptor glassfish-web.xml = Hersteller-spezifischer Deskriptor beans.xml = CDI-Konfigurationsdatei faces-config.xml = JSF-Konfigurationsdatei persistence.xml = JPA-Konfigurationsdatei Alle Utility-JARs 16

Web Application (WAR) Web Application (WAR) PRÄSENTATIONSSCHICHT UI Komponente EJB Client (JAR) Business EJB (JAR) Integration GESCHÄFTSLOGIKSCHICHT INTEGRATIONSSCHICHT Geschäftskomponente Ressourcezugriffskomponente Alle Komponenten befinden sich im Web-Modul Schichtentrennung ausschließlich über getrennte Packages Web-Profile Application-Server ausreichend 17

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 Die öffentlichen Interfaces der Geschäftskomponenten und Domänenobjekte befinden sich im EJB-Client-Modul Alle Geschäftskomponenten aus der Geschäftslogikschicht befinden sich im EJB-Modul Die Ressourcezugriffskomponenten aus der Integrationsschicht befinden sich im EJB-Modul 18

Enterprise Application (EAR) Web Application (WAR) Web Application (WAR) Web Application Fragment A (JAR) EJB Client (JAR) EJB Client A (JAR) EJB (JAR) EJB A (JAR) Geschäftskomp. Web Application Fragment B (JAR) Business EJB Client B (JAR) EJB B (JAR) Geschäftskomp. Integration PRÄSENTATIONSSCHICHT GESCHÄFTSLOGIKSCHICHT UI Komponente Geschäftskomponente EJB A (JAR) Zugriffskomp. EJB B (JAR) Zugriffskomp. INTEGRATIONSSCHICHT Ressourcezugriffskomponente Wie Variante Mittelgewicht, aber alle Datenzugriffskomponenten in eigenem EJB-Modul Mehrere Module pro Schicht möglich (getrennte vertikale fachliche Module über alle Schichten) Fachlich getrennte Benutzeroberflächen als physisch getrennte Web Application Fragmente 19

20

Database Host Application Server Host (z.b Linux VM / Docker Container) RDBMS JEE Application (EAR/WAR) Deploy Java Virtual Machine (JVM) JEE Application Server (z.b. Glassfish) JEE Application (EAR/WAR) D S Schema Deployment Unit ist JEE Applikation JEE Application Server muss getrennt angelegt, konfiguriert und betrieben werden DataSource als Beispiel für JNDI- Ressourcen 21

Database Host Docker Image Java Virtual Machine (JVM) JEE Application Server (z.b. Glassfish) JEE Application (EAR/WAR) D S Deploy / Run Docker Host Docker Container Java Virtual Machine (JVM) JEE Application Server (z.b. Glassfish) JEE Application (EAR/WAR) D S RDBMS Schema Deployment Unit ist Docker Image mit JEE Application Server plus Applikation JEE Application Server wird gemeinsam mit Applikation angelegt und konfiguriert 22

23

24

Eric Jendrock et. al.: The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/ Oracle September 2014 Marcus Schießer, Martin Schmollinger: Workshop Java EE 7 dpunkt.verlag 2015, 2. Auflage; ISBN 978-3-86490-195-9 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 25

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