ruhrjugPanorama
Newsletter




Veranstaltungen

Andere Events

Mobile Times 2010


Devoxx 2010

W-JAX 2010

WebAppDays

WebAppDays am 27. und 28. September 2010 in Düsseldorf

Zum ersten Mal richten wir die WebAppDays aus, eine zweitägige Veranstaltung rund um Application-Server, Web-Entwicklung und Rich Internet Applications. In zwei Tracks berichten verschiedene Experten über den praktischen Einsatz verschiedener Technologien, Demos inbegriffen. Viele Sprecher waren schon zu Gast bei der ruhrjug. Die Veranstaltung ist nicht nur auf Java-Themen begrenzt...

Es kommen unter anderem folgende Vorträge:

  • SOA auf Basis von RESTful HTTP (Stefan Tilkov, innoQ)
  • GlassFish v3 Übersicht (Peter Doschkinow, Oracle)
  • JavaServer Faces im Portal? (Andy Bosch)
  • Tapestry 5 (Igor Drobiazko, Committer des Apache-Tapestry-Projekts:)
  • Entwicklung mit OpenSAGA (Dr. Thomas Biskup und Sven Helmberger)
  • Spring Roo (Oliver Gierke, Spring Source)
  • Grails (Stefan Glase, OPITZ CONSULTING)
  • Eine Einführung in Google App Engine (Dr. Halil-Cem Gürsoy, adesso AG)
  • CouchDB (Mathias Meyer)
  • Status-Quo Open-Source Applikationsserver (Frank Pientka, MATERNA)
  • Apps für verschiedene Plattformen mit einem Code in der Cloud (Oliver Scheer, Microsoft Deutschland GmbH)

Alle Infos und die Anmeldung unter www.webappdays.de

 

 

Mobile Times am 2. September

Mobile Times

Am 2. September findet zum zweiten Mal die Mobile Times in Düsseldorf statt. Wie bei der ersten Veranstaltung im März gibt es eine bunte Mischung an Vorträgen um das Thema Handheld-Programming.

Geplant sind bislang die Vorträge:

  • XMLVM - Cross-Compilieren von Android-Anwendungen
  • Mobile Application Development im Unternehmens-Kontext
  • Hotel Reservation Service - Öffentliche Services als Basis für mobile Buchungsplattform
  • AndroidFragmentation.com
  • Rechte an App-Entwicklungen wirksam schützen
  • Spring-basierte Backends für iOS-Applikationen
  • BlackBerry Java Anwendungen mit Eclipse entwickeln

Alle Infos und Anmeldung unter www.mobile-times.de

 

Bericht: Garbage Collection in der VM mit Angelika Langer und Klaus Kreft

Volles Haus trotz Ferien...Während der Sommerferien ist es ja normalerweise schon etwas leerer in den Büros und auf den Straßen, und so waren wir dann doch überrascht, als zur August-Veranstaltung der ruhrjug über 70 Besucher kamen. Trotz Nachbestellung war unser Sandwich-Buffet sehr schnell leergeräumt… (bis auf viel "Garbage")

Die Garbage Collection

Im Mittelpunkt des Abends stand die Garbage Collection in der JVM; ein Thema, womit sich die meisten Java-Entwickler kaum beschäftigen, da die GC für ihn ja transparent sein soll. Doch lassen sich manchmal Performance-Probleme durch passende Justierung der GC beheben, etwa mangelnder Durchsatz oder auch spürbare Pausen bei der Benutzer-Interaktion.

 

Angelika LangerYoung and Old Generation

Zuerst erklärte Angelika Langer das Prinzip der „alten“ Garbage Collection in der JVM bis etwa Version 1.5. Schon in dieser Version haben sich die JVM-Designer einige Gedanken gemacht über die Lebenszyklen von Objekten im Heap, um die GC zu optimieren. So wurde der Heap in mehrere Bereiche unterteilt:

Eden, wo neue Objekte erzeugt werden, und wo die meisten Objekte auch wieder sterben, da sie nur lokal verwendet werden. Zwei Survivor-Bereiche, in dem die Überlebenden der GC im Eden-Bereich landen, und schließlich den Bereich der „alten“ Objekte, die über längere Zeit in der Applikation verwendet werden. Für die einzelnen Bereiche gibt es verschieden optimierte Strategien.

Um nun die GC an individuelle Bedürfnisse der Applikation anzupassen, ist es möglich, diese Bereiche verschieden groß einzustellen. Dies ist ein Trial-and-Error-Prozess, und es gibt da kein Patentrezept. Darüber hinaus muss man lassen sich nicht Durchsatz (d.h. Anteil der Zeit, die die JVM im eigentlichen Programm zubringt) und Pausenminimierung gleichzeitig optimieren. Immerhin gibt es verschiedene Monitoring-Tools, die einen bei dieser Feinabstimmung unterstützen. Außerdem unterstützt die GC mittlerweile auch Multi-threading.

 

