JP3982691B2 - Service triggering framework - Google Patents

Service triggering framework Download PDF

Info

Publication number
JP3982691B2
JP3982691B2 JP2002588089A JP2002588089A JP3982691B2 JP 3982691 B2 JP3982691 B2 JP 3982691B2 JP 2002588089 A JP2002588089 A JP 2002588089A JP 2002588089 A JP2002588089 A JP 2002588089A JP 3982691 B2 JP3982691 B2 JP 3982691B2
Authority
JP
Japan
Prior art keywords
rule
service
module
message
execution
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
JP2002588089A
Other languages
Japanese (ja)
Other versions
JP2004532472A (en
Inventor
リコ, ヴェルニ ステンフェルドト,
ヘンリー, ジェラルド スミス,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP01610120A external-priority patent/EP1257129B1/en
Application filed by テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2004532472A publication Critical patent/JP2004532472A/en
Application granted granted Critical
Publication of JP3982691B2 publication Critical patent/JP3982691B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • 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/0041Provisions for intelligent networking involving techniques for avoiding interaction of call service features
    • 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/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5083Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to web hosting
    • 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/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Telephonic Communication Services (AREA)

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.

Description

本発明は、通信セッションに関する複数のサービスの管理に関するものであり、この通信セッションは、その通信セッションに関するセッション情報を提供するセッションプロトコルによって制御される。   The present invention relates to management of a plurality of services related to a communication session, and the communication session is controlled by a session protocol that provides session information related to the communication session.

IPテレフォニー(telephony)、マルチメディアセッション、ビデオストリーミング等のインターネットを介するインタラクティブ通信セッションの要求が増大している。インタラクティブ通信セッションは、セッションプロトコルによって制御され、これには、ユーザ間のセッションの初期化、終了及び変更を処理するセッション初期化プロトコル(SIP)がある。SIPは、初期形対象のセッションのタイプには関知しない、つまり、SIPメッセージの実体には関知しないで、むしろ、セッションの管理に関知するものである。これは、例えば、接続対象のユーザが実際に存在する場所の判定、来訪するユーザのセッションの記述の配信、セッションを記述するための共通フォーマットのネゴシエーション等がある。   There is an increasing demand for interactive communication sessions over the Internet, such as IP telephony, multimedia sessions, and video streaming. An interactive communication session is controlled by a session protocol, which includes a Session Initialization Protocol (SIP) that handles session initialization, termination, and modification between users. SIP does not care about the type of session that is the subject of the initial form, that is, it does not care about the substance of the SIP message, but rather about the management of the session. This includes, for example, determination of the location where the connection target user actually exists, distribution of the description of the visiting user's session, negotiation of a common format for describing the session, and the like.

SIPは、要求(リクエスト)−応答パラダイムに基づいている。例えば、セッションを初期化する場合、発信側は、その発信側が発呼したいユーザ、即ち、着信側(callee)に向けてリクエストを送信する。リクエストメッセージは、典型的には、メッセージを転送し配信するために応答可能ないくつかのプロキシサーバを介して、着信側に送信される。次に、着信側は、着信(invitation)を受け入れるかあるいは拒否するかの応答を送信する。この応答は、プロキシサーバの並びの順路を逆順で辿って返信される。   SIP is based on a request-response paradigm. For example, when initializing a session, the caller sends a request to the user that the caller wants to call, ie, the callee (callee). The request message is typically sent to the called party through several proxy servers that can respond to forward and deliver the message. Next, the receiving side transmits a response indicating whether to accept or reject the incoming call (invitation). This response is returned by following the route of the proxy server in reverse order.

SIPのようなセッションプロトコルによって提供される標準的なセッション管理に加えて、追加のサービスを発信側、着信側、あるいはそれらの中間にある任意のプロキシサーバで実現することができる。   In addition to standard session management provided by a session protocol such as SIP, additional services can be implemented on the originating side, the terminating side, or any proxy server in between.

ここで、サービスという用語は、機能の単位を意味し、この機能は、基本システムに増分的に追加することでき、加入者、管理者あるいはその類のユーザによって知覚可能な出力形態である。尚、サービス、例えば、着信転送、ボイスメール、ビデオ会議等は、セッション管理用のシステム、例えば、SIPシステムのような基本システムへの拡張モジュールである。基本システムでの機能の追加及び有効化の処理は、フィーチャ配置と呼ばれている。   Here, the term service means a unit of function, which is an output form that can be incrementally added to the base system and perceived by a subscriber, administrator or the like. Services such as call forwarding, voice mail, video conferencing, etc. are modules that are extended to a system for session management, such as a basic system such as a SIP system. The process of adding and enabling functions in the basic system is called feature placement.

セッション中には、フィーチャは、あるイベントによって起動することができる。起動、即ち、あるイベントで与えられているアプリケーションを呼び出す動作は、通常、加入者とサービスプロバイダ間の契約関係に基づいている。1つ以上のフィーチャがサービスネットワークに配置され、かつ1つ以上のサービスが1人以上のユーザに対して同時に起動できる場合、フィーチャ相互作用(feature interaction)が生じる。ここで、フィーチャ相互作用という用語は、あるフィーチャが別のフィーチャに影響を与えるあるいは別のフィーチャに変化することを意味する。フィーチャ相互作用は、モジュールフィーチャの必然的な副産物である。これには、好ましいフィーチャ相互作用と好ましくないフィーチャ相互作用が存在する。しかしながら、フィーチャ相互作用が適切に管理されない場合にはサービスネットワークの全体の行動(behaviour)が制御不能となる問題がある。その結果、サービスネットワークの能力に相当な要求を求めるUMTSのような新技術の出現とともに、サービスアプリケーションの数と複雑さが増えるにつれて、フィーチャ相互作用の問題も大きくなっている。これらのサービスは、別々に開発され、かつサービスプロバイダは、使用される通信プロトコルのデフォルト行動のアクションを解決し、かつ成立すべき、これらのサービスからの命令がどのように衝突しているかを特定できる必要がある。   During a session, features can be triggered by certain events. The activation, i.e. the action of calling an application given at an event, is usually based on a contractual relationship between the subscriber and the service provider. Feature interaction occurs when one or more features are located in a service network and one or more services can be activated simultaneously for one or more users. Here, the term feature interaction means that one feature affects or changes to another feature. Feature interaction is an inevitable byproduct of module features. There are preferred feature interactions and undesirable feature interactions. However, if feature interactions are not managed properly, there is a problem that the overall behavior of the service network becomes uncontrollable. As a result, with the emergence of new technologies such as UMTS that demand substantial demands on service network capabilities, the problem of feature interaction has also grown as the number and complexity of service applications has increased. These services are developed separately, and the service provider resolves the default behavior actions of the communication protocol used and identifies how the instructions from these services should conflict It needs to be possible.

サービスネットワークに新規のサービスを追加する場合、例えば、フィーチャの組をテストすることによって、フィーチャ相互作用を防止するために、複数の機能の行動が、アドホックあるいはシステマチックにテストすることができる。フィーチャ相互作用のインスタンスがテスト中あるいは配置後に検出される場合、検出される問題は、例えば、1つ以上の組込サービスアプリケーションを再設計することによって抑えることができる。   When adding a new service to a service network, the behavior of multiple functions can be tested ad hoc or systematically, for example, to prevent feature interaction by testing a set of features. If instances of feature interaction are detected during testing or after deployment, the detected problem can be mitigated, for example, by redesigning one or more embedded service applications.

上述の方法は、特に、サービスの数と複雑さが増えるにつれて、大量のリソースを必要とする。ここで、上述の従来技術は、サービスアプリケーションの数と複雑さを十分に量れないという問題がある。   The method described above requires a large amount of resources, especially as the number and complexity of services increases. Here, the above-described conventional technology has a problem that the number and complexity of service applications cannot be sufficiently measured.

本発明に従えば、通信セッションを制御するセッションプロトコルのメッセージによって起動される複数のサービスを管理する方法によって、上記及びその他の問題が解決され、 この方法は、
サービスを呼び出すための状態をそれぞれが特定するいくつかの実行ルールを取得する工程と、
前記メッセージが第1状態を満足する場合、呼出対象の第1サービスを生成して、第1変更メッセージを出力する第1実行ルールと、第1変更メッセージが第2状態を満足する場合、第1変更メッセージを入力として、呼出対象の第2サービスを生成する第2実行ルールとを所定の順序で処理する工程と
を備える。
According to the present invention, the above and other problems are solved by a method for managing a plurality of services activated by a message of a session protocol for controlling a communication session.
Obtaining a number of execution rules each identifying a state for invoking a service;
When the message satisfies the first state, a first execution rule for generating the first service to be called and outputting the first change message, and when the first change message satisfies the second state, Processing the second execution rule for generating the second service to be called in a predetermined order using the change message as an input.

つまり、通信セッション中に起動されるサービスの呼出は、所定の順序で処理されるいくつかの実行ルールによって制御され、これによって、呼出対象のサービスの順序を制御する。それゆえ、実行順序が制御されていないことによる任意のすべての行動を回避するる、サービス実行ルールに基づくアプリケーションを起動するメカニズムが提供される。また、実行ルールを編集することによって、様々な配置ストラテジーを容易に実現することができ、これによって、柔軟で、より細かく分けられた(fine-grained)サービス配置インフラストラクチャを提供する、これは、サービスネットワークのパフォーマンスを最適化することを可能にするサービスのチェーンの順序付けにおいて大きな柔軟性を与える。   That is, a service call activated during a communication session is controlled by several execution rules processed in a predetermined order, thereby controlling the order of services to be called. Therefore, a mechanism is provided for launching applications based on service execution rules that avoids any and all behavior due to uncontrolled execution order. Also, by editing the execution rules, various deployment strategies can be easily implemented, thereby providing a flexible, fine-grained service deployment infrastructure, Provides great flexibility in ordering service chains that allow service network performance to be optimized.

ここで、本発明に従えば、かなりの量の複雑なサービスを実行する場合、例えば、サービスネットワーク内のサービスの追加、削除、中断、再起動あるいは再配置を行う場合のフィーチャ相互作用を系統立て回避することを可能にする、柔軟なサービス配置インフラストラクチャが提供される。   Here, according to the present invention, feature interactions are organized when performing a significant amount of complex services, such as adding, deleting, interrupting, restarting, or relocating services in a service network. A flexible service deployment infrastructure is provided that can be avoided.

個々の保管人間のサービス管理問題を分散することを可能にする、サービス実行を定義する標準化フレームワークが提供され、これによって、いくつかのサービスをスケーラブルにする方法を提供する。   A standardization framework for defining service execution is provided that allows for the distribution of individual custodian service management issues, thereby providing a way to make several services scalable.

実行ルールは、1つ以上のアクションを実行する、例えば、サービスアプリケーションを呼び出すための1つの以上の状態を含んでいる。   An execution rule includes one or more states for executing one or more actions, for example, calling a service application.

通信セッションという用語は、通信ネットワークのユーザ間の通信セッションを意味する、ここで、通信ネットワークは、例えば、TCP/IPネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、インターネットの類である。通信セッションの例には、ボイスオーバインターネット、IPテレフォニー、ビデオ会議、ビデオストリーミング等が含まれる。   The term communication session refers to a communication session between users of a communication network, where the communication network is, for example, a TCP / IP network, a local area network, a wide area network, or the Internet. Examples of communication sessions include voice over internet, IP telephony, video conferencing, video streaming, and the like.

セッションプロトコルという用語は、通信セッションを制御するプロトコル、特に、セッションの初期化、終了及び変更を意味する。好ましくは、セッションプロトコルは、通信セッションの関係ユーザ間の通信ネットワークのノードを介して送信されるリクエスト/応答メッセージに基づいている。このようなセッションプロトコルの例には、セッション初期化プロトコル(SIP)がある。他の例には、H.323プロトコル一式、MGCP及びIPDCのような関連プロトコル、SGCP、H.248等が含まれる。   The term session protocol means a protocol for controlling a communication session, in particular session initialization, termination and modification. Preferably, the session protocol is based on request / response messages sent via the nodes of the communication network between the related users of the communication session. An example of such a session protocol is the session initialization protocol (SIP). Other examples include H.C. H.323 protocol suite, related protocols such as MGCP and IPDC, SGCP, H.323 248 etc. are included.

サービスという用語は、基本システムに増分的に追加されるフィーチャの単位である。サービスは、加入者へサービスを提供するばかりでなく、ネットワーク管理者の管理業務のような他のサービスも提供することができる。このようなサービスの例には、着信転送、着信待機、ボイスメール、統計機能、コールバック、ビデオ会議、ビデオオンデマンド、匿名(anonymizer)サービス、オートリプライ等が含まれる。サービスは、例えば、OSA、Java(登録商標)、CGI、Perl、C++、XML等の様々な技術を使用して実現することができる。 The term service is a unit of feature that is incrementally added to the base system. The service not only provides services to subscribers, but can also provide other services, such as network administrator management. Examples of such services include call forwarding, call waiting, voice mail, statistical functions, callbacks, video conferencing, video on demand, anonymizer services, auto-replies, etc. The service can be realized using various technologies such as OSA, Java (registered trademark) , CGI, Perl, C ++, and XML.

SIPプロトコルのコンテキストにおいては、サービスは、アプリケーションである、あるいはSIPサーバ上で論理的に実行されるあるいはSIPサーバによって通信されるアプリケーションサーバ上で遠隔的に実行されるいくつかのアプリケーション、例えば、CGI−スクリプトあるいはCPLスクリプトである。後者の場合、サービスは、いくつかの標準ネーミング技術、即ち、SIP Request−URI群を使用してアクセスし、呼び出すことができる。選択的には、サービスは、例えば、3GPP OSA APIフレームワークを使用してSIPサーバ上で自身を実際に登録することができる。SIPサービスは、発信及び着信サービスにグループ化することができる、即ち、これらは、発信側及び着信側に関連している。   In the context of the SIP protocol, a service is an application, or some application that is logically executed on a SIP server or executed remotely on an application server that is communicated by a SIP server, for example CGI. -Script or CPL script. In the latter case, the service can be accessed and invoked using several standard naming techniques, namely SIP Request-URIs. Optionally, the service can actually register itself on the SIP server using, for example, the 3GPP OSA API framework. SIP services can be grouped into originating and terminating services, i.e. they are related to the originating and terminating sides.

サービスは、メッセージヘッダ、メッセージ本体、SPPあるいはその類の状態において、起動することができる。   A service can be activated in a message header, message body, SPP or the like.

サービスアプリケーションに提供されるSIPサーバの機能は、例えば、いくつかのAPI、例えば、サーバ側OSA API、統計的機能あるいはその類へのアクセスのようなサービスフィーチャと呼ばれる。サービスフィーチャは、更に、SIPサーバで、他のサービスアプリケーションによって使用されるサービスを登録し、提供するサービスアプリケーションとなり得る。   The SIP server functionality provided to a service application is referred to as a service feature, such as access to some APIs, eg, server-side OSA API, statistical functions, or the like. The service feature can also be a service application that registers and provides services used by other service applications at the SIP server.

本発明の更なる効果は、サービスの実現、シグナリングプロトコル及びプラットホームに対して独立して使用される技術であることである。ここで、ネットワークオペレータは、どのタイプのサービスがサービスネットワーク内で配置されるかを前もって知る必要はなく、これによって、サービス配置インフラストラクチャの耐性及び拡張性を提供する。   A further advantage of the present invention is that it is a technology used independently for service realization, signaling protocols and platforms. Here, the network operator does not need to know in advance what type of service is deployed in the service network, thereby providing the resilience and scalability of the service deployment infrastructure.

自身が所有するサービスを登録することを望む保管人の数がかなり大きくなるにつれて、スケラービリティが必要となる。また、ドメインに関連する加入者の数がかなり多くなっているので、スケラービリティの問題が重要になっている。サービスは、様々なタイプのイベントによって起動され得り、かつ複数の様々な状態、例えば、ソースと宛先アドレスのマッチング、時間依存性あるいはいくつかの他の前提状態に基づいて読み出され得る。また、サービスに関連する非SIPが、例えば、与えられているポイントである状態が満足している場合に、呼び出され得る。様々なサービス技術、例えば、CPLを使用することができる。サービスに関連するSIPは、非SIPイベント、例えば、HTTPイベントで呼び出され得る。10万人の加入者に提供され得るサービスには、サードパーティサービスプロバイダの1万のサービスから1万のサービスが発生し得る。つまり、サービス及びサービス相互作用を管理するタスクは、管理を行う管理者に対して複雑でかつ大きすぎるタスクになり易い。   Scalability is needed as the number of custodians who want to register services they own increases considerably. Also, as the number of subscribers associated with the domain has increased considerably, scalability issues have become important. A service can be triggered by various types of events and can be retrieved based on a number of different states, such as source and destination address matching, time dependencies, or some other precondition. Also, the non-SIP associated with the service can be invoked, for example, when a condition that is a given point is satisfied. Various service technologies can be used, for example CPL. The SIP associated with the service can be invoked with a non-SIP event, eg, an HTTP event. Services that can be provided to 100,000 subscribers can generate 10,000 services from 10,000 services of a third party service provider. That is, the task for managing the service and the service interaction tends to be a complicated and too large task for the administrator who performs the management.

本発明の実施形態に従えば、上記のいくつかの実行ルールは、いくつかのルールモジュールにグループ化され、各ルールモジュールはいくつかの実行するを含み、更に、上記方法は、更に、以下の工程を有する。   According to an embodiment of the present invention, the above several execution rules are grouped into several rule modules, each rule module includes several executions, and the method further comprises: Process.

−第1累積変更メッセージを出力する前記いくつかのルールモジュールの内の第1ルールモジュールを処理する工程と、
前記第1累積変メッセージを入力として提供する前記いくつかのルールモジュールの内の第2ルールモジュールを呼出処理を行う工程とを備える。
Processing a first rule module of the several rule modules outputting a first cumulative change message;
Calling a second rule module of the several rule modules that provides the first cumulative variable message as an input.

つまり、実行ルールをルールモジュールにグループ化することによって、即ち、実行ルールのグループによって、フィーチャ相互作用の問題は、ルールモジュール間の同一ルールモジュールと相互作用内で呼び出されるフィーチャ間のフィーチャ相互作用の問題に分割される。その結果、本発明の効果は、サービスの数を量り、フィーチャ相互作用を管理する方法が提供されることである。特に、様々なサービスが様々なサービスプロバイダ、例えば、様々な企業あるい会社内の様々な組織体によって提供される場合、単一のプロバイダは、提供されるすべてのサービスをテストするためにアクセスする必要はない、あるいはテストすることができない。ここで、本発明の効果は、フィーチャ相互作用解析の解析タスクが、ルールモジュールに従って分割することができ、かつ様々なプロバイダに分散することができることである。これは、更に、サービス管理コストを、加入者及びサービスの数が増えるにつれて、独立のパーティに委託できることを含んでいる。   That is, by grouping execution rules into rule modules, i.e., with a group of execution rules, the feature interaction problem is the same rule module between rule modules and the feature interaction between features invoked within the interaction. Divided into problems. As a result, an advantage of the present invention is that it provides a method for measuring the number of services and managing feature interactions. In particular, when different services are provided by different service providers, eg, different companies or different organizations within a company, a single provider has access to test all the services provided. It is not necessary or cannot be tested. Here, the effect of the present invention is that the analysis task of the feature interaction analysis can be divided according to the rule module and distributed to various providers. This further includes the ability to delegate service management costs to independent parties as the number of subscribers and services increases.

SIPサーバ上のサービスをアップロード/登録、かつ管理することを要求することができる保管人は、所有者、SIPサーバのプロバイダあるいは管理者、ネットワークオペレータ等となり得る。これは、様々なタイプのリテーラー(retailers)、例えば、仮想テレコムオペレータ、インターネットサービスプロバイダ等にもなり得る。更に、これは、例えば、アプリケーションサービスプロバイダ、コンテンツサービスプロバイダ、サービス/フィーチャプロバイダのような様々なタイプのサービスプロバイダにもなり得る。また、民間組織、民間企業及び加入者は、保管人になり得る。   The custodian who can request upload / registration and management of services on the SIP server can be an owner, a provider or administrator of the SIP server, a network operator, or the like. This can also be various types of retailers, such as virtual telecom operators, Internet service providers, etc. In addition, it can also be various types of service providers such as, for example, application service providers, content service providers, service / feature providers. Private organizations, private companies and subscribers can also be custodians.

その結果、本発明に従えば、柔軟で、拡張可能で、かつスケーラブルな、保管人間の契約関係の管理が達成され、これには、課金、調停、ポリシー及びセキュリティの管理が含まれる。   As a result, in accordance with the present invention, flexible, scalable, and scalable custodian contractual relationship management is achieved, including billing, arbitration, policy and security management.

本発明の更なる効果は、実行ルールのモジュール構造を提供することであり、これによって、ユーザ、ユーザグループ、加入者等に対するサービスプロファイルの埋込を可能にする。更に、モジュール化の効果は、ルールモジュールの再使用を可能にして、これによって、サービス環境のメンテナンスを更に容易にする。   A further advantage of the present invention is to provide a modular structure of execution rules, thereby enabling embedding of service profiles for users, user groups, subscribers, etc. Furthermore, the modular effect allows the rule module to be reused, thereby further facilitating maintenance of the service environment.

ルールモジュールの数の処理の順序を示す優先度が各ルールモジュールに関連付けられている場合、ルールモジュールの実行順序は、単純なパラメータによって判定され、これによって、ルールモジュールの実行順序に対して容易でかつトランスペアレントな制御を提供する。   If a priority indicating the order of processing of the number of rule modules is associated with each rule module, the execution order of the rule modules is determined by simple parameters, which makes it easy for the execution order of the rule modules. And provides transparent control.

各ルールモジュールが、そのルールモジュールを編集することを認証されているルールモジュール所有者に対応する場合、ルールモジュールに対する管理権限が容易に確立され、これによって、ルールモジュールの編集、ルールモジュール内のフィーチャ相互作用解析等のような管理権限の委任を更に容易にする。   If each rule module corresponds to a rule module owner that is authorized to edit that rule module, administrative rights to the rule module are easily established, which enables editing of the rule module, features within the rule module. It further facilitates the delegation of management authority such as interaction analysis.

本発明の実施形態に従えば、第1ルールモジュールは、累積変更メッセージの所定部分に関連するロックフラグを変更する権限を示し、かつ累積変更メッセージの所定部分が少なくとも第2ルールモジュールから呼び出されるサービスによって変更されるかを特定する特権を割り当てる。その結果、次のサービスによるメッセージの個々の属性あるいは属性のグループの変更を明示的に可能にするあるいは防止するためのメカニズムが提供される。ここで、別のサービスによって、あるサービスのコンテキストの変更によるフィーチャ相互作用を防止するための有効なツールが提供される。このタイプのフィーチャ相互作用は、サービスの行動の多義性あるいは衝突を生じる可能性があるフィーチャ仮定の違反として参照される。ある属性のロック及びアンロックの少なくとも一方を行う権限が、ルールモジュールに割り当てられている所定の特権に関係しているので、ネットワークオペレータは特権の誤用を検出することができ、これによって、未認証行動を防止し、かつ本方法のセキュリティを向上する。特権違反は、例えば、サービスの通知及び無効化の少なくとも一方によって、動作中に検出して、解決することができる。   According to an embodiment of the present invention, the first rule module indicates an authority to change a lock flag associated with a predetermined part of the cumulative change message, and the predetermined part of the cumulative change message is called from at least the second rule module. Assign privileges that specify what will be changed by. As a result, a mechanism is provided to explicitly enable or prevent modification of individual attributes or groups of attributes of messages by subsequent services. Here, another service provides an effective tool for preventing feature interaction due to changes in the context of one service. This type of feature interaction is referred to as violating feature assumptions that can result in ambiguity or conflict in service behavior. Since the right to lock and unlock an attribute is related to a predetermined privilege assigned to the rule module, the network operator can detect privilege misuse and thereby unauthenticated Prevent actions and improve the security of the method. Privilege violations can be detected and resolved during operation, for example, by service notification and / or invalidation.

本発明の更なる実施形態に従えば、第2ルールモジュールの呼出処理を行う工程は、更に、ロックフラグが第1ルールモジュールによって設定解除(unset)がマークされない限り、第2ルールモジュールから呼び出されるサービスによる累積変更メッセージの所定部分の変更を防止するためにロックフラグを設定する工程を備える。その結果、デフォルトでは、メッセージ属性は、制御があるルールモジュールから別のルールモジュールへ移る場合に、次の変更に対してロックされている。ここで、第2ルールモジュールは、第1ルールモジュールがアンロックされていることを明示的にマークされていることを示すメッセージ属性のみを変更することができ、これによって、更に、ルールモジュール間の取り得るフィーチャ相互作用の制御を改善し、かつ特徴解析タスクを個々のルールモジュール内に制限する。この結果、更なるスケーラビリティを改善する。   According to a further embodiment of the present invention, the step of calling the second rule module is further called from the second rule module unless the lock flag is marked unset by the first rule module. A step of setting a lock flag to prevent a predetermined part of the cumulative change message from being changed by the service. As a result, by default, message attributes are locked against the next change when control moves from one rule module to another. Here, the second rule module can only change the message attribute that indicates that the first rule module is explicitly marked as unlocked, and this further Improve control of possible feature interactions and limit feature analysis tasks within individual rule modules. As a result, further scalability is improved.

いくつかの実行ルールを取得する工程が、更に、メッセージのヘッダ情報に基づいて所定の契約関係を検出し、検出された契約関係に基づいていくつかのルールモジュールを選択する工程を備える場合、オペレータに対するサポートをサードパーティサービス及びユーザ定義サービスの少なくとも一方に管理させることを可能にするモジュール及びスケーラブル方法が提供される。契約関係がヘッダ情報に基づいて検出されると、与えられているメッセージに対して関連しているこれらのサードパーティあるいはユーザ定義サービスは、検出された契約関係に基づいて識別することができる。   If the step of obtaining some execution rules further comprises the step of detecting a predetermined contract relationship based on the header information of the message and selecting a number of rule modules based on the detected contract relationship, A module and scalable method are provided that allow at least one of third party services and / or user defined services to manage support for. When a contract relationship is detected based on the header information, these third party or user-defined services associated with a given message can be identified based on the detected contract relationship.

本発明の別の実施形態に従えば、第1ルールモジュールを処理する工程は、更に、所定の第2ルールモジュールの呼出を行う工程を備える。その結果、ルールモジュールは、他のルールモジュールを呼び出すことができ、これによって、階層ルールモジュールを生成し、かつ更に、配置インフラストラクチャのスケーラビリティ及び柔軟性を改善するための強力なツールを提供する。本発明の効果は、ある所有者によって所有されるあるルールモジュールを別のパーティによって所有される別のルールモジュールへの委任を可能にすることである。あるパーティは、そのパーティによって適切とされる順序でアプリケーションを呼び出すことができ、かつ様々なアプリケーションを呼び出すことができる別のパーティへ制御を渡すことができる。第1パーティは、第2パーティからの出力をチェックするために続けて制御を回復することができる。   According to another embodiment of the present invention, the step of processing the first rule module further comprises a step of calling a predetermined second rule module. As a result, the rule module can call other rule modules, thereby creating a hierarchical rule module and further providing a powerful tool for improving the scalability and flexibility of the deployment infrastructure. An advantage of the present invention is that it allows delegation of one rule module owned by one owner to another rule module owned by another party. One party can call applications in the order that is appropriate by that party and can pass control to another party that can call various applications. The first party can subsequently regain control to check the output from the second party.

この委任が実行される場合、第1パーティは、アクションに対して上書きされないかを示すことによって、次のアプリケーションに送信されたメッセージ内のどのメッセージプロパティを変更できるかを決定することができる。   When this delegation is performed, the first party can determine which message properties in the message sent to the next application can be changed by indicating whether it is not overwritten for the action.

本発明の効果は、他のルールモジュール内からルールモジュールを起動して、メッセージプロパティをロックする機能に基づく管理権限の階層的委任を可能にすることである。   An advantage of the present invention is that it enables hierarchical delegation of administrative authority based on the ability to activate a rule module from within another rule module and lock message properties.

第1及び第2ルールモジュールがそれぞれ、第1あるいは第2ルールモジュールに対応するアクセス権を特定する第1及び第2アクセス制御リストに関連している場合、アクセス件の違反が検出されて解決される、これによって、本方法のセキュリティが更に向上する。   If the first and second rule modules are associated with first and second access control lists that specify access rights corresponding to the first or second rule module, respectively, an access violation is detected and resolved. This further improves the security of the method.

第1及び第2ルールモジュールがそれぞれ、所定マークアップ言語の第1及び第2スクリプトからなる場合、ルールモジュールを記述するための単純な言語が提供される。ここで、管理者にとっては、ルールをどのように表現し、かつそのルールの意味が何であるかを理解することは容易であり、これによって、ルール言語の基本定義を所有機能に拡張する簡単なメカニズムを提供する。このような言語定義の例には、XMLがある。   If the first and second rule modules are respectively composed of first and second scripts in a predetermined markup language, a simple language for describing the rule module is provided. Here, it is easy for an administrator to understand how a rule is expressed and what the meaning of the rule means, which makes it easy to extend the basic definition of the rule language to owning functions. Provide a mechanism. An example of such a language definition is XML.

本発明の更なる効果は、拡張可能なフレームワークを提供することである、即ち、例えば、SIPに新規な方法が追加される場合に、プロトコル、サービス技術及びメッセージプロパティを容易に追加することである。   A further advantage of the present invention is to provide an extensible framework, i.e. by easily adding protocols, service technologies and message properties, for example when new methods are added to SIP. is there.

本発明の更なる効果は、スケーラブルなフレームワークを提供することである、即ち、ルールを表現する同一の方法を、大規模のISPネットワーク及び小規模エンドユーザ端末、例えば、3Gセル電話において可能である。   A further advantage of the present invention is that it provides a scalable framework, i.e. the same way of expressing rules is possible in large ISP networks and small end user terminals, e.g. 3G cell phones. is there.

本発明の別の実施形態に従えば、メッセージは、第1及び第2の属性セットを有し、実行ルールは、対応する制約に従って、少なくとも第1及び第2処理クラスの実行ルールにグループ化され、ここで、第2処理クラスは、第2の属性セットの属性を変更することだけに制約されており、実行ルールを処理する工程は、更に、第2処理クラスの任意の実行ルールを処理する前に、第1処理クラスの実行ルールを処理する工程を備える。その結果、サービスは、シグナリングメッセージのどの部分が更新されるかによって、所定の行動を有するグループにグループ化される。ここで、サービスは、第1のメッセージ属性のセットが、第1処理クラスの実行後に変更されないことに依存しても良い。これは、更に、フィーチャ相互作用解析のタスクを管理可能なサブタスクに分割するメカニズムを提供する。以下では、処理クラスは、処理ポイントとしても参照する。属性のセットは、メッセージヘッダ情報及び、実際のセッションコンテンツを有するメッセージ本体からなる。属性は、更に、例えば、シグナリング属性等の様々なタイプのヘッダ情報に分割されても良い。   According to another embodiment of the invention, the message has first and second attribute sets, and the execution rules are grouped into execution rules of at least first and second processing classes according to corresponding constraints. Here, the second processing class is restricted only to changing the attribute of the second attribute set, and the step of processing the execution rule further processes an arbitrary execution rule of the second processing class. Before, it includes a step of processing the execution rule of the first processing class. As a result, services are grouped into groups with predetermined behavior depending on which part of the signaling message is updated. Here, the service may rely on the first set of message attributes not being changed after execution of the first processing class. This further provides a mechanism for dividing the feature interaction analysis task into manageable subtasks. In the following, processing classes are also referred to as processing points. The set of attributes consists of message header information and a message body with actual session content. The attributes may be further divided into various types of header information such as, for example, signaling attributes.

本発明の更なる効果は、どのようにしてアプリケーションが相互作用することが許可されるかを特定する手段を提供することである。   A further advantage of the present invention is that it provides a means for specifying how applications are allowed to interact.

好ましくは、処理クラスは、リクエスト及び応答に対する所定の順序で処理され、かつ発信、着信及び「着信転送(forwarded by)による」サービスに適用される。   Preferably, processing classes are processed in a predetermined order for requests and responses, and apply to outgoing, incoming and “forwarded by” services.

本発明の更なる実施形態に従えば、メッセージは、第1及び第2の属性セットを有し、実行ルールは、対応する制約に従って、少なくとも第1及び第2処理クラスの実行ルールにグループ化され、ここで、第2処理クラスは、第2の属性セットの属性を変更することだけに制約されており、本方法は、更に、第1ルールモジュールを処理する工程と、第2ルールモジュールの呼出処理を行う工程を繰り返す工程を備え、ここで、各繰り返し処理において、第1及び第2ルールモジュールの処理は、対応する処理クラスのルールを実行することに制限され、ここで、各繰り返し処理は、次の繰り返し処理に対する入力として使用される対応する累積変更メッセージを出力する。その結果、処理クラスの概念を有するルールモジュール上の分割の組み合わせが提供され、これによって、サービスに課せられている管理所有関係及び制約に従ってサービスを分割するより細かく分けられたフレームワークを提供する。   According to a further embodiment of the invention, the message has first and second attribute sets, and the execution rules are grouped into execution rules of at least first and second processing classes according to corresponding constraints. Here, the second processing class is limited only to changing the attributes of the second attribute set, and the method further includes processing the first rule module and calling the second rule module. A process for repeating the process, wherein in each iteration, the processing of the first and second rule modules is limited to executing the rules of the corresponding processing class, where each iteration is Output the corresponding cumulative change message used as input for the next iteration. As a result, a combination of divisions on the rule module having the concept of processing class is provided, thereby providing a more finely divided framework for dividing services according to the management ownership and constraints imposed on the service.

処理クラスが、セッションプロトコルのリクエスト及び応答によって起動される実行ルールに対して、別々に定義されている場合、サービスの処理クラスへの分割は、更に、メッセージのタイプに従って分割され、これによって、より細かく分けられた分割を提供する。   If processing classes are defined separately for execution rules triggered by session protocol requests and responses, the division of services into processing classes is further divided according to the type of message, thereby Provide finely divided divisions.

本実施形態に従えば、所定位置に対応する処理クラスは、セッションプロトコルに従う再起メッセージフローの所定位置に対応し、これによって、フィーチャ相互作用の解析を簡略化する。   According to this embodiment, the processing class corresponding to the predetermined location corresponds to the predetermined location of the restart message flow according to the session protocol, thereby simplifying the analysis of the feature interaction.

好ましくは、処理クラスは、メッセージのシグナリングプロパティを与える第1処理クラスの実行ルール、メッセージの非シグナリングメッセージ本体コンテンツを与える第2処理クラスの実行ルールと、メッセージのシグナリングプロパティも非シグナリングメッセージ本体コンテンツも与えない第3処理クラスの実行ルールを含んでいる。ここで、シグナリングプロパティという用語は、サービスを呼び出すためのルールモジュール状態に照合し得るSIP及びSDPメッセージプロパティを意味する。   Preferably, the processing class includes an execution rule of the first processing class that provides the signaling property of the message, an execution rule of the second processing class that provides the non-signaling message body content of the message, both the signaling property of the message and the non-signaling message body content. The execution rule of the 3rd processing class which is not given is included. Here, the term signaling property means SIP and SDP message properties that can be matched to the rule module state for invoking a service.

第1及び第2処理クラスのすべての実行ルールが処理される場合に、変更メッセージが生成される場合、本方法の効果は、第3処理クラスのサービスを待機する必要なく応答が返信されることで、向上する。   If a change message is generated when all execution rules of the first and second processing classes are processed, the effect of this method is that a response is returned without having to wait for the service of the third processing class. And improve.

本発明の別の実施形態に従えば、呼び出す第1サービスは、更に、第2変更メッセージを出力し、本方法は、更に、前記第1変更メッセージを入力として次の実行ルールを処理する工程と、第2変更メッセージを入力として次の実行ルールを処理する工程とを備える。ここで、サービスが、それぞれが次のサービスのチェーンへの入力となる様々な出力を返すと、サービスのカスケード化チェーンのツリーを実現することができる。   According to another embodiment of the present invention, the first service to call further outputs a second change message, and the method further includes processing the next execution rule with the first change message as input. And processing the next execution rule with the second change message as an input. Here, if the service returns various outputs, each of which is an input to the next chain of services, a tree of service cascaded chains can be realized.

本発明の更に別の実施形態に従えば、本方法は、
−どのサービスが実行されているかについての情報と、どの順序でサービスが実行されているかについての情報を記憶する工程と、
−所定のイベントが発生している場合、第1サービスへ通知を返信するリクエストを第1サービスから受信する工程と、
−記憶されている情報に関連するリクエストを記憶する工程と、
−イベントの発生において、記憶されている情報に従って第1サービスへ通知する工程とを備える。
According to yet another embodiment of the present invention, the method comprises:
Storing information about which services are being executed and in what order the services are being executed;
-Receiving a request from the first service for returning a notification to the first service if a predetermined event has occurred;
-Storing a request associated with the stored information;
A step of notifying the first service according to the stored information in the event occurrence.

ここで、サービスアプリケーションによるフィーチャイベントの通知を要求するための有効なメカニズムが提供され、これによって、アプリケーション等の監視が可能となる。   Here, an effective mechanism is provided for requesting notification of feature events by the service application, thereby enabling monitoring of the application or the like.

実行モジュールがコンピュータ可読スクリプトからなり、かつ実行ルールの所定の処理順序がスクリプト上の実行ルールの順序によって判定される場合、ルールモジュールの管理者によってフィーチャイベントに関するサービス実行の順所及び通知の順序を制御するための単純なメカニズムが提供される。   If the execution module consists of a computer-readable script and the predetermined processing order of the execution rules is determined by the order of the execution rules on the script, the rule module administrator determines the service execution order and the notification order for the feature event A simple mechanism for controlling is provided.

好ましくは、サービスのカスケード化順序は、ルールモジュール内の実行ルールの順序及びルールモジュールの順序によって判定される。   Preferably, the cascading order of services is determined by the order of execution rules within the rule module and the order of rule modules.

実行ルールが動的に更新されるように構成される場合、即ち、サービスネットワークの動作中は、リアルタイムサービス管理が提供される。   Real-time service management is provided when the execution rules are configured to be updated dynamically, i.e. during operation of the service network.

本発明は、更に、通信セッションを制御するセッションプロトコルのメッセージによって起動される複数のサービスを呼び出すように構成されているサービス実行環境モジュールを有するデータ処理システムに関連しており、ここで、
データ処理システムは、更に、サービスを呼び出す状態をそれぞれが特定する複数の実行ルールを記憶するように構成されている記憶媒体を有し、
サービス実行環境モジュールは、
−いくつかの実行ルールを検索し、
−メッセージが第1状態を満足する場合、呼出対象の第1サービスを生成して、第1変更メッセージを出力する第1実行ルールと、第1変更メッセージが第2状態を満足する場合、第1変更メッセージを入力として、呼出対象の第2サービスを生成する第2実行ルールとを所定の順序で処理する
ように構成されているルールエンジンモジュールを有する。
The present invention further relates to a data processing system having a service execution environment module configured to invoke a plurality of services invoked by a session protocol message that controls a communication session, wherein:
The data processing system further includes a storage medium configured to store a plurality of execution rules, each of which specifies a state invoking a service,
Service execution environment module
-Search for some execution rules,
A first execution rule for generating a first service to be called and outputting a first change message if the message satisfies the first state, and a first if the first change message satisfies the second state A rule engine module configured to process a change message as an input and a second execution rule for generating a second service to be called in a predetermined order.

本発明は、更に、データ処理システムにおいて、通信セッションを制御するセッションプロトコルのメッセージによって起動される複数のサービスを呼び出すように構成されているサービス実行環境モジュールに関連しており、ここで、
サービス実行環境モジュールは、
−サービスを呼び出す状態をそれぞれが特定するいくつかの実行ルールを検索し、
−前記メッセージが第1状態を満足する場合、呼出対象の第1サービスを生成して、第1変更メッセージを出力する第1実行ルールと、第1変更メッセージが第2状態を満足する場合、第1変更メッセージを入力として、呼出対象の第2サービスを生成する第2実行ルールとを所定の順序で処理する
ように構成されているルールエンジンモジュールを有する。
The present invention further relates to a service execution environment module configured to invoke a plurality of services activated by a session protocol message for controlling a communication session in a data processing system, wherein:
Service execution environment module
-Search for several execution rules, each of which identifies the state invoking the service,
A first execution rule for generating a first service to be called and outputting a first change message if the message satisfies the first state, and a first execution rule for outputting the first change message, if the first change message satisfies the second state, A rule engine module configured to process a second execution rule for generating a second service to be called in a predetermined order with one change message as an input.

本発明は、更に、データ処理システム上で実行される場合、上述及び後述の方法の各工程を実行するように構成されているコード手段を有するソフトウェアプログラムに関連している。   The invention further relates to a software program comprising code means adapted to carry out the steps of the method described above and below, when executed on a data processing system.

ソフトウェアプログラムは、コンピュータ可読媒体に埋め込むことができる。コンピュータ可読媒体という用語は、磁気テープ、光ディスク、デジタルビデオディスク(DVD)、コンパクトディスク(CDあるいはCD−ROM)、ミニディスク、ハードディスク、フロッピーディスク、強誘電体(ferro-electric)メモリ、電気的消去書換可能リードオンリメモリ(EEPROM)、フラッシュメモリ、EPROM、リードオンリメモリ(ROM)、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、同期動的ランダムアクセスメモリ(SDRAM)、強磁性メモリ、光記憶、電化結合素子、スマートカード、PCMCIAカード等を含んでいる。   The software program can be embedded in a computer readable medium. The term computer readable medium refers to magnetic tape, optical disk, digital video disk (DVD), compact disk (CD or CD-ROM), mini disk, hard disk, floppy disk, ferro-electric memory, electrical erasure. Rewritable read only memory (EEPROM), flash memory, EPROM, read only memory (ROM), static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), strong Includes magnetic memory, optical storage, electrified coupling elements, smart cards, PCMCIA cards, and the like.

