Aktuelle Technologien zur Entwicklung verteilter Java

Werbung
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
Herunterladen