DE19508940B4 - Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems - Google Patents

Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems Download PDF

Info

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
Application number
DE19508940A
Other languages
English (en)
Other versions
DE19508940A1 (de
Inventor
Deborah L. Kanata Pinard
Eliana M. O. Kanata Peres
Thomas A. Carp Gray
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitel Knowledge Corp
Original Assignee
Mitel Knowledge Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CA002119085A external-priority patent/CA2119085C/en
Application filed by Mitel Knowledge Corp filed Critical Mitel Knowledge Corp
Publication of DE19508940A1 publication Critical patent/DE19508940A1/de
Application granted granted Critical
Publication of DE19508940B4 publication Critical patent/DE19508940B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection 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

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...

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 und 3D eine Darstellung der Funktionen von Routinen eines Agenten;
  • 4A ein schematisches Blockdiagramm eines Ziellösungsmechanismus eines Agenten;
  • 4B4D verschiedene Prozesse zur Erzeugung neuer Agenten;
  • 5 einen Tafelprozeß des Systems;
  • 6A, 6B und 6C 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 Besitzeragent 2, welcher den Prozeß 1 beinhaltet, eine Aufgabe an eine Tafel (RAM) 3 stellt. Diese wird durch andere Besitzeragenten 4 als Bietanforderung interpretiert. Die Agenten 4 ü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äteagenten 12, Gruppenbenutzeragenten 14 usw.. Auf ähnliche Weise hat der Gruppenbenutzeragent Jurisdiktion über die Benutzeragenten 16 darunter, die Gruppengeräteagenten haben Jurisdiktion über die Geräteagenten 18 darunter usw.. Die Gruppenbenutzeragenten 14 haben Benutzerrechte über einen Teil der von dem Gruppengeräteagenten 1 (12) bereitgestellten Dienstleistungen. Der Benutzeragent 16 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äteagenten 2 (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 in 2A dargestellt. Der Agent wird in vier Teile kategorisiert: einen Informationsbereich 29, einen Einstellbereich 26, einen Aktionsbereich 28 und einen Resourcenbereich 30.
  • 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 Zielverzeichnis 30A zerlegt Ziele in ihre Konstituenten, wird auf den Einstellbereich 26 geschrieben und vom Aktionsbereich 28 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 Einstellbereich 26 geschrieben und von dem Aktionsbereich 28 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 Agenten 2 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ßagent 5 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 Ausgangsagenten 21. Der neue Prozeßagent verhandelt dann mit den existierenden Agenten 20 und 21 ü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 Agenten 25 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 Routinen 27 und Daten 29, welche alle im Speicher abgespeichert sind. Die Daten 29 werden im allgemeinen Informationsbereich genannt. Die in 3A dargestellten Routinen 27 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) Agenten 31 dargestellt, beispielsweise einem Überwachungsagenten, einem untergeordneten Agenten, einem anderen Agenten, der Benutzerrechte über den Agenten 25 hat, einem anderen Agenten, über welchen dieser Agent Benutzerrechte hat usw..
  • Die Funktion der verschiedenen Routinen sind unter Bezugnahme auf die 3B und 3C 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 Aufgabenerledigungsorgan 49 befriedigen. Darstellungen werden in einen Resourcenbrokerbereich 47 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, in 3A) 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 Informationsbereich 29 gespeichert und in Zielverzeichnissen 33 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 Verfahrenstabelle 35, welche, für ein gegebenes Verfahren, einen Zeiger zu einem Softwareprogramm 37 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 in 4B dargestellt ist, stellt er diese Anfrage an die Tafel 39. Der erfolgreiche Prozeßagent 39, welcher gewählt wird, um die Dienstleistung bereitzustellen, erzeugt ein neues Verfahren 41, welches auf den Agenten 38 geladen wird, weil dieser Benutzerrechte aufgebaut hat und nun den verschiedenen Komponenten des Verfahrens gewährt.
  • Falls, wie in 4C dargestellt, ein Gruppenagent 43 eine neue Instanz eines Geräteagenten erzeugen will, kann er über Jurisdiktion dem neuen Geräteagenten 45 die notwendigen Softwareprogramme 44 laden, um ein von dem neuen Geräteagenten kontrolliertes Gerät zu kontrollieren.
  • Falls, wie in 4D dargestellt, ein Gruppenbenutzeragent 47 Jurisdiktion über einen Benutzeragenten 48 ausübt, kann er diesen Agenten mit gruppenspezifischen Zielen 49 und Prozeduren 50 zur Erreichung dieser Ziele ausstatten für den Betrieb der Gruppe, über welche der Gruppenagent 47 Jurisdiktion ausübt.
  • Bei Auftreten eines signifikanten Ereignisses in einem Agenten übermittelt er dieses Ereignis an die Tafel 55, wie es in 5 dargestellt ist. Jeder Agent 57, der an einem bestimmten Ereignis interessiert ist, registriert diese Tatsache in einem Registrierungsbereich 59 der Tafel 55. Beim Auftreten eines Ereignisses wird die Tafel informiert und alle interessierten Agenten werden in einem Notifizierungsbereich 61 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 Rechnungsagent 57A und der Wartungsagent 57B die Ereignisse, an welchen sie interessiert sind in dem Registrierungsbereich 59 der Tafel. Wenn ein Ereignis auftritt und im „Ereignisaushang"-Bereich 60 der Tafel 55 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 Tafel 55 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 in 6C 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 Datenbank 103 ist in einem Prozessorsystem 105 enthalten, welches zur Kommunikation mit dem LAN 101 angeschlossen ist. Das Prozessorsystem 105 weist auch einen Konfigurationsagenten 106 auf.
  • Ein Computer 107 ist auch an das LAN angeschlossen. Der Computer wird zur Eingabe von Konfigurationsdaten zur Abspeicherung in der Datenbank 103 benutzt.
  • Verschiedene andere Prozessorsysteme wie sie mit den Bezugszahlen 109, 111 und 113 bezeichnet sind, sind auch zur Kommunikation über das LAN angeschlossen. Das Prozessorsystem 109 weist einen Gruppenagenten 115 und Benutzeragenten 117A, 117B...117N auf. Das Prozessorsystem 111 weist einen Gruppenagenten 119 und Telefonagenten 121A...121N sowie einen Gruppenagenten 123 und Innenleitungsagenten 125A...125N auf. Der Prozessor 113 weist einen Gruppenagenten 127 und Druckeragenten 129A...129N auf.
  • Der Prozessoragent 111 kommuniziert über verschiedene Innenleitungen 131 zu dem äußeren Kommunikationsnetzwerk 132 und mit verschiedenen Telefonen 133. Drucker 135 sind an das LAN angeschlossen, alternativ hierzu können sie jedoch unmittelbar über das Prozessorsystem 113 in Kommunikation mit Druckeragenten 129A129N 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 Datenbank 103 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 Datenbank 103 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 Gruppenagenten 115 als auch die Benutzeragenten 117A117N 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 Gruppenagenten 119 und 123 behandeln sowie die Telefonagenten 121A121N und Innenleitungsagenten 125. Der Gruppenagent 119 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 Gruppenagenten 123 senden, um Zugang zu einer Innenleitung zu erhalten. Der Gruppenagent 123 sendet dann ein Ziel zu dem Innenleitungsagenten 125, 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 Gruppenagenten 127 und der Druckeragenten 129A129N. Ein Benutzeragent 117A117N kann unter Verwendung eines gesetzten Ziels verhandeln, indem er eine Nachricht an den Gruppenagenten 127 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 Telefonschnittstelle 127. 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 Prozessorsystem 105 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 Prozessorsystem 109 bestimmte Nachricht zu formulieren und sie auf das LAN 101 zu geben. Der Gruppenagent 115 erhält die Nachricht als Ziel zur Zuweisung eines Benutzeragenten 117A117N.
  • Benutzeragenten 117A117N können bieten, um ein Ziel zu erreichen, und zwar beispielsweise unter Verwendung eines Tafelprozesses, oder ein Benutzeragent kann unmittelbar durch den Gruppenagenten 115 zugeordnet werden. In jedem Fall wird ein Benutzeragent durch den Gruppenagenten 115 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 LAN 101. Der Gruppenagent 119 empfängt die Nachricht und sendet ein Ziel zu einem Wähltongenerator-Geräteagenten 135, der einem anderen Prozessorsystem 137 zugeordnet ist, das über das LAN 101 über den Gruppenagenten 138 in Verbindung steht. Der Geräteagent 135 empfängt das Ziel und ermöglicht es einem Wähltongenerator 139, den er kontrolliert, einen digitalen Wählton über das LAN 101 den Telefonagenten 121 zuzuführen, welcher dem abgenommenen Telefon zugeordnet ist. Der Telefonagent sendet diese über die dedizierte Telefonleitungsschnittstelle, von welcher er das Abnehmesignal detektierte, zu dem Telefon 133.
  • Der Benutzeragent sendet, zur gleichen Zeit wie er ein Ziel zum Wähltongenerator-Geräteagenten 135 sendet, auch ein Ziel zu einem (digitalen mehrfrequenzigen) Detektoragenten 141, der einen Wähltondetektor 143, der dem Wählsignalagenten 141 zugeordnet ist, zum Zwecke der Detektion digitaler Wählsignale an das LAN 101 anschließt. Wenn ein Benutzer an dem abgenommenen Telefonapparat wählt, werden analoge MF-Signale aus dem Telefon von der Telefonschnittstelle 127 empfangen und in Digitalsignale umgesetzt, worauf sie unter Kontrolle des zugeordneten Telefonagenten über das LAN als Nachrichten zu dem MF-Wähltondetektor 143 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 Gruppenagenten 138 und das LAN 101 ein Ziel an den Gruppenagenten 123, welcher den Innenleitungsagenten 125 zugeordnet ist, wodurch eine Innenleitung angefordert wird. Der Gruppenagent 123 erhält, beispielsweise unter Einsatz einer Tafel Gebotstechnik, die Dienstleistungen eines Innenleitungsagenten 125 und übermittelt das Ziel an diesen Innenleitungsagenten. Der Innenleitungsagent hat eine dedizierte Innenleitungsschnittstelle 145, die er kontrolliert und beaufschlagt, wodurch die Innenleitung beaufschlagt wird. Der Innenleitungsagent sendet dann über das LAN 101 eine Nachricht an den MF-Detektionsagenten 141 in der er mitteilt, daß die Innenleitung beaufschlagt wurde. Dies wird von dem MF-Detektionsagenten 141 als Ziel betrachtet und führt dazu, daß dieser die Wählziffern zur Übertragung über die Innenleitung den Innenleitungsagenten 125 zuführt.
  • Eine weitere Nachricht wird von dem Innenleitungsagenten 125 dem Konfigurationsagenten 106 übermittelt, wobei dieser über die Beaufschlagung der Innenleitung informiert wird und der Konfigurationsagent sendet, nach Empfang einer Nachricht von dem Telefonagenten 121A ü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.
  • Figure 00310001
  • Figure 00320001
  • 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 200210 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 und 201 indiziert ist. Nach Ausführung der Instruktion 201 werden zwei parallele Aktionsketten benötigt, was durch die Anfangsinstruktionen 202 und 203 jeder parallelen Kette dargestellt ist. Die Aufspaltung erfolgt durch die Kontrollinstruktion 210 (SPLIT), welche die beiden zur Initialisierung der Aktionen 202 und 203 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 und 203 gesendet werden. Dieser gegenwärtige PC wird von dem gerufenen Agenten oder der Aktion als Rückgabewert benutzt. Der bei der Aktion 202 gerufene Agent führt seine Bestätigung also der mit der Bezugszahl 202 bezeichneten Instruktion zurück. Auf gleiche Weise führt der in der Aktion 203 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)

  1. 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.
  2. 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.
  3. 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.
DE19508940A 1994-03-15 1995-03-13 Verfahren zum Betrieb eines computergesteuerten Kommunikationssystems Expired - Lifetime DE19508940B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5969014A (en) * 1997-09-23 1999-10-19 Clariant Finance (Bvi) Limited Synergistic polyamide stabilization method

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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