-
Die
vorliegende Erfindung bezieht sich allgemein auf IP-Telefonie (Internet
Protocol) und insbesondere auf ein Verfahren und eine Vorrichtung
zum Implementieren von personalisierbaren und individualisierbaren Leistungsmerkmalen
unter Verwendung von Operationssemantik und deontischen Task-Bäumen.
-
Ein
wichtiges Merkmal der derzeit in Erscheinung tretenden IP-Telefoniesysteme
ist die Möglichkeit, Leistungsmerkmale
für die
Bedürfnisse
von Einzelpersonen zu personalisieren und Systeme für die spezifischen
Anforderungen eines Unternehmens zu individualisieren. Anstelle
eines monolithischen öffentlichen Netzwerks
nach dem Stand der Technik, das einer Massenbasis von Kunden Standarddienste
bereitstellt, basiert die IP-Telefonie auf dem Zusammenwirken einer
großen
Anzahl von unabhängigen
Netzwerken. Dabei kann jedes dieser Netzwerke über seine eigene Definition
von Leistungsmerkmalen verfügen.
-
Innerhalb
eines Unternehmens wird die derzeit in Erscheinung tretende IP-Telefonie
jeden Benutzer in die Lage versetzen, Leistungsmerkmale für die Anrufabwicklung
zu spezifizieren, die für
die konkreten Bedürfnisse
des Benutzers maßgeschneidert
sind. Demzufolge werden derartige Systeme in der Praxis in einem
hohen Maße
individualisiert und personalisiert sein, um den Kundenanforderungen
gerecht zu werden. Die Fähigkeit
zur Komposition neuer Leistungsmerkmale zusätzlich zu den vorhandenen Leistungsmerkmalen
führt jedoch
auf dem Fachgebiet zu einer Notwendigkeit, die Wechselwirkungen
zwischen den Leistungsmerkmalen zur Laufzeit aufzulösen.
-
Herkömmliche
Modelle der Anrufverarbeitung lassen sich in zwei unterschiedliche
Kategorien aufteilen. Das ältere
Modell arbeitet mit einer zentralisierten Anrufverarbeitung, bei
der ein Anruf als eine einzelne Entität an einer einzigen Stelle
erzeugt wird. Bei solchen Systemen nach dem Stand der Technik bedeutet „besetzt", dass bei einem
Telefonapparat der Hörer
abgehoben wurde, weshalb die Telefonvermittlungsstelle nicht mit
dem Apparat kommunizieren kann.
-
Im
neueren Modell IN (Intelligent Network) SS7 (Signaling System 7)
resultiert der Anruf aus der Kooperation zwischen zwei getrennten
Entitäten
(Call Halves – Anrufhälften),
die mithilfe von Meldungsweitergabe und Verhandlung über ein
digitales Backbone unter Verwendung des ISUP-Protokolls miteinander
kooperieren. Die Leistungsmerkmal-Logik ist dabei in Stellen zentralisiert,
die als SCPs (Service Control Points – Dienststeuerungspunkte) bezeichnet
werden. Leistungsmerkmale, die in den lokalen Stellen (SSPs oder
Service Signaling Points – Dienstsignalisierungspunkten)
operieren, können
in ihrem Code über
Auslösepunkte zum
Referenzieren der Operation an einen SCP verfügen, um das richtige Verhalten
zu erhalten.
-
Das
verteilte Anrufhälftenmodell
ermöglicht
eine physische Verteilung der Anrufverarbeitung. Mit dem so genannten
Call State Sharing wurden die Annahmen nach dem bisherigen Stand
der Technik im Hinblick auf „besetzt" modifiziert, wodurch
Leistungsmerkmale wie „Anklopfen" und „Anrufwarten" ermöglicht wurden. Ein
Anrufprozess, der getrennt ist von der Ausrüstung, die zur Herstellung
der Anrufverbindung verwendet wird, hat es ermöglich, mit dem Benutzer während eines
bestehenden Anrufs zu kommunizieren und einen Benutzer über eine
Anrufwarteschlange zu benachrichtigen, die um seine Aufmerksamkeit
ersucht. Infolgedessen erhielten die Systementwickler durch die
erweiterte Fähigkeit
solcher Systeme zur Kommunikation mit dem Benutzergerät zusätzliche
Möglichkeiten
zum Erstellen nützlicher
Benutzerleistungsmerkmale.
-
Die
oben erwähnten
Anrufverarbeitungsmodelle nach dem bisherigen Stand der Technik
haben das gemeinsame Merkmal einer zentralisierten Definition von
Leistungsmerkmalen. Und tatsächlich
wurde dies bei der Instanziierung des Intelligent Network (IN) auch
als ein Hauptvorteil des verteilten Modells angesehen (d. h. neue
Leistungsmerkmale können
im IN zentral definiert und bereitgestellt werden). Das gewährleistet
eine kurze Markteinführungszeit
neuer Leistungsmerkmale und die Stabilität im Netzwerk, da die Leistungsmerkmale
nur ein einziges Mal entwickelt werden müssen, um dann auf den Vermittlungssystemen
eingesetzt werden zu können,
die von einem beliebigen Hersteller erworben werden. Die Netzwerkstabilität wird noch
weiter dadurch sichergestellt, dass die Leistungsmerkmale durch
Teams erfahrener Entwickler entwickelt werden, die darauf achten,
dass es nicht zu Fehlern infolge der Wechselwirkung zwischen mehreren
Leistungsmerkmalen kommt.
-
Die
oben beschriebenen Vorteile der zentralisierten Definition und Ausführung von
Leistungsmerkmalen werden jedoch wieder aufgehoben durch Schwierigkeiten,
ausreichende Benutzerkontextinformationen zur zentralen Leistungsmerkmal-Ausführungsstelle
zu übertragen.
Die nützlichsten
Leistungsmerkmale sind jedoch solche, die den aktuellen Benutzerkontext
kennen und speziell auf diesen ausgerichtet sind. IN-Dienste haben
deshalb große
Schwierigkeiten mit individualisierten und personalisierten Diensten.
Das führte
dazu, dass das IN und sein Nachfolger, das AIN (Advanced Intelligent
Network) nicht in der Lage waren, das zu erreichen, was von ihren
ursprünglichen
Befürwortern
erhofft wurde.
-
Das
Internet hat einen Schwerpunkt auf eine Reihe von nichtfunktionalen
Anforderungen gelenkt, die mithilfe der oben beschriebenen vorhandenen
Modelle der Anrufverarbeitung nur mit Schwierigkeiten erfüllt werden
konnten. Zentralisierte Definitionen von Leistungsmerkmalen machen
es schwierig, im öffentlichen Netzwerk
individualisierte Dienste zu erstellen, die für bestimmte Unternehmen maßgeschneidert
sind, und Dienste zu erstellen, die für die Bedürfnisse spezieller Benutzer
in Unternehmensnetzwerken personalisiert sind, die für Internetanwendungen
dagegen charakteristisch sind.
-
Beispielsweise
wurden durch die IETF die Protokolle SIP und CPL entwickelt, um
eine benutzerdefinierte Anrufabwicklung zu ermöglichen (siehe Sinnreich, H;
Johnson, A. B., Internet Communication Using SIP, Wiley, 2001, Seiten
104–108,
und The Internet Draft von Schulzrinne, N.; Rosenberg, J.; SIP Caller
Preferences and Callee Capabilities, draft-ietf-sip-callerprefs-05.txt,
verfügbar
unter http://www.softarmor.com/sipwg/drafts/draft-ietf-sip-callerprefs-05.txt.
Bei diesen Modellen wird die Anrufdisposition nicht durch eine zentralisierte
Gruppe von Standardleistungsmerkmalen gesteuert, die von erfahrenen
Entwicklern in einer Laborumgebung entwickelt wurden. Stattdessen
spezifiziert dabei der Benutzer eine Gruppe persönlicher Leistungsmerkmale,
die so maßgeschneidert
werden können,
dass sie den Bedürfnissen
der Benutzeraktivitäten
innerhalb einer Unternehmensumgebung weitgehend entsprechen. Diese
persönlichen
Leistungsmerkmale können sich
nach der Identität
der Mitarbeiter des Benutzers richten, nach dem Charakter der gerade
erledigten Arbeit, nach dem Kalender des Benutzers usw.
-
In
SIP kann ein Benutzer verschiedene Kontaktadressen beim Proxyserver
registrieren, der ihn bedient. Der Benutzer kann in der SIP INVITE-Nachricht
die Verbindungstypen spezifizieren, die er akzeptiert. Insbesondere
spezifiziert der Benutzer in den Headern ACCEPT-CONTACT und REJECT-CONTACT
die Merkmale des Endpunkts (bzw. Benutzer-Agents), den der Benutzer
vorzugsweise entweder akzeptiert oder ablehnt. Diese Header können spezifische
Endpunkte hinsichtlich ihrer URLs als für die Akzeptanz oder für die Ablehnung
bevorzugt spezifizieren.
-
Die
Möglichkeit
zur Identifizierung spezifischer Endpunkte, die für die Akzeptanz
oder für
die Ablehnung bevorzugt sind, bietet eine neue Ebene von Leistungsmerkmalen,
die durch SIP ermöglicht
werden. Die Anruferpräferenzen
in SIP können
Merkmale des physischen Geräts
am Endpunkt spezifizieren, was eine leicht verständliche Anwendung dieses Protokolls
auf die herkömmliche
Telefonie ermöglicht.
-
Es
gibt jedoch in den Entwürfen
zu SIP keine adäquate
Erklärung
dazu, wie Konflikte zwischen der angerufenen Seite und den Anruferpräferenzen
identifiziert und aufgelöst
werden können.
Die CPL-Spezifikation [Lennox, J; Schulzrinne, H.; Call Processing
Language Framework and Requirements, IETF RFC2824, http://www.ietf.org/internet-drafts/draft-ietf-iptel-cpl-06.txt]
erwähnt,
dass bestimmte Anruferpräferenzen
beim Treffen einer Entscheidung ignoriert werden können. Allerdings
wird nicht darauf verwiesen, ob eine solche Möglichkeit akzeptabel oder gar
nützlich
ist.
-
Kurz
gesagt: Die momentan spezifizierten SIP-Anrufabwicklungsprozeduren
sind inadäquat
für die
Anrufabwicklung in realistischen Anrufverarbeitungssituationen.
-
Die
nach dem Stand der Technik bekannten Verfahren zur Spezifizierung
von Leistungsmerkmalen waren gänzlich
präskriptiv.
Siehe beispielsweise die Beschreibung von Chisel in Griffeth, N
et al; Feature Interaction Detection Contest Appendix C. Feature
Definitions, Feature Interactions in Telecommunications and Software
Systems V; Kimbler, K., Bouma L. G., Editoren; IOS Press 1998. In
einem solchen System nach dem Stand der Technik werden zwar flexible
Leistungsmerkmal-Operationen spezifiziert, aber es gibt keinen Hinweis
darauf, wie Wechselwirkungen zwischen Leistungsmerkmalen aufgelöst werden
sollen. Insbesondere werden von Chisel nicht diejenigen Leistungsmerkmal-Operationen
spezifiziert, die im Fall eines Fehlschlagens sicher weggelassen
werden können,
ohne dass damit das Hauptziel des gesamten Leistungsmerkmals vereitelt
wird. Das führt
zu Schwierigkeiten bei der Laufzeitauflösung von Leistungsmerkmalen.
Ein System kann nicht wissen, dass es die Ausführung einer Operation sicher
vermeiden kann, wenn diese Operation gegen die Absicht eines anderen
Leistungsmerkmals oder gegen eine andere Einschränkung des Unternehmens verstößt.
-
Damit
stellt der Stand der Technik keine effektive Architektur für die Handhabung
von Benutzerpräferenzen
bei der Ausführung
von Leistungsmerkmalen und speziell für die Handhabung von Konflikten
zwischen Präferenzen
bereit. Infolgedessen wurden Zweifel hinsichtlich der Skalierbarkeit
und Weiterentwicklungsmöglichkeit
solcher Protokolle zu Systemen mit realistischer Größe unter
Verwendung von Internet-Technologie
geäußert.
-
Eine
Anmeldung nach dem Stand der Technik zu deontischen Verfahren im
Zusammenhang mit dem Problem von Telefonie-Leistungsmerkmalen in
Beziehung zu OPI-Systemen (Obligation, Permission, Interdiction)
ist dargelegt in Barbuceanu, M., Mankovskii, S., Gray, T.; Coordinating
with Obligations; Proceedings of the 2nd International Conference
on Autonomous Agents (Agents'98),
das verfügbar
ist unter http://citeseer.ni.nec.com/barbuceanu98coordinating.html.
-
Es
gibt jedoch einige Nachteile in der Vorgehensweise von Barbuceanu
et al, die für
die praktische Verwendung ausgeräumt
werden müssen.
Beispielsweise ist die Verwendung der Truth Maintenance für die Weitergabe
von empfangenen Einschränkungen
in OPI eine sehr komplexe und zeitaufwändige Aufgabe. Es ist unpraktisch,
die Truth Maintenance für
die Laufzeitauflösung
von Leistungsmerkmal-Konflikten
zu verwenden. An erster Stelle unter den Schwierigkeiten bei der Verwendung
von OPI steht die Tatsache, dass ein Truth Maintenance-System beim
Empfang einer neuen Einschränkung
in der Lage ist, Aktionen als verboten zu identifizieren, die bereits
stattgefunden haben. Wie ein solches System beispielsweise auf „Klingel
stummschalten" oder
auf das Zurückziehen
eines an einen Benutzer gesendeten Alarmierungssignals bei der Laufzeitauflösung reagieren
würde,
ist nicht klar. Tatsächlich
wird beim sorgfältigen
Lesen der Veröffentlichung
zum Stand der Technik von Barbuceanu et al deutlich, dass OPI zur
Vorausplanung von Leistungsmerkmalen vorgesehen ist und nicht zur
Laufzeitoperation.
-
Da
OPI zur Vorausplanung oder Offline-Definition von Leistungsmerkmalen
vorgesehen ist, gibt es darin keinen Bedarf zur Spezifizierung von
Beobachtern von Zuständen
der realen Welt. Es muss das Problem des Reagierens auf Änderungen
der Umgebung gar nicht erst angehen.
-
Die
ursprüngliche
OPI-Struktur hat Schwierigkeiten mit der Komposition von Leistungsmerkmalen
(d. h. mit der Aufgabe des Hinzufügens eines neuen Leistungsmerkmals
zu einem bereits vorhandenen Satz). Das ursprüngliche OPI geht von der Konsistenz
eines gegebenen Satzes von Leistungsmerkmalen aus, die auf den Werten
der deontischen Modalitäten
basieren, die jeden Knoten bestimmen. Das bedeutet, dass der Baum
eigenständig
dasteht und nicht mit irgendeiner anderen Gruppe von Leistungsmerkmalen
kommuniziert. Er verfügt über keine
Möglichkeit
zur Koordinierung seines Verhaltens mit anderen Gruppen von Leistungsmerkmalen.
Keines der veröffentlichten
OPI-Konzepte gibt keinen Einblick darüber, wo ein neues oder zusätzliches
Leistungsmerkmal zu einem vorhandenen Baum hinzugefügt werden
kann.
-
Wie
oben erwähnt
wurde, geht es beim ursprünglichen
OPI nicht um die Laufzeitoperation. Es ist primär ein Planungshilfsmittel.
Für die
Laufzeitoperation müssen
die Bäume
in der Lage sein, auf Ereignisse (Assertions und Zustandsänderungen
in der realen Welt) zu reagieren, um das Verhalten der Leistungsmerkmale anzupassen.
Ein Leistungsmerkmal muss deshalb über die Fähigkeit verfügen zu erkennen,
dass die von ihm verfolgte Absicht eventuell nicht möglich ist,
und als Reaktion sein Verhalten intelligent ändern können.
-
WO94/27411
offenbart ein System, bei dem die Kommunikation zwischen Entitäten wie
beispielsweise Ausrüstung
am Kundenstandort in einem Telekommunikationsnetzwerk durch die
Verwendung von Agents eingerichtet wird, die jeweils eine Entität repräsentieren.
Die Agents, die die entsprechenden Entitäten in dem Telekommunikationsnetzwerk
repräsentieren,
verhandeln über
den Typ der Kommunikationssitzungen, in die die entsprechenden Entitäten einbezogen
werden wollen. Der Verhandlungsprozess schließt den Austausch von Vorschlägen durch
die Agents ein. Ein Agent generiert einen Vorschlag, der für ihn akzeptabel
ist, und überträgt den Vorschlag
zu einem anderen Agent. Der empfangende Agent ermittelt, ob der
empfangene Vorschlag für
ihn akzeptabel ist, und wenn das nicht der Fall ist, dann generiert
er einen Gegenvorschlag. Der Prozess wird fortgesetzt, bis ein Vorschlag,
der für
beide Agents akzeptabel ist, gefunden wird oder bis festgestellt
wird, dass es keinen Vorschlag für
die Realisierung des speziellen Typs der Kommunikationssitzung gibt,
der für
beide Agents akzeptabel ist. Ein Agent ermittelt, ob ein Vorschlag
für ihn
akzeptabel ist, indem eine Zielhierarchie verwendet wird. Die Zielhierarchie
gibt an, ob bestimmte Aktionen für
die Erreichung eines Ziels akzeptabel sind oder nicht. Die Verwendung
der Zielhierarchie gestattet es einem Agent, die Ziele eines anderen
Agents zu erschließen
und alternative Aktionen zu finden, mit denen dieses Ziel erreicht
werden kann. Der Verhandlungsprozess ermöglicht es den Agents, eine Übereinkunft
zu erzielen, ohne dass eine Modifizierung ihrer Ziele oder die Offenlegung
eingeschränkter
Informationen gegenüber
anderen Agents erforderlich ist.
-
Die
vorliegende Erfindung stellt ein Kommunikationssystem zum Implementieren
von personalisierbaren und individualisierbaren Leistungsmerkmalen
bereit, umfassend: einen Tupelspace; und eine Vielzahl von Benutzer-Agents,
welche die besagten Leistungsmerkmale repräsentieren, wobei die besagten
Benutzer-Agents über
Mittel zum Kommunizieren miteinander über Assertions verfügen, die
im besagten Tupelspace postiert werden, sowie über Mittel zum Implementieren
der besagten Leistungsmerkmale bei gleichzeitiger Vermeidung von
Leistungsmerkmal-Wechselwirkungen, dadurch gekennzeichnet, dass
jedes der besagten Leistungsmerkmale als ein Satz deontischer Task-Bäume strukturiert
ist, die verfügen über einen übergeordneten
Knoten mit einer obligatorischen inhärenten Aktion und über eine
Vielzahl von untergeordneten Knoten mit jeweiligen Knotenaktionen,
die so eingerichtet sind, dass sie gemäß einer vorgegebenen Sequenz
ausgeführt
werden, und so eingerichtet sind, dass sie ihre Ergebnisse an den
besagten übergeordneten
Knoten zurückmelden,
wobei der besagte übergeordnete
Knoten so eingerichtet ist, dass er deontische Modalitäten zum
Verhalten der besagten untergeordneten Knoten platziert, sodass
eine erfolgreiche Implementierung des besagten Leistungsmerkmals
aus dem erfolgreichen Auftreten der besagten inhärenten Aktionen und aus dem zusammengesetzten
Erfolg der Knotenaktionen der besagten untergeordneten Knoten resultiert.
-
Die
vorliegende Erfindung baut auf Konzepten der ursprünglichen
Arbeit von Barbuceanu et al zu OPI auf. Insbesondere die Verwendung
deontischer Modalitäten
und das Konzept von Bäumen
werden verwendet, um Beziehungen zwischen Telefonie-Leistungsmerkmalen
zu definieren (gemäß der vorliegenden
Erfindung gelten Bäume
als Spezifikation der Leistungsmerkmal-Ausführung). Allerdings werden gemäß der vorliegenden
Erfindung neue Elemente hinzugefügt
und eine neue Semantik dargelegt, die die Grundlagen des OPI-Konzepts
nach dem Stand der Technik vollständig verändern. Im Ergebnis dessen wurde
das OPI nach dem Stand der Technik von einem Planungssystem für einen
monolithischen vordefinierten Satz von Leistungsmerkmalen zu einem
Semantiksatz modifiziert, der für
die Laufzeitausführung
dynamisch gebildeter Leistungsmerkmale optimiert ist, die sich an
externe Ereignisse anpassen.
-
Das
ursprüngliche
OPI war eine abstrakte Planungsspezifikation, die keine Verbindung
zur Umgebung hatte, in der ein System operiert. Die Ausführungsinterpretation
gemäß der vorliegenden
Erfindung bietet zusätzliche
Möglichkeiten,
so dass ein Leistungsmerkmal Assertions aufstellen kann, die entweder
direkt Hardware in der Umgebung steuern oder als Kommunikationselemente
mit anderen Leistungsmerkmalen agieren. Desgleichen bietet die vorliegende
Erfindung die Fähigkeit
zum Überwachen
der Umgebung auf Assertions von anderen Leistungsmerkmalen.
-
Beim
ursprünglichen
OPI ging es nur um die Beschreibung der Operationen, die ein Leistungsmerkmal ausmachten.
Gemäß der vorliegenden
Erfindung wurde ein neuer Knotentyp hinzugefügt, der die Systemumgebung
auf Zustandsänderungen
in der Welt der Assertions überwacht.
Das Hinzufügen
von Modalitäten
zu diesen Beobachtern bietet einen einzigartigen Vorteil für die Erkennung
(d. h. zum Entwicklungs- oder Spezifizierungszeitpunkt) und für die Auflösung (d.
h. zur Laufzeit) von Wechselwirkungen zwischen Leistungsmerkmalen.
-
Im
Rahmen der Ausführung überwacht
jeder Knoten den Erfolg seiner eigenen Operation. Die deontischen
Modalitäten
geben dem System die Möglichkeit,
wesentliche und optionale Operationen in einer Leistungsmerkmal-Spezifikation
zu bestimmen. Während
der Ausführung
ermöglicht
dies dem System, das Leistungsmerkmal-Verhalten zu verhandeln, und
schafft auch die Möglichkeit
zu ermitteln, ob ein bestimmtes Leistungsmerkmal sein primäres Ziel
erreicht hat. Diese Möglichkeit
ist bei vorhandenen Systemen zur Spezifizierung von Leistungsmerkmalen
(z. B. bei dem von Chisel beschriebenen System) nicht vorhanden,
was deren Möglichkeit
vermindert, Leistungsmerkmale unter Berücksichtigung erforderlicher
Wechselwirkungen zu spezifizieren. Die Überwachung der Baumknoten erleichtert
außerdem
erheblich die Entwicklung von Systemen zur Erkennung und Auflösung von
Laufzeitwechselwirkungen, indem eine realisierbare Möglichkeit
zur Durchführung
von Verhandlungen bereitgestellt wird.
-
Modalitäten werden
auf jeden Knoten angewendet. Einige Knoten spezifizieren die Wechselwirkung mit
anderen Leistungsmerkmalen (z. B. wie das Leistungsmerkmal auf die
Aktionen anderer Leistungsmerkmale reagieren soll). Wenn einer Aktion,
die von einem anderen Knoten angefordert wurde, die Modalität „Obligatorisch" gegeben wurde und
nicht ausgeführt
werden kann, dann gilt das aktuelle Leistungsmerkmal als fehlgeschlagen,
und es werden Bereinigungsmaßnahmen
eingeleitet. In gleicher Weise wird das Leistungsmerkmal als fehlgeschlagen
angesehen, wenn eine „Verboten"-Beobachtung erfolgt,
und es werden Bereinigungsmaßnahmen
eingeleitet.
-
Allerdings
hat die Modalität „Erlaubt" überraschende und unerwartete
Ergebnisse. Vielen der bisherigen Spezifizierungsverfahren mangelt
es daran, dass es mit ihnen schwierig ist, eine große Anzahl
von unerwünschten
Leistungsmerkmal-Wechselwirkungen zu erstellen, die von Standardverfahren
erkannt werden müssen.
Damit werden die Vorteile dieser Verfahren stark eingeschränkt, da
der Entwickler oft mit einer großen Anzahl von falschen Wechselwirkungen
konfrontiert ist, die die Erkennung signifikant unerwünschter
Wechselwirkungen überdecken
können.
Mit der Modalität „Erlaubt" der vorliegenden
Erfindung werden Knoten angegeben, deren Erfolg oder Fehlschlagen
keine Auswirkung auf den Gesamterfolg des Leistungsmerkmals hat. Dabei
handelt es sich um Knoten, die optionales Verhalten erzeugen, das
wohl erwünscht
sein kann, jedoch nicht für
die stabile Operation und das erfolgreiche Erreichen des Benutzerziels
notwendig ist. Diese erfindungsgemäße Eigenschaft der Modalität „Erlaubt" eliminiert einen
Großteil
der unerwünschten
Wechselwirkungen, die sich bei den bisherigen Verfahren so negativ
auswirkten, wodurch die Erkennung der Leistungsmerkmal-Wechselwirkungen
für Entwickler
von realen Situationen erheblich mehr Nutzen bringt.
-
Diese
oben erwähnten
Eigenschaften der Modalitäten
operieren zur Laufzeit und geben an, wie ein Leistungsmerkmal auf
die Aktionen der kooperierenden Leistungsmerkmale reagieren soll.
Dies macht die Auflösung
der Leistungsmerkmal-Wechselwirkung
zur Laufzeit erheblich leichter, als das beim Stand der Technik möglich war.
Hier ist wiederum die Modalität „Erlaubt" von Bedeutung, da
sie die Fortsetzung der Operation von Leistungsmerkmalen ermöglicht,
obwohl andere Leistungsmerkmale fehlgeschlagen sind oder trotz der Auswirkungen
von Unternehmenseinschränkungen,
wenn die fehlgeschlagene oder verbotene Aktion für das Gesamtziel des Leistungsmerkmal
nicht wesentlich ist.
-
Die
Möglichkeit
des erfindungsgemäßen Systems
zur Spezifizierung von Leistungsmerkmalen mit deontischen Modalitäten gibt
dem Entwickler und dem System die Möglichkeit, den Zustand des
Erfolgs eines Leistungsmerkmals zu spezifizieren und zu ermitteln.
Damit kann ein Leistungsmerkmal ermitteln, ob eine vorgeschlagene
Einschränkung
auf die Operation eines Leistungsmerkmals sicher akzeptiert werden
kann oder nicht.
-
Im
Allgemeinen wird gemäß der vorliegenden
Erfindung ein System für
die Laufzeitauflösung
von Leistungsmerkmalen bereitgestellt. Dies ist in der IP-Telefonie
sehr notwendig, da die Parteien über
unabhängige Leistungsmerkmal-Definitionen
verfügen
und für
gewöhnlich
lediglich für
die Dauer eines Anrufs miteinander verbunden sind. Es gibt keine
Möglichkeit
zur Vorausplanung von Leistungsmerkmal-Wechselwirkungen zwischen Parteien,
die nicht im Zusammenhang miteinander stehen. Wie oben erläutert wurde,
ist OPI in seiner ursprünglichen
Beschreibung für
diese Aufgabe ungeeignet.
-
Das
System gemäß der vorliegenden
Erfindung bezieht sich deshalb auf die Laufzeitausführung von Leistungsmerkmalen
sowie auf deren Spezifikation und setzt damit die Möglichkeit
voraus, Ereignisse der realen Welt zu erkennen und auf diese zu
reagieren. Aus diesem Grund stellt das System Beobachter bereit.
-
Gemäß der vorliegenden
Erfindung wird eine neue Funktionalität bereitgestellt, indem die
Bäume,
die die Leistungsmerkmale spezifizieren und ausführen, miteinander kommunizieren,
wozu Assertions an die Umgebung und die Möglichkeiten zur Überwachung
der Umgebung auf Assertions und Veränderungen in der realen Welt
verwendet werden. Die Komposition von Leistungsmerkmalen kann durch
diese Kommunikation zur Laufzeit erfolgen, da Leistungsmerkmale
andere potenzielle Leistungsmerkmale über beabsichtigte Aktionen informieren
und vor der Fortsetzung auf Ratschläge oder Erlaubnisse warten
können.
-
Das
in der vorliegenden Erfindung verwendete Assertion-Verfahren ist
dargelegt in der gemeinsam zugewiesenen UK Patentanmeldung Nr. 9920051.1,
eingereicht am 24. August 1999, mit dem Titel Processing by use
of Synchronized Tuple Spaces and Assertions, die als GB2353612 veröffentlicht
wurde. Die Verwendung dieses Assertion-Verfahrens ermöglicht die
abstakte Spezifizierung von Leistungsmerkmalen, indem die Assertions
in der Anrufverarbeitung identifiziert werden, die für ihre Operation
von Interesse sind. Das ermöglicht
es einem Leistungsmerkmal auch, seine Operation mit vorhandenen
Leistungsmerkmalen zur Laufzeit zu koordinieren, indem Assertions
ausgegeben und überwacht
werden. Die vorliegende Erfindung stellt einen Mechanismus zur Spezifizierung
und Regelung der in GB2353612 identifizierten Koordination bereit.
-
Die
vorliegende Erfindung ist insbesondere hilfreich, um die benötigte Koordinierung
für Menschen verständlich zu
machen. Die Erfahrung der Erfinder hat gezeigt, dass Software-Entwickler
mit normalen Fähigkeiten
die notwendige Kooperation zwischen den in GB2353612 beschriebenen
Einzelrichtlinien zum Vorbedingungstyp nicht visualisieren können. Die
Bäume der
vorliegenden Erfindung bieten Benutzern einen Mechanismus zur Beschreibung
detaillierter Verbindungen zwischen Richtlinien.
-
Kurze Beschreibung
der Zeichnungen
-
Es
folgt eine ausführliche
Beschreibung der vorliegenden Erfindung unter Bezug auf die folgenden Zeichnungen,
die folgende Bedeutung haben:
-
1 ist
ein Blockdiagramm eines Systems zur Bereitstellung der Kommunikation
zwischen einer Vielzahl von Agents gemäß der vorliegenden Erfindung;
-
2 ist
ein Baumdiagramm mit einer Darstellung, die für Menschen verständlich ist;
-
3 stellt
die Indikatoren dar, die für
jeden der Operatoren im System gemäß der vorliegenden Erfindung
verwendet werden;
-
4 ist
ein Diagramm eines exemplarischen Leistungsmerkmal-Baums, das zur
Erklärung
der Baum-Operation hilfreich ist; und
-
5 ist
ein Baumdiagramm, das die Leistungsmerkmal-Kooperation sowohl zwischen
den Benutzer-Agents als auch innerhalb dieser gemäß einer
exemplarischen Implementierung der vorliegenden Erfindung zeigt.
-
Beschreibung
der bevorzugten Ausführungsformen
-
Es
gibt einige grundlegende Konzepte, die für das Verständnis der Operationsprinzipien
des erfindungsgemäßen Systems
unerlässlich
sind. Dazu zählen
die Konzepte von Knoten und Bäumen,
Knotenaktion, Operatoren und inhärenten
Aktionen von Knoten sowie deontischen Modalitäten.
-
Die
Operationen von Leistungsmerkmalen im System gemäß der vorliegenden Erfindung
werden hier anhand des Verhaltens von Knoten beschrieben, die in
einer Baumstruktur angeordnet sind. Die Ausführung der Bäume erfolgt tiefenorientiert
(„depth
first") von links
nach rechts. Jeder Knoten führt
eine Aktion aus oder führt
eine Beobachtung durch und meldet das Auftreten oder Nichtauftreten
der Aktion oder Beobachtung an seinen übergeordneten Knoten (was selbstverständlich nicht
für den
obersten Knoten gilt). Die Operation der untergeordneten Knoten
wird durch ihren übergeordneten
Knoten initiiert, und zwar in Form eines Satzes von Operatoren,
die diese Sequenzierung definieren.
-
Wie
oben angedeutet wurde, handelt es sich bei den Knoten um Elemente,
die im System gemäß der vorliegenden
Erfindungen Aktionen ausführen
und Beobachtungen durchführen.
Diese Operationen werden hier im Folgenden zusammengefasst mit dem
Begriff „Knotenaktion" bezeichnet. Es gibt
vier grundlegende Aktionen, die ein Knoten ausführen kann. Diese sind:
- – ASK – Knoten
koordinieren ihre Aktivität
mit der von anderen Bäumen.
Tatsächlich
kann ein Leistungsmerkmal-Baum seine Aktionen infolge von Ratschlägen modulieren,
die von anderen Agents gegeben werden. Mit diesem Operator platziert
der Knoten eine Assertion in einem Tupelspace, die seine Absicht
zur Ausführung
einer Aktion (z. B. um Erlaubnis bitten) angibt. Um die Erlaubnis
zu erhalten, kann der Knoten eine bestimmte Zeitdauer auf Antworten
von irgendeinem anderen Leistungsmerkmal warten, das sich entscheidet,
einen Ratschlag zu dieser Absicht zu geben. Dann wird eine interne
Richtlinie verwendet, um in Abhängigkeit
des Ratschlags zu entscheiden, ob fortgesetzt werden soll oder nicht.
Diese Aktion wurde ursprünglich
in der gleichzeitig anhängigen
UK-Anmeldung Nr. 9920051.1 erläutert,
wird jedoch hier erweitert.
- – STATE – Ein Knoten
platziert eine Assertion im Tupelspace, bei der es sich um eine
Benachrichtigung über
seine Absicht handelt, beispielsweise ein relevantes Leistungsmerkmal
auszulösen
usw. Dies ist eine atomare Aktion, die sofort fortgesetzt wird,
ohne auf Wechselwirkungen von anderen Leistungsmerkmalen zu warten.
- – ACT – Ein Knoten
platziert eine Assertion im Tupelspace, die eine Aktion in der physischen
Umgebung ausführt
(z. B. Herstellen einer Verbindung, Anwenden von Rufsignalen usw.).
- – OBSERVE – Ein Knoten
platziert eine Assertion im Space, um Ereignisse zu überwachen,
die Auskunft geben über
einen von zwei Zuständen
der physischen Welt oder über
Anforderungen von anderen Agents für seine Aktionen Auskunft geben.
Der Knoten sucht nach Zuständen
der physischen Welt wie „Benutzer hat
abgehoben", „Benutzer
ist verfügbar" usw. Diese Aktion
wird zum Suchen nach Nachrichten von anderen Knoten verwendet, beispielsweise über die
Absicht zur Ausführung
einer Aktion, über
die Vorbedingung für
sein eigenes Verhalten usw.
-
Jeder
Knoten kann eine inhärente
Aktion oder Beobachtung haben sowie untergeordnete Knoten, die eigenständig Aktionen
ausführen
können.
Der Knoten ist mit einem Operator versehen, der angibt, wie die
Aktionen seiner untergeordneten Knoten organisiert werden sollen.
Die Operatoren sind:
- – PARALLEL – Die untergeordneten Knoten
werden gleichzeitig ausgelöst.
Der Knoten wartet auf eine Antwort von jedem einzelnen untergeordneten
Knoten.
- – SEQUENCE – Die untergeordneten
Knoten werden der Reihe nach von links nach rechts ausgelöst. Wie der
Name bereits andeutet, ist durch dieses Verhalten eine Sequenz von
Aktionen und/oder Beobachtungen definiert.
- FORK – Die
untergeordneten Knoten werden gleichzeitig ausgelöst. Der
Knoten wartet nur auf die erste Antwort. Alle anderen Antworten
werden ignoriert
- – CHOICE – Die Knoten
werden von links nach rechts ausgelöst. Der Knoten wartet auf die
erste Antwort, die ein Auftreten oder Nichtauftreten angibt, das
als Erfolg interpretiert werden kann, wie das weiter unten im Detail
beschrieben wird.
- – SELECT – Bei diesem
Operator wird jeder einzelne untergeordnete Knoten mit einem Prädikat assoziiert, das
auf dem Wert eines Fakts in einer Assertion im Tupelspace basiert.
Die Bewertung der Prädikate
erfolgt von links nach rechts. Der untergeordnete Knoten, der das
erste als wahr geltende Prädikat
enthält,
wird ausgelöst.
Durch den Operator wird nur ein einziger untergeordneter Knoten
ausgelöst.
Wenn kein untergeordneter Knoten ausgelöst wird, nimmt der Knoten ein
Nichtauftreten von den untergeordneten Knoten an.
-
Es
wird ins Auge gefasst, dass auch andere Operatoren als die oben
beschriebenen erstellt werden können
(z. B. ein Operator, der CHOICE ähnelt,
bei dem alle Knoten mit wahren Prädikaten ausgelöst werden). Damit
soll die obige Liste nicht als erschöpfend gelten.
-
Wie
oben beschrieben wurde, hat jeder Knoten seine eigene inhärente Aktion.
Diese Aktion wird ausgeführt,
bevor die Aktionen der untergeordneten Knoten mit dem entsprechenden
Operator ausgelöst
werden.
-
Die
deontischen Modalitäten
werden unten beschrieben. Es wird jedoch angenommen, dass jede inhärente Aktion
die deontische Modalität „Obligatorisch" hat.
-
Das
Auftreten oder Nichtauftreten der durch einen Knoten definierten
Aktion ist eine Komposition aus dem Erfolg der inhärenten Aktion
und dem zusammengesetzten Erfolg des Auftretens oder Nichtauftretens
der untergeordneten Knoten, wie das unten beschrieben wird. Sowohl
die eigene Aktion des Knotens als auch die Aktionen seiner untergeordneten
Knoten müssen
als erfolgreich interpretiert werden, damit für die Aktion des Knotens gilt,
dass diese aufgetreten ist. Ansonsten erfolgt die Interpretation
als Nichtauftreten.
-
Die
deontische Logik ist die Logik der Obligation (Verpflichtung); sie
kann beispielsweise verwendet werden, um die Abhängigkeiten zu definieren, die
wiederum die Verantwortlichkeiten für Aktionen innerhalb einer
Bürokratie
definieren. Durch Argumentation mit dieser Logik kann man ermitteln,
ob die Richtlinien innerhalb einer Organisation konsistent oder
inkonsistent sind, wenn jemand verpflichtet ist, sowohl etwas zu
tun als auch dieses nicht zu tun, oder wenn Situationen nicht von
einer Richtlinie abgedeckt sind.
-
Es
gibt vier Modalitäten,
die in Tabelle 1 gezeigt werden, aber alle können aus den grundlegenden
Obligationen abgeleitet werden. Damit bedeutet O(P), dass der Vorschlag
obligatorisch ist. In der Offenlegung der vorliegenden Erfindung
werden nur die Modalitäten
O, P und I verwendet. Tabelle
1 – Erklärung der
deontischen Modalitäten
-
Wie
bereits in dieser Offenbarung beschrieben wurde, werden Leistungsmerkmale
hinsichtlich der Operation eines Satzes von Knoten definiert, die
in einer Baumstruktur angeordnet sind. Alle Knoten außer dem
obersten Knoten in einer Struktur verfügen über einen übergeordneten Knoten. Der übergeordnete
Knoten platziert deontische Modalitäten zum Verhalten jedes seiner
untergeordneten Knoten. Jeder untergeordnete Knoten meldet das Auftreten
oder Nichtauftreten der Aktion oder der Beobachtung, die ihm zugewiesen
ist. Das Auftreten oder Nichtauftreten wird gemäß Tabelle 2 für den übergeordneten
Knoten als Erfolg interpretiert. Tabelle
2
-
Diese
Tabelle zeigt, dass das Auftreten oder Nichtauftreten eines „Erlaubt"-Knotens keine Auswirkung auf
die Interpretation durch den übergeordneten
Knoten als Erfolg hat. Die Modalität „Erlaubt" identifiziert Knoten, deren Aktionen
oder Beobachtungen nicht wesentlich für den Erfolg oder das Fehlschlagen
des gesamten Leistungsmerkmals sind. Sie können nach Belieben eliminiert
werden, um eine Aktion zu verhindern, die eventuell gegen die Einschränkung eines
anderen Leistungsmerkmals verstößt.
-
Wie
bereits zuvor erwähnt
wurde, verfügt
ein Knoten über
seine eigene inhärente
Aktion oder Beobachtung sowie über
deontische Modalitäten
für das
Auftreten oder Nichtauftreten der Aktionen oder Beobachtungen seiner
untergeordneten Knoten. Der Knoten kombiniert das Auftreten seiner
eigenen Aktion mit dem zusammengesetzten Erfolg seiner untergeordneten
Knoten (siehe Tabelle 3). Tabelle
3 – Zusammengesetzter
Erfolg der untergeordneten Knoten
-
Der
zusammengesetzte Erfolg der untergeordneten Knoten ist eine Interpretation
des Auftretens oder Nichtauftretens von deren Aktion oder Beobachtung
und des Operators, der deren Aktion sequenziert.
-
Um
es noch einmal zu wiederholen: Für
die inhärente
Aktion eines Knotens gilt, dass sie in Sequenz mit den Aktionen
seiner untergeordneten Knoten erfolgt. Damit setzt sich das Auftreten
oder Nichtauftreten der Aktionen oder Beobachtungen eines Knotens
unter dem Sequenz-Operator aus dem Erfolg der dem Knoten inhärenten Aktion
(die immer als obligatorisch gilt) und aus dem zusammengesetzten
Erfolg seiner untergeordneten Knoten zusammen. Damit muss sowohl
die dem Knoten inhärente
Aktion oder Beobachtung als auch die der untergeordneten Knoten
des Knotens erfolgreich sein, damit die Gesamtaktion oder -beobachtung
des Knotens als aufgetreten betrachtet wird. Ansonsten wird sie
als nicht aufgetreten betrachtet.
-
Es
folgt eine XML-DTD, die eine Sprache zum Spezifizieren eines Leistungsmerkmal-Spezifizierungssystems
beschreibt, das auf dem System gemäß der vorliegenden Erfindung
basiert:
-
-
1 gibt
einen grundlegenden Überblick über das
System gemäß der vorliegenden
Erfindung. Es besteht aus einer Anzahl von Benutzer-Agents 1,
die durch Assertions kommunizieren, die über den Tupelspace 3 ausgetauscht
werden. Jeder dieser Agents ist für die Leistungsmerkmale für eine Einzelperson
oder eine Gruppe innerhalb der Population verantwortlich, die von
diesem System bedient wird. Über
die Programmierung dieser Agents wird die Individualisierung und
Personalisierung von Leistungsmerkmalen für jeden einzelnen Benutzer
und für
jede Gruppe erreicht. Die Agents 1 kommunizieren miteinander
durch die Assertions und sind durch die im Tupelspace 3 postierten
Assertions in der Lage, in der realen Welt 5 Ereignisse
zu beobachten und Operationen zu steuern.
-
Vor
der detaillierten Betrachtung des Tupelspace 3 folgt eine
kurze Einführung
zur grundlegenden Struktur und Operation eines Tupelspace.
-
Ein
Tupelspace ist ein Satz von geordneten Paaren aus Typ und Wert,
die als Ingles bezeichnet werden. Jedes Ingle besteht aus einem
Typ (z. B. Name) und einem Wert (z. B. John Doe). Damit kann ein
Tupel, das einen Mitarbeiter eines Unternehmens beschreibt, beispielsweise
folgendermaßen
aussehen:
{ :name John Doe :age 37 :employee_number 12345 :start_date
810126 :position T12 }
-
Der
Tupelspace ermöglicht
die Koordination durch Zulassen von Abfragen auf der Basis der Übereinstimmung
von Tupeln durch Anti-Tupel. Ein Anti-Tupel ist ein Tupel, das als
eine Abfrage in dem Tupelspace verwendet werden kann. Von der Form
her ist es identisch mit dem Tupel, außer dass der Wert für ein beliebiges
Feld oder für
alle Felder durch ein „?" ersetzt sein kann,
was eine Nicht-Berücksichtigen-Bedingung angibt. Tupelspaces
werden eingerichtet, um Tupel in Übereinstimmung mit Anti-Tupeln
zu bringen, die in allen Feldern außer dem durch die ?-Abfrage
angegebenen Feld übereinstimmen.
Damit würde
das Anti-Tupel:
{ :name ? :age 37 :employee_number ? :start_date
? :position T12 }
die Tupel für alle Mitarbeiter auf der
Position T12 zurückgeben,
deren Alter (age) 37 Jahre beträgt.
-
Die
konventionellen Operationen im Tupelspace umfassen:
- Poke – Platzieren
eines Tupels im Tupelspace. Es kann die Dauer spezifiziert werden,
wie lange dieses Tupel im Space verbleiben soll. Dabei kann es sich
um jede Zeitdauer bis zu unendlich handeln.
- Peek – Abfragen
des Tupelspace mit einem Anti-Tupel. Für diese Abfrage kann eine beliebige
Zeitdauer bis zu unendlich spezifiziert werden. Kopien von übereinstimmenden
Tupeln werden über
die Schnittstelle zurückgegeben,
und die Tupel verbleiben im Tupelspace.
- Pick – Abfragen
des Tupelspace mit einem Anti-Tupel. Für diese Abfrage kann eine beliebige
Zeitdauer bis zu unendlich spezifiziert werden. Kopien von übereinstimmenden
Tupeln werden über
die Schnittstelle zurückgegeben,
und die Tupel werden aus dem Tupelspace entfernt.
- Cancel – Mit
dem spezifizierten Anti-Tupel werden alle übereinstimmenden Anti-Tupel aus dem Tupelspace entfernt.
Die Tupel selbst können
direkt durch eine entsprechende Pick-Anforderung entfernt werden.
-
Damit
wird der Tupelspace 3 in dem System gemäß der vorliegenden Erfindung
verwendet, um die Kommunikation und damit die Kooperation zwischen
Leistungsmerkmalen zu ermöglichen.
Die Leistungsmerkmale kommunizieren mit Hilfe von Assertions, die
im Tupelspace gespeichert sind. Leistungsmerkmale können Assertions
abonnieren, deren Inhalt Auskunft über Aktionen gibt, die für einen
laufenden Anruf von Interesse sind.
-
Bezug
nehmend auf die oben gezeigte XML-DTD erhält jeder Benutzer 1 (user)
einen eindeutigen Namen, der im name-Element eines Tupels gespeichert
wird, Wie oben erläutert
wurde, wird ein Satz personalisierter Leistungsmerkmale, zusammen
mit den für
ihn geltenden Unternehmenseinschränkungen, in Form eines Satzes
deontischer Task-Bäume
definiert. Der Satz aus Benutzer-Leistungsmerkmalen wird im feature_set-Element
eines Tupels gespeichert, um einen Mechanismus zum Abonnieren und
Publizieren mit dem Tupelspace 3 zu betreiben. Um eine
effiziente Implementierung zu erreichen, sind im Tupelspace 3 verschiedene
Sätze von
Abonnements und Publikationen eingerichtet, die je nach Bedarf eingehenden Anrufen zugeordnet
werden können.
Diese bilden einen Pools aus Leistungsmerkmal-Logik-Handlern, die
jedem eingehenden Anruf Dienste bereitstellen.
-
Wie
oben erläutert
wurde, handelt es sich bei einem Baum um eine hierarchische Struktur,
die die individuellen Knoten enthält, welche die Aktionen ausführen und
die Beobachtungen durchführen,
die für
ein Leistungsmerkmal erforderlich sind. Das in der obigen DTD definierte
Baumelement (d. h. <!ELEMENT
tree (node, (tree)*)>)
enthält
die rekursive Definition dieser Knotenstruktur.
-
Jeder
Baum schließt
einen Lokalspeicher zur Handhabung von Assertions ein, die nur für ihn selbst von
Interesse sind. Die Anzahl dieser lokalen Assertions wird durch
das num local assertion-Attribut definiert.
-
Jeder
Baum verfügt
auch über
eine Vorbedingung, die seine Aktivität auslöst. Diese Vorbedingung ist im
precondition-Attribut gespeichert.
-
Der
Knoten ist das Element, das die Struktur für Aktionen und Beobachtungen
enthält,
die für
die Operation des Leistungsmerkmals erforderlich sind.
-
Tabelle
4 enthält
Erklärungen
zur Verwendung der Knotenattribute: Tabelle
4 – Erklärung der
Knotenattribute
-
Das
Format einer Assertion ist SCOPE FACT TASK MODULATOR. Damit kann
aus der obigen DTD entnommen werden, dass jede Assertion über einen
SCOPE (Umfang) und einen FACT (Fakt) verfügen muss. Optional kann die
Assertion eine TASK einschließen,
und mit der optionalen TASK können
auch ein oder mehrere MODULATORS verbunden sein. Es folgen Assertions
für den
Tupelspace 3, wie sie im System gemäß der vorliegenden Erfindung
verwendet werden:
- Scope
- Scope (oder Umfang)
im Sinne dieser Offenbarung bedeutet den Namen für eine Assertion, die zur Abonnierung
durch einen Knoten verwendet werden kann. In der folgenden Beschreibung wird
davon ausgegangen, dass Scope aus dem Leistungsmerkmal-Satz besteht.
- Fact
- Fact (oder Fakt) ist
eine Tatsache über
den Benutzer, die Umgebung usw.
- Task
- Eine Task ist eine
Beschreibung eines Ziels, dessen Durchführung durch den Empfänger vom Sender
gefordert wird. Sie liegt in Form einer Modalität vor und hat ein Ziel, wie
in O(Erzeugen) – auf
Englisch: O(Originate).
- Modulator
- Beim Vorhandensein
einer Task können
optional Modulatoren in die Assertion platziert werden. Dabei handelt
es sich um eine Einschränkung,
die der Sender für
die Ausführung
des von ihm gesendeten Ziels platziert. Sie haben die Form I(Umleiten) – auf Englisch:
I(Redirect).
-
Einige
Beispiele für
Assertions sind:
- – Umfang Vorbedingung Ausführen O (Erzeugen)I(Umleiten) – auf Englisch:
Scope Precondition Perform O(Originate) I(Redirect)
- – Umfang
1742 O(Umleiten) – auf
Englisch: Scope 1742 O(Redirect)
- – Umfang
Wahr – auf
Englisch: Scope True
-
Es
gibt auch einen Satz gut bekannter Assertions, die für die Operation
auf der Ebene des Systems, des Benutzers und der Sitzung signifikant
und nützlich
für alle
Knoten sind. Dazu gehören:
- – Urheber
Besetzt – auf
Englisch: Originator Busy
- – Urheber
Aufgelegt – auf
Englisch: Originator ON Hook
- – System Überlastet – auf Englisch:
System Overload
-
2 veranschaulicht
die Diagrammkonvention gemäß der vorliegenden
Erfindung, was ein leichteres Verständnis eines Baums ermöglicht.
Die Knoten sind durch die rechteckigen Felder dargestellt, die Erklärungen zu
ihren Aktionen enthalten. Die Knoten sind durch Pfeile zwischen
untergeordneten und übergeordneten
Knoten verbunden, wobei sich der übergeordnete Knoten oben befindet.
-
Der
Operator für
die untergeordneten Knoten wird durch das Element angegeben, das
die Pfeile miteinander verbindet, die vom übergeordneten zu den untergeordneten
Knoten verlaufen. In diesem Beispiel wird der Pfeil mit der Bedeutung
von SEQUENCE und der Bogen mit der Bedeutung von PARALLEL zur Veranschaulichung
verwendet. Die Symbole für
alle Operatoren werden unten im Zusammenhang mit 3 erläutert.
-
Es
wird bemerkt werden, dass sich der Sequenz-Operator beim obersten
Knoten befindet. Dies ist eine Veranschaulichung der oben beschriebenen
impliziten Sequenz. Die eigene Aktion des Knotens wird dabei zuerst
in der Sequenz mit der Aktivität
der untergeordneten Knoten durchgeführt. Da alle Knoten diese Sequenz haben,
einschließlich
expliziter Educators der impliziten Sequenz in jedem Diagramm, wird
hier zur Vermeidung eines unübersichtlichen
und konfusen Erscheinungsbilds eine Konvention verwendet, dass eine
einem Knoten inhärente
Aktion im Feld daneben angegeben wird, wobei nur die Verbindungen
zu den untergeordneten Knoten gezeigt werden.
-
3 zeigt
die Indikatoren, die für
jeden der Operatoren verwendet werden.
-
4 ist
eine Abbildung eines typischen Leistungsmerkmals, die zur Erklärung der
Baum-Operation verwendet werden soll. Der Baum ist mit Knoten und
deren Namen, Operatoren und Modalitäten dargestellt. Wie oben erläutert wurde,
wurde die dem Knoten inhärente
Aktion der Übersichtlichkeit
halber weggelassen.
-
Wie
oben erläutert
wurde, handelt es sich bei der Vorbedingung eines Baums in der Realität um die inhärente Aktion
des obersten Knotens, die in Sequenz mit dem Rest des Baums ausgeführt wird.
Laut Konvention wird die Vorbedingung in einem Feld oberhalb des
obersten Knotens gezeigt.
-
Wenn
ein beliebiger und alle Bäume
innerhalb eines Leistungsmerkmals-Satzes eines Benutzer-Agents 1 instanziiert
werden, abonnieren sie alle beim Tupelspace 3 eine Assertion
in Form ihrer Vorbedingung. In diesem Sinne sind alle Bäume zu jedem
Zeitpunkt aktiv, wobei die Mehrheit von ihnen auf ihre Vorbedingungen
(Preconditions) wartet.
-
Wenn
die Vorbedingung erfüllt
ist, startet ein Baum mit der Operation tiefenorientiert („depth-first") von links nach
rechts. Unter Bezugnahme auf 4 erklärt ein anderer
Baum im Netzwerk als Reaktion auf einen Benutzer, der auflegt, die
Assertion in Form des Tupels (Ausführen O(Erzeugen) (I Umleiten)) – auf Englisch: (Perform
O (Originate) (I Redirect)). Zum einfacheren Verständnis ist
der SCOPE-Wert nicht dargestellt, da es sich dabei um einen opaken
Wert handelt, der in allen Bäumen
und Assertions verwendet wird, um zwischen den Assertions zu unterscheiden,
die von mehreren Anrufen generiert werden, die gemeinsam den Tupelspace 3 verwenden.
Nachdem die Vorbedingung „Ausführen (O
Erzeugen) (I Umleiten)" – auf Englisch
Perform (O Originate) (I Redirect) – erfüllt ist, startet der Baum mit
der Operation tiefenorientiert mit dem linken Knoten, Warten bis
Urheber auflegt – auf
Englisch: Wait Originator On Hook -, dessen Aktion eine Beobachtung
ist. Er abonniert die gut bekannte Assertion für das Auflegen des anrufenden
Agents, bis diese wahr wird. Da dieser Knoten eine Modalität I hat,
was für
eine Verboten-Modalität
(Englisch: Interdicted) steht, wird das Fehlen einer Aufgelegt-Bedingung
als ein Erfolg gewertet. Das repräsentiert eine „Schutz"-Bedingung für den Baum,
indem das Fehlschlagen des Aufgelegt-Auftretens (d. h. Erfolg für diesen
I-Modalitätsknoten)
für die
gesamte Operation des Baums beibehalten werden muss.
-
Die
Operation des Baums wird als nächstes
mit einer Reihe von Knoten bis zum Knoten am weitesten links in
der verbleibenden Sequenz fortgesetzt, der den Namen ID erfassen – auf English:
Collect ID – trägt. Dieser
Knoten verwendet ein Standardverfahren zur Erlangung der Identität der angerufenen
Partei vom Benutzer 1 aus. Wie in 4 angegeben,
kann dies durch Erfassung von Ziffern erfolgen. Es wird bemerkt
werden, dass dieser Knoten die Modalität O für Obligatorisch hat. Damit
wird, wenn aus irgendeinem Grund die Ziffern nicht erfasst werden
können,
das Nichtauftreten an den übergeordneten
Knoten gemeldet, der dies als einen Fehlschlag interpretiert. Der übergeordnete
Knoten gibt dann seine on failure-Assertion aus, um andere Leistungsmerkmale über diesen
Fehlschlag zu unterrichten und um das Bereinigen der Nebeneffekte
aufzunehmen usw. Das Nichtauftreten wird nach oben gemeldet und
als Fehlschlag interpretiert. Schließlich erreicht diese Meldung
den obersten Knoten, der auf diese Weise erfährt, dass das Leistungsmerkmal
fehlgeschlagen ist, und alle notwendigen Assertions ausgibt, um
damit umzugehen.
-
Der
nächste
Knoten in der Sequenz, Ziel verifizieren – auf Englisch: Verifiy Destination –, hat die
Modalität
P für Permitted
= Erlaubt. Der Knoten gibt ein Beobachtungs-Abonnement für Details
der angerufenen Partei aus. Allerdings erachtet der übergeordnete
Knoten im Fall des Nichtauftretens die Aktion des Knotens weiterhin
als erfolgreich. Das ist ein sehr wichtiger Aspekt der vorliegenden
Erfindung.
-
Die
Modalitäten
ermöglichen
die Angabe, wie Wechselwirkungen mit anderen Leistungsmerkmalen betrachtet
werden sollen. Wenn ein anderes Leistungsmerkmal eine „Obligatorisch"-Aktion nicht ausführen kann,
schlägt
das aktuelle Leistungsmerkmal fehl. Wenn es eine „Verboten"-Assertion für einen
Beobachter ausgegeben hat, schlägt
das aktuelle Leistungsmerkmal fehl. Mit „Erlaubt" kann dagegen ein Leistungsmerkmal mit
allen Operationen spezifiziert werden aber es kann angegeben werden,
welche Operationen für
die gesamte Operation des Leistungsmerkmals nicht wichtig sind.
Das vereinfacht zum Entwicklungszeitpunkt erheblich die Spezifizierung
und Erkennung von unerwünschten
Wechselwirkungen, indem angegeben wird, welche Knoten aus dieser
Betrachtung eliminiert werden können.
Es ist bestens bekannt, dass ein großes Problem bei den Verfahren
nach dem Stand der Technik zum Erkennen von Wechselwirkungen zur
Laufzeit in der Erkennung einer großen Anzahl von unerwünschten
Wechselwirkungen besteht. Dabei handelt es sich um keine wirklichen
Wechselwirkungen, sie werden aber als solche durch die Einschränkungen
des Spezifizierungssystems gefunden, das diese identifiziert. Die
vorliegende Erfindung geht dieses Problem an, und stellt denselben
Vorteil auch zur Laufzeit bereit, indem ein laufendes Leistungsmerkmal
triviale und unerwünschte Wechselwirkungen
ignorieren kann, die für
den Gesamterfolg des Leistungsmerkmals keine Bedeutung haben.
-
Es
wird erkannt werden, dass es im Leistungsmerkmal zwei Beobachter
gibt, die für
den Aufgelegt-Zustand ausgegeben werden – einer für den Urheber und einen für das Ziel.
Es wird außerdem
erkannt werden, dass diese, sobald sie ausgegeben wurden, weiterhin
ausgeführt
werden, bis der entsprechende Agent auflegt. Da diese beiden verboten
sind, wird ihr Auftreten zu einem Fehlschlagen des Anrufs führen, indem
ihr Nichtauftreten durch den deontischen Baum nach oben weitergemeldet
wird. Das zeigt einen weiteren Vorteil der Semantik, die durch die
vorliegende Erfindung bereitgestellt wird. Die Bäume sind nicht lediglich Prozess-Sequenzen
von Operationen, sondern sie geben auch an, wie unabhängige Knoten
ihre Operation sequenzieren sollen. Einmal ausgelöste Knoten
können
unabhängig
voneinander operieren. Es können
Beobachter ausgegeben werden, die das Verhalten eines Anrufs bestimmen
und sicherstellen können,
dass ihre Operationsbasis nicht verletzt wurde. Der wirkliche Zweck
des Leistungsmerkmals aus 4 besteht
im Einrichten und Beibehalten eines Pfades zwischen Urheber und
Ziel. Wenn eine der beiden Parteien auflegt, schlägt das Leistungsmerkmal
fehl (d. h. es ist nicht mehr erforderlich) und bereinigt seine
Nebeneffekte. Die Beobachter operieren, um diese Funktionalität zu bewirken.
Damit überwacht
der Knoten „Warten
bis Urheber auflegt" nicht
nur den Anruf, nachdem er aufgebaut wurde, sondern auch während des
Aufbaus. Sogar während
des Aufbaus erkennt der Beobachter, wenn der Urheber auflegt, um
auf den Anruf zu verzichten, und bewirkt das Fehlschlagen des Leistungsmerkmals,
wodurch alle notwendigen Bereinigungsmaßnahmen eingeleitet werden.
-
5 veranschaulicht
die Leistungsmerkmal-Kooperation sowohl zwischen den Benutzer-Agents
als auch innerhalb der Benutzer-Agents. Das Diagramm ist selbsterklärend. Es
zeigt, wie die Leistungsmerkmale kooperieren, indem sie Assertions austauschen.
Insbesondere zeigt es, wie ein fehlgeschlagenes Leistungsmerkmal
ein anderes Verhalten auslösen
kann, um die Benutzerbedürfnisse
zu erfüllen.
Innerhalb des Leistungsmerkmals „Abschließen" wartet das Leistungsmerkmal „Anruf
anzeigen", bis die
Abschlusseinheit abgehoben hat. Wenn das nicht auftritt und die
Timeout-Zeit für
den Knoten überschritten
wird, gibt es die Assertion „Keine
Antwort" aus, die
den Knoten „Anrufweiterleitung" auslöst, da diese
Assertion seine Vorbedingung ist. Dies zeigt, wie das Standard-Leistungsmerkmal „Anrufweiterleitung
wenn keine Antwort" intervenieren
kann, um weiter die Aufgabe der Zielkontaktierung zu verfolgen,
selbst wenn das Standard-Leistungsmerkmal „Abschließen" nicht zum Erfolg führen kann.
-
Die
Leistungsmerkmal-Ausführung
aus 4 und 5 sind veranschaulichende Beispiele
für das erfindungsgemäße System
und das Verfahren zum Implementieren von personalisierbaren und
individualisierbaren Leistungsmerkmalen unter Verwendung von Operationssemantik
und deontischen Task-Bäumen.
-
Modifikationen
und Variationen der Erfindung sind möglich. Alle derartigen Modifikationen
und Variationen werden für
im Bereich und im Umfang der vorliegenden Erfindung liegend erachtet,
die durch die beigefügten
Ansprüche
definiert werden.