DE60108725T2 - Architecture for triggering the services - Google Patents

Architecture for triggering the services Download PDF

Info

Publication number
DE60108725T2
DE60108725T2 DE60108725T DE60108725T DE60108725T2 DE 60108725 T2 DE60108725 T2 DE 60108725T2 DE 60108725 T DE60108725 T DE 60108725T DE 60108725 T DE60108725 T DE 60108725T DE 60108725 T2 DE60108725 T2 DE 60108725T2
Authority
DE
Germany
Prior art keywords
rule
service
processing
message
module
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
DE60108725T
Other languages
German (de)
Other versions
DE60108725D1 (en
Inventor
Rico Werni Steenfeldt
Henry Gerard Edge Hill Smith
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of DE60108725D1 publication Critical patent/DE60108725D1/en
Publication of DE60108725T2 publication Critical patent/DE60108725T2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5022Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1096Supplementary features, e.g. call forwarding or call holding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • H04M3/4217Managing service interactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0029Provisions for intelligent networking
    • H04Q3/0045Provisions for intelligent networking involving hybrid, i.e. a mixture of public and private, or multi-vendor systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5032Generating service level reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/327Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the session layer [OSI layer 5]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

Disclosed is a method and a system for managing a plurality of services triggered by a message of a session protocol such as SIP controlling a communications session, the method comprising the steps of obtaining a number of execution rules each of which specifying a condition for invoking a service; and processing the execution rules in a predetermined order, a first execution rule causing a first service to be invoked, if the message fulfils a first condition, resulting in a first modified message; and a second execution rule causing a second service to be invoked with the first modified message as an input, if the first modified message fulfils a second condition specified by a second execution rule. <IMAGE>

Description

Diese Erfindung bezieht sich auf das Management einer Vielzahl von Diensten, die auf eine Kommunikationssitzung bezogen sind, wobei die Kommunikationssitzung durch ein Sitzungsprotokoll gesteuert wird, das Sitzungsinformation über die Kommunikationssitzung vorsieht.These This invention relates to the management of a variety of services which are related to a communication session, wherein the communication session is controlled by a session log, the session information about the Communication session provides.

Es gibt eine steigende Nachfrage nach interaktiven Kommunikationssitzungen über das Internet, wie etwa IP-Telefonie, Multimediasitzungen, Video-Datenstrom (video streaming) etc. Interaktive Kommunikationssitzungen können durch Sitzungsprotokolle gesteuert werden, wie etwa das Sitzungsinitiierungsprotokoll (Session Intitiation Protocoll, SIP), welches Initiierung, Abschluss und Modifikation von Sitzungen zwischen Benutzern handhabt. SIP befasst sich nicht mit dem Typ einer Sitzung, die zu initiieren ist, d.h. mit dem tatsächlichen Inhalt von SIP-Nachrichten, sondern vielmehr mit dem Managen einer Sitzung. Dies inkludiert Aufgaben, wie etwa Bestimmen, wo sich ein Benutzer tatsächlich befindet, der zu kontaktieren ist, Zustellen einer Beschreibung der Sitzung, zu der der Benutzer eingeladen wird, Verhandeln eines gemeinsamen Formates zum Beschreiben von Sitzungen etc.It There is an increasing demand for interactive communication sessions over the Internet, such as IP telephony, multimedia sessions, video data stream (video streaming) etc. Interactive communication sessions can be through Session logs, such as the session initiation protocol (Session Initiation Protocol, SIP), which initiation, completion and modification of sessions between users. SIP is not concerned with the type of session that initiate is, i. with the actual content rather than managing a session. This includes tasks, such as determining where a user is indeed To be contacted, deliver a description the session to which the user is invited to negotiate one common formats for describing sessions etc.

SIP basiert auf dem Anfrage-Antwort-Paradigma. Wenn z.B. eine Sitzung initiiert wird, sendet ein Anrufer eine Anfrage, die zu dem Benutzer adressiert ist, den der Anrufer anrufen will, d.h. der Angerufene. Die Anfragenachricht wird zu dem Angerufenen gesendet, typischerweise über eine Reihe von Proxy-Servern, die zum Weiterleiten und Zustellen von Nachrichten verantwortlich sind. Der Angerufene sendet eine Antwort, die die Einladung annimmt oder ablehnt. Die Antwort wird durch die Folge von Proxy-Servern in der umgekehrten Reihenfolge zurückgeleitet.SIP based on the request-response paradigm. If e.g. a meeting is initiated, a caller sends a request to the user addressed, which the caller wants to call, i. the called party. The request message is sent to the called party, typically via a Set of proxy servers used to forward and deliver Messages are responsible. The called party sends a response, who accepts or rejects the invitation. The answer is through the Sequence of proxy servers returned in the reverse order.

Über dem Standardsitzungsmanagement, das durch ein Sitzungsprotokoll vorgesehen wird, wie etwa SIP, können zusätzliche Dienste im Standort des Anrufers, Standort des Angerufenen oder in beliebigen der zwischenliegenden Proxy-Server implementiert werden.Above that Standard session management provided by a session protocol will, such as SIP, can additional Services in the location of the caller, location of the called party or be implemented in any of the intermediate proxy servers.

Hier umfasst der Begriff Dienst (Service) eine Einheit von Funktionalität, die einem Basissystem inkrementell hinzugefügt werden kann und die zu einer Ausgabe führt, die durch einen Benutzer wahrnehmbar ist, wie etwa einen Teilnehmer, einen Administrator oder dergleichen. Daher ist ein Dienst, z.B. Rufweiterleitung, Sprachpost (voice mail), Videokonferenz etc. eine modulare Erweiterung zu einem Basissystem, wie etwa einem System zum Managen von Sitzungen, z.B. einem SIP-System. Der Prozess zum Hinzufügen und Ermöglichen von Merkmalen in einem Basissystem wird Merkmalsaufstellung (feature deployment) genannt.Here The term service (service) includes a unit of functionality that is one Basic system can be added incrementally and to one Issue leads, which is perceptible by a user, such as a subscriber, an administrator or the like. Therefore, a service, e.g. Call forwarding, voice mail, videoconferencing, etc. one modular extension to a base system, such as a system for managing sessions, e.g. a SIP system. The process of adding and Enable of features in a base system, feature set up (feature called deployment).

Während einer Sitzung können Merkmalen durch gewisse Ereignisse getriggert (ausgelöst) werden. Triggern, d.h. die Handlung zum Aufrufen einer gegebenen Anwendung in einem gegebenen Ereignis, basiert gewöhnlich auf vertraglichen Beziehungen zwischen Teilnehmern und Dienstanbietern. Falls mehr als ein Merkmal in einem Dienstnetz aufgestellt ist, und einer oder mehr Dienste gleichzeitig für einen oder mehr Benutzer aktiviert werden können, dann treten Merkmalsinteraktionen auf. Hier umfasst der Begriff Merkmalsinteraktion den Einfluss oder die Modifikation eines Merkmals durch ein anderes. Merkmalsinteraktion ist ein unvermeidliches Nebenprodukt von modularen Merkmalen. Es kann wünschenswerte und nicht erwünschte Merkmalsinteraktionen geben. Es ist jedoch ein Prob lem, dass das gesamte Verhalten eines Dienstnetzes nicht steuerbar werden kann, falls Merkmalsinteraktionen nicht richtig gemanagt werden. Folglich ist Merkmalsinteraktion ein wachsendes Problem, da sich die Zahl und Komplexität einer Dienstanwendung mit der Entstehung neuer Technologien, wie etwa UMTS, erhöht, die den Fähigkeiten von Dienstnetzen erhebliche Anforderungen auferlegen. Diese Dienste können unabhängig entwickelt worden sein und die Dienstanbieter müssen in der Lage sein zu spezifizieren, wie in Konflikt stehende Instruktionen von diesen Diensten aufzulösen und zu dem Vorgabeverhalten des verwendeten Kommunikationsprotokolls zu vermitteln sind.During one Can session Characteristics can be triggered (triggered) by certain events. triggers, i.e. the act of invoking a given application in one given event, is usually based on contractual relationships between subscribers and service providers. If more than one characteristic is placed in a service network, and one or more services simultaneously for one or more users can be activated then feature interactions occur. Here the term encompasses Feature interaction the influence or modification of a feature through another. Feature interaction is an inevitable byproduct of modular features. There may be desirable and undesirable feature interactions give. However, it is a problem that the entire behavior of a Service network can not be controlled if feature interactions not managed properly. Consequently, feature interaction a growing problem, as is the number and complexity of a Service application with the emergence of new technologies, such as UMTS, increased, the skills impose significant requirements on service networks. These services can independently have been developed and service providers must be able to specify how to resolve conflicting instructions from these services and to the default behavior of the communication protocol used to convey.

Um Merkmalsinteraktion zu vermeiden, kann das Verhalten von mehreren Merkmalen ad-hoc oder systematisch getestet werden, wenn ein neuer Dienst einem Dienstnetz hinzugefügt wird, z.B. durch Testen von Paaren von Merkmalen. Falls Fälle von Merkmalsinteraktionen während Tests oder nach Aufstellung erfasst werden, können die erfassten Probleme z.B. durch Umgestalten von einer oder mehr der einbezogenen Dienstanwendungen gelöst werden.Around To avoid feature interaction, the behavior of multiple Characteristics are tested ad-hoc or systematically when a new one Added service to a service network is, e.g. by testing pairs of features. If there are cases of Feature interactions during Tests or after installation can be recorded, the detected problems e.g. by transforming one or more of the included service applications solved become.

Der obige Ansatz erfordert eine beträchtliche Menge von Ressourcen, insbesondere da sich die Zahl und Komplexität der Dienste erhöht. Daher ist es ein Problem, dass der obige Stand der Technik mit der Zahl und Komplexität von Dienstanwendungen nicht gut skaliert.Of the above approach requires a considerable Amount of resources, especially as the number and complexity of services elevated. Therefore, it is a problem that the above prior art with the Number and complexity not scaled well by service applications.

Der Artikel "Programming SIP Services" von Anders Kristensen et al, IP Telephony Workshop 2000, beschreibt eine JAVA-basierte Schnittstelle zwischen Diensten und einem SIP-Server.The article "Programming SIP Services" by Anders Kristensen et al, IP Telephony Workshop 2000, describes a JAVA-based interface between services and a SIP server.

Der Artikel "An Architecture for Three Challenging Features" von Pamela Zave, Internet Telephony Workshop 2001, beschreibt eine Architektur für drei spezifische Merkmale innerhalb des Kontextes von IP-Telefonie, nämlich "Standort und Identifikation", "Umschalten und spontane Konferenz" und "Post". Die Gestaltung dieser Merkmale berücksichtigt Probleme von Merkmalsinteraktion. Dieser Artikel verweist ferner auf eine verteilte Merkmalseinrichtungsarchitektur (Distributed Feature Composition architecture, DFC) und beschreibt ein System im Sinne von Schnittstellenboxen und Merkmalsboxen, die gleichlaufende Prozesse sind.Of the Article "An Architecture for Three Challenging Features "by Pamela Zave, Internet Telephony Workshop 2001, describes an architecture for three specific features within the context of IP telephony, namely "location and identification", "switching and spontaneous Conference "and" Post. "The design taken into account Problems of feature interaction. This article also refers to a distributed feature architecture (Distributed Feature Composition architecture, DFC) and describes a system in the sense of interface boxes and feature boxes, the concurrent Processes are.

Es ist jedoch ein Problem des obigen Systems des Standes der Technik, verbesserte Mechanismen zum Vermeiden von Merkmalsinteraktionen wegen der Änderung des Kontextes eines Dienstes durch einen anderen Dienst vorzusehen.It however, is a problem of the above prior art system, improved mechanisms to avoid feature interactions because of the change context of a service by another service.

Gemäß der Erfindung werden die obigen und andere Probleme durch ein Verfahren zum Managen einer Vielzahl von Diensten, die durch eine Nachricht eines Sitzungsprotokolls getriggert werden, das eine Kommunikationssitzung steuert, wie in Anspruch 1 definiert, gelöst.According to the invention The above and other problems are solved by a method of managing a variety of services through a message of a session log which controls a communication session, as in Claim 1 defined solved.

Folglich wird der Aufruf von Diensten, der während einer Kommunikationssitzung getriggert wird, durch eine Zahl von Ausführungsregeln gesteuert, die in einer vorbestimmten Reihenfolge verarbeitet werden, wobei dadurch die Reihenfolge von aufzurufenden Diensten gesteuert wird. Deshalb wird ein Mechanismus zum Triggern von Anwendungen basierend auf den Dienstausführungsregeln vorgesehen, der ein beliebiges Gesamtverhalten wegen einer ungesteuerten Reihenfolge einer Ausführung vermeidet. Des weiteren können durch Editieren der Ausführungsregeln unterschiedliche Aufstellungsstrategien leicht implementiert werden, wobei dadurch eine flexible fein granulierte Dienstaufstellungsinfrastruktur vorgesehen wird, die große Flexibilität beim Ordnen der Kette von Diensten vorsieht, was es erlaubt, das Leistungsverhalten des Dienstnetzes zu optimieren.consequently is the call to services during a communication session is triggered, controlled by a number of execution rules, the processed in a predetermined order, thereby the order of services to be called is controlled. Therefore is a mechanism for triggering applications based on the service execution rules provided that any overall behavior because of an uncontrolled Order of execution avoids. Furthermore, through Editing the execution rules different deployment strategies are easily implemented, where thereby a flexible fine granulated service installation infrastructure is provided, the big one flexibility when arranging the chain of services provides what allows that Optimize service performance of the service network.

Daher wird gemäß der Erfindung eine flexible Dienstaufstellungsinfrastruktur vorgesehen, die es erlaubt, Merkmalsinteraktionen systematisch zu vermeiden, wenn eine große Zahl von komplexen Diensten gemanagt wird, z.B. wenn Dienste innerhalb eines Dienstnetzes hinzugefügt, entfernt, aufgehoben, erneut aktiviert oder neu zugeordnet werden.Therefore is according to the invention provided a flexible service deployment infrastructure that it allows to systematically avoid feature interactions when a size Number of complex services, e.g. if services within added to a service network, removed, canceled, re-activated or reassigned.

Es wird ein standardisiertes Rahmenwerk zum Definieren einer Dienstausführung vorgesehen, das die Verteilung des Dienstmanagementproblems zwischen unabhängigen Interessengruppen erlaubt, wobei dadurch ein Verfahren vorgesehen wird, das mit der Zahl von Diensten skalierbar ist.It Provide a standardized framework for defining a service execution, the distribution of the service management problem between independent stakeholders permitting thereby to provide a method compatible with the Number of services is scalable.

Eine Ausführungsregel inkludiert eine oder mehr Bedingungen zum Durchführen einer oder mehr Aktionen, wie etwa Aufrufen einer Dienstanwendung.A Run rule includes one or more conditions for performing one or more actions, such as calling a service application.

Der Begriff Kommunikationssitzung umfasst Kommunikationssitzungen zwischen Benutzern eines Kommunikationsnetzes, wie etwa eines TCP/IP-Netzes, eines Lokalbereichsnetzes, eines Weitverkehrsnetzes, des Internet oder dergleichen. Beispiele von Kommunikationssitzungen inkludieren Sprache-über-Internet (Voice-over-Internet), IP-Telefonie, Videokonferenz, Video-Datenstrom etc.Of the Term communication session involves communication sessions between Users of a communication network, such as a TCP / IP network, a local area network, a wide area network, the Internet or similar. Include examples of communication sessions Voice over Internet (Voice over Internet), IP telephony, videoconferencing, video data stream etc.

Der Begriff Sitzungsprotokoll umfasst ein Protokoll, das die Kommunikationssitzung steuert, und insbesondere die Initiierung, den Abschluss und die Modifikation von Sitzungen. Vorzugsweise basiert das Sitzungsprotokoll auf Anfrage-/Antwortnachrichten, die über die Knoten des Kommunikationsnetzes zwischen den teilnehmenden Benutzern einer Kommunikationssitzung übertragen werden. Ein Beispiel eines derartigen Sitzungsprotokolls ist das Sitzungsinitiierungsprotokoll (SIP).Of the Term session log includes a log containing the communication session controls, and in particular the initiation, the conclusion and the Modification of sessions. Preferably, the session log is based on request / response messages over the nodes of the communication network between the participating users of a communication session become. An example of such a session log is the Session Initiation Protocol (SIP).

Andere Beispiele inkludieren die Protokollfolge H.323, MGCP und verwandte Protokolle, wie etwa IPDC, SGCP, H.248 etc.Other Examples include the H.323, MGCP, and related protocol series Protocols, such as IPDC, SGCP, H.248 etc.

Der Begriff Dienst umfasst eine Einheit von Funktionalität, die einem Basissystem inkrementell hinzugefügt werden kann. Ein Dienst kann Teilnehmern Dienste anbieten, kann aber auch andere Dienste, wie administrative Aufgaben, dem Netzadministrator anbieten. Beispiele derartiger Dienste inkludieren Rufweiterleitung, Warten auf einen Ruf, Sprach-Post, Statistikfunktionen, Rückruf, Videokonferenz, Video auf Nachfrage, Anonymisierungsdienste, automatische Antwort etc. Ein Dienst kann unter Verwendung einer Vielheit von Technologien implementiert werden, z.B. OSA, Java, CGI, Perl, C++, CPL, XML etc.Of the Term service includes a unit of functionality that is one Basic system can be added incrementally. A service may offer services to subscribers, but may also provide other services, how to offer administrative tasks to the network administrator. Examples such services include call forwarding, waiting for one Call, voice mail, statistics, callback, videoconferencing, video on demand, anonymization services, automatic answer etc. A service can be done using a variety of technologies be implemented, e.g. OSA, Java, CGI, Perl, C ++, CPL, XML etc.

In dem Kontext des SIP-Protokolls ist ein Dienst eine Anwendung oder eine Zahl von Anwendungen, die lokal auf einem SIP-Server, z.B. als ein CGI-Skript oder ein CPL-Skript, oder entfernt auf einem Anwendungsserver, der durch den SIP-Server kontaktiert wird, ausgeführt werden. In dem letzteren Fall kann der Dienst unter Verwendung irgendeiner Standardnamenskonvention zugänglich gemacht oder aufgerufen werden, d.h. unter Verwendung von SIP-Anfrage-URIs (SIP-Request-URI). Alternativ können sich die Dienste tatsächlich in dem SIP-Server unter Verwendung z.B. eines 3GPP OSA API Rahmenwerkes selbst registrieren. SIP-Dienste können in veranlassende und abschließende Dienste gruppiert werden, d.h. jene, die mit dem Anrufer und dem Angerufenen in Verbindung stehen.In In the context of the SIP protocol, a service is an application or a number of applications running locally on a SIP server, e.g. when a CGI script or a CPL script, or removed on an application server, which is contacted by the SIP server to be executed. In the latter case, the service may be using any Standard naming convention accessible be made or called, i. using SIP request URIs (SIP Request-URI). Alternatively you can the services actually in the SIP server using e.g. register yourself on a 3GPP OSA API framework. SIP services can in inducing and final Services are grouped, i. those with the caller and the Called contact.

Dienste können auf Bedingungen in einem Nachrichtenheader (Nachrichtenkopf), einem Nachrichtenrumpf, dem SDP oder dergleichen getriggert werden.services can on conditions in a message header (message header), one Message body, the SDP or the like are triggered.

Die Funktionalität des SIP-Servers, die Dienstanwendungen angeboten wird, wird Dienstmerkmale genannt, wie etwa Zugriff auf irgendeine API, z.B. eine serverseitige OSA-API, auf statistische Funktionen oder dergleichen. Dienstmerkmale können ferner Dienstanwendungen sein, die sich in dem SIP-Server registrieren und anschließend ihren Dienst anbieten, um durch andere Dienstanwendungen verwendet zu werden.The functionality SIP server offered to service applications becomes service features called, such as access to any API, e.g. a server-side OSA API, statistical functions or the like. service features can be further service applications that register in the SIP server and subsequently offer their service to be used by other service applications to become.

Es ist ein weiterer Vorteil der Erfindung, dass sie von der Technologie, die für die Implementierung der Dienste verwendet wird, dem Signalisierungsprotokoll und der Plattform unabhängig ist. Daher muss ein Netzbetreiber im voraus die Typen von Diensten nicht kennen, die in dem Dienstnetz aufgestellt werden, wobei dadurch eine robuste und erweiterbare Dienstaufstellungsinfrastruktur vorgesehen wird.It another advantage of the invention is that it is technologically the for the implementation of the services is used, the signaling protocol and the platform independently is. Therefore, a network operator needs to know in advance the types of services Do not know that are placed in the service network, thereby a robust and extensible service deployment infrastructure is provided becomes.

Da die Zahl von Interessengruppen, die wünschen können, ihre eigenen Dienste zu registrieren, sehr groß sein könnte, gibt es eine Notwendigkeit für Skalierbarkeit. Des weiteren kann die Zahl von Teilnehmern, die mit einer Domäne in Verbindung stehen, sehr groß sein, was die Frage von Skalierbarkeit kritisch macht. Dienste können durch viele verschiedene Typen von Ereignissen getriggert und basierend auf einer Vielzahl von unterschiedlichen Bedingungen aufgerufen werden, wie etwa Übereinstimmung von Quell- und Zieladressen, zeitabhängig oder irgendeine andere Vorbedingung. Des weiteren können nicht auf SIP bezogene Dienste in SIP-Ereignissen aufgerufen werden, z.B. falls gewisse Bedingungen zu einem gegebenen Zeitpunkt erfüllt sind. Es können unterschiedliche Diensttechnologien, wie etwa CPL, verwendet werden. Auf SIP bezogene Dienste können in nicht auf SIP bezogenen Ereignissen aufgerufen werden, z.B. HTTP-Ereignisse. Es kann Zehntausende von Diensten geben, die zig Millionen von Teilnehmern angeboten werden können, von Zehntausenden von dritten Dienstanbietern. Folglich ist die Aufgabe zum Managen von Diensten und Dienstinteraktionen eine Aufgabe, die zum Managen für einen Administrator leicht zu groß und kompliziert wird.There the number of stakeholders who may want their own services to register, be very tall could, there is a need for Scalability. Furthermore, the number of participants who with a domain communicate, be very tall, which makes the question of scalability critical. Services can be through many different types of events triggered and based called on a variety of different conditions be like coincidence source and destination addresses, time-dependent or any other Precondition. Furthermore, you can invoke SIP-related services in SIP events, e.g. if certain conditions are met at a given time. It can different service technologies, such as CPL. SIP related services can in non-SIP related events, e.g. HTTP events. There can be tens of thousands of services, tens of millions of subscribers can be offered by tens of thousands of third party service providers. Consequently, the Task to manage services and service interactions a task to manage for an administrator gets too big and complicated.

Gemäß der Erfindung wird die Zahl von Ausführungsregeln in eine Zahl von Regelmodulen gruppiert, wobei jedes Regelmodul eine Zahl von Ausführungsregeln inkludiert; und das Verfahren umfasst ferner die Schritte

  • – Verarbeiten eines ersten der Zahl von Regelmodulen, was zu einer ersten akkumulativ modifizierten Nachricht führt; und
  • – Aufrufen einer Verarbeitung eines zweiten der Zahl von Regelmodulen, was die erste akkumulativ modifizierte Nachricht als eine Eingabe vorsieht.
According to the invention, the number of execution rules is grouped into a number of rule modules, each rule module including a number of execution rules; and the method further comprises the steps
  • Processing a first of the number of rule modules, resulting in a first accumulatively modified message; and
  • Calling a processing of a second of the number of rule modules, which provides the first accumulatively modified message as an input.

Folglich wird das Problem von Merkmalsinteraktion durch Gruppieren der Ausführungsregeln in Regelmodule, d.h. Gruppen von Ausführungsregeln, in das Problem von Merkmalsinteraktion zwischen Merkmalen, die innerhalb des gleichen Regelmoduls aufgerufen werden, und Interaktionen zwischen Regelmodulen gesplittet. Folglich ist es ein Vorteil der Erfindung, dass ein Verfahren zum Managen von Merkmalsinteraktion vorgesehen wird, welches mit der Zahl von Diensten skaliert. Wenn unterschiedliche Dienste durch unterschiedliche Dienstanbieter vorgesehen werden, z.B. unterschiedliche Firmen oder unterschiedliche Organisationsentitäten innerhalb einer Firma, kann insbesondere ein einzelner Anbieter nicht Zugriff auf alle vorgesehenen Dienste haben oder nicht in der Lage sein, sie zu testen. Daher ist es ein Vorteil der Erfindung, dass die Aufgabe zum Analysieren von Merkmalsinteraktionsanalyse gemäß Regelmodulen gesplittet und auf unterschiedliche Anbieter verteilt werden kann. Dies impliziert ferner, dass die Kosten von Dienstmanagement auf unabhängige Seiten delegiert werden können, wie die Zahl von Teilnehmern und Diensten wächst.consequently The problem of feature interaction is by grouping the execution rules in rule modules, i. Groups of execution rules, in the problem of feature interaction between features that are within the same Control modules are called, and interactions between rule modules are split. Consequently, it is an advantage of the invention that a method for Managing feature interaction is provided, which with the Number of services scaled. When different services through different service providers are provided, e.g. different Companies or different organizational entities within a company, In particular, a single provider may not have access to all intended services or not be able to test them. Therefore, it is an advantage of the invention that the task of analyzing split by feature interaction analysis according to rule modules and can be distributed to different providers. This implies Furthermore, the cost of service management on independent sites can be delegated, as the number of participants and services grows.

Die Interessengruppen, die Dienste auf einen SIP-Server hochladen/registrieren und administrieren wünschen können, könnten der Besitzer, Dienstanbieter oder Administrator des SIP-Servers, Netzbetreiber etc. sein. Es könnten auch unterschiedliche Typen von Einzelhändlern, z.B. virtuelle Telekom-Betreiber, Internet-Dienstanbieter etc. sein. Es können auch unterschiedliche Typen von Dienstanbietern sein, wie etwa Anwendungsdienstanbieter, Inhaltsdienstanbieter, Dienst-/Merkmalsanbieter. Auch können private Organisationen, Unternehmen und Teilnehmer mögliche Interessengruppen sein.The stakeholders who may want to upload / register and administer services to a SIP server could be the owner, service provider or administrator of the SIP server, network operator, etc. It could also be different types of retailers, such as virtual telecom operators, Internet service providers, etc. They may also be different types of service providers, such as application service providers, content service providers, service / feature providers. Also, private organizations be possible stakeholders, companies and participants.

Folglich wird gemäß der Erfindung ein flexibles, erweiterbares und skalierbares Management von Vertragsbeziehungen zwischen Interessengruppen erreicht, inkludierend das Management von Abrechnung, Begleichung, Richtlinien und Sicherheit.consequently is according to the invention a flexible, extensible and scalable management of contract relationships reached between interest groups, including the management billing, settlement, policies and security.

Es ist ein weiterer Vorteil der Erfindung, dass sie eine modulare Struktur von Ausführungsregeln vorsieht, wobei dadurch die Einbettung von Dienstprofilen für Benutzer, Benutzergruppen, Teilnehmer etc. ermöglicht wird. Es ist ein weiterer Vorteil der Modularität, dass sie Wiederverwendung von Regelmodulen ermöglicht, wobei dadurch die Wartung der Dienstumgebung weiter erleichtert wird.It Another advantage of the invention is that it has a modular structure of execution rules whereby embedding service profiles for users, User groups, participants, etc. is enabled. It is another Advantage of modularity, that it allows reuse of control modules, thereby reducing maintenance the service environment is further facilitated.

Wenn jedes Regelmodul zu sich eine Priorität zugeordnet hat, die eine Reihenfolge einer Verarbeitung der Zahl von Regelmodulen anzeigt, wird die Reihenfolge einer Regelmodulausführung durch einen einfachen Parameter bestimmt, wobei dadurch leichte und transparente Steuerung über die Reihenfolge einer Ausführung von Regelmodulen vorgesehen wird.If Each rule module has assigned to itself a priority, the one Display the order of processing of the number of rule modules, The order of a rule module execution is given by a simple parameter thereby providing easy and transparent control over the Order of execution is provided by rule modules.

Wenn jedes Regelmodul einem Regelmodulbesitzer entspricht, der autorisiert ist, das Regelmodul zu editieren, kann die administrative Autorität für ein Regelmodul einfach hergestellt werden, wobei die Delegierung administrativer Autori tät, wie etwa Editieren von Regelmodulen, Merkmalsinteraktionsanalyse innerhalb eines Regelmoduls etc. weiter erleichtert wird.If Each rule module corresponds to a rule module owner who authorizes is to edit the rule module, the administrative authority for a rule module be easily prepared, with the delegation administrative Authority, such as editing rule modules, feature interaction analysis is further facilitated within a control module, etc.

Gemäß der Erfindung hat das erste Regelmodul zu sich ein Privileg zugeordnet, das eine Autorität anzeigt, ein Sperrflag zu ändern, das sich auf einen vorbestimmten Teil der akkumulativ modifizierten Nachricht bezieht und spezifiziert, ob der vorbestimmte Teil der akkumulativ modifizierten Nachricht durch Dienste modifiziert werden kann, die von mindestens dem zweiten Regelmodul aufgerufen werden. Folglich wird ein Mechanismus zum expliziten Erlauben oder Verhindern von Änderungen einzelner Attribute oder Gruppen von Attributen der Nachrichten durch nachfolgende Dienste vorgesehen. Daher wird ein effizientes Werkzeug zum Verhindern von Merkmalsinteraktionen wegen dem Ändern des Kontextes von einem Dienst durch einen anderen Dienst vorgesehen. Dieser Typ von Merkmalsinteraktion wird als Verletzung von Merkmalsannahme bezeichnet, die mehrdeutiges oder Konfliktverhalten von Diensten verursachen kann. Da die Autorität, gewisse Attribute zu sperren und/oder freizugeben, mit vorbestimmten Privilegien verknüpft ist, die Regelmodulen zugeordnet sind, kann der Netzbetreiber Missbrauch von Privilegien erfassen und dadurch nicht-autorisiertes Verhalten verhindern, wobei dadurch die Sicherheit des Verfahrens erhöht wird. Privilegienverletzung kann zur Laufzeit erfasst und aufgelöst werden, z.B. durch Benachrichtigung oder Deaktivierung von Diensten.According to the invention the first rule module has assigned to itself a privilege that has a authority indicates to change a blocking flag, which is based on a predetermined part of the accumulatively modified Message refers and specifies whether the predetermined part of accumulatively modified message modified by services can be called by at least the second rule module. Consequently, a mechanism for explicitly allowing or preventing of changes individual attributes or groups of attributes of the messages provided by subsequent services. Therefore, an efficient Tool for preventing feature interactions because of changing the Context of a service provided by another service. This type of feature interaction is called a feature acceptance violation indicates the ambiguous or conflicting behavior of services can cause. As the authority, block and / or release certain attributes with predetermined ones Privileges linked is, the control modules are assigned, the network operator can abuse of privileges and thereby prevent unauthorized behavior, thereby increasing the safety of the process. privileges injury can be detected and resolved at runtime, e.g. by notification or deactivation of services.

Gemäß einer weiteren bevorzugten Ausführungsform der Erfindung umfasst der Schritt zum Aufrufen einer Verarbeitung des zweiten Regelmoduls ferner den Schritt zum Setzen des Sperrflags, um eine Modifikation des vorbestimmten Teils der akkumulativ modifizierten Nachricht durch Dienste zu verhindern, die von dem zweiten Regelmodul aufgerufen werden, es sei denn, dass das Sperrflag durch das erste Regelmodul als nicht gesetzt markiert wurde. Folglich sind die Nachrichtenattribute per Vorgabe für nachfolgende Änderungen gesperrt, wenn die Steuerung von einem Regelmodul zu einem anderen transferiert wird. Daher kann das zweite Regelmodul nur Nachrichtenattribute ändern, die das erste Regelmodul explizit als nicht gesperrt markiert hat, wobei dadurch die Steuerung möglicher Merkmalsinteraktionen zwischen Regelmodulen weiter verbessert wird und eine Merkmalsanalyseaufgabe auf innerhalb der einzelnen Regelmodule eingeschränkt wird. Dies führt zu einer weiter verbesserten Skalierbarkeit.According to one another preferred embodiment The invention comprises the step of invoking a processing the second control module further comprises the step of setting the inhibit flag, to a modification of the predetermined part of the accumulatively modified To prevent message through services provided by the second rule module be called unless the blocking flag is through the first Rule module has been marked as not set. Consequently, the message attributes are by default for subsequent changes Locked when controlling from one controller to another is transferred. Therefore, the second rule engine can only modify message attributes that the first rule module has explicitly marked as not locked, where thereby the control possible Feature interactions between rule modules is further improved and a feature analysis task within within each rule module limited becomes. this leads to to a further improved scalability.

Wenn der Schritt zum Erhalten einer Zahl von Ausführungsregeln ferner den Schritt zum Erfassen einer vorbestimmten Vertragsbeziehung basierend auf Headerinformation der Nachricht; und Auswählen einer Zahl von Regelmodulen basierend auf der erfassten Vertragsbeziehung umfasst, wird ein modulares und skalierbares Verfahren vorgesehen, das die Unterstützung für Betreiber ermöglicht, Dienste dritter und/benutzerdefinierte Dienste zu unterhalten. Da Vertragsbeziehungen auf der Basis von Headerinformation erfasst werden, können jene Dienste dritter oder benutzerdefinierte Dienste, die für eine gegebene Nachricht relevant sind, auf der Basis der erfassten Vertragsbeziehungen identifiziert werden.If the step of obtaining a number of execution rules further comprises the step for detecting a predetermined contract relationship based on Header information of the message; and selecting a number of rule modules is included based on the recorded contract relationship provided a modular and scalable process that provides support to operators allows Services third and / custom services to maintain. There Contractual relationships based on header information recorded can, can those services third or custom services that are for a given Message are relevant, based on the recorded contractual relationships be identified.

Gemäß einer anderen bevorzugten Ausführungsform der Erfindung umfasst der Schritt zum Verarbeiten des ersten Regelmoduls ferner den Schritt zum Aufrufen eines vorbestimmten dritten Regelmoduls. Folglich kann ein Regelmodul andere Regelmodule aufrufen, wodurch ein leistungsfähiges Werkzeug zum Erstellen einer Hierarchie von Regelmodulen vorgesehen und die Skalierbarkeit und Flexibilität der Aufstellungsinfrastruktur weiter verbessert werden. Es ist ein Vorteil der Erfindung, dass sie die Delegierung von einem Regelmodul, das im Besitz einer Seite ist, zu einem anderen Regelmodul, das im Besitz durch eine andere Seite ist, erlaubt. Eine Seite kann Anwendungen in einer Reihenfolge aufrufen, die durch diese Seite als geeignet erachtet wird, und dann die Steuerung zu einer anderen Seite weitergeben, die dann unterschiedliche Anwendungen aufrufen kann. Die erste Seite kann anschließend die Steuerung wiedererlangen, um die Ausgabe von der zweiten Seite zu prüfen. Wenn diese Delegierung erfolgt ist, kann die erste Seite entscheiden, welche Nachrichteneigenschaften in der weitergeleiteten Nachricht nachfolgende Anwendungen ändern können, durch Anzeigen, welche Nachrichteneigenschaften für eine Aktion nicht überschrieben werden können.According to another preferred embodiment of the invention, the step of processing the first control module further comprises the step of calling a predetermined third control module. As a result, a rule module can invoke other rule modules, providing a powerful tool for creating a hierarchy of rule modules, and further improving the scalability and flexibility of the deployment infrastructure. It is an advantage of the invention that it involves the delegation of a rule module owned by one page to another rule module owned by another page is allowed. A page can call applications in an order that is deemed appropriate by that page, and then pass the control to another page that can then invoke different applications. The first page may then regain control to check the output from the second page. When this delegation has occurred, the first page can decide which message properties in the forwarded message can change subsequent applications by indicating which message properties for an action can not be overridden.

Es ist ein Vorteil der Erfindung, dass sie eine hierarchische Delegierung administrativer Autorität basierend auf der Fähigkeit erlaubt, Regelmodule von innerhalb anderer Regelmodule zu triggern und Nachrichteneigenschaften zu sperren.It One advantage of the invention is that it provides a hierarchical delegation administrative authority based on the ability allows to trigger control modules from within other control modules and lock message properties.

Wenn sich die ersten und zweiten Regelmodule auf jeweilige erste und zweite Zugriffssteuerlisten beziehen, die Zugriffsrechte auf den entsprechenden ersten oder zweiten Regelmodul spezifizieren, kann die Verletzung von Zugriffsrechten erfasst und aufgelöst werden, wobei dadurch die Sicherheit des Verfahrens weiter verbessert wird.If the first and second control modules relate to respective first and second second access control lists relate the access rights to the can specify corresponding first or second control module the violation of access rights are recorded and resolved, thereby further improving the safety of the process.

Wenn die ersten und zweiten Regelmodule jeweilige erste und zweite Skripte in einer vorbestimmten Auszeichnungssprache umfassen, wird eine einfache Sprache zum Schreiben von Regelmodulen vorgesehen. Daher ist es für einen Administrator leicht zu verstehen, wie Regeln auszudrücken sind und worin die Bedeutung der Regeln besteht, wobei dadurch ein einfacher Mechanismus zum Erweitern der Basisdefinition der Regelsprache mit proprietären Funktionen vorgesehen wird. Ein Beispiel einer derartigen Sprachdefinition ist XML.If the first and second rule modules have respective first and second scripts in a predetermined markup language, a simple language intended for writing rule modules. Therefore is it for An administrator can easily understand how to express rules and where the meaning of the rules is, thereby making a simpler Mechanism for extending the base definition of the rule language with proprietary Functions is provided. An example of such a language definition is XML.

Es ist ein weiterer Vorteil der Erfindung, dass sie ein erweiterbares Rahmenwerk vorsieht, d.h. es ist leicht, Proto kolle, Diensttechnologien und Nachrichteneigenschaften hinzuzufügen, z.B. falls SIP eine neue Methode hinzugefügt wird.It Another advantage of the invention is that it is an extensible one Framework, i. it is easy, protocols, service technologies and add message properties, e.g. if SIP is a new method added becomes.

Es ist ein weiterer Vorteil der Erfindung, dass sie ein skalierbares Rahmenwerk vorsieht, d.h. es ist der gleiche Weg zum Ausdrücken von Regeln in großen ISP-Netzen und kleinen Endbenutzereinrichtungen, z.B. 3G Zellen-Telefonen, möglich.It Another advantage of the invention is that it is a scalable one Framework, i. it's the same way to express Rules in big ISP networks and small end-user devices, e.g. 3G cell phones, possible.

Gemäß einer anderen bevorzugten Ausführungsform der Erfindung umfasst die Nachricht eine erste und zweite Menge von Attributen; die Ausführungsregeln sind in mindestens eine erste und eine zweite Verarbeitungsklasse von Ausführungsregeln gemäß entsprechenden Beschränkungen gruppiert, wobei die zweite Verarbeitungsklasse eingeschränkt ist, nur Attribute der zweiten Menge von Attributen zu modifizieren; und der Schritt zum Verarbeiten der Ausführungsregeln umfasst ferner den Schritt zum Verarbeiten der Ausführungsregeln der ersten Verarbeitungsklasse vor einer Verarbeitung einer jeglichen Ausführungsregel der zweiten Verarbeitungsklasse. Folglich sind die Dienste in Gruppen mit vorbestimmtem Verhalten im Sinne davon unterteilt, welche Teile der Signalisierungsnachrichten sie aktualisieren. Daher können sich die Dienste darauf verlassen, dass die erste Menge von Nachrichtenattributen nach der Ausführung der ersten Verarbeitungsklasse nicht geändert wird. Dies sieht einen weiteren Mechanismus zum Auf splitten der Aufgabe von Merkmalsinteraktionsanalyse in verwaltbare Teilaufgaben vor. Im Folgenden werden die Verarbeitungsklassen auch als Verarbeitungspunkte bezeichnet. Die Mengen von Attributen können Nachrichtenheaderinformation und einen Nachrichtenrumpf umfassen, der den tatsächlichen Sitzungsinhalt umfasst. Die Attribute können ferner in unterschiedliche Typen von Headerinformation gesplittet sein, z.B. Signalisierungsattribute etc.According to one another preferred embodiment According to the invention, the message comprises a first and second set of attributes; the execution rules are in at least a first and a second processing class of execution rules according to appropriate restrictions grouped, with the second processing class being restricted, modify only attributes of the second set of attributes; and the step of processing the execution rules further comprises the step of processing the execution rules of the first processing class before processing any execution rule of the second processing class. Consequently, the services are in groups with predetermined behavior divided in terms of which parts of the signaling messages they update. Therefore, you can the services rely on that the first set of message attributes after the execution the first processing class is not changed. This one sees another mechanism for splitting up the task of feature interaction analysis in manageable subtasks. The following are the processing classes also referred to as processing points. The sets of attributes can Include message header information and a message body, the actual Session content includes. The attributes can also be different Types of header information may be split, e.g. signaling attributes Etc.

Es ist ein weiterer Vorteil der Erfindung, dass sie Mittel zum Spezifizieren vorsieht, wie Anwendungen erlaubt wird zu interagieren.It Another advantage of the invention is that it has means for specifying Provides how applications will be allowed to interact.

Vorzugsweise werden die Verarbeitungsklassen in einer vorbestimmten Reihenfolge für Anfragen und Antworten verarbeitet und auf veranlassende, abschließende und "weitergeleitet durch" Dienste angewendet.Preferably the processing classes are in a predetermined order for inquiries and responses processed and applied to initiating, terminating and "forwarded by" services.

Gemäß einer weiteren bevorzugten Ausführungsform der Erfindung umfasst die Nachricht eine erste und eine zweite Menge von Attributen; die Ausführungsregeln sind in mindestens eine erste und eine zweite Verarbeitungsklasse von Ausführungsregeln gemäß entsprechenden Beschränkungen gruppiert, wobei die zweite Verarbeitungsklasse beschränkt ist, nur Attribute der zweiten Menge von Attributen zu modifizieren; und das Verfahren umfasst ferner den Schritt zum Wiederholen der Schritte zum Verarbeiten des ersten Regelmoduls und Aufrufen einer Verarbeitung des zweiten Regelmoduls, wobei in jeder Wiederholung die Verarbeitung der ersten und zweiten Regelmodule auf Ausführungsregeln einer entsprechenden Verarbeitungsklasse begrenzt ist, und wobei jede Wiederholung zu einer entsprechenden akkumulativ modifizierten Nachricht führt, die als eine Eingabe für eine nachfolgende Wiederholung verwendet wird. Folglich wird eine Kombination der Unterteilung in Regelmodule mit dem Konzept von Verarbeitungsklassen vorgesehen, wobei dadurch ein fein granuliertes Rahmenwerk zum Unterteilen der Dienste gemäß administrativem Besitz und Einschränkungen, die den Diensten auferlegt sind, vorgesehen wird.According to another preferred embodiment of the invention, the message comprises a first and a second set of attributes; the execution rules are grouped into at least a first and a second processing class of execution rules according to respective constraints, the second processing class being constrained to modify only attributes of the second set of attributes; and the method further comprises the step of repeating the steps of processing the first rule module and invoking processing of the second rule module, wherein in each repetition the processing of the first and second rule modules is limited to execution rules of a corresponding processing class, and wherein each repetition is a corresponding one accumulated modified message leads, which is used as an input for a subsequent repetition. Thus, a combination of subdivision into rule modules is provided with the concept of processing classes, thereby providing a finely granular framework for subdividing the services according to administrative ownership and restrictions imposed on the services.

Wenn die Verarbeitungsklassen getrennt für Ausführungsregeln definiert sind, die durch Anfragen und Antworten des Sitzungsprotokolls getriggert werden, wird die Unterteilung von Diensten in Verarbeitungsklassen ferner gemäß dem Typ einer Nachricht auf gesplittet, wobei dadurch ein feiner granuliertes Splitten vorgesehen wird.If the processing classes are defined separately for execution rules, triggered by requests and responses of the session log will be the subdivision of services into processing classes furthermore according to the type split a message, whereby a fine granulated Splitting is provided.

Gemäß einer bevorzugten Ausführungsform entsprechen die Verarbeitungsklassen vorbestimmten Standorten in einem Rundlaufnachrichtenfluss gemäß dem Sitzungsprotokoll, wobei dadurch die Analyse von Merkmalsinteraktion vereinfacht wird.According to one preferred embodiment the processing classes correspond to predetermined locations in a round trip message flow according to the session protocol, wherein this simplifies the analysis of feature interaction.

Vorzugsweise inkludieren die Verarbeitungsklassen eine erste Verarbeitungsklasse von Ausführungsregeln, die Signalisierungseigenschaften der Nachricht beeinflussen, eine zweite Verarbeitungsklasse von Ausführungsregeln, die einen Nicht-Signalisierungsnachrichtenrumpfinhalt der Nachricht beeinflussen, und eine dritte Verarbeitungsklasse von Ausführungsregeln, die weder die Signalisierungseigenschaften noch den Nicht-Signalisierungsnachrichtenrumpfinhalt der Nachricht beeinflussen. Hier umfasst der Begriff Signalisierungseigenschaften SIP- und SDP-Nachrichteneigenschaften, die in einer Regelmodulbedingung angepasst werden können, um einen Dienst aufzurufen.Preferably the processing classes include a first processing class of execution rules, affect the signaling properties of the message, a second processing class of execution rules containing a non-signaling message body content affect the message, and a third processing class of execution rules, neither the signaling properties nor the non-signaling message body content to influence the message. Here the term includes signaling properties SIP and SDP message properties that are in a rule module condition can be adjusted to call a service.

Wenn eine resultierende modifizierte Nachricht generiert wird, wenn alle Ausführungsregeln der ersten und zweiten Verarbeitungsklassen verarbeitet sind, wird die Effizienz des Verfahrens weiter erhöht, da Antworten zurückgegeben werden können, ohne auf Dienste der dritten Verarbeitungsklasse warten zu müssen.If a resulting modified message is generated if all execution rules the first and second processing classes are processed The efficiency of the process further increases since answers are returned can be without having to wait for services of the third processing class.

Gemäß einer anderen bevorzugten Ausführungsform der Erfindung führt Aufrufen des ersten Dienstes ferner zu einer zweiten modifizierten Nachricht; und das Verfahren umfasst ferner die Schritte zum Verarbeiten nachfolgender Ausführungsregeln mit der ersten modifizierten Nachricht als eine Eingabe; und Verarbeiten nachfolgender Ausführungsregeln mit der zweiten modifizierten Nachricht als eine Eingabe. Da ein Dienst unter schiedliche Ausgaben zurückgeben kann, von denen jede eine Eingabe zu einer Kette von nachfolgenden Diensten ist, kann daher ein Baum von kaskadierten Ketten von Diensten implementiert werden.According to one another preferred embodiment the invention leads Calling the first service further to a second modified one Message; and the method further comprises the steps of processing the following execution rules with the first modified message as an input; and processing subsequent execution rules with the second modified message as an input. There a Service can return under different expenses, each of which is an input to a chain of subsequent services therefore implemented a tree of cascaded chains of services become.

Gemäß noch einer anderen bevorzugten Ausführungsform der Erfindung umfasst das Verfahren ferner die Schritte von

  • – Speichern von Information darüber, welche Dienste ausgeführt werden, und Information darüber, in welcher Reihenfolge die Dienste ausgeführt werden;
  • – Empfangen von dem ersten Dienst einer Anfrage zum Rückgeben einer Benachrichtigung an den ersten Dienst, falls ein vorbestimmtes Ereignis auftritt;
  • – Speichern der Anfrage in Bezug auf die gespeicherte Information; und
  • – beim Auftreten des Ereignisses Benachrichtigen des ersten Dienstes gemäß der gespeicherten Information.
According to yet another preferred embodiment of the invention, the method further comprises the steps of
  • Storing information about which services are executed and information about the order in which the services are executed;
  • Receiving from the first service a request to return a notification to the first service if a predetermined event occurs;
  • Storing the request with respect to the stored information; and
  • Upon the occurrence of the event, notifying the first service according to the stored information.

Daher wird ein effizienter Mechanismus zum Anfordern einer Benachrichtigung über zukünftige Ereignisse durch eine Dienstanwendung vorgesehen, wobei dadurch Überwachen von Anwendungen ermöglicht wird etc.Therefore becomes an efficient mechanism for requesting notification of future events provided by a service application, thereby monitoring of applications Etc.

Wenn die Ausführungsmodule computerlesbare Skripte umfassen und die vorbestimmte Reihenfolge einer Verarbeitung der Ausführungsregeln durch die Reihenfolge von Ausführungsregeln in den Skripten bestimmt wird, wird ein einfacher Mechanismus zum Steuern der Reihenfolge einer Dienstausführung und der Reihenfolge einer Benachrichtigung bezüglich zukünftiger Ereignisse durch einen Administrator eines Regelmoduls vorgesehen.If the execution modules Computer readable scripts include and the predetermined order of a Processing of execution rules by the order of execution rules is determined in the scripts, a simple mechanism for Control the order of a service execution and the order of a Notification regarding future Events provided by an administrator of a rule module.

Vorzugsweise wird die kaskadierte Reihenfolge von Diensten durch die Reihenfolge von Ausführungsregeln innerhalb eines Regelmoduls und die Reihenfolge von Regelmodulen bestimmt.Preferably is the cascaded order of services by the order of execution rules within a rule module and the order of rule modules certainly.

Wenn die Ausführungsregeln angepasst sind, dynamisch aktualisiert zu werden, d.h. während eines Betriebs des Dienstnetzes, wird ein Echtzeitdienstmanagement vorgesehen.If the execution rules are adapted to be dynamically updated, i. during a business the service network, a real-time service management is provided.

Die Erfindung bezieht sich ferner auf ein Datenverarbeitungssystem, umfassend ein Dienstausführungsumgebungsmodul, angepasst, eine Vielzahl von Diensten aufzurufen, getriggert durch eine Nachricht eines Sitzungsprotokolls, das eine Kommunikationssitzung steuert;
gekennzeichnet dadurch, dass
das Datenverarbeitungssystem ferner ein Speichermedium umfasst, angepasst, eine Vielzahl von Ausführungsregeln zu speichern, jede von denen eine Bedingung zum Aufrufen eines Dienstes spezifiziert; und
das Dienstausführungsumgebungsmodul ein Regelantriebsmodul umfasst, angepasst

  • – eine Zahl von Ausführungsregeln abzufragen; und
  • – die Ausführungsregeln in einer vorbestimmten Reihenfolge zu verarbeiten, wobei eine erste Ausführungsregel bewirkt, dass ein erster Dienst aufzurufen ist, falls die Nachricht eine erste Bedingung erfüllt, was zu einer ersten modifizierten Nachricht führt; und eine zweite Ausführungsregel, die bewirkt, dass ein zweiter Dienst mit der ersten modifizierten Nachricht als eine Eingabe aufzurufen ist, falls die erste modifizierte Nachricht eine zweite Bedingung erfüllt.
The invention further relates to a data processing system comprising a service implementation environment module, adapted to invoke a plurality of services triggered by a session log message that controls a communication session;
characterized in that
the data processing system further comprises a storage medium adapted to store a plurality of execution rules, each of which specifies a condition for invoking a service; and
the service execution environment module includes a rule engine module
  • - to query a number of execution rules; and
  • To process the execution rules in a predetermined order, wherein a first execution rule causes a first service to be invoked if the message satisfies a first condition, resulting in a first modified message; and a second execution rule that causes a second service to be invoked with the first modified message as an input if the first modified message satisfies a second condition.

Die Erfindung bezieht sich ferner, in einem Datenverarbeitungssystem, auf ein Dienstausführungsumgebungsmodul, angepasst, eine Vielzahl von Diensten aufzurufen, getriggert durch eine Nachricht eines Sitzungsprotokolls, das eine Kommunikationssitzung steuert;
gekennzeichnet dadurch, dass
das Dienstausführungsumgebungsmodul ein Regelantriebsmodul umfasst, angepasst

  • – eine Zahl von Ausführungsregeln abzufragen, von denen jede eine Bedingung zum Aufrufen eines Dienstes spezifiziert;
  • – die Ausführungsregeln in einer vorbestimmten Reihenfolge zu verarbeiten, wobei eine erste Ausführungsregel bewirkt, dass ein erster Dienst aufzurufen ist, falls die Nachricht eine erste Bedingung erfüllt, was zu einer ersten modifizierten Nachricht führt; und eine zweite Ausführungsregel bewirkt, dass ein zweiter Dienst mit der ersten modifizierten Nachricht als eine Eingabe aufzurufen ist, falls die erste modifizierte Nachricht eine zweite Bedingung erfüllt.
The invention further relates, in a data processing system, to a service execution environment module, adapted to invoke a plurality of services triggered by a session log message that controls a communication session;
characterized in that
the service execution environment module includes a rule engine module
  • To query a number of execution rules, each of which specifies a condition for calling a service;
  • To process the execution rules in a predetermined order, wherein a first execution rule causes a first service to be invoked if the message satisfies a first condition, resulting in a first modified message; and a second execution rule causes a second service to be invoked with the first modified message as an input if the first modified message satisfies a second condition.

Die Erfindung bezieht sich ferner auf ein Softwareprogramm, umfassend Codemittel, angepasst, wenn in einem Datenverarbeitungssystem ausgeführt, die Schritte des oben beschriebenen Verfahrens und in dem folgenden durchzuführen.The The invention further relates to a software program comprising Code means, adapted when executed in a data processing system, the Steps of the method described above and in the following perform.

Das Softwareprogramm kann auf einem computerlesbaren Medium verkörpert sein. Der Begriff computerlesbares Medium kann inkludieren ein magnetisches Band, eine optische Platte, eine digitale Videoplatte (DVD), eine Kompaktdisk (CD oder CD- ROM), eine Minidisk, eine Festplatte, eine Diskette, einen ferro-elektrischen Speicher, einen elektrisch löschbaren programmierbaren Nur-Lesespeicher (EEPROM), einen Flash-Speicher, einen EPROM, einen Nur-Lesespeicher (ROM), einen statischen Speicher mit wahlfreiem Zugriff (SRAM), einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM), einen synchronen dynamischen Speicher mit wahlfreiem Zugriff (SDRAM), einen ferromagnetischen Speicher, einen optischen Speicher, ladungsgekoppelte Einrichtungen, Smart-Karten, eine PCMCIA-Karte etc.The Software program may be embodied on a computer readable medium. The term computer-readable medium can include a magnetic one Tape, an optical disk, a digital video disk (DVD), a Compact disc (CD or CD-ROM), a mini disk, a hard disk, a floppy disk, a ferro-electric Memory, an electrically erasable programmable read-only memory (EEPROM), a flash memory, an EPROM, a read-only memory (ROM), a static memory Random Access Memory (SRAM), a dynamic random access memory Access (DRAM), a synchronous dynamic random access memory Access (SDRAM), a ferromagnetic memory, an optical Memory, charge-coupled devices, smart cards, a PCMCIA card, etc.