Klaus KreftGarbage First

Danach stellte Klaus Kreft die neue Garbage Collection G1 vor (für „Garbage first“), die in den neuen Java-Versionen zur Verfügung steht. Hier hat SUN weitere Optimierungen vorgenommen; so wird der Speicher nicht mehr in feste Bereiche für die GC unterteilt; stattdessen wird dieser synamisch für junge unt alte Objekte aufgeteilt. Der Entwickler kann nun mit zwei Parametern die GC steuern, dem minimalen Zeitintervall zwischen zwei GCs sowie der maximalen Dauer einer GC. Der Garbage Collector versucht weitestgehend, diese Constraints einzuhalten, indem er die GC nicht auf den ganzen Heap anwendet, sondern nur auf Blöcken (Collections) arbeitet. Während einer GC versucht er, so viele Blöcke wie möglich zu verarbeiten (zuerst junge, dann ältere). Dabei entsteht allerdings ein teils erheblicher Overhead durch Bookkeeping-Aufgaben. Auch hier ist eine Feinabstimmung notwendig, wobei es leider noch keine komfortablen Monitoring-Tools gibt; man ist auf den Konsolen-Output angewiesen.

Fazit

Für die Optimierung der Garbage Collection gibt es kein Patentrezept, und auch keine perfekte Lösung., was in der Natur der Sache liegt. Trotzdem lassen sich mitunter enorme Performanz-Gewinne durch Drehen der vorhandenen Stellschrauben erzielen, wobei es einiges an Tool-Unterstützung gibt.

Einen Artikel von Angelika Langer zum Thema findet man hier >>>

Vielen Dank

Dann möchten wir uns herzlich bedanken bei

  • Angelika Langer und Klaus Kreft für ihre interessanten Vorträge
  • Dem Linux-Hotel und der adesso AG für das Sponbsoring des Abneds
  • Und alle Teilnehmer für ihren Besuch!

 

Wenn es gefallen hat: Weitersagen! Die nächste Veranstaltung gibt es dann im Herbst…


 

Davor... Besucher
Beim Vortrag Danach
Danach...1 Danach
 

Bericht: Spring ROO und Hades mit Oliver Gierke am 14. Juli

Oliver GierkeGleich mit zwei Themen im Gepäck kam Oliver Gierke am 14. Juli zur ruhrjug: dem Persistenz-Framework Hades, sowie dem Web-Entwicklungs-Werkzeug Roo. Beide sind eng mit Spring verflochten, der Firma, bei der Oliver seit einiger Zeit arbeitet.

Hadesv

Hades ist ein Persistenz-Tool, das auf JPA und Spring aufsetzt. Es ist als Open-Source-Projekt im Web unter

http://redmine.synyx.org/projects/show/hades

zu finden, und wurde von Oliver selbst initiiert. Die Persistierung von Objekten gehört ja nun nicht gerade zu den Lieblingsaufgaben des Software-Entwicklers, und natürlich gibt es bereits eine ganze Reihe von Frameworks zu diesem Thema, nicht zu vergessendie Java Persistence API.

Olivers Vortrag bestand im wesentlichen aus einer einzigen Demo, wie denn eine "Standard-Implementierung" eines DAOs durch eine mit Hilfe von Hades ersetzt wird. Der resultierende Code ist wesentlich kürzer und übersichtlicher; die üblichen CRUD-Operationen werden zu Einzeilern. Die eigentliche Implementierung der Persistierung wird durch das Spring-Framework konfiguriert, wobei die meisten Einstellungen obsolet sind, solange man sich an Standards hält ("Convention over Configuration").

Natürlich lassen sich Datenbank-Operationen nicht ansprechend visualisieren, aber anhand der vorhandenen Unit-Tests konnte man sich überzeugen, dass das Refactoring funktionierte. Wer alles nachvollziehen will, findet hier in Kürze auch Olivers Source-Codes.

Spring Roo

