zum aktuellen Java Forum Stuttgart
•
Kontakt
•
Impressum
|
Abstracts & Vortragsfolien zum 13. Java Forum Stuttgart
Themenbereich: Architektur Stichworte: Java EE 6, JSR 299, JSR 330, Dependency Injection Abstract: Mit den beiden JSRs 299 und 330, die Teil der Java EE 6 sind, wird Dependency Injection Teil der täglichen Arbeit von Software-Architekten und -Entwicklern. Dependency Injection ermöglicht es, Softwareanwendungen zu konfigurieren. Die Konfiguration einer Anwendung erfolgt mehr oder weniger elegant und hat - je nach Konfigurationstechnik - mehr oder weniger Vor- und Nachteile. Ziel dieses Beitrags ist es, Software-Architekten und -Entwicklern eine Einführung in das Dependency Injection Konzept zu geben, so dass sie in ihrer täglichen Arbeit abschätzen können, welche Vor- und Nachteile der Einsatz von Dependency Injection mit sich bringt. Hierfür wird das Konzept unabhängig von Spezifikationen und Rahmenwerken vorgestellt. Verschiedene Implementierungstechniken werden verglichen und ihre Vor- und Nachteile dargestellt. Auf dieser Grundlage werden die JSRs 299 und 330 vorgestellt und Implementierungen der JSRs, wie zum Beispiel JBoss Seams Weld oder Googles Juice, miteinander verglichen. Vortragsfolien: A1.pdf
Themenbereich: Architektur Stichworte: Java App Server, Distributed Transactions, XA, JTA Abstract: Die Verwendung verteilter Transaktionen mittels Java Applikationsservern ist verführerisch einfach. Für den Entwickler gibt es scheinbar keinen Unterschied zwischen einer lokalen und einer verteilten Transaktion. Letztlich verlässt man sich dabei auf das Transaction Management des Applikationsservers und hofft, dass es auftretende Fehler stets korrekt behebt. Spätestens jedoch wenn Teile eines verteilten Systems ausfallen, ist ein tiefes Verständnis dieser Infrastruktur und verteilter Transaktionen notwendig. Ansonsten sind inkonsistente Daten nur eine Frage der Zeit. Der Vortrag vermittelt ein umfassendes Verständnis verteilter Transaktionen und wirft einen tiefen Blick in das Innere eines Applikationsservers. Er beschreibt welche Strategien ein Server verwendet, um möglichst schnell wieder für Datenkonsistenz zu sorgen. Dabei wird auch klar, wie man sich selbst helfen kann, wenn manuelle Eingriffe in ein verteiltes System notwendig werden. Vortragsfolien: A2.pdf
Themenbereich: Architektur Stichworte: Business Rules, Dynamische Anwendungen, Regeln in Architekturen Abstract: Ein Trend auf dem Sektor der Business Rules Management (BRM) Systeme ist es, mit regelbasierten Ansätzen neben Geschäftsregeln auch Regeln für Präsentations-, Ablauf- und Integrationslogik abzubilden. So kann das Verhalten von Anwendungen ganz oder in großen Teilen durch Regeln bestimmt werden. Die Möglichkeit, Anwendungen entwerfen zu können, die in verschiedenen Anwendungsebenen anpassbar sind, ist für Architekten zugleich Ziel und Herausforderung. Der Referent zeigt eine modell- und regelbasierte Systemarchitektur auf, die sich in der Praxis in unterschiedlichen Anwendungsszenarien bewährt hat. Der Zuhörer erfährt
Vortragsfolien: A3.pdf
Themenbereich: Architektur Stichworte: Complex Event Processing, Echtzeitinformationen, Implementierungsmöglichkeiten, Anwendungsfälle Abstract: Complex Event Processing (CEP) wird seit kurzem als regelrechte Allzweckwaffe zur Lösung verschiedenster Problemstellungen angepriesen. Ziel dieses Vortrags ist es in die derzeitigen Konzepte und Möglichkeiten dieser Technologie einzuführen. Hierzu wird die Begriffswelt rund um CEP näher erläutert und eine Einordnung in die Unternehmensarchitekturen vorgenommen. Um eine Abgrenzung gegen andere Technologien zu erreichen beschreiben wir unterschiedliche Implementierungsmöglichkeiten von CEP. Anhand von Anwendungsfällen aus den Bereichen Finance, Logistics und Cloud Computing werden mögliche Einsatzbereiche dargestellt. Hierbei werden wir ein konkretes Beispiel aus dem Micro Blogging Bereich vorstellen, in dem via CEP in Echtzeit die Entwicklung von HashTag-Trends visualisiert wird. Vortragsfolien: A4.pdf
Themenbereich: Architektur Stichworte: Architektur, MDSD, GUI, GUI-Modellierung Abstract: Die modellgetriebene Softwareentwicklung ist ein etablierter Weg im Streben nach effizienteren Entwicklungsprozessen. Im Bereich der Geschäftslogik sind hier beachtliche Erfolge erzielt worden, welche auch zunehmend in unseren Projekt-Alltag einfließen. Die Anwendungsoberflächen entziehen sich diesem Pfad jedoch bislang hartnäckig. Modellierung bedeutet Reduktion auf das Wesentliche. Gerade im Bereich der GUIs sind die verschiedenen Facetten jedoch sehr umfassend. Welche Aspekte allgemeingültig und welche individuell behandelt werden wollen, unterscheiden sich je nach Fachlichkeit und technologischem Umfeld teils dramatisch. Für effizientere Wege in der GUI-Entwicklung erfordert diese Quadratur des Kreises jedoch Lösungen. Wie lassen sich Effizienz steigernde Abstraktionen schaffen, ohne sich auf einzelne Technologien, Layouts und Visualisierungen festzulegen? Wie passen individuelle Lösungen mit wieder verwendbaren Teilen zusammen? Welche Modelle sind überhaupt sinnvoll? Wir zeigen am Beispiel eines modell-orientierten Frameworks zur Erstellung datenzentrischer Benutzeroberflächen konkrete Architekturen und Konzepte, um die Bedürfnisse unterschiedlichster Projekte mit einem modellorientierten Vorgehen zu verbinden und zeigen an einer lebendigen Demo die dabei entstehenden Perspektiven auf. Vortragsfolien: A5.pdf
Themenbereich: Architektur Stichworte: Java, Apache Tomcat, OpenSource Abstract: Die nächste Generation des Tomcats geht mit der Unterstützung des Servlet 3.0 APIs an den Start. Modularität, Annotationen und dynamische Veränderung der Anwendungen zur Laufzeit stehen zur Verfügung. Erstmalig gelingen asychnrone Kommunikation und programmatische Konfiguration kinderleicht. Die Session stellt die Kernideen des neuen Servlet-Standards vor, erläutert die Umsetzung in Tomcat 7 und zeigt erste Beispiele. Vortragsfolien: A6.pdf
Themenbereich: Architektur Stichworte: Serialisierung, Produkt-Entwicklung, Abwärtskompatibilität Abstract: Dieser Vortrag beschäftigt sich mit den besonderen Herausforderungen der Serialisierung, die entstehen, wenn die serialisierten Objekte über einen längeren Zeitraum hinweg mit verschiedenen Programmversionen gelesen und geschrieben werden sollen. Beispiele dafür sind z.B. Einstellungs-Dateien oder auch vom Benutzer erzeugte Dokumente. Diese Dateien sollen auch in zukünftigen Programmversionen zuverlässig gelesen werden können. In Java-Land gibt es unzählige Serialisierungs-Frameworks, etliche davon funktionieren auch sehr gut. So ist ein Mapping von Objekten zu XML-Files heutzutage einfach realisierbar. Allerdings sind die meisten dieser Frameworks nicht auf Änderungen an der Objekt-Struktur und im Datei-Format vorbereitet. Dies ist oft - z.B. im WebServices-Umfeld - auch nicht notwendig. Die Probleme der Langzeit-Serialisierung sind - entsprechend ihrer langfristigen Natur - erst nach etlicher Zeit sichtbar. Oft ist es dann für die "richtige" Lösung bereits zu spät, da bereits 1000te Installationen ohne entsprechende Vorkehrungen im Umlauf sind. Dieser Vortrag beinhaltet folgende Teile:
Der Vortrag beschäftigt sich explizit nicht mit einem bestimmten Serialisierungs-Framework. Viel mehr sollen die grundsätzlichen Gedanken und Problematiken verdeutlicht und mögliche Lösungsansätze behandelt werden. Vortragsfolien: A7.pdf
Themenbereich: Eclipse Stichworte: Eclipse, Business, Framework, OpenSource Abstract: Ein Überblick und Vergleich von Riena, Scout und Redview Eclipse hat in Form der Rich Client Plattform eine große Akzeptanz für die Entwicklung von Geschäftsanwendungen gefunden. Mit Geschäftsanwendungen sind Applikationen mit komplexen Datenmodellen und einer Vielzahl von Masken gemeint, die sich bei nicht-funktionalen Anforderungen wie C/S-Kommunikation, Security und Betrieb sehr ähneln. Mit dem API von RCP ist es jedoch recht mühsam immer wiederkehrende Anforderungen zu implementieren, so dass die Entwicklung mit hohem Aufwand verbunden ist. Viele Anwendungsprojekte haben eigene APIs oberhalb der RCP definiert, um die Entwicklung auf einer höheren Abstraktionsebene produktiver zu gestalten, z.B. indem ein Label mit einem Texteingabefeld inklusive Validierung, Fehlermarkierung und Security in ein Widget gekapselt wird, das mächtiger ist als die Widgets von SWT und JFace. Zudem haben sich Perspektiven und Views nicht als allgemein tragfähiges Bedienkonzept für Business-Anwender erwiesen. Für vorgangsbasiertes Arbeiten mit stärkerer Benutzerführung wurden daher neue Bedienkonzepte auf die RCP aufgesetzt. Schließlich kommen bei komplexen Datenmodellen Modellierung und Code-Generierung zum Einsatz, für die sich das Eclipse Modelling Framework anbietet. In neueren Ansätzen umfasst die Modellierung nicht nur das Datenmodell, sondern schließt ein Anwendungsmodell bis hin zu einem UI-Modell ein. In den vergangenen Jahren habe ich an mehreren inhouse Entwicklungen solcher Frameworks mit höherer Abstraktion mitgewirkt und dabei immer wieder das Rad neu miterfunden, weil es kein allgemein verfügbares Framework für die spezifischen Belange von Business-Applikationen gab. Mittlerweile gibt es eine ganze Reihe solcher Frameworks, die aus der Praxis kommen und als stabil gelten. Ich stelle drei Frameworks vor, die open-source sind und auf Eclipse basieren: Riena, Scout und Redview. Ein Vergleich der drei Frameworks arbeitet die Gemeinsamkeiten und Unterschiede heraus und zeigt welche Anforderungen im Einzelnen abgedeckt werden. Vortragsfolien: B1.pdf
Themenbereich: Eclipse Stichworte: Eclipse e4, 4.0, css Abstract: Eclipse führt neue Programmierparadigmen in die Eclipse Plugin and RCP Entwicklungswelt ein. Eclipse 4.0 verwendet Java 1.5 Sprachmittel wie Annotations und Generics und basiert auf den folgenden Konzepten:
Durch die modellierte Workbench, DI und die konsequente Verwendung von Services ermöglicht Eclipse 4.0 dem Programmierer einfach und flexibel die Eclipse Platform zu nutzen und zu erweitern. Durch CSS und eigene Renderer kann das Ergebnis visuell angepasst werden. Dieser Vortrag erklärt die Bestandteile von Eclipse 4.0 und zeigt wie man basierend auf der Eclipse 4.0 Platform Anwendungen erstellt. Vortragsfolien: B2.pdf
Themenbereich: Eclipse Stichworte: Cloud Computing, EclipseRT, OSGi Abstract: Seit über einem Jahr sind Cloud Computing Infrastrukturen in aller Munde. Sie erlauben es, auf neuartige Weise dynamische Services zu entwickeln und zur Verfügung zu stellen. Auch hierzu kann Eclipse-Technologie durch verschiedene Projekte beitragen und helfen, auf einfache Weise neue Applikationen für die Cloud zu entwickeln. In diesem Vortrag wird anhand einer verteilten Such-Applikation ein Szenario erläutert, wie dies mit Eclipse Projekten aus den Bereichen Runtime und Technology auf einfache Weise erreicht werden kann.
In einer Live-Demonstration wird gezeigt, dass diese schon existierenden freien Eclipse-Projekte dazu beitragen können, unabhängig von der darunter liegenden Infrastruktur, verteilte Anwendungen und Services aufzubauen und zu verwalten. Die Cloud wird kommen, mit Eclipse jedoch wird niemand im Regen stehen bleiben! Vortragsfolien: B3.pdf
Themenbereich: Architektur Stichworte: Middleware Cache, Coherence, Application Grid, Performance Abstract: Mit den Anforderungen nach hohem Durchsatz, niedrigen Antwortzeiten und massiver Skalierbarkeit der Anwendungsplattform wächst der Einsatz einer Middleware Caching Architektur und seiner Implementierung. In einer gemeinsamen Speicherstruktur mit separaten Cache Memory Bereichen können die Speicherinhalte auf andere Softwareknoten beliebig verteilt werden, damit befindet sich ein Datum im Hauptspeicher und weitere Kopien im jeweiligen Cache Memory. Cache Coherence ist der Mechanismus, der dafür sorgt und sicherstellt, dass die Veränderung der Daten sehr schnell innerhalb des Caching Systems verteilt werden. Die daran teilnehmenden Anwendungen nutzen diese Daten und deren Änderungen direkt aus einer verteilten, linear skalierbaren und konzentrierten Caching Struktur. Einfache und komplexe Abfragen können parallel innerhalb der Caching-Struktur verteilt "In-Memory" ausgeführt werden. Damit wird auch die Anzahl der Zugriffe auf Backend-Systeme reduziert bzw. gezielt vermieden, so dass Datenbanken und Mainframe-Systeme entlastet werden. In diesem Vortrag werden die Architektur und Implementierung vom Middleware Cache und seine Caching Mechanismen besprochen: Read-Through, Write-Through, Refresh-Ahead und Write-Behind Caching. Vortragsfolien: B4.pdf
Themenbereich: Architektur Stichworte: Provisioning, SaaS, Architektur Abstract: Oder: Wie lizensiere und manage ich meine SaaS Kunden? Heute werden viele SaaS Applikationen nur durch eine "flat rate subscription" verkauft. Alles oder nichts. Dies ist einfach zu verstehen, aber vor allem auch einfach zu implementieren und zu verwalten. Wächst die Komplexität der Anwendung würde es sich anbieten manche Funktionen abzuspalten und als optionale Dienste den Kunden anzubieten. Diese müssen dann natürlich getrennt verrechnet werden. Sollen hier auch neue Abrechnungsformen genutzt werden und das Produktmanagement mit neuen Lizenzformen experimentieren können wächst der Aufwand schnell rapide an. Es beginnt interessant zu werden solch ein System als Service zu "konsumieren" und nicht mehr selbst zu entwickeln. In dieser Session wollen wir uns die Anforderungen ansehen und dazu eine passende Architektur entwickeln die gut skaliert, den SaaS Anwendungsknoten möglichst wenig belastet und autarkes Handeln ermöglicht, sowie geringe Antwortzeiten bei der Autorisierungsanfrage ermöglicht. Durch Beachtung des CAP Theorems und dem "eventually consistent" Paradigmas werden wir sehen was die richtigen Entscheidungen für die Architektur sind und wie sich verschiedene Lizensierungsmodelle in dieser Architektur umsetzen lassen. Vortragsfolien: B5.pdf
Themenbereich: Security Stichworte: JSF OWASP Security Attacks Abstract: Die überwiegende Anzahl von Angriffen erfolgt heutzutage nicht auf Netzwerk- oder Protokollebene sondern vielmehr auf die Anwendungen selbst. Dabei werden Sicherheitslücken, die aus Fehlern oder Schwachstellen in den jeweiligen Programmen resultieren, ausgenutzt. Im Rahmen dieser Session wird zunächst das Thema Application Security aufgegriffen und u.a. die Fragestellung betrachtet wo die Einsatzgebiete und Grenzen von Web Application Firewalls liegen. Im weiteren Verlauf der Session werden die von der Open Web Application Security Projects (OWASP) aufgeführten Top Ten Angriffsarten und ihre Relevanz für Java Server Faces (JSF) betrachtet. Anhand von Showcases werden einzelne Angriffe praktisch demonstriert und entsprechende Schutzmechanismen aufgezeigt. Abschließend wird die Architektur einer Application Security Komponente für JSF skizziert. Vortragsfolien: B6.pdf
Themenbereich: Security Stichworte: Java EE 6, Authentifizierung, Autorisierung, JAAS, JSR-196 Abstract: Der Java EE Standard in der Version 6 bietet dem Anwendungsentwickler wieder einmal eine umfassende Plattform zur effizienten Umsetzung von Java-Anwendungen. Neben den Schwerpunktthemen Einführung von Profilen, EJB 3.1, RESTful Web Services, JSF 2.0 und Dependency Injection wurden auch Sicherheitsaspekte berücksichtigt. Zur Standardisierung der Authentifizierung und Autorisierung im JEE-Container wurden der JSR-196 und der JSR-115 in Java EE 6 aufgenommen. Dabei wird im JSR-196 das Konzept des JAAS hin zu einem nachrichtenbasierten Authentifizierungsmechanismus erweitert. Die zu verarbeitenden Nachrichten (ein-/ausgehend) werden durch Authentication Provider analysiert und im JEE-Container registriert. Der Standard eignet sich für eine Vielzahl von Nachrichtenprotokollen (u.a. SOAP, JMS, HttpServlet). Der JSR-115 hingegen konzentriert sich auf die Autorisierung und schreibt die Definition von Rollen basierend auf Berechtigungen, die Zuweisung dieser zu Principals und deren Validierung fest. Es sollen die Standards anhand von praktischen Beispielen und deren Relevanz im Hinblick auf die Umsetzung einer flexiblen Zugriffssteuerung in Java-Applikationen vorgestellt werden. Vortragsfolien: B7.pdf
Themenbereich: Web2.0 Stichworte: JavaServer Faces, JSF, Web, Ajax Abstract: Seit knapp einem Jahr ist JSF 2.0 nun verfügbar. Doch die Zeit ist deswegen nicht stehengeblieben. Die Expert Group hat zahlreiche weitere Verbesserungen eingearbeitet und vor allem JSF 2.0 der Weltöffentlichkeit näher gebracht. In dieser Session sollen daher die Vorteile, die sich aus einem Einsatz von JSF 2.0 ergeben, demonstriert werden. Es wird gezeigt, welche konkreten Verbesserungen in JSF 2.0 vorhanden sind, die einem Anwendungsentwickler die Arbeit wesentlich erleichtern. Vortragsfolien: C1.pdf
Themenbereich: Web2.0 Stichworte: Google, Web2.0, OpenSource Abstract: Überall im Netz hinterlassen wir Kommentare, laden Fotos und Videos hoch, updaten unseren Status bei Facebook, bloggen, twittern, chatten, usw. Die Systeme generieren und verwalten immer mehr und mehr Daten. Das exponentielle Wachstum dieser Daten war für viele Pionier-Unternehmen wie Google, Yahoo, Amazon und Facebook eine große Herausforderung. Sie müssen Petabytes von Daten analysieren, um herauszufinden, welche Webseiten gut sind, welche Bücher Sie interessieren könnten und welche Werbung für Sie am besten geeignet ist. Dafür waren die existierenden Werkzeuge unzureichend. Google war das erste Unternehmen, dass sein System - genannt MapReduce - zur Skalierung seiner Datenverarbeitung veröffentlicht hat. Apache Hadoop ist eine Open-Source Implementierung vom MapReduce Algorithmus und stellt heutzutage ein Kernstück der Infrastruktur vieler Unternehmen wie Yahoo, Facebook, LinkedIn oder Twitter dar. Doch die Anforderung, immer größere Datenmengen zu verarbeiten, trifft nun auch immer mehr herkömmliche Unternehmen und verlangt den Entwicklern völlig neue Fähigkeiten ab. Dieser Vortrag zeigt, wie man diesem Problem mit dem Apache Hadoop Framework begegnen kann. Vortragsfolien: C2.pdf
Themenbereich: Web2.0 Stichworte: Wicket, Web, Apache Abstract: Apache Wicket ist ein komponentenbasiertes Web-Framework, welches als Top-Level Projekt unter dem Dach der Apache Foundation entwickelt wird. Im Gegensatz zu anderen Web-Frameworks verzichtet Wicket konsequent auf Konfigurationsdateien und setzt auf Objekt-Orientierung, reines HTML und Java. Des Weiteren ist es mit Wicket sehr einfach möglich fachliche und technische View-Komponenten zu erstellen, die wiederverwendbar sind. Gleiches gilt für den Einsatz von Java Script Bibliotheken und AJAX. Im Rahmen des Vortrags wird erläutert wie Java basierte Web-Anwendungen mit Hilfe von Apache Wicket erstellt werden. Dabei geht der Vortrag primär auf die Konzepte von Wicket ein. Neben den Grundlagen werden zudem der Einsatz von AJAX, die Erstellung wiederverwendbarer UI Komponenten und die Unit-Test Bibliothek Wicket Tester erklärt. Eine kritische Betrachtung der Vor- und Nachteile des Praxis-Einsatzes von Wicket wird den Vortrag abrunden. Vortragsfolien: C3.pdf
Themenbereich: Web2.0 Stichworte: JavaScript, Web2.0, Echo 3, jQuery, Praxisbericht Abstract: Java und JavaScript teilten sich lange Zeit nur Namensteile. Mit zunehmender Verbreitung von AJAX und Web 2.0-Technologien wachsen beide Welten jedoch zunehmend zusammen. Immer mehr Java-Entwickler sehen sich dadurch dem Erstkontakt mit dieser sonderbaren "Sprache" JavaScript konfrontiert, denn sobald es um Details geht führt kein Weg mehr am Sprung ins kalte Wasser vorbei. JavaScript glänzt zwar auf der einen Seite durch erlesene "Good Parts", auf der anderen Seite klagt der verwöhnte Java-Entwickler schnell über ihr plattformabhängiges Verhalten, die befremdlichen Sprachkonstrukte und die puristischen Entwicklungsmittel: "Das soll eine objektorientierte Programmiersprache sein?" Mit einem zwinkernden, aber auch mit einem ernsten Auge arbeiten wir ihre kuriosesten Eigenheiten heraus und betrachten die häufigsten Fallgruben denen es beim Einstieg auszuweichen gilt. Wie funktioniert klassenlose Objektorientierung? Welche Entwicklungsumgebungen und Werkzeuge helfen wirklich? Wie schlagen sich Bibliotheken wie jQuery und Konsorten gegenüber Java-Frameworks? Wir beichten aus der Praxis die Sicht des Java-Entwicklers und geben Schützenhilfe für die erfolgreiche Besiedelung dieser neuen Welt. Vortragsfolien: C4.pdf
Themenbereich: Embedded/Mobile Stichworte: Java Micro Edition, Java Native Code, OSGi Abstract: Einen großen Vorteil den Java bietet ist das "Write Once, Run Everywhere" Prinzip. Dadurch ist Java für den Embedded Bereich, mit seiner großen Anzahl an heterogenen Systemen, besonders interessant. Entwickler von Java Anwendungen für Embedded Systems sind jedoch vor einge Herausforderungen gestellt:
MicroDoc entwickelt seit 1993 eingebettete Anwendungen mit Java. Wir haben Systeme in unterschiedlichsten Anwendungsbereichen für einige große Kunden aus dem Flug-, Transport und Finanzsektor entwickelt. Vortragsfolien: C5.pdf
Themenbereich: Embedded/Mobile Stichworte: Java, Android OS, Business Abstract: Android OS, das Smartphone-Betriebssystem der Open Handset Alliance, ist seit nun mehr 2 Jahren auf dem Markt und hat sich mittlerweile als 3. "Big Player" neben dem iPhone OS und Windows Mobile auf dem Smartphone-Markt etabliert. Mit der zunehmenden Anzahl an erhältlichen Androiden auf dem Markt steigt die Attraktivität des kleinen grünen Roboters für Entwickler und Kunden. Was jedoch ist genau dran an Android? Was macht diese Plattform, verglichen mit anderen mobilen Plattformen, so besonders? Weshalb spricht sie insbesondere Java-Entwickler an? Gibt es abseits von 1€-Spaß-Applikationen auch einen Markt für Business-Applikationen und lohnt sich die Investition in die Entwicklung einer Android App? Mit diesen Fragen wird sich der erste Teil des Vortrags befassen. Der zweite Teil der Präsentation wird sich den Besonderheiten in der Verwendung von Java bei der Entwicklung für das Android-Ökosystem widmen. Neben der Tool-Unterstützung durch IDEs, sollen auch Besonderheiten auf Code-Ebene wie der geschickte Einsatz von Modifizierern, sowie ein Überblick über grundlegende Unterschiede zwischen Android und Kaffeebohne vorgestellt werden. Abschließend wird sich der Vortrag mit den Interna der Dalvik-VM, der Laufzeitumgebung für Android-Anwendungen, befassen. Schwerpunkte hierbei werden Speicherverwaltung, Garbage Collection und Optimierungen zur Laufzeit sein. Vortragsfolien: C6.pdf
Themenbereich: Embedded/Mobile Stichworte: Android, Mobile, Embedded, Java Abstract: Dieser Talk wird eine Einführung für Java Programmierer in die Entwicklung von Google Android Anwendungen geben. Dabei wird auf die Basis-Architektur von Android, auf das Java Application Framework sowie die APIs und das Toolset (Android SDK, Eclipse Android Development Toolkkit) eingegangen. Einzelne Aspekte werden durch Online Demos genauer erläutert, z.B.
Nach dem Talk sollten die Teilnehmer wissen, wie einfach man mit der Entwicklung einer Android Anwendung starten kann. Vortragsfolien: C7.pdf
27.05.2010: Aktuelle Änderung im Vortragsprogramm
Themenbereich: Sonstiges Stichworte: JPA 2.0, Rich Domain Model, Domain Driven Design Abstract: Das zentrale Ergebnis aus dem Vorgehensmodell Domain Driven Design ist das Rich Domain Model. Dieses Modell und (relationale) Persistenz sind jedoch ein Duo mit Verständigungsproblemen. JPA 1.0 sollte vermitteln, schaffte dies aber nur lückenhaft. Die Folgen waren Einschränkungen, Workarounds und Provider-spezifische Erweiterungen. Die JPA 2.0 Spezifikation bietet Abhilfe mit neuen, mächtigen Features wie bspw. der Criteria API mit dem Metamodell. Wir zeigen in diesem Vortrag, wie die Umsetzung eines Rich Domain Models gelingt und welche Herausforderungen weiterhin bestehen. Vortragsfolien: D1.pdf
Themenbereich: SOA Stichworte: SOA Portal Architektur Technologiemapping Abstract: Portale sind heutzutage ein etablierter Bestandteil von Unternehmensapplikationen. Vor dem Hintergrund der im letzten Jahrzehnt vollzogenen fachlichen und technischen Entwicklung stellen Portale einen flexiblen Ausgabekanal einer serviceorientierte Architektur (SOA) dar. Bei der Einführung eines Portals spielt die Flexibilität der Architektur die tragende Rolle, um in Time und Budget auf sich schnell ändernde Unternehmensstrukturen und Marktanforderungen zu reagieren. Erfolgsfaktoren für ein Portalprojekt sind neben dem Anforderungsmanagement ein Portal-Architektur-Blueprint sowie das passende Technologiemapping. Im Rahmen dieser Session werden die aufgeführten Themen diskutiert und es wird auf die Kernpunkte zur erfolgreichen Einführung eines Portals eingegangen. Vortragsfolien: D2.pdf
Themenbereich: SOA Stichworte: Model-Driven Development, modellgetriebene Softwareentwicklung, SOA, UML, BPMN Abstract: Organisationen, die auf Service-Orientierung setzen, versprechen sich davon - trotz wechselnder fachlicher Anforderungen - einen gleichbleibend hohen Geschäftswert. Um dies tatsächlich zu erreichen, ist eine architekturbasierte Entwicklungstechnik für SOA-Anwendungen nötig, mit der neue Anforderungen hoch effizient umgesetzt werden können. Genau das leistet Model-Driven Development (MDD). Charakteristisch für MDD ist die klare Trennung von Fachlichkeit und Technologie: Entwickler entwerfen die fachliche Anwendungsarchitektur mit Mitteln der UML und BPMN. Die technische Architektur und große Teile des Codes werden per Modelltransformation maschinell erzeugt. Mit objectiF® wird ein Werkzeug für MDD von SOA-Anwendungen vorgestellt, das speziell auf iterative Entwicklung zugeschnitten ist und eine passgenaue Automatisierung im SOA-Entwicklungsprozess erlaubt. An Beispielen wird demonstriert, wie fachliche Modelle bei geänderten Fachanforderungen iterativ angepasst und die zugehörigen technischen Modelle und der Code per Transformation aktualisiert werden. Ändert sich umgekehrt die Technologie, passt man die Modelltransformationen an. Die fachlichen Investitionen bleiben geschützt. Vortragsfolien: D3.pdf
Themenbereich: SOA Stichworte: Model Driven Software Development (MDSD) Modellbasierte SOA, ALM, JBOSS, SOPERA Abstract: Wie entwickelt man eine verteilte Anwendung für SOA modellgetrieben? Wie werden wichtige Informationen einer SOA-Architektur durch Modelle transparent dargestellt und miteinander verknüpft? Wie schaffe ich dabei die Voraussetzungen für die Weiterentwicklung und Wartung und damit für das Application Lifecycle Management (ALM). Auf Basis der Plattformen JBOSS und SOPERA, sowie mit der Modellierungsplattform Innovator stellt der Vortrag eine durchgängige Methodik und Vorgehensweise vor: Ausgehend vom Geschäftsprozessmodell und diversen Anforderungen über verschiedene Ebenen der Modellierung bis hin zur Generierung von WSDL- und BPEL-Artefakten. Was waren die Fallstricke bei der Entwicklung der SOA-Anwendungen und wie wurden sie gelöst? Ein Beispiel dafür sind die herstellerspezifischen Umsetzungen von WS-Standards. Vortragsfolien: D4.pdf
Themenbereich: SOA Stichworte: BPM, BPMN, Process Execution Abstract: Technische Prozessmodelle (Workflows) aus fachlichen erzeugen? Oder ein gemeinsames Modell für alle? Wo kommt Java ins Spiel und wie sieht ein funktionierendes Projektvorgehen in der Prozessautomatisierung aus? Grau ist alle Theorie, deswegen soll in dieser Session ein funktionierendes Beispiel mit Open Source Werkzeugen vorgestellt werden. Am Projektbeispiel eines großen Telekommunikationsanbieters möchte ich auf unsere Erfahrungen mit Methodik sowie der Werkzeugkette eingehen. Dank quelloffener Software zum Nachstellen geeignet! Vortragsfolien: D5.pdf
Themenbereich: Sonstiges Stichworte: Java 7, VM, Sprache, Framework Abstract: Java ist längst nicht mehr nur Sprache, sondern auch eine Technologie-Plattform aus VM, Frameworks, Programmiermodellen und einer großen Community. Der Trend geht sogar dahin, weitere Sprachen auf dieser Plattform zu nutzen. Was bringt uns das oft verkündete, aber immer wieder verschobene Release der kommenden Java-Version, und vor allem: inwieweit nutzt es uns? Wir beleuchten die kommenden Spracherweiterungen an Java selbst, die neuen API-Features, Anpassungen an der VM und die weiteren Änderungen - inklusive Bewertung auf ihre Einsatztauglichkeit im täglichen Entwicklerleben. Vortragsfolien: D6.pdf
Themenbereich: Sonstiges Stichworte: JDK, Administration, Praxis Abstract: Welcher Administrator ist schon gerne für die korrekte Funktion einer Blackbox verantwortlich, die scheinbar willkürlich von grün auf rot schaltet, bis man den Stecker gezogen und neu eingesteckt hat? Damit sich ein Java-Administrator nicht so fühlen muss, sind seit einiger Zeit mit jedem Release des SUN JDK die Administrationswerkzeuge stetig verbessert worden. Von diesen werden wir uns den "heimlichen Star" VisualVM näher ansehen. Je nach verwendetem JDK und Anbindungsweg stehen verschiedene Möglichkeiten bereit, in die laufende JVM hinein zu sehen und auch administrative Aufgaben auszuführen. Über einen Plug-In-Mechanismus lassen sich die Grundfunktionalitäten sogar noch erweitern und das Angebot an Plug-Ins wächst ständig. Das Spektrum der Analysemöglichkeiten reicht von einfachen Übersichten zu Speicher- und CPU-Verbrauch, über das Profiling von Testsystemen und bis hin zur Dead-Lock- und Hot-Spot-Analyse, die auch auf produktiven System eingesetzt werden kann. Wir werden uns ansehen, welche Bedeutung die verschiedenen Anzeigen haben, wie dieses Werkzeug die wichtigsten Administrationsaufgaben unterstützt und welche Plug-Ins sich für den Admin als nützlich erweisen. Der interessierte Entwickler profitiert von diesen Kenntnissen natürlich genauso. Vortragsfolien: D7.pdf
Themenbereich: Testing Stichworte: Anti-Pattern, OpenSource, AOP, Parallelisierung, Exception-Handling Abstract: Haben Sie sich als Entwickler noch nie mit NullPointerExceptions herumschlagen müssen, die zu allem Unglück erst in freier Wildbahn aufgetreten sind? Nein? Glück gehabt. Falls doch - willkommen in der Welt der Software-Entwicklung. Bei der Ursachenforschung stößt man dann oftmals auf alte Bekannte wie der allzu sorglose Umgang mit Null-Werten und anderen Anti-Pattern wie
Um solche Problem-Zonen aufzudecken und grauen Haaren vorzubeugen, gibt es PatternTesting (http://patterntesting.org), eine der ersten AspectJ-Bibliotheken, die sich aber auch in normalen Java-Projekten einsetzen lässt und verschiedene Möglichkeiten der Einbindung anbietet. An der weiteren Entwicklung dieser Bibliothek kann jeder, der Interesse daran hat, durch Anregungen oder direkte Beteiligung am Projekt teilnehmen. Dieser Vortrag gibt einen Überblick über die Einsatzmöglichkeiten und den derzeitigen Stand von PatternTesting. Vortragsfolien: E1.pdf
Themenbereich: Testing Stichworte: GUI Testing, Software Qualität, Atomatisierung, Prozess Abstract: In diesem Vortrag wird das Thema Testautomatisierung, speziell für Java GUI Anwendungen, beleuchtet. Um die Qualität von komplexen Anwendungen mit grafischer Oberfläche zu sichern und verbessern spielen viele Themen zusammen die man unter dem Begriff Software Quality Management zusammenfasst. Dazu gehört
Der Vortragende wird auf die Punkte eingehen und besprechen, wie man diesen Prozess in der Praxis erfolgreich umsetzen kann. Vortragsfolien: E2.pdf
Themenbereich: Testing Stichworte: Unit Tests, JUnit, Hamcrest Abstract: Egal, ob man testgetriebene Entwicklung einsetzt oder konventionell entwickelt, das Schreiben von Unit Tests gehört mittlerweile zum etablierten Standard in der Software-Entwicklung. JUnit ist das älteste und bekannteste Unit Testing Framework für Java. Seit der Umstellung auf Annotationen in JUnit 4.0 hat sich einiges getan. Zu den Neuerungen zählen unter anderem ein komplett neuer Assertion-Mechanismus, die Möglichkeit, Vorbedingungen für Testfälle anzugeben und ein neuer Regel-basierter Ansatz, der es erlaubt, Code auf wiederverwendbare Art und Weise vor oder nach Testfällen auszuführen. Die Neuerungen bieten Entwicklern deutlich einfachere und zugleich mächtigere Möglichkeiten, Assertions zu formulieren, Tests zu schreiben und zu strukturieren. Das Resultat ist kompakterer Code, der besser lesbar und somit leichter wartbar ist. Leider werden diese Innovationen von vielen Entwicklern entweder gar nicht oder erst verzögert wahrgenommen. Diese Session möchte daher auf die Verbesserungen zwischen JUnit 4.0 und der aktuellen Version 4.8.1 aufmerksam machen und dazu motivieren, auf neuere Versionen umzusteigen. Vortragsfolien: E3.pdf
Themenbereich: Sonstiges Stichworte: OSGi, Modularity, Best Practices, Architecture Abstract: Mittlerweile ist OSGi als ein dynamisches Modulsystem für Java bekannt. Viele Teams und Unternehmen starten aktuell mit der Entwicklung OSGi-basierter Systeme. In diesem Vortrag diskutieren wir die typischen "Best and Worst Practices" im Umgang mit OSGi. Basierend auf der langjährigen Erfahrung im Bau von OSGi-basierten Business-Anwendungen reflektieren wir über das, was wir die letzten Jahre gelernt haben, was funktioniert hat und in welchen Fällen wir beim Einsatz von OSGi getappt sind. Die Teilnehmer erhalten konkrete Tipps und Tricks, die sofort im eigenen Projekt angewendet werden können. Vortragsfolien: E4.pdf
Themenbereich: Sonstiges Stichworte: Java RIA, Geschäftsanwendung, Swing, Business Applications Abstract: Für die Implementierung von RIA-Geschäftsanwendungen wird häufig zu AJAX gegriffen. Bei komplexen Benutzeroberflächen stößt man jedoch bald an Grenzen. Entwickler müssen sich mit einem Technologie-Zoo (JavaScript, XML, HTML, CSS, etc.), Sicherheitsproblemen (z.B. Cross-Site-Scripting), Browser-Abhängigkeiten, Performanz-Problemen oder verteilter Programmierung herumschlagen. All dies beeinflusst die Entwicklerproduktivität sehr negativ. Ein rein Java-basierter Ansatz verbunden mit einem serverseitigen Programmiermodell kann hier helfen. UltraLightClient, eine RIA-Komponentenbibliothek der Firma Canoo, stellt die Swing Komponentenbibliothek in einem Web-Container zur Verfügung. Entwickler bekommen damit ein einfaches serverseitiges Programmiermodell zur Verfügung, vermeiden Browser-Abhängigkeiten und können sich rein auf Java konzentrieren. Auf der Client-Seite wird für die Darstellung der Benutzerschnittstelle ebenfalls Java verwendet. Die Installation des dafür notwendigen Java Plugins ist für Geschäftsanwendungen normalerweise kein Problem. Der Vortrag wirft einen Blick hinter die Kulissen von UltraLightClient und illustriert anhand von Projekterfahrungen, wie komplexe Geschäftsanwendungen effizient für Intranet und Internet entwickelt werden können. Vortragsfolien: E5.pdf
Themenbereich: Sonstiges Stichworte: Closures, Java Abstract: Sie kommen. Sie kommen nicht. Sie kommen. Letzthin scheinen Closures jetzt doch noch einen Weg in Java 7 gefunden. Damit hat Java eine syntaktische Erweiterung bekommen, deren Nutzen weit über den syntaktischen Zucker hinausragt. Und zieht damit mit C# oder Scala gleich, die nicht zuletzt durch dieses Feature Java den Rang abzulaufen drohen. Dieser Vortrag beschäftigt sich mit dem aktuellen Stand der Closures, so wie sie in Java 7 erscheinen könnten und stellt deren Möglichkeiten vor. Darüber hinaus wird gezeigt, wie das arbeiten mit Closures die Denkweise und Art des Programmierens beeinflusst und dem Software-Entwickler ganz neue Gestaltungsmöglichkeiten offenbart. Vortragsfolien: E6.pdf
Themenbereich: Sonstiges Stichworte: JEE, Migration, Erfahrungsbericht, Satire, Tipps Abstract: In diesem Talk wird Schritt für Schritt die teils fiktive, teils wahre Geschichte eines gescheiterten Migrationsprojektes zur Einführung von JEE als Basistechnologie erzählt. Angefangen mit willkürlicher Teamzusammenstellung, über den utopischen generativen Ansatz und beachtliche Realitätsferne bis hin zu fehlenden vorzeigbaren Resultaten, soll dieser Vortrag die schwerwiegenden Fehler, die erfüllten Klischees um sog. Java-Projekte herum und die mangelnde Akzeptanz der Zweifler aufzeigen und erläutern. Aber es wird nicht nur satirisch belächelt und mit dem Finger gezeigt, sondern vor allem erklärt, wie sich die besagten Probleme am besten hätten vermeiden lassen, damit das Vorhaben doch noch zum Erfolg würde. Durch das Lachen nachdenken, und es dann richtig machen. Vortragsfolien: E7.pdf
Themenbereich: Entwicklungsprozess Stichworte: UML-Generierung, MDA, JPA, BVA Abstract: Ein Großteil der Geschäftsanwendungen verwendet relationale Datenbanken. Seit JEE5 kann mit Java Persistence API (JPA JSR-220) das OR-Mapping mit Annotationen definiert werden. Es stellt sich dennoch die Frage, warum muss man immer noch manuell die JPA-Mappings in den Klassen definieren. Wäre es nicht wesentlich effizienter die Annotationen auf Basis des UML-Klassenmodells abzuleiten? Mit einem Codegenerator sollte es möglich sein, auf Basis der Klassenbeziehungen die entsprechenden relationalen Beziehungen abzubilden. Ein weiteres Problem in nahezu allen Anwendungen ist die konsistente Datenvalidierung an den Systemgrenzen wie Validierungen an den Schnittstellen zu Nachbarsystemen, Eingabevalidierungen in den Benutzeroberflächen oder im Persistenzlayer. Da diese Bereiche oft unterschiedliche Teams bearbeiten, kommt es leider immer wieder zu inkonsistenten Implementierungen in ein und demselben System. Wäre es nicht besser die Validierung an die Domänenklassen zu binden und diese in Abhängigkeit der Anforderungen der verschiedenen Systemgrenzen zu verwenden? Mit der Bean Validation API (BVA JSR-303) wurde ein Standard für Java definiert, welcher ab Java 7 im JDK enthalten ist. Da Validierungsregeln meistens schon in der Designphase bekannt sind, kann man die Regeln zentral im UML-Klassenmodell hinterlegen und mit einem Code-Generator daraus Klassen ableiten! Ziel für beide Generatoren ist mit den bereits vorhandenen UML-Beziehungen sehr viele Informationen für den Standardfall abzuleiten. Zudem sollte die Anwendung der BVA und JPA-UML-Profile im UML-Modell im Enterprise Architect (EA) möglichst einfach sein. Beide mit openArchitectureWare (oAW) umgesetzten Generatoren, wurden mit pilotierten Einsätzen in Bestandssystemen in der Industrie erprobt. Präsentiert werden die Implementierungen der Code-Generatoren für die JPA und BVA. Es wird in einer Livedemo mit der Toolchain (EA, oAW, ANT) ein Beispielprojekt generiert. Abschließend werden die Erfahrungen der Praxiserprobung dargestellt und kritisch hinterfragt. Vortragsfolien: F1.pdf
Themenbereich: Entwicklungsprozess Stichworte: Projektmanagement Abstract: Anforderungen können mehr sein als nur eine Vorgabe für die Entwicklung. Wir zeigen, wie aus Kundenanforderungen Teilprodukte abgeleitet werden und wie dann ein automatisiertes, dynamisches Controlling auf dieser Basis erfolgt. Durch dieses seit Jahren erprobte Verfahren haben alle Projektbeteiligten eine gemeinsame Plattform für Planung, Entwicklung und Fortschrittskontrolle. Viele große Projekte konnten nicht zuletzt hierdurch 'in time & budget' realisiert werden. Vortragsfolien: F2.pdf
Themenbereich: Entwicklungsprozess Stichworte: UML, MDA / MDD, generative Entwicklungsprozesse, JEAF / MagicDraw Abstract: Die Begriffe MDA und MDD haben mittlerweile den "Buzz-Word Status" hinter sich gelassen und sollten die methodische Basis für Software-Projekte bilden. In der Realität zeigt sich jedoch, dass sich nach wie vor viele Projekte und Firmen mit der Einführung von modellgetriebenen Entwicklungsprozessen aus unterschiedlichsten Gründen schwer tun. Ziel des Vortrags ist es anhand von praktischen Erfahrungen die konkreten Schritte zur Einführung eines modellgetriebenen Entwicklungsprozesses aufzuzeigen. Die Basis hierfür bilden Erfahrungen aus mehreren Projekten, in denen nach modellgetriebenen generativen Entwicklungsprozessen gearbeitet wurde. Die im Rahmen des Vortrags vorgestellten Lösungsansätze eigenen sich dabei gleichermaßen für den Einsatz in gewachsenen IT-Landschaften als auch für Projekte, die auf der "grünen Wiese" starten. Darüber hinaus wird mit dem Modellierungswerkzeug MagicDraw und der anaptecs-eigenen JEAF Plattform exemplarisch aufgezeigt, welche Teile eines Systems sich für die Generierung eignen und wo die Erfahrung und Kreativität von Entwicklern nicht zu ersetzten ist. Vortragsfolien: F3.pdf
Themenbereich: Entwicklungsprozess Stichworte: Agile ALM REST Abstract: Let's face it; most software development teams indulge in tribal behavior. If you're working in a large enterprise, the divisions between the business and the development and testers can be deep enough that these three groups reject the idea of being on the same team. Sometimes you do not even have a choice as different parts of an application's lifecycle are outsourced across geographies. Based on my own experience from doing agile inside IBM Rational, I'll describe some of the collaboration challenges we have and how we overcome them. We believe each team member deserves to use a tool that best suits their needs and enables them to collaborate across the software delivery disciplines. In this talk I'll also describe how we achieve this integration using an open effort based on a RESTful architecture. Vortragsfolien: F4.pdf
Themenbereich: Entwicklungsprozess Stichworte: Zuverlässigkeit, Fehlererkennung, Verifikation, Datenflussanalyse, Code Qualität Abstract: Bereits die Verwendung von Java gegenüber unsicheren Sprachen wie C oder C++ verbessert die Qualität und Stabilität vieler Anwendungen erheblich: Klassische Fehler wie Typfehler oder Array Bereichsüberschreitungen ergeben einen Laufzeitfehler an Stelle eines undefinierten Verhaltens, was die Fehlersuche erheblich erleichtert. Ein ähnlich bedeutender Schritt wie der Wechsel von C nach Java hinsichtlich der Stabilität von Anwendungen ist durch Code Verifikation erreichbar. Somit kann bereits während der Anwendungsentwicklung sicher ausgeschlossen werden, dass gewisse Fehlerklassen in der Anwendung überhaupt auftreten können. Dazu gehören u.a.: Deadlocks, Dangling Pointers, sowie alle Arten von Java Laufzeitfehlern. Der Vortrag beschreibt die auf Datenflussanalyse basierende Technologie und zeigt, welche Fehlerarten das neue Werkzeug VeriFlux zuverlässig lokalisieren kann. Dabei wird auch beleuchtet, wie sich die jeweiligen unerkannten Fehler im Vergleich unter C, C++ und Java bemerkbar machen würden. Vortragsfolien: F5.pdf
Themenbereich: Entwicklungsprozess Stichworte: Verteilte Builds, Continuous Integration, Hudson, Open Source Abstract: Softwareentwickler lieben Continuous Integration (CI): Jede Codeänderung wird innerhalb von Minuten bestätigt oder als fehlerhaft erkannt. Risiken werden kleiner, Projektleiter gelassener, Refactorings mutiger, Software besser. Lange Buildzeiten sind jedoch die Achillesferse der CI. Praktisch jedes Entwicklerteam stellt sich daher irgendwann die Frage: "Leute, wie schrumpfen wir den Build zurück?" Wir werden Ansätze betrachten, wie Buildzeiten verkürzt werden können und wie ein CI-System dabei helfen kann. Diese Vorschläge umfassen sowohl "tiefhängende Früchte", die also mit wenig Aufwand schnelle Erfolge bringen können, aber auch ausbaubare Lösungen, die etwas mehr an strategischer Investition erfordern. Der Schwerpunkt wird auf der Parallelisierung von verteilten Builds liegen - und warum diese einfache Idee in der Praxis fast immer kniffliger ist als erwartet. Die konkrete Umsetzung wird anhand von Live-Demos mit dem CI-System "Hudson" (http://hudson-ci.org) gezeigt. Und natürlich sind wieder eXtreme-Feedback-Devices mit von der Partie... Vortragsfolien: F6.pdf
Themenbereich: Sonstiges Stichworte: Scala, JVM, Objekt-Funktionale Programmierung Abstract: Nachdem die objekt-funktionale Programmiersprache Scala im Java Forum 2009 vorgestellt wurde, möchte ich mit diesem Vortrag darauf aufbauend speziell auf die Neuerungen, die Scala in der kommenden Version 2.8.0 bieten wird, eingehen. Zu den interessantesten Neuerungen gehören:
Im Bereich der Tools gibt es mit Scala 2.8.0 eine neue Version von Scaladoc, ein verbessertes Scala Bazaar System, ein neues Scalap und ein komplett überarbeitetes Eclipse-Plugin. Vortragsfolien: F7.pdf
|