本発明は、更に、サービスネットワーク内のサービスの配置を管理する方法に関するものであり、この方法は、
−コンピュータ可読スクリプト内において、動作中の前記サービスに認められているいくつかの特権及び権利を特定する工程と、
−フィーチャ相互作用の発生の可能性を解析する工程と、
−コンピュータ可読ルールモジュールスクリプトとして記憶されている実行ルールのセットとして前記サービスに対する配置ストラテジーを特定する工程とを備える。
The invention further relates to a method for managing the placement of services in a service network, which comprises:
-Identifying in a computer readable script some privileges and rights granted to the service in operation;
-Analyzing the possibility of occurrence of feature interactions;
Identifying a placement strategy for the service as a set of execution rules stored as a computer readable rule module script.

本発明は、更に、上述及び後述の方法で使用するためのルールモジュールからなるデータレコードに関するものである。   The invention further relates to a data record comprising rule modules for use in the methods described above and below.

図1はSIPサービスネットワークにおける様々なタイプのフィーチャ相互作用を示している。SIPの導入によって、新規な範囲の会話及びリアルタイムサービスがインターネット上で出現している。これらのサービス101〜105は、エンドユーザ端末106〜108、または、着信側ユーザエージェント、あるいは1つ以上の中間ネットワークサーバ109によって管理することができる。中間サーバ109は、付加価値サービス102〜103を、発信(originting)及び着信(terminating)ユーザエージェントの少なくとも一方に提供できるばかりか、関連メディアクライアント及びサーバアプリケーション(群)にも提供できる。これらの中間サーバは、プロキシサーバ、リダイレクトサーバ、専用アプリケーションサーバあるいはユーザエージェントであり得る。   FIG. 1 illustrates various types of feature interactions in a SIP service network. With the introduction of SIP, a new range of conversations and real-time services are emerging on the Internet. These services 101-105 can be managed by the end user terminals 106-108, the terminating user agent, or one or more intermediate network servers 109. The intermediate server 109 can provide value-added services 102-103 to at least one of an originating and terminating user agent, as well as related media client and server application (s). These intermediate servers can be proxy servers, redirect servers, dedicated application servers or user agents.

ユーザエージェント間で送信される通信メッセージは、インターネット110あるいは別の通信ネットワークを介して中間サーバ109によって転送される。中間SIPサーバ109が有する基本的な課題は、ユーザのサービスレベルの期待を満足すること、良好なネットワークパフォーマンスを維持すること、かつ新規のサービスの定義を柔軟にかつスケーラブル(scalable:変更可能)にすることである。パフォーマンスはキー発行であるので、アーキテクチャは、いくつかのサービスに対しては、SIPサーバ上で実行可能とするべきである。SIPサーバ上であるサービスを実行することができるあるいは可能でない場合もあるので、アーキテクチャは、サービスに対して、リモートサーバ上で実行できるようにもしておくべきである。   A communication message transmitted between user agents is transferred by the intermediate server 109 via the Internet 110 or another communication network. The basic challenges of the intermediate SIP server 109 are to satisfy user service level expectations, maintain good network performance, and make new service definitions flexible and scalable. It is to be. Since performance is key issue, the architecture should be able to run on a SIP server for some services. The architecture should also allow the service to run on a remote server, as it may or may not be possible to run a service on a SIP server.

サービスの定義の柔軟性の要求があるので、SIPサーバの機能は、前もって定義されるべきではない。特に、サービスは、サービスプロバイダ及び加入者を含む種類のソースから継続的にアップロードされ/登録され得る。   Since there is a requirement for flexibility in service definition, the functionality of the SIP server should not be defined in advance. In particular, services can be continuously uploaded / registered from a variety of sources including service providers and subscribers.

SIPサーバの所有者は、SIPサーバプロバイダであると同時に、管理者及び加入者プロバイダであり得る。この保管人(stakeholder)はネットワークオペレータと呼ばれ、これは、TelcoあるいはISPの類となり得る。ネットワークオペレータは、SIPサーバのドメイン名を所有することができ、かつサードパーティサービスプロバイダへサービスフィーチャを提供することができる。ネットワークオペレータは、SIPサーバ上にサービスアプリケーションとルールモジュールをインストールして、加入者へサービスを提供する。この場合、ネットワークオペレータは、サービスプロバイダかつサービス管理者として動作する。加入者は、加入を行い、SIPサーバによって提供される加入者サービスを受けるために、ネットワークオペレータと契約関係を結んでいる。加入者は、加入者自身がサービスアプリケーションとルールモジュールをSIPサーバへアップロードすることを可能にするサービスを持つことができる。加入者は、専用使用、即ち、パーソナライズ化サービス用のサービスを所有する。簡単のために、ネットワークオペレータ(群)以外のパーティのすべて及び加入者はネットワークオペレータと契約関係を結んでおり、このネットワークオペレータは、サードパーティサービスプロバイダと呼ばれる。ネットワークサーバの所有者、ネットワークサーバプロバイダ、ネットワークサーバ管理者、サードパーティサービスプロバイダ及び加入者は、中間SIPサーバでは、サービスを配置する潜在的なプラットフォームとして見なされ、このサービスは、ある理由あるいは別の理由によって、終端ユーザエージェントでは配置できないあるいは配置されるべきではない。   The owner of the SIP server can be an administrator and subscriber provider as well as a SIP server provider. This stakeholder is called a network operator, which can be a Telco or ISP type. The network operator can own the domain name of the SIP server and can provide service features to a third party service provider. The network operator installs service applications and rule modules on the SIP server to provide services to subscribers. In this case, the network operator operates as a service provider and service manager. The subscriber has a contractual relationship with the network operator to subscribe and receive subscriber services provided by the SIP server. A subscriber can have a service that allows the subscriber himself to upload service applications and rule modules to the SIP server. The subscriber owns a service for dedicated use, i.e. personalized services. For simplicity, all parties and subscribers other than the network operator (s) have a contractual relationship with the network operator, which is referred to as a third party service provider. Network server owners, network server providers, network server administrators, third party service providers and subscribers are considered as potential platforms for deploying services in intermediate SIP servers, which may be for some reason or another For reasons, it cannot or should not be deployed at the end user agent.

標準化プロトコル(例えば、SIP、SDP、SOAP)、言語(例えば、CPL)及びインタフェース(例えば、SIP−CGI、3GPP OSA API)の種類があり、これらは、様々な目的のサービスの制御を処理する。また、サービスは、複数のプロトコル、ネットワークコンポーネント、言語及びインタフェースを介する自身の制御の適用を行う。SIPサーバは、必要に応じて、これらの目的のすべてをサポートするために拡張可能であるべきである。これらのサービスアプリケーションは、様々なパーティによって所有することができ、これらのパーティは、様々な認証レベルを有し、かつSIPサーバの所有者との間で様々な契約関係を結んでいる。サービスアプリケーションは、様々な状態下での様々な特定発信/セッション処理点のSIPリクエスト及び応答(但し、これであることに限定されない)のデフォルト処理に付加価値を与えることができる。   There are standardized protocol (eg, SIP, SDP, SOAP), language (eg, CPL) and interface (eg, SIP-CGI, 3GPP OSA API) types that handle the control of various purpose services. The service also applies its own control via multiple protocols, network components, languages and interfaces. The SIP server should be extensible to support all of these purposes as needed. These service applications can be owned by various parties, which have various authentication levels and have various contractual relationships with the owner of the SIP server. A service application can add value to the default processing of (but not limited to) SIP requests and responses for various specific origination / session processing points under various conditions.

以下の例は、あるSIPイベントに基づいて、複数のサービスが呼び出されることを想定していることを示している。ボブ(Bob)という名の加入者が、Telcoという名のいくつかのSIPプロバイダに、SIP加入している例を想定する。ボブは、ネットワーク内で自身が存在しようとするサービスの種類を有している。ターミナル非依存(independent)サービスのようなサービスあるいはボブの端末がどんなものであろうとそれに対応するサービスが、現在使用中にある。また、ボブにセキュリティ、プライバシー及び信頼性を与えるサービスも存在している。また、ボブは、自身のサービスを管理することを希望していない。更に、ボブは、Corp.という名の会社に従事していると仮定する。サービスは、ボブへの着信INVITEメッセージを管理するために呼び出されるサービスは、このようになっている。   The following example shows that it is assumed that multiple services are invoked based on a SIP event. Consider an example where a subscriber named Bob has a SIP subscription with a number of SIP providers named Telco. Bob has the kind of service he wants to exist in the network. There is a service currently in use, such as a terminal-independent service, or whatever Bob's terminal is. There are also services that give Bob security, privacy and reliability. Bob also does not want to manage his services. In addition, Bob described in Corp. Suppose you work for a company named This is what the service is called to manage incoming INVITE messages to Bob.

Telcoは、SIPサーバを所有し、かつ管理することができる。また、Telcoは、SIPサービスを加入者へ提供し、かつサードパーティサービスを務める。Telcoは、ボブが着信INVITEの加入者であることを認識する。第1のサービスは、Telco発信ベアリングアプリケーションであり、ボブが最新の請求を支払っているかをチェックする。第2のサービスは、Telcoによって提供されるサービスである。これは、単に、発信側のメディアコーデックがボブの現在の位置/端末によって処理できるかをチェックする。処理できない場合、アプリケーションがメディアストリームコンバータをメディアストリームフロー(サードパーティ発信制御を使用して)に適用する。この変換は、ボブに対してトランスペアレントであり、アプリケーションは、ボブからの応答を監視し、必要に応じてセッション記述を更新する。第3のサービスは、ボブ自身の着信側プリファレンス、例えば、CPLスクリプトである。このアプリケーションは、プロキシ化リクエストに対する応答を監視し、できる限り、INVITEを、それに基づく複数の宛先へ転送する。いわゆるINVITEは、ボブの現在のプライベートSIP URLとなる。「無応答」では、INVITEは、彼の妻であるアリスに対し代用される。いくつかの場合、ボブは、すべてのプライベートな発信を、自身の企業のSIP URLへ転送することを希望する。第4のサービスは、Telcoのサービスであるが、これは、besafe.comという名のサードパーティアプリケーションサービスプロバイダから、Telcoへ提供される。このサービスは、メッセージ本体のコンテンツタイプをチェックし、必要な場合、例えば、アニメ化vCardが含まれている場合に、ウイルスチェックを提供する。第5のサービスはISPサービスであり、これは、Telcoの課金を払い戻す着信側向けマルチメディア広告を提供する。セッションが確立されており、かつそれがビデオ会議セッションである場合、ボブは、ビデオ画像の下部に小さなストリーミングバーの情報を受信する。このサービスは、監視アプリケーションであり、かつサードパーティ発信制御を使用する。ISPは、Telco SIPサーバのアカウントを有しており、かつTelcoによって所有される加入者に直接サービスを提供することができる。ボブは、Telcoを介さずに、ISPのサービスに直接加入している。第6のサービスは、ボブが従事する会社によって管理されるサービスである。発信がボブの現在の会社のSIP URLにある場合、その会社のプライベートLANネットワーク内でのみ既知のデータに基づいて、その発信がボブに転送される。最後の第7のサービスは、Telcoがいくつかのロギング(loggin:ログ記録)を実行する場合に応じた管理目的用である。   Telco can own and manage SIP servers. Telco also provides SIP services to subscribers and acts as a third party service. Telco recognizes that Bob is a subscriber to the incoming INVITE. The first service is a Telco outgoing bearing application that checks if Bob is paying the latest bill. The second service is a service provided by Telco. This simply checks if the originating media codec can be handled by Bob's current location / terminal. If not, the application applies a media stream converter to the media stream flow (using third party outbound control). This transformation is transparent to Bob, and the application monitors the response from Bob and updates the session description as needed. The third service is Bob's own called party preference, for example a CPL script. This application monitors responses to proxied requests and forwards INVITE to multiple destinations based on it as much as possible. The so-called INVITE becomes Bob's current private SIP URL. In “no response”, INVITE is substituted for his wife Alice. In some cases, Bob wants to forward all private calls to his company's SIP URL. The fourth service is Telco's service, which is besafe. provided to Telco from a third party application service provider named com. This service checks the content type of the message body and provides a virus check if necessary, for example if an animated vCard is included. The fifth service is the ISP service, which provides multimedia advertisements for callees that refund Telco charges. If a session is established and it is a video conference session, Bob receives a small streaming bar information at the bottom of the video image. This service is a monitoring application and uses third party outgoing control. The ISP has a Telco SIP server account and can provide services directly to subscribers owned by Telco. Bob subscribes directly to ISP services without going through Telco. The sixth service is a service managed by the company Bob is engaged in. If the call is at Bob's current company's SIP URL, the call is forwarded to Bob based on data known only within the company's private LAN network. The final seventh service is for management purposes when Telco performs some logging (loggin).

上述の例は、あるイベントによって起動される様々なサービスに関連する契約関係の多様性を示している。サービスは、様々な保管者によって所有されても良く、かつ様々な技術を使用して実現されても良い。   The above example illustrates the diversity of contract relationships associated with various services that are triggered by an event. The service may be owned by various custodians and may be implemented using various technologies.

サービスネットワークに配置される様々なサービスは、互いに相互作用する可能性がある。これらの相互作用は、シングルユーザ、複数ユーザに関連するサービス間、あるいはカスタマーサービスとシステムサービス間で実現される可能性がある。相互作用は、更に、同一ネットワークコンポーネントあるいは異なるネットワークコンポーネント上で動作するサービス間で実現される可能性がある。図1では、異なるタイプの相互作用が示されており、ここでは、シングルユーザ−複数コンポーネント(SUMC)、消費者−システム(CUSY)、複数ユーザ−シングルコンポーネント(MUSC)、複数ユーザ−複数コンポーネント(MUMC)、及びシングルユーザ−複数コンポーネント(SUMC)の相互作用を示している。   Various services deployed in the service network can interact with each other. These interactions may be realized between services related to a single user, multiple users, or between customer service and system service. Interactions can also be realized between services running on the same network component or on different network components. In FIG. 1, different types of interactions are shown, where single user-multiple component (SUMC), consumer-system (CUSY), multi-user-single component (MUSC), multi-user-multiple component ( MUMC) and single user-multiple component (SUMC) interactions.

フィーチャ相互作用には多くの原因があり、これには、「フィーチャ特権の違反」及び「フィーチャ仮定の違反」が含まれる。   There are many causes for feature interactions, including “feature privilege violations” and “feature assumption violations”.

フィーチャ特権の違反:フィーチャの特権が壊れることは、フィーチャが余剰に起動されるあるいは未認証パーティによって起動される場合である。フィーチャ特権を違反することによって生じる主要な問題は、リソースの余剰消費あるいはリソースへの未認証アクセスがある。これは、通常、意図されていないあるいは悪意の可能性がある。フィーチャ特権の違反が生じる場合、リソースへのアクセスに対して、認証済あるいは未認証のフィーチャ間での衝突が生じる。フィーチャが余剰に起動されるあるいは未認証パーティによって起動される場合、続いて、フィーチャ仮定の違反に対する原因となり得る。明白なことは、フィーチャ仮定の違反の回避が要求されていることである。   Feature privilege violation: A feature privilege breaks when a feature is activated excessively or by an unauthorized party. A major problem that arises from violating feature privileges is excessive consumption of resources or unauthorized access to resources. This is usually unintentional or potentially malicious. If a feature privilege violation occurs, there will be a conflict between authenticated or unauthenticated features for access to the resource. If a feature is activated excessively or by an unauthorized party, it can subsequently cause a violation of feature assumptions. Obviously, there is a requirement to avoid violating feature assumptions.

以下に説明するように、本発明に従えば、フィーチャ特権の違反は、コンテキスト上、契約関係上、状態上、アクセス制御リスト上、特権及び権利に対するフィルタリングによって解決される。   As described below, in accordance with the present invention, feature privilege violations are resolved by filtering on privileges, rights, contextually, contractually, stately, on access control lists.

コンテキストのフィルタリングは、あるコンテキストのイベントを解釈する条件に関連する。これの必要性は、集中ネットワーク上で動作するネットワークマルチメディアサービスを管理する場合に明らかとなる。   Context filtering relates to conditions that interpret events in a context. The need for this becomes apparent when managing network multimedia services operating on a centralized network.

契約関係のフィルタリングは、イベントをフィーチャセットにマッピングする条件に関連し、このフィーチャセットは、そのイベントを処理するために契約上課せられているものである。この問題は、特に、未統制市場で重要であり、未統制市場では、ネットワークインフラストラクチャ及びセッション制御サービスのプロバイダが加入者へ付加価値サービスを提供することができるばかりでなく、サードパーティは、同様の提供を行う正当な権利を有している。   Contractual relationship filtering relates to the conditions that map an event to a feature set, which is the one imposed on the contract to handle the event. This issue is particularly important in the uncontrolled market, where not only can network infrastructure and session control service providers provide value-added services to subscribers, but third parties Have a legitimate right to provide

アクセス制御ポリシーのフィルタリングは、イベントが認証済の行動だけがノードで生じることを補償している。   Access control policy filtering compensates for the fact that only actions for which the event has been authenticated occur at the node.

状態のフィルタリングは、イベントが発生して、かつ起動対象のフィーチャが、契約関係及びアクセス特権上のコンテキストに基づいて検出される場合に、フィーチャが余剰に起動されないことを補償する。これらの状態は、例えば、イベント、システムプロパティあるいはネットワークプロパティに依存しても良い。   State filtering compensates for excessive activation of features when an event occurs and the activated feature is detected based on a contractual relationship and access privilege context. These states may depend on, for example, events, system properties, or network properties.

フィーチャ仮定の違反:フィーチャ行動についての仮定が壊れることは、フィーチャのコンテキストが、その機能が意図するように動作できない方法で別のフィーチャに変更される場合である。フィーチャ仮定の違反は、多義性あるいは行動の衝突が生じる可能性がある。   Violation of feature assumption: An assumption about feature behavior is broken when the context of the feature is changed to another feature in a way that its function cannot work as intended. Violations of feature assumptions can result in ambiguity or behavioral conflicts.

フィーチャは、実行するサービスアプリケーションを視認できる行動である。サービスアプリケーションによって発行される命令は、SIPノードの付加価値行動を制御するために発行し、これが、フィーチャ相互作用と呼ばれるものである。しかしながら、多くのフィーチャは、それらの行動を、制御命令がSIPノードに返信される前に、メッセージに適用する可能性がある。SIPノードに返信される制御命令あるいは命令セットは、サービス制御命令と呼ばれるものである。これは、得られるイベントコンテキスト、即ち、SIPメッセージのプロパティを含み、このSIPメッセージは、サービスアプリケーションを起動したオリジナルイベントコンテキストに対する応答で、アップストリームあるいはダウンストリームで送信されなければならない。フィーチャがカレントイベントコンテキストを介する制御を行うシーケンスに、サービス制御命令が依存していない場合に、多義性行動が生じる。多義性命令は、互いに排他的には必要とされない。   A feature is an action in which a service application to be executed can be visually recognized. The commands issued by the service application are issued to control the value added behavior of the SIP node, which is called feature interaction. However, many features may apply their actions to messages before control instructions are sent back to the SIP node. The control command or command set returned to the SIP node is called a service control command. This includes the resulting event context, i.e. the properties of the SIP message, which must be sent upstream or downstream in response to the original event context that launched the service application. Ambiguity behavior occurs when a service control instruction does not depend on a sequence in which a feature performs control via the current event context. Ambiguity commands are not required mutually exclusive.

一例として、SIPメッセージ本体がgifフォーマットのカラー画像を含んでいるとする。gifフォーマットのメッセージ本体コンテンツで起動されるサービスアプリケーションとしてS1を定義する。S1は、gifフォーマットからjpgフォーマットへ変換するサービスアプリケーションであるとする。また、gifフォーマットのメッセージ本体コンテンツで起動されるサービスアプリケーションとしてS2を定義する。S2は、gif画像を白黒画像に変換するサービスアプリケーションであるとする。   As an example, assume that the SIP message body includes a color image in the gif format. S1 is defined as a service application that is activated with the message body content in the gif format. Assume that S1 is a service application that converts from the gif format to the jpg format. Also, S2 is defined as a service application that is activated by the message body content in the gif format. Assume that S2 is a service application that converts a gif image into a monochrome image.

S1は、gifコンテンツによって呼び出され、起動される第1アプリケーションであるとする。S1は、gif画像をjpg画像へ変換し、それをカレントイベントコンテキストに書き込む。S2は、呼び出されることはない。その結果、イベントコンテキストは、カラーjpg画像を含むことになる。   Assume that S1 is a first application that is called and activated by gif content. S1 converts a gif image into a jpg image and writes it to the current event context. S2 is never called. As a result, the event context includes a color jpg image.

ここで、S2は、gifコンテンツによって呼び出され、起動される第1アプリケーションであるとする。S2は、カラーgif画像を白黒画像に変換し、それをカレントイベントコンテキストに書き込む。続いて、S1が、そのカレントイベントコンテキストによって特定されるgifコンテンツに基づいて呼び出される。S1は、gif画像をjpg画像に変換し、それをカレントイベントコンテキストに書き込む。その結果、イベントコンテキストは、白黒jpg画像を含むことになる。   Here, it is assumed that S2 is a first application that is called and activated by the gif content. S2 converts the color gif image to a black and white image and writes it to the current event context. Subsequently, S1 is called based on the gif content specified by the current event context. S1 converts a gif image into a jpg image and writes it to the current event context. As a result, the event context includes a black and white jpg image.

