FWP Aktuelle Technologien zur Entwicklung verteilter Java … · 2020-05-17 · Faces (JSF) und...

27
Ablauf, Inhalt und Themen FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Theis Michael - Senior Developer UniCredit Business Integrated Solutions S.C.p.A Sommersemester 2012

Transcript of FWP Aktuelle Technologien zur Entwicklung verteilter Java … · 2020-05-17 · Faces (JSF) und...

Ablauf, Inhalt und Themen

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

Theis Michael - Senior Developer UniCredit Business Integrated Solutions S.C.p.A

Sommersemester 2012

Ablauf / Termine

Wöchentliche Vorlesung (4 SWS) Ab 21.03.2012 jeden Mittwoch von 15.15 – 18.30 im Raum 1.006

Themen werden zu Semesterbeginn vergeben und einzeln bearbeitet

Meilensteine und deren Bewertung

4

Seminar-arbeit

(20 Seiten)

Präsen-tation

(60 min)

1. Endnote 40%

Kolloquium (30 min)

2. Endnote 60%

Java EE

Architektur

Pattern

Web UI

EJB

Persistenz

Web Services

Messaging

Security

Testen

Spring

Themenschwerpunkte

6

… und das alles mit

praktischen Beispielen!

Die Themen im Überblick (I)

Thema 1: Java EE Design Patterns und Paradigmen

Thema 2: Spring – Alternative oder Ergänzung zu Java EE?

Thema 3: Kontexte und Dependency Injection mit CDI

Thema 4: Grundbausteine einer Web-App mit Java EE 6

Thema 5: Benutzeroberflächen mit JSF 2.0

Thema 6: Rich-Internet-Applikationen mit JSF und AJAX

Thema 7: Mobile Benutzeroberflächen mit HTML5

Thema 8: Java-basierte Unternehmensportale

Thema 9: Geschäftskomponenten mit EJB 3.x

7

Die Themen im Überblick (II)

Thema 10: Moderne Komponentenmodelle mit EJB 3.x

Thema 11: Datenzugriffskomponenten mit JPA 2.0

Thema 12: Testen von web-basierten Benutzeroberflächen

Thema 13: Webservices mit Java

Thema 14: Messaging mit Java

Thema 15: Sicherheit in unternehmenskritischen Anwendungen

Thema 16: Batchverarbeitung in Java mit Spring Batch

8

Java EE Design Patterns und Paradigmen

Design Patterns und Paradigmen beschreiben bewährte Lösungen zu einem wiederholt auftretenden Problemen. Auch in der Java EE Welt haben sich spezielle Patterns und Paradigmen bewährt.

Beschreiben Sie die fundamentalen Patterns und Paradigmen, auf denen Java EE aufbaut:

Strategy

Factory

Convention over Configuration

Inversion of Control / Dependency Injection

Führen Sie zu jedem Pattern/Paradigma ein konkretes Beispiel auf.

Einstiegsliteratur und Internetquellen:

Oracle’s Java EE Pattern Homepage http://www.oracle.com/technetwork/java/patterns-139816.html

Erich Gamma, Richard Helm und Ralph E. Johnson Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley Longman, Amsterdam; Auflage: 1st ed., Reprint. (31. Oktober 1994) ISBN 978-0201633610

Martin Fowler Inversion of Control Containers and the Dependency Injection pattern http://martinfowler.com/articles/injection.html

10

Spring – Alternative oder Ergänzung?

In der Java-Community hat sich Spring als Vertreter der leichtgewichtigen Container für POJO-basierte Komponenten einen festen Platz erobert.

Arbeiten Sie die Architekturkonzepte von Spring 3.x heraus

Inversion of Control (IoC)

Dependency Injection

Aspect Oriented Programming (AOP)

JavaBeans™-Spezifikation.

Beschreiben Sie, wie sich Spring am besten in eine Java EE Applikation integrieren lässt

Einstiegsliteratur und Internetquellen:

Rod Johnson, Expert One-on-One J2EE Design and Development, Wrox 2002, ISBN: 978-0-7645-4385-2 http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764543857.html

Rod Johnson & Jürgen Höller, Expert One-on-One J2EE Development without EJB, Wrox 2004, ISBN: 978-0-7645-5831-3 http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764558315.html

Spring Framework Homepage http://www.springsource.org/

11

Kontexte und Dependency Injection mit CDI

Der JSR 299 Contexts and Dependency Injection for the Java EE Plattform (CDI) definiert eine Technologie, mit deren Hilfe sich verschiedenste Komponenten aus JavaEE-Applikationen miteinander verknüpfen lassen, ohne die lose Kopplung zwischen den Komponenten zu verlieren.

Beschreiben Sie die wesentlichen Annotationen, mit denen sich beliebige Komponenten über CDI miteinander verknüpfen lassen.

