Alle Workshops
Java EE 6: Back in Business
Jens Schumann
OpenKnowledge GmbH
Die Java Enterprise Edition (kurz: Java EE) erlebt aktuell eine Renaissance – und dies zu Recht. Und auch die Java EE Komponentenmodelle sind spätestens seit EJB 3.0 und Contexts and Dependency Injection (CDI) wieder salonfähig. Java EE bietet deutlich mehr als nur eine lose Sammlung von Spezifikationen. Neben reiner Technologie definiert sie vor allem Architekturansätze und Konzepte für die Entwicklung und Integration moderner, mehrschichtiger Enterprise-Anwendungen – egal ob Portale, Web-, Desktop- oder Mobile-Clients. Der praxisorientierte Workshop Java EE 6: Back in Business beschäftigt sich anhand eines umfangreichen, praktischen Beispiels eingehend mit den Grundkonzepten von Java EE 6 und veranschaulicht neben der reinen Implementierung auch andere, wichtige Facetten des Enterprise Software Life Cycles.
Der Workshop ist bewusst so aufgebaut, dass sowohl Anfänger als auch Fortgeschrittene auf ihre Kosten kommen. Nach einer kurzen Einführungs- und Orientierungsphase konzentriert sich der Workshop im weiteren Verlauf praxisnah auf die Neuerungen und Möglichkeiten von Java EE 6.
Agenda
Java EE – it’s time for a change
Der erste Themenblock dient zur Einführung in die Grundlagen von Java EE und die damit verbundenen Kerntechnologien. Im Fokus stehen hierbei die neuen Features von Java EE 6 sowie die Beantwortung der Frage: „Warum macht es gerade jetzt Sinn, mit Java EE zu starten?“.- Java EE 6 Grundkonzepte (Inversion of Control, Dependency Injection, Code over Convention, ...)
- Java EE 6 Architektur und Komponentenmodell (Klassisches Schichtenmodell vs. Event-/Messaging Modell, ...)
- Java EE 6 Laufzeitumgebung (EJB Container, Contexts and Dependency Injection for the Java EE Plattform)
Klassisches Schichtenmodell
Nachdem zu Beginn mehrere Java EE Architekturansätze skizziert wurden, wird im zweiten Block ein erster Ansatz - anhand von Theorie und Praxis - im Detail anhand einer umfangreichen Beispielanwendung erarbeitet: das klassische Schichtenmodell.- Architekturbetrachtung: Visualisierung, Business Logik, Persistenz
- Technologiebetrachtung: Java Server Faces, CDI, Enterprise Java Beans , Java Persistence API
- Putting together: Schichtentrennung und Architektur, Schichtentrennung und Technologie
Event-/Messaging-Modell
Neben dem klassischen, synchronen Schichtenmodell, gibt es im Java EE Umfeld noch weitere interessante Ansätze, performante und hoch skalierbare Enterprise Architekturen zu realisieren. Einer dieser Kandidaten – das Event-/Messaging Modell - setzt auf asynchrone Kommunikation und die damit verbundenen Vorzüge. Der Block „ Event-/Messaging Modell“ nimmt dieses Thema unter die Lupe und zeigt, wie die Beispielanwendung entsprechend erweitert und angepasst werden kann.- Architekturbetrachtung: Messaging, Events, Timer
- Technologiebetrachtung: CDI Eventmodell, Java Messaging Service, Message Driven Beans, Timer Service
- Putting together: „Don’t call me, i’ll call you“
Java EE Pattern im Fokus
Wohl kaum eine Technologie hat so viele eigene Pattern und Anti-Pattern nach sich gezogen, wie in den Jahren 2002/2003 die Java 2 Enterprise Edition. Der Block „Java EE Pattern im Fokus“ beschäftigt sich mit eben diesem Thema. Technologie getriebene und historische gewachsene BluePrints und Pattern werden kritisch hinterfragt und - sofern überhaupt noch notwendig - verbesserte Lösungen für die „schöne neue Java EE Welt“ aufgezeigt.- J2EE Pattern kritisch hinterfragt
- Die neuen Java EE Pattern
- CDI ist auch „eine“ Lösung
Teilnehmervorraussetzungen
Neben Java EE Einsteigern und Aufsteigern – also Entwicklern mit J2EE Erfahrung – ist der Workshop auch für Java EE Umsteiger, wie zum Beispiel erfahrene Spring-Entwickler, die einmal einen Blick in die „andere“ Enterprise-Java-Welt werfen wollen, interessant. Eine gewisse Grundkenntnis im Java-Enterprise-Umfeld ist von Vorteil, aber nicht zwingend erforderlich.Systemvoraussetzungen
Einen eigenen Rechner mit mind. 1, besser 2 GB Speicher, sowie vorinstalliertem JDK 6 sollten Sie für die Bearbeitung praktischer Übungen an allen Tagen mitbringen.
BigData I
Pavlo Baron
sixt
Dieser zweitägige Workshop bringt den Teilnehmern den Umgang mit großen Datenmengen in globalen, verteilten Szenarien mit Hilfe bewährter Ansätze und modernster Technologien bei. Dabei steht bei diesem Workshop vor allem der Online-Zugriff auf große Datenmengen im Vordergrund.
Es werden zunächst die Herausforderungen und technische Themen im Bereich der großen Datenmengen aufgezeigt und erörtert: weltweite Verteilung, Skalierbarkeit, typische Trade-offs wie Performance vs. Skalierbarkeit oder Verfügbarkeit vs. Konsistenz., Data Mining, asynchrone Datenübertragung etc.
Danach werden einer nach dem anderen vier der denkbaren allgemeinen Lösungsansätze präsentiert, und es wird mit einigen Irrtümern aufgeräumt.
Dieser Teil wird anhand einer fiktiven Case-Study erläutert, die sich durch
den gesamten Workshop zieht, sodass die Teilnehmer immer einen roten
Lösungsfaden verfolgen. Hier ist bereits Theorie stark mit Hands-on vermischt, denn hier wird das Tooling erläutert und konkert ausprobiert. Das Szenario ist entsprechend vorbereitet, sodass man sehen kann, wie gut oder schlecht es das Problem der Case-Study löst.
Agenda
BigData - eine Übersicht
- Was ist BigData?
- Herausvorderungen
- Trade-offs
Technische Themen
- Vorstellung der fiktiven Case-Study
- Problem
- Bisherige Architektur und ihre Schwachstellen
- Lösungsansätze
Lösungsansatz I - Content Delivery Network (CDN)
- Vorstellung CDNs - Konzepte, Anbieter, Szenarien
- Möglicher Nutzen für Case-Study
- Experiment: Simulation eines CDN-Szenarios mit Apache, Tomcat, Grails, PostgreSQL und und Lucene
Lösungsansatz II - DB Sharding
- Vorstellung DB Sharding (RDMBS-Skalierung)
- Möglicher Nutzen für Case-Study
- Experiment: Simulation eines DB-Sharding-Szenarios mit Tomcat, PostgreSQL und ActiveMQ
Lösungsansatz III - Dezentralisierung mit NoSQL
- Vorstellung Dezentralisierung mit NoSQL
- Möglicher Nutzen für Case-Study
- Experiment: Simulation eines NoSQL-Szenarios mit Tomcat und Cassandra
Lösungsansatz IV - Cloud Datastore
- Vorstellung Cloud Datastore
- Möglicher Nutzen für Case-Study
- Experiment: Simulation eines Cloud Datastore mit Tomcat und Amazon S3 Mock
Fazit
- Besprechung der optimalen Lösung für Case-Study
- Abschließende Diskussion
Teilnehmervoraussetzung
Umgang mit Linux, Kenntnisse in Java EE und RDBMSSystemvoraussetzung
Laptop mit mind. 2GB Hauptspeicher und vorinstallierter aktueller Version von Oracle VirtualBox. Ein VirtualBox-Image mit allen relevanten vorinstallierten OpenSource-Produkten Produkten wird bereit gestellt.
JavaServer Faces 2.0 - Intensiv
Andy Bosch
Berater und Trainer
Lernen sie den Umgang mit dem UI-Framework JavaServer Faces 2.0 in aller Tiefe kennen. In drei intensiven Tagen erhalten Sie eine umfassende Einführung in alle Aspekte von JSF.
In den ersten beiden Tagen werden alle wichtigen Grundlagen von JSF behandelt und geübt. Am dritten Tag wird auf fortgeschrittene Konzepte wie Resourcehandling, Composite Components und Ajax-Integration eingegangen. Ebenso werden verschiedene UI-Komponentenbibliotheken aufgezeigt und speziell mit JBoss RichFaces eine Anwendung aufgebaut. Es wird bereits auf die aktuelle Version JSF 2.0 aufgesetzt.
Im Training wechseln sich Theorie- und Praxismodule ab, sodass auch genügend Zeit bleibt, das Gelernte direkt auszutesten und Fragen zu stellen.
Agenda
- Installation und Konfiguration von JSF
- Managed-Bean-Konzept
- Navigationsregeln
- Facelets als Viewtechnologie
- Datenkonvertierung und -validierung
- Eingabe-, Ausgabe- und Kommandokomponenten
- Tabellen- und Wiederholelemente
- Eventhandling
- Resourcehandling
- Überblick über verschiedene Komponentenbibliotheken (Tomahawk, Trinidad, Icefaces, ...)
- Konkrete Beispiele mit JBoss RichFaces
- Ajax Möglichkeiten in JSF
Teilnehmervorraussetzungen
Grundlagen in der Webentwicklung (JSPs / Servlets)Systemvoraussetzungen
- Jdk 1.5
- Eclipse mit WTP
- Tomcat 6.x
Praxis-Workshop: Web Service Security
Thilo Frotscher
T.Frotscher Systemsoftware-Entwicklung
Dieser Workshop konzentriert sich ganz auf das Thema Sicherheit
von Web Services. Innerhalb eines Tages werden die wichtigsten
Standards und Einsatzgebiete vorgestellt und anhand praktischer
Übungen ausprobiert. Teilnehmer erhalten einen guten Überblick
darüber, welche Möglichkeiten es gibt, die Kommunikation mit
Services abzusichern und wie praxistauglich die jeweiligen
Lösungen aktuell sind. Der Workshop soll weiterhin dabei helfen
einzuschätzen, welcher Ansatz für eigene Projekte am besten
geeignet ist, und welche Auswirkungen dies jeweils auf
Interoperabilität und Performance haben kann.
Agenda
- Sicherheitsanforderungen von Web Services
- Sicherheit auf Transportebene vs. Nachrichtenebene
- WS-Security: Überblick, Autorisierung, Verschlüsselung, Digitale Signaturen, Security Tokens
- WS-Policy und WS-SecurityPolicy
- Weiterführende Standards für fortgeschrittene Architekturen: WS-Trust, WS-SecureConversation
- Hinweise zu Interoperabilität und Performance
Systemvoraussetzungen
- eigenes Laptop mit Java SDK 1.6
- 1 GB Plattenplatz
Teilnehmervorraussetzungen
Der Workshop konzentriert sich ausschließlich auf die Sicherheit von Web Services. Teilnehmer sollten daher Web Service-Grundlagen sicher beherrschen. Für die Übungen ist gute praktische Erfahrung bei der Entwicklung von Web Services mit einem Java-Framework empfehlenswert.
Garbage Collection - Das Java-Speichermanagement
Tobias Frech
Trainer und Coach
Das automatische Speichermanagement in Java erleichtert die Softwareentwicklung erheblich. Für den produktiven Einsatz müssen den Automatismen für das Speichermanagement jedoch die richtigen Vorgaben gemacht werden.
Die vorgestellten Konzepte und Konfigurationsmöglichkeiten werden die Teilnehmer praktisch ausprobieren und mehrere kleine Lasttests durchführen. Die verschiedenen einstellbaren Strategien des Garbage Collectors werden verwendet werden, um die Konfiguration auf unterschiedliche Performance-Zielsetzungen hin zu optimieren.
Typische Probleme mit dem Speichermanagement wie OutOfMemory-Errors und Memory Leaks werden besprochen und eine systematische Herangehensweise vorgestellt.
Die konkreten Übungen und vorgestellten Konfigurationsmöglichkeiten beziehen sich auf die SUN JVM, sind aber von den Konzepten auf JVMs anderer Hersteller übertragbar.
Agenda
Grundlagen Garbage Collection
- Was ist Garbage?
- Optimierung durch Generational Garbage Collection
- Logging der Garbage Collection
Performance
- Durchsatz versus Antwortzeiten
- Throughput-Collector: Parallelisierung aktivieren
- Concurrent-Mark-and-Sweep: Pausezeiten minimieren
- Garbage First (G1): Soft-Realtime als Ziel
OutOfMemory
- Ursachen und Werkzeuge zur Analyse
- spezifische Abhilfen für OOM-Error-Typen
- sinnvolles Monitoring
Memory Leaks
- Symptome eines Memory Leaks
- Analysemöglichkeiten
- praktische Tipps
Systemvoraussetzungen
Grundkenntnisse über die Java Plattform, keine Java-Entwicklungskenntnisse notwendig.Teilnehmervorraussetzungen
Laptop mit einer Installation des SUN Java 6 JDK (http://java.sun.com/javase/downloads/widget/jdk6.jsp). Ein Java 6 JRE enthält nicht alle eingesetzten Werkzeuge und ist daher nicht ausreichend. Windows, Mac OS X und Linux können verwendet werden.
JBoss Administration: Java-Server administrieren mit JBoss
Tobias Frech
Trainer und Coach
Dieser Workshop richtet sich an IT-Administratoren und Java-Entwickler, die einen JBoss-Applikationsserver produktiv zu betreuen haben. Wir starten bei den Grundlagen des Betriebs eines Java-Servers und gehen die wichtigen Konfigurationsmöglichkeiten eines JBoss-Server aus der Perspektive des produktiven Betriebs durch.
Die Themen werden im Stil einer geführten Erkundung bearbeitet. Die Teilnehmer arbeiten selbst mit den vorgestellten Werkzeugen und vollziehen die einzelnen Konfigurationsschritte an einer eigenen Installation. Kenntnisse in der Java-Entwicklung sind nicht notwendig.
Agenda
Einführung und Begriffe
- die Aufgaben der Java Virtual Machine
- Java Runtime Environment und Java Development Kit
- Java Community Process, Java Specification Request und Java Enterprise Edition
Der Admin-Werkzeugkasten
- Kommandozeilen-Tools: jps, jinfo, jstat, jstack, jmap
- Visuelle Werkzeuge: JConsole, VisualVM und Plugins
Überblick über die JBoss-Architektur
- Java Management Extension als Administrations-Standard
- der JBoss-Mikrokernel
- Server-Konfigurationen und der Start-Prozess
Die Konfiguration wichtiger Dienste im JBoss-Server
- Logging-Konfiguration mit Log4J
- Deployment: Typen, Konfiguration und Abhängigkeiten
- Java-Naming: JNDI
- der Transaktionsmanager: Logging, Fehlersituationen
- Java Messaging (JMS)
- Datasources: Datenbanken richtig anbinden
- Security: Server und Anwendungen absichern
Management- und Monitoring-Werkzeuge
- jmx-console und web-console
- Management Console (Embedded JOPR)
- RHQ für große Installationen
- SNMP-Integration
- Nagios-Integration
Systemvoraussetzungen
Grundkenntnisse im Bereich der Server-Administration und im Bearbeiten von XML-Konfigurations-Dateien.Teilnehmervorraussetzungen
Laptop mit einer Installation des SUN Java 6 JDK (http://java.sun.com/javase/downloads/widget/jdk6.jsp). Ein Java 6 JRE enthält nicht alle eingesetzten Werkzeuge. Windows, Mac OS X und Linux können verwendet werden. Administrationsrechte zur Anpassung der Netzwerkkonfiguration sind hilfreich. Die notwendige Software für eine JBoss AS 5.1 Installation wird auf CDs und USB-Sticks gestellt.
SOA beyond White Papers
Niko Köbler
OPITZ CONSULTING Bad Homburg GmbH
Heiko Spindler
Opitz Consulting Bad Homburg GmbH
Der Hype um SOA ist vorbei. In vielen Unternehmen hat der Alltag in den SOA Projekten begonnen und die ersten wirklichen Herausforderungen treten zutage. Dieser Workshop rüstet Sie für die wirklich schwierigen Aufgaben als Architekt, Entwickler oder Mitarbeiter in SOA Projekten. Es spielt keine Rolle, ob Sie erst starten oder schon auf dem Weg sind.
Das erste Thema des Tages zeigt typische Antipatterns aus den Bereichen Service-Design, SOA-Governance und technischer Implementierung und hilft Ihnen bei deren Vermeidung. Auch wenn es währenddessen so klingen mag - wir erzählen Ihnen hierbei keine Märchen...
Eine der großen Fragen bei der Einführung einer SOA ist immer wieder: "Was ist ein guter Service?" Dieser Frage nähren wir uns bei dem zweiten Thema und zeigen Beispiele von "guten" und "schlechten" Services. Doch gibt es diese überhaupt in der Realität? Wann ist ein Service "gut" und wann nicht?
Der Themenblock "Enterprise Service Bus" behandelt das Für und Wider eines Service Busses im Unternehmen. Braucht man einen ESB? Welchen Mehrwert haben Sie dadurch? Diese und andere Fragen diskutieren wir mit Ihnen und führen Ihnen dazu konkrete Beispiele vor.
Mit dem Thema "SOA und UIs" widmen wir uns der Integration beider Welten. Meist wird angenommen, dass eine SOA eine Art Black-Box ist, in der Prozesse ohne Benutzer-Interaktion ablaufen. Doch weit gefehlt: UI-Services, Postkörbe, BPEL4People, Taskflows und Steuerungen von bestehenden Anwendungen wollen und können in eine SOA integriert werden. Wir zeigen und diskutieren mit Ihnen Lösungskonzepte von trivialen, workflowgetriebenen Aufgabenlisten bis hin zu kompletten prozessintegrierten Architekturen.
Eine SOA bietet die Chance neben den Prozessen auch die Geschäftsregeln im Unternehmen neutral von Technik zur Verfügung zu stellen. Dabei ist ein Ziel, dem Fachbereich die Hoheit über ihre Regeln zurück zu geben. Dieser Themenblock beleuchtet den Einsatz von Rule Engines mit ihren Stärken und Schwächen.
Wir stellen konkrete Aufgabenstellungen aus realen Projekten und zeigen pragmatische Lösungsansätze auf. Dabei achten wir auf eine kurzweilige Darstellung und direkte, interaktive Kommunikationen zu allen Themen. Am Ende des Tages planen wir einen Goldfishbowl mit Ihnen gemeinsam. Bringen Sie Ihre Fragestellungen mit. Gehen Sie mit uns auf eine Reise in die wunderbare Welt von SOA: beyond whitepapers and show cases!
Java-Entwicklung für die Cloud
Eberhard Wolff
SpringSource - A division of VMware
Der Cloud-Computing-Ansatz ändert grundsätzlich, wie IT betrieben wird. Er bietet zahlreiche klare Vorteile wie bessere Nutzung der Ressourcen und höhere Flexibilität. Neben solchen eher geschäftlichen Vorteilen kann man mit Cloud Computing auch klassische Probleme der Enterprise-Software-Entwicklung wie Skalierbarkeit oder Ausfallsicherheit anders als bisher lösen.
Software zu entwickeln, die Cloud-Umgebungen wirklich ausnutzt, ist also eine Herausforderung, der sich Software-Entwickler stellen müssen. Solche Anwendungen müssen wesentlich besser skalieren und mit Schwankungen in der Last umgehen können. Dazu muss man neue Technologie- und Architektur-Ansätze nutzen.
In diesem Workshop lernen Sie die Grundlagen der Cloud-Technologien kennen und wie man Java-Software für sie entwickelt. Erleben Sie einen Tag mit interaktiven Demos und Präsentationen durch den Trainer.
Agenda
- Was ist Cloud?
- Vorteile von Cloud-Technologien
- Herausforderungen bei der Entwicklung von Cloud-Anwendungen
- Entwicklung für die Cloud mit Spring Roo
- Infrastructure as a Service: Wie man Anwendungen mit Amazon EC2 und VMware-Technologien betreiben kann.
- PaaS: Entwicklung von Java-Anwendungen für Google App Engine und SpringSource Cloud Foundry
- PaaS: Prinzipien von VMforce
- Architektur für die Cloud
- Datenhaltung in der Cloud: NoSQL am Beispiel Redis
- Verteiltes Caching und Data Fabrics für bessere Skalierbarkeit mit Gemfire
- Cloud-Messaging: RabbitMQ, das AMQP-Protokoll und Java
Teilnehmervoraussetzungen
Entwickler und Architekten, die Cloud-Technologien in Zukunft nutzen wollen,Systemvoraussetzungen
- Grundlegendes Verständnis von Java-Entwicklung
- Spring-Kenntnisse sind vorteilhaft, aber nicht notwendig
- Kein eigener Rechner notwendig
Persistente Objektmodellierung mit JPA 2.0
Arne Limburg
OpenKnowledge GmbH
Relationale Datenbanken dominieren zweifelsohne die Anwendungslandschaft vieler Unternehmen. Da sich bei den höher entwickelten Programmiersprachen längst das Paradigma der Objekt-Orientierung durchgesetzt hat, entsteht eine Lücke zwischen der Repräsentation im Programm-Code und der Ablage in der Datenbank. Die Kommunikation mit diesen Datenbanken ist dank JDBC und SQL für jeden Java-Entwickler zwar reines Handwerk, versucht man aber darüber ein ausgereiftes Domänen-Modell in der Datenbank abzulegen und aus ihr wieder auszulesen, entsteht schnell ein hoher Aufwand. Die entstehenden Objekt-Modelle bestehen dann häufig nur aus einer Ansammlung von Gettern und Settern. Um diese Lücke zwischen Objekt-Orientierung und relationalen Datenbanken zu füllen haben sich in den vergangen Jahren mehrere Objekt-Relational-Mapping-Lösungen in der Java-Welt etabliert. Mit JPA gibt es nun zum ersten Mal einen vernünftigen Standard für Objekt-Relational-Mapping der sowohl für Java SE als auch für Java EE gültig ist. Dieser Workshop zeigt, dass mit der Version 2 dieses Standards endgültig die Entwicklung eines ausgereiften Domänen-Modells möglich ist, das dann auch in einer relationalen Datenbank persistiert und schnell und elegant aus ihr wieder ausgelesen werden kann.
Die beiden Tage des Workshops richten sich sowohl an Einsteiger als auch an Fortgeschrittene. Nach einer kurzen Einführungsphase zum Thema OR-Mapping konzentriert sich dieser Workshop im weiteren Verlauf praxisnah auf die Möglichkeiten von JPA und die damit verbundenen – zumeist positiven - Auswirkungen auf das persistente Objektmodell und die Persistenz-Schicht einer Java Anwendung.
Neben OR-Mapping Einsteigern mit grundlegenden SQL Erfahrungen ist dieser Workshop auch für Persistence Framework Umsteiger, wie zum Beispiel erfahrene Hibernate- oder Toplink-Entwickler interessant. Aber auch Entwickler, die bereits mit JPA arbeiten, können den Workshop nutzen, um neue Features kennenzulernen und ihre Kenntnisse zu vertiefen. Eine gewisse Grundkenntnis im Java-Enterprise-Umfeld ist von Vorteil, aber nicht zwingend erforderlich.
Agenda
Persistente Objekt-Modellierung
Der erste Themenblock dient der Einführung in die Grundlagen der Objekt-Modellierung sowie der Betrachtung von Problemfeldern, die entstehen, wenn ausgereifte Domänen-Objekte in einer relationalen Datenbank abgelegt und gesucht werden sollen. Hierbei werden auch die Eigenschaften eines „reichen“ und zugleich persistenten Domain-Modells betrachtet, welches die Fehler der von Martin Fowler als „blutleer“ bezeichneten Modellierungsansätze vermeidet.- Grundlagen der fachlichen Objekt-Modellierung
- Grundlagen und Problemfelder von Objekt-Relational-Mapping
Grundlagen des Objekt-Relational-Mapping mit JPA
Nachdem zu Beginn die Grundlagen und Problemfelder von Objekt-Modellierung und -Mapping erläutert wurden, wird im zweiten Block die Umsetzung mit JPA 2 erarbeitet. Hierbei wird anhand eines konkreten Beispiels in Theorie und Praxis eine Domänen-Modellierung durchgeführt. Dabei werden die Basiskonzepte von JPA 2 vermittelt.- Mapping von Klassen und Objekten mit: Kompositionen, Aggregationen, Relationen, Primary Key Strategien, Ableitungshierarchien, Umgang mit Collections und Large Objects
- Basiskonzepte von JPA: Der Persistenz-Kontext, Entity-Lebenszyklus und Callbacks, Finden von Objekten (die Java Persistence Query Language, die Criteria-API, native SQL Queries)
JPA im Kontext von Enterprise Java
In den ersten beiden Blöcken wurde das Handwerkzeug zur Anwendung von JPA 2 vermittelt. Im nächsten Block geht es nun darum, wie dieses Handwerkzeug dazu verwendet werden kann, die Persistenz-Schicht einer Enterprise-Java-Anwendung zu implementieren. Hierzu wird darauf eingegangen, wie JPA 2 mit den anderen Konzepten von JavaEE (wie z.B. Dependency Injection) und den verwendeten Technologien (wie EJB und CDI) zusammenspielt.- Lebenszyklus des Persistenz-Kontexts: Manuelle Verwaltung in Java SE Anwendungen, Automatische Verwaltung in EJB bzw. CDI Containern, Transaktionsbehandlung und Transaktionsgrenzen, Concurrency and Conversations
- Einführung einer JPA 2 Persistenz-Schicht: Architektur- und Patternbetrachtung, Testen der Persistenz-Schicht, Testdatenerstellung
Fortgeschrittene Konzepte von JPA
Zum Abschluss werden einige weitergehende Funktionen und Konzepte von JPA 2 vorgestellt.- Persistieren von Objekt-Graphen
- Fetching von Objekt-Graphen, Fetch-Optimierung und Fetch-Pläne
- Entity-Proxies
- Batch Verarbeitung
- Caching: der First-Level-Cache, der Second-Level-Cache
- Ausblick: JPA 2 und Performance, Fehlende/Non-Standard Features
Teilnehmervorraussetzungen
Die beiden Tage des Workshops richten sich sowohl an Einsteiger als auch an Fortgeschrittene. Nach einer kurzen Einführungsphase zum Thema OR-Mapping konzentriert sich dieser Workshop im weiteren Verlauf praxisnah auf die Möglichkeiten von JPA und die damit verbundenen – zumeist positiven - Auswirkungen auf das persistente Objektmodell und die Persistenz-Schicht einer Java Anwendung.Neben OR-Mapping Einsteigern mit grundlegenden SQL Erfahrungen ist dieser Workshop auch für Persistence Framework Umsteiger, wie zum Beispiel erfahrene Hibernate- oder Toplink-Entwickler interessant. Aber auch Entwickler, die bereits mit JPA arbeiten, können den Workshop nutzen, um neue Features kennenzulernen und ihre Kenntnisse zu vertiefen. Eine gewisse Grundkenntnis im Java-Enterprise-Umfeld ist von Vorteil, aber nicht zwingend erforderlich.
Systemvoraussetzungen
Einen eigenen Rechner mit mind. 1, besser 2 GB Speicher, sowie vorinstalliertem JDK 6 sollten Sie für die Bearbeitung praktischer Übungen an beiden Tagen mitbringen.
JBoss Seam - ein Framework im Wandel
Jan Groth
Helvetia Versicherungen
Seam ist ein Open-Source Framework, welches Standard-Technologien wie AJAX, JSF, JPA, EJB und Business Process Management vereint und somit ein umfangreiches Werkzeug für die Entwicklung von Rich Internet Applikationen in Java darstellt.
Zentraler Bestandteil der Weiterentwicklungsstrategie des Frameworks ist es, über den Java Community Process möglichst viele Konzepte zu standardisieren und auf diesem Wege in der gesamten Java Welt zu etablieren. Daher befindet sich Seam mit dem Erscheinen der Java Enterprise Edition 6 in einer sehr spannenden Umbruchsphase: Die noch aktuelle Version 2 wird nicht mehr direkt weitergeführt, sondern geht auf: Zum einen in verschiedenen Features und APIs von Java EE 6 (Context and Dependency Injection, JSF 2.0, Bean Validation), zum anderen in den eigenständigen Implementierung Seam 3 und Weld-Extensions.
Dieser Workshop wendet sich an Entwickler, welche Seam entweder bereits einsetzen oder mit dem Gedanken daran spielen. Ziel ist es, die Entwicklung des Frameworks vom JEE-5-basierten Seam 2 hin zum JEE-6-basierten Seam 3 darzustellen und die Möglichkeiten und Konsequenzen aufzuzeigen, welche sich daraus ergeben. Context and Dependency Injection (CDI) als - aus Seam-Sicht - zentrale Komponente von Java EE 6 bildet einen besonderen Schwerpunkt.
Im einleitenden ersten Teil werden die Idee und Motivation hinter der Entstehung von Seam beleuchtet. Die zentralen Konzepte der aktuellen Version 2 werden erläutert und mit Codebeispielen unterlegt.
Anschließend erfolgt der Brückenschlag hinüber zu Java EE 6: Welche Teile von Seam 2 sind aktuell in die JEE-6-Spezifikation gewandert, und was wird zukünftig in Seam 3 enthalten sein? Was beinhaltet Weld, die JBoss Implementierung des JSR 299, und wie ist die aktuelle Roadmap der Entwicklung? CDI, als typsichere Weiterführung des Bijektions-Konzepts von Seam 2, wird ausführlich vorgestellt und mit praktischen Beispielen demonstriert.
Nach der Betrachtung von CDI wird auf die - zum Zeitpunkt des Workshops frisch veröffentlichte - erste Version von Seam 3 eingegangen. Wie ist Seam 3 aufgebaut, welche Funktionalitäten sind neu? In einem gemeinsamen Beispiel wird eine JEE 6 / CDI Applikation gezielt mit Seam 3 Modulen erweitert. Den Abschluss des Workshops bildet die Vorstellung und Diskussion eines möglichen Migrationspfades von Seam 2 nach Seam 3.
Hinweis: Bei der Wahl des Themenfokus besteht natürlich die Möglichkeit, auf die konkreten Interessen der Teilnehmer einzugehen.
Agenda
Seam 2
- Idee und Motivation
- Bijektion
- APIs
JEE 6 & CDI
- Von Seam 2 nach CDI
- CDI - loose coupling, strong typing
- Beispiel
Seam 3
- Überblick der Entwicklung
- Betrachung der Module
- Beispiel
- Migration von Seam 2 nach Seam 3
Teilnehmervorraussetzungen
Der Workshop wendet sich Teilnehmer, die Seam entweder bereits einsetzen oder mit dem Gedanken daran spielen. Grundkenntnisse im Bereich Java EE sollten vorhanden sein.Systemvoraussetzungen
Eine komplette Umgebung wird als virtuelles Image zur Verfügung gestellt. Notwendig ist lediglich ein Laptop mit installiertem VirtualBox (www.virtualbox.org), ca. 5 GB freiem Speicher, ggf. Grundkenntnisse in Linux und im Umgang mit Virtualisierungen.
Einstieg in Scala
Heiko Seeberger
Weigle Wilczek GmbH
Sie möchten knappen und ausdrucksstarken Code schreiben? Sie möchten in einer statisch typisierte Sprache programmieren, die sich so leichtgewichtig anfühlt wie eine dynamische? Sie möchten fortschrittliche Features wie z.B. Closures einsetzen? Dann lernen Sie in diesem Workshop Scala kennen, die wohl vielversprechendste Sprache für die Java Virtual Machine. Sprachen lernt man am besten durchs Sprechen, d.h. wir werden zahlreiche Übungen durchführen. Bitte bringen Sie daher Ihr Notebook mit.
Agenda
- Überblick über die wichtigsten Features
- Entwicklungsumgebung einrichten
- Klassen und Objekte
- Funktionale Programmierung
- Vererbung und Traits
- Case Classes und Pattern Matching
Sessions
- Java EE 6: Back in Business
- BigData I
- JavaServer Faces 2.0 - Intensiv
- Praxis-Workshop: Web Service Security
- Garbage Collection - Das Java-Speichermanagement
- JBoss Administration: Java-Server administrieren mit JBoss
- SOA beyond White Papers
- Java-Entwicklung für die Cloud
- Persistente Objektmodellierung mit JPA 2.0
- JBoss Seam - ein Framework im Wandel
- Einstieg in Scala