明白なことは、S1とS2は、多義性行動をもたらすので、1つのフィーチャのコンテキストは、別のフィーチャによって変更される。   Obviously, S1 and S2 result in ambiguous behavior, so the context of one feature is changed by another feature.

衝突フィーチャ命令は、互いに排他的となる命令である。衝突命令は、互いに無視する試行を行う。この場合、衝突命令は、通常、多義性行動の原因にもなる。   Collision feature commands are commands that are mutually exclusive. Collision commands attempt to ignore each other. In this case, the collision command usually causes ambiguity behavior.

また、すべてのフィーチャ命令は、それらが確実に認証されていない限り、潜在的な未承認命令群である。未認証フィーチャ命令は、悪意性を持ち得る、あるいはバグのある(buggy)サービスアプリケーションとなり得る。どちらの場合でも、それらは、システムの安全性及び完全性に傷害を与え得るので、検出されるべきである。   Also, all feature instructions are a group of potential unapproved instructions unless they are reliably authenticated. Unauthenticated feature instructions can be malicious or buggy service applications. In either case, they should be detected because they can harm the safety and integrity of the system.

監視サービスアプリケーションは、既に上述している問題に更なる問題が生じ得る。監視サービスアプリケーションは、それらが継続的に動作している場合には、非同期フィーチャ命令を任意にSIPノードに発行することができる。それらが将来のイベントを監視している場合、それらは、これらのイベント上で動作し、かつより多くのフィーチャ命令を提供する。複数の監視サービスアプリケーションが同時に存在する場合、それらが生成するフィーチャ命令は、それらがイベントについて通知される順序に依存し得る。これは、上述の問題を複雑にする。   The monitoring service application may have further problems with the problems already described above. The monitoring service applications can optionally issue asynchronous feature instructions to the SIP node if they are running continuously. If they are monitoring future events, they operate on these events and provide more feature instructions. If multiple monitoring service applications exist simultaneously, the feature instructions they generate may depend on the order in which they are notified about the event. This complicates the above problem.

フィーチャ仮定の違反の検出及び分析は、フィーチャ特権の違反の分析よりもかなり複雑である。以下に説明するように、本発明に従えば、多義性行動の解決方法を特定する手段が提供され、フィーチャ相互作用管理を別々のフィーチャグループと管理ドメインに分割する手段が提供され、ランタイムで検出されるフィーチャ相互作用干渉を解決するための単純なデフォルトルールが提供される。フィーチャ仮定の違反は、カスケード化チェーン原理と条件付き起動に基づくフィーチャ順序付けと、ロック/アンロックメカニズムに基づくフィーチャ優先度によって解決される。これについては、以下でより詳細に説明する。   The detection and analysis of feature assumption violations is considerably more complex than the analysis of feature privilege violations. As will be described below, according to the present invention, means are provided for identifying solutions to ambiguity behavior, means for dividing feature interaction management into separate feature groups and administrative domains, and detection at run time. Simple default rules for resolving feature interaction interferences are provided. Violations of feature assumptions are resolved by feature ordering based on cascaded chain principles and conditional activation, and feature priority based on lock / unlock mechanisms. This will be described in more detail below.

フィーチャ相互作用の別の原因は、ネットワークサポートの制限、例えば、プロトコル機能制限あるいはユーザインタフェース制限、分散システムにおける固有の問題、例えば、リソースコンテンション、フィーチャ相互授与(co-ordination)、タイミング、あるいは非アトミックオペレーション、システムセキュリティの違反、不正、改竄あるいは盗聴メッセージ、衝突対象を有するフィーチャによる非協働相互作用等を含んでいる。   Another cause of feature interaction is network support limitations, such as protocol capability limitations or user interface limitations, inherent problems in distributed systems such as resource contention, feature co-ordination, timing, or non- Includes atomic operations, system security violations, fraud, tampering or eavesdropping messages, non-cooperative interactions with features with collision targets, etc.

一般的には、フィーチャ相互作用に対する3種類の解決方法は、以下のように区別される:
インフラストラクチャ:フィーチャの配置用のインフラストラクチャの配置は、フィーチャ相互作用管理を統合する、即ち、定義されているいくつかのフィーチャ相互作用の原因を取り扱う。フィーチャ相互作用は、フィーチャ配置時間、即ち、ルール基準ポリシー等の仕様あるいは施行中の前(仕様)と後(施行)の両方が管理される。本発明に従えば、ルールモジュールスクリプトは、フィーチャを配置するインフラストラクチャを構成し、これは、フィーチャ相互作用管理用のフレームワークを提供する。
In general, the three solutions to feature interaction are distinguished as follows:
Infrastructure: Infrastructure placement for feature placement integrates feature interaction management, ie, handles the causes of some defined feature interactions. The feature interaction is managed in the feature placement time, that is, the specification such as the rule-based policy, or both before (specification) and after (enforcement) during enforcement. In accordance with the present invention, the rule module script constitutes an infrastructure for placing features, which provides a framework for feature interaction management.

サービス生成:フィーチャ相互作用の原因に関するフィーチャの設計、即ち、設計段階中のフィーチャ相互作用の検出である。ここで、フィーチャ配置、例えば、明示的なフィーチャ相互作用原因解析、検証テスト等を介する前にフィーチャ相互作用が管理されても良い。本発明に従えば、条件としては、サービス生成及びフィーチャ配置ストラテジー仕様が課せられている。   Service generation: The design of features with respect to the cause of feature interaction, ie the detection of feature interactions during the design phase. Here, feature interactions may be managed prior to feature placement, eg, explicit feature interaction cause analysis, verification tests, and the like. In accordance with the present invention, conditions are imposed by service generation and feature placement strategy specifications.

ランタイム:フィーチャ相互作用が生じた場合のフィーチャ相互作用の分析である。フィーチャ相互作用がフィーチャ配置の前に全く識別できない場合でも、これらは、ランタイムで、例えば、暗号証明、認証及び機密、ルール基準ポリシー、分析アルゴリズム、AIネゴシエーション等によって、検出されなければならない。本発明に従えば、ランタイムで検出されるフィーチャ相互作用がどのようにして解決されるかについての単純なルールが提供される。これらのルールは、ルールモジュールに関連するアクセス制御リストのチェック、アラーム通知及びオペレーション以外の違反ルールモジュールを取得することによるアクセス違反の分析、特権及び権利を特定するスクリプトのチェック、及びアラーム通知及びオペレーション以外の違反フィーチャを取得することによる特権及び権利の違反の解析を含んでいる。   Runtime: An analysis of feature interactions when feature interactions occur. Even if feature interactions cannot be identified at all prior to feature placement, they must be detected at runtime, for example, by cryptographic certification, authentication and confidentiality, rule criteria policies, analysis algorithms, AI negotiation, etc. In accordance with the present invention, simple rules are provided on how feature interactions detected at runtime are resolved. These rules include access control list checks related to rule modules, alarm notifications and access violation analysis by obtaining violation rule modules other than operations, script checking for privileges and rights, and alarm notifications and operations. Includes analysis of privilege and rights violations by obtaining non-violating features.

本発明に従う一般的な管理プロセスは、以下のステップを含んでいる。   The general management process according to the present invention includes the following steps.

1.他のフィーチャとは独立しているフィーチャ設計仕様:サービスは、他のフィーチャとの相互作用を考慮しないで設計され、かつ特定される。しかしながら、本発明の実施形態に従えば、サービスは、以下の処理ポイントモデルに関連して設計される。   1. Feature design specifications that are independent of other features: Services are designed and specified without considering interaction with other features. However, according to embodiments of the present invention, services are designed in relation to the following processing point model.

2.契約ネゴシエーション:サービスネットワークにサービスを配置することを希望するパーティは、サービスネットワークの管理者とネゴシエートする、ここで、特権及び権利はサービスに対して認められている。本発明の実施形態に従えば、サービスに関連する特権及び権利スクリプトが生成される。   2. Contract Negotiation: A party wishing to place a service on the service network negotiates with the administrator of the service network, where privileges and rights are granted for the service. In accordance with an embodiment of the present invention, privilege and rights scripts associated with the service are generated.

3.フィーチャ相互作用解析:取り得るフィーチャ相互作用が、サービスネットワークに配置されるいくつかのフィーチャについての経験及び取り得る知識に基づいて調査される。   3. Feature interaction analysis: Possible feature interactions are investigated based on experience and possible knowledge about some features located in the service network.

4.フィーチャ配置ストラテジー仕様:サービスを配置するルールモジュールの著作者は、管理ドメインを取得する。フィーチャ相互作用解析とサービス、加入者及びユーザについての知識に基づいて、フィーチャ配置ストラテジーが、ルールモジュールスクリプトで特定される。   4). Feature placement strategy specification: The author of a rule module that places a service obtains a management domain. Based on the feature interaction analysis and knowledge about the service, subscribers and users, a feature placement strategy is identified in the rule module script.

5.フィーチャ実装
6.検証テスト
7.フィーチャ導入及び有効化
8.フィーチャランタイム行動及び管理
9.フィーチャ無効化及び削除
本発明に従えば、フィーチャ相互作用管理用フレームワークは、以下のように提供される
−単純な言語と、容易に原理が理解できるフレームワークを提供することによって仕様ルールに解析段階を容易にマッピングすることを可能にし、
−フィーチャグルーピング間の明確な境界を定義する、このフィーチャグルーピングは、与えられている解析エンティティに知られていて、かつ知られていない、
−単純、つまり、容易に理解することができる、フィーチャのグループ間の制御のハンドオーバ用のルールを提供する。フィーチャのあるグループから別のグループへハンドオーバされる場合、フィーチャの次のグループが直前のグループに干渉しないことを補償するメカニズムが存在し、
−直前の状態が保証されていて、かつアプリケーションがある命令をサーバに与えることだけを許容している状態でのイベントの処理の処理ポイントを特定することによって解析段階を簡略化する。
5). Feature implementation Verification test Feature introduction and validation 8. Feature runtime behavior and management 9. Feature Invalidation and Deletion According to the present invention, a framework for feature interaction management is provided as follows:-Analyze to specification rules by providing a simple language and framework that can easily understand the principle Makes it easy to map the stages,
-This feature grouping, which defines a clear boundary between feature groups, is known and unknown to a given analytic entity,
Provide rules for control handover between groups of features that are simple, ie easily understood. When handing over from one group of features to another, there is a mechanism to compensate that the next group of features will not interfere with the previous group,
-Simplify the analysis stage by identifying the processing points for event processing where the previous state is guaranteed and the application only allows the server to give certain instructions.

図2は、本発明の実施形態に従うサービス環境SIPサーバアーキテクチャに含まれるネットワーク要素を示している。前段SIPクライアント203は、任意のクライアント、例えば、SIPアクション可能PC、無線端末、前段ホッププロキシ、SIP/PSTNゲートウェイ等を表している。クライアントは、SIPサーバ202に対する着信リクエストでセッションサービス用のリクエストを生成する。SIPサーバ202は、プロキシ、リダイレクトあるいは専用SIP動作可能アプリケーションサーバを表しており、ここでは、サービスサポート環境201が実現される。選択的には、付加価値サービス、例えば、ユーザエージェント、レジスタあるいはその類を起動する任意の他のSIP動作可能エンティティであっても良い。SIPサーバサービスサポート環境201に配置されるサービスは、サービスアプリケーションによって定義され、これには、例えば、SIP−CGIスクリプト、ルールモジュール及びサービスフィーチャがある。SIPノード202は、イベントの受信でサービスサポート環境201に対するハンドオーバ制御を行うことができる。サービスサポート環境201は、続けて、あるフィルタ基準に従って、かつそのイベントに基づいて関連サービスアプリケーションを呼び出すことができる。サービスアプリケーションは、フィーチャ命令あるいは命令群を返信する。サービスサポート環境201は、イベントをどのように処理するかについてをSIPノード202に通知するサービス制御命令とともに、SIPノード202に対し、制御をハンドバックする。SIPノードは、リクエストを次のSIPクライアント204へ送信する。そのリクエストの応答は、SIPノード202を介して反対方向に次のSIPクライアント204から前段のSIPクライアント203へ転送され、可能であれば、追加のサービスを起動する。次段のSIPサーバ204は任意のサーバ、例えば、SIP動作可能PC、無線端末、次のホッププロキシ、SIP/PSTNゲートウェイ等を表している。サーバは、着信リクエストを処理する。リモートサーバ206は、例えば、別のサービスサポート環境で、リモートサービスの実行を行う。例えば、パフォーマンス基準に基づいて、サービスサポート環境201は、例えば、リクエスト/応答プロトコルを使用することによって、リモートサーバ206の処理を初期化することができる。この方法では、様々なカテゴリのサービスを呼び出し、様々なホストで管理することができる。リモートサーバに対して使用されるプロトコルは、例えば、SIP、ICAP、HTTP、OSA、API等の任意のプロトコルをサポートするサポートリクエスト/応答ダイアログであり得る。管理サーバ205は、サービス環境での管理タスクを実行する。これは、SIPノード202のドメインに関連づけられているサービスサポート環境201を構成することができる。ここで、サービスサポート201の環境は、SIPノード、サービスアプリケーション、リモートホスト及び管理エンティティを含んでいる。   FIG. 2 illustrates network elements included in a service environment SIP server architecture according to an embodiment of the present invention. The pre-stage SIP client 203 represents an arbitrary client such as a PC capable of SIP action, a wireless terminal, a pre-hop proxy, a SIP / PSTN gateway, or the like. The client generates a request for session service as an incoming request to the SIP server 202. The SIP server 202 represents a proxy, redirect, or dedicated SIP operable application server, and a service support environment 201 is realized here. Optionally, it may be any other SIP-enabled entity that invokes a value-added service, such as a user agent, a register, or the like. Services located in the SIP server service support environment 201 are defined by service applications, which include, for example, SIP-CGI scripts, rule modules, and service features. The SIP node 202 can perform handover control for the service support environment 201 by receiving an event. The service support environment 201 can subsequently call the associated service application according to certain filter criteria and based on the event. The service application returns a feature command or a command group. The service support environment 201 hands back control to the SIP node 202 together with a service control instruction for notifying the SIP node 202 how to process the event. The SIP node sends the request to the next SIP client 204. The response to the request is transferred from the next SIP client 204 to the previous SIP client 203 in the opposite direction via the SIP node 202, and if possible, activates an additional service. The next-stage SIP server 204 represents an arbitrary server, for example, a SIP-enabled PC, a wireless terminal, a next-hop proxy, a SIP / PSTN gateway, or the like. The server processes incoming requests. The remote server 206 executes the remote service in another service support environment, for example. For example, based on performance criteria, the service support environment 201 can initialize the processing of the remote server 206, for example, by using a request / response protocol. In this way, different categories of services can be invoked and managed by different hosts. The protocol used for the remote server may be a support request / response dialog that supports any protocol such as SIP, ICAP, HTTP, OSA, API, etc. The management server 205 executes management tasks in the service environment. This can constitute a service support environment 201 associated with the domain of the SIP node 202. Here, the environment of the service support 201 includes a SIP node, a service application, a remote host, and a management entity.

図3は本発明の実施形態に従うサービス実行ルールメカニズムをサポートするSIPサーバのシステムアーキテクチャを示している。サービスサポート環境301は、配置インフラストラクチャ、即ち、あるフィーチャが別のフィーチャにどのように相互作用するかを実現する。ここで、サービスサポート環境301は、付加価値サービスをサポートするSIPサーバ内で機能を提供する。サービスサポート環境301は、実行ルールベース307に記憶されるルールモジュール307を管理するルールエンジン303を有している。ルールエンジン303は、更に、ルールモジュールを処理することが可能なルールモジュール実行モジュール314を有している。ルールエンジンは、サービス実行エンジンマネージャ302を介してサービス309〜311を呼び出すことができる。サービス定義マネージャ312は、ルールモジュールの管理機能を提供する。SIPサーバは、更に、SIPデフォルト機能306及びSIPメッセージパーサー305を含むSIPプロトコルスタック304を実現する。メッセージパーサー305はSIPプロトコルをサポートし、かつルールエンジン303によって解釈可能なメッセージプロパティを抽出する。管理サーバ313は、サービス環境上で管理タスクを実行する。   FIG. 3 shows a system architecture of a SIP server that supports a service execution rule mechanism according to an embodiment of the present invention. The service support environment 301 implements a deployment infrastructure, ie how one feature interacts with another feature. Here, the service support environment 301 provides a function within the SIP server that supports the value-added service. The service support environment 301 includes a rule engine 303 that manages the rule module 307 stored in the execution rule base 307. The rule engine 303 further includes a rule module execution module 314 that can process the rule module. The rule engine can call the services 309 to 311 via the service execution engine manager 302. The service definition manager 312 provides a rule module management function. The SIP server further implements a SIP protocol stack 304 that includes a SIP default function 306 and a SIP message parser 305. The message parser 305 extracts a message property that supports the SIP protocol and can be interpreted by the rule engine 303. The management server 313 executes a management task on the service environment.

本発明に従うサービス配置ポリシーを実現する重要なメカニズムは、配置ルールの仕様を、ルールモジュールで特定されるサービス実行ルールとすることである。サービス実行ルールは、状態が満足している場合、取得する必要のある状態とアクションを特定する。本発明に従えば、これらのルールを特定するプログラミング言語が定義され、これは、サービス実行ルール言語(SERL)として呼ばれる。   An important mechanism for realizing the service arrangement policy according to the present invention is to make the specification of the arrangement rule the service execution rule specified by the rule module. The service execution rule specifies the state and action that need to be acquired if the state is satisfied. In accordance with the present invention, a programming language is defined that identifies these rules, which is referred to as a service execution rule language (SERL).

ルールモジュール308は、ルールエンジン303によって管理され、かつ実行される。ルールエンジン303は、起動及びフィーチャ相互作用メカニズムを実現する主要な機能エンティティであり、かつサービスサポート環境301の一部である。イベントが発生すると、メッセージパーサはルールエンジン303を呼び出し、イベントをルールエンジン303へとハンドオーバする。ルールエンジン303は、関連ルールモジュール308を検出してロードし、かつ受信したイベントに関連するそれらを正しい順序で処理する。フィルタリングは、契約関係の検出を含んでいる。イベントは、ルールモジュールが処理される場合のコンテキスト、即ち、SIPメッセージイベントのプロパティに従って状態が評価される場合のコンテキストを定義する。ルールエンジン303は、与えられたメッセージプロパティにルールパターンが照合する場合に対応するアクションを呼び出す。これらのアクションの内容に基づいて、ルールエンジン303は、呼出命令をアプリケーション実行エンジンマネージャ302あるいはサービスサポートシステム内の別の適切なエンティティに発行することができる。SERLスクリプトは、サービスについての知識を有していない、この知識とは、通常、フィーチャをどのように呼び出して管理するかについての知識以外のそのサービスが呼び出しかつ管理する知識である。呼び出されたサービスアプリケーションから受信した制御命令は、最新のルールモジュールが処理されている場合に、SIPスタック304に渡される。   The rule module 308 is managed and executed by the rule engine 303. The rules engine 303 is the main functional entity that implements the activation 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 and hands over the event to the rule engine 303. The rules engine 303 detects and loads the associated rule module 308 and processes them related to the received events in the correct order. Filtering includes contractual relationship detection. An event defines the context in which the rule module is processed, i.e. the context in which the state is evaluated according to the properties of the SIP message event. The rule engine 303 calls the corresponding action when the rule pattern matches a given message property. Based on the content of these actions, the rules engine 303 can issue a call instruction to the application execution engine manager 302 or another suitable entity in the service support system. The SERL script has no knowledge of the service, which is usually the knowledge that the service calls and manages other than the knowledge of how to call and manage features. The control command received from the called service application is passed to the SIP stack 304 when the latest rule module is processed.

ルールエンジン303は、更に、異なるサービス間で送信される情報を管理する。イベントが発生すると、イベントの関連プロパティを含むイベントコンテキストは、標準的な方法で確立される。メッセージプロパティは、名前と値を有している。値は、メッセージによって判定することができる。例えば、SIPメッセージプロパティの例は、以下のようになる。   The rule engine 303 further manages information transmitted between different services. When an event occurs, an event context containing the relevant properties of the event is established in a standard way. Message properties have a name and a value. The value can be determined by the message. For example, an example of a SIP message property is as follows.

名前:sipRequest.Request-URL, 値:sip:bob@corp.com
名前:sipRequest.To, 値:Bob Smith <sip:bob@corp.com>
名前:sipResponce.Status-Code, 値:301
SDPメッセージプロパティの例は、以下のようになる。
Name: sipRequest.Request-URL, Value: sip: bob@corp.com
Name: sipRequest.To, Value: Bob Smith <sip: bob@corp.com>
Name: sipResponce.Status-Code, Value: 301
Examples of SDP message properties are as follows:

名前:sdp.m, 値:video 48232 RTP/AVP 0
ルールエンジン303は、いくつかの内部APIをサポートし、これは、機能エンティティとインタフェースすることによってアクセスすることができる。これらのAPIは、以下のものを含んでいる。
Name: sdp.m, Value: video 48232 RTP / AVP 0
The rules engine 303 supports several internal APIs that can be accessed by interfacing with functional entities. These APIs include the following:

−メッセージ通知API、メッセージパーサ305からルールエンジン303へのメッセージ通知用のSIPスタック304によって使用される。   -Message notification API, used by the SIP stack 304 for message notification from the message parser 305 to the rule engine 303.

−ルールベース定義API、サービス定義マネージャ312によって使用される。   A rule base definition API, used by the service definition manager 312.

−サービス命令API、サービスアプリケーション309〜311のために、命令をルールエンジン303にハンドオーバするためのアプリケーション実行エンジンマネージャ302によって使用される。   -Used by the application execution engine manager 302 for handing over instructions to the rules engine 303 for service instructions API, service applications 309-311.

−アーミング(arming)API、サービスアプリケーション309〜311のために、トリガーとトランザクションイベントのアーミングをリクエストするためのアプリケーション実行エンジンマネージャ302によって使用される。   -Used by the application execution engine manager 302 to request arming of triggers and transaction events for the arming API, service applications 309-311.

アプリケーション実行エンジンマネージャ302は、様々なタイプのサービスアプリケーションに対していくつかのアプリケーション実行エンジン315を組み込み、かつ管理する、これには、例えば、OSAエンジン、CPLエンジン、CPLインタプリタ、CGIエンジン及びサーバレットエンジンがある。これは、ルールエンジン303によって導入されるインタフェースをサポートし、かつアプリケーションAPIとルールエンジンAPI間のマッピングを行う。ルールエンジン303の観点からは、すべてのアプリケーション実行エンジン315は、1つのエンティティ、即ち、アプリケーション実行エンジンマネージャ302のように見える。サービス定義マネージャ312は、更に、アプリケーション実行エンジン315に機能を提供することができる。   Application execution engine manager 302 incorporates and manages several application execution engines 315 for various types of service applications, including, for example, OSA engines, CPL engines, CPL interpreters, CGI engines, and serverlets. There is an engine. This supports the interface introduced by the rule engine 303 and provides a mapping between the application API and the rule engine API. From the rules engine 303 perspective, all application execution engines 315 look like one entity, the application execution engine manager 302. The service definition manager 312 can further provide functions to the application execution engine 315.

アプリケーション実行エンジンマネージャ302によって提供されるAPIは、以下のものを含んでいる。   The API provided by the application execution engine manager 302 includes:

−呼出API、ルールエンジンからアプリケーション実行エンジンマネージャ302への呼出命令用のルールエンジン303によって使用される。   Call API, used by the rule engine 303 for call instructions from the rule engine to the application execution engine manager 302.

−通知API、ルールエンジンからアプリケーション実行エンジンマネージャ302への通知命令用のルールエンジン303によって使用される。   -Notification API, used by the rule engine 303 for notification commands from the rule engine to the application execution engine manager 302.

デフォルトSIPサーバ行動306は、プロキシサーバ、リダイレクトサーバ、アプリケーションサーバあるいは汎用のユーザエージェントの機能を有している。更に、レジスタあるいはIM&P機能を含んでいていも良い。これは、命令を発行するために、ルールエンジン303によってアクセスできるインタフェースを提供する。選択的には、サービスアプリケーションは、SIPサーバ行動を実現することができる。それゆえ、サービスアプリケーションの要求に応じて、上述の各機能の一部のみを呼び出すためのルールエンジンを実現することができる。   The default SIP server action 306 has a function of a proxy server, a redirect server, an application server, or a general-purpose user agent. Furthermore, a register or IM & P function may be included. This provides an interface that can be accessed by the rules engine 303 to issue instructions. Optionally, the service application can implement SIP server behavior. Therefore, it is possible to realize a rule engine for calling only a part of the above-described functions in response to a service application request.

サービス定義マネージャ312は、管理サーバ313、サービスアプリケーション309〜311及びSIPスタック304によって使用されるO&M APIを提供する。APIは、以下のものための機能を提供する。   The service definition manager 312 provides an O & M API used by the management server 313, service applications 309 to 311 and the SIP stack 304. The API provides functions for:

−新規ルールモジュール及びサービスアプリケーションの証明及び認証マニュアル
−ルールモジュール及びサービスアプリケーションの権利及び特権の構成マニュアル
−ルールモジュール及びサービスアプリケーションのローディングマニュアル
−ルールモジュール及びサービスアプリケーションの起動/停止マニュアル
−ルールモジュールの有効化マニュアル
−スクリプト言語を使用して実現されるサービスアプリケーションの有効化マニュアル
−ルールモジュール及びサービスアプリケーションの削除マニュアル
−ルールモジュール及びサービスアプリケーションとそれらのステータスのリスティング(listing)マニュアル
−ルールモジュールの変更マニュアル
サービス定義マネージャ312は、更に、上述のマニュアル機能及び追加機能の少なくとも一方のいくつかの自動処理をサポートするインタフェースを提供することができる、この追加機能は、例えば、利用可能なサービスフィーチャのリスティング、インタフェース及びサービスフィーチャのバージョンの少なくとも一方の取得、サポートされている実行エンジン及びスクリプト言語、例えば、JVM、CPL、Perl等のリスティング、サービスフィーチャのインストール/アンインストール、サービスフィーチャの起動/停止、サービスをフィーチャとして他のサービスアプリケーションに提供するサービスアプリケーションの登録、サービスフィーチャの加入、サービスフィーチャの呼出/終了、「プロセッサ負荷の監視」や「発信集中時間帯」のような統計オペレーション、アカウントオペレーション、アカウントレコードの起動/停止、読出、リセット等がある。
-New rule module and service application certification and authentication manual-Rule module and service application rights and privilege configuration manual-Rule module and service application loading manual-Rule module and service application start / stop manual-Rule module valid -Manual for validating service applications implemented using script language-Manual for deleting rule modules and service applications-Manual for listing rule modules and service applications and their status-Manual for changing rule modules Service The definition manager 312 further includes the above-described manual functions and additional functions. This additional function can provide an interface that supports some automated processing of at least one of the additional functions, for example, listing of available service features, obtaining and supporting at least one of the interface and service feature versions Registered execution engines and script languages such as JVM, CPL, Perl, etc., install / uninstall service features, start / stop service features, register service applications that provide services as features to other service applications , Service feature subscription, service feature invocation / termination, statistical operations such as "processor load monitoring" and "outgoing concentrated time zone", account operations , Start / stop of the account record, read, there is a reset, and the like.

ここで、サービスフィーチャという用語は、サービスアプリケーションに提供される機能を意味する。サービスフィーチャは、サービスサポート環境301及びSIPスタック304に統合されているものと見なされる。アプリケーション実行エンジンマネージャ302とサービス定義マネージャ312はともに、サービスフィーチャをサービスアプリケーション309〜311を提供する。但し、アプリケーション実行エンジンマネージャ302によって提供されるフィーチャのいくつかは、ルールエンジン303及びSIPスタック304を介して処理される。   Here, the term service feature means a function provided to a service application. Service features are considered integrated into the service support environment 301 and the SIP stack 304. Both application execution engine manager 302 and service definition manager 312 provide service features to service applications 309-311. However, some of the features provided by the application execution engine manager 302 are processed through the rules engine 303 and the SIP stack 304.

サービスアプリケーション309〜311はプログラムであり、コンパイルあるいはインタプリトされて、SIPサーバのサービスサポート環境301内で動作する、あるいはリモートサーバ上で動作する。これらの用途は、SIPサーバの基本機能に関連付けるあるいは関連づけないようにすることができる。サービスアプリケーションは、SIPサーバ行動を実現することができる。サービスアプリケーションは、サービスを他のサービスアプリケーションに提供することができる、即ち、それらをサービスフィーチャとすることができる。例えば、サービスアプリケーションは、いくつかのMIMEタイプのコンバータを含むことができ、かつそれをサービスフィーチャとして他のサービスアプリケーションに提供することができる。他のサービスアプリケーションは、サービスを実行するためにこの機能を使用することができる。好ましくは、サービスアプリケーションは、SIPサーバ間で移動可能とするべきであり、かつリモートサーバ上で実行することができる。サービスアプリケーションは、アプリケーション等への特定ファイルパス、公開標準化API、例えば、SIP−CGI、OSA ASI、HTTP、ICAP、CPL、サーブレット等を使用することによって、グローバルあるいはローカルネーミング取り決めを介して、標準化あるいはローカル名前空間にアクセスすることができる。   The service applications 309 to 311 are programs that are compiled or interpreted and operate in the service support environment 301 of the SIP server or operate on a remote server. These applications can be associated or not associated with the basic functions of the SIP server. Service applications can implement SIP server behavior. A service application can provide services to other service applications, i.e., they can be service features. For example, a service application can include several MIME type converters and can provide it as a service feature to other service applications. Other service applications can use this function to perform the service. Preferably, the service application should be movable between SIP servers and can run on a remote server. Service applications can be standardized via global or local naming conventions by using specific file paths to applications, etc., public standard APIs such as SIP-CGI, OSA ASI, HTTP, ICAP, CPL, servlets, etc. You can access the local namespace.

サービスアプリケーションにアクセスする標準化メカニズムは、サードパーティサービスプロバイダに対して有効である。   Standardized mechanisms for accessing service applications are valid for third-party service providers.

SIPサーバは、遠隔に配置されているサービスアプリケーションを管理する必要はない、これは、SIPサーバがそれらについての知識を持っていない可能性があるからである。この場合、SIPサーバあるいはアプリケーション実行エンジンマネージャ302は、情報を起動することによって提供されるロケーション情報を必要とする。   A SIP server does not need to manage remotely located service applications because the SIP server may not have knowledge of them. In this case, the SIP server or application execution engine manager 302 needs the location information provided by activating the information.

メッセージパーサ305は、受信されたメッセージを解釈し、予め定義されている要素をメッセージプロパティとして分離し、適切な場合に有効化されるアクションを発生することが可能である。イベントが発生すると、メッセージパーサ305によって分離された関連プロパティを含むメッセージオブジェクトが確立される。   The message parser 305 can interpret the received message, separate predefined elements as message properties, and generate actions that are enabled when appropriate. When an event occurs, a message object is established that includes related properties separated by message parser 305.

好ましくは、任意のサポートされているプロトコルは、対応するメッセージパーサを有している。パーサは、下位のプロトコル、即ち、SIPのような他のプロトコルに組込まれるプロトコルに対応する下位のパーサを含むことができる。例えば、SIPメッセージパーサ内には、例えば、SDP、HTML、XML及びXHTMLのような様々なメディアのタイプを取り扱う複数のパーサを存在していても良い。ルールエンジンの観点からは、すべてのパーサは、1つのエンジンのように見える。メッセージパーサ用のAPIは、好ましくは、新規のプロトコルとコンテンツ用のパーサをモジュールとして追加できるように定義されるべきである。   Preferably, any supported protocol has a corresponding message parser. The parser may include a lower level parser corresponding to a lower level protocol, ie, a protocol that is incorporated into another protocol such as SIP. For example, a plurality of parsers that handle various types of media such as SDP, HTML, XML, and XHTML may exist in the SIP message parser. From the rules engine perspective, all parsers look like one engine. The API for message parsers should preferably be defined so that new protocols and content parsers can be added as modules.

