DE19508940B4 - Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems - Google Patents
Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems Download PDFInfo
- Publication number
- DE19508940B4 DE19508940B4 DE19508940A DE19508940A DE19508940B4 DE 19508940 B4 DE19508940 B4 DE 19508940B4 DE 19508940 A DE19508940 A DE 19508940A DE 19508940 A DE19508940 A DE 19508940A DE 19508940 B4 DE19508940 B4 DE 19508940B4
- Authority
- DE
- Germany
- Prior art keywords
- agent
- agents
- action
- instruction
- goals
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Z—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
- G16Z99/00—Subject matter not provided for in other main groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
a) Bereitstellen einer Vielzahl von Prozeßagenten zum Empfangen von Zielbefehlen (Zielen) und zum Aufrufen eines Prozesses zur Erreichung dieser Ziele,
b) Bereitstellen einer Vielzahl von jeweils in Verbindung mit ihrem eigenen Gerät stehenden Geräteagenten zum Empfang und zur Abspeicherung von Zielen von einem Prozeßagenten und zum Betrieb ihrer entsprechenden Geräte nach Empfang dieser Ziele von einem Prozeßagenten,
c) Verbinden all dieser Agenten miteinander zur Übertragung von Zielen zwischen den Agenten über diese Verbindungen,
d) Empfangen eines Zieles von einem anderen Agenten und Ausführen einer Abfolge von durch dieses Ziel bedingten Aktionen, wobei jede Aktion mindestens eine Instruktion enthält, jede Instruktion eine Indexnummer (PC) enthält und eine Aktion zu einer anderen Aktion in einer Kette von Aktionen zeigt,
e) Informieren einer nachfolgenden Aktion über eine...
Description
- Die Erfindung bezieht sich auf ein Verfahren nach dem Oberbegriff des Anspruchs 1.
- Kommunikationsanlagen, insbesondere Kommunikationsschaltanlagen, wurden in der Vergangenheit aus Strukturen aufgebaut, welche vordefinierte Funktionen ausführen konnten. Die Kommunikationssysteme beschränken die Kommunikation zwischen den Benutzern auf die vorgegebenen Wege. Die Benutzer müssen sich daher den Begrenzungen des Systems anpassen, anstelle daß sich das System den Bedürfnissen der Benutzer anpaßt.
- Die Abänderung eines Kommunikationssystems zur Bereitstellung neuer Dienstleistungen ist eine schwierige und teuere Aufgabe und benötigt den Entwurf neuer Betriebs- und Peripheriesoftware sowie neuer Hardware. Der Entwurf und die Implementation neuer Software ist manchmal für das Gesamtsystem gefährlich, weil eine Änderung eines Teils der Systemsoftware manchmal andere Teile auf gleicher oder anderer Ebene beeinflußt, deren Dokumentation unklar ist oder übersehen wird. Bei der Änderung oder Hinzufügung von Merkmalen zu einem Kommunikationssystem muß daher das gesamte System auf Auswirkungen dieser Änderung oder Hinzufügung untersucht werden, wobei ein Fehlerrisiko mit daraus resultierenden Problemen besteht und die Fehler manchmal nicht sofort sichtbar sein können, sondern erst lange nach der Installation des Systems auftreten. Vor kurzem aufgetretene Fehler im Telefonnetzwerk, welches von Millionen Bürgern der Vereinigten Staaten benutzt wird, sind ein Beispiel eines verdeckten Softwarefehlers der Kommunikationssystemkontrolle, welcher erst lange nach der Installation und Betrieb des Systems auftrat.
- Aus der
US 5,269,014 ist ein automatisches Programmiersystem mit der Fähigkeit zur automatischen Erzeugung eines Programms sowie zu dessen Überprüfung anhand ebenfalls automatisch erzeugter Testdaten und Testvorschriften bekannt. Dieses bekannte Programmiersystem steht aber weder in einem Zusammenhang mit dem Betrieb eines Kommunikationssystems, noch offenbart es eine bestimmte interne Funktionsweise von Agenten oder einen Mechanismus für das Zusammenwirken von Agenten. - Die Veröffentlichung M. Occello, M. C. Thomas: "A new Approach for Process Control", Computers in Design, Manufacturing and Production, IEEE Comp. Soc. Press, 1993, ISBN 0-8186-4030-8, S. 487–492, behandelt allgemein die Verwendung verteilter Tafelsysteme zur Steuerung von Prozessen, wobei als Anwendungsbeispiele Computermusik und Robotik genannt werden. Es ist zwar eine Kommunikation verschiedener Softwaremodule über besagtes Tafelsystem vorgesehen, doch handelt es sich bei diesen Softwaremodulen nach fachmännischem Verständnis nicht um Agenten, und es wird folglich auch nicht auf die Zusammenarbeit von Agenten zum Erreichen von Zielen eingegangen.
- Die
DE 43 25 860 offenbart ein Verfahren und ein leittechnisches System zum Steuern, Überwachen und Regeln von komplexen industriellen Prozessen, insbesondere in einem Kernkraftwerk. Im wesentlichen handelt es sich dabei um ein Expertensystem, das ein Ablaufprotokoll zurückliegender Steueraktivitäten mit in einer Datenbank gespeicherten, vordefinierten Szenarien vergleicht, um daraus Vorschläge für den weiteren Steuerungsablauf abzuleiten, die sowohl einer automatischen Reaktorsteuerung, als auch dem Bedienungspersonal zugeleitet werden. Über die Kommunikation zwischen Agenten und die Koordination von deren Aktivitäten wird nichts ausgesagt. - Hinsichtlich eines Kommunikationssystems besteht die Aufgabe, ein Verfahren zum Betrieb bereitzustellen, über welches ein Kommunikationssystem den Bedürfnissen seiner Benutzer besser anpaßbar ist.
- Gelöst wird diese Aufgabe mit den kennzeichnenden Merkmalen des Anspruches 1. Vorteilhafte Ausgestaltungen sind den Unteransprüchen entnehmbar.
- Gegenstand der vorliegenden Erfindung ist ein Kommunikationssystem, welches sich den Benutzern selbst anpaßt und die benötigten Dienstleistungen sowohl selbst erzeugt, als auch zur Verfügung stellt. Das System kann zum Management des Arbeitsflusses, zur Detektion und Korrektur von Ineffizienzen und zur Dienstleistungsbereitstellung mit äußeren Systemen verwendet werden und den menschenbasierten Organisations- und Arbeitsprozessen und -zielen angepaßt und in diese integriert werden.
- Diese Ziele umfassen die Mechanismen, über welche Information in einer Gruppe aufgeteilt, gespeichert und verteilt wiedergegeben wird. Das System kann bei der Erfüllung einer Aufgabe in der Gruppe unmittelbar assistieren. Es kann ein verteiltes System sein, welches mit einer Vielzahl von Geräten zusammenarbeiten kann, einschließlich Geräten, welche -üblicherweise mit feststrukturierten Systemen verwendet werden, und ermöglicht die Erzeugung und dynamische Änderung von Dienstleistungen, womit es an neue Bedürfnisse einer Benutzergruppe anpaßbar ist.
- Eine Ausführungsform der Erfindung ist ein Kommunikationssystem mit einer Vielzahl von Prozeßagenten zum Empfang von Zielbefehlen (Zielen) und zum Aufrufen eines Prozesses zur Erzeugung von Ergebnissen aus diesen Befehlen, einer Vielzahl von Geräteagenten, welche jeweils in Verbindung mit ihrem eigenen Gerät stehen, zum Empfang von Zielen von einem Prozeßagenten und zum Betätigen ihres entsprechenden Geräts als Antwort auf den Empfang des Ziels von einem Prozeßagenten entsprechend einem kommandierten Agenten, und einem Netzwerk, welches alle Agenten miteinander verbindet zur Übertragung von Zielen zwischen den Agenten.
- Eine Konfigurationsstruktur speichert prozeßdefinierende Daten, erhältliche Ressourcen und Wissensdaten über jeden Agenten sowie Daten zum Herunterladen der Definition auf jeden Agenten.
- Ein Ausführungsbeispiel der Erfindung wird im folgenden unter Bezugnahme auf die begleitenden Zeichnungen näher beschrieben, welche zeigen:
-
1A ein Blockdiagramm eines Tafelsystems; -
1B ein Beziehungsdiagramm verschiedener in der Erfindung verwendeten Agenten; -
1C eine hierarchische Darstellung der Ziele; -
1D verschiedene Arten von Brokern; -
2A eine die allgemeine Struktur eines Agenten darstellende Zeichnung; -
2B eine Darstellung eines von einem Agenten durchgeführten Beispielprozesses; -
3A ein Blockdiagramm eines Agenten; -
3B ,3C und3D eine Darstellung der Funktionen von Routinen eines Agenten; -
4A ein schematisches Blockdiagramm eines Ziellösungsmechanismus eines Agenten; -
4B –4D verschiedene Prozesse zur Erzeugung neuer Agenten; -
5 einen Tafelprozeß des Systems; -
6A ,6B und6C Diagramme zur Darstellung der Verfolgung von Zielen unter Verwendung verschiedener Agenten auf verschiedene Weise; -
7 ein Blockdiagramm eines Systems gemäß einer bevorzugten Ausführungsform der Erfindung; und -
8 eine Abfolge von Anweisungen am Beispiel einer mehrkettigen Ausführungsform der Erfindung. - Das Konzept eines allgemeinen Systems, welches Agenten benutzt, wurde beschrieben in den Veröffentlichungen "Toward A Taxonomy Of Multi-Agent Systems", Int. J. Man-Machine Studies (1993) 39, 689–704, Academic Press Limited und "An Intelligent Agent Framework For Enterprise Integration" von Jeff Y.C. Pan und Jay M. Tenenbaum, Transactions On Systems, Man, and Cybernetics, Vol 21, Nr. 6, November/Dezember 1991, Seiten 1391–1407, auf deren Inhalt hierdurch Bezug genommen wird.
- Untersysteme und Geräte, wie sie in der vorliegenden Erfindung verwendet werden, werden im folgenden beschrieben. Die beschriebenen Prozesse sind als Computersoftware ausgebildet, welche auf einem Prozessor läuft, der sämtliche benötigten Programm- und Datenspeicher aufweist, beispielsweise RAM-Speicher.
- In dieser Beschreibung wird der Begriff "Geräte" benutzt, um Maschinen und Software-Anwenderprogramme zu beschreiben, die von Agenten bedient werden, die eine Aufgabe erfüllen können und durch ihre Fähigkeiten und Kapazitäten definiert sind. Die Geräte befinden sich in Besitz und ihre Fähigkeiten sind über dieses Besitzverhältnis verteilt, wobei mit Besitztum das Recht gemeint ist, Teile der Fähigkeiten und Kapazitäten eines Geräts zu verwenden. Ein Gerät ist begrenzt; äußeren Geräten ist nicht bekannt, wie Aufgaben innerhalb des Geräts gelöst werden. Ein Gerät kann intern weitere Geräte und Agenten aufweisen, diese internen Elemente sind jedoch von außen nicht erkennbar.
- Ein Agent ist, wie es weiter unten genauer beschrieben wird, eine physikalische Einheit, welches ein oder mehrere Ziele akzeptieren und einen Ausgang erzeugen kann. Dieser Ausgang kann aus einem oder mehreren weiteren Zielen bestehen. Ein Agent kann die äußere Darstellung eines Geräts sein.
- Ein Agent funktioniert nur für die Ziele, über die er Wissen hat. Ein Verfahren zum Erreichen jedes Ziels ist jedem Ziel zugeordnet. Diese Verfahren können auch eine Planung innerhalb des Agenten umfassen.
- Ein Agent kann ein Gerät direkt darstellen oder durch Zwischenagenten oder -geräte arbeiten, ist jedoch über eine Ressource seinen Zwischengeräten zugeordnet.
- Ein Agent sieht nur den Teil der Fähigkeiten eines Geräts oder eines anderen Agenten, welche er benutzen darf, sowie ein Verfahren zu deren Benutzung, auf welches als Darstellung des Geräts oder der Resource Bezug genommen wird. Eine Resource kann aus den Darstellungen mehrerer Geräte und Mittel zur Auswahl aus diesen Darstellungen bestehen. Die Mittel zur Auswahl aus verschiedenen Geräten werden als Broker bezeichnet.
- Ein Ziel ist ein Eingang an einen Agenten und spezifiziert eine Aufgabe, welche der Agent lösen soll. Jedem Ziel ist ein Verfahren zum Erreichen dieses Ziels zugeordnet, wie es in dieser Beschreibung genauer dargestellt wird.
- Die Fähigkeit zur Ausstattung eines Agenten mit Zielen und Resourcen wird als Jurisdiktion bezeichnet. Ein höher angeordneter Agent kann somit einen niedriger angeordneten Agenten, über welchen er Jurisdiktion besitzt, als Teil seiner Zieldefinition benutzen und ihn mit Fähigkeiten ausstatten. Ein höher angeordneter Agent mit Jurisdiktion kann einen anderen Agenten mit dem geringer angeordneten Agenten als Resource ausstatten.
- Die Rechte zur Verwendung von Teilen der Fähigkeiten und Kapazitäten einer Vorrichtung werden als Besitztum bezeichnet und die Vergabe dieser Rechte an ein Gerät, welches von einem anderen Gerät verwendet wird, können nur durch Besitztum erfolgen. Es gibt verschiedene Arten von Besitztum: konstantes, statistisches oder bedarfsmäßiges.
- Besitztum kann durch eine Hierarchie oder über Resourcen übertragen werden. Übertragenes Besitztum weist Begrenzungen auf; ein übertragender Besitzer kann jede Art von Besitztum übertragen und diesem Begrenzungen auferlegen, kann jedoch keine von einem höherwertigen Agenten auf ein Gerät gegebene Beschränkungen aufheben. Besitztum wird auch auf verschiedenen Zeitskalen übertragen. Einige höherwertige Agenten benötigen im wesentlichen ständiges Besitztum eines Geräts, beispielsweise eine Gruppe mit Rechten auf eine Datenbank. Dieses Besitztum kann dynamisch übertragen werden, beispielsweise wenn eine Gruppe die Rechte einem Gruppenmitglied für eine einzelne Transaktion zuweist.
- Ein zugewiesenes Gerät kann die von ihm vergebenen Ziele überwachen, um sicherzustellen, daß kein anderer Agent seine Besitztumsrechte überschreitet. Die Kontrolle kann jedoch auch unterbleiben, wenn sie informell erledigt wird.
- Die von einer Resource verwendete Technik zur Auswahl unter Geräten, welche zum Erreichen eines Ziels verwendet werden können, ist ein Zuordnungsmechanismus. Der Zuordnungsmechanismus wird lokal für die Zwecke der Resource erstellt. Zusammen mit den Gerätedarstellungen bildet der Zuordnungsmechanismus einen Broker innerhalb der Resource. Der Broker ist so gestaltet, daß er einen der Resource nahen Zweck erfüllt, zum Beispiel geringe Kosten, Zuverlässigkeit, Redundanz, geeignetstes Gerät, usw. Der Broker kann ein Pseudokosten-Bietsystem aufweisen oder andere geeignete Mechanismen.
- Das Unternehmen-Modellierungswerkzeug erlaubt die Modellierung eines Unternehmens als Hierarchie, als Satz von Prozessen (welche beispielsweise seriell mit oder ohne Verzweigungen sein können), Resourcen (zum Beispiel Telefone, Computer, Text-Sprach-Konverter, Telefaxgeräte, einer Dateihaltung, Personen wie einem Manager, einem Softwaredesigner, einem Einkaufsagenten usw.), und einer resourcenbenutzenden Aktivität.
- Einige generische Prozesse können zur Verfügung gestellt werden, beispielsweise „anrufen", was intern als Serie von Aktivitäten und Resourcen dargestellt werden kann. Die vorliegende Erfindung benutzt diese Daten als Eingänge und erzeugt die darunterliegenden Agenten, welche zum Betrieb eines Systems benötigt werden.
- Die vorliegende Erfindung simuliert nicht ein System, sondern wird zur Definition des Unternehmens selbst und zur Erzeugung der darunterliegenden Agenten zur Ausführung der aktuellen Abläufe der definierten Prozesse verwendet.
- Ein besitzender Agent hat die Aufgabe zur Abbildung eines generischen Prozesses von einem Systemwerkzeug auf physische Agenten. Wenn also das Werkzeug einmal die benötigten generischen Prozesse definiert hat, wird ein Agent zur Aufnahme des physischen Prozesses erzeugt. Nach dieser Erzeugung besteht seine Aufgabe darin, physische Agenten zu erhalten und zu verbinden, welche den generischen Agenten entsprechen. Gemäß einer bevorzugten Ausführungsform der Erfindung, erfolgt dies unter Verwendung eines Tafelsystems.
- Tafelsysteme wurden bereits beschrieben in den Veröffentlichungen „Blackboard Systems" von Daniel Corkill, veröffentlicht in AI Expert, September 1991, Seiten 41–47, „Blackboard Systems: The Blackboard Model of Problem Solving and the Evolution of Blackboard Architectures" von H. Penny Nii, veröffentlicht in The AI Magazine, Sommer 1986, Seiten 38–53, und „Elevator Scheduling System Using Blackboard Architecture" von Grantham K.H.Pang, veröffentlicht in IEE Proceedings-D, Bol 138, Nr. 4 Juli 1991, Seiten 337–356, auf welche hier Bezug genommen wird.
- In
1A ist dargestellt, wie ein Besitzeragent2 , welcher den Prozeß1 beinhaltet, eine Aufgabe an eine Tafel (RAM)3 stellt. Diese wird durch andere Besitzeragenten4 als Bietanforderung interpretiert. Die Agenten4 übertragen dann Gebote zur Erledigung dieses Prozesses, entsprechend den Recourcen, über welche sie Jurisdiktion haben und gemäß der Ökonomie zur Erledigung der Aufgabe. Bei der vorliegenden Erfindung haben die Agenten eine bestimmte Ausführung, sie enthalten beispielsweise Broker, was weiter unten genauer beschrieben wird. - In
1B ist logisch anschaulich die Kommunikation zwischen Agenten dargestellt, wie sie in der vorliegenden Erfindung stattfindet. Die Jurisdiktion wird durch einen durchgezogenen Pfeil dargestellt und Benutzerrechte werden durch gestrichelte Pfeile dargestellt. Ein Unternehmensagent hat Jurisdiktion über alle anderen Agenten, welche in seiner Hierarchie unter ihm liegen, beispielsweise über Gruppengeräteagenten12 , Gruppenbenutzeragenten14 usw.. Auf ähnliche Weise hat der Gruppenbenutzeragent Jurisdiktion über die Benutzeragenten16 darunter, die Gruppengeräteagenten haben Jurisdiktion über die Geräteagenten18 darunter usw.. Die Gruppenbenutzeragenten14 haben Benutzerrechte über einen Teil der von dem Gruppengeräteagenten1 (12 ) bereitgestellten Dienstleistungen. Der Benutzeragent16 hat Benutzerrechte über einen Teil der Dienstleistungen, welche von dem Gerät zur Verfügung gestellt werden, welches von dem Geräteagenten unter dem Gruppengeräteagenten2 (12 ) kontrolliert wird. - Zwei Arten von Zielen können einem Agenten präsentiert werden: Aktionsziele und Bereitstellungsziele. Ein Aktionsziel ist eine Anfrage nach einer bestimmten Dienstleistung, welche sofort Resourcen benötigt. Ein Bereitstellungsziel ist eine Anfrage zur Bereitstellung einer Resource für den späteren Gebrauch durch ein Aktionsziel.
- Gemäß der bevorzugten Ausführungsform, wie sie in
1C dargestellt ist, gibt es drei Arten von Bereitstellungszielen: (a) auf Jurisdiktion basierte Ziele, welche einem Agenten mitteilen, welche Ziele er zur Verfügung stellen kann, die Verfahren zum Erreichen dieser Ziele, und die Benutzerrechte über die Resourcen, welche zum Erreichen der Ziele benötigt werden, (b) auf Benutzerrechten basierte Ziele, bei denen die Anpassung auf einer Resource erfolgt, hinsichtlich der der Agent Benutzerrechte hat, und (c) ein Ziel zur Annahmekontrolle, wobei Resourcen reserviert werden und Benutzerrechte über Resourcen anderen Agenten vergeben werden. - Aus
1D ist ersichtlich, daß es verschiedene Arten von Brokern gibt, welche sich im Resourcenbereich eines Agenten befinden. Ein Aktionsbroker agiert auf eine Anforderung eines Aktionsziels zur sofortigen Benutzung einer Resource. Ein Bereitstellungsbroker befriedigt alle drei Arten von Bereitstellungszielen, beispielsweise durch Absenden irgendeiner oder aller drei Arten von Bereitstellungszielen zu anderen Agenten. - Die Broker können unter den Resourcen wählen, über welche der Agent Benutzerrechte hat, um ein Ziel besser zu erreichen oder sie können Benutzerrechte einem anderen Agenten erteilen oder sie können Ziele und Benutzerrechte für ihren Agenten erstellen oder sie können Resourcen anpassen, über welche der Agent Benutzerrechte hat.
- Aus
1B ist weiter ersichtlich, daß es zwei verschiedene Arten von Agenten gibt; aktive und passive Agenten. Ein aktiver Agent kann Aktionsziele akzeptieren, welche Resourcen benötigen, auf die andere Agenten zugreifen. Ein passiver Agent kann nur Aktionsziele akzeptieren, welche erreicht werden können, ohne daß Resourcen anderer Agenten benötigt werden. Ein passiver Agent ist ein atomarer Agent, der typischerweise ein einzelnes Gerät oder eine Dateneinheit (Datengruppe) darstellt. - Agenten können für verschiedene Arten von Arbeiten spezialisiert sein.
- Beispielsweise stellt ein Unternehmensagent die Bedürfnisse und den Willen eines Unternehmens dar. Er kann unternehmensweite Restriktionen hinsichtlich bestimmter Resourcen einführen und als Überwacher des Agentenverzeichnisses wirken, in welchem sich das Wissen über alle Agentenadressen befindet.
- Ein Gruppenbenutzeragent kann eine Gruppe von Leuten darstellen, denen eine Aufgabe zur Ausführung zugewiesen wurde. Ein Benutzeragent kann eine einzelne Person darstellen.
- Ein Gruppengeräteagent kann der Initiator oder Konfigurator oder Erzeuger von Geräteagenten für eine bestimmte Geräteart sein.
- Diese Agenten sind sämtlich aktive Agenten.
- Ein Geräteagent kann Daten darstellen oder eine Aufgabe, welche eine Person ausführen kann oder ein physisches Gerät, was sowohl die Aktionen des Geräts als auch Einstellinformationen umfaßt. Dies ist ein passiver Agent.
- Andere Agenten können beispielsweise Rechnungsagenten, Kontrollagenten, Mobilitätsmanager, Sicherheitsagenten (Anti-Hacker-Agenten), Wartungsagenten, Verkehrsanalyseagenten oder Ereignisverfolgungsagenten usw. sein.
- Agenten können verschiedene Mittel zur Zuordnung von Resourcen und Analyse von Zielen aufweisen, abhängig von ihrer Umgebung. Dies kann zur Vereinfachung des Agenten und zur Beschleunigung der Implementierung und Bereitstellung von Dienstleistungen dienen. Staukontrollverfahren können implementiert werden, falls Wissen über die Art der Kopplung zwischen Systemen vorhanden ist. Eine dichte Kopplung tritt auf, wenn zwei Agenten jeweils über die Resourcen und Lokationen des anderen Bescheid wissen. Eine politische Kopplung tritt auf, wenn kein Wissen über die interne Betriebsweise des anderen Agenten vorliegt. Die Zuordnung der (Quellen erfolgt dynamisch auf einer politischen Basis. Eine Vertragskopplung tritt auf, wenn kein Wissen über die interne Arbeitsweise der Resource vorliegt. Die Zuordnung der Resource ist statisch und kann nur auf einer Vertragsbasis geändert werden. Eine Staukontrolle muß auf einer vom Protokoll abgekoppelten Basis erfolgen. Informationsbereiche dürfen hierzu nicht benutzt werden.
- Die allgemeine Struktur eines Agenten
25 ist in2A dargestellt. Der Agent wird in vier Teile kategorisiert: einen Informationsbereich29 , einen Einstellbereich26 , einen Aktionsbereich28 und einen Resourcenbereich30 . - Der Informationsbereich
29 ist ein Bereich, in welchem der Agent Information über seine Resourcen ablegt. Jeder Agent, welcher Benutzerrechte über Resourcen oder Teile von Resourcen hat, hat bezüglich dieses Agenten Leseprivilegien über diesen Bereich, falls er Zugang zu ihm hat. Der Zugang kann durch direktes Lesen oder durch Nachrichtenübermittlung erfolgen. - Der Einstellbereich
26 steht für die Fähigkeit eines Agenten zum Akzeptieren von Bereitstellungszielen aller drei Arten. Bei einem passiven Agenten kann er nur Ziele in seinem Zielverzeichnis akzeptieren, welche sich nicht in Ziele für weitere Agenten zerlegen. Wenn ein Bereitstellungsziel empfangen ist und in eine Einheit zerlegt wird, die eine Resource darstellt, über welche Besitzerrechte vorliegen, kann eine Merkmalswechselwirkung auftreten, welche überprüft und behandelt werden sollte. - Der Wirkungsbereich
28 steht für die Fähigkeit eines Agenten zur Annahme eines Aktionsziels und zur Zerlegung dieses Ziels in andere Ziele, welche er an andere Agenten weiterleiten kann, oder an Resourcen über welche er Benutzerrechte hat. Bei einem passiven Agenten können Ziele nur in Resourcen zerlegt werden, welche keine anderen Agentenwechselwirkungen benötigen. Wenn es in eine Einheit zerlegt wird, die eine Quelle darstellt, über welche Benutzerrechte vorliegen, kann eine Merkmalswechselwirkung auftreten und muß geprüft und behandelt werden, wenn die Resource benutzt wird. Die Verantwortlichkeit zur Ausführung der durchzuführenden Schritte nachdem ein Ziel zerlegt wurde, befindet sich in diesem Bereich. Dies kann auch reaktive Planung umfassen. Ein Agent kann nur auf Ziele wirken, über die er Wissen hat. - Der Resourcenbereich
30 stellt die Daten- und Wissensquellen dar, welche bei der Zerlegung eines Ziels benötigt werden. Er ist für den Agenten ein privater Bereich. Ein Zielverzeichnis30A zerlegt Ziele in ihre Konstituenten, wird auf den Einstellbereich26 geschrieben und vom Aktionsbereich28 benutzt. Die Darstellung der Resourcen einschließlich Basisfunktionen, Kapazität, Begrenzungen, Bietmechanismen usw., ist auch in diesem Bereich enthalten, ebenso die Wissensquelle zur Benutzung einer Resource. Dies kann auch aus dem Einstellbereich26 geschrieben und von dem Aktionsbereich28 benutzt werden. - Zur Aufstellung eines Systems von Prozessen mit Agenten, welche Wissen über andere Agenten und über die von Ihnen benutzten Resourcen besitzen, definiert die anfängliche Einstellung des Systems, die Prozesse, zerlegt sie in Ziele für verschiedene Agenten und in die zur Erreichung jedes Ziels benötigten Resourcen. In einer bevorzugten Ausführungsform der Erfindung erfolgt dies durch ein System, welches in Datenbanken das Unternehmen in Form seiner Organisationsstruktur, einschließlich der Benutzer, der Geräte und der von ihnen benutzten Resourcen definiert. Die auszuführenden Prozesse sollten beschrieben werden, einschließlich der Benutzer, Gruppen und zur Ausführung jedes Teils benötigten Resourcen einschließlich der Reihenfolge. Nachdem die Datenbanken vollständig sind, werden sie in Ziele und von jedem Agenten benötigte Resourcen zerlegt und die Agenten werden mit diesen Daten geladen. Ein Prozeß wird als Serie von Zielen definiert, welche Resourcen benötigten und diese Ziele werden in einem vorbestimmten Muster ausgeführt. Ein Prozeß kann also ein Telefonanruf sein sowie eine Druckanfrage und ein Auftrag zum Einkaufen von Gegenständen ist ein Prozeß des Unternehmens.
- Einfache Nachrichten können zur Erreichung komplizierter Aufgaben verwendet werden, weil die Interpretation der Nachrichten durch die Agenten dem System die Fähigkeit gibt, sich an die Bedürfnisse der Benutzer anzupassen und entsprechend zu ändern.
- Es können somit Dienstleistungen durch einen Prozeßagenten dynamisch erzeugt werden, der die einzige Aufgabe hat, Dienstleistungen zu erzeugen und aufrecht zu erhalten. Entsprechend einer Ausführungsform der Erfindung stellen Einheiten, welche neue Dienstleistungsprozesse benötigen, ihre Anfrage an einen Bereich einer Tafel. Eine Anfrage kann beispielsweise von dem in
1A dargestellten Agenten2 als dynamische Anfrage kommen oder von einem Unternehmensmodellierungswerkzeug, das über einen statischen Eingang einen Prozeß aufgenommen hat, der dem Kommunikationssystem hinzuzufügen ist. Hierdurch wird ein Prozeßagent5 hervorgebracht, welcher versuchen soll, den angeforderten Prozeß zu erfüllen. - Der angeforderte Prozeß wird in Form einer Gruppe von Eingängen und erwünschten Ausgängen beschrieben. Der Prozeßagent hat Zugang zu einer Datenbank, welche in einer Ausführungsform eine ziffernbaumartige Struktur aus Zeiger auf bestehende Agenten hat, welche verschiedene Aufgaben erfüllen können. Der Prozeßagent liest und interpretiert diese Daten zur Bestimmung, welche Agenten zur Ausführung der angeforderten Dienstleistung benötigt werden. Der Prozeßagent verhandelt dann die Benutzerrechte mit jedem der verschiedenen beteiligten Agenten zur Erzeugung des neuen Prozesses, über Stücke, welche zur Erzeugung des neuen Prozesses benötigt werden, der zur Ausführung der neuen angeforderten Dienstleistung notwenig ist.
- Der neue Prozeßagent entscheidet darüber, ob er sich in der Datenbank bestehender Prozesse installiert oder nicht, um für andere Agenten zugänglich zu werden, welche dieselbe Dienstleistung benötigen. Der neue Prozeßagent kann auch sich selbst dem anfordernden Agenten zur Verfügung stellen und sich selbst eliminieren.
- Ein Betriebsbeispiel wird im folgenden unter Bezugnahme auf
2B näher beschrieben. Ein Benutzer möchte einen neuen Prozeß zur Behandlung monatlicher Berichte erzeugen. Nach der Beendigung des Berichts wünscht der Benutzer, daß er automatisch in einem Speicher abgespeichert, über eine bestimmte Versendeliste versandt wird und eine Erledigungsliste auf den neuesten Stand gebracht wird. Es wird unterstellt, daß bereits ein Agent existiert, welcher die Absendung von AS-CII Textdateien zu einem vorgegebenen Benutzer behandelt (z.B. ein Prozeßagent, welcher die ASCII-Datei nimmt, einem Agenten zusendet, der sie in korrektes Format bringt, und dann einem anderen Agenten zusendet, welcher das tatsächliche Absenden übernimmt). Es sei weiter unterstellt, daß auch ein Agent existiert, der für die Speicherung von Dateien zuständig ist sowie ein weiterer Agent, welcher Erledigungslisten von Benutzern verwaltet. - Die Anforderung des Benutzers wird einer Tafel zugeführt, ein neuer Prozeßagent wird erzeugt und ihm werden erwartete Eingänge von Eingangsagenten
20 zugeführt und erwartete Ausgänge von Ausgangsagenten21 . Der neue Prozeßagent verhandelt dann mit den existierenden Agenten20 und21 über Benutzerrechte und stellt ein Verfahren zusammen, welches daraus besteht, ein Ziel über das korrekte ASCII dem Schnellversendungsagenten für jedes Mitglied auf der vorhandenen Benutzerliste zuzusenden und dann die Datei dem Speicheragenten zuzusenden sowie dem Agenten, der Erledigungsliste des Benutzers eine Update-Anfrage zuzuführen. - Dies kann selbstverständlich als iterativer Prozeß ausgeführt werden, wobei der Prozeßagent andere Prozeßagenten einsetzen kann.
-
3A zeigt einen Agenten25 gemäß einer bevorzugten Ausführungsform der Erfindung und die Art wie er mit anderen Agenten kommuniziert. Die durchgezogenen Pfeile sind Kommunikationsverbindungen während der Einstellphase und die gestrichelten Pfeile sind Kommunikationsverbindungen während des Betriebs. - Der Agent
25 besteht aus mehreren Routinen27 und Daten29 , welche alle im Speicher abgespeichert sind. Die Daten29 werden im allgemeinen Informationsbereich genannt. Die in3A dargestellten Routinen27 sind Dienermechanismen zur Aufgabenerledigung, Ziel- oder Planlösungsmechanismen, Mechanismen zur Definition von Fähigkeiten, Annahmekontrollmechanismen, entfernte Anpassungsmechanismen und Resourcenzuordnungsmechanismen. Es sind Verbindungen mit äußeren (anderen) Agenten31 dargestellt, beispielsweise einem Überwachungsagenten, einem untergeordneten Agenten, einem anderen Agenten, der Benutzerrechte über den Agenten25 hat, einem anderen Agenten, über welchen dieser Agent Benutzerrechte hat usw.. - Die Funktion der verschiedenen Routinen sind unter Bezugnahme auf die
3B und3C die folgenden. - Der Mechanismus zur Definition von Fähigkeiten empfängt Ziele, Aufgaben, Strategien und Benutzerrechte von einem Agenten, welcher Jurisdiktion über diesen Agenten hat, z.B. von einem höherwertigen Agenten. Er erzeugt Wissensquellen und erneuert die Tafelstruktur in dem Aktionsbereich (
28 ,2A ). Er weiß auch, wie Ziele befriedigt werden. Er plaziert auch Dienerobjekte, welche die möglichen Aufgaben ausführen können, die die verschiedenen Ziele in dem Aufgabenerledigungsorgan49 befriedigen. Darstellungen werden in einen Resourcenbrokerbereich47 plaziert (Darstellungen von Benutzerrechten für Resourcen zur Befriedigung von Zielen). Dieser Mechanismus kann Resourcen hinzufügen, welche über die von den Gruppenagenten zur Verfügung gestellten hinausgehen zur lokalen Anpassung; der lokale Manager kann unternehmensunabhängige Resourcen „einkaufen". Er kann auch Strategien für den Brokerbereich anpassen. - Der Annahmekontrollmechanismus
27 stellt Benutzerrechte dieses Agenten für andere Agenten bereit; er stellt anderen Agenten auch Leistungsgarantien zur Verfügung. Er enthält Verfahren zur Voraussage der Kapazität und Leistungsfähigkeit der Resourcen, einschließlich untergeordneter Agenten, über die er die Kontrolle hat. Die Annahmekontrolle versorgt den Aktionsbereich (28 ,2A ) mit Autorisierungs- und Strategieinformationen. Sie beinhaltet ein Verfahren zur Erzeugung geringer wertiger Agenten und zur Ausstattung dieser Agenten mit Benutzerrechten (Zielen und Resourcen). Die in diesem Bereich enthaltenen Daten sind die Kapazität und die Fähigkeiten des Agenten. - Der Annahmekontrollmechanismus dient auch dazu, geringerwertige Agenten existent zu halten oder zu antworten, um Nachrichten von höherwertigen Agenten aufrechtzuerhalten, was durch das Lesen entfernter Informationsbereiche und durch das Absenden von Nachrichten erfolgen kann. Sie verhindert die Proliferation von Waisenagenten, welche den Kontakt mit dem Rest des Systems verloren haben; Waisenagenten sollten sich selbst zerstören.
- Der Agent kann Strategien über die Benutzung von Resourcen im Dienerobjektbereich eines entfernten Agenten ändern und enthält Verfahren zur Änderung dieser Agenten, über welche er Benutzerrechte hat. Der Agent kann ein Dienerobjekt in einem entfernten Agenten anpassen; beispielsweise kann ein Benutzeragent beim Drücken eines bestimmten Knopfs an einem Telefon daraufhin abgesandte Nachrichten anpassen.
- Der Bereich des Ziellösungsmechanismus (
27 , in3A ) akzeptiert auszuführende Ziele, welche analysiert und von verschiedenen Einheiten verarbeitet werden. Diese Einheiten können Einheiten sein zur Verfolgung, Verarbeitung, Autorisierung, Messung, Kontrolle, Stauanalyse, Resourcenmanagement, Nachführung, Diagnose des Ziels usw.. Der Zweck des Ziellösungsmechanismus besteht darin, die geeignete Aktion zur Erreichung eines Ziels auszuwählen unter Berücksichtigung der Beschränkungen der oben genannten Einheiten. - Dieser Bereich funktioniert wie ein oppurtunistischer Entscheider zur Auswahl einer Aktion, dem der Kontext des Agenten, seine Resourcen und die momentanen darauf einwirkenden Ziele zur Verfügung stehen. Der Bereich kann eine Tafel aufweisen. Er interpretiert/verfolgt ein eingehendes empfangenes Ziel, erzeugt eine Hypothese zur Befriedigung dieses Ziels unter Verwendung eines momentanen Kontexts und begrenzt die Aktion von Prozessen. Er kann auch dem Gruppenagenten ein Ziel zusenden, falls er durch die eingehenden Ziele zu stark belastet ist oder zu wenig Resourcen zur Ausführung eines Ziels hat.
- Der Resourcenzuordnungsmechanismus umfaßt eine lokale Darstellung von Resourcen, über welche der Agent Benutzerrechte hat, z.B. Benutzerrechtsinformationen, wieviel ein Agent derzeit benutzt, und gegebenenfalls Informationen aus dem Informationsbereich des Resourcenagenten. Diese Information besteht aus Information, welche für die Fähigkeit eines entfernten Agenten notwendig ist, um die zugesicherte Dienstleistung zu erbringen. Diese Information aus dem entfernten Informationsbereich kann periodisch oder momentan auf den neuesten Stand gebracht werden.
- Falls es nicht möglich ist, Information aus dem entfernten Informationsbereich zu erhalten, beruht die lokale Darstellung von Resourcen auf Garantien, welche a priori von dem Resourcenagenten zur Verfügung gestellt werden. Diese Darstellungen können an einem Bietprozeß teilnehmen, wobei ein Broker Resourcen einem Dienerobjekt zur Verfügung stellt und Besitzerrechtsgarantien beinhalten sowie Updates, welche die Resource dem Agenten a priori zur Verfügung gestellt hat.
- Die Darstellung umfaßt die Adresse der physischen Resourcen, wodurch der Resourcenagent die Darstellung, z.B. bei Fehlerstau auf den neuesten Stand bringen kann (Updating). Dieses Updating kann von jeder Seite dynamisch oder periodisch getriggert werden. Ein Broker wählt Resourcen für ein Dienerobjekt aus, basiert auf Strategien, welche von diesem Dienerobjekt eingestellt wurden.
- Der Dienerbereich
27 (3A ) beinhaltet Objekte oder Verfahren, welche die Aktionen auf dem Ziellösungsbereich ausführen können. Diese Aktionen, welche für ein Dienerobjekt einstellbar sind, werden Aufgaben genannt. Ein Dienerobjekt kann bezüglich eines Agenten lokal sein oder es kann ein Zeiger zu einer Dienstleistung sein, welche an anderer Stelle im Netzwerk erbracht wird. Der Dienerbereich kann als Ausgang des Agenten betrachtet werden. - Das Objekt erledigt Aufgaben nach Empfang von Triggernachrichten aus dem Akti onsbereich. Triggernachrichten enthalten das gleiche Format der Identifikation und des Index zur Identifizierung des Kontexts der Aufgabe als Zielnachricht. Das Objekt kann auch den Erfolg oder Mißerfolg des Aktionsbereichs bezüglich der Aufgaben rückmelden.
- Die Rückmeldenachrichten können zum Update des Kontexts des Aktionsbereichs benutzt werden und damit zur Triggerung weiterer Aktionen zur Erreichung des Ziels in diesem Bereich.
- Die weiteren Aktionen können darin bestehen, andere Dienerobjekte zu triggern, welche der Erreichung des Ziels dienen. Es kann für ein Dienerobjekt möglich sein, ein anderes unmittelbar zur Erreichung des gleichen Zwecks zu triggern. Im allgemeinen ist dies jedoch weniger erwünscht, da (a) der Ziellösungsbereich daran gehindert wird, den gesamten Kontext des Ziels zu wissen und damit nicht seine volle Entscheidungsfähigkeit einsetzen kann, und (b) es erforderlich ist, daß Dienerobjekte Wissen über die Fähigkeiten aller anderen und über die gegenwärtigen Zustände haben. Hierdurch wird die Unabhängigkeit dieser Dienerobjekte gefährdet und die Aufgabe wird am besten beim Ziellösungsbereich belassen.
- Die Dienerobjekte sollten Strategien zur Auswahl von Resourcen durch den Resourcenbroker enthalten. Es ist wichtig, daß diese Strategien in diesem Bereich verbleiben, weil sie an die Anforderungen des lokalen Benutzers anpaßbar sein sollen und auch von den momentanen Aktionen des Agenten abhängig sein sollen.
- Nach Empfang einer Triggernachricht von dem Aktionsbereich kann ein Dienerobjekt mehr Resourcen von dem Gruppenagenten anfordern.
- Der Informationsbereich
29 ist ein Bereich, in welchen der Agent Information schreiben kann, welche zur Koordinierung seiner Aktionen mit anderen Agenten oder Systemen benutzt werden kann. Dies kann Information über den lokalen Systemzustand, Staus, Messungen, Nachführungen, dem Kontext des lokalen Agenten und andere für die Aktivität des Agenten wichtige Information sein. - Information in dem Informationsbereich kann von spezialisierten Agenten gesammelt und zur Diagnose von Systemproblemen verarbeitet werden. Andere Agenten können den Informationsbereich lediglich lesen.
- Nachrichten über Ziele und Aufgaben müssen mit einer Identifikation versehen werden, um den rufenden Agenten und den Kontext, in welchem das Ziel oder die Aufgabe zu interpretieren ist, zu indizieren. Die Nachricht kann das folgende Format aufweisen:
(Ziel) (Index) (Identifikation des rufenden Agenten) (Identifikation des bestätigenden Agenten). - Der Index ist die Identifikation des Prozesses, welcher von dem Ziel bedient wird und kann das folgende Format haben:
(Identifikation des ursprünglichen Agenten) (Sequenznummer) - Ein Prozeß wird durch eine Reihe von Zielen und Aufgaben ausgeführt, welche zwischen Agenten und Dienerobjekten ausgetauscht werden. Es ist wichtig, daß der Agent ein Ziel vom rufenden Agenten autorisieren, kontrollieren und messen kann. In diesem Fall kann der Agent die Identifizierung des rufenden Agenten mit der Liste von Zielen überprüfen, die er einstellen darf.
- Der Agent nimmt typischerweise an vielen Prozessen zur gleichen Zeit teil und muß einen Kontext für jeden dieser Prozesse behalten.
- Der Index identifiziert jeden Prozeß einzeln. Identifizierungen werden einem Agenten über seinen Gruppenagenten zugeordnet und sollten hierarchisch angeordnet sein, basierend auf der Identifikation des Gruppenagenten.
- Identifizierungen haben somit ein offenes Ende und sind wiederverwendbar. Es ist auch möglich, Zugang zu gewähren, basierend auf einer hierarchischen Mitgliedschaft in der Organisation und basierend auf der Analyse eines Teils der Identifiaktion.
- Wie oben angemerkt, verfügen Agenten über Ziellösungsmechanismen. Unter Bezugnahme auf
4A als Alternative zur Ausführungsform des Systems mit der Tafel, beziehen sich diese Mechanismen auf Ziele, welche im Informationsbereich29 gespeichert und in Zielverzeichnissen33 aufgelistet sind. Jeder Agent hat Zugang zu seinem eigenen Zielverzeichnis, welches eine Liste von von diesem Agenten verstandenen Zielen beinhaltet und ein Verfahren zur Erreichung dieses Ziels. Jeder Agent hat darüberhinaus Zugang zu einer Verfahrenstabelle35 , welche, für ein gegebenes Verfahren, einen Zeiger zu einem Softwareprogramm37 zu dessen Ausführung aufweist. - Jeder kann auf den neuesten Stand gebracht werden oder ergänzt werden durch andere Agenten, welche entweder Jurisdiktion über diesen Agenten ausüben oder welche Benutzerrechte für einen bestimmten Prozeß gewähren.
- Falls ein Agent
38 nach der Erzeugung einer neuen Dienstleistung anfragt, wie es in4B dargestellt ist, stellt er diese Anfrage an die Tafel39 . Der erfolgreiche Prozeßagent39 , welcher gewählt wird, um die Dienstleistung bereitzustellen, erzeugt ein neues Verfahren41 , welches auf den Agenten38 geladen wird, weil dieser Benutzerrechte aufgebaut hat und nun den verschiedenen Komponenten des Verfahrens gewährt. - Falls, wie in
4C dargestellt, ein Gruppenagent43 eine neue Instanz eines Geräteagenten erzeugen will, kann er über Jurisdiktion dem neuen Geräteagenten45 die notwendigen Softwareprogramme44 laden, um ein von dem neuen Geräteagenten kontrolliertes Gerät zu kontrollieren. - Falls, wie in
4D dargestellt, ein Gruppenbenutzeragent47 Jurisdiktion über einen Benutzeragenten48 ausübt, kann er diesen Agenten mit gruppenspezifischen Zielen49 und Prozeduren50 zur Erreichung dieser Ziele ausstatten für den Betrieb der Gruppe, über welche der Gruppenagent47 Jurisdiktion ausübt. - Bei Auftreten eines signifikanten Ereignisses in einem Agenten übermittelt er dieses Ereignis an die Tafel
55 , wie es in5 dargestellt ist. Jeder Agent57 , der an einem bestimmten Ereignis interessiert ist, registriert diese Tatsache in einem Registrierungsbereich59 der Tafel55 . Beim Auftreten eines Ereignisses wird die Tafel informiert und alle interessierten Agenten werden in einem Notifizierungsbereich61 der Tafel notifiziert. - Wenn beispielsweise ein neuer Rechnungsprozeß dem System hinzugefügt werden soll, registriert der betroffene Agent mit der Tafel
55 die Ereignisse, an denen er interessiert ist und welche mit dem Rechnungsprozeß zu tun haben können. Agenten, welche irgendwelche Ereignisse auf die Tafel bringen, benötigen kein Wissen darüber, daß der neue Rechnungsprozeß existiert oder wo es sich physisch auf dem System befindet. - In dem in
5 dargestellten System registrieren der beispielhaft dargestellte Rechnungsagent57A und der Wartungsagent57B die Ereignisse, an welchen sie interessiert sind in dem Registrierungsbereich59 der Tafel. Wenn ein Ereignis auftritt und im „Ereignisaushang"-Bereich60 der Tafel55 dargestellt wird und Daten oder ein Verfahren vorliegen, welche den Rechnungsagenten oder den Wartungsagenten entsprechend den registrierten Ereignissen, an denen diese interessiert sind, betreffen, werden sie von dem Notifizierungsbereich der Tafel55 notifiziert. - Es ist nicht notwendig, daß die gesamte Tafel sich an einer physischen Stelle befindet. Jeder Bereich der Tafel kann an verschiedenen physischen Stellen angeordnet sein und auch von verschiedenen Prozessoren betrieben werden.
- Im allgemeinen wird ein Ziel erzeugt und von einem zum nächsten Agenten im Prozeß weitergereicht, wie es in
6A dargestellt ist. Das Ziel und der Index sind konstant. Jedoch ändert sich auf jeder Stufe die Identifikation des rufenden Agenten. Diese Identifikation wird zur Einstellung des Kontexts verwendet, in welchem das Ziel zu interpretieren ist. - In
6B ist dargestellt, wie sich die Agenten A und P den Agenten B anpassen, um jeweils verschieden zu wirken, um das gleiche Ziel zu erreichen. Das Ziel kann bespielsweise das Drücken eines Knopfs an einem Telefonapparat sein. Der Agent B reagiert verschieden auf diese Knopfdrücke, nachdem er von den Telefonagenten A und P informiert wurde. Der Agent A kann so eingestellt werden, daß der Knopfdruck eine Schnellwahl ist. Der Agent P kann so eingestellt sein, daß der Knopfdruck als Amtsleitungsauswahl wirkt. - Die Identifizierung des bestätigenden Agenten in der Nachricht indiziert, welchem Agenten der Erfolg oder Mißerfolg des Ziels beim gegenwärtigen Agenten zu bestätigen ist.
- Beispielsweise kann der Agent B anstelle der Verwendung des Prozesses gemäß des Diagramms nach
6A sich entscheiden, sein Ziel dadurch zu erreichen, daß er andere Agenten aufruft, welche dem ursprünglichen Agenten A unbekannt sind. Das Prozeßdiagramm ist beispielsweise in6C dargestellt. - In
6C befinden sich die Agenten J, K und L unter der Direktion des Agenten B. Wenn es diesen untergeordneten Agenten nicht gelingen sollte, ihre Ziele zu erreichen, können sie dieses dem Agenten B bestätigen, der korrigierend einwirken kann, um Nebenwirkungen auszulöschen und das Ziel schließlich zu erreichen. Der Agent B kann dies einstellen, indem er das Ziel mit seiner eigenen Identifikation als Bestätigungsadresse in der Nachricht absendet. Dies ermöglicht die Unabhängigkeit jedes Prozeßschritts an anderen Stufen und die Eigenverantwortlichkeit für die Nebenwirkungen. - Ein Beispiel des Systems und sein Betrieb werden im folgenden unter Bezugnahme auf
7 näher beschrieben. - Das Rückgrat des Systems ist ein Hochgeschwindigkeitsnetzwerk, in dieser Ausführungsform ein Hochgeschwindigkeits-LAN
101 . Es ist jedoch anzumerken, daß das Übertragungssystem kein LAN sein muß, sondern auch ein WAN sein kann, welches sich beispielsweise über einen Campus, eine Stadt, ein Land oder mehrere Länder er strecken kann und aus verschiedenen miteinander verbundenen LANs oder WANs aufgebaut sein kann. - Eine Hauptdatenbank
103 ist in einem Schreib-Lese-Speicher (RAM) enthalten, der beispielsweise als Festplattenlaufwerk ausgeführt sein kann. Die Datenbank103 ist in einem Prozessorsystem105 enthalten, welches zur Kommunikation mit dem LAN101 angeschlossen ist. Das Prozessorsystem105 weist auch einen Konfigurationsagenten106 auf. - Ein Computer
107 ist auch an das LAN angeschlossen. Der Computer wird zur Eingabe von Konfigurationsdaten zur Abspeicherung in der Datenbank103 benutzt. - Verschiedene andere Prozessorsysteme wie sie mit den Bezugszahlen
109 ,111 und113 bezeichnet sind, sind auch zur Kommunikation über das LAN angeschlossen. Das Prozessorsystem109 weist einen Gruppenagenten115 und Benutzeragenten117A ,117B ...117N auf. Das Prozessorsystem111 weist einen Gruppenagenten119 und Telefonagenten121A ...121N sowie einen Gruppenagenten123 und Innenleitungsagenten125A ...125N auf. Der Prozessor113 weist einen Gruppenagenten127 und Druckeragenten129A ...129N auf. - Der Prozessoragent
111 kommuniziert über verschiedene Innenleitungen131 zu dem äußeren Kommunikationsnetzwerk132 und mit verschiedenen Telefonen133 . Drucker135 sind an das LAN angeschlossen, alternativ hierzu können sie jedoch unmittelbar über das Prozessorsystem113 in Kommunikation mit Druckeragenten129A –129N stehen. - Das Prozessorsystem
105 beinhaltet ein Computerprogramm (im folgenden als „Prozeß" bezeichnet) zur Konfiguration jedes der verschiedene Agenten und ihrer Ziele. Ein Ziel ist die Definition des Zwecks einer bestimmten gewünschten Funktion, beispielsweise die Verbindung eines Telefons mit einer Innenleitung. Das Konfigurationsprogramm ist für das Laden der in der Datenbank103 gespeicherten Ziele auf jeden der verschiedenen Agenten beim Start verantwortlich und wenn neue Agenten, Geräte und Ziele hinzugefügt, geändert oder aus dem System entfernt werden. Die Datenbank103 speichert vorzugsweise auch ein Adreßverzeichnis für die verschiedenen Agenten ab, um zum Erreichen eines Ziels die Adressen der benötigten Agenten durch den anfordernden Agenten von dieser Datenbank abrufen zu können. - Der Speicher weist auch reservierte Bereiche für jeden der Agenten auf.
- Der Konfigurationsagent
106 hat Jurisdiktion über alle anderen Agenten, weil er kontrolliert, was alle Agenten ausführen können. Tatsächlich ist es der Hauptagent des Systems. - Das Prozessorsystem
109 speichert die Prozesse, welche sowohl den Gruppenagenten115 als auch die Benutzeragenten117A –117N behandeln. Der Gruppenagent repräsentiert die Gruppeninteressen für die Benutzeragenten und hat Jurisdiktion über sie und beide erzeugen und konfigurieren sämtliche Benutzeragenten, wenn ein Benutzer (z.B. ein Teilnehmer) sich in das System einklinkt. - Der Prozessor
111 speichert die Prozesse, welche die Gruppenagenten119 und123 behandeln sowie die Telefonagenten121A –121N und Innenleitungsagenten125 . Der Gruppenagent119 hat Jurisdiktion und ist verantwortlich für das Erzeugen und Initialisieren sämtlicher Telefonagenten in seiner Gruppe, wenn einer der Benutzeragenten eine Telefonresource anfordert. - Die Benutzeragenten können Benutzerrechte über einen bestimmten Telefonagenten erhalten, indem sie über das LAN eine Nachricht geben, in der sie den Telefongruppenagenten um diese Rechte ersuchen. Dies ist ein Beispiel für das Absenden (Einstellen) eines Ziels durch einen Benutzeragenten zu einem Gruppenagenten
119 . - Der Gruppenagent
123 ist ein Gruppenagent für Innenleitungsgeräte. Ein Benutzeragent kann eine Nachricht über das LAN zu dem Gruppenagenten123 senden, um Zugang zu einer Innenleitung zu erhalten. Der Gruppenagent123 sendet dann ein Ziel zu dem Innenleitungsagenten125 , welcher eine Innenleitung zuordnet. - Vorzugsweise wird ein Innenleitungsagent dadurch erhalten, daß ein Zeit- oder Kapazitätsanteil auf der Menge der Innenleitungen ausgehandelt wird. Dies kann durch das Aufgebot einer Anforderung (z.B. einer Destination, einer Bandbreite und/oder einer Datenrate) auf einer Gebotsliste erfolgen. Jeder der Innenleitungsagenten kann mitbieten, um die Anforderung zu erfüllen, beispielsweise gemäß einer Bedingung wie die des Wegs minimalen Aufwands für die aufgebotene Anforderung. Ein derartiger Prozeß des Bietens und der Erfüllung wird, wie in den oben genannten Artikeln allgemein üblich, als Tafelsystem beschrieben.
- Es wurden zwei Arten der Zielsetzung beschrieben, wobei eine in dem Benutzeragenten enthalten ist, der die Benutzerrechte über die Innenleitungsresource definiert, welche er benötigt und die andere, welche die Benutzung eines Teils der Resource des Gruppenagenten
123 anfordert, z.B. der Amtsleitung oder eines Teils davon. - Der Prozessor
113 speichert die Prozesse für den Gruppenagenten127 und der Druckeragenten129A –129N . Ein Benutzeragent117A –117N kann unter Verwendung eines gesetzten Ziels verhandeln, indem er eine Nachricht an den Gruppenagenten127 sendet, zur Benutzung eines Teils der Drucker oder er kann über die exklusive Nutzung des Druckers verhandeln, indem er beispielsweise das Tafelgebotssystem benutzt. - Im vorliegenden Beispiel wird, wenn ein Benutzer einen Telefonanruf durchführen möchte, der Hörer des Telefons
133 abgenommen. Ein Telefonagent befindet sich in einer Programmschleife und überwacht die Teilnehmerleitung über eine dedizierte Telefonschnittstelle127 . Wenn er ein Ansteigen des auf der Leitung fließenden Stroms detektiert, das auf das Abnehmen des Hörers zurückzuführen ist, sendet eine Nachricht zu dem Prozessorsystem105 und teilt ihm mit, bei welchem Telefon abgenommen wurde. Diese Detektion erzeugt ein Ziel für den Telefonagenten, welcher sie detektiert hatte. Der Telefonagent greift nach Empfang der Indikation über das Abnehmen eines Hörers auf ein Zielverzeichnis zu, welches in seinem dedizierten RAM-Speicherbereich abgespeichert ist und arbeitet eine zugeordnete Abfolge von Schritten ab, um die für das Prozessorsystem109 bestimmte Nachricht zu formulieren und sie auf das LAN101 zu geben. Der Gruppenagent115 erhält die Nachricht als Ziel zur Zuweisung eines Benutzeragenten117A –117N . - Benutzeragenten
117A –117N können bieten, um ein Ziel zu erreichen, und zwar beispielsweise unter Verwendung eines Tafelprozesses, oder ein Benutzeragent kann unmittelbar durch den Gruppenagenten115 zugeordnet werden. In jedem Fall wird ein Benutzeragent durch den Gruppenagenten115 zugeordnet. Der Benutzeragent, welcher das durch das Abnehmesignal definierte Ziel empfängt, greift auf seine Datenbank entsprechender Prozeßschritte zu und formuliert eine Nachricht an den Telefonagenten, welcher in dem ursprünglichen Ziel identifiziert wurde, um den Geräteagenten zu finden, der einen Wählton auf das Telefon gibt und sendet diese über das LAN101 . Der Gruppenagent119 empfängt die Nachricht und sendet ein Ziel zu einem Wähltongenerator-Geräteagenten135 , der einem anderen Prozessorsystem137 zugeordnet ist, das über das LAN101 über den Gruppenagenten138 in Verbindung steht. Der Geräteagent135 empfängt das Ziel und ermöglicht es einem Wähltongenerator139 , den er kontrolliert, einen digitalen Wählton über das LAN101 den Telefonagenten121 zuzuführen, welcher dem abgenommenen Telefon zugeordnet ist. Der Telefonagent sendet diese über die dedizierte Telefonleitungsschnittstelle, von welcher er das Abnehmesignal detektierte, zu dem Telefon133 . - Der Benutzeragent sendet, zur gleichen Zeit wie er ein Ziel zum Wähltongenerator-Geräteagenten
135 sendet, auch ein Ziel zu einem (digitalen mehrfrequenzigen) Detektoragenten141 , der einen Wähltondetektor143 , der dem Wählsignalagenten141 zugeordnet ist, zum Zwecke der Detektion digitaler Wählsignale an das LAN101 anschließt. Wenn ein Benutzer an dem abgenommenen Telefonapparat wählt, werden analoge MF-Signale aus dem Telefon von der Telefonschnittstelle127 empfangen und in Digitalsignale umgesetzt, worauf sie unter Kontrolle des zugeordneten Telefonagenten über das LAN als Nachrichten zu dem MF-Wähltondetektor143 gesendet werden. - Nach Empfang der Wähltöne speichert der Wähltondetektor diese in an sich bekannter Weise und sein Agent
141 sucht nach Empfang eines Ziels aufgrund dessen er festgestellt hat, daß wegen der ersten detektierten Ziffern eine Innenleitung benötigt wird, eine entsprechende Prozeßsequenz in dem lokalen RAM und sendet über den Gruppenagenten138 und das LAN101 ein Ziel an den Gruppenagenten123 , welcher den Innenleitungsagenten125 zugeordnet ist, wodurch eine Innenleitung angefordert wird. Der Gruppenagent123 erhält, beispielsweise unter Einsatz einer Tafel Gebotstechnik, die Dienstleistungen eines Innenleitungsagenten125 und übermittelt das Ziel an diesen Innenleitungsagenten. Der Innenleitungsagent hat eine dedizierte Innenleitungsschnittstelle145 , die er kontrolliert und beaufschlagt, wodurch die Innenleitung beaufschlagt wird. Der Innenleitungsagent sendet dann über das LAN101 eine Nachricht an den MF-Detektionsagenten141 in der er mitteilt, daß die Innenleitung beaufschlagt wurde. Dies wird von dem MF-Detektionsagenten141 als Ziel betrachtet und führt dazu, daß dieser die Wählziffern zur Übertragung über die Innenleitung den Innenleitungsagenten125 zuführt. - Eine weitere Nachricht wird von dem Innenleitungsagenten
125 dem Konfigurationsagenten106 übermittelt, wobei dieser über die Beaufschlagung der Innenleitung informiert wird und der Konfigurationsagent sendet, nach Empfang einer Nachricht von dem Telefonagenten121A über das Wählen einer Nummer, eine Nachricht an den Telefonagenten und an den Innenleitungsagenten zur Mitteilung, welcher Kanal des LAN zur Verbindung des Telefons mit der Innenleitung zu benutzen ist. Der Kommunikationsweg ist damit aufgebaut. - Es sei angemerkt, daß durch Benutzerrechte Resourcen bereits vorher reserviert werden konnten.
- Beispielsweise kann der Innenleitungsagent eine Nachricht zu dem MF-Detektoragenten senden, Töne zu detektieren. Der MF-Detektoragent kann zu dieser Zeit durch einen Bietprozeß ausgewählt werden. Er hätte jedoch auch vorher ausgewählt werden und von dem Innenleitungsagenten in Reserve gehalten werden können. Die tatsäch liche von dem Bietprozeß benötigte Zeit wird damit erspart und die Systemstabilität wird verbessert, weil der Innenleitungsagent die Resourcen, die er während seines gewöhnlichen Betriebs benötigt, reservieren kann. Die Wahrscheinlichkeit für einen Ausfall aufgrund des Fehlens einer geeigneten Resource wird somit abgesenkt.
- Ein Agent kann Benutzerrechte für andere Agenten reservieren und diejenigen Agenten dynamisch über seinen Resourcenbroker auswählen. Diese Auswahlstrategien sind für den Broker lokal und können für eine Vielzahl von Zwecken verwendet werden. Beim gegenwärtigen Beispiel hätte der Innenleitungsagent Benutzerrechte über zwei oder mehr MF-Detektoragenten reservieren können und diese dann als Redundanzmittel einsetzen können (z.B. durch Lastenteilung oder andere Mittel). Die benötigte Zuverlässigkeit kann durch Softwaremechanismen innerhalb des Agenten gewählt werden. Ein hochzuverlässiger Agent kann einen komplexen Selektionsprozeß benutzen. Ein Agent, dessen Zuverlässigkeit weniger wichtig ist, kann auch sehr einfache, billige Prozeduren verwenden.
- Wie oben angemerkt, wechselwirkt das verteilte System aus unabhängigen Agenten durch Austausch von Zielen. In der vorliegenden Erfindung operiert ein Agent gemäß eines Satzes interner Instruktionen, welche als Skript bezeichnet werden. Ein Agent beginnt die Ausführung eines Skripts aufgrund einer Nachricht (in dieser Beschreibung als „Ziel") von einem anderen Agenten.
- Innerhalb eines Skripts ist es manchmal wünschenswert, zwei simultane Sätze von Ereignissen, Ketten genannt, gleichzeitig zu starten. Bei der vorliegenden Erfindung kann jede beliebige Anzahl von Ketten erzeugt werden, ohne daß spezielle Mehrkettenkontrollstrukturen innerhalb des Agenten benötigt würden. Dies vereinfacht die Ausbildung der Agenten und macht sie schneller und robuster.
- Bekannte mehrkettige Systeme wurden in monolytischen Systemen, beispielsweise Computersystemen, implementiert. In derartigen Systemen wurden die Ketten auf ähnliche Weise betrachtet wie die Prozesse. Die Ketten werden von dem Betriebssystem aufgelistet und haben ihren eigenen Stack.
- Ein ähnliches System, welches mit Ketten arbeitet, findet sich in standardisierten, verteilten Computerumgebungen (Distributed Computer Environments = DCE). DCE erfordern es jedoch, daß das Betriebssystem die Erzeugung von Ketten unterstützt.
- Die vorliegende Erfindung nimmt die Kettenbildung aus dem Betriebssystem heraus und setzt sie in den normalen Ablauf der Wechselwirkung zwischen Agenten.
- Nach Empfang eines Ziels versucht ein Agent die von einem anderen Agenten angeforderten Aktionen auszuführen. Erfindungsgemäß enthält jeder Agent ein internes Skript, welches die Abfolge von Aktionen indiziert, die er zur Erreichung des Ziels ausführen muß. Gemäß einer Ausführungsform ist dieses Skript eine lineare Liste von Instruktionen. Jedes Mitglied der Liste wird durch eine interne Nummer indexiert, welche als Programmzähler (PC) bezeichnet wird. Für jeden Dienstleistungsweg gibt es ein Skript. Der Inhalb eines Skripts sollte seinen Namen und eine Liste formaler Argumente umfassen. Der Name des Skripts kann nützlicherweise zum Namen des dem Agenten zugeführten Rufziels passen.
- Ein Instruktionsobjekt sollte die Identifikation des zu rufenden Agenten durch die Instruktion und das an das Objekt zu sendende Ziel enthalten, eine Namensliste der Variablen, deren Werte dem gerufenen Agenten als Argumente des Rufs zugeführt werden, eine getrennte Liste für ACK, NACK und CACK (wird im folgenden beschrieben) von Namen von Objektvariablen, deren Werte in den Argumenten der zurückgelieferten Nachricht zurückgeliefert werden und PCs zur Indizierung der nächsten Instruktion, der entweder rückgeführte ACK, NACK oder CACK gegeben werden.
- Der Agent sendet ein Ziel zu einem anderen Agenten, kann jedoch auch an sich selbst ein Ziel senden. Ein empfangender Agent versucht das Ziel zu erreichen und führt verschiedene Codes zur Indizierung seines Erfolgsgrads zurück. Die Zurückführung eines ACK-Codes indiziert, daß das Ziel erfolgreich erreicht wurde oder das Ergebnis eines Booleschen Tests wahr ist. Die Zurückführung eines NACK-Codes indiziert, daß das Ziel nicht erreicht wurde oder das Ergebnis eines Booleschen Tests falsch ist und die Zurückführung eines CACK-Codes indiziert, daß es nicht möglich ist, das Ziel zu erreichen (beispielsweise für einen unerwarteten Fehler, wie ein unbekanntes Ziel, eine unautorisierte Anfrage oder eine Überlastung des angerufenen Agenten, der nicht in der Lage ist, zusätzliche Ziele zu verfolgen). Vorzugsweise enthält eine Instruktion
- 1. PC
- 2. an den Subjektagenten oder einen anderen Agenten zu sendendes Ziel.
- 3. Liste von Werten der Argumenten, welche mit dem Ziel zu senden sind.
- 4. PC zur Ausführung nach Empfang einer ACK-Bestätigung.
- 5. PC zur Ausführung nach Empfang einer NACK-Bestätigung.
- 6. PC zur Ausführung nach Empfang einer CACK-Bestätigung.
- 7. Variablenliste in der die zurückgeführten Datenvariablen gespeichert werden.
- Ein Beispiel für ein dynamisches Funktionsmodell eines Ziellösers und einer Zielschlange, bei dem eine ACK-, NACK- und CACK-Bestätigungsnachricht zurückgeführt wird, wird im folgenden beschrieben.
- Wie oben beschrieben, gibt es innerhalb eines Skripts Fälle, in denen es wünschenswert ist, die Abfolge von Operationen in zwei oder mehr Ketten aufzuspalten. Ketten können als gleichzeitige Mengen von auszuführenden Zielen beschrieben werden. Dies ist in
8 dargestellt. - Jeder Block
200 –210 stellt eine Instruktion innerhalb des Skripts dar. Die Verbindungen zwischen den Blöcken stellen die Verbindung zu den instruierenden Instruktionen dar, wie sie von einem PC bezeichnet werden, der nach Empfang eines ACK von einer vorhergehenden Instruktion ausgeführt werden soll. NACK und CACK Rückführungen sind aus Gründen der Übersichtlichkeit nicht dargestellt. - Beispielsweise wird der Anfang des Skripts linear ausgeführt, was durch die Instruktionen
200 und201 indiziert ist. Nach Ausführung der Instruktion201 werden zwei parallele Aktionsketten benötigt, was durch die Anfangsinstruktionen202 und203 jeder parallelen Kette dargestellt ist. Die Aufspaltung erfolgt durch die Kontrollinstruktion210 (SPLIT), welche die beiden zur Initialisierung der Aktionen202 und203 benötigten Ziele emittiert. - Ein SPLIT Ziel ist eines von speziellen internen Zielen und kann auf verschiedene Art beschrieben werden. Beispielsweise kann eine einzelne Instruktion benutzt und die durch die ACK und NACK PC Stellen in der Instruktion indizierten Instruktionen sofort ausgeführt werden. Alternativ hierzu können die nächsten beiden sich unmittelbar an die SPLIT Instruktion anschließenden Instruktionen ausgeführt werden. Die zweite Methode ermöglicht es einer SPLIT Instruktion, eine Mehrzahl von Ketten zu erzeugen.
- Bei der Bereitstellung der erfindungsgemäßen Verbesserung ist es wichtig, den gegenwärtigen PC in Zielen bereitzustellen, welche zu den Startaktionen
202 und203 gesendet werden. Dieser gegenwärtige PC wird von dem gerufenen Agenten oder der Aktion als Rückgabewert benutzt. Der bei der Aktion202 gerufene Agent führt seine Bestätigung also der mit der Bezugszahl202 bezeichneten Instruktion zurück. Auf gleiche Weise führt der in der Aktion203 gerufene Agent seine Bestätigung zu der ihn aufrufenden Instruktion zurück. Weil jede dieser Instruktionen zur darauffolgenden Instruktion in ihrer Kette zeigt, ist eine erfolgreiche Erzeugung multibler Ketten möglich, ohne daß spezielle Kontrollstrukturen innerhalb des Agenten benötigt würden. Tatsächlich kann jede beliebige Anzahl von Ketten erzeugt werden. - Der rufende Instruktions-PC zirkuliert mit den Kettenrufen und hält diese voneinander getrennt.
- Die Auflistung von Ketten muß somit nicht vom Betriebssystem ausgeführt werden und wird der Wechselwirkung zwischen den Agenten zugeführt. Es werden keine speziellen Bereiche innerhalb der Agenten benötigt, um die Ketten aufrecht zu erhalten, welche von ihnen erzeugt werden. Die Ketten werden von den Zielen aufrechterhalten, welche zwischen den Agenten zirkulieren.
- Weil die Ketten durch die Identität zwischen PC und Agenten aufrechterhalten werden, ist die erfindungsgemäße Verbesserung nicht auf eine einzelne Maschine beschränkt. Sie kann unter einer Gruppe von Maschinen vernetzt werden, die über ein LAN oder ein anderes Kommunikationsnetzwerk miteinander verbunden sind. Die Agenten können sich in verschiedenen Maschinen befinden. Ihre Wechselwirkungen müssen durch den Austausch von Zielen miteinander koordiniert werden.
Claims (3)
- Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems, das einen Speicher und einen Prozessor zum Steuern des Systems aufweist, gekennzeichnet durch folgende Schritte: a) Bereitstellen einer Vielzahl von Prozeßagenten zum Empfangen von Zielbefehlen (Zielen) und zum Aufrufen eines Prozesses zur Erreichung dieser Ziele, b) Bereitstellen einer Vielzahl von jeweils in Verbindung mit ihrem eigenen Gerät stehenden Geräteagenten zum Empfang und zur Abspeicherung von Zielen von einem Prozeßagenten und zum Betrieb ihrer entsprechenden Geräte nach Empfang dieser Ziele von einem Prozeßagenten, c) Verbinden all dieser Agenten miteinander zur Übertragung von Zielen zwischen den Agenten über diese Verbindungen, d) Empfangen eines Zieles von einem anderen Agenten und Ausführen einer Abfolge von durch dieses Ziel bedingten Aktionen, wobei jede Aktion mindestens eine Instruktion enthält, jede Instruktion eine Indexnummer (PC) enthält und eine Aktion zu einer anderen Aktion in einer Kette von Aktionen zeigt, e) Informieren einer nachfolgenden Aktion über eine vorangehende Instruktion einschließlich der Bezeichnung der Indexnummer der vorangehenden Instruktion, wodurch eine nachfolgende Aktion über eine instruierende Indexnummer informiert wird, f) Zurückführen einer Bestätigungsnachricht über die Erledigung der Aktion zu einer vorangehenden Aktion, welche eine von der instruierenden Indexnummer bezeichnete Instruktion enthält, wodurch die die instruierende Indexnummer enthaltende Aktion auf verschiedene Indexnummern zeigen kann, um nach Empfang verschiedener Bestätigungsnachrichten verschiedene Aktionen auszuführen.
- Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems nach Anspruch 1, dadurch gekennzeichnet, daß die verschiedenen Bestätigungsnachrichten einen Hinweis darüber umfassen, daß die Aktion erfolgreich erledigt wurde (ACK), und mindestens einen Hinweis darüber, daß die Aktion nicht erledigt wurde (NACK), und daß die Aktion nicht erledigt werden kann.
- Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems nach Anspruch 2, dadurch gekennzeichnet, daß eine der Aktionen in mindestens zwei aufeinanderfolgende parallele Abfolgen von Aktionen (Ketten) aufgespalten ist, wobei jede Aktion eine nachfolgende Aktion in ihrer Kette über die Indexnummer einer Instruktion in einer vorangehenden Aktion informiert, und eine Bestätigungsnachricht der vorangehenden Aktion an der Aufspaltung oder in ihrer der Aufspaltung nachfolgenden Kette zuführt.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002119085A CA2119085C (en) | 1994-03-15 | 1994-03-15 | Adaptive communication system |
CA2119085 | 1994-03-15 | ||
US08/367,821 US5802396A (en) | 1994-03-15 | 1995-01-03 | Adaptive communication system |
US08/367,821 | 1995-01-03 | ||
DE19549810 | 1995-03-13 | ||
DE19549809 | 1995-03-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19508940A1 DE19508940A1 (de) | 1995-10-26 |
DE19508940B4 true DE19508940B4 (de) | 2006-03-09 |
Family
ID=35870998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19508940A Expired - Lifetime DE19508940B4 (de) | 1994-03-15 | 1995-03-13 | Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19508940B4 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19522527A1 (de) * | 1995-06-23 | 1997-01-02 | Ibm | Verfahren zur Vereinfachung der Kommunikation mit Chipkarten |
DE19811352C2 (de) * | 1998-03-16 | 2000-01-13 | Siemens Ag | System und Verfahren zur Suche auf untereinander vernetzten Rechnern mit Informationsbeständen mittels Softwareagenten |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5269014A (en) * | 1988-05-24 | 1993-12-07 | Mitsubishi Denki Kabushiki Kaisha | Automatic programming system with design review capabilities |
DE4325860A1 (de) * | 1992-08-01 | 1994-02-03 | Siemens Ag | Verfahren und leittechnisches System zum Steuern, Überwachen und Regeln insbesondere von komplexen industriellen Prozessen, wie z. B. in einem Kernkraftwerk |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5969014A (en) * | 1997-09-23 | 1999-10-19 | Clariant Finance (Bvi) Limited | Synergistic polyamide stabilization method |
-
1995
- 1995-03-13 DE DE19508940A patent/DE19508940B4/de not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5269014A (en) * | 1988-05-24 | 1993-12-07 | Mitsubishi Denki Kabushiki Kaisha | Automatic programming system with design review capabilities |
DE4325860A1 (de) * | 1992-08-01 | 1994-02-03 | Siemens Ag | Verfahren und leittechnisches System zum Steuern, Überwachen und Regeln insbesondere von komplexen industriellen Prozessen, wie z. B. in einem Kernkraftwerk |
Non-Patent Citations (4)
Title |
---|
OCCELLO, M., THOMAS, M.C.: A new Approach for Process Control, In: Computers in Design, Manufacturing, and Production, ISBN 0-8186- 4030-8, Conference Pris-Evry, France, 24-27 May 1993, Editors CROISER, A., Israel, M., Chavand, F. Los Alamitos, CA, USA: IEEE Comput. Soc. Press. 1993, S. 487-492 * |
Sept. 91, S. 41-47 "Blackboard Systems" * |
US-Z: AL Expert * |
US-Z: AL Expert; Sept. 91, S. 41-47 "Blackboard Systems" |
Also Published As
Publication number | Publication date |
---|---|
DE19508940A1 (de) | 1995-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19838055B4 (de) | Kommunikationssystem und Verfahren zum Zuordnen von Benutzern zu Kommunikationsgruppen | |
DE69636157T2 (de) | Verfahren und System zum graphischen Anzeigen und zur Navigation durch ein interaktives Sprachantwortmenü | |
DE69631373T2 (de) | Abrechnungsverwaltung für telekommunikationsbenutzung | |
DE602006000907T2 (de) | Zugangssteuerungssystem, Regelmaschinen-Anpasseinrichtung, regelbasierte Erzwingungsplattform und Verfahren zum Ausführen einer Zugriffssteuerung | |
EP0635792B1 (de) | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen | |
DE69839195T2 (de) | Ferndiagnoseeinrichtung | |
DE69734432T2 (de) | Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem | |
DE4033336A1 (de) | Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung | |
EP3646279B1 (de) | Verfahren zur produktionsplanung | |
EP2648094B1 (de) | Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses | |
DE102018202820A1 (de) | System zur einstellung von daten für einen roboter, verfahren zur einstellung von daten und programm | |
DE60114949T2 (de) | Leitweglenkung | |
EP2397913B1 (de) | Wartungsverfolgungssystem | |
DE102004035514A1 (de) | Telekommunikationsgraphikdienstprogramm | |
CH701481B1 (de) | Prozessmanagement. | |
DE19508940B4 (de) | Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems | |
DE60216515T2 (de) | Identifikation von lieferungsobjekten in einem telekommunikationsnetzwerk | |
DE69634953T2 (de) | Anpassbare anwenderschnittstelle | |
EP1843539B1 (de) | Automatische Verifizierung von Messenger-Kontaktdaten | |
DE60004161T2 (de) | Schnittstelle zu einem Netzwerkverwaltungssystem eines Kommunikationsnetzes | |
EP1352348A1 (de) | Interaktive implementierung und zustandsdarstellung von betrieblichen planungsprozessen | |
EP1380908A2 (de) | System zur automatischen Konfiguration von Steuerungssoftware | |
EP1051016B1 (de) | Verfahren zum Auffinden einer Kontaktperson oder zum Verbindungsaufbau zu dieser Kontaktperson | |
DE10021550A1 (de) | Netzweite Endkundenadministration über Administrationstechnik des Betreibers | |
DE102019003696A1 (de) | Kontaktplananzeigesystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8127 | New person/name/address of the applicant |
Owner name: MITEL KNOWLEDGE CORP., KANATA, ONTARIO, CA |
|
8172 | Supplementary division/partition in: |
Ref document number: 19549810 Country of ref document: DE Kind code of ref document: P Ref document number: 19549809 Country of ref document: DE Kind code of ref document: P |
|
Q171 | Divided out to: |
Ref document number: 19549809 Country of ref document: DE Kind code of ref document: P Ref document number: 19549810 Country of ref document: DE Kind code of ref document: P |
|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: MITEL NETWORKS CORPORATION, OTTAWA, ONTARIO, CA |
|
R071 | Expiry of right |