New! View global litigation for patent families

DE60218069T2 - Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung - Google Patents

Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung

Info

Publication number
DE60218069T2
DE60218069T2 DE2002618069 DE60218069T DE60218069T2 DE 60218069 T2 DE60218069 T2 DE 60218069T2 DE 2002618069 DE2002618069 DE 2002618069 DE 60218069 T DE60218069 T DE 60218069T DE 60218069 T2 DE60218069 T2 DE 60218069T2
Authority
DE
Grant status
Grant
Patent type
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
DE2002618069
Other languages
English (en)
Other versions
DE60218069D1 (de )
Inventor
James Apex FLETCHER
David Raleigh LINDQUIST
Michael Durham WANDERSKI
Ajamu Raleigh WESLEY
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
Grant date

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/16Service discovery or service management, e.g. service location protocol [SLP] or Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L29/00Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00 contains provisionally no documents
    • H04L29/02Communication control; Communication processing contains provisionally no documents
    • H04L29/06Communication control; Communication processing contains provisionally no documents characterised by a protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/02Network-specific arrangements or communication protocols supporting networked applications involving the use of web-based technology, e.g. hyper text transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks
    • H04L69/322Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer, i.e. layer seven
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network
    • H04L63/0815Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network
    • H04L63/083Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to network resources
    • H04L63/102Entity profiles

