Mittwoch, 23. April 2008

JAX 08 - 2. Tag

Eröffnung durch Sebastian Meyen
Sebastian hatte dieses Jahr weniger Neues zu berichten als auch schon. Organisatorisch sei die JAX08 mit über 2000 Besuchern und 211 Sessions eine neue Superlative. Aus fachlicher Sicht betonte er die Wichtigkeit von Technologie, Architektur und agilen Prozessen. Technologisch warten neue Sprachen wie Groovy oder Skala auf. Aus Sicht der Architektur spielen Thema wie SOA oder OSGi ein immer wichtigere Rolle. Und in den agilen Prozessen ist dank einem eigenen SpecialDay, der Montags sehr gut belegt war, auch allen klar, wie wichtig das Thema sei. Zwei Stichworte sind mir besonders geblieben: Scala und OSGi. Scala ist eine neue Sprache, die speziell für die Java Platform konzipiert wurde. OSGi hat irgend etwas mit Modularisierung und Bundles zu tun und kommt bei Eclipse und Spring vor. Mehr dazu werde man in den Keynotes oder Sessions erfahren.

Keynote von Rod Johnson: The Future of Java EE
Man muss sich schon ordentlich am Stuhl festhalten, wenn Rod Johnson seine Prognosen zur Zukunft von Enterprise Java aufstellt. Gestartet ist er ganz sanft und hat aufgezeit, dass die Java Enterprise Edition in drei verschiedene Profile zerteilt werden soll:
Profil A: Servlet, JSP, EL, JSTL, Annotations -> läuft minimal auf einem Tomcat
Profil B: Profil A und EJB, JTA, JPA, JSF, WebBeans -> also zusätzlich Persistence und Component Model
Profil C: alles -> JEE klassisch, wird aber weniger Bedeutung haben

Rod betont auch, dass es im Moment nur eine Hand voll Applikationsserver gebe, die sich den Markt teilen. Sobald aber die leichtgewichtigen Profile von JEE da wären, wird auch die Nachfrage nach leichteren App.-Servern steigen und die Konkurrenz wird aufleben. Dann werde der Markt einen Server, der zwischen Tomcat und Weblogic/WebSphere liege haben.
OSGi wird nach Rod die Basis von Java, aber auch die Basis der neuen App.-Server sein. Denn nicht zuletzt beweisen Frameworks wie Spring oder Hibernate, dass eine Modularisierung mit OSGi einen grossen Vorteil bringt.

Um nun seine Keynote dramaturgisch auf den Höhepunkt zu treiben behauptet Rod, dass EJB tot seie. Die Enterprise Java Beans seinen das Cobol von JEE und werden bald keine Bedeutung mehr haben. Denn EJB könne mit leichtgewichtigen Mechanismen von Spring und AOP ersetzt werden. Die EJB's seien leidiglich eine Neuerfindung des Java Community Process (JCP), von Sachen die es eigentlich bereit gab und die gut funktionierten. Ob diese Prognose tatsächlich so schnell eintreten wird sei mal dahingestellt. Rod ist ja auch als einer der treibenden Kräfte hinter Spring ein wenig vorbelastet. Die Zukunfgt wird aber sicher einige kontroverse Diskussionen zu diesem Thema bringen.

Links
Worte von Sebastian Meyen
Worte von Eberhard Wolff


Torsten Winterberg - SCA - ein Assembly Modell für unsere Services
Service Component Architecture (SCA) ist eine sprachneutrale Komponenten Architektur, die es erlauben soll, Services aus verschiedenen Technologien (Java, BPEL, C++, etc.) zu verbinden. Dazu kann ein Service einheitlich als Komponente verpackt werden und von anderen Komponenten angesprochen und genutzt werden. Nach aussen hin sehen so alle Komponenten gleich aus, die jeweilige Implementierung kann in Java, BPEL, C++ oder anderen Sprachen geschehen. SCA ist noch sehr jung. Spezifiziert durch die OASIS gibt es bereits von Oracle eine Implementation in der SOA Suite 11g und von Apache Tuscany eine Open Source Lösung. Auch Spring wird in nächster Zeit ein Produkt anbieten, das bis anhin aber noch nicht über die Spezifikation hinaus ist. Die grösste momentane Schwäche ist noch, dass es bis jetzt keine Spezifikation gibt, wie die Integration über einzelne SCA Domänen hinaus funktionieren soll. So ist ein Austausch zwischen verschiedenen Herstellern noch nicht möglich.

