Alle Workshops

Java EE 6: Back in Business

Jens Schumann OpenKnowledge GmbH

Mo bis Mi, 20. – 22.9., 9.00 – 17.00 Uhr

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

Do - Fr, 23.-24.9., 9.00–17.00 Uhr

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 RDBMS

Systemvoraussetzung

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

Mo bis Mi, 20. – 22.9., 9.00 – 17.00 Uhr

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

Mi, 22.9., 9.00 – 17.00 Uhr

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

Mi, 22.9., 9.00 – 17.00 Uhr

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

Mo bis Di, 20. – 21.9., 9.00 – 17.00 Uhr

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

Das ebenfalls wichtige Thema des Java-Speichermanagement und der Garbage Collection wird in einem eigenen Workshop behandelt.

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

Do, 23.9., 9.00 – 17.00 Uhr

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

Do bis Fr, 23. – 24.9., 9.00 – 17.00 Uhr

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

Fr, 24.9., 9.00 – 17.00 Uhr

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

Do, 23.9., 9.00 – 17.00 Uhr

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

 
css based on YAML 3.0.4