Die Erfindung bezieht sich ferner auf ein Verfahren zum Managen der Aufstellung eines Dienstes in einem Dienstnetz, wobei das Verfahren die Schritte umfasst zum

  • – Spezifizieren in einem computerlesbaren Skript einer Zahl von Privilegien und Rechten, die dem Dienst während einer Operation zu gewähren sind;
  • – Analysieren von potenziellen Ursachen von Merkmalsinteraktion;
  • – Spezifizieren einer Aufstellungsstrategie für den Dienst als eine Menge von Ausführungsregeln, die als ein computerlesbares Regelmodulskript gespeichert werden.
The invention further relates to a method for managing the establishment of a service in a service network, the method comprising the steps of
  • Specifying, in a computer readable script, a number of privileges and rights to be granted to the service during an operation;
  • - Analyze potential causes of feature interaction;
  • Specifying a deployment strategy for the service as a set of execution rules stored as a computer-readable rule module script.

Die Erfindung bezieht sich ferner auf einen Datensatz, umfassend ein Regelmodul zur Verwendung in dem oben beschriebenen Verfahren und in dem folgenden.The The invention further relates to a data set comprising Control module for use in the method described above and in the following.

Diese und andere Aspekte der Erfindung werden offensichtlich aus den und erklärt mit Bezug auf die Ausführungsformen und mit Bezug auf die Zeichnungen, in denen:These and other aspects of the invention will become apparent from FIGS explained with reference to the embodiments and with reference to the drawings, in which:

1 unterschiedliche Typen von Merkmalsinteraktionen in einem SIP-Dienstnetz veranschaulicht; 1 illustrates different types of feature interactions in a SIP service network;

2 die Netzelemente veranschaulicht, die in einer Dienstumgebungs-SIP-Serverarchitektur gemäß einer Ausführungsform der Erfindung involviert sind; 2 illustrates the network elements involved in a service environment SIP server architecture according to one embodiment of the invention;

3 schematisch eine Systemarchitektur eines SIP-Servers veranschaulicht, die einen Dienstausführungsregelmechanismus gemäß einer Ausführungsform der Erfindung unterstützt; 3 schematically illustrates a system architecture of a SIP server supporting a service execution rule mechanism according to an embodiment of the invention;

4 die Struktur eines Regelmoduls gemäß einer Ausführungsform der Erfindung veranschaulicht; 4 illustrates the structure of a control module according to an embodiment of the invention;

5 die Gruppierung von Diensten in eingeschränkte Mengen von Diensten gemäß einer Ausführungsform der Erfindung veranschaulicht; 5 illustrates the grouping of services into limited amounts of services according to an embodiment of the invention;

6 die Gruppierung von Diensten in eingeschränkte Mengen von Diensten entsprechend Standorten in dem Rundlauf-SIP-Nachrichtenfluss gemäß einer bevorzugten Ausführungsform der Erfindung veranschaulicht; 6 illustrates the grouping of services into restricted sets of services corresponding to locations in the ROI SIP message flow in accordance with a preferred embodiment of the invention;

7 den Verarbeitungsfluss zwischen Diensten, die zu unterschiedlichen Verarbeitungspunkten gehören, gemäß einer Ausführungsform der Erfindung veranschaulicht; 7 illustrates the flow of processing between services belonging to different processing points according to an embodiment of the invention;

8 die Gruppierung von Diensten in Regelmodule entsprechend administrativer Autorität gemäß einer Ausführungsform der Erfindung veranschaulicht; 8th illustrates the grouping of services into rule modules according to administrative authority according to an embodiment of the invention;

9 eine Ausführungsform der Erfindung veranschaulicht, wo Dienste sowohl gemäß Verarbeitungspunkten als auch gemäß administrativer Autorität gruppiert werden; 9 an embodiment of the invention illustrates where services are grouped according to both processing points and administrative authority;

10 den Verarbeitungsmechanismus der Ausführungsform von 9 im Fall mehrerer Regelmodule und mehrerer Verarbeitungspunkte veranschaulicht; 10 the processing mechanism of the embodiment of 9 illustrated in the case of multiple rule modules and multiple processing points;

11 ein anderes Beispiel der Verarbeitungsregeln veranschaulicht, die in Verbindung mit 9 beschrieben werden; 11 illustrates another example of the processing rules used in conjunction with 9 to be discribed;

12 eine hierarchische Regelmodulverarbeitung gemäß einer bevorzugten Ausführungsform der Erfindung veranschaulicht; 12 illustrates hierarchical rule module processing according to a preferred embodiment of the invention;

13 ein Beispiel des Flusses von SIP-Nachrichtenereigniskontexten und Instruktionsmengen gemäß einer Ausführungsform der Erfindung zeigt; 13 shows an example of the flow of SIP message event contexts and instruction sets according to an embodiment of the invention;

14 einen Mechanismus zum Managen mehrerer Instruktionsmengen gemäß einer bevorzugten Ausführungsform der Erfindung veranschaulicht; 14 illustrates a mechanism for managing multiple instruction sets in accordance with a preferred embodiment of the invention;

15 einen Baum von kaskadierten Ketten von Dienstanwendungen gemäß einer Ausführungsform der Erfindung veranschaulicht; 15 illustrates a tree of cascaded chains of service applications in accordance with an embodiment of the invention;

16 die Softwarekomponenten einer Dienstunterstützungsumgebung gemäß einer Ausführungsform der Erfindung zeigt; 16 shows the software components of a service support environment according to an embodiment of the invention;

17 Schritte zeigt, die durch das Dienstinteraktionsmodul durchgeführt werden, zwischen der Verarbeitung des Regelmoduls und der Verarbeitung der Dienstanwendung in der Ausführungsform von 16; 17 Steps performed by the service interaction module between the processing of the rule module and the processing of the service application in the embodiment of FIG 16 ;

18 die Baumstruktur der Verarbeitung von Regelmodulen gemäß einer Ausführungsform der Erfindung veranschaulicht; 18 illustrates the tree structure of processing rule modules according to an embodiment of the invention;

19 die rekursive Verarbeitung von Regelmodulen in einer Situation, wo Dienstanwendungen neue Ereigniskontexte gene rieren, gemäß einer Ausführungsform der Erfindung veranschaulicht; und 19 recursive processing of rule modules in a situation where service applications generate new event contexts according to an embodiment of the invention; and

20 einen Mechanismus zum Durchsetzen einer Zugriffssteuerung in Verbindung mit Regelmodulen gemäß einer Ausführungsform der Erfindung veranschaulicht. 20 illustrates a mechanism for enforcing access control in conjunction with rule modules according to one embodiment of the invention.

1 veranschaulicht unterschiedliche Typen von Merkmalsinteraktionen in einem SIP-Dienstnetz. Mit der Einführung von SIP entsteht ein neuer Bereich von Konversations- und Echtzeitdiensten in dem Internet. Diese Dienste 101105 können durch Endbenutzerendgeräte 106108, auch Benutzeragenten (UA) genannt, oder einen oder mehrere Zwischennetzserver 109 gemanagt werden. Zwischenserver 109 können Mehrwertdienste 102103 zu veranlassenden und/oder abschließenden Benutzeragenten vorsehen, aber auch zu dem zugehörigen Medienclient und Serveranwendung(en). Diese Zwischenserver können Proxyserver, Umlenkungsserver, dedizierte Anwendungsserver oder sogar Benutzeragenten sein. 1 illustrates different types of feature interactions in a SIP service network. With the introduction of SIP, a new range of conversational and real-time services is emerging on the Internet. These services 101 - 105 can through end user terminals 106 - 108 , also called user agents (UA), or one or more intermediate network servers 109 be managed. between server 109 can value-added services 102 - 103 Provide user agents to initiate and / or terminate, but also to the associated media client and server application (s). These intermediate servers can be proxy servers, redirection servers, dedicated application servers, or even user agents.

Kommunikationsnachrichten, die zwischen den Benutzeragenten gesendet werden, werden durch den Zwischenserver 109 über das Internet 110 oder ein anderes Kommunikationsnetz weitergeleitet. Ein fundamentales Problem, das durch einen Zwischen-SIP-Server 109 gemanagt wird, besteht darin, die Erwartungen einer Dienstebene eines Benutzers zu erfüllen, um gutes Netzleistungsverhalten aufrechtzuerhalten und eine flexible und skalierbare Definition von neuen Diensten zu erlauben. Da Leistungsverhalten ein Schlüsselproblem ist, sollte die Architektur einigen Diensten erlauben, auf dem SIP-Server ausgeführt zu werden. Da es nicht machbar oder möglich sein kann, gewisse Dienste auf dem SIP-Server auszuführen, sollte die Architektur ebenso erlauben, dass Dienste auf entfernten Servern ausgeführt werden.Communication messages sent between the user agents are sent by the between server 109 over the internet 110 or another communication network forwarded. A fundamental problem caused by an intermediate SIP server 109 is managed to meet the expectations of a user's service level to maintain good network performance and to allow flexible and scalable definition of new services. Because performance is a key issue, the architecture should allow some services to run on the SIP server. Since it may not be feasible or possible to perform certain services on the SIP server, the architecture should also allow services to be run on remote servers.

Es gibt eine Notwendigkeit für Flexibilität von Dienstdefinition, da die Funktionalität des SIP-Servers nicht im voraus definiert werden sollte. Insbesondere können Dienste kontinuierlich von einem Bereich von Quellen, inkludierend Dienstanbieter und Teilnehmer, hochgeladen/registriert werden.It there is a need for flexibility of service definition, since the functionality of the SIP server is not in the should be defined in advance. In particular, services can be continuous from a range of sources, including service providers and subscribers, uploaded / registered.

Der Besitzer des SIP-Servers kann zur gleichen Zeit der SIP-Dienstanbieter, Administrator und Abonnementanbieter sein. Diese Interessengruppe wird als ein Netzbetreiber bezeichnet; es kann eine Art von Telco oder ISP sein. Der Netzbetreiber kann den Domänennamen des SIP-Servers besitzen und Dienstanbietern einer dritten Seite Dienstmerkmale bereitstellen. Der Netzbetreiber installiert Dienstanwendungen und Regelmodule auf dem SIP-Server und bietet Teilnehmern Dienste an. In diesem Fall agiert der Netzbetreiber als ein Dienstanbieter und Dienstadministrator. Ein Teilnehmer hat eine vertragliche Beziehung mit dem Netzbetreiber, um ein Abonnement zu haben und um die Teilnehmerdienste zu empfangen, die durch den SIP-Server angeboten werden. Der Teilnehmer kann einen Dienst haben, der dem Teilnehmer erlaubt, Dienstanwendungen und Regelmodule zu dem SIP-Server hochzuladen. Der Teilnehmer besitzt diese Dienste für einen privaten Gebrauch, d.h. personalisierte Dienste. Zur Einfachheit werden alle Seiten mit Ausnahme des (der) Netzbetreiber(s) und der Teilnehmer als Dienstanbieter einer dritten Seite bezeichnet, die eine vertragliche Beziehung mit dem Netzbetreiber haben.Of the Owner of the SIP server can at the same time the SIP service provider, administrator and subscription providers. This interest group is called a Network operator; it can be a type of Telco or ISP. The network operator can change the domain name of the SIP server and third-party service providers Provide service features. The network operator installs service applications and rule modules on the SIP server and offers subscribers services at. In this case, the network operator acts as a service provider and service administrator. A participant has a contractual relationship with the network operator to have a subscription and to the subscriber services to receive that offered by the SIP server become. The subscriber may have a service that is available to the subscriber allows to upload service applications and rule modules to the SIP server. The participant owns these services for private use, i.e. personalized services. Simplicity becomes all sides with the exception of the network operator (s) and the subscriber as service provider a third page designates a contractual relationship with the network operator.

Netzserverbesitzer, Netzserveranbieter, Netzserveradministratoren, Dienstanbieter einer dritten Seite und Teilnehmer betrachten die Zwischen-SIP-Server als eine potenzielle Plattform zum Aufstellen von Diensten, die aus dem einen oder anderen Grund nicht in Endpunktbenutzeragenten aufgestellt werden können oder sollten.Network server owners Network server providers, network server administrators, service providers of one third party and participants look at the intermediate SIP server as a potential platform for setting up services that for one reason or another, not in endpoint user agents can be set up or should.

Es gibt einen Bereich von standardisierten Protokollen (z.B. SIP, SDP, SOAP), Sprachen (z.B. CPL) und Schnittstellen (z.B. SIP-CGI, 3GPP OSA API), die unterschiedliche Aspekte einer Dienststeuerung handhaben. Auch ist es wahrscheinlich, dass Dienste ihre Steuerung über mehrere Protokolle, Netzkomponenten, Sprachen und Schnittstellen anwenden. Der SIP-Server sollte erweiterbar sein, um alle diese Aspekte wie erforderlich zu unterstützen. Diese Dienstanwendungen können sich im Besitz unterschiedlicher Seiten befinden, die unterschiedliche Autorisierungsstufen und unterschiedliche vertragliche Beziehungen mit dem Besitzer des SIP-Servers haben. Die Dienstanwendungen können der Vorgabeverarbeitung von SIP-Anfragen und Antworten in unterschiedlichen spezifizierten Ruf-/Sitzungsverarbeitungspunkten, unter unterschiedlichen Bedingungen etc. einen Wert hinzufügen (sind aber nicht darauf begrenzt, dies zu tun).It gives a range of standardized protocols (e.g., SIP, SDP, SOAP), languages (e.g., CPL), and interfaces (e.g., SIP-CGI, 3GPP OSA API) that handle different aspects of service control. Also, it is likely that services have their control over several Use protocols, network components, languages and interfaces. The SIP server should be extensible to all these aspects like required to assist. These service applications can owned by different sites that have different Authorization levels and different contractual relationships with the owner of the SIP server. The service applications can use the Default processing of SIP requests and responses in different specified call / session processing points, under different conditions, etc. add a value (are but not limited to doing so).

Das folgende Beispiel veranschaulicht, dass es wahrscheinlich ist, dass mehrere Dienste basierend auf einem SIP-Ereignis aufgerufen werden können. Es wird ein Beispiel betrachtet, wo ein Teilnehmer, sagen wir Bob, ein SIP-Abonnement mit irgendeinem SIP-Anbieter, sagen wir Telco, hat. Bob hat einen Bereich von Diensten, die der in dem Netz platzieren möchte. Dienste, wie endgeräteunabhängige Dienste oder Dienste, die zu welchem auch immer Endgerät maßgeschneidert werden, welches Bob gegenwärtig verwendet. Es kann auch Dienste geben, die Bob mit Sicherheit, Privatsphäre und Zuverlässigkeit versehen. Auch wünscht Bob nicht, seine eigenen Dienste zu managen. Es wird ferner angenommen, dass Bob in einer Firma arbeitet, sagen wir Corp. Die Dienste, die aufgerufen werden, um eine eingehende EINLADEN-Nachricht an Bob zu managen, können wie folgt aussehen:
Die Telco kann den SIP-Server besitzen und administrieren. Die Telco stellt auch Teilnehmern SIP-Dienste bereit und un terhält Dienste dritter Seiten. Die Telco erkennt, dass Bob ein Teilnehmer in einem eingehenden EINLADEN ist. Der erste Dienst ist eine Telco-Rufsperranwendung um zu prüfen, ob Bob seine letzte Rechnung bezahlt hat. Der zweite Dienst ist ein Dienst, der durch die Telco bereitgestellt wird. Er prüft einfach, dass die Medien-Codecs des Anrufers durch Bob's gegenwärtigen Standort/Endgerät gehandhabt werden können. Falls nicht, wird die Anwendung einen Medienstromkonverter in den Medienstromfluss anfordern (unter Verwendung einer Rufsteuerung einer dritten Seite). Diese Konvertierung ist für Bob transparent, und die Anwendung wird Antworten von Bob überwachen und die Sitzungsbeschreibungen je nach Notwendigkeit aktualisieren. Der dritte Dienst sind Bob's eigene Präferenzen für Angerufene, z.B. ein CPL-Skript. Diese Anwendung überwacht Antworten auf die bevollmächtigte Anfrage und leitet basierend darauf möglicherweise das EINLADEN zu mehreren Zielen weiter. Sagen wir, das EINLADEN ist zu Bob's gegenwärtigen privaten SIP URL. Bei "keine Antwort" wird das EINLADEN stellvertretend zu seiner Frau Alice gegeben. In einigen Fällen wünscht Bob, dass alle privaten Anrufe zu seinem Firmen-SIP-URL umgelenkt werden. Der vierte Dienst ist auch ein Telco-Dienst, wird aber zu der Telco von einem Anwendungsdienstanbieter einer dritten Seite bereitgestellt, sagen wir besafe.com. Dieser Dienst prüft Nachrichtenrumpfinhalttypen und stellt eine Virusprüfung bereit, wenn benötigt, z.B. falls eine animierte vCard inkludiert ist. Der fünfte Dienst ist ein ISP-Dienst, der die Multimediawerbung des Angerufenen im Gegenzug zu einer Erstattung der Abrechnung der Telco anbietet. Falls die Sitzung hergestellt wird, und falls es eine Videokonferenzsitzung ist, empfängt Bob einen kleinen fließenden Balken von Information unten in dem Videobild. Dieser Dienst ist eine Überwachungsanwendung und verwendet eine Rufsteuerung einer dritten Seite. Der ISP hat ein Konto auf dem SIP-Server der Telco und kann Dienste der Teilnehmerbasis, die im Besitz durch die Telco ist, direkt anbieten. Bob hat diesen Dienst direkt bei dem ISP abonniert, ohne Einbeziehung der Telco. Der sechste Dienst ist ein Dienst, der durch die Firma gemanagt wird, wo Bob arbeitet. Falls der Ruf direkt zu Bob's gegenwärtigem Firmen-SIP-URL ist, wird der Ruf dann zu Bob weitergeleitet, basierend auf Daten, die nur innerhalb des privaten LAN-Netzes der Corp bekannt sind. Der letzte und siebte Dienst dient administrativen Zwecken, da die Telco irgendeine Protokollierung durchführen wollen kann.
The following example demonstrates that it is likely that multiple services can be called based on a SIP event. Consider an example where a subscriber, say Bob, has a SIP subscription with some SIP provider, say Telco. Bob has a range of services that the user wants to place on the network. Services, such as terminal-independent services or services tailored to whatever terminal Bob is currently using. There may also be services that provide Bob with security, privacy and reliability. Also, Bob does not want to manage his own services. It is also assumed that Bob works in a company, say Corp. The services that are called to manage an incoming INVITE message to Bob can look like this:
Telco can own and administer the SIP server. Telco also provides subscribers with SIP services and third-party services. The Telco recognizes that Bob is a participant in an incoming INVITE. The first service is a Telco call barring application to check if Bob paid his last bill. The second service is a service provided by the Telco. He simply checks that the caller's media codecs can be handled by Bob's current location / terminal. If not, the application will request a media stream converter into the media stream flow (using third page call control). This conversion is transparent to Bob, and the application will monitor Bob's responses and update the session descriptions as necessary. The third service is Bob's own preferences for called parties, eg a CPL script. This application monitors responses to the authorized request and, based on this, may pass the INVITE to multiple destinations. Say, the INVITE is to Bob's current private SIP URL. at "no answer" is given to the INVITE acting on behalf of his wife Alice. In some cases, Bob wants all private calls redirected to his company SIP URL. The fourth service is also a Telco service, but is provided to the Telco by a 3rd party application service provider, say besafe.com. This service checks message body content types and provides a virus scan if needed, eg if an animated vCard is included. The fifth service is an ISP service that offers the called party's multimedia advertising in return for a refund of the Telco billing. If the session is established, and if it is a videoconference session, Bob receives a small flowing bar of information at the bottom of the video image. This service is a monitoring application and uses third-party call control. The ISP has an account on Telco's SIP server and can directly offer services of the subscriber base owned by Telco. Bob subscribed to this service directly with the ISP, without the involvement of Telco. The sixth service is a service managed by the company where Bob works. If the call is directly to Bob's current corporate SIP URL, the call is then forwarded to Bob based on data known only within the Corp's private LAN network. The last and seventh service is for administrative purposes, as Telco may want to do some logging.

Das obige Beispiel veranschaulicht die Vielfalt von vertraglichen Beziehungen, die mit den unterschiedlichen Diensten in Verbindung stehen, die durch ein Ereignis getriggert werden. Die Dienste können sich im Besitz unterschiedlicher Interessengruppen befinden und können unter Verwendung unterschiedlicher Technologien implementiert sein.The above example illustrates the variety of contractual relationships, that are related to the different services that be triggered by an event. The services can be in the Possession of different interest groups are and can be under Be implemented using different technologies.

Unterschiedliche Dienste, die in einem Dienstnetz aufgestellt sind, können miteinander interagieren. Diese Interaktionen können zwischen Diensten, die sich auf einen einzelnen Benutzer, mehrere Benutzer beziehen, oder zwischen Kundendiensten und Systemdiensten auftreten. Die Interaktion kann ferner zwischen Diensten, die in der gleichen Netzkomponente oder in einer anderen Netzkomponente laufen, auftreten. In 1 werden unterschiedliche Typen von Interaktionen veranschaulicht: Interaktionen Einzelbenutzer- mehrere Komponenten (single user – multiple component, SUMC), Kunde – System (customer – system, CUSY), mehrere Benutzer – Einzelkomponente (multiple user – single component, MUSC), mehrere Benutzer – Mehrfachkomponente (multiple user – multiple component, MUMC) und Einzelbenutzer – Mehrfachkomponente (single user – multiple component, SUMC).Different services set up in a service network can interact with each other. These interactions can occur between services that relate to a single user, multiple users, or between customer services and system services. The interaction may also occur between services running in the same network component or in another network component. In 1 Different types of interactions are illustrated: Interactions Single user multiple components (single user - multiple component, SUMC), customer - system (customer - system, CUSY), multiple users - single user (multiple user - single component, MUSC), multiple users - Multiple user - multiple component (MUMC) and single user - single user - multiple component (SUMC) component.

Es gibt viele Ursachen für Merkmalsinteraktion, inkludierend "Verletzung von Merkmalsprivilegien" und "Verletzung von Merkmalsannahmen":
Verletzung von Merkmalsprivilegien: Privilegien von Merkmalen werden gebrochen, falls Merkmale redundant oder durch nicht-autorisierte Seiten aufgerufen werden. Das Hauptproblem, das durch Verletzen von Merkmalsprivilegien verursacht wird, ist redundanter Verbrauch von Ressourcen oder nicht-autorisierter Zugriff zu Ressourcen. Dies kann im Wesen unbeabsichtigt oder böswillig sein. Wenn eine Verletzung von Merkmalsprivilegien auftritt, dann gibt es einen Kampf zwischen Merkmalen, autorisierten oder nicht-autorisierten, um Zugriff auf die Ressourcen. Falls Merkmale redundant oder durch nicht-autorisierte Seiten aufgerufen werden, können sie anschließend die Ursache einer Verletzung von Merkmalsannahmen sein. Es ist klar, dass Vermeidung von Verletzung von Merkmalsprivilegien wünschenswert ist.
There are many causes for feature interaction, including "violation of feature privileges" and "violation of feature assumptions":
Feature Privilege Violation: Privileges of features are broken if features are called redundantly or through unauthorized pages. The main problem caused by violating feature privileges is redundant consumption of resources or unauthorized access to resources. This may in essence be unintentional or malicious. If a violation of feature privileges occurs, then there is a struggle between features, authorized or unauthorized, for access to the resources. If features are called redundantly or through unauthorized pages, they can subsequently be the cause of feature property violation. It is clear that avoidance of violation of feature privileges is desirable.

