Neuer TechBlog

Der erste Artikel unseres neuen TechBlogs wird ein klassisches Buch der Softwareentwicklung im Enterprise-Bereich vorstellen und einen Ausblick geben, wohin sich dieser Blog entwickeln soll. Zu Beginn möchte ich mich als Autor kurz vorstellen. Mein Name ist Andreas Hubmer und ich arbeite bei Cenarion als Software Architect.

Wir bei Cenarion entwickeln hauptsächlich Enterprise-Software. Aber was ist eigentlich Enterprise-Software? Martin Fowler beschreibt in seinem Buch Patterns of Enterprise Application Architecture mehrere Eigenschaften, die eine Enterprise-Application typischerweise aufweist:

  • Komplexe Daten
  • Gleichzeitiger Zugriff
  • Business Logic
  • Viele verschiedene UI-Screens
  • Integration mit anderen Applikationen

Die Herausforderung bei der Entwicklung von Enterprise-Software besteht darin, diese Anforderungen so umzusetzen, dass der Aufwand für Wartung und Weiterentwicklung niedrig gehalten werden kann. Die von Fowler beschriebenen Patterns helfen einem dabei, die immer wieder ähnlich auftretenden Probleme zu meistern. Eine wichtige Eigenschaft von Patterns ist außerdem, dass sie technischen Lösungswegen einen Namen geben, sodass wir Entwickler uns leicht darüber austauschen können. Obwohl die aktuelle Auflage schon 2003 erschien, ist das Buch aufgrund seiner abstrakten Herangehensweise immer noch relevant und für mich ein Standardwerk.

Am meisten hat sich seit der Erscheinung im Bereich OR-Mapping getan und man sieht daran, wie viel Arbeit aktuelle Frameworks abnehmen. Begriffe wie Active Record oder Repository sollten aber auch heutzutage bekannt sein. Immer noch aktuell sind die Problemfelder Concurrency und Session State. Bei gleichzeitigen Zugriffen kann es zu Lost Updates und zu Inconsistent Reads kommen, die mit Hilfe von Pessimistic Locking oder Optimistic Locking behandelt werden können. Session State kann direkt am Client gehalten werden, am Server oder in der Datenbank. Die Darstellung von Daten im UI sollte möglichst gut von der Applikationslogik getrennt sein. Patterns wie zum Beispiel Model-View-Controller oder ein Front-Controller helfen dabei.

Fowler erklärt die genannten und viele weitere Patterns und erläutert die Vor- und Nachteile der verschiedenen Lösungsansätze. Damit hilft er einem für sich selbst die passenden auszuwählen.

Die Artikel dieses TechBlogs werden sich zwischen architektonischen Themen und Implementierungsdetails bewegen. Bei Cenarion entwickeln wir hauptsächlich mit Spring, GWT, Java EE und JSPs. Diese Technologien werden daher auch den Schwerpunkt der Artikel im Blog bilden. Mit unserem RSS-Feed, auf TwitterFacebook und Google Plus kannst du dich auf dem Laufenden halten.

Was hältst du von Fowlers Enterprise-Patterns? Was sind deine Standardwerke in der Software-Entwicklung? Ich freue mich, wenn du als Leser uns deine Meinung mitteilst.

Andreas Hubmer (Software Architect)