(57)【要約】【課題】リクエスタから受信した通知に含まれるイベント情報に基づき、実行対象である連携シナリオを検出し、実行することができるイベントサービス振り分けシステム、イベントサービス振り分け装置、及び、イベントサービス振り分け方法を提供する。【解決手段】ネットワークサービスプラットフォーム２において、イベント／サービス振り分け部１０が、リクエスタ１１からのイベント通知と、当該イベント通知に対応する実行対象の連携シナリオを実行するためのサービス合成部３のアドレス情報とを対応付けて記憶し、リクエスタ１１から受信するイベント通知に基づき、イベント通知に対応するサービス合成部３のアドレス宛にイベント通知を送信し、サービス合成部３が連携シナリオを実行する。【選択図】図１
2009294863.tif 000002
【特許請求の範囲】
【請求項１】
サービスの実行手順が記述される連携シナリオを記憶する連携シナリオ記憶装置と、前記連携シナリオを実行するアドレスであるエンドポイント宛のシナリオ実行要求に応じて前記連携シナリオを実行するサービス合成装置と、イベントサービス振り分け装置とを備えるネットワークサービス提供システムと、イベント検出時にイベント通知を送信するリクエスタ装置と、前記サービスを提供するサービスコンポーネントとがネットワークを介して接続されるイベントサービス振り分けシステムであって、
前記ネットワークサービス提供システムの前記イベントサービス振り分け装置は、
前記リクエスタ装置から受信するイベント通知と、当該イベント通知に対応する実行対象の連携シナリオを実行させるアドレスを示す情報であるエンドポイント情報とを対応付けて記憶するイベントルーティングテーブル記憶手段と、
前記リクエスタ装置から受信するイベント通知を検索キーとして、前記イベントルーティングテーブル記憶手段から連携シナリオのエンドポイント情報を読み出し、前記連携シナリオ実行要求を前記エンドポイント宛に送信する振り分け手段とを備える
ことを特徴とするイベントサービス振り分けシステム。
【請求項２】
前記イベントサービス振り分けシステムは、ネットワークに接続されるユーザ端末装置をさらに備え、
前記ユーザ端末装置は、
前記リクエスタ装置から送信されるイベント通知と、当該イベント通知に基づき実行する連携シナリオのエンドポイント情報との登録を要求する登録要求を送信し、
前記イベントサービス振り分け装置は、
前記ユーザ端末装置から受信する前記登録要求に基づき、前記リクエスタ装置から送信されるイベント通知と、当該イベント通知に基づき実行する連携シナリオのエンドポイント情報とを前記イベントルーティングテーブル記憶手段に書き込むテーブル更新手段を備える
ことを特徴とする請求項１に記載のイベントサービス振り分けシステム。
【請求項３】
前記イベントサービス振り分けシステムは、ネットワークに接続されるレジストリ装置とネットワークに接続されるユーザ端末装置とをさらに備え、
前記レジストリ装置は、前記リクエスタ装置のエンドポイント情報と、前記リクエスタ装置が送信するイベント通知情報とを対応付けて記憶しており、
前記ユーザ端末装置は、
前記リクエスタ装置から送信されるイベント通知に基づき実行する連携シナリオのエンドポイント情報との登録を要求する登録要求を送信し、
前記イベントサービス振り分け装置は、
前記ユーザ端末装置から受信する前記登録要求に基づき、前記レジストリ装置から、前記リクエスタ装置からのイベント通知と、前記リクエスタ装置のアドレス情報であるエンドポイント情報とを読み出し、前記イベント通知と、当該イベント通知に基づき実行する連携シナリオのエンドポイント情報とを前記イベントルーティングテーブル記憶手段に書き込むテーブル更新手段を備える
ことを特徴とする請求項１に記載のイベントサービス振り分けシステム。
【請求項４】
サービスの実行手順が記述される連携シナリオを記憶する連携シナリオ記憶装置と、前記連携シナリオを実行するアドレスであるエンドポイント宛のシナリオ実行要求に応じて前記連携シナリオを実行するサービス合成装置と、イベントサービス振り分け装置とを備えるネットワークサービス提供システムと、イベント検出時にイベント通知を送信するリクエスタ装置と、前記サービスを提供するサービスコンポーネントとがネットワークを介して接続されるイベントサービス振り分けシステムにおける前記イベントサービス振り分け装置であって、
前記リクエスタ装置から受信するイベント通知と、当該イベント通知に対応する実行対象の連携シナリオを実行させるアドレスを示す情報であるエンドポイント情報とを対応付けて記憶するイベントルーティングテーブル記憶手段と、
前記リクエスタ装置から受信するイベント通知を検索キーとして、前記イベントルーティングテーブル記憶手段から連携シナリオのエンドポイント情報を読み出し、前記連携シナリオ実行要求を前記エンドポイント宛に送信する振り分け手段と
を備えることを特徴とするイベントサービス振り分け装置。
【請求項５】
サービスの実行手順が記述される連携シナリオを記憶する連携シナリオ記憶装置と、前記連携シナリオを実行するアドレスであるエンドポイント宛のシナリオ実行要求に応じて前記連携シナリオを実行するサービス合成装置と、イベントサービス振り分け装置とを備えるネットワークサービス提供システムと、イベント検出時にイベント通知を送信するリクエスタ装置と、前記サービスを提供するサービスコンポーネントとがネットワークを介して接続されるイベントサービス振り分けシステムにおけるイベントサービス振り分け方法であって、
前記ネットワークサービス提供システムの前記イベントサービス振り分け装置が、
前記リクエスタ装置から受信するイベント通知と、当該イベント通知に対応する実行対象の連携シナリオを実行させるアドレスを示す情報であるエンドポイント情報とを対応付けて記憶手段に記憶するイベントルーティングテーブル記憶ステップと、
前記リクエスタ装置から受信するイベント通知を検索キーとして、前記記憶手段から連携シナリオのエンドポイント情報を読み出し、前記連携シナリオ実行要求を前記エンドポイント宛に送信する振り分けステップと
を有することを特徴とするイベントサービス振り分け方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に分散したサーバにより提供される要素サービスを連携させる連携シナリオ（連携サービス）を実行するシステムにおける、イベントサービス振り分けシステム、イベントサービス振り分け装置、及び、イベントサービス振り分け方法に関する。
【背景技術】
【０００２】
近年、ＳＯＡ（Service-Oriented Architecture；サービス指向アーキテクチャ）を実現させる技術の１つとして、複数のＷｅｂサービス（要素サービス、サービスコンポーネント）を連携させるサービス連携技術が注目を浴びている。例えば、国際標準化団体であるＷ３Ｃ（World Wide Web Consortium）などにより公開されている技術仕様に基づくインタフェース、例えば、ＷＳＤＬ（Web Services Description Language）の仕様に基づくＷｅｂインタフェースや、ＵＰｎＰ（Universal Plug and play）の仕様に基づくサービスインタフェースを予め定義し、ＳＯＡＰ（Simple Object Access protocol）によってメッセージ送受を行うことで、各種要素サービスを連携させることが可能になる。
【０００３】
この連携において、インタフェース定義された要素サービスは、ワークフロー（連携シナリオ、連携シナリオ）に基づき、順次、若しくは、並列的に、連携シナリオ実行エンジンによって実行される。以下、連携シナリオにおいて、参照される（呼び出される）要素サービスをサービスコンポーネントと称して説明する。
サービスコンポーネントを組み合わせた連携シナリオを記述する言語として、例えば、ＢＰＥＬ（Business Process Execution Language）が広く用いられている。また、ＢＰＥＬ記述に基づく連携シナリオは、サービス合成装置ないしソフトウエアであるＢＰＥＬエンジン（連携シナリオ実行エンジン）により実行される。このＢＰＥＬエンジンに配置（デプロイ）される連携シナリオは、ＷＳＤＬに基づきＷｅｂインタフェースが定義され、自身がサービスコンポーネントとしてＷｅｂサービスを提供する。
【０００４】
通常、ＢＰＥＬエンジンは、ＷＳＤＬ文書にＷｅｂインタフェースが定義されている連携シナリオが複数デプロイされている。このＷＳＤＬ文書は、ＷＳＤＬの仕様に基づき記述されたＷｅｂインタフェースの定義を示す情報である。また、ＷＳＤＬ文書には、対応する連携シナリオのエンドポイントアドレスの情報が記載されており、クライアント／サーバ型モデルに従い、クライアントは、前記エンドポイントアドレスを宛先として、ＳＯＡＰメッセージをＢＰＥＬエンジンに送信し、連携シナリオを実行（ｉｎｖｏｋｅ）させる。
以下、連携シナリオの実行要求、又は、実行契機となる信号を出力する構成（ソフトウエア、装置、クライアントなど）を「リクエスタ」と称する。
【０００５】
また、ＢＰＥＬのほかにも、連携シナリオ実行エンジンとサービスコンポーネントとの間でインタフェース整合がとれない場合、これらのインタフェースを仲介するサービスコンポーネントを発見し、これを含めてサービスを合成するシステムを実現する技術や（例えば、特許文献１）、同一領域の同等機能を持つ他のサービスコンポーネントへの動的適応を可能とするシステムの技術がある（例えば、特許文献２）。
上述したように、連携シナリオは、ネットワーク上のリクエスタからＳＯＡＰプロトコルによる実行要求等をＢＰＥＬエンジンが受信することによって実行される。例えば、リクエスタが何らかのイベントを検知（検出）したとき、このイベントに関する情報を含む連携シナリオ実行要求を送信する。
【０００６】
また、イベントごとに異なる連携シナリオを実行する場合、サービスコンポーネントの実行順序をタスクに記述し、このタスクに「イベントＡの受信」「所定時刻」等、すべてのイベント発生の条件をイベントとして記述しておく。そして、イベントの発生を管理するサーバが、イベント発生時に起動の条件を参照することでタスクの起動管理を行うことにより、連携シナリオを実行する技術がある。
【０００７】
また、サービスの実行方法として、タスクごとに入力情報が固定的に設定されており、タスク起動時にはこの情報を所定の方法でサービスコンポーネントに配分することで、サービス実行時にパラメータ等の情報入力を必要とするサービスコンポーネントを含む連携サービスを実現する方法が提案されている。
また、サービスコンポーネントごとに、入力情報を予め設定しておき、タスク起動時に入力情報を外部からまとめて受信し、受信した情報を各サービスコンポーネントに配分することでタスク実行を実現する方法もある。
【０００８】
ところで、一般に、リクエスタは何らかのイベント（警報発生等）を検知すると、この検知を契機として連携シナリオ実行エンジン上にデプロイされた連携シナリオを実行させる。一方、連携シナリオ実行エンジンは、デプロイされている連携シナリオの実行を、Ｗｅｂサービスとして不特定多数のリクエスタに提供している。このため、いずれのイベントを契機にいずれの連携シナリオを実行するかを判定、選択する構成が必要となるが、連携シナリオ実行エンジン側が、予め連携シナリオなどを決めておくことは、ユーザがイベントとサービスの組合せを決めることができないという問題がある。これにより、イベントごとに実行させる連携シナリオを選択、決定する機能構成・ソフトウエアをリクエスタが個々に備えることとなる。
【特許文献１】特開２００５−７１０５２号公報
【特許文献２】特開２００５−２５０８４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、実行する連携シナリオの情報をイベントごとに記憶するメモリや、いずれの連携シナリオの実行要求を送信するかをイベントごとに判定する構成、また、実行要求の送信先において定義されるインタフェースに従う要求信号を生成する構成などを、リクエスタが備えることは、リクエスタの装置構成が複雑化し、処理量が増大するという問題がある。また、要求信号の送信先におけるインタフェースやサービス内容の変更に備え、常に変更を確認し、変更がある場合、改めてリクエスタ側に設定変更処理を行う必要があるため、利用者にとって利便性がよくないという問題がある。
【００１０】
本発明は、このような事情を考慮し、上記の問題を解決すべくなされたもので、その目的は、ネットワークサービスプラットフォームが、リクエスタからイベント通知を受信する際、受信した通知に含まれるイベント情報に基づき、実行対象である連携シナリオを検出し、実行することができるイベントサービス振り分けシステム、イベントサービス振り分け装置、及び、イベントサービス振り分け方法を提供することにある。
【課題を解決するための手段】
【００１１】
上記問題を解決するために、本発明は、イベントサービス振り分けシステムが、サービスの実行手順が記述される連携シナリオを記憶する連携シナリオ記憶装置と、前記連携シナリオを実行するアドレスであるエンドポイント宛のシナリオ実行要求に応じて前記連携シナリオを実行するサービス合成装置と、イベントサービス振り分け装置とを備えるネットワークサービス提供システムと、イベント検出時にイベント通知を送信するリクエスタ装置と、前記サービスを提供するサービスコンポーネントとがネットワークを介して接続され、前記ネットワークサービス提供システムの前記イベントサービス振り分け装置が、前記リクエスタ装置から受信するイベント通知と、当該イベント通知に対応する実行対象の連携シナリオを実行させるアドレスを示す情報であるエンドポイント情報とを対応付けて記憶するイベントルーティングテーブル記憶手段と、前記リクエスタ装置から受信するイベント通知を検索キーとして、前記イベントルーティングテーブル記憶手段から連携シナリオのエンドポイント情報を読み出し、前記連携シナリオ実行要求を前記エンドポイント宛に送信する振り分け手段とを備えることを特徴とするイベントサービス振り分けシステムである。
【００１２】
また、本発明の前記イベントサービス振り分けシステムは、ネットワークに接続されるユーザ端末装置をさらに備え、前記ユーザ端末装置が、前記リクエスタ装置から送信されるイベント通知と、当該イベント通知に基づき実行する連携シナリオのエンドポイント情報との登録を要求する登録要求を送信し、前記イベントサービス振り分け装置は、前記ユーザ端末装置から受信する前記登録要求に基づき、前記リクエスタ装置から送信されるイベント通知と、当該イベント通知に基づき実行する連携シナリオのエンドポイント情報とを前記イベントルーティングテーブル記憶手段に書き込むテーブル更新手段を備えることを特徴とする。
【００１３】
また、本発明の前記イベントサービス振り分けシステムは、ネットワークに接続されるレジストリ装置とネットワークに接続されるユーザ端末装置とをさらに備え、前記レジストリ装置が、前記リクエスタ装置のエンドポイント情報と、前記リクエスタ装置が送信するイベント通知情報とを対応付けて記憶しており、前記ユーザ端末装置は、前記リクエスタ装置から送信されるイベント通知に基づき実行する連携シナリオのエンドポイント情報との登録を要求する登録要求を送信し、前記イベントサービス振り分け装置は、前記ユーザ端末装置から受信する前記登録要求に基づき、前記レジストリ装置から、前記リクエスタ装置からのイベント通知と、前記リクエスタ装置のアドレス情報であるエンドポイント情報とを読み出し、前記イベント通知と、当該イベント通知に基づき実行する連携シナリオのエンドポイント情報とを前記イベントルーティングテーブル記憶手段に書き込むテーブル更新手段を備えることを特徴とする。
【００１４】
また、本発明は、サービスの実行手順が記述される連携シナリオを記憶する連携シナリオ記憶装置と、前記連携シナリオを実行するアドレスであるエンドポイント宛のシナリオ実行要求に応じて前記連携シナリオを実行するサービス合成装置と、イベントサービス振り分け装置とを備えるネットワークサービス提供システムと、イベント検出時にイベント通知を送信するリクエスタ装置と、前記サービスを提供するサービスコンポーネントとがネットワークを介して接続されるイベントサービス振り分けシステムにおける前記イベントサービス振り分け装置であって、前記リクエスタ装置から受信するイベント通知と、当該イベント通知に対応する実行対象の連携シナリオを実行させるアドレスを示す情報であるエンドポイント情報とを対応付けて記憶するイベントルーティングテーブル記憶手段と、前記リクエスタ装置から受信するイベント通知を検索キーとして、前記イベントルーティングテーブル記憶手段から連携シナリオのエンドポイント情報を読み出し、前記連携シナリオ実行要求を前記エンドポイント宛に送信する振り分け手段とを備えることを特徴とするイベントサービス振り分け装置である。
【００１５】
また、本発明は、サービスの実行手順が記述される連携シナリオを記憶する連携シナリオ記憶装置と、前記連携シナリオを実行するアドレスであるエンドポイント宛のシナリオ実行要求に応じて前記連携シナリオを実行するサービス合成装置と、イベントサービス振り分け装置とを備えるネットワークサービス提供システムと、イベント検出時にイベント通知を送信するリクエスタ装置と、前記サービスを提供するサービスコンポーネントとがネットワークを介して接続されるイベントサービス振り分けシステムにおけるイベントサービス振り分け方法であって、前記ネットワークサービス提供システムの前記イベントサービス振り分け装置が、前記リクエスタ装置から受信するイベント通知と、当該イベント通知に対応する実行対象の連携シナリオを実行させるアドレスを示す情報であるエンドポイント情報とを対応付けて記憶手段に記憶するイベントルーティングテーブル記憶ステップと、前記リクエスタ装置から受信するイベント通知を検索キーとして、前記記憶手段から連携シナリオのエンドポイント情報を読み出し、前記連携シナリオ実行要求を前記エンドポイント宛に送信する振り分けステップとを有することを特徴とするイベントサービス振り分け方法である。
【発明の効果】
【００１６】
本発明によれば、イベントサービス振り分け装置が、リクエスタ装置から受信するイベント通知と、イベント通知に対応する実行対象の連携シナリオを実行させるアドレスを示す情報であるエンドポイント情報とを対応付けて記憶するイベントルーティングテーブル記憶手段と、リクエスタ装置から受信するイベント通知を検索キーとして、イベントルーティングテーブル記憶手段から連携シナリオのエンドポイント情報を読み出し、連携シナリオ実行要求をエンドポイント宛に送信する振り分け手段とを備えることとした。
【００１７】
これにより、リクエスタ装置側は、連携シナリオの実行契機となるイベント発生時において、連携シナリオの識別情報や、連携シナリオを実行するサービス合成装置において用いられるインタフェースに応じた実行要求の信号を送信することなく、イベント通知のみをイベントサービス振り分け装置に送信することで、サービス合成装置に連携シナリオを実行させることができる。このため、リクエスタ装置側に連携シナリオの識別情報を記憶させる記憶手段や、サービス合成装置のインタフェースに従う信号を生成する回路が不要となり、リクエスタ装置のコストアップを抑制することが可能になるという効果がある。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の一実施形態によるイベントサービス振り分けシステムを図面を参照して説明する。図１は、本実施形態によるイベントサービス振り分けシステムの全体構成を示す概略ブロック図である。イベントサービス振り分けシステムは、Ｗｅｂサービスを提供するサーバであるサービスコンポーネント７と、サービスコンポーネント７によるサービスを連携させる連携シナリオを実行するサーバとしてのネットワークサービスプラットフォーム２と、連携シナリオの実行契機となるイベントを通知するリクエスタ１１と、サービスの利用者側の端末装置としてのユーザ端末１３と、ＵＤＤＩ（Universal Description, Discovery, and Integration）１４とが、ネットワーク１を介して接続される。ネットワーク１は、電話網、インターネットなどの公衆網や、ＬＡＮ（Local Area Network）、専用線などの私設網からなる。
【００１９】
同図において、ネットワークサービスプラットフォーム２は、サービスバス４を介して接続されるサービス合成部３と、サービスコンポーネントデータベース５と、シナリオデータベース６と、イベント／サービス振り分け部１０とを備え、リクエスタ１１から受信するイベントの通知に基づき、連携シナリオを実行する。
ネットワークサービスプラットフォーム２において、サービス合成部３は、デプロイされている連携シナリオに基づき、サービスコンポーネント７により提供されるＷｅｂサービスを順次呼び出す。
【００２０】
シナリオデータベース６は、サービス合成部３にデプロイ（配置）されている実行対象の連携シナリオを記憶するデータベース装置であり、ここでは、例えば、ユーザ端末１３が登録するシナリオ８−１と、シナリオ８−２とを記憶している。これらのシナリオデータベース６が記憶するシナリオ８−１と、シナリオ８−２とには、複数のＷｅｂサービスの実行手順が記述されており、シナリオ８−１、８−２自身も複数のＷｅｂサービスを連携させるというサービスを提供するＷｅｂサービスである。
図２は、シナリオ８−１に記述される連携シナリオの内容を示す概念図である。リクエスタ１１からシナリオ８−１の実行契機となるイベントの通知を受信した場合、シナリオ８−１に記述されている手順に基づき、サービスコンポーネント７の呼出し命令の処理から順にサービス合成部３がシナリオ８−１を実行することとなる。
【００２１】
図１に戻り、サービスコンポーネントデータベース５は、サービスコンポーネント７のアドレス情報であるエンドポイント情報や、サービスコンポーネント７によって提供されるＷｅｂサービスの概要、インタフェースなど、サービスコンポーネント７に関する情報を記憶するデータベース装置である。
シナリオ作成部９は、ユーザ端末１３からの指示に従い、サービスコンポーネントデータベース５に記憶されているサービスコンポーネント７に関する情報を参照して、連携シナリオを作成し、作成した連携シナリオをシナリオデータベース６に書き込むとともに、サービス合成部３にデプロイする。
【００２２】
シナリオ作成部９は、例えば、ＧＵＩ（Graphical User Interface）などにより、例えば、参考文献１、２に提示されている技術を適用し、ユーザ端末１３を操作するユーザが連携シナリオを容易に作成するための機能を提供する（参考文献１：特開２００８−２１０９５、連携シナリオ作成支援システム及びその方法並びにプログラム、参考文献２:森谷、大西、吉田、小川、平野、”A Support System for Designing Ubiquitous Service Composition Scenarios”、IEEE Proc. ICC 2007、pp.1594-1599、2007）。
【００２３】
また、シナリオ作成部９は、サービス合成部３にデプロイした連携シナリオのアドレス情報として、デプロイした連携シナリオのエンドポイントの情報をサービス合成部３から取得する。図３は、サービス合成部３にデプロイされたシナリオ８−１に対応するＷＳＤＬ文書の例である。同図のＷ１は、連携シナリオを実行する際のアドレスを示すエンドポイントの情報Ｗ１「http://serviceengine/ws/tokusuruService1」である。
また、図４は、サービス合成部３にデプロイされたシナリオ８−２に対応するＷＳＤＬ文書の例である。同図のＷ２は、連携シナリオを実行する際のアドレスを示すエンドポイントの情報Ｗ２「http://serviceengine/ws/tokusuruService2」である。
サービス合成部３は、このエンドポイントの情報に記載されるアドレスに対し、実行要求の入力を受けて、連携シナリオを実行する。
【００２４】
図１に戻り、イベント／サービス振り分け部１０は、イベントルーティングテーブル記憶手段１１０と、判定手段１２０と、テーブル更新手段１３０とを備え、ネットワーク１を介してリクエスタ１１から受信するイベントの通知に応じて、実行対象の連携シナリオを判定し、判定した連携シナリオをサービス合成部３に実行させる。
イベント／サービス振り分け部１０のイベントルーティングテーブル記憶手段１１０は、シナリオＩＤ（identifier）と、シナリオを実行する際に用いるエンドポイントとが、イベント識別情報に対応付けられるイベントルーティングテーブルを記憶している。
【００２５】
図５は、イベントルーティングテーブル記憶手段１１０が記憶するイベントルーティングテーブルのデータ構成例とデータ例とを示す図である。同図に示すように、イベントルーティングテーブルは、連携シナリオを識別するシナリオＩＤの情報と、エンドポイントの情報と、リクエスタ１１から受信するイベントの通知に含まれるイベント識別情報との項目を列とする２次元の表形式のテーブルである。
イベントルーティングテーブルのイベント識別情報は、例えば、リクエスタ１１において検出されたイベントのイベント種別を示すスタートイベントの情報や、リクエスタ１１から通知される通知パラメータなどの情報であり、イベントを識別する情報である。
【００２６】
図１に戻り、イベント／サービス振り分け部１０の判定手段１２０は、リクエスタ１１から受信するイベントの通知に基づき、サービス合成部３にデプロイされている連携シナリオのうち、いずれの連携シナリオが実行対象の連携シナリオであるかを判定するシナリオ振り分け判定処理を行う。
判定手段１２０によるシナリオ振り分け判定処理は、受信したイベントの通知に含まれるイベント識別情報に対応するエンドポイントの情報をイベントルーティングテーブル記憶手段１１０から読み出し、読み出したエンドポイント宛てに受信したイベントの通知を転送する処理である。
【００２７】
テーブル更新手段１３０は、リクエスタ１１からのイベント識別情報と、シナリオ作成部９が取得するエンドポイントの情報とを対応付けて、イベントルーティングテーブル記憶手段１１０に書き込むことにより、イベントルーティングテーブルを更新する。
サービスバス４は、上述したサービス合成部３、サービスコンポーネントデータベース５、シナリオデータベース６、シナリオ作成部９、イベント／サービス振り分け部１０を接続する。
【００２８】
サービスコンポーネント７は、ネットワーク１に接続され、インタフェース定義されたＷｅｂサービスであって、連携シナリオに基づき、ネットワークサービスプラットフォーム２内のサービス合成部３によって順次若しくは並列的に参照・呼び出される。
リクエスタ１１は、ネットワーク１に接続され、イベントが発生した際に、ネットワークサービスプラットフォーム２にイベントの通知を送信する装置である。本実施形態においてリクエスタ１１は、イベントの一例として、建物内の漏水の有無を検出するセンサを備え、漏水検出時に漏水警報をネットワークサービスプラットフォーム２に通知する装置である。
【００２９】
また、リクエスタ１１は、参考文献３及び４に示すＯＡＳＩＳ  ＷＳ−Ｂｒｏｋｅｒｅｄ  Ｎｏｔｉｆｉｃａｔｉｏｎに定められる「Ｎｏｔｉｆｉｃａｔｉｏｎ  Ｐｒｏｄｕｃｅｒ」の機能を備えており、イベント／サービス振り分け部１０にリクエスタ１１のインタフェース情報を通知する（参考文献３：ＯＡＳＩＳ、”Web Services Base Notification 1.3 (WS-Base Notification)”、[online]、[平成２０年５月１４日検索]、インターネット<http://docs.oasis-open.org/wsn/wsn-ws_base_notification-1.3-spec-pr-02.pdf>、参考文献４：ＯＡＳＩＳ、”Web Services Brokered Notification 1.3 (WS-Brokered Notification)”、[online]、[平成２０年５月１４日検索]、インターネット<http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-pr-02.pdf>）。
【００３０】
ユーザ端末１３は、例えば、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistants：情報携帯端末）、携帯電話などのコンピュータ端末であり、ネットワークサービスプラットフォーム２のシナリオ作成部９にシナリオの作成指示を出力したり、サービス合成部３が実行するシナリオの実行結果を受信する。
ＵＤＤＩ１４は、リクエスタ１１のエンドポイント情報と、リクエスタ１１のイベントの通知に含まれるイベント識別情報と、リクエスタ１１のインタフェース情報とを対応付けて記憶する記憶装置を備えており、外部からの検索要求に応じて、記憶装置が記憶する情報の検索結果を出力する。
【００３１】
次に、本発明の一実施形態によるイベントサービス振り分けシステムの動作について、図面を用いて説明する。図６は、登録過程とシナリオ実行過程との２つの過程からなるイベントサービス振り分けシステムにおける処理フローを示す。ここで、登録過程として、ユーザ端末１３からの登録要求に応じて、シナリオ作成部９がシナリオ８−１を作成し、作成したシナリオ８−１と、シナリオ８−１を実行する契機となるリクエスタ１１からの通知とを対応付けてイベント／サービス振り分け部１０に登録する処理の過程を例に説明する。また、シナリオ実行過程は、イベント／サービス振り分け部１０に登録されている情報に基づき、リクエスタ１１から送信されるイベントの通知に応じてシナリオ８−１を実行する処理の過程を例に説明する。
【００３２】
＜登録過程＞
ユーザの操作に基づき、リクエスタ１１は、リクエスタ１１のエンドポイント情報とイベント識別情報（イベントトピック情報）とを含む登録要求「ＲｅｇｉｓｔｅｒＰｕｂｌｉｓｈｅｒＲｅｑｕｅｓｔ」のＳＯＡＰメッセージをイベント／サービス振り分け部１０に出力する。図７は、リクエスタ１１が送信する登録要求のＳＯＡＰメッセージ例である。
【００３３】
図７に示すように、登録要求であるＳＯＡＰメッセージ「ＲｅｇｉｓｔｅｒＰｕｂｌｉｓｈｅｒＲｅｑｕｅｓｔ」は、リクエスタ１１のエンドポイント情報「http://requester1/PublisherEndpoint」と、リクエスタ１１がイベント／サービス振り分け部１０に出力するイベント識別情報とを含む要求である。また、リクエスタ１１が送信するイベント識別情報は、漏水警報を示すイベント識別情報「ＷａｔｅｒＬｅａｋＡｌａｒｍ」である。
また、イベント識別情報としてのイベントトピック情報は、例えば、参考文献５に示すＷＳ−Ｔｏｐｉｃ形式に基づき記述されている（参考文献５：ＯＡＳＩＳ、”Web Services Topics 1.3 (WS-Topics)”、[online]、[平成２０年５月１４日検索]、インターネット<http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf>）。
【００３４】
図６に戻り、イベント／サービス振り分け部１０において、リクエスタ１１から受信する登録要求に基づき、イベントルーティングテーブルへのリクエスタ１１のデータの登録待機モードに移行する。具体的には、イベント／サービス振り分け部１０は、イベントルーティングテーブル記憶手段１１０のイベントルーティングテーブルの新たな行に受信した登録要求のイベント識別情報を書き込み、また、リクエスタ１１のエンドポイント情報を一時的に内部の記憶手段に記憶する。
【００３５】
また、イベント／サービス振り分け部１０は、登録要求に対応する応答メッセージとして、登録手続の待機モードを開始したことを通知する応答「ＲｅｇｉｓｔｅｒＰｕｂｌｉｓｈｅｒＲｅｓｐｏｎｓｅ」のＳＯＡＰメッセージをリクエスタ１１に送信する（ステップＳ１０１）。図８は、イベント／サービス振り分け部１０がリクエスタ１１に送信する応答のＳＯＡＰメッセージ例である。
【００３６】
図８に示すように、リクエスタ１１からの登録要求に対応する応答であるＳＯＡＰメッセージ「ＲｅｇｉｓｔｅｒＰｕｂｌｉｓｈｅｒＲｅｓｐｏｎｓｅ」は、イベント／サービス振り分け部１０のエンドポイント情報「http://EventRoutingGateway/PublisherRegistrationManager」を含む応答である。リクエスタ１１は、受信した登録開始通知に含まれるイベント／サービス振り分け部１０のエンドポイント情報をイベントの通知先のアドレス情報として記憶する。
【００３７】
リクエスタ１１を操作するユーザは、リクエスタ１１が登録手続の待機モードの通知を受信したことを確認し、リクエスタ１１におけるイベントの通知に応じて実行させるシナリオの作成を行う。具体的には、ユーザ操作により、ユーザ端末１３は、ネットワークサービスプラットフォーム２のシナリオ作成部９にイベントトピックの送信要求を送信し、イベントトピックの一覧情報をシナリオ作成部９から受信する。ユーザ端末１３は、受信したイベントトピックの一覧情報に基づくユーザ操作に応じて、シナリオ８−１の作成要求をシナリオ作成部９に出力する。シナリオ作成部９は、受信した作成要求に基づき、シナリオ８−１と、シナリオ８−１の識別情報となるシナリオＩＤとの情報を生成する（ステップＳ１０２）。
【００３８】
シナリオ作成部９は、生成したシナリオ８−１をサービス合成部３にデプロイし（ステップＳ１０３）、サービス合成部３からデプロイしたシナリオ８−１を実行する際のエンドポイント情報とシナリオＩＤとを受信する（ステップＳ１０４）。シナリオ作成部９は、受信したシナリオ８−１のエンドポイント情報をイベント／サービス振り分け部１０に通知し（ステップＳ１０５）、イベント／サービス振り分け部１０のテーブル更新手段１３０は、受信したシナリオ８−１のエンドポイント情報とシナリオＩＤとを、登録対象であるリクエスタ１１のイベントルーティングテーブルの行に書き込む（ステップＳ１０６）。
【００３９】
イベント／サービス振り分け部１０は、イベントルーティングテーブル記憶手段１１０への登録が完了すると、ステップＳ１０１において一時的に記憶していたリクエスタ１１のエンドポイント情報に基づき、ＳＯＡＰメッセージ「Ｓｕｂｓｃｒｉｂｅ」を送信する。イベント／サービス振り分け部１０が送信するＳＯＡＰメッセージ「Ｓｕｂｓｃｒｉｂｅ」は、登録処理が完了し、イベント／サービス振り分け部１０がリクエスタ１１からのイベントの通知を購読する（受け付ける）ことを示す通知である。リクエスタ１１は、通知を受信したことをイベント／サービス振り分け部１０に通知する（ステップＳ１０７）。
【００４０】
以上のステップＳ１０１〜Ｓ１０７により、イベント／サービス振り分け部１０がリクエスタ１１から受信するイベントの通知と、当該通知に基づき実行する実行対象の連携シナリオとの対応関係がイベントルーティングテーブルの新たな行としてイベント／サービス振り分け部１０に登録される。
上述の登録過程と同様に、ユーザ端末１３は、ユーザ操作に基づき、シナリオ８−２の連携シナリオを作成し、シナリオ作成部９がサービス合成部３にシナリオ８−２をデプロイする。また、イベント／サービス振り分け部１０は、図５に示したように、シナリオ８−１に加えて、シナリオ８−２のイベントルーティングテーブルの行を記憶することとなる。同図に示すように、シナリオ８−２が実行対象であるイベントの通知に含まれるイベント識別情報は、通知パラメータ「Ｘ＝１」であり、かつ、通知パラメータ「Ｙ＝２」であるＸＭＬ（Extensible Markup Language）形式のイベント識別情報である。
【００４１】
＜シナリオ実行過程＞
次に、上述の登録過程の処理後、イベント／サービス振り分け部１０にシナリオ８−１とシナリオ８−２とに関するイベントルーティングテーブルが登録されている場合に、リクエスタ１１が漏水のイベントを検出した際におけるシナリオ実行過程の処理の流れについて説明する。
リクエスタ１１は、漏水の検出をイベント発生として（ステップＳ１０８）、イベント識別情報「ＷａｔｅｒＬｅａｋＡｌａｒｔ」を含むイベントの通知をイベント／サービス振り分け部１０に送信する。ここで、リクエスタ１１は、イベントの通知として、ＳＯＡＰメッセージ「Ｎｏｔｉｆｉｃａｔｉｏｎ」を、ステップＳ１０１において記憶したエンドポイント宛（ここでは、イベント／サービス振り分け部１０）に送信する（ステップＳ１０９）。
【００４２】
イベント／サービス振り分け部１０は、受信したイベントの通知のイベント識別情報「ＷａｔｅｒＬｅａｋＡｌａｒｔ」を検索キーとして、イベントルーティングテーブル記憶手段１１０から対応するシナリオ８−１のエンドポイント情報を読み出す（ステップＳ１１０）。イベント／サービス振り分け部１０は、読み出したエンドポイント情報のアドレス宛（ここでは、シナリオ８−１がデプロイされているサービス合成部３）に受信したイベントの通知を送信する。
サービス合成部３は、デプロイされたシナリオ８−１のエンドポイント宛のイベントの通知を受信すると、シナリオデータベース６が記憶するシナリオ８−１に基づき、連携シナリオを実行する（ステップＳ１１１）。
【００４３】
上述の実施形態によれば、リクエスタ１１は、イベント／サービス振り分け部１０のエンドポイント情報を記憶し、イベント／サービス振り分け部１０宛にイベントの通知のみを送信すると、ネットワークサービスプラットフォーム２がイベントの通知に含まれるイベント識別情報に基づき、対応する連携シナリオを選択し、選択した連携シナリオを実行する。これにより、実行する連携シナリオの情報をイベントごとに記憶するメモリや、いずれの連携シナリオの実行要求を送信するかをイベントごとに判定する構成、また、実行要求の送信先において定義されるインタフェースに従う要求信号を生成する構成などを、リクエスタ１１は備える必要がなくなる。したがって、リクエスタ１１の装置構成の複雑化を招くことなく、処理量を増大させずに連携シナリオを実行することが可能なシステムをユーザに提供することが可能になるという効果がある。
【００４４】
また、イベント／サービス振り分け部１０がリクエスタ１１からのイベントの通知をすべて受信し、受信した通知とともにシナリオ実行要求をサービス合成部３に送信することにより、サービス合成部３におけるインタフェースやサービス内容の変更がある場合であっても、リクエスタ１１側において変更に応じてイベントの通知の内容や、通知先などを変更することなく連携シナリオを実行するサービスをユーザに提供することができる。これにより、利便性を向上させた連携シナリオ実行サービスを提供することが可能になるという効果がある。
【００４５】
なお、上述の実施形態において、リクエスタ１１のインタフェース情報をイベント／サービス振り分け部１０が取得する際、リクエスタ１１がＳＯＡＰメッセージ「ＲｅｇｉｓｔｅｒＰｕｂｌｉｓｈｅｒＲｅｑｕｅｓｔ」を送信することとして説明したがこれに限られず、例えば、図１のＵＤＤＩ１４を用いることなど、いずれの方法によりインタフェース情報を取得することとしてもよい。
【００４６】
具体的には、例えば、イベント／サービス振り分け部１０がイベント通知型のサービスの検索要求であるＳＯＡＰメッセージ「find_service」や、ＳＯＡＰメッセージ「find_business」などをＵＤＤＩ１４に送信する。ＵＤＤＩ１４は、イベント／サービス振り分け部１０からの要求に応じてリクエスタ１１のエンドポイント情報と、イベントトピック情報であるイベント識別情報とを含むＳＯＡＰメッセージをイベント／サービス振り分け部１０に応答する。イベント／サービス振り分け部１０は、受信したＳＯＡＰメッセージの応答に含まれるエンドポイント情報に基づき、リクエスタ１１にイベント／サービス振り分け部１０のエンドポイント情報を含むＳＯＡＰメッセージ「ＲｅｇｉｓｔｅｒＰｕｂｌｉｓｈｅｒＲｅｓｐｏｎｓｅ」を送信することにより、適用可能である。
【００４７】
また、ネットワークサービスプラットフォーム２において、イベント／サービス振り分け部１０がイベントルーティングテーブル記憶手段１１０を備えることとして説明したが、これに限られず、イベントルーティングテーブル記憶手段１１０は、イベント／サービス振り分け部１０がネットワーク１などを介して接続されている構成など、イベント／サービス振り分け部１０が接続可能な構成であればいずれの構成であっても適用可能である。
また、図１に示すリクエスタ１１、及び、サービスコンポーネント７は複数の構成であっても適用可能である。
【００４８】
なお、上述のネットワークサービスプラットフォーム２、サービスコンポーネント７、リクエスタ１１、ＵＤＤＩ１４、及び、ユーザ端末１３は、内部にコンピュータシステムを有している。そして、ネットワークサービスプラットフォーム２のイベント／サービス振り分け部１０、サービス合成部３、シナリオ作成部９、リクエスタ１１、ユーザ端末１３、ＵＤＤＩ１４の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいう「コンピュータシステム」とは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００４９】
また、図６に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録してまた、図１に示すネットワークサービスプラットフォーム２の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、イベントを契機として実行する連携シナリオを自動選択する処理を行ってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００５０】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態によるイベントサービス振り分けシステムの全体構成を示すブロック図である。
【図２】同実施形態におけるシナリオ８−１の内容を示す概念図である。
【図３】同実施形態におけるシナリオ８−１のＷＳＤＬ文書のデータ例を示す図である。
【図４】同実施形態におけるシナリオ８−２のＷＳＤＬ文書のデータ例を示す図である。
【図５】同実施形態におけるイベントルーティングテーブル記憶手段１１０のデータ構成、及びデータ例を示す図である。
【図６】同実施形態によるイベントサービス振り分けシステムの動作の流れを示すフローチャートである。
【図７】同実施形態によるリクエスタ１１が送信するＳＯＡＰメッセージ「RegisterPublisherRequest」の例を示す図である。
【図８】同実施形態によるイベント／サービス振り分け部１０が送信するＳＯＡＰメッセージ「RegisterPublisherResponse」の例を示す図である。
【符号の説明】
【００５２】
１  ネットワーク
２  ネットワークサービスプラットフォーム（ネットワークサービス提供システム）
３  サービス合成部（サービス合成装置）
４  サービスバス
５  サービスコンポーネントデータベース
６  シナリオデータベース（連携シナリオ記憶装置）
７  サービスコンポーネント
８−１  シナリオ
８−２  シナリオ
９  シナリオ作成部
１０  イベント／サービス振り分け部（イベントサービス振り分け装置）
１１０  イベントルーティングテーブル記憶手段
１２０  判定手段（振り分け手段）
１３０  テーブル更新手段
１１  リクエスタ
１３  ユーザ端末
１４  ＵＤＤＩ（レジストリ装置）
【図１】
2009294863.tif 000003
【図２】
2009294863.tif 000004
【図３】
2009294863.tif 000005
【図４】
2009294863.tif 000006
【図５】
2009294863.tif 000007
【図６】
2009294863.tif 000008
【図７】
2009294863.tif 000009
【図８】
2009294863.tif 000010