Wie nachstehend beschrieben wird, werden gemäß der Erfindung Verletzungen von Merkmalsprivilegien durch Filtern im Kontext, in vertraglichen Beziehungen, in Bedingungen, in Zugriffssteuerlisten, Privilegien und Rechten aufgelöst.As will be described below, according to the invention injuries of feature privileges by filtering in context, in contractual Relationships, in conditions, in access control lists, privileges and Right dissolved.

Filtern im Kontext bezieht sich auf die Notwendigkeit zum Interpretieren eines Ereignisses in einem gewissen Kontext. Dieses Muss wird offensichtlich, wenn vernetzte Multimediadienste gemanagt werden, die in einem konvergierten Netz arbeiten.Filter in context refers to the need for interpretation an event in a certain context. This must becomes obvious when networked multimedia services are managed that converged in one Network work.

Filtern in vertraglichen Beziehungen bezieht sich auf die Notwendigkeit zum Abbilden eines Ereignisses auf eine Menge von Merkmalen, die vertraglich verbunden sind, um dieses Ereignis zu verarbeiten. Dieser Problemkreis ist insbesondere auf einem deregulierten Markt wichtig, wo nicht nur der Anbieter der Netzinfrastruktur und von Sitzungssteuerdiensten Teilnehmern Mehrwertdienste anbieten kann, sondern wo ebenso dritte Seiten ein legales Recht haben, dieses Angebot durchzuführen.Filter in contractual relations refers to the need to map an event to a set of features that contracted to handle this event. This problem area is particularly important in a deregulated market, where not only the provider of network infrastructure and session control services Offer value added services to subscribers, but where also third Pages have a legal right to make this offer.

Filtern in Zugriffssteuerrichtlinien stellt sicher, dass ein Ereignis nur autorisiertes Verhalten in dem Knoten verursacht.Filter in access control policies ensures that an event only causes authorized behavior in the node.

Filtern in Bedingungen stellt sicher, dass ein Merkmal nicht redundant aufgerufen wird, wenn ein Ereignis auftritt, und Merkmale, die auf zurufen sind, basierend auf dem Kontext, auf vertraglichen Beziehungen und Zugriffsprivilegien erfasst werden. Diese Bedingungen können z.B. von den Eigenschaften des Ereignisses, Systemeigenschaften oder Netzeigenschaften abhängen.Filtering in conditions ensures that a feature is not called redundantly when an Er event, and features to be retrieved based on the context, on contractual relationships and access privileges. These conditions may depend, for example, on the properties of the event, system properties or network properties.

Verletzung von Merkmalsannahmen: Annahmen über Merkmalsverhalten werden gebrochen, falls der Kontext eines Merkmals durch ein anderes Merkmal auf eine derartige Weise geändert wird, dass das Merkmal nicht wie beabsichtigt arbeiten kann. Eine Verletzung von Merkmalsannahmen kann mehrdeutiges oder Konfliktverhalten verursachen.injury of feature assumptions: assumptions about Feature behaviors are broken if the context of a feature changed by another feature in such a way that the feature can not work as intended. An injury feature assumptions can cause ambiguous or conflicting behavior.

Merkmale sind das sichtbare Verhalten einer Ausführung einer Dienstanwendung. Eine Instruktion, die durch die Dienstanwendungsausgaben erteilt wird, um das Mehrwertverhalten des SIP-Knotens zu steuern, wird eine Merkmalsinstruktion genannt. Viele Merkmale können jedoch ihr Verhalten auf eine Nachricht anwenden, bevor die steuernde Instruktion zurück zu dem SIP-Knoten gesendet wird. Die steuernde Instruktion oder Instruktionsmenge, die zurück zu dem SIP-Knoten gesendet wird, wird eine Dienststeuerinstruktion genannt. Sie enthält einen resultierenden Ereigniskontext, d.h. die Eigenschaften einer SIP-Nachricht, die als Reaktion auf den ursprünglichen Ereigniskontext stromaufwärts oder stromabwärts zu senden ist, der die Dienstanwendungen getriggert hat. Mehrdeutiges Verhalten tritt auf, wenn die Dienststeuerinstruktion abhängig von der Sequenz, in der die Merkmale Steuerung über den aktuellen Ereigniskontext erlangen, unterschiedlich ist. Mehrdeutige Instruktionen sind nicht notwendigerweise gegenseitig ausschließend.characteristics are the visible behavior of a service application execution. An instruction issued by the service application issues to control the value-added behavior of the SIP node becomes a feature instruction called. Many features can however, apply their behavior to a message before the controlling one Instruction back to the SIP node is sent. The controlling instruction or instruction set, the back to the SIP node is sent, becomes a service control instruction called. It contains a resulting event context, i. the properties of a SIP message that is upstream or in response to the original event context downstream to be sent, which has triggered the service applications. ambiguous Behavior occurs if the service control instruction depends on the sequence in which the features control over the current event context gain, is different. Ambiguous instructions are not necessarily mutually exclusive.

Als ein Beispiel enthalte ein SIP-Nachrichtenrumpf ein Farbbild im GIF-Format. S1 wird definiert, eine Dienstanwendung zu sein, die in einem Nachrichtenrumpfinhalt vom GIF-Format getriggert wird. S1 sei eine Dienstanwendung, die das GIF-Format in ein JPG-Format konvertiert. Des weiteren wird S2 definiert, eine Dienstanwendung zu sein, die auch in einem Nachrichtenrumpfinhalt vom GIF-Format getriggert wird. S2 sei eine Dienstanwendung, die das GIF-Bild in ein Schwarzweißbild konvertiert.When an example contains a SIP message body a color image in GIF format. S1 is defined to be a service application that resides in a message body content triggered by the GIF format. S1 is a service application that the GIF format in converted a JPG format. Further, S2 is defined, a service application which is also in a news content content from GIF format is triggered. Let S2 be a service application containing the GIF image in a black and white picture converted.

S1 sei die erste Anwendung, die aufzurufen ist, getriggert durch den GIF-Inhalt. S1 wird das GIF-Bild zu einem JPG-Bild konvertieren und es zu dem aktuellen Ereignisinhalt schreiben. S2 wird niemals aufgerufen. Der resultierende Ereignisinhalt wird ein JPG-Farbbild enthalten.S1 be the first application to call, triggered by the GIF content. S1 will convert the GIF image to a JPG image and write it to the current event content. S2 never becomes called. The resulting event content becomes a JPG color image contain.

Nun sei S2 die erste aufzurufende Anwendung, getriggert durch den GIF-Inhalt. S2 wird das GIF-Farbbild in ein Schwarzweißbild konvertieren und es zu dem aktuellen Ereigniskontext schreiben. S1 wird anschließend basierend auf dem GIF-Inhalt aufgerufen, wie durch den aktuellen Ereigniskontext spezifiziert. S1 wird das GIF-Bild zu einem JPG-Bild konvertieren und es zu dem aktuellen Ereigniskontext schreiben. Der resultierende Ereigniskontext wird ein JPG-Schwarzweißbild enthalten.Now Let S2 be the first application to call, triggered by the GIF content. S2 will convert the GIF color image to a black and white image and add it to it write to the current event context. S1 is subsequently based called on the GIF content, as by the current event context specified. S1 will convert the GIF image to a JPG image and write it to the current event context. The resulting Event context will contain a JPG black and white image.

S1 und S2 weisen klar mehrdeutiges Verhalten auf, da der Kontext eines Merkmals durch das andere geändert wird.S1 and S2 clearly show ambiguous behavior, since the context of a Feature changed by the other becomes.

In Konflikt stehende Merkmalsinstruktion sind Instruktionen, die sich gegenseitig ausschließen. In Konflikt stehende Instruktionen werden versuchen, einander zu überschreiben. In diesem Fall sind in Konflikt stehende Instruktionen typischerweise auch die Ursache von mehrdeutigem Verhalten.In Conflicting feature instructions are instructions that arise exclude each other. Conflicting instructions will try to overwrite each other. In this case, conflicting instructions are typically also the cause of ambiguous behavior.

Des weiteren sind alle Merkmalsinstruktionen potenzielle nicht-autorisierte Instruktionsmengen, es sei denn, sie sind explizit autorisiert. Nicht-autorisierte Merkmalsinstruktionen können ein böswilliges Wesen aufweisen oder das Ergebnis einer fehlerhaften Dienstanwendung sein. In jedem Fall können sie die Sicherheit und Integrität des Systems beschädigen und sollten erfasst werden.Of Further, all feature instructions are potential unauthorized ones Instruction sets, unless they are explicitly authorized. Unauthorized feature instructions may or may not be malicious the result of a bad service application. In any case can you the security and integrity damage the system and should be recorded.

Überwachende Dienstanwendungen können zusätzliche Probleme zu jenen bereits erörterten verursachen. Überwachende Dienstanwendungen können jederzeit asynchrone Merkmalsinstruktionen zu dem SIP-Knoten erteilen, da sie kontinuierlich laufen. Da sie zukünftige Ereignisse überwachen, können sie in diesen Ereignissen ausgeführt werden und mehr Merkmalsinstruktionen vorsehen. Falls es mehrere gleichzeitige überwachende Dienstanwendungen gibt, können ihre generierten Merkmalsinstruktionen von der Reihenfolge abhängen, in der sie über das Ereignis benachrichtigt werden. Dies trägt zur Komplexität der zuvor erörterten Probleme bei.Watching Service applications can additional Problems to those already discussed cause. Watching Service applications can at any time grant asynchronous feature instructions to the SIP node, because they run continuously. As they monitor future events, can they executed in these events and provide more feature instructions. If there are several simultaneous monitoring Service applications their generated feature instructions depend on the order in she over the event will be notified. This contributes to the complexity of the previously discussed problems at.

Die Erfassung und Auflösung von Verletzungen von Merkmalsannahmen ist viel komplizierter als die Auflösung von Verletzungen von Merkmalsprivilegien. Wie nachstehend beschrieben wird, werden gemäß der Erfindung vorgesehen Mittel um zu spezifizieren, wie mehrdeutiges Verhalten aufzulösen ist, Mittel, um das Merkmalsinteraktionsmanagement in unabhängige Merkmalsgruppen und Administrationsdomänen zu unterteilen, und eine einfache Vorgaberegel, um Merkmalsinteraktionsinterferenz aufzulösen, die zur Laufzeit erfasst wird. Verletzun gen von Merkmalsannahmen werden durch Merkmalsordnung basierend auf dem kaskadierten Kettenprinzip und Bedingungstriggerung, und Merkmalseigenschaften basierend auf dem Sperr-/Freigabemechanismus aufgelöst. Dies wird nachstehend detaillierter beschrieben.The detection and resolution of feature acceptance violations is much more complicated than the resolution of feature privilege violations. As will be described below, in accordance with the invention, means are provided for specifying how to resolve ambiguous behavior, means for subordinating feature interaction management to independent feature sets and administration domains and a simple default rule to resolve feature interaction interference that is detected at run time. Violations of feature assumptions are resolved by feature ordering based on the cascaded chain principle and condition triggering, and feature properties based on the lock / unlock mechanism. This will be described in more detail below.

Andere Ursachen von Merkmalsinteraktion inkludieren Begrenzungen von Netzunterstützung, z.B. begrenzte Protokollfunktionalität oder begrenzte Benutzerschnittstellen, in verteilten Systemen innewohnende Probleme, wie etwa Ressourcenwettstreit, Merkmalskoordination, Zeiteinstellung oder nichtatomare Operationen, Verletzung von Systemsicherheit, betrügerische, manipulierte oder abgehörte Nachrichten, nicht-kooperative Interaktionen durch Merkmale mit in Konflikt stehenden Interessen etc.Other Causes of feature interaction include limitations of network support, e.g. limited protocol functionality or limited user interfaces, inherent problems in distributed systems, such as resource competition, feature coordination, timing or non-atomic operations, violation of system security, fraudulent, manipulated or eavesdropped News, having non-cooperative interactions with features conflicting interests etc.

Im allgemeinen können drei unterschiedliche Typen von Lösungen für Merkmalsinteraktionsprobleme unterschieden werden: Infrastruktur: Die Entwicklung von Infrastrukturen für die Aufstellung von Merkmalen, die Merkmalsinteraktionsmanagement integrieren, d.h. die die Ursachen von einigen definierten Merkmalsinteraktionen behandeln. Merkmalsinteraktionen werden sowohl vor (Spezifikation) als auch nach (Durchsetzung) der Merkmalsaufstellungszeit gemanagt, d.h. während Spezifikation oder durch Durchsetzung von regelbasierten Richtlinien etc. Gemäß der Erfindung bilden die Regelmodulskripte eine Infrastruktur zum Aufstellen von Merkmalen, die ein Rahmenwerk für ein Merkmalsinteraktionsmanagement vorsieht.in the general can distinguished three different types of feature interaction problem solutions Infrastructure: The development of infrastructures for deployment of features that integrate feature interaction management, i. which discuss the causes of some defined feature interactions. Feature interactions are presented both before (specification) and after (enforcing) the feature-up time, i. while Specification or enforcement of rule-based policies etc. According to the invention The rule module scripts form an infrastructure for setting up Features that are a framework for provides a feature interaction management.

Diensterstellung: Die Gestaltung von Merkmalen in Bezug auf Ursachen von Merkmalsinteraktionen, d.h. die Erfassung von Merkmalsinteraktionen während der Gestaltungsphase. Diese Merkmalsinteraktionen können vor Merkmalsaufstellung gemanagt werden, z.B. über Deutlichkeit, Merkmalsinteraktionsursachen analyse, Verifizierungstest etc. Gemäß der Erfindung werden der Diensterstellung und Merkmalsaufstellungsstrategiespezifikation Anforderungen auferlegt.Service creation: The design of features related to causes of feature interactions, i. the capture of feature interactions during the design phase. These feature interactions can be managed prior to feature mapping, e.g. about clarity, feature interaction causes analysis, Verification test, etc. According to the invention be the service creation and feature deployment strategy specification Imposed requirements.

Laufzeit: Die Auflösung von Merkmalsinteraktionen, wie sie auftreten. Da nicht alle Merkmalsinteraktionen vor einer Merkmalsaufstellung identifiziert werden können, müssen sie zur Laufzeit erfasst werden, z.B. durch kryptografische Authentifizierung, Autorisierung und Geheimhaltung, regelbasierte Richtlinien, Auflösungsalgorithmen, AI-Verhandlung etc. Gemäß der Erfindung werden einfache Regeln dafür vorgesehen, wie Merkmalsinteraktionen aufgelöst werden, die zur Laufzeit erfasst werden. Diese Regeln inkludieren die Überprüfung von Zugriffssteuerlisten, die mit Regelmodulen in Verbindung stehen, die Auflösung von Zugriffsverletzungen durch Alarmbenachrichtigung und Außerbetriebnahme von verletzenden Regelmodulen, die Überprüfung von Skripten, die Privilegien und Rechte spezifizieren, und die Auflösung von Verletzungen von Privilegien und Rechten durch Alarmbenachrichtigung und Außerbetriebnahme von verletzenden Merkmalen.Running time: The resolution feature interactions as they occur. Because not all feature interactions before a feature map can be identified, they must be detected at run time, e.g. through cryptographic authentication, Authorization and secrecy, rule-based policies, resolution algorithms, AI negotiation etc. According to the invention become simple rules for that It provides how feature interactions are resolved at run time be recorded. These rules include checking access control lists, which are related to rule modules, the resolution of Access violations due to alarm notification and decommissioning of offending rule modules, the scrutiny of scripts, the privileges and specify rights, and the resolution of violations of privileges and rights by alarm notification and decommissioning of infringing Features.

Der allgemeine Managementprozess gemäß der Erfindung inkludiert die folgenden Schritte:

  • 1. Merkmalsgestaltungsspezifikation, unabhängig von anderen Merkmalen: Ein Dienst wird ohne Betrachtung von Interaktionen mit anderen Merkmalen gestaltet und spezifiziert. Gemäß einer Ausführungsform der Erfindung wird der Dienst jedoch in Hinsicht auf das nachstehend beschriebene Verarbeitungspunktemodell gestaltet.
  • 2. Vertragsverhandlung Die Seite, die wünscht, einen Dienst in dem Dienstnetz aufzustellen, verhandelt mit dem Administrator des Dienstnetzes, welche Privilegien und Rechte dem Dienst gewährt werden können. Gemäß einer Ausführungsform der Erfindung wird ein Privilegien- und Rechteskript, das mit dem Dienst in Verbindung steht, erstellt.
  • 3. Merkmalsinteraktionsanalyse: Die möglichen Merkmalsinteraktionen werden basierend auf Erfahrung und möglicherweise Kenntnis über einige der Merkmale, die in dem Dienstnetz aufgestellt sind, untersucht.
  • 4. Merkmalsaufstellungsstrategiespezifikation: Der Autor eines Regelmoduls, der den Dienst aufstellen muss, erlangt eine administrative Domäne. Basierend auf der Merkmalsinteraktionsanalyse und Kenntnis über den Dienst, Teilnehmer und Benutzer wird die Merkmalsaufstellungsstrategie in einem Regelmodulskript spezifiziert.
  • 5. Merkmalsimplementierung.
  • 6. Verifizierungstest.
  • 7. Merkmalsinstallation und Aktivierung.
  • 8. Merkmalslaufzeitverhalten und Management.
  • 9. Merkmalsdeaktivierung und Deinstallation.
The general management process according to the invention includes the following steps:
  • 1. Feature design specification, independent of other features: A service is designed and specified without consideration of interactions with other features. However, according to one embodiment of the invention, the service is designed with respect to the processing point model described below.
  • 2. Contract Negotiation The party wishing to establish a service in the service network negotiates with the administrator of the service network what privileges and rights the service can be granted. According to one embodiment of the invention, a privilege and rights script associated with the service is created.
  • 3. Feature Interaction Analysis: The possible feature interactions are examined based on experience and possibly knowledge of some of the features set up in the service network.
  • 4. Feature Population Strategy Specification: The author of a rule module who must set up the service gains an administrative domain. Based on the feature interaction analysis and knowledge of the service, subscribers, and users, the feature deployment strategy is specified in a rule module script.
  • 5. Feature implementation.
  • 6. Verification test.
  • 7. Feature installation and activation.
  • 8. Feature Runtime Behavior and Management.
  • 9. Feature deactivation and deinstallation.

Gemäß der Erfindung wird ein Rahmenwerk für Merkmalsinteraktionsmanagement vorgesehen, welches

  • – der Analysestufe erlaubt, leicht auf Spezifikationsregeln durch Vorsehen einer einfachen Sprache und eines Rahmenwerkes mit leicht zu verstehenden Prinzipien abgebildet zu werden,
  • – klare Grenzen zwischen den Gruppierungen von Merkmalen, die zu einer gegebenen Analyseentität bekannt sind, und jenen, die es nicht sind, definiert,
  • – einfache und somit leicht verständliche Regeln für die Übergabe einer Steuerung zwischen diesen Gruppen von Merkmalen vorsieht. Wenn von einer Gruppe von Merkmalen zu einer anderen übergeben wird, gibt es einen Mechanismus zum Sicherstellen, dass eine nachfolgende Gruppe von Merkmalen die vorherige Gruppe nicht kompromittiert, und
  • – die Analysestufe durch Spezifizieren von Verarbeitungspunkten in der Verarbeitung von Ereignissen vereinfacht, in denen Vorbedingungen garantiert werden und in denen Anwendungen nur erlaubt wird, gewisse Instruktionen zu dem Server zu geben.
According to the invention, a feature interaction management framework is provided which
  • The analysis stage allows to be easily mapped to specification rules by providing a simple language and framework with easy-to-understand principles,
  • - define clear boundaries between the groupings of features known to a given analysis entity and those that are not,
  • - provides simple and thus easy-to-understand rules for the transfer of control between these groups of characteristics. When passing from one set of features to another, there is a mechanism for ensuring that a subsequent set of features does not compromise the previous set, and
  • - Simplifies the parsing stage by specifying processing points in the processing of events where preconditions are guaranteed and where applications are only allowed to give certain instructions to the server.

2 veranschaulicht die Netzelemente, die in eine Dienstumgebungs-SIP-Serverarchitektur gemäß einer Ausführungsform der Erfindung involviert sind. Der vorherige SIP-Client 203 (previous sip client, PSC) repräsentiert einen beliebigen Client, wie etwa einen SIP-freigegebenen PC, ein drahtloses Endgerät, einen Proxy eines vorherigen Sprungs, ein SIP-/PSTN-Gateway etc. Der Client führt Anfragen für Sitzungsdienste mit eingehenden Anfragen zu dem SIP-Server 202 durch. Der SIP-Server 202 repräsentiert den Proxy, Umlenkungs- oder dedizierten SIP-freigegebenen Anwendungsserver, wo die Dienstunterstützungsumgebung 201 implementiert ist. Alternativ kann es eine beliebige andere SIP-freigegebene Entität sein, die Mehrwertdienste triggert, wie etwa einen Benutzeragenten, Archivar oder dergleichen. Dienste, die sich in der SIP-Serverdienstunterstützungsumgebung 201 befinden, werden durch Dienstanwendungen definiert, wie etwa SIP-CGI-Skripte, Regelmodule und Dienstmerkmale. Der SIP-Knoten 202 kann die Steuerung zu der Dienstunterstützungsumgebung 201 (service support environment, SSE) bei Empfang eines Ereignisses übergeben. Die Dienstunterstützungsumgebung 201 kann anschließend eine relevante Dienstanwendung gemäß gewissen Filterkriterien und basierend auf diesem Ereignis aufrufen. Die Dienstanwendung schickt eine Merkmalsinstruktion oder eine Menge von Instruktionen zurück. Die Dienstunterstützungsumgebung 201 gibt die Steuerung zu dem SIP-Knoten 202 zusammen mit Dienststeuerinstruktionen zurück, was den SIP-Knoten 202 darüber informiert, wie das Ereignis zu verarbeiten ist. Der SIP-Knoten leitet die Anfrage zu dem nächsten SIP-Client (next SIP client, NSC) 204 weiter. Antworten auf die Anfrage werden in der entgegengesetzten Richtung von dem nächsten SIP-Client 204 über den SIP-Knoten 202 zu dem vorherigen SIP-Client 203 weitergeleitet, wobei möglicherweise zusätzliche Dienste getriggert werden. Der nächste SIP-Server 204 repräsentiert einen beliebigen Server, z.B. einen SIP-freigegebenen PC, ein drahtloses Endgerät, einen Proxy eines nächsten Sprungs, ein SIP-/PSTN-Gateway etc. Der Server handhabt eingehende Anfragen. Der entfernte Server 206 bietet eine entfernte Dienstausführung an, z.B. in einer anderen Dienstunterstützungsumgebung. Basierend auf z.B. Leistungsverhaltenskriterien kann die Dienstunterstützungsumgebung 201 eine Verarbeitung in dem entfernten Server 206 initiieren, z.B. durch Verwendung von Anfrage-/Antwortprotokollen. Auf diese Weise können unterschiedliche Kategorien von Diensten aufgerufen und auf unterschiedlichen Hosts gemanagt werden. Das Protokoll, das zu dem entfernten Server verwendet wird, kann ein beliebiges Protokoll sein, das Anfrage-/Antwortdialoge unterstützt, z.B. SIP, ICAP, HTTP, OSA API etc. Der Administrationsserver 205 führt administrative Aufgaben in der Dienstumgebung durch. Er ist für eine Konfiguration der Dienstunterstützungsumgebung 201 verantwortlich, die mit der Domäne des SIP-Knotens 202 in Verbindung steht. Daher inkludiert die Umgebung der Dienstunterstützungsumgebung 201 einen SIP-Knoten, Dienstanwendungen, entfernte Hosts und eine Administrationsentität. 2 illustrates the network elements involved in a service environment SIP server architecture according to one embodiment of the invention. The previous SIP client 203 (previous sip client, PSC) represents any client, such as a SIP shared PC, a wireless terminal, a previous hop proxy, a SIP / PSTN gateway, etc. The client makes requests for session services with incoming requests to the client SIP server 202 by. The SIP server 202 represents the proxy, redirection or dedicated SIP-enabled application server where the service support environment 201 is implemented. Alternatively, it may be any other SIP-enabled entity that triggers value-added services, such as a user agent, archivist, or the like. Services that are in the SIP Server service support environment 201 are defined by service applications such as SIP CGI scripts, rule modules, and service features. The SIP node 202 Control can be to the service support environment 201 (service support environment, SSE) when receiving an event. The service support environment 201 can then invoke a relevant service application according to certain filtering criteria and based on this event. The service application returns a feature instruction or a set of instructions. The service support environment 201 gives control to the SIP node 202 along with service tax instructions back what the SIP node 202 informed about how the event is to be processed. The SIP node forwards the request to the next SIP client (next SIP client, NSC) 204 further. Responses to the request will be in the opposite direction from the nearest SIP client 204 via the SIP node 202 to the previous SIP client 203 forwarded, possibly triggering additional services. The next SIP server 204 represents any server, eg a SIP-enabled PC, a wireless terminal, a proxy of the next hop, a SIP / PSTN gateway etc. The server handles incoming requests. The remote server 206 offers a remote service execution, eg in a different service support environment. Based on, for example, performance criteria, the service support environment may 201 a processing in the remote server 206 initiate, for example, by using request / response logs. In this way different categories of services can be called and managed on different hosts. The protocol used to the remote server can be any protocol that supports request / response dialogs, such as SIP, ICAP, HTTP, OSA API, etc. The Administration Server 205 performs administrative tasks in the service environment. It is for a service support environment configuration 201 responsible with the domain of the SIP node 202 communicates. Therefore, the environment includes the service support environment 201 a SIP node, service applications, remote hosts, and an administrative entity.

3 veranschaulicht schematisch eine Systemarchitektur eines SIP-Servers, die einen Dienstausführungsregelmechanismus gemäß einer Ausführungsform der Erfindung unterstützt. Die Dienstunterstützungsumgebung 301 setzt die Aufstellungsinfrastruktur durch, d.h. wie ein Merkmal mit einem anderen interagiert. Daher sieht die Dienstunterstützungsumgebung 301 die Funktionalität in dem SIP-Server vor, die Mehrwertdienste unterstützt. Die Dienstunterstützungsumgebung 301 umfasst einen Regelantrieb (rule engine, RE) 303 zum Managen der Regelmodule 308, die in einer Ausführungsregelbasis 307 gespeichert sind. Der Regelantrieb 303 umfasst ferner ein Regelmodulausführungsmodul (rule module execution module, RMEM) 314, das für eine Verarbeitung von Regelmodulen verantwortlich ist. Der Regelantrieb kann Dienste 309311 über den Dienstausführungsantriebsmanager 302 aufrufen. Der Dienstdefinitionsmanager (service definition manager, SDM) 312 sieht Funktionalität für die Administration der Regelmodule vor. Der SIP-Server implementiert ferner einen SIP-Protokollstapel 304, inkludierend die SIP-Vorgabefunktionalität 306 und einen SIP-Nachrichtenparser (SIP message parser, SIP MP) 305. Der Nachrichtenparser 305 unterstützt das SIP-Protokoll und extrahiert Nachrichteneigenschaften, die durch den Regelantrieb 303 interpretiert werden können. Der Administrationsserver 313 führt administrative Aufgaben in der Dienstumgebung durch. 3 schematically illustrates a system architecture of a SIP server supporting a service execution rule mechanism according to an embodiment of the invention. The service support environment 301 enforces the deployment infrastructure, ie how one feature interacts with another. Therefore, the service support environment looks 301 the functionality in the SIP server that supports value-added services. The service support environment 301 includes a rule engine (RE) 303 for managing the control modules 308 that are in an execution rule base 307 are stored. The standard drive 303 further comprises a rule module execution module (RMEM) 314 which is responsible for processing rule modules. The variable speed drive can provide services 309 - 311 via the service execution drive manager 302 call. The service definition manager (SDM) 312 provides functionality for the administration of the rule modules. The SIP server also implements a SIP protocol stack 304 , including the SIP default functionality 306 and a SIP message parser (SIP message parser, SIP MP) 305 , The message parser 305 supports the SIP protocol and extracts message properties through the rule engine 303 can be interpreted. The Administration Server 313 performs administrative tasks in the service environment.

Ein wichtiger Mechanismus zum Implementieren von Dienstaufstellungsrichtlinien gemäß der Erfindung ist die Spezifikation von Aufstellungsregeln als Dienstausführungsregeln, die in Regelmodulen spezifiziert sind. Dienstausführungsregeln spezifizieren Bedingungen und Aktionen, die unternommen werden müssen, falls die Bedingungen erfüllt sind. Gemäß der Erfindung wird eine Programmiersprache zum Spezifizieren dieser Regeln definiert, die als eine Dienstausführungsregelsprache (Service Execution Rule Language, SERL) bezeichnet wird.An important mechanism for implementing service provisioning policies according to the invention is the specification of deployment rules as service execution rules specified in rule modules. Service execution rules specify conditions and actions that must be taken sen if the conditions are met. In accordance with the invention, a programming language is defined for specifying these rules, which is referred to as a Service Execution Rule Language (SERL).

Die Regelmodule 308 werden durch den Regelantrieb 303 gemanagt und ausgeführt. Der Regelantrieb 303 ist die Hauptfunktionsentität, die den Trigger- und Merkmalsinteraktionsmechanismus implementiert, und ist Teil der Dienstunterstützungsumgebung 301. Wenn ein Ereignis eintritt, ruft der Nachrichtenparser den Regelantrieb 303 auf und übergibt das Ereignis den Regelantrieb 303. Der Regelantrieb 303 findet und lädt die relevanten Regelmodule 308 und verarbeitet jene, die für das empfangene Ereignis relevant sind, in der richtigen Reihenfolge. Das Filtern inkludiert eine Erfassung von vertraglichen Verpflichtungen. Die Ereignisse definieren den Kontext, in dem Regelmodule verarbeitet werden, d.h. die Bedingungen werden gemäß den Eigenschaften der SIP-Nachrichtenereignisse bewertet. Der Regelantrieb 303 ruft die entsprechenden Aktionen auf, wenn das Regelmuster mit den gegebenen Nachrichteneigenschaften übereinstimmt. Basierend auf dem Inhalt dieser Aktionen kann der Regelantrieb 303 dem Anwendungsausführungsantriebsmanager 302 oder einer anderen geeigneten Entität innerhalb des Dienstunterstützungssystems Aufrufinstruktionen erteilen. SERL-Skripte haben kein Wissen über die Dienste, die sie aufrufen und managen, mit Ausnahme des Wissens, wie sie allgemein aufzurufen sind und wie Merkmale zu managen sind. Die Steuerinstruktionen, die von den aufgerufenen Dienstanwendungen empfangen werden, werden zu dem SIP-Stapel 304 zurück vermittelt, wenn das letzte Regelmodul verarbeitet wurde.The rule modules 308 be through the variable speed drive 303 managed and executed. The standard drive 303 is the main functional entity that implements the trigger and feature interaction mechanism and is part of the service support environment 301 , When an event occurs, the message parser calls the rule engine 303 on and passes the event the rule drive 303 , The standard drive 303 finds and loads the relevant rule modules 308 and processes those that are relevant to the received event in the correct order. The filtering includes a recording of contractual obligations. The events define the context in which rule modules are processed, that is, the conditions are evaluated according to the properties of the SIP message events. The standard drive 303 invokes the appropriate actions when the rule pattern matches the given message properties. Based on the content of these actions can be the rule drive 303 the application execution drive manager 302 or any other appropriate entity within the service support system. SERL scripts have no knowledge of the services they call and manage, except knowing how to call them generally and how to manage features. The control instructions received from the called service applications become the SIP stack 304 mediated back when the last rule module has been processed.

Der Regelantrieb 303 managt ferner die Information, die zwischen unterschiedlichen Diensten gesendet wird. Wenn ein Ereignis eintritt, wird ein Ereigniskontext, der die relevanten Eigenschaften des Ereignisses enthält, auf einem standardisierten Weg hergestellt. Die Nachrichteneigenschaften haben einen Namen und einen Wert. Der Wert kann durch die Nachricht bestimmt werden. Beispiele von SIP-Nachrichteneigenschaften sind:
Name: sipRequest.Request-URI, Wert: sip:bob@corp.com
Name: sipRequest.To, Wert: Bob Smith <sip:bob@corp.com>
Name: sipResponse.Status-Code, Wert: 301
The standard drive 303 also manages the information sent between different services. When an event occurs, an event context containing the relevant properties of the event is established in a standardized way. The message properties have a name and a value. The value can be determined by the message. Examples of SIP message properties are:
Name: sipRequest.Request-URI, value: sip: bob@corp.com
Name: sipRequest.To, value: Bob Smith <sip: bob@corp.com>
Name: sipResponse.Status code, value: 301

Ein Beispiel einer SDP-Nachrichteneigenschaft ist:
Name: sdp.m, Wert: video 48232 RTP/AVP 0.
An example of an SDP message property is:
Name: sdp.m, value: video 48232 RTP / AVP 0.

Der Regelantrieb 303 unterstützt eine Zahl von internen APIs, auf die durch die sich anschließenden Funktionsentitäten zugegriffen werden kann. Diese APIs inkludieren

  • – eine Nachrichtenbekanntgabe-API, die durch den SIP-Stapel 304 zur Nachrichtenbekanntgabe von dem Nachrichtenparser 305 zu dem Regelantrieb 303 verwendet wird,
  • – eine Regelbasisdefinitions-API, die durch den Dienstdefinitionsmanager 312 verwendet wird,
  • – eine Dienstinstruktions-API, die durch den Anwendungsausführungsantriebsmanager 302 verwendet wird, um Instruktionen zu dem Regelantrieb 303 im Namen der Dienstanwendungen 309311 zu übergeben, und
  • – eine Scharfmachungs-API, die durch den Anwendungsausführungsantriebsmanager 302 verwendet wird, um das Scharfmachen von Triggern und Transaktionsereignissen im Namen der Dienstanwendungen 309311 anzufordern.
The standard drive 303 supports a number of internal APIs that can be accessed by the adjoining functional entities. Include these APIs
  • - A message notification API passing through the SIP stack 304 to the message announcement from the message parser 305 to the variable speed drive 303 is used,
  • A rule base definition API created by the service definition manager 312 is used,
  • A service instruction API provided by the application execution drive manager 302 is used to instructions to the rule drive 303 on behalf of the service applications 309 - 311 to surrender, and
  • A sharpening API created by the application execution engine manager 302 is used to arming triggers and transaction events on behalf of the service applications 309 - 311 to request.

Der Anwendungsausführungsantriebsmanager 302 bettet eine Zahl von Anwendungsausführungsantrieben (application execution engines, AEE) 315 für unterschiedliche Typen von Dienstanwendungen ein und managt sie, z.B. einen OSA-Antrieb, einen CPL-Antrieb, einen CPL-Interpreter, einen CGI-Antrieb und/oder einen Servlet-Antrieb. Er unterstützt die Schnittstelle, die durch den Regelantrieb 303 veranlasst wird, und bildet zwischen der Anwendungs-API und der Regelantrieb-API ab. Vom Standpunkt des Regelantriebs 303 sehen alle Anwendungsausführungsantriebe 315 wie eine einzelne Entität aus, d.h. der Anwendungsausführungsantriebsmanager 302. Der Dienstdefinitionsmanager 312 kann den Anwendungsausführungsantrieben 315 weitere Funktionalität bereitstellen.The application execution drive manager 302 embeds a number of application execution engines (AEE) 315 for various types of service applications and manages them, for example, an OSA drive, a CPL drive, a CPL interpreter, a CGI drive and / or a servlet drive. It supports the interface through the rule drive 303 and maps between the application API and the rule engine API. From the point of view of the standard drive 303 see all the application execution drives 315 like a single entity, ie the application execution drive manager 302 , The service definition manager 312 Can the application execution drivers 315 provide additional functionality.

Die APIs, die durch den Anwendungsausführungsantriebsmanager 302 vorgesehen werden, inkludieren:

  • – eine Aufruf-API, die durch den Regelantrieb 303 für Aufrufinstruktionen von dem Regelantrieb zu dem Anwendungsausführungsantriebsmanager 302 verwendet wird, und
  • – eine Bekanntgabe-API, die durch den Regelantrieb 303 für Bekanntgabeinstruktionen von dem Regelantrieb zu dem Anwendungsausführungsantriebsmanager 302 verwendet wird.
The APIs generated by the application execution drive manager 302 to be provided, include:
  • - a call API, through the rule drive 303 for call instructions from the rule engine to the application execution engine manager 302 is used, and
  • - an announcement API by the rule drive 303 for notification instructions from the rule engine to the application execution engine manager 302 is used.

Das Vorgabe-SIP-Serververhalten 306 umfasst die Funktionalität eines Proxyservers, eines Umleitungsservers, eines Anwendungsservers oder sogar eines Benutzeragenten. Es kann ferner Archivar- oder IM&P-Funktionen inkludieren. Es sieht eine Schnittstelle vor, auf die durch den Regelantrieb 303 zugegriffen werden kann, um Instruktionen zu platzieren. Alternativ kann eine Dienstanwendung das SIP-Serververhalten implementieren. Deshalb ist es für den Regelantrieb möglich, nur Teile von jeder der obigen Funktionen aufzurufen, wie es durch die Dienstanwendungen erforderlich ist.The default SIP server behavior 306 includes the functionality of a proxy server, a redirection server, an application server, or even a user agent. It can also include Archivist or IM & P functions. It provides an interface to that through the variable speed drive 303 can be accessed to place instructions. Alternatively, a service application may implement the SIP server behavior. Therefore, it is possible for the rule drive to call only parts of each of the above functions, as required by the service applications.

Der Dienstdefinitionsmanager 312 sieht eine O&M-API vor, die durch den Administrationsserver 313, Dienstanwendungen 309311 und den SIP-Stapel 304 verwendet werden. Die API sieht Funktionalität vor für

  • – Manuelle Authentifizierung und Autorisierung von neuen Regelmodulen und Dienstanwendungen.
  • – Manuelles Konfigurieren von Rechten und Privilegien von Regelmodulen und Dienstanwendungen.
  • – Manuelles Laden von Regelmodulen und Dienstanwendungen.
  • – Manuelle Aktivierung/Deaktivierung von Regelmodulen und Dienstanwendungen.
  • – Manuelle Validierung von Regelmodulen.
  • – Manuelle Validierung von Dienstanwendungen, implementiert unter Verwendung von Skriptsprachen.
  • – Manuelle Löschung von Regelmodulen und Dienstanwendungen.
  • – Manuelle Auflistung aller Regelmodule und Dienstanwendungen gemeinsam mit ihrem Status.
  • – Manuelle Modifikation von Regelmodulen.
The service definition manager 312 provides an O & M API that passes through the Administration Server 313 , Service applications 309 - 311 and the SIP stack 304 be used. The API provides functionality for
  • - Manual authentication and authorization of new rule modules and service applications.
  • - Manually configure the rights and privileges of rule modules and service applications.
  • - Manual loading of rule modules and service applications.
  • - Manual activation / deactivation of control modules and service applications.
  • - Manual validation of control modules.
  • - Manual validation of service applications implemented using scripting languages.
  • - Manual deletion of rule modules and service applications.
  • - Manual listing of all rule modules and service applications along with their status.
  • - Manual modification of control modules.

