(57)【特許請求の範囲】
【請求項１】
複合サービスの少なくとも２つのサービスのサービス選択の方法であって、
少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）を含む複合サービス記述（１００）を提供するステップであって、各サービステンプレートはサービスに対する少なくとも１つの制約を規定するものであり当該サービステンプレートに代えて当該サービスが実行され、これにより該サービスが前記複合サービスの一部を構成するステップと、
各サービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）ごとに、当該サービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）の前記少なくとも１つの制約にマッチする少なくとも１つのサービスを含む対応する候補セット（１１２ａ、１１２ｂ、１１２ｃ）を、サービスデータベース（１０６）から選択するステップと、
前記少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）の各々ごとに、所定のコスト尺度に基づいて作成コストの削減を提供するように、前記対応する候補セット（１１２ａ、１１２ｂ、１１２ｃ）から１つのサービス（１０８ａ、１０８ｆ、１０８ｈ；１０８ｂ、１０８ｆ、１０８ｉ）を選択するステップと、
を有し、
前記複合サービスを作成するための前記作成コストは、前記複合サービス記述（１００）の全てのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）のサブセット（２１６ａ、２１６ｂ）に対して前記選択されたサービスを考慮することで算出されることを特徴とする方法。
【請求項２】
前記１つのサービスは、前記複合サービスを作成するための前記作成コストの最小値を提供するように、前記対応する候補セット（１１２ａ、１１２ｂ、１１２ｃ）から選択されることを特徴とする請求項１に記載の方法。
【請求項３】
前記対応する候補セットの前記選択は、前記複合サービスの作成の呼出し前に実行されることを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記対応する候補セットの前記選択は、前記複合サービスの作成の呼出しの際又は呼出し後に少なくとも部分的に実行されることを特徴とする請求項１又は２に記載の方法。
【請求項５】
前記所定のコスト尺度はレイテンシー尺度を含み、それに従って選択されたサービスの作成コストは、前記少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）の前記選択されたサービスを合成するためのレイテンシーに依存し、該レイテンシーは、前記少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）のサービスの合成の呼出しと最も早くに可能な前記複合サービスの実行との間の時間遅延として規定されることを特徴とする請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
前記所定のコスト尺度はエネルギー効率尺度を含み、それに従って選択されたサービスの作成コストが低いほど、前記少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）の前記選択されたサービスに関連するエネルギー消費は少なくなることを特徴とする請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
前記所定のコスト尺度はコロケーション尺度を含み、それに従って選択されたサービスの作成コストは、同一のネットワークノード上に配置される前記選択されたサービスの数に依存することを特徴とする請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
前記所定のコスト尺度はトラフィック尺度を含み、それに従って選択されたサービスの作成コストは、前記少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）の前記サービスを合成する種々の通信ネットワークノード間でやり取りされるデータの量に依存することを特徴とする請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
前記少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）は、第１のサービステンプレート（１０２ａ）及び第２のサービステンプレート（１０２ｂ）を含み、
前記第１のサービステンプレート（１０２ａ）に対するサービスの選択は、前記第２のサービステンプレート（１０２ｂ）に対するサービスの選択に依存する該サービスを選択することを含み、前記第２のテンプレートに対して前記選択されたサービスは、前記第１のサービステンプレート（１０２ａ）の前記選択されたサービスの後に実行されるようにスケジュールされる
ことを特徴とする請求項１乃至８のいずれか１項に記載の方法。
【請求項１０】
複合サービスの少なくとも２つのサービスのサービス選択のための選択エンティティ（３６２）であって、
少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）を含む複合サービス記述（１００）を、複合サービス記述記憶装置（３７６）から受信する受信ユニット（３７８）であって、各サービステンプレートはサービスに対する少なくとも１つの制約を規定するものであり当該サービステンプレートに代えて当該サービスが実行され、これにより該サービスが前記複合サービスの一部を構成する、受信ユニット（３７８）と、
各サービステンプレートごとに、前記サービステンプレートの前記少なくとも１つの制約にマッチする少なくとも１つのサービスを含む対応する候補セットを、サービスデータベースから選択する候補選択ユニット（３８６）と、
前記少なくとも２つのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）の各々ごとに、所定のコスト尺度に基づいて作成コストの削減を提供するように、前記対応する候補セットから１つのサービスを選択するサービス選択ユニット（３８８）と、
を有し、
前記複合サービスを作成するための前記作成コストは、前記複合サービス記述（１００）の全てのサービステンプレート（１０２ａ、１０２ｂ、１０２ｃ）のサブセット（２１６ａ、２１６ｂ）に対して前記選択されたサービスを考慮することで算出されることを特徴とする選択エンティティ。
【請求項１１】
前記選択エンティティ（３６２）は通信ネットワーク（３５０）のネットワークノードの形態であり、前記候補セットから選択されたサービスと、前記候補セットから選択されたサービスの識別子とのうちのいずれか一方を、前記通信ネットワークにおける別のネットワークノードに送信する送信ユニット（３７９）を更に有することを特徴とする請求項１０に記載の選択エンティティ。
【請求項１２】
複合サービスの少なくとも２つのサービスのサービス選択のためのコンピュータプログラムを格納し、データプロセッサにより実行されると、請求項１乃至９のいずれか１項に記載の方法を制御又は実行するように構成されることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１３】
複合サービスの少なくとも２つのサービスのサービス選択のためのプログラムであって、データプロセッサにより実行されると、請求項１乃至９のいずれか１項に記載の方法を制御又は実行するように構成されることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合サービスにおけるサービスのサービス選択の分野に関する。
【背景技術】
【０００２】
サービス複合化とは、構成要素とするサービスを組み合わせることにより、いわゆる複合サービス（複合アプリケーションと呼ぶ場合もある）を動的に構築する技術をいう。構成サービスを複合サービスの構成要素として選択することは、ユーザ要求と同時に実行される。一般に必要とされる制約又は特性に関して必要な構成サービスを説明する。必要な制約にマッチするあらゆるサービスが、複合サービスの一部として使用される。特定のサービスを固定的に結合するのではなく、使用可能なサービスのプール内のあらゆる適切なサービスが選択される。使用可能な構成サービスのプールは、新たなサービスを追加したりプールからサービスを削除したりすることで、動的に変化する。従って、複合サービスは、呼び出される度に種々の構成サービスから構成される。従って、複合サービスに実際に含まれるサービスの集合は、静的ではなく、実行時の状態に依存する。構成サービスは、特にサービス複合化に対して設計される必要はない。構成サービスは、複合デバイスに統合されるが、単一のデバイスとしても動作する。
【０００３】
国際公開第２００８／１１９３６４号Ａ１パンフレットは、電気通信ネットワークにおいて複合サービスを作成、変更及び実行する技術に関する。実現の方法において、複合サービスの実行は４つのステップから成る手順でトリガされる。
【０００４】
第１のステップにおいて、トリガイベントを受信する。トリガイベントは、電気通信ネットワークのユーザに対して少なくとも１つの電気通信セッションに関連する複合サービスの実行を要求する。第２のステップにおいて、要求された複合サービスのスケルトンを受信する。受信したスケルトンは、複数のサービス基準を論理的に連結するサービスパターンを特定する。次のステップにおいて、スケルトンは、実行時中に解析され、複合サービスを形成する構成中のサービス及び構成中のサービスに対する実行ワークフローを判定する。判定された実行ワークフローに従って判定された構成中のサービスの実行が、第４のステップにおいてトリガされる。
【０００５】
通常、特定のサービスの選択後、選択されたサービスが呼び出される。従って、公知のサービス複合化システムにおいては、複合サービス記述の各ステップは、他のあらゆるステップとは独立に実行される。
【０００６】
複合サービスのサービスを選択するための技術の改良が必要である。
【発明の概要】
【０００７】
この必要性は、独立請求項に係る主題により達成される。本明細書に開示される主題の有利な実施形態は従属請求項で定義される。
【０００８】
本発明の第１の態様によれば、複合サービスの少なくとも２つのサービスのサービス選択の方法が提供される。方法は、（ａ）少なくとも２つのサービステンプレートを含む複合サービス記述を提供するステップを有する。複合サービス記述の各サービステンプレートはサービスに対する少なくとも１つの制約を規定するものであり当該サービステンプレートに代えて当該サービスが実行され、これにより複合サービスの一部を構成する。方法は、（ｂ）サービステンプレートごとに、当該サービステンプレートの少なくとも１つの制約にマッチする少なくとも１つのサービスを含む対応する候補セットを、サービスデータベースから選択するステップと、（ｃ）少なくとも２つのサービステンプレートの各々ごとに、所定のコスト尺度に基づいて作成コストの削減を提供するように、対応する候補セットから１つのサービスを選択するステップとを更に有する。
【０００９】
説明される方法は、所定のコスト尺度に基づいて、最初にサービステンプレートごとにサービスの対応する候補セットを選択し、対応する候補セットから１つのサービスを選択することにより、候補セットからサービスを選択するために１つの候補セットのみを考慮するのではなく、少なくとも２つの候補セットのうちの一方から候補を選択するために少なくとも２つの候補セットのサービスを考慮することでサービス選択が改善されるという概念に基づいている。
【００１０】
複合サービス記述は、一般に複数のステップを含む。ステップのうちのいくつかをサービステンプレートと呼ぶ。サービステンプレートは、制約を利用して、実行時にこのステップにおいて呼び出されるサービスを記述する。サービステンプレートにおける制約にマッチするサービスは２つ以上ある。この場合、システムは、実行時にマッチングサービスのうちのいずれかを自由に利用する。サービステンプレートに係るマッチングサービスを見つける処理をサービス選択と呼ぶ。本明細書において使用されるような複合サービス記述は、複合サービスの複合サービス記述の全て又は一部を示す。例えば一実施形態において、完全な複合サービスの全てのサービス記述がサービス選択のために提供されるわけではない。一実施形態によれば、全てのサービス記述の一部のみが提供され、あるいは別の実施形態によれば、少なくとも２つのサービステンプレートのみが提供される。
【００１１】
一実施形態によれば、複合サービス記述は、少なくとも２つのサービステンプレートを含み、必要に応じて複合サービスを実行するのに必要な更なるコード又はパラメータを含む。
【００１２】
一般に本明細書において、サービスという用語は広義に理解されるべきである。例えばサービスは、あらゆる実行可能プログラムコードであってよい。プログラムコードは、あらゆる適切な形態で実行可能であり、例えばコンパイル済みプログラムコード、解釈可能なプログラムコード等の形態である。更にサービスは、サービスを実行するのに必要な設定オプション又は他のデータを含む。
【００１３】
一実施形態によれば、サービスデータベースは、使用可能なサービスに関連した情報を格納する記憶装置であり、それぞれのサービステンプレートの少なくとも１つの制約にマッチするサービスを選択できるようにする。更なる一実施形態によれば、サービスデータベースは、複合化のために使用可能な構成サービスに関する情報を格納及び提供する。サービスに関するこの情報は、
−  正式サービス記述（例えば、ウェブサービス記述言語ＷＳＤＬ、ウェブアプリケーション記述言語ＷＡＤＬ等に基づく）、
−  パラメータの名前、種類、戻り値の記述、
−  サービスの種類（例えば、セッション開始プロトコルユニフォームＳＩＰ、ウェブサービス等）、
−  サービスの可用性（例えば、オンライン、オフライン、使用可能、使用不可等）、
−  サービスのエンドポイント（例えば、ユニフォームリソースロケータＵＲＬ、ＳＩＰユニフォームリソース識別子ＵＲＩ等）、
を含みうる。
【００１４】
例えばサービス選択は、サービスデータベースの現在の状態に対する制約を評価することによりマッチする構成サービス記述の集合を取得し、制約を満たすことで実現される。制約の特異性に依存して、そのような集合は２つ以上の要素を含む。例えば制約（例えば、service.supoort=InstantMessaging）の場合、結果の集合は、例えばショートメッセージサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、セッション開始プロトコルインスタントメッセージング（ＳＩＰ  ＩＭ）、ＩＣＱインスタントメッセージング（ＩＣＱ  ＩＭ）等を送出するサービスのサービス記述を含む。
【００１５】
一実施形態によれば、所定のコスト尺度は、サービスの候補セットからサービスを選択するために使用されるあらゆるコスト尺度又はコスト尺度の組合せである。なお、コストは、用語の数学的な意味であるものの程度を意味し、少なくとも必ずしも金銭的コストを意味しない。
【００１６】
一実施形態によれば、削減された作成コストは、少なくとも２つのサービステンプレートの選択されたサービスを作成するためのコストであり、選択されたサービスに対して削減された作成コストは、少なくとも２つのサービステンプレートに対するサービスの少なくとも１つの他の選択の作成コストより低い。
【００１７】
更なる一実施形態によれば、少なくとも２つのサービステンプレートに対する候補セットの選択は、候補セットの１つからサービスが選択される前に終了する。
【００１８】
更なる一実施形態によれば、対応する候補セットから選択される１つのサービスは、複合サービスを作成するための作成コストの最小値を提供するように選択される。別の実施形態によれば、対応する候補セットから選択される１つのサービスは、複合サービスの少なくとも２つのサービステンプレートを合成するための作成コストの最小値を提供するように選択される。本明細書において、一実施形態によれば、作成コストの最小値は作成コストの絶対最小値である。一実施形態によれば、作成コストのそのような絶対最小値は、少なくとも２つの候補セットの中でサービスの全ての可能な組合せを評価することで取得される。候補セット内のサービステンプレートの数（従って、候補セットの数）及びサービスの数に依存して、これは多くの演算量を必要とする。更に演算量は、種々のコスト尺度に対して異なり、すなわち使用されるコスト尺度に依存する。
【００１９】
他の実施形態によれば、少なくとも２つの選択されたサービスを合成するための作成コストの最小値は、作成コストのローカル最小値である。
【００２０】
一実施形態によれば、対応する候補セットの各々から少なくとも２つのコンポーネントテンプレート毎に１つの構成要素を選択することは、（ｉ）少なくとも２つのコンポーネントテンプレートにより許可された構成要素の組合せごとに全体的な作成コストを算出し、（ii）最も低い全体的な作成コストで構成要素の組合せを選択することを含む。
【００２１】
一実施形態によれば、複合サービスを作成するための作成コストは、複合サービス記述の全てのサービステンプレートに対して選択されたサービスを考慮することで算出される。換言すると、複合サービス記述が複数のｎ個のサービステンプレートを含む場合、複合サービスを作成するためのコストは、全てのｎ個のサービステンプレートに対して選択されたサービスを考慮することで算出される。なお、一実施形態によれば、対応する候補セットがサービスデータベースから選択される少なくとも２つのサービステンプレートは、複合サービス記述において全てのサービステンプレートの数ｎに対応する。他の実施形態において、複合サービス記述のｎ個のサービステンプレートのうちｍ個のサービステンプレートは、サービスデータベースから対応する候補セットを選択するために考慮される。ここで、ｍはｎより小さい（ｍ＜ｎ）。
【００２２】
別の実施形態によれば、複合サービスを作成するための作成コストは、複合サービス記述の全てのサービステンプレートのサブセットに対して選択されたサービスを考慮することで算出される。例えば一実施形態によれば、所定の数のサービステンプレートだけが複合サービスを作成するための作成コストを算出するために考慮される。一実施形態によれば、複合サービスを作成するための作成コストは、一例を挙げれば複合サービス及び後続のサービステンプレートを実行する際に次に後続するサービステンプレートに対して選択されたサービスを考慮することで算出される。
【００２３】
更なる一実施形態によれば、対応する候補セットの選択は、複合サービスの作成の呼出し前、すなわちサービス合成セッションを開始する前に実行される。例えば、複合サービス記述（スケルトン）が動的制御フローの変更（例えば、アスペクト指向プログラミング、すなわちＡＯＰ）又は動的データに依存するサービス制約を使用しない一実施形態によれば、「静的」複合サービス記述／スケルトンは、複合サービスが実行される前に解析される。
【００２４】
一実施形態によれば、複合サービスが実行されるコンテキストに関する追加情報は、候補セットからサービスを選択するために使用される。すなわち、そのような追加情報は、コスト尺度のいくつかの実施形態において考慮される。
【００２５】
複合サービス記述の解析が全てのサービステンプレートに対して可能でない場合でも、一実施形態によれば、対応する候補セットの選択は、複合サービスの作成の呼出し前に少なくとも２つのサービステンプレートの少なくとも一部に対して実行される。別の実施形態によれば、少なくとも２つのサービステンプレートの対応する候補セットのうちの少なくとも１つの選択は、複合サービスの作成の呼出しの際又は呼出し後に少なくとも部分的に実行される。例えば、サービステンプレートが動的データに依存する制約を規定する場合、サービステンプレートの対応する候補セットの選択が複合サービスの作成の呼出し後及び一実施形態によれば複合サービス自体の呼出し後に実行されるため、制約が依存する動的データは使用可能である。
【００２６】
しかし、サービステンプレートに対する対応する候補セットの選択の時間は、更に又はあるいは他の要素に依存することが理解されるべきである。例えば上述したように、複合サービス記述の解析は、複合化セッションを開始する前に静的に行われる。しかし、これは、サービスデータベースの内容が複合化セッション前又は複合化セッション中に変化しないため、そのような変化は解析の結果を変更すると仮定する。また、複合サービス記述の解析が複合化セッションの実行時に行われる場合、サービステンプレートに対する対応する候補セットの選択は、実行するために既に選択されている具体的な構成サービスに関するサービスを更に考慮する。
【００２７】
一般にコスト尺度は、（ａ）複合化セッションに関する情報、（ｂ）複合化セッションに属する構成サービスの解析、（ｃ）複合化が実行されるコンテキストに関するコンテキスト情報のうちの少なくとも１つを考慮する。第１の態様に係る方法は、サービステンプレートに対して選択される、すなわちサービステンプレートの制約にマッチする具体的なサービスの特定の組合せ毎に作成コストを推定することを備える。コストの推定値は、ある特定の尺度又は多数の尺度の組合せに基づく。そのうちのいくつかを以下において更に詳細に例示的に説明する。
【００２８】
一実施形態によれば、所定のコスト尺度はレイテンシー尺度を含み、それに従って選択されたサービスの作成コストは、少なくとも２つのサービステンプレートの選択されたサービスを合成するためのレイテンシーに依存する。本明細書において、レイテンシーは、少なくとも２つのサービステンプレートのサービスの作成の呼出しと最も早くに可能な複合サービスの実行との間の時間遅延として規定される。例えば一実施形態によれば、レイテンシー尺度の選択されたサービスを作成するコストが高いほど、選択されたサービスを合成するためのレイテンシーが長くなる。
【００２９】
別の実施形態によれば、所定のコスト尺度はエネルギー効率尺度を含み、それに従って選択されたサービスの作成コストが低いほど、少なくとも２つのサービステンプレートの選択されたサービスに関連するエネルギー消費は少なくなる。一実施形態によれば、選択されたサービスに関連するエネルギー消費は、選択されたサービスの実行のエネルギー消費を含む。別の実施形態によれば、選択されたサービスに関連するエネルギー消費は、選択されたサービスを複合サービスに合成するためのエネルギー消費を含む。
【００３０】
別の実施形態によれば、所定のコスト尺度はコロケーション尺度を含み、それに従って選択されたサービスの作成コストは、同一のネットワークノード上に配置される選択されたサービスの数に依存する。従って、コロケーション尺度の例は、選択されたサービス又は選択されたサービスの少なくとも一部が同一のネットワークノード上に配置される状況と比較して、選択されたサービスが複数のネットワークノードにわたり分散する場合、複合サービスの作成がネットワークノード間でより多くのトラフィックを含むという事実を考慮する。
【００３１】
更なる一実施形態によれば、所定のコスト尺度はトラフィック尺度を含み、それに従って選択されたサービスの作成コストは、少なくとも２つのサービステンプレートのサービスを合成する種々の通信ネットワークノード間でやり取りされるデータの量に依存する。例えば一実施形態によれば、選択されたサービスの作成コストが高いほど、少なくとも２つのサービステンプレートのサービスを作成する種々の通信ネットワークノード間でやり取りされるデータの量が増加する。
【００３２】
更なる一実施形態によれば、少なくとも２つのサービステンプレートは、第１のサービステンプレート及び第２のサービステンプレートを含み、第１のサービステンプレートに対するサービスの選択は、第２のサービステンプレートに対するサービスの選択に依存するこのサービスを選択することを含み、第２のテンプレートに対して選択されたサービスは、第１のサービステンプレートの選択されたサービスの後に実行されるようにスケジュールされる。サービステンプレートのスケジューリングは、一実施形態において複合サービス記述に規定される。しかし、スケジューリングは別の方法で規定されてもよい。換言すると、第１のサービステンプレートのサービスの選択は、後続して実行される別のサービステンプレートのサービスの選択を考慮するため、将来のサービスに対する選択が一実施形態において考慮される。
【００３３】
本明細書において開示される主題の第２の態様によれば、複合サービスの少なくとも２つのサービスのサービス選択のための選択エンティティが提供される。選択エンティティは、（ａ）少なくとも２つのサービステンプレートを含む複合サービス記述を、複合サービス記述記憶装置から受信する受信ユニットを備える。各サービステンプレートはサービスに対する少なくとも１つの制約を規定するものであり当該サービステンプレートに代えて当該サービスが実行され、これにより該サービスが複合サービスの一部を構成する。換言すると、一実施形態によれば、サービステンプレートは、サービスに対する一種のプレースホルダを規定し、サービステンプレートの代わりに特定のサービスが選択される（且つ同時に実行される）と、この選択されたサービスは複合サービスの一部を構成する。
【００３４】
更に選択エンティティは、各サービステンプレートごとに、少なくとも１つのサービスを含む対応する候補セットを、サービスデータベースから選択する候補選択ユニットを備え、各候補セットの少なくとも１つのサービスは、対応するサービステンプレートの少なくとも１つの制約にマッチする。更に選択エンティティは、少なくとも２つのサービステンプレートの各々に対して、所定のコスト尺度に基づいて作成コストの削減を提供するように、対応する候補セットから１つのサービスを選択するサービス選択ユニットを備える。
【００３５】
一実施形態によれば、選択エンティティは、電気通信ネットワーク等の通信ネットワークのネットワークノードの形態で提供される。
【００３６】
更なる一実施形態によれば、選択エンティティは、「候補セットから選択されたサービス」と「候補セットから選択されたサービスの識別子」とのうちのいずれか一方を、通信ネットワークにおける別のネットワークノードに送信する送信ユニットを更に有する。例えば一実施形態によれば、通信ネットワークの将来のネットワークノードが複合サービス又は複合サービスの少なくとも２つのサービスが実行されるエンティティである場合、一実施形態において選択されたサービス自体が将来のネットワークノードに送出される。例えば、将来のネットワークノードが候補セットから選択されたサービスの更なる処理のために構成される別の実施形態によれば、候補セットから選択されたサービスの識別子は将来のネットワークノードに送信される。次に将来のネットワークノードは、候補セットから選択されたサービスの識別子を転送するか、あるいは自身で識別子に対応するサービスを検索又はダウンロードする。
【００３７】
一実施形態によれば、送信ユニットを備える通信ネットワークのネットワークノードは、通信ネットワークのあらゆるエンティティ、例えば作成されたサービスの統合を担う通信ネットワークの中央エンティティである。
【００３８】
一実施形態によれば、複合サービス記述記憶装置は、少なくとも１つの複合サービス記述を格納するように構成されたリモートストレージ又はローカルストレージである。更にサービスデータベースは、リモートサービスデータベース又はローカルサービスデータベースである。
【００３９】
一般に本明細書において、候補セットから選択されたサービス又は候補セットから選択されたサービスの識別子を受信するように構成される更なるネットワークノードは、通信ネットワークと接続できるあらゆる種類の通信エンドデバイスである。
【００４０】
一実施形態によれば、通信ネットワークは、インターネット又はセルラネットワーク等のあらゆる種類の電気通信ネットワークである。例えば一実施形態によれば、通信ネットワークを含む将来のネットワークノードの通信は、無線伝送リンクを介して確立される。更に一実施形態によれば、更なるネットワークノードは、組み込みデバイス又は携帯移動電話、パーソナルデジタルアシスタント（ＰＤＡ）、ノートブックコンピュータ等のユーザ機器（ＵＥ）、あるいは他のあらゆる移動可能な通信エンドデバイスである。
【００４１】
本明細書において開示された主題の第３の態様によれば、コンピュータ読み取り可能な記憶媒体が提供される。複合サービスの少なくとも２つのサービスのサービス選択のためのコンピュータプログラムがコンピュータ読み取り可能な記憶媒体に格納され、コンピュータプログラムは、データプロセッサにより実行されると、第１の態様又はその一実施形態において上述したような方法を制御するかあるいは実行するように構成される。
【００４２】
コンピュータ読み取り可能な記憶媒体は、コンピュータ又はプロセッサにより読み取り可能である。コンピュータ読み取り可能な記憶媒体は、電気、磁気、光、赤外線又は半導体のシステム、デバイス、あるいは伝送媒体等であるが、それらに限定されない。コンピュータ読み取り可能な記憶媒体は、以下の媒体、すなわちコンピュータ配布可能媒体、プログラム記憶媒体、記録媒体、コンピュータ可読メモリ、ランダムアクセスメモリ、消去可能プログラマブル読み出し専用メモリ、コンピュータ可読ソフトウェア配布パッケージ、コンピュータ可読信号、コンピュータ可読電気通信信号、コンピュータ可読印刷物及びコンピュータ可読圧縮ソフトウェアパッケージのうちの少なくとも１つを含む。
【００４３】
本明細書において開示された主題の第４の態様によれば、複合サービスの少なくとも２つのサービスのサービス選択のためのプログラムが提供される。プログラムは、データプロセッサにより実行される場合、第１の態様又はその一実施形態において上述したような方法を制御するかあるいは実行するように構成される。
【００４４】
プログラムは、例えばＪＡＶＡ（登録商標）、Ｃ＋＋等のあらゆる適切なプログラミング言語でコンピュータ可読命令コードとして実現され、コンピュータ可読媒体（リムーバブルディスク、揮発性メモリ又は不揮発性メモリ、組み込みメモリ／プロセッサ等）上に格納される。命令コードは、意図した機能を実行するようにコンピュータ又は他のあらゆるプログラム可能なデバイスをプログラムするように動作可能である。プログラムは、ワールドワイドウェブ等のネットワークから入手可能であり、そこからダウンロードされる。
【００４５】
以下において、複合サービスの少なくとも２つのサービスのサービス選択の方法及びサービス選択に対する選択エンティティを参照して、本明細書において開示された主題の例示的な実施形態を説明する。当然、本明細書において開示された主題の種々の態様に関連する特徴のあらゆる組合せが更に可能であることを指摘しなければならない。特に、装置クレームを参照していくつかの実施形態を説明し、方法クレーム、コンピュータ読み取り可能な記憶媒体に関連する請求の範囲又はプログラムに関連する請求の範囲を参照して他の実施形態を説明している。しかし、当業者は、特に指示のない限り、一態様に属する特徴のあらゆる組合せに加え、種々の態様又は実施形態に関連する特徴間、例えば装置クレームの特徴と方法クレームの特徴との間、並びにコンピュータ読み取り可能な記憶媒体に関連する特徴とプログラムに関連する特徴との間のあらゆる組合せが本発明により開示されると考えられることを上述の説明及び以下の説明から推測される。
【００４６】
上述の態様及び実施形態、並びに本明細書において開示された主題の更なる態様及び実施形態は、以下において説明され、且つ図面を参照して説明されるが本発明を限定しない例から明らかである。
【図面の簡単な説明】
【００４７】
【図１】本明細書において開示される主題の実施形態に係る複合サービスの少なくとも２つのサービスのサービス選択の方法を示す図。
【図２】本明細書において開示される主題の実施形態に係る複合サービスの少なくとも２つのサービスのサービス選択の更なる方法を示す図。
【図３】本明細書において開示される主題の実施形態に係るサービス選択の方法を採用する電気通信ネットワークを示す図。
【発明を実施するための形態】
【００４８】
図の例は概略的である。なお、異なる図面において、同様の要素又は同一の要素には、同一の図中符号が与えられるか、あるいは最初の桁又は付加する文字のみが対応する図中符号とは異なる図中符号が与えられる。
【００４９】
図１は、本明細書において開示される主題の実施形態に係る複合サービスの少なくとも２つのサービスのサービス選択の方法を示す図である。
【００５０】
図１において、複合サービス記述（composite service description）１００（本明細書においてスケルトン（skeleton）とも呼ぶ）を示す。複合サービス記述１００は、３つのサービステンプレート１０２ａ、１０２ｂ、１０２ｃを含む。各サービステンプレートはサービスに対する少なくとも１つの制約を規定するものであり当該サービステンプレートに代えて当該サービスが実行され、これにより該サービスが複合サービス記述１００の一部を構成する。スケルトン１００の更なるデータ１０４を図１に例示的に示す。例えば更なるデータ１０４は、サービステンプレート１０２ａ、１０２ｂ、１０２ｃのうちの１つの代わりに実行されるサービスにより参照されるパラメータ等である。以下において短縮して１０８ａ〜１０８ｊとして示される複数の使用可能なサービス１０８ａ、１０８ｂ、．．．１０８ｊを含むサービスデータベース１０６を図１に更に示す。本明細書において開示される主題の実施形態に係るサービス選択の方法は、図１において１１０ａ、１１０ｂ、１１０ｃで示されるように、サービスデータベース１０６からサービステンプレート１０２ａ、１０２ｂ、１０２ｃ毎に対応する候補セット１１２ａ、１１２ｂ、１１２ｃを選択することを含む。各候補セットは、対応するサービステンプレートの少なくとも１つの制約にマッチする少なくとも１つのサービスを含む。特に、第１のサービステンプレート１０２ａに対する第１の候補セット１１２ａは、サービス１０８ａ、１０８ｂ、１０８ｃを含む。また、第２のサービステンプレート１０２ｂに対する第２の候補セット１１２ｂは、第２のサービステンプレート１０２ｂの少なくとも１つの制約にマッチするサービス１０８ｅ及び１０８ｆを含む。更に第３の候補セット１１２ｃは、第３のサービステンプレート１０２ｃの少なくとも１つの制約にマッチするサービス１０８ｇ、１０８ｈ及び１０８ｉを含む。それぞれのサービスを示す図１の要素１０８ａ〜１０８ｊは、一実施形態においてサービスそのものであることが理解されるべきである。他の実施形態によれば、要素１０８ａ〜１０８ｊは各サービスの識別子を示す。
【００５１】
本明細書において開示される主題の実施形態に従って、対応する候補セット１１２ａ、１１２ｂ、１１２ｃの３つのサービステンプレート１０２ａ、１０２ｂ、１０２ｃ毎に、所定のコスト尺度に基づいて作成コストの削減を提供するように具体的な候補／具体的なサービスが選択される。特に、１１４ａで示されるように、第１の候補セット１１２ａからサービステンプレート１０２ｂの代わりに実行されるサービス１０８ａが選択される。この意味において、サービステンプレートの代わりに実行されるサービスの選択は、サービスの実行をまだ含まないことが理解されるべきである。なお、選択されたサービスは、特定の目的のために、すなわち対応するサービステンプレートの代わりに実行されるように選択される。
【００５２】
なお、サービステンプレートの代わりに実行されるサービスの選択は、システムのエンティティ又はユニット間のサービスの転送、あるいはサービスの識別子を必ずしも含まない。一実施形態によれば、サービスの選択は、所望の目的のために、すなわち対応するサービステンプレートの代わりに実行されるようにそれぞれのサービスを識別することに対応する。
【００５３】
次に、第２の候補セット１１２ｂに関して、サービス１０８ｆは、第２のサービステンプレート１０２ｂに代わりに実行されるように第２の候補セット１１２ｂから選択されることを図１に示す。サービス１０８ｆの選択は、図１において１１４ｂで示される。
【００５４】
図１において１１４ｃで示されるように、第３のサービステンプレート１０２ｃの代わりに実行されるサービス１０８ｈが第３の候補セット１１２ｃから選択される。
【００５５】
上述のサービス選択方法の結果、サービステンプレート１０２ａ、１０２ｂ、１０２ｃの代わりにそれぞれ実行されるサービス１０８ａ、１０８ｆ及び１０８ｈが識別される。サービステンプレートの代わりに実行されるサービスを識別することにより、スケルトン１００が規定する複合サービスを作成するのに必要な情報を提供する。
【００５６】
一実施形態によれば、サービス選択の方法は、複合サービスを作成するステップを含む。本明細書において一般に説明されるように、複合サービスの作成は、サービステンプレートに対する具体的なサービスを選択することに後続して実行される。他の実施形態によれば、サービステンプレートの代わりに実行される具体的なサービスの選択は、複合サービスの作成と同時に少なくとも部分的に実行される。例えば、データベース１０６が複合サービスの実行時及び／又は複合サービスの作成中に変化する（又は変化する可能性がある）場合、あるいはサービス制約が動的データに依存する場合、あるいはスケルトン１００が動的制御フローの変更を使用する場合、サービステンプレートに対するサービスの選択は、サービステンプレートにより規定された制約が識別可能であり且つ／あるいはサービスデータベースが一時的に静的状態にある時にだけ実行される。
【００５７】
上述した候補セット１１２ａ、１１２ｂ及び１１２ｃからの具体的なサービス１０８ａ、１０８ｆ及び１０８ｈの選択１１４ａ、１１４ｂ、１１４ｃにおいて、全てのサービステンプレート、すなわち３つのサービステンプレート１０２ａ、１０２ｂ、１０２ｃの全てに対するそれぞれのサービスの選択は、作成コストを算出することを考慮している。
【００５８】
これに対して、図２は、作成コストのために全てのサービステンプレートのサブセットのみを考慮することにより、候補セット１１２ａ、１１２ｂ及び１１２ｃからの具体的なサービスの選択を示す。なお、図２において、スケルトン１００、更なるデータ１０４、サービステンプレート１０２ａ、１０２ｂ、１０２ｃ、並びに個々のサービス１０８ａ、１０８ｂ、１０８ｃ、１０８ｅ、１０８ｆ、１０８ｇ、１０８ｈ及び１０８ｉは、図１のそれぞれの要素と同一である。しかし、上述したように、選択処理２１４ａにおいて作成コストを算出する場合、サービステンプレート１０２ａ、１０２ｂ、１０２ｃの第１のサブセット２１６ａのみが作成コストを算出するために考慮される。第１のサブセット２１６ａは、第１のサービステンプレート１０２ａ及び第２のサービステンプレート１０２ｂを含む。それは、第１のサービステンプレート１０２ａに対するサービスを選択するために、複合サービスを作成するための作成コストが第１のサービステンプレート１０２ａ及び第２のサービステンプレート１０２ｂを考慮することで算出されることを意味する。従って、第３のサービステンプレート１０２ｃを考慮せずに、例示的な実施形態において図１の選択処理１１４ａ、１１１４ｂ及び１１４ｃに対して使用されるのと同一である所定のコスト尺度に従って、第１のサービステンプレート１０２ａの代わりに実行されるサービス１０８ｂが選択される（２１４ａで示されるように）。
【００５９】
次に、第２のサービステンプレート１０２ｂに対する第２の候補セット１１２ｂからサービスを選択する場合、複合サービスを作成するための作成コストは、全てのサービステンプレート１０２ａ、１０２ｂ、１０２ｃの第２のサブセット２１６ｂに対して選択されたサービスを考慮することで算出される。図２に示された例示的な例において、サービステンプレートの第２のサブセット２１６ｂは、第２のサービステンプレート１０２ｂ及び第３のサービステンプレート１０２ｃを含む。これに基づいて、それぞれの選択処理２１４ｂ及び２１４ｃの結果、サービス１０８ｆ及び１０８ｉは、それぞれ、第２のサービステンプレート１０２ｂ及び第３のサービステンプレート１０２ｃに対して選択される。
【００６０】
図１及び図２に示されたスケルトン１００、候補セット１１２ａ、１１２ｂ、１１２ｃ、サブセット２１６ａ、２１６ｂ及び他の要素は、例示するためだけに示されることが理解されるべきである。それぞれの要素の数及び構成は、依然として本明細書において開示される主題の実施形態に従う限りは変更可能であることが更に理解されるべきである。例えば、複合サービスを作成するための作成コストを算出するために考慮されるサービステンプレートの数は、２ではなく、当該サービステンプレート毎に異なる。例えば、別の実施形態によれば、第１のサービステンプレート１０２ａに対するサービスを選択する場合、第１のサービステンプレート１０２ａ及び第２のサービステンプレート１０２ｂは作成コストを算出するために考慮され、第２のサービステンプレート１０２ｂに対するサービスを選択する場合、３つのサービステンプレート１０２ａ、１０２ｂ、１０２ｃの全ては作成コストを算出するために考慮され、第３のサービステンプレートに対するサービスを選択する場合、最後の２つのサービステンプレート１０２ｂ、１０２ｃは作成コストを算出するために考慮される。より一般的な条件において、ある特定のサービステンプレートに対するサービスを選択する場合、使用可能であれば、前者のテンプレート及び後者のテンプレートは、全てのサービステンプレートのサブセットとして考慮される。しかし、他の実施形態も可能である。更にいくつかの実施形態において、特定の順序／スケジューリングはサービステンプレートに対して規定されない。
【００６１】
図１及び図２において本明細書において開示される主題の例示的な実施形態を説明したが、これらの実施形態の実現例の多くの手段が存在することが理解されるべきである。例えば、本明細書において開示される主題に係るサービス選択に含まれるエンティティ及びユニットのうちのいくつかは、通信ネットワーク、特に電気通信ネットワークの種々のネットワークノード上に配置される。しかし、他の実施形態によれば、全てのエンティティ及びユニットは、同一のネットワークノード上又は同一のデバイスに配置されてもよい。この意味において、本明細書において開示される主題の態様及び実施形態は、構成サービス又は構成機能が例えばサービス指向アーキテクチャ（ＳＯＡ）において周知の遅延バインディング（late binding）手法及びスモールトーク又はオブジェクティブＣ等のいくつかのプログラミング言語を使用して実行時において結合される何らかのサービス複合化システム又はプログラム実行システムに適用可能である。
【００６２】
以下において、コストの判定／推定のより一般的な説明の実施形態を説明する。一実施形態によれば、より多くの利益をもたらす具体的なサービスの選択は、より少ないコストを有するはずである。全体的なコストの推定値は、性能、トラフィック、メモリ消費、レイテンシー、コロケーション要素等の所定の尺度に関連するあらゆる特徴を考慮する。その例示的な実施形態を以下に説明する。
【００６３】
一般的な一実施形態において、
Sを全ての複合ステップ記述の集合とする。
nを複合ステップの総数とする。
STEPiが特定の合計ステップIの記述を示すものとする（1≦ｉ≦n）。
CANDIDATESiをステップiに対するサービス候補の集合とする。
Ctxを現在の実行状況とする。
SERVICEi∈CANDIDATESiをステップiに対するサービス候補のうちの１つとする。
次に、複合全体に対する可能なサービス選択の全ての組合せCOMBINATIONは、タプル（tuple）
（SERVICE1、...、SERVICEn）により示される。ここで、∀i∈1..nの場合、SERVICEi∈CANDIDATESiである。
COMBINATIONSを全ての可能な組合せの集合とする。すなわち、以下の通りである。
COMBINATIONS={SERVICE1、...、SREVICEn)|∀i∈1..nの場合、SERVICEi∈CANDIDATESi}
【００６４】
次に、コスト関数は、現在の状況及び複合化に対して可能なサービス選択を示す組合せに基づいて複合化の推定コストを算出する関数として規定される。ここでそのようなサービス選択は、以下のように判断される。
COST:Ctx x COMBINATION -＞作成コスト
【００６５】
以下において、コスト関数及びコスト尺度のいくつかの例示的な実施形態を説明する。なお、これらの実施形態は例示するためだけに示され、他のあらゆるコスト関数及びコスト尺度が採用されてもよい。
【００６６】
例えば、ＩＰマルチメディアサブシステム（ＩＭＳ）が使用され、サービスがネットワークにおいて又は移動デバイス上で実行するサービスである一実施形態において、多数のサービスが同一のノード／デバイス上に配置される場合にコスト関数からより低いコストが得られるべきである。例えば、コストが低いほど同一のノード／デバイス上により多くのサービスが配置される。これは、コロケーション要素を考慮する一例である。これにより、同一の場所に配置されたサービス間でデータをやり取りするトラフィックの量を減少でき、同一の場所に配置されたサービスのサービス呼出しが現在ではグローバル呼出しではなくローカル呼出しであるため、これらの呼出しに対するオーバヘッドを更に減少する。
【００６７】
別の実施形態において、トラフィック尺度が使用される。トラフィック尺度は組合せに対してより低いコストを生成すべきであり、選択されたサービス間（及び合成エンジン）でより少ないデータがやり取りされると仮定される。やり取りされると仮定されるデータに関する情報は、複合の記述（すなわち、何らかの種類のデータ従属性解析）及びサービスデータベースに保存されたサービス記述から導出される。
【００６８】
更なる実施形態において、レイテンシー尺度が使用される。レイテンシー尺度は組合せに対してより低いコストを生成すべきであり、全体的な複合に対してより少ないレイテンシーが予想される。予想されるレイテンシーに関する情報は、種々の情報源、例えばサービス実行統計、サービス記述、ローカルサービスの呼出しのレイテンシーが（通常）リモートサービス呼出しのレイテンシーよりも少ないという事実等から導出される。そのような尺度が適用される場合、尺度の結果として、低レイテンシーサービス及び／又は複数のサービスが同一の場所に配置されるためにローカル呼出しを使用できるサービスを使用する組合せを好むようになる。
【００６９】
更なる一実施形態において、エネルギー効率尺度が使用される。エネルギー効率尺度は組合せに対してより低いコストを生成すべきであり、全体的な複合に対してより少ないエネルギー消費が予想される（移動デバイス又は組み込みデバイスにとって非常に興味深い）。予想されるエネルギー消費に関する情報は、例えばサービス実行統計（エネルギー消費の黙示的な解析）、サービス記述（サービス記述の一部であるエネルギー消費に関する明示的な情報）、当該ノード間及び当該ノード内のデータトラフィック上の推定値、並びにデータトラフィックに関連したエネルギー消費の推定値（例えば、ある特定の量のデータを送信及び処理するのに必要なエネルギー）等から導出される。
【００７０】
全てのコストの推定値が使用可能になると、システムは、最小コストとの組合せを見つけようとする。この目的のため、あらゆる適切なアルゴリズムが使用される。特定の尺度に対して最小化される組合せタプルを見つけるアルゴリズム等のそのようなアルゴリズムは、当技術分野において公知であり、更に詳細に説明しない。なお、厳密には全ての組合せに対するコストの推定値を最初に算出して最小値を探索する必要はない。最小値を見つける他のあらゆるより高度なアルゴリズムが使用可能である。
【００７１】
いくつかの実施形態において、グローバル最小値を見つける必要はなく、あるいはそれは不可能である。しかし、少なくとも１つのローカル最小解が得られる。殆どの場合、この解決策は、現在のサービス複合化システムによりとられる無作為の解決策が種々のステップにおけるサービス選択間の相互依存及び状況に関していずれかの情報を欠いている場合それより優れている。
【００７２】
サービス複合化中、最適な解決策は以下のように実行される。例示的な一実施形態によれば、システムが最小コストとのサービス選択の組合せを見つけた場合、サービス選択処理は、この組合せにより示されたサービス選択に対応するそれら判断を厳密に行うべきである。更に一実施形態によれば、ある特定のステップが見つけられた最小の組合せの範囲に含まれない場合、システムは、他のあらゆるポリシーを自由に適用し、多数の候補から１つのサービスを選ぶ。
【００７３】
図３は、本明細書において開示される主題の実施形態に係るサービス選択方法を実行するように構成される電気通信ネットワーク３５０を示す。
【００７４】
本明細書において開示される主題のエンティティ及びユニットが常駐するネットワークノードは、あらゆるエンドユーザデバイスであるか、あるいは別の実施形態によれば電気通信ネットワークのあらゆる中央エンティティ、例えば複合されたサービスの統合を担うエンティティである。ネットワークノードは、ビジネスプロセス実行言語（ＢＰＥＬ）エンジンを備える。クラスタ化された構成内で、ＢＰＥＬエンジンは、いくつかのサービスの実行を外部ネットワークエンティティに委任することで配布された設定等を提供する。
【００７５】
電気通信ネットワーク３５０は、組み込みネットワークデバイス３６０を備える。あらゆる移動デバイスであり、ユーザ機器（ＵＥ）と呼ばれる組み込みネットワークデバイス３６０は、例示される実施形態においてインターネットであるコアネットワーク３５５への無線接続を介して接続される。
【００７６】
組み込みネットワークデバイス３６０は、複合実行エージェント（ＣＥＡ）３６２、並びにデータ処理及び格納手段３６４を備える。更に電気通信ネットワーク３５０は、合成エンジン（ＣＥ）とも呼ばれるサービス複合化ノード３７０を含む。サービス複合化ノード３７０は、インターネット３５５を介して移動組み込みネットワークデバイス３６０に接続される。更にサービス複合化ノード３７０は、サービスレジストリ３７２、複合実行エージェント（ＣＥＡ）レジストリ３７４及び複合記述記憶装置３７６に接続される。更に電気通信ネットワーク３５０は、コードリポジトリ（ＣＲ）とも呼ばれるコード格納ノード３８０を含む。コード格納ノード３８０は、データ処理及び格納手段３８４を搭載する。
【００７７】
以下において、組み込みネットワークデバイス３６０による複合サービスの実行を説明する。複合サービスの実行を準備する間、本明細書において開示される主題に係るサービス選択が実行される。
【００７８】
少なくとも２つのサービステンプレートを含む複合サービス記述は、複合サービス記述記憶装置３７６に格納される。各サービステンプレートは、サーバに対する少なくとも１つの制約を規定し、サービスは、サービステンプレートの代わりに実行されることで複合サービスの一部を構成する。例えば複合サービス記述は、複合記憶装置３７６によりアプリケーションスケルトンの形態で提供される。アプリケーションスケルトンに基づいて、サービス複合化ノード３７０はサービステンプレートの記述を評価する。サービステンプレートの記述は、サービステンプレートの代わりに実行されるサービスに対する少なくとも１つの制約を含む。従って、制約は、実行され、ＣＥＡ３６２がそれらを実行すべきサービスを示す。
【００７９】
ＣＥＡレジストリ３７４は、使用可能なＣＥＡのリスト及びそれらが実行するサービスを含む。サービスレジストリ３７２は、使用可能なサービスのリストを含む。一実施形態によれば、サービス複合化ノード３７０は、サービスレジストリ３７２及びＣＥＡレジストリ３７４からの情報を使用する。
【００８０】
いくつかのＣＥＡがサービステンプレートの所定の制約にマッチする場合、１つのＣＥＡ３６２は、任意に又は本明細書において開示されたような所定のコスト関数等の何らかの所定のコスト関数に従って選択される。
【００８１】
組み込みデバイス３６０は、複合サービス記述記憶装置３７６から少なくとも２つのサービステンプレートを含む複合サービス記述を受信する受信ユニット３７８を備える。例えば、図３に示された方法の図３に「Ｓ２」で示された第２のステップにおいて、サービス複合化エンジン３７０は、サービステンプレートの代わりに実行されるべきサービスを黙示的に参照することを含むサービス実行要求を選択されたＣＥＡ３６２に送出する。サービス複合化エンジン３７０は、実行されるサービスの直接リンク、名前又は一意の識別子を送信するのではなく、受信ユニット３７８により受信されるサービステンプレートに対応する制約のセットを送信する。サービステンプレートは、（部分的な）複合サービス記述を形成する。必要に応じて、制約のセットと共に又は別個のメッセージにおいて、サービス複合化ノード３７０がいくつかの記述又は直接リンクをこれらの制約にマッチすることが既知であるサービスのコードに更に送出するため、ＣＥＡ３６２は、それらをまだ認識していない場合にそれらの中から選択する。図３に「Ｓ３」で示される第３のステップにおいて、ＣＥＡ３６２は、サービス実行要求と共に受信したサービステンプレートの制約を評価し、これらの制約を組み込みネットワークデバイス３６０のローカルな制約とマージする。例えば、そのようなローカルな制約は、プラットフォーム型のデバイス３７０、リソース及び／又は種々のコスト要素の可用性である。
【００８２】
ＣＥＡ３６２は、本明細書においてサービスレジストリ３７２の形態のサービスデータベースからサービステンプレート毎にそれぞれのサービステンプレートの少なくとも１つの制約にマッチする少なくとも１つのサービスを含む対応する候補セットを選択する本明細書において開示される主題の実施形態に係る候補選択ユニット３８６を備える。更にＣＥＡ３６２は、少なくとも２つのサービステンプレートの各々に対して、所定のコスト尺度に基づいて削減された作成コストを提供するように対応する候補セットから１つのサービスを選択するサービス選択ユニット３８８を備える。候補セットの選択及び候補セットからのサービスの選択を図３のＳ３で示す。
【００８３】
ＣＥＡ３６２は、選択されたサービスを既にインストールしている場合、それらを要求されたように実行する。ＣＥＡ３６２は、サービス又は選択されたサービスの全てをインストールしていない場合、以下のステップで説明されるように欠落した選択されたサービスをダウンロードしようとする。図３に「Ｓ４」で示される第４のステップにおいて、ＣＥＡ３６２は、送出ユニット３７９を利用してダウンロード要求をコード格納ノード３８０に送信し、欠落した選択されたサービスのコードについてコード格納ノード３８０に尋ねる。
【００８４】
図３に「Ｓ５」で示される第５のステップにおいて、コード格納ノード３８０は、要求されたサービスのコードをＣＥＡ３６２に送信する。なお、この点に関して、「コード」という用語は広義に理解されるべきである。例えばコードは、何らかの実行可能プログラムコードであってもよいが、実行可能プログラムコードに加えあるいはその代りに、ＣＥＡ３６２は、選択されたサービスを実行するのに必要な１つ／複数の設定オプション又は他のデータをコード格納ノード３８０から更に受信する。
【００８５】
図３に「Ｓ６」で示される第６のステップにおいて、ダウンロードコードは、ローカルインストールされ、その後データ処理及び格納手段３６４上で実行される。
【００８６】
図３に示される本明細書において開示される主題の実施形態の実現例は、単なる例示であることが理解されるべきである。他の実現例は、図３の通信システム３５０とは全く異なるかあるいはほんの僅かに異なる。例えば他の実施形態において、合成エンジン３７０及びコードリポジトリ３８４等の図３に示されたエンティティのうちのいくつか又は全ては、単一のネットワークノード上に配置される。
【００８７】
本明細書において開示される主題の実施形態によれば、本明細書において開示された主題に係るサービス選択方法に含まれたあらゆる構成要素、例えば本明細書において開示されたサービスエンティティのあらゆる要素又はユニットは、プロセッサが本明細書において開示されたようなそれぞれの要素又はユニットの機能性を提供できるようにするそれぞれのコンピュータプログラムの形態で提供される。他の実施形態によれば、そのようなあらゆる要素／ユニットはハードウェアで提供される。他の混合の実施形態によれば、これらの要素／ユニットのうちのいくつかはソフトウェアで提供され、他の要素／ユニットはハードウェアで提供される。
【００８８】
なお、「備える」という用語は、他の要素又はステップを除外せず、単数形は複数形を除外しない。また、種々の実施形態と関連付けて説明された要素及び特徴は組み合わされてもよい。なお、請求の範囲における図中符号は、請求の範囲の範囲を限定するものとして解釈されるべきではない。
【００８９】
本明細書において開示された主題の上述の実施形態を要約するために、以下のように示す。
【００９０】
複合サービスの少なくとも２つのサービスのサービス選択の概念を開示する。複合サービスの複合サービス記述は、少なくとも２つのサービステンプレートを含み、各サービステンプレートはサービスに対する少なくとも１つの制約を規定するものであり当該サービステンプレートに代えて当該サービスが実行され、これにより該サービスが前記複合サービスの一部を構成する。サービステンプレートごとに、当該サービステンプレートの少なくとも１つの制約にマッチする少なくとも１つのサービスを含む対応する候補セットが、サービスデータベースから選択される。その後あるいは少なくとも部分的に同時に、少なくとも２つのサービステンプレートの各々ごとに、所定のコスト尺度に基づいて作成コストの削減を提供するように、対応する候補セットから１つのサービスが選択される。所定のコスト尺度は、レイテンシー尺度、エネルギー効率尺度、コロケーション尺度又はトラフィック尺度等を含む。
【００９１】
本明細書において開示された主題の実施形態は、所定の尺度（性能、トラフィック、レイテンシー、コロケーション要素等）に従って作成コストを最小限にする方法を提案する。これらの実施形態のうちのいくつかが所定のシステムリソース等を利用する推定コストを最小限にするかあるいは少なくとも削減するため、これらの実施形態により、サービス複合化技術を使用して実際にコストを抑えることでサービス複合化技術がより魅力的になる。
【００９２】
電気通信ネットワークに関連して本明細書において開示した主題の実施形態を説明したが、本明細書において開示された主題は、中央ノードが他のサービス（例えば、ＢＰＥＬエンジン、ワークフローエンジン、中央制御ノードを含む分散システム）の実行を統合するより広い分野のシステムにも適用可能である。
【図１】
0005596173.tif 000002
【図２】
0005596173.tif 000003
【図３】
0005596173.tif 000004