FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Ablauf, Inhalt und Themen 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 Seminararbeit (20 Seiten) Präsentation (60 min) 1. Endnote 40% Kolloquium (30 min) 2. Endnote 60% 4 Themenschwerpunkte Architektur Spring Pattern Testen Web UI Java EE Security EJB Messaging Persistenz Web Services … und das alles mit praktischen Beispielen! 6 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/WroxTitl e/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/WroxTitl e/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/d oc/ Oracle July 2011 12 Grundbausteine einer Webapp mit Java EE 6 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. 13 Einstiegsliteratur und Internetquellen: Eric Jendrock et. al. The Java EE 6 Tutorial Part II Chapter 15 http://docs.oracle.com/javaee/6/tutorial/d oc/ 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 durchgesetzt. Schildern Sie die Grundlagen und Konzepte des JSF-Komponentenmodells auf der Basis der JSF 2.xReferenzimplementierung aus dem Glassfish-Projekt. Erläutern Sie Hintergründe und Leistungsmerkmale der neuen ViewTechnologie 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/d oc/ 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 webbasierter 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 Komponentenbibliotheken wie z.B. PrimeFaces Ihnen bei der Erstellung von RIAAnwendungen 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/d oc/ 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 internettauglicher 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 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.ht ml 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/ Web Storage Web Sockets 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 JSRSpezifikationen, 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 Wiederauferstehung erlebt. Das Programmiermodell 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/entjbeans 5/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/d oc/ 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/entjbeans 5/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/d oc/ 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 Datenzugriffskomponenten 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/entjbeans 5/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/d oc/ 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 Änderungshä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 Benutzeroberflä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 serviceorientierten 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/webofservic es/ 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/d oc/ 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 MessagingSysteme der hersteller-neutrale JMSStandard 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/tuto rial/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 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 EEAnwendungen mit welchen Mitteln gehärtet werden kann Führen Sie auf, wie sich eigene Sicherheitsmechanismen in eine Java EEUmgebung integrieren lassen 24 Einstiegsliteratur und Internetquellen: Eric Jendrock et. al. The Java EE 6 Tutorial Part VII http://docs.oracle.com/javaee/6/tutorial/d oc/ 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 Die Verarbeitung von großen Datenmengen ist nicht mehr ausschließlich mainframebasierten 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 Massendatenverarbeitung umsetzten lässt. 25 Einstiegsliteratur und Internetquellen: Spring Batch Homepage http://www.springsource.org/spring-batch Vielen Dank! Michael Theis Senior Developer UniCredit Business Integrated Solutions S.C.p.A. email [email protected] [email protected] phone mobile + 49 89 378-46498 + 49 170 7875474 web http://www.tschutschu.de/Lehrauftrag.html 27