Der Dienstdefinitionsmanager 312 kann ferner eine Schnittstelle vorsehen, die eine automatische Handhabung von einigen der obigen manuellen Funktionen und/oder zusätzlichen Merkmale unterstützt, wie etwa Auflistung verfügbarer Dienstmerkmale, Erhalten von Schnittstelle und/oder Version eines Dienstmerkmals, Auflisten unterstützter Ausführungsantriebe und Skriptsprachen, wie etwa JVM, CPL, Perl etc., Installation/ Deinstallation von Dienstmerkmalen, Aktivierung/Deaktivierung von Dienstmerkmalen, Registrieren einer Dienstanwendung, die einer anderen Dienstanwendung Dienste als Dienstmerkmale bereitstellen wird, Abonnement von Dienstmerkmalen, Aufrufen/Beendigen von Dienstmerkmalen, statistische Operationen, wie "Prozessorlast überwachen", "Besetztstundenrufe", Abrechnungsoperationen, Aktivierung/Deaktivierung, Lesen, Zurücksetzen von Abrechnungsaufzeichnungen etc.The service definition manager 312 may further provide an interface that supports automatic handling of some of the above manual functions and / or additional features, such as listing available service features, obtaining interface and / or version of a service feature, listing supported execution engines, and scripting languages such as JVM, CPL , Perl etc., installation / de-installation of service features, activation / deactivation of service features, registration of a service application that will provide service as a service feature to another service application, subscription of service features, invocation / termination of service features, statistical operations such as "monitor processor load", "Busy hours calls", billing operations, activation / deactivation, reading, billing records reset etc.

Hier umfasst der Begriff Dienstmerkmale Funktionen, die Dienstanwendungen angeboten werden. Die Dienstmerkmale werden betrachtet, als in die Dienstunterstützungsumgebung 301 und den SIP-Stapel 304 integriert zu sein. Der Anwendungsausführungsantriebsmanager 302 und der Dienstdefinitionsmanager 312 stellen beide den Dienstanwendungen 309311 Dienstmerkmale bereit. Trotzdem werden einige der Merkmale, die durch den Anwendungsausführungsantriebsmanager 302 angeboten werden, durch den Regelantrieb 303 und den SIP-Stapel 304 vermittelt.Here, the term service features includes functions offered to service applications. The service features are considered as in the service support environment 301 and the SIP stack 304 to be integrated. The application execution drive manager 302 and the service definition manager 312 Both provide the service applications 309 - 311 Service features ready. Nevertheless, some of the features provided by the application execution drive manager 302 offered by the variable speed drive 303 and the SIP stack 304 taught.

Die Dienstanwendungen 309311 sind Programme, kompiliert oder interpretiert, die in der Dienstunterstützungsumgebung 301 des SIP-Servers oder auf einem entfernten Server ausgeführt werden. Ihr Zweck kann sich auf die Basisfunktionen des SIP-Servers beziehen oder nicht beziehen. Dienstanwendungen können SIP-Serververhalten implementieren. Dienstanwendungen können anderen Dienstanwendungen Dienste anbieten, d.h. sie können Dienstmerkmale sein. Z.B. kann eine Dienstanwendung irgendeinen MIME-Typ-Konverter enthalten und ihn als ein Dienstmerkmal anderen Dienstanwendungen anbieten. Andere Dienstanwendungen können dann diese Funktion verwenden, um einen Dienst durchzuführen. Vorzugsweise sollten Dienstanwendungen zwischen SIP-Servern portabel sein und auf entfernten Servern ausgeführt werden können. Dienstanwendungen können zugreifen auf, oder auf sie kann zugegriffen werden durch eine globale oder lokale Namenskonvention, einen standardi sierten oder lokalen Namensraum, durch Verwenden spezifizierter Dateipfade zu den Anwendungen etc., eine offene und standardisierte API, z.B. SIP-CGI, OSA API, HTTP, ICAP, CPL, Servlets etc.The service applications 309 - 311 are programs that are compiled or interpreted in the service support environment 301 of the SIP server or on a remote server. Their purpose may or may not refer to the basic functions of the SIP server. Service applications can implement SIP server behavior. Service applications may offer services to other service applications, ie they may be service features. For example, a service application may include any MIME-type converter and offer it as a service feature to other service applications. Other service applications can then use this function to perform a service. Preferably, service applications should be portable between SIP servers and run on remote servers. Service applications may access or be accessed by a global or local naming convention, a standardized or local namespace, by using specified file paths to the applications, etc., an open and standardized API, eg SIP-CGI, OSA API, HTTP , ICAP, CPL, Servlets etc.

Ein standardisierter Mechanismus zum Zugreifen auf eine Dienstanwendung ist ein Vorteil für Dienstanbieter einer dritten Seite.One standardized mechanism for accessing a service application is an advantage for service providers a third page.

Der SIP-Server managt nicht notwendigerweise entfernt platzierte Dienstanwendungen, da er über sie keine Kenntnis haben kann. In diesem Fall kann der SIP-Server oder der Anwendungsausführungsantriebsmanager 302 Standortinformation erfordern, die durch die triggernde Information bereitgestellt wird.The SIP server does not necessarily manage remotely placed service applications because it can not know about them. In this case, the SIP server or the application execution drive manager 302 Require location information provided by the triggering information.

Der Nachrichtenparser 305 ist für Interpretieren von empfangenen Nachrichten, Isolieren gut definierter Elemente als Nachrichteneigenschaften und Veranlassen von Aktionen, die wenn geeignet zu aktivieren sind, verantwortlich. Wenn ein Ereignis eintritt, wird ein Nachrichtenobjekt hergestellt, das die relevanten Eigenschaften enthält, die durch den Nachrichtenparser 305 isoliert werden.The message parser 305 is responsible for interpreting received messages, isolating well-defined elements as message properties, and initiating actions that are appropriate to activate. When an event occurs, a message object is created that contains the relevant properties specified by the message parser 305 be isolated.

Vorzugsweise hat ein jegliches unterstütztes Protokoll einen entsprechenden Nachrichtenparser. Ein Parser kann untergeordnete Parser enthalten, die untergeordneten Protokollen entsprechen, d.h. eingebettet in andere Protokolle wie SIP. Z.B. kann es innerhalb eines SIP-Nachrichtenparsers getrennte Parser zum Handhaben unterschiedlicher Medientypen geben, wie etwa SDP, HTML, XML und XHTML. Vom Standpunkt des Regelantriebs sehen alle Parser wie ein einzelner Antrieb aus. Die API die für einen Nachrichtenparser sollte vorzugsweise derart definiert sein, dass Parser für neue Protokolle und Inhalt modular hinzugefügt werden können.Preferably has any supported Log a corresponding message parser. A parser can Subordinate parsers contain the child logs correspond, i. embedded in other protocols like SIP. For example, It can be a separate parser within a SIP message saver to handle different types of media, such as SDP, HTML, XML and XHTML. From the point of view of the propulsion all see Parser like a single drive out. The API for one Message parser should preferably be defined such that Parser for new protocols and content can be added modularly.

Für ein beliebiges Protokoll, das durch die Dienstunterstützungsumgebung 301 zu unterstützen ist, deckt die Schnittstelle zwischen dem Nachrichtenparser von diesem Protokoll und dem Regelantrieb ab

  • – die Menge von Eigenschaften, die durch den Nachrichtenparser definiert sind, inkludierend den Eigenschaftsnamen, ihre Beziehung zu der Nachricht, die sie charakterisiert, und die Fähigkeit einer Aktion, sie zu ändern, und
  • – die Verarbeitungspunkte, in denen Regeln aktiviert werden können.
For any protocol through the service support environment 301 to support, covers the interface between the message parser of this protocol and the rule drive
  • The set of properties defined by the message parser, including the property name, its relationship to the message that characterizes it, and the ability of an action to change it, and
  • - The processing points where rules can be activated.

In einer Ausführungsform der Erfindung können die Dienstunterstützungsumgebung 301 oder jede der Funktionsentitäten innerhalb der Dienstunterstützungsumgebung in getrennten Hosts platziert sein, die mehrere Server bedienen, z.B. SIP, Web, WAP, I-Mode, RTSP-Server, und auf mehrere Anwendungsserver zugreifen, z.B. Datenbanken, OSA, Web, SIP etc.In one embodiment of the invention, the service support environment 301 or each of the functional entities within the service support environment may be placed in separate hosts serving multiple servers, eg, SIP, Web, WAP, I-mode, RTSP servers, and accessing multiple application servers, eg databases, OSA, Web, SIP, etc.

Z.B. können sich der Regelantrieb 303, der Anwendungsausführungsantriebsmanager 302 und der Dienstdefinitionsmanager 312 in jedem ihren Host befinden, möglicherweise über IP gekoppelt. Die Schnittstellen zwischen dem Regelantrieb und den verschiedenen Servern können standardisiert oder proprietär sein. Die Schnittstellen zwischen dem Regelantrieb, dem Anwendungsausführungsantriebsmanager und dem Dienstdefinitionsmanager sollten vorzugsweise proprietär und miteinander gepackt sein. Die Schnittstellen zwischen den Dienstanwendungsservern und der Dienstunterstützungsumgebung sind vorzugsweise standardisiert, wie OSA API, HTTP, SIP oder irgendeine Datenbank-API, wie irgendeine SQL-basierte API. In einer derartigen verteilten Konfiguration wird ein weiterer Vorteil der Erfindung offensichtlich, da der Regelantrieb in der Lage ist, viele Typen von Ereignissen zu managen, nicht nur SIP- Ereignisse, sondern auch HTTP-Ereignisse, SMTP-Ereignisse, Wap-Ereignisse, Media-Codec-Ereignisse, wie MPEG7-Ereignisse oder 3D virtuelle Realität oder Spielobjektereignisse etc.For example, the variable speed drive can 303 , the application execution drive manager 302 and the service definition manager 312 located in each of their hosts, possibly coupled via IP. The interfaces between the rule engine and the various servers can be standardized or proprietary. The interfaces between the rule engine, the application execution drive manager and the service definition manager should preferably be proprietary and packed together. The interfaces between the service application servers and the service support environment are preferably standardized, such as OSA API, HTTP, SIP, or any database API, such as any SQL-based API. In such a distributed configuration, another advantage of the invention becomes apparent because the rule engine is capable of managing many types of events, not only SIP events but HTTP events, SMTP events, Wap events, media events, and so forth. Codec events, such as MPEG7 events or 3D virtual reality or game object events, etc.

Bezug nehmend noch auf 3 kann der Triggermechanismus gemäß einer Ausführungsform der Erfindung durch ein einfaches Beispiel veranschaulicht werden, wobei angenommen wird, dass nur ein einzelnes Regelmodul für ein empfangenes Ereignis relevant ist. In 3 verweisen die Ziffern in Kreisen auf die folgenden Schritte eines Triggerbeispiels:

  • 1. Es wird eine SIP-Anfrage in dem Nachrichtenparser 305 empfangen.
  • 2. Der SIP-Nachrichtenparser 305 generiert ein SIP-Nachrichtenobjekt. Der Regelantrieb 303 konvertiert dies in einen SIP-Ereigniskontext.
  • 3. Die relevanten Regelmodule befinden sich in der Ausführungsregelbasis 307 basierend auf dem Ereigniskontext, Verarbeitungspunkten und vertraglichen Beziehungen. Eine Ausführungsform dieses Mechanismus wird nachstehend beschrieben.
  • 4. Der Regelantrieb 303 lädt das gefundene Regelmodul 308 von der Ausführungsregelbasis 307 in den Regelmodulausführungsantrieb 314 und führt es aus. Als ein Beispiel enthalte das geladene Regelmodul die folgende Funktionalität, d.h. eine Regel, die Triggerkriterien und Aufrufaktionen für Dienstanwendungen 310 und 311 spezifiziert:
    Figure 00440001
    Figure 00450001
  • 5. Ein Trigger wird erreicht, und die spezifizierte Dienstanwendung Y (310) wird durch Senden eines Aufrufbefehls zu dem Anwendungsausführungsantriebsmanager 302 aufgerufen.
  • 6. Der Anwendungsausführungsantriebsmanager 302 lokalisiert die Anwendung Y (310).
  • 7. Der Anwendungsausführungsantriebsmanager 302 lädt die relevante Dienstanwendung Y (310) in einen Anwendungsausführungsantrieb 315 und aktiviert sie anschließend für eine Ausführung.
  • 8. Die resultierende Instruktion von Anwendung 310 wird zu dem Regelantrieb 303 zurückgegeben.
  • 9. Der Regelantrieb 303 nimmt eine Verarbeitung des Regelmoduls wieder auf und triggert eine andere Anwendung Z (311). Dem Anwendungsausführungsantriebsmanager 302 wird ein Aufrufbefehl gegeben.
  • 10. Der Anwendungsausführungsantriebsmanager 302 lokalisiert die Anwendung Z (311).
  • 11. Der Anwendungsausführungsantriebsmanager 302 lädt die relevante Dienstanwendung Z (311) in einen Ausführungsantrieb 315, der die Anwendung laufen lassen kann, und aktiviert sie anschließend.
  • 12. Die resultierende Instruktion von Anwendung 311 wird zu dem Regelantrieb 303 zurückgegeben.
  • 13. Der Regelantrieb 303 nimmt eine Verarbeitung des Regelmoduls wieder auf und findet heraus, dass das Regelmodul keine Regeln mehr auszuführen hat und dass es keine Regelmodule mehr zu laden gibt. Anschließend sendet der Regelantrieb 303 das Schlussergebnis der Dienste zu dem SIP-Vorgabeverhalten 306.
  • 14. Das SIP-Vorgabeverhalten 306 vereinigt die Ausgabe von dem Regelantrieb 303 mit einer möglichen Vorgabeausgabe und sendet die SIP-Nachricht zu dem Nachrichtenparser/Konverter 305.
  • 15. Die SIP-Nachricht wird z.B. vertreten (proxied).
Still referring to 3 For example, the triggering mechanism according to an embodiment of the invention may be illustrated by a simple example assuming that only a single rule module is relevant to a received event. In 3 refer the numbers in circles to the following steps of a trigger example:
  • 1. There will be a SIP request in the message parser 305 receive.
  • 2. The SIP message parser 305 generates a SIP message object. The standard drive 303 converts this to a SIP event context.
  • 3. The relevant rule modules are in the execution rule base 307 based on the event context, processing points and contractual relationships. An embodiment of this mechanism will be described below.
  • 4. The variable speed drive 303 loads the found control module 308 from the execution rule base 307 in the rule module execution drive 314 and execute it. As an example, the loaded rules module contains the following functionality, ie a rule, the trigger criteria and invocation actions for service applications 310 and 311 specified:
    Figure 00440001
    Figure 00450001
  • 5. A trigger is reached and the specified service application Y ( 310 ) is sent by sending a call command to the application execution drive manager 302 called.
  • 6. The application execution drive manager 302 locates the application Y ( 310 ).
  • 7. The application execution drive manager 302 loads the relevant service application Y ( 310 ) into an application execution drive 315 and then activates it for execution.
  • 8. The resulting instruction of application 310 becomes the rule drive 303 returned.
  • 9. The variable speed drive 303 resumes processing of the rule module and triggers another application Z ( 311 ). The application execution drive manager 302 a call command is given.
  • 10. The application execution drive manager 302 locates the application Z ( 311 ).
  • 11. The application execution drive manager 302 loads the relevant service application Z ( 311 ) in an execution drive 315 who can run the application and then activates it.
  • 12. The resulting instruction of application 311 becomes the rule drive 303 returned.
  • 13. The variable speed drive 303 resumes processing of the rule module and finds out that the rule module no longer has to execute rules and that there are no rule modules to load anymore. Subsequently, the variable speed drive sends 303 the final result of the services to the SIP default behavior 306 ,
  • 14. The SIP default behavior 306 unites the output from the variable speed drive 303 with a possible default output and sends the SIP message to the message parser / converter 305 ,
  • 15. The SIP message is represented eg (proxied).

Im Fall von mehreren Regelmodulen können die obigen Schritte 13–14 alternativ wie folgt sein
13. Der Regelantrieb 303 nimmt eine Verarbeitung des Regelmoduls wieder auf und findet heraus, dass das Regelmodul keine Regeln mehr auszuführen hat. Der Regelantrieb 303 sucht nach Regelmodulen mit Priorität niedrigerer Ordnung als das zuvor ausgeführte Regelmodul.
In the case of several control modules, the above steps 13-14 may alternatively be as follows
13. The variable speed drive 303 resumes processing of the rule module and finds out that the rule module no longer has to execute rules. The standard drive 303 searches for rule modules with lower order priority than the previously executed rule module.

14. Gehe zu Punkt 3 in dem vorherigen Beispiel. Falls ein Regelmodul gefunden wird, wird es wie im vorherigen Beispiel laufen gelassen, möglicherweise mit Aufruf anderer Anwendungen, z.B. wird die Anwendung 309 aufgerufen.14. Go to point 3 in the previous example. If a rule module is found, it will be run as in the previous example, possibly by calling other applications, eg the application will 309 called.

Wenn keine Regelmodule oder Dienste installiert sind, eine Sitzung zu steuern, übergibt der Regelantrieb 303 die Steuerung zu dem SIP-Server, und spezifiziert eine leere Ausgabe. Der SIP-Server kann möglicherweise die leere Ausgabe mit dem Vorgabeverhalten 306 des Servers vereinigen, wie in SIP-CGI, gemäß Vorgabe-SIP-Verhalten für Archivare, Umlenkungsserver und Proxyserver.If no rule modules or services are installed to control a session, the rule engine passes 303 control to the SIP server, and specify a blank output. The SIP server may receive the blank output with the default behavior 306 of the server, as in SIP CGI, according to default SIP behavior for archivists, redirection servers, and proxy servers.

4 veranschaulicht die Struktur eines Regelmoduls gemäß einer Ausführungsform der Erfindung. Gemäß der Erfindung ist ein Regelmodul 401 konzeptionell ein Baum, umfassend eine Zahl von Dienstausführungsregeln 401402, wobei jede Regel eine Zahl von Bedingungen 403404 bzw. 405, und eine Zahl von Aktionen 406407 bzw. 408 spezifiziert, die unternommen werden müssen, falls die entsprechenden Bedingungen erfüllt sind. Im Folgenden werden Bedingungen auch als Muster bezeichnet. Auf einer hohen Ebene umfasst ein Regelmodul ferner

  • – Besitzerinformation 409, die den Besitzer des Regelmoduls angibt, d.h. eine identifizierbare Seite mit einem Interesse an dem SIP-Knoten. Diese Seite kann mehrere Regelmodule besitzen. Die Besitzerinformation kann ferner Information über vertragliche Beziehungen inkludieren.
  • – Protokollinformation 410, die den Kontext spezifiziert, in dem die Regeln in dem Regelmodul zu interpretieren sind.
4 illustrates the structure of a control module according to an embodiment of the invention. According to the invention is a control module 401 conceptually a tree comprising a number of service execution rules 401 - 402 where each rule is a number of conditions 403 - 404 respectively. 405 , and a number of actions 406 - 407 respectively. 408 specified, which must be undertaken if the appropriate conditions are met. In the following, conditions are also referred to as patterns. At a high level, a rule module further includes
  • - Owner information 409 indicating the owner of the rule module, ie an identifiable page with an interest in the SIP node. This page can have several control modules. The owner information may further include information about contractual relationships.
  • - Protocol information 410 specifying the context in which the rules in the rule module are to be interpreted.

Beispiele von Protokollen sind SIP, SDP, HTTP, H.323 etc. Vorzugsweise sollte nur ein einzelnes Protokoll pro Regelmodul definiert sein. Anderenfalls kann irgendeine Überlappung mehrdeutige Interpretation vorsehen. Z.B. haben sowohl SIP als auch HTTP Inhaltstypheaderfelder.

  • – Zugriffssteuerinformation 411, die spezifiziert, welche Seiten das Recht haben, das Regelmodul aufzurufen, zu administrieren und zu lesen.
  • – einen Regelmodulidentifikator 412, vorzugsweise ein eindeutiger Identifikator. Zusätzlich kann ein Regelmodul eine Zahl von Aliasen inkludieren.
Examples of protocols are SIP, SDP, HTTP, H.323, etc. Preferably, only a single protocol should be defined per rule module. Otherwise, any overlap may provide ambiguous interpretation. For example, both SIP and HTTP have content style fields.
  • - Access control information 411 , which specifies which pages have the right to access, administer and read the rule module.
  • - a rule module identifier 412 , preferably a unique identifier. In addition, a rule module may include a number of aliases.

Ein Regelmodul kann ferner ergänzende Information 413, die weitere Kontextinformation für ein Regelmodul vorsieht, und Indexinformation 414 umfassen.A rule module may also contain supplementary information 413 , which provides further context information for a rule module, and index information 414 include.

Ein Muster 403405 ist ein Ausdruck, der mit Bezug auf die Nachrichteneigenschaften in einem Ereigniskontext bewertet werden kann, und entweder werden die Regeln mit den Eigenschaften in den Kontext übereinstimmen oder versagen, mit ihnen übereinzustimmen. Aktionen 406408 können Anwendungen, eingebaute Diensteigenschaften, entfernte Server, lastteilende Hosts oder aufzurufende SIP-Server eines nächsten Sprungs identifizieren. Sie können ferner heruntergeladene und extern platzierte Aktionsobjekte etc. identifizieren. Regeln, Bedingungen und Aktionen können Parameter haben, die ihr Verhalten beschreiben, sie sind die Attribute der Baumknoten. Die Zweige haben eine Gewichtung, die anzeigt, welcher Zweig zuerst verarbeitet werden sollte.A pattern 403 - 405 is an expression that can be evaluated with respect to the message properties in an event context, and either the rules will match or fail to match the properties in the context. Actions 406 - 408 can identify applications, built-in service properties, remote servers, load-sharing hosts, or next-hop SIP servers. You can also identify downloaded and externally placed action objects, and so on. Rules, conditions, and actions can have parameters that describe their behavior, they are the attributes of the tree nodes. The branches have a weight that indicates which branch should be processed first.

Vorzugsweise hat jedes Regelmodul eine explizite Ordnungspriorität, die ihm zugeordnet ist, d.h. die Reihenfolgeprio rität spezifiziert die Sequenz, in der Regelmodule durch den Regelantrieb geladen werden.Preferably Each rule module has an explicit ordering priority given to it is assigned, i. the order priority specifies the sequence, in the control modules are loaded by the variable speed drive.

Gemäß einer bevorzugten Ausführungsform der Erfindung werden die Knoten des Baums in der grafischen Darstellung durch XML-Elemente dargestellt. Die Verzweigung von einem Knoten zu den nächsten Knoten wird durch Einschließen des Elementes dargestellt, das den (die) nächsten Knoten innerhalb des Elementes darstellt, das den Knoten darstellt, von dem verzweigt wird. Die Gewichtung der Zweige ergibt sich durch die Reihenfolge, in der sie in dem Skript dargestellt werden. Diese Gewichtung ergibt die Reihenfolge, in der die Elemente zu verarbeiten sind, wenn ein Ereignis empfangen wird. Mit anderen Worten wird das Skript von oben nach unten ausgeführt. Somit gibt es in dieser Ausführungsform keine Schleifen innerhalb eines SERL-Skriptes. Vorzugsweise wird das Format eines Regelmoduls als ein XML DTD oder XML-Schema spezifiziert.According to one preferred embodiment of the invention, the nodes of the tree in the graph through XML elements shown. The branch from one node to the next node is by enclosing of the element representing the next node (s) within the Representing element that represents the knot from which branches becomes. The weighting of the branches results from the order, in which they are presented in the script. This weighting results the order in which the elements are to be processed, if one Event is received. In other words, the script is from running down to the top. Thus, there is in this embodiment no loops within a SERL script. Preferably Specifies the format of a rule engine as an XML DTD or XML schema.

Es ist ein Vorteil dieser Ausführungsform, dass sie auf einer standardisierten und erweiterbaren Sprache basiert, um Sprachen zu spezifizieren.It is an advantage of this embodiment, that it is based on a standardized and extensible language, to specify languages.

In einer Ausführungsform der Erfindung können Richtlinien mit Regeln in Verbindung gebracht werden, die Privilegien und Rechte spezifizieren. Jeder Knoten des Regelmoduls kann einen zugehörigen Richtlinienknoten haben, der Zugriffssteuerlisten enthalten kann.In an embodiment of the invention Policies associated with rules, the privileges and specify rights. Each node of the rule module can have a associated Have policy nodes that may contain access control lists.

Das Folgende ist ein Beispiel einer Instanz eines Regelmoduls, das als ein SERL-Skript spezifiziert ist:

Figure 00490001
The following is an example of an instance of a rule module specified as a SERL script:
Figure 00490001

Figure 00500001
Figure 00500001

5 veranschaulicht die Gruppierung von Diensten in eingeschränkte Mengen von Diensten gemäß einer Ausführungsform der Erfindung. Gemäß dieser Ausführungsform werden Dienste 501508 in eine Menge von Merkmalsgruppen (feature groups, FG) 509510 gruppiert. In dem in 5 gezeigten Beispiel enthält Merkmalsgruppe 509 Merkmale 501504, und Merkmalsgruppe 510 enthält Merkmale 505508. Für jede Merkmalsgruppe werden den Diensten dieser Gruppe gewisse Einschränkungen auferlegt, d.h. ihnen wird nur erlaubt, gut definierte Typen von Instruktionen zu erteilen. Die Merkmalsgruppen spezifizieren nicht, wie einzelnen Merkmalen erlaubt wird, innerhalb einer Merkmalsgruppe zu interagieren, solange wie sie nicht die Beschränkungen in dem Gruppenverhalten verletzen. Die Merkmalsgruppen sind sequenziell geordnet, d.h. durch Nummerieren der Merkmalsgruppen. In dem Beispiel von 5 ist Merkmalsgruppe 509 die K-te Merkmalsgruppe in einer Sequenz von Merkmalsgruppen, und Merkmalsgruppe 510 ist durch K + 1 nummeriert. Die Ordnung von Merkmalsgruppen erlegt eine Reihenfolge einer Ausführung auf, derart, dass die Merkmale von Merkmalsgruppe 509 vor der Ausführung der Merkmale in Gruppe 510 ausgeführt werden. Vorzugsweise umfasst die Definition einer Merkmalsgruppe eine Spezifikation der Gruppenordnung, z.B. durch Spezifizieren eines Gruppenindexes, durch Spezifizieren einer vorherigen und einer nächsten Merkmalsgruppe oder dergleichen. Vorzugsweise umfasst die Definition einer Merkmalsgruppe ferner eine Spezifikation von Vorbedingungen, d.h. Bedingungen, auf denen die Merkmale dieser Merkmalsgruppe beruhen können, und eine Spezifikation von Einschränkungen, die in dem Verhalten der Dienste dieser Merkmalsgruppe durchgesetzt werden. Daher sind die Merkmalsgruppen ein Ordnungsmechanismus, der einen fundamentalen Typ von Merkmalsinteraktion durch Vorsehen einer geordneten Sequenz formalisiert, in der Dienstanwendungen aufgerufen werden. Deshalb sieht dieser Mechanismus ein Rahmenwerk zum Gruppieren des Problems von Merkmalsinteraktion in eingeschränkte Mengen von Merkmalen vor. Der Mechanismus löst tatsächlich Interaktionen zwischen diesen Merkmalsgruppen auf, da wegen den Einschränkungen in den Merkmalsgruppen die Merkmalsannahmen, wenn Steuerung von einer Gruppe zu der nächsten übergeben wird, deterministisch und gut definiert sind. Es ist ein Vorteil dieser Gruppierung, dass sie einen Mechanismus zum Zerlegen des Problems von Merkmalsinteraktionsanalyse in kleinere unabhängige Probleme vorsieht, wobei es dadurch leichter gemacht wird, das Problem zu managen. Des weiteren ist es ein Vorteil, dass formalisierte Problembereiche zu unabhängigen Seiten delegiert werden können, was das Problem skalierbarer macht. Der Mechanismus von Merkmalsgruppen gibt dem Administrator und Dienstanbieter die Fähigkeit, die Dienstanwendungen in verschiedene Punkte in einer Verarbeitungszeit zu kategorisieren, wo die Dienstanwendungen aufgerufen werden sollten. 5 illustrates the grouping of services into limited amounts of services according to an embodiment of the invention. According to this embodiment, services 501 - 508 into a set of feature groups (FG) 509 - 510 grouped. In the in 5 example shown contains feature group 509 characteristics 501 - 504 , and feature group 510 contains characteristics 505 - 508 , For each feature group, certain restrictions are placed on the services of this group, ie they are only allowed to give well-defined types of instructions. The feature sets do not specify how individual features are allowed to interact within a feature set, as long as they do not violate group behavior limitations. The feature groups are ordered sequentially, ie by numbering the feature groups. In the example of 5 is a feature group 509 the K-th feature group in a sequence of feature groups, and feature group 510 is numbered by K + 1. The ordering of feature groups imposes an order of execution such that the features of feature set 509 before the execution of the characteristics in group 510 be executed. Preferably, the definition of a feature group comprises a specification of the group order, eg by specifying a group index, by specifying a previous and a next feature group or the like. Preferably, the definition of a feature group further comprises a specification of preconditions, ie conditions on which the features of this feature group may be based, and a specification of constraints enforced in the behavior of the services of that feature set. Therefore, the feature groups are an ordering mechanism that is a fundamental type of feature inter formalized by providing an ordered sequence in which service applications are called. Therefore, this mechanism provides a framework for grouping the problem of feature interaction into restricted sets of features. The mechanism actually solves interactions between these feature sets because, due to the limitations in the feature sets, the feature assumptions when passing control from one group to the next are deterministic and well-defined. It is an advantage of this grouping that it provides a mechanism for breaking the problem of feature interaction analysis into smaller independent problems, thereby making it easier to manage the problem. Furthermore, it is an advantage that formalized problem areas can be delegated to independent pages, making the problem more scalable. The mechanism of feature sets gives the administrator and service provider the ability to categorize the service applications into various points in a processing time where the service applications should be called.

6 veranschaulicht die Gruppierung von Diensten in eingeschränkte Mengen von Diensten entsprechend Standorten in dem Rundlauf-SIP-Nachrichtenfluss gemäß einer bevorzugten Ausführungsform der Erfindung. Gemäß dieser Ausführungsform beziehen sich die Merkmalsgruppen auf Standorte P1–P6 in dem logischen Anfrage-/Antwort-Rundlauf-Nachrichtenfluss, die gewisse Vorbedingungen für den Ereigniskontext garantiert haben, und wo eine Dienstanwendung basierend auf den Einschränkungen, über die Verhalten in diesem Standort erlaubt ist, aufgerufen werden kann. Diese Merkmalsgruppen werden als Verarbeitungspunkte bezeichnet. 6 Figure 12 illustrates the grouping of services into restricted sets of services corresponding to locations in the round trip SIP message flow according to a preferred embodiment of the invention. According to this embodiment, the feature groups refer to locations P1-P6 in the logical request / response round trip message flow that have guaranteed certain preconditions for the event context, and where a service application is based on the restrictions over which behavior is allowed in that location , can be called. These feature groups are called processing points.

Die sechs Verarbeitungspunkte P1–P6 sind eine allgemeine Gruppierung von Diensten. Verarbeitungspunkte P1–P3 und P4–P6 decken entsprechende Probleme logisch ab. Verarbeitungspunkte P1–P3 inkludieren Dienste, die in Anfragen 607 getriggert werden, und Verarbeitungspunkte P4–P6 inkludieren Dienste, die in Antworten 608 getriggert werden. Logisch entsprechen Verarbeitungspunkte P1 und P4, Punkte P2 und P5 und Punkte P3 und P6 entsprechenden Einschränkungen.The six processing points P1-P6 are a general grouping of services. Processing points P1-P3 and P4-P6 logically cover corresponding problems. Processing points P1-P3 include services that are in requests 607 and processing points P4-P6 include services that respond 608 be triggered. Logically, processing points P1 and P4, points P2 and P5 and points P3 and P6 correspond to corresponding restrictions.

Eine SIP-Nachricht kann grob in zwei Teile unterteilt werden, die Signalisierungseigenschaften, d.h. Eigenschaften in Bezug auf SIP, SDP etc., und den Nachrichtenrumpfinhalt, der nicht auf Signalisierung bezogen ist, wie etwa GIF, HTML etc.A SIP message can be roughly divided into two parts, the signaling characteristics, i.e. Properties related to SIP, SDP, etc., and the message body content, not related to signaling, such as GIF, HTML etc.

Dienste, die in einem SIP-Ereignis aufgerufen werden, können deshalb in jene, die:

  • – die Signalisierungseigenschaften beeinflussen,
  • – nur den Nicht-Signalisierungs-Nachrichtenrumpfinhalt beeinflussen, und
  • – jene, die weder die Signalisierungseigenschaften noch den Nicht-Signalisierungs-Nachrichtenrumpfinhalt beeinflussen,
gruppiert werden.Services that are called in a SIP event can therefore be sent to those that:
  • - influence the signaling properties,
  • - only affect the non-signaling message body content, and
  • Those that do not affect the signaling properties nor the non-signaling message body content,
be grouped.

Dies ergibt die Basisgruppierung von Diensten in drei Gruppen 601603, die jeweils mit den drei Verarbeitungspunkten P1–P3 in Verbindung stehen. Ähnlich sind in dem Antwortdurchlauf die entsprechenden Gruppen 604606 jeweils auf die Verarbeitungspunkte P4–P6 bezogen.This results in the basic grouping of services into three groups 601 - 603 respectively associated with the three processing points P1-P3. Similarly, in the response run, the corresponding groups 604 - 606 each related to the processing points P4-P6.

Hier umfasst der Begriff Signalisierungseigenschaften SIP- und SDP-Nachrichteneigenschaften, die in einer Regelmodulbedingung angepasst werden können, um einen Dienst aufzurufen. Folglich können Anwendungen, die eine Signalisierungseigenschaft ändern, veranlassen, dass eine andere Anwendung aufgerufen wird, die noch eine andere Anwendung aufrufen kann usw. Der Vorteil einer Verschiebung der Handhabung von Dienstanwendungen, die Signalisierungseigenschaften nicht ändern, zu einem Verarbeitungspunkt, nachdem alle Änderungen zu den Signalisierungseigenschaften aufgetreten sind, besteht darin, dass der Administrator eine leichtere Aufgabe beim Ordnen der Anwendungen in den Verarbeitungspunkten P2 und P5 hat.Here the term signaling properties includes SIP and SDP message properties, which can be adjusted in a rule module condition to call a service. Consequently, applications that have a Change signaling property, cause another application to be called that still invoke another application, etc. The benefit of a shift the handling of service applications, the signaling properties do not change, to a processing point, after all changes to the signaling properties occurred, is that the administrator a lighter Task when arranging the applications in the processing points P2 and P5 has.

In einer Ausführungsform der Erfindung können die Verarbeitungspunkte P1–P6 wie folgt definiert sein:

  • – Verarbeitungspunkt P1 – Clientanfrage eines vorherigen Sprungs: Es wurde eine SIP-Anfrage 607 von einem Client eines vorherigen Sprungs empfangen. Für diese bestimmte Anfrage und für diesen bestimmten Teilnehmer wurden keine Regelmodule in einem beliebigen vorherigen Verarbeitungspunkt aufgerufen. Dieser Verarbeitungspunkt umfasst Dienste, die die SIP-/SDP-Signalisierungseigenschaften der resultierenden Nachricht(en) beeinflussen, aber nicht den Nachrichtenrumpfinhalt.
  • – Verarbeitungspunkt P2 – Anfrageinhaltspunkt: Die Signalisierungseigenschaften der resultierenden SIP-/SDP-Nachricht(en) wurden generiert und gecacht, d.h. dieser Teil der SIP-Nachricht ist bereit, gesendet zu werden. Zusätzliche Aktualisierungen zu den Ruf-/Mediensteuersignalisierungseigenschaften sollten nicht auftreten, es sei denn explizit autorisiert. Die Dienste 602, die in dem Verarbeitungspunkt P2 aufgerufen werden, sollten die SIP-/SDP-Signalisierungseigenschaften, wie im Verarbeitungspunkt P1 generiert, nicht beeinflussen. Für diese Regel kann es jedoch Ausnahmen geben. Z.B. können Dienste SIP-Header wie Alarm-Info, Ruf-Info, Inhaltsdisposition, Inhaltskodierung, Inhaltssprache, Inhaltslänge, Inhaltstyp und Anfragen beeinflussen. Es sollte spezielle Sorge getragen werden, falls diese Signalisierungseigenschaften in beiden Verarbeitungspunkten P1 und P2 geändert werden. Beispiele von Typen vom Medieninhalt, die in diesem Verarbeitungspunkt verarbeitet werden können, inkludieren SOAP, HTML, vXML, SMIL, GIF, MPEG7, au etc.
  • – Verarbeitungspunkt P3 – Anfragestapelpunkt: Die resultierende(n) SIP-Nachricht(en) wurde(n) generiert und gesendet. Es können keine Aktualisierungen an der (den) resultierenden Nachricht(en) mehr auftreten. Dieser Verarbeitungspunkt entspricht Diensten 603, die nur aufgerufen werden müssen, aber nicht eine Ausgabe erzeugen, die benötigt wird, um die Anfrage zu verarbeiten. Diese Dienste müssen nur die resultierende(n) Nachricht(en) lesen, sie aber nicht aktualisieren.
In one embodiment of the invention, the processing points P1-P6 may be defined as follows:
  • - Processing point P1 - Client request of a previous jump: It became a SIP request 607 received by a client from a previous jump. For this particular request and for this particular subscriber, no rule modules were invoked at any previous processing point. This processing point includes services that affect the SIP / SDP signaling properties of the resulting message (s), but not the message body content.
  • - Processing Point P2 - Inquiry Summary: The signaling properties of the resulting SIP / SDP message (s) have been generated and cached, ie this part of the SIP message is ready to be sent. Additional updates to the call / media control signaling properties are intended not occur unless explicitly authorized. The services 602 which are called in the processing point P2 should not affect the SIP / SDP signaling characteristics as generated in the processing point P1. There may be exceptions to this rule. For example, services may affect SIP headers such as Alert Info, Call Info, Content Disposition, Content Encoding, Content Language, Content Length, Content Type and Requests. Special care should be taken if these signaling characteristics are changed in both processing points P1 and P2. Examples of types of media content that can be processed at this processing point include SOAP, HTML, vXML, SMIL, GIF, MPEG7, au, etc.
  • - Processing Point P3 - Request Stack Point: The resulting SIP message (s) have been generated and sent. There will be no updates to the resulting message (s). This processing point corresponds to services 603 which only need to be called, but do not produce an output needed to process the request. These services only need to read the resulting message (s), but not update them.

Die Verarbeitungspunkte

  • – P4 – Serverantwort eines vorherigen Sprungs,
  • – P5 – Antwortinhaltspunkt, und
  • – P6 – Antwortstapelpunkt
können für Antwortnachrichten 608 analog zu jeweils den Verarbeitungspunkten P1–P3 definiert werden.The processing points
  • P4 server response of a previous jump,
  • - P5 - Answer, and
  • - P6 - Response stack point