サービスサポート環境301によってサポートされる任意のプロトコルに対して、プロトコルのメッセージパーサとルールエンジン間のインタフェースは、以下のものを含んでいる。   For any protocol supported by the service support environment 301, the interface between the protocol message parser and the rules engine includes:

−プロパティ名、プロパティを特徴付けるメッセージとの関係及びプロパティを変更するためのアクションの能力を含むメッセージパーサによって定義されるプロパティ群
−ルールを有効化できる処理ポイント
本発明の実施形態では、サービスサポート環境301あるいはサービスサポート環境内の各機能エンティティは、複数のサーバを実現する別々のホストに配置することができる、このサーバは、例えば、SIP、Web、WAP、I−Mode(登録商標)、RTSPサーバ及び、例えば、データベース、OSA、Web、SIP等の多元アクセスアプリケーションサーバがある。
A property group defined by a message parser, including the property name, the relationship with the message characterizing the property, and the ability of the action to change the property; a processing point where the rule can be validated. Alternatively, each functional entity in the service support environment can be located on a separate host that implements multiple servers, such as SIP, Web, WAP, I-Mode (registered trademark) , RTSP server and For example, there are multiple access application servers such as a database, OSA, Web, and SIP.

例えば、ルールエンジン303、アプリケーション実行マネージャ302及びサービス定義マネージャ312は、それぞれ自身のホスト、可能であれば、IPを介して接続されるホストに配置することができる。ルールエンジンと様々なサーバ間のインタフェースは、標準化するあるいは専用化することができる。ルールエンジン、アプリケーション実行エンジンマネージャ及びサービス定義マネージャ間のインタフェースは、好ましくは、専用化かつパッケージ化するべきである。サービスアプリケーションサーバとサービスサポート環境間のインタフェースは、OSA API、HTTP、SIPあるいはいくつかのSQLベースのAPIのようなデータベースAPIのように、標準化されていることが好ましい。このような分散型構成では、本発明の更なる効果が得られることが明らかであり、これは、ルールエンジンが、多くのタイプのイベント、例えば、SIPイベントばかりでなく、HTTPイベント、SMTPイベント、Wapイベント、MPEG7イベントあるいは3D仮想現実あるいはゲームオブジェクトイベントのようなメディアコーディックイベント等のイベントを管理することができることである。   For example, the rule engine 303, the application execution manager 302, and the service definition manager 312 can be arranged on their own hosts, if possible, hosts connected via IP. The interface between the rule engine and various servers can be standardized or dedicated. The interface between the rules engine, application execution engine manager, and service definition manager should preferably be dedicated and packaged. The interface between the service application server and the service support environment is preferably standardized, such as a database API such as OSA API, HTTP, SIP or some SQL-based API. It is clear that in such a distributed configuration, the further effect of the present invention can be obtained, which means that the rules engine not only has many types of events, eg, SIP events, but also HTTP events, SMTP events, It is possible to manage events such as media events such as Wap events, MPEG7 events, 3D virtual reality or game object events.

更に、図3を参照すると、本発明の実施形態に従う起動メカニズムを、簡単な例で示すことができる、この簡単な例では、1つのルールモジュールだけが受信イベントに関連していると想定している。図3において、丸数字は、以下の起動例の各工程を参照するものである。   Furthermore, referring to FIG. 3, the activation mechanism according to an embodiment of the present invention can be illustrated with a simple example, assuming that only one rule module is associated with an incoming event. Yes. In FIG. 3, the circled numbers refer to the steps of the following startup example.

1.SIPリクエストは、メッセージパーサ305で受信される。   1. The SIP request is received by the message parser 305.

2.SIPメッセージパーサ305は、SIPメッセージオブジェクトを生成する。ルールエンジン303は、これをSIPイベントコンテキストに変換する。   2. The SIP message parser 305 generates a SIP message object. The rule engine 303 converts this into a SIP event context.

3.関連ルールモジュール308は、イベントコンテキスト、処理ポイント及び契約関係に基づいて、実行ルールベース307に配置される。本実施形態のメカニズムは、以下で説明される。   3. The association rule module 308 is arranged in the execution rule base 307 based on the event context, the processing point, and the contract relationship. The mechanism of this embodiment will be described below.

4.ルールエンジン303は、実行ルールベース307から検出したルールモジュール308をルールモジュール実行エンジン314にロードし、それを実行する。例を示すと、ロードされたルールモジュールが以下の機能、即ち、サービスアプリケーション310及び311用の起動基準及び呼出アクションを特定するルールを含んでいるとする。

Figure 0003982691
5.起動が行われ、特定されたサービスアプリケーションY(310)が、呼出コマンドをアプリケーション実行エンジンマネージャ302に送信することによって呼び出される。 4). The rule engine 303 loads the rule module 308 detected from the execution rule base 307 to the rule module execution engine 314 and executes it. By way of example, assume that the loaded rule module contains rules that specify the following functions: activation criteria and call actions for service applications 310 and 311.
Figure 0003982691
5). Activation is performed and the identified service application Y (310) is called by sending a call command to the application execution engine manager 302.

6.アプリケーション実行エンジンマネージャ302は、アプリケーションY(310)を配置する。   6). The application execution engine manager 302 arranges the application Y (310).

7.アプリケーション実行エンジンマネージャ302は、関連サービスアプリケーションY(310)をアプリケーション実行エンジン315にロードし、続いて、それを実行するために有効化する。   7. The application execution engine manager 302 loads the associated service application Y (310) into the application execution engine 315 and subsequently validates it for execution.

8.アプリケーション310から得られる命令は、ルールエンジン303に戻される。   8). The instruction obtained from the application 310 is returned to the rule engine 303.

9.ルールエンジン303は、ルールモジュールの処理を再開し、別のアプリケーションZ(311)を起動する。呼出コマンドは、アプリケーション実行エンジンマネージャ302に与えられる。   9. The rule engine 303 resumes the processing of the rule module and starts another application Z (311). The call command is given to the application execution engine manager 302.

10.アプリケーション実行エンジンマネージャ302は、アプリケーションZ(311)を配置する。   10. The application execution engine manager 302 arranges the application Z (311).

11.アプリケーション実行エンジンマネージャ302は、関連サービスアプリケーションZ(311)をそのアプリケーションを実行できる実行エンジン315にロードし、続いて、それを有効化する。   11. The application execution engine manager 302 loads the associated service application Z (311) into the execution engine 315 that can execute the application and subsequently validates it.

12.アプリケーション311から得られる命令は、ルールエンジン303に戻される。   12 The instruction obtained from the application 311 is returned to the rule engine 303.

13.ルールエンジン303は、ルールモジュールの処理を再開し、ルールモジュールがこれ以上実行するルールがないこと、かつロードするルールモジュールがこれ以上ないことを検出する。   13. The rule engine 303 resumes the processing of the rule module, and detects that there are no more rules to be executed by the rule module and that there are no more rule modules to be loaded.

14.SIPデフォルト行動306は、ルールエンジン303からの出力と、得られるデフォルト出力とをマージし、SIPメッセージをメッセージパーサ/コンバータ305へ送信する。   14 The SIP default action 306 merges the output from the rule engine 303 and the resulting default output and sends a SIP message to the message parser / converter 305.

15.SIPメッセージは、例えば、プロキシ化されている。   15. The SIP message is proxyed, for example.

複数のルールモジュールの場合、上記のステップ13及び14は、選択的には、以下のようにしても良い。   In the case of a plurality of rule modules, the above steps 13 and 14 may be selectively performed as follows.

13.ルールエンジン303は、ルールモジュールの処理を再開し、かつルールモジュールがこれ以上実行するルールがないことを検出する。ルールエンジン303は、以前に実行されているルールモジュールより優先度が低いルールモジュールを検索する。   13. The rule engine 303 resumes the processing of the rule module and detects that there are no more rules that the rule module executes. The rule engine 303 searches for a rule module having a lower priority than the previously executed rule module.

14.上述の例のポイント3へ進む。ルールモジュールが、上述の例のものとして実行されることが検出される場合、呼出可能な他のアプリケーション、例えば、アプリケーション309が呼び出される。   14 Proceed to point 3 in the above example. If it is detected that the rule module is executed as in the above example, another callable application, for example, application 309 is called.

セッションを制御するためのルールモジュールあるいはサービスがインストールされていない場合、ルールエンジン303は制御をSIPサーバへハンドオーバし、空出力を指定する。SIPサーバは、レジスタ、リダイレクトサーバ及びプロキシサーバ用のデフォルトSIP行動に従うSIP−CGIのように、できる限り、空出力とサーバのデフォルト行動306をマージする。   If the rule module or service for controlling the session is not installed, the rule engine 303 hands over control to the SIP server and designates empty output. The SIP server merges the empty output and the server default behavior 306 as much as possible, such as SIP-CGI that follows the default SIP behavior for registers, redirect servers and proxy servers.

図4は、本発明の実施形態に従うルールモジュールの構造を示している。本発明に従えば、ルールモジュール400は、概念的には、いくつかのサービス実行ルール401〜402からなるツリーであり、各ルールは、いくつかの状態403〜404及び405と、いくつかのアクション406〜407及び408を特定し、これらは、対応する状態が満足する場合に必要とされる。以下では、状態は、パターンと呼ばれる。最上位レベルで、ルールモジュールは、更に、以下のようになる。   FIG. 4 shows the structure of a rule module according to an embodiment of the present invention. In accordance with the present invention, the rule module 400 is conceptually a tree of a number of service execution rules 401-402, each rule having a number of states 403-404 and 405 and a number of actions. 406-407 and 408 are identified and are required if the corresponding state is satisfied. In the following, the state is called a pattern. At the highest level, the rule module is further as follows:

−所有者情報409は、ルールモジュールの所有者、即ち、注目のSIPノードを有する識別可能なパーティを特定する。このパーティは、複数のルールモジュールを所有しても良い。所有者情報は、更に、契約関係についての情報を含んでいても良い。   -Owner information 409 identifies the owner of the rule module, i.e. the identifiable party that has the SIP node of interest. This party may own multiple rule modules. The owner information may further include information on the contract relationship.

−プロトコル情報410は、ルールモジュールのルールを解釈するためのコンテキストを特定する。プロトコルの例は、SIP、SDP、HTTP、H.323等がある。好ましくは、これらは、ルールモジュール毎に1つのプロトコルのみが定義されるべきである。そうでなければ、いくつかが重複する場合は、多義性の解釈が与えられる。例えば、SIP及びHTTPの両方は、コンテンツタイプヘッダフィールドを有している。   -Protocol information 410 identifies the context for interpreting the rules module rules. Examples of protocols are SIP, SDP, HTTP, H.264. 323 etc. Preferably, these should define only one protocol per rule module. Otherwise, if some overlap, an ambiguity interpretation is given. For example, both SIP and HTTP have a content type header field.

−アクセス制御情報411は、どのパーティが、ルールモジュールを呼び出し、管理し、かつ読み出す権利を有しているかを特定する。   The access control information 411 identifies which party has the right to call, manage and read the rule module.

ルールモジュールは、更に、ルールモジュール及びインデックス情報414用の更なるコンテキスト情報を提供する補助情報を更に持つことができる。   The rule module may further have auxiliary information that provides further context information for the rule module and index information 414.

パターン403〜405は、イベントコンテキスト内のメッセージプロパティに関して評価できる表現であり、かつコンテキスト内のプロパティを照合するために、ルールが照合するがしないかに関して評価できる表現である。アクション506〜408は、アプリケーション、ビルトインサービスフィーチャ、リモートサーバ、負荷共有ホストあるいは呼出対象の次のホップSIPサーバを識別することができる。これらは、更に、ダウンロードされ、かつ外部に配置されたアクションオブジェクト等を識別することができる。ルール、状態及びアクションは、これらの行動を記述するパラメータを持つことができ、これらは、ツリーノードの属性である。ブランチは、どのブランチが最初に処理されるべきかを示す重みを有している。   The patterns 403 to 405 are expressions that can be evaluated with respect to the message property in the event context, and expressions that can be evaluated with respect to whether or not the rule matches in order to match the property in the context. Actions 506-408 may identify an application, a built-in service feature, a remote server, a load sharing host, or a next hop SIP server to be called. They can further identify action objects that have been downloaded and placed externally. Rules, states, and actions can have parameters that describe these behaviors, which are attributes of the tree node. The branches have a weight that indicates which branch should be processed first.

好ましくは、各ルールモジュールは、それに割り当てられた系統立てられた順序の優先度、即ち、ルールモジュールがルールエンジンによってロードされる場合のシーケンスを特定する順位優先度を有している。   Preferably, each rule module has a prioritized order of priority assigned to it, i.e. a priority order that identifies the sequence in which the rule module is loaded by the rule engine.

本発明の実施形態に従えば、グラフィカル表現のツリーのノードは、XML要素によって表現される。1つのノードから次のノードへのブランチは、分岐しているノードを表現する要素内の次のノード(群)を表現する要素を囲むことによって表現される。分岐の重みは、スクリプトで表現される場合の順序によって与えられる。この重みは、イベントが受信される場合に要素を処理する順序を与える。換言すれば、スクリプトは、最上部から最下部まで実行される。つまり、本実施形態では、SERLスクリプト内ではループは存在しない。好ましくは、ルールモジュールのフォーマットは、XML DTDあるいはXMLスキーマとして特定される。   According to an embodiment of the present invention, the nodes of the graphical representation tree are represented by XML elements. A branch from one node to the next node is represented by surrounding an element representing the next node (s) within the element representing the branching node. The weight of the branch is given by the order in which it is expressed by a script. This weight gives the order in which elements are processed when an event is received. In other words, the script is executed from the top to the bottom. That is, in this embodiment, there is no loop in the SERL script. Preferably, the format of the rule module is specified as XML DTD or XML schema.

本実施形態の効果は、言語を特定するための標準化拡張言語に基づいていることである。   The effect of this embodiment is based on a standardized extended language for specifying a language.

本発明の実施形態では、ポリシーは、権限及び権利を特定するルールに関連づけることができる。ルールモジュールの各ノードは、関連づけられたポリシーノードを有することができ、アクセス制御リストを含むことができる。   In embodiments of the present invention, policies can be associated with rules that specify authority and rights. Each node of the rule module can have an associated policy node and can include an access control list.

以下は、SERLスクリプトとして特定されるルールモジュールのインスタンスの例である。:

Figure 0003982691
図5は、本発明の実施形態に従って、制約のあるサービスのセットへのサービスのグルーピングを示している。本実施形態に従えば、サービス501〜508は、フィーチャグループ509〜510のセットにグループ化されている。図5に示される例では、フィーチャグループ509はフィーチャ501〜504を含み、フィーチャグループ510はフィーチャ505〜508を含んでいる。各フィーチャグループに対し、ある制約が、そのグループのサービスに課されている、即ち、それは、予め定義されているタイプの命令を発行することのみ許容されている。フィーチャグループは、1つのフィーチャがフィーチャグループ内でどのように相互作用を行うことを許可されているかを特定しないばかりか、それらはグループ行動における制約を違反しない。フィーチャグループは、例えば、フィーチャグループを数え上げることによって、連続して順序が付けられる。図5の例では、フィーチャグループ509は、フィーチャグループのシーケンスのK番目のフィーチャグループであり、かつフィーチャグループ510はK+1に数えられる。フィーチャグループの順序付けは、実行順序を課しており、そうすることで、フィーチャグループ509のフィーチャは、グループ510のフィーチャを実行する前に実行される。好ましくは、フィーチャグループの定義は、例えば、グループインデックスを特定することによって、あるいは直前及び次のフィーチャグループを特定することによって、あるいはその類を特定することによって、グループの順序付けの仕様を示すものである。好ましくは、フィーチャグループの定義は、更に、前の状態、即ち、フィーチャグループのフィーチャの定義が依存する状態の仕様と、フィーチャグループのサービスの行動に従う制約の仕様を示しても良い。ここで、フィーチャグループは、サービスが呼び出される場合に順序付けされたシーケンスを提供することによってフィーチャ相互作用の基本的なタイプを形式化する順序付けメカニズムである。それゆえ、このメカニズムは、フィーチャ相互作用の問題を、制約のあるフィーチャのセットにグルーピングするフレームワークを提供する。このメカニズムは、実際にはこれらのフィーチャグループ間のフィーチャ相互作用を解決する、これは、フィーチャグループの制約によって、あるグループから次のグループへ制御をハンドオーバする場合のフィーチャ仮定が判定され、かつ予め定義されるからである。グルーピングの利点は、フィーチャ相互作用解析の問題を、より小さく個別の問題に分解するメカニズムを提供する、これによって、この問題の管理をより容易にする。また、形式化された問題の部分は個々のパーティに委任することができるので、この問題をよりスケーラブルにする。フィーチャグループのメカニズムは、管理者及びサービスプロバイダに、サービスアプリケーションが呼び出されるべき処理時間中の異なるポイントにサービスアプリケーションをカテゴライズする機能を与える。 The following is an example of an instance of a rule module identified as a SERL script. :
Figure 0003982691
FIG. 5 illustrates the grouping of services into a constrained set of services in accordance with an embodiment of the present invention. According to this embodiment, services 501-508 are grouped into sets of feature groups 509-510. In the example shown in FIG. 5, feature group 509 includes features 501-504, and feature group 510 includes features 505-508. For each feature group, certain constraints are imposed on the service of that group, i.e. it is only allowed to issue predefined types of instructions. Feature groups not only specify how one feature is allowed to interact within a feature group, but they do not violate constraints on group behavior. Feature groups are ordered sequentially, for example by enumerating feature groups. In the example of FIG. 5, feature group 509 is the Kth feature group in the sequence of feature groups, and feature group 510 is counted as K + 1. Feature group ordering imposes an execution order so that features in feature group 509 are executed before executing the features in group 510. Preferably, the definition of a feature group indicates a group ordering specification, for example, by specifying a group index, by specifying the previous and next feature group, or by specifying the kind. is there. Preferably, the definition of the feature group may further indicate a specification of the previous state, i.e. the state on which the feature definition of the feature group depends, and a specification of the constraint according to the service behavior of the feature group. Here, a feature group is an ordering mechanism that formalizes the basic type of feature interaction by providing an ordered sequence when the service is invoked. This mechanism therefore provides a framework for grouping feature interaction problems into a constrained set of features. This mechanism actually solves the feature interaction between these feature groups, because the feature group constraints determine the feature assumptions when handing over control from one group to the next, and in advance Because it is defined. The benefits of grouping provide a mechanism that breaks the problem of feature interaction analysis into smaller, individual problems, thereby making it easier to manage. Also, the formalized problem part can be delegated to individual parties, making this problem more scalable. The feature group mechanism gives administrators and service providers the ability to categorize service applications at different points in the processing time at which the service application should be invoked.

図6は、本発明の実施形態に従う再帰SIPメッセージフローにおいて、サービスの対応する位置で、制約のあるサービスのセットへのサービスのグルーピングを示している。本実施形態に従えば、フィーチャグループは、論理的なリクエスト/応答再帰メッセージフローの位置P1〜P6に関連していて、このフローはイベントコンテキストに対して保証されているある前提状態を有しており、ここでは、サービスアプリケーションは、この行動がその位置で許容されるかについての制約に基づいて呼び出される。これらのフィーチャグループは、処理ポイントと呼ばれる。   FIG. 6 illustrates the grouping of services into a constrained set of services at the corresponding location of the service in a recursive SIP message flow according to an embodiment of the present invention. According to this embodiment, a feature group is associated with logical request / response recursive message flow positions P1-P6, which has certain preconditions that are guaranteed for the event context. Here, the service application is invoked based on constraints on whether this behavior is allowed at that location. These feature groups are called processing points.

6つの処理ポイントP1〜P6が、サービスの通常のグルーピングである。処理ポイントP1〜P3とP4〜P6は、対応する問題に論理的に対処する。処理ポイントP1〜P3は、リクエスト607で起動されるサービスを含み、処理ポイントP4〜P6は、応答608で起動されるサービスを含んでいる。論理的には、処理ポイントP1とP4、処理ポイントP2とP5及び処理ポイントP3とP6は、対応する制約に対応している。   Six processing points P1 to P6 are normal groupings of services. Processing points P1-P3 and P4-P6 logically address the corresponding problem. The processing points P1 to P3 include services activated by the request 607, and the processing points P4 to P6 include services activated by the response 608. Logically, process points P1 and P4, process points P2 and P5, and process points P3 and P6 correspond to corresponding constraints.

SIPメッセージは、大きく2つの部分に分けることができ、これは、シグナリングプロパティ、即ち、SIP、SDP等に関連するプロパティと、gif、html等のシグナリングに関連しないメッセージ本体のコンテンツである。それゆえ、SIPイベントで起動されるサービスは、以下のものにグループ化することができる。   SIP messages can be broadly divided into two parts: signaling properties, i.e. properties related to SIP, SDP, etc., and content of the message body not related to signaling, such as gif, html, etc. Therefore, services that are activated by SIP events can be grouped into:

−シグナリングプロパティに埋め込むグループ
−非シグナリングメッセージ本体のコンテンツのみに埋め込むグループ
−シグナリングプロパティでも非シグナリングメッセージ本体のコンテンツでもないものに埋め込むグループ
これは、3つの処理ポイントP1〜P3、それぞれに関連する3つのグループ601〜603へのサービスの基本的なグルーピングを行う。同様に、応答パスにおいて、対応するグループ604〜606は、それぞれ処理ポイントP4〜P6に関連している。
-A group to be embedded in the signaling property-A group to be embedded only in the content of the non-signaling message body-A group to be embedded in neither the signaling property nor the content of the non-signaling message body This includes three processing points P1-P3, Basic grouping of services to the groups 601 to 603 is performed. Similarly, in the response path, the corresponding groups 604-606 are associated with processing points P4-P6, respectively.

ここで、シグナリングプロパティという用語は、サービスを呼ぶ出すためのルールモジュール状態で照合可能なSIP及びSDPメッセージプロパティを示している。従って、シグナリングプロパティを変更するアプリケーションは、別の呼出対象のアプリケーションを発生する可能性があり、更に、別のアプリケーションを次々と呼び出す可能性がある。シグナリングプロパティに対する変更がすべて発生した後に、シグナリングプロパティを変更しないサービスアプリケーションの処理を処理ポイントに移動する利点は、管理者にとって、処理ポイントP2とP5でアプリケーションの順序付けにおけるタスクが容易となることである。   Here, the term signaling property indicates SIP and SDP message properties that can be collated in the state of a rule module for calling a service. Therefore, the application that changes the signaling property may generate another application to be called, and may call another application one after another. The advantage of moving service application processing that does not change signaling properties to processing points after all changes to signaling properties have occurred is that the administrator can easily perform tasks in ordering applications at processing points P2 and P5. .

本発明の実施形態では、処理ポイントP1〜P6は、以下のように定義することができる。   In the embodiment of the present invention, the processing points P1 to P6 can be defined as follows.

−処理ポイントP1−前のホップクライアントリクエスト:直前のホップクライアントからのSIPリクエスト607が受信される。この特定のリクエストと特定の加入者に対しては、任意の以前の処理ポイントではルールモジュールは呼び出されていない。この処理ポイントは、メッセージ本体コンテンツ以外で得られるメッセージ(群)のSIP/SDPシグナリングプロパティを埋め込むサービスを有している。   Processing point P1—Previous hop client request: A SIP request 607 from the previous hop client is received. For this particular request and a particular subscriber, no rule module has been invoked at any previous processing point. This processing point has a service that embeds SIP / SDP signaling properties of the message (s) obtained outside the message body content.

−処理ポイントP2−リクエストコンテンツポイント:得られるSIP/SDPメッセージ(群)のシグナリングプロパティが生成され、かつキャッシュされている、即ち、SIPメッセージの部分が送信される状態にある。発信/メディア制御シグナリングプロパティへの追加の更新は、明示的に認証されていない限り、発生すべきではない。処理ポイントP2で呼び出されるサービス602は、処理ポイントP1で生成されるSIP/SDPシグナリングプロパティを埋め込むべきではない。しかしながら、これらは、そのルール以外となり得る。例えば、サービスは、アラート情報、発信情報、コンテンツ配置、コンテンツエンコーディング、コンテンツ言語、コンテンツ長、コンテンツタイプ及び条件のようなSIPヘッダを埋め込むことができる。これらのシグナリングプロパティが、処理ポイントP1及びP2の両方で変更される場合、十分な注意を払うべきである。この処理ポイントで処理することができるメディアコンテンツのタイプの例は、SOAP、HTML、vXML、SMIL、gif、mpeg7、au等を含んでいる。   -Processing point P2-Request content point: The signaling properties of the resulting SIP / SDP message (s) have been generated and cached, i.e. a part of the SIP message is being sent. Additional updates to outgoing / media control signaling properties should not occur unless explicitly authenticated. The service 602 called at the processing point P2 should not embed the SIP / SDP signaling property generated at the processing point P1. However, these can be other than the rules. For example, the service can embed SIP headers such as alert information, outgoing information, content placement, content encoding, content language, content length, content type and conditions. Great care should be taken if these signaling properties are changed at 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, and the like.

−処理ポイントP3−リクエストバッチポイント:SIP処理メッセージ(群)が、生成され、送信されている。処理メッセージ(群)へのこれ以上の更新は発生することができない。呼び出される必要はあるが、リクエストを処理するために必要とされるものを生成しない、かつ出力しないサービス603に、処理ポイントは対応する。これらのサービスは、処理メッセージ(群)を読み出すだけで、それを更新することはできない。   -Processing point P3-Request batch point: SIP processing message (s) are generated and transmitted. No further updates to the processing message (s) can occur. The processing point corresponds to a service 603 that needs to be invoked but does not generate and output what is needed to process the request. These services only read the processing message (s) and cannot update it.

処理ポイントである、
−P4−前のホップサーバ応答
−P5−応答コンテンツポイント
−P6−応答バッチポイント
は、処理ポイントP1〜P3と同様に、応答メッセージ608に対してそれぞれ定義することができる。
Processing point,
-P4-Previous hop server response -P5-Response content point -P6-Response batch point can be defined for response message 608, respectively, similar to processing points P1-P3.

選択的にはあるいは更には、他の処理ポイントを定義することができる。例えば、追加の処理ポイントP0(不図示)は、フィーチャにおける制約なしに定義することができ、これは、任意のイベントにおいて、即ち、リクエスト607及び608の両方の受信において起動される。   Alternatively or additionally, other processing points can be defined. For example, an additional processing point P0 (not shown) can be defined without any constraints on the feature, which is triggered at any event, ie upon receipt of both requests 607 and 608.

好ましくは、追加の処理ポイントを、上位レベルの処理ポイントの1つに関連づけることができる。例えば、処理ポイントP1に対して定義することができるサブ処理ポイントは、P1.1、P1.2、P1.2.1、P1.2.2等で示すことができる。好ましくは、特定された前の状態に従って呼び出されることが有益となり得るサービスの論理的なグループを処理ポイントが定義する場合、新規の処理ポイントのみが定義されるべきである。   Preferably, the additional processing point can be associated with one of the higher level processing points. For example, sub-processing points that can be defined for processing point P1 can be indicated by P1.1, P1.2, P1.2.1, P1.2.2, and the like. Preferably, only new processing points should be defined if the processing points define a logical group of services that can be beneficial to be invoked according to the identified previous state.

以下のテーブルは、いくつかのサービスの例を含んでおり、これは、発信(originating)及び着信(terminating)SIPサーバでの様々な処理ポイントで定義することができる。

Figure 0003982691
図7は、本発明の実施形態に従う様々な処理ポイントに属するサービス間の処理フローを示している。図6で説明した実施形態では、SIPメッセージの様々な部分を埋め込むサービスは、様々な処理ポイントにグループ化されている。これは、サービスを有効に処理するために利用することができる。着信メッセージ701のSIPシグナリングプロパティを埋め込むサービスは、処理ポイントP1に含まれている。それゆえ、処理ポイントP1からの出力は、最終の発信/メディア制御命令702を有している。これは、直ちに、可能なSIPサーバデフォルト行動とマージすることができ、発信SIPメッセージ703を用意するメッセージコンバータ705へハンドオーバすることができる。加えて、処理ポイントP2で呼び出されるサービスは、シグナリングプロパティがこれ以上変化することがないことを信頼することができる、例えば、これらのサービスは、最終的に生成された宛先アドレスに依存するサービスに信頼性を与えることができる。 The following table contains some example services, which can be defined at various processing points at the originating and terminating SIP server.
Figure 0003982691
FIG. 7 shows a processing flow between services belonging to various processing points according to an embodiment of the present invention. In the embodiment described in FIG. 6, services that embed various parts of a SIP message are grouped into various processing points. This can be used to effectively process the service. A service for embedding the SIP signaling property of the incoming message 701 is included in the processing point P1. Therefore, the output from processing point P 1 has a final originating / media control instruction 702. This can be immediately merged with possible SIP server default behavior and handed over to the message converter 705 that prepares the outgoing SIP message 703. In addition, the services invoked at processing point P2 can trust that the signaling properties will not change any further, for example, these services are services that depend on the final generated destination address. Reliability can be given.

処理ポイントP2の非シグナリングSIPメッセージ本体コンテンツのみ(かつ可能であれば、関連コンテンツヘッダフィールド)を埋め込むサービスを集約することによって、得られる発信SIPメッセージ(群)703をサーバに対して実際に送信するための、処理ポイントP2からの出力704が十分に存在する。処理ポイントP2からの出力704は、メッセージコンバータ705へハンドオーバされ、処理ポイントP1からの出力702とマージされ、メッセージ703が送信される。   Actually send the resulting outgoing SIP message (s) 703 to the server by aggregating services that embed only non-signaling SIP message body content (and possibly related content header fields) at processing point P2. There is a sufficient output 704 from the processing point P2. Output 704 from processing point P2 is handed over to message converter 705, merged with output 702 from processing point P1, and message 703 is transmitted.

処理ポイントP1及びP2からの出力が存在する場合、処理P3に到達される。処理ポイントP3のサービスは、得られるSIPメッセージ703のコンテンツを埋め込まないが、それを信頼することができる。ここで、好ましくは、処理ポイントP1及びP2から生成されるSIPメッセージは、処理ポイントP3に対するサービスの実行を待機する前に送信されても良く、これによって、システムの効率が向上する。   If there are outputs from processing points P1 and P2, processing P3 is reached. The service at processing point P3 does not embed the content of the resulting SIP message 703, but can trust it. Here, preferably, the SIP messages generated from the processing points P1 and P2 may be transmitted before waiting for the execution of the service for the processing point P3, thereby improving the efficiency of the system.

ここで、処理ポイントに従うサービスのグルーピングは以下の効果を有している:処理ポイントは、フィーチャ相互作用の問題を簡単化する。処理ポイントは、フィーチャ相互作用の問題をよりスケーラブルにする。処理ポイントは、並行処理、即ち、マルチプロセッサを使用する場合に、処理メッセージの待ち時間を改善する。応答あるいはプロキシリクエストは、ネットワークにより早くハンドバックすることができる、これは、SIPサーバへの命令を特定しないサービスアプリケーションが処理ポイントP3に配置されているからである。ここで、応答あるいはプロキシリクエストは、呼出対象の処理ポイントP3のサービスアプリケーションを待機する必要はない。   Here, the grouping of services according to processing points has the following effect: Processing points simplify the problem of feature interaction. Processing points make feature interaction issues more scalable. Processing points improve processing message latency when using parallel processing, i.e., using multiple processors. The response or proxy request can be handed back faster to the network because a service application that does not specify a command to the SIP server is located at the processing point P3. Here, the response or the proxy request does not need to wait for the service application at the processing point P3 to be called.

