-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich im Allgemeinen auf ein Verfahren
und System für
das automatische Erzeugen von Dienstschnittstellen für eine dienstorientierte
Architektur (Service-Oriented Architecture, SOA) und im Besonderen,
ohne jedoch darauf beschränkt
zu sein, auf ein Verfahren und System für das automatische Erzeugen
von Dienstschnittstellen für
Webdienste in einer SOA.
-
Hintergrund
-
Der
Vorgang, mit dem die Funktionsabläufe unterschiedlicher Informationsverarbeitungssysteme
und Softwareanwendungen miteinander verflochten werden, um so einen
Geschäftsprozess
zu unterstützen,
stellte in der Vergangenheit eine komplexe, kosten- und zeitaufwändige Unternehmung
dar. Aufgrund mangelnder Standards bei Programmiersprachen, Betriebssystemen,
Anwendungsschnittstellen und Netzwerkprotokollen erforderte die
Integration der Funktionen unterschiedlicher Systeme und Softwareanwendungen
den Einsatz umfangreicher Systemintegrator-Ressourcen, unterstützt durch
komplexe Technologien. Die daraus entstehenden Systeme und Anwendungen
für das
Ausführen
von Geschäftsprozessen
umfassen eng miteinander verbundene Anwendungen und Teilsysteme.
Dabei besteht ein Nachteil darin, dass eine Änderung an einem beliebigen
Teilsystem bei einer Vielfalt von ihr abhängigen Anwendungen zu einem
Bruch führen
kann. Dieser Aspekt des Auseinanderbrechens derartiger Systeme ist
teilweise verantwortlich für
die hohen Systemwartungskosten sowie für die Beschränkungen,
die derartige Systeme für
die Entwicklung des eBusiness sowohl innerhalb eines Unternehmens
als auch im Zusammenspiel mit anderen Einheiten mit sich bringen.
-
Bei
einer dienstorientierten Architektur (SOA) handelt es sich um eine
konzeptionelle Architekt für
die eBusiness-Realisierung.
Sie wurde speziell mit Blick auf die oben erwähnten Probleme entwickelt.
Dabei besteht die grundlegende Idee darin, eine Anwendung innerhalb
einer hinreichend definierten Dienstschnittstelle zu kapseln, um
so aus einer aus einem Block bestehenden Anwendung einen „Dienst" zu machen. Dieser
Kapselungsprozess erzeugt eine abstrakte Form der Anwendung, hinter
der sich die Programmiersprache, das Betriebssystem, das Netzwerkprotokoll
und/oder die Datenbank verbirgt, welche die Anwendung verwendet.
Somit ermöglicht
die Dienstschnittstelle, d. h. die Beschreibung des Dienstes, die
nahtlose Integration mehrerer Dienste. Auch Sicherheits-, Middleware-,
und Kommunikationstechnologien können
gekapselt werden, um als Umgebungsbedingungen an einem Dienst beteiligt
zu sein. Durch die Kapselung können
Dienste virtuelle Unternehmen in die Lage versetzen, ihre heterogenen
Systeme beispielsweise unter Verwendung des HTTP-Protokolls (Hypertext
Transfer Protocol) miteinander zu verknüpfen und an einzelnen Verwaltungsdomänen teilzunehmen.
-
Innerhalb
eines Zeitraums, der ungefähr
die letzten zehn Jahre umfasst, wurden drei größere Versuche zur Bereitstellung
von SOAs unternommen. Dabei unterstützten sowohl CORBA als auch J2EE
und DCOM jeweils eigene Konzepte einer dienstorientierten Architektur.
CORBA (Common Object Request Broker Architecture) wurde unter Federführung der
Object Management Group (OMG) entwickelt. Dabei handelt es sich
um Middleware. Ein auf CORBA beruhendes Programm eines beliebigen
Anbieters auf nahezu jedem Computer, mit nahezu jedem Betriebssystem
und Netzwerk sowie mit nahezu jeder Programmsprache kann mit einem
auf CORBA beruhenden Programm desselben oder eines anderen Anbieters
auf nahezu jedem Computer, mit nahezu jedem Betriebssystem und Netzwerk
sowie mit nahezu jeder Programmsprache zusammenwirken. J2EE (Java
2-Plattform, Enterprise Edition) definiert den Standard für die Entwicklung
von Unternehmensanwendungen auf mehreren Ebenen. J2EE vereinfacht
Unternehmensanwendungen, indem es sie auf standardisierten, modularen
Komponenten aufbaut, indem es diesen Komponenten einen vollständigen Satz
von Diensten bereitstellt und indem es viele Einzelheiten des Anwendungsverhaltens
automatisch und ohne komplexe Programmierung steuert. DCOM (Distributed
Component Object Model) ist eine Erweiterung der Schnittstellendefinition
Component Object Model (COM). Es wurde 1996 eingeführt und
für die
netzwerkübergreifende
Kommunikation geschaffen, wobei z. B. Internetprotokolle wie HTTP
zum Einsatz kommen.
-
Damit
sich eine SOA am Markt durchsetzen kann, muss die für die Kapselung
der Anwendungen verwendete Sprache allgemein verbreitet sein. DCOM
verwendet die Microsoft-IDL (Interface Definition Language, Schnittstellenbeschreibungssprache),
CORBA verwendet die CORBA-IDL und J2EE verwendet Java. Keine dieser
Sprachen kann als allgemein verbreitet betrachtet werden.
-
Ein
weiteres Problem besteht darin, dass die Dienstschnittstelle flexibel
sein muss. Eine Dienstschnittstelle muss sich im Laufe der Zeit
entwickeln können
und in der Lage sein, auf unterschiedliche Nachrichtentypen zu reagieren.
Dies ist notwendig, da sich Geschäfts- und Softwareumgebungen
im Laufe der Zeit ändern. Bei
J2EE und CORBA ist die Dienstschnittstelle eine starre Einheit und
nicht sehr änderungsfreundlich.
DCOM unterstützt
in gewissem Umfang Änderungen
der Dienstschnittstelle, wobei dies allerdings so kompliziert ist, dass
sich diese Möglichkeit
nur äußerst schwer
nutzen lässt.
Aufgrund dieser mangelnden Entwicklung flexibler Dienstschnittstellen
ließen
sich SOAs bisher nur schwer verwenden und verwalten.
-
All
diese bisherigen SOA-Ansätze
haben zwei kennzeichnende Konzepte gemeinsam: Erstens das Konzept,
nach dem eine Dienstschnittstelle für eine bestimmte Software erzeugt
wird, und zweitens das Konzept, nach dem eine bestimmte Programmierlogik
erzeugt wird, um diese Dienstschnittstelle zu realisieren. Wer daher
J2EE, DCOM oder CORBA verwenden möchte, muss sich zunächst mit
deren Programmiermodellen und ihrem äußerst umfangreichen und komplexen
API-Satz vertraut machen.
-
Vor
diesem Hintergrund wird deutlich, dass sich für eine erfolgreiche SOA-Realisierung
die Webdiensttechnologie als beste Verbindungstechnologie für SOAs empfiehlt.
Sie beruht auf einem Kernsatz von Technologien, welche die Arbeit
von Forschungsmitarbeitern und Beratern aus einer Vielzahl von Unternehmen
und Branchenorganisationen widerspiegeln. Zu diesen Technologien
gehören:
XML
(Extensible Markup-up Language): Hierbei handelt es sich um vom
eine World Wide Web Consortium (W3C) herausgegebene textgestützte Auszeichnungssprache.
Im Gegensatz zu HTML, das für
die Darstellungs- und Datenbeschreibung Auszeichnungen verwendet,
dient XML ausschließlich
zur Definition übertragbarer
strukturierter Daten. Es kann als Sprache für die Definition von datenbeschreibenden
Sprachen wie beispielsweise Auszeichnungsgrammatiken oder -vokabularen
sowie Datenaustauschformaten und Nachrichtenprotokollen verwendet
werden.
-
SOAP
(Simple Object Access Protocol): Hierbei handelt es sich um ein
leichgewichtiges Protokoll für den
Austausch von Daten in einer dezentralen, verteilten Umgebung. SOAP
definiert ein Nachrichtenprotokoll zwischen anfordernden und bereitstellenden
Objekten, sodass die anfordernden Objekte einen entfernen Methodenaufruf
an die bereitstellenden Objekte richten können, wie dies von der objektorientierten
Programmierung bekannt ist. Die SOAP-Spezifikation wurde von Microsoft,
IBM, Lotus, UserLand und DevelopMentor gemeinsam entwickelt. SOAP
bildet mittlerweile bei den SOA-Realisierungen
der meisten Hersteller die Grundlage für den Datenaustausch zwischen
verteilten Objekten. Obwohl SOA kein Nachrichtenprotokoll definiert, steht
die Abkürzung
SOAP aufgrund gebräuchlichen
Verwendung des Protokolls bei SOA-Realisierungen seit kurzem für „Service-Oriented
Architecture Protocol".
Ein Aspekt von SOAP besteht darin, dass es anbieterneutral ist und
so Realisierungen erlaubt, die hinsichtlich Plattform, Betriebssystem,
Objektmodell und Programmiersprache unabhängig sind. Darüber hinaus
sind die Übertragungs-
und Sprachbindung sowie Einstellungen für die Datencodierung abhängig von
der jeweiligen Realisierung.
-
WSDL
(Web Services Description Language): Hierbei handelt es sich um
ein XML-Vokabular, das eine standardisierte Vorgehensweise für die Beschreibung
von Dienst-IDLs vorgibt. WSDL ist das Ergebnis einer Verbindung
der von IBM entwickelten Network Accessible Service Specification
Language (NASSL) und der von Microsoft entwickelten Specification
and Description Language (SDL). Es gibt Dienstanbietern eine einfache
Möglichkeit
zur Hand, das Format von Anforderungen und Antwortnachrichten für entfernte
Methodenaufrufe (Remote Method Invocations, RMIs) zu beschreiben.
WSDL behandelt das Thema der Dienst-IDLs unabhängig von der darunter liegenden
Protokoll- und Codierungsanforderungen. Allgemein gesehen stellt
WSDL eine abstrakte Sprache bereit, mit der sich die veröffentlichten
Operationen eines Dienstes mit ihren jeweiligen Parametern und Datentypen
definieren lassen. Die Sprache berücksichtigt außerdem die
Definition der Speicherort- und Bindungseinzelheiten des Dienstes.
-
UDDI
(Universal Description, Discovery and Integration): Die UDDI-Spezifikation
stellt einen gemeinsamen Satz von SOAP-APIs bereit, welche die Realisierung
eines Dienstevermittlers ermöglichen.
Die UDDI-Spezifikation wurde von IBM, Microsoft und Ariba entwickelt,
um das Erzeugen, Beschreiben, Auffinden und Einbinden von webgestützten Diensten
zu vereinfachen. Hinter der UDDI. org, einem Zusammenschluss von über 70 branchenführenden
Unternehmen, steht der Wunsch, einen Standard für die unternehmensübergreifende
Zusammenwirken zu definieren, wobei sich dies auch mit Blick auf
Anwendungen für
das Zusammenspiel von Unternehmen und Verbrauchern umsetzen ließe.
-
Selbstverständlich sind
diese Technologien weder als erschöpfende noch als ausschließliche Aufstellung
der Technologien für
die Realisierung von Webdiensten in SOAs zu verstehen. Von diesen
Technologien steht XML an erster Stelle, da allgemein anerkannt
ist, dass ein Webdienst einen wie auch immer gearteten Beschreibungsmechanismus
auf XML-Grundlage benötigt,
mit dem sich seine Form und Funktion beschreiben lassen.
-
Eine
SOA bildet eine hervorragende Grundlage für die Datenverarbeitung innerhalb
des Unternehmens und über
die Unternehmensgrenzen hinweg. Dies ermöglicht die schnelle und wirtschaftliche
Realisierung von Anwendungen, die Geschäftsprozesse beinhalten, sowie
ein geringeres Maß an
menschlichen Eingriffen, wenn es darum geht, die Umsetzung derartiger
Dienste zu verwalten. Viele Umsetzungen umfassen Dienstaufrufe zwischen
Maschinen, die keinerlei menschliches Eingreifen erfordern.
-
Die
zunehmende Akzeptanz von SOAs durch Unternehmen hängt mit
den damit zu erzielenden Vorteilen zusammen. Durch die Realisierung
von Geschäftsprozessen
anhand von SOAs lässt
sich die Zusammenarbeit mit Geschäftspartnern verbessern, um
so im Vergleich zu den Wettbewerbern einen besseren Knotenpunkt
für die
Zusammenarbeit und damit bessere Voraussetzungen für den Markterfolg
zu schaffen. Derartige Knotenpunkte für die Zusammenarbeit können außerdem die
Zeitdauer bis zur Markteinführung
verbessern, indem beispielsweise die Lieferkette verkürzt wird.
Als Ergebnis konzentrieren sich viele Unternehmen heutzutage auf
die Entwicklung von externen anstelle von internen Diensten, da
sich externe Dienste in stärkerem
Maße auf
ihre Erschließung
von Geschäftschancen
und ihre Wettbewerbsfähigkeit
auswirken können.
-
Die
Qualität
webgestützter
Dienste ist von vielen Faktoren wie Sicherheit, Dienstveröffentlichung,
Verantwortlichkeit, Nachvollziehbarkeit, Leistungsfähigkeit
und der Definition der Dienstschnittstelle abhängig.
-
Das
Dokument
US-A-2003/0110242 behandelt
die dynamische Konfiguration von Webdienstbehältern auf Grundlage einer derzeitigen
Nutzung von Diensten.
-
Die
vorliegende Erfindung bezieht sich auf die Entwicklung von Dienstschnittstellen.
Um eine gute Dienstschnittstelle zu entwerfen, muss ein Dienstentwickler
besonderes Augenmerk auf die Körnigkeit
des definierten Dienstes legen. So sollte ein Dienst aus Gründen der
Leistungsfähigkeit
und Kapselung grobkörnig sein,
während
er gleichzeitig jedoch feinkörnig
sein muss, um eine größtmögliche Flexibilität zu ermöglichen. Wenn
der Dienst zu grobkörnig
ist, werden mehr Daten über
das Netzwerk gesendet, als der „Client" benötigt, während der „Client" bei einem zu feinkörnigen Dienst
wiederum mehrmals auf das Netzwerk zugreifen muss, um alle erforderlichen
Daten zu erhalten.
-
Derzeit
erfolgt die Entwicklung von Dienstschnittstellen in Echtzeit durch
Bediener (Entwickler) unter Verwendung von Echtzeitinstrumenten
wie z. B. dem Alphaworks Web Services Outsourcing Manager von IBM,
der die dynamische, bedarfsgesteuerte Zusammensetzung von Geschäftsprozessen
auf Grundlage von Webdiensten ermöglicht, sowie dem IBM Websphere
Application Server Enterprise Choreographer, mit dem sich Geschäftsprozesse
mit einem beliebigen Dienst verbinden lassen, der von Produkten
mit Unterstützung der
offenen J2EE-Architektur
angeboten wird. Allerdings besteht zurzeit keine Möglichkeit
zum automatischen Erzeugen oder Ändern
von Dienstschnittstellen unter Berücksichtigung der Dienstnutzung,
die sich aus „Client"-Aufrufen derartiger
Dienste ergibt.
-
Aufgabe der Erfindung
-
Eine
Aufgabe der Erfindung besteht in der Bereitstellung eines Verfahrens
und Systems, mit dem sich die Unzulänglichkeiten der bestehenden
Vorkehrungen vermeiden oder entschärfen lassen.
-
Eine
Aufgabe der Erfindung besteht insbesondere darin, ein Verfahren
und System für
das automatische Erzeugen und/oder Ändern von Dienstschnittstellen
für Webdienste
bereitzustellen, die als Reaktion auf die Nutzung der Dienste in
einer SOA realisiert werden.
-
Zusammenfassung der Erfindung
-
Gemäß einem
ersten Aspekt stellt die vorliegende Erfindung ein Verfahren für das automatische
Erzeugen einer Dienstschnittstelle für eine Anwendung bereit, die
von einer Maschine realisiert werden kann, wobei das Verfahren dadurch
gekennzeichnet ist, dass es die folgenden Schritte umfasst: verwenden
einer Vielzahl von Dienstschnittstellen, die entsprechende Dienste
definieren, welche der Anwendung zugehörig sind; Protokollieren von
Daten, welche die Nutzung der Operationen in den Diensten aufzeichnen,
die von den Dienstschnittstellen definiert werden; Erkennen eines
sich wiederholenden Dienstnutzungsmusters in den Nutzungsdaten;
und – als
Reaktion auf das erkannte sich wiederholende Dienstnutzungsmuster – automatisches Erzeugen
einer neuen Operation in einer neuen Dienstschnittstelle.
-
Die
von einer Maschine realisierbare Anwendung wird in einer Netzwerkumgebung
wie beispielsweise dem Internet durch eine Vielzahl von Dienstschnittstellen
dargestellt, welche die Funktionen definieren, die die Anwendung
umfassen. Hierdurch können
mit dem Netzwerk verbundene Benutzer (Clients) Dienste aufrufen, die
durch die Dienstschnittstellen definiert sind. Dieser Aspekt der
vorliegenden Erfindung behebt das Problem der Verbesserung der Körnigkeit
eines Dienstes auf Grundlage der Dienstnutzung, ohne dass dabei
ein Bediener (Entwickler) die Dienstschnittstelle unter Verwendung
von Echtzeitwerkzeugen von Hand neu entwickeln muss. Letztlich stellt
die vorliegende Erfindung ein Laufzeitverfahren für das automatische
Optimieren von Dienstschnittstellen auf Grundlage der Client-Nutzungsmuster
bereit.
-
Der
Schritt des Erzeugens einer neuen Dienstschnittstelle kann den Schritt
des Änderns
einer oder mehrerer bestehender Dienstschnittstellen umfassen.
-
Dabei
dürfte
klar sein, dass das Erzeugen einer neuen Dienstschnittstelle das
Aktualisieren oder Ändern
einer bestehenden Dienstschnittstelle umfassen kann. Aus diesem
Grund sollte der Begriff „neu" in diesem Zusammenhang
nicht als Beschränkung
des Geltungsumfangs der Erfindung in dem Sinn verstanden werden,
dass er die Bildung einer neuen Dienstschnittstelle aus den bereits
bestehenden Schnittstellen ausschließt.
-
Die
bzw. jede Dienstschnittstelle kann eine oder mehrere Funktion(en)
beinhalten, welche die von einer Maschine realisierbare Anwendung
umfasst/umfassen.
-
Ein
Dienst kann eine einfache Anwendungsfunktion wie z. B. einen Austausch
von Daten oder eine logische Bündelung
von Anwendungsbestandteilen (Funktionen) zur Ausführung eines
Geschäftsprozesses umfassen.
-
Vorzugsweise
umfasst der Schritt des Erzeugens einer neuen Dienstschnittstelle
das Zusammenfassen der Funktionen einer Anzahl bestehender Dienstschnittstellen.
-
Dies
beruht auf der Annahme, dass Dienste ursprünglich feinkörnig entworfen
werden, um eine größtmögliche Flexibilität bereitzustellen.
Dienstnutzungsmuster können
dann aufzeigen, dass ein Client bzw. Clients bei seinen/ihren Netzwerkbesuchen
regelmäßig eine
Gruppe von Diensten aufruft/aufrufen. Als Reaktion auf ein derartiges
sich wiederholendes Nutzungsmuster sieht das Verfahren der Erfindung
vor, dass eine neue Dienstschnittstelle, welche die Gruppe von Diensten
umfasst, automatisch definiert und verwendet wird, sodass die Körnigkeit
der auf diese Weise gebildeten neuen Dienstschnittstelle optimiert
wird und ein einziger Netzwerkbesuch genügt, um sie aufzurufen.
-
Der
Schritt des Protokollierens von Daten, welche die Nutzung eines
Dienstes aufzeichnen, kann das Speichern von Daten umfassen, die
eine Dienstaufrufsignatur in einer Datenbank der Dienstnutzungsgeschichte
umfassen.
-
Vorzugsweise
wird die Dienstaufrufsignatur vor und/oder nach der Ausführung des
Dienstes protokolliert.
-
Vorzugsweise
werden außerdem
die Dienstaufrufsignaturdaten gemeinsam mit Daten für einen
beliebigen Anrufkontext-, Zeitmarken- und Aufrufparameter oder aber
eine Kombination hiervon in der Datenbank der Dienstnutzungsgeschichte
gespeichert.
-
Die
Anrufkontextdaten können
einen Anruferbezeichner und einen Anrufsitzungsbezeichner umfassen.
-
Das
Speichern und Analysieren von Daten, die für die Anruferkennung, die Anrufsitzungskennung
und für
Zeitmarken stehen, ist eine vergleichsweise einfache Verarbeitungsaufgabe
zur Erkennung von sich wiederholenden Dienstnutzungsmustern, anhand
derer sich Dienstschnittstellen optimieren lassen.
-
Vorzugsweise
umfasst der Schritt des Erkennens eines sich wiederholenden Dienstnutzungsmusters in
den Nutzungsdaten das Unterscheiden des Dienstnutzungsmusters, um
so einen entsprechenden Satz feinkörniger Dienste zu bilden.
-
Die
feinkörnigen
Dienste bilden die Bausteine für
das Erzeugen optimierter grobkörniger
Dienstschnittstellen.
-
Vorzugsweise
umfasst der Schritt des Erzeugens einer neuen Dienstschnittstelle
das Erzeugen einer neuen grobkörnigen
Dienstschnittstelle, indem eine Anzahl der feinkörnigen Dienstschnittstellen,
die in dem Dienstnutzungsmuster unterschieden werden, miteinander
kombiniert werden.
-
Die
neue grobkörnige
Dienstschnittstelle kann automatisch verwendet werden.
-
Alternativ
wird die neue grobkörnige
Dienstschnittstelle in einer Datenbank der künftigen grobkörnigen Dienstdefinitionen
gespeichert, bevor sie verwendet wird.
-
Obwohl
sich die vorliegende Erfindung auf das automatische Erzeugen optimierter
Dienstschnittstellen bezieht, soll das Verfahren der Erfindung eine
Möglichkeit
für das
menschliche Eingreifen bei der Verwendung neu erzeugter Dienstschnittstellen
beinhalten, sofern hierfür
Bedarf besteht.
-
Der
Schritt des automatischen Erzeugens einer neuen Dienstschnittstelle
kann von einem beliebigen Bediener, einem Systemverwalter oder einer
Zeitsteuerungsmaschine ausgelöst
werden.
-
Alternativ
wird der Schritt des automatischen Erzeugens einer neuen Dienstschnittstelle
automatisch von einem sich wiederholenden Dienstnutzungsmuster ausgelöst.
-
Vorzugsweise
wird automatisch eine neue Dienstschnittstelle zur Verwendung in
einer dienstorientierten Architektur (SOA) erzeugt.
-
Gemäß einem
anderen Aspekt stellt die vorliegende Erfindung ein System für das automatische
Erzeugen einer Dienstschnittstelle für eine Anwendung bereit, die
von einer Maschine realisiert werden, wobei das System dadurch gekennzeichnet
ist, dass es Folgendes umfasst: ein Mittel für das Verwenden einer Vielzahl
von Dienstschnittstellen, die entsprechende Dienste definieren,
welche der Anwendung zugehörig
sind; ein Mittel für
das Protokollieren der Daten, welche die Nutzung der Operationen
in den Diensten aufzeichnen, die von den Dienstschnittstellen definiert
werden; ein Mittel für
das Erkennen eines sich wiederholenden Dienstnutzungsmusters in
den Nutzungsdaten; und – als
Reaktion auf das erkannte sich wiederholende Dienstnutzungsmuster – ein Mittel
für das
automatische Erzeugen einer neuen Operation in einer neuen Dienstschnittstelle.
-
Vorzugsweise
umfasst das Mittel für
das Verwenden einer Vielzahl von Dienstschnittstellen eine Dienstausführungsmaschine
wie beispielsweise den IBM Websphere-Anwendungsserver.
-
Weiterhin
umfasst die Dienstausführungsmaschine
vorzugsweise einen J2EE-konformen Anwendungsserver.
-
Die
Dienstausführungsmaschine
kann außerdem
das Mittel für
das Protokollieren der Daten, welche die Nutzung der Dienste aufzeichnen,
umfassen sowie eine Datenbank für
das Speichern der protokollierten Daten beinhalten.
-
Das
Mittel für
das Erkennen eines sich wiederholenden Dienstnutzungsmusters und/oder
das Mittel für
das automatische Erzeugen einer neuen Dienstschnittstelle als Reaktion
auf das erkannte sich wiederholende Dienstnutzungsmuster kann eine
selbstständige,
selbstoptimierende Dienstdefinitionskomponente enthalten.
-
Die
selbstständige,
selbstoptimierende Dienstdefinitionskomponente kann einen Dienstanforderungs-Affinitätsanalysator
umfassen, der in den Nutzungsdaten ein sich wiederholendes Dienstnutzungsmuster
erkennt.
-
Die
selbstständige,
selbstoptimierende Dienstdefinitionskomponente kann eine Dienstschnittstellenerzeugungseinheit
umfassen, die als Reaktion auf das erkannte, sich wiederholende
Dienstnutzungsmuster automatisch eine neue Dienstschnittstelle erzeugt.
-
Vorzugsweise
beinhaltet die selbstständige,
selbstoptimierende Dienstdefinitionskomponente eine Datenbank für verfügbare feinkörnige Dienstschnittstellen
oder eine Datenbank für
bestehende grobkörnige Dienstschnittstellen
bzw. beide Datenbanken.
-
Außerdem beinhaltet
die selbstständige,
selbstoptimierende Dienstdefinitionskomponente eine Inferenzmaschine
und eine Regeldatenbank für
das Steuern der Dienstschnittstellenerzeugungseinheit.
-
Gemäß einem
weiteren Aspekt der Erfindung wird eine Dienstschnittstellen-Erzeugungskomponente bereitgestellt,
die automatisch eine Dienstschnittstelle für eine Anwendung, die von einer
Maschine realisiert werden kann, in einer dienstorientierten Architektur
erzeugt, die dadurch gekennzeichnet ist, dass sie Folgendes umfasst:
ein Mittel für
das Erkennen eines sich wiederholenden Dienstnutzungsmusters aus
Dienstnutzungsdaten; und – als
Reaktion auf das erkannte sich wiederholende Dienstnutzungsmuster – ein Mittel
für das automatische
Erzeugen einer neuen Dienstschnittstelle.
-
Vorzugsweise
umfasst das Mittel für
das Erkennen eines sich wiederholenden Dienstnutzungsmusters aus
Dienstnutzungsdaten ein Mittel für
das Unterscheiden des Dienstnutzungsmusters, um so einen entsprechenden
Satz feinkörniger
und/oder grobkörniger
Dienste zu bilden.
-
Ebenfalls
vorzugsweise erzeugt das Mittel für das automatische Erzeugen
einer neuen Dienstschnittstelle als Reaktion auf das erkannte sich
wiederholende Dienstnutzungsmuster eine neue grobkörnige Dienstschnittstelle,
indem eine Anzahl der fein- und/oder
grobkörnigen
Dienstschnittstellen miteinander kombiniert werden, die in dem Dienstnutzungsmuster
unterschieden wurden.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird eine Dienstauführungsmaschine
bereitgestellt, die in dem oben beschriebenen Verfahren verwendet
wird.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird ein Computerprogramm
für die
Realisierung des oben beschriebenen Verfahrens bereitgestellt.
-
Gemäß einem
weiteren Aspekt der Erfindung wird eine Computerausführung des
oben beschriebenen Verfahrens bereitgestellt.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
ein schematisches Blockschaubild eines Systems für das automatische Erzeugen
einer Dienstschnittstelle gemäß der Erfindung;
-
2 ist
ein schematisches Blockschaubild einer Dienstschnittstellen-Erzeugungskomponente
des Systems aus 1;
-
3 ist
ein Ablaufdiagram, das ein Verfahren gemäß der Erfindung zeigt;
-
4 ist
ein schematisches Blockschaubild, das die Schritte darstellt, die
einen ersten Teil des Verfahrens gemäß der Erfindung umfassen;
-
5 ist
ein schematisches Blockschaubild, das eine ausführlichere Darstellung einer
Ausführung
eines Schritts für
das Erfassen von Dienstaufrufdaten des ersten Teils des Verfahrens
gemäß der Erfindung zeigt;
-
6 umfasst
ein Beispiel für
einen Java-Quellcode, mit dem der Schritt für das Erfassen von Dienstaufrufdaten
aus 5 realisiert wird; und
-
7 ist
ein schematisches Blockschaubild, das die Schritte darstellt, die
einen zweiten Teil des Verfahrens gemäß der Erfindung umfassen.
-
Beschreibung einer bevorzugten
Ausführungsform
-
Die
obigen und weitere Merkmale der vorliegenden Erfindung werden aus
der folgenden Beschreibung einer bevorzugten Ausführungsform
und unter Bezugnahme auf die Zeichnungen offensichtlicher, wobei
dies lediglich beispielhaft und nicht als Einschränkung des
Geltungsumfangs der Erfindung zu verstehen ist.
-
Mit
Blick auf 1 umfasst das generell mit der
Ziffer 10 bezeichnete System der Erfindung auf der Dienstanbieterseite
(Veröffentlicher)
einer Netzwerkschnittstelle 12, die durch eine gestrichelte
Linie kenntlich gemacht ist, eine Dienstausführungsmaschine 14,
mit der Clients eingerichtete Dienste über ein (nicht abgebildetes)
webfähiges
Netzwerk wie das Internet aufrufen können. Die eingerichteten Dienste
werden in einer Datenbank 16 der verwendeten Dienste gespeichert.
Die Dienstschnittstellen, welche die Dienste definieren, können eine(n)
oder mehrere Dienstanbieter-Geschäftsprozesse
oder -anwendungen umfassen. Die Ausführungsmaschine 14 kann
beispielsweise einen IBM Websphere-Anwendungsserver oder einen beliebigen J2EE-konformen Server
umfassen. Ebenfalls auf der Dienstanbieterseite der Netzwerkschnittstelle 12 kann sich
ein Dienstverwalter 18 für die Verwaltung der eingerichteten
Dienste befinden. Dabei kann der Dienstverwalter 18 ein
Bediener sein, obwohl auch ein intelligenter Softwareagent diese
Aufgabe übernehmen
kann. Ein Entwickler 20 für die Entwicklung neuer zu
verwendender Dienste umfasst einen Bediener, der neue Dienste gemäß bekannter
Echtzeitmethoden entwickelt und dabei Echtzeit-Entwicklungswerkzeuge
wie den IBM Alphaworks Web Services Outsourcing Manager, der die
dynamische, bedarfsgesteuerte Schaffung von Webdienst-basierten Geschäftsprozessen
ermöglicht,
und den IBM Websphere Application Server Enterprise Process Choreographer
verwendet, mit dem sich Geschäftsprozesse
mit einem beliebigen Dienst verbinden lassen, der von Produkten
mit Unterstützung
der offenen J2EE-Architektur angeboten wird. Auf der Client-Seite der
Netzwerkschnittstelle 12 kann ein Client-Anwendungsprogrammierer 22 vorhanden
sein, der unter Verwendung bestehender Dienstdefinitionen neue Anwendungen
programmiert. Ähnlich
dem Entwickler 20 des Dienstanbieters umfasst dies einen
Bediener, der in einer Echtzeitbetriebsart arbeitet. Aus diesem
Grund dürfte
klar sein, dass die bis hierher beschriebene Anordnung nicht neu
ist und dass eine derartige Anordnung dem Fachmann bekannt ist.
-
Das
System gemäß der Erfindung
beinhaltet eine Dienstschnittstellen-Erzeugungskomponente 24,
die auch als autonome, selbstoptimierende Dienstdefinitionskomponente
bezeichnet wird. Die Aufgabe dieser Komponente 24 besteht
darin, automatisch neue Dienstschnittstellen auf Grundlage der erkannten
sich wiederholenden Client-Nutzungsmuster zu erzeugen. Im Zusammenspiel
mit anderen Komponenten des Systems lassen sich mit dieser Komponente
daher automatisch neue Dienstschnittstelle in einer Echtzeitbetriebsart
erzeugen und verwenden, wie aus der folgenden Beschreibung noch
deutlicher werden wird.
-
Die
Struktur der Dienstschnittstellen-Erzeugungskomponente 24 und
ihr Zusammenwirken mit anderen Komponenten des Systems wird auch
aus 2 ersichtlich. Die Dienstschnittstellen-Erzeugungskomponente 24 umfasst
einen Dienstanforderungs-Affinitätsanalysator 26,
eine Inferenzmaschine 28, eine Regeldatenbank 30 und
eine Einheit 32 für
das Erzeugen optimierter Dienste. Sie kann außerdem eine Berichtserzeugungseinheit 34 beinhalten.
Mit Ausnahme der Regeldatenbank sind alle Komponenten der Dienstschnittstellen- Erzeugungskomponente 24 als
Softwarekomponenten ausgebildet. Der Dienstanforderungs-Affinitätsanalysator 26 entspricht
einem Webseite-Analysator mit dem Unterschied, dass er nicht die
statistischen Nutzungsdaten einer Website (Websiteprotokolle) verarbeitet.
Vielmehr analysiert er die statistischen Nutzungsdaten der Webdienste,
die von der Dienstausführungsmaschine 14 aufgerufen
werden. Die Inferenzmaschine 28 kann unter Verwendung einer
handelsüblichen
Inferenzmaschine (regelbasierte Maschine) wie beispielsweise der
Versata-Logikmaschine, die ein Bestandteil der Versata Logic Suite
ist, oder in Form von IBM Websphere-Geschäftsregelkomponenten realisiert
werden, die ein Bestandteil des IBM Websphere-Anwendungsservers
sind. Die Einheit 32 für
das Erzeugen optimierter Dienste umfasst eine Code-Erzeugungseinheit,
die aus den Ergebnissen der Verarbeitung durch die Inferenzmaschine 28 Dienstdefinitionen
erzeugt, welche üblicherweise
als WDSL-Dateien vorliegen. Die Berichtserzeugungseinheit 34 erzeugt
die Ergebnisse der Verarbeitung durch die Inferenzmaschine in einer
für den
Menschen verständlichen
Form. Diese Berichte verfügen über Verknüpfungen
zum Inhalt einer Datenbank 44 der künftig zu verbessernden grobkörnigen Dienstdefinitionen.
Die Datenbank 44 der künftigen
grobkörnigen
Dienstdefinitionen enthält
neue Dienstschnittstellen, die als Reaktion auf die analysierten
Dienstnutzungsmuster erzeugt wurden. So kann ein Dienstnutzungsbericht z.
B. angeben, dass die von einem bestimmten Dienst bereitgestellten
Operationen Ox und Oy in einer Operation Ox + y zusammengefasst
werden können,
da in 90 Prozent der Fälle
diese Operationen in dieser Reihenfolge aufgerufen werden.
-
Zusätzlich zur
Datenbank 44 der künftigen
grobkörnigen
Dienstdefinitionen ist die Dienstschnittstellen-Erzeugungskomponente 24 mit
einer Datenbank 36 der aufgelaufenen Dienstnutzungsgeschichte,
einer Datenbank 40 der bestehenden grobkörnigen Dienstdefinitionen,
einer Datenbank der verfügbaren
feinkörnigen
Unternehmensdienste 42 und einer Berichtsdatenbank 46 verknüpft.
-
Jede
der Dienstdefinitionsdatenbanken 36, 40, 42 und 44 umfasst
einen strukturierten Datenspeicher, der unter Verwendung einer relationalen
Datenbank, zweidimensionaler XML-Dateien und Plus Word-Verarbeitung
für Berichte
realisiert sein kann.
-
Die
Datenbank 36 der aufgelaufenen Dienstnutzungsgeschichte
entspricht Websiteprotokollen, wobei bei der vorliegenden Erfindung
diese jedoch Webdienstprotokolle umfassen. Dabei handelt es sich
insofern um niedere Protokolle, als sie lediglich aufzeichnen, was
mit Blick auf die Webdienstnutzung geschieht, ohne dem Prozess weitere
Verarbeitungsfähigkeiten
hinzuzufügen.
-
Der
Dienstanforderungs-Affinitätsanalysator 26 der
Dienstschnittstellen-Erzeugungskomponente 24 ist an einem
Eingang mit der Datenbank 36 der Dienstnutzungsgeschichte
verbunden, die Dienstnutzungsdaten speichert, welche von einer Dienstnutzungs-Erfassungsfunktion 38 der
Dienstausführungsmaschine 14 erfasst
werden. Die in der Datenbank 36 der Dienstnutzungsgeschichte
gespeicherten Daten werden analysiert, um so sich wiederholende
Client-Nutzungsmuster
zu erkennen, wobei dies einen Schritt des Verfahrens des automatischen
Erzeugens neuer Dienstschnittstellen gemäß der Erfindung darstellt.
Als weiterer Eingang ist der Dienstanforderungs-Affinitätsanalysator 26 mit
der Datenbank 40 der bestehenden grobkörnigen Dienstdefinitionen verbunden.
Diese ist indirekt ein Eingang der Inferenzmaschine. Die Datenbank 40 der
bestehenden grobkörnigen
Dienstdefinitionen stimmt mit der (abgebildeten) Datenbank 16 der
verwendeten Dienste überein,
obwohl diese in 1 als getrennte Datenbanken
dargestellt sind.
-
Der
Dienstanforderungs-Affinitätsanalysator 26 stellt
der Inferenzmaschine 28 Statistikdaten dazu bereit, welche
Operationen in einer Dienstschnittstelle verwendet wurden und welche
nicht, welche zueinander in Beziehung stehen (sodass die Inferenzmaschine
umfangreichere grobkörnige
Dienste vorschlagen kann), wie viele Parameter für eine bestimmte Operation
verwenden werden (sodass die Inferenzmaschine den Umfang eines grobkörnigen Dienstes
verringern kann), usw. Daher kann die Ausgabe des Affinitätsanalysators 26 als übergeordneter
Satz der Datenbank 40 der bestehenden grobkörnigen Dienstdefinitionen
betrachtet werden.
-
Die
Inferenzmaschine 28 verfügt als weiteren Eingang über eine
Verbindung zur Datenbank 42 der verfügbaren feinkörnigen Unternehmensdienstdefinitionen.
Die feinkörnigen
Unternehmensdienste umfassen die grundlegenden in Echtzeit entwickelten
Dienstschnittstellen, welche die Verfahren/Dienstelemente definieren,
welche die Geschäftsanwendungen/-prozesse
umfassen, die in der Datenbank 16/40 der verwendeten/bestehenden
Dienste als Webdienste verfügbar
gemacht werden.
-
Ein
letzter Eingang der Inferenzmaschine 28 ist eine Verbindung
zur Regeldatenbank 30, welche die Regeln zur Steuerung
des Betriebs der Inferenzmaschine 28 definiert. Die Regeldatenbank 30 umfasst
einen Speicher für
strukturierte Daten, der unter Verwendung einer relationalen Datenbank,
zweidimensionaler XML-Datenbanken und Plus Word-Verarbeitung für Berichte
realisiert sein kann. Obwohl ein System, das diese Erfindung realisiert, über einen
Satz vorgefertigter Regeln verfügen
kann, können
die Regeln auch sehr konkret auf ein Unternehmen abgestimmt sein.
Bei vorgefertigten Regeln kann es sich um standardmäßige Regeln für die Dienstumgestaltung
handeln, wie z. B.:
- • Wenn die Dienstoperationen
Ox und Oy in 90 Prozent der Fälle
von 90 Prozent der Nutzer innerhalb von zwei Sekunden nacheinander
verwendet werden, dann schlage eine neue Dienstoperation Ox + y
vor.
- • Wenn
der Parameter Px in der Dienstoperation Ox von 90 Prozent der Nutzer
nie verwendet wird, dann schlage eine neue Dienstoperation ohne
diesen Parameter vor.
-
Auf
ein Unternehmen abgestimmte Regeln können z. B. folgendermaßen lauten:
- • Suche
Zusammenhänge
zwischen den Diensten „Kfz-Premium-Garantie" und „Kfz-Sonderversichung" für den Zeitraum
von drei Monaten nach Beginn der Marketingkampagne.
-
Ein
Ausgang der Inferenzmaschine ist mit einem Eingang der Diensterzeugungseinheit 32 verbunden, welche
die vorgeschlagenen (oder künftigen)
grobkörnigen
Dienstdefinitionen an die Datenbank 44 der künftigen
grobkörnigen
Dienstdefinitionen ausgibt. Die Inferenzmaschine kann auch mit der
Berichtserzeugungseinheit 34 für das Erzeugen von Berichten
verbunden sein.
-
Wie
in 3 dargestellt, baut das Verfahren der Erfindung
auf dem bekannten Verfahren der Echtzeitentwicklung von Dienstschnittstellen
unter Verwendung von Echtzeitwerkzeugen wie dem IBM Alphaworks Web
Services Outsourcing Manager auf und umfasst ein erstes Verfahren 50 für das Protokollieren
der Client-Dienstnutzung und einen zweiten Verfahrensteil 52 des
Analysierens von Nutzungsdaten und des automatischen Erzeugens neuer
Dienstschnittstellen (Definitionen) als Reaktion auf sich wiederholende
Nutzungsmuster, die in den Nutzungsdaten erkannt wurden. Eine neue
von der Dienstschnittstellen-Erzeugungskomponente 24 automatisch
erzeugte Dienstdefinition kann verwendet werden, oder es kann alternativ
entschieden werden (Entscheidungspunkt 54 in 3),
dass die neue Dienstschnittstelle zusätzliche, von Hand stattfindende
Entwicklungsschritte benötigt
und für
die von Hand stattfindende Verarbeitung an die Datenbank 44 der künftigen
grobkörnigen
Dienste geleitet wird, bevor sie an die Datenbank 16/40 der
verwendeten/bestehenden Dienste übertragen
wird. Dieser Entscheidungspunkt ist immer manuell.
-
Mit
Blick auf
4 umfasst der erste Verfahrensteil
50 einen
Dienstaufruf-Erkennungsschritt
56, der von der Dienstausführungsmaschine
14 ausgeführt wird.
Die Dienstaufruferkennung ist eine vorhandene Funktion einer Dienstausführungsmaschine
wie beispielsweise des IBM Websphere-Anwendungsservers. Als zweiter
Schritt
58 des ersten Verfahrensteils
50 werden
Dienstaufrufdaten erfasst und in der Datenbank
36 der Dienstnutzungsgeschichte
gespeichert. Die Aufrufdaten können
eine Anzahl von Datenelementen (Parameter) umfassen, die einen oder
eine beliebige Kombination von Anruferbezeichner(n) (z. B. <Kontonummer>, <Garantienummer>, <Benutzerkennung
+ Auftragskennung>),
einen Aufrufsitzungsbezeichner (z. B. <Buchseriennummer>, um alle Operationen hinsichtlich eines
von einem bestimmten Benutzer (der durch seine Benutzerkennung kenntlich
gemacht ist) erworbenen Buchs zueinander in Beziehung zu setzen,
oder <Diskussionsfaden-Kennung>, um alle Operationen
hinsichtlich einer Diskussion zu einem bestimmten Thema zwischen
mehreren Benutzern (die durch ihre Benutzerkennung kenntlich gemacht
sind), zueinander in Beziehung zu setzen)), eine Zeitmarke vor dem
Aufruf und eine Zeitmarke nach dem Aufruf beinhalten können. Die
Aufrufeingabeparameter werden vom Dienstaufrufer gesetzt, während es
sich bei den Ausgabeparametern um diejenigen handelt, die vom Dienstserver
zurückgegeben
werden. So definiert z. B. WSDL ausdrücklich Ein- und Ausgabeparameter
für eine
bestimmte Operation. Ein entsprechendes Beispiel des Java-Quellcodes
für eine
Operation „requestServiceDownload" lautet wie folgt:
-
Eine
konkrete bekannte Anordnung für
das Erfassen (Protokollieren und Speichern) von Dienstaufrufdaten
ist in 5 dargestellt. Dabei wird die Apache Axis-Maschine
verwendet. Die Vorrichtung für
die Erfassung von Dienstaufrufdaten besteht aus einer Axis-Anforderungsverarbeitungseinheit
und einer Axis-Antwortverarbeitungseinheit.
Beide erfassen den vollständigen
Aufrufkontext und protokollieren ihn in der Datenbank 36 der
aufgelaufenen Dienstnutzungsgeschichte, wobei dies auf bekannte
Art und Weise erfolgt. 6 stellt einen beispielhaften
Java-Quellcode für
die Realisierung dieses Verfahrens zur Erfassung von Aufrufdaten
unter Verwendung einer Apache Axis-Maschine bereit.
-
Ein
zweiter Verfahrensteil 52 der Erfindung ist in 7 schematisch
dargestellt. Er umfasst eine Reihe von Schritten beginnend mit Schritt 70,
in dem die Dienstschnittstellen-Erzeugungskomponente 24 beispielsweise
durch eine (nicht abgebildete) Zeitsteuerungsmaschine oder einen
Dienstverwalter ausgelöst
wird. Alternativ kann die Dienstschnittstellen-Erzeugungskomponente 24 auch
automatisch ausgelöst
werden, falls eine Nichtübereinstimmung
festgestellt wird. Eine Nichtübereinstimmung
kann durch einen Prozess festgestellt werden, der ermittelt, ob
die aufgerufenen Dienste so verwendet werden, wie dies vom Dienstentwickler vorgesehen
wurde. Dies lässt
sich ermitteln, indem ein Vergleich der tatsächlichen mit der vorgesehenen
Nutzung der Dienste angestellt wird. Dieser Vergleich ergibt sich
aus einem Überwachungsprozess
der Datenbank 40 der bestehenden grobkörnigen Dienstdefinitionen und
der Datenbank 44 der künftigen
grobkörnigen
Dienstdefinitionen. Dabei wird eine Nichtübereinstimmung festgestellt,
indem die Anzahl der in jeder Datenbank enthaltenen Dienstschnittstellen
(Definitionen) und der Inhalt dieser Dienstschnittstellen miteinander
verglichen werden. Wenn der Überwachungsprozess
ergibt, dass der Inhalt der beiden Datenbanken nicht mehr vollständig oder
nahezu vollständig übereinstimmt,
wird dies als Nichtübereinstimmung
erkannt und dient zur Auslösung
der Schnittstellenerzeugungskomponente 24. Der Prozess
der Überwachung
des Inhalts der beiden Datenbanken 40, 44 kann
von der Dienstausführungsmaschine 14 ausgeführt werden.
-
In
einem nächsten
Schritt
72 werden die gespeicherten Dienstnutzungsdaten
vom Dienstanforderungs-Affinitätsanalysator
26 gelesen,
der die Daten in Schritt
74 analysiert, um sich wiederholende
Dienstnutzungsmuster zu erkennen. Der Schritt des Erkennens von
sich wiederholenden Dienstnutzungsmustern könnte im Wesentlichen gemäß einem
beliebigen der Modelle erfolgen, die in den
US-Patentschriften Nr. 5 661 668 , Nr.
6 249 755 oder Nr.
6 516 288 dargelegt werden.
-
Für jedes
erkannte sich wiederholende Nutzungsmuster (Schritt 76)
nimmt (Schritt 76a) die Inferenzmaschine 28 eine
Unterscheidung des Dienstnutzungsmusters vor, um die betreffenden
feinkörnigen
Dienste, welche das Nutzungsmuster umfassen, zu erkennen. Diese
werden als grafische Darstellung von feinkörnigen Dienstaufrufen neu organisiert
(Schritt 76b), indem die Inferenzmaschine 28 disjunkte
Element in den Aufrufkontexten zueinander in Beziehung setzt, um
so mittels Optimierung eine grobkörnige Dienstdefinition zu erzeugen,
indem die feinkörnigen
Dienstdefinitionen zusammengestellt werden. Das Organisieren der
feinkörnigen
Dienste mit einem Nutzungsmuster als grafische Darstellung lässt sich
mit der Business BPEL-Sprache (Process Execution Language) für Webdienste
beschreiben. Dabei gibt es zwei Arten von Dienstnutzungsmustern:
- • Muster,
die mehrere Dienstaufrufe angeben, die ein und denselben Aufrufkontext
teilen, und somit die Möglichkeit
schaffen, größere grobkörnige Dienste
zu erzeugen; und
- • Muster,
die einen Teil einer Dienstschnittstellennutzung angeben und somit
die Möglichkeit
schaffen, den Funktionsumfang eines grobkörnigen Dienstes so weit zu
verringern, bis ein einzelner feinkörniger Dienst erreicht ist.
-
Die
neue grobkörnige
Dienstdefinition (Schnittstelle) wird in der Datenbank 44 der
künftigen
grobkörnigen
Dienste gespeichert (Schritt 76c), wobei eine Entscheidung
(erster Verfahrensteil 50, Entscheidungspunkt 54)
darüber
erfolgt, ob die neue Dienstdefinition dann an die Datenbank 16 der
verwendeten Dienste übertragen
wird oder ob zusätzliche,
von Hand vorgenommene Entwicklungsschritte notwendig sind, um sie nutzungsbereit
zu machen. Der letzte Schritt 78 kann im Erstellen von
Berichten bestehen, die von einem Dienstverwalter 18 und/oder
einem Dienstentwickler 20 überprüft werden können.
-
Die
vorliegende Erfindung verwendet protokollierte Dienstnutzungsdaten,
um automatisch neue Dienstdefinitionen zu erzeugen, wobei die neuen
Dienstdefinitionen eine oder mehrere verfügbare feinkörnige Dienstdefinitionen umfassen.