can for reply messages 608 be defined analogously to each of the processing points P1-P3.

Alternativ oder zusätzlich können andere Verarbeitungspunkte definiert werden. Z.B. kann ein zusätzlicher Verarbeitungspunkt P0 (nicht gezeigt) ohne Einschränkungen in den Merkmalen definiert werden und der in einem beliebigen Ereignis getriggert wird, d.h. in dem Empfang von sowohl Anfragen 607 als auch Antworten 608.Alternatively or additionally, other processing points may be defined. For example, an additional processing point P0 (not shown) may be defined in the features without restrictions and triggered in any event, ie, receipt of both requests 607 as well as answers 608 ,

Vorzugsweise können zusätzliche Verarbeitungspunkte mit einem der Verarbeitungspunkte hoher Ebene in Verbindung stehen. Z.B. können Teilverarbeitungspunkte für Verarbeitungspunkt P1 definiert werden, die P1.1, P1.2, P1.2.1, P1.2.2 etc. genannt werden können. Vorzugsweise sollten neue Verarbeitungspunkte nur definiert werden, falls sie eine logische Gruppe von Diensten definieren, die von Nutzen sein können, um gemäß spezifizierten Vorbedingungen aufzurufen.Preferably can additional Processing points with one of the high-level processing points keep in touch. For example, can Part processing points for Processing point P1, the P1.1, P1.2, P1.2.1, P1.2.2 etc. can be mentioned. Preferably, new processing points should only be defined if they define a logical group of services that are used by Can be use according to specified Call preconditions.

Die folgende Tabelle inkludiert einige Beispiele von Diensten, die in den unterschiedlichen Verarbeitungspunkten in einem veranlassenden bzw. abschließenden SIP-Server definiert sein können:The The following table includes some examples of services included in the different processing points in an inducing or final SIP server can be defined:

Figure 00560001
Figure 00560001

7 veranschaulicht den Verarbeitungsfluss zwischen Diensten, die zu unterschiedlichen Verarbeitungspunkten gehören, gemäß einer Ausführungsform der Erfindung. In der Ausführungsform, die in Verbindung mit 6 beschrieben wird, werden Dienste, die unterschiedliche Teile einer SIP-Nachricht beeinflussen, in unterschiedliche Verarbeitungspunkte gruppiert. Dies kann genutzt werden, um eine effiziente Verarbeitung von Diensten vorzusehen. Dienste, die die SIP-Signalisierungseigenschaften einer eingehenden Nachricht 701 beeinflussen, sind in Verarbeitungspunkt P1 inkludiert. Deshalb umfasst die Ausgabe vom Verarbeitungspunkt P1 die Abschlussruf-/Mediensteuerinstruktionen 702. Dies kann unverzüglich mit möglichem SIP-Servervorgabeverhalten vereinigt und dem Nachrichtenkonverter 705 übergeben werden, der die ausgehende SIP-Nachricht 703 vorbereitet. Außerdem können sich die Dienste, die im Verarbeitungspunkt P2 aufgerufen werden, darauf verlassen, dass sich die Signalisierungseigenschaften nicht länger ändern, z.B. können sie mit Vertrauen Dienste anwenden, die von der endgültigen generierten Zieladresse abhängen. 7 illustrates the flow of processing between services belonging to different processing points according to an embodiment of the invention. In the embodiment associated with 6 is described, services that affect different parts of a SIP message are grouped into different processing points. This can be used to provide efficient service processing. Services that provide the SIP signaling properties of an incoming message 701 are included in processing point P1. Therefore, the output from the processing point P1 includes the final call / media control instructions 702 , This can be combined immediately with possible SIP server default behavior and the message converter 705 pass the outgoing SIP message 703 prepared. In addition, the services invoked at processing point P2 can rely on the signaling properties no longer changing, eg, they can trustingly apply services that depend on the final generated destination address.

Durch Konzentrieren von Diensten, die nur den Nicht-Signalisierungs-SIP-Nachrichtenrumpfinhalt (und möglicherweise die in Beziehung stehenden Inhaltsheaderfelder) beeinflussen, im Verarbeitungspunkt P2 ist die Ausgabe 704 vom Verarbeitungspunkt P2 für den Server ausreichend, die resultierende(n) ausgehende(n) SIP-Nachricht(en) 703 tatsächlich zu senden. Die Ausgabe 704 vom Verarbeitungspunkt P2 wird dem Nachrichtenkonverter 705 übergeben, mit der Ausgabe 702 vom Verarbeitungspunkt P2 vereinigt, und die Nachricht 703 wird gesendet.By concentrating services that only affect the non-signaling SIP message body content (and possibly the related content header fields), at processing point P2 is the output 704 sufficient from the processing point P2 for the server, the resulting outgoing SIP message (s) 703 to actually send. The edition 704 from processing point P2 becomes the message converter 705 pass, with the output 702 from the processing point P2, and the message 703 will be sent.

Wenn die Ausgabe von Verarbeitungspunkten P1 und P2 bereit ist, ist Verarbeitungspunkt P3 erreicht. Die Dienste im Verarbeitungspunkt P3 beeinflussen nicht den Inhalt der resultierenden SIP-Nachricht 703, sondern können auf ihm beruhen. Daher kann vorzugsweise die resultierende SIP-Nachricht, die vom Punkt P1 und P2 generiert wird, gesendet werden, bevor auf die Ausführung von Diensten vom Verarbeitungspunkt P3 gewartet wird, wobei dadurch die Effizienz des Systems erhöht wird.When the output of processing points P1 and P2 is ready, processing point P3 is reached. The services in processing point P3 do not affect the content of the resulting SIP message 703 but can be based on it. Therefore, preferably, the resulting SIP message generated from the point P1 and P2 may be sent before waiting for the execution of services from the processing point P3, thereby increasing the efficiency of the system.

Daher hat die Gruppierung von Diensten gemäß Verarbeitungspunkten die folgenden Vorteile: Verarbeitungspunkte vereinfachen das Problem von Merkmalsinteraktion. Verarbeitungspunkte machen das Problem von Merkmalsinteraktion skalierbarer. Verarbeitungspunkte verbessern Latenz von Verarbeitungsnachrichten, wenn parallele Verarbeitung verwendet wird, d.h. Mehrfachprozessoren. Antworten oder Proxy-Anfragen können zu dem Netz schneller zurückgegeben werden, da sich Dienstanwendungen, die nicht Instruktionen zu dem SIP-Server spezifizieren, im Verarbeitungspunkt P3 befinden. Daher muss die Antwort oder Proxy-Anfrage nicht darauf warten, dass die Dienstanwendungen im Verarbeitungspunkt P3 aufgerufen werden.Therefore has the grouping of services according to processing points the The following advantages: Processing points simplify the problem of feature interaction. Processing points make the problem scalable by feature interaction. Improve processing points Latency of processing messages when parallel processing is used, i. Multiple processors. Answers or proxy requests can returned to the network faster because service applications that are not instructions to the Specify SIP server, located at processing point P3. Therefore the answer or proxy request does not have to wait for the Service applications are called in processing point P3.

8 veranschaulicht die Gruppierung von Diensten in Regelmodule entsprechend administrativer Autorität gemäß einer Ausführungsform der Erfindung. Da Regelmodule einen Regelmodulbesitzer haben, der mit ihm in Verbindung steht, entsprechen sie einer administrativen Domäne, wo ein Administrator, d.h. der Regelmodulbesitzer, Dienstaufstellungsrichtlinien spezifizieren kann. Innerhalb eines Regelmoduls wird die Reihenfolge von Aktionen durch den Besitzer des Regelmoduls, d.h. den SERL-Skriptautor, zugeordnet. 8th illustrates the grouping of services into rule modules according to administrative authority according to an embodiment of the invention. Because rule modules have a rule module owner associated with them, they correspond to an administrative domain where an administrator, ie the rule module owner, can specify service setup policies. Within a rule module, the order of actions is assigned by the owner of the rule module, ie the SERL script author.

Gemäß dieser Ausführungsform der Erfindung hat jedes Regelmodul zu sich eine Priorität zugewiesen. Die Priorität spezifiziert die Beziehung zwischen Regelmodulen. Je höher die Regelmodulpriorität ist, desto früher werden die Regeln in dem Regelmodul angewendet. 8 zeigt schematisch zwei Regelmodule 801 und 802. Regelmodul 801 befindet sich im Besitz durch Administrator A, während sich Regelmodul 802 im Besitz durch Administrator B befindet. Die Regelmodulprioritäten der Regelmodule 801802 werden durch eine Regelmodulordnung angezeigt, wo eine niedrige Ordnung einer hohen Priorität entspricht und umgekehrt. Z.B. kann Regelordnung 1 definiert sein, die höchste Priorität zu sein. In dem Beispiel von 8 hat Regelmodul 801 eine Regelmodulordnung h und Regelmodul 802 hat eine Ordnung h + 1. Folglich werden die Dienste 803804, die durch Regelmodul 801 aufgerufen werden, vor dem Dienst 805 von Regelmodul 802 ausgeführt.According to this embodiment of the invention, each rule module has assigned a priority to itself. The priority specifies the relationship between rule modules. The higher the rule module priority, the sooner the rules will be applied in the rule module. 8th schematically shows two control modules 801 and 802 , control module 801 is owned by Administrator A, while the rule module 802 owned by Administrator B. The rule module priorities of the rule modules 801 - 802 are indicated by a rule modulus ordering where a low order corresponds to a high priority and vice versa. For example, regulation 1 may be defined as the highest priority. In the example of 8th has rule module 801 a rule module order h and rule module 802 has an order h + 1. Consequently, the services 803 - 804 by rule module 801 be called before the service 805 from rule module 802 executed.

Regelmodule mit dem gleichen Besitzer können die gleiche Ordnungspriorität haben. Vorzugsweise sollten sie in diesem Fall unterschiedliche Ereigniskontexte haben (z.B. SIP, HTTP, ...), wobei dadurch vermieden wird, dass mehr als ein Regelmodul mit der gleichen Priorität in dem gleichen Ereigniskontext aufgerufen wird. Mit anderen Worten sollten Regelmodule, die in der gleichen Nachrichteneigenschaft von einem gegebenen Ereigniskontext aufgerufen werden können, unterschiedliche Prioritäten haben.control modules with the same owner the same order priority to have. Preferably they should be different in this case Have event contexts (e.g., SIP, HTTP, ...) thereby avoiding that is, more than one rule module with the same priority in the same event context is called. In other words, should Rule modules that have the same message property of one given event context can have different priorities.

Jede administrative Domäne ist unabhängig von anderen administrativen Domänen. Dies bedeutet, dass eine administrative Domäne kein Wissen über die Dienste haben muss, die in anderen Domänen aufgestellt sind. Jeder Administrator ist für Analysieren und Spezifizieren von Dienstaufstellungsrichtlinien in einer gegebenen Domäne verantwortlich.each administrative domain is independent from other administrative domains. This means that an administrative domain does not know about the Services that are located in other domains. Everyone Administrator is for Analyze and specify service deployment policies in a given domain responsible.

Falls mehr als ein Regelmodul oder eine Dienstanwendung in einem gegebenen Ereignis aufgerufen wird, werden sie je eine Menge von Merkmalsinstruktionen vorsehen, die spezifizieren werden, wie dieses Ereignis zu verarbeiten ist, z.B. ob das Ereignis weitergeleitet oder abgeschlossen werden sollte. Eindeutig sollten derartige Merkmalsinstruktionen nicht gleichzeitig verarbeitet werden, und einige Merkmalsinstruktionen können andere aufheben. In einigen Fällen kann es jedoch nicht wichtig sein, in welcher Reihenfolge Merkmalsinstruktionen angewendet werden oder ob sie gleichzeitig angewendet werden.If more than one rule module or service application in a given one Event is called, they will each have a lot of feature instructions which will specify how to process this event is, e.g. whether the event will be forwarded or completed should. Clearly, such feature instructions should not can be processed at the same time, and some feature instructions may be different cancel. In some cases however, it may not be important in what order feature instructions applied or used simultaneously.

Gemäß der Erfindung wird ein Mechanismus vorgesehen, um administrativen Domänen zu erlauben, ihre Merkmalsinstruktionen zu schützen, wenn die Steuerung zu einer anderen administrativen Domäne übergeben wird. Dies bedeutet, dass jede administrative Domäne die Übergabe einer Steuerung zu Ei genschaften begrenzen kann, die für das korrekte Verhalten ihrer Merkmale unwichtig sind. Das Objekt, das von einem Dienst zu einem anderen weitergegeben wird, ist der aktuelle Ereigniskontext 806807. Wenn die Steuerung des Ereigniskontextes 806 zwischen Dienstanwendungen übergeben wird, die zu der gleichen administrativen Domäne gehören, ist vorzugsweise die Vorgaberegel, dass keine Eigenschaften des Ereigniskontextes geschützt sind. Falls irgendetwas zu schützen ist, muss dies explizit geschehen. Zwischen administrativen Domänen sind jedoch alle Eigenschaften eines Ereigniskontextes 807 per Vorgabe geschützt. Falls es nicht notwendig ist, irgendetwas zwischen administrativen Domänen zu schützen, muss es explizit als ungeschützt markiert werden. Vorzugsweise sollte das Recht, Eigenschaften geschützt und/oder ungeschützt zu markieren, durch ein Privileg gelenkt werden, das mit einem Regelmodul in Verbindung steht.In accordance with the invention, a mechanism is provided for allowing administrative domains to protect their feature instructions when transferring control to another administrative domain. This means that any administrative domain can limit the handover of control to properties that are unimportant for the correct behavior of their features. The object that is passed from one service to another is the current event context 806 - 807 , When the control of the event context 806 is passed between service applications belonging to the same administrative domain, preferably the default rule is that no properties of the event context are protected. If anything is to be protected, this must be done explicitly. However, administrative domains are all properties of an event context 807 protected by default. Unless it is necessary to protect anything between administrative domains, it must explicitly be unprotected be marked. Preferably, the right to mark properties protected and / or unprotected should be governed by a privilege associated with a rule module.

Mit anderen Worten können Regelmodule höherer Priorität Nachrichteneigenschaften sperren, falls sie die Privilegien haben, dies zu tun, und gesperrte Nachrichteneigenschaften können durch Regelmodule nicht freigegeben werden, es sei denn, sie haben die Privilegien, dies zu tun.With other words can Control modules higher priority Lock message properties if they have the privileges to do this, and locked message properties can be through Rule modules will not be released unless they have the Privileges to do this.

Das folgende Beispiel eines Fragmentes eines Regelmoduls veranschaulicht das Sperren/Freigeben von Nachrichteneigenschaften, nachdem ein Merkmal F1 ausgeführt wurde:

Figure 00600001
Figure 00610001
The following example of a fragment of a rule module illustrates locking / unlocking message properties after a feature F1 has been executed:
Figure 00600001
Figure 00610001

In einer Ausführungsform der Erfindung kann eine Aktionsausgabe das Regelmodul abschließen, d.h. die stromabwärtigen Anwendungen werden nicht aufgerufen. Des weiteren können Aktionen explizit Privilegien in Nachrichteneigenschaften in dem aktuellen Ereigniskontext setzen, falls sie die Privilegien haben, dies zu tun. Es ist ein Vorteil dieser Ausführungsform, dass die administrativen Domänen unabhängig sind, sobald ihnen eine Priorität zugeordnet wurde.In an embodiment According to the invention, an action output may terminate the rule module, i. the downstream Applications are not called. Furthermore, actions can explicitly set privileges in message properties in the current Set event context if you have the privileges to do so do. It is an advantage of this embodiment that the administrative domains independently are as soon as they give priority was assigned.

Gemäß dieser Ausführungsform ordnet ein übergreifender Administrator die Prioritäten oder Bereiche von Prioritäten der Regelmodule basierend auf vertraglichen Beziehungen mit jedem der Regelmodulbesitzer zu. Der übergreifende Domänenadministrator wäre natürlich auch der Besitzer des Regelmoduls mit der höchsten Priorität. Z.B. ist an der Spitze der Hierarchie der SIP-Dienstanbieter, der den Domänennamen und die IP-Adresse des Hosts besitzt. Der SIP-Dienstanbieter kann vielen Seiten viele Dienste bereitstellen. Er kann auch für seine eigenen Zwecke Anwendungen laufen lassen, z.B. Protokollierung, Abrechnung, Statistiksammlung, Betrugserfassung, Werbung etc. Er kann ein oder mehr Regelmodule auf dem Server platzieren.According to this embodiment arranges an overarching Administrator's priorities or areas of priorities the rule modules based on contractual relationships with everyone the rule module owner too. The overarching domain administrator would of course be too the owner of the highest priority rule engine. For example, At the top of the hierarchy is the SIP service provider who runs the domain name and the IP address of the host. The SIP service provider can provide many services to many sites. He can also be for his own applications run applications, e.g. logging, Billing, statistics collection, fraud detection, advertising etc. He can place one or more rule modules on the server.

Z.B. kann der SIP-Dienstanbieter ein Regelmodul für jeden seiner Teilnehmer platzieren. Wenn ein SIP-Ereignis in dem SIP-Server empfangen wurde, kann das Hauptregelmodul des SIP-Dienstanbieters einige seiner eigenen Dienste aufrufen und dann die Steuerung zu dem Regelmodul für den geeigneten Teilnehmer übergeben. In diesem Regelmodul kann es Regeln geben, Dienste zu triggern, die für den spezifischen Teilnehmer maßgeschneidert sind. Diese Dienste können durch den SIP-Dienstanbieter selbst bereitgestellt werden, oder können durch den SIP-Dienstanbieter von Dienstanbietern einer dritten Seite eingekauft werden. Der SIP-Dienstanbieter wäre für eine Analyse von Merkmalsinteraktionsproblemen zwischen diesen Diensten und Spezifizieren von Ordnungsprioritäten und Instruktionsprioritäten zwischen den Dienstanwendungen, vorzugsweise durch Verwenden von SERL, verantwortlich. In diesem Fall sind sowohl das Hauptregelmodul als auch das Teilnehmerregelmodul im Besitz durch den SIP-Dienstanbieter und werden durch ihn administriert. Von ihnen wird gesagt, in einer Administrationsdomäne zu sein. In irgendeinem Punkt in der Ordnungspriorität kann der SIP-Dienstanbieter entscheiden, zu einem Regelmodul zu übergeben, das im Besitz des Teilnehmers selbst ist. Es ist zu beachten, dass einzelne Teilnehmer in der Lage sein können, ihre eigenen SERL-Skripte zu schreiben, oder sie können nur in der Lage sein, Präferenzen zu aktualisieren, z.B. über eine HTML-Form, aus der ein SERL-Skript generiert werden kann. Das Regelmodul des Teilnehmers kann ein CPL-Skript aufrufen, oder kann wiederum ein anderes Regelmodul, irgendein Regelmodul eines Dienstanbieters einer dritten Seite oder dergleichen aufrufen. Falls das Regelmodul des Teilnehmers mehr als eine Aktion inkludiert, muss der Teilnehmer spezifizieren, welche Aktion zuerst ausgeführt werden sollte. Gleichermaßen sollten in dem Regelmodul dritter Seiten die Aktionen gemäß den Wünschen der dritten Seite geordnet werden.For example, the SIP service provider may place a rule module for each of its participants. When a SIP event has been received in the SIP server, the main rule module of the SIP service provider may invoke some of its own services and then hand over control to the rule module for the appropriate party. In this rule module, there may be rules to trigger services that are tailor-made for the specific participant. These services may be provided by the SIP service provider itself, or may be purchased by the SIP service provider from third-party service providers. The SIP service provider would be responsible for analyzing feature interaction problems between these services and specifying ordering priorities and instruction priorities between the service applications, preferably by using SERL. In this case, both the main rule module and the subscriber rule module are owned by and administered by the SIP service provider. They are said to be in an administration domain. At some point in the ordering priority, the SIP service provider may decide to hand over to a rule module owned by the subscriber himself. It should be noted that individual participants may be able to write their own SERL scripts, or they may only be able to update preferences, eg via an HTML form, from which a SERL script can be generated. The subscriber's policy module may invoke a CPL script or, in turn, invoke another policy module, any rule module of a third party service provider, or the like. If the participant's rule module includes more than one action, the participant must specify which action should be performed first. Likewise, in the rule module of third parties, the actions should be ordered according to the wishes of the third party.

In einem anderen Szenarium kann der Teilnehmer ein Angestellter eines Firmenkunden sein. In diesem Fall kann das Regelmodul des SIP-Dienstanbieters zuerst zu dem Regelmodul des Firmenkunden übergeben, das irgendwelche Anwendungen aufrufen und dann zu dem Regelmodul des einzelnen Teilnehmers übergeben kann.In In another scenario, the subscriber may be an employee of a Being corporate clients. In this case, the rule module of the SIP service provider first handed over to the rule module of the corporate client, which has any Call applications and then transfer them to the rule module of the individual participant can.

Der Administrator oberster Ebene kann wünschen, die Prioritätsreihenfolge mit einer Zahl von Regelmodulen zu vermischen. Es kann jedoch umständlich sein, Regelmodule mit Regelmodulen unterer Priorität von anderen Seiten zu vermischen. Eine Lösung für dieses Problem ist, Regelmodulprioritäten mit ausreichenden Sicherungsbereichen zu trennen, die zu einer späteren Zeit verwendet werden können. Alternativ kann ein hierarchisches Administrationsdomänenmodell angewendet werden, wie in Verbindung mit 12 beschrieben wird.The top-level administrator may wish to merge the order of priority with a number of rule modules. However, it can be cumbersome to mix rule modules with lower priority rule modules from other sites. One solution to this problem is to separate rule engine priorities with sufficient hiding areas that can be used at a later time. Alternatively, a hierarchical administration domain model may be applied as in connection with 12 is described.

Vorzugsweise unterstützt die Dienstunterstützungsumgebung einen Mechanismus zum Benachrichtigen von Administratoren, wenn eine Anwendung versucht, eine geschützte Eigenschaft zu ändern. Vorzugsweise wird eine Anwendung, die versucht, eine geschützte Eigenschaft zu ändern, außer Dienst genommen.Preferably supports the service support environment a mechanism for notifying administrators when An application tries to change a protected property. Preferably An application attempting to change a protected property is taken out of service taken.

Es wird vermerkt, dass Modifikationen des obigen Schemas möglich sind. Z.B. kann in einer Hierarchie von administrativen Domänen jeder Administrator einer Ebene einen vollständigen Geltungsbereich haben, um Regelmodule auf Ebenen mit unterer Priorität anzuordnen, innerhalb eines zugeordneten Prioritätsbereiches. Der Administrator höherer Ebene würde diesen Geltungsbereich delegieren.It It is noted that modifications of the above scheme are possible. For example, can be in a hierarchy of administrative domains each Administrator of a level have a full scope, to arrange rule modules on lower priority levels, within one assigned priority range. Of the Administrator higher Level would delegate this scope.

Es ist ein Vorteil dieser Ausführungsform, dass sie einen skalierbaren Mechanismus zum Managen und Implementieren von Dienstaufstellungsrichtlinien vorsieht. Gemäß dieser Ausfüh rungsform ist die Dienstunterstützungsumgebung in der Lage, Dienstaufstellungsrichtlinien einer dritten Seite ohne beträchtliche zusätzliche Arbeit für den Domänenadministrator zu unterhalten. Es ist ein weiterer Vorteil, dass Begrenzungen auf die Zahl von Interessengruppen oder die Zahl von vertraglichen Beziehungen zwischen ihnen platziert werden.It is an advantage of this embodiment, that they have a scalable mechanism for managing and implementing of service listing guidelines. According to this embodiment is the service support environment able to service page a third page without considerable additional Work for the domain administrator to entertain. There is another advantage to that limitations the number of interest groups or the number of contractual relationships be placed between them.

Es ist ein weiterer Vorteil dieser Ausführungsform, dass die Aufgabe von Merkmalsinteraktionsanalyse in administrative Domänen herunter gebrochen wird, wobei dadurch eine Verteilung des Problems zwischen den betroffenen Seiten erlaubt wird.It Another advantage of this embodiment is that the task from feature interaction analysis to administrative domains is broken thereby giving a distribution of the problem between the affected pages is allowed.

9 veranschaulicht eine Ausführungsform der Erfindung, wo Dienste sowohl gemäß Verarbeitungspunkten als auch gemäß administrativer Autorität gruppiert sind. 9 zeigt schematisch ein Regelmodul 901 mit Prioritätsordnung h und ein Regelmodul 902 mit Prioritätsordnung h + 1. Regelmodul 901 ruft Dienste F1, F2, F5 und F6 auf, während Regelmodul 902 Dienste F3, F4, F7 und F8 aufruft. Die Dienste F1–F8 beziehen sich ferner auf Verarbeitungspunkte (processing points, PP) 903 und 904. Verarbeitungspunkt 903 inkludiert Dienste F1–F4, und Verarbeitungspunkt 904 inkludiert Dienste F5–F8. Die Verarbeitungspunkte 903904 sind derart nummeriert, dass der Verarbeitungspunkt 903 den Index K hat, und Verarbeitungspunkt 904 den Index K + 1 hat, was anzeigt, dass Verarbeitungspunkt 903 vor Verarbeitungspunkt 904 verarbeitet wird. 9 illustrates an embodiment of the invention where services are grouped according to both processing points and administrative authority. 9 schematically shows a control module 901 with priority order h and a rule module 902 with priority order h + 1st control module 901 calls services F1, F2, F5 and F6 while the rule module 902 Services F3, F4, F7 and F8 calls. The services F1-F8 also refer to processing points (PP) 903 and 904 , processing point 903 includes services F1-F4, and processing point 904 includes services F5-F8. The processing points 903 - 904 are numbered so that the processing point 903 has the index K, and processing point 904 has the index K + 1, indicating that processing point 903 before processing point 904 is processed.

Gemäß dieser Ausführungsform werden Regeln in einer Sequenz der Verarbeitungspunkte angewendet. Wenn Regelmodule verarbeitet werden, werden folglich nur die Dienstausführungsregeln ausgeführt, die zu dem aktuellen Verarbeitungspunkt gehören.According to this embodiment Rules are applied in a sequence of processing points. Consequently, when rule modules are processed, only the service execution rules become executed that belong to the current processing point.

Für jeden Verarbeitungspunkt gibt es Mengen von Regelmodulen, die gemäß Priorität gruppiert sind, und die in diesem Verar beitungspunkt aufgerufen werden können. Alle Regelmodule von Priorität 1 sind in Menge 1 gruppiert, alle Regelmodule von Priorität 2 sind in Menge 2 gruppiert usw. In einem gegebenen Ereigniskontext wird jedoch höchstens ein Regelmodul in jeder dieser Mengen aufgerufen. Ein Regelmodul kann über mehrere Verarbeitungspunkte verteilt sein.For each Processing point, there are sets of rule modules grouped according to priority are, and that can be called in this processing point. All Control modules of priority 1 are grouped in set 1, all rule modules are of priority 2 grouped in set of 2, etc. In a given event context becomes however, at most called a rule module in each of these sets. A rule module can over several processing points be distributed.

In dem Beispiel von 9 werden zuerst die Dienste des Verarbeitungspunktes 903 gemäß ihrer Regelmodulpriorität verarbeitet, d.h. Dienste F1 und F2 werden vor Diensten F3 und F4 verarbeitet. Anschließend werden die Merkmale F5 und F6 von Verarbeitungspunkt 904 und Priorität h vor Diensten F7 und F8 aufgerufen.In the example of 9 First, the services of the processing point 903 processed according to their rule module priority, ie services F1 and F2 are processed before services F3 and F4. Subsequently, the features F5 and F6 of processing point 904 and priority h before services F7 and F8 fen.

Die Regelmodule 901 und 902, die in 9 schematisch veranschaulicht sind, können wie in den folgenden Beispielen von Regelmodulen angezeigt ausgedrückt werden.The rule modules 901 and 902 , in the 9 are schematically illustrated, can be expressed as indicated in the following examples of control modules.

Figure 00650001
Figure 00650001

Figure 00660001
Figure 00660001

10 veranschaulicht den Verarbeitungsmechanismus der Ausführungsform von 9 in dem Fall von mehreren Regelmodulen und mehreren Verarbeitungspunkten. Gemäß dieser Ausführungsform gibt es vier Verarbeitungspunkte, die mit PO bis P3 nummeriert sind, und fünf Regelmodule RM A bis RM E, jeweils mit Prioritäten 1 bis 5. Gemäß den Verarbeitungsregeln, die in Verbindung mit 9 beschrieben werden, werden Dienste verarbeitet, wie durch die Kreise in 10 angezeigt, die mit 1 bis 20 nummeriert und durch Pfeile verbunden sind. Jeder nummerierte Kreis kann eine Menge von Regeln darstellen, die eine Zahl von Aktionen aufrufen. 10 illustrates the processing mechanism of the embodiment of FIG 9 in the case of multiple rule modules and multiple processing points. According to this embodiment, there are four processing points numbered PO to P3 and five control modules RM A to RM E each having priorities 1 to 5. In accordance with the processing rules associated with 9 services are processed as indicated by the circles in 10 displayed, numbered 1 through 20 and connected by arrows. Each numbered circle can represent a set of rules that call a number of actions.

11 veranschaulicht ein anderes Beispiel der Verarbeitungsregeln, die in Verbindung mit 9 beschrieben werden. 11 veranschaulicht Instanzen 1111a1115a von Regelmodulen RM A bis RM E auf der linken Seite 1101 bzw. Instanzen 1111b1115b der Regelmodule RM A bis RM E auf der rechten Seite 1102 der Figur. Die Regelmodule RM A bis RM E umfassen Regeln entsprechend Verarbeitungspunkten P0 bis P6. Daher können die Instanzen von Regelmodulen auf der linken Seite 1101 unterschiedliche Sektionen der gleichen jeweiligen Regelmodule wie die Regelmodule auf der rechten Seite 1102 darstellen. Wie in Verbindung mit 6 beschrieben wurde, werden die Verarbeitungspunkte P1–P3 durch SIP-Anfragen getriggert, während die Verarbeitungspunkte P4–P6 durch Antworten getriggert werden. Verarbeitungspunkt P0 wird durch sowohl Anfragen als auch Antworten getriggert. Daher triggert in diesem Beispiel eine eingehende SIP-Anfrage 1103, z.B. eine EINLADEN-Anfrage, Dienste von Regelmodulen RM A bis RM E, die sich auf Verarbeitungspunkte P0–P3 beziehen, in der Reihenfolge, die durch die Pfeile auf der linken Seite 1101 in 11 angezeigt wird. In dem Beispiel von 11 wird weiter angenommen, dass ein Dienst 1104 eine Instruktion ausgibt, die eine Antwort 1105 bewirkt. Diese Antwort wiederum triggert die Verarbeitung der Regeln der Regelmodule RM A (111b) bis RM E (1115b), die sich auf die Verarbeitungspunkte P0 und P4–P6 beziehen, wie auf der rechten Seite 1102 von 11 angezeigt, beginnend mit dem (den) Dienst(en) 1106, und zu einer ausgehenden Nachricht 1108 führend, z.B. einer generierten vorläufigen Antwort. Die Verarbeitung der Dienste auf der linken Seite 1101 führt ferner zu einer ausgehenden Nachricht 1107, z.B. einer EINLADEN-Proxy-Anfrage. 11 illustrates another example of the processing rules associated with 9 to be discribed. 11 illustrates instances 1111a - 1115a from control modules RM A to RM E on the left side 1101 or instances 1111b - 1115b the control modules RM A to RM E on the right side 1102 the Figure. The control modules RM A to RM E include rules corresponding to processing points P0 to P6. Therefore, the instances of rule modules on the left side 1101 may have different sections of the same respective rule modules as the rule modules on the right side 1102 represent. As in connection with 6 has been described, the processing points P1-P3 are triggered by SIP requests, while the processing points P4-P6 are triggered by responses. Processing point P0 is triggered by both requests and responses. Therefore, in this example, an incoming SIP request triggers 1103 , eg an INVITE request, services of rule modules RM A to RM E relating to processing points P0-P3, in the order indicated by the arrows on the left 1101 in 11 is shown. In the example of 11 it is further assumed that a service 1104 Issue an instruction that has an answer 1105 causes. This response in turn triggers the processing of the rules of the control modules RM A ( 111b ) to RM E ( 1115b ) referring to the processing points P0 and P4-P6 as on the right side 1102 from 11 displayed starting with the service (s) 1106 , and an outgoing message 1108 leading, eg a generated preliminary answer. The processing of services on the left 1101 also results in an outgoing message 1107 , eg an INVITE proxy request.

12 veranschaulicht eine hierarchische Regelmodulverarbeitung gemäß einer bevorzugten Ausführungsform der Erfindung. Wenn der Regelantrieb (rule engine, RE) 1200 Ereignis 1201 empfängt, identifiziert er die relevanten Regelmodule 12161219 von unterschiedlichen Prioritäten für dieses Ereignis in der Regelbasis. Der Regelantrieb 1200 generiert einen aktuellen Ereigniskontext 1202, initiiert eine Verarbeitung des Regelmoduls höchster Priorität 1216 und übergibt die Steuerung über den generierten aktuellen Ereigniskontext 1202 zu diesem Regelmodul 1216. Wenn die Verarbeitung des Regelmo duls höchster Priorität 1216 abgeschlossen ist, ruft der Regelantrieb 1200 das nachfolgende Regelmodul 1217 gemäß Regelmodulpriorität auf und gibt den modifizierten aktuellen Ereigniskontext 1206 zu dem nächsten Regelmodul 1214 weiter. Ähnlich werden die nachfolgenden Regelmodule 12181219 aufgerufen und die Steuerung über die jeweiligen aktuellen Ereigniskontexte 1207 und 1214 wird zu ihnen weitergegeben. Schließlich wird der resultierende Ereigniskontext 1215 zu dem Regelantrieb 1200 zurückgegeben. Gemäß dieser Ausführungsform der Erfindung kann jedes aufgerufene Regelmodul anschließend ein oder mehrere andere Regelmodule aufrufen. Gemäß einer bevorzugten Ausführungsform sind Regelmodule in zwei Typen von Regelmodulen unterteilt: Regelmodule 12161219, die durch den Regelantrieb 1200 gemäß ihrer Ordnungspriorität aufgerufen werden können, und Regelmodule 12201225, die nur durch andere Regelmodule aufgerufen werden können. Der letztere Typ von Regelmodulen kann formal durch eine spezielle Ordnungspriorität identifiziert werden, z.B. durch die Ordnungspriorität 0. Gemäß dieser Ausführungsform haben Regelmodule mit dieser Priorität spezielle Einschränkungen, die mit ihnen in Verbindung stehen: Regelmodule mit dieser Ordnungspriorität sollten nicht durch die Regelbasisverarbeitungsprozedur des Regelantriebs 1200 aufgerufen werden, sondern werden von einem anderen Regelmodul mit expliziten Privilegien dies zu tun aufgerufen. Regelmodule mit einer Ordnungspriorität, die sich von 0 unterscheidet, werden nicht von einem anderen Regelmodul aufgerufen, sondern nur durch den Regelantrieb. Regelmodule mit dem gleichen Besitzer können die gleiche Ordnungspriorität (verschieden von 0) haben, aber in diesem Fall sollten sie unterschiedliche Ereigniskontexte haben, z.B. SIP, HTTP, etc. Dies bedeutet, dass sie nicht in dem gleichen Ereigniskontext aufgerufen werden sollten. Regelmodule mit unterschiedlichen Besitzern können die gleiche Ordnungspriorität haben, aber in diesem Fall sollten sie nicht in der gleichen Eigenschaft in dem gleichen Ereig nis aufgerufen werden. Mit anderen Worten sollten Regelmodule, die in der gleichen Nachrichteneigenschaft von einem gegebenen Ereigniskontext aufgerufen werden können, unterschiedliche Prioritäten haben, es sei denn, sie ist Null. Das erste Regelmodul 1216 wird durch den Regelantrieb aufgerufen, bevor beliebige Regelmodule mit Ordnungspriorität 0 aufgerufen werden. Dieses Regelmodul wird als das Wurzelregelmodul bezeichnet. Wenn das Wurzelregelmodul 1216 Regelmodule mit Priorität 0 aufruft, können sie erneut andere Regelmodule mit Priorität 0 aufrufen. Diese Beziehungen zwischen Regelmodulen werden die Regelmodulhierarchie genannt. Dieser Mechanismus zum Aufrufen von Regelmodulen von innerhalb von Regelmodulen ergibt eine hierarchische Verteilung von administrativen Domänen, die auch das hierarchische administrative Domänenmodell genannt wird. Die Vorteile bei diesem Modell bestehen darin, dass es leicht zu administrieren ist und den Hauptregelmodulen eine große Menge von Steuerung gibt. Es ist ein weiterer Vorteil, dass zusätzliche Regelmodule einer existierenden Hierarchie hinzugefügt werden können, ohne dass eine große Zahl von Prioritäten nachfolgenden Regelmodulen erneut zurückgewiesen werden muss. 12 illustrates a hierarchical rule module processing according to a preferred embodiment of the invention. When the rule engine (RE) 1200 event 1201 It identifies the relevant control modules 1216 - 1219 different priorities for this event in the rule base. The standard drive 1200 generates a current event context 1202 , initiates processing of the highest priority control module 1216 and passes control over the generated current event context 1202 to this rule module 1216 , If the processing of the highest priority control module 1216 is completed, calls the variable speed drive 1200 the following control module 1217 according to rule module priority and returns the modified current event context 1206 to the next rule module 1214 further. The following control modules become similar 1218 - 1219 called and control over the respective current event contexts 1207 and 1214 will be passed on to you. Eventually the resulting event context becomes 1215 to the variable speed drive 1200 returned. According to this embodiment of the invention, each called control module can then call one or more other control modules. According to a preferred embodiment, control modules are divided into two types of control modules: control modules 1216 - 1219 by the variable speed drive 1200 according to their order priority, and rule modules 1220 - 1225 that can only be called by other rule modules. The latter type of rule module may be formally identified by a particular ordering priority, eg, ordering priority 0. According to this embodiment, rule modules having this priority have specific limitations associated with them: rule modules having this ordering priority should not be governed by the rule base processing procedure of the rule engine 1200 but are called by another rule module with explicit privileges to do so. Rule modules with an ordering priority that differs from 0 are not called by another rule module, but only by the rule driver. Rule modules with the same owner can have the same ordering priority (other than 0), but in this case they should have different event contexts, eg SIP, HTTP, etc. This means that they should not be called in the same event context. Rule modules with different owners can have the same ordering priority, but in that case they should not be called in the same property in the same event. In other words, rule modules that can be invoked in the same message property from a given event context should have different priorities, unless it is null. The first rule module 1216 is called by the rule drive before any rule modules with order priority 0 are called. This rule module is called the root rule module. If the root control module 1216 If you call rule modules with priority 0, you can call other rule modules with priority 0 again. These relationships between rule modules are called the rule module hierarchy. This mechanism for invoking rule modules from within rule engines results in a hierarchical distribution of administrative domains, also called the hierarchical administrative domain model. The advantages of this model are that it is easy to administer and gives the main rule modules a large amount of control. It is a further advantage that additional rule modules can be added to an existing hierarchy without having to again reject a large number of priorities of subsequent rule modules.

