CosmoCode
  • Great software.

  • Bright people.

  • Happy customers!

CosmoCode GmbH
  • Start
  • Geschäftsfelder
  • Über uns
  • Referenzen
  • Blog
  • Open Source
←
Alle Blogposts
→

JUDCon 2010:Berlin

JUDCon 2010:Berlin

Am 7. und 8. Oktober war die JUDCon 2010:Berlin (JBoss User and Developer Conference) und CosmoCode war dabei. Es war die zweite Konferenz von und über RedHat’s JBoss. Die Konferenz lief zwei-schienig und der folgende Beitrag fasst die mitgenommenen Vorträge zusammen. Zusätzlich zu den Vorträgen gab es jede Menge Zeit und Möglichkeiten spannende Diskussionen mit den JBoss Projektleitern über aktuelle Projekte und Themen zu führen.

Tobi S., 11.10.2010 10:01

JUDCon 2010:Berlin

judcon2010.jpg

Am 7. und 8. Oktober war die JUDCon 2010:Berlin (JBoss User and Developer Conference) und CosmoCode war dabei. Es war die zweite Konferenz von und über RedHat’s JBoss. Die Konferenz lief zwei-schienig und der folgende Beitrag fasst die mitgenommenen Vorträge zusammen. Zusätzlich zu den Vorträgen gab es jede Menge Zeit und Möglichkeiten spannende Diskussionen mit den JBoss Projektleitern über aktuelle Projekte und Themen zu führen.

Guice / JavaEE 6

Im Palava Projekt setzen wir Google’s Guice als Dependency Injection Framework ein. Auch getrieben von Google selbst ist eine der größten Neuerungen in der neuen JavaEE6 Spezifikation die Integration von “Contexts and Dependency Injection” (CDI) und mit dabei auf der JUDCon war Pete Muir, Projektleiter von Seam und Weld, der Referenzimplementierung für CDI. Mit ihm habe ich viel über die Unterschiede zwischen Guice und CDI geredet. Der große Unterschied dieser beiden Frameworks ist ein grundsätzliches Verhalten nachdem bei Guice alles manuell bekannt gegeben werden muss und bei Weld alles bekannt ist und ungewolltes manuell deaktiviert werden muss. Das führt zu unterschiedlichen Herangehensweisen bei einigen Themen. Er zeigte mir einige Tricks mit denen man Guice spezifische Verhaltensweisen unter Weld emulieren kann. Vor allem zeigte er mir die Macht der CDI Extensions, welche ebenfalls in der Spezifikation enthalten sind - durch diese ist es möglich extrem in das Verhalten von CDI einzugreifen. Insgesamt ist hervorzuheben, dass er selbst sehr zufrieden ist mit der Spezifikation und dass sie sich mittlerweile bereits in sehr großen Projekten bewährt.

Arquillian

Das zweite spannende Projekt auf das ich beide Augen geworfen habe ist Arquillian. Das Projekt von Aslak Knutsen schafft es Integrationstests in die eigene IDE zu bringen und so auch ausführbar für Continous Integration zu machen. Bisher gab es zwar JUnit und Test-NG um Microtests zu machen, das automatisierte und einfache Integrationstesten war allerdings nur schwer machbar. Mithilfe von ShrinkWrap, einem Subprojekt von Arquillian, ist es möglich Unit Tests zu schreiben, die im Kontext eines Containers ausgeführt werden. Grundsätzlich definiert man, was im Testpaket enthalten sein soll und kann die Tests dann z.b. via Maven ausführen. Arquillian kann diese Pakete dann in diverse Container deployen, z.b. dem JBoss aber auch vielen anderen Umgebungen und dort die Tests laufen lassen. Man kann den Container starten und herunterfahren lassen oder aber auch entfernt laufende Server mit einbeziehen - im Unit Test selbst kann man sich die Container Services injecten lassen, als wär es die fertige Applikation. Ob es Sinn macht eine Container Implementation für Palava zu erstellen werden wir in den nächsten Tagen evaluieren. Ein zusätzliches Apettithäppchen bietet auch die Integration von DeltaCloud - eine generischen API für Computing Clouds - wodurch es möglich sein soll, Cloud Instanzen automatisiert für die Integrationstests zu starten und zu stoppen.

Infinispan

