Einleitung
Ein Service, sei es physisch wie ein Versandservice oder von einem Software-Agenten implementiert, ist immer so konzipiert und verfeinert, dass er von so vielen Verbrauchern wie möglich wiederverwendet werden kann. Dies ist die Essenz der serviceorientierten Architektur: Senkung der Kosten, Risiken und Verzögerungen bei der Erstellung von Lösungen durch die Berücksichtigung und Implementierung von IT-Assets, so dass sie wiederverwendet werden können, oft in Situationen, die zur Entwurfszeit unbekannt sind. SOA-Governance unterscheidet sich nicht von Daten- und IT-Governance, die darauf abzielen, Informationsmodelle zu entwerfen oder Technologien auszuwählen, die über die Grenzen eines bestimmten Projekts hinaus wiederverwendet werden können. Dienstleistungen müssen so geregelt werden, dass sie wiederverwendbar werden: Alle vorhersehbaren Verbraucher müssen in der Lage sein, ihre Anforderungen auszudrücken, die anschließend priorisiert und schrittweise festgelegt werden, während ein Service Owner zugewiesen und ein Finanzierungsmodell definiert wird.
In einem früheren Artikel befasste sich Stefan Tilkov genauer mit den Rollen in der SOA-Governance (1). Mein Ziel ist es, Ihnen dabei zu helfen, eine Service-Governance-Organisation in Bezug auf Menschen, Prozesse und Technologien aufzubauen.
Service Governance Charta
Das Hauptziel der Service Governance ist es, die Vorteile einer serviceorientierten Architektur zu erreichen, indem die Schaffung wiederverwendbarer Dienste der Enterprise-Klasse gefördert wird. Als funktionsübergreifende Organisation stellt Service Governance die rechtzeitige Lösung von Problemen und Konflikten aufgrund der notwendigen Kompromisse sicher, die bei der Definition gemeinsamer Anforderungen getroffen werden.
Insbesondere ist die Service Governance Organization verpflichtet, klare Grenzen für das Eigentum an Diensten zu definieren und ein faires Finanzierungsmodell festzulegen.
Service Governance überwacht die Bereitstellung und Wiederverwendung von Diensten im gesamten Unternehmen. Ein hohes Maß an Service-Wiederverwendung, ein stetiger Fluss von Service-Bereitstellungen der Enterprise-Klasse sowie problemlose Service-Stilllegungen sind die Indikatoren für eine erfolgreiche Governance.
Service Governance sollte sich nicht mit traditioneller IT-Governance und Unternehmensarchitektur überschneiden; sie definieren die Standards von SOA-Technologien und die Roadmap, die zu einem höheren SOA-Reifegrad führt, während die Service Governance-Organisation mit der Weiterentwicklung der Servicelandschaft beauftragt ist.
Im Allgemeinen ist die Rolle der Service Governance passiv und verarbeitet Servicekandidaten, die durch bestimmte Projekte oder auf Geschäftsbereichsebene identifiziert wurden. Erst wenn eine Organisation einen hohen Reifegrad erreicht hat, kann Service Governance eine systematische Top-Down-Identifikation von Enterprise Services initiieren und deren Realisierung projektunabhängig ermöglichen.
In jedem Fall sollte die Governance-Organisation befugt sein, Unternehmensdienste unabhängig von den Budget- und Ressourcenbeschränkungen des Projekts zu erstellen, das den Dienstkandidaten anfänglich verbraucht. Der Grund dafür ist, dass die Wiederverwendbarkeit normalerweise mit einem größeren Umfang einhergeht, was zu einem höheren Preis führt.
Die Governance-Organisation ist der Verwalter von Servicedefinitionen, die als Unternehmensvermögen verwaltet werden sollen. Es ist auch für die Aufrechterhaltung der Rückverfolgbarkeit und Compliance mit anderen Unternehmensressourcen wie Geschäftsprozessmodellen und dem Referenzdatenmodell verantwortlich. Wir werden im letzten Abschnitt des Dokuments auf die Verbindungen zu einem Referenz- oder Unternehmensdatenmodell zurückkommen.
Personen
In dem zuvor erwähnten Artikel wurden Rollen1 beschrieben, die an Service-Governance-Aktivitäten aus Sicht der Service-Implementierung beteiligt sind. Wenn eine Organisation ihre serviceorientierte Architektur startet, reichen diese Rollen aus, um die Bereitstellung von Diensten der Enterprise-Klasse zu gewährleisten, insbesondere wenn sie zu einem SOA-Kompetenzzentrum gehören.
Rolle | Beschreibung |
Inhaber von Business Services |
|
Inhaber des technischen Dienstes |
|
SOA Plattform Architekt |
|
Dienstleistungen Entwickler |
|
Wenn eine Organisation reifer wird und die Anzahl der Servicekandidaten zunimmt, ist es hilfreich, einen Governance-Leiter einzuführen, der den Prozess und die Ressourcen besitzt, um sicherzustellen, dass Governance-Aktivitäten angemessen ausgeführt und Probleme rechtzeitig gelöst werden. Er sollte von einem funktionsübergreifenden Governance-Rat und einem Servicebibliothekar unterstützt werden.
Rolle | Beschreibung |
Leitung Governance |
|
Regierungsrat |
|
Service Bibliothekar |
|
Wir sehen drei wesentliche Reifegrade in Bezug auf die Service Governance-Organisation.
Reifegrad | Organisation |
Niederlassung |
|
Ausführung |
|
Optimiert |
|
Abbildung 1 zeigt einige der Interaktionen zwischen den an der Service Governance beteiligten Rollen.
Abbildung 1. Interaktionen zwischen verschiedenen Governance-Komponenten
Der Schlüssel zum Aufbau einer erfolgreichen Service-Governance-Organisation liegt wiederum darin, agil zu sein und gerade genug Ressourcen, Prozesse und Technologien zusammenzustellen, um Ihre Anforderungen zu erfüllen, aber nicht mehr. Eine große Service-Governance-Organisation ohne eine vernünftige Pipeline von Service-Kandidaten wird schnell Dampf verlieren und die Gelegenheit verpassen, angemessenes Feedback zu einigen Service-Kandidaten zu geben.
Sie möchten eine Organisation aufbauen, die die Wiederverwendung von Diensten fördert, nicht weniger und nicht mehr.
Prozess
Prozesse und Aktivitäten
Es gibt fünf Arten von Aktivitäten, die von der SOA-Governance-Organisation ausgeführt werden:
- Service Candidate Management
- Service Change Management
- Service Consumer Management
- Service Roadmap Management
- SOA Governance Richtlinienänderungen
Abbildung 2 zeigt einige der Aktivitäten, die während des Service Candidate Management-Prozesses ausgeführt werden können. Ein Projektteam kann einen Dienst identifizieren und einen Dienstvorschlag erstellen. Dieser Vorschlag wird dann genehmigt, mit Änderungen genehmigt oder abgelehnt (als Unternehmensdienst), wenn dieser Dienstkandidat möglicherweise nicht von anderen Teilen des Unternehmens wiederverwendet werden kann.
Sobald der Servicekandidat akzeptiert wurde, werden das Eigentums- und Finanzierungsmodell definiert und die SLAs und OLAs mit Hilfe des Serviceinhabers und potenzieller Verbraucher festgelegt.
Sobald der Dienst realisiert ist, werden seine Metadaten in der Registrierung und im Repository veröffentlicht. In großen Organisationen wird empfohlen, die im Aufbau befindlichen Dienste im Auge zu behalten, um gleichzeitige Dienstvorschläge zu vermeiden.
Change-Management-Aktivitäten sind häufig identisch mit Aktivitäten, die während einer Überprüfung von Servicekandidaten durchgeführt werden. Aktivitäten wie Service Ownership, Finanzierungsmodell oder SLAs/OLAs-Spezifikation können optional sein.
Ein kritischer Aspekt des Change Managements ist das effektive Management vorwärtskompatibler Services (2).
Dienstverbraucherverwaltungsaktivitäten werden hauptsächlich vom Dienstbibliothekar ausgeführt, es sei denn, es gibt Änderungen, die erforderlich sind, damit dieser neue Verbraucher den Dienst nutzen kann. Der Bibliothekar kann den Dienstnutzern helfen, den Zieldienst zu identifizieren und eine Kopie seiner Metadaten zu erhalten.
Service Roadmap Management-Aktivitäten werden bereitgestellt, wenn die Service Governance proaktiv handelt, um Services ohne spezifische Projektanforderungen zu identifizieren. Zu diesem Zeitpunkt sollte die Service-Governance über Budgets verfügen, um die Entwicklung dieser Dienste vor den Projekten in Auftrag zu geben, die sie verbrauchen werden. Dies ist ein kritischer Erfolgsfaktor der Governance, da das Design und die Implementierung wiederverwendbarer Dienste möglicherweise weit über den Umfang, die Mittel und den Zeitplan eines bestimmten Projekts hinausgehen. Governance-Aktivitäten selbst benötigen Zeit und können einem Servicekandidaten langwierige Upgrades empfehlen. Aus diesem Grund ist es so wichtig, dass die Governance-Organisation Zeitpläne und Phasen für spezifische Anforderungen zeitnah verwaltet und die Auswirkungen von Zeitplänen für die Lösungsbereitstellung minimiert.
Abbildung 2. Service Candidate Management Activities
Schließlich kann eine Governance-Organisation die IT-Governance beauftragen, ihre Betriebsrichtlinien zu definieren oder zu ändern.
Service-Metadaten
Der Service Candidate Proposal enthält eine Beschreibung der Serviceschnittstelle (nicht unbedingt in maschinenlesbarer Form) sowie alle funktionalen und nicht funktionalen Anforderungen an den Service, die beispielsweise zur Definition der SLAs und OLAs verwendet werden. Das CBDI Forum Service Architecture & Engineering meta model for SOA (3) bietet einen guten Überblick über die Informationen zu einem Service, die in den frühen Phasen des Lebenszyklus erfasst und im Laufe der Zeit verfeinert werden.
Das SAETM-Metamodell des CBDI-Forums enthält eine Dienstdefinition, einschließlich vorgeschlagener Vorgänge, Richtlinien und zugehöriger Dienste, sowie eine Dienstklassifizierung. Das CBDI-Forum empfiehlt außerdem, eine Service-Definition auf Geschäftsebene aufzunehmen, die sich auf Geschäftsprozesse, Geschäftsfunktionen und Geschäftsregeln bezieht… zur Service-Definition.
All diese Informationen könnten möglicherweise verwendet werden, wenn ein Verbraucher nach einem bestimmten Dienst sucht. Deshalb ist es wichtig, sie strukturiert zu erfassen, auch wenn maschinenlesbare Beschreibungsstandards wie WSDL diese Art von Informationen (noch) nicht unterstützen.
Das CBDI Forum SAE™ Metamodel bietet einen separaten Abschnitt für die Service-Spezifikation. Der interessante Aspekt dieses Teils des Metamodells besteht darin, dass die Informationstypen, die am Dienst beteiligt sind, als Operationsargumente verfolgt werden. Diese Funktion wird beispielsweise von WSDL nicht gut unterstützt, da sie nur die Darstellungen der Geschäftstypen definiert, die als Teile von Vorgangsaufrufen ausgetauscht werden, nicht jedoch die Geschäftstypen selbst.
Die Rückverfolgbarkeit von Informationstypen ist kritisch, da sie die Einführung einer betriebsspezifischen Semantik verhindert. Ein Nachrichtentyp sollte immer in enger Verbindung mit dem Referenzdatenmodell definiert werden. Tatsächlich sollten die SOA-Governance-Prozesse sicherstellen, dass im Nachrichtentyp im Vergleich zum Referenzdatenmodell keine zusätzliche Semantik definiert ist.
Das CBDI Forum SAE™ Metamodell verfolgt auch die Geschäftskomponenten, die in einer Serviceimplementierung verwendet werden.
Wiederverwendbarkeitsfaktoren für Dienste
Bei der Förderung der Spezifikation wiederverwendbarer Dienste sind drei wichtige Faktoren zu berücksichtigen. Zunächst muss eine Serviceschnittstelle in Bezug auf ihre aktuellen und potenziellen Verbraucher vollständig sein. Eine gute zu verfolgende Metrik ist die Anzahl der Schnittstellen- und Implementierungsänderungen, wenn neue Verbraucher an Bord kommen, sowohl für diejenigen, die vorwärtskompatibel sind, als auch für diejenigen, die dies nicht tun.
Zweitens müssen wir die entsprechenden Service- und Operations-Level-Agreements (SLAs und OLAs) berücksichtigen. Einige SLA funktionieren möglicherweise perfekt für einen Verbraucher und sind ein Show-Stopper für einen anderen. SLAs und OLAs können ebenfalls schwierig zu erreichen sein. Die SOA-Governance-Organisation sollte die Vorfälle verfolgen und die Anzahl der Änderungen an SLAs und OLAs, die sich aus diesen Vorfällen ergeben, sowie die Anzahl der Änderungen an der Serviceimplementierung überwachen, um ihre SLAs und OLAs effektiv zu erfüllen.
Schließlich sollte eine Service-Governance-Organisation versuchen, alle potenziellen Verbraucher eines Service-Kandidaten zu identifizieren und sie in den Prozess der Ratifizierung des Service-Interface-Vorschlags einzubeziehen. Eine gute Metrik, um dort zu verfolgen, ist die Anzahl der unerwarteten Kunden, die nach der Entwicklung eines Dienstes gefunden wurden. Diese Metrik sollte sorgfältig interpretiert werden, da dies bedeuten könnte, dass der Dienst gut gestaltet war und viele Verbraucher anzog, oder es könnte bedeuten, dass nicht genügend Zeit aufgewendet wurde, um die richtigen Verbraucher zu identifizieren, was zu vielen nachfolgenden Änderungen führte.
Service-Governance-Aktivitäten und -Rollen werden häufig von einer Governance-Lösung unterstützt, die auf einer Service-Registrierung und einem Repository basiert. Auch wenn es ziemlich trivial ist, dies zu sagen, ist es wichtig, immer daran zu denken, dass ein Vermögenswert nur so oft wiederverwendet werden kann, wie er gefunden werden kann. Eine Registrierung ist der Katalog oder Index, der als „System of Record“ für Dienste innerhalb einer SOA fungiert (4).
Eine SOA-Registrierung und ein Repository unterstützen normalerweise die folgenden Funktionen:
- Speichert Dienstmetadaten wie Beschreibungen (Nachrichtenformate und Vorgänge), Bindungen (Kommunikationsprotokolle), Endpunkte (die Netzwerkzugriffsressource, die den Dienst implementiert)
- Bietet einen Klassifizierungsmechanismus zur Kategorisierung und Organisation von Diensten
- Ermöglicht es Benutzern, neue Dienste (wie sie identifiziert, realisiert und bereitgestellt werden) in der Registrierung zu veröffentlichen und nach vorhandenen oder geplanten Diensten zu suchen
- Benachrichtigen Sie die von geplanten Änderungen
- Verwaltung von SLA- und OLA-Berichten sowie statistiken
- Sichere Verwaltung von Governance-Prozessen und -Ergebnissen
- Bereitstellung von Audit-Funktionen zur Nachverfolgung von Änderungen und Autorisierungen für Asset-Beschreibungen
Governance-Prozesse sind geografisch verteilt und kollaborativ. Das Management dieser Prozesse ist entscheidend, um verschiedene Parteien für einen Konsens über die Service-Definition und Realisierung zu bringen.
Da die Registrierung und das Repository das Aufzeichnungssystem für Dienstinformationen sowohl zur Entwurfszeit als auch zur Laufzeit sind, ist die Sicherheit des „Dienstdatensatzes“ von entscheidender Bedeutung, um beispielsweise das Ersetzen von Endpunkten zu vermeiden.
Beziehung zu anderen Governance-Aktivitäten
Service Governance ist eine neue Art von Governance als Teil der umfassenderen IT-Governance-Aktivitäten, die von Unternehmensarchitekturgruppen geleitet werden. Die IT-Governance sollte die Kontrolle über die Governance der SOA-Plattform selbst behalten, während die Service-Governance ihre Aktivitäten auf die Gestaltung von Services für die Wiederverwendung auf Unternehmens-, Service-Realisations- und Lösungsbereitstellungsebene konzentrieren sollte (Abbildung 3). Auf Unternehmensebene sollte die Service Governance eng mit der IT-Governance zusammenarbeiten, um das Geschäftsprozessmodell des Unternehmens zu nutzen, um Servicekandidaten basierend auf einer Top-Down-Analyse zu identifizieren und eine Roadmap für die Bereitstellung dieser Services zu erstellen. Wie wir bereits im Abschnitt Prozess gesehen haben, finden auf der Service-Ebene die meisten Aktivitäten der SOA-Governance statt. Alle diese Aktivitäten werden von einer Registrierung und einem Repository unterstützt.
Auf Lösungsebene sollte die Service-Governance-Organisation den Grad der Compliance in Bezug auf SOA-Infrastruktur- und Service-Richtlinien bewerten und steuern.
Service Governance ist über die Verwendung des Unternehmensreferenzdatenmodells eng mit Data Governance verbunden. Das Service Governance-Team sollte die Verwendung der Semantik des Referenzdatenmodells für den Entwurf von Vorgangsnachrichtentypen erzwingen.
Hier geht es nicht darum, ein „Kanonisches Informationsmodell“ zu erstellen. In einer serviceorientierten Architektur wäre es naiv zu glauben, dass die Verbraucher immer in der Lage sein werden, den Standpunkt des Anbieters einzunehmen, oder dass sowohl der Anbieter als auch der Verbraucher immer denselben Standpunkt einnehmen können. Selbst wenn dies heute der Fall wäre, sind Unternehmen, Verbraucher und Anbieter möglicherweise nicht in der Lage, sich gleichzeitig zu einer neueren Version der Schnittstelle zu entwickeln (sei es vorwärts- oder rückwärtskompatibel).
Abbildung 3. Beziehung zwischen SOA-Governance und anderen Governance-Aktivitäten
Diese divergierende Entwicklung wird häufig mithilfe eines Mediators und insbesondere von Nachrichtentransformationen gehandhabt. Obwohl Mediation in der Webdienstarchitektur des W3C nicht explizit enthalten ist (5), haben SOA-Praktiker sie seit langem systematisch eingesetzt, um ein höheres Maß an loser Kopplung zu erreichen und autonome Entwicklungen zwischen den Verbrauchern und Anbietern zu ermöglichen. Diese Transformationen sind unvermeidlich und diese Fähigkeit sollte in Ihre SOA-Infrastruktur integriert werden. Mediation benötigt übrigens kein „Gemeinsames Informationsmodell“. Wenn Sie ein solches „gemeinsames Informationsmodell“ unabhängig von der Provider- und Consumer-Schnittstelle verwenden und dennoch eine lose Kopplung erreichen möchten, entstehen Ihnen die Kosten für zwei Transformationen, ganz zu schweigen davon, dass Sie Ihr Nachrichtenformat weiterhin in einen Datensatz umwandeln müssen verbrauchbar durch die Implementierung von Provider und Consumer.
Der erste Schritt in Richtung überschaubarer Transformationen besteht darin, Verbraucher- und Anbieterschnittstellen aus dem Referenzdatenmodell abzuleiten. Im Referenzdatenmodell ist die Datenstruktur weniger wichtig als die Normalisierung der Semantik. Diese Semantik wird von Data Governance mit großer Präzision verwaltet. In der Regel stellt das Referenzdatenmodell die Rückverfolgbarkeit auf physische Artefakte wie Datenbankschemata und COBOL-Kopierbücher her. Diese Rückverfolgbarkeit kann sich während der Implementierung des Dienstes als sehr nützlich erweisen, während die Verwendung normalisierter Semantik dazu beiträgt, die Entwicklung von Transformationskarten zwischen Verbrauchern und Anbietern zu vereinfachen.
Fazit
Service Governance ist ein wesentlicher Aspekt einer erfolgreichen serviceorientierten Architektur. Ihre Etablierung muss frühzeitig in den Anfangsphasen einer SOA-Initiative geplant und erprobt werden. Eine umfassende Governance-Organisation, die von einem strengen Prozess angetrieben wird, sollte jedoch nur gestartet werden, wenn die Service-Pipeline groß genug ist, um das Team motiviert und kompetent zu halten. Wenn Governance-Aktivitäten zeitlich zu weit entfernt sind, verliert das Team möglicherweise das Interesse und das kritische Wissen, um seine Aktivitäten ordnungsgemäß auszuführen. Das Registry & -Repository ist eine Schlüsselkomponente für eine erfolgreiche Governance, da es den „Service Record“ verwaltet. Das ultimative Ziel der Service Governance ist es, die Spezifikation, Realisierung und den Betrieb wiederverwendbarer IT-Assets zu ermöglichen. Mit der Zeit wird erwartet, dass sich die Service Governance zu einer viel proaktiveren Beauftragung der Implementierung geschäftskritischer Dienste entwickeln wird.