Description

  • HINTERGRUND DER ERFINDUNG
  • Zugrunde liegende Erfindungen
  • [0001]
    Die vorliegende Erfindung betrifft die US-Patentanmeldung RSW920010189 (US-A-2003/055 868, Seriennummer 09/955 788) mit dem Titel „Building Distributed Software Services as Aggregations of Other Services"; die US-Patentanmeldung RSW920010190 (US-A-2003/055 878, Seriennummer 09/956 268) mit dem Titel „Programmatic Management of Software Resources in a Content Framework Environment"; und die US-Patentanmeldung RSW920010144 (US-A-2003/055 624, Seriennummer 09/956 276) mit dem Titel „Dynamic, Real-Time Integration of Software Resources through Services of a Content Framework", die sämtlich an International Business Machines Corporation abgetreten und am 19. September 2001 eingereicht worden sind. Diese US-Patentanmeldungen werden hier als die „verwandten Erfindungen" bezeichnet.
  • GEBIET DER ERFINDUNG
  • [0002]
    Die vorliegende Erfindung betrifft Computersoftware und behandelt vor allem Verfahren zur Bereitstellung gekoppelter Dienste in einer verteilten Rechnerumgebung.
  • BESCHREIBUNG DER ZUGRUNDE LIEGENDEN TECHNIK
  • [0003]
    Vor allem aufgrund der zunehmenden Nutzung des öffentlichen Internet und dessen als „World Wide Web" (oder einfach „Web") bekannten Teilbereichs durch Geschäftsleute und Privatpersonen haben verteilte Computernetze und die Datenverarbeitung in Netzen in den letzten Jahren große Beliebtheit erlangt. Auch andere Arten verteilter Computernetze wie beispielsweise interne (Intranet) und von außen zugängliche (Extranet) Unternehmensnetze werden immer beliebter. Indem sich Lösungsanbieter immer mehr auf die Bereitstellung verbesserter webgestützter Datenverarbeitungsleistungen konzentrieren, können viele der entwickelten Lösungen auf andere verteilte Datenverarbeitungsumgebungen angepasst werden. Somit dienen die Bezugnahmen auf das Internet und das Web lediglich zur Veranschaulichung und sind nicht als Einschränkung zu verstehen.
  • [0004]
    Ein Bereich, in dem die verteilte Datenverarbeitung Fortschritte macht, ist die so genannte Internetdienstinitiative („web services" initiative). Diese Initiative wird allgemein auch als „dienstorientierte Architektur" für verteilte Datenverarbeitung bezeichnet. Internetdienste stellen eine sich schnell entwickelnde Technologie für die Integration verteilter Anwendungen im Internet dar. Ein „Internetdienst" ist allgemein eine Schnittstelle, die einen Satz über das Netz verfügbarer Operationen beschreibt. Internetdienste führen eine bestimmte Aufgabe oder einen Satz Aufgaben aus. Sie können mit einem oder mehreren anderen Internetdiensten kooperieren, um ihren Anteil zum Arbeitsablauf oder einer geschäftlichen Transaktion beizusteuern. Zum Beispiel kann die Bearbeitung der Transaktion einer komplexen Bestellung eine automatisierte Zusammenarbeit zwischen einem Bestelldienst (d.h. der Bestellsoftware) beim bestellenden Unternehmen und einem Bestellungsbearbeitungsdienst bei einem oder mehreren Geschäftspartnern erfordern.
  • [0005]
    Viele Fachleute aus der Industrie sind der Meinung, dass die dienstorientierte Internetdienstinitiative die nächste Umwälzung des Internets darstellen wird. Durch Internetdienste wird für kooperierende Programme der Zugriff auf Software in verteilten Netzen ohne menschliches Eingreifen in großem Umfang verfügbar.
  • [0006]
    Internetdienste sind im Allgemeinen nach einem Modell aufgebaut, bei dem ein Unternehmen, das Dienste über das Netz anbietet, diese Dienste in einer über das Netz erreichbaren Registrierungsdatenbank bekannt macht, und andere Unternehmen, die solche Dienste benötigen, die Registrierungsdatenbank abfragen können, um die Verfügbarkeit der Dienste in Erfahrung zu bringen. Die Teilnehmer an diesem Datenverarbeitungsmodell werden im Allgemeinen als (1) Dienstanbieter (Service Provider), (2) Dienstanforderer (Service Requester) und (3) Dienstvermittler (Service Broker) bezeichnet. Diese Teilnehmer und die grundlegenden Arbeitsschritte beim Austauschen von Nachrichten zwischen den Teilnehmern sind in 1 dargestellt. Die Dienstanbieter 100 stellen diejenigen Einheiten dar, die Dienste bereithalten, und die Registrierungsdatenbank, in der diese Dienste veröffentlicht 110 werden, wird durch einen Dienstvermittler 120 verwaltet. Die Dienstanforderer 150 sind Einheiten, welche Dienste benötigen und die Registrierungsdatenbank des Dienstvermittlers abfragen 140. Wenn in der Registrierungsdatenbank ein gewünschter Dienst gefunden wurde, stellt der Dienstanforderer eine Verbindung zu ermittelten Dienstanbieter her 130, um den Dienst zu nutzen. Diese Arbeitsschritte erfolgen nach einem Programm ohne menschliches Eingreifen, sodass ein Dienstanforderer nach einem bestimmten Dienst suchen und diesen Dienst dynamisch, d.h. während der Laufzeit, nutzen kann. Das Modell der Internetdienste ist theoretisch für jede Art Datenverarbeitungsanwendung verfügbar. Die gegenwärtig über Registrierungsdatenbanken verfügbaren Internetdienste sind jedoch auf relativ einfache Programme wie beispielsweise Demoprogramme „Hello, World!", Programme, die für eine bestimmte Postleitzahl die aktuelle Temperatur angeben, Programme zur Ausführung von Währungsumrechnungen usw. beschränkt.
  • [0007]
    Zu den grundlegenden Standards, mit denen die Internetdienste arbeiten, gehören HTTP (Hypertext Transfer Protocol, Übertragungsprotokoll für Hypertext), SOAP (Simple Object Access Protocol, einfaches Zugangsprotokoll für Objekte) und/oder XML-Protokoll (Extensible Markup Language, erweiterte Auszeichnungssprache), WSDL (Web Services Description Language, Beschreibungssprache für Internetdienste) und UDDI (Universal Description, Discovery, and Integration; universelle Beschreibung, Erkennung und Integration). Das HTTP wird allgemein zum Austauschen von Nachrichten über TCP/IP-Netze (Transmission Control Protocol/Internet Protocol, Protokoll für die Übertragungskontrolle/Internetprotokoll) wie das Internet verwendet. Das SOAP ist ein auf XML beruhendes Protokoll für das Senden von Nachrichten zum Aufrufen von Verfahren in einer verteilten Umgebung. Das XML-Protokoll ist eine neuere Beschreibung des WWW-Konsortiums (W3C) für ein Übertragungsprotokoll der Anwendungsschicht, das die Übertragung von Nachrichten zwischen Anwendungen ermöglicht und mit dem SOAP verschmelzen kann. WSDL ist ein XML-Format zur Beschreibung verteilter Netzdienste. UDDI ist ein Registrierungsverfahren auf der Grundlage von XML, mit dessen Hilfe Unternehmen ihre Dienste auflisten und mit dessen Hilfe Dienstanforderer Unternehmen finden können, die bestimmte Dienste anbieten. (Nähere Informationen zu SOAP sind in „Simple Object Access Protocol (SOAP) 1.1, W3C Note 08 May 2000" zu finden, das im Internet unter http://www.w3.org/TR/2000/NOTE-SOAP-20000508 erhältlich ist. Nähere Informationen zum XML-Protokoll und der Schaffung eines XML-Protokollstandards sind unter http://www.w3.org/2000/xp zu finden. Die Beschreibung der WSDL mit dem Titel (Web Services Description Language (WSDL) 1.1, W3C Note 15 March 2001) ist im Internet unter http://www.w3.org/TR/2001/NOTE-wsdl-20010315 zu finden. Nähere Informationen zu UDDI sind in der UDDI-Beschreibung mit dem Titel „UDDI Version 2.0 API Specification, UDDI Open Draft Specification 8 June 2001" zu finden, die im Internet unter http://www.uddi.org/specification.html erhältlich ist. Die HTTP wird in „Request For Comments" („RFC") der Internet Engineering Task Force unter dem Titel „Hypertext Transfer Protocol -- HTTP/1.1" beschrieben.
  • [0008]
    Die Integration von Anwendungen unter Anwendung dieser offenen Standards erfordert mehrere Schritte. Es muss die Schnittstelle zu einem Internetdienst beschrieben werden, die den Namen der Verfahren zum Aufrufen des Dienstes, die Eingabe- und Ausgabeparameter des Verfahrens und dessen Datentypen usw. beinhaltet. Diese Informationen werden durch WSDL-Dokumente bereitgestellt und unter Verwendung einer UDDI-Bekanntmachungsoperation an eine Registrierungsdatenbank gesendet, die gemäß der UDDI-Beschreibung aufgebaut ist. Sobald der Dienst in der UDDI-Registrierungsdatenbank registriert ist, können Dienstanforderer UDDI-Suchanfragen ausgeben, um verteilte Dienste ausfindig zu machen. Dann gibt ein Dienstanforderer, der auf diese Weise einen Dienst gefunden hat, eine UDDI-Verknüpfungsanforderung aus, die den Anforderer unter Verwendung der Dienstinformation aus dem WSDL-Dokument dynamisch mit dem gefundenen Dienst verknüpft. (Diese UDDI-Operationen sind in 1 als Prinzipdarstellung gezeigt.) Zur Übertragung der WSDL-Dokumente und der UDDI-Anforderungen werden im Allgemeinen SOAP/XML-Protokoll- und HTTP-Nachrichten verwendet. (Im Folgenden sind Bezüge auf SOAP so zu verstehen, dass sie gleichwertig und semantisch ähnliche Aspekte des XML-Protokolls bedeuten. Darüber hinaus wird darauf hingewiesen, dass Bezüge auf „HTTP" im allgemeingültigen Sinne HTTP-ähnliche Funktionen bedeuten sollen. Einige UDDI-Operationen beispielsweise erfordern HTTPS anstelle von HTTP, wobei HTTPS eine HTTP-Version mit erhöhter Sicherheit ist. Diese Unterschiede sind für die vorliegende Erfindung jedoch ohne Belang, sodass im Folgenden bei der Erörterung des HTTP kein Unterschied gemacht wird.)
  • [0009]
    Das Ziel von Internetdiensten besteht darin, Dienstanforderern einen transparenten Zugriff auf Programmkomponenten zu ermöglichen, die sich an einem oder mehreren fernen Standorten befinden können, selbst wenn diese Komponenten auf verschiedenen Betriebssystemen laufen und in anderen Programmiersprachen als denen des Anforderers geschrieben sind. Obwohl bereits umfangreiche Arbeit zum Definieren der Ziele, der Architektur und der Standards geleistet worden ist, auf die sich die Internetdienste stützen, bleibt noch viel zu tun, damit die Internetdienste wirksam und leistungsfähig arbeiten können.
  • [0010]
    Insbesondere ist zu berücksichtigen, dass sich Benutzer bei vielen Anwendungsdiensten, die auf herkömmliche Weise bereitgestellt werden, vor deren Nutzung einer Identitätsprüfung und einer Berechtigungsprüfung unterziehen müssen. Unter der Identitätsprüfung ist hier die Ermittlung der Tatsache zu verstehen, dass der Benutzer wirklich derjenige ist, für den er sich ausgibt, während unter der Berechtigungsprüfung normalerweise zu verstehen ist, mit welchen Zugriffsrechten dieser Benutzer ausgestattet ist oder ob dieser Benutzer auf einen bestimmten Dienst oder dessen Funktion zugreifen darf. D. Ferguson beschreibt in „Technical and Product Architecture and Roadmap", IBM Web Services, [Online] Mai 2001 (2001-05), S. 1 bis 42, XP002272181 ein solches Verfahren. Es ist beabsichtigt, dass in der Umgebung von Internetdiensten ein Dienstanbieter dynamisch ausfindig gemacht werden kann, um einen bestimmten Dienst auszuführen. Wenn mehrere Dienstanbieter zur Verfügung stehen, kann aus diesen Dienstanbietern anhand Kriterien wie beispielsweise des Preises für die Nutzung des Dienstes dieses Anbieters, der garantierten Antwortzeit dieses Anbieters usw. ein bestimmter Dienstanbieter ausgewählt werden. Jeder Dienstanbieter kann für die Identitäts- und Berechtigungsprüfungsinformationen unterschiedliche Formate sowie eigene Verfahren für den Zugriff auf die Identitäts- und Berechtigungsprüfungsfunktionen verwenden. Den Erfindern sind bislang keine Verfahren zum Zusammenschließen oder Koppeln unterschiedlicher Identitätssysteme in der Umgebung von Internetdiensten bekannt, die die Nutzung von miteinander verbundenen Internetdiensten deutlich befördern würden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • [0011]
    Die vorliegende Erfindung ist in den anhängenden Ansprüchen definiert und stellt Verfahren, Systeme und Computerprogrammprodukte für miteinander verbundene Dienste in einem Datenverarbeitungsnetz bereit. Bei bevorzugten Ausführungsarten bieten eine oder mehrere Softwareressourcen einen gekoppelten Dienst, wobei dieses Verfahren folgende Schritte umfasst: Definieren einer Bereitstellungsschnittstelle des gekoppelten Dienstes; Beschreiben der Bereitstellungsschnittstelle in einem Dienstbeschreibungsdokument; Empfangen von Berechtigungsnachweisen eines Benutzers des gekoppelten Dienstes gemäß dem Dienstbeschreibungsdokument; Analysieren der empfangenen Berechtigungsnachweise; und Erteilen der Erlaubnis für den Benutzer, den gekoppelten Dienst zu nutzen, wenn dies durch die Analyse angezeigt wird.
  • [0012]
    Das Verfahren kann ferner das Definieren einer Bereitstellungsschnittstelle mindestens einer der einen oder mehreren Softwareressourcen des gekoppelten Dienstes oder jeder der mindestens einen Softwareressourcen umfassen, indem die Bereitstellungsschnittstelle eines durch die Softwareressource ausgeführten Dienstes im Dienstbeschreibungsdokument oder in einem oder mehreren anderen Dienstbeschreibungsdokumenten beschrieben wird. In diesem Fall können Berechtigungsnachweise des Benutzers gemäß dem Dienstbeschreibungsdokument oder gemäß dem einen oder den mehreren anderen Dienstbeschreibungsdokumenten nicht nur für den gekoppelten Dienst, sondern auch für die mindestens eine Softwareressource empfangen werden. Dann kann dem Benutzer vorzugsweise die Nutzung ausgewählter durch die Bereitstellungsschnittstelle der mindestens einen Softwareressource angebotener, Dienste erlaubt werden, wenn dies wiederum durch die Analyse dieser Berechtigungsnachweise angezeigt wird.
  • [0013]
    Bei bevorzugten Ausführungsarten umfasst die Analyse die (1) Identitätsprüfung und/oder (2) die Berechtigungsprüfung der Berechtigungsnachweise.
  • [0014]
    Somit können Identitätsinformationen durch Programme zwischen verteilten Diensten übertragen werden, die durch Softwareressourcen des gekoppelten Dienstes ausgeführt werden. Vorzugsweise umfasst das Übertragen durch Programme das Senden einer Nachricht, die in den Kopfdaten der Nachricht den Berechtigungsnachweis und in einem Hauptteil der Nachricht eine Dienstanforderung umfasst. Die Nachricht kann zum Beispiel eine SOAP-Nachricht (Simple Object Access Protocol, einfaches Zugangsprotokoll für Objekte) sein.
  • [0015]
    Die Markierungssprache wird vorzugsweise zum Beschreiben der Dienstbeschreibungsdokumente genutzt. Als Markierungssprache dient vorzugsweise die Beschreibungssprache für Internetdienste (Web Services Description Language, WSDL).
  • [0016]
    Das Verfahren kann ferner das Registrieren des Dienstbeschreibungsdokuments in einer Registrierungsdatenbank umfassen, bei der es sich um eine über das Netz erreichbare Registrierungsdatenbank handeln kann, auf die unter Verwendung standardisierter Nachrichten zugegriffen wird.
  • [0017]
    Im Folgenden werden bevorzugte Ausführungsarten lediglich beispielhaft unter Bezug auf die folgenden Zeichnungen beschrieben, wobei gleiche Bezugsnummern grundsätzlich dieselben Elemente bezeichnen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • [0018]
    1 zeigt ein Schaubild, das die beteiligten Parteien und die Grundoperationen eines dienstorientierten Architektur nach dem Stand der Technik veranschaulicht;
  • [0019]
    2 ist ein Blockschaubild, das ein Portlet gemäß den bevorzugten Ausführungsarten der verwandten Erfindungen veranschaulicht, das als Internetdienst-Proxy aufgebaut ist;
  • [0020]
    3A und 3B veranschaulichen den Inhalt von WSDL-Dokumenten, die eine Verteilerschnittstelle bzw. eine Systemschnittstelle gemäß bevorzugten Ausführungsarten der verwandten Erfindungen beschreiben;
  • [0021]
    4 veranschaulicht das Stapelmodell für Internetdienste zur Koppelung von Diensten gemäß der Beschreibung der verwandten Erfindungen;
  • [0022]
    5A bis 5E veranschaulichen als Beispiel einen Ausschnitt aus einem WSDL-Dokument gemäß bevorzugten Ausführungsarten der vorliegenden Erfindung, das eine Bereitstellungsschnittstelle eines Dienstes beschreibt;
  • [0023]
    6 zeigt ein Ablaufschaubild, das zur Ausführung bevorzugter Ausführungsarten der vorliegenden Erfindung verwendet werden kann; und
  • [0024]
    7A und 7B zeigen ein Beispiel einer SOAP-Nachricht nach dem Stand der Technik, die in ihren Kopfdaten eine digitale Signatur enthält.
  • BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSARTEN
  • [0025]
    Das Versprechen von Internetdiensten lautet, dass verteilte Anwendungen wie nie zuvor zusammenarbeiten können, indem sie durch die Offenheit und Konzentration von Unternehmenssystemen eine neue Generation nahtlos hochintegrierter Anwendungen bieten. Internetdienste stellen verteilte Softwareressourcen breiteren Kreisen zur Verfügung, sodass Software nun als Dienstleistung vermarktet werden kann. Dienste von einem oder mehreren Dienstanbietern werden dynamisch miteinander gekoppelt, um Benutzern die zum Ausführen einer Aufgabe oder eines Dienstes, der jedem betreffenden Benutzer gerade von Interesse ist, benötigte Funktionalität zu bieten. Zur wirksamen Nutzung dieser dynamisch integrierten Dienste muss es möglich sein, die von ihnen verwendeten heterogenen Identitätssysteme automatisch und dynamisch miteinander zu verknüpfen. Dies muss während der Laufzeit erfolgen können, damit (menschliche oder programmgesteuerte) Benutzer nahtlos auf Identität und Zugangsberechtigung für die Nutzung der Dienste geprüft oder „identifiziert" werden können. Darüber hinaus ist es wünschenswert, diese nahtlose Identitätsprüfung mit einmaliger Anmeldung durchzuführen, da mehrfache Identitätsprüfung während der Ausführung eines bestimmten Dienstes (einschließlich Diensten, die aus mehreren Teildiensten bestehen) zur Verärgerung führt und zeitaufwändig und unproduktiv ist. Die vorliegende Erfindung stellt gemäß der Beschreibung für diese Anforderungen eine Lösung bereit und verbessert die Leistungsfähigkeit einer Anzahl Verfahren nach dem offenen Industriestandard.
  • [0026]
    Vor der Erörterung der Einzelheiten der Ausführungsarten ist ein Blick auf Hintergrundinformationen hilfreich, darunter auf die Technologien, auf denen bevorzugte Ausführungsarten der Erfindung aufbauen. In den verwandten Erfindungen werden Verfahren zur Verwaltung von Internetdiensten und zum Bereitstellen eines Verknüpfungspunktes definiert, an dem Dienste zu neuen Diensten miteinander gekoppelt werden können, die dann verteilt werden können. Bevorzugte Ausführungsarten der verwandten Erfindungen bauen auf einem Inhaltssystem wie beispielsweise einer Portalplattform auf, da ein solches System viele integrierte Dienste für die Verwaltung von Inhalten und die Speicherung von Diensten bietet wie beispielsweise Nachhaltigkeit, Personalisierung und Codeumsetzung. Die in den verwandten Erfindungen beschriebenen Verfahren erweitern die Plattformen, um die Kopplung, Verteilung und Verwaltung von Internetdiensten zu ermöglichen. Es wurde ein Verknüpfungstool mit Modellcharakter beschrieben, das zum Definieren eines gekoppelten Dienstes verwendet werden kann; dann können Softwareressourcen gemäß dieser Definition für gekoppelte Dienste programmgesteuert integriert werden. Darüber hinaus können die gekoppelten Dienste automatisch verwaltet werden.
  • [0027]
    Die vorliegende Erfindung definiert Verfahren zum Bereitstellen der gekoppelten Dienste, die sieh aus der Anwendung der verwandten Erfindungen ergeben. Diese Verfahren können auch an gekoppelte Dienste angepasst werden, die anderweitig erzeugt werden, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen. Darüber hinaus ist anzumerken, dass in der vorliegenden Erörterung zwar von der Bereitstellung „gekoppelter" Dienste die Rede ist, aber ein gekoppelter Dienst wiederum ein (aus Teildiensten bestehender) Internetdienst ist und die vorliegende Erfindung deshalb vorteilhaft in Verbindung mit solchen Internetdiensten angewendet werden kann, die als elementare Dienste anzusehen sind (und deshalb einen Spezialfall von Kopplung darstellen, bei der der Satz gekoppelter „Teildienste" aus nur einem Element besteht).
  • [0028]
    Eine handelsübliche Portalplattform, auf welcher Ausführungsarten der vorliegenden Erfindung (wie auch der verwandten Erfindungen) aufgebaut werden können, ist der WebSphere® Portal Server („WPS") von der International Business Machines Corporation („IBM"). („WebSphere" ist ein eingetragenes Warenzeichen von IBM.) Zu beachten ist jedoch, dass bei der Erörterung der verwandten Erfindungen und der vorliegenden Erfindung von einer Portalplattform die Rede ist, aber die erfindungsgemäßen Konzepte auf andere Arten von Inhaltssysteme angewendet werden können, die eine analoge Funktionalität bieten und auch auf andere Portale als WPS angewendet werden können, sodass die Nennung von Portalen und ihrer Portlet-Ausführung lediglich zur Veranschaulichung dient und nicht als Einschränkung aufzufassen ist.
  • [0029]
    Die dynamische Integration von Internetdiensten während der Laufzeit, die durch die verwandten Erfindungen ermöglicht wird, kann ein Verknüpfungs-Tool für die Kopplung neuer Internetdienste verwenden. Unter Verwendung dieses Verknüpfungs-Tool kann ein Systemadministrator (oder entsprechend ein Dienstentwickler oder eine andere Person) einen neuen Dienst definieren, der sich aus differenzierten Diensten zusammensetzt. Die differenzierten Dienste, aus denen sich andere Dienste zusammensetzen können, können lokal oder auf fernen Rechnern untergebracht sein, und die Verfahren der verwandten Erfindungen ermöglichen das Aufrufen und Nutzen dieser Dienste auf transparente weise unabhängig davon, ob sie lokal oder auf fernen Rechnern untergebracht sind. Die differenzierten Dienste können eine beliebige Form von Programmlogik einschließlich Scriptprogrammen, JavaTM-Klassen, Computer-Klassen, EJBs („Enterprise JavaBeans"TM), gespeicherte Prozeduren, IMS oder andere Datenbanktransaktionen, herkömmliche Anwendungen usw. enthalten. („Java" und „Enterprise JavaBeans" sind Warenzeichen von Sun Microsystems, Inc.) Die auf diese Weise erzeugten Internetdienste können dann durch die Portalplattform automatisch verwaltet und auch zum rekursiven Erzeugen neuer Internetdienste verwendet werden, was in den verwandten Erfindungen beschrieben wird.
  • [0030]
    Die verwandten Erfindungen werten die Portlets zur Portalschnittstelle auf und bauen, auch auf dem Konzept einer fernen Portlet-Schnittstelle auf (wo diese Konzept auf programmgesteuerte Portlets erweitert wird), um den Zugriff auf Softwareressourcen zu ermöglichen. Auf diese Weise funktionierende Portlets können als „Internetdienstvermittler" oder als „Internetdienst-Proxys" bezeichnet werden. Das heißt, durch die verwandten Erfindungen wird ein Portlet in die Lage versetzt, als Vermittler zwischen einer Anwendung oder Softwareressource zu agieren, die einen bestimmten Dienst und eine diesen Dienst leistende Softwareressource anfordert. Die Softwareressource, die eine bestimmte Funktion ausführt, kann statisch mit einem Internetdienst-Proxy (zum Beispiel während der Entwicklung) oder mit einer Softwareressource gekoppelt sein, die dynamisch ausgewählt wird (zum Beispiel anhand von Kriterien, die während der Laufzeit geprüft werden). In beiden Fällen empfängt der Portlet-Proxy Anforderungsnachrichten und leitet sie an die Softwareressource weiter, mit der er verbunden ist; sobald die Softwareressource die angeforderte Funktion ausgeführt hat, sendet sie ihre Antwort an den Portlet-Proxy zurück, der diese wiederum an den Anforderer weiterleitet.
  • [0031]
    Anzumerken ist, dass die zum Ausführen eines gekoppelten Dienstes aufgerufenen Softwareressourcen für ein Zusammenwirken zwischen Programmen ausgelegt, alternativ aber ihrem Wesen nach auch visuell gestaltet sein können. Zum Beispiel können visuell gestaltete Ressourcen während der Ausführung eines Internetdienstes aufgerufen werden, der in erster Linie nur zwischen Programmen ausgeführt wird. Der hier gebrauchte Begriff „programmgesteuertes Portlet" bezeichnet im Allgemeinen Portlet-Proxys gemäß den verwandten Erfindungen und der vorliegenden Erfindung unabhängig davon, ob die zugrunde liegenden Softwareressourcen einen Code für visuelle Darstellung beinhalten.
  • [0032]
    2 zeigt ein Blockschaubild, das ein als Internetdienst-Proxy aufgebautes Portlet gemäß den verwandten Erfindungen veranschaulicht. Dabei beinhaltet der Portlet-Proxy 240 eine Verteilungsschnittstelle 210, eine Systemschnittstelle 220 und eine Funktionsschnittstelle 230. Der Portlet-Proxy tauscht über diese Schnittstellen Daten mit einer Portalplattform 200 aus und dient als Vermittler zwischen der Portalplattform und der Softwareressource 250, welche die gewünschte Funktion ausführt. Die Einzelheiten jeder Funktionsschnittstelle richten sich nach dem durch die Softwareressource 250 bereitgestellten Internetdienst und sind nicht Bestandteil der verwandten Erfindungen. Die verwandten Erfindungen stellen jedoch die Funktionsschnittstelle der Softwareressource 250 als Schnittstelle 230 des Portlet-Proxys zur Verfügung. (Die Nutzbarmachung der Funktionsschnittstelle unter Verwendung von WSDL-Definitionen und SOAP-Diensten kann mit Hilfe eines handelsüblichen Tools wie des IBM Web Services Toolkit („WSTK") während des Verteilungsprozesses erfolgen, was in den verwandten Erfindungen erörtert wurde.)
  • [0033]
    Die Verteilungsschnittstelle und die Systemschnittstelle werden in den verwandten Erfindungen detailliert beschrieben. Im Folgenden wird ein kurzer Überblick gegeben. Gemäß den bevorzugten Ausführungsart der verwandten Erfindungen sind eine Verteilungsschnittstelle und eine Systemschnittstelle für jedes Portlet definiert, das als Internetdienst-Proxy dient (obwohl bei alternativen Ausführungsarten nicht alle diese Schnittstellen genutzt werden müssen). Diese neuen Schnittstellen können auch als Verteilungsanschlusstyp deployment Port type) bzw. als Systemanschlusstyp (system Port type) bezeichnet werden. Ein Portlet gemäß den verwandten Erfindungen definiert somit einen Dienstanbietertyp, der die zur Integration der Softwareressourcen und zur Dienstzusammenarbeit und -verwaltung erforderlichen Anschlusstypen beinhaltet. („Anschlusstypen" ist ein in der Technik verwendeter Begriff zur Beschreibung der Funktionen eines Portlet und „Dienstanbietertyp" ist ein Begriff zur Bezeichnung einer Gruppe von Anschlusstypen.)
  • [0034]
    Die Verteilungsschnittstelle versetzt einen Portlet-Proxy (das heißt, einen gekoppelten Internetdienst, der durch einen Portlet-Proxy dargestellt wird), in die Lage, gemäß den verwandten Erfindungen rekursiv bei aufeinander folgenden Verknüpfungsoperationen des Internetdienstes verwendet zu werden. Die Verteilungsschnittstelle eines Portlet „A" liefert zum Beispiel während der Verknüpfung mit anderen Portlets zur Bildung eines neuen Internetdienstes „Z" Informationen über das Portlet A. Indem eine Verteilungsschnittstelle gemäß den verwandten Schnittstellen für den Internetdienst Z definiert wird, können anschließend Informationen über den Internetdienst Z bereitgestellt werden, während der Dienst Z zum Verknüpfen neuer Dienste verwendet wird.
  • [0035]
    Die Systemschnittstelle wird zur Laufzeitverwaltung von Portlets (das heißt, von durch Portlet-Proxys dargestellten Internetdiensten) durch die Portalplattform verwendet. Durch die Verwendung der Systemschnittstelle kann die Portalplattform Funktionen wie das Protokollieren von Ereignissen, Gebührenabrechnung und andere Arten administrativer Vorgänge ausführen, die mit der Ausführung von Internetdiensten verbunden sind. Zu diesem Zweck wird zwischen der Portalplattform und dem Portlet-Proxy eine Zweiwegekommunikation durchgeführt.
  • [0036]
    3A und 3B zeigen einfache WSDL-Dokumente, die die Beschreibung der Verteilungssoftware bzw. der Systemschnittstelle veranschaulichen. Gemäß bevorzugten Ausführungsarten der verwandten Erfindungen werden die Verteilungs- und Systemanschlusstypen in Form von WSDL-Dokumenten dargestellt, die dann in der Registrierungsdatenbank registriert werden können. In Element 310 des WSDL-Dokuments 300 in 3A heißt die beispielhafte Verteilungsschnittstelle „Deployment" und beinhaltet Arbeitsschritte (Operationen) wie „getDisplayName" und „getDisplayIcon16x16" (siehe Abschnitt 330). Diese Arbeitsschritte können zum Beispiel zum Abrufen eines Namens zur Beschreibung des Internetdienstes und zum Abrufen einer Grafik für die Darstellung des Internetdienstes in einer Menüleiste eines Verknüpfungstools für den Internetdienst verwendet werden. Gemäß der WSDL-Beschreibung werden die zur Datenübertragung mit einem Dienst dienenden Eingabe- und Ausgabenachrichten im Abschnitt „<message>"-Elemente 320 benannt, wo die durch diese Nachrichten verwendeten Parameter als „<parts>"-Elemente definiert sind. Somit ist ein Nachrichtenelement für jede Nachricht jedes Arbeitsschrittes definiert, der für diesen Anschlusstyp beschrieben ist. (Nähere Informationen zu den Einzelheiten eines WSDL-Dokuments siehe WSDL-Beschreibung.)
  • [0037]
    Das WSDL-Dokument 350 in 3B definiert die Systemschnittstelle, die im Beispiel als „System" bezeichnet wird (siehe Element 360). In diesem Beispiel wird der komplexe Datentyp mit der Bezeichnung „Event" definiert (siehe Element 370), der zwei Zeichenfolgeparameter und einen Datenparameter umfasst. Dieser Datentyp kann zum Beispiel verwendet werden, wenn Protokolldaten ausgetauscht werden, die in einer Prüfprotokolldatei aufgezeichnet werden sollen. Desgleichen wird ein Arbeitsschritt „logEvent" definiert (siehe Element 390), wobei in diesem Beispiel eine Einwegeoperation unter Verwendung einer Nachricht „logEventReceive" (siehe Element 380) aufgerufen wird, die einen Parameter vom Typ Event aufweist. Außerdem definiert das Beispiel einen Arbeitsschritt „reportUsage", die zwei Nachrichten „reportInput" und „reportOutput" aufweist.
  • [0038]
    Bevorzugte Ausführungsarten der vorliegenden Erfindung können die Verteilungsschnittstelle erweitern, damit sie die Bereitstellungsinformationen über den gekoppelten Internetdienst beinhaltet. Alternativ kann zu diesem Zweck eine separate Bereitstellungsschnittstelle definiert werden, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen. Eine Beschreibung 500 der Bereitstellungsschnittstelle für die Probe ist in den 5A bis 5E dargestellt. Durch die Darstellung des Bereitstellungsanschlusstyps oder der Bereitstellungsschnittstelle in Form eines WSDL-Dokuments gemäß der vorliegenden Beschreibung können die Bereitstellungsinformationen für einen Internetdienst dann programmgesteuert in einer Registrierungsdatenbank registriert und Informationen über die Bereitstellungsschnittstelle programmgesteuert während der Laufzeit gefunden und verknüpft werden.
  • [0039]
    Wenn die Bereitstellungsschnittstelle als Erweiterung der Verteilungsschnittstelle ausgeführt wird, beschreibt die Schnittstellenbeschreibung für einen bestimmten Internetdienst vorzugsweise seine Arbeitsschritte in einem Bereitstellungselement portType innerhalb einer Definition der Verteilungsschnittstelle. Zum Beispiel kann die Beschreibung 300 der Verteilungsschnittstelle in 3A so erweitert werden, dass sie ein Verteilungselement portType beinhaltet. Die in den 5A bis 5E dargestellten Nachrichtenbeschreibungen der Probe können zu anderen Nachrichten hinzugefügt werden, die bei Verwendung dieses Ansatzes in einer Verteilungsbeschreibung definiert sind (siehe Element 320 von 3A), und ein anderes Element wie das in den 5A bis 5E dargestellte Element portType kann zusammen mit dem portType 330 für Verteilungsoperationen beschrieben werden. Alternativ kann für die Bereitstellung ein separates WSDL-Dokument erzeugt werden, wobei dieses separate Dokument sein eigenes Element <types>, sein eigenes Element <schema> usw. aufweist. Bei dieser Alternative kann sich das Element <definitions> des WSDL-Dokuments aus Bereitstellungsnachrichten und -operationen zusammensetzen, wie sie in der Schnittstellenbeschreibung der 5A bis 5E dargestellt sind.
  • [0040]
    Gemäß der WSDL-Beschreibung sind die für den Datenaustausch mit einem Internetdienst verwendeten Eingabe- und Ausgabenachrichten in den Elementen „<message>" beschrieben, in denen die von diesen Nachrichten verwendeten Parameter als „<part>"-Elemente definiert sind. Somit ist für jede Nachricht jeder für diesen Anschlusstyp definierten Operation ein Nachrichtenelement definiert. (Nähere Informationen zu den Einzelheiten eines WSDL-Dokuments siehe die WSDL-Beschreibung.)
  • [0041]
    Gemäß der Beschreibung in den verwandten Erfindungen wird zur Modellierung der Operationen zur Ausführung aus anderen Internetdiensten (d.h. Teildiensten) bestehender gekoppelter Internetdienste ein Steuerungsgraph verwendet.
  • [0042]
    Die Knoten des Graphen stellen ausgewählte Portlet-Operationen dar, während die Verbindungslinien zwischen den Knoten mögliche Übergänge von einem Betriebszustand oder Prozess des Dienstes zu einem anderen darstellen. Diese Verbindungslinien des Dienstes können mit einer oder mehreren Übergangsbedingungen und erforderlichenfalls mit Datenzuordnungsinformationen verknüpft werden. Die Bedingungen geben an, unter welchen Bedingungen der nächste verknüpfte Dienst aufgerufen werden soll. Oft werden diese Bedingungen anhand der Ergebnisse eines vorhergehenden Aufrufs eines Dienstes festgelegt. Unter Datenzuordnung ist zu verstehen, dass Operationen zwischen Portlet-Anschlusstypen verknüpft und Daten von einer Operation zur nächsten übertragen werden. Zum Beispiel können die Datenzuordnungsinformationen anzeigen, dass die Ausgabeparameter eines Dienstes den Eingabeparametern eines anderen Dienstes zugeordnet werden.
  • [0043]
    Vorzugsweise wie die Web Services Flow Language („WSFL) erweitert, um den Steuerungsgraphen zu unterstützen. Insbesondere können zu einem Stapel von Internetdiensten WSFL-Permanentspeicherverfahren und Laufzeitbewertungsverfahren unter Verwendung von Steuerungsgraphen hinzugefügt werden, damit sie gemäß den Graphen abgearbeitet werden, die durch eine Verknüpfungseinheit zur Verknüpfung von Diensten erzeugt wurden. Eine ausführliche Erörterung der WSFL ist in der WSFL-Beschreibung mit dem Titel „Web Services Flow Language (WSFL 1.0)" von Prof. Dr. Leymann (Mai 2001) zu finden, die über das Internet von IBM unter http://www-4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf erhältlich ist.
  • [0044]
    4 veranschaulicht den Ansatz der Stapelung von Internetdiensten für die Kopplung von Diensten, die in den verwandten Erfindungen beschrieben wird. Der Stapel 400 von Internetdiensten wird vorzugsweise durch den WSFL-Dienstablauf 410 zum Definieren und Ausführen gekoppelter Dienste unterstützt, während die Diensterkennung 420 und die Dienstveröffentlichung 430 vorzugsweise unter Verwendung von UDDI erfolgen. Der Stapel von Internetdiensten umfasst auch eine WSDL-Schicht 440, um Dokumente zur Dienstbeschreibung zu unterstützen. Zur Nachrichtenübertragung auf Grundlage von XML 450 kann SOAP verwendet werden. Zur Netzunterstützung 460 können Protokolle wie HTTP, FTP (File Transfer Protocol, Dateiübertragungsprotokoll), eMail, MQ (Message Queuing, Steuerung von Nachrichtenwarteschlangen usw. verwendet werden. Gemäß der Erörterung in den verwandten Erfindungen wird die WSDL verwendet, um Internetdienstanschlusstypen zu definieren und ferner zu definieren, wie Operationen dieser Anschlusstypen aufgerufen werden, während WSFL zur Koppelung der Internetdienste (und somit zur Koppelung ihrer Schnittstellen) verwendet wird. Während der Laufzeit werden Dienste innerhalb einer Registrierungsdatenbank unter Verwendung des UDDI-Diensterkennungsprozesses ermittelt und mit der Verwendung von Informationen aus ihren WSDL-Definitionen verknüpft. Dann verwendet die WSFL diese Definitionen (des Anschlusstyps) während der Laufzeit zur Koppelung der Dienste. (Da die Signaturen der Operationen normalerweise nicht mehr eins zu eins zusammenpassen, kann in einem Proxy-Modell ein in den WSFL-Beschreibungen definierter „Modulverbindungs"-Mechanismus (plug link) verwendet werden, um Schnittstellen gemäß der Beschreibung in den verwandten Erfindungen auf einfache Weise zuzuordnen und so eine Beziehung zwischen den Arbeitsschnittstellen herzustellen. Die verwandten Erfindungen beschreiben die Verwendung dieses Plug-Link-Mechanismus als unveränderliche Definition für die Integration von Portlet-Proxys für die Ausführung von Internetdiensten.)
  • [0045]
    Ein Entwickler, der den Quellcode für eine als Internetdienst zu verbreitende Softwareressource entwickelt, beschreibt das durch diesen Dienst bereitzustellende Identitätsprüfungs-, Berechtigungsprüfungs- und/oder Konfigurierungsverfahren. Die Dienste können dann gemäß der Beschreibung in den verwandten Erfindungen miteinander gekoppelt und die Verfahren der vorliegenden Erfindung zur Bereitstellung des gekoppelten Dienstes durchgeführt werden. Beispielsweise sei angenommen, dass der gekoppelte Dienst dafür ausgelegt ist, einem menschlichen Benutzer eMail-Dienste bereitzustellen. Ein Teildienst kann zum Einrichten eines eMail-Kontos für den Benutzer bereitgestellt werden. Üblicherweise müssen für diesen Teildienst zur Einrichtung des Kontos Informationen wie Vor- und Nachname des Benutzers, eine zu dieser Person gehörende eMail-Adresse, ein Passwort für den Zugriff dieser Person auf ihr eMail-Konto und möglicherweise Konfigurierungsinformationen eingegeben werden, zum Beispiel wie viel Speichervolumen für die eMail-Nachrichten dieses Benutzers reserviert werden soll. (Das gespeicherte Passwort kann dann zusammen mit der Benutzerkennung zur Überprüfung der Identität dieses Benutzers verwendet werden, wenn er unter Verwendung eines anderen Teildienstes des gekoppelten eMail-Dienstes auf seine eMail-Nachrichten zugreift.) Auch die Informationen über die Zugriffsrechte können durch eine Eingabe für den Teildienst zur Kontoeinrichtung bereitgestellt werden. Einem Benutzer, der gleichzeitig auch Systemadministrator ist, können zum Beispiel erweiterte Zugriffsrechte gewährt werden, damit er zum Beispiel das Speichervolumen für einen anderen Benutzer vergrößern, die E-Mail eines anderen Benutzers löschen kann usw. Dann können WSDL-Dokumente dafür verwendet werden, die durch jeden Teildienst bereitgestellten Arbeitsschritte und die Nachrichten und Parameter zu definieren, die zum Aufrufen dieser Arbeitsschritte dienen.
  • [0046]
    Gemäß der Erörterung in den verwandten Erfindungen kann das WSDL-Dokument durch einen menschlichen Benutzer oder programmgesteuert oder durch eine Kombination von beiden erstellt werden. (Zum Beispiel kann der menschliche Benutzer zum Eingeben Informationen wie des Anschlusstypnamens, der Speicherplätze des Namensbereichs usw. aufgefordert werden, während für die Veröffentlichungsverfahren einer Softwareressource die Elemente <operation> und <message> programmgesteuert erzeugt werden. WSTK von IBM ist ein Beispiel für ein handelsübliches Produkt, das zur programmgesteuerten Erzeugung der WSDL für eine bestimmte Softwareressource verwendet werden kann. Siehe auch „The Web services (r)evolution: Part 4, Web Services Description Language (WSDL)", G. Glass (Februar 2001), veröffentlicht von IBM im Internet unter http://www-106.ibm.com/developerworks/webservices/library/wspeer4, wo ein Beispiel für die programmgesteuerte Erzeugung eines WSDL-Dokuments für einen einfachen Wetterdienst mit den Funktionen „getTemp" und „setTemp" dargestellt wird.
  • [0047]
    Um eine Verbindung zwischen Identitätssystemen von dynamisch integrierten Diensten herzustellen, wird gemäß der vorliegenden Erfindung die Bereitstellungsschnittstelle jedes Dienstes unter Verwendung eines WSDL-Dokuments einer UDDI-Registrierungsdatenbank mitgeteilt. Dann kann die Bereitstellungsschnittstelle des gekoppelten Dienstes entweder durch manuelle oder programmgesteuerte Auswahl der Schnittstellen der Teildienste des gekoppelten Dienstes rekursiv erzeugt werden, und ein WSDL-Dokument für diese neue Bereitstellungsschnittstelle kann erzeugt und veröffentlicht werden.
  • [0048]
    Aufgrund des dynamischen Charakters sowohl der Ermittlung als auch des Aufrufens von verteilten Diensten lassen sich gemeinsame Identitätsprüfungs- und Berechtigungsprüfungsoperationen nur schwer ausführen. Die hier beschriebenen Verfahren beheben diese Schwierigkeit, indem sie die Bereitstellung eines gekoppelten Dienstes innerhalb des Arbeitsablaufs eines Internetdienstes ermöglichen, wobei die Arbeitsschritte unter Verwendung von WSDL-Dokumenten erkannt und unter Verwendung von SOAP-Nachrichten innerhalb einer Arbeitsablaufdefinition aufgerufen werden.
  • [0049]
    Gekoppelte Dienste können den Zugriff auf ihre angebotenen Funktionen auf diejenigen Benutzer beschränken, die über ausreichende Berechtigungsnachweise verfügen und diese Berechtigungsnachweise unter Verwendung einer angebotenen Berechtigungsprüfung erfolgreich vorlegen. Es kann auch von Vorteil sein, Benutzerprofile für das Angebot eines gekoppelten Dienstes zu erzeugen und wahlweise das Abfragen, Ändern und/oder Löschen dieser Benutzerprofile unter Verwendung entsprechender Funktionen des Dienstes zuzulassen.
  • [0050]
    Im Folgenden werden die in den 5A bis 5E dargestellten Nachrichten und Arbeitsschritte der Probe beschrieben und zur Veranschaulichung verwendet, wie die vorliegende Erfindung die Bereitstellung von gekoppelten Diensten in einer verteilten Rechnerumgebung bewerkstelligt. (Dem Fachmann ist klar, dass die in den 5A bis 5E dargestellten Nachrichten und Arbeitsschritte – sowie deren Parameter – nur der Veranschaulichung dienen. Eine reale Bereitstellungsschnittstelle kann andere Nachrichten und Arbeitsschritte enthalten, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen.)
  • [0051]
    Die Nachricht „InResolveProvisioningIDRequest" 502 veranschaulicht eine Nachricht zur Eingabeaufforderung, mit der ein Dienst abgefragt werden kann, welchen bestimmten Benutzer oder welche Einheit er als identifiziert betrachtet. (Wenn nicht anders angegeben, kann der Begriff „Benutzer" im vorliegenden Zusammenhang gleichermaßen als menschlicher Benutzer oder als programmgesteuerte Einheit wie beispielsweise ein automatischer Dienst verstanden werden.) In der Nachrichtenbeschreibung 502 wird festgestellt, dass die Anforderung als Parameter eine Zeichenfolge „authToken" verwendet. Zum Beispiel sei angenommen, dass sich ein menschlicher Benutzer bei einem gekoppelten Dienst angemeldet hat und der gekoppelte Dienst für diesen menschlichen Benutzer ein Identitätsprüfungs-Token „X" bereithält. Ferner sei angenommen, dass der gekoppelte Dienst programmgesteuert ermitteln möchte, inwieweit dieser menschliche Benutzer einem bestimmten Teildienst „ServiceABC" bekannt ist. Der gekoppelte Dienst muss nach einem Bereitstellungssystem suchen, das Informationen über den Benutzer enthält. Die Nachrichten 502 und 504 können zur Bereitstellung dieser Funktionalität verwendet werden, indem das Token „X" (vorzugsweise unter Verwendung einer SOAP-Nachricht, wie unter Bezug auf die 7A und 7B beschrieben wird) der Funktion „ResolveProvisioningID" von „ServiceABC" zugeleitet wird. 5D zeigt eine Funktion „ResolveProvisioningID" 552 mit einer Nachricht „InResolveProvisioningIDRequest" (siehe Element 502 von 5A) sowie einer Nachricht „OutResolveProvisioningIDResponse" (siehe Element 504 von 5A). Die Nachricht „OutResolveProvisioningIDResponse" 504 ist so definiert, dass sie einen Parameter mit der Bezeichnung „Identifier" (Kennung vom Typ Zeichenfolge) zurückgibt. Vorzugsweise ist die zurückgegebene Kennung eine Kennung des fernen Bereitstellungssystems. Diese Kennung kann dann als Eingabeparameter für nachfolgende Arbeitsschritte (siehe zum Beispiel die unten beschriebenen Nachrichten 506, 510 und 526) verwendet werden, um das Bereitstellungssystem zu bezeichnen, welches die Informationen zum Benutzerprofil oder die Konfigurierungsinformationen des Dienstes verwaltet.
  • [0052]
    Bevorzugte Ausführungsarten der vorliegenden Erfindung gemäß den 7a und 7B verwenden SOAP-Nachrichten für den Datenaustausch zwischen den Internetdiensten. Die beispielhafte SOAP-Nachricht 700 umfasst einen SOAP-Rahmen nach dem Stand der Technik mit einer digitalen Signatur in seinen Kopfdaten. 7A zeigt die Kopfdaten 710 und die digitale Signatur 720. Diese digitale Signatur kann zur Überprüfung der Identität des Anfordernden verwendet werden, der die Anforderung nach einem Dienst im SOAP-Textkörper übermittelt. 7B zeigt den Textkörper 730 und die Anforderung 740. Bei dieser Nachricht 700 der Probe gibt der Textkörper der Nachricht eine Nachricht „GetLastTradePrice" an, für welche das Kindelement <m:symbol> einen Wert „IBM" hat. Es kann angenommen werden, dass hierdurch ein Dienst für Aktienkurse aufgerufen wird und dieser Dienst die Anmeldung des Benutzer verlangt; deshalb ist die digitale Signatur des Benutzers in die SOAP-Kopfdaten eingefügt worden. (Weitere Informationen über diese Verwendung von SOAP-Nachrichten finden sich in dem Artikel „SOAP Security Extensions: Digital Signature, W3C NOTE, 6. Februar 2001", der im Internet unter http://www.w3.org/TR/SOAP-dsig/aufgerufen werden kann.
  • [0053]
    Die vorliegende(n) Ausführungsart(en) steigern die Wirksamkeit des Verfahrens mit digitalen Signaturen zum Übertragen von Identitätsinformationen für die Identitätsprüfung von Benutzern von gekoppelten Internetdiensten, zur Ermittlung der Berechtigung dieser Benutzer und/oder zum Konfigurieren gekoppelter Internetdienste.
  • [0054]
    Anknüpfend an die Erörterung der Nachrichten der Bereitstellungsschnittstelle der Probe in 5A veranschaulicht die Nachricht „InResolveUsersRequest" 506 eine eingegebene Anforderungsnachricht, die zum Ermitteln einer Reihe von Benutzern verwendet werden kann, die für den Zugriff auf einen bestimmten Dienst berechtigt sind. Bei diesem Beispiel wird dem abgefragten Dienst ein Identitätsprüfungs-Token zugeleitet, und diese Nachricht dient vorzugsweise zur Prüfung der Identität des die Information Anfordernden (das heißt, der programmgesteuerten Einheit oder des menschlichen Benutzers, der die für Benutzer mit geprüfter Identität bestimmte Information anfordert). Der Parameter „provID" kann zum Erstellen einer Adresse (zum Beispiel einer Einheitlichen Ressourcenkennung, URI) eines durch einen Dienstanbieter betriebenen Bereitstellungssystems verwendet werden. Die Operation „ResolveUsers" (siehe Element 554 von 5D) eines Dienstes empfängt die Nachricht „InResolveUsersRequest" 506 und antwortet mit einer Nachricht „OutResolveUsersResponse" 508. Bei diesem Beispiel ist diese Ausgabenachricht 508 dadurch definiert, dass sie eine Matrix mit der Bezeichnung „UserSet" zurückgibt. Die Syntax „SOAP-ENC" im Teilelement der Nachricht 508 ist ein Präfix für den Namensbereich und dient zur Bezeichnung der Matrixdefinition. (Es wird davon ausgegangen, dass diese Ausgabematrix die berechtigten Benutzer des bestimmten Dienstes kennzeichnet, der diese Operation „ResolveUsers" 554 ausführt, die unter Verwendung der UDDI verknüpft und unter Verwendung einer SORP-Nachricht aufgerufen wurde. Wenn die Operation „ResolveUsers" ausgeführt wurde, kann sie ein Bereitstellungssystem angefordert haben, um die berechtigten Benutzer zu ermitteln.)
  • [0055]
    Die Nachricht „InCreateUserProfileRequest" 510 zeigt, wie die Schnittstelle einer eingegebenen Anforderungsnachricht, die ein Benutzerprofil erstellt, gestaltet sein kann. Ebenso wie bei den anderen beispielhaften Nachrichten ist es von Vorteil, ein Identitätsprüfungs-Token als einen der Eingabeparameter einzufügen, die an den fernen Dienst weitergeleitet werden, sodass der ferne Dienst den die Information Anfordernden überprüfen und ermitteln kann, ob dieser Anfordernde zur Nutzung des Dienstes „CreateUserProfile" 556 berechtigt ist, der die Nachricht „InCreateProfileRequest" 510 ausgibt. Der Parameter „provID" kann zum Erstellen einer URI oder einer anderen Adresse eines Bereitstellungssystems gemäß der obigen Erörterung verwendet werden, wobei das Benutzerprofil im Bereitstellungssystem gespeichert werden muss. Der Parameter „userID" kennzeichnet vorzugsweise den Benutzer, für den (im Fall eines menschlichen Benutzers) oder für das (im Fall eines programmgesteuerten Benutzers) das Profil erstellt wird. Ein Parameter „password" kann bereitgestellt werden, um das diesem Benutzer zugewiesene Passwort zu erstellen. (Auf Wunsch können anstelle eines Passworts andere Berechtigungsnachweise verwendet werden.) Je nach den Anforderungen des zugrunde liegenden Dienstes können in einem Parameter „FullName" Vorname und Nachname des Benutzers übermittelt werden. Und schließlich werden in dieser Probennachricht die Zugriffsrechte des Benutzers in Form einer Matrix bereitgestellt. Die Operation „CreateUserProfile" 556 empfängt die Nachricht „InCreateUserProfileRequest" 510 und antwortet mit einer Nachricht „OutCreateUserProfilejResponse" 512. Bei diesem Beispiel gibt diese Ausgabenachricht 512 einen Booleschen Wert zurück, der anzeigt, ob das Profil erfolgreich erstellt wurde.
  • [0056]
    Die Nachricht „InQueryUserProfileRequest" 514 zeigt eine beispielhafte Schnittstelle für eine eingegebene Nachricht einer eingegebenen Anforderung, die zum Abrufen von Informationen von einem zuvor gespeicherten Benutzerprofil verwendet wird. Die Parameter der Nachricht beinhalten ein Identitätsprüfungs-Token „authToken" zur Überprüfung der Identität des die Informationen Anfordernden, eine Bereitstellungskennung „procID" zur Kennzeichnung eines Bereitstellungssystems, in welchem das Profil gespeichert ist, und einer Benutzerkennung „userID° zur Kennzeichnung des Benutzers, für den die Profilinformationen angefordert werden. Diese Nachricht 514 wird als Eingabeschnittstelle für einen Dienst „QueryuserProfile" 558 bereitgestellt, und die Nachricht „OutQueryUserProfileResponse" 516 in diesem Beispiel gibt das Passwort, Vorname und Nachname und Zugriffsrechte des Benutzers aus dem gespeicherten Profil zurück.
  • [0057]
    Die Nachricht „InUpdateUserProfileRequest" 518 ist der Nachricht „InCreateUserProfileRequest" 510 analog und verwendet beim vorliegenden Beispiel dieselben Parameter. Die Operation „UpdateUserProfile" 560 empfängt die Nachricht „InUpdateUserProfileRequest" 520 und antwortet mit einer Nachricht „OutUpdateUserProfileResponse" 520, die der Nachricht „OutCreateUserProfileResponse" 512 analog ist. Beim vorliegenden Beispiel gibt diese Ausgabenachricht 512 einen Booleschen Wert zurück, der anzeigt, ob das Profil erfolgreich erstellt wurde.
  • [0058]
    Die Nachricht „InDeleteUserProfileRequest" 522 und die Nachricht „OutDeleteUserProfileResponse" 524 werden als Eingabe- und Ausgabeschnittstelle der Operation „DeleteUserProfile 562 (siehe 5E) bereitgestellt und ermöglichen das Löschen eines Benutzerprofils in ähnlicher Weise die das Profil durch die Operation „CreateUserProfile" 556 und die Operation „UpdateUserProfile" 560 erstellt oder aktualisiert werden kann.
  • [0059]
    Zusätzlich zu den beschriebenen Identitätsprüfungs- und Berechtigungsprüfungsnachrichten kann es von Nutzen sein, Nachrichten und Operationen zum Konfigurieren von gekoppelten Internetdiensten zu definieren. Beispiele der Operationen „SetConfigParameter" 564 und „GetConfigParameter" 566 sind in 5E veranschaulicht.
  • [0060]
    Die Probeneingabenachricht für die Operation „SetConfigParameter" 564 ist „InSetConfigParameterRequest" 526 und für die Probenausgabenachricht „OutSetConfigParameter Response" 528. Die Eingabenachricht 526 bei diesem Beispiel enthält Eingabeparameter, zu denen das Identitätsprüfungs-Token „authToken" für den Anfordernden, die Bereitstellungskennung „provID" zur Kennzeichnung des Bereitstellungssystems, in welchem der Parameterwert zu speichern ist, die Benutzerkennung „userID" zur Kennzeichnung des Benutzers, dem dieser Parameter zugewiesen werden soll, sowie der Name des Konfigurierungsparameters „parameterName" und der Wert „parameter Value" gehören. Die Ausgabenachricht 528 gibt einen Booleschen Wert „result" zurück, der anzeigt, ob die Operation „SerConfigParameter" erfolgreich ausgeführt wurde.
  • [0061]
    Die Probeneingabenachricht für die Operation „GetConfigParameter" 566 ist „InGetConfigParameterRequest" 530 und für die Probenausgabenachricht „OutGetConfigParameterResponse" 532. Die Eingabenachricht 530 im vorliegenden Beispiel enthält Eingabeparameter, die denen der Nachricht „InSetConfigParameterRequest" 526 identisch sind, wobei lediglich der Parameter „parameterValue" weggelassen wird. Die Ausgabenachricht 532 gibt den Wert des angeforderten Parameters in Form des Parameters „parameterValue" zurück.
  • [0062]
    Die in 6 gezeigte Logik kann zur Ausführung eines gekoppelten Dienstes und der Identitäts- und/oder Konfigurierungsoperationen seiner Teildienste im Arbeitsablauf eines Internetdienstes gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung verwendet werden.
  • [0063]
    Eine Funktion „vereinheitlichte Anmeldung" oder Einzelanmeldung kann gemäß der vorliegenden Erfindung für einen gekoppelten Dienst bereitgestellt werden, wobei die Bereitstellungsschnittstelle des gekoppelten Dienstes zu Beginn der Ausführung des gekoppelten Dienstes alle erforderlichen Informationen von einem Benutzer abfragen kann. (Es kann natürlich passieren, dass bestimmte Informationen während der Ausführung vom Benutzer abgefragt werden müssen, sodass der Vorteil der vorliegenden Erfindung darin zu sehen ist, dass sie die Anzahl solcher Abfragen so gering wie möglich halten kann.
  • [0064]
    Die im WSFL-Arbeitsablauf eines gekoppelten Dienstes nacheinander definierten Operationen werden gemäß der Definition des Arbeitsablauf ausgeführt. Die vom Benutzer erhaltenen Anmeldeinformationen werden zur Nutzung durch den Teildienst, zu welchem einzelne Elemente der Anmeldeinformationen gehören, vorzugsweise „gestapelt". Das Stapeln von Modulen ist in der Technik Fachleuten bekannt, die mit Identitätssystemen und Berechtigungsprüfsystemen mit der Funktion Einzelanmeldung vertraut sind. Das Stapeln betrifft die Verwendung eines „primären" Passworts als Chiffrierschlüssel, wobei die so verschlüsselte Informationen ein oder mehrere „sekundäre" Passwörter umfassen. Bei der Verwendung des Stapelprozesses im Rahmen der vorliegenden Erfindung dienen die sekundären Passwörter als Passwörter für die Teildienste, während das primäre Passwort für den Wirkungsbereich des gekoppelten Dienstes gilt und diese sekundären Passwörter schützt. Die Teildienste werden gemäß der WSFL-Definition in einer festgelegten Reihenfolge aufgerufen, wobei die gestapelten Passwörter dem Stapel entnommen und dem jeweiligen Teildienst für Identitätsprüfung und Berechtigungsprüfung vorgelegt werden.
  • [0065]
    Dieser Prozess beginnt in Schritt 600 von 6, wo die Benutzerkennung und das Passwort (oder eine ähnliche Eingabe zur Identitätsprüfung) empfangen werden. (Zu beachten ist, dass die Angabe des Begriffes „Passwörter" nicht als Einschränkung der Art der unterstützten Berechtigungsnachweise zu verstehen ist. Berechtigungsnachweise können auf vielerlei Weise bereitgestellt werden, darunter in Form von Normaltext, verschlüsselten Zeichenfolgen, Zugriffsberechtigungen und Sicherheitszertifikaten mit öffentlichem Schlüssel wie beispielsweise X.509-Zertifikate.) Diese Identitätsprüfungsinformation kann dann als Eingabe zu einem fernen Dienst weitergeleitet werden, der nach dem Aufrufen seiner Identitätsprüfungsoperation ein Identitätsprüfungs-Token erzeugt (Schritt 610).
  • [0066]
    Vorzugsweise wird das in Schritt 610 erzeugte Identitätsprüfungs-Token als XML-Fragment erzeugt, das dann in die Kopfdaten einer SOAP-Nachricht eingefügt werden kann. Auf diese Weise können Benutzeridentitäten beim Zugreifen auf Internetdienste übermittelt werden. Siehe auch die Erörterung der SOAP-Nachricht 700 der Probe in den 7A und 7B, die zeigt, wie eine digitale Signatur unter Verwendung der XML-Syntax in die SOAP-Kopfdaten eingefügt wird. (Dort wird auch gezeigt, dass die Token der digitalen Signatur einen qualifizierten Namensbereich verwenden und deshalb durch die Buchstaben „ds" eingeleitet werden.) Identitätsprüfungssysteme und Strategiesysteme können ebenso auch unter Verwendung von SOAP-Kopfdaten mit den Operationen eines Dienstes verknüpft werden. WSDL-Beschreibungen stellen Operationen vorzugsweise als Kombination von SOAP-Kopfdaten und -Textkörper dar. Das heißt, bei allen Operationen, die einen Nachweis der Identität verlangen, müssen vorzugsweise Benutzerberechtigungsnachweise ausgetauscht werden. Das in den vorliegenden Beispielen angewendete Verfahren der SOAP-Sicherheitserweiterungen stellt ein Beispiel dafür dar, wie dies realisiert werden kann. Auch die Markierungssprache der Sicherheitsvereinigung (Security Association Markup Language, SAML), die GSS-API (Generic Security Service, generischer Sicherheitsdienst) und die CSI-Architektur (Common Secure Interoperability, allgemeine sichere Interoperabilität) stellen ein Mittel zum sicheren Austauschen der Berechtigungsnachweise eines Auftraggebers bereit. (Eine Version von SAML ist in einem OASIS-Artikel definiert, der im Internet unter http://www.oasisopen.org/committees/security/docs/draft-sstc-saml-spec-00.PDF vom 11. April 2001 zu finden ist. Die GSS-API ist in RFC 2743, „Generic Security Service Application Program Interface, Version 2, Update 1" vom Januar 2000 zu finden. CSI ist in „Common Secure Interoperability V2 Specification" definiert, die im Internet unter http://www.omg.org/cgi-bin/doc?ptc/2001-03-02 zu finden ist.
  • [0067]
    Das in Schritt 610 unter Verwendung der in Schritt 600 erhaltenen Eingabeinformation erzeugte Token wird hier insofern als „allgemeines" Identitätsprüfungs-Token bezeichnet, als es anschließend vorzugsweise dazu dienen kann, verschiedenen Teildiensten des gekoppelten Dienstes die Identität dieses Benutzers nachzuweisen. (Mit anderen Worten, dieses Token ist vorzugsweise für keinen Teildienst oder keine Operation spezifisch.)
  • [0068]
    In Schritt 620 wird geprüft, ob die Identität dieses Benutzers (immer noch) global (das heißt, für den gekoppelten Dienst) gültig ist. Bei bevorzugten Ausführungsarten werden, sobald die Identität eines Benutzers einmal geprüft worden ist, dessen Berechtigungsnachweise den Anforderungen für den restlichen Arbeitsablauf (d.h, für die Aufrufe der gekoppelten Dienste) zugewiesen. Gemäß der Logik in 6 wird diese Prüfung in Schritt 620 jedoch nicht nur einmal durchgeführt, zum Beispiel, damit sich ein Benutzer während der im Arbeitsablauf aufeinander folgenden Operationen abmelden kann. Wenn das Ergebnis der Prüfung negativ ist, darf dieser Benutzer den gekoppelten Dienst nicht weiter nutzen, und vorzugsweise wird ein Fehlercode zurückgegeben (Schritt 640) und die Verarbeitung in 6 endet. Wenn das Ergebnis der Prüfung positiv ist, wird die Verarbeitung in Schritt 630 mit der Prüfung fortgesetzt, ob die Identität dieses Benutzers lokal gültig ist (das heißt, für den nächsten auszuführenden Dienst, wenn dieser gemäß dem WSDL-Arbeitsablauf vorgesehen ist). Wenn das Ergebnis dieser Prüfung negativ ist, geht das Verfahren weiter zu Schritt 640; ansonsten folgt Schritt 670.
  • [0069]
    In Schritt 625 werden die gestapelten Identitätsinformationen für die nächste auszuführende Operation abgerufen. Diese abgerufenen Informationen werden zur Identitätsprüfung dieser nächsten Operation weitergeleitet, die unter Verwendung dieser Identitätsinformationen ein für die operationsspezifisches Token erzeugt (oder abruft).
  • [0070]
    In Schritt 660 wird das operationsspezifische Token (wie unter Bezug auf die 7A und 7B beschrieben) unter Verwendung von SOAP-Kopfdaten an den Anrufer zurückgegeben. (Zu beachten ist, dass die Antwortnachrichten in den 5A bis 5C zwar keine Rückgabe von Identitätsprüfungs-Token zeigen, solche Token aber auf Wunsch hinzugefügt werden können.) In Schritt 670 wird dann unter Verwendung des empfangenen operationsspezifischen Token die operationsspezifische Berechtigung des Benutzers ermittelt. (Benutzer können unterschiedliche Rollen einnehmen, von denen ihre Berechtigungsnachweise für eine bestimmte Klasse von Operationen abhängen. Ein Manager kann beispielsweise in seiner Rolle als leitender Mitarbeiter berechtigt sein, die Personalakten seiner Angestellten einzusehen, während er in seiner Rolle als Angestellter dieselbe Operation möglicherweise nicht ausführen darf.) Die Anforderung der Berechtigung in Schritt 670 nutzt zur Weiterleitung des in Schritt 660 empfangenen operationsspezifischen Token vorzugsweise auch SOAP-Kopfdaten. Wenn das Ergebnis der Berechtigungsprüfung zeigt, dass der Benutzer zur Ausführung der nächsten Operation des gekoppelten Dienstes berechtigt ist, wird die Verarbeitung mit Schritt 680 fortgesetzt. (Ansonsten kann ein Fehler erzeugt und/oder oder der Arbeitsablauf mit einer anderen Operation fortgesetzt werden. Die jeweilige Verarbeitung kann jeweils zwischen den Ausführungsformen variieren und ist in 6 deshalb nicht dargestellt. Dem Fachmann ist klar, wie geeignete Schritte in die Logik von 6 eingefügt werden können.)
  • [0071]
    In Schritt 680 wird die nächstfolgende Operation aufgerufen. Für diesen Aufruf können auch SOAP-Kopfdaten verwendet werden, wenn ein Berechtigungsnachweis des Benutzer benötigt wird, um das in Schritt 660 empfangene operationsspezifische Token weiterzuleiten. (Wenn als Ergebnis der Verarbeitung in Schritt 670 ein Berechtigungs-Token empfangen wird, wird dieses Token zusätzlich oder anstelle des Token von Schritt 650 weitergeleitet.) Nach Beendigung der Operation wird in Schritt 690 geprüft, ob noch weitere Operationen anstehen. Wenn dies nicht der Fall ist, ist die Verarbeitung von 6 beendet. Ansonsten geht das Verfahren zurück zu Schritt 620, um zu ermitteln, ob die Identität des Benutzers für den gekoppelten Dienst immer noch gültig ist (worauf in Schritt 630 geprüft wird, ob die Identität des Benutzers wie oben beschrieben für diesen nächsten Dienst gültig ist).
  • [0072]
    Es wurde gezeigt, dass die vorliegende Erfindung vorteilhafte Verfahren zur Bereitstellung gekoppelter Internetdienste bereitstellt. Zur Übermittlung von Identitätsinformationen werden vorzugsweise SOAP-Kopfdaten verwendet. Mit Hilfe der beschriebenen Verfahren können heterogene Identitätssysteme zu einer dynamischen, integrierten Umgebung von Internetdiensten während der Laufzeit vereint werden. Der Einsatz von offenen Standards wird erleichtert. Zu beachten ist, dass bei der Beschreibung bevorzugten Ausführungsarten zwar bestimmte Standards (zum Beispiel WSDL und SOAP) genannt wurden, dass dies jedoch nur zur Veranschaulichung der erfindungsgemäßen Konzepte der vorliegenden Erfindung dient. Es können alternative Mittel zur Bereitstellung der analogen Funktionalität bereitgestellt werden, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen.
  • [0073]
    Der Fachmann kann sich vorstellen, dass Ausführungsarten der vorliegenden Erfindung in Form von Verfahren, Systemen oder Computerprogrammprodukten bereitgestellt werden können. Demzufolge kann die vorliegende Erfindung die Form einer Ausführungsart ausschließlich in Hardware, ausschließlich in Software oder als Kombination von Software- und Hardwareaspekten annehmen. Außerdem kann die vorliegende Erfindung die Form eines Computerprogrammprodukts mit einem darin enthaltenen computerlesbaren Programmcode annehmen, das auf einem oder mehreren computerlesbaren Speichermedien (darunter, aber nicht ausschließlich, Plattenspeicher, CD-ROM, optische Speicher usw.) realisiert ist.
  • [0074]
    Die vorliegende Erfindung ist unter Bezug auf Ablaufschaubilder und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsarten der Erfindung beschrieben worden. Es ist klar, dass jeder Arbeitsablauf und/oder jeder Arbeitsschritt der Ablaufschaubilder und/oder Blockschaubilder und Kombinationen von Arbeitsabläufen/Arbeitsschritten in den Ablaufschaubildern und/oder Blockschaubildern durch Computerprogrammanweisungen realisiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers oder eines Spezialcomputers, einem integrierten Prozessor oder einer anderen programmierbaren Datenverarbeitungseinrichtung bereitgestellt werden, um eine Maschine derart zu schaffen, dass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungseinrichtung ausgeführten Anweisungen ein Mittel zur Realisierung der im Arbeitsablauf der Ablaufschaubilder und/oder in den Arbeitsschritten der Blockschaubilder dargestellten Funktionen bilden.
  • [0075]
    Diese Computerprogrammanweisungen können auch in einem computerlesbaren Speicher gespeichert werden, der einen Computer oder eine andere programmierbare Datenverarbeitungseinrichtung in der Weise zum Ausführen einer Funktion veranlassen kann, dass die im computerlesbaren Speicher gespeicherten Anweisungen einen Herstellungsartikel bilden, der die im Arbeitsablauf des Ablaufschaubildes und/oder in den Arbeitsschritten des Blockschaubildes angegebene Funktion ausführt.
  • [0076]
    Die Computerprogrammanweisungen können auch in einen Computer oder eine andere programmierbare Datenverarbeitungseinheit geladen werden, um die Ausführung einer Reihe von Arbeitsschritten im Computer oder in der anderen programmierbaren Einrichtung zu veranlassen und somit einen durch den Computer durchgeführten Prozess zu schaffen, sodass die im Computer oder in der anderen programmierbaren Einrichtung ausgeführten Anweisungen Schritte zur Ausführung der im Arbeitsablauf der Ablaufschaubilder und/oder in den Arbeitsschritten der Blockschaubilder angegebenen Funktionen bewirken.
  • [0077]
    Obwohl die bevorzugten Ausführungsarten der vorliegenden Erfindung beschrieben worden sind, kann sich der Fachmann nach dem Erfassen der Grundideen der Erfindung weitere Varianten und Modifikationen dieser Ausführungsarten ausdenken. Deshalb sind die angehängten Ansprüche so zu verstehen, dass sie sowohl die bevorzugte Ausführungsart als auch alle derartigen Varianten und Modifikationen beinhalten und diese in den Geltungsbereich der Erfindung fallen.

Claims (18)

  1. Verfahren zur Bereitstellung eines gekoppelten Dienstes in einem Computernetz (100, 120, 150), wobei das Verfahren die folgenden Schritte umfasst: Empfangen (600) von Berechtigungsnachweisen eines Benutzers, der den Zugriff auf einen gekoppelten Dienst fordert; Suchen in einer über das Netz erreichbaren Registrierungsdatenbank nach einem Dienstbeschreibungsdokument, das eine Bereitstellungsschnittstelle für den gekoppelten Dienst beschreibt, wobei der gekoppelte Dienst eine Vielzahl miteinander gekoppelter Teildienste umfasst und die Bereitstellungsschnittstelle beschreibt, wie Identitätsfunktionen des gekoppelten Dienstes aufgerufen werden müssen; Analysieren (620, 630) der empfangenen Berechtigungsnachweise durch Aufrufen einer oder mehrerer der Identitätsfunktionen gemäß deren Beschreibung in der Bereitstellungsschnittstelle, um zu ermitteln, ob der Benutzer für den Zugriff auf den gekoppelten Dienst berechtigt ist; und Zulassen des Benutzers für den Zugriff auf den gekoppelten Dienst nur, wenn die Analyse ermittelt, dass der Benutzer für den Zugriff auf den gekoppelten Dienst zugelassen ist.
  2. Verfahren nach Anspruch 1, bei dem eine Ausführungsform jeder der Identitätsfunktionen des gekoppelten Dienstes durch mindestens einen der Teildienste bereitgestellt wird.
  3. Verfahren nach Anspruch 1, bei dem: mindestens einer der Teildienste eine lokale Bereitstellungsschnittstelle aufweist, wobei die lokale Bereitstellungsschnittstelle in einem entsprechenden Dienstbeschreibungsdokument beschrieben ist und eine Beschreibung umfasst, wie eine oder mehrere Identitätsfunktionen des Teildienstes aufgerufen werden müssen; und den Zugriff auf jeden der Teildienste mit der lokalen Bereitstellungsschnittstelle steuert, wobei die Steuerung ferner die folgenden Schritte umfasst: Ermitteln, ob der Benutzer für den Zugriff auf den Teildienst berechtigt ist, durch Aufrufen mindestens einer der einen oder mehreren Identitätsfunktionen des Teildienstes gemäß deren Beschreibung in der lokalen Bereitstellungsschnittstelle; und Zulassen des Benutzers für den Zugriff auf den Teildienst nur, wenn im Ermittlungsschritt ermittelt wird, dass der Benutzer für den Zugriff auf den Teildienst zugelassen ist.
  4. Verfahren nach Anspruch 3, bei dem: im Schritt des Empfangens von Berechtigungsnachweisen vom Benutzer auch Teildienstberechtigungsnachweise für mindestens einen der Teildienste mit der lokalen Bereitstellungsschnittstelle empfangen werden; und die empfangenen Teildienstberechtigungsnachweise im Ermittlungsschritt verwendet werden.
  5. Verfahren nach Anspruch 1, bei dem: eine oder mehrere Funktionen mindestens eines der Teildienste zugriffsgeschützt sind; der Empfangsschritt ferner das Empfangen funktionsspezifischer Berechtigungsnachweise des Benutzers für mindestens eine der zugriffsgeschützten Funktionen und ferner den folgenden Schritt umfasst: Steuern des Zugriffs auf jede der mindestens einen zugriffsgeschützten Funktionen, wobei die Steuerung ferner die folgenden Schritte umfasst: Analysieren der empfangenen funktionsspezifischen Berechtigungsnachweise durch Aufrufen einer oder mehrerer der Identitätsfunktionen gemäß deren Beschreibung in der Bereitstellungsschnittstelle, um zu ermitteln, ob der Benutzer auf die zugriffsgeschützte Funktion zugreifen kann; und Zulassen des Benutzers für den Zugriff auf zugriffsgeschützte Funktion nur, wenn im Schritt zur Analyse der empfangenen funktionsspezifischen Berechtigungsnachweise ermittelt wird, dass der Benutzer auf die zugriffgeschützte Funktion zugreifen kann.
  6. Verfahren nach Anspruch 1, bei dem durch Aufrufen einer oder mehrerer Identitätsfunktionen gewonnene Identitätsinformationen programmgesteuert zwischen mindestens zwei der Teildienste des gekoppelten Dienstes ausgetauscht werden.
  7. Verfahren nach Anspruch 6, bei dem der programmgesteuerte Austausch das Senden einer Nachricht umfasst, welche die Berechtigungsnachweise in den Kopfdaten der Nachricht und eine Dienstanforderung in einem Textkörper der Nachricht beschreibt.
  8. Verfahren nach Anspruch 7, bei dem die Nachricht eine SOAP-Nachricht (Simple Objekt Access Protocol, einfaches Zugangsprotokoll für Objekte) ist.
  9. Verfahren nach Anspruch 1, bei dem das Dienstbeschreibungsdokument in einer Auszeichnungssprache (Markup Language) beschrieben ist.
  10. Verfahren nach Anspruch 9, bei dem die Markierungssprache eine Beschreibungssprache für Internetdienste (Web Services Description language, WSDL) ist.
  11. Verfahren nach Anspruch 1, bei dem auf die über das Netz erreichbare Registrierungsdatenbank unter Verwendung von standardisierten Nachrichten zugegriffen wird.
  12. Verfahren nach Anspruch 1, bei dem eine Ausführungsform mindestens eines der Teildienste dynamisch während der Laufzeit gesucht wird.
  13. Verfahren nach Anspruch 6, bei dem die Identitätsinformation zu Anfang als Ergebnis des Analyseschrittes gewonnen wird.
  14. Verfahren nach Anspruch 6, bei dem die Identitätsinformation ein Identitätsnachweis-Token umfasst, das durch eine der aufgerufenen Identitätsfunktionen erzeugt wurde.
  15. Verfahren nach Anspruch 1, bei dem: mindestens zwei der Teildienste jeweils ein Identitätssystem für die Steuerung des Zugriffs auf die Teildienste zugehörig ist; mindestens zwei der zugehörigen Identitätssysteme heterogen sind; und mindestens eine der ausgewählten Identitätsfunktionen des gekoppelten Dienstes die dynamische Verknüpfung von mindestens zwei der heterogenen Identitätssysteme ermöglicht.
  16. Verfahren nach Anspruch 15, bei dem die mindestens eine ausgewählte Identitätsfunktion nach dem Aufrufen das Identitätssystem erkennt, das Informationen speichert, die zu Benutzern desjenigen Teildienstes gehören, dem dieses Identitätssystem zugeordnet ist.
  17. Verfahren zur Bereitstellung eines gekoppelten Dienstes in einem Rechnernetz, das Folgendes umfasst: ein Mittel zum Empfangen von Berechtigungsnachweisen eines Benutzers, der den Zugriff auf einen gekoppelten Dienst fordert; ein Mittel zum Suchen in einer über das Netz erreichbaren Registrierungsdatenbank nach einem Dienstbeschreibungsdokument, das eine Bereitstellungsschnittstelle für den gekoppelten Dienst beschreibt, wobei der gekoppelte Dienst eine Vielzahl miteinander gekoppelter Teildienste umfasst und die Bereitstellungsschnittstelle beschreibt, wie Identitätsfunktionen des gekoppelten Dienstes aufgerufen werden müssen; ein Mittel zum Analysieren der empfangenen Berechtigungsnachweise durch Aufrufen einer oder mehrerer der Identitätsfunktionen gemäß deren Beschreibung in der Bereitstellungsschnittstelle, um zu ermitteln, ob der Benutzer für den Zugriff auf den gekoppelten Dienst berechtigt ist; und Zulassen des Benutzers für den Zugriff auf den gekoppelten Dienst nur, wenn die Analyse ermittelt, dass der Benutzer für den Zugriff auf den gekoppelten Dienst zugelassen ist.
  18. Computerprogrammprodukt zur Bereitstellung einer oder mehrerer Softwareressourcen eines gekoppelten Dienstes in einem Rechnernetz, wobei das Computerprogrammprodukt in einem oder mehreren computerlesbaren Medien realisiert ist und Folgendes umfasst: computerlesbare Programmcodemittel zur Ausführung aller Schritte des Verfahrens nach einem der Ansprüche 1 bis 16.
DE2002618069 2002-01-15 2002-12-11 Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung Active DE60218069T2 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US47811 2002-01-15
US10047811 US7603469B2 (en) 2002-01-15 2002-01-15 Provisioning aggregated services in a distributed computing environment
PCT/GB2002/005626 WO2003060710A3 (en) 2002-01-15 2002-12-11 Provisioning aggregated services in a distributed computing environment

Publications (1)

Publication Number Publication Date
DE60218069T2 true DE60218069T2 (de) 2007-08-09

Family

ID=21951105

Family Applications (2)

Application Number Title Priority Date Filing Date
DE2002618069 Active DE60218069D1 (de) 2002-01-15 2002-12-11 Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung
DE2002618069 Active DE60218069T2 (de) 2002-01-15 2002-12-11 Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE2002618069 Active DE60218069D1 (de) 2002-01-15 2002-12-11 Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung

Country Status (8)

Country Link
US (1) US7603469B2 (de)
EP (1) EP1483671B1 (de)
JP (1) JP4594621B2 (de)
KR (1) KR100600959B1 (de)
CN (1) CN1291318C (de)
DE (2) DE60218069D1 (de)
ES (1) ES2278066T3 (de)
WO (1) WO2003060710A3 (de)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035944B2 (en) 2001-09-19 2006-04-25 International Business Machines Corporation Programmatic management of software resources in a content framework environment
US7343428B2 (en) * 2001-09-19 2008-03-11 International Business Machines Corporation Dynamic, real-time integration of software resources through services of a content framework
US7747856B2 (en) * 2002-07-26 2010-06-29 Computer Associates Think, Inc. Session ticket authentication scheme
US7266582B2 (en) * 2002-08-09 2007-09-04 Sun Microsystems, Inc. Method and system for automating generation of web services from existing service components
US7512975B2 (en) * 2002-08-16 2009-03-31 Intel Corporation Hardware-assisted credential validation
CA2405673C (en) * 2002-09-30 2009-10-06 Ibm Canada Limited-Ibm Canada Limitee Provisioning web services
US20040064528A1 (en) * 2002-09-30 2004-04-01 Microsoft Corporation Safe interoperability among web services
US7178163B2 (en) * 2002-11-12 2007-02-13 Microsoft Corporation Cross platform network authentication and authorization model
CA2513241A1 (en) * 2003-02-11 2004-08-26 Telefonaktiebolaget L M Ericsson (Publ) Method for control of personal data
US20040225656A1 (en) * 2003-05-07 2004-11-11 Panacea Corporation Web services method and system
CA2776354A1 (en) 2003-06-05 2005-02-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
US7490127B2 (en) * 2003-06-13 2009-02-10 Microsoft Corporation Concurrent recipient resolution and certificate acquisition
US6959325B2 (en) * 2003-08-11 2005-10-25 Teamon Systems, Inc. System and method for generating configurations used for accessing electronic mailboxes
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
US7765540B2 (en) * 2003-10-23 2010-07-27 Microsoft Corporation Use of attribution to describe management information
US7676560B2 (en) * 2003-10-24 2010-03-09 Microsoft Corporation Using URI's to identify multiple instances with a common schema
US7506307B2 (en) * 2003-10-24 2009-03-17 Microsoft Corporation Rules definition language
US7539974B2 (en) * 2003-10-24 2009-05-26 Microsoft Corporation Scalable synchronous and asynchronous processing of monitoring rules
US7716357B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Service discovery and publication
US7805713B2 (en) * 2003-10-27 2010-09-28 Hewlett-Packard Development Company, L.P. Transaction processing architecture
US7475125B2 (en) * 2003-11-24 2009-01-06 Microsoft Corporation Seamless discovery of workstation-installed remote applications from an extranet
US7720906B2 (en) * 2003-11-24 2010-05-18 Microsoft Corporation Web service for remote application discovery
US7590713B2 (en) * 2003-11-24 2009-09-15 Microsoft Corporation Presenting a merged view of remote application shortcuts from multiple providers
JP4959339B2 (ja) * 2003-12-12 2012-06-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation ウェブ・サービス・インターメディアリ用のポート・タイプ非依存型プロキシ・サポート
US7464142B2 (en) * 2003-12-12 2008-12-09 International Business Machines Corporation Port type agnostic proxy support for web services intermediates
US7676562B2 (en) * 2004-01-20 2010-03-09 Microsoft Corporation Computer system for accessing instrumentation information
DE102004004345A1 (de) * 2004-01-29 2005-08-18 Abb Research Ltd. System und Verfahren zur Kommunikation zwischen entfernten Objekten und lokalen Stellvertretern
JP4867660B2 (ja) * 2004-01-30 2012-02-01 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation コンピューティング・ユーティリティのためのコンピューティング環境のコンポーネント化された自動プロビジョニングおよび管理
JP4873852B2 (ja) * 2004-02-26 2012-02-08 株式会社リコー 第一の通信装置、情報処理装置、情報処理プログラム、記録媒体
US8862570B1 (en) 2004-03-02 2014-10-14 Rockstar Consortium Us Lp Method and apparatus for open management of multi-media services
US7467399B2 (en) 2004-03-31 2008-12-16 International Business Machines Corporation Context-sensitive confidentiality within federated environments
US7823192B1 (en) * 2004-04-01 2010-10-26 Sprint Communications Company L.P. Application-to-application security in enterprise security services
US20050228984A1 (en) * 2004-04-07 2005-10-13 Microsoft Corporation Web service gateway filtering
US8010783B1 (en) 2004-04-15 2011-08-30 Aol Inc. Service provider invocation
US9088561B2 (en) * 2004-05-19 2015-07-21 Ca, Inc. Method and system for authentication in a computer network
US20060041669A1 (en) * 2004-05-19 2006-02-23 Lucent Technologies, Inc. Securing web services
US7774485B2 (en) * 2004-05-21 2010-08-10 Bea Systems, Inc. Dynamic service composition and orchestration
US8615601B2 (en) * 2004-05-21 2013-12-24 Oracle International Corporation Liquid computing
US8566461B1 (en) 2004-06-09 2013-10-22 Digital River, Inc. Managed access to media services
US20050283352A1 (en) * 2004-06-18 2005-12-22 Dieter Roller Evaluation of process expressions on the basis of deployment information
DE602004015761D1 (de) * 2004-06-29 2008-09-25 Sap Ag Rechnersystem und Datenverarbeitungsverfahren zum Gebrauch eines Webdienstes
US7739695B2 (en) * 2004-07-19 2010-06-15 Sap Ag Computer implemented method and system for running a plurality of business processes
CN101789951B (zh) * 2004-09-06 2011-12-28 佳能株式会社 信息处理装置及信息处理方法
US20060069995A1 (en) * 2004-09-30 2006-03-30 British Telecommunications Public Limited Company Personalised process automation
US7483994B1 (en) 2004-11-01 2009-01-27 Ameriprise Financial, Inc. System and method for creating a standard envelope structure
US7613830B2 (en) * 2004-12-10 2009-11-03 Microsoft Corporation Reliably transferring queued application messages
CN100505732C (zh) 2004-12-14 2009-06-24 中兴通讯股份有限公司 一种异构系统间业务流程自动控制的装置及其实现方法
US20060136242A1 (en) * 2004-12-21 2006-06-22 International Business Machines Corporation Documents between services exchange and visualization of negotiation
US7657924B2 (en) * 2005-04-06 2010-02-02 International Business Machines Corporation Method and system for implementing authorization policies for web services
US7983209B2 (en) * 2005-04-18 2011-07-19 Research In Motion Limited System and method for producing notification based web services
US20060248082A1 (en) * 2005-04-29 2006-11-02 Amit Raikar Method and an apparatus for securely communicating between a management server and a managed node associated with a dynamic provisioning system
US8464317B2 (en) * 2005-05-06 2013-06-11 International Business Machines Corporation Method and system for creating a protected object namespace from a WSDL resource description
US8566462B2 (en) * 2005-05-12 2013-10-22 Digital River, Inc. Methods of controlling access to network content referenced within structured documents
US20060294383A1 (en) * 2005-06-28 2006-12-28 Paula Austel Secure data communications in web services
US8250226B2 (en) * 2005-07-21 2012-08-21 Ca, Inc. Generating one or more clients for generating one or more synthetic transactions with one or more web service operations
CN100401259C (zh) 2005-08-15 2008-07-09 中兴通讯股份有限公司 一种分布式服务系统的服务提供方法
CN100454833C (zh) 2005-08-19 2009-01-21 华为技术有限公司 一种识别网管接口参数的方法
US9626667B2 (en) 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
WO2007047846A3 (en) 2005-10-18 2007-10-18 Intertrust Tech Corp Methods for digital rights management
CN100444148C (zh) 2005-12-08 2008-12-17 北京北方微电子基地设备工艺研究中心有限责任公司 基于Web服务的工厂主机与集群控制器系统的控制方法
US8230487B2 (en) 2005-12-21 2012-07-24 International Business Machines Corporation Method and system for controlling access to a secondary system
US8606895B2 (en) * 2006-01-17 2013-12-10 Kidaro (Israel) Ltd. Seamless integration of multiple computing environments
US20070201655A1 (en) * 2006-02-03 2007-08-30 Michael Shenfield System and method for installing custom services on a component-based application platform
US20070220035A1 (en) * 2006-03-17 2007-09-20 Filip Misovski Generating user interface using metadata
US7698251B2 (en) 2006-04-27 2010-04-13 International Business Machines Corporation Fault tolerant facility for the aggregation of data from multiple processing units
US9386327B2 (en) 2006-05-24 2016-07-05 Time Warner Cable Enterprises Llc Secondary content insertion apparatus and methods
US8280982B2 (en) 2006-05-24 2012-10-02 Time Warner Cable Inc. Personal content server apparatus and methods
US8024762B2 (en) 2006-06-13 2011-09-20 Time Warner Cable Inc. Methods and apparatus for providing virtual content over a network
US9830145B2 (en) * 2006-08-14 2017-11-28 Federal Home Loan Mortgage Corporation (Freddie Mac) Systems and methods for infrastructure and middleware provisioning
US20080147835A1 (en) * 2006-12-19 2008-06-19 Sunil Chandra Partially decentralized composition of web services
US20080178010A1 (en) * 2007-01-18 2008-07-24 Vaterlaus Robert K Cryptographic web service
US8181206B2 (en) 2007-02-28 2012-05-15 Time Warner Cable Inc. Personal content server apparatus and methods
US8370812B2 (en) * 2007-04-02 2013-02-05 International Business Machines Corporation Method and system for automatically assembling processing graphs in information processing systems
US8098248B2 (en) * 2007-04-02 2012-01-17 International Business Machines Corporation Method for semantic modeling of stream processing components to enable automatic application composition
US8863102B2 (en) * 2007-04-02 2014-10-14 International Business Machines Corporation Method and system for assembling information processing applications based on declarative semantic specifications
US8307372B2 (en) * 2007-04-02 2012-11-06 International Business Machines Corporation Method for declarative semantic expression of user intent to enable goal-driven information processing
US8166465B2 (en) * 2007-04-02 2012-04-24 International Business Machines Corporation Method and system for composing stream processing applications according to a semantic description of a processing goal
US8656472B2 (en) 2007-04-20 2014-02-18 Microsoft Corporation Request-specific authentication for accessing web service resources
US8117233B2 (en) * 2007-05-14 2012-02-14 International Business Machines Corporation Method and system for message-oriented semantic web service composition based on artificial intelligence planning
US8528058B2 (en) 2007-05-31 2013-09-03 Microsoft Corporation Native use of web service protocols and claims in server authentication
CN101335622B (zh) 2007-06-27 2012-08-29 日电(中国)有限公司 使用匿名柔性凭证的用于分布式授权的方法和装置
US7991877B2 (en) 2007-10-05 2011-08-02 International Business Machines Corporation Rogue router hunter
US9503691B2 (en) 2008-02-19 2016-11-22 Time Warner Cable Enterprises Llc Methods and apparatus for enhanced advertising and promotional delivery in a network
US8364788B2 (en) * 2008-03-13 2013-01-29 Hewlett-Packard Development Company, L.P. Processing client requests for common services according to one or more canonical forms
US8601253B2 (en) * 2008-04-24 2013-12-03 International Business Machines Corporation Dynamic provisioning in data processing environment
US8893242B2 (en) * 2008-04-29 2014-11-18 Ebay Inc. System and method for pool-based identity generation and use for service access
US8782065B2 (en) * 2008-06-06 2014-07-15 Microsoft Corporation Interfacing an application to data sources via a web service interface
CN101616136B (zh) * 2008-06-26 2013-05-01 阿里巴巴集团控股有限公司 一种提供互联网服务的方法及服务集成平台系统
US9357247B2 (en) * 2008-11-24 2016-05-31 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US8555407B2 (en) * 2009-10-09 2013-10-08 Lockheed Martin Corporation On demand visibility services and smart directory
US20110103374A1 (en) 2009-10-30 2011-05-05 Lajoie Michael L Methods and apparatus for packetized content delivery over a content delivery network
US9519728B2 (en) 2009-12-04 2016-12-13 Time Warner Cable Enterprises Llc Apparatus and methods for monitoring and optimizing delivery of content in a network
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
CN102457555A (zh) * 2010-10-28 2012-05-16 中兴通讯股份有限公司 一种分布式存储的安全系统及方法
CN102546322A (zh) * 2010-12-31 2012-07-04 青岛海尔软件有限公司 数字家庭的Web服务系统
US20120239727A1 (en) * 2011-03-16 2012-09-20 Kddi Corporation Multimedia service network and method for providing the same
WO2012142178A3 (en) 2011-04-11 2013-01-03 Intertrust Technologies Corporation Information security systems and methods
CN103220259B (zh) 2012-01-20 2016-06-08 华为技术有限公司 Oauth API的使用、调用方法、设备及系统
US9401904B1 (en) * 2012-03-15 2016-07-26 Motio, Inc. Security migration in a business intelligence environment
JP6066647B2 (ja) * 2012-09-27 2017-01-25 キヤノン株式会社 デバイス装置、その制御方法、およびそのプログラム
GB201300415D0 (en) * 2013-01-10 2013-02-27 Ibm Web Services
CN103970214A (zh) * 2014-05-19 2014-08-06 浪潮电子信息产业股份有限公司 一种异构加速刀片式计算机系统架构
US20150349934A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Application-level acknowledgements
US20160316016A1 (en) * 2015-04-27 2016-10-27 Microsoft Technology Licensing, Llc Aggregation and federation of distributed service entities and associations
US9225711B1 (en) * 2015-05-14 2015-12-29 Fmr Llc Transferring an authenticated session between security contexts

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US111848A (en) * 1871-02-14 jackson
US184070A (en) * 1876-11-07 Improvement in gage-cocks
US142760A (en) * 1873-09-16 Improvement in alloys to resemble silver
US7976A (en) * 1851-03-11 Action
US34771A (en) * 1862-03-25 parmenter
US59526A (en) * 1866-11-06 Improvement in carriages
US4667882A (en) 1981-10-15 1987-05-26 West Point Pepperell, Inc. Device for applying foam to textiles
DE3582232D1 (de) 1984-12-28 1991-04-25 Mackie Donald E Geraet zum spielen eines spiels.
US5715453A (en) * 1996-05-31 1998-02-03 International Business Machines Corporation Web server mechanism for processing function calls for dynamic data queries in a web page
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
JP3410324B2 (ja) 1997-04-30 2003-05-26 日本電信電話株式会社 オーダエントリ情報変換装置およびオーダエントリシステム
US5884317A (en) * 1997-08-20 1999-03-16 Bea Systems, Inc. Service interface repository
US6546488B2 (en) 1997-09-22 2003-04-08 Hughes Electronics Corporation Broadcast delivery of information to a personal computer for local storage and access
WO1999050756A1 (en) 1998-03-27 1999-10-07 Infoimage Incorporated Methods and apparatus for network applications using object tools
US6564251B2 (en) * 1998-12-03 2003-05-13 Microsoft Corporation Scalable computing system for presenting customized aggregation of information
US6738964B1 (en) * 1999-03-11 2004-05-18 Texas Instruments Incorporated Graphical development system and method
US6560633B1 (en) * 1999-06-10 2003-05-06 Bow Street Software, Inc. Method for creating network services by transforming an XML runtime model in response to an iterative input process
US6792605B1 (en) 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
US6516349B1 (en) * 1999-09-07 2003-02-04 Sun Microsystems, Inc. System for updating a set of instantiated content providers based on changes in content provider directory without interruption of a network information services
US6839680B1 (en) * 1999-09-30 2005-01-04 Fujitsu Limited Internet profiling
US7441232B2 (en) 1999-11-08 2008-10-21 British Telecommunications Public Limited Company Task management
US6851088B1 (en) * 1999-12-07 2005-02-01 International Business Machines Corporation Conditional highlighting of given cells in a dynamic HTML table
EP1117220A1 (de) * 2000-01-14 2001-07-18 Sun Microsystems Inc. Verfahren und Vorrichtung zur Protokollübersetzung
JP3711866B2 (ja) 2000-04-10 2005-11-02 日本電気株式会社 プラグアンドプレイ機能を有するフレームワークおよびその再構成方法
US6857008B1 (en) * 2000-04-19 2005-02-15 Cisco Technology, Inc. Arrangement for accessing an IP-based messaging server by telephone for management of stored messages
DE60102234T2 (de) 2000-05-09 2005-02-24 Sun Microsystems, Inc., Santa Clara Verfahren und vorrichtung zur ermittlung von benachbarten diensten
US6643650B1 (en) * 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
WO2002015515A3 (en) * 2000-08-11 2002-09-19 Manugistics Inc System and method for integrating disparate networks for use in electronic communication and commerce
FR2813471B1 (fr) * 2000-08-31 2002-12-20 Schneider Automation Systeme de communication d'un equipement d'automatisme base sur le protocole soap
US7647407B2 (en) * 2000-09-15 2010-01-12 Invensys Systems, Inc. Method and system for administering a concurrent user licensing agreement on a manufacturing/process control information portal server
US20020065946A1 (en) * 2000-10-17 2002-05-30 Shankar Narayan Synchronized computing with internet widgets
US6681221B1 (en) * 2000-10-18 2004-01-20 Docent, Inc. Method and system for achieving directed acyclic graph (DAG) representations of data in XML
US6829630B1 (en) * 2000-11-24 2004-12-07 Xerox Corporation Mechanisms for web-object event/state-driven communication between networked devices
US20020111848A1 (en) 2001-02-12 2002-08-15 White Craig R. Aggregation of services on network portals
US7283811B2 (en) 2001-02-23 2007-10-16 Lucent Technologies Inc. System and method for aggregation of user applications for limited-resource devices
US7236939B2 (en) 2001-03-31 2007-06-26 Hewlett-Packard Development Company, L.P. Peer-to-peer inter-enterprise collaborative process management method and system
US20020198973A1 (en) * 2001-04-30 2002-12-26 Besaw Lawrence M. System for dynamic customer filtering of management information presented through a web-based portal
US20020158899A1 (en) * 2001-04-30 2002-10-31 Robert Raymond Portal system and method for managing resources in a networked computing environment
US20030005090A1 (en) * 2001-06-30 2003-01-02 Sullivan Robert R. System and method for integrating network services
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US6920461B2 (en) * 2001-07-10 2005-07-19 Microsoft Corp. Application program interface for network software platform

Also Published As

Publication number Publication date Type
WO2003060710A3 (en) 2004-05-06 application
EP1483671A2 (de) 2004-12-08 application
JP2005515540A (ja) 2005-05-26 application
KR100600959B1 (ko) 2006-07-13 grant
WO2003060710A2 (en) 2003-07-24 application
DE60218069D1 (de) 2007-03-22 grant
CN1608248A (zh) 2005-04-20 application
ES2278066T3 (es) 2007-08-01 grant
CN1291318C (zh) 2006-12-20 grant
US20030135628A1 (en) 2003-07-17 application
JP4594621B2 (ja) 2010-12-08 grant
KR20040068106A (ko) 2004-07-30 application
US7603469B2 (en) 2009-10-13 grant
EP1483671B1 (de) 2007-02-07 grant

Similar Documents

Publication Publication Date Title
Srinivasan et al. An overview of service-oriented architecture, web services and grid computing
Britton et al. IT architectures and middleware: strategies for building large, integrated systems
Lorch et al. First experiences using XACML for access control in distributed systems
US7263551B2 (en) Distributed computing services platform
US6886046B2 (en) Methods and apparatus for extendible information aggregation and presentation
US7349912B2 (en) Runtime modification of entries in an identity system
US6804674B2 (en) Scalable Content management system and method of using the same
US7392391B2 (en) System and method for secure configuration of sensitive web services
US7080092B2 (en) Application view component for system integration
US6816871B2 (en) Delivering output XML with dynamically selectable processing
US20020169842A1 (en) Method and system for facilitating the integration of a plurality of dissimilar systems
US20050234928A1 (en) Synchronous interface to asynchronous processes
US7213249B2 (en) Blocking cache flush requests until completing current pending requests in a local server and remote server
US20040230982A1 (en) Assembly of business process using intellectual capital processing
US20020133535A1 (en) Identity-centric data access
US7757271B2 (en) Computer system security service
US20040117376A1 (en) Method for distributed acquisition of data from computer-based network data sources
US7085834B2 (en) Determining a user&#39;s groups
US20090013310A1 (en) System and method for developing rich internet applications for remote computing devices
US20120173612A1 (en) Editing an unhosted third party application
US20080222512A1 (en) Associating annotations with document families
Pires et al. Building reliable web services compositions
US7139798B2 (en) Method and apparatus for connecting a secure peer-to-peer collaboration system to an external system
US7363339B2 (en) Determining group membership
Smith Portals: toward an application framework for interoperability