Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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]
phone + 49 89 378-46498
mobile + 49 170 7875474
web http://www.tschutschu.de/Lehrauftrag.html