図8は、本発明の実施形態に従う管理権限に対応するルールモジュールへのサービスのグルーピングを示している。ルールモジュールは、それに関連するルールモジュール所有者を有しているので、これらは、管理者、即ち、ルールモジュール所有者がサービス配置ポリシーを特定することができる管理ドメインに対応する。ルールモジュール内では、アクションの順序は、ルールモジュールの所有者、即ち、SERLスクリプトの著作者によって割り当てられる。   FIG. 8 shows grouping of services into rule modules corresponding to management rights according to an embodiment of the present invention. Since a rule module has a rule module owner associated with it, they correspond to an administrator, i.e., a management domain in which the rule module owner can specify a service placement policy. Within the rule module, the order of actions is assigned by the rule module owner, ie, the author of the SERL script.

本発明の実施形態に従えば、各ルールモジュールは、自身に割り当てれている優先度を有している。優先度は、ルールモジュール間の関係を特定する。より上位のルールモジュール優先度のルールモジュールでは、より早いルールが適用される。図8は、2つのルールモジュール801及び802を示している。ルールモジュール801は、管理者Aによって所有され、一方、ルールモジュール802は、管理者Bによって所有される。ルールモジュール801〜802のルールモジュール優先度は、ルールモジュールの順序によって示される、ここで、下位の順序が上位優先度に対応し、かつ上位の順序が下位優先度に対応する。例えば、ルール順序1は、最上位優先度として定義される。図8の例では、ルールモジュール801は、ルールモジュール順次hを有し、ルールモジュール802はルールモジュール順序h+1を有している。その結果、ルールモジュール801によって呼び出されるサービス803〜804は、ルールモジュール802のサービス805の前に実行される。   According to an embodiment of the present invention, each rule module has a priority assigned to it. The priority specifies the relationship between rule modules. In a rule module having a higher rule module priority, an earlier rule is applied. FIG. 8 shows two rule modules 801 and 802. The rule module 801 is owned by the administrator A, while the rule module 802 is owned by the administrator B. The rule module priorities of the rule modules 801 to 802 are indicated by the order of the rule modules. Here, the lower order corresponds to the upper priority, and the upper order corresponds to the lower priority. For example, rule order 1 is defined as the highest priority. In the example of FIG. 8, the rule module 801 has a rule module order h, and the rule module 802 has a rule module order h + 1. As a result, the services 803 to 804 called by the rule module 801 are executed before the service 805 of the rule module 802.

同一の所有者を有するルールモジュールは、同一の順序付け優先度を持つことができる。好ましくは、この場合、それらは、様々なイベントコンテキスト(例えば、SIP、HTTP、....)を持つべきであり、これにより、同一の優先度を有する1つ以上のルールモジュールが同一のイベントコンテキストで呼び出されることを防止する。換言すれば、与えられているイベントコンテキストから同一のメッセージプロパティで呼び出すことができるルールモジュールは、異なるプロパティを有している。   Rule modules with the same owner can have the same ordering priority. Preferably, in this case, they should have different event contexts (e.g. SIP, HTTP, ...) so that one or more rule modules with the same priority have the same event Prevent being called in context. In other words, rule modules that can be called with the same message properties from a given event context have different properties.

各管理ドメインは、他の管理ドメインと独立している。これは、ある管理ドメインが他のドメインに配置されているサービスの知識を持つ必要がないことを意味している。各管理者は、与えられているドメインのサービス配置ポリシーを解析し、かつ特定することができる。   Each management domain is independent of other management domains. This means that one management domain need not have knowledge of services located in other domains. Each administrator can analyze and specify a service placement policy for a given domain.

1つ以上のルールモジュールあるいはサービスアプリケーションが、与えられているイベントで呼び出される場合、これらはそれぞれ、フィーチャ命令のセットを提供し、これは、このイベントがどのようにして処理されるか、例えば、イベントが処理されるべきかあるいは終了されるべきかを特定する。厳密には、このようなフィーチャ命令は、同時に処理されるべきではなく、かついくつかのフィーチャ命令が互いに無効化する可能性がある。しかしながら、いくつかの場合では、どの順序でフィーチャ命令が適用されるかあるいはそれらが同時に適用されるかが重要でない場合がある。   If one or more rule modules or service applications are invoked at a given event, each provides a set of feature instructions, which are how this event is handled, eg Specifies whether the event should be processed or ended. Strictly speaking, such feature instructions should not be processed simultaneously, and several feature instructions may invalidate each other. However, in some cases it may not be important in which order the feature instructions are applied or they are applied simultaneously.

本発明に従えば、制御を他の管理ドメインにハンドオーバする場合には、管理ドメインにそれらのフィーチャ命令を保護することを可能にするメカニズムが提供される。これは、各管理ドメインが、自身のフィーチャの正規の行動に対して重要でないプロパティへ制御をハンドオーバすることを制限できることを意味する。あるサービスから別のサービスへ渡されるオブジェクトは、カレントイベントコンテキスト806〜807である。好ましくは、同一の管理ドメインに属するサービスアプリケーション間のイベントコンテキスト806の制御をハンドオーバする場合、デフォルトルールは、イベントコンテキストのプロパティが保護されない。いくつかのものを保護しなければならない場合、それは明示的に実行されなければならない。しかしながら、管理ドメイン間では、イベントコンテキスト807のすべてのプロパティが、デフォルトで保護される。いくつかのものを管理ドメイン間で保護する必要がない場合、それは、明示的に保護されていないことを示さなければならない。好ましくは、保護される及び保護されない少なくとも一方のプロパティを示すための権利は、ルールモジュールに関連する特権によって決定されるべきである。   In accordance with the present invention, a mechanism is provided that allows the management domain to protect those feature instructions when control is handed over to another management domain. This means that each management domain can be restricted from handing over control to properties that are not critical to the normal behavior of its features. Objects passed from one service to another are current event contexts 806-807. Preferably, when the control of the event context 806 between service applications belonging to the same management domain is handed over, the default rule does not protect the property of the event context. If several things must be protected, it must be done explicitly. However, between administrative domains, all properties of event context 807 are protected by default. If some need not be protected between administrative domains, it must indicate that it is not explicitly protected. Preferably, the right to indicate protected and / or unprotected properties should be determined by the privileges associated with the rule module.

換言すれば、より上位のプロパティルールモジュールは、それらがメッセージプロパティをロックする特権を有している場合に、そのメッセージプロパティをロックすることができ、かつロックされたメッセージプロパティは、ルールモジュールがメッセージプロパティをアンロックする特権を持たない限り、ルールモジュールによってアンロックすることができない。   In other words, higher level property rule modules can lock their message properties if they have the privilege to lock the message properties, and locked message properties are Unless you have the privilege to unlock properties, you cannot unlock them with a rule module.

以下の、ルールモジュールのフラグメントの例は、フィーチャF1が実行された後のメッセージプロパティのロッキング/アンロッキングを示している。

Figure 0003982691
本発明の実施形態では、アクション出力は、ルールモジュールで終了することができる、即ち、ダウンストリームアプリケーションは呼び出されない。また、アクションは、カレントイベントコンテキストのメッセージプロパティに明示的に特権を設定することができる、これは、それらがそのような特権を有している場合である。本実施形態の効果は、優先度が一旦割り当てられると、管理ドメインは独立することである。 The following example rule module fragment shows the locking / unlocking of message properties after feature F1 has been executed.
Figure 0003982691
In an embodiment of the invention, the action output can be terminated in the rule module, i.e. no downstream application is invoked. Actions can also explicitly set privileges on the message properties of the current event context, if they have such privileges. The effect of this embodiment is that the management domain is independent once priority is assigned.

本実施形態に従えば、総合管理者は、ルールモジュールの所有者それぞれの契約関係に基づいて、ルールモジュールのプロパティあるいはプロパティの範囲を割り当てる。総合ドメイン管理者は、通常、最上位のプロパティルールモジュールの所有者でもある。例えば、階層の上位には、ホストのドメイン名及びIPアドレスを所有するSIPサービスサービスプロバイダが存在する。SIPサービスプロバイダは、多くのサービスを多くのパーティに提供することができる。SIPサービスプロバイダは、自身の目的のために、例えば、ロギング、アカウンティング(acounting:アカウント取得)、統計処理、不正検出、広告処理等のために、アプリケーションを実行することもできる。SIPサービスプロバイダは、サーバに1つ以上のルールモジュールを配置することができる。   According to the present embodiment, the general manager assigns the rule module property or property range based on the contract relationship of each rule module owner. The general domain administrator is also usually the owner of the top-level property rule module. For example, at the upper level of the hierarchy is a SIP service service provider that owns the domain name and IP address of the host. SIP service providers can provide many services to many parties. SIP service providers can also run applications for their own purposes, for example for logging, accounting, statistical processing, fraud detection, advertising processing, etc. The SIP service provider can place one or more rule modules on the server.

例えば、SIPサービスプロバイダは、自身の加入者それぞれに対してルールモジュールを配置することができる。SIPイベントがSIPサーバで受信された場合、SIPサービスプロバイダのメインルールモジュールは、いくつかの自身のサービスを呼び出すことができ、かつ適切な加入者に対するルールモジュールへ制御をハンドーバする。このルールモジュールでは、特定加入者に対して設計されているサービスを起動するルールが存在しても良い。これらのサービスは、SIPサービスプロバイダによって、あるいはサードパーティサービスプロバイダから譲渡されたSIPサービスプロバイダによって提供されても良い。SIPサービスプロバイダは、好ましくは、SERLを使用することによって、これらのサービス間のフィーチャ相互作用問題を解析し、かつサービスアプリケーション間の順序優先度と命令優先度を特定することができる。この場合、メインルールモジュールと加入者ルールモジュールの両方が、SIPサービスプロバイダによって所有され、かつ管理される。これらは、1つの管理ドメインに存在していると言える。順序優先度のいくつかのポイントで、SIPサービスプロバイダは、加入者自身によって所有されるルールモジュールへハンドオーバすることを決定することができる。ここで、個々の加入者は、自身が所有するSERLスクリプトを記述することができる、あるいは、例えば、HTML形式を介して生成されるSERLスクリプトのプリファレンスを更新することがだけができることに注意されたい。加入者のルールモジュールは、CPLスクリプトを呼び出すことができる、あるいは、逆に、別のルールモジュール、いくつかのサードパーティサービスプロバイダのルールモジュールあるいはその類を呼び出すことができる。加入者のルールモジュールが1つ以上のアクションを含んでいる場合、加入者は、どのアクションがまず実行されるべきかを特定しなければならない。同様に、サードパーティルールモジュールでは、アクションは、サードパーティの要望に従って、順序付けされなければならない。   For example, a SIP service provider can place a rule module for each of its subscribers. When a SIP event is received at a SIP server, the SIP service provider's main rule module can invoke several of its own services and hands over control to the rule module for the appropriate subscriber. In this rule module, there may be a rule for starting a service designed for a specific subscriber. These services may be provided by a SIP service provider or by a SIP service provider transferred from a third party service provider. SIP service providers are preferably able to use SERL to analyze feature interaction issues between these services and to identify order and command priorities between service applications. In this case, both the main rule module and the subscriber rule module are owned and managed by the SIP service provider. These can be said to exist in one management domain. At some point in order priority, the SIP service provider may decide to hand over to a rule module owned by the subscriber himself. Here, it is noted that individual subscribers can write their own SERL scripts or can only update SERL script preferences, eg, generated via HTML format. I want. A subscriber's rule module can call a CPL script, or conversely, call another rule module, some third party service provider's rule module, or the like. If the subscriber's rule module contains more than one action, the subscriber must specify which action should be performed first. Similarly, in a third party rule module, actions must be ordered according to third party requirements.

別の状況では、加入者は、企業消費者の従業員である場合がある。この場合、SIPサービスプロバイダのルールモジュールは、まず、いくつかのアプリケーションを呼び出すことができる企業消費者のルールモジュールへハンドオーバしてから、個々の加入者のルールモジュールへハンドオーバすることができる。   In another situation, the subscriber may be an employee of a business consumer. In this case, the SIP service provider's rule module can first be handed over to an enterprise consumer's rule module that can call several applications and then hand over to the individual subscriber's rule module.

上位レベルの管理者は、優先度順序をいくつかのルールモジュールに散在させようとする。しかしながら、これは、他のパーティの下位の優先度のルールモジュールに、ルールモジュールを散在させることは扱いにくい場合がある。この問題に対する1つの解決策は、後で使用することができる十分なバックアップ範囲を有するルールモジュール優先度に分割することである。選択的には、図12で説明されるような、階層管理ドメインモデルを適用することができる。   Higher level administrators try to spread the priority order across several rule modules. However, it can be cumbersome to intersperse rule modules in lower priority rule modules of other parties. One solution to this problem is to divide into rule module priorities with sufficient backup scope that can be used later. Optionally, a hierarchical management domain model as described in FIG. 12 can be applied.

好ましくは、サービスサポート環境は、保護されたプロパティをアプリケーションが変更することを試行する場合に管理者へ通知するメカニズムをサポートする。好ましくは、保護されたプロパティを変更することを試行するアプリケーションは、サービスから取得される。   Preferably, the service support environment supports a mechanism for notifying the administrator when an application attempts to change a protected property. Preferably, the application attempting to change the protected property is obtained from the service.

上述のスキームの変形が可能であることに注意されたい。例えば、管理ドメインの階層では、各レベルの管理者は、下位の優先度のレベルのルールモジュールを割り当てられている優先度範囲内に配置するための絶対的な機会を持つことができる。上位レベルの管理者は、この機会を指定する。   Note that variations on the above scheme are possible. For example, in the management domain hierarchy, each level of administrator can have an absolute opportunity to place a lower priority level rule module within the assigned priority range. The upper level administrator specifies this opportunity.

本実施形態の利点は、サービス配置ポリシーを管理し、かつ実現するためのスケーラブルメカニズムを提供することである。本実施形態に従えば、サービスサポート環境は、ドメイン管理者に対してかなりの余計な作業を行わせることなく、サードパーティサービス配置ポリシーを取り扱うことができる。これは、更に、いくつかの保管人あるいはそれらの間のいくつかの契約関係に制限が設けられるという利点がある。   An advantage of this embodiment is that it provides a scalable mechanism for managing and implementing service placement policies. According to this embodiment, the service support environment can handle third party service placement policies without having the domain administrator perform significant extra work. This has the further advantage that some custodians or some contractual relationships between them are limited.

本実施形態の更なる利点は、フィーチャ相互作用解析のタスクが管理ドメインに小分けされ、これによって、関係のあるパーティ間の問題を分散することを可能にすることである。   A further advantage of this embodiment is that the feature interaction analysis task can be subdivided into administrative domains, thereby allowing problems between related parties to be distributed.

図9は、処理ポイントと管理権限の両方に従ってサービスがグループされる本発明の実施形態を示している。図9は、優先度順序hのルールモジュール901と優先度順序h+1のルールモジュール902を示している。ルールモジュール901は、サービスF1、F2、F5及びF6を呼び出し、一方、ルールモジュール902は、サービスF3、F4、F7及びF8を呼び出す。サービスF1〜F8は、更に、処理ポイント903及び904に関連している。処理ポイント903は、サービスF1〜F4を含み、処理ポイント904はサービスF5〜F8を含んでいる。処理ポイント903はインデックスK、処理ポイント904はインデックスK+1となるように、処理ポイント903〜904に文字が付与されている、これは、処理ポイント903が処理ポイント904の前に処理されることを示している。   FIG. 9 illustrates an embodiment of the present invention in which services are grouped according to both processing points and administrative rights. FIG. 9 shows a rule module 901 with a priority order h and a rule module 902 with a priority order h + 1. Rule module 901 calls services F1, F2, F5 and F6, while rule module 902 calls services F3, F4, F7 and F8. Services F1-F8 are further associated with processing points 903 and 904. The processing point 903 includes services F1 to F4, and the processing point 904 includes services F5 to F8. Characters are assigned to the processing points 903 to 904 so that the processing point 903 is an index K and the processing point 904 is an index K + 1. This indicates that the processing point 903 is processed before the processing point 904. ing.

本実施形態に従えば、ルールは、処理ポイントのシーケンスに適用される。その結果、ルールモジュールを処理する場合、現在の処理ポイントに属するサービス実行ルールだけが実行される。   According to this embodiment, the rule is applied to a sequence of processing points. As a result, when processing the rule module, only the service execution rule belonging to the current processing point is executed.

各処理ポイントに対して、優先度に従ってグループ化され、かつその処理ポイントで呼び出されるルールモジュールのセットが存在する。優先度1のルールモジュールすべては、セット1にグループ化され、優先度2のルールモジュールすべてはセット2にグループ化され、以下、同様にしてグループ化される。しかしながら、イベントコンテキストが与えられると、ほとんどのルールモジュールが各セットで呼び出される。ルールモジュールは、複数の処理ポイントに分散することができる。   For each processing point, there is a set of rule modules that are grouped according to priority and called at that processing point. All rule modules with priority 1 are grouped into set 1, all rule modules with priority 2 are grouped into set 2, and so on. However, given an event context, most rule modules are called in each set. The rule module can be distributed over multiple processing points.

図9の例では、まず、処理ポイント903のサービスが、それらのルールモジュール優先度に従って処理される、即ち、サービスF1及びF2がサービスF3及びF4の前に処理される。続いて、処理ポイント904で、優先度hのフィーチャF5及びF6が、サービスF7及びF8の前に呼び出される。   In the example of FIG. 9, first, the service at the processing point 903 is processed according to their rule module priority, that is, the services F1 and F2 are processed before the services F3 and F4. Subsequently, at processing point 904, features h5 and F6 with priority h are called before services F7 and F8.

図9に示されるルールモジュール901及び902は、以下のルールモジュール例で示されるように表現することができる。   The rule modules 901 and 902 shown in FIG. 9 can be expressed as shown in the following example rule module.

ルールモジュール901:

Figure 0003982691
ルールモジュール902:
Figure 0003982691
図10は、複数のルールモジュールと複数の処理ポイントの場合の図9の実施形態の処理メカニズムを示している。本実施形態に従えば、P0からP3で示される4つの処理ポイントと、それぞれ優先度1から5を有するRM AからRM Eの5つのルールモジュールが存在する。図9と併せて説明される処理ルールに従えば、サービスは、番号1から20と矢印で示される図10の丸数字によって示されるように、処理される。各丸数字は、いくつかのアクションを呼び出すルールのセットを表している。 Rule module 901:
Figure 0003982691
Rule module 902:
Figure 0003982691
FIG. 10 illustrates the processing mechanism of the embodiment of FIG. 9 for multiple rule modules and multiple processing points. According to the present embodiment, there are four processing points indicated by P0 to P3 and five rule modules RMA to RME having priorities 1 to 5, respectively. According to the processing rules described in conjunction with FIG. 9, services are processed as indicated by numbers 1 to 20 and the circled numbers in FIG. 10 indicated by arrows. Each circle represents a set of rules that invoke several actions.

図11は、図9と併せて説明される処理ルールの別の例を示している。図11は、左側に1101にルールモジュールRM AからRM Eのインスタンス1111a〜1115aと、右側1102にルールモジュールRM AからRM Eのインスタンス1111b〜1115bを示している。ルールモジュールRM AからRM Eは、処理ポイントP0からP6に対応するルールを有している。ここで、左側1101のルールモジュールのインスタンスは、右側1102のルールモジュールと同一のルールモジュールの異なるセクションを示している。図6で説明したように、処理ポイントP1〜P3は、SIPリクエストによって起動され、一方、処理ポイントP4〜P6は応答によって起動される。処理ポイントP0は、リクエスト及び応答の両方によって起動される。尚、本例では、着信SIPリクエスト1103、例えば、INVITEリクエストは、図11の左側1101の矢印で示される順序で、処理ポイントP0〜P3に関連するルールモジュールRM AからRM Eのサービスを起動する。図11の例では、更に、サービス1104は応答1105を発生する命令を出力すると仮定する。この応答は、一方で、処理ポイントP0及びP4〜P6に関連するルールモジュールRM A(111b)からRM E(1115b)のルールの処理を起動する、これは、図11の右側1102で示されるように、サービス(群)1106で開始し、発信メッセージ1108、例えば、生成された仮応答を出力する。左側1101のサービスの処理は、更に、発信メッセージ1107、例えば、INVITEプロキシリクエストを出力する。   FIG. 11 shows another example of the processing rule described in conjunction with FIG. FIG. 11 shows the instances 1111a to 1115a of the rule modules RM A to RM E on the left side 1101, and the instances 1111b to 1115b of the rule modules RM A to RM E on the right side 1102. The rule modules RM A to RM E have rules corresponding to the processing points P0 to P6. Here, the rule module instances on the left side 1101 indicate different sections of the same rule module as the rule module on the right side 1102. As described in FIG. 6, the processing points P1 to P3 are activated by the SIP request, while the processing points P4 to P6 are activated by the response. The processing point P0 is activated by both a request and a response. In this example, the incoming SIP request 1103, for example, the INVITE request, activates the services of the rule modules RMA to RME related to the processing points P0 to P3 in the order indicated by the arrows 1101 on the left side of FIG. . In the example of FIG. 11, it is further assumed that the service 1104 outputs an instruction to generate a response 1105. This response, on the other hand, triggers the processing of the rules in rules module RMA (111b) to RME (1115b) associated with processing points P0 and P4 to P6, as shown on the right 1102 of FIG. Then, starting with service (s) 1106, the outgoing message 1108, eg, the generated provisional response, is output. The processing of the service on the left side 1101 further outputs an outgoing message 1107, for example, an INVITE proxy request.

図12は、本発明の実施形態に従う階層ルールモジュール処理を示している。ルールエンジン1200がイベント1201を受信すると、これは、ルール単位で、このイベントに対する様々な優先度の関連ルールモジュール1216〜1219を識別する。ルールエンジン1200は、カレントイベントコンテキスト1202を生成し、最上位優先度のルールモジュール1216の処理を初期化し、生成されているカレントイベントコンテキスト1202を介してルールモジュール1216へ制御を渡す。最上位優先度のルールモジュール1216の処理が完了すると、ルールエンジン1200は、ルールモジュール優先度に従って次のルールモジュール1217を呼び出し、変更されたカレントイベントコンテキスト1206を次のルールモジュール1214へ渡す。同様に、次のルールモジュール1218〜1219が呼び出され、それぞれのカレントイベントコンテキスト1207及び1214を介して制御がそれらに渡される。そして、それによって得られるイベントコンテキスト1215はルールエンジン1200に返される。本発明の実施形態に従えば、それぞれ呼び出されたルールモジュールが、連続して1つ以上の他のルールモジュールを呼び出すことができる。本実施形態に従えば、ルールモジュールは、2つのタイプのルールモジュールに分けられる:自身の順序優先度で、ルールエンジン120によって呼び出されるルールモジュール1216〜1219と、他のルールモジュールによってのみ呼び出されるルールモジュール1220〜1225である。後者のタイプのルールモジュールは、通常、特定順序優先度、例えば、順序優先度0によって識別される。本実施形態に従えば、この優先度のルールモジュールは、それらに関連する特別な制限を有している:この優先度を有するルールモジュールは、ルールエンジン1200のルールベース処理プロシージャによって呼び出されるべきではないが、それを行う明示的な特権を有する別のルールモジュールから呼び出される。0とは異なる順序優先度のルールモジュールは、他のルールモジュールから呼び出されないばかりか、ルールエンジンによっても呼び出されない。同一の所有者のルールモジュールは、同一の順序優先度(0とは異なる)を持つことができるが、この場合、異なるイベントコンテキスト、例えば、SIP、HTTP等を持つべきである。これは、それらが、同一のイベントコンテキストで呼び出されるべきでないことを意味する。異なる所有者のルールモジュールは同一の順序優先度を持つことができるが、この場合、これらは、同一のイベントの同一のプロパティで呼び出されるべきではない。換言すれば、与えられているイベントコンテキストから同一メッセージプロパティで呼び出すことができるルールモジュールは、それがゼロでない限り、異なる優先度を持つべきでない。最初のルールモジュール1216は、順序優先度0の任意のルールモジュールが呼び出される前に、ルールエンジンによって呼び出される。このルールモジュールは、ルートルールモジュールと呼ばれる。ルートルールモジュールが優先度0のルールモジュールを呼び出す場合、これらは、他の優先度0のルールモジュールを再度呼び出すことができる。ルールモジュール間のこれらの関係は、ルールモジュール階層と呼ばれる。ルールモジュール内からのルールモジュールを呼び出すメカニズムは、階層管理ドメインモデルとも呼ばれる、管理ドメインの階層分布を与える。このモデルの利点は、管理が容易で、かつマスタルールモジュールへかなりの量の制御を与えることである。更なる利点は、かなりの数の優先度を次のルールモジュールに再割当することなく、追加のルールモジュールを、既存の階層に追加できることである。上述のルールは、ルールモジュールがルールベース処理プロシージャのアクシデントによって2回起動されることを回避する。   FIG. 12 shows hierarchical rule module processing according to an embodiment of the present invention. When the rule engine 1200 receives an event 1201, it identifies related rule modules 1216-1219 of various priorities for this event on a per rule basis. The rule engine 1200 generates a current event context 1202, initializes processing of the rule module 1216 having the highest priority, and passes control to the rule module 1216 via the generated current event context 1202. When the processing of the rule module 1216 having the highest priority is completed, the rule engine 1200 calls the next rule module 1217 according to the rule module priority, and passes the changed current event context 1206 to the next rule module 1214. Similarly, the next rule module 1218-1219 is invoked and control is passed to them via the respective current event contexts 1207 and 1214. The event context 1215 obtained thereby is returned to the rule engine 1200. According to an embodiment of the present invention, each called rule module can call one or more other rule modules in succession. According to this embodiment, the rule modules are divided into two types of rule modules: rule modules 1216-1219 that are called by the rule engine 120 with their own order priority, and rules that are called only by other rule modules. Modules 1220-1225. The latter type of rule module is typically identified by a specific order priority, eg, order priority 0. According to this embodiment, this priority rule module has a special restriction associated with them: a rule module with this priority should not be called by the rule-based processing procedure of the rules engine 1200. Not called, but from another rule module that has explicit privileges to do it. A rule module having an order priority different from 0 is not called by other rule modules, nor is it called by the rule engine. Rule modules with the same owner can have the same order priority (different from 0), but in this case should have different event contexts, eg SIP, HTTP, etc. This means that they should not be called in the same event context. Different owner rule modules can have the same order priority, but in this case they should not be called with the same properties of the same event. In other words, rule modules that can be invoked with the same message properties from a given event context should not have different priorities unless it is zero. The first rule module 1216 is called by the rule engine before any rule module with order priority 0 is called. This rule module is called a route rule module. If the route rule module calls a rule module with a priority 0, they can call another rule module with a priority 0 again. These relationships between rule modules are called rule module hierarchies. The mechanism for calling the rule module from within the rule module gives a hierarchical distribution of management domains, also called a hierarchical management domain model. The advantage of this model is that it is easy to manage and gives a significant amount of control to the master rule module. A further advantage is that additional rule modules can be added to an existing hierarchy without reassigning a significant number of priorities to the next rule module. The rules described above avoid the rule module being triggered twice by an accident of a rule-based processing procedure.

図12に示される例では、ルールモジュール1216は、ルールモジュール1221及び1222の順序でそれらを呼び出し、対応するイベントコンテキスト1203〜1204へ制御を渡し、それによって得られるカレントイベントコンテキスト1205を受信する。同様に、ルールモジュール1218は、対応するイベントコンテキスト1208〜1209と、それによって得られるイベントコンテキスト1213でルールモジュール1222〜1223を呼び出す。そして、ルールモジュール1218によって呼び出されるルールモジュール1223は、更に、対応するイベントコンテキスト1210〜1211とそれによって得られるイベントコンテキスト1212でルールモジュール1224〜1225を呼び出す。   In the example shown in FIG. 12, the rule module 1216 calls them in the order of the rule modules 1221 and 1222, passes control to the corresponding event contexts 1203-1204, and receives the resulting current event context 1205. Similarly, the rule module 1218 calls the rule modules 1222 to 1223 with the corresponding event contexts 1208 to 1209 and the event context 1213 obtained thereby. Then, the rule module 1223 called by the rule module 1218 further calls the rule modules 1224 to 1225 with the corresponding event contexts 1210 to 1211 and the event context 1212 obtained thereby.

ここで、イベントコンテキスト1202〜1215で示される順で、カレントイベントコンテキストのシーケンスを生成する、階層呼出処理が実行される。   Here, hierarchical call processing for generating a sequence of current event contexts is executed in the order indicated by event contexts 1202 to 1215.

ここで、これ以上処理ポイントが定義されない場合は、上述のルールモジュール処理は処理ポイント単位であると理解されるべきでない、即ち、各処理ポイントに対して対応する階層ルールモジュールが処理されることに注意されたい。   Here, if no further processing points are defined, the above rule module processing should not be understood to be processing point units, that is, a corresponding hierarchical rule module is processed for each processing point. Please be careful.

ルールエンジン1200のルールベース処理プロシージャの重要なタスクは、SIPイベントを関連ルールモジュールへマッピングすることである。この処理は、当該のドメインで定義されている契約関係にほとんど依存している。SIPイベントは、取り得る契約関係を検出するために使用することができる、いくつかのメッセージをプロパティを含んでいる。これらのプロパティは、siprequest.from、siprequest.to、siprequest.RequestURI、sipresponce.from、sipresponce.to、sipresponce.contact及びsipresponce.viaを含んでいる。特に、SIPメッセージのFrom及びRequest−URIは、ネットワークオペレータあるいはサードパーティサービスプロバイダで、契約関係を検出するために使用されるイベントの重要なプロパティである。しかしながら、他のメッセージプロパティは、例えば、コンタクトヘッダ及びviaヘッダで考慮される。契約関係を検出する、つまり、ルールモジュールを起動するために使用することができるメッセージプロパティは、ルールモジュールトリガー(RMTrigger)と呼ばれる。   An important task of the rule-based processing procedure of the rules engine 1200 is to map SIP events to related rule modules. This process is almost dependent on the contractual relationship defined in the domain. A SIP event contains several message properties that can be used to detect possible contractual relationships. These properties are specified in sirequest. from, sirequest. to, sirequest. RequestURI, siresponse. from, siresponse. to, siresponse. contact and siresponse. Via is included. In particular, the From and Request-URI of SIP messages are important properties of events used by network operators or third party service providers to detect contractual relationships. However, other message properties are considered in the contact header and via header, for example. A message property that can be used to detect a contract relationship, i.e., activate a rule module, is called a rule module trigger (RMTrigger).

SIPリクエストメッセージがSIPサーバへ到達すると、FromあるいはRequest−URIメッセージプロパティの少なくとも1つは、SIPサーバのネットワークオペレータの1人と契約関係を有する加入者を特定すべきである。FromあるいはRequest−URIのメッセージプロパティは、netopX.comのようなドメイン名、あるいは123.123.123.000のようなSIPサーバのネットワークオペレータの1つのIPアドレスを含んでいても良い。加えて、FromあるいはRequest−URIは、名前あるいは電話番号のような加入者識別子を含んでいる。これは、SIP URLあるいはTEL URLに含まれている。SIP−URLは、「transport−param」、「user−param」及び「other−param」のようなパラメータも有している。これらのパラメータは、移動端末加入者及び端末群を識別するためのIMSIとして、ネットワークオペレータを特定する情報を含むことができる。   When the SIP request message reaches the SIP server, at least one of the From or Request-URI message properties should identify a subscriber that has a contractual relationship with one of the network operators of the SIP server. The message property of From or Request-URI is nettopX. com, or a single IP address of the network operator of the SIP server such as 123.123.123.000. In addition, the From or Request-URI includes a subscriber identifier such as a name or telephone number. This is included in the SIP URL or TEL URL. The SIP-URL also has parameters such as “transport-param”, “user-param”, and “other-param”. These parameters can include information identifying the network operator as an IMSI for identifying mobile terminal subscribers and terminals.

