Wer beim Lesen meines letzten Posts das Gefühl hatte, das endgültige Fazit würde fehlen, befindet sich eigentlich auf der richtigen Spur. Es gab einige Dinge, die mit höherer Priorität fertig gestellt werden mussten und in dieser Woche befinde ich mich auf der w-jax in München. Daher wird es noch ein wenig dauern, bis ich meine Gedanken zu Ende denken und niederschreiben kann.
Ich möchte aber bei dieser Gelegenheit ein paar meiner Eindrücke zusammenfassen, die ich bislang auf der w-jax habe sammeln können.
Die interessanten Diskussionen und Gespräche, die ich mitbekommen habe, beschäftigen sich in der Regel mit der Frage, wie große, performante Systeme umgesetzt werden können. Dabei geht es um ganz grundlegenden Themen:
- Mit welchen Werkzeugen und Tools baue ich Anwendungen? Wie gelingt es, diese Anwendungen skalierbar aufzusetzen?
- Wie exportiere ich Services in einer Weise, dass sie in einer inhomogenen Umgebung nutzen kann? Welche Auswirkungen werden künftige HTTP Spezifikationen auf Implementierung und Nutzung der Service Endpunkte haben?
- Wie setze ich die Infrastruktur auf? Benötige ich alternative Datenbanken (NoSQL) oder nutze ich die bewährten relationalen Systeme? Wo müssen Caches eingesetzt werden, um den Zugriff über die unterschiedlichen Systeme zu beschleunigen?
- Wie installiere ich die Systeme? Wo betreibe ich sie (in der Cloud)? Wie gelange ich an aussagekräftige Betriebsinformationen, um den jeweiligen Zustand einschätzen zu können?
Obwohl die w-jax eigentlich eine Java Konferenz ist und der Schwerpunkt auch sicherlich immer noch auf dieser Implementierungssprache liegt, wird bei der Betrachtung der Gesamtarchitektur aber kein Betriebssystem und keine Implementierungssprache ausgespart. Insgesamt wird meiner Meinung nach von den Teilnehmern und Vortragenden ein rundes Bild über alle Aspekte der Architektur vermittelt.
Mit wem auch immer ich habe bislang sprechen können, alle propagieren das jeweilige Problem immer das am Besten passende Werkzeug zu nutzen. Daher wird hier auch über Groovy, Ruby und Clojure, Scala und Haskell, Erlang, C, C++ und C# diskutiert.
Es ist daher spannend zu beobachten, dass trotz der erkennbaren Defizite von Java als Implementierungssprache, diese Technologie und das zugrunde liegende Ökosystem offenbar den Boden für die Realisierung komplexer, anspruchsvoller und heterogener Anwendungssysteme bereitet hat. Wie es auf anderen Konferenzen aussieht, kann ich nicht einschätzen. Die Java-Entwickler sind allerdings anscheinend gerüstet auch große Systeme zu erstellen.