Die obigen Regeln vermeiden, dass Regelmodule in der Regelbasisverarbeitungsprozedur zufällig zweimal aufgerufen werden.The avoid the above rules rule modules in the rule base processing procedure by chance twice be called.

In dem Beispiel, das in 12 veranschaulicht wird, ruft Regelmodul 1216 Regelmodule 1221 und 1222 in dieser Reihenfolge auf, übergibt die Steuerung der entsprechenden Ereigniskontexte 12031204 und empfängt den resultierenden aktuellen Ereigniskontext 1205. Ähnlich ruft Regelmodul 1218 Regelmodule 12221223 mit den entsprechenden Ereigniskontexten 12081209 und dem resultierenden Ereigniskontext 1213 auf. Schließlich ruft das Regelmodul 1223, das durch Regelmodul 1218 aufgerufen wird, ferner Regelmodule 12241225 mit den entsprechenden Ereigniskontexten 12101211 und dem resultierenden Ereigniskontext 1212 auf.In the example that is in 12 is getting called rule engine 1216 control modules 1221 and 1222 In this order, the controller passes the appropriate event contexts 1203 - 1204 and receives the resulting current event context 1205 , Similarly, rule module calls 1218 control modules 1222 - 1223 with the appropriate event contexts 1208 - 1209 and the resulting event context 1213 on. Finally, the rule module calls 1223 that by rule module 1218 is called, furthermore control modules 1224 - 1225 with the appropriate event contexts 1210 - 1211 and the resulting event context 1212 on.

Daher wird ein hierarchischer Aufrufprozess durchgeführt, der eine Sequenz von aktuellen Ereigniskontexten generiert, die durch die Nummerierung der Ereigniskontexte 12021215 angezeigt wird.Therefore, a hierarchical invocation process is performed that generates a sequence of current event contexts by numbering the event contexts 1202 - 1215 is shown.

Es wird vermerkt, dass falls mehr als ein Verarbeitungspunkt definiert ist, die obige Beschreibung von Regelmodulverarbeitung als pro Verarbeitungspunkt verstanden werden sollte, d.h. für jeden Verarbeitungspunkt wird eine entsprechende Hierarchie von Regelmodulen verarbeitet.It it is noted that if defined more than one processing point is the above description of rule module processing as per processing point should be understood, i. For each processing point will have a corresponding hierarchy of Process control modules processed.

Eine wichtige Aufgabe der Regelbasisverarbeitungsprozedur des Regelantriebs 1200 ist die Abbildung von SIP-Ereignissen auf relevante Regelmodule. Dieser Prozess hängt sehr stark von den vertraglichen Beziehungen ab, die in der in Frage kommenden Domäne definiert sind. Ein SIP-Ereignis inkludiert eine Zahl von Nachrichteneigenschaften, die verwendet werden können, um eine mögliche vertragliche Beziehung zu erfassen. Diese Eigenschaften inkludieren siprequest.from (SIP-Anfrage.von), siprequest.to (SIP-Anfrage.zu), siprequest.RequestURI (SIP-Anfrage.URI-Anfordern), sipresponse.from (SIP-Antwort.von), sipresponse.to (SIP-Antwort.zu), sipresponse.contact (SIP-Antwort.Kontakt) und sipresponse.via (SIP-Antwort.über). Insbesondere sind die From und Request-URI einer SIP-Nachricht wichtige Eigenschaften eines Ereignisses, die verwendet werden, um eine vertragliche Beziehung mit einem Netzbetreiber oder einem Dienstanbieter einer dritten Seite zu erfassen. Es können jedoch andere Nachrichteneigenschaften berücksichtigt werden, z.B. Kontakt-Header und via-Header. Eine Nachrichteneigenschaft, die verwendet werden kann, um eine vertragliche Beziehung zu erfassen und somit ein Regelmodul zu triggern, wird als ein Regelmodultrigger (RMTrigger) bezeichnet.An important task of the rule base processing procedure of the rule drive 1200 is the mapping of SIP events to relevant rule modules. This process depends very much on the contractual relationships defined in the domain in question. A SIP event includes a number of message properties that can be used to capture a possible contractual relationship. These properties include siprequest.from (SIP request.from), siprequest.to (SIP request.to), siprequest.RequestURI (SIP request.URI request), sipresponse.from (SIP response.of), sipresponse .to (sipresponse.contact) and sipresponse.via (sipresponse.via). In particular, the From and Request URI of a SIP message are important characteristics of an event used to establish a contractual relationship with a third party network operator or service provider. However, other message properties may be considered, such as contact headers and via headers. A message property that can be used to capture a contractual relationship and thus trigger a rule module is referred to as a rule trigger (RMTrigger).

Wenn eine SIP-Anfragenachricht in einem SIP-Server ankommt, sollte mindestens eine von den From- oder Request-URI-Nachrichteneigenschaften einen Teilnehmer spezifizieren, der eine vertragliche Beziehung mit einem der Netzbetreiber des SIP-Servers hat. Die Nachrichteneigenschaften von From oder Request-URI können einen Domänennamen, wie netopX.com, oder eine IP-Adresse von einem der Netzbetreiber des SIP-Servers, wie 123.123.123.000, enthalten. Außerdem inkludieren die From oder Request-URI einen Teilnehmeridentifikator, wie einen Namen oder eine Telefonnummer. Dies ist in der SIP URL oder TEL URL enthalten. Die SIP-URL hat auch Parameter wie "transport-param", "user-param" ("Benutzer-param") und "other-param" ("andere-param"). Diese Parameter können Information inkludieren, die für einen Netzbetreiber spezifisch ist, wie die IMSI, um Teilnehmer eines mobilen Endgerätes und Endgeräte zu identifizieren.If a SIP request message arrives in a SIP server should at least one of the From or Request URI message properties Specify participants who have a contractual relationship with one the network operator of the SIP server Has. The message properties of From or Request-URI can be one Domain name like netopX.com, or an IP address from one of the network operators of the SIP server, such as 123,123,123,000. Also included the From or Request URI has a subscriber identifier, such as a Name or phone number. This is in the SIP URL or TEL URL included. The SIP URL also has parameters such as "transport-param", "user-param" and "other-param". These parameters can Include information for a network operator is specific, such as the IMSI, to subscribers a mobile terminal and terminals to identify.

Unter Verwendung z.B. der obigen Eigenschaften kann ein SIP-Ereignis auf einen eindeutigen Netzbetreiber abgebildet werden, falls eine Zahl von Anforderungen erfüllt sind, z.B. falls jeder der Netzbetreiber des SIP-Servers einen eindeutigen Domänennamen hat, wie netopX.com und netopY.com, und falls sie unterschiedliche IP-Adressen haben. Falls sie die gleiche IP-Adresse gemeinsam nutzen, können mutmaßliche Beziehungsauflösungen mehrdeutig sein, da die Nachrichteneigenschaften der From und Request-URI eine IP-Adresse und nicht einen Domänennamen enthalten können.Under Use e.g. The above properties can have a SIP event on one unique network operator, if a number of requirements fulfilled are, e.g. if each of the network operators of the SIP server has a unique domain name has, like netopX.com and netopY.com, and if they are different Have IP addresses. If they share the same IP address, can suspected relationship resolutions be ambiguous, since the message properties of the From and Request URI can contain an IP address and not a domain name.

Dienstanbieter einer dritten Seite, die Dienstanwendungen auf den SIP-Server hochladen/registrieren, haben eine vertragliche Beziehung mit dem Netzbetreiber, die erfasst werden kann. Z.B. kann der Dienstanbieter einer dritten Seite eine zuge wiesene ID von dem Netzbetreiber empfangen, mit dem der Dienstanbieter einer dritten Seite eine vertragliche Beziehung hat. Falls der Netzbetreiber einen Domänennamen hat, z.B. netopX.com, und eine zugehörige IP-Adresse, kann der Dienstanbieter einer dritten Seite mit einem eindeutigen Namen partyZ zugewiesene IDs empfangen, die einer Namenskonvention folgen, z.B. "partyZ.netopX.com". Nun können die From und Request-URI auf relevante Regelmodule abgestimmt werden. Da sowohl netopX.com als auch partyZ.netopX.com in einem Ereignis aufgerufen werden sollten, das netopX.com in entweder dem From oder Request-URI enthält, sollten sie unterschiedliche explizite Ordnungsprioritäten haben. Es wird verstanden, dass stattdessen andere Namenskonventionen eingeführt werden können.service provider a third party to upload / register service applications to the SIP server a contractual relationship with the network operator that is captured can. For example, The service provider may assign a assigned value to a third party ID received from the network operator with which the service provider a third party has a contractual relationship. If the network operator a domain name has, e.g. netopX.com, and an associated IP address, may be the service provider assigned a third page with a unique name partyZ Receive IDs that follow a naming convention, e.g. "PartyZ.netopX.com". Now you can From and Request URI are matched to relevant rule modules. Because both netopX.com and partyZ.netopX.com in one event should be called netopX.com in either the From or Contains request URI, they should have different explicit ordering priorities. It is understood that other naming conventions are being introduced instead can.

Es wird verstanden, dass die Mechanismen von Ordnungspriorität und Regelmodulhierarchie unabhängig voneinander oder in Kombination miteinander angewendet werden können, wie in Verbindung mit 12 beschrieben wurde.It will be understood that the order priority and rule module hierarchy mechanisms may be applied independently or in combination with one another, as in connection with 12 has been described.

13 zeigt ein Beispiel des Flusses von SIP-Nachrichten und Instruktionsmengen gemäß einer Ausführungsform der Erfindung. Der Nachrichtenparser 1304 konvertiert die ursprüngliche SIP-Nachricht 1306 in ein ursprüngliches SIP-Nachrichtenobjekt 1303. Dies wird verwendet, um das Anfangsregelmodul 1301 aufzurufen, und daher die erste Sequenz von Dienstanwendungen. Wenn ein Regelmodul 1301 in den Regelantrieb 1302 geladen und ausgeführt wird, werden eine oder mehr Aktionen erreicht, abhängig von dem Signalisierungsnachrichtenobjekt 1303, das von dem Nachrichtenparser 1304 empfangen wurde und auf der Basis dessen Regelmodul 1301 identifiziert wurde, wie z.B. in Verbindung mit 12 beschrieben. Wenn eine Aktion erreicht wird, wird die Dienstanwendung 1305, die mit der Aktion in Verbindung steht, aufgerufen, d.h. sie wird aktiviert, möglicherweise mit Parametern und möglicherweise mit Zugriff auf das gesamte Signalisierungsnachrichtenobjekt 1303, das die Anwendung getriggert hat. Die Zugriffsprivilegien zu der gesamten Signalisierungsnachricht hängen von der Funktionalität und dem Bereich der verwendeten Dienstzugriffs-API, z.B. Cgi API im Vergleich zu OSA API, ebenso wie den Privilegien des Besitzers des Regelmoduls 1301 und den Privilegien der aufgerufenen Dienstanwendung 1305 ab. Das Anfangssignalisierungsnachrichtenobjekt 1303 repräsentiert die gesamte Menge von Nachrichteneigenschaften, die in der ursprünglichen SIP-Nachricht 1306 eingebettet sind, die mehrere Medientypen inkludieren kann. Die aufgerufene Dienstanwendung 1305 führt einige Verarbeitung basierend auf der Signalisierungsnachricht 1303 durch und gibt das Ergebnis 1307 zu dem Regelantrieb 1302 zurück. Dieses Ergebnis wird als die Instruktionsmenge bezeichnet, da es potenziell mehrere Instruktionen enthalten kann, z.B. CGI-Instruktionen, OSA-API-Instruktionen etc. Wenn mehrere Dienste basierend auf einer Signalisierungsnachricht aufgerufen werden, wird der Regelmodulprozessor zu mehreren Instruktionsmengen kommen. Diese Menge von Instruktionsmengen wird als die "Instruktionsmengenbasis" bezeichnet. 13 shows an example of the flow of SIP messages and instruction sets according to an embodiment of the invention. The message parser 1304 converts the original SIP message 1306 into an original SIP message object 1303 , This is used to start the initial rule module 1301 and therefore the first sequence of service applications. If a rule module 1301 in the standard drive 1302 is loaded and executed, one or more actions are achieved, depending on the signaling message object 1303 that from the message parser 1304 was received and based on its rule module 1301 has been identified, such as in connection with 12 described. When an action is reached, the service application becomes 1305 which is associated with the action, ie it is activated, possibly with parameters and possibly access to the entire signaling message object 1303 that triggered the application. The access privileges to the entire signaling message depend on the functionality and scope of the service access API used, eg Cgi API versus OSA API, as well as the privileges of the owner of the rule module 1301 and the privileges of the called service application 1305 from. The initial signaling message object 1303 represents the entire set of message properties that are in the original SIP message 1306 embedded, which can include multiple media types. The called service application 1305 performs some processing based on the signaling message 1303 through and gives the result 1307 to the variable speed drive 1302 back. This result is referred to as the instruction set, since it may potentially contain multiple instructions, eg, CGI instructions, OSA API instructions, etc. When multiple services are called based on a signaling message, the rule module processor will come in multiple instruction sets. This set of instruction sets is referred to as the "instruction set basis".

Der Regelantrieb 1302 und der Anwendungsausführungsantrieb bestimmen, welche Instruktionen zu dem SIP-Servervorgabeverhalten 1308 zu vermitteln sind. Die Instruktionsmenge kann basierend auf Privilegien und Merkmalsinteraktionsauflösung gefiltert werden, bevor sie zu dem SIP-Servervorgabeverhalten 1308 vermittelt wird, was die Instruktionsmenge ferner mit einer Vorgabe-SIP-Instruktionsmenge 1312 vereinigen kann. Die resultierende Menge von Instruktionen wird die "resultierende Instruktionsmenge" genannt. Das (die) resultierende(n) SIP-Nachrichtenobjekt(e) repräsentiert(en) die tatsächlichen SIP-Nachrichten, die stromabwärts oder stromaufwärts zu senden sind. Daher führt dies zu einem oder mehr resultierenden SIP-Nachrichtenobjekten 1309, die zu dem Nachrichtenkonverter 1310 gesendet werden, der sie anschließend in eine oder mehr zu sendende SIP-Nachrichten 1311 transformiert.The standard drive 1302 and the application execution engine determine what instructions to the SIP server default behavior 1308 to convey. The instruction set may be filtered based on privilege and feature interaction resolution prior to the SIP server default behavior 1308 what is the instruction set further with a default SIP instruction set 1312 can unite. The resulting set of instructions is called the "resulting instruction set". The resulting SIP message object (s) represents the actual SIP messages to be sent downstream or upstream. Therefore, this results in one or more resulting SIP message objects 1309 leading to the message converter 1310 then send them to one or more SIP messages to be sent 1311 transformed.

14 veranschaulicht einen Mechanismus zum Managen mehrerer Instruktionsmengen gemäß einer bevorzugten Ausführungsform der Erfindung. Gemäß dieser Ausführungsform ist ein Ereigniskontext eine Darstellung eines SIP-Nachrichtenobjektes, er kann aber zusätzliche Information enthalten, wie etwa Merkmalsinteraktionsinformation ebenso wie die MIME-Typen, die in dem Nachrichtenrumpf der SIP-Nachricht inkludiert sind. Der ursprüngliche Ereigniskontext 1401 repräsentiert das ursprüngliche SIP-Nachrichtenobjekt 1402. Der aktuelle Ereigniskontext 1403a–b ist ein Ereigniskontext basierend auf der Instruktionsmenge, die durch die Dienstanwendungen 14041405 generiert wird. In einem beliebigen gegebenen Zeitpunkt ist eine Dienstanwendung in Steuerung des aktuellen Ereigniskontextes. Selbst wenn mehrere Dienstanwendungen gleichzeitig laufen und Steuerung auf die Handhabung der Transaktion anwenden, hat nur eine von ihnen die Steuerung des aktuellen Ereigniskontextes in einem beliebigen Zeitpunkt. In dem Beispiel von 14 werden zwei Dienstanwendungen 14041405 gezeigt. Anfangs hat Dienstanwendung 1404 die Steuerung über den aktuellen Ereigniskontext 1403a. Wenn die Anwendung 1404 ihre Verarbeitung abgeschlossen hat, wird die Steuerung über den aktuellen Ereigniskontext zu der Dienstanwendung 1405 übergeben. Zu diesem Punkt steuert Dienstanwendung 1405 den aktuellen Ereigniskontext 1403b, d.h. sie hat das Recht ihn zu lesen und zu schreiben. In einer Ausführungsform der Erfindung können andere Dienstanwendungen das Recht haben, den aktuellen Ereigniskontext 1403b zu lesen. 14 illustrates a mechanism for managing multiple instruction sets in accordance with a preferred embodiment of the invention. According to this embodiment, an event context is an illustration of a SIP message object, but may include additional information, such as feature interaction information as well as the MIME types included in the message body of the SIP message. The original event context 1401 represents the original SIP message object 1402 , The current event context 1403a -B is an event context based on the instruction set provided by the service applications 1404 - 1405 is generated. At any given time, a service application is in control of the current event context. Even if multiple service applications run concurrently and apply control to handling the transaction, only one of them has control of the current event context at any one time. In the example of 14 become two service applications 1404 - 1405 shown. Initially has service application 1404 the control over the current event context 1403a , If the application 1404 has completed its processing, control over the current event context becomes the service application 1405 to hand over. At this point controls service application 1405 the current event context 1403b ie she has the right to read and write him. In one embodiment of the invention, other service applications may have the right to view the current event context 1403b to read.

Daher basiert Triggern von nachfolgenden Dienstanwendungen auf dem aktuellen Ereigniskontext. Der aktuelle Ereigniskontext wird ferner für mögliche Merkmalsinteraktionsprobleme bereinigt, so dass anschließend aufgerufenen Dienstanwendun gen auf ihm beruhen können. Wenn die Steuerung von einer Dienstanwendung zu der nächsten durch den Aufrufmechanismus übergeben wird, der durch den Regelantrieb bereitgestellt wird, wird der Besitz des aktuellen Ereigniskontextes übergeben. Auf diese Weise wird, wenn alle Dienstanwendungen aufgerufen wurden und ihre Instruktionen angewendet haben, der endgültige resultierende Ereigniskontext 1406 erreicht. Somit repräsentiert der resultierende Ereigniskontext 1406 das (die) resultierende(n) SIP-Nachrichtenobjekt(e) 1407. Es ist zu beachten, dass dieser Mechanismus parallele Verarbeitung nicht ausschließt, da die Dienstanwendungen 1404 und 1405 parallel ausgeführt werden können. Gemäß dieser Ausführungsform wird jedoch eine Sequenz einer Aktualisierung des aktuellen Ereigniskontextes durchgesetzt.Therefore, triggers of subsequent service applications are based on the current event context. The current event context is also purged for potential feature interaction issues so that subsequent invoked service applications can rely on it. When control is passed from one service application to the next through the call mechanism provided by the rule engine, ownership of the current event context is passed. In this way, when all service applications have been invoked and their instructions applied, the final resulting event context will be 1406 reached. Thus, the resulting event context represents 1406 the resulting SIP message object (s) 1407 , It should be noted that this mechanism does not preclude parallel processing as the service applications 1404 and 1405 can be executed in parallel. However, according to this embodiment, a sequence of updating the current event context is enforced.

Es wird ferner vermerkt, dass eine Dienstanwendung eine Anfrage zu mehreren Zielen aufspalten kann. Dies führt zur Generierung von mehreren aktuellen Ereigniskontexten.It It is further noted that a service application requests to can split several goals. This leads to the generation of several current event contexts.

15 veranschaulicht einen Baum von kaskadierten Ketten von Dienstanwendungen gemäß einer Ausführungsform der Erfindung. Wenn Dienste auf unterschiedlichen SIP-Servern ausgeführt werden und eine Steuerung auf eine Sitzung anwenden, sehen sie eine natürliche Ordnung von Diensten vor, selbst wenn sie einander nicht kennen. Von dieser Ordnung kann gesagt werden, dass sie stromaufwärts oder stromabwärts ist. Eine stromabwärtige Ordnung ist die Ordnung von Diensten, da sie stromabwärts von dem ursprünglichen Client zu dem Zielserver aufgerufen werden. Eine stromaufwärtige Ordnung ist die Ordnung von Diensten, da sie stromaufwärts von dem Zielserver zu dem ursprünglichen Client aufgerufen werden. Wenn Dienste, die eine Steuerung auf eine Instanz einer Sitzung anwenden, in einer gegebenen Reihenfolge auf dem gleichen SIP-Server aufgerufen werden, kann von den Diensten angenommen werden, dass sie gemäß dem gleichen Ordnungsprinzip kaskadiert sind. Dieses Ordnungsprinzip wird Kaskadieren von Diensten genannt, und die Kette von Diensten wird die kaskadierte Kette von Diensten genannt. 15 illustrates a tree of cascaded chains of service applications in accordance with an embodiment of the invention. When services are run on different SIP servers and apply control to a session, they provide a natural ordering of services, even if they do not know each other. This order can be said to be upstream or downstream. A downstream policy is the ordering of services as they are called downstream from the original client to the destination server. An upstream order is the order of services because they are invoked upstream from the destination server to the original client. When services that apply control to an instance of a session are invoked in a given order on the same SIP server, the services may be assumed to be cascaded according to the same ordering principle. This ordering principle is called cascading services, and the chain of services is called the cascaded chain of services.

Wenn eine Anfrage empfangen wird, wird ein Dienst umso eher basierend auf diesem Ereignis aufgerufen, desto mehr logisch stromaufwärts er in der Kette von kaskadierten Diensten betrachtet wird. Wenn eine Antwort empfangen wird, wird der Dienst basierend auf diesem Ereignis umso eher aufgerufen, desto mehr logisch stromabwärts er in der Kette von kaskadierten Diensten betrachtet wird. Daher werden die Anwendungen behandelt, als ob sie auf unterschiedlichen Hosts getriggert wären.If When a request is received, a service becomes all the more likely to be based called on this event, the more logically upstream he in the chain of cascaded services is considered. If an answer is received, the service will be based on this event rather, the more logically downstream it's cascaded in the chain Services is considered. Therefore, the applications are treated as if they were triggered on different hosts.

Dieses Modell ist konzeptionell einfach und sieht einen natürlichen Algorithmus zum Auflösen von Konflikten zwischen den Instruktionen von mehreren Dienstanwendungen in dem gleichen SIP-Ereignis vor.This Model is conceptually simple and looks natural Algorithm for resolution conflicts between the instructions of multiple service applications in the same SIP event.

Bei Empfang eines SIP-Ereignisses werden die Aktionen in der Reihenfolge einer Priorität auf die folgende Art und Weise ausgeführt:

  • 1) Steuerung wird zu der ersten Anwendung weitergegeben.
  • 2) Es wird irgendeine Antwort von der ersten Anwendung empfangen.
  • 3) Steuerung wird zu der zweiten Anwendung weitergegeben.
  • 4) Es wird irgendeine Antwort von der zweiten Anwendung empfangen usw.
When a SIP event is received, the actions are performed in order of priority in the following manner:
  • 1) Control is passed to the first application.
  • 2) Any response from the first application is received.
  • 3) Control is passed to the second application.
  • 4) Any response from the second application will be received, etc.

Falls jedoch die erste Anwendung die Anfrage beendet, wird die zweite Anwendung nicht aufgerufen.If however, the first application completes the request, becomes the second Application not called.

Auf diese Weise kann eine Entscheidung darüber, ob eine nachfolgende Anwendung aufzurufen ist, von der Ausgabe von der vorherigen Anwendung abhängen. Des weiteren sind Instruktionsprioritäten, die mit Aktionen in Verbindung stehen, per Vorgabe gemäß dem kaskadierenden Prinzip geordnet.On This way can make a decision about whether to have a subsequent application depends on the output of the previous application. Of others are instruction priorities associated with actions stand by default according to the cascading Arranged principle.

Falls eine Anwendung eine Anfrage aufspaltet, gibt es keine einfache Kette von kaskadierten Diensten, sondern vielmehr einen Baum von kaskadierten Diensten. Dies wird als der "Anfragebaum" bezeichnet. Ein Anfragebaum repräsentiert eine Zahl von kaskadierten Ketten von Anwendungen. Jeder Pfad von der Wurzel des Baums zu einem der Blätter repräsentiert eine kaskadierte Kette.If An application splits a request, there is no simple chain of cascaded services, but rather a tree of cascaded ones Services. This is referred to as the "request tree". One Request tree represents a number of cascaded chains of applications. Every path from The root of the tree to one of the leaves represents a cascaded chain.

15 zeigt ein Beispiel eines Anfragebaums, wo eine Dienstanwendung APP1 durch das Regelmodulausführungsmodul (rule module execution module, RMEM) 1501 mit dem ursprünglichen Ereigniskontext (original event context) OEC als eine Eingabe aufgerufen wird. Wenn die Steuerung von der Anwendung APP1 zu der nachfolgenden Anwendung APP2 übergeben wird, erlangt die Anwendung APP2 Steuerung über den aktuellen Ereigniskontext EC2. Die Anwendung APP2 spaltet die Anfrage auf, wobei Ereigniskontext EC3 und Ereigniskontext EC4 erstellt werden. Eine Aktion unterer Priorität ruft Anwendung APP3 wegen einer oder mehr Eigenschaften im Ereigniskontext EC3 auf. Eine andere Aktion unterer Priorität ruft eine andere Anwendung APP4 wegen einer oder mehr Eigenschaften im Ereigniskontext EC4 auf. Dies führt zu einer baumartigen Struktur, die die Spur von aufgerufenen Anwendungen darstellt. In diesem Baum sind die Zweige Darstellungen von Ereigniskontexten. Die Knoten sind Darstellungen von Triggern. Die Wurzel des Baums ist der ursprüngliche Ereigniskontext OEC. Die Blätter des Baums sind die resultierenden Ereigniskontexte (resulting event contexts) REC1 und REC2. 15 shows an example of a request tree where a service application APP1 is implemented by the rule module execution module (RMEM). 1501 with the original event context called OEC as an input. When the control is transferred from the application APP1 to the subsequent application APP2, the application APP2 obtains control over the current event context EC2. The application APP2 splits the request, creating event context EC3 and event context EC4. A lower priority action invokes APP3 application because of one or more properties in EC3 event context. Another lower priority action invokes another APP4 application because of one or more properties in the event context EC4. This results in a tree-like structure that is the trail of called applications. In this tree, the branches are representations of event contexts. The nodes are representations of triggers. The root of the tree is the original event context OEC. The leaves of the tree are the resulting event contexts REC1 and REC2.

Wenn es keine Aktionen mehr in einem Regelmodul gibt, werden alle aktuellen Ereigniskontexte zu der Regelbasisverarbei tungsprozedur 1502 zurückgeführt. Diese Prozedur kann ein anderes Regelmodul aufrufen, welches mehr von dem Anfragebaum aufbauen wird. Folglich kann der Baum mit vielen Knoten und Zweigen abhängig von den Diensten, die getriggert werden, ziemlich groß werden.If there are no more actions in a rule module, all current event contexts become the rule base processing procedure 1502 recycled. This procedure may call another rule module which will build more of the request tree. As a result, the tree with many nodes and branches can become quite large depending on the services being triggered.

Es wird vermerkt, dass in einigen Fällen eine Anwendung eine asynchrone Merkmalsinstruktion zu der Dienstunterstützungsumgebung, d.h. nicht bezogen auf eine existierende Transaktion, senden kann. In diesem Fall hat die Anwendung eine neue Transaktion gestartet und wird betrachtet, in der Wurzel eines neuen kaskadierten Kettenbaums zu sein.It It is noted that in some cases an application an asynchronous feature instruction to the service support environment, i.e. not related to an existing transaction. In this case, the application has started a new transaction and is considered in the root of a new cascaded chain tree to be.

Um parallele Verarbeitung von Diensten zu erlauben, kann die Dienstunterstützungsumgebung zum gleichzeitigen Weitergeben der Steuerung zum mehr als einem Dienst fähig sein. Dies steht nicht im Widerspruch zu dem kaskadierten Dienstmodell, da die Instruktionen von den parallelen aufgerufenen Diensten in der Reihenfolge der Kaskadierung angewendet werden sollten. Falls der stromabwärtigere Dienst vor dem stromaufwärtigeren Dienst antwortet, wartet der Regelantrieb darauf, dass der stromaufwärtigere Dienst antwortet, bevor er die Instruktionen vermitteln kann. Diese Instruktionen werden vermittelt, als ob die Dienste einer nach dem anderen aufgerufen wären. Der Administrator sollte fähig sein zu spezifizieren, ob eine Gruppe von Aktionen auf diese Art und Weise gleichzeitig angewendet werden sollte.Around Allowing parallel processing of services may be the service support environment for simultaneously transferring the control to more than one Service capable be. This is not inconsistent with the cascaded service model, as the instructions of the parallel services called in the Order of cascading should be applied. If the stromabwärtigere Service before the upstream Service answers, the rule drive is waiting for the upstream Service responds before it can convey the instructions. These Instructions are conveyed as if the services were after the others would be called. The administrator should be capable be to specify if a group of actions in this way and should be applied simultaneously.

16 zeigt die Softwarekomponenten eines Regelantriebs gemäß einer Ausführungsform der Erfindung. Die Regelbasisverarbeitungsprozedur 1601 ruft die Regelmodule 1602, die in der Regelbasis 1603 gespeichert sind, in der richtigen Reihenfolge auf. Die Regelmodulverarbeitungsprozedur 1604 führt die Regeln in dem Regelmodul aus. Das Dienstinteraktionsmodul 1605 deckt eine Menge von Funktionen 1700 ab, inkludierend Durchsetzung des Triggerns, Merkmalsinteraktion, Privilegien und Rechten. Die Funktionen 1700 werden in Verbindung mit 17 detaillierter beschrieben. 16 shows the software components of a variable speed drive according to an embodiment of the invention. The rule base processing procedure 1601 calls the rule modules 1602 that is usually base 1603 stored in the correct order. The rule module processing procedure 1604 executes the rules in the rule module. The service interaction module 1605 covers a lot of functions 1700 including enforcement, feature interaction, privileges, and rights. The functions 1700 be in contact with 17 described in more detail.

Wenn ein SIP-Ereignis dem Regelantrieb in der Form eines ursprünglichen Ereigniskontextes 1609 gemeldet wird, wird die Regelbasisverarbeitungsprozedur 1601 ausgeführt, um die richtigen Regelmodule zu finden und in der richtigen Reihenfolge auszuführen. Die Regelbasisverarbeitungsprozedur 1601 leitet die Regelmodule, die zu verarbeiten sind, und den ursprünglichen Ereigniskontext 1610 zu der Regelmodulverarbeitungsprozedur 1604 weiter. Die Ordnung der Regelmodule bestimmt gemeinsam mit der Ordnung der Regeln innerhalb jedes Regelmoduls die Ordnung von Mustern und Aktionen 16061608, die durch die Regelmodulverarbeitungsprozedur 1604 verarbeitet werden. Die Aktionen rufen entsprechende Dienstanwendungen 16111613 auf. Wenn Dienstanwendung 1611 aufgerufen wird, wird der ursprüngliche Ereigniskontext als der aktuelle Ereigniskontext (current event context) CEC1 zu dem Dienstinteraktionsmodul 1605 weitergegeben, das wiederum den Ereigniskontext EC1 zu der Dienstanwendung 1611 weitergibt. Die Dienstanwendung 1611 führt zu einer Menge von Merkmalsinstruktionen 1614, die eine Aktualisierung des aktuellen Ereigniskontextes durch das Dienstinteraktionsmodul 1605 bewirken. Der resultierende aktuelle Ereigniskontext 1615 wird zu der Regelmodulverarbeitungsprozedur 1604 zurückgegeben. Die Dienstanwendungen 1612 und 1613 werden auf eine ähnliche Art und Weise aufgerufen, was zu entsprechenden Instruktionsmengen 1616167 führt, die durch das Dienstinteraktionsmodul 1605 in entsprechende aktuelle Ereigniskontexte 16181619 konvertiert werden. Während dieser Konvertierung führt das Dienstinteraktionsmodul 1605 Autorisierungsprüfungen durch, und falls eine Dienstanwendung 1613 eine nicht-autorisierte Instruktionsmenge 1617 zurückgibt, werden die nicht-autorisierten Instruktionen nicht konvertiert. Daher unterscheidet sich der aktuelle Ereigniskontext 1619 nicht von dem eingehenden Ereigniskontext 1620. Vorzugsweise wird die Dienstanwendung über diesen Fehler informiert 1621. Es ist zu vermerken, dass ein Dienst zur Erzeugung von mehreren aktuellen Ereigniskontexten führen kann, wie in Verbindung mit 15 und 18 beschrieben wird. Wenn ein Regelmodul eine Verarbeitung der Muster und Aktionen 16061608 beendet hat, wird die endgültige Menge von aktuellen Ereigniskontexten 1622 zu der Regelbasisverarbeitungsprozedur 1601 zurückgegeben. Nachfolgende Aufrufe von Regelmodulen werden von dieser Menge von aktuellen Ereigniskontexten abhängen. Es wird vermerkt, dass eine Dienstanwendung Ereignisse und Trigger für zukünftige Ereignisse scharfmachen/entschärfen kann, wie nachstehend detaillierter beschrieben wird. Daher kann eine Dienstanwendung ferner eine Scharfmachungsanfrage 1623 zurückgeben.If a SIP event is to the rule engine in the form of an original event context 1609 is reported, the rule base processing procedure 1601 executed to find the correct rule modules and execute them in the correct order. The rule base processing procedure 1601 directs the rule modules that are to be processed and the original event context 1610 to the rule module processing procedure 1604 further. The order of the rule modules, together with the order of the rules within each rule module, determines the order of patterns and actions 1606 - 1608 generated by the rule module processing procedure 1604 are processed. The actions call corresponding service applications 1611 - 1613 on. If service application 1611 The original event context is called the current event context CEC1 to the service interaction engine 1605 which, in turn, passes the event context EC1 to the service application 1611 passes. The service application 1611 leads to a lot of feature instructions 1614 An update of the current event context by the service interaction module 1605 cause. The resulting current event context 1615 becomes the rule module processing procedure 1604 returned. The service applications 1612 and 1613 are called in a similar manner, resulting in corresponding instruction sets 1616 - 167 leads through the service interaction module 1605 in corresponding current event contexts 1618 - 1619 be converted. During this conversion, the service interaction module runs 1605 Authorization checks by, and if a service application 1613 an unauthorized instruction set 1617 returns, the unauthorized instructions are not converted. Therefore, the current event context is different 1619 not from the incoming event context 1620 , Preferably, the service application is informed of this error 1621 , It should be noted that a service may result in the generation of multiple current event contexts, as associated with 15 and 18 is described. When a rule module processes the patterns and actions 1606 - 1608 has finished, will be the final set of current event contexts 1622 to the rule base processing procedure 1601 returned. Subsequent calls to rule engines will depend on this set of current event contexts. It is noted that a service application can arm / disarm events and triggers for future events, as described in greater detail below. Therefore, a service application may further request a sharpening request 1623 hand back.

17 zeigt Schritte, die durch das Dienstinteraktionsmodul zwischen der Verarbeitung des Regelmoduls und der Verarbeitung der Dienstanwendung in der Ausführungsform von 16 durchgeführt werden. Diese Funktionalität 1700 inkludiert Merkmalsinteraktionsmanagement und Prüfung von Privilegien, was durch den Regelantrieb 1702 und den Anwendungsausführungsantrieb 1703 durchgeführt wird. Wenn der Aufrufbefehl und der aktuelle Ereigniskontext CECa von dem Regelmodulprozessor 1601 empfangen werden, werden die Privilegien des Regelmoduls in Schritt 1704 geprüft. Die Privilegien des Regelmoduls sind in einer Zugriffssteuerliste (access control list) ACL2 spezifiziert, die mit dem Regelmodul in Verbindung steht. Falls das Regelmodul die Privilegien hat, Aufrufbefehle zu erteilen, sendet in Schritt 1705 der Regelantrieb 1702 den Aufrufbefehl zu dem Anwendungsausführungsantrieb 1703 über den Anwendungsausführungsantriebsmanager (nicht gezeigt). Es kann nur notwendig sein, einen Teil des aktuellen. Ereigniskontextes zu dem Anwendungsausführungsantrieb 1703 zu senden, wie durch f(CECa) bezeichnet wird. 17 shows steps performed by the service interaction module between the processing of the rule module and the processing of the service application in the embodiment of FIG 16 be performed. This functionality 1700 includes feature interaction management and privilege checking, which is provided by the rule engine 1702 and the application execution drive 1703 is carried out. If the call command and the current event context are CECa from the rule engine processor 1601 receive the privileges of the rule module in step 1704 checked. The privileges of the rule module are specified in an access control list ACL2 associated with the rule module. If the rules engine has the privileges to issue invocation commands, send in step 1705 the standard drive 1702 the call command to the application execution drive 1703 via the application execution drive manager (not shown). It may only be necessary to be part of the current one. Event context to the application execution drive 1703 to send, as indicated by f (CECa).