例えば、上述のプロパティを使用して、SIPイベントに固有のネットワークオペレータがマッピングされる、これは、いくつかの条件を満足する場合、SIPサーバのネットワークオペレータのそれぞれが、netopX.com及びnetopY.comのような固有のドメイン名を有している場合、及びそれらが異なるIPアドレスを有している場合である。これらが同一IPアドレスを共有する場合、推測関係分析が、From及びRequest−URIがIPアドレスを含むがドメイン名を含まないような多義性となる可能性がある。   For example, using the properties described above, a network operator specific to a SIP event is mapped, if each of the SIP server's network operators meets nettopX. com and netopY. com with a unique domain name such as com and when they have different IP addresses. If they share the same IP address, the speculative relationship analysis can be ambiguous such that the From and Request-URIs contain IP addresses but not domain names.

SIPサーバにサービスアプリケーションを更新/登録するサードパーティサービスプロパイダは、検出できるネットワークオペレータとの契約関係を有している。例えば、サードパーティサービスプロバイダは、サードパーティサービスプロバイダを契約関係のあるネットワークオペレータから割り当てられたIDを受信することができる。ネットワークオペレータが、例えば、netopX.comのようなドメイン名と関連IPアドレスを有している場合、固有名partyZを有するサードパーディサービスプロバイダは、例えば、「partyZ.netopX.com」のような名前取り決めに続く割当IDを受信することができる。ここで、From及びRequest−URIは、関連ルールモジュールと照合される。netopX.com及びpartyZ.netopX.comの両方がFromあるいはRequest−URIのいずれかでnetopX.comを含むイベントで呼び出されるべきである場合、それらは、異なる明示的な順序付け優先度を持つべきである。これは、他の名前取り決めが代わりに導入され得ることが理解される。   A third-party service provider that updates / registers a service application in the SIP server has a contractual relationship with a network operator that can be detected. For example, a third party service provider can receive an ID assigned from a network operator with whom the third party service provider is contracted. The network operator may, for example, nettopX. If a domain name such as com and an associated IP address are present, a third party service provider with a unique name partyZ receives an assigned ID following a name convention such as “partyZ.netopX.com”, for example. Can do. Here, From and Request-URI are checked against the related rule module. nettopX. com and partyZ. nettopX. com in either From or Request-URI and netopX. If they are to be called on events that contain com, they should have different explicit ordering priorities. It is understood that other name conventions can be introduced instead.

順序優先度及びルールモジュール階層のメカニズムは、図12とともに上述されたように、互いに独立して適用され得るあるいは互いの組み合わせで適用され得ることが理解される。   It will be appreciated that the order priority and rule module hierarchy mechanisms may be applied independently of one another or in combination with one another as described above in conjunction with FIG.

図13は、本発明の実施形態に従うSIPメッセージ及び命令セットのフローの例を示している。メッセージパーサ1304は、オリジナルメッセージ1306をオリジナルSIPメッセージオブジェクト1303に変換する。これは、初期ルールモジュール1301、ここでは、サービスアプリケーションの最初のシーケンスを呼び出すために使用される。ルールモジュール1301がルールエンジンへロードされ、かつ起動されると、メッセージパーサ1304から受信されるシグナリングメッセージオブジェクト1303に依存して、かつ、例えば、上述の図12で説明されるように、どのルールモジュール1301が識別されるかに基づいて、1つ以上のアクションに到達する。アクションに到達すると、そのアクションに関連するサービスアプリケーション1305が呼び出される、つまり、有効化され、可能であれば、パラメータとともに、かつ可能であれば、アプリケーションを起動したシグナリングメッセージオブジェクト1303全体へのアクセスとともに有効化される。シグナリングメッセージ全体へのアクセス特権は、例えば、CGI API対OSA APIのような使用されるサービスアクセスAPIの機能及び範囲に依存するとともに、ルールモジュール1301の所有者の特権及び呼び出されるサービスアプリケーション1305の特権にも依存している。初期シグナリングメッセージオブジェクト1303は、複数のメディアタイプを含むことができるオリジナルSIPメッセージ1306に埋め込まれるメッセージプロパティのセット全体を表現している。呼び出されるサービスアプリケーション1305は、シグナリングメッセージ1303に基づいていくつかの処理を実行し、かつその結果1307をルールエンジン1303へハンドバックする。これの結果は、命令セットとして参照され、例えば、CGI命令、OSA API命令等の複数の命令を潜在的に含むことができる。複数のサービスが、1つのシグナリングメッセージに基づいて呼び出されると、ルールモジュールプロセッサは、複数の命令セットを出力する。この命令のセットのセットは、「命令セットベース」と呼ばれる。   FIG. 13 shows an example of SIP message and instruction set flow according to an embodiment of the present invention. The message parser 1304 converts the original message 1306 into an original SIP message object 1303. This is used to call the initial rule module 1301, here the first sequence of service applications. When the rule module 1301 is loaded into the rule engine and activated, it depends on the signaling message object 1303 received from the message parser 1304 and, for example, as described in FIG. One or more actions are reached based on whether 1301 is identified. When an action is reached, the service application 1305 associated with that action is invoked, ie enabled, with parameters, if possible, and with access to the entire signaling message object 1303 that invoked the application, if possible. Enabled. Access privileges to the entire signaling message depend on the function and scope of the service access API used, eg, CGI API vs. OSA API, and the privileges of the owner of the rule module 1301 and the privileges of the service application 1305 to be invoked. It also depends on. The initial signaling message object 1303 represents the entire set of message properties embedded in the original SIP message 1306 that can include multiple media types. The called service application 1305 performs some processing based on the signaling message 1303 and hands back the result 1307 to the rule engine 1303. The result of this is referred to as an instruction set and can potentially include multiple instructions such as CGI instructions, OSA API instructions, etc. When multiple services are invoked based on one signaling message, the rule module processor outputs multiple instruction sets. This set of instruction sets is called an “instruction set base”.

ルールエンジン1302及びアプリケーション実行エンジンは、どの命令がSIPサーバデフォルト行動1308へ渡されるかを判定する。命令セットは、命令がSIPサーバデフォルト行動1308へ渡される前に、特権及びフィーチャ相互作用分析に基づいてフィルタにかけられる、ここで、SIPサーバデフォルト行動1308は、更に、命令セットとデフォルトSIP命令セット1312をマージすることができる。得られる命令のセットは、「出力(処理結果)(resulting)命令セット」と呼ばれる。出力SIPメッセージオブジェクト(群)1309は、実際のSIPメッセージを表現し、これは、ダウンストリームあるいはアップストリームで送信されるものである。ここで、これは、1つ以上の出力SIPメッセージオブジェクト1309をもたらし、これは、メッセージコンバータ1310へ送信され、続いて、送信対象の1つ以上のSIPメッセージ1311へ変換される。   The rules engine 1302 and application execution engine determine which instructions are passed to the SIP server default action 1308. The instruction set is filtered based on privilege and feature interaction analysis before the instruction is passed to the SIP server default action 1308, where the SIP server default action 1308 further includes an instruction set and a default SIP instruction set 1312. Can be merged. The resulting set of instructions is called an “output (resulting) instruction set”. The output SIP message object (s) 1309 represents the actual SIP message, which is sent downstream or upstream. Here, this results in one or more outgoing SIP message objects 1309 that are sent to the message converter 1310 and subsequently converted to one or more SIP messages 1311 to be sent.

図14は、本発明の実施形態に従う複数の命令セットを管理するメカニズムを示している。本実施形態に従えば、イベントコンテキストは、SIPメッセージオブジェクトの表現であるが、これは、フィーチャ相互作用情報ばかりかSIPメッセージ本体に含まれるMIMEタイプのような追加情報を含んでいる。オリジナルイベントコンテキスト1401は、オリジナルSIPメッセージオブジェクト1402を表現している。カレントイベントコンテキスト1403a〜bは、サービスアプリケーション1404〜1405によって生成される命令セットに基づくイベントコンテキストである。任意の時間に、1つのサービスアプリケーションがカレントイベントコンテキストの制御下にある。複数のサービスアプリケーションが実行中で、かつトランザクションの処理へ制御を適用する場合でさえも、それらの1つだけが任意にカレントイベントコンテキストの制御を行っている。図14の例の場合、2つのサービスアプリケーション1404〜1405が示されている。まず、サービスアプリケーション1404はカレントイベントコンテキスト1403aを介する制御を行っている。アプリケーション1404がその処理を完了している場合、カレントイベントコンテキストを介する制御が、サービスアプリケーション1405へハンドオーバされる。この時点で、サービスアプリケーション1405は、カレントイベントコンテキスト1403bを制御する、即ち、これは、カレントイベントコンテキストの読み書きの権利を有している。本発明の実施形態では、他のサービスアプリケーションは、カレントイベントコンテキスト1403bを読み出す権利を持っていても良い。   FIG. 14 illustrates a mechanism for managing multiple instruction sets according to an embodiment of the present invention. According to this embodiment, the event context is a representation of a SIP message object, which includes not only feature interaction information, but also additional information such as the MIME type contained in the SIP message body. The original event context 1401 represents the original SIP message object 1402. The current event contexts 1403a and 1403b are event contexts based on an instruction set generated by the service applications 1404 to 1405. At any given time, one service application is under the control of the current event context. Even when multiple service applications are running and apply control to transaction processing, only one of them arbitrarily controls the current event context. In the example of FIG. 14, two service applications 1404 to 1405 are shown. First, the service application 1404 performs control via the current event context 1403a. If the application 1404 has completed its processing, control via the current event context is handed over to the service application 1405. At this point, the service application 1405 controls the current event context 1403b, i.e. it has the right to read and write the current event context. In an embodiment of the present invention, other service applications may have the right to read the current event context 1403b.

ここで、次のサービスアプリケーションの起動は、カレントイベントコンテキストに基づいている。カレントイベントコンテキストが取り得るフィーチャ相互作用問題に対して取り除かれる、それによって、続いて呼び出されるサービスアプリケーションはそれを信頼することができる。制御が、ルールエンジンによって提供される呼出メカニズムを介して1つのサービスアプリケーションから次のサービスアプリケーションへ制御がハンドーバされると、カレントイベントアプリケーションの所有権がハンドオーバされる。この方法では、すべてのサービスアプリケーションが呼び出され、かつそれらの命令が適用されると、最終的な出力イベントコンテキスト1406が得られる。つまり、出力イベントコンテキスト1406は、出力SIPメッセージオブジェクト(群)1407を表現している。このメカニズムは並列処理が除外されないことに注意する、これは、サービスアプリケーション1404及び1405を並列で実行することができるからである。しかしながら、本実施形態に従えば、カレントイベントコンテキストの更新シーケンスで適用される。   Here, the start of the next service application is based on the current event context. It is removed against the feature interaction problem that the current event context can take, so that subsequently invoked service applications can trust it. When control is handed over from one service application to the next through a call mechanism provided by the rules engine, ownership of the current event application is handed over. In this manner, the final output event context 1406 is obtained when all service applications have been invoked and their instructions applied. That is, the output event context 1406 represents an output SIP message object (group) 1407. Note that this mechanism does not exclude parallelism, because service applications 1404 and 1405 can be executed in parallel. However, according to the present embodiment, it is applied in the update sequence of the current event context.

更に、サービスアプリケーションは、複数の宛先へリクエストを分割できることに注意されたい。これは、複数のカレントイベントコンテキストを生成することになる。   Furthermore, it should be noted that a service application can split a request into multiple destinations. This will generate multiple current event contexts.

図15は本発明の実施形態に従うサービスアプリケーションのカスケード化チェーンのツリーを示している。異なるSIPサーバ上でサービスが実行され、かつサービスが制御をセッションへ適用する場合、これらのサービスが互いに知らないとしても、これらのサービスは、サービスの正常な順序付けを提供する。この順序付けは、アップストリームあるいはダウンストリームであると呼べるかもしれない。ダウンストリーム順序付けは、発信クライアントから宛先サーバへとダウンストリームで呼び出されるサービスの順序付けである。アップストリーム順序付けは、宛先サーバから発信クライアントへとアップストリームで呼び出されるサービスの順序付けである。セッションのあるインスタンスへ制御を適用するサービスが、同一のSIPサーバ上で与えられている順序で呼び出されると、サービスは、同一の順序付け原理に従ってカスケードされると判断することができる。この順序付け原理は、カスケードサービスと呼ばされ、サービスのチェーンはカスケード化チェーンサービスと呼ばれる。   FIG. 15 illustrates a tree of service application cascaded chains according to an embodiment of the present invention. If the services are run on different SIP servers and the services apply control to the session, these services provide a normal ordering of the services even if they do not know each other. This ordering may be called upstream or downstream. Downstream ordering is the ordering of services that are called downstream from the originating client to the destination server. Upstream ordering is the ordering of services that are called upstream from the destination server to the originating client. If services that apply control to an instance of a session are invoked in the order given on the same SIP server, it can be determined that the services are cascaded according to the same ordering principle. This ordering principle is called a cascade service, and a chain of services is called a cascaded chain service.

リクエストが受信されると、より前のサービスがそのイベントに基づいて呼び出され、より論理的にアップストリームであるそのサービスは、カスケード化サービスのチェーンであるとみなされる。応答が受信されると、より前のサービスがそのイベントに基づいて呼び出され、より論理的なダウンストリームであるサービスは、カスケード化サービスのチェーンであるとみなされる。ここで、アプリケーションは、それらが異なるホスト上で起動されたものとして処理される。   When a request is received, an earlier service is invoked based on that event, and that service that is more logically upstream is considered to be a chain of cascaded services. When a response is received, earlier services are invoked based on that event, and services that are more logical downstream are considered to be a chain of cascaded services. Here, the applications are processed as if they were started on different hosts.

このモデルは概念的には単純であり、かつ同一のSIPイベントで複数のサービスアプリケーションの命令間での衝突を解決するための自然アルゴリズムを提供する。   This model is conceptually simple and provides a natural algorithm for resolving conflicts between the instructions of multiple service applications at the same SIP event.

SIPイベントの受信において、アクションが以下の方法の優先度順序で実行される。 1)制御が、第1アプリケーションへ渡される。   In receiving a SIP event, actions are performed in the following order of priority: 1) Control is passed to the first application.

2)いくつかの応答が、第1アプリケーションから受信される。   2) Several responses are received from the first application.

3)制御が、第2アプリケーションへ渡される。   3) Control is passed to the second application.

4)いくつかの応答が、第2アプリケーションへ渡され、以下、同様にして実行される。   4) Some responses are passed to the second application, and so on.

しかしながら、第1アプリケーションがリクエストを終了する場合、第2アプリケーションは呼び出されない。   However, when the first application ends the request, the second application is not called.

この方法では、次のアプリケーションを呼び出すかどうかについての決定は、直前のアプリケーションからの出力に依存させることができる。また、アクションに関連する命令優先度は、カスケード原理に従って順序付けされたデフォルトによるものである。   In this way, the decision on whether to call the next application can depend on the output from the previous application. Also, the instruction priority associated with the action is by default ordered according to the cascade principle.

アプリケーションが、リクエストを分割する場合、これは単純なチェーンのカスケード化サービスというよりも、カスケード化サービスのツリーとなする。これは、「リクエストツリー」と呼ばれる。リクエストツリーは、いくつかのカスケード化チェーンのアプリケーションを表現している。リクエストツリーのルートからあるリーフまでの各経路は、カスケード化チェーンを表現している。   When an application splits a request, this becomes a tree of cascaded services rather than a simple chain of cascaded services. This is called a “request tree”. The request tree represents several cascaded chain applications. Each path from the root of the request tree to a leaf represents a cascaded chain.

図15は、リクエストツリーの例を示しておりで、ここでは、入力として、サービスアプリケーションAPP1が、オリジナルイベントコンテキストOECを有するルールモジュール実行モジュール1501によって呼び出される。制御がアプリケーションAPP1から次のアプリケーションAPP2へハンドオーバされると、アプリケーションAPP2は、カレントイベントコンテキストEC2へ制御を移す。アプリケーションAPP2は、イベントコンテキストEC3とイベントコンテキストEC4を生成するリクエストを分割する。下位の優先度のアクションは、イベントコンテキストEC3の1つ以上のプロパティによってアプリケーションAPP3を呼び出す。別の下位の優先度のアクションは、イベントコンテキストEC4の1つ以上のプロパティによって別のアプリケーションAPP4を呼び出す。これは、呼び出されたアプリケーションの過程を表現するツリー状の構造を導き出す。このツリーにおいて、ブランチはイベントコンテキストを表現している。ノードは、トリガーを表現している。ツリーのルートは、オリジナルイベントコンテキストOECである。ツリーのリーフは、出力イベントコンテキストREC1及びREC2である。   FIG. 15 shows an example of a request tree, where the service application APP1 is called by the rule module execution module 1501 having the original event context OEC as input. When control is handed over from application APP1 to the next application APP2, application APP2 transfers control to the current event context EC2. The application APP2 divides a request for generating the event context EC3 and the event context EC4. The lower priority action calls application APP3 with one or more properties of event context EC3. Another lower priority action invokes another application APP4 with one or more properties of the event context EC4. This leads to a tree-like structure that represents the process of the called application. In this tree, branches represent event contexts. A node represents a trigger. The root of the tree is the original event context OEC. The leaves of the tree are output event contexts REC1 and REC2.

ルールモジュールにおいてこれ以上のアクションが存在しない場合、すべてのカレントイベントコンテキストがルールベース処理プロシージャ1502にフィードバックされる。このプロシージャは、より多くのリクエストツリーを構築する別のルールモジュールを呼び出す。その結果、ツリーは、起動されるサービスに依存して、多くのノードとブランチを持つことで、かなり大きくなる可能性がある。   If there are no more actions in the rule module, all current event contexts are fed back to the rule-based processing procedure 1502. This procedure calls another rule module that builds more request trees. As a result, the tree can be quite large with many nodes and branches depending on the service being invoked.

いくつかの場合、アプリケーションが非同期フィーチャ命令をサービスサポート環境に送信できる、即ち、既存トランザクションと関連していないことに注意されたい。この場合、アプリケーションは、新規のトランザクションを開始し、これは、新規のカスケード化チェーンツリーのルートとなることが想定される。   Note that in some cases, the application can send asynchronous feature instructions to the service support environment, i.e. not associated with an existing transaction. In this case, the application initiates a new transaction, which is assumed to be the root of the new cascaded chain tree.

サービスの並列処理を可能にするために、サービスサポート環境は、制御を1つ以上のサービスに同時に渡すことが可能である。これは、カスケード化サービスモデルでは矛盾とならない、なぜなら、並列して呼び出されたサービスからの命令は、カスケードする順序で適用されるべきであるからである。より多くのダウンストリームサービスが、より多くのアップストリームサービスの前に応答する場合、ルールエンジンは、その命令を取り次ぐ前に、応答のために、より多くのアップストリームを待機する。命令は、サービスが1つずつ呼び出されるように取り次がれる。管理者は、アクションのグループがこの方法で同時に適用されるべきであるかを特定することができるようにするべきである。   To allow parallel processing of services, the service support environment can pass control to one or more services simultaneously. This is not a contradiction in the cascaded service model, because instructions from services invoked in parallel should be applied in the cascade order. If more downstream services respond before more upstream services, the rules engine waits for more upstream for response before relaying its instructions. Instructions are routed so that services are invoked one by one. The administrator should be able to specify whether groups of actions should be applied simultaneously in this way.

図16は、本発明の実施形態に従うルールエンジンのソフトウェアコンポーネントを示している。ルールベース処理プロシージャ1601は、正しい順序で、ルールベース1603に記憶されているルールモジュール1602を呼び出す。ルールモジュール処理プロシージャ1604は、ルールモジュールのルールを実行する。サービス相互作用モジュール1605は、起動、フィーチャ相互作用、特権及び権利の適用を含む機能1700のセットを含んでいる。機能1700は、図17でより詳細に説明する。   FIG. 16 illustrates the software components of the rules engine according to an embodiment of the present invention. The rule base processing procedure 1601 calls the rule modules 1602 stored in the rule base 1603 in the correct order. The rule module processing procedure 1604 executes the rules of the rule module. The service interaction module 1605 includes a set of functions 1700 that includes activation, feature interaction, privilege and rights application. Function 1700 is described in more detail in FIG.

SIPイベントがオリジナルイベントコンテキスト1609の形態でルールエンジンに通知されると、ルールベース処理プロシージャ1601が、正しい順序で正規のルールモジュールを検出し、かつ実行するために実行される。ルールベース処理プロシージャ1601は、処理対象のルールモジュールとオリジナルイベントコンテキスト1610をルールモジュール処理プロシージャ1604へ渡す。各ルールモジュールのルールの順序付けとともにルールモジュールの順序付けは、ルールモジュール処理プロシージャ1604によって処理されるパターン(patern)及びアクション1606〜1608の順序付けを判定する。アクションは、対応するサービスアプリケーション1611〜1613を呼び出す。サービスアプリケーション1611を呼び出す場合、オリジナルイベントコンテキストは、カレントイベントコンテキストCEC1としてサービス相互作用モジュール1605へ渡され、一方、イベントコンテキストEC1をサービスアプリケーション1611へ渡す。サービスアプリケーション1611は、サービス相互作用モジュール1605によってカレントイベントコンテキストの更新を発生するフィーチャ命令1614のセットを得る。この得られるカレントイベントコンテキスト1615は、ルールモジュール処理プロシージャ1604へ戻される。サービスアプリケーション1612及び1613は、同様の方法で呼び出され、それによって得られる対応する命令セット1616〜1617は、サービス相互作用モジュール1605によって対応するカレントイベントコンテキスト1618〜1619に変換される。この変換中に、サービス相互作用モジュール1605は、認証チェックを実行し、サービスアプリケーション1613が未認証命令セット1617を返す場合、未認証命令は変換されない。ここで、カレントイベントコンテキスト1619は、入力イベントコンテキスト1620とは異なっていない。好ましくは、サービスアプリケーションは、この失敗についての通知1621を行う。サービスは、図15及び図18で説明される複数のカレントイベントコンテキストの発生をもたらす可能性があることに注意されたい。ルールモジュールは、パターン及びアクション1606〜1608の処理を終了する場合、最終的なカレントイベントコンテキスト1622のセットはルールベース処理プロシージャ1601へ戻される。次のルールモジュールの呼出は、このカレントイベントコンテキストのセットに依存している。サービスアプリケーションが、以下で詳細を説明するように、フィーチャイベントに対するイベント及びトリガーをアーミングする(arming:持てる)/アーミングしない(disarming:持たない)可能性があることに注意されたい。ここで、サービスアプリケーションは、更に、アーミングリクエスト1623を戻すことができる。   When a SIP event is notified to the rule engine in the form of an original event context 1609, a rule-based processing procedure 1601 is executed to detect and execute regular rule modules in the correct order. The rule base processing procedure 1601 passes the rule module to be processed and the original event context 1610 to the rule module processing procedure 1604. The rule module ordering along with the rule ordering of each rule module determines the pattern processed by the rule module processing procedure 1604 and the ordering of actions 1606-1608. The action calls the corresponding service application 1611-1613. When calling the service application 1611, the original event context is passed to the service interaction module 1605 as the current event context CEC1, while the event context EC1 is passed to the service application 1611. The service application 1611 obtains a set of feature instructions 1614 that cause an update of the current event context by the service interaction module 1605. This resulting current event context 1615 is returned to the rule module processing procedure 1604. Service applications 1612 and 1613 are invoked in a similar manner, and the resulting corresponding instruction sets 1616-1617 are converted by the service interaction module 1605 to corresponding current event contexts 1618-1619. During this conversion, the service interaction module 1605 performs an authentication check and if the service application 1613 returns an unauthenticated instruction set 1617, the unauthenticated instruction is not converted. Here, the current event context 1619 is not different from the input event context 1620. Preferably, the service application makes a notification 1621 about this failure. Note that a service may result in the occurrence of multiple current event contexts as illustrated in FIGS. When the rule module finishes processing the patterns and actions 1606-1608, the final set of current event contexts 1622 is returned to the rule-based processing procedure 1601. The next call to the rule module depends on this set of current event contexts. Note that a service application may arm / disarm events and triggers for feature events, as described in detail below. Here, the service application can also return an arming request 1623.

図17は、図16の実施形態のサービスアプリケーションの処理とルールモジュールの処理間でサービス相互作用モジュールによって実行される工程を示している。この機能1700は、フィーチャ相互作用管理と、ルールエンジン1702及びアプリケーション実行エンジン1703によって実行される特権のチェックを含んでいる。呼出コマンド及びカレントイベントコンテキストCECaがルールモジュールプロセッサ1601から受信される場合、ステップ1704で、ルールモジュールの特権がチェックされる。ルールモジュールの特権は、そのルールモジュールに関連するアクセス制御リストACL2で特定されている。ルールモジュールが呼出コマンドを発行する特権を有している場合、ステップ1705で、ルールエンジン1702は呼出コマンドを、アプリケーション実行エンジンマネージャ(不図示)を介して、アプリケーション実行エンジン1703に送信する。f(CECa)で示されるように、カレントイベントコンテキストの一部をアプリケーション実行エンジン1703に送信する必要はない。   FIG. 17 shows steps performed by the service interaction module between the processing of the service application and the processing of the rule module of the embodiment of FIG. This functionality 1700 includes feature interaction management and privilege checking performed by the rules engine 1702 and application execution engine 1703. If the invocation command and current event context CECa are received from the rule module processor 1601, at step 1704, the privileges of the rule module are checked. The privilege of the rule module is specified in the access control list ACL2 associated with the rule module. If the rule module has the privilege to issue a call command, in step 1705, the rule engine 1702 sends the call command to the application execution engine 1703 via an application execution engine manager (not shown). As indicated by f (CECa), a part of the current event context need not be sent to the application execution engine 1703.

ステップ1706で、アプリケーション実行エンジン1703は、受信したイベントコンテキストf(CECa)を、呼出対象のサービスアプリケーション1707に適しているデータフォーマットに変換する。これは、サービスアプリケーションの呼出用の適切な名前空間への変換も含んでいても良い。また、ステップ1708で、アプリケーション実行エンジン1703は、特権及び権利をチェックする。サービスアプリケーション1707に関連するアクセス制御リストACL3は、f(CECa)の値あるいはその一部にアクセスするために、サービスアプリケーション1707の特権を特定することができる。また、ルールモジュールは、別のアクセス制御リストACL4に依存するサービスアプリケーション1707にアクセスしており、これは、サービスアプリケーション1707に関連している。アクセスが行われる場合、ステップ1709で、サービスアプリケーション1707が呼び出され、かつイベントコンテキストg(ECa)の関連部分が入力として提供される。続いて、サービスアプリケーション1707は、命令セット1710あるいは命令セットの中間表現を送信することによって、アプリケーション実行エンジン1703を介して制御をルールエンジン1702に戻す。ステップ1711で、これらの命令を発行するサービスアプリケーション1707の特権及び権利が、例えば、サービスアプリケーション1707に関連するアクセス制御リストACL5に基づいて、チェックされる。サービスアプリケーション1707が、これらの命令を発行する特権を有している場合、命令は中間表現から変換され(ステップ1712)、変換された命令1713は、ルールエンジンへ渡される。また、任意のアーミングリクエスト1716が同様に渡される。ステップ1714で、取り得るフィーチャ相互作用問題が、既に認証され、かつ呼び出されているサービスアプリケーションから発行されたより早い命令で解決される。この解決は、既に呼び出されているアプリケーションがカレントイベントコンテキストで保護されているメッセージプロパティを有しているかに基づいている。次のカレントイベントコンテキストCECbが生成され、ルールモジュールプロセッサ1601に返される。そして、ステップ1715で、ルールエンジンは、呼び出されているサービスについての情報を、例えば、図14で説明しているリクエストツリーを構築することによって、メモリに記憶する。リクエストツリーは、将来のイベントの通知とともに使用される。   In step 1706, the application execution engine 1703 converts the received event context f (CECa) into a data format suitable for the service application 1707 to be called. This may also include conversion to an appropriate namespace for calling service applications. In step 1708, the application execution engine 1703 checks the privileges and rights. The access control list ACL3 associated with the service application 1707 can specify the privileges of the service application 1707 to access the value of f (CECa) or part thereof. Also, the rule module is accessing a service application 1707 that depends on another access control list ACL4, which is related to the service application 1707. If access occurs, at step 1709, the service application 1707 is invoked and the relevant portion of the event context g (ECa) is provided as input. Subsequently, the service application 1707 returns control to the rule engine 1702 via the application execution engine 1703 by sending the instruction set 1710 or an intermediate representation of the instruction set. At step 1711, the privileges and rights of the service application 1707 issuing these instructions are checked, for example, based on the access control list ACL5 associated with the service application 1707. If the service application 1707 has the privilege to issue these instructions, the instructions are converted from the intermediate representation (step 1712), and the converted instructions 1713 are passed to the rules engine. An arbitrary arming request 1716 is similarly passed. At step 1714, possible feature interaction problems are resolved with earlier instructions issued from service applications that have already been authenticated and invoked. This solution is based on whether the already invoked application has a message property that is protected in the current event context. The next current event context CECb is generated and returned to the rule module processor 1601. Then, in step 1715, the rule engine stores information about the service being called in memory, for example by building the request tree described in FIG. The request tree is used with future event notifications.

上述したように、いくつかのサービス、例えば、モニタリングアプリケーションは、将来のイベントで関係する。将来のイベントのこの関係についてをルールエンジンを通知するために、サービスアプリケーションは、イベント通知に対するリクエストを行う必要があり、かつこれは、イベント通知用の動的アーミングと呼ばれる。   As mentioned above, some services, such as monitoring applications, are relevant in future events. In order to inform the rules engine about this relationship of future events, the service application needs to make a request for event notification, which is called dynamic arming for event notification.

本発明の実施形態に従えば、トランザクションイベントの動的アーミングは、SIPトランザクションの処理に結び付けられ、これは、やがてバインドされる。トランザクションは、通常、SIPサーバの構成に依存して、ミリ秒から数分の間、継続することができる。トランザクションイベントの動的アーミングは、トランザクションの存続時間のみに適用するので、このタイプのアーミングは非永久的で、かつトランザクションが終了する場合に明示的に解除される(disarmed)、これによって、高速メカニズムを提供する。アプリケーションが、そのアプリケーションで起動されるトランザクションに関係するイベントをアームする場合、アプリケーションは、カスケード化サービスモデルでその位置を維持する。応答は、それらをアームしている、ツリーのリーフから始まるアプリケーション全て、即ち、ほとんどのダウンストリームアプリケーションに対して通知される。トランザクションの存続期間中には、リクエストツリーが、ルールエンジンのメモリに存在している。同一のトランザクションに関連する次のイベントは、リクエストツリーに関連している。リクエストツリーに関連するイベントは、アプリケーション、ダウンストリームサーバ及びアップストリームクライアントから発生し得る。   According to embodiments of the present invention, dynamic arming of transaction events is tied to the processing of SIP transactions, which are eventually bound. Transactions can typically last for milliseconds to minutes depending on the configuration of the SIP server. Since dynamic arming of transaction events applies only to the lifetime of the transaction, this type of arming is non-permanent and is explicitly disarmed when the transaction ends, thereby providing a fast mechanism I will provide a. If an application arms an event related to a transaction invoked by that application, the application maintains its position in a cascaded service model. Responses are communicated to all applications starting from the leaves of the tree that are arming them, ie most downstream applications. During the lifetime of the transaction, the request tree exists in the rule engine memory. The next event associated with the same transaction is associated with the request tree. Events associated with the request tree can occur from applications, downstream servers, and upstream clients.