Zeigen Sie auf, wie sich derartige Komponenten an Kontexte binden lassen, die die Lebensdauer der Komponenten definieren.

Bewerten Sie die Stärken und Schwächen dieser Technologie.

Einstiegsliteratur und Internetquellen:

JSR 299 Homepage http://jcp.org/en/jsr/detail?id=299

Eric Jendrock et. al. The Java EE 6 Tutorial Part V http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

12

Grundbausteine einer Webapp mit Java EE 6

13

In vielen großen Unternehmen haben sich wegen der leichteren Betreibbarkeit inzwischen webbasierte Applikationen durchgesetzt. Die Java EE-6 Plattform bietet alle Voraussetzungen, um derartige webbasierte Anwendungen zu erstellen.

Beginnen Sie mit einer Beschreibung der Grundlagen webbasierter Applikationen.

Erläutern Sie, welche Grundbausteine Ihnen die Servlet API 3.0 als Teil von Java EE 6 für die Erstellung von webbasierten Anwendungen bietet.

Einstiegsliteratur und Internetquellen:

Eric Jendrock et. al. The Java EE 6 Tutorial Part II Chapter 15 http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

Benutzeroberflächen mit JSF 2.0

Nach anfänglichen Kinderkrankheiten hat sich Java Server Faces (JSF) als offizieller Standard zur Erstellung von webbasierten Benutzerschnittstellen mit Java durch-gesetzt.

Schildern Sie die Grundlagen und Konzepte des JSF-Komponentenmodells auf der Basis der JSF 2.x-Referenzimplementierung aus dem Glassfish-Projekt.

Erläutern Sie Hintergründe und Leistungsmerkmale der neuen View-Technologie Facelets

Beschreiben Sie anhand eines einfachen Beispiels, wie sich mit JSF 2.0 webbasierte Benutzerschnittstellen erstellen lassen.

Einstiegsliteratur und Internetquellen:

Ed Burns, Chris Schalk JavaServer Faces 2.0: The Complete Reference McGraw-Hill 2010 ISBN 978-0-07-162509-8

Eric Jendrock et. al. The Java EE 6 Tutorial Part II Chapter 4 ff http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

Oracle’s JavaServer Faces Homepage http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html

14

Rich-Internet-Applikationen mit JSF und AJAX

Mit dem Ansatz der Rich Internet Applications (RIA) soll versucht werden, den Komfort und die Benutzbarkeit web-basierter Benutzeroberfläche zu verbessern. In der Java-Welt bietet sich hierfür die Kombination von Java Server Faces (JSF) und AJAX an.

Schildern Sie die Grundlagen von AJAX.

Erläutern Sie wie sich AJAX seit JSF 2.0 umsetzen lässt.

Zeigen Sie, wie JSF Komponenten-bibliotheken wie z.B. PrimeFaces Ihnen bei der Erstellung von RIA-Anwendungen helfen können.

Einstiegsliteratur und Internetquellen:

Ed Burns, Chris Schalk JavaServer Faces 2.0: The Complete Reference McGraw-Hill 2010 ISBN 978-0-07-162509-8

Eric Jendrock et. al. The Java EE 6 Tutorial Part II Chapter 12 http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

Oracle’s JavaServer Faces Homepage http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html

PrimeFaces Homepage http://www.primefaces.org

15

Mobile Benutzeroberfächen mit HTML5

Mit dem Siegeszug mobiler internet-tauglicher Endgeräte wie Smartphones und Tablets hat sich die neueste Version 5 von HTML bereits durchgesetzt, obwohl die entsprechende Spezifikation überhaupt noch nicht abgeschlossen ist.

Schildern Sie die Grundlagen von HTML5.

Zeigen Sie, wie sich mit CSS3 das Layout und Look&Feel von HTML basierten Oberflächen definieren lässt.

Zeigen Sie, welche wichtigen Erweiterungen für mobile Endgeräte HTML5 mit sich bringt

Web Storage

Web Sockets

Einstiegsliteratur und Internetquellen:

HTML 5 auf W3C.org HTML5 A vocabulary and associated APIs for HTML and XHTML http://dev.w3.org/html5/spec/Overview.html

CSS 3 auf W3C.org Cascading Style Sheets (CSS) Snapshot 2010 http://www.w3.org/TR/CSS/

Web Storage auf W3C.org Web Storage http://dev.w3.org/html5/webstorage/

Web Sockets auf W3C.org The WebSocket API http://dev.w3.org/html5/websockets/

16

Java-basierte Unternehmensportale

Insbesondere für große Unternehmen empfiehlt es sich, die Vielzahl der Webapplikationen in ein gemeinsames Unternehmensportal zu integrieren. Für java-basierte Portale werden über den Java Community Process (JCP) mit JSRs Standards definiert, die die Integration erleichtern sollen.

