DE602004011455T2 - Verfahren und System zur automatischen Erzeugung von Dienstschnittstellen für eine dienstorientierte Architektur - Google Patents

Verfahren und System zur automatischen Erzeugung von Dienstschnittstellen für eine dienstorientierte Architektur Download PDF

Info

Publication number
DE602004011455T2
DE602004011455T2 DE602004011455T DE602004011455T DE602004011455T2 DE 602004011455 T2 DE602004011455 T2 DE 602004011455T2 DE 602004011455 T DE602004011455 T DE 602004011455T DE 602004011455 T DE602004011455 T DE 602004011455T DE 602004011455 T2 DE602004011455 T2 DE 602004011455T2
Authority
DE
Germany
Prior art keywords
service
new
data
services
grained
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602004011455T
Other languages
English (en)
Other versions
DE602004011455D1 (de
Inventor
Marc Fiammante
Lionel Mommeja
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE602004011455D1 publication Critical patent/DE602004011455D1/de
Application granted granted Critical
Publication of DE602004011455T2 publication Critical patent/DE602004011455T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Description

  • 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:
    Figure 00250001
  • 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.

Claims (18)

  1. Verfahren für das automatische Erzeugen einer Dienstschnittstelle für eine Anwendung, die von einer Maschine realisiert werden kann, wobei das Verfahren dadurch gekennzeichnet ist, dass es die folgenden Schritte umfasst: Verwenden einer Vielzahl von Dienstschnittstellen (16), die entsprechende Dienste definieren, welche der Anwendung zugehörig sind; Protokollieren (50) von Daten (36), welche die Nutzung der Operationen in den Diensten aufzeichnen, die von den Dienstschnittstellen definiert werden. Erkennen (74) eines sich wiederholenden Dienstnutzungsmusters in den Nutzungsdaten; und als Reaktion auf das erkannte sich wiederholende Dienstnutzungsmuster, automatisches Erzeugen (24) einer neuen Operation in einer neuen Dienstschnittstelle.
  2. Verfahren nach Anspruch 1, das dadurch gekennzeichnet ist, dass der Schritt des Erzeugens einer neuen Dienstschnittstelle das Ändern einer oder mehrerer bestehender Dienstschnittstellen umfasst.
  3. Verfahren nach Anspruch 1 oder 2, das dadurch gekennzeichnet ist, dass die bzw. jede Dienstschnittstelle eine oder mehrere Funktion(en) beinhaltet, welche die von einer Maschine realisierbare Anwendung umfasst/umfassen.
  4. Verfahren nach Anspruch 3, das dadurch gekennzeichnet ist, dass der Schritt des Erzeugens einer neuen Dienstschnittstelle das Bündeln der Funktionen einer Anzahl bestehender Dienstschnittstellen umfasst.
  5. Verfahren nach einem beliebigen vorangegangenen Anspruch, das dadurch gekennzeichnet ist, dass der Schritt des Protokollierens von Daten, welche die Nutzung eines Dienstes aufzeichnen, das Speichern von Daten umfasst, die eine Dienstaufrufsignatur in einer Datenbank der Dienstnutzungsgeschichte umfassen.
  6. Verfahren nach Anspruch 5, das dadurch gekennzeichnet ist, dass die Dienstaufrufsignatur protokolliert vor und/oder nach der Ausführung des Dienstes protokolliert wird.
  7. Verfahren nach Anspruch 5 oder 6, das dadurch gekennzeichnet ist, dass die Dienstaufrufsignaturdaten gemeinsam mit Daten für einen beliebigen Anfrufkontext-, Zeitmarken- und Aufrufparameter oder aber eine Kombination hiervon in der Datenbank der Dienstnutzungsgeschichte gespeichert werden.
  8. Verfahren nach Anspruch 7, das dadurch gekennzeichnet ist, dass die Anrufkontextdaten einen Anruferbezeichner und einen Anrufsitzungsbezeichner umfassen.
  9. Verfahren nach Anspruch 8, das dadurch gekennzeichnet ist, dass es den Schritt des Verbindens mit einer Anruferbezeichnerdatenbank beinhaltet, um so Anruferdaten abzurufen, die einen Namen, eine Telefonnummer und eine eMail-Adresse oder aber eine Kombination hiervon umfassen.
  10. Verfahren nach einem beliebigen vorangegangenen Anspruch, das dadurch gekennzeichnet ist, dass der Schritt des Erkennens eines sich wiederholenden Dienstnutzungsmusters in den Nutzungsdaten das Unterscheiden des Dienstnutzungsmusters umfasst, um so einen entsprechenden Satz von feinkörnigen und/oder grobkörnigen Diensten zu bilden.
  11. Verfahren nach Anspruch 10, das dadurch gekennzeichnet ist, dass der Schritt des Erzeugens (76c) einer neuen Dienstschnittstelle das Erzeugen einer neuen grobkörnigen Dienstschnittstelle umfasst, indem eine Anzahl der feinkörnigen und/oder grobkörnigen Dienstschnittstellen miteinander kombiniert werden, die in dem Dienstnutzungsmuster unterschieden wurden.
  12. Verfahren nach Anspruch 11, das dadurch gekennzeichnet ist, dass die neue grobkörnige Dienstschnittstelle in einer Datenbank (16) der verwendeten Dienste gespeichert wird.
  13. Verfahren nach Anspruch 11, das dadurch gekennzeichnet ist, dass die neue grobkörnige Dienstschnittstelle in einer Datenbank 44 der künftigen grobkörnigen Dienstdefinitionen gespeichert wird, bevor sie verwendet wird.
  14. Verfahren nach einem beliebigen vorangegangenen Anspruch, das dadurch gekennzeichnet ist, dass der Schritt des automatischen Erzeugens einer neuen Dienstschnittstelle von einer beliebigen Bedienperson, einem Systemverwalter oder einer Zeitsteuerungsmaschine oder aber einer Kombination hiervon ausgelöst wird.
  15. Verfahren nach einem beliebigen der Ansprüche 1 bis 13, das dadurch gekennzeichnet ist, dass der Schritt des automatischen Erzeugens einer neuen Dienstschnittstelle automatisch von einem sich wiederholenden Dienstnutzungsmuster ausgelöst wird.
  16. Verfahren nach einem beliebigen vorangegangenen Anspruch, das dadurch gekennzeichnet ist, dass automatisch eine neue Dienstschnittstelle zur Verwendung in einer dienstorientierten Architektur (Service-Oriented Architecture, SOA) erzeugt wird.
  17. Computerprogrammprodukt, das Programmcodebefehle für das Ausführen der Schritte des Verfahrens gemäß einem beliebigen der Ansprüche 1 bis 16 umfasst, wenn das Programm auf einem Computer ausgeführt wird.
  18. System, das ein Mittel umfasst, welches so gestaltet ist, dass es das Verfahren gemäß einem beliebigen der Ansprüche 1 bis 16 ausführt.
DE602004011455T 2003-12-10 2004-09-13 Verfahren und System zur automatischen Erzeugung von Dienstschnittstellen für eine dienstorientierte Architektur Active DE602004011455T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03368113 2003-12-10
EP03368113 2003-12-10

Publications (2)

Publication Number Publication Date
DE602004011455D1 DE602004011455D1 (de) 2008-03-13
DE602004011455T2 true DE602004011455T2 (de) 2009-01-22

Family

ID=34639356

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004011455T Active DE602004011455T2 (de) 2003-12-10 2004-09-13 Verfahren und System zur automatischen Erzeugung von Dienstschnittstellen für eine dienstorientierte Architektur

Country Status (6)

Country Link
US (1) US20050132381A1 (de)
EP (1) EP1542123B1 (de)
JP (1) JP4496067B2 (de)
KR (1) KR100724522B1 (de)
AT (1) ATE384994T1 (de)
DE (1) DE602004011455T2 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060159077A1 (en) * 2004-08-20 2006-07-20 Vanecek George Jr Service-oriented middleware for managing interoperability of heterogeneous elements of integrated systems
DE102004054648A1 (de) 2004-11-11 2006-05-24 Francotyp-Postalia Ag & Co. Kg Verfahren zum Bereitstellen von Diensten zwischen Datenverarbeitungseinrichtungen
US7886019B2 (en) * 2006-08-31 2011-02-08 International Business Machines Corporation Service oriented architecture automation by cab or taxi design pattern and method
EP1901526B1 (de) * 2006-09-13 2010-06-09 Alcatel Lucent Verkettung von Web Services
US8375362B1 (en) * 2006-11-28 2013-02-12 Emc Corporation Wizard for web service search adapter
US8046419B2 (en) * 2006-12-01 2011-10-25 Electronics And Telecommunications Research Institute Method of processing open asynchronous application service event and open web service gateway implementing the same
US20080172621A1 (en) * 2007-01-11 2008-07-17 International Business Machines Corporation Augmenting service description with expected usage information
US9098799B2 (en) 2007-03-29 2015-08-04 International Business Machines Corporation Tooling for implementing business processes using web services
US7596583B2 (en) * 2007-03-29 2009-09-29 International Business Machines Corporation Dynamic learning in redesigning a composition of web services
US8904341B2 (en) 2007-04-30 2014-12-02 Hewlett-Packard Development Company, L.P. Deriving grounded model of business process suitable for automatic deployment
US7768944B2 (en) * 2007-05-18 2010-08-03 International Business Machines Corporation Technique for defining and dynamically enabling service level requirements in a service oriented architecture
US8005786B2 (en) * 2007-09-20 2011-08-23 Microsoft Corporation Role-based user tracking in service usage
US7958142B2 (en) * 2007-09-20 2011-06-07 Microsoft Corporation User profile aggregation
EP2223281A4 (de) * 2007-12-20 2011-05-25 Hewlett Packard Development Co Modellierung eines computergestützten unternehmensprozesses zur anpassung und ablieferung
US8893141B2 (en) * 2008-01-28 2014-11-18 Microsoft Corporation System and method for describing applications for manageability and efficient scale-up deployment
US8583610B2 (en) * 2008-03-04 2013-11-12 International Business Machines Corporation Dynamically extending a plurality of manageability capabilities of it resources through the use of manageability aspects
US8413107B2 (en) * 2008-07-15 2013-04-02 Hewlett-Packard Development Company, L.P. Architecture for service oriented architecture (SOA) software factories
US8312419B2 (en) 2008-10-30 2012-11-13 Hewlett-Packard Development Company, L.P. Automated lifecycle management of a computer implemented service
US8341212B2 (en) * 2008-10-30 2012-12-25 International Business Machines Corporation Service description refinement based on actual service use
US8291479B2 (en) * 2008-11-12 2012-10-16 International Business Machines Corporation Method, hardware product, and computer program product for optimizing security in the context of credential transformation services
US20100153432A1 (en) * 2008-12-11 2010-06-17 Sap Ag Object based modeling for software application query generation
US8392567B2 (en) 2009-03-16 2013-03-05 International Business Machines Corporation Discovering and identifying manageable information technology resources
US9253020B2 (en) * 2009-06-11 2016-02-02 International Business Machines Corporation Web service interaction in a dynamically extensible business application
US8533230B2 (en) * 2009-06-24 2013-09-10 International Business Machines Corporation Expressing manageable resource topology graphs as dynamic stateful resources
US8788513B2 (en) * 2009-10-30 2014-07-22 Dassault Systemes Americas Corp. Computer method and system providing access to data of a target system
CA2684353A1 (en) 2009-11-04 2011-05-04 Ibm Canada Limited - Ibm Canada Limitee Identifying implicit services links using service usage information
KR101363561B1 (ko) * 2009-11-18 2014-02-14 한국전자통신연구원 웹을 통한 응용서비스 생명주기 관리를 위한 soa 기반 서비스 플랫폼 시스템
US8930935B2 (en) * 2009-12-28 2015-01-06 Verizon Patent And Licensing Inc. Composite service refactoring
US20120159341A1 (en) 2010-12-21 2012-06-21 Microsoft Corporation Interactions with contextual and task-based computing environments
US9818068B2 (en) 2011-04-01 2017-11-14 International Business Machines Corporation Metrics based design method and system
US8640082B2 (en) * 2011-08-31 2014-01-28 International Business Machines Corporation Specifying data occurrence in SOA based environments
WO2013090834A1 (en) * 2011-12-14 2013-06-20 Seven Networks, Inc. Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
US8700737B2 (en) * 2012-05-31 2014-04-15 Xerox Corporation Automated method for generating a web service composition
GB2509723A (en) * 2013-01-10 2014-07-16 Ibm Invoking web services that are determined at the time of execution
CN107430512B (zh) * 2014-10-31 2021-02-02 康维达无线有限责任公司 管理机器对机器系统中的应用关系
US11210388B2 (en) * 2016-08-19 2021-12-28 Visa International Service Association Automated access data change detection
US10673973B2 (en) * 2018-09-12 2020-06-02 International Business Machines Corporation Multiple vendor services oriented architecture (SOA) service requesting proxy
US10838774B2 (en) * 2018-10-23 2020-11-17 Ibs Software Fz-Llc Method and a system for facilitating multitenancy of services
CN112306475A (zh) * 2020-11-02 2021-02-02 平安普惠企业管理有限公司 通用接口的配置方法、装置、设备及存储介质
US20220237540A1 (en) * 2021-01-22 2022-07-28 International Business Machines Corporation User performance analysis and correction for s/w

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2768412B2 (ja) * 1992-07-15 1998-06-25 財団法人ニューメディア開発協会 ユ−ザ適応型システムおよびその適応方法
US6189141B1 (en) * 1998-05-04 2001-02-13 Hewlett-Packard Company Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control
US6467052B1 (en) 1999-06-03 2002-10-15 Microsoft Corporation Method and apparatus for analyzing performance of data processing system
US6487052B1 (en) * 1999-10-12 2002-11-26 Seagate Technology Llc Non-contact magnetic latch for disc drive actuator
JP2002229791A (ja) 2001-01-31 2002-08-16 Denso Corp インターフェース生成装置、プログラム及び記録媒体
US7174363B1 (en) * 2001-02-22 2007-02-06 Charles Schwab & Co., Inc. Distributed computing system architecture
US7325047B2 (en) * 2001-05-23 2008-01-29 International Business Machines Corporation Dynamic undeployment of services in a computing network
US7822860B2 (en) * 2001-12-11 2010-10-26 International Business Machines Corporation Method and apparatus for dynamic reconfiguration of web services infrastructure
US20040006653A1 (en) * 2002-06-27 2004-01-08 Yury Kamen Method and system for wrapping existing web-based applications producing web services
US7945860B2 (en) * 2003-05-14 2011-05-17 Hewlett-Packard Development Company, L.P. Systems and methods for managing conversations between information technology resources

Also Published As

Publication number Publication date
EP1542123A2 (de) 2005-06-15
US20050132381A1 (en) 2005-06-16
KR100724522B1 (ko) 2007-06-04
EP1542123A3 (de) 2005-07-06
JP2006012113A (ja) 2006-01-12
DE602004011455D1 (de) 2008-03-13
ATE384994T1 (de) 2008-02-15
KR20050056855A (ko) 2005-06-16
EP1542123B1 (de) 2008-01-23
JP4496067B2 (ja) 2010-07-07

Similar Documents

Publication Publication Date Title
DE602004011455T2 (de) Verfahren und System zur automatischen Erzeugung von Dienstschnittstellen für eine dienstorientierte Architektur
DE60118487T2 (de) Kommunikationsystem auf Basis von WDSL Sprache
DE60306186T2 (de) Verfahren und system zur anordnung von dienste in einer webdienstarchitektur
DE602005002679T2 (de) WEB-Dienst-Anwendungsprotokoll und SOAP-Verarbeitungsmodell
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE69637436T2 (de) Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen
DE102004016850B4 (de) Verfahren, Management-Server und Computerprogramm zum Zuordnen von Status-Nachrichten überwachter Objekte einer IT-Ifrastruktur
DE69712678T3 (de) Verfahren zur Echtzeitüberwachung eines Rechnersystems zu seiner Verwaltung und Hilfe zu seiner Wartung während seiner Betriebsbereitschaft
DE60127795T2 (de) System und Verfahren zur Metrik- und Statusdarstellung
DE602004004300T2 (de) Verfahren, System und Computerprogramm für das Senden und Empfangen von Meldungen durch einen individuellen Kommunikationskanal
DE60218069T2 (de) Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung
DE19705955A1 (de) Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
DE19712946A1 (de) Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
DE19955004A1 (de) Ableitung und Ausführung von Workload-Manager-Enklaven aus Workflows
DE19948028A1 (de) Verfahren und System zum Optimieren des Anforderungsschickens in Workflow Management Systemen
DE19960048A1 (de) Zeitgesteuerte Startbedingungen für Aktivitäten in Workflow-Management-Systemen
CH701481B1 (de) Prozessmanagement.
EP1322124A1 (de) Verfahren zum Betreiben eines Kommunikationsnetzes
EP1202167A1 (de) Verfahren zur modellbasierten objektorientierten Entwicklung von externen Schnittstellen für verteilte Softwaresysteme
DE112011103505T5 (de) Verfahren zum Validieren von Laufzeitreferenzen
EP0825525B1 (de) Verfahren zur Unterstützung des Erzeugens eines Objektes
EP1187009A2 (de) Verfahren zum Erzeugen von Informationsmodellen
DE10163533A1 (de) Persistente Speicherung von Netzwerkmanagementdaten unter Verwendung von Objektreferenzen
DE102004004345A1 (de) System und Verfahren zur Kommunikation zwischen entfernten Objekten und lokalen Stellvertretern
DE10065286B4 (de) Verfahren zum Entwurf und/oder zum Betrieb kombinierbarer Komponenten (TYCS)

Legal Events

Date Code Title Description
8320 Willingness to grant licences declared (paragraph 23)
8364 No opposition during term of opposition