アップストリームからのイベントは、リクエストツリーのルートに入力する。これは、それらが、リクエストツリーのルーでアプリケーションに最初に通知されることを意味する。オリジナルツリーで更に送信されないが、新規のリクエストツリーが構築される場合、このアプリケーションはイベントを終了するあるいはリダイレクトすることができる。リクエストは、オリジナルリクエストとして同一の宛先すべてへ送信される必要もなく、あるいはリクエストは、オリジナルリクエストが送信される宛先の1つへ送信される必要がある。アプリケーションからのイベントは、リクエストツリーの適切なノードに入力する。ダウンストリームサーバからのイベントは、リクエストツリーのリーフの1つに入力する。   Events from upstream enter the root of the request tree. This means that they are first notified to the application in the request tree root. If not sent further in the original tree, but a new request tree is built, the application can terminate or redirect the event. The request need not be sent to all the same destinations as the original request, or the request needs to be sent to one of the destinations to which the original request is sent. Events from the application are entered into the appropriate nodes of the request tree. Events from the downstream server are input into one of the leaves of the request tree.

ルールエンジンが、呼び出されるアプリケーションの順序、即ち、リクエストツリーの順序を記憶している場合に、これは、リクエストツリーの走査(travesal)メカニズムを導く。トランザクションのコンテキスト内でイベントが通知される順序に対する明確なルールを提供することが、本実施形態の利点である。この明確なルールは、カスケード化サービスモデルであり、これは、管理者及びアプリケーション設計者によって容易に理解することができる概念的で単純なルールである。これは、アプリケーション実行エンジンがルールをルールベースに追加することによって、APIを簡略化する。ルールモジュールの特定ブランチのCANCEL(キャンセル)をアームしなければならないというよりも、与えられている発信の区切り(call leg)のキャンセルを簡単にアームすることができる。   If the rules engine remembers the order of applications to be called, ie the order of the request tree, this leads to a traversal mechanism for the request tree. It is an advantage of this embodiment to provide clear rules for the order in which events are notified within the context of a transaction. This clear rule is a cascaded service model, which is a conceptual and simple rule that can be easily understood by administrators and application designers. This simplifies the API by the application execution engine adding rules to the rule base. Rather than having to arm CANCEL for a particular branch of a rule module, it is easier to arm cancellation of a given call leg.

リクエストツリー走査をじするための様々な方法が存在する。   There are various ways to perform a request tree traversal.

例えば、ルールエンジンは、VIAヘッダ及びブランチパラメータを使用することによって、この走査を達成することができる。実際には、これは、リクエストをSIPサーバへ送信することによって宛先アドレスが変更される毎に、ルールエンジンの異なるインスタンスを生成することを意味する。SIPスタックによって実行されるDNSルックアップは、秒単位で、サーバによる処理対象のリクエストが返信されるかどうかを判定する。リクエストがSIPサーバから受信されると、それは新規のリクエストとして取り扱われる。ルールエンジンは、そのサービスを保証するメカニズムを持つべきであり、例えば、FROMフィールド上で起動されるサービスが誤って再度呼び出されることはない。   For example, the rules engine can accomplish this scanning by using VIA header and branch parameters. In practice, this means that each time the destination address is changed by sending a request to the SIP server, a different instance of the rule engine is created. The DNS lookup performed by the SIP stack determines in seconds whether a request to be processed by the server is returned. When a request is received from a SIP server, it is treated as a new request. The rules engine should have a mechanism to guarantee that service, for example, a service activated on the FROM field will not be accidentally called again.

選択的には、本実施形態では、イベントは、リクエストツリー全体、即ち、リクエストツリーのすべてのリーフがネットワーク内のあらゆる宛先を表現するまでのあらゆる送信(forwardings)を含むリクエストツリーに対するホストで取り扱われる。本実施形態は、シグナリング状態装置及びマネージャクラスのいくつかのインスタンスが必要とされる場合により有効となる利点を有している。例えば、アプリケーションの各トリガーに対して、リクエストツリーの直前及び次のノードへのポインタを持つことができるノードオブジェクトの命令を持つことによって、リクエストツリーが実現されても良い。以下の擬似コードフラグメントは、リクエストツリーの構築がどのようにしてルールベース処理及びルールモジュール処理に対するアルゴリズムに組み込まれるかを示している。この概念は、RequestTreeNodeを有する各イベントコンテキストに関連していることを示している。これは、イベントコンテキストが生成されている場所でのRequestTreeNodeである。各ノードは、リクエストツリーのルートである、あるいはアクション実行に関連している。

Figure 0003982691
サービスアプリケーションの論理的カスケーディングのモデルについて検討すると、以下の2つの一般的なルールが、以下のサービス実行環境に対して一般化することができる。 Optionally, in this embodiment, the event is handled at the host for the request tree that includes the entire request tree, ie, all the forwardings until all the leaves of the request tree represent every destination in the network. . This embodiment has the advantage of being more effective when several instances of the signaling state device and manager class are required. For example, the request tree may be realized by having an instruction of a node object that can have a pointer to the immediately preceding and next node of the request tree for each trigger of the application. The following pseudocode fragment shows how the construction of the request tree can be incorporated into algorithms for rule-based processing and rule module processing. This concept indicates that it is associated with each event context that has a RequestTreeNode. This is the RequestTreeNode where the event context is being generated. Each node is the root of the request tree or is associated with action execution.
Figure 0003982691
Considering the service application logical cascading model, the following two general rules can be generalized for the following service execution environment:

−アップストリーム走査イベントは、多くの論理的なダウンストリームアプリケーションに対してまず通知されるべきである。   -Upstream scan events should be notified first to many logical downstream applications.

−ダウンストリーム走査イベントは、多くの論理的なアップストリームアプリケーションに対してまず通知されるべきである。   -Downstream scanning events should be notified first to many logical upstream applications.

より複雑で管理不能な状況を防止するための配信イベント通知が、任意の順序でカスケード化サービスに通知できる場合に、サービスの論理的なカスケード化順序が維持される。   The logical cascading order of services is maintained when delivery event notifications to prevent more complex and unmanageable situations can be notified to cascaded services in any order.

好ましくは、このようなイベントをアームするアプリケーションが、処理ポイント1あるいは4及びそれらのサブ処理ポイントで呼び出される。好ましくは、ネットワークオペレータは、処理ポイント4に対するルールリストで、動的なアーム化トリガーが通知されるべきポイントを特定することができる。これは、リクエストに対して確立されるサービスの論理的なカスケード化チェーンが維持され、かつ新規のサービスがこのチェーンの前あるいは後に起動されることを意味する。同一ルールを、既存のトランザクションに関連する次のリクエストに対して適用できる。この時点では、処理ポイント1に存在し、管理者は、いつ動的なアーム化イベントを通知するかを特定することができる。   Preferably, an application that arms such an event is invoked at processing point 1 or 4 and their sub-processing points. Preferably, the network operator can specify in the rule list for processing point 4 the point at which a dynamic arming trigger is to be notified. This means that a logical cascading chain of services established for the request is maintained and new services are activated before or after this chain. The same rule can be applied to the next request associated with an existing transaction. At this point, it exists at processing point 1 and the administrator can specify when to notify the dynamic arming event.

選択的にあるいは補助的に、別のタイプのアーミングを適用することができ、これは、動的アーム化トリガーと呼ばれ、ルールとして、ルールベースの適切なルールモジュールに追加される。動的アーム化トリガーは、アプリケーションが起動されている場合のトランザクションに関係しないイベントの通知に対する処理能力及び実行メモリに関して、より安価なメカニズムを提供する。好ましくは、イベント通知に対するこれらのリクエストは、永久記憶に記憶されるべきである、即ち、これらは、ルールベースのルールとなる。これらのルールは期限タイマーを指定することによって反永久とすることができる、あるいは永久とすることができる。後者の場合、サービスアプリケーションは、それを消去するためのイベント通知用のリクエストを明示的に解除するべきである。選択的には、これらは、「1回の通知後の解除(report-once then disarm)」モードでアームされても良い。また、期限時間が与えられていない場合、デフォルト時間、例えば、1時間をそのルールに適用することができる。この時間が経過すると、そのルールは消去される。これは、サーバがデータ記憶容量を消費してしまうことを回避する利点がある。   Alternatively or additionally, another type of arming can be applied, referred to as a dynamic arming trigger, added as a rule to the appropriate rule module in the rule base. Dynamic arming triggers provide a cheaper mechanism for processing power and execution memory for event notifications not related to transactions when the application is launched. Preferably, these requests for event notification should be stored in permanent memory, i.e., they become rule-based rules. These rules can be made permanent by specifying a deadline timer, or they can be made permanent. In the latter case, the service application should explicitly cancel the event notification request for deleting it. Alternatively, they may be armed in a “report-once then disarm” mode. Also, if no time limit is given, a default time, for example 1 hour, can be applied to the rule. When this time elapses, the rule is deleted. This has the advantage of avoiding the server consuming data storage capacity.

好ましくは、トリガールールは、更新する特権及び権利を有するアプリケーションのルールモジュールに追加される。これは、通常、アプリケーションが起動されるルールモジュールと同一となる。もちろん、ルールモジュール内の優先度順序において、これらのルールがどこで追加されるべきかは、絶対的なルール優先度順序、即ち、既存ルールモジュール内でルールがどこに配置されるべきかを表す整数によって判定することができる。SERLスクリプトが最初に追加される場合、ルールは、そのルールがスクリプト内で現れる順序で順序付けされる。N個のルールが存在する場合、1からNの整数が、これらのルールに絶対的に関連付けられている。ルールは、これらの番号を参照することによって削除することができる。ルールは、新規のルールをその後ろに配置すべきルールを参照することによって追加することができる。これは、ルールが大きなルールモジュールに追加される場合に交換するために必要なデータ量が削減されるという利点を有している。   Preferably, the trigger rule is added to the rule module of the application that has the privileges and rights to update. This is usually the same as the rule module in which the application is launched. Of course, where these rules should be added in the priority order within the rule module is determined by the absolute rule priority order, i.e. an integer representing where the rules should be placed within the existing rule module. Can be determined. When a SERL script is added first, the rules are ordered in the order in which the rules appear in the script. If there are N rules, integers from 1 to N are absolutely associated with these rules. Rules can be deleted by referring to these numbers. A rule can be added by referring to the rule that should place the new rule behind it. This has the advantage that the amount of data required to exchange when rules are added to a large rule module is reduced.

位置が特定されない場合、ルールモジュールエンジンは、以下のトリガーを追加する場合に以下のアルゴリズムに従う:新規ルールとして同一プロパティパターンに対するルールモジュールを検索する。パターンが検出される場合、任意のサブパターンに対する検索を続行する。サブパターンが検出されない場合、最上位優先度ルールとしてルールをアクションのリストに挿入する。同様のパターンがルールモジュールに既に存在しない場合、第1パターンとして挿入する。このアルゴリズムは、ルールに対する論理的に有利な配置を提供する。例えば、TARGET=FROMである発信側に対するアクションが、TARGET=RequestURIである着信側に対するアクションと混合しないことを保証する。また、これは、最後に追加されたルールが、イベントが発生する場合に最初に遭遇することも意味する。これは、最も簡単なデフォルト行動である。   If the location is not specified, the rule module engine follows the following algorithm when adding the following triggers: Search for a rule module for the same property pattern as a new rule. If a pattern is detected, continue searching for any subpattern. If no subpattern is detected, insert the rule into the list of actions as the highest priority rule. If a similar pattern does not already exist in the rule module, it is inserted as the first pattern. This algorithm provides a logically advantageous arrangement for the rules. For example, ensure that the action for the caller with TARGET = FROM is not mixed with the action for the callee with TARGET = RequestURI. This also means that the last added rule will be encountered first when the event occurs. This is the simplest default behavior.

トリガールールが永久であるか、あるいはイベントが一旦通知されると自動的に消去されるべきであるかを示すことができる。どのタイプのルールをアプリケーションが動的に追加できるかは、アプリケーションに割り当てられている特権及び権利に関係付けることができる。   It can indicate whether the trigger rule is permanent or should be automatically cleared once the event is notified. Which types of rules an application can dynamically add can be related to the privileges and rights assigned to the application.

別の実施形態では、カスケード化リクエストツリーは、イベントの存続期間に対してのみ維持される。この場合、そのチェーンの最新アプリケーションは、その処理を完了しており、SIPイベントが送信されて、カスケード化チェーンはこれ以上関係しない。その時点までに、ルールエンジンに対して、メモリ内のカスケード化チェーンの表現を保持することが有益である。これは、アプリケーションが別々のサーバ上で動作し、かつ呼出に対して応答するためのある程度の時間を必要とするからである。ルールエンジンが応答に対して待機している一方で、チェーン内のより早いアプリケーションは、リクエストをキャンセルすることができる。これが発生する場合、ルールエンジンは、アプリケーションのアプリケーション実行エンジンに待機中であることを通知する必要がある。これは、ルールエンジンがチェーン内でどれが次のアプリケーションであるかを覚えているべきであることを意味する。SIPイベントが送信されている時間に、チェーン内のすべてのアプリケーションは、注目しているイベントに対するルールをアームしているべきである、即ち、カスケード化チェーンを記憶するためのルールエンジンはこれ以上必要ない。この解決策の利点は、ルールエンジン自身が単純になることである。これは、関連処理ポイントでルールモジュールに基づくイベントを通知する。しかしながら、この解決策は、イベントの複雑な順序付けを管理し、かつアプリケーションに配置するために複雑となる、即ち、アプリケーションは、どの優先度位置で、ルールがルールモジュールに追加されるべきかを決定する必要がある。   In another embodiment, the cascaded request tree is maintained only for the duration of the event. In this case, the latest application in the chain has completed its processing, a SIP event is sent and the cascaded chain is no longer relevant. By that time, it is beneficial for the rules engine to keep a representation of the cascaded chain in memory. This is because the application runs on separate servers and requires some time to answer the call. While the rules engine is waiting for a response, earlier applications in the chain can cancel the request. When this occurs, the rules engine needs to notify the application execution engine of the application that it is waiting. This means that the rules engine should remember which is the next application in the chain. At the time the SIP event is being sent, all applications in the chain should arm the rules for the event of interest, ie more rule engines are needed to store the cascaded chain Absent. The advantage of this solution is that the rules engine itself is simple. This notifies the event based on the rule module at the relevant processing point. However, this solution is complicated to manage and place complex ordering of events into the application, i.e. the application determines at which priority position the rule should be added to the rule module. There is a need to.

図18は、本発明の実施形態に従うルールモジュールの処理のツリー構造を示している。イベントが受信されると、ルールベース処理は、ルールベースツリーとして参照される処理パターンを展開する。リクエストがオリジナルイベントコンテキスト1801に対応するSIPサーバに到達すると、関連する加入者は、発信パーティ(即ち、発信側)及び着信パーティ(即ち、着信側)の少なくとも一方であり得る。発信側は、Fromヘッダフィールドによって識別される。着信側(あるいは現在の着信側)は、Request−URIによって識別される。Fromヘッダフィールド及びRequest−URIは、SIPサーバで加入者を固有に識別すべきであり、このSIPサーバでは、これらの加入者は、ネットワークオペレータ及びサービスプロバイダと契約関係を持っている。以下のカスケーディング原理では、発信及び着信パーティが同一ホストに配置されているとしても、発信サービス1802は、着信サービス1803の前に呼び出される。第3カテゴリのサービスも呼び出すことができる。これらは、着信転送(forwaded-by)サービスと呼ばれる。別の加入者に属する新規の宛先にリクエストが送信される場合に、このカテゴリのサービスが呼び出される。この場合、発信サービスは、着信側のために呼び出される必要がある。各パーティに対しては、サービスは、異なる処理ポイント1804〜1809で配置されるルールモジュールの位置に基づいて呼び出される。各処理ポイントに対しては、ルールモジュール優先度1810〜1814のセットは、照合のために検査される。各優先度内において、ルールモジュール1815〜1817の多くとも1つが呼び出される。しかしながら、ルールモジュール1817は、図12で説明されるように、ルールモジュール階層1818のルートとなり得る。簡単のために、このようなルールモジュール階層は、単一のルールモジュールであると想定する。ここで、ルールモジュールによって呼び出される、ルールモジュール処理1601の機能、サービス相互作用モジュールの機能1700及びサービスアプリケーション1819は、ルールベースツリーのリーフとして想定することができる。カレントイベントコンテキストCECに基づいて、ルールモジュール1817が呼び出され、それは、得られるイベントコンテキストRECを返信する。この得られるイベントコンテキストRECが、呼び出される次のルールモジュールに対するカレントイベントコンテキストCECとして考慮される。すべてのルールモジュールが呼び出され、かつそれらの最後が、得られるイベントコンテキストを返信すると、その得られるイベントコンテキストは、オリジナル着信SIPメッセージへの回答として、アップストリーム及びダウンストリームの少なくとも一方に送信されるSIPシグナリングメッセージのセットとなる。   FIG. 18 shows a tree structure of processing of the rule module according to the embodiment of the present invention. When an event is received, the rule base process expands a process pattern referred to as a rule base tree. When the request reaches the SIP server corresponding to the original event context 1801, the associated subscriber can be at least one of the calling party (ie, the calling party) and the called party (ie, the called party). The originator is identified by the From header field. The called party (or current called party) is identified by the Request-URI. The From header field and Request-URI should uniquely identify the subscriber at the SIP server, where these subscribers have a contractual relationship with the network operator and service provider. In the following cascading principle, even if the outgoing and incoming parties are located on the same host, the outgoing service 1802 is called before the incoming service 1803. A third category of services can also be invoked. These are referred to as call-forwarding (forwaded-by) services. This category of services is invoked when a request is sent to a new destination belonging to another subscriber. In this case, the outgoing service needs to be called for the called party. For each party, the service is invoked based on the location of rule modules located at different processing points 1804-1809. For each processing point, a set of rule module priorities 1810-1814 is examined for matching. Within each priority, at most one of the rule modules 1815-1817 is invoked. However, rule module 1817 can be the root of rule module hierarchy 1818 as described in FIG. For simplicity, it is assumed that such a rule module hierarchy is a single rule module. Here, the function of the rule module process 1601, the function 1700 of the service interaction module, and the service application 1819 that are called by the rule module can be assumed as leaves of the rule base tree. Based on the current event context CEC, the rule module 1817 is invoked, which returns the resulting event context REC. This resulting event context REC is considered as the current event context CEC for the next rule module to be called. When all rule modules are invoked and their end returns the resulting event context, the resulting event context is sent to the upstream and / or downstream as a reply to the original incoming SIP message. A set of SIP signaling messages.

図18で図示される上述の処理構造は、以下の擬似コードフラグメントによって更に示すことができる。

Figure 0003982691
Figure 0003982691
Figure 0003982691
サービスアプリケーションは、FromヘッダフィールドあるいはRequest−URIを変更することができることに注意されたい。また、得られるFromヘッダフィールドあるいは得られるRequest−URIは、イベントを処理するSIPサーバに対してさえ未知である別の加入者に属することができる。得られるFrom及びRequest−URIの少なくとも一方は、SIPサーバで加入者に知られていない新規なものであり、この加入者に関連するサービスが同様に呼び出される。この場合、ルールベース処理プロシージャは、階層構造のルールベースツリーを再帰的に呼び出すことになる。 The above processing structure illustrated in FIG. 18 can be further illustrated by the following pseudo code fragment.
Figure 0003982691
Figure 0003982691
Figure 0003982691
Note that the service application can change the From header field or the Request-URI. Also, the resulting From header field or the resulting Request-URI can belong to another subscriber that is unknown even to the SIP server that handles the event. The resulting From and / or Request-URI is a new one that is unknown to the subscriber at the SIP server, and the service associated with this subscriber is invoked as well. In this case, the rule base processing procedure calls the hierarchical rule base tree recursively.

ルールモジュールの処理は、優先度順序で各アクションを行い、閉じられているパターンがカレントイベントコンテキストと照合するかどうかを評価し、照合する場合にアクションを適用する工程を有する。以下では、本発明の実施形態に従う方法を詳細に説明する。   The processing of the rule module includes performing each action in priority order, evaluating whether the closed pattern matches the current event context, and applying the action when matching. In the following, the method according to an embodiment of the present invention will be described in detail.

以下の擬似コードフラグメントは、ルールモジュールを処理するアルゴリズムの高レベル記述を提供する。

Figure 0003982691
ここで、enclosingPatternsTrue方法は、アクションを閉じるパターンがトゥルー(真)であるかを示すブーリアン(boolean)である。processAction方法は、以下の擬似コードセグメントで示されるようにして実現することができる:
Figure 0003982691
ここで、EC[]は、以下のイベントコンテキストのセットである。これが空である場合、サービスは、リクエストあるいは応答を終了する。 The following pseudocode fragment provides a high-level description of the algorithm that processes the rule module.
Figure 0003982691
Here, the enclosingPatternsTrue method is a boolean indicating whether the pattern for closing the action is true. The processAction method can be implemented as shown in the following pseudocode segment:
Figure 0003982691
Here, EC [] is a set of the following event contexts. If this is empty, the service ends the request or response.

サービスアプリケーションは、更に、イベントコンテキストを送信するための命令ではない命令を更に発行することができる。ここでは、上述のアルゴリズムには示されていない。このような命令は、ルールベースマネージャによって処理することができる。   The service application may further issue instructions that are not instructions for sending the event context. Here, it is not shown in the above algorithm. Such instructions can be processed by the rule base manager.

優先度順序でアクションを実行する場合、アクションの結果は、カレントイベントコンテキストを変更することができる。このようなアクションの後、カレントルールモジュールの処理は継続する。カレントルールモジュールの実行後、更なるルールモジュールが、ルールベース処理プロシージャに従って実行されても良い。カレントイベントコンテキストによって特定されるように、そのアクションを閉じるパターン(群)が新規メッセージプロパティと照合する場合、より下位の優先度順序のアクションのみが実行される。これは、2つのパターンに含まれる2つのアクションを記述する以下のフラグメントの擬似スクリプト例によって示される。

Figure 0003982691
2つのアクションは、2つのパターンに含められ、このパターンは、リクエストがINVITEであり、かつRequestURIがドメイン名xcorp.comを含んでいる場合に、アクションのみが適用されるべきであることを示している。第1のアクションは、ユーザ供給CPLスクリプトを呼び出す。ユーザCPLスクリプトがリクエストの宛先を変更しない場合、標準化プロキシ行動が呼び出されて、ユーザを配置し、リクエストのプロキシを行う。宛先を別のホストへ決定することによってCPLスクリプトが宛先を変更する場合、標準化プロキシ行動は呼び出される必要はない。 When executing actions in priority order, the result of the action can change the current event context. After such an action, processing of the current rule module continues. After execution of the current rule module, further rule modules may be executed according to the rule base processing procedure. If the pattern (s) that close the action match the new message property, as specified by the current event context, only the actions in the lower priority order are executed. This is shown by the following fragment pseudo script example that describes the two actions contained in the two patterns.
Figure 0003982691
The two actions are included in two patterns, where the request is INVITE and the RequestURI is the domain name xcorp. com indicates that only actions should be applied. The first action invokes a user-supplied CPL script. If the user CPL script does not change the destination of the request, a standardized proxy action is invoked to place the user and proxy the request. If the CPL script changes the destination by determining the destination to another host, the standardized proxy action need not be invoked.

新規ユーザを表現することによって、ルールモジュールを起動したメッセージプロパティが変更される場合、そのルールモジュールの処理が停止される。これの目的は、ルールモジュールが単一のユーザで処理されるものとして想定できることである。これは、ルールモジュール処理及びスクリプトオーサリングを簡略化する。   If the message property that started the rule module is changed by expressing a new user, the processing of the rule module is stopped. The purpose of this is that the rule module can be assumed to be processed by a single user. This simplifies rule module processing and script authoring.

図19は本発明の実施形態に従ってサービスアプリケーションが新規イベントコンテキストを生成する状況でのルールモジュールの再帰処理を示している。新規イベントコンテキストは、オリジナルルールモジュールトリガーを変更することができ、この場合、新規ルールモジュールは再帰的に呼び出すことができる。例えば、加入者の着信側プリファレンス、例えば、CPLスクリプトは、同一SIPサーバの別の加入者に関連する新規の宛先へリクエストを送信することができる。この場合、送信側の加入者の着信側プリファレンス、例えば、別のCPLスクリプトが同様に呼び出されるべきである。   FIG. 19 illustrates the recursion processing of the rule module in a situation where a service application generates a new event context according to an embodiment of the present invention. The new event context can change the original rule module trigger, in which case the new rule module can be called recursively. For example, a subscriber's terminating preference, eg, a CPL script, can send a request to a new destination associated with another subscriber on the same SIP server. In this case, the terminating preference of the sending subscriber, eg another CPL script, should be invoked as well.

図19の例で示されるように、SIPリクエストメッセージが他の加入者アカウントに関連する複数の新規の宛先へ送信される場合に、初期イベントコンテキスト1901は、再帰ルールモジュール呼出を生成する。図19の例では、アプリケーション1914は、加入者Aでのルールモジュール1903によって起動される。ルールモジュール1903は、オリジナルイベントコンテキスト1901によって起動される。アプリケーション1914は、3つのイベントコンテキスト1904〜1906を生成する、ここでは、ルールモジュールトリガーが、新規の加入者アカウントに関連する2つのイベントコンテキスト1905〜1906で変更される。イベントコンテキスト1904は、更新されたイベントコンテキストであるが、アプリケーション1914で最初に呼び出されたルールモジュールを有する同一の加入者には関連していない。この場合、新規のイベントコンテキスト1905〜1906に関連する加入者のルールモジュール1907〜1908もそれぞれ呼び出される。一方、ルールモジュール1907は、2つの新規のイベントコンテキスト1909及び1910を生成するアプリケーション1915を呼び出し、以下、同様に行う。その結果、リーフが、得られるイベントコンテキスト1910〜1913のセットに対応する場合に、ツリー処理構造が生成される。続いて、得られるイベントコンテキスト1910〜1913が、SIPメッセージをアップストリームあるいはダウンストリームあるいはその両方に送信するためにSIPサーバを起動する。これは、図19の例が、ルールモジュールがそれぞれ1つのアクションのみを含んでいると想定する簡単な例を示していることに注意されたい。   As shown in the example of FIG. 19, the initial event context 1901 generates a recursive rule module call when a SIP request message is sent to multiple new destinations associated with other subscriber accounts. In the example of FIG. 19, the application 1914 is activated by the rule module 1903 at the subscriber A. The rule module 1903 is activated by the original event context 1901. Application 1914 creates three event contexts 1904-1906, where the rule module trigger is changed in the two event contexts 1905-1906 associated with the new subscriber account. Event context 1904 is an updated event context but is not associated with the same subscriber having the rule module that was first invoked by application 1914. In this case, the subscriber rule modules 1907 to 1908 associated with the new event contexts 1905 to 1906 are also invoked. On the other hand, the rule module 1907 calls an application 1915 that generates two new event contexts 1909 and 1910, and so on. As a result, a tree processing structure is generated when the leaf corresponds to the resulting set of event contexts 1910-1913. Subsequently, the resulting event context 1910-1913 activates the SIP server to send the SIP message upstream or downstream or both. Note that this shows a simple example in which the example of FIG. 19 assumes that each rule module contains only one action.

図19の5つのアプリケーション1914〜1918が、得られるSIPメッセージに対する次のリプライを通知することを要求する場合、カスケーディング原理に従えば、応答は、ほとんどの論理的なダウンストリームアプリケーションに最初に通知される。図19では、得られるイベントコンテキスト1910に対する応答は、線分1919で示されるように、まず、アプリケーション1918に通知され、次に、アプリケーション1915、そして、アプリケーション1914へ通知される。得られるイベントコンテキスト1911に対して、対応するシーケンスは、線分1920で示されるように、アプリケーション1915及びアプリケーション1914である。得られるイベントコンテキスト1912に対して、シーケンスは、線分1921で示されるように、アプリケーション1916及びアプリケーション1914である。そして、得られるイベントコンテキスト1913に対して、シーケンスはアプリケーション1917及びアプリケーション1914である。   If the five applications 1914-1918 of FIG. 19 require notification of the next reply to the resulting SIP message, according to the cascading principle, the response will first notify most logical downstream applications. Is done. In FIG. 19, the response to the obtained event context 1910 is first notified to the application 1918 and then to the application 1915 and then to the application 1914 as indicated by the line 1919. For the resulting event context 1911, the corresponding sequences are application 1915 and application 1914, as shown by line 1920. For the resulting event context 1912, the sequence is application 1916 and application 1914, as shown by line segment 1921. For the event context 1913 obtained, the sequence is an application 1917 and an application 1914.

図20は、本発明の実施形態に従うルールモジュールに関連するアクセス制御を実行するメカニズムを示している。2つのタイプのアクセス制御が実行される。ルールモジュールへのアクセスは、証明及び認証されたパーティに対してのみ認められるべきであり、かつサービスフィーチャへのアクセスは、証明及び認証されたルールモジュールに対してのみ認められるべきである。本実施形態に従えば、このアクセス制御は、いわゆるアクセス制御リスト(ACL)を使用することによって実現することができる。このようなリストは、ルールモジュールに埋め込むことができるあるいは同一ディレクトリに配置することができる、そうでなければルールモジュールに関連するXML文書であっても良い。アクセス制御リストは、アクセス制御ルールを含んでいる。アクセス制御リストは、ルールモジュールへのアクセスが認められている個人あるいはグループのそれぞれを計数することができる。このメカニズムは、ルールモジュールの特権及び権利、例えば、どのサービスフィーチャをルールモジュールが使用しているかを明示的に特定するためにも使用することができる。それゆえ、このメカニズムは、管理者に、ルールモジュールの特権及び権利を管理させることができる。   FIG. 20 illustrates a mechanism for performing access control associated with a rule module according to an embodiment of the present invention. Two types of access control are performed. Access to the rule module should be granted only to the certified and authenticated party, and access to the service feature should be granted only to the certified and authenticated rule module. According to this embodiment, this access control can be realized by using a so-called access control list (ACL). Such a list may be embedded in the rule module or placed in the same directory, or may be an XML document associated with the rule module. The access control list includes access control rules. The access control list can count each individual or group authorized to access the rule module. This mechanism can also be used to explicitly specify the privileges and rights of the rule module, eg, which service features are being used by the rule module. Therefore, this mechanism allows the administrator to manage the privileges and rights of the rule module.

また、このメカニズムは、サービスアプリケーションの特権及び権利を管理するために使用することができる。加入者がCPLスクリプトをアップロードする場合、正しい時間でサービスを呼び出す関連ルールモジュールが存在しても良い。この場合、ルールモジュールは、明示的な特権及び権利を持ち続けるべきである。これは、CPLスクリプトとアクセス制御リストを関連付けることによって管理することができる。このメカニズムは、更に、サービスアプリケーションの特権及び権利、例えば、どのサービスフィーチャ、API等の、どのサービスアプリケーションを使用できるかを明示的に特定するために使用することができる。ここで、このメカニズムは、管理者に、サービスアプリケーションの特権及び権利を管理させることができる。   This mechanism can also be used to manage service application privileges and rights. When a subscriber uploads a CPL script, there may be an associated rule module that calls the service at the correct time. In this case, the rule module should continue to have explicit privileges and rights. This can be managed by associating a CPL script with an access control list. This mechanism can further be used to explicitly specify which service applications can be used, such as service application privileges and rights, eg, which service features, APIs, etc. Here, this mechanism allows the administrator to manage the privileges and rights of the service application.

図20の丸数字を参照して、以下の特権をチェックすることができる。   With reference to the circled numbers in FIG. 20, the following privileges can be checked.