Schildern Sie zunächst die Grundlagen von Unternehmensportalen und Portalservern.

Beschreiben Sie die wesentliche JSR-Spezifikationen, welche Standards für Portal-Applikationen definieren.

Zeigen am Beispiel von Liferay, wie ein java-basierter Portalserver konkret funktioniert und wie sich Applikationen dafür schreiben lassen.

Einstiegsliteratur und Internetquellen:

Portal Spezifikationen auf JCP.org JSR 168: Portlet Specification http://jcp.org/ja/jsr/detail?id=168 JSR 170: Content Repository for JavaTM technology API http://jcp.org/ja/jsr/detail?id=170 JSR 286: Portlet Specification 2.0 http://jcp.org/ja/jsr/detail?id=286

Liferay Homepage http://www.liferay.com/de/

17

Geschäftskomponenten mit EJB 3.x

Mit EJB 3.0 haben die sonst so verpönten Enterprise JavaBeans eine Art Wieder-auferstehung erlebt. Das Programmier-modell wurde wesentlich vereinfacht, sodass heutzutage die Erstellung von transaktionalen, gesicherten und verteilten Geschäftskomponenten mit EJB 3.x leicht von der Hand geht

Erläutern Sie die Grundzüge des Programmiermodells von EJB 3.x

Annotationen

Transaktionen / Sicherheit

Local Interfaces / Remote Interfaces

Dependency Injection

Interceptors

Beschreiben Sie die wesentlichen Typen von EJBs und deren Einsatzgebiete

Einstiegsliteratur und Internetquellen:

Bill Burke, Richard Monson-Haefel Enterprise JavaBeans 3.0 O'Reilly Media; Auflage: 5th ed. (19. Mai 2006), ISBN: 978-0596009786 http://www.oreilly.com/catalog/entjbeans5/index.html

Adam Bien Real World Java EE Patterns: Rethinking Best Practices press.adam-bien.com Juni 2009 ISBN 978-0-557-07832-5

Oracle’s EJB Homepage http://www.oracle.com/technetwork/java/ejb-141389.html

Eric Jendrock et. al. The Java EE 6 Tutorial Part IV http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

18

Moderne Komponentenmodelle mit EJB 3.x

Auf Basis von EJB 3.x lassen sich leistungsfähige Komponentenmodelle erstellen, die unter anderem den Aufbau service-orientierter Applikationen ermöglichen.

Nennen Sie die wesentlichen aktuellen Pattern, die bei der Erstellung dieser Komponentenmodelle helfen können.

Erläutern Sie welche Rollen die einzelnen EJBs in diesem Komponentenmodell übernehmen:

Transactional Boundary

Security Boundary

Fassaden, Services und DAOs

Einstiegsliteratur und Internetquellen:

Bill Burke, Richard Monson-Haefel Enterprise JavaBeans 3.0 O'Reilly Media; Auflage: 5th ed. (19. Mai 2006), ISBN: 978-0596009786 http://www.oreilly.com/catalog/entjbeans5/index.html

Adam Bien Real World Java EE Patterns: Rethinking Best Practices press.adam-bien.com Juni 2009 ISBN 978-0-557-07832-5

Oracle’s EJB Homepage http://www.oracle.com/technetwork/java/ejb-141389.html

Eric Jendrock et. al. The Java EE 6 Tutorial Part IV http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

19

Datenzugriffskomponenten mit JPA 2.0

Die Java Persistence Architecture (JPA) hat sich inzwischen als Standard für die Integration von relationalen Daten in Java Applikationen etabliert.

Beschreiben Sie die Grundlagen von JPA

Entities und Entity Manager

Persistence Context und Persistence Unit

Object-Relational-Mapping (ORM) mit Annotations

Queries

Zeigen Sie, wie sich Datenzugriffs-komponenten auf Basis von JPA implementieren lassen

Einstiegsliteratur und Internetquellen:

Bill Burke, Richard Monson-Haefel Enterprise JavaBeans 3.0 O'Reilly Media; Auflage: 5th ed. (19. Mai 2006), ISBN: 978-0596009786 http://www.oreilly.com/catalog/entjbeans5/index.html

Oracle’s JPA Homepage http://www.jcp.org/en/jsr/detail?id=317

Eric Jendrock et. al. The Java EE 6 Tutorial Part VI http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

Adam Bien Real World Java EE Patterns: Rethinking Best Practices press.adam-bien.com Juni 2009 ISBN 978-0-557-07832-5

20

Testen von webbasierten Benutzeroberflächen

