SOA – kurz und knapp

Auf einem anderen Track der ice:2008 nahm ich an dem Vortrag “GoWeb” von Michael Willers teil. Trotz anderer Erwartungen an den dieses Referat war ich begeistert. Michael wusste es auch mal ohne aufwendige PowerPoint Präsentation das Publikum zu fesseln und den Inhalt zu vermitteln.

Aber worum ging es nun im Vortrag? – SOA, nicht nur – eher um den Weitblick bei der Webentwicklung…

Jeder (Webentwickler) kennt das Problem…bei Webprojekten kann man nicht abschätzen wann wieviele User auf den Service zugreifen und wie sich das Projekt entwickelt. Vielleicht hat man irendwann statt 1.000 User plötzlich 1.000.000 User. Aber wie hält das meine Anwendung aus? Die Antwort ist Skalierbarkeit. Man muss von Anfang an seine Applikation skalierbar aufbauen.

und wie mache ich das?

Da kam das Schlagwort SOA (Serviceorientierte Architektur), was für alle wie ein Monster klingt hat Michael sehr prägnant dargestellt.

  1. Ich muss meine Prozesse soweit unterteilen, bis sich klare Aufgaben gebildet haben.
  2. Für diese entstandenen Prozesse werden Schnittstellen definiert. Dadurch können Veränderungen und Erweiterungen leichter implementiert werden.
  3. Für diese Prozesse werden jetzt noch Interaktionen definiert (Workflow). Am besten modelliert man dazu den Datenfluß der Applikation und daraus werden dann die Interaktionen ersichtlich.

Das wichtigste ist, dass man nur wenige bis gar keine Relationen auf der Datenbankebene implementiert und die Datenbank nur als “dummen” Datenspeicher verwendet. Dadurch ist es möglich an die Services die Datenbanken zu koppeln und somit beliebig zu skalieren. Das erhöht in der Anfangsphase zwar den Programmieraufwand, da man sich um alle Verknüpfungen selber kümmern muss, aber im Endeffekt spart man sich viel Entwicklungsarbeit (und dadurch auch Zeit und Geld), wenn man dies konsequent durchzieht.

Da ich auf diesem Gebiet kein Experte bin, hat dieser Artikel keinen Anspruch auf Vollständigkeit des gesamten Themengebietes.

Schreibe einen Kommentar

Deine E-Mail wird niemals veröffentlicht. Erforderliche Felder sind als * markiert.

*
*