1)オリジナルイベントコンテキスト2001は、適切な加入者(Aが発信側、Bが着信側)の証明後に、ルールエンジンに送信される。ルールモジュール及びサービスアプリケーションは、すべて証明されており、与えられている特権及び権利を有している。   1) The original event context 2001 is sent to the rule engine after proof of the appropriate subscriber (A is the caller and B is the callee). The rule module and service application are all certified and have the privileges and rights that are granted.

2)ルールベースプロセッサ2002は、証明されている加入者AあるいはBあるいはそれらの両方に関連するルールベース2003のルールモジュールへのアクセスを試行する。ルールベースプロセッサ2002は、このイベントを処理する場合の他の加入者に関連するルールモジュールへアクセスすることは許可されるべきでない。ルールベース2003は、ルールエンジンが自身を証明すべきである場合には、リモートサーバに配置されても良い。   2) The rule base processor 2002 attempts to access the rule module of the rule base 2003 associated with the certified subscriber A and / or B. The rule base processor 2002 should not be allowed to access the rule module associated with other subscribers when processing this event. The rule base 2003 may be located on a remote server if the rule engine should prove itself.

3)アクセス制御リスト2005に従うことが可能である場合、ルールベースプロセッサ2002は、ロードされているルールモジュール2004、いわゆる、Aに所有されるルールモジュール1を呼び出すことができる。   3) If it is possible to follow the access control list 2005, the rule base processor 2002 can call the loaded rule module 2004, so-called rule module 1 owned by A.

4)アクセス制御リスト2006に従うことが可能である場合、ルールモジュール2004は、別の所有者Bに関連する別のルールモジュール2007を呼び出すことを試行することができる。   4) If it is possible to follow the access control list 2006, the rule module 2004 may attempt to call another rule module 2007 associated with another owner B.

5)アクセス制御リスト2008に従うことが可能である場合、ルールベースプロセッサ2002は、ロードされているルールモジュール2007を呼び出すことができる。   5) If it is possible to follow the access control list 2008, the rule base processor 2002 can call the loaded rule module 2007.

6)アクセス制御リスト2005及び2012に従うことが可能である場合、ルールモジュール2004は、可能であれば、サービスアプリケーション2010を呼び出すことを試行することができる。サービスアプリケーション2010は、アクセス制御リスト2011に従って、イベントコンテキスト2013にアクセスすることができる。   6) If it is possible to follow the access control lists 2005 and 2012, the rules module 2004 may attempt to call the service application 2010 if possible. The service application 2010 can access the event context 2013 according to the access control list 2011.

7)サービスアプリケーション2010は、アクセス制御リスト2015に従うことが可能である場合、ルールモジュールプロセッサへ取り次がれる命令2014のセットを返信することができる。   7) If the service application 2010 can follow the access control list 2015, it can return a set of instructions 2014 to the rule module processor.

8)サービスアプリケーション2010は、アクセス制御リスト2015に従うことが可能である場合、イベントに対してアームする/アームしないことができる。   8) If the service application 2010 can follow the access control list 2015, it can arm / not arm for the event.

9)サービスアプリケーション2010は、アクセス制御リスト2012に従うことが可能である場合、呼び出されているルールモジュール以外の別のルールモジュール2007に命令を与えることを試行することができる。   9) If the service application 2010 can follow the access control list 2012, it can attempt to give instructions to another rule module 2007 other than the rule module being called.

ルールモジュールへのアクセス制御は、ルールモジュールのポリシーノードによって実行することができる。ルールモジュールに埋め込まれているルールモジュールアクセス制御リストの例は、以下のように参照される:

Figure 0003982691
このポリシーは、加入者アリスがルールモジュールを呼び出すことができるが、それを読み出したりあるいは書き込むことができない場合に、そのルールモジュール全体に適用することができる。 Access control to the rule module can be performed by the policy node of the rule module. An example of a rule module access control list embedded in a rule module is referenced as follows:
Figure 0003982691
This policy can be applied to the entire rule module when subscriber Alice can invoke the rule module but cannot read or write it.

このようなポリシーのXMLスクリプトは、ルールモジュール内に埋め込むことができるばかりか、これらは、データ要素に関連づけることもできる。例えば、ネットワークオペレータは、ポリシーのXMLスクリプトを加入者のルールモジュールに関係づけることができ、ルールモジュールの所有者に対するネットワークオペレータによって認められている特権を特定する。これらの特権はサービスあるいはサービスのフィーチャを特定することができ、以下のサービスアクセス制御リストの例で示されるように、ルールモジュールを呼び出すことができる:

Figure 0003982691
SIPサーバサービスサポート環境は、更に、例えば、コンテンツ課金、アプリケーション課金、利用課金あるいはその類に対するアカウントレコードを生成するように構成することができることに注意されたい。例えば、このレコードは、SERLスクリプトあるいはCPLスクリプトからのログを介して提供され、ライブラリ機能あるいはサービスアプリケーション等を介して管理される。 Such policy XML scripts can not only be embedded within the rule module, but they can also be associated with data elements. For example, the network operator can associate a policy XML script with the subscriber's rule module and identifies the privileges granted by the network operator to the rule module owner. These privileges can specify services or service features and can invoke rules modules, as shown in the following example service access control list:
Figure 0003982691
It should be noted that the SIP server service support environment can be further configured to generate account records for, for example, content billing, application billing, usage billing, or the like. For example, this record is provided via a log from a SERL script or CPL script, and is managed via a library function or a service application.

また、加入者及びサードパーティサービスプロバイダがサービスアプリケーションをアップロードするばかりか、フィーチャ相互作用分析の度合を含むサービスアプリケーションを、どのようにして、かついつ呼び出すかについての命令をアップロードすることが可能であるとしても、本発明に従うサービストリガリング実行システムは、SIPノードの安全性及び完全性を確保するためのセキュリティ測定を実行することが好ましい。可能なセキュリティ測定は、ルールモジュール、サービスアプリケーション、名前空間取り決めポリシー、証明メカニズム、認証メカニズム、アクセス保護、アップロードされているルールモジュールの証明及び有効化、ロギング及びモニタリング等の特権及び権利の構成を含んでいる。   It is also possible for subscribers and third party service providers to upload service applications, as well as instructions on how and when to invoke service applications, including the degree of feature interaction analysis. Even so, the service triggering execution system according to the present invention preferably performs a security measurement to ensure the safety and integrity of the SIP node. Possible security measures include configuration of privileges and rights such as rule modules, service applications, namespace agreement policies, certification mechanisms, authentication mechanisms, access protection, certification and validation of uploaded rule modules, logging and monitoring, etc. It is out.

本発明は、主として、ネットワークサービスに関して説明されていることに注意されたい。しかしながら、これは、エンドユーザ装置で使用することにも適用可能である。   Note that the present invention has been described primarily with respect to network services. However, this is also applicable for use with end-user devices.

また、主として、SIPに関連して説明される本発明は、他のシグナリングプロトコルにも、同様に、利用できることに注意されたい。SERLは、SIPイベントに基づいてサービスを呼び出すことに制限されないばかりか、ビジネスモデルの任意のタイプのコンテキストで、任意のタイプのイベントに基づいて任意のタイプのサービスアプリケーションを呼び出すことができる。本発明は、SIPが可能なノードに対するサービスを管理するために適用することができる。SERLスクリプトを使用することで、サービスを、ユーザエージェント、レジスタ、リダイレクトサーバあるいはプロキシサーバを実現するノードから呼び出すことができる。   It should also be noted that the present invention described primarily in connection with SIP can be used with other signaling protocols as well. SERLs are not limited to invoking services based on SIP events, but can invoke any type of service application based on any type of event in any type of context in the business model. The present invention can be applied to manage services for nodes capable of SIP. By using a SERL script, a service can be called from a node that implements a user agent, a register, a redirect server, or a proxy server.

そして、3GPPアーキテクチャにおいて、すべての加入者データが、いわゆるホーム加入者サーバ(HSS)で管理されることに注意されたい。アプリケーションに関連するSIPは、サービング発信状態制御機能(S−CSCF)と呼ばれるノードから呼び出される。加入者がネットワークに接続する場合、自身のユーザ端末(UE)は、適切なS−CSCFを選択するためのCSCFディスカバリーを実行する。S−CSCFは、対象の加入者へサービスを提供することをHSSに登録する。サービストリガーは、SERLフォーマットのサービス実行ルールの形式で、HSSからS−CSCFへ送信することができる。HSSは、S−CSCFが正常にインストールされているサービスを有していることに基づいて、異なるS−CSCFを割り当てることを決定するために、加入者に関連するサービス実行ルールを使用することもできる。ここで、本発明の実施形態は、正常な処理ポイント及び優先度でのトリガーに基づいて加入者を配置するためのHSSに対する順序で使用することができる、つまり、S−CSCFでインストールされている固定サービスの正常な優先度順序で使用することができる。ここで、本発明に従うメカニズムは、3GPP IPMMドメインに埋め込むことができる。   It should be noted that in the 3GPP architecture, all subscriber data is managed by a so-called home subscriber server (HSS). The SIP associated with the application is called from a node called serving call state control function (S-CSCF). When a subscriber connects to the network, his user terminal (UE) performs CSCF discovery to select an appropriate S-CSCF. The S-CSCF registers with the HSS to provide service to the target subscriber. The service trigger can be transmitted from the HSS to the S-CSCF in the form of a service execution rule in the SERL format. The HSS may also use a service execution rule associated with the subscriber to determine to assign a different S-CSCF based on the S-CSCF having a successfully installed service. it can. Here, embodiments of the present invention can be used in order for HSS to place subscribers based on triggers at normal processing points and priorities, ie installed in S-CSCF Can be used in normal priority order of fixed services. Here, the mechanism according to the invention can be embedded in the 3GPP IPMM domain.

SIPサービスネットワークの様々なタイプのフィーチャ相互作用を示す図である。FIG. 2 illustrates various types of feature interactions in a SIP service network. 本発明の実施形態に従うサービス環境SIPサーバアーキテクチャに含まれるネットワーク要素を示す図である。FIG. 3 illustrates network elements included in a service environment SIP server architecture according to an embodiment of the present invention. 本発明の実施形態に従うサービス実行ルールメカニズムをサポートするSIPサーバのシステムアーキテクチャを示す図である。FIG. 3 illustrates a system architecture of a SIP server that supports a service execution rule mechanism according to an embodiment of the present invention. 本発明の実施形態に従うルールモジュールの構造を示す図である。It is a figure which shows the structure of the rule module according to embodiment of this invention. 本発明の実施形態に従う、制約のあるサービスのセットへのサービスのグルーピングを示す図である。FIG. 4 is a diagram illustrating grouping of services into a constrained set of services according to an embodiment of the present invention. 本発明の実施形態に従う再帰SIPメッセージフローの位置に制約のあるサービスのセットへのサービスのグループ化を示す図である。FIG. 6 illustrates grouping services into a set of services that are constrained in the location of recursive SIP message flows according to an embodiment of the invention. 本発明の実施形態に従う様々な処理ポイントに属するサービス間の処理フローを示す図である。It is a figure which shows the processing flow between the services which belong to the various processing points according to embodiment of this invention. 本発明の実施形態に従う管理権限に対応するルールモジュールへのサービスのグループピングを示す図である。FIG. 6 is a diagram illustrating grouping of services into rule modules corresponding to management authority according to an embodiment of the present invention. 処理ポイントと管理権限の両方に従ってサービスがグループ化される本発明の実施形態を示す図である。FIG. 6 illustrates an embodiment of the present invention in which services are grouped according to both processing points and management rights. 複数のルールモジュールと複数の処理ポイントの場合の図9の実施形態の処理メカニズムを示す図である。FIG. 10 is a diagram illustrating a processing mechanism of the embodiment of FIG. 9 in the case of a plurality of rule modules and a plurality of processing points. 図9に関連して説明される処理ルールの別の例を示す図である。It is a figure which shows another example of the processing rule demonstrated in relation to FIG. 本発明の実施形態に従う階層ルールモジュール処理を示す図である。It is a figure which shows the hierarchy rule module process according to embodiment of this invention. 本発明の実施形態に従うSIPメッセージイベントコンテキスト及び命令セットのフローの例を示す図である。FIG. 4 is a diagram illustrating an example of a SIP message event context and instruction set flow according to an embodiment of the present invention. 本発明の実施形態に従う複数の命令セットを管理するメカニズムを示す図である。FIG. 6 illustrates a mechanism for managing a plurality of instruction sets according to an embodiment of the present invention. 本発明の実施形態に従うサービスアプリケーションのカスケード化チェーンのツリーを示す図である。FIG. 4 shows a tree of service application cascaded chains according to an embodiment of the present invention. 本発明の実施形態に従うサービスサポート環境のソフトウェアコンポーネントを示す図である。FIG. 3 illustrates software components of a service support environment according to an embodiment of the present invention. 図16の実施形態のルールモジュールの処理とサービスアプリケーションの処理間でサービス相互作用モジュールによって実行される工程を示す図である。It is a figure which shows the process performed by the service interaction module between the process of the rule module of FIG. 16, and the process of a service application. 本発明の実施形態に従うルールモジュールの処理のツリー構造を示す図である。It is a figure which shows the tree structure of the process of the rule module according to embodiment of this invention. 本発明の実施形態に従ってサービスアプリケーションが新規のイベントコンテキストを生成する状況でのルールモジュールの再帰処理を示す図である。FIG. 10 is a diagram illustrating recursion processing of a rule module in a situation where a service application generates a new event context according to an embodiment of the present invention. 本発明の実施形態に従うルールモジュールに関係してアクセス制御を実行するメカニズムを示す図である。FIG. 6 is a diagram illustrating a mechanism for performing access control in relation to a rule module according to an embodiment of the present invention.

Claims (26)

通信セッションを制御するセッションプロトコルのメッセージ(1306、1609)によって起動される複数のサービス(309、310、311、1305、1611、1612、1613)を管理する方法であって、
サービスを呼び出すための状態(403、404、405)を特定する実行ルール(308、401、402、1606、1607、1608)を、それぞれがいくつか有するいくつかのルールモジュールを取得する工程と、
−前記いくつかのルールモジュールの内の第1ルールモジュール(1216)の処理として、
前記第1ルールモジュールの実行ルールの少なくとも一部である、
前記メッセージが第1状態を満足する場合に、呼出対象の第1サービス(1611)を生成して、第1変更メッセージ(1615)を出力する第1実行ルール(1606)と、
前記第1変更メッセージが第2状態を満足する場合、第1変更メッセージを入力として、呼出対象の第2サービス(1612)を生成する第2実行ルール(1607)とを、
所定の順序で処理することで、累積変更メッセージ(1206)を出力する処理を行う工程と、
−前記累積変更メッセージを入力として提供する前記いくつかのルールモジュールの内の第2ルールモジュール(1217)呼出処理を行う工程とを備え、
前記第1ルールモジュールには、前記累積変更メッセージの所定部分に関連するロックフラグを変更する権限を示す特権が割り当てられ、
前記ロックフラグは、前記累積変更メッセージの前記所定部分が、少なくとも前記第2ルールモジュールから呼び出されるサービスによって変更されるかを特定する
こと特徴とする方法。
A method for managing a plurality of services (309, 310, 311, 1305, 1611, 1612, 1613) activated by session protocol messages (1306, 1609) for controlling a communication session,
Obtaining a number of rule modules each having several execution rules (308, 401, 402, 1606, 1607, 1608 ) that specify the states ( 403, 404, 405) for invoking the service ;
-As a process of the first rule module (1216) of the several rule modules ,
Are at least part of the execution rules of the first rule module ;
A first execution rule (1606) for generating a first service (1611) to be called and outputting a first change message (1615) when the message satisfies the first state;
A second execution rule (1607) for generating a second service (1612) to be called by using the first change message as an input when the first change message satisfies the second state;
Performing a process of outputting a cumulative change message (1206) by processing in a predetermined order;
Performing a calling process of a second rule module (1217) of the several rule modules that provides the cumulative change message as an input;
The first rule module is assigned a privilege indicating an authority to change a lock flag associated with a predetermined portion of the cumulative change message;
The method, wherein the lock flag specifies whether the predetermined portion of the cumulative change message is changed by at least a service called from the second rule module.
各ルールモジュールは、前記いくつかのルールモジュールの処理順序を示す優先度と関連付けられている
ことを特徴とする請求項1に記載の方法。
The method according to claim 1, wherein each rule module is associated with a priority indicating a processing order of the several rule modules.
各ルールモジュールは、前記ルールモジュールを編集することが認証されたルールモジュール所有者(409)に対応する
ことを特徴とする請求項1または2に記載の方法。
The method according to claim 1 or 2, characterized in that each rule module corresponds to a rule module owner (409) authorized to edit the rule module.
前記第2ルールモジュールの呼出処理を行う工程は、更に、前記ロックフラグが第1ルールモジュールによって設定解除(unset)がマークされない限り、前記第2ルールモジュールから呼び出されるサービスによる前記累積変更メッセージの前記所定部分の変更を防止するために該ロックフラグを設定する工程を備える
ことを特徴とする請求項1乃至3のいずれか1項に記載の方法。
The step of calling the second rule module further includes the step of calling the second rule module unless the lock flag is marked unset by the first rule module. The method according to any one of claims 1 to 3, further comprising the step of setting the lock flag in order to prevent a predetermined portion from being changed.
前記いくつかの実行ルールを取得する工程は、更に、前記メッセージのヘッダ情報に基づいて所定の契約関係を検出し、前記検出された契約関係に基づいていくつかのルールモジュールを選択する工程を備える
ことを特徴とする請求項1乃至4のいずれか1項に記載の方法。
The step of obtaining the number of execution rules further comprises a step of detecting a predetermined contract relationship based on header information of the message and selecting a number of rule modules based on the detected contract relationship. The method according to any one of claims 1 to 4, characterized in that:
前記第1ルールモジュール(1216)処理を行う工程は、更に、所定の第3ルールモジュール(1220)を呼び出す工程を備える
ことを特徴とする請求項1乃至5のいずれか1項に記載の方法。
The method according to any one of claims 1 to 5, wherein the step of processing the first rule module (1216) further comprises a step of calling a predetermined third rule module (1220). .
前記第1及び第2ルールモジュールはそれぞれ、該第1あるいは第2ルールモジュールに対応するアクセス権を特定する第1及び第2アクセス制御リスト(411)に関連付けられている
ことを特徴とする請求項1乃至6のいずれか1項に記載の方法。
The first and second rule modules are respectively associated with first and second access control lists (411) that specify access rights corresponding to the first or second rule modules. The method according to any one of 1 to 6.
前記第1及び第2ルールモジュールはそれぞれ、所定マークアップ言語の第1及び第2スクリプトからなる
ことを特徴とする請求項1乃至7のいずれか1項に記載の方法。
The method according to any one of claims 1 to 7, wherein the first and second rule modules respectively include first and second scripts in a predetermined markup language.
前記メッセージは、第1及び第2の属性セットを有し、前記実行ルールは、対応する制約に従って、少なくとも第1及び第2処理クラス(903、904)の実行ルールにグループ化され、前記第2処理クラスは、前記第2の属性セットの属性を変更することだけに制約されており、前記方法は、前記第1ルールモジュール(901)を処理する工程と前記第2ルールモジュール(902)の呼出処理を行う工程を繰り返す工程を更に備え、ここで、各繰り返し処理において、前記第1及び第2ルールモジュールの処理は、対応する処理クラスのルールを実行することに制限され、ここで、各繰り返し処理は、次の繰り返し処理に対する入力として使用される対応する累積変更メッセージを出力する
ことを特徴とする請求項1乃至8のいずれか1項に記載の方法。
The message has first and second attribute sets, and the execution rules are grouped into execution rules of at least first and second processing classes (903, 904) according to corresponding constraints, and the second The processing class is limited only to changing the attributes of the second attribute set, and the method includes processing the first rule module (901) and calling the second rule module (902). A step of repeating the process of performing processing, wherein in each iteration, the processing of the first and second rule modules is limited to executing the rules of the corresponding processing class, wherein each iteration 9. The process outputs a corresponding cumulative change message that is used as an input for the next iteration process. The method according to claim 1.
前記処理クラスは、前記セッションプロトコルのリクエスト(607)及び応答(608)によって起動される実行ルールに対して別々に定義される
ことを特徴とする請求項9に記載の方法。
10. The method of claim 9, wherein the processing class is defined separately for execution rules triggered by the session protocol request (607) and response (608).
前記第1の属性セットは、前記メッセージのシグナリングプロパティを有する
ことを特徴とする請求項9また10に記載の方法。
It said first attribute set A method according to claim 9 or 10, characterized in that it has a signaling properties of the message.
前記処理クラスは、前記セッションプロトコルに従う再帰メッセージフローの所定位置に対応する
ことを特徴とする請求項9乃至11のいずれか1項に記載の方法。
The method according to any one of claims 9 to 11, wherein the processing class corresponds to a predetermined position of a recursive message flow according to the session protocol.
前記処理クラスは、前記メッセージのシグナリングプロパティ(702)を与える第1処理クラス(P1)の実行ルール、前記メッセージの非シグナリングメッセージ本体コンテンツ(704)を与える第2処理クラス(P2)の実行ルールと、前記メッセージの前記シグナリングプロパティも前記非シグナリングメッセージ本体コンテンツも与えない第3処理クラス(P3)の実行ルールを含んでいる
ことを特徴とする請求項9乃至12のいずれか1項に記載の方法。
The processing class includes an execution rule of a first processing class (P1) that provides a signaling property (702) of the message, an execution rule of a second processing class (P2) that provides a non-signaling message body content (704) of the message, 13. The method according to claim 9, comprising an execution rule of a third processing class (P3) that does not give the signaling properties of the message nor the non-signaling message body content. .
前記第1及び第2処理クラスのすべての実行ルールが処理される場合に、変更メッセージ(703)が生成される
ことを特徴とする請求項13に記載の方法。
14. The method of claim 13, wherein a change message (703) is generated when all execution rules of the first and second processing classes are processed.
呼び出す前記第1サービスは、更に、第2変更メッセージを出力し、前記方法は、更に、前記第1変更メッセージを入力として次の実行ルールを処理する工程と、前記第2変更メッセージを入力として次の実行ルールを処理する工程とを備える
ことを特徴とする請求項1乃至14のいずれか1項に記載の方法。
The first service to be called further outputs a second change message, and the method further includes processing the next execution rule with the first change message as input, and receiving the second change message as input. The method of any one of Claims 1 thru | or 14 characterized by the above-mentioned.
前記方法は、更に、
どのサービスが実行されているかについての情報と、どの順序でサービスが実行されているかについての情報を記憶する工程と、
所定のイベントが発生している場合、前記第1サービスへ通知を返信するリクエストを前記第1サービスから受信する工程と、
前記記憶されている情報に関連する前記リクエストを記憶する工程と、
前記イベントの発生において、前記記憶されている情報に従って前記第1サービスへ通知する工程と
ことを特徴とする請求項1乃至15のいずれか1項に記載の方法。
The method further comprises:
Storing information about which services are being executed and information about in which order the services are being executed;
Receiving a request from the first service to return a notification to the first service if a predetermined event has occurred;
Storing the request associated with the stored information;
The method according to claim 1, further comprising: notifying the first service according to the stored information when the event occurs.
前記実行モジュールは、コンピュータ可読スクリプトを有し、前記実行ルールの所定の処理順序は、前記スクリプト上の実行ルールの順序によって判定される
ことを特徴とする請求項1乃至16のいずれか1項に記載の方法。
The execution module includes a computer-readable script, and the predetermined processing order of the execution rules is determined according to the order of the execution rules on the script. The method described.
前記セッションは、発信側及び着信側を含むいくつかの加入者に関連し、サービスは、加入者からのリクエストによって起動されるように構成され、前記方法は、更に、前記着信側によって要求される任意のサービスを呼び出す前に、前記発信側によって要求されるサービスを呼び出す工程を備える
ことを特徴とする請求項1乃至17のいずれか1項に記載の方法。
The session is associated with a number of subscribers including a caller and a callee, and a service is configured to be activated by a request from the subscriber, and the method is further requested by the callee 18. A method according to any one of the preceding claims, comprising invoking a service requested by the caller before invoking any service.
前記セッションプロトコルは、セッション初期化プロトコルである
ことを特徴とする請求項1乃至18のいずれか1項に記載の方法。
The method according to claim 1, wherein the session protocol is a session initialization protocol.
前記通信セッションは、マルチメディアセッションである
ことを特徴とする請求項1乃至19のいずれか1項に記載の方法。
The method according to any one of claims 1 to 19, wherein the communication session is a multimedia session.
前記実行ルールは、動的に更新されるように構成されている
ことを特徴とする請求項1乃至20のいずれか1項に記載の方法。
The method according to any one of claims 1 to 20, wherein the execution rules are configured to be updated dynamically.
通信セッションを制御するセッションプロトコルのメッセージによって起動される複数のサービス(309、310、311)を呼び出すように構成されているサービス実行環境モジュール(201、301)を有するデータ処理システムであって、前記データ処理システムは、更に、いくつかの実行ルールをそれぞれが有する複数のルールモジュールを記憶するように構成されている記憶媒体(307)を有し、各実行ルールは、サービスを呼び出す状態を特定し、
前記サービス実行環境モジュールは、
−いくつかのルールモジュールを検索し、
−前記ルールモジュールの第1ルールモジュールの処理として、
前記第1ルールモジュールの実行ルールの少なくとも一部である
前記メッセージが第1状態を満足する場合、呼出対象の第1サービスを生成して、第1変更メッセージを出力する第1実行ルールと、
前記第1変更メッセージが第2状態を満足する場合、第1変更メッセージを入力として、呼出対象の第2サービスを生成する第2実行ルールとを、
所定の順序で処理することで、第1累積変更メッセージを出力し、
−前記第1累積変更メッセージを入力として提供する前記いくつかのルールモジュールの内の第2ルールモジュール(1217)呼出処理を行う
ように構成されているルールエンジンモジュール(303)を有し、
前記第1ルールモジュールには、前記累積変更メッセージの所定部分に関連するロックフラグを変更する権限を示す特権が割り当てられ、前記ロックフラグは、前記累積変更メッセージの前記所定部分が、少なくとも前記第2ルールモジュールから呼び出されるサービスによって変更されるかを特定する
ことを特徴とするデータ処理システム。
A data processing system comprising service execution environment modules (201, 301) configured to call a plurality of services (309, 310, 311) activated by a message of a session protocol for controlling a communication session, The data processing system further includes a storage medium (307) configured to store a plurality of rule modules each having a number of execution rules, each execution rule specifying a state invoking a service. ,
The service execution environment module is
-Search for several rule modules,
-As a process of the first rule module of the rule module ,
Are at least part of the execution rules of the first rule module;
A first execution rule for generating a first service to be called and outputting a first change message if the message satisfies a first state;
When the first change message satisfies the second state, a second execution rule for generating the second service to be called, using the first change message as an input,
By processing in a predetermined order , the first cumulative change message is output,
-A rule engine module (303) configured to perform a call process of a second rule module (1217) of the several rule modules that provides the first cumulative change message as input;
The first rule module is assigned a privilege indicating an authority to change a lock flag associated with a predetermined portion of the cumulative change message, and the lock flag includes at least the second portion of the predetermined portion of the cumulative change message. A data processing system characterized by identifying whether or not it is changed by a service called from a rule module.
前記ルールエンジンモジュールは、所定のルール実行特定言語を解釈するように構成されている
ことを特徴とする請求項22に記載のデータ処理システム
The data processing system according to claim 22, wherein the rule engine module is configured to interpret a predetermined rule execution specific language.
前記ルールエンジンモジュールは、更に、前記実行ルールを検索するように構成されているルールベースプロセッサモジュール(1601)と、前記実行ルールを処理するように構成されているルールモジュール処理モジュール(314、1604、1605)を有する
ことを特徴とする請求項22または23に記載のデータ処理システム
The rule engine module further includes a rule base processor module (1601) configured to search for the execution rule, and a rule module processing module (314, 1604) configured to process the execution rule. 1605) The data processing system according to claim 22 or 23.
データ処理システム上で実行される場合、請求項1乃至21のいずれか1項に記載の方法の各工程を実行するように構成されているコード手段を有するソフトウェアプログラム。  22. A software program comprising code means configured to perform the steps of the method according to any one of claims 1 to 21 when executed on a data processing system. 前記ソフトウェアプログラムは、コンピュータ可読媒体に埋め込まれている
ことを特徴とする請求項25に記載のソフトウェアプログラム
The software program according to claim 25, wherein the software program is embedded in a computer-readable medium.
JP2002588089A 2001-05-07 2002-05-02 Service triggering framework Expired - Lifetime JP3982691B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DKPA200100707 2001-05-07
EP01610120A EP1257129B1 (en) 2001-05-07 2001-11-22 Service triggering framework
US33455201P 2001-12-03 2001-12-03
PCT/EP2002/004867 WO2002091756A1 (en) 2001-05-07 2002-05-02 Service triggering framework

Publications (2)

Publication Number Publication Date
JP2004532472A JP2004532472A (en) 2004-10-21
JP3982691B2 true JP3982691B2 (en) 2007-09-26

Family

ID=27222509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002588089A Expired - Lifetime JP3982691B2 (en) 2001-05-07 2002-05-02 Service triggering framework

Country Status (2)

Country Link
JP (1) JP3982691B2 (en)
WO (1) WO2002091756A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0224187D0 (en) 2002-10-17 2002-11-27 Mitel Knowledge Corp Interactive conflict resolution for personalised policy-based services
FI116703B (en) * 2003-07-11 2006-01-31 Nokia Corp Determination of nodes in a device management system
US10397342B2 (en) 2003-09-24 2019-08-27 International Busniess Machines Corporation Web service contract selection
JP4491652B2 (en) * 2003-10-24 2010-06-30 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Apparatus and method for controlling service progress between different domains
US20050289244A1 (en) * 2004-06-28 2005-12-29 Himansu Sahu Method for service chaining in a communication network
EP2822249B1 (en) 2005-08-12 2020-09-30 Samsung Electronics Co., Ltd System and method for transmitting system messages in session initiation protocol
CN101951604A (en) * 2010-08-16 2011-01-19 中兴通讯股份有限公司 Value added service processing method and device
US10097452B2 (en) * 2012-04-16 2018-10-09 Telefonaktiebolaget Lm Ericsson (Publ) Chaining of inline services using software defined networking

Also Published As

Publication number Publication date
WO2002091756A1 (en) 2002-11-14
JP2004532472A (en) 2004-10-21

Similar Documents

Publication Publication Date Title
US20030187992A1 (en) Service triggering framework
US8375360B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
US8689334B2 (en) Security protection for a customer programmable platform
US8291077B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
JP4139228B2 (en) Billing method and system based on application communication
US8856862B2 (en) Message processing methods and systems
US8788580B2 (en) Event broker for an improved application server platform for telecom-based applications
US9294867B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
EP1026867A2 (en) System and method to support configurable policies of services in directory-based networks
US20050015340A1 (en) Method and apparatus for supporting service enablers via service request handholding
US20090268715A1 (en) System and Method for Providing Service Correlation in a Service Access Gateway Environment
WO2008125918A2 (en) Systems and methods for policy-based service management
US20080168528A1 (en) Role-based authorization using conditional permissions
US20060161616A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
JP3982691B2 (en) Service triggering framework
EP1257129B1 (en) Service triggering framework
Poggi et al. Extending JADE for agent grid applications
EP1681832A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
US20060190539A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
Zave Address translation in telecommunication features
Schülke et al. Service delivery platform: Critical enabler to service providers' new revenue streams
GB2422219A (en) A software development system
Cetiner XML based service provisioning in converged voice and data networks
Amyot et al. Feature interactions in web services
Wei et al. Guarding sensitive information streams through the jungle of composite web services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070514

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070628

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 3982691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130713

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term