Die Benutzeroberfläche ist der Teil einer Anwendung mit der höchsten Änderungs-häufigkeit. Änderungen müssen getestet werden, was auch im Bereich von webbasierten Benutzeroberflächen automatisiert durchgeführt werden kann. Ein Beispiel für derartiges Testtool ist Selenium.

Beschreiben Sie die Grundlagen von Selenium

Zeigen Sie auf, wie mit Hilfe von Selenium webbasierte Benutzer-oberflächen automatisiert getestet werden können

Erläutern Sie, wie das Test mit Selenium in eine JUNIT-basierte Testumgebung integriert werden kann

Einstiegsliteratur und Internetquellen:

Selenium Hompage http://seleniumhq.org/

JUnit Homepage http://www.junit.org

21

Webservices mit Java

Insbesondere im Zuge der service-orientierten Architektur (SOA) haben sich Webservices als Standard für die Kommunikation von verteilten Systemen über Technologiegrenzen hinweg einen festen Platz in der heutigen IT-Welt erobert.

Schildern Sie zunächst kurz, wie ein Webservice definiert wird (WSDL)

Erläutern Sie, wie die Kommunikation zwischen dem Nutzer und dem Bereitsteller eines Webservices abläuft (SOAP).

Zeigen Sie an einem Beispiel wie sich mit dem JAX-WS-Standard ein Java-Interface als Webservice bereitstellen lässt und wie dieser Webservice von Java aus aufgerufen werden kann.

Einstiegsliteratur und Internetquellen:

Webservices auf W3C.org http://www.w3.org/standards/webofservices/

ORACLE Homepage zu Webservices http://www.oracle.com/technetwork/java/javaee/tech/webservices-139501.html

Eric Jendrock et. al. The Java EE 6 Tutorial Part III http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

22

Messaging mit Java

Die Koppelung von verteilten Anwendungen über Messaging-Systeme ermöglicht die flexibelste Art der Integration verteilter Anwendungen. In Java steht für den Zugriff auf Messaging-Systeme der hersteller-neutrale JMS-Standard zur Verfügung

Schildern Sie die Grundlagen von messaging-basierten Systemen die über JMS integriert werden

Queues und Topics

Connection Factories

Nachrichentypen

Zeigen Sie, wie sich mit JMS und EJB Nachrichten über Messaging-Systeme senden und empfangen lassen.

Einstiegsliteratur und Internetquellen:

ORACLE Sun Developer Network Homepage über JMS http://www.oracle.com/technetwork/java/jms-136181.html

Eric Jendrock et. al. The Java EE 6 Tutorial http://download.oracle.com/javaee/6/tutorial/doc/ Oracle November 2010

Gregor Hohpe, Bobby Woolf Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Addison-Wesley Longman, ISBN 0321200683

23

Sicherheit in unternehmenskritischen Applikationen

24

In unternehmenskritischen Applikationen spielt die Sicherheit vor unzulässigen Zugriffen eine entscheidenden Rolle. Die Java EE-Spezifikation sieht hier ein umfangreiches Set von Möglichkeiten vor, Applikationen sicher zu machen.

Beschreiben Sie zunächst die Grundlagen der Sicherheit im Sinne von Java EE

Erläutern Sie anhand von Beispielen, an welchen Stellen ein Java EE-Anwendungen mit welchen Mitteln gehärtet werden kann

Führen Sie auf, wie sich eigene Sicherheitsmechanismen in eine Java EE-Umgebung integrieren lassen

Einstiegsliteratur und Internetquellen:

Eric Jendrock et. al. The Java EE 6 Tutorial Part VII http://docs.oracle.com/javaee/6/tutorial/doc/ Oracle July 2011

Java EE Management and Security Technologies Homepage von ORACLE http://www.oracle.com/technetwork/java/javaee/tech/management-139662.html

Batchverarbeitung in Java mit Spring-Batch

25

Die Verarbeitung von großen Datenmengen ist nicht mehr ausschließlich mainframe-basierten Systemen vorbehalten sondern wird aus Kostengründen zunehmend auch auf java-basierten Plattformen durchgeführt. Bei der Batchverarbeitung mit Java spielt insbesondere Spring-Batch eine immer größere Rolle.

Beschreiben Sie zunächst die Grundlagen der Batchverarbeitung:

Massendatenverarbeitung

Jobs / Steps

Checkpoint / Restart

Erläutern Sie, wie sich mit Spring-Batch eine java-basierte Massendaten-verarbeitung umsetzten lässt.

Einstiegsliteratur und Internetquellen:

Spring Batch Homepage http://www.springsource.org/spring-batch

Vielen Dank!

27

Michael Theis

Senior Developer

UniCredit Business Integrated Solutions S.C.p.A.

email [email protected]

[email protected]

phone + 49 89 378-46498

mobile + 49 170 7875474

web http://www.tschutschu.de/Lehrauftrag.html