Der zweite Vortrag stellte das Web-Entwicklungs-Werkzeug SpringRoo vor, das die bekannten Features von Rails bzw. Grails komplett in die Java-Welt transportieren möchte. Insbesondere wegen des Scaffolding über die Kommandozeile sind ja bereist viele Java-Jünger von der wahren Lehre abgewichen... Dies ist mit SpringRoo nun ebenfalls möglich, daüber hinaus ist eine komplette Integration in die Eclipse-Umgebung verfügbar. Mit Hilfe des AspectJ-Compilers werden dabei viele Funktionalitäten wie Bean-Eigenschaften und Persistenz in eigene Klassen aus dem Modell in andere Klassen ausgelagert; alles gesteuert durch Roo-Annotations. Über MAven wird dann das fertige Projektgebaut, und es entsteht eine einfache Web-Anwendung, die nun angepasst werden kann. Natürlich beginnt hier wie bei anderen Frameworks die Arbeit erst...

Geplant für die nächste Version ist die Anbindung an GWT, was sich schon einmal interessant anhört. Wer übrigens irgendwann einmal bereut, sein Projekt über SpringRoo aufgesetzt zu haben: Durch automatisches Refactoring lässt sich die AsprectJ-Natur komplett entfernen.

Wer mit SpringRoo anfangen will, findet alles dazu unter http://www.springsource.org/roo

Außerdem: SpringRoo-Demo bei YouTube

 

Danach...

blieben einige noch bei den Resten des Sandwichbuffets zu Gesprächen beisammen.

Wer den Vortrag verpasst hat oder nochmal nachlesen möchte:

Ein Video des Vortrags findet man hier >>>

Vielen Dank an das Linuxhotel und die Firma SOPTIM AG aus Aachen und Essen, die mit ihrem Sponsoring den Abend möglich gemacht haben.

Besucher Besucher

 

 

Bericht: Tapestry 5 mit Igor Drobiazko am 10. Mai 2010

tapestry_banner

Besucher im GlaspavillonAm 10. Mai hatten wir nach einigen Monaten Pause wieder einen Vortrag organisiert, und so fanden sich etliche Interessierte der ruhrjug im Glaspavillon der Uni Essen ein, diesmal bei etwas freundlicheren Temperaturen.

Tapestry 5

Thema des Abends war Tapestry, ein komponentenorientiertes Framework zur Entwicklung von skalierbaren Web-Anwendungen in Java. Das Apache-Top-Level-Projekt wird seit vielen Jahren stetig weiterentwickelt und hat entsprechend viel zu bieten.

Mit Igor Drobiazko hatten wir als Mitglied des Entwicklungsteams von Tapestry - einer von nur zwei deutschen Committern - den passenden Redner gefunden, und seine Begeisterung für das Framework war in dem neunzigminütigen Vortrag zu spüren. Die Folienpräsentation wurde durch viele Demos abgerundet, die schnell auch die Pronzipien von Tapestry zeigen, nämlich vor allem die Maxime "Convention over Confuguration" - wer sich an die vorgegebenen Vereinbarungen hält, kommt sehr schnell ans Ziel. So ist z.B. der Einsatz von Ajax mit Tapestry nur eine Sache von wenigen Tags in den Html-Seiten; das muss man einfach einmal selbst ausprobieren.

Andererseits lassen sich dank der Komponenten-Architektur von Tapestry alle Bausteine auch durch eigene Komponenten ersetzen und das Framework somit auf eigene Standards anpassen.

Igor beim VortragSehr gelitten hat Tapestry in der Vregangenheit durch Inkompatibilitäten in den einzelnen Versionen; ein fehler, den man in Zukunft vermeiden will.

Hingewiesen sei noch auf Igors Buch zum Thema Tapestry, das bei Addison-Wesley erschienen ist und das einzige deutschsprachige Buch zum Thema ist.

 

Danach...

blieben viele noch bei den Resten des Sandwichbuffets zu Gesprächen beisammen. Auch Igor beantwortete noch zahlreiche Fragen; weitere Infos findet man auf seinem Blog:

http://tapestry5.de/blog

Unter http://tapestry.apache.org/ findet man alles zum Einstieg in Tapestry.

Wer den Vortrag verpasst hat oder nochmal nachlesen möchte: Diesmal gibt es leider kein Video, aber hier die Folien zum Download als PDF-Datei >>>

Vielen Dank an das Linuxhotel und die Firma SOPTIM AG aus Aachen und Essen, die mit ihrem Sponsoring den Abend möglich gemacht haben.

 

 

Igor beim Vortrag Besucher im Glaspavillon
Igor beim Vortrag Igor beim Vortrag
Tapestry6 Danach...

 

 

Partner der ruhrjug

Linux-Hotel... Partner der ruhrjug

infaktum Veranstaltungen

rheinjug

Preise gespendet von

jetbrains

zeroturnaround

Wir haben 29 Gäste online
Externe Links

Englisches Theater an Rhein und Ruhr:

Random Act Theater

Casual Games und Gadgets

Gamelets & Gadgets

Programmierung mit Torque2D

Torque2D