In Schritt 1706 konvertiert der Anwendungsausführungsantrieb 1703 den empfangenen Ereigniskontext f(CECa) in ein geeignetes Datenformat für die Dienstanwendung 1707, die aufzurufen ist. Dies kann die Konvertierung in einen geeigneten Namensraum für den Aufruf dieser Dienstanwendung inkludieren. Des weiteren prüft der Anwendungsausführungsantrieb 1703 in Schritt 1708 Privilegien und Rechte. Eine Zugriffssteuerliste ACL3, die mit der Dienstanwendung 1707 in Verbindung steht, kann die Privilegien der Dienstanwendung 1707 spezifizieren, um auf den Wert von f(CECa) oder einen Teil von ihm zuzugreifen. Des weiteren hat das Regelmodul Zugriff auf die Dienstanwendung 1707 abhängig von einer anderen Zugriffssteuerliste ACL4, die auch mit der Dienstanwendung 1707 in Verbindung steht. Falls Zugriff gewährt wird, wird die Dienstanwendung 1707 in Schritt 1709 aufgerufen, und relevante Teile des Ereigniskontextes g(ECa) werden als eine Eingabe vorgesehen. Anschließend gibt die Dienstanwendung 1707 die Steuerung zu dem Regelantrieb 1702 über den Anwendungsausführungsantrieb 1703 durch Senden der Instruktionsmenge 1710 oder einer internen Darstellung der Instruktionsmenge zurück. In Schritt 1711 werden Privilegien und Rechte der Dienstanwendung 1707, um diese Instruktionen zu erteilen, geprüft, z.B. basierend auf einer Zugriffssteuerliste ACL5, die mit der Dienstanwendung 1707 in Verbindung steht. Falls die Dienstanwendung 1707 die Privilegien hat, diese Instruktionen zu erteilen, werden die Instruktionen von der internen Darstellung konvertiert (Schritt 1712), und die konvertierten Instruktionen 1713 werden zu dem Regelantrieb weitergeleitet. Des weiteren werden ebenso beliebige Scharfmachungsanfragen 1716 weitergeleitet. In Schritt 1714 werden mögliche Merkmalsinteraktionsprobleme mit vorher erteilten Instruktionen von zuvor autorisierten und aufgerufenen Dienstanwendungen aufgelöst. Diese Auflösung basiert darauf, ob zuvor aufgerufene Anwendungen geschützte Nachrichteneigenschaften in dem aktuellen Ereigniskontext ha ben. Der nächste aktuelle Ereigniskontext CECb wird generiert und zu dem Regelmodulprozessor 1601 zurückgegeben. Schließlich speichert in Schritt 1715 der Regelantrieb Information über den aufgerufenen Dienst im Speicher, z.B. durch Aufbauen des Anfragebaums, der in Verbindung mit 14 beschrieben wird. Der Anfragebaum wird in Verbindung mit dem Berichten von zukünftigen Ereignissen verwendet.In step 1706 converts the application execution drive 1703 the received event context f (CECa) into a suitable data format for the service application 1707 which is to call. This can include conversion to a suitable namespace for calling this service application. Furthermore, the application execution drive checks 1703 in step 1708 Privileges and rights. An access control list ACL3 associated with the service application 1707 can communicate the privileges of the service application 1707 to access the value of f (CECa) or a part of it. Furthermore, the rule module has access to the service application 1707 depending on another ACL4 ACL that is also associated with the service application 1707 communicates. If access is granted, the service application becomes 1707 in step 1709 and relevant parts of the event context g (ECa) are provided as an input. Then there is the service application 1707 the controller to the variable speed drive 1702 about the application execution drive 1703 by sending the instruction amount 1710 or an internal representation of the instruction set. In step 1711 become privileges and rights of the service application 1707 to give these instructions, checked, for example, based on an access control list ACL5 associated with the service application 1707 communicates. If the service application 1707 the privilege has to give these instructions, the instructions are converted from the internal representation (step 1712 ), and the converted instructions 1713 are forwarded to the rule drive. Furthermore, any arbitrary sharpening requests 1716 forwarded. In step 1714 Possible feature interaction problems are resolved with previously issued instructions from previously authorized and called service applications. This resolution is based on whether previously invoked applications have protected message properties in the current event context. The next current event context, CECb, is generated and passed to the rule engine processor 1601 returned. Finally saves in step 1715 the rule drive information about the called service in the memory, eg by building the request tree, in conjunction with 14 is described. The request tree is used in conjunction with reporting future events.

Wie zuvor erwähnt, sind einige Dienste, z.B. Überwachungsanwendungen, an zukünftigen Ereignissen interessiert. Um dem Regelantrieb über dieses Interesse an zukünftigen Ereignissen mitzuteilen, muss die Dienstanwendung nach Ereignisberichten nachfragen, was auch dynamisches Scharfmachen für Ereignisberichte genannt wird.As previously mentioned, are some services, e.g. Monitoring applications, at future Interested in events. To rule over this interest in future To notify events, the service application must post event reports ask what is also called dynamic arming for event reports becomes.

Gemäß einer bevorzugten Ausführungsform der Erfindung ist dynamisches Scharfmachen von Transaktionsereignissen an die Verarbeitung einer SIP-Transaktion gebunden, was zeitlich gebunden ist. Transaktionen können typischerweise von zwischen einigen Millisekunden bis zu einigen Minuten dauern, abhängig von der Konfiguration des SIP-Servers. Da dynamisches Scharfmachen von Transaktionsereignissen nur auf die Lebensdauer einer Transaktion zutrifft, ist dieser Typ vom Scharfmachen nicht permanent und wird implizit entschärft, wenn die Transaktion beendet ist, wobei dadurch ein schneller Mechanismus vorgesehen wird. Falls eine Anwendung Ereignisse scharfmacht, die die Transaktion betreffen, in der sie getriggert wurde, behält die Anwendung ihren Platz in dem kaskadierten Dienstmodell. Antworten werden allen Anwendungen gemeldet, die sie scharfgemacht haben, beginnend mit dem Blatt des Baums, d.h. der stromabwärtigsten Anwendung. Während der Lebensdauer einer Transaktion existiert der Anfragebaum in dem Speicher des Regelantriebs. Nachfolgende Ereignisse, die sich auf die gleiche Transaktion beziehen, werden somit auf den Anfragebaum bezogen. Ereignisse, die sich auf den Anfragebaum bezie hen, können von Anwendungen, von stromabwärtigen Servern und von stromaufwärtigen Clients kommen.According to one preferred embodiment The invention is dynamic arming of transaction events tied to the processing of a SIP transaction, which is timed is bound. Transactions can typically from a few milliseconds to a few Take minutes, depending on the configuration of the SIP server. Because dynamic arming of Transaction events only on the lifetime of a transaction is true, this type of arming is not permanent and will defused implicitly, when the transaction is completed, thereby providing a faster mechanism is provided. If an application fires events, the Affecting the transaction in which it was triggered retains the application their place in the cascaded service model. Answers will be all Applications reported that have spiked them, starting with the leaf of the tree, i. the most downstream application. During the Lifetime of a transaction, the request tree exists in the store of the standard drive. Subsequent events that affect the same Transaction, are thus related to the request tree. Events related to the request tree may be from Applications, from downstream Servers and upstream Clients come.

Ereignisse von stromaufwärtigen Clients betreten den Anfragebaum an der Wurzel. Dies bedeutet, dass sie zuerst der Anwendung an der Wurzel des Baums gemeldet werden. Diese Anwendung kann das Ereignis abschließen oder umlenken, in welchem Fall es nicht weiter in dem ursprünglichen Baum gesendet wird, sondern ein neuer Anfragebaum aufgebaut werden kann. Eine Anfrage kann auch zu allen gleichen Zielen wie die ursprüngliche Anfrage weitergeleitet werden müssen, oder die Anfrage kann zu einem der Ziele gesendet werden müssen, zu denen die ursprüngliche Anfrage weitergeleitet wurde. Ereignisse von Anwendungen betreten den Anfragebaum in dem geeigneten Knoten. Ereignisse von stromabwärtigen Servern betreten den Anfragebaum in einem der Blätter.Events from upstream Clients enter the request tree at the root. This means that they are first reported to the application at the root of the tree. This application can complete or redirect the event in which Case it is not sent further in the original tree, but instead a new request tree can be established. A request can also forwarded to all the same goals as the original request Need to become, or the request may need to be sent to one of the destinations, too which the original one Request was forwarded. Enter events of applications the request tree in the appropriate node. Events from downstream servers enter the request tree in one of the leaves.

Dies führt zu dem Mechanismus von Anfrage-Baum-Traversal, in dem sich der Regelantrieb die Reihenfolge merkt, in der Anwendungen aufgerufen wurden, d.h. der Anfragebaum. Es ist ein Vorteil dieser Ausführungsform, dass sie eine klare Regel für die Reihenfolge vorsieht, in der Ereignisse innerhalb des Kontextes einer Transaktion gemeldet werden. Die klare Regel ist das kaskadierte Dienstmodell, welches eine konzeptionell einfache Regel ist, die durch Administratoren und Anwendungsgestalter leicht verstanden werden kann. Dies vereinfacht auch die API, über die die Anwendungsausführungsantriebe der Regelbasis Regeln hinzufügen. An Stelle LÖSCHEN eines spezifischen Zweiges in einem Regelmodul scharfmachen zu müssen, kann es einfach zum Löschen des gegebenen Rufabschnittes scharfmachen.This leads to the mechanism of request tree traversal in which the rule engine remembers the order in which applications were invoked, ie the request tree. It is an advantage of this embodiment that it provides a clear rule for the order in which events are reported within the context of a transaction. The clear rule is the cascaded service model, which is a conceptually simple rule that can be easily understood by administrators and application designers. This also simplifies the API over which the application execution engines add rules to the rule base. To be able to focus on DELETING a specific branch in a rule module may just arm it to clear the given call section.

Es gibt verschiedene Wege, um das Anfrage-Baum-Traversal zu implementieren.It There are several ways to implement the request tree traversal.

Z.B. kann der Regelantrieb dieses Traversal durch Verwenden des VIA-Headers und Zweigparameters erreichen. In der Tat würde dies Erstellen einer getrennten Instanz des Regelantriebs jedes Mal bedeuten, wenn die Zieladresse durch Weiterleiten der Anfrage zu dem SIP-Server geändert wird. Das DNS-Nachschlagen, das durch den SIP-Stapel geschieht, würde dann bestimmen, ob die Anfrage zurückkommt oder nicht, um durch den Server ein zweites Mal verarbeitet zu werden. Wenn eine Anfrage von dem SIP-Server empfangen wird, würde sie als eine neue Anfrage behandelt. Der Regelantrieb sollte einen Mechanismus haben um sicherzustellen, dass Dienste, z.B. jene, die in dem FROM-Feld getriggert werden, nicht fehlerhaft erneut aufgerufen werden.For example, The rule drive can do this traversal by using the VIA header and reach branch parameters. In fact, this would create a disconnected one Instance of the rule drive every time the destination address is changed by forwarding the request to the SIP server. DNS lookup, that happens through the sip stack would then determine if the Request returns or not to be processed by the server a second time. If a request is received from the SIP server, it would treated as a new request. The variable speed drive should have a mechanism to ensure that services, e.g. those in the FROM field can not be retried.

Alternativ wird in einer bevorzugten Ausführungsform das Ereignis in dem Host für den gesamten Anfragebaum behandelt, d.h. inkludierend alle Weiterleitungen, bis alle Blätter des Anfragebaums Ziele anderswo in dem Netz darstellen. Diese Ausführungsform hat den Vorteil, dass sie effizienter ist, da weniger Instanzen von signalisierenden Zustandsmaschinen und Managerklassen erforderlich sind. Z.B. kann der Anfragebaum implementiert werden, indem er für jeden Trigger einer Anwendung eine Instantiierung eines Knotenobjekts hat, die Zeiger zu den vorherigen und den nächsten Knoten in dem Baum haben kann. Das folgende Pseudocodefragment zeigt, wie das Aufbauen eines Anfragebaums in die Algorithmen für Regelbasisverarbeitung und Regelmodulverarbeitung einbezogen werden kann. Die Idee besteht darin, jeden Ereigniskontext mit einem RequestTreeNode (AnfragenBaumknoten) zu verbinden. Dies ist das RequestTreeNode, in dem der Ereigniskontext erstellt wurde. Jeder Knoten ist entweder die Wurzel des Baums oder er steht mit einer Aktionsausführung in Verbindung:

Figure 00840001
Figure 00850001
Alternatively, in a preferred embodiment, the event is handled in the host for the entire request tree, ie including all forwards, until all leaves of the request tree represent destinations elsewhere in the network. This embodiment has the advantage of being more efficient as fewer instances of signaling state machines and manager classes are required. For example, the request tree may be implemented by instantiating a node object for each trigger of an application, which may have pointers to the previous and next nodes in the tree. The following pseudo code snippet shows how building a request tree can be incorporated into the rule base processing and rule engine processing algorithms. The idea is to connect each event context to a RequestTreeNode. This is the RequestTreeNode in which the event context was created. Each node is either the root of the tree or it is associated with an action execution:
Figure 00840001
Figure 00850001

Bei Betrachtung des Modells einer logischen Kaskadierung von Dienstanwendungen können die folgenden zwei allgemeinen Regeln für die Dienstausführungsumgebung wie folgt formuliert werden:

  • – Ereignisse, die sich stromaufwärts bewegen, sollten zuerst den logisch stromabwärtigsten Anwendungen gemeldet werden.
  • – Ereignisse, die sich stromabwärts bewegen, sollten zuerst den logisch stromaufwärtigsten Anwendungen gemeldet werden.
Considering the model of logical cascading service applications, the following two general rules for the service execution environment can be formulated as follows:
  • - Events that move upstream should first be reported to the logically most downstream applications.
  • - Events moving downstream should first be reported to the most logically upstream applications.

Die logische kaskadierte Reihenfolge von Diensten wird beibehalten, wenn Ereignisbenachrichtigungen verteilt werden, um die hoch komplexe und nicht managbare Situation zu verhindern, dass Ereignisse in einer beliebigen Reihenfolge kaskadierten Diensten gemeldet werden können.The logical cascaded order of services is maintained When event notifications are distributed to the highly complex and not manageable situation to prevent events in one Any order of cascaded services can be reported.

Vorzugsweise werden die Anwendungen, die derartige Ereignisse scharfmachen, in Verarbeitungspunkt 1 oder 4 und ihren Teilverarbeitungspunkten aufgerufen. Vorzugsweise kann der Netzbetreiber in der Regelliste für Verarbeitungspunkt 4 einen Punkt spezifizieren, wo die dynamisch scharfgemachten Trigger gemeldet werden sollten. Dies bedeutet, dass die logisch kaskadierte Kette von Diensten, die für die Anfrage hergestellt ist, beibehalten wird, und neue Dienste entweder vor oder nach dieser Kette getriggert werden. Die gleiche Regel kann auf nachfolgende Anfragen zutreffen, die sich auf eine existierende Transaktion beziehen. Dieses Mal wird es in dem Verarbeitungspunkt 1 sein, dass der Administrator spezifizieren kann, wann dynamisch scharfgemachte Ereignisse zu berichten sind.Preferably The applications which will cause such events to be in Processing point 1 or 4 and its partial processing points. Preferably, the network operator may be in the rule list for processing point 4 Specify a point where the dynamically armed triggers should be reported. This means that the logically cascaded Chain of services for the request is made, maintained, and new services be triggered either before or after this chain. The same Rule may apply to subsequent requests that relate to one refer to an existing transaction. This time it will be in the processing point 1, that the administrator can specify when dynamically spiced Events are to be reported.

Alternativ oder zusätzlich kann ein anderer Typ zum Scharfmachen eingesetzt werden, der als dynamisch scharfgemachte Trigger bezeichnet wird, die als Regeln einem geeigneten Regelmodul in der Regelbasis hinzugefügt werden. Dynamisch scharfgemachte Trigger sehen einen weniger aufwändigen Mechanismus im Sinne von Verarbeitungsleistung und Ausführungsspeicher für das Melden von Ereignissen vor, die nicht die Transaktion betreffen, in der die Anwendung getriggert wurde. Vorzugsweise sollten diese Anfragen nach Ereignisberichten in einem persistenten Speicher gespeichert werden, d.h. sie werden Regeln in der Regelbasis. Diese Regeln können durch Spezifizieren eines Ablauftimers nicht-permanent sein, oder permanent sein. In dem letzteren Fall sollte die Dienstanwendung die Anfrage nach Ereignisberichten explizit entschärfen, um sie zu entfernen. Alternativ können sie auch in einem Modus "einmal berichten, dann entschärfen" scharfgemacht werden. Falls keine Ablauf zeit angegeben ist, kann des weiteren eine Vorgabezeit, z.B. 1 Stunde, auf die Regel angewendet werden. Wenn diese Zeit abgelaufen ist, wird die Regel gelöscht. Dies hat den Vorteil, dass vermieden wird, dass dem Server Datenspeicherkapazität ausgeht.alternative or additionally another type of arming can be used, which is considered as dynamically armed trigger is referred to as rules be added to a suitable rule module in the rule base. Dynamically armed triggers see a less elaborate mechanism in the game Meaning of processing power and execution memory for reporting of events that do not affect the transaction in which the application was triggered. Preferably, these requests should stored in a persistent store after event reports are, i. they become rules in the rule base. These rules can be through Specify a drain timer to be non-permanent, or permanent be. In the latter case, the service application should request Explicitly defuse according to event reports to remove them. Alternatively you can she also in a mode "once report, then "defuse". If no expiry time is specified, a default time, e.g. 1 hour to be applied to the rule. When this time has expired, the rule will be deleted. This has the advantage that prevents the server from running out of data storage capacity.

Vorzugsweise werden Triggerregeln einem Regelmodul hinzugefügt, für den die Anwendung die Privilegien und Rechte zum Aktualisieren hat. Es wird normalerweise das gleiche Regelmodul sein, von dem die Anwendung getriggert wurde. Wo genau in der Prioritätsreihenfolge innerhalb eines Regelmoduls diese Regeln hinzugefügt werden sollten, kann durch eine implizite Regelprioritätsreihenfolge bestimmt werden, d.h. eine ganze Zahl, die darstellt, wo die Regel innerhalb des existierenden Regelmoduls platziert sein sollte. Wenn zuerst ein SERL-Skript hinzugefügt wird, werden die Regeln in der Reihenfolge geordnet, wie sie in dem Skript erscheinen. Falls es N Regeln gibt, stehen die ganzen Zahlen 1 bis N impliziert mit den Regeln in Verbindung. Eine Regel kann durch Verweisen auf diese Zahlen gelöscht werden. Eine Regel kann durch Verweisen auf die Regel hinzugefügt werden, nach der die neue Regel platziert werden sollte. Dies hat den Vorteil, dass die Menge von Daten, die ausgetauscht werden muss, wenn eine Regel einem großen Regelmodul hinzugefügt wird, reduziert wird.Preferably Trigger rules are added to a rule engine for which the application has the privileges and rights to update. It usually gets the same Rule module from which the application was triggered. Where exactly in the order of priority within a rule module these rules are added can be determined by an implicit rule priority order, i.e. an integer that represents where the rule is within the existing rule module should be placed. If first one Added SERL script the rules are ordered in the order they are placed in appear in the script. If there are N rules, stand the whole Numbers 1 through N implies the rules. A rule can be deleted by referring to these numbers. A rule can be added by referring to the rule after which the new one Usually should be placed. This has the advantage that the amount of data that needs to be exchanged when a rule is a large rule module added is reduced.

Falls keine Position spezifiziert ist, dann kann der Regelmodulantrieb dem folgenden Algorithmus folgen, wenn diese Trigger hinzugefügt werden: Durchsuchen des Regelmoduls nach dem gleichen Eigenschaftsmuster wie in der neuen Regel. Falls ein Muster gefunden wird, Suchen nach einem beliebigen Teilmuster usw. Falls kein Teilmuster gefunden wird, Einfügen der Regel als die Regel höchster Priorität in der eingeschlossenen Liste von Aktionen. Falls kein ähnliches Muster bereits in dem Regelmodul ist, Einfügen als das erste Muster. Dieser Algorithmus sieht eine logisch vorteilhafte Platzierung der Regel vor. Er stellt z.B. sicher, dass die Aktionen für den Anrufer, wo TARGET = FROM (ZIEL = VON) ist, nicht mit Aktionen für Angerufene vermischt werden, wo TARGET = RequestURI (ZIEL = AnfrageURI) ist. Es bedeutet auch, dass Regeln, die zuletzt hinzugefügt werden, auch die ersten sind, auf die getroffen wird, wenn ein Ereignis geschieht. Dies ist das einfachste Vorgabeverhalten.If no position is specified, then the control module drive follow the following algorithm when adding these triggers: Search the rule engine for the same property pattern as in the new rule. If a pattern is found, look for any partial pattern, etc. If no partial pattern found will, paste usually the highest as the rule priority in the included list of actions. If no similar Pattern is already in the rule module, paste as the first pattern. This Algorithm provides a logically advantageous placement rule in front. He represents e.g. sure the actions for the caller where TARGET = FROM is NOT to be mixed with actions for called party, where TARGET = RequestURI. It also means that rules that are added last, also the first ones are hit upon when an event happens. This is the simplest default behavior.

Es kann möglich sein anzuzeigen, ob eine Triggerregel permanent ist oder automatisch gelöscht werden sollte, sobald das Ereignis gemeldet ist. Welchen Typ von Regeln eine Anwendung dynamisch hinzufügen kann, kann mit den Privilegien und Rechten verknüpft werden, die der Anwendung zugewiesen sind.It may be possible to indicate whether a trigger rule is permanent or automatic deleted should be as soon as the event is reported. Which type of Rules an application can dynamically add can be used with the privileges and rights linked which are assigned to the application.

In einer anderen alternativen Ausführungsform wird der kaskadierte Anfragebaum nur für die Lebensdauer eines Ereignisses aufrechterhalten. In diesem Fall ist dann, wenn die letzte Anwendung in der Kette ihre Verarbeitung beendet hat und das SIP-Ereignis gesendet ist, die kaskadierte Kette nicht länger relevant. Bis zu diesem Punkt kann es für den Regelantrieb nützlich sein, eine Darstellung der kaskadierten Kette im Speicher zu halten. Dies ist so, da Anwendungen auf getrennten Servern laufen können und es einige Zeit brauchen kann, auf den Aufruf zu reagieren. Während der Regelantrieb auf eine Antwort wartet, kann eine frühere Anwendung in der Kette die Anfrage löschen. Falls dies geschieht, wird der Regelantrieb den Anwendungsausführungsantrieb der Anwendung, auf die er wartet, informieren müssen. Dies bedeutet, dass sich der Regelantrieb daran erinnern sollte, was die nächste Anwendung in der Kette war. Zu der Zeit, zu der das SIP-Ereignis weitergeleitet wurde, sollten alle Anwendungen in der Kette scharfgemachte Regeln für die Ereignisse haben, für die sich interessieren, somit gibt es für den Regelantrieb nicht län ger eine Notwendigkeit, sich an die kaskadierte Kette zu erinnern. Der Vorteil dieser Lösung besteht darin, dass der Regelantrieb selbst einfach ist. Er meldet einfach Ereignisse basierend auf Regelmodulen in den relevanten Verarbeitungspunkten. Diese Lösung ist jedoch komplex zu administrieren und platziert die Komplexität einer Ordnung der Ereignisse in die Anwendungen, d.h. die Anwendungen müssen entscheiden, in welcher Prioritätsposition die Regel in einem Regelmodul hinzugefügt werden sollte.In another alternative embodiment becomes the cascaded request tree only for the lifetime of an event maintained. In this case, then, if the last application in the chain has finished processing and the SIP event is sent, the cascaded chain no longer relevant. Until this Point can it for the control drive useful be to keep a representation of the cascaded chain in memory. This is because applications can run on separate servers and It may take some time to respond to the call. During the Control drive waiting for a response, may be an earlier application in the chain delete the request. If this happens, the variable speed drive becomes the application execution drive the application he is waiting for. This means that yourself the governor should remember what the next application was in the chain. By the time the SIP event is forwarded was, all applications in the chain should be sharp-set rules for the Have events for which are of interest, so there is no longer a rule for the Regelantrieb Need to remember the cascaded chain. The advantage this solution is that the variable speed drive itself is easy. He reports simply events based on rule modules in the relevant Processing points. This solution however, it is complex to administer and places the complexity of one Order of events into the applications, i. the applications have to decide in which priority position the rule should be added in a rule module.

18 veranschaulicht die Baumstruktur der Verarbeitung von Regelmodulen gemäß einer Ausführungsform der Erfindung. Wenn ein Ereignis empfangen wird, entfaltet die Regelbasisverarbeitung ein Verarbeitungsmuster, welches als der Regelbasisbaum bezeichnet wird. Wenn eine Anfrage in dem SIP-Server entsprechend einem ursprünglichen Ereigniskontext 1801 ankommt, können die zugehörigen Teilnehmer die veranlassende Seite (d.h. Anrufer) und/oder die abschließende Seite (d.h. Angerufener) sein. Der Anrufer wird durch das From-Headerfeld identifiziert. Der Angerufene (oder gegenwärtige Angerufene) wird durch den Request-URI identifiziert. Das From-Headerfeld und der Request-URI sollten einen Teilnehmer in dem SIP-Server eindeutig identifizieren, wo diese Teilnehmer eine vertragliche Beziehung mit dem Netzbetreiber und Dienstanbietern haben. Dem kaskadierenden Prinzip folgend werden die veranlassenden Dienste 1802 vor abschließenden Dienste 1803 aufgerufen, selbst wenn sich die veranlassenden und abschließenden Seiten in dem gleichen Host befinden. Es kann auch eine dritte Kategorie von Diensten aufgerufen werden. Diese werden die Dienste weitergeleitet-durch (forwarded-by) genannt (nicht gezeigt). Diese Kategorie von Diensten wird aufgerufen, falls eine Anfrage zu einem neuen Ziel weitergeleitet wird, das zu einem anderen Teilnehmer gehört. In diesem Fall kann es sein, dass veranlassende Dienste im Namen des Anrufenden aufgerufen werden müssen. Für jede Seite werden die Dienste basierend auf dem Standort der Regelmodule aufgerufen, wie sie in den unterschiedlichen Verarbeitungspunkten 18041809 platziert sind. Für jeden Verarbeitungspunkt werden die Mengen von Regelmodulprioritäten 18101814 auf eine Übereinstimmung untersucht. Innerhalb jeder Priorität wird höchstens jeweils ein Regelmodul 18151817 aufgerufen. Ein Regelmodul 1817 kann jedoch die Wurzel einer Regelmodulhierarchie 1818 sein, wie in Verbindung mit 12 beschrieben. Zur Einfachheit kann eine derartige Regelmodulhierarchie als ein einzelnes Regelmodul betrachtet werden. Daher können die Funktion der Regelmodulverarbeitung 1601, die Funktionen 1700 des Dienstinteraktionsmoduls und die Dienstanwendungen 1819, die durch die Regelmodule aufgerufen werden, als ein Blatt in dem Regelbasisbaum betrachtet werden. Basierend auf dem aktuellen Ereigniskontext CEC wird das Regelmodul 1817 aufgerufen und es gibt einen resultierenden Ereigniskontext REC zurück. Dieser resultierende Ereigniskontext REC wird als der aktuelle Ereigniskontext CEC für das nächste Regelmodul betrachtet, das aufgerufen wird. Wenn alle Regelmodule aufgerufen wurden und das letzte von ihnen den resultierenden Ereigniskontext zurückgegeben hat, dann ist der resultierende Ereigniskontext die Menge von SIP-Signalisierungsnachrichten, die stromaufwärts und/oder stromabwärts als Antwort auf die ursprüngliche eingehende SIP-Nachricht gesendet wird. 18 illustrates the tree structure of the processing of rule modules according to an embodiment of the invention. When an event is received, rule base processing unfolds a processing pattern called the rule base tree. When a request in the SIP server corresponding to a original event context 1801 the associated subscribers can be the originating page (ie, caller) and / or the terminating page (ie, called party). The caller is identified by the From header field. The callee (or current callee) is identified by the request URI. The From header field and the Request URI should uniquely identify a subscriber in the SIP server where these subscribers have a contractual relationship with the network operator and service providers. Following the cascading principle are the initiating services 1802 before final services 1803 even if the originating and terminating pages are in the same host. You can also call a third category of services. These are forwarded the services by (forwarded-by) (not shown). This category of services is invoked if a request is forwarded to a new destination belonging to another subscriber. In this case, initiating services may have to be invoked on behalf of the caller. For each page, the services are called based on the location of the rule modules, as they are in the different processing points 1804 - 1809 are placed. For each processing point, the sets of rule module priorities become 1810 - 1814 examined for a match. Within each priority is at most one rule module 1815 - 1817 called. A rule module 1817 however, can be the root of a rule module hierarchy 1818 be, as in connection with 12 described. For simplicity, such a rule module hierarchy may be considered as a single rule module. Therefore, the function of rule module processing 1601 , the functions 1700 the service interaction module and the service applications 1819 that are called by the rule modules are considered to be a leaf in the rule base tree. Based on the current event context CEC becomes the rule engine 1817 called and there is a resulting event context REC back. This resulting event context REC is considered to be the current event context CEC for the next rule engine being invoked. If all the rule modules have been called and the last of them returned the resulting event context, then the resulting event context is the set of SIP signaling messages sent upstream and / or downstream in response to the original incoming SIP message.

Die obige Verarbeitungsstruktur, die in 18 grafisch veranschaulicht wird, kann ferner durch das folgende Beispiel eines Pseudocodefragmentes veranschaulicht werden:

Figure 00900001
Figure 00910001
Figure 00920001
The above processing structure used in 18 is further illustrated by the following example of a pseudo-code fragment:
Figure 00900001
Figure 00910001
Figure 00920001

Es wird vermerkt, dass eine Dienstanwendung das From-Headerfeld oder den Request-URI ändern kann. Des weiteren können das resultierende From-Headerfeld oder der resultierende Request-URI zu einem anderen Teilnehmer gehören, der sogar dem SIP-Server, der das Ereignis verarbeitet, unbekannt sein kann. Falls der resultierende From und/oder der Request-URI ein neuer, aber bekannter Teilnehmer in dem SIP-Server ist, werden die Dienste, die mit diesem Teilnehmer in Verbindung stehen, ebenso aufgerufen. In diesem Fall kann die Regelbasisverarbeitungsprozedur rekursiv aufgerufen werden, was zu einer hierarchischen Struktur von Regelbasisbäumen führt.It It is noted that a service application has the From header field or can change the request URI. Furthermore, you can the resulting From header field or the resulting Request URI belong to another participant, even unknown to the SIP server processing the event can be. If the resulting From and / or the Request URI a new but well-known subscriber in the SIP server is the services associated with this subscriber as well called. In this case, the rule base processing procedure recursively, resulting in a hierarchical structure of rule base trees leads.

Verarbeiten eines Regelmoduls umfasst den Schritt zum Ausführen jeder Aktion wiederum in Prioritätsreihenfolge, wobei evaluiert wird, ob die einschließenden Muster mit dem aktuellen Ereigniskontext übereinstimmen, und falls ja, Anwenden der Aktion. Im Folgenden wird ein Verfahren gemäß einer Ausführungsform der Erfindung detaillierter beschrieben.To process a rule module includes the step to perform each action turn in priority order, whereby it is evaluated whether the enclosing patterns match the current one Match event context, and if yes, apply the action. The following is a procedure according to a embodiment the invention described in more detail.

Das folgende Pseudocodefragment sieht eine Beschreibung hoher Ebene eines Algorithmus zum Verarbeiten eines Regelmoduls vor:

Figure 00930001
Figure 00940001
The following pseudo code fragment provides a high-level description of an algorithm for processing a rule module:
Figure 00930001
Figure 00940001

Hier gibt die Methode enclosingPatternsTrue einen booleschen Wert zurück, der anzeigt, ob die Muster, die die Aktionen einschließen, wahr sind. Die Methode processAction kann wie in dem folgenden Pseudocodefragment angezeigt implementiert sein:

Figure 00940002
wobei EC[] die Menge von Weiterleitungen des Ereigniskontextes ist. Falls sie leer ist, hat der Dienst die Anfrage oder Antwort abgeschlossen.Here, the enclosingPatternsTrue method returns a Boolean value that indicates whether the patterns that include the actions are true. The processAction method can be implemented as shown in the following pseudo-code snippet:
Figure 00940002
where EC [] is the set of event context redirects. If empty, the service has completed the request or response.

Die Dienstanwendung kann ferner Instruktionen erteilen, die nicht Instruktionen sind, um den Ereigniskontext weiterzuleiten. Diese werden in dem obigen Algorithmus nicht gezeigt. Derartige Instruktionen können durch den Regelbasismanager verarbeitet werden.The Service application may also issue instructions that are not instructions are to forward the event context. These are in the above algorithm not shown. Such instructions can by the rule base manager.

Wenn Aktionen in Prioritätsreihenfolge ausgeführt werden, kann das Ergebnis der Aktion sein, den aktuellen Ereigniskontext zu ändern. Nach einer derartigen Aktion setzt sich die Verarbeitung des aktuellen Regelmoduls fort. Nach Ausführen des aktuellen Regelmoduls können weitere Regelmodule gemäß der Regelbasisverarbeitungsprozedur ausgeführt werden. Die Aktionen unterer Prioritätsreihenfolge werden nur ausgeführt, falls das (die) Muster, das (die) sie einschließ(t)(en), mit den neuen Nachrichteneigenschaften übereinstimm(t)(en), wie durch den aktuellen Ereigniskontext spezifiziert. Dies wird durch das folgende Beispiel eines Fragmentes eines Pseudoskriptes veranschaulicht, welches zwei Aktionen beschreibt, die durch zwei Muster eingeschlossen sind:

Figure 00950001
When actions are performed in order of priority, the result of the action may be to change the current event context. After such an action, the processing of the current rule module continues. After executing the current rule module, further rule modules may be executed according to the rule base processing procedure. The lower priority order actions are executed only if the pattern (s) they include (t) match the new message properties (t) as specified by the current event context. This is illustrated by the following example of a fragment of a pseudo-script describing two actions that are included by two patterns:
Figure 00950001

Die zwei Aktionen werden durch zwei Muster eingeschlossen, die anzeigen, dass die Aktionen nur angewendet werden sollten, falls die Anfrage ein EINLADEN ist und der RequestURI den Domänennamen xcorp.com enthält. Die erste Aktion ruft ein vom Benutzer bereitgestelltes CPL-Skript auf. Falls das Benutzer-CPL-Skript das Ziel der Anfrage nicht ändert, wird das Standard-Proxy-Verhalten aufgerufen, um den Benutzer zu lokalisieren und die Anfrage stellvertretend zu behandeln. Falls das CPL-Skript das Ziel ändert, sodass das Ziel zu einem anderen Host auflösen wird, muss das Standard-Proxy-Verhalten nicht aufgerufen werden.The two actions are enclosed by two patterns that indicate that the actions should only be applied if the request is an INVITE and the requestURI contains the domain name xcorp.com. The first action invokes a user-supplied CPL script. If the user CPL script does not change the destination of the request, then called the default proxy behavior to locate the user and treat the request proxy. If the CPL script the goal changes, The default proxy behavior must be that the destination will resolve to another host not be called.

Falls sich die Nachrichteneigenschaft, die das Regelmodul getriggert hat, ändert, sodass sie einen neuen Benutzer darstellt, wird die Verarbeitung dieses Regelmoduls gestoppt. Der Zweck davon ist, dass von Regelmodulen gedacht werden kann, im Namen eines einzelnen Benutzers verarbeitet zu werden. Dies vereinfacht die Regelmodulverarbeitung und Skriptentwicklung.If the message property that triggered the rule engine changes so that she represents a new user, processing this Control module stopped. The purpose of this is that of rule modules can be thought of, processed on behalf of a single user to become. This simplifies rule module processing and script development.

19 veranschaulicht die rekursive Verarbeitung von Regelmodulen in einer Situation, wo Dienstanwendungen neue Ereig niskontexte generieren, gemäß einer Ausführungsform der Erfindung. Die neuen Ereigniskontexte können den ursprünglichen Regelmodultrigger ändern, und in diesem Fall können neue Regelmodule rekursiv aufgerufen werden. Z.B. können Präferenzen für Angerufene eines Teilnehmers, z.B. ein CPL-Skript, die Anfrage zu einem neuen Ziel weiterleiten, das mit einem anderen Teilnehmer des gleichen SIP-Servers in Verbindung steht. In diesem Fall sollten ebenso Präferenzen für Angerufene des Teilnehmers, zu dem weitergeleitet wird, z.B. ein anderes CPL-Skript, aufgerufen werden. 19 illustrates the recursive processing of rule modules in a situation where service applications generate new event texts, according to an embodiment of the invention. The new event contexts can change the original rule modulus trigger, and in this case, new rule modules can be called recursively. For example, preferences for called parties of a subscriber, eg a CPL script, may forward the request to a new destination associated with another subscriber of the same SIP server. In this case, preferences should also be invoked for callers of the party being forwarded to, eg another CPL script.

Wie durch das Beispiel von 19 veranschaulicht, generiert ein Anfangsereigniskontext 1901 eine Rekursion von Regelmodulaufrufen, wenn eine SIP-Anfragenachricht zu mehreren neuen Zielen weitergeleitet wird, die mit anderen Teilnehmerkonten in Verbindung stehen. In dem Beispiel von 19 wird die Anwendung 1914 durch das Regelmodul 1903 im Namen eines Teilnehmers A getriggert. Das Regelmodul 1903 wird durch den ursprünglichen Ereigniskontext 1901 getriggert. Die Anwendung 1914 generiert drei Ereigniskontexte 19041906, wo sich der Regelmodultrigger in den zwei Ereigniskontexten 19051906 geändert hat, die mit neuen Teilnehmerkonten in Verbindung stehen. Der Ereigniskontext 1904 ist ein aktualisierter Ereigniskontext, steht aber mit dem gleichen Teilnehmer in Verbindung, dessen Regelmodul anfangs Anwendung 1914 aufgerufen hat. In diesem Fall werden auch die Teilnehmerregelmodule 19071908, die jeweils mit den neuen Ereigniskontexten 19051906 in Verbindung stehen, aufgerufen. Regelmodul 1907 ruft wiederum Anwendung 1915 auf, die zwei neue Ereigniskontexte 1909 und 1910 generiert usw. Folglich wird eine Baumverarbeitungsstruktur erstellt, in der die Blätter der Menge von resultierenden Ereigniskontexten 19101913 entsprechen. Anschließend veranlassen die resultierenden Ereigniskontexte 19101913 den SIP-Server, SIP-Nachrichten stromaufwärts oder stromabwärts oder beides zu senden. Es wird vermerkt, dass das Beispiel von 19 einen einfachen Fall zeigt, der annimmt, dass die Regelmodule jedes nur eine Aktion enthalten.As by the example of 19 Illustrates generates an initial event context 1901 a recursion of rule module calls when a SIP request message is forwarded to multiple new destinations associated with other subscriber accounts. In the example of 19 becomes the application 1914 through the control module 1903 triggered on behalf of a participant A. The rule module 1903 is through the original event context 1901 triggered. The application 1914 generates three event contexts 1904 - 1906 where the rule modulus trigger is in the two event contexts 1905 - 1906 has changed with new subscriber accounts. The event context 1904 is an updated event context, but it is associated with the same participant whose rule engine is initially running 1914 has called. In this case also the participant rule modules become 1907 - 1908 , each with the new event contexts 1905 - 1906 are called. control module 1907 calls again application 1915 on, the two new event contexts 1909 and 1910 Consequently, a tree structure is created in which the leaves of the set of resulting event contexts 1910 - 1913 correspond. Then, cause the resulting event contexts 1910 - 1913 the SIP server to send SIP messages upstream or downstream, or both. It is noted that the example of 19 shows a simple case assuming that the rule modules each contain only one action.

Falls die fünf Anwendungen 19141918 in 19 angefragt haben, über nachfolgende Antworten auf die resultierenden SIP-Nachrichten benachrichtigt zu werden, gemäß dem kaskadierenden Prinzip, werden Antworten der logisch stromabwärtigsten Anwendung zuerst bekannt gegeben. In 19 werden Antworten zu dem resultierenden Ereigniskontext 1910 zuerst Anwendung 1918, dann Anwendung 1915 und schließlich Anwendung 1914 bekannt gegeben, wie durch die Linie 1919 angezeigt. Für den resultierenden Ereigniskontext 1911 ist die entsprechende Sequenz Anwendung 1915 und Anwendung 1914, wie durch Linie 1920 angezeigt. Für den resultierenden Ereigniskontext 1912 ist die Sequenz Anwendung 1916 und dann Anwendung 1914, wie durch Linie 1921 angezeigt. Schließlich ist für den resultierenden Ereigniskontext 1913 die Sequenz Anwendung 1917 und dann Anwendung 1914.If the five applications 1914 - 1918 in 19 have asked about subsequent answers According to the cascading principle, responses from the logically most downstream application are first announced, to notify the resulting SIP messages. In 19 will be responses to the resulting event context 1910 first application 1918 , then application 1915 and finally application 1914 announced as through the line 1919 displayed. For the resulting event context 1911 is the appropriate sequence application 1915 and application 1914 as by line 1920 displayed. For the resulting event context 1912 is the sequence application 1916 and then application 1914 as by line 1921 displayed. Finally, for the resulting event context 1913 the sequence application 1917 and then application 1914 ,

