| SOA - Serviceorientierte Architektur |
SOA ist ein Paradigma (Denkmuster) für eine moderne Architektur verteilter Systeme.
Im Gegensatz zu früheren Ansätzen wird dabei akzeptiert, dass verteilte Systeme hochgradig heterogen sind (und auch immer bleiben werden) und unterschiedliche "Eigentümer" haben (was zu unterschiedliche Interessen, Zeitplänen und Prioritäten führt). Durch Konzepte wie die Konzentration auf fachliche Funktionen (Services) und loose Kopplung werden dennoch die richtigen Weichen gestellt, um den heutigen Ansprüchen großer Systeme in Bezug auf Flexibilität, Skalierbarkeit und Fehlertoleranz gerecht zu werden.
Derzeit gibt es zu SOA einen bemerkenswert großen Hype, der allerdings dazu führt, dass über SOA auch bemerkenswert viel Unsinn verbreitet wird. Man hat mitunter den Eindruck, als sei SOA eine Technologie, mit der die Lösung aller Probleme großer verteilter Systeme nun endlich zum Kinderspiel wird. Doch so einfach ist es nicht. Oder, um es mit den Worten von Grady Booch zu formulieren:
My take on the whole SOA scene is a bit edgier than most that I've seen. Too much of the press about SOA makes it look like it's the best thing since punched cards. SOA will apparently not only transform your organization and make you more agile and innovative, but your teenagers will start talking to you and you'll become a better lover. ... Furthermore, if you follow many of these pitches, it appears that you can do so with hardly any pain: just scrape your existing assets, plant services here, there, and younder, wire them together and suddenly you'll be virtualized, automatized, and servicized.
What rubbish.
SOA ist auf jeden Fall ein Ansatz, der, wenn er passt und wenn alle Hausaufgaben gemacht werden, dazu dient, verteilte Systeme leichter und flexibler zu integrieren. Doch bis dahin ist es ein weiter Weg, denn SOA ist mehr als nur Infrastruktur. Genauso wie man nur durch Einsatz objektorientierter Technologie noch keine großen Systeme bauen kann, benötigt man auch für die erfolgreiche Umsetzung von Services Klassifizierungen, Schichten (Layers), Muster (Patterns) und mehr. Kurz: Man braucht eine konkrete fachliche Architektur, zu der auch das große Thema Service-Design gehört. Dabei spielt es eine untergeordnete Rolle, ob eine SOA-Landschaft mit oder ohne Web-Services als Standard-Technologie realisiert wird.
Zusätzlich wird oft übersehen, dass es auch notwendig ist, die zu SOA gehörenden Prozesse aufzusetzen. Die Kunst besteht dabei u.a. darin, zentral Mechanismen aufzusetzen, die dazu führen, dass Fachlichkeit dezentral entwickelt werden kann. Nur so lassen sich Flaschenhälse vermeiden, die dazu führen, dass das Konzept einer SOA-Landschaft nicht skaliert.
Für alle, die mehr über SOA als Konzept wissen wollen, biete ich ein 1- bis 2-Tages-Training SOA - Vom Anspruch zur Wirklichkeit an, das von unabhängiger Seite konzeptionell in das Thema SOA einführt (auch wenn Web-Services dabei eine Rolle spielen, handelt es sich um kein Web-Services-Seminar).
Da ich als Teamleiter für die Umsetzung einer in Produktion befindlichen SOA eines großen Mobilfunkunternehmens tätig bin, lernt man dabei mehr als die üblichen Visionen, Konzepte und Phrasen. An konkreten Beispielen wird der Unterschied zwischen Theorie und Praxis vermittelt. Diese Erfahrung beruht u.a. auf einer in produktivem Einsatz befindlichen internationalen, heterogenen SOA-Landschaft mit mehr als 10 Millionen Servcice-Aufrufen pro Tag.
Selbstverständlich ist es auch möglich, mich als Berater oder Reviewer zu engagieren, um bei der Konzeption und Umsetzung einer eigenen SOA-Kandschaft von meinen praktischen Erfahrungen zu profitieren.
Als erster Einstieg hier ein Auszug der Folien einer OMG-Keynote, die ich Anfang 2006 zu dem Thema auf einer OMG-Roadshow mehrfach gehalten habe:
Nachfolgend noch ein paar weitere erste Referenzen, die man kennen sollte.
Kontakt/Contact: solutions@josuttis.de