incubator.apache.org/tuscany

Christian Kappert - Definition einer serviceorientierten Referenzarchitektur
Die Einführung von SOA ist so vielfälltig wie die Definitionen von SOA selber. Die IT möchte am liebsten aus technischer Sicht SOA vorantreiben, das Business dahingegen aus der fachlichen Sicht. Der Königsweg wird wohl ein Kompromiss sein: Ein fachlich nicht all zu triviales Projekt in guter Zusammenarbeit zwischen Bussiness und IT anzupacken und umzusetzten. Zur SOA Einführung gibt es bereits etwas ähnliches wie das Capabillity Mautirty Model, ein sogenanntes Service Integration Maturilty Model.

Markus Völter - Trends in Sprachen
Sorry Herr Völter, ihre fachliche Kompetenz ist unumstritten, aber das Tempo der Folien und Imputs hängen jeden ab, der Groovy, Ruby, Erlang, Lisp und Skala nicht bereits kennt. Die Quintessenz wurde mir dabei aber sehr deutlich: Lerne jedes Jahr eine neue Programmiersprache! Nicht dass man die dann auch alle gleich im Projekt anwenden kann. Nein, es geht mehr darum, neue Ideen und Konzepte kennen zu lernen und darüber nachzudenken, ob dieses coole Feature nicht auch in der Projektsprache nutzbar ist.

Glücklicherweise ist das Dokument zum Vortrag bereits online: www.voelter.de/data/articles/trends2007.pdf

Keynote von Bernd Löchner - Fehler - Na und!
Fehler sind in Softwaresystem allgegenwärtig. Manchmal haben sie aber verherrende Folgen wie etwa die Sprengung der ersten Ariane 5 Rakete. Herr Löchner hat auf eine humorvolle Art und Weise aufgezeigt, wie Fehler entstehen, das sie für auswirkungen haben und wie man damit umzugehen habe (oder wie er es bei Zühlke macht). Er habe mit ein paar Kollegen in einem Weiterbildungscamp einige Patterns ausgearbeitet, die das Ziel haben, mit den unvermeidlichen Fehlern umzugehen:
1) Sicherheitsfassade um die eigene Applikation. Konsequente überprüfung der Werte von auserhalb stehenden Systemen.
2) Logging persistent halten um später auch Fehler nachvollziehen zu können.
3) Fehlerkultur der Firma fördern, zu seinen Fehlern stehen und daraus lernen

Markus Völter - 20 Fundamentals of Software Architecture
Markus Völter präsentierte einige zeitlose Architekturkopnzepte, die sich trotz dem grossen Hype nach immer neuen Sprachen und Frameworks gleich geblieben sind.
- Breaking things down: Modularisierung, Kapselung, Interfaces sind wichtig zur verständlichen Aufteilung von Systemen
- Scaling things up: Standard Librarys sollen genutzt werden, die Architektur soll in gewissem Masse auch einschränken und Leitlinien schaffen
- und noch weiteres: www.voelter.de/data/presentations/TrendsInLanguages2008.pdf

Papick Garcia Taboada - Google Gears
Google Gears ist eine Browser Erweiterung für den IE und Firefox, die es erlaubt, Internetapplikationen auch offline zu verweden. Ein mächtiges Beispiel dazu ist Google Docs, das es nun erlaubt, Texte, Präsentationen und Tabellen auch offline zu erstellen und beim nächsten Hotspot online zu synchronisieren. Dahinter liegt eine Datenbank, die lokal Daten ablegt, ein lokaler Server, der im Offline-Zustand Anfragen des Benutzers beantwortet und einige Synchrinize Mechanismen, die Webspace und lokale DB abgleichen. In Zukunft werden bestimmt noch weitere Online Tools diese Möglichkeit nutzen. Ich bin gespannt darauf.