Hallo,
Ich habe von Dienstag bis Donnerstag die Hauptkonferenz der JAX besucht. Damit ihr euch ein Bild davon machen könnt fasse ich ein paar Impressionen zusammen.
Die JAX ist eine Konferenz. In den Örtlichkeiten der Rheingoldhalle Mainz wurden etwas mehr als 10 Räume zur Verfügung die mal mehr und mal weniger gleichzeitig besetzt waren und in denen dann parallel Vorträge liefen.
Dazu gibt es den ganzen Tag kostenlos Essen, Trinken und Internet.
Die JAX begann am Dienstag mit einer Keynote. Alle Teilnehmer haben sich dazu im großen Konferenzsaal zusammengefunden.
Thema war die Übernahme von Sun durch Oracle. Da dies just 24h vorher bekannt wurde, bin ich sicher, dass eigentlich ein anderes Thema geplant war.
Die Qualität der Rede war aber wie ich auch bei allen anderen Vorträgen extrem gut.
Neben der Übernahme-Debatte haben zwei prominente Speaker ihre Themen "OpenJDK" und "Domain Specific Languages" vorgestellt.
Ab hier kann ich nur noch vor den Veranstaltungen berichten die ich persönlich besucht habe.
Dass ich wenig im JEE Bereich unterwegs bin war kein Problem. Ich habe viele Vorträge zu Architektur, Performance, Skalierbarkeit und meinen geliebten Tools Lucene und Hadoop gehört.
Die erste Veranstaltung "Hochperformante Websites erstellen" wurde von einem Tomcat Commiter gehalten.
Wusstet ihr eigentlich was der Unterschied zwischen einem Entwickler, einem Contributer und einem Commiter ist? Naja.. beim Vortrag ging es u.a. um die Minimierung von HTTP Requests durch Image-Maps, serverseitiges Caching und das korrekte Senden von Last-Modified Informationen.
Was ich vorher nicht beachtet hatte, war die [google]TCP Buffersize[/google] von 26K.. aber hier muss ich noch ein bisschen recherchieren.
Meine nächste Veranstaltung war das "Architektur Management". Der Vortrag ging nur eine Stunde - nicht genug um zu lernen gute Software zu schreiben
Schwerpunkt war die lose Kopplung von Softwarekomponenten. Vorteile sind offensichtlich das einfachere Deployment einzelner Komponenten und die leichtere Pfleg- + Wiederverwendbarkeit.
Es wurde die [google]ACD-Metrik[/google] (+normalisiert) vorgestellt. Ein wirklich sinnvoller Indikator zur Analyse der Softwarequalität.
Bei "Eine JVM für alle Fälle" wurde das DaVinci Projekt vorgestellt. Es hilft dabei andere Sprachen in der JVM zu entwickeln, die nicht Java sind. Sprachen wie JRuby und Groovy die genau das tun nutzen zur Zeit ReflectionClass und bauen sich oft einen eigenen ReflectionClass Cache. Das macht sie nicht 100% schnell.
Ich habe verpasst in welcher Version DaVinci kommen wird, aber es kommt
[google]DaVinci jvm[/google]
Vorab habe ich mich am meisten auf die Vorträge zu Lucene und Hadoop gefreut. Die Vorträge waren leider (wie angekündigt) etwas overflächlich. Aber sie haben meine Sicht auf die Produkte nochmal bestätigt. Nutch wurde diesen April released und bringt die Solr + Lucene Kombination mit, wie sie hier vorgestellt wurde.
[google]Hadoop[/google] für verteilte Systeme ist toll und wie das Google File System mit Map Reduce spezifiziert.
Kritisch sehe ich an, dass der NameServer, der die Jobs verteilt ein Single Point of Failure ist. Selbst der Backup Prozess der die Daten des NameServer kopiert kann nicht als Cold-Standby genutzt werden.
[google]OSGi[/google] klang für mich schon immer interessant. Cloud Computing ist nicht spezifiziert und ich hatte gehofft OSGi sei hierfür eine Lösung.
Stimmt aber nicht so ganz.
Am OSGi Day handelte der erste Vortrag von der Integration mit einem Webcontainer. Leider gibt es hier im sonst so spezifizierten JEE Umfeld keine Spezifikation und selbst die Experten hatten keine Best-Practice-Empfehlung außer auf den kürzlich verabschiedeten RFC zu warten.
Die Frage war: Webcontainer in OSGI-Framework oder OSGi-Framework in Webcontainer? Baut man eine neue Architektur sollte man den Webcontainer auf jeden Fall in das OSGi-Framework binden. Besteht ein WebContainer bereits ist die Migration ungewiss. Man könnte auch ein Zwei-Server-Modell fahren und einen Server für OSGi alles an einen Webcontainer durchrouten lassen.
In der Keynoute zu "Fette Maschinen brauchen schlanke Software" habe ich wirklich viel zu Multicore-Programmierung gelernt. Probleme zu Shared Memory wurden erläutert und die Sprache Erlang vorgestellt. Erlang war mir bis dahin ein Begriff doch die Actors hier waren mir ein neu. Anders als bei Java Threads die natürlich begrenzt sind (bei 4k wirds eng) kann Erlang viel mehr Actors erstellen, die durch einen Supervisor überwacht werden. Diese haben jeweils einen eigenen Heap.
Ein Problem bei anderen Programmiersprachen ist, das Funktionen nicht immer die selbe Rückgabe haben müssen: f3() != f3()
Mit Sprachen wie Erlang (in der ein beliebter XMPP Server geschrieben ist) geht das anders...
Kleines Praxisbeispiel: Was ist besser zu paralleliseren for(var i=0; i<x.length; i++) { ... oder das foreach-pendant?
Natürlich das foreach-da die Reihenfolge hier egal ist.
Andere Vorträge die ich besucht habe haben sich mit Cloud Computing und Build+Test Prozessen auseinander gesetzt.
Bei "Software as a Service" wurden force.com, Amazon EC2 und die Google App Engine vorgestellt. Als Beispiel wurde die Firma Haraeus genommen, die erst kürzlich die Summe aus 5 CRM Systemen weltweit zusammengefasst hat und nun auf dem Cloud Computing basierendem salesforce aufsetzt.
In dem Sinne.. wenn ihr Fragen habt: Immer zu!
Ich habe von Dienstag bis Donnerstag die Hauptkonferenz der JAX besucht. Damit ihr euch ein Bild davon machen könnt fasse ich ein paar Impressionen zusammen.
Die JAX ist eine Konferenz. In den Örtlichkeiten der Rheingoldhalle Mainz wurden etwas mehr als 10 Räume zur Verfügung die mal mehr und mal weniger gleichzeitig besetzt waren und in denen dann parallel Vorträge liefen.
Dazu gibt es den ganzen Tag kostenlos Essen, Trinken und Internet.
Die JAX begann am Dienstag mit einer Keynote. Alle Teilnehmer haben sich dazu im großen Konferenzsaal zusammengefunden.
Thema war die Übernahme von Sun durch Oracle. Da dies just 24h vorher bekannt wurde, bin ich sicher, dass eigentlich ein anderes Thema geplant war.
Die Qualität der Rede war aber wie ich auch bei allen anderen Vorträgen extrem gut.
Neben der Übernahme-Debatte haben zwei prominente Speaker ihre Themen "OpenJDK" und "Domain Specific Languages" vorgestellt.
Ab hier kann ich nur noch vor den Veranstaltungen berichten die ich persönlich besucht habe.
Dass ich wenig im JEE Bereich unterwegs bin war kein Problem. Ich habe viele Vorträge zu Architektur, Performance, Skalierbarkeit und meinen geliebten Tools Lucene und Hadoop gehört.
Die erste Veranstaltung "Hochperformante Websites erstellen" wurde von einem Tomcat Commiter gehalten.
Wusstet ihr eigentlich was der Unterschied zwischen einem Entwickler, einem Contributer und einem Commiter ist? Naja.. beim Vortrag ging es u.a. um die Minimierung von HTTP Requests durch Image-Maps, serverseitiges Caching und das korrekte Senden von Last-Modified Informationen.
Was ich vorher nicht beachtet hatte, war die [google]TCP Buffersize[/google] von 26K.. aber hier muss ich noch ein bisschen recherchieren.
Meine nächste Veranstaltung war das "Architektur Management". Der Vortrag ging nur eine Stunde - nicht genug um zu lernen gute Software zu schreiben
Schwerpunkt war die lose Kopplung von Softwarekomponenten. Vorteile sind offensichtlich das einfachere Deployment einzelner Komponenten und die leichtere Pfleg- + Wiederverwendbarkeit.Es wurde die [google]ACD-Metrik[/google] (+normalisiert) vorgestellt. Ein wirklich sinnvoller Indikator zur Analyse der Softwarequalität.
Bei "Eine JVM für alle Fälle" wurde das DaVinci Projekt vorgestellt. Es hilft dabei andere Sprachen in der JVM zu entwickeln, die nicht Java sind. Sprachen wie JRuby und Groovy die genau das tun nutzen zur Zeit ReflectionClass und bauen sich oft einen eigenen ReflectionClass Cache. Das macht sie nicht 100% schnell.
Ich habe verpasst in welcher Version DaVinci kommen wird, aber es kommt
[google]DaVinci jvm[/google]Vorab habe ich mich am meisten auf die Vorträge zu Lucene und Hadoop gefreut. Die Vorträge waren leider (wie angekündigt) etwas overflächlich. Aber sie haben meine Sicht auf die Produkte nochmal bestätigt. Nutch wurde diesen April released und bringt die Solr + Lucene Kombination mit, wie sie hier vorgestellt wurde.
[google]Hadoop[/google] für verteilte Systeme ist toll und wie das Google File System mit Map Reduce spezifiziert.
Kritisch sehe ich an, dass der NameServer, der die Jobs verteilt ein Single Point of Failure ist. Selbst der Backup Prozess der die Daten des NameServer kopiert kann nicht als Cold-Standby genutzt werden.
[google]OSGi[/google] klang für mich schon immer interessant. Cloud Computing ist nicht spezifiziert und ich hatte gehofft OSGi sei hierfür eine Lösung.
Stimmt aber nicht so ganz.
Am OSGi Day handelte der erste Vortrag von der Integration mit einem Webcontainer. Leider gibt es hier im sonst so spezifizierten JEE Umfeld keine Spezifikation und selbst die Experten hatten keine Best-Practice-Empfehlung außer auf den kürzlich verabschiedeten RFC zu warten.
Die Frage war: Webcontainer in OSGI-Framework oder OSGi-Framework in Webcontainer? Baut man eine neue Architektur sollte man den Webcontainer auf jeden Fall in das OSGi-Framework binden. Besteht ein WebContainer bereits ist die Migration ungewiss. Man könnte auch ein Zwei-Server-Modell fahren und einen Server für OSGi alles an einen Webcontainer durchrouten lassen.
In der Keynoute zu "Fette Maschinen brauchen schlanke Software" habe ich wirklich viel zu Multicore-Programmierung gelernt. Probleme zu Shared Memory wurden erläutert und die Sprache Erlang vorgestellt. Erlang war mir bis dahin ein Begriff doch die Actors hier waren mir ein neu. Anders als bei Java Threads die natürlich begrenzt sind (bei 4k wirds eng) kann Erlang viel mehr Actors erstellen, die durch einen Supervisor überwacht werden. Diese haben jeweils einen eigenen Heap.
Ein Problem bei anderen Programmiersprachen ist, das Funktionen nicht immer die selbe Rückgabe haben müssen: f3() != f3()
Mit Sprachen wie Erlang (in der ein beliebter XMPP Server geschrieben ist) geht das anders...
Kleines Praxisbeispiel: Was ist besser zu paralleliseren for(var i=0; i<x.length; i++) { ... oder das foreach-pendant?
Natürlich das foreach-da die Reihenfolge hier egal ist.
Andere Vorträge die ich besucht habe haben sich mit Cloud Computing und Build+Test Prozessen auseinander gesetzt.
Bei "Software as a Service" wurden force.com, Amazon EC2 und die Google App Engine vorgestellt. Als Beispiel wurde die Firma Haraeus genommen, die erst kürzlich die Summe aus 5 CRM Systemen weltweit zusammengefasst hat und nun auf dem Cloud Computing basierendem salesforce aufsetzt.
In dem Sinne.. wenn ihr Fragen habt: Immer zu!

