-
Die vorliegende Erfindung bezieht
sich auf ein System zur Bereitstellung von Diensten zur Verwendung
in Umgebungen für
verteilte Verarbeitung.
-
Umgebungen für verteilte Verarbeitung werden
zunehmend für
nützlich
befunden. Verteilte Verarbeitung beschreibt den Fall, in dem Rechenleistung
nicht mehr zentralisiert ist, zum Beispiel in einer Mainframe-Installation,
sondern sich an mehreren verschiedenen Stellen mit Kommunikationsverbindungen
dazwischen befindet. Client/Server-Architekturen sind eine Form
von Umgebungen für
verteilte Verarbeitung, bei der eine Rechneranwendung oder ein Softwareprozess
auf zwei oder mehr Rechnerplattformen verteilt sein kann. Diese
Rechnerplattformen können
zum Beispiel PCs sein, die durch ein Netzwerk verbunden sind, wie
etwa ein lokales Netzwerk (LAN, Local Area Network).
-
In jeder Rechnerumgebung ist es manchmal
erforderlich, einen Vorgang durch die Verwendung eines Satzes von
verschiedenen Prozessen zu unterstützen. Diese Prozesse können gemeinsam
installiert oder physikalisch an verschiedenen Stellen installiert
sein. Diese Prozesse können
z. B. verschiedene Prozesse für die
Bereitstellung von Informationen und einen Prozess für die Durchführung einer
Sicherheitsüberprüfung des beabsichtigten
Empfängers
der Informationen einschließen.
-
Beispielsweise müssen Manager in Organisationen
Entscheidungen auf der Basis von Informationen von Marketing, Verkauf,
Forschung, Entwicklung, Produktion, Finanz- und Rechtsabteilungen
fällen
können. Es
kann auch erforderlich sein; in der Lage zu sein, z. B. einen strengen
Sicherheitsprozess erfüllten,
der dazu entworfen ist, zu verhindern, dass die Informationen in
die falschen Hände
geraten. Das Anfordern relevanter und konsistenter Informationen über ein
großes
Unternehmen hin weg kann komplex und zeitraubend sein, insbesondere
wenn auch andere Prozesse involviert sind. Auch dann können Änderungen
der Informationen, die in einer Abteilung durchgeführt werden,
Auswirkungen auf ein ganzes Unternehmen haben, wobei vorherige Entscheidungen
oft ungültig
werden.
-
Ein anderes Beispiel für die Aktivität mehrerer
Prozesse kann das Erstellen von Konten sein. Dies kann das Sammeln
von Informationen aus verschiedenen Quellen, die Verwendung eines
Sicherheitsprozesses, um den neuen Inhaber des Kontos zu überprüfen und
das Auslösen
der Erstellung von Kontoauszügen nach
dem Zeitplan und andere Vorgänge
erfordern.
-
Das Aufbauen eines Gesamtdienstes
kann folglich in der Tat auf verschiedenen Teilprozessen beruhen,
an die jeweils eigene Verfügbarkeitsanforderungen
in Bezug auf beispielsweise die Speicherkapazität, die Kommunikationsbandbreite,
die Lieferzeit usw. gestellt werden.
-
Ein Softwareagent ist üblicherweise
ein Softwaremodul, das Prozesssoftware und Daten oder eine Einrichtung
für den
Datenzugriff umfasst. Agenten werden in „Intelligent Agents: Theory
and Practice" von
M. J. Woodhouse and N. R. Jennings (1995), The Knowledge Engineering
Review, Volume 10(2) 115–152
beschrieben. Ein System, das auf Softwareagenten basiert, ist in "GRATE: A General
Framework for Co-Operative Problem Solving" von N. R. Jennings, E. H. Mamdani,
I. Laresgoiti, J. Peres und J. Corerea (1992) IEEE-BCS Journal of
Intelligent Systems Engineering 1(2) 102–114 beschrieben. Dieses System
basiert auf einer Gemeinschaft von Agenten, die als GRATE-Agenten
bekannt sind, und hat eine flache Organisation ohne zentralisierte
oder hierarchische Struktur. Jeder Agent hat drei primäre Module,
das Situationsein schätzungs-, das
Kontroll- und das Kooperationsmodul. Das Kontrollmodul stellt die
Schnittstelle zu dem zu Grunde liegenden System auf Bereichsebene
zur Verfügung,
das Situationseinschätzungsmodul
entscheidet, welche Aktivitäten
lokal ausgeführt
und welche delegiert werden und steuert die individuelle Ausführung von
Aufgaben, und das Kooperationsmodul kümmert sich um die Kooperationsprotokolle
für den
Agenten, wie etwa Client-Server-Protokolle und Protokolle des Vertragsnetzes.
-
Wie immer wird bevorzugt, dass die
Zeit bis zur tatsächlichen
Bereitstellung und dem Empfang eines Dienstes nicht zu lang ist.
Folglich wird gewöhnlich
bevorzugt, dass in jeder Umgebung, in der möglicherweise verschiedene Verarbeitungskapazitäten für die Bereitstellung
eines Dienstes zusammengeführt
werden müssen,
die Zeit für
den Aufbau dieser verschiedenen Verarbeitungskapazitäten gering
gehalten wird.
-
Nach einem Aspekt schlägt die vorliegende
Erfindung ein System zur Bereitstellung von Diensten zur Verwendung
in Umgebungen für
verteilte Verarbeitung vor, wobei das System folgendes umfasst:
einen
Eingang für
den Empfang einer Anfrage eines Dienstes;
eine Einrichtung
zur Verarbeitung der Anfrage eines Dienstes zur Identifizierung
einer oder mehrerer Teilprozesse für die Versorgung mit dem angefragten
Dienst;
eine Verhandlungseinrichtung zum Verhandeln mit einer
Einheit oder Einheiten zur Bereitstellung jedes Teilprozesses, um
Bedingungen herzustellen, unter denen der/die Teilprozesse) bereitgestellt
werden können;
eine
Einrichtung für
den Zugriff auf einen aktualisierbaren Datenspeicher, um die Bedingungen
zu speichern, wenn diese hergestellt wurden; und
einen Ausgang
für die
Lieferung einer Antwort auf die Anfrage des Dienstes, wobei die
Antwort einen Hinweis auf die Verfügbarkeit des angefragten Dienstes
umfasst;
wobei die Einrichtung zur Verarbeitung der Anfrage
des Dienstes dazu eingerichtet ist, eine Anfrage eines Dienstes
zu verarbeiten, indem auf eine oder mehrere der Bedingungen in dem
Datenspeicher zugegriffen, die Anfrage mit einer oder mehreren Bedingungen
verarbeitet und die Antwort erzeugt wird,
dadurch gekennzeichnet,
dass die Verhandlungseinrichtung dazu eingerichtet ist, die Bedingungen
in dem Datenspeicher durch Verhandeln vor dem Empfangen der Anfrage
des Dienstes proaktiv herzustellen.
-
Ein Teilprozess kann zum Beispiel
von einem anderen System und/oder einer Verarbeitungskapazität in demselben
System bereitgestellt werden.
-
Obwohl Ausführungen der vorliegenden Erfindung
dazu ausgerüstet
sind, für
die Bereitstellung von Teilprozessen zu verhandeln, um einen Dienst
bereitzustellen, wird folglich am Anfang eine Meldung über die Verfügbarkeit
eines Dienstes aus den gespeicherten Daten statt aus der Echtzeitverhandlung
zur Herstellung der Bedingungen der Bereitstellung des Dienstes
erzeugt. Dies bringt einen Geschwindigkeitsvorteil, da, wie oben
erwähnt,
die Echtzeitverhandlung in der Praxis Verzögerungen verursachen kann.
-
Die Verarbeitungseinrichtung kann
zuerst Teilprozesse identifizieren, die für die Bereitstellung des angefragten
Dienstes erforderlich sind, und auf die Parameter bezüglich dieser
Teilprozesse zugreifen, oder einer oder mehr Parameter können mit
Bezug auf den Dienst als eine Einheit gespeichert sein.
-
Ein System wie oben beschrieben kann
als Software-„Agent" ausgeführt sein.
Die Software des Prozesses schließt gewöhnlich wenigstens einen Verhandlungsprozess
ein, um mit anderen Agenten zu verhandeln, die verfügbaren Daten
enthalten gewöhnlich
sowohl lokale Daten oder für
den Agenten spezifische Daten, als auch Daten, die von globaler
Natur im Hinblick auf ein Gesamtsystem sind, das die Agenten einschließt.
-
Ein System nach einer Ausführung der
vorliegenden Erfindung kann selbst ein Agent sein. Es kann Verarbeitungs-
und Ressourcenkapazität
für die
Bereitstellung wenigstens eines Teils eines Teilprozesses oder einer
Ressource enthalten, die erforderlich ist, um einen Dienst zur Verfügung zu
stellen. Das System kann jedoch bevorzugt eine Vielzahl der obengenannten
Module oder Agenten umfassen, wobei jeder Agent Kapazität zur Bereitstellung
von wenigstens einem Teil eines Teilprozesses oder einer Ressource
umfasst (oder die Kontrolle darüber
hat).
-
Die oben erwähnten „Parameter zur Anzeige der
Verfügbarkeit" können die
Form eines Satzes von Bedingungen oder Regeln und/oder Daten haben,
durch die ein Teilprozess oder eine Ressource eines Agenten für einen
anderen oder von einem Agenten als direkte Lieferung eines Dienstes
bereitgestellt werden kann, und die manchmal als „Übereinkunft über die
Ebene des Dienstes" (SLA,
Service Level Agreement) bekannt sind.
-
Wenn das System eine Vielzahl der
Module oder Agenten umfasst, dann kann die Verfügbarkeit des Dienstes durch
die SLAs von und zwischen den Agenten, die für die Bereitstellung des Dienstes
erforderlich sind, zu verstehen gegeben werden. Die Agenten können dann
eine „Peer-to-Peer"-Beziehung haben,
bei der der Status aller Agenten in einem Team von Agenten, die
zum Zwecke der Bereitstellung des Dienstes zusammengebracht wurden,
im wesentlichen gleich ist. Alternativ können Agenten mit hierarchischer
Beziehung vorteilhaft sein, wobei ein primärer Agent die Verfügbarkeitsdaten
für eine
Gruppe von „untergeordneten" Agenten haben kann.
Das heißt,
dass für
den primären
Agenten eine SLA gespeichert ist, die anzeigt, dass er selbst einen
Dienst bereitstellen kann, welcher in einem vorher definierten Satz
anderer SLAs festgelegt ist, wobei diese die SLAs der untergeordneten
Agenten sind.
-
Eine solche Hierarchie kann dadurch
komplex sein, dass sie mehr als eine Ebene untergeordneter Agenten
haben kann. Die Effizienz des Abschätzens der Verfügbarkeit
eines Dienstes kann gesteigert werden, wenn ein primärer Agent
bei dem Ereignis, dass eine erste Gruppe nicht mit einer SLA kompatibel
war, die von dem primären
Agenten ausgehandelt wurde, eine ganze Gruppe von untergeordneten
Agenten gegen eine andere Gruppe austauschen kann.
-
In Ausführungen von diesem Typ kann
es vorteilhaft sein, wenn wenigstens einige der SLAs eine begrenzte
Lebensdauer haben: ein „Zeitab-lauf"-Mechanismus. Sonst
können
die tatsächlichen
Bedingungen eine SLA nicht mehr anwendbar oder bestenfalls irreführend machen,
weil sie nicht mehr aktuell sind. Dies ist besonders vorteilhaft,
wenn das System proaktive Versionen des Dienstes umfasst, in denen
das System z. B. einen Benutzer auf Informationen bezüglich eines
Dienstes aufmerksam machen kann. Wenn eine relevante SLA abläuft, hilft
dies, die Möglichkeit
zu verringern, dass das System veraltete Daten oder unangemessene Eingabeaufforderungen
oder Dateneinträge
liefert.
-
Der Begriff „Einheit" kann mit der folgenden Spezifikation
verwendet werden. Es ist klar, dass der Begriff „Einheit", wie er hier verwendet wird, einen
Teil der Gesamteinrichtung bedeutet, der in einer Rechnerumgebung
kommunizieren kann. In der Praxis umfasst diese wenigstens einen
Eingang und einen Ausgang, und oft einige Einrichtungen zum Liefern
eines oder mehrerer Dienste oder Teilprozesse, die bereitgestellt
werden sollen. Sie kann deshalb z. B. eine Workstation, ein PC oder
ein Knoten im Rechnernetzwerk sein.
-
In Ausführungen der Erfindung umfasst
ein System im allgemeinen einen Steuerausgang, der mit einer oder
mehreren Aufgaben (Teilprozessen) und/oder Ressourcen verbunden
ist, die für
die Bereitstellung eines Dienstes erforderlich sind.
-
Das System kann außerdem einen
Dateneingang zum Empfang der Datenausgaben von den Aufgaben und/oder
Prozessen umfassen, der in der Rechnerumgebung mit einer oder mehreren
Aufgaben und/oder Ressourcen verbunden ist, die für die Bereitstellung
des Dienstes erforderlich sind, und eine Datenverarbeitungseinrichtung,
um die Parameter aus den Daten zu erzeugen. Alternativ kann die
Datenausgabe der Aufgaben und/oder Prozessen die Parameter schon
beinhalten.
-
Vorzugsweise umfasst ein System nach
einer Ausführung
der Erfindung außerdem
und eine Ablaufplanungseinrichtung, um die Ausführung der Teilprozesse und
die Bereitstellung von Ressourcen als Unterstützung eines Dienstes zu planen.
Auf dem Empfang einer Anfrage eines Dienstes hin wird die Ablaufplanungseinrichtung
jedoch bevorzugt ausgelöst,
nachdem eine Antwort auf eine Anfrage eines Dienstes als Anzeige
der Verfügbarkeit
ausgegeben wurde. Dies vermeidet Verzögerungen bei der Anzeige der
Verfügbarkeit, die
z. B. von jeglicher detaillierter Verarbeitung und Koordination
von Planungsdaten oder Bedingungen verursacht werden.
-
Wenn das System einmal einverstanden
war, den Dienst bereitzustellen, kann es die Verwendung seiner Ressourcen
planen, um die Bereitstellung dieses Dienstes zu unterstützen. Folglich
liefern Ausführungen der
vorliegenden Erfindung ein Verfahren zur Bereitstellung eines Dienstes
in einer Kommunikationsumgebung, das das Empfangen einer Anfrage
eines Dienstes, den Zugriff auf einen oder mehrere gespeicherte
Parameter für
die Anzeige der Verfügbarkeit
des Dienstes, das Liefern einer Ausgabe auf Basis des/der Parameters)
und nachfolgend die Planung von Ressourcen und Verarbeitungskapazität für die Bereitstellung
des Dienstes umfasst.
-
In Ausführungen der vorliegenden Erfindung
können
relevante Informationen über
das oben gesagte hinaus proaktiv identifiziert und Parteien zur
Verfügung
gestellt werden, die die Informationen nicht ausdrücklich angefordert
haben, von denen aber nichtsdestoweniger geglaubt wird, dass sie
ein Interesse an den Informationen haben. Eine solche Fähigkeit
der Informationsverbreitung ist besonders für Parteien nützlich,
die sich nicht darüber
bewusst sind, das die Information existiert, z. B. Entscheider und
Anfrager des Dienstes. Diese Informationsverbreitung kann geschehen,
wenn die Information verfügbar
ist oder wenn die Partei einen Dienst einleitet, für den die
Information relevant sein kann.
-
Systeme nach Ausführungen der vorliegenden Erfindung
können
ver wendet werden, um die Art und Weise zu verbessern, wie eine großes Unternehmen
sein Geschäft
betreibt, indem die Art verbessern wird, auf die es auf seine gewaltigen
Mengen von Informationen zugreift, sie verwendet und Daten hinzufügt. Die
Metapher „Concurrent
Engineering" (gleichzeitiges
Organisieren) legt nahe, dass die beste Art, eine Geschäftstätigkeit
zum Erfolg zu führen,
ist, alle erforderlichen Informationen, Ressourcen und Fähigkeiten,
die erforderlich sind, um diese Tätigkeit auszuführen, so
früh wie
möglich
zusammenzubringen.
-
Weitere Ausführungen der vorliegenden Erfindung
unterstützen
insbesondere das Konzept der virtuellen Organisation, das zwei oder
mehr konkrete Organisationen umfasst, die für eine definierte Zeitdauer
verbunden sind, zum Beispiel durch ein Geschäftsabkommen oder einen Vertrag,
und die zu diesem Zweck von der vorliegenden Erfindung als eine
einzelne Organisation behandelt werden. Unter diesen Umständen werden
die oder einige der Ressourcen, die jeder Organisation zugeordnet
sind, für
das Gesamtsystem verfügbar. Solche
virtuellen Organisationen unterliegen ihrer Natur zufolge strengen
Mechanismen, die steuern, welche Transaktionen und in welchem Ausmaß zwischen
den konkreten Organisationen ausgeführt werden können.
-
Ausführungen der vorliegenden Erfindung
können
folgende Aktivitäten
bereitstellen:
- (i) Erlaubnis für den Entscheider,
auf die relevanten Informationen zuzugreifen, wo auch immer in der
Organisation sie sich befinden (dies sollte trotz der Tatsache möglich sein,
dass Informationen in vielen verschiedenen Systemtypen und vielen
verschiedenen Informationsmodellen gespeichert sein können);
- (ii) Erlaubnis für
den Entscheider, Informationsmanagementdienste von anderen Abteilungen
in der Organisation (und in manchen Fällen sogar außerhalb
der Organisation) anzufragen und zu erhalten;
- (iii) Proaktives Identifizieren und rechtzeitiges Liefern von
relevanten Informationen, die nicht explizit angefragt wurden (z.
B. weil der Entscheider sich nicht über ihre Existenz bewusst ist);
- (iv) Informieren des Entscheiders von Änderungen, die woanders in
dem Geschäftsprozess
durchgeführt wurden,
die sich auf den aktuellen Entscheidungskontext auswirken; und
- (v) Identifizieren der Parteien, die an dem Ergebnis und den
Folgen des Entscheidungsprozesses interessiert sein können.
-
Wie oben erwähnt ist ein Vorteil der Ausführungen
der vorliegenden Erfindung, dass eine Entscheidung zur Bereitstellung
eines Dienstes auf gespeicherten Parametern basiert ist und nicht
auf Informationen der Ressourcen, die für die Bereitstellung des Dienstes
erforderlich sind, in Echtzeit oder nahezu Echtzeit basiert: es
ist nicht erforderlich, eine detaillierte Analyse der Ressourcen
durchzuführen,
die dem System verfügbar
sind, bevor eine Entscheidung erreicht wird. Das System gründet seine
Entscheidungen auf einer Schätzung
der Kapazität
des Systems, um den Dienst zum angefragten Zeitpunkt zur Verfügung zu
stellen.
-
Die gespeicherten Parameter können die
durchschnittlich erwartete Zeit für die Ausführung des Dienstes, die zu
erwartenden Kosten der Ausführung
der Aufgaben, um einen Dienst bereitzustellen, und/oder das Arbeitsvolumen,
das von Systemen schon geleistet wird, umfassen. Andere Informationen
können
ebenso verwendet werden, um festzulegen, mit welcher Begründung ein
Dienst bereitgestellt wird, zum Beispiel Erfahrungen aus der Vergangenheit
mit irgendwelchen Geschäften
mit der gleichen Einheit.
-
Obwohl das Fehlen einer detaillierten
Ressourcenanalyse während
der Bereitstellung das Risiko steigert, dass es nicht möglich ist,
einen Dienst zu fertigzustellen, nachdem er einmal ausgehandelt
wurde, kann mit solchem Versagen akzeptabel umgegangen werden, wie
unten detaillierter beschrieben wird.
-
Die Verarbeitungseinrichtung ist
typischerweise dazu eingerichtet, Daten von einer oder mehreren Ressourcen
für die
Aktualisierung des Datenspeichers zu empfangen. Solche Daten können ein
Maß der
Leistungsfähigkeit
des Systems auf Basis der Leistungsfähigkeit der Ressourcen in der
Vergangenheit umfassen. Zum Beispiel können jedesmal, wenn ein Dienst
von dem System bereitgestellt wurde, Informationen über die Leistungsfähigkeit
der Ressourcen dazu verwendet werden, den/die Parameter anzupassen.
Die Informationen über
die Leistungsfähigkeit
können
aktuelle Kostendaten und aktuelle Zeiten enthalten, die erforderlich waren,
um eine geforderte Ausgabe bereitzustellen. Die Informationen können auch
aktuelle Zustandsinformationen der Aufgaben enthalten, die dem System
leicht verfügbar
sind.
-
In manchen Ausführungen umfasst das System
einen Ausgang für
Anfragen, der mit einer verteilten Rechnerumgebung zur Anfrage eines
Teildienstes oder Prozesses von einer anderen Einheit verbunden
ist. Ein Teildienst oder Unterdienst ist ein Dienst, den das System
benötigt,
um seine Dienste bereitzustellen. Wenn z. B. der angefragte Dienst
ist, ein neues Geschäftskonto
zu eröffnen,
kann ein Unterdienst die Aufgabe sein, die finanzielle Rentabilität des zukünftigen
Kontoinhabers zu überprüfen. Dieser
Unterdienst wird typischerweise von einer Einheit bereitgestellt,
die ein anderes System sein kann, oder sogar ein menschlicher Bearbeiter.
-
In manchen Ausführungen umfasst das System
Planungseinrichtungen für
die Ressource(n) zur Bereitstellung eines Dienstes. In diesem Fall
ist die Verarbeitungseinrichtung vorzugsweise dazu eingerichtet,
bei Versagen der Planungseinrichtung als Reaktion eine Ressource
einzuplanen, um rechtzeitig einen Dienst fertigzustellen, und folgendes
auszuführen:
- – Erneutes
Planen der Aufgabe/des Dienstes;
- – Senden
einer Nachricht an die Einheit, dass der ursprünglich angefragte Dienst nur
unter anderen Bedingungen zur Verfügung gestellt werden kann;
- – Umdisponieren
des Dienstes auf eine andere Einheit, die Dienste bereitstellt;
oder
- – an
die Einheit melden, dass der Dienste nicht bereitgestellt werden
kann.
-
Diese möglichen Aktionen geben dem
System Flexibilität,
mit den Problemen umzugehen, die bei der Bereitstellung eines Dienstes
entstehen können.
-
Die oben genannten Schritte zur Wiederherstellung
können ähnlich auf
den Fall angewendet werden, in dem ein Dienst während des Betriebs versagt.
Die Verfügbarkeit
einer Ressource kann zum Beispiel wegen einer Unterbrechung in der
Kommunikation verloren gehen.
-
Deshalb kann das System im allgemeinen
außerdem
eine Einrichtung zur Überwachung
von Versagen umfassen, wie etwa das der Planungseinrichtung. Um
auf die Entdeckung eines Versagens zu reagieren, kann das System
dann dazu eingerichtet sein, die Ausgabe einer Antwort auszulösen, die
hinsichtlich der entsprechenden Anfrage des Dienstes modifiziert
ist. Es kann außerdem
dazu eingerichtet sein, Anfragen von Diensten zu speichern und bei
Entdeckung von Versagen dazu veranlasst werden, die entsprechende
gespeicherte Prozessanfrage zu finden und darauf zuzugreifen, um
sie mit einem oder mehreren modifizierten Parametern aus dem aktualisierbaren
Datenspeicher erneut zu verarbeiten, und eine modifizierte Ausgabe
als Antwort bereitzustellen.
-
In Ausführungen der Erfindung ist das
System dazu eingerichtet, mehr als eine Ausführung eines Dienstes und/oder
einer Verhandlung über
einen Dienst für
eine oder mehrere gleichzeitig anfragende Einheiten bereitzustellen.
Ein Vorteil dieses Aspektes ist, dass das System für viele
Anfrager des Dienstes verfügbar ist.
In diesem Hinblick können
vorzugsweise wenigstens einige Ressourcen auch mehrfache Anfragen
nach Ressourcen gleichzeitig unterstützen.
-
Nach einem weiteren Aspekt stellt
die vorliegende Erfindung ein Verfahren für die Erstellung von Geschäftsvorgängen bereit,
wobei das Verfahren in einer verteilten Rechnerumgebung implementiert
ist, die wenigstens einen Dienstanbieter für die Bereitstellung von Geschäftsprozessdiensten
und wenigstens einen Anfrager von Diensten umfasst, wobei der Geschäftsprozessdienst
Teilprozesse einschließt,
die von Teilprozessanbietern bereitgestellt werden, wobei das Verfahren
folgendes umfasst:
- (i) Empfangen einer Anfrage
eines Dienst von einem Anfrager von Diensten in der Umgebung;
- (ii) Verarbeiten der Anfrage, um eine Spezifikation für den Geschäftsprozessdienst
zu aufzustellen; und
- (iii) Bereitstellen einer Antwort an den Anfrager des Dienstes,
dadurch gekennzeichnet, dass das Verfahren vor dem Empfang der Anfrage
weiter folgendes umfasst:
- (iv) Verhandeln mit einem oder mehreren Teilprozessanbietern über die
Bereitstellung von einem oder mehreren Teilprozessen;
- (v) Speichern von Parametern in einem aktualisierbaren Datenspeicher,
die die vorhandene Kapazität
des Dienstanbieters anzeigen, der den Dienst bereitstellen soll,
und die wenigstens teilweise auf den Ergebnissen der Verhandlung
beruhen; und das Verfahren weiter folgendes umfasst:
- (vi) als Antwort auf den Empfang der Anfrage Zugriff auf die
Parameter in dem aktualisierbaren Datenspeicher, die die vorhandene
Kapazität
des Dienstanbieters anzeigen, der den Dienst bereitstellen soll;
wobei die Antwort, die dem Anfrager des Dienstes geliefert wird,
auf den Parametern basiert.
-
(Die Begriffe „Dienstanbieter" und „Anfrager
von Diensten" bedeuten
hier natürlich
Einrichtungen zur Versorgung mit Diensten beziehungsweise Einrichtungen
für den
Zugriff auf Dienste statt Organisationen und Ähnliches, wofür diese
Begriffe anderswo manchmal verwendet werden.)
-
Nun werden Ausführungen der Erfindung, nur
als Beispiel, mit Bezug auf die Zeichnungen im Anhang beschrieben,
von denen
-
1 ein
Diagramm ist, das eine geeignete verteilte Architektur für die Unterstützung einer
Ausführung
der vorliegenden Erfindung darstellt;
-
2 ein
Diagramm ist, das einen grundlegenden Baustein der Architektur in 1 zeigt;
-
3 ein
Diagramm ist, das die Beziehungen darstellt, die zwischen verschiedenen
Teilen des Bausteins in 2 existieren;
-
4 ein
Diagramm ist, das das Konzept von virtuellen Agenturen darstellt;
-
5 ein
Diagramm ist, das die einzelnen Teile eines Agenten nach einer Ausführung der
vorliegenden Erfindung darstellt;
-
6 ein
Diagramm ist, dass ein beispielhaftes Szenario darstellt, in dem
eine Ausführung
der vorliegenden Erfindung arbeiten kann;
-
7 ein
Flussdiagramm eines Prozesses für
den Betrieb eines Dienstes in dem in 6 dargestellten
Szenario ist; und
-
8 einen
Agenten und die Architektur zeigt, in der er in Bezug auf die Hardware
sitzt.
-
Die Analyse einer Anzahl von Geschäftsvorgängen aus
verschiedenen industriellen und kommerziellen Bereichen beim Machen
der vorliegenden Erfindung ergab, dass verschiedene gemeinsame Merkmale identifiziert
wurden:
- (i) In Geschäftsprozesse sind oft mehrere
Organisationen involviert. Jede Organisation versucht innerhalb der
Gesamtaktivität
ihren eigenen Gewinn zu maximieren;
- (ii) Organisationen sind physikalisch verteilt. Diese Verteilung
kann über
ein Firmengelände, über ein
Land oder sogar über
Kontinente sein. Diese Situation ist noch offensichtlicher für virtuelle
Organisationen, wie etwa in „Social
Dimensions of Office Automation" von
A. Mowshowitz (1986), Advances in Computers, Vol 25, pp 335.404
beschrieben ist. Diese sind für
kurze Zeiträume
loyal und gehen dann auseinander, wenn es nicht länger profitabel
ist, zusammenzubleiben;
- (iii) Innerhalb der Organisationen gibt es dezentralisierte
Eigentumsrechte von Aufgaben, Informationen und Ressourcen, die
an dem Geschäftsprozess
beteiligt sind;
- (iv) verschiedene Gruppen in den Organisationen sind relativ
autonom – sie
steuern, wie ihre Ressourcen genutzt werden, von wem, zu welchen
Kosten und in welchen Zeitrahmen. Sie haben auch ihre eigenen Informationssysteme
mit ihren eigenen idiosynkratischen Vorstellungen, ihre Ressourcen
zu verwalten;
- (v) es gibt einen hohen Grad an natürlicher Konkurrenz – viele
zusammenhängende
Aufgaben laufen zu jedem gegebenen Zeitpunkt des Geschäftsprozesses.
Obwohl die Steuerung und die Ressourcen der einzelnen Teile dezentralisiert
sind, gibt es oft das Erfordernis, dem Gesamtprozess Beschränkungen
aufzuerlegen (z. B. Gesamtzeit, gesamtes Budget usw.); und
- (vi) Geschäftsprozesse
sind hochdynamisch und unvorhersagbar – es ist schwierig, vorab eine
vollständige Spezifikation
aller Aktivitäten
anzugeben, die ausgeführt
werden müssen,
und wie sie geordnet werden sollen. Jegliche detaillierten Zeitpläne, die
erstellt werden, werden oft von unvermeidbaren Verzögerungen und
unvorhersehbaren Ereignissen durchkreuzt (z. B. Leute sind krank
oder Aufgaben dauern länger
als erwartet).
-
Ausführungen der vorliegenden Erfindung
sind dafür
ausgelegt, Geschäfte
in diesem Typ von Umgebung zu unterstützen.
-
1 zeigt
eine Ansicht einer geeigneten Architektur in einer geschäftlichen
Organisation auf höchster
Ebene, in der eine Ausführung
der vorliegenden Erfindung arbeiten kann. In 1 ist ein verteiltes System von Agenten 10 über ein
geeignetes Kommunikationsnetzwerk 11 miteinander verbunden.
Die Umgebung einschließlich
der Agenten und dem Kommunikationsnetzwerk stellt eine Umgebung
für verteilte
Verarbeitung dar. Jede Abteilung 12 in der Organisation
wird von ihrem eigenen Agenten 10 in der Umgebung repräsentiert,
der einen Dienst, der mit der Abteilung zusammenhängt, für andere
Agent bereitstellen kann.
-
Eine verteilte Rechnerumgebung soll
nicht als ein bestimmter Teil der Technologie in dieser Spezifikation
verstanden werden. Es ist einfach eine Umgebung gemeint, in der
Verarbeitungskapazität
von Rechnern und Ressourcen separat angeordnet und über Kommunikationsverbindungen
irgend einer Art zugänglich
sein können.
-
In dieser Beschreibung bezieht sich
der Begriff „Agent" auf eine Funktion
oder einen Prozess, die/der in einer verteilten Rechnerumgebung
betrieben wird, und die/der autonom agieren kann, um eine Anfrage
für eine
Operation zu empfangen und ein Ergebnis bereitzustellen. Ein Agent
hat normalerweise Zugriff auf aktualisierbare lokale Daten und gewöhnlich auch
auf einige globale Informationen über die verteilte Umgebung, in
der er sich befindet. Agenten arbeiten autonom, haben eine Funktionalität zum Treffen
von Entscheidungen (Intelligenz), die es Ihnen erlaubt, zu verhandeln
und ein Ergebnis als Antwort auf eine ankommende Nachricht auszugeben.
-
Jeder Agent kann einen oder mehrere
Dienste ausführen.
Ein Dienst entspricht irgendeiner Einheit der Problemlösungstätigkeit.
Der ein fachste Dienst (genannt Aufgabe) repräsentiert eine atomare Einheit
in der Bemühung
um eine Problemlösung
in Ausführungen
der vorliegenden Erfindung. Diese atomaren Einheiten können kombiniert
werden, und komplexe Dienste bilden, indem Ordnungsbedingungen (z.
B. können
zwei Aufgaben parallel laufen, oder sie müssen parallel laufen, oder
sie müssen
nacheinander laufen) und eine Kontrolle der Bedingungen hinzugefügt werden.
Die Verschachtelung der Dienste kann beliebig komplex sein und die
oberste Ebene des gesamten Geschäftsprozesses
kann als Dienst betrachtet werden.
-
Dienste sind einem oder mehreren
Agenten zugeordnet, die für
deren Verwaltung und Ausführung
zuständig
sind. Viele Dienste werden von einem Agenten verwaltet, wobei dies
die Ausführung
von Unterdiensten durch eine Anzahl von anderen Agenten einschließen kann.
Da die Agenten autonom sind, gibt es keine Abhängigkeiten zur Kontrolle zwischen
ihnen; wenn deshalb ein Agent einen Dienst anfordert, der von einem
anderen Agenten verwaltet wird, kann er ihn nicht einfach anweisen,
den Dienst zu beginnen. Statt dessen müssen die Agenten zu einer gegenseitig
akzeptablen Übereinkunft über die
Dauer und die Bedingungen kommen, unter denen der gewünschten
Dienst ausgeführt
wird. Solche Verträge
werden Abkommen auf der Ebene von Diensten, SLAs (Service Level
Agreements), genannt. Der Mechanismus zum Treffen solcher SLAs ist
Verhandlung – ein
gemeinsamer Entscheidungsprozess, bei dem die Parteien ihre (möglicherweise
widersprüchlichen)
Forderungen zum Ausdruck bringen, und sich dann durch einen Prozess
von Zugeständnissen
auf eine Übereinkunft
hinbewegen oder nach neuen Alternativen suchen. Der Mechanismus
ist in „Negotiation
Principles" von
H. J. Mueller (1996) in Foundations of Distributed Artificial Intelligence,
veröffentlicht
von Wiley Interscience, und herausgegebenen von O'Hara und Jennings.
-
Unter Bezugnahme auf 3 haben die Agenten 31, 32, 33 im
allgemeinen die gleiche Basisarchitektur. Dies schließt einen „Agentenkopf" 31 ein,
der für
die Verwaltung der Aktivitäten
des Agenten und die Interaktion mit Gleichgestellten verantwortlich
ist, und eine „Agentur" 30, die
die Ressourcen zur Problemlösung
im Bereich des Agenten hat, wobei andere Agenten 32 und 33 als
Ressourcen mit eingeschlossen sind. Der Kopf hat eine Anzahl funktionaler
Komponenten, die für
jede seiner Hauptaktivitäten
verantwortlich sind – Kommunikation,
Ausführung
des Dienstes, Einschätzung
der Situation und Verwaltung der Interaktion (siehe Beschreibung
unten für
weitere Details). Diese interne Architektur bezieht sich auf die
GRATE- und ARCHON-Modelle für
Agenten, die in „Controlling
Co-operative Problem Solving in Industrial Multi-Agent Systems using
Joint Intentions" von
N. R. Jennings (1995), Artificial Intelligence 75 (2) 195–240, in „GRATE:
A General Framework for Co-operative Problem Solving" von N. R. Jennings,
E. H. Mamdani, I. Laresgoiti, J. Perez und J. Corera (1992), IEE-BCS
Journal of Intelligent Systems Engineering, 1 (2) 102–114 und
in „Using
ARCHON to develop real-world DAI applications for electricity transportation
management and particle accelerator control" von N. R. Jennings, J. Corera, I. Laresgoiti,
E. H. Mamdani, F. Perriolat, P. Skarek und L. Z. Varga (1996), IEEE
Expert beschrieben sind.
-
Bezugnehmend auf 8 ist ein Agenten 10 typischerweise
als ein Softwareabschnitt ausgeführt, zum
Beispiel in der Programmiersprache C, das auf einer geeigneten Rechnerplattform 80 läuft, zum
Beispiel auf einer auf UNIX(Handelsmarke)-basierten Plattform. Anfragen
und Ergebnisse werden zwischen dem Agenten 10 und einer
anfragenden Einheit, die ein anderer Agent 85 oder ein
Benutzerterminal 12 oder 82 sein kann, über ein
geeignetes Kommunikationsnetz 86, z. B. ein TCP/IP-kompatibles lokales
Netzwerk (LAN), zu dem die Rechnerplattformen 80 eine Schnittstelle
hat, hin- und her geschickt.
-
Der Agent 10 kann mit einem
oder mehreren lokalen Datenspeicher(n) 84 und 85 ausgestattet sein, oder
er kann über
das Netzwerk 86 auf eine Datenbank 82 zugreifen.
Der oder die Datenspeicher können
SLAs zwischen Agenten zur Unterstützung von Diensten enthalten,
die das System bereitstellen soll.
-
Jeder Agent 10 enthält im allgemeinen
(in seinem „Agentenkopf") einen Satz von
Prozessen 51, 52 und 53 für die Verwaltung
der Agenten und ihre Interaktionen, und ist auch (zum Beispiel in
seiner „Agentur") mit der Fähigkeit
zur Verarbeitung von Aufgaben und/oder mit Ressourcen 41, 42,
und 46 zur Verwendung bei der aktuellen Bereitstellung
von angefragten Diensten ausgestattet.
-
In manchen Ausführungen senden können mehrere
Agenten in Übereinstimmung
mit den Prinzipien der Umgebung für verteilte Prozesse auf einer
gemeinsamen Rechnerplattform 80 angeordnet sein, und umgekehrt
kann ein einzelner Agent über
mehrere Rechnerplattformen 80 in der Umgebung verwirklicht
sein. Die Rechnerumgebung kann auch heterogenen sein, und verschiedene
Typen von rechter Plattformen unterstützen.
-
Die Agenten 10 können miteinander
kommunizieren und über
die Bereitstellung von Diensten verhandeln. Von den Agenten gelieferte
Dienste können
von der Bereitstellung von Informationen und Daten bis zur Durchführung von
einigen gleichzeitig ablaufenden Aufgaben innerhalb eines Geschäftsprozesses
reichen. Ein Dienst umfasst gewöhnlich
eine Anzahl primitiver Aufgaben. Eine Aufgabe, die eine primitive
funktionale Komponente eines Geschäftsvorgangs ist, ist ein wiederverwendbarer Baustein,
der einem Agenten ermöglicht,
die Prozesse zu verwalten, aus denen ein Vorhaben aufgebaut ist.
Typischerweise hat eine Aufgabe 41 eine Struktur auf niedriger
Ebene, die es einem Benutzer ermöglicht,
die Grundvorgänge
zu definieren, aus denen sich der Geschäftsvorgang aufbaut, und sie
kann als verwaltetes Objekt in der verteilten Rechnerumgebung implementiert
sein. In einer Aufgabe sind implizit auch die Ressourcen, die sie
verbraucht, wenn sie aktiviert ist, und explizit ihre Spezifikationen
im Betrieb dargestellt, die die Informationen umfassen, die sie
erfordert und erzeugt, und die Zeitdauer der Aktivierung. Folglich
ist die Art und Weise vorhersagbar, wie sich eine Aufgabe unter
normalen Umständen
verhält,
wenn sie einmal aktiviert wurde. In dieser Ausführung unterstützt eine
Aufgabe zwei Schnittstellen: eine Verwaltungsschnittstelle, um einen
Standardsatz von Operationen zu unterstützen, die den Austausch von
Verwaltungsbefehlen und Informationen zwischen Aufgaben und Agenten
erlaubt, und eine Betriebsschnittstelle für die Unterstützung eines
nicht standardisierten, aber vereinbarten Satzes von Operationen,
der den Austausch von Betriebsmitteilungen zwischen den Aufgaben
ermöglicht.
Im wesentlichen ist ein Agent 10 in der Infrastruktur in
der 1 durch den Dienst,
den er bereitstellt, gekennzeichnet.
-
In dieser Ausführung gibt es drei Hauptanforderungen
an die Architektur: Autonomie, Gleichzeitigkeit und Migration. Autonomie
bedeutet, dass eine lokale Organisation, z. B. eine Rechtsabteilung,
definieren kann, wie sie ihre eigenen lokalen Aufgaben und Prozesse
ausführen
wird. Die Definition bestimmt, wie ein Agent, der die lokale Organisation
repräsentiert,
mit anderen Agenten interagiert. Aufgaben und Dienste, die den Agenten
zugeordnet sind, sollten gleichzeitig ablaufen können, wobei die Interaktionen
zwischen Aufgaben und Diensten von dem Agenten überwacht und verwaltet werden.
Migration ermöglicht,
dass Dienste für
Agenten schrittweise definiert werden, ohne, dass das verteilte
Gesamtsystem umgestaltet werden muss.
-
2 zeigt
eine Darstellung von einem Grundbaustein 20 der Architektur.
Der Grundbaustein umfasst einen Agenten 21 und Aufgaben 22,
die von dem Agenten gesteuert werden. In manchen Ausführungen
können
die Bausteine 20 dazu eingerichtet sein, auf Peer-to-Peer-Basis
zuarbeiten. Das heißt,
jede Einheit 20 kann mit jeder anderen Einheit verhandeln,
wenn sie einen Dienst bereitstellt oder anfragt. Die meisten handelsüblichen
Umgebungen basieren auf Organisationsmodellen, die logisch in einen
Rechnerverbund aus miteinander verbundenen Ressourcen und Diensten
aufgeteilt sind. Folglich stützt
sich die Architektur der vorliegenden Erfindung bei der Gruppierung
von Diensten und Aufgaben auf dieses Prinzip, wenn dies in der Praxis sinnvoll
ist. Für
die vorliegenden Zwecke ist eine solche Gruppierung von Aufgaben
und Diensten kollektiv als Agentur bekannt.
-
Eine Agentur ist einen Ansammlung
von Aufgaben (und implizit Ressourcen) und von (Unter-)Agenten,
die unter der direkten Kontrolle eines Agenten stehen. Eine Agentur
spiegelt die die hierarchische Gruppierung von Aufgaben wieder,
die in irgendeiner Form einen gemeinsamen Besitzer haben, und für die es
einen Grund gibt, zu versuchen, die Verwendung von Ressourcen in
der Ausführung
dieser Aufgaben zu optimieren. Die Ansammlung von Aufgaben und (Unter-)Agenten
in einer Agentur spiegelt nicht notwendigerweise eine funktionelle
Gruppierung wieder, obwohl dies in den meisten Organisationen erwartet
werden kann.
-
In 3 können andere
untergeordnete Agenten 32 und 33 ebenso zu der
Agentur eines Kontrollagenten 31 gehören. Dies bedeutet, dass die
untergeordneten Agenten 31 und 32 ausschließlich dem
Kontrollagenten
31 Dienste zur Verfügung stellen. Eine untergeordneter
Agent behält
jedoch immer noch seine Autonomie. Eine untergeordneter Agent kann
seinen Dienst nicht die direkt in der Welt außerhalb seiner Agentur anbieten.
Unter manchen Umständen
kann ein Agent sowohl die Rolle eines Kontrollagenten als auch die
eines untergeordneten Agenten haben. Die Agenten in einer Agentur
sind normalerweise die Kontrollagenten von Agenturen auf niedrigerer
Ebene. Dies führt
zu einer hierarchischen Organisation der Agenturen, die die logische
Struktur widerspiegelt.
-
Im allgemeinen gibt es zwei Typen
von Interaktionen der Agenten: Verhandlung und Verwaltung der Dienste.
In der Praxis ist es möglich,
dass ein Spektrum von Interaktion zwischen diesen Extremen existiert.
-
In der vorliegenden Ausführung kann
eine Anzahl einzelner Dienste zur Bereitstellung eines einzelnen Dienstes
kombiniert werden. Der Agent, der diesen Dienst bereitstellt, wird
als Kontrollagent bestimmt, und dann kann ein Satz von (Unter-)
Diensten von verschiedenen Agenten ausgewählt und gruppiert werden, um eine
virtuelle Agentur zu bilden, wie in 4 dargestellt
ist.
-
Eine virtuelle Agentur ist eine Struktur,
die die Dienstverwaltungsfunktion eines Agenten unterstützt. Wie
in 4 gezeigt ist, ist
eine virtuelle Agentur 40 die Ansammlung von Aufgaben und
Unterdiensten 41 und 42 (von anderen Agenten 43 und 44),
die an der Bereitstellung von einigen Diensten des Kontrollagenten 45 beteiligt
sind. In diesem Fall hat (oder braucht) der Kontrollagent 45 Verträge für die (Unter-)Dienste,
die er von den anderen Agenten 43 und 44 benötigt. Die
Aufgaben 46 unter seiner direkten Kontrolle, die an der
Bereitstellung des Dienstes beteiligt sind, sind eine Untermenge
seiner Agentur. Jede virtuelle Agentur hat eine Eins-zu-Eins-Zuordnung
zu einem Dienst, den ein Agent bereitstellt. Bevor ein Dienst bereitgestellt
wird, kann der Agent 45 proaktiv (zumindest teilweise)
seine virtuelle Agentur zusammenstellen, indem er mit anderen Agenten über die
erforderlichen (Unter-)Dienste verhandelt. Das heißt, er kann
verhandeln und SLAs hinsichtlich einer virtuellen Agentur speichern,
bevor eine Anfrage nach dem Dienst empfangen wird.
-
Ein wichtiger Vorteil der Unterstützung virtueller
Agenturen ist, dass Dienste in Echtzeit automatisch bereitgestellt
werden können,
und letztlich irgendwo auf zusammengelegte Ressourcen zurückgegriffen
werden kann.
-
Ein Agent kann mehrere Dienste bereitstellen,
von denen jeder eine virtuelle Agentur erfordert, die zusammengestellt
und gesteuert werden muss. Aus diesem Grunde ist es erforderlich,
dass die Plattformen, die die Agenten unterstützen, deshalb mehrere Teilprozesse
unterstützen
können.
Betriebssysteme, die mehrere Teilprozesse unterstützen, sind
OS2, UNIX, Windows 95 (Handelsmarke) oder Windows NT (Handelsmarke). In
der Praxis sind verteilte Rechnerplattformen speziell für die Unterstützung von
Anwendungen mit mehreren Teilprozessen entwickelt worden. Eine solche
Plattform ist DAIS von ICL, die mit der Architektur für Makler
von Anfragen gemeinsamer Objekte (COBRA, Common Object Request Broker
Architecture ) der Objektverwaltungsgruppe (OMG, Object Management
Group) konform ist. COBRA-kompatible Produkte bieten die Schnittstellendefinitionssprache
(IDL, Interface Definition Language) als homogene Objektschnittstelle.
Ein Vorteil, sich auf den COBRA-Standard festzulegen, ist es, dass
alle Plattformen, die mit der COBRA-Version 2 kompatibel sind, miteinander
zusammenarbeiten können,
was bei ihrer Verwendung den potenziellen Anwendungsbereich erweitert.
-
In Übereinstimmung mit der vorliegenden
Ausführung
hat ein Agent drei funktionale externe Schnittstellen:
- – eine
Verhandlungsschnittstelle des Agenten, der einen Standardsatz von
Basiselementen für
die Unterstützung
der Verhandlung von Bedingungen zwischen Agenten, die einen Dienst
anfragen (Kundenagenten), und Agenten, die einen Dienst bereitstellen
(Serveragenten), hat;
- – eine
Dienstverwaltungsschnittstelle, die einen Standardsatz von Operationen
enthält,
die den Austausch von Informationen zwischen Kundenagenten und Serveragenten
erlaubt; und
- – eine
Aufgabenverwaltungsschnittstelle, die einen Standardsatz von Operationen
hat, die den Austausch von Verwaltungsbefehlen und Informationen
zwischen Agenten und Aufgaben erlaubt.
-
In der Praxis sind alle drei funktionalen
Schnittstellen als eine einzelne physikalische Schnittstelle realisiert,
z. B. eine Schnittstelle in einem Rechnersystem in Verbindung mit
einem Kommunikationsnetzwerk 86.
-
5 zeigt
die funktionalen Module auf hoher Ebene eines Agenten nach der vorliegenden
Erfindung. Die Module können
sich auf einer oder mehreren Rechnerplattformen befinden. Jedes
Modul ist typischerweise ein Softwareprozess, wobei alle Module
zusammen den Typ des Agenten definieren. Die Kommunikation zwischen
den Modulen wird entweder durch die Übergabe von Parametern in Prozeduraufrufen
bewirkt, oder dadurch, dass jedes Modul Zugriff auf gemeinsame Dateien
mit relevanten aktualisierbaren Daten hat, oder durch Nachrichtenaustausch
zwischen den Objekten. Der Agent 50 umfasst ein Verhandlungsverwaltungsmodul
(NNM, Negotiation Management Module) 51. Das NMM 51 wird
aufgerufen, wenn es erforderlich ist, mit irgendeinem externen Agenten
einen Vertrag zur Bereitstellung eines bestimmten Dienstes abzuschließen. Ein Agent
kann sich in einem Vertrag verpflichten, ohne eine detaillierte
Ressourcenzuweisung durchzuführen. Das
heißt,
das NMM 51 eines Agenten kann den Agenten (einen Server)
verpflichten, einen Dienst ohne detaillierte Planung durch das Ressourcenverwaltungsmodul
(RMM, Resource Management Module) bereitzustellen, das unten genauer
beschrieben wird. Auf diese Weise entkoppelt ein Agent die Verhandlung
von der detaillierten Ressourcenplanung, um beim Verhandlungprozess
Echtzeitleistungsfähigkeit
zur Verfügung
zustellen. In der vorliegenden Ausführung kann ein Agent gleichzeitig
mehrere Verträge
aushandeln. Das NMM 51 eines Agenten unterstützt deshalb
zu diesem Zweck notwendigerweise mehrere Teilprozesse.
-
Während
der Verhandlung korreliert das NMM 51 mehrere Kriterien
und wägt
sie gegeneinander ab, sowohl während
der Verhandlung eines einzelnen Dienstes als auch über alle
Verhandlungen hinweg, an denen der Agent beteiligt ist. Die Kriterien
können
als (partielle) ordinale Zustandräume modelliert werden, die Parameter
wie etwa Qualität,
Zeit, Kosten usw. darstellen.
-
Von dem NMM 51 wird zur
Unterstützung
der Verhandlungen der Agenten eine Verhandlungssprache unterstützt, wovon
ein Beispiel detaillierter unten dargestellt ist. Diese Sprache
umfasst vereinbarte Basiselemente, und ein Protokoll, um den Agenten
zu ermöglichen,
Werte für
Parameter in einem Vertrag vorzuschlagen, diese zu modifizieren
und ihnen zuzustimmen. Das Protokoll der Verhandlungssprache definiert
die gültige
Ordnung zum Senden und Empfangen von Basiselementen während der
Verhandlung zwischen Agenten. An den Verhandlungen über einen
Vertrag ist die Auswahl von Nachrichten beteiligt, die sich auf
frühere
Nachrichten beziehen, die in einem Speicherbereich gespeichert sind
und die einem Protokoll entsprechen, und die Verarbeitung von ankommenden
Nachrichten unter Berücksichtigung
des Protokolls.
-
Ein Vertrag im Sinne dieser Beschreibung
ist das Ergebnis einer ausgehandelten Übereinkunft zwischen Agenten.
Der Vertrag enthält
die Zeiten und Bedingungen für
eine Lieferung einer Ausführung
des Dienstes. Der Vertrag enthält
eine Liste von vereinbarten Werten für Parameter, die die Kriterien
für die
Lieferung des Dienstes festlegen. Zum Beispiel der/die Zeitpunkt(e),
zu denen der Dienst verfügbar
und/oder aktiviert ist, die Zeitdauer der Aktivierung, die Qualität, die Kosten,
die Strafe bei Versagen usw. Diese Parameter sind in einer Vertragsvorlage
enthalten, die für
jeden angebotenen Dienst definiert ist, und die von einem Agenten
für die
Strukturierung seiner Verhandlungen verwendet wird.
-
Ein RMM 52 dient als Verbindung
und zum Abwägen
zwischen den zwei primären
Rolle eines Agenten - der, ein Individuum zu sein, und der, ein
Teil einer Gemeinschaft zu sein. Das RMM 52 verwaltet die
von dem Agenten kontrollierten Ressourcen. Die Hauptaufgabe des
RMM 52 ist die Planung. Dies ist im wesentlichen die Einhaltung
der ausgehandelten Verträge.
Dies schließt
die Koordination und die Planung von Diensten und Aufgaben ein,
um sicherzustellen, dass die existierenden Vertragsverpflichtungen
eingehalten werden. Das RMM 52 prüft regelmäßig die Bedingungen hinsichtlich
einer internen zeitlichen Abfolge und Änderungen von Informationen.
Das RMM 52 löst
auch die Verhandlungen durch das NMM 51 aus, wenn ein Vertrag
erforderlich ist.
-
Ein Dienst-/Aufgabenverwaltungsmodul
(SMM, Service/Taks Management Module) 53 ist für das Starten
und die Steuerung von Diensten und Aufgaben verantwortlich. has
SMM 53 kümmert
sich um die Ver träge, die
ausgehandelt wurden, und stellt sicher, dass Zeiten und Bedingungen
eingehalten werden, dass ein angemessenes Ausmaß an Berichten erstellt wird,
und dass der Vertrag sauber abgeschlossen wird. Das SMM 53 pflegt
auch den Status der aktiven Dienste. Dies schließt die Pflege der Stacks, mit
deren Hilfe die nachfolgende Dekomposition der Dienste ausgeführt wird,
und der Zeiger auf die aktiven Unterdienste und Aufgaben ein. Darüber hinaus
ist das SMM 53 für
die Bereitstellung der erforderlichen Informationen, um einen Dienst
zu starten, verantwortlich, einschließlich der Überprüfung der Bedingungen und dem
Zurückgeben
der erzeugten Ergebnisse. Das SMM 53 führt darüber hinaus Aufgaben und die
Nachverfolgung von Fehlern der Aufgaben aus.
-
Ein Agent kann mehrere Dienste und
Aufgaben gleichzeitig ausführen.
Das SMM 53 eines Agenten muss zu diesem Zweck mehrere Teilprozesse
unterstützen.
Während
des Betriebs ist das SMM 53 auch für die Handhabung von Ausnahmezuständen der
Aufgaben in seiner Agentur und von anderen Agenten (als Server)
zuständig.
Ausnahmezustände
können
nach der vorliegenden Ausführung
auf eine der folgenden Weisen aufgelöst werden: neue Zuweisung von
Ressourcen für
die Aufgabe/den Dienst durch das RMM 51; neues Verhandeln
der Bedingungen des Vertrags (als der Serveragent in Verzug); neue
Vergabe des Dienstes an einen anderen Agenten (als der verärgerte Kundenagent);
oder Ignorieren des Ausnahmezustandes und Akzeptieren einer Strafe
(wenn angemessen). Diese flexible Herangehensweise beim Auflösen von
Ausnahmezuständen
wird ebenso auf Fälle
angewendet, in denen sich in einem Vertrag ohne detaillierte Ressourcenplanung verpflichtet
wurde, aber der wegen eines unvorhergesehenen Bedarfs einer besonderen
Ressource oder eines Agenten (als einem Server) nicht abgeschlossen
werden kann.
-
Jeder Agent 50 hat einen
Informationsspeicher, zum Beispiel im Haupt speicher oder auf einer
externen Datenspeicherungseinrichtung, die sowohl fortbestehenden
als auch temporären
(Arbeits-)Speicher zur Verfügung
stellt. Der Speicher kann in die eigenen Modelle und die Modelle
der Bekannten unterteilt sein.
-
Das Selbstmodell (SM) 54 umfasst
Informationen über
die Dienste, die von dem Agenten 50 bereitgestellt werden.
Das SM 54 pflegt die Darstellung von Diensten und Informationen
unter der Verwaltung eines erwähnten
und speichert die Verträge
(SLAs), in denen sich ein Agent (als einen Lieferant eines Dienstes)
verpflichtet hat.
-
Das Bekanntschaftsmodell (AM) 55 ermöglicht dem
Agenten 50, ein Bild aus Informationen bezüglich den
Diensten aufzubauen, die von anderen Agenten angeboten werden und
eine Vorgeschichte der Leistungsfähigkeit dieser Agenten. Solche
Informationen der Vorgeschichte können für den Fall, dass es eine Wahl
gibt, bestimmen, welche Lösungen
eines Problems ein Agent wählt.
Das AM 55 speichert auch die Verträge (SLAs), die ein Agent (als
Empfänger
eines Dienstes) mit anderen Agenten abgeschlossen hat.
-
Die Art und der Umfang der SLAs kann
fast exakt aus den Typen von rechtlichen Verträgen abgeleitet werden, die
oft verwendet werden, um aktuelle geschäftliche Transaktionen zu regeln.
Ein Beispiel einer SLA ist im Folgenden gezeigt:
-
Dienst_Name ist der Dienst, auf den
sich die Übereinkunft
bezieht und SLA_Id ist der eindeutige Bezeichner der SLA (der den
Fall abdeckt, dass es mehrfache Übereinkünfte für den gleichen
Dienst gibt). Server_Agent und Kunden_Agent stellen die Agenten
dar, die die Parteien der Übereinkunft
sind. Lieferungs_Typ gibt die Art und Weise an, auf die der Dienst
bereitgestellt werden soll. Die Planungsinformationen der SLA werden
für die
Ausführung
des Dienstes und die Verwaltung verwendet – Zeitdauer stellt die maximale
Zeit dar, die der Server in Anspruch nehmen kann, um den Dienst
abzuschließen,
und Startzeit und Endzeit stellen den Zeitraum dar, während dessen
die Übereinkunft
gültig
ist. In diesem Fall spezifiziert die Übereinkunft, dass der Agent
CSD den Agenten DD aufrufen kann, ein Kundennetzwerk zu kalkulieren
und zu entwerfen, wann immer es zwischen 09:00 h 18:00 h erforderlich
ist, und j ede Ausführung des
Dienstes sollte nicht länger
als 320 Minuten dauern. Die Übereinkunft
enthält
ebenso Meta-Dienst-Informationen, wie etwa die Anzahl der zwischen
der Anfangs- und Endzeit zulässigen
Aufrufe, den pro Aufruf gezahlten Preis und die Strafe, die der
Server für
jede Verletzung nimmt. Kunden_Info gibt die Informationen an, die
der Kunde dem Server beim Aufruf des Dienstes zur Verfügung stellen
muss (in diesem Fall muss CSD das Kundenprofil bereitstellen) und
Berichts_Art gibt die Informationen an, die der Server nach der
Fertigstellung zurückgibt.
-
Es gibt zwei Unterstützungsmodule,
die die Erzeugung und die Kommunikation des Agenten 50 unterstützen. Ein
Kommunikationsmodul (CM) 56 ist der Fokuspunkt sowohl für ankommende
als auch ausgehende Nachrichten. Das CM 56 unterstützt die
Verteilung von Softwareagenten über
die verteilte Rechnerumgebung.
-
Ein Initialisierungsmodul (IM) 57 ist
das Modul, das zuerst gestartet wird. Dieses Modul initialisiert
alle anderen Agentenmodule. Wenn alle Module einmal betriebsbereit
sind, ist das IM meistens inaktiv. Es exportiert einen Objektbezeichner
an die verteilte Rechnerumgebung, sodass es von anderen Agenten
gefunden werden kann. Von dem IM 57 geht auch die Verbindung
zwischen dem Agenten und einem Agentenverwaltungsbereich, der Inspektions-
und der Fehlerbehebungswerkzeuge aus.
-
6 stellt
ein Beispiel einer virtuellen Agentur nach der vorliegenden Ausführung dar.
Es gibt sechs Parteien in der Agentur, von denen jede einen jeweiligen
Agenten hat: eine Verkaufsabteilung 600 und ihren zugeordneten
Agenten 60; eine Kundendienstabteilung 610 und
ihren zugeordneten Agenten 61, eine Rechtsabteilung 640 und
ihren zugeordneten Agenten 64; eine Entwurfsabteilung 630 und
ihren zugeord neten Agenten 63; eine Begutachtungsabteilung 650 und
ihren zugeordneten Agenten 65 und eine Kundenüberprüfungsabteilung 620 und
ihrem zugeordneten Agenten 62.
-
Die Kundendienstabteilung 610 kann über ihren
Agenten 61 einen Dienst „Kundenangebot erstellen" bereitstellen. Dieser
Dienst hat drei Teildienste: einen Dienst „Rechtsberatung", einen Dienst „Kundenüberwachung" und einen Dienst „Kosten
und Entwurf Kundennetzwerk",
plus 5 Teilaufgaben: „Kundendetails
erfassen" 612; „Kundenanforderungen
erfassen" 611; „Dienstspezifikation
identifizieren" 614; „Dienst
identifizieren" 613 und „Angebot
erstellen" 615.
-
Der Rechtsberatungsdienst wird als „regelmäßiger" Dienst (die Typen
von angebotenen Diensten werden unten detaillierter beschrieben)
von dem Rechtsberatungsagenten 64 angeboten, wobei die
Rechtsabteilung die Kundenanfragen nach maßgeschneiderten Diensten regelmäßig überprüft, und
die markiert, die nicht legal sind oder die rechtliche Probleme
aufwerfen.
-
Der Kundenüberprüfungsdienst, der von dem Kundenüberprüfungsagenten 62 bereitgestellt
wird, ist ein Dienst „auf
Abruf", der aus
einer einzelnen Aufgabe 621 besteht, die Kunden überwacht,
indem die Identität verifiziert
und die Kreditwürdigkeit überprüft werden.
Typischerweise wird der Kundenüberprüfungsdienst durch
eine Kreditauskunftei außer
Haus bereitgestellt.
-
Der Dienst für die Kalkulation und den Entwurf
von Kundennetzwerken, der von dem Agenten für Kosten und Entwurf von Kundennetzwerken 63 bereitgestellt
wird, kalkuliert den maßgeschneiderten
Dienst, der von dem Kunden angefragt wird. Dieser Dienst umfasst
drei Aufgaben und einen Teildienst. Die Aufgaben sind: „Anforderungen
analysieren" 632, „Netzwerk
entwerfen" 631 und „Angebot
erstellen" 633.
Diese Aufgaben erstellen auf Basis ihres Wissens über die
Ausrüstung
der Räumlichkeiten
des Kunden (CPE) ein Angebot für das
erforderliche Netzwerk: Unter gewissen Umständen kann der Begutachtungsdienst
für den
Kundenstandort genutzt werden, um den Kundenstandort zu begutachten.
-
Der Begutachtungsdienst für den Kundenstandort,
der von einem Agenten für
die Begutachtung des Kundenstandortes 65 bereitgestellt
wird, ist ein „einmaliger" Dienst, der speziell
ausgehandelt werden muss, wenn er benötigt wird. Dieser Dienst wird
nur angefordert, wenn es keine ausreichenden Details über den
Kundenstandort für
den Beginn des Entwurfs gibt. Der Prozess für das Erstellen eines Angebotes
ist in 7 beispielhaft
dargestellt.
-
Der Dienst für die Erstellung von Kundenangeboten
ist wird typischerweise einer Verkaufsabteilung für Telekommunikation 600 angeboten,
um ihren Kundendienst zu unterstützen.
Auf den Empfang der Anfrage nach einem Kundendienstangebot hin erzeugt
der Kundendienstagent 61 ein Angebot für den angefragten Dienst und
schickt ihn an den Kunden.
-
Der Prozess wird durch einen Kunden
ausgelöst,
der die Kundendienstabteilung in Schritt 700 kontaktiert.
Die Details des Kunden werden in Schritt 705 erfasst, und
während
der Kunde in Schritt 715 überprüft wird, werden die Anforderungen
des Kunden in Schritt 710 erfasst. Wenn die Überprüfung des
Kunden kein positives Ergebnis hat, dann wird der Prozess durch
Schritt 720 beendet.
-
Die Erfordernisse des Kunden werden
aufgenommen und in Schritt 725 auf das Portfolio der Dienste abgebildet.
Wenn die Erfordernisse durch einen standardisiertes sofort verfügbares Objekt
aus dem Portfolio erfüllt
werden kann, dann kann ein sofortiges Angebot in den Schritten 730, 735 und 740 gemacht
werden, nach denen der Dienst endet. In Fällen von Anfragen nach maßgeschneiderten
Diensten, ist der Prozess komplexer und einen Angebotsverwalter
ist beteiligt.
-
Für
maßgeschneiderte
Objekte analysiert der Angebotsverwalter (nicht gezeigt) in Schritt 745 die
Erfordernisse des Kunden, und in Schritt 750 wird die Legalität der Erfordernisse überprüft. Unter
Umständen, unter
denen eine Anfrage möglicherweise
illegal ist, wird der Prozess der Angebotserstellung unterbrochen, bis
in Schritt 770 mehr Informationen von dem Kunden vorliegen.
Wenn eine Anfrage definitiv illegal ist, was von Schritt 760 festgestellt
wird, wird der Prozess beendet und der Kunde informiert. Für die vorliegenden
Zwecke wird angenommen, das der Angebotsverwalter ein Mensch ist,
aber man kann sich vorstellen, dass eine Anzahl der Aufgaben automatisiert
werden kann.
-
Um den Entwurf des Netzwerks und
ein Angebot vorzubereiten, ist es erforderlich, einen detaillierten Plan
der vorhandenen Ausrüstung
in den Räumlichkeiten
des Kunden zu haben. In gewissen Fällen können Pläne der CPE nicht vorhanden
oder veraltet sein. In solchen Fällen
bestimmt der Angebotsverwalter, ob der Standort des Kunden in Schritt 755 begutachtet
werden soll. Dies wird typischerweise nur getan, wenn die Höhe des Angebotes
eine gewisse Schwelle überschreitet
(das heißt,
die profitabelsten Angebote). Wenn erforderlich, wird eine Begutachtung
in Schritt 765 angefordert. Wenn die angeforderten Informationen über eine CPE
des Kunden verfügbar
ist, wird das Netzwerk in Schritt 775 entworfen. Auf die
Fertigstellung des Netzwerkentwurfes und die zugehörige Kostenschätzung hin
wird der Kunde von dem Angebot des Dienstes in Schritt 740 informiert
und der Prozess beendet.
-
Jede Aktivität in diesem Prozess erfordert
Ressourcenplanung und hat einen Start- und Endzeitpunkt, wodurch
der Fortschritt gemessen werden kann. Die Auswahlpunkte in dem Prozess
zeigen an, welche Aktivitäten
bereitgestellt werden müssen,
um sequenziell zu arbeiten. Ähnlich
gibt es eine Anzahl von Aktivitäten, die
gleichzeitig laufen können/dürfen und
die Koordination erfordern.
-
Die Schlüsselrolle eines Agenten ist
es, den Dienst bereitzustellen. Ein Dienst kann von einem anderen
Agenten angefragt (oder verhandelt) werden, typischerweise kann
dies in der Übertragung
von Informationen zwischen den Agenten resultieren. Die Agenten
müssen
Definitionen enthalten, wie sie jeden der Dienste bereitstellen,
die sie anbieten. Dementsprechend ist eine Beschreibung für jeden
Dienst in dem Agenten vorhanden. Eine Dienstbeschreibung wird aus
zwei Basiselementen aufgebaut:
- 1. Aufgaben – vollständig ausgeführt unter
der Kontrolle des Agenten;
- 2. Dienste – von
anderen Agenten über
die Infrastruktur bereitgestellt.
-
Aufgaben und Dienste können gleichzeitig
aufgerufen werden, und die Interaktion und Kommunikation zwischen
ihnen wird automatisch von Bedingungen in der Dienstbeschreibung
verwaltet. Es wird angemerkt, dass die Dienste wiederum als Dienste
von anderen Agenten rekursiv definiert werden können, aber letztendlich bestehen
die Definitionen ausschließlich
aus Aufgaben.
-
Ein Dienst ist ein Paket von Aufgaben
und anderen (Unter-) Diensten, die einem Agenten ermöglichen, irgend
eine funktionale Operation (als Server) in seiner Agentur anzubieten
oder (als Kunde) von einem anderen Agenten zu empfangen. Der Dienst
kann als Komponente eines anderen Dienstes erneut verwendet werden.
In der vorliegenden Ausführung
ist ein Dienst eine rekursive Steuerungsstruktur, die sich aus Aufgaben, anderen
(Unter-)Diensten und Leistungsparametern zusammensetzt. Den Leistungsparametern
wird während des
Verhandlungsprozesses zwischen zwei Agenten (als Kunde beziehungsweise
Server) beidseitig zugestimmt. Diese Parameter bestimmen die genauen
Eigenschaften einer Ausführung
eines Dienstes auf die Aktivierung hin.
-
In manchen Situationen kann ein Agent
die Existenz und Verfügbarkeit
eines bestimmten Dienstes mit einem grundlegenden Grad an Sicherheit
und Verlässlichkeit
garantieren müssen.
Dies wird durch die Leistungsparameter definiert. Es gibt drei grundlegende
Ebenen des Dienstes: einmalig, was eine einmalige Aktivierung des
Dienstes (der Zeitpunkt der Aktivierung wird während der Verhandlungen übereinstimmend
festgelegt); regelmäßig, was
mehrfache Aktivierung des Dienstes zu übereinstimmend festgelegten
und vorab geplanten Zeitpunkten erlaubt, und auf Abruf, was die
Aktivierung des Dienstes zu einem Zeitpunkt innerhalb eines übereinstimmend
festgelegten Zeitfensters erlaubt.
-
Eine Dienstbeschreibung wird mit
einem Agenten in einer Sprache erzeugt und angemeldet, die die Formulierung
komplexer gleichzeitiger Operationen unterstützt. Eine Beschreibung umfasst
eine Liste von Aussagen, die die Schritte definieren, die zusammen
den Dienst definieren. In der Sprache drückt jeder Ausdruck sowohl die
Untermenge einer virtuellen Agentur, die verwendet werden soll,
als auch die Bedingungen(en) aus, unter denen die Verarbeitung zur
nächsten
Aussage übergehen
kann. Die Sprache enthält
auch Basiselemente, um auszudrücken,
dass Aufgaben oder (Unter-)Dienste gleichzeitig ausgeführt werden
können,
oder dass sie gleichzeitig laufen müssen. In manchen Fällen wird
jedoch auch für
einen sequenziellen Ablauf gesorgt.
-
Vorzugsweise ist die Dienstbeschreibungssprache
eine Interpretersprache, wodurch die Dienste ohne extensives erneutes
Kompilieren von dem Ersteller des Dienstes neu definiert und mit
einem Agenten angemeldet werden können. Aus diesem Grund schließt jedes
der Kernmodule in einem Agenten einen Interpreter für die Unterstützung der
Hauptfunktion (Verhandlung des Dienstes, Ressourcenverwaltung beziehungsweise Ausführung der
Dienste/Aufgaben) des Moduls ein. Die Sprache kombiniert allgemein
Aspekte des deklarativen Nicht-Determinismus, was einem Agenten
erlaubt, dynamisch zu bestimmen, welche Elemente der virtuellen
Agentur eingesetzt werden sollen, mit direkter Prozesskontrolle,
die dem Ersteller des Dienstes ermöglicht, die Aussagen in der
Sprache zu strukturieren und zu ordnen.
-
Im Betrieb verwendet ein Agent eine
Dienstbeschreibung um erstens zu bestimmen, wie er am besten über Unterdienste
in seiner virtuellen Agentur verhandelt, und zweitens, wie er die
Ausführung
dieser Unterdienste zusammen mit seinen eigenen Aufgaben (wenn er
welche hat) verwaltet.
-
Ein Dienst kann zum Beispiel mit
den folgenden Merkmalen definiert werden:
- 1.
Jeder Dienst hat einen eindeutigen Namen.
- 2. Jeder Dienst hat eine Überwachung.
Eine Überwachung
deklariert die Informationen, die erforderlich sind, um den Dienst
zu starten. Es kann außerdem
Bedingungen geben, die ausdrücken,
dass ein Dienst nur gestartet werden kann, wenn irgendein Wert × verfügbar und
größer als
5 ist, usw.
- 3. Jeder Dienst kann Annahmen haben. Eine Annahme kann an Informationen
weitere Bedingungen stellen oder Standardwerte zuordnen (von denen
dann ausgegangen wird, die aber vielleicht noch nicht bekannt sind).
- 4. Jeder Dienst hat einen Hauptteil, der beschreibt, wie der
Dienst ausgeführt
werden kann.
-
Beispielsweise kann der Teil eines
Selbstmodells, der die Dienstbeschreibung enthält, auf folgende Weise durchlaufen
werden:
-
-
Diese Routine zeigt, wie eine Preisvorhersage
erstellt wird, die auf die Informationen über eine Region, die Produktionskapazität des Unternehmens
und die Wettbewerbsfähigkeit,
die Nachfrage, die von einem Kunden spezifiziert ist, und die Erfahrung
eines Betriebes, die in der Überwachung
des Dienstes festgehalten ist, basiert. Im Allgemeinen sind diese
Informationen nicht automatisch verfügbar und müssen auf Anforderung bereitgestellt
werden. Dies wird ausgeführt,
indem in den Selbst- und
Bekanntschaftsmodellen des Agenten nachgesehen wird. Die meisten
der Informationen, die vorher nicht bekannt sind, können über das
Starten geeigneter Dienste erhalten werden, die in einer Spalte „geliefert
von" angegeben sind.
Um die entsprechenden Berechnungen auszuführen, nimmt der Agent nach
der Überprüfung dieser
Anfangsbedingung (Überwachung)
an, dass das Verkäuflichkeit
(in Beziehung auf die spezifizierte Nachfrage) 100% ist. Trotzdem
muss der Agent einen Dienst starten, um den sicheren Wert der Verkäuflichkeit
zu erhalten, um seine Berechnung zu rechtfertigen. Wenn dies geprüft wurde,
wird der Agent die Ausführung
des Dienstes auslösen,
das heißt, er
wird den Hauptteil starten.
-
Dazu wird angemerkt, dass von dem
Agenten selbst keine Dienste in dem Hauptteil ausgeführt werden brauchen.
Es ist wahrscheinlich, dass der parallele Teil des Hauptteils von
verschiedenen Agenten bereitgestellt wird. Im allgemeinen ist jeder
der Dienste in dem Hauptteil irgendwo in den Selbst- oder Bekanntschaftsmodellen
des Agenten vertreten. Was den Hauptteil tatsächlich beschreibt, ist, dass
eine Preisvorhersage als eine kurze Abfolge von Diensten bereitgestellt
wird. Der erste Dienst ist ein paralleler Dienst, auf den der Dienst „SpeichernInTabelle" folgt. Der parallele
Dienst beschreibt die Erzeugung einer Tabelle, in der die Jahre
94 bis 96 initialisiert werden. Gleichzeitig (parallel) führt ein
Agent einige Berechnungen durch. Wenn dies erfolgreich ausgeführt wurde,
dann können
die Ergebnisse in der Tabelle gespeichert werden.
-
Es gibt ein Erfordernis, eine Sprache
zu definieren, die einem Agenten ermöglicht, zu kommunizieren und
zu verhandeln. Wenn darüber
hinaus zwei oder mehr Agenten kommunizieren, müssen sie eine gemeinsame Sichtweise
des Problembereiches miteinander teilen. Die folgende Beschreibung
liefert ein Beispiel solch einer Sprache zur Verhandlung zwischen
zwei Agenten auf Peer-to-Peer-Ebene beziehungsweise zwischen deren
jeweiligen Agenturen. Es ist jedoch verständlich, dass andere Sprachformen
für diesen
Zweck ebenso geeignet sind. Die Art der Dienst/Informationsverhandlungsstruktur
ist die folgende:
- 1. Finden/lokalisieren (einen
Dienst oder etwas Information) – Kontakt
herstellen.
- 2. Fragen/erklären
(was die Form oder das Wesen des Dienstes oder der Information ist) – Details
bekommen.
- 3. Zusammenstellen/verhandeln (einen Dienst festlegen oder etwas
Information empfangen) – sich
einigen, was zu tun ist.
- 4. Ausführen/überprüfen/informieren
(den Dienst ausführen
oder die Information liefern, mit der Fähigkeit, den Fortschritt zu überwachen
und zu informieren, wenn erforderlich) – tun, was vereinbart ist.
- 5. Beenden.
-
Es ist wichtig, dass diese Struktur
sowohl auf explizite Anfragen nach dem Dienst als auch auf das generellere,
implizite Erfordernis des Dienstes, Verwaltungsinformationen in
einem Geschäft
aufzufinden und zu lokalisieren, angewendet wird. Die Struktur setzt
die folgenden Basiselemente ein, die in Übereinstimmung mit der Struktur
oben nummeriert sind.
- 1. KANNST (DU/IRGENDJEMAND)
AUSFÜHREN <einen Dienst d> KANNST (DU/IRGENDJEMAND)
BEREITSTELLEN <Informationen
i> >> gibt Liste zurück von Dienst-/Informations-Provider
Die
Basiselemente sind ebenso in einer Situation mit Mehrfachbesetzung
einsetzbar, an der abteilungs- oder unternehmensbasierte Agenten
und Makler für
die Lokalisierung beteiligt sind, als auch ein Typ des Vertragsnetzes
der gesendeten Anfrage nach dem Dienst. In Bezug auf die Details
kann man sich verschiedene Grade von Hochwertigkeit vorstellen,
die der Position des Dienstanbieters in Abhängigkeit der Modelltypen zugeordnet
sind, die für
die Agenten selbst entwickelt wurden. Diese Basiselemente können zusammengefasst
werden, wie man etwa sagt „WER" kann das tun und „WO" sind sie.
- 2. DETAILS DES DIENSTES <frage
Agent a, bezüglich
Dienst d> INFORMATIONSDETAILS <frage Agent a, bezüglich Informationen
i> ->> gibt Liste zurück von <erforderlichen Eingaben>, <vorhandenen Ausgaben>, <optionalen Ressourcen („Zeit"/„Kosten"/„...") geschätzt>
Diese Basiselemente
ermöglichen
eine genaue Aufstellung, woraus der Dienst detaillierter besteht.
Dies kann zusammengefasst werden, wie wenn man sagt „WAS" kann getan werden.
Da eingenommen wird, dass keine gemeinsame globale Sprache existiert,
ist hier ein wesentliches zusätzliches
Basiselement „ERKLÄREN <Ontologie/Begriff>", das erforderlich ist, um den Agenten
den Umgang mit neuen Begriffen zu ermöglichen.
- 3. VORSCHLAGEN <Agent
a, Dienst d, Bedingungen b, optionalen Begründung o>
GEGENVORSCHLAG <Agent a, Dienst d, Bedingungen b, optionalen
Begründung
o>
ABLEHNEN
ANNEHMEN,
Strafen, usw.)>
->> Zurückgeben <Übereinkunft (Arbeitsabkommen,
Grad der Berichterstattung usw.)
Dies sind die Basiselemente,
die Agenten ermöglichen, übereinzukommen,
wie ein Dienst geliefert werden soll. Die Bedingungen werden in „verpflichtend" und „wünschenswert" unterteilt. Die
optionale Begründung und
Details der Bereitstellung des Dienstes stellen den Agenten einen
Mechanismus zum Aufbrechen von Blockaden zur Verfügung, die
aus „unnötigen" verpflichtenden
Anforderungen entstehen können,
oder liefern neue/alternative Formen der Bereitstellung des Dienstes.
Dies sollte höher
entwickelte Formen des zu entwickelnden/erforschenden Verhandlungsprozesses
ermöglichen.
Das Schlüsselelement,
das hier beachtet werden sollte, ist, dass das Herausnehmen eines
Vorschlags nach irgendwelchen Veränderungen (und vielleicht verschachtelten
Fragen/Erklärungen)
in einem speziellen Vertrag resultiert, für den dann die Ausführung geplant
werden kann.
- 4. AUFRUFEN <Agent
a, Dienst d, Übereinkunft ü>
INFORMIEREN (d.
h. Benachrichtigen) <Agent
a, Modus der Bestätigung
m>
ANFRAGE/ÜBERPRÜFEN <Dienst d>
ÜBERPRÜFEN <gelieferte Dienste
d>
Dienste werden
unter Berücksichtigung
einiger vorher bestehender Übereinkünfte aufgerufen,
nach denen der Fortschritt nach dem Grad der Berichterstattung in
dem Vertrag abgefragt oder formal überprüft werden kann. Wenn es für die Agenten
erforderlich ist, einander von Ereignissen (unvorhergesehene oder
andere) zu informieren, dann kann dies getan werden, indem der Modus
der Bestätigung
auf „kein" oder „Bestätigung erforderlich" oder „erneut
verhandeln" gesetzt
wird. Dies ist ein kritisches Basiselement, das es dem ganzen Verhandlungsprozess
erlaubt, falls erforderlich verschachtelt zu werden.
- 5. BEENDEN <Status
s, optionale Begründung
o>
Wenn ein Dienst
beendet wird, hat er entweder seine „Erfolgs-"- oder „Lieferkriterien", die in dem Vertrag dargestellt
sind, erfüllt
oder nicht. Wenn nicht, sollte ein optionaler Grund für die Beendigung
angegeben sein.
-
Die oben gegebene Beschreibung veranschaulicht
eine Ausführung
der vorliegenden Erfindung, die für die Verwaltung der Erstellung
von Geschäftsprozessen
geeignet ist. Die Ausführung
zeigt, wie mehrere Agenten in einer verteilten Rechnerumgebung kooperieren
können,
um sowohl das Sammeln von relevanten Informationen als auch die
Aufgaben und Ressourcen zu verwalten, die die Informationen verwenden.
Ein solches System beschleunigt potenziell die Prozesse in der Organisation,
um seinen internen und externen Kunden einen insgesamt besseren
Dienst bereitzustellen, als es auch die Bereitstellung von irgendwie
gearteten verfügbaren
Diensten beschleunigt, indem Aufgaben ausgeführt und Ressourcen verwendet
werden, insbesondere durch die Anwendung von vorher ausgehandelten
SLAs in virtuellen Agenturen.
-
Das System ist dadurch flexibel,
dass es ist in der Lage, mit einer anfragenden Einheit über die
Bereitstellung eines Dienstes und/oder mit ihm bei der Bereitstellung
eines Dienstes verfügbaren
Ressourcen zu verhandeln, um eine veränderte Version eines Dienstes
finden zu können,
der für
die Einheit akzeptabel ist, oder eine veränderte Beziehung zu den Ressourcen
zu finden, um den Dienst bereitzustellen.
-
Außerdem ist es dem System möglich, bei
der Bereitstellung von Informationen und Diensten für den Benutzer
proaktiv vorzugehen, z. D. in Bezug auf Änderungen, die von dem Benutzer
potenziell angefragte Dienste betrifft.