Mit ein Hauptschwerpunkt des ersten Tags der Konferenz war Galder Zamarreño’s Infinispan. Infinispan ist ein “Data Grid”, was eine Mischung aus Cache und Datenbank ist - es ist der offizielle Nachfolger von JbossCache. Wir setzen Infinispan auch in unseren Projekten ein und in Gesprächen mit Galder habe ich mit ihm noch einige Integrationsmöglichkeiten diskutiert, die ich die nächsten Tage evaluieren werde. In seinen Vorträgen ging es um die Integrationsmöglichkeiten mit externen Applikationen. Infinispan ist nicht nur eine Javabibliothek, sondern kann auch standalone laufen und bietet verschiedene Interfaces zur Kommunikation: memcached, REST, Websockets und HotRod. HotRod ist das Infinispan eigene Protokoll welches mit enormer Effizienz schon auf Clientseite die richtigen Server finden kann um effizientere Zugriffe zu ermöglichen. Durch spezielles Marshalling der zu speichernden Objekte ist es möglich, typensichere Daten im Grid zu haben. Leider ist es nicht möglich, komplexe Daten aus Java mit z.b. einem PHP Client auszulesen, da es keinen entsprechenden Unmarshaller für PHP gibt - um dieses Problem zu lösen haben Galder und ich einige Lösungen durchgesprochen. Die Zukunft wird zeigen was daraus wird. In einem weiteren Vortrag sprach Galder über die neu implementierte Evictionstrategie LIRS, erklärte die Funktionsweise und zeigte eindrucksvoll die Effizienz des neuen Algorithmus im Vergleich zum herkömmlichen LRU. Über Transaktionen ging es dann noch zu Continous Queries in Infinispan. Das CQ Projekt ist noch sehr jung und es gibt noch kein Release - bei github kann man sich bereits die Quellen herunterladen. In dem Projekt geht es darum auf Datenänderungen zu horchen. Mittels Drools kann man definieren welche Daten bzw Datenänderungen interessant für die Applikation sind. Es lohnt sich das Beispiel anzuschauen und zu abstrahieren, wie man diese Möglichkeit für eigene Daten nutzen kann.

JBoss in the Cloud

Nahezu jeder Vortrag tangierte das Thema Cloud Computing. Die Nachfrage ergab, dass sich kaum jemand damit auskennt, jeder aber möchte. Bela Ban, Projektleiter von JGroups, der defacto standard Bibliothek für Java Clustering, erzählte über Clustering mit JBoss und den Herausforderungen, die Cloud Services wie Amazon EC2 den heutigen Applikationen auferlegen. Speziell die Einschränkung, dass man keine IP Multicasts fürs Cluster Discovery nutzen kann macht die JGroups Entwickler erfinderisch und Bela hat verschiedene Plugins für JGroups vorgestellt, welche alternative Discovery Möglichkeiten bereitstellen. Hervorzuheben ist die Möglichkeit über das Amazon S3 Content Delivery Network das Problem zu lösen.

Errai

Am Ende ging es dann zu meinem persönlichem Lieblingsvortrag. Heiko Braun stellte seine CDI Integration für Errai vor. Errai ist ein bemerkenswertes Projekt, welches auf Google Web Toolkit basiert und die Möglichkeit bietet Webapplikationen im Stil von interaktiven GUIs zu bauen. Man muss nicht mehr im eingeschränktem Request/Response Verfahren denken, sondern kann komplett eventbasiert eine GUI aufbauen. Errai implementiert einen MessageBus, der komplett transparent für den Entwickler Nachrichten und Ereignisse zustellen kann. Dabei können Sender und Empfänger sowohl im Client als auch beim Server sein. Durch die CDI Integration kann man auch vollkommen transparent im Client Serverkomponenten injecten und @Observes nutzen. Ziel von Errai und der CDI Integration ist es mit dem Errai Workspace eine Grundlage zu schaffen, mit der es möglich ist in kürzester Zeit Web GUIs mit EE Anbindung zu erstellen.

Fazit

„Everything is in the cloud“ - Cloud Services werden immer beliebter, da sie den Unternehmen eine enorme Flexibilität verschaffen. Die JBoss Projekte kommen dem nach und rüsten sich für das Cloud Zeitalter.

Die JUDCon2010 war für mich ein voller Erfolg - ich konnte viele interessante Gespräche mit den JBoss Projektleitern führen und einiges an Ideen in unsere Projekte mitnehmen. Die nächste JUDCon wird wieder in Boston stattfinden und in zwei Jahren ist sie wieder in Europa. Ich hoffe dort wird man mich wieder finden.

Mehr zum Thema

Kontakt

Wir freuen uns sehr über Ihr Interesse!
Sie erreichen uns hier:

CosmoCode GmbH

Prenzlauer Allee 36G
10405 Berlin

Telefon: +49 30 814 50 40 70

Telefax: +49 30 2809 7093


mail: info@cosmocode.de

CosmoCode GmbH  
   

© CosmoCode 2021 | Impressum | Datenschutz | Cookies verwalten

Schließen
Deutsch Englisch
  • Jobs