20 veranschaulicht einen Mechanismus zum Durchsetzen von Zugriffssteuerung in Verbindung mit Regelmodulen gemäß einer Ausführungsform der Erfindung. Es werden zwei Typen von Zugriffssteuerung durchgesetzt. Zugriff zu Regelmodulen sollten nur authentifizierten und autorisierten Seiten gewährt werden, und Zugriff zu Dienstmerkmalen sollte nur authentifizierten und autorisierten Regelmodulen gewährt werden. Gemäß einer Ausführungsform kann diese Zugriffssteuerung durch Verwenden so genannter Zugriffssteuerlisten (access control lists, ACL) implementiert werden. Eine derartige Liste kann ein XML-Dokument sein, möglicherweise in das Regelmodul eingebettet oder in dem gleichen Verzeichnis befindlich wie das, oder anderweitig verbunden mit dem Regelmodul. Zugriffssteuerlisten inkludieren Zugriffssteuerregeln. Die Zugriffssteuerliste kann jede der Individuen oder Gruppen aufzählen, denen Zugriff auf das Regelmodul gewährt wird. Der Mechanismus kann auch verwendet werden, Privilegien und Rechte der Regelmodule explizit zu spezifizieren, z.B. welche Dienstmerkmale das Regelmodul verwenden kann. Deshalb erlaubt er dem Administrator, Privilegien und Rechte von Regelmodulen zu managen. 20 illustrates a mechanism for enforcing access control in conjunction with rule modules according to an embodiment of the invention. Two types of access control are enforced. Access to rule modules should be granted only to authenticated and authorized pages, and access to features should only be granted to authenticated and authorized rule modules. According to one embodiment, this access control may be implemented by using so-called access control lists (ACL). Such a list may be an XML document, possibly embedded in the rule module or in the same directory as that, or otherwise associated with the rule module. Access control lists include access control rules. The access control list may enumerate any of the individuals or groups granted access to the rule module. The mechanism can also be used to explicitly specify privileges and rights of the rule modules, eg which service features the rule module can use. Therefore, it allows the administrator to manage privileges and rights of rule modules.

Des weiteren kann der Mechanismus verwendet werden, um Privilegien und Rechte von Dienstanwendungen zu managen. Falls ein Teilnehmer ein CPL-Skript hochlädt, kann es ein zugehöriges Regelmodul geben, das diesen Dienst in dem richtigen Zeitpunkt auf ruft. In diesem Fall sollte das Regelmodul explizite Privilegien und Rechte haben dies zu tun. Dies kann durch Verbinden von Zugriffssteuerlisten mit dem CPL-Skript gemanagt werden. Der Mechanismus kann ferner verwendet werden, um Privilegien und Rechte der Dienstanwendung explizit zu spezifizieren, z.B. welche Dienstmerkmale, APIs etc. die Dienstanwendung verwenden kann. Deshalb erlaubt er dem Administrator, Privilegien und Rechte von Dienstanwendungen zu managen.Of Further, the mechanism can be used to set privileges and Manage rights of service applications. If a participant enters Upload CPL script, it may be an associated Give rule module this service at the right time calls. In this case, the rules engine should have explicit privileges and rights have to do that. This can be done by connecting access control lists be managed with the CPL script. The mechanism may further used to privileges and rights of the service application to specify explicitly, e.g. which service features, APIs etc. can use the service application. Therefore, he allows the administrator Manage privileges and rights of service applications.

Bezug nehmend auf die nummerierten Kreise in 20 können die folgenden Privilegien geprüft werden:

  • 1) Es wird ein ursprünglicher Ereigniskontext 2001 zu dem Regelmodul nach richtiger Authentifizierung von Teilnehmern gesendet (A ist der Anrufer, B der Aufgerufene). Regelmodule und Dienstanwendungen sind alle authentifiziert, und ihnen wurden Privilegien und Rechte gegeben.
  • 2) Der Regelbasisprozessor 2002 versucht, auf Regelmodule in der Regelbasis 2003 zuzugreifen, die mit einem authentifizierten Teilnehmer A oder B oder beiden in Verbindung stehen. Dem Regelbasisprozessor 2002 sollte nicht erlaubt werden, auf Regelmodule zuzugreifen, die mit anderen Teilnehmern in Verbindung stehen, wenn dieses Ereignis verarbeitet wird. Die Regelbasis 2003 kann sich auf einem ent fernten Server befinden, in welchem Fall sich der Regelantrieb selbst authentifizieren sollte.
  • 3) Falls gemäß der Zugriffssteuerliste 2005 erlaubt, kann der Regelbasisprozessor 2002 das geladene Regelmodul 2004 aufrufen, sagen wir Regelmodul 1, das sich im Besitz von A befindet.
  • 4) Falls gemäß der Zugriffssteuerliste 2006 erlaubt, kann Regelmodul 2004 versuchen, ein anderes Regelmodul 2007 aufzurufen, das mit einem anderen Besitzer B in Verbindung steht.
  • 5) Falls gemäß der Zugriffssteuerliste 2008 erlaubt, kann der Regelbasisprozessor 2002 das geladene Regelmodul 2007 aufrufen.
  • 6) Falls gemäß den Zugriffssteuerlisten 2005 und 2012 erlaubt, kann Regelmodul 2004 versuchen, Dienstanwendung 2010 aufzurufen, falls erlaubt. Die Dienstanwendung 2010 kann gemäß Zugriffssteuerliste 2011 auf den Ereigniskontext 2013 zugreifen.
  • 7) Die Dienstanwendung 2010 kann eine Menge von Instruktionen 2014 zurückgeben, die zu dem Regelmodulprozessor zurück vermittelt wird, falls gemäß Zugriffssteuerliste 2015 erlaubt.
  • 8) Die Dienstanwendung 2010 kann für Ereignisse scharfmachen/entschärfen, falls gemäß Zugriffssteuerliste 2015 erlaubt.
  • 9) Die Dienstanwendung 2010 kann versuchen, einem anderen Regelmodul 2007 als dem einen, den sie aufgerufen hat, Instruktionen zu geben, falls gemäß Zugriffssteuerliste 2012 erlaubt.
Referring to the numbered circles in FIG 20 The following privileges can be checked:
  • 1) It becomes an original event context 2001 sent to the rule module after proper authentication of subscribers (A is the caller, B the called). Rule modules and service applications are all authenticated, and given privileges and rights.
  • 2) The rule base processor 2002 Attempts to control modules in the rule base 2003 accessing an authenticated subscriber A or B or both. The rule base processor 2002 should not be allowed to access rule modules that are in contact with other participants when this event is processed. The rule base 2003 can be located on a remote server, in which case the rule drive should authenticate itself.
  • 3) If according to the access control list 2005 allowed, the rule base processor 2002 the loaded control module 2004 call, say, rule module 1, which is owned by A.
  • 4) If according to the access control list 2006 allowed, can rule module 2004 try another rule module 2007 call that is associated with another owner B.
  • 5) If according to the access control list 2008 allowed, the rule base processor 2002 the loaded control module 2007 call.
  • 6) If applicable, according to the access control lists 2005 and 2012 allowed, can rule module 2004 try service application 2010 call, if allowed. The service application 2010 can according to access control list 2011 on the event context 2013 access.
  • 7) The service application 2010 can be a lot of instructions 2014 which is returned to the rule module processor, if according to the access control list 2015 allowed.
  • 8) The service application 2010 can arm / disarm events for events, as per access control list 2015 allowed.
  • 9) The service application 2010 can try another rule module 2007 as the one she has called to give instructions, if according to access control list 2012 allowed.

Zugriffssteuerung auf Regelmodule kann durch die Richtlinienknoten in einem Regelmodul durchgesetzt werden. Ein Beispiel einer Regelmodul-Zugriffssteuerliste, die in einem Regelmodul eingebettet ist, kann wie folgt aussehen:

Figure 00990001
Figure 01000001
Access control to rule engines can be enforced by the policy nodes in a rule engine. An example of a rule module access control list embedded in a rules engine might look like this:
Figure 00990001
Figure 01000001

Diese Richtlinie (policy) könnte auf das gesamte Regelmodul angewendet werden, in welchem Fall sie festlegt, dass der Teilnehmer Alice dieses Regelmodul aufrufen kann, sie es aber nicht lesen oder schreiben darf.These Directive (policy) could be applied to the entire rule module, in which case it determines that the subscriber Alice can call this rule module, they can do it but not allowed to read or write.

Derartige Richtlinien-XML-Skripte können innerhalb von Regelmodulen eingebettet sein, sie können aber auch mit Datenelementen in Verbindung stehen. Z.B. kann der Netzbetreiber ein Richtlinien-XML-Skript mit dem Regelmodul eines Teilnehmers verknüpfen, das die Privilegien spezifiziert, die dem Besitzer des Regelmoduls durch den Netzbetreiber gewährt werden. Diese Privilegien könnten die Dienste oder Dienstmerkmale spezifizieren, welche dem Regelmodul erlaubt werden aufzurufen, wie durch das folgende Beispiel einer derartigen Dienstzugriffssteuerliste veranschaulicht wird:

Figure 01000002
Figure 01010001
Such policy XML scripts may be embedded within rule modules, but may also be associated with data items. For example, the network operator may associate a policy XML script with the subscriber's policy module specifying the privileges granted to the owner of the policy module by the network operator. These privileges could specify the services or service features that will allow the policy module to invoke, as illustrated by the following example of such a service access control list:
Figure 01000002
Figure 01010001

Es wird vermerkt, dass eine SIP-Server-Dienstunterstützungsumgebung ferner angepasst sein kann, Abrechnungsdatensätze zu generieren, z.B. für Inhaltsabrechnung, Anwendungsabrechnung, Benutzungsabrechnung oder dergleichen. Z.B. können die Datensätze über Protokolle von SERL-Skripten oder CPL-Skripten bereitgestellt, über Bibliotheksfunktionen oder Dienstanwendungen gemanagt werden etc.It It is noted that a SIP server service support environment Further, it may be adapted to generate billing records, e.g. for content billing, Application billing, usage billing or the like. For example, can the records via logs provided by SERL scripts or CPL scripts, via library functions or service applications to be managed etc.

Des weiteren implementiert ein System, das Diensttriggerung gemäß der Erfindung implementiert, vorzugsweise Sicherheitsmaßnahmen, um Sicherheit und Integrität des SIP-Knotens zu bewahren, obwohl Teilnehmern und Dienstanbietern einer dritten Seite erlaubt sein kann, nicht nur Dienstanwendungen hochzuladen, sondern auch Instruktionen dazu, wie und wann sie aufzurufen sind, inkludierend irgendeinen Grad von Merkmalsinteraktionsauflösung. Mögliche Sicherheitsmaßnahmen in kludieren die Konfiguration von Privilegien und Rechten von Regelmodulen, Dienstanwendungen, Namensraumkonventionsrichtlinien, Authentifizierungsmechanismen, Autorisierungsmechanismen, Zugriffsschutz, Authentifizierung und Validierung von hochgeladenen Regelmodulen, Protokollierung und Überwachung etc.Of another implements a system, service triggering according to the invention implements, preferably security measures, to security and integrity of the SIP node, although subscribers and service providers a third party may be allowed, not just service applications but also instructions on how and when to call them are inclusive of any degree of feature interaction resolution. Possible security measures in declare the configuration of privileges and rights of rule modules, Service applications, namespace convention policies, authentication mechanisms, Authorization mechanisms, access protection, authentication and Validation of uploaded rule modules, logging and monitoring Etc.

Es wird vermerkt, dass die Erfindung hauptsächlich in Verbindung mit Netzdiensten beschrieben wurde. Sie ist jedoch auch anwendbar, in einer Endbenutzerausrüstung verwendet zu werden.It It is noted that the invention is primarily related to network services has been described. However, it is also applicable when used in end-user equipment to become.

Des weiteren wird vermerkt, dass die Erfindung, obwohl hauptsächlich in Verbindung mit SIP beschrieben, ebenso andere Signalisierungsprotokolle annehmen kann. SERL ist nicht darauf begrenzt, Dienste basierend auf SIP-Ereignissen aufzurufen, sondern kann einen beliebigen Typ einer Dienstanwendung basierend auf einem beliebigen Typ eines Ereignisses in dem Kontext eines beliebigen Typs eines Geschäftsmodells aufrufen. Die Erfindung kann angewendet werden, Dienste für einen beliebigen SIP-freigegebenen Knoten zu managen. Unter Verwendung von SERL-Skripten können Dienste von Knoten aufgerufen werden, die Benutzeragenten, Archivare, Umlenkungsserver oder Proxyserver implementieren.Of Further, it is noted that the invention, although mainly in Connection with SIP described, as well as other signaling protocols can accept. SERL is not limited to services based can call on SIP events, but can be of any type a service application based on any type of event in the context of any type of business model. The invention can be applied services for any SIP-shared To manage knots. Using SERL scripts, services can called by nodes, the user agents, archivists, redirection servers or implement proxy servers.

Schließlich wird vermerkt, dass in der 3GPP-Architektur alle Teilnehmerdaten in dem so genannten Heimatteilnehmerserver (Home Subscriber Server, HSS) administrieren werden. Auf SIP-bezogene Anwendungen werden von einem Knoten aufgerufen, der eine bedienende Rufzustandssteuerfunktion (Serving Call State Control Function, S-CSCF) genannt wird. Wenn sich ein Teilnehmer mit einem Netz verbindet, führt seine Benutzerausrüstung (User Equipment, UE) eine CSCF-Ermittlung durch, um eine geeignete S-CSCF auszuwählen. Die S-CSCF registriert bei dem HSS, den sie bedient, den in Frage kommenden Teilnehmer.Finally will notes that in the 3GPP architecture all subscriber data in the so-called Home Subscriber Server (HSS) to administer. On SIP-related Applications are called by a node that has a serving Call State Control Function (Serving Call State Control Function, S-CSCF). When a subscriber connects to a network, carries his user equipment (User Equipment, UE) performs a CSCF determination to obtain a suitable S-CSCF select. The S-CSCF registers with the HSS it serves upcoming participants.

Diensttrigger könnten dann von dem HSS zu der S-CSCF in der Form von Dienstausführungsregeln in dem SERL-Format transportiert werden. Der HSS könnte auch die Dienstausführungsregeln verwenden, die mit einem Teilnehmer in Verbindung stehen, um zu entscheiden, eine andere S-CSCF zuzuordnen, basierend darauf, welche S-CSCF die richtigen Dienste installiert hat. Daher kann eine Ausführungsform der Erfindung verwendet werden, damit der HSS die teilnehmerbasierten Trigger in dem richtigen Verarbeitungspunkt und Priorität und somit in der richtigen Prioritätsreihenfolge mit permanenten Diensten, die in der S-CSCF installiert sind, platziert. Daher kann ein Mechanismus gemäß der Erfindung in der 3GPP-IPMM-Domäne eingebettet sein.Service triggers could then pass from the HSS to the S-CSCF in the form of service execution rules be transported in the SERL format. The HSS could also use the service execution rules associated with a subscriber to decide to assign another S-CSCF based on which S-CSCF has installed the correct services. Therefore, one embodiment of the invention may be used to allow the HSS to place the subscriber-based triggers in the correct processing point and priority, and thus in the proper priority order with permanent services installed in the S-CSCF. Therefore, a mechanism according to the invention may be embedded in the 3GPP IPMM domain.

Claims (27)

Verfahren zum Managen einer Vielzahl von Diensten (309, 310, 311; 1305; 1611, 1612, 1613), getriggert durch eine Nachricht (1306; 1609) von einem Sitzungsprotokoll, das eine Kommunikationssitzung steuert, wobei das Verfahren die Schritte umfasst – Erhalten einer Zahl von Regelmodulen, von denen jedes eine Zahl von Ausführungsregeln (308; 401, 402; 1606, 1607, 1608) umfasst, wobei jede Ausführungsregel eine Bedingung (403, 404, 405) zum Aufrufen eines Dienstes spezifiziert; – Verarbeiten eines ersten (1216) der Zahl von Regelmodulen, die Verarbeitung umfassend Verarbeitung mindestens eines Teils der Ausführungsregeln des ersten Regelmoduls in einer vorbestimmten Reihenfolge, einer ersten Ausführungsregel (1606), die bewirkt, dass ein erster Dienst (1611) aufzurufen ist, falls die Nachricht eine erste Bedingung erfüllt, was zu einer ersten modifizierten Nachricht (1615) führt; und einer zweiten Ausführungsregel (1607), die bewirkt, dass ein zweiter Dienst (1612) mit der ersten modifizierten Nachricht als eine Eingabe aufzurufen ist, falls die erste modifizierte Nachricht eine zweite Bedingung erfüllt; wobei die Verarbeitung des ersten Regelmoduls zu einer ersten akkumulativ modifizierten Nachricht (1206) führt; – Aufrufen einer Verarbeitung eines zweiten (1217) der Zahl von Regelmodulen, was die erste akkumulativ modifizierte Nachricht als eine Eingabe vorsieht; gekennzeichnet dadurch, dass das erste Regelmodul zu sich ein Privileg zugewiesen hat, das eine Autorität anzeigt, ein Sperrflag zu ändern, das sich auf einen vorbestimmten Teil der akkumulativ modifizierten Nachricht bezieht, wobei das Sperrflag spezifiziert, ob der vorbestimmte Teil der akkumulativ modifizierten Nachricht durch Dienste modifiziert werden kann, die von mindestens dem zweiten Regelmodul aufgerufen werden.Method for managing a plurality of services ( 309 . 310 . 311 ; 1305 ; 1611 . 1612 . 1613 ), triggered by a message ( 1306 ; 1609 ) of a session log controlling a communication session, the method comprising the steps of - obtaining a number of rule modules, each of which has a number of execution rules ( 308 ; 401 . 402 ; 1606 . 1607 . 1608 ), each execution rule having a condition ( 403 . 404 . 405 ) for calling a service; - processing a first ( 1216 ) the number of rule modules, the processing comprising processing at least a part of the execution rules of the first rule module in a predetermined order, a first execution rule ( 1606 ), which causes a first service ( 1611 ), if the message meets a first condition, resulting in a first modified message ( 1615 ) leads; and a second execution rule ( 1607 ), which causes a second service ( 1612 ) is to be invoked as an input with the first modified message if the first modified message satisfies a second condition; wherein the processing of the first rule module to a first accumulatively modified message ( 1206 ) leads; Calling a processing of a second ( 1217 ) the number of rule modules, which provides the first accumulatively modified message as an input; characterized in that the first rule module has assigned to itself a privilege indicative of an authority to change a blocking flag related to a predetermined portion of the accumulatively modified message, the blocking flag specifying whether the predetermined portion of the accumulatively modified message passes through Services can be modified, which are called by at least the second rule module. Verfahren nach Anspruch 1, gekennzeichnet dadurch, dass jedes Regelmodul mit sich eine Priorität verbunden hat, die eine Reihenfolge einer Verarbeitung der Zahl von Regelmodulen anzeigt.Method according to claim 1, characterized in that that each rule module has a priority associated with it, which is an order indicating processing of the number of rule modules. Verfahren nach Anspruch 1 oder 2, gekennzeichnet dadurch, dass jedes Regelmodul einem Regelmodulbesitzer (409) entspricht, der autorisiert ist, das Regelmodul zu editieren.Method according to Claim 1 or 2, characterized in that each rule module is assigned to a rule module owner ( 409 ), which is authorized to edit the rule module. Verfahren nach einem beliebigen von Ansprüchen 1 bis 3, gekennzeichnet dadurch, dass der Schritt zum Aufrufen einer Verarbeitung des zweiten Regelmoduls ferner den Schritt zum Setzen des Sperrflags umfasst, um eine Modifikation des vorbestimmten Teils der akkumulativ modifizierten Nachricht durch Dienste zu verhindern, die von dem zweiten Regelmodul aufgerufen werden, es sei denn, das Sperrflag wurde durch das erste Regelmodul als nicht gesetzt markiert.Method according to any one of claims 1 to 3, characterized in that the step of invoking a processing the second control module further comprises the step of setting the inhibit flag includes a modification of the predetermined part of the accumulative to prevent modified message by services provided by the second rule module are called, unless the lock flag was marked as not set by the first rule module. Verfahren nach einem beliebigen von Ansprüchen 1 bis 4, gekennzeichnet dadurch, dass der Schritt zum Erhalten ei ner Zahl von Ausführungsregeln ferner den Schritt zum Erfassen einer vorbestimmten vertraglichen Beziehung basierend auf Headerinformation der Nachricht; und Auswählen einer Zahl von Regelmodulen basierend auf der erfassten vertraglichen Beziehung umfasst.Method according to any one of claims 1 to 4, characterized in that the step of obtaining a number of execution rules and the step of detecting a predetermined contractual one Relationship based on header information of the message; and selecting one Number of rule modules based on the contracted Relationship includes. Verfahren nach einem beliebigen von Ansprüchen 1 bis 5, gekennzeichnet dadurch, dass der Schritt zum Verarbeitung des ersten Regelmoduls (1216) ferner den Schritt zum Aufrufen eines vorbestimmten dritten Regelmoduls (1220) umfasst.Method according to any one of claims 1 to 5, characterized in that the step of processing the first control module ( 1216 ) further comprises the step of calling a predetermined third control module ( 1220 ). Verfahren nach einem beliebigen der Ansprüche 1 bis 6, gekennzeichnet dadurch, dass die ersten und zweiten Regelmodule auf jeweilige erste und zweite Zugriffssteuerlisten (411) bezogen sind, die Zugriffsrechte auf das entsprechende erste oder zweite Regelmodul spezifizieren.Method according to any one of claims 1 to 6, characterized in that the first and second control modules are based on respective first and second access control lists ( 411 ), specify the access rights to the corresponding first or second rule module. Verfahren nach einem beliebigen der Ansprüche 1 bis 7, gekennzeichnet dadurch, dass die ersten und zweiten Regelmodule jeweilige erste und zweite Skripte in einer vorbestimmten Auszeichnungssprache umfassen.Method according to any one of claims 1 to 7, characterized in that the first and second control modules respective first and second scripts in a predetermined markup language include. Verfahren nach einem beliebigen von Ansprüchen 1 bis 8, gekennzeichnet dadurch, dass die Nachricht eine erste und eine zweite Menge von Attributen umfasst; die Ausführungsregeln in mindestens eine erste und eine zweite Verarbeitungsklasse (903, 904) von Ausführungsregeln gemäß entsprechenden Beschränkungen gruppiert sind, wobei die zweite Verarbeitungsklasse eingeschränkt ist, nur Attribute der zweiten Menge von Attributen zu modifizieren; und das Verfahren ferner den Schritt zum Wiederholen der Schritte einer Verarbeitung des ersten Regelmoduls (901) und Aufrufen einer Verarbeitung des zweiten Regelmoduls (902) umfasst, wobei in jeder Wiederholung die Verarbei tung der ersten und zweiten Regelmodule auf Ausführungsregeln einer entsprechenden Verarbeitungsklasse begrenzt ist, und wobei jede Wiederholung zu einer entsprechenden akkumulativ modifizierten Nachricht führt, die als eine Eingabe für eine nachfolgende Wiederholung verwendet wird.Method according to any one of claims 1 to 8, characterized in that the message a first and a second set of attributes; the execution rules into at least a first and a second processing class ( 903 . 904 ) are grouped by execution rules according to respective constraints, the second processing class being constrained to modify only attributes of the second set of attributes; and the method further comprises the step of repeating the steps of processing the first control module ( 901 ) and call processing of the second rule module ( 902 In each repetition, the processing of the first and second rule modules is limited to execution rules of a corresponding processing class, and each repetition results in a corresponding accumulatively modified message used as an input for a subsequent repetition. Verfahren nach Anspruch 9, gekennzeichnet dadurch, dass die Verarbeitungsklassen getrennt für Ausführungsregeln definiert sind, die durch Anfragen (607) und Antworten (608) des Sitzungsprotokolls getriggert werden.Method according to Claim 9, characterized in that the processing classes are defined separately for execution rules which are determined by queries ( 607 ) and answers ( 608 ) of the session log. Verfahren nach Anspruch 9 oder 10, gekennzeichnet dadurch, dass die ersten Menge von Attributen Signalisierungseigenschaften der Nachricht umfasst.A method according to claim 9 or 10, characterized in that the first set of attributes signaling properties includes the message. Verfahren nach einem beliebigen der Ansprüche 9 bis 11, gekennzeichnet dadurch, dass die Verarbeitungsklassen vorbestimmten Standorten in einem Rundlaufnachrichtenfluss gemäß dem Sitzungsprotokoll entsprechen.A method according to any one of claims 9 to 11, characterized in that the processing classes predetermined Locations in a round trip message flow according to the session log. Verfahren nach einem beliebigen der Ansprüche 9 bis 12, gekennzeichnet dadurch, dass die Verarbeitungsklassen eine erste Verarbeitungsklasse (P1) von Ausführungsregeln, die Signalisierungseigenschaften (702) der Nachricht beeinflussen, eine zweite Verarbeitungsklasse von Ausführungsregeln (P2), die einen Nicht-Signalisierungsnachrichtenrumpfinhalt (704) der Nachricht beeinflussen, und eine dritte Verarbeitungsklasse (P3) von Ausführungsregeln, die weder die Signalisierungseigenschaften noch den Nicht-Signalisierungsnachrichtenrumpfinhalt der Nachricht beeinflussen, inkludieren.Method according to any one of claims 9 to 12, characterized in that the processing classes comprise a first processing class (P1) of execution rules, the signaling properties ( 702 ) of the message, a second processing class of execution rules (P2) containing a non-signaling message body content ( 704 ) of the message, and include a third processing class (P3) of execution rules that affect neither the signaling properties nor the non-signaling message body content of the message. Verfahren nach Anspruch 13, gekennzeichnet dadurch, dass eine resultierende modifizierte Nachricht (703) generiert wird, wenn alle Ausführungsregeln der ersten und zweiten Verarbeitungsklassen verarbeitet sind.Method according to claim 13, characterized in that a resulting modified message ( 703 ) is generated when all execution rules of the first and second processing classes are processed. Verfahren nach einem beliebigen der Ansprüche 1 bis 14, gekennzeichnet dadurch, dass Aufrufen des ersten Dienstes ferner zu einer zweiten modifizierten Nachricht führt; und das Verfahren ferner die Schritte zum Verarbeiten nachfolgender Ausführungsregeln mit der ersten modifizierten Nachricht als eine Eingabe; und Verarbeiten nachfolgender Ausführungsregeln mit der zweiten modifizierten Nachricht als eine Eingabe umfasst.Method according to any one of claims 1 to 14, characterized in that calling the first service further leads to a second modified message; and the method further the steps for processing subsequent execution rules with the first modified message as an input; and processing subsequent execution rules with the second modified message as an input. Verfahren nach einem beliebigen der Ansprüche 1 bis 15, gekennzeichnet dadurch, dass das Verfahren ferner die Schritte umfasst Speichern von Information darüber, welche Dienste ausgeführt werden, und Information darüber, in welcher Reihenfolge die Dienste ausgeführt werden; Empfangen von dem ersten Dienst einer Anfrage zum Rückgeben einer Benachrichtigung zu dem ersten Dienst, falls ein vorbestimmtes Ereignis eintritt; Speichern der Anfrage in Bezug auf die gespeicherte Information; und bei Eintreten des Ereignisses Benachrichtigen des ersten Dienstes gemäß der gespeicherten Information.Method according to any one of claims 1 to 15, characterized in that the method further comprises the steps includes Storing information about which services are running and information about it, in what order the services are executed; Receive from the first service of a request to return a notification to the first service if a predetermined event occurs; to save the request relating to the stored information; and at Occurrence of the event Notify the first service according to the stored Information. Verfahren nach einem beliebigen der Ansprüche 1 bis 16, gekennzeichnet dadurch, dass die Ausführungsmodule computerlesbare Skripte umfassen, und die vorbestimmte Reihenfolge einer Verarbeitung der Ausführungsregeln durch die Reihenfolge von Ausführungsregeln in den Skripten bestimmt wird.Method according to any one of claims 1 to 16, characterized in that the execution modules are computer readable Scripts, and the predetermined order of processing the execution rules by the order of execution rules determined in the scripts. Verfahren nach einem beliebigen der Ansprüche 1 bis 17, gekennzeichnet dadurch, dass sich die Sitzung auf eine Zahl von Teilnehmern bezieht, inkludierend einen Anrufer und einen Angerufenen; ein Dienst angepasst ist, durch eine Anfrage von einem Teilnehmer getriggert zu werden; und das Verfahren ferner den Schritt zum Aufrufen von Diensten umfasst, die durch den Anrufer angefordert werden, vor Aufrufen eines beliebigen Dienstes, der durch den Angerufenen angefordert wird.Method according to any one of claims 1 to 17, characterized in that the session on a number subscribers, including a caller and a called party; a service is adapted by a request from a subscriber to be triggered; and the method further comprises the step of calling includes services requested by the caller, before calling any service by the called party is requested. Verfahren nach einem beliebigen der Ansprüche 1 bis 18, gekennzeichnet dadurch, dass das Sitzungsprotokoll ein Sitzungsinitiierungsprotokoll ist.Method according to any one of claims 1 to 18, characterized in that the session log is a session initiation protocol is. Verfahren nach einem beliebigen der Ansprüche 1 bis 19, gekennzeichnet dadurch, dass die Kommunikationssitzung eine Multimediasitzung ist.Method according to any one of claims 1 to 19, characterized in that the communication session a Multimedia session is. Verfahren nach einem beliebigen der Ansprüche 1 bis 20, gekennzeichnet dadurch, dass die Ausführungsregeln angepasst sind, dynamisch aktualisiert zu werden.Method according to any one of claims 1 to 20, characterized in that the execution rules are adapted, to be dynamically updated. Datenverarbeitungssystem, umfassend ein Dienstausführungsumgebungsmodul (201; 301), angepasst, eine Vielzahl von Diensten (309, 310, 311) aufzurufen, die durch eine Nachricht eines Sitzungsprotokolls getriggert werden, das eine Kommunikationssitzung steuert; wobei das Datenverarbeitungssystem ferner ein Speichermedium (307) umfasst, das angepasst ist, eine Vielzahl von Regelmodulen zu speichern, von denen jedes eine Zahl von Ausführungsregeln umfasst, wobei jede Ausführungsregel eine Bedingung zum Aufrufen eines Dienstes spezifiziert; und das Dienstausführungsumgebungsmodul ein Regelantriebsmodul (303) umfasst, das angepasst ist – eine Zahl von Regelmodulen abzufragen; – ein erstes der Zahl von Regelmodulen zu verarbeiten, die Verarbeitung umfassend Verarbeitung mindestens eines Teils der Ausführungsregeln des ersten Regelmoduls in einer vorbestimmten Reihenfolge, einer ersten Ausführungsregel, die bewirkt, dass ein erster Dienst aufzurufen ist, falls die Nachricht eine erste Bedingung erfüllt, was zu einer ersten modifizierten Nachricht führt; und einer zweiten Ausführungsregel, die bewirkt, dass ein zweiter Dienst mit der ersten modifizierten Nachricht als eine Eingabe aufzurufen ist, falls die erste modifizierte Nachricht eine zweite Bedingung erfüllt; wobei die Verarbeitung des ersten Regelmoduls zu einer ersten akkumulativ modifizierten Nachricht führt; und – eine Verarbeitung eines zweiten (1217) der Zahl von Regelmodulen aufzurufen, die die erste akkumulativ modifizierte Nachricht als eine Eingabe vorsieht; gekennzeichnet dadurch, dass das erste Regelmodul zu sich ein Privileg zugewiesen hat, das eine Autorität anzeigt, ein Sperrflag zu ändern, das sich auf einen vorbestimmten Teil der akkumulativ modifizierten Nachricht bezieht, wobei das Sperrflag spezifiziert, ob der vorbestimmte Teil der akkumulativ modifizierten Nachricht durch Dienste modifiziert werden kann, die von mindestens dem zweiten Regelmodul aufgerufen werden.A data processing system comprising a service execution environment module ( 201 ; 301 ), adapted to a variety of services ( 309 . 310 . 311 ), which are triggered by a message of a session log that controls a communication session; the data processing system further comprising a storage medium ( 307 ) adapted to store a plurality of rule modules, each of which comprises a number of execution rules, each execution rule specifying a condition for invoking a service; and the service execution environment module has a rule engine module ( 303 ) adapted to - interrogate a number of rule modules; - processing a first of the number of rule modules, the processing comprising processing at least a portion of the execution rules of the first rule module in a predetermined order, a first execution rule causing a first service to be invoked if the message satisfies a first condition leads to a first modified message; and a second execution rule that causes a second service to be invoked with the first modified message as an input if the first modified message satisfies a second condition; wherein the processing of the first rule module results in a first accumulatively modified message; and - a processing of a second ( 1217 ) invoking the number of rule modules providing the first accumulatively modified message as an input; characterized in that the first rule module has assigned to itself a privilege indicative of an authority to change a blocking flag related to a predetermined portion of the accumulatively modified message, the blocking flag specifying whether the predetermined portion of the accumulatively modified message passes through Services can be modified, which are called by at least the second rule module. Datenverarbeitungssystem nach Anspruch 22, gekennzeichnet dadurch, dass das Regelantriebsmodul angepasst ist, eine vorbestimmte Regelausführungsspezifikationssprache zu interpretieren.Data processing system according to claim 22, characterized in that the control drive module is adapted to a predetermined one Standard design specification language to interpret. Datenverarbeitungssystem nach Anspruch 22 oder 23, gekennzeichnet dadurch, dass das Regelantriebsmodul ferner ein Regelbasisprozessormodul (1601), angepasst, die Ausführungsregeln abzufragen; und ein Regelmodulverarbeitungsmodul (314; 1604, 1605), angepasst, die Ausführungsregeln zu verarbeiten, umfasst.Data processing system according to claim 22 or 23, characterized in that the rule drive module further comprises a rule base processor module ( 1601 ), adapted to query the execution rules; and a rule module processing module ( 314 ; 1604 . 1605 ), adapted to process the execution rules. Softwareprogramm, umfassend Codemittel, angepasst, wenn in einem Datenverarbeitungssystem ausgeführt, die Schritte des Verfahrens von einem beliebigen der Ansprüche 1 bis 21 durchzuführen.Software program comprising code means, adapted, when executed in a data processing system, the steps of the procedure from any of the claims 1 to 21. Softwareprogramm nach Anspruch 25, gekennzeichnet dadurch, dass das Softwareprogramm auf einem computerlesbaren Medium verkörpert ist.Software program according to claim 25 in that the software program is on a computer readable medium personified is. Datensatz, umfassend ein Regelmodul zur Verwendung in einem Verfahren von einem beliebigen der Ansprüche 1 bis 21.A record comprising a rule module for use in a method of any one of claims 1 to 21st
DE60108725T 2001-05-07 2001-11-22 Architecture for triggering the services Expired - Lifetime DE60108725T2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DK200100707 2001-05-07
DKPA200100707 2001-05-07

Publications (2)

Publication Number Publication Date
DE60108725D1 DE60108725D1 (en) 2005-03-10
DE60108725T2 true DE60108725T2 (en) 2006-04-13

Family

ID=8160475

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60108725T Expired - Lifetime DE60108725T2 (en) 2001-05-07 2001-11-22 Architecture for triggering the services

Country Status (4)

Country Link
EP (1) EP1257129B1 (en)
AT (1) ATE288658T1 (en)
DE (1) DE60108725T2 (en)
ES (1) ES2233590T3 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20012406A (en) * 2001-12-05 2003-06-06 Comptel Corp A method and arrangement for processing a transaction in mobile telecommunications
DE102004030290A1 (en) * 2004-06-23 2006-01-19 Siemens Ag Establishing a connection for the exchange of data of an IP-based service
JP4830503B2 (en) * 2006-01-18 2011-12-07 株式会社日立製作所 Communication session establishment mediating system and method protecting personal information
EP1860844A3 (en) * 2006-05-26 2007-12-05 Vodafone Group PLC A process for transforming and managing messages from SIP signalling into an event-managed asynchronous system
EP2316193A1 (en) 2008-07-02 2011-05-04 Telefonaktiebolaget L M Ericsson (PUBL) Service enablement/disablement based on service relationships
EP2517439B1 (en) * 2009-12-22 2017-03-08 Telefonaktiebolaget LM Ericsson (publ) Method for coordinating the provision of a composite service
CN110297675A (en) * 2019-04-23 2019-10-01 五八有限公司 Method, apparatus, electronic equipment and the storage medium that intermodule mutually calls
CN110083342B (en) * 2019-04-26 2023-04-18 重庆紫光华山智安科技有限公司 Program generation method and device and computer readable storage medium

Also Published As

Publication number Publication date
EP1257129A1 (en) 2002-11-13
ATE288658T1 (en) 2005-02-15
ES2233590T3 (en) 2005-06-16
EP1257129B1 (en) 2005-02-02
DE60108725D1 (en) 2005-03-10

Similar Documents

Publication Publication Date Title
US20030187992A1 (en) Service triggering framework
DE69921455T2 (en) SYSTEM AND METHOD FOR ACCESS CONTROL TO STORED DOCUMENTS
DE69818008T2 (en) DATA ACCESS CONTROL
DE60013227T2 (en) Communication Service Offer
DE60031788T2 (en) SYSTEM FOR PROVISION OF SERVICES
DE60133648T2 (en) SYSTEM AND METHOD FOR LEADING RUNTIME DATA IN A SERVER NETWORK
DE69929340T2 (en) PROCESS AND SYSTEM FOR INTELLIGENT, DISTRIBUTED NETWORK ARCHITECTURE
DE69910816T2 (en) METHOD AND DEVICE FOR PROVIDING REAL-TIME CALL HANDLING SERVICES IN AN INTELLIGENT NETWORK
DE60018446T2 (en) ARCHITECTURE FOR DESCRIPTIVE DESIGN AND MANAGEMENT
DE69738309T2 (en) DISTRIBUTED PROCESSING
DE60020518T2 (en) Administration of user profiles
DE19882235B4 (en) Use of web technology for subscriber management activities
DE69835158T2 (en) ACCESS POINT FOR SERVICE MANAGEMENT
DE102011016864A1 (en) ANWENDUINGSLADEN
DE112011102129T5 (en) Security model for operations that merge secure third-party services
DE10295699T5 (en) An arrangement and method related to session management in a portal structure
DE10311074A1 (en) Methods and arrangements in a telecommunications network
DE60035348T2 (en) Extendable provisioning mechanism for a service gateway
DE60108725T2 (en) Architecture for triggering the services
DE10238546A1 (en) Process for the provision of resources in communication networks
DE10314597A1 (en) Service providing system for public switched telephone network, includes data records in which service information is stored, for facilitating centralized provision of service in service network
EP1010052B1 (en) Method for controlling distribution and use of software products with network-connected computers
DE60004216T2 (en) CONNECTION IDENTIFIER
JP3982691B2 (en) Service triggering framework
DE10295700T5 (en) An arrangement and method related to end user station access to a portal

Legal Events

Date Code Title Description
8364 No opposition during term of opposition