(57)【特許請求の範囲】
【請求項１】
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集する収集部と、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する推定部と、
を備え、
前記サービス連携ルールは、前記複数のサービスのうち連携元の第１のサービスと連携先の第２のサービスとの各要素値の対応付けを含み、
前記推定部は、
前記第１のサービスにおいて発生した第１のイベント情報から第１の要素値を取得し、
当該第１のイベント情報の後に発生した前記第２のサービスにおける第２のイベント情報から第２の要素値を取得し、
当該第１の要素値と当該第２の要素値とが前記サービス連携ルールに対応付けられている場合に、前記第１のサービスと前記第２のサービスの間の連携が前記利用中のものと推定する
サービス連携管理システム。
【請求項２】
前記推定されたサービス間の連携をサービス連携推定情報として記憶装置に格納する格納部と、
新たなサービス連携ルールの追加要求を受け付けた場合に、前記記憶装置から前記サービス連携推定情報を取得し、当該新たなサービス連携ルールの追加により前記データの流れにループが生じるか否かを判定し、前記ループが生じないと判定した場合に当該追加要求を許可し、前記ループが生じると判定した場合に当該追加要求を拒否する旨を要求元へ応答する追加判定処理を行なう追加判定部と、をさらに備える
請求項１に記載のサービス連携管理システム。
【請求項３】
前記追加判定部は、
第１のサービス利用装置が第１のサービス連携ルールを利用中に、第２のサービス利用装置から第２のサービス連携ルールの追加要求を受け付けた場合に、前記追加判定処理を行なう
請求項２に記載のサービス連携管理システム。
【請求項４】
前記推定部が複数のサービス間の連携を推定した場合に、前記データの流れにループが生じるか否かを判定する判定部と、をさらに備える
請求項１に記載のサービス連携管理システム。
【請求項５】
前記推定部は、
３以上のサービスについての連携を、前記複数のサービス連携ルールのうち利用中のものとして推定する
請求項１乃至又は４に記載のサービス連携管理システム。
【請求項６】
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集する収集部と、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する推定部と、
を備え、
前記サービス連携ルールは、前記複数のサービスのうち連携元の第１のサービスと連携先の第２のサービスとの各要素値の対応付けを含み、
前記推定部は、
前記第１のサービスにおいて発生した第１のイベント情報から第１の要素値を取得し、
当該第１のイベント情報の後に発生した前記第２のサービスにおける第２のイベント情報から第２の要素値を取得し、
当該第１の要素値と当該第２の要素値とが前記サービス連携ルールに対応付けられている場合に、前記第１のサービスと前記第２のサービスの間の連携が前記利用中のものと推定する
サービス連携管理装置。
【請求項７】
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集し、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定し、
前記サービス連携ルールは、前記複数のサービスのうち連携元の第１のサービスと連携先の第２のサービスとの各要素値の対応付けを含み、
前記推定において、
前記第１のサービスにおいて発生した第１のイベント情報から第１の要素値を取得し、
当該第１のイベント情報の後に発生した前記第２のサービスにおける第２のイベント情報から第２の要素値を取得し、
当該第１の要素値と当該第２の要素値とが前記サービス連携ルールに対応付けられている場合に、前記第１のサービスと前記第２のサービスの間の連携が前記利用中のものと推定する
サービス連携管理方法。
【請求項８】
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集する処理と、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する処理と、
をコンピュータに実行させ、
前記サービス連携ルールは、前記複数のサービスのうち連携元の第１のサービスと連携先の第２のサービスとの各要素値の対応付けを含み、
前記推定する処理は、
前記第１のサービスにおいて発生した第１のイベント情報から第１の要素値を取得し、
当該第１のイベント情報の後に発生した前記第２のサービスにおける第２のイベント情報から第２の要素値を取得し、
当該第１の要素値と当該第２の要素値とが前記サービス連携ルールに対応付けられている場合に、前記第１のサービスと前記第２のサービスの間の連携が前記利用中のものと推定するサービス連携管理プログラム。
【請求項９】
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集する収集部と、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する推定部と、
前記推定されたサービス間の連携をサービス連携推定情報として記憶装置に格納する格納部と、
を備えるサービス連携管理装置と、
新たなサービス連携ルールの追加要求を受け付けた場合に、前記記憶装置から前記サービス連携推定情報を取得し、当該新たなサービス連携ルールの追加により前記データの流れにループが生じるか否かを判定し、前記ループが生じないと判定した場合に当該追加要求を許可し、前記ループが生じると判定した場合に当該追加要求を拒否する旨を要求元へ応答する追加判定処理を行なう追加判定部
を備えるサービス利用装置と、
を備え、
前記サービス連携ルールは、前記複数のサービスのうち連携元の第１のサービスと連携先の第２のサービスとの各要素値の対応付けを含み、
前記推定部は、
前記第１のサービスにおいて発生した第１のイベント情報から第１の要素値を取得し、
当該第１のイベント情報の後に発生した前記第２のサービスにおける第２のイベント情報から第２の要素値を取得し、
当該第１の要素値と当該第２の要素値とが前記サービス連携ルールに対応付けられている場合に、前記第１のサービスと前記第２のサービスの間の連携が前記利用中のものと推定するサービス連携管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス連携管理システム、装置、方法及びプログラムに関し、特に、複数のサービス連携を管理するためのサービス連携管理システム、装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティング環境において、様々な外部サービスが提供されている。様々な外部サービスの中からニーズに合うものを選択し、それらを組み合わせて利用するというニーズが高まっている。これらは、いずれかのサービスアプリケーションにより実施される２つ以上のサービスを連携させる「サービス連携」と呼ばれる。例えば、ＩＦＴＴＴ（IF This Then That）というサービス連携ツールが登場し、注目されている。ここで、サービス連携ツールの基本的な動作は、あるサービスで発生するイベントをトリガに、他のサービスに対するアクションを起こすというものである。
【０００３】
サービス連携の例としては、次のようなものが挙げられる。
・「ソーシャルネットワーキングサービス＋ストレージサービス」
ソーシャルネットワーキングサービス上で書き込み行った場合、その内容をクラウド上のストレージサービスに自動保存するものである。
・「天気予報公開サービス＋メールサービス」
翌日の天気が雨という予報が出た場合、そのことを通知するメールをユーザに自動送信するものである。
【０００４】
ここで、サービス連携のためのイベント発生の検知は、各サービスが提供するＷｅｂ  ＡＰＩ（Application Programming Interface）を利用することで行う。そして、そのイベントをトリガとして起こす他サービスへのアクションも、各サービスが提供するWeb API経由で行う。
【０００５】
特許文献１には、個別サービスの仕様とデータ仕様を利用し、サービス連携をビジュアルに構築し、サービス連携の動作をシミュレーションで網羅的に検証することができる連携支援システムに関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３１２１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、複数の種類のサービス連携が実行される場合には、サービス連携のループが発生し得る。そして、特許文献１では、サービス連携の本登録前の検証をシミュレーションにより行なうことになるが、各種サービスは様々なユーザにより利用されるものであるため、検証自体が他のユーザに影響を与えるおそれがあるという問題点があった。
【０００８】
以下では、サービス連携の概要と複数のサービス連携によりループが発生するケースについて例を用いて説明する。図９は、サービス連携の概念を説明するための図である。まず、サービス提供企業Ｘ１ネットワーク２１はサービスＡ２１１を、サービス提供企業Ｘ２ネットワーク２２はサービスＢ２２１を、それぞれ外部に提供しているものとする。尚、サービス提供企業Ｘ１ネットワーク２１及びサービス提供企業Ｘ２ネットワーク２２は、各サービスを提供するためのサーバ（不図示）を備えているものとする。また、企業Ｙ１ネットワーク３１及び企業Ｙ１ネットワーク３２のそれぞれは、サービスＡ２１１及びサービスＢ２２１を個別にインターネットＮを介して利用可能であるものとする。
【０００９】
ここで、サービス連携提供ネットワーク１０は、内部のサーバ（不図示）がサービス連携ルール群１１という情報を保持しており、サービス連携ルール群１１には、複数の連携ルール１１１及び１１２等が含まれているものとする。連携ルール１１１は、サービスＡをトリガとし、サービスＢをアクションとしたサービス連携の定義情報である。また、連携ルール１１２は、サービスＢをトリガとし、サービスＣ（不図示）をアクションとしたサービス連携の定義情報である。
【００１０】
各企業がサービス連携を行なう場合には、サービス連携用ソフトウェアを自社のネットワーク内のコンピュータにインストールして「サービス連携装置」として利用する。企業Ｙ１ネットワーク３１はサービス連携装置３１１を有し、企業Ｙ１ネットワーク３２はサービス連携装置３２１を有する。ここで、サービス連携装置３１１とサービス連携装置３２１とは、別々の企業内のネットワークに存在するため、互いに通信を行うことができず、また、互いを意識せずに動作するものとする。
【００１１】
サービス連携装置３１１及び３２１のそれぞれは、サービス連携提供ネットワーク１０内のサービス連携ルール群１１から、任意の連携ルールを選択し、自社のネットワークにダウンロードして利用することができる。ここで、サービスＡ２１１及びサービスＢ２２１は、ＷｅｂＡＰＩを公開しており、サービス連携装置３１１及び３２１はＷｅｂＡＰＩを利用して、各サービスで発生したイベントの検知や、サービスにアクションを起こすことが可能となる。
【００１２】
サービス連携装置３１１は連携ルール３１２を取り込んでおり、「トリガ：サービスＡ、アクション：サービスＢ」というサービス連携の定義が行われている。そのため、サービスＡで、あるイベントが発生すると、サービス連携装置３１１がそれを検知し、サービスＢのアクションを実行する。このようにして、サービス連携が実現できる。
【００１３】
しかしながら、複数の種類のサービス連携が組み合わせて利用される場合、その組み合わせによってはサービス連携のループを引き起こす可能性がある。例えば、サービス連携装置３２１が「トリガ：サービスＢ、アクション：サービスＡ」というサービス連携の定義を追加するものとする。この場合、すでに、サービス連携装置３１１には、「トリガ：サービスＡ、アクション：サービスＢ」が定義されていることから、サービス連携装置３１１によりサービスＢのアクションが実行されたことで、サービス連携装置３２１がサービスＢのイベントを検知し、サービスＡのアクションを実行することとなり得る。そして、サービス連携装置３２１によりサービスＡのアクションが実行されたことで、サービス連携装置３１１がサービスＡのイベントを検知することとなり、サービス連携によるデータのループが発生し得る。
【００１４】
また、特許文献１のようにシミュレーションを行う場合、企業Ｙ２のサービス連携の検証のために、企業Ｙ１のネットワークやサービスにも影響を与えてしまう。
【００１５】
本発明は、このような問題点を解決するためになされたものであり、他のユーザへの影響を抑えて、複数の種類のサービス連携の管理を利用実態に合わせて行なうためのサービス連携管理システム、装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の第１の態様にかかるサービス連携管理システムは、
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集する収集部と、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する推定部と、
を備える。
【００１７】
本発明の第２の態様にかかるサービス連携管理装置は、
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集する収集部と、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する推定部と、
を備える。
【００１８】
本発明の第３の態様にかかるサービス連携管理方法は、
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集し、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する。
【００１９】
本発明の第４の態様にかかるサービス連携管理プログラムは、
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集する処理と、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する処理と、
をコンピュータに実行させる。
【００２０】
本発明の第５の態様にかかるサービス連携管理システムは、
サービス間の連携を定義した複数のサービス連携ルールに含まれる複数のサービスにおいて発生した複数のイベント情報を収集する収集部と、
前記収集された複数のイベント情報に含まれるデータの流れを分析して、前記複数のサービス連携ルールのうち利用中のものを推定する推定部と、
前記推定されたサービス間の連携をサービス連携推定情報として記憶装置に格納する格納部と、
を備えるサービス連携管理装置と、
新たなサービス連携ルールの追加要求を受け付けた場合に、前記記憶装置から前記サービス連携推定情報を取得し、当該新たなサービス連携ルールの追加により前記データの流れにループが生じるか否かを判定し、前記ループが生じないと判定した場合に当該追加要求を許可し、前記ループが生じると判定した場合に当該追加要求を拒否する旨を要求元へ応答する追加判定処理を行なう追加判定部
を備えるサービス利用装置と、
を備える。
【発明の効果】
【００２１】
本発明により、他のユーザへの影響を抑えて、複数の種類のサービス連携の管理を利用実態に合わせて行なうためのサービス連携管理システム、装置、方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態１にかかるサービス連携管理装置の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかるサービス連携管理処理の流れを示すフローチャートである。
【図３】本発明の実施の形態２にかかるサービス連携管理システムの構成を示すブロック図である。
【図４】本発明の実施の形態２にかかる地図情報データサービスにおけるイベント情報の例を示す図である。
【図５】本発明の実施の形態２にかかる渋滞情報データサービスにおけるイベント情報の例を示す図である。
【図６】本発明の実施の形態２にかかるサービス連携における要素間の対応情報の例を示す図である。
【図７】本発明の実施の形態２にかかるサービス連携管理装置のサービス連携推定処理の流れを示すフローチャートである。
【図８】本発明の実施の形態２にかかるサービス連携装置の連携ルール追加処理の流れを示すフローチャートである。
【図９】サービス連携の概念を説明する図である。
【発明を実施するための形態】
【００２３】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００２４】
ここで、上述したサービス連携によるデータのループを防ぐためのサービス連携の管理手法について検討する。まず、サービス連携の管理手法１として、連携ルールを一括管理し、ループが発生するなどの不正なルールの組み合わせを登録できないようにする手法が存在する。尚、本発明では、複数のサービス連携装置が独立して動作する場合を対象とする。そのため、各サービス連携装置（つまり、各ユーザ）でサービスの連携が独立して行われ、他のサービス連携装置（他のユーザ）のサービス連携状況を考慮せずにサービスの連携が追加されるものとする。したがって、ループを防ぐためには、複数のサービス連携装置が存在することを考慮した上でサービス連携の管理を行う必要がある。
【００２５】
複数のサービス連携装置が存在することを考慮したサービス連携の管理方法１として、各サービスで利用されるために事前に登録されたサービス連携ルールについての情報を１か所にまとめて、それを元にサービス連携の管理を行う方法が考えられる。以下に２つの例を挙げる。
【００２６】
管理方法１の１つ目の例は、サービス連携提供企業ネットワーク内のサービス連携ルール群に定義されているルール全てを対象として、ループが発生する可能性の有無を検証するというものである。確かにこの方法により、サービス連携ルール群に定義されているルール間のループの発生可能性を検出することができる。ただし、これでは、サービス連携ルール群として定義はされているが、実際には各サービス連携装置で利用されていないサービスとの連携も不正として検出されてしまうおそれがある。つまり、各サービス連携装置によるルールの利用実態を考慮せず、過度に不正な連携ルールと検出してしまう可能性がある方法と言える。
【００２７】
管理方法１の２つ目の例は、各サービス連携装置が実際に利用しているサービス連携ルール(図９では、サービス連携装置３１１内で定義されている「連携ルール(A→B)」３１２)を収集し、実際に利用されているルールを対象としてループの発生可能性の有無を検証するというものである。これは各サービス連携装置のルール利用実態を考慮しており、適切にサービス連携の管理ができると言える。ただし、利用しているサービス連携から業務内容を推測できる可能性がある。そして、各社が利用するサービス連携の一覧は企業の資産とも言える。近年の営業秘密の保護の観点から、自社で利用しているサービス連携ルールを外部(サービス連携提供企業)へ公開することが望まれないケースがある。そのため、各サービス連携装置が実際に利用しているサービス連携ルールを収集することは困難といえる。
【００２８】
上記の２例で示したように、サービス連携によるデータのループの検出を、定義されている各種連携ルールの一括管理から行う従来の手法では、上述した課題を解決するためには適用できない。
【００２９】
また、他のループを検出する仕組みであるサービス連携の管理方法２として、検出用の情報を付加するという方法がある。これはデータにループ検出用の領域を設け、データ送信時にはループ検出用領域にデータを埋め込み、データ受信時には、ループ検出用領域の内容をチェックするという方法である。チェックした結果、自分が埋め込んだデータであるということが分かれば、そのデータをループしたものとみなすことができる。しかしこの方法は以下の理由から、上述した課題を解決するためには有効でないといえる。
【００３０】
・データが送信される間にサービスをはさむので、ループ検出用情報を埋め込んだデータを渡すことができない可能性がある。
・ループ検出用情報を埋め込んだデータをサービスに渡せても、その結果発生するアクションによるイベントにその情報が含まれない可能性がある。あるいは含まれてもループが検出できる形で含まれない可能性がある。
・サービス連携装置間では通信を行うことができないので、サービス連携装置が直接やり取りを行うことによる解決はできない。
【００３１】
以上のことから上述したサービス連携によるデータのループを検出するためには、登録された連携ルール自体を一括管理するだけでは不十分であり、また、検証用の情報を付加することも採用できない。そこで、上述した課題を解決すべく以下の実施の形態について説明する。
【００３２】
＜実施の形態１＞
図１は、本発明の実施の形態１にかかるサービス連携管理装置１００の構成を示すブロック図である。サービス連携管理装置１００は、サービス間の連携を定義したサービス連携ルールを管理するためのコンピュータ装置である。尚、サービス連携管理装置１００は、１台のコンピュータに限定されず、複数台のコンピュータ装置で実現されても構わない。その場合、サービス連携管理システムということができる。また、サービス連携ルールには、少なくとも連携元と連携先のサービスが定義されている。尚、１つのサービス連携ルール内に３以上のサービスの連携が定義されていてもよい。
【００３３】
サービス連携管理装置１００は、収集部１１０と、推定部１２０とを備える。収集部１１０は、複数のイベント情報４１〜４ｎ（ｎは２以上の自然数。）を収集する。ここで、イベント情報４１〜４ｎのそれぞれは、複数のサービス連携ルールのいずれかに含まれる複数のサービスにおいて発生したイベントに関する情報である。推定部１２０は、収集された複数のイベント情報４１〜４ｎに含まれるデータの流れを分析して、複数のサービス連携ルールのうち利用中のものを推定する。
【００３４】
図２は、本発明の実施の形態１にかかるサービス連携管理処理の流れを示すフローチャートである。まず、収集部１１０は、サービス連携ルールに含まれるサービスにおいて発生した複数のイベント情報を収集する（Ｓ１）。次に、推定部１２０は、収集された複数のイベント情報４１〜４ｎに含まれるデータの流れを分析する。そして、推定部１２０は、複数のサービス連携ルールのうち利用中のサービス間の連携を推定する（Ｓ２）。
【００３５】
このように、本発明の実施の形態１では、登録されたサービス連携ルールだけを解析するのではなく、サービス連携ルールに基づいて実際に発生するイベントを監視し、イベント情報を収集する。そして収集したイベント情報を分析して実際に利用されたサービス間の連携を推定するものである。そのため、サービス連携におけるループ等の不整合を検出するために、テストデータの送信等を行う必要がなく、各種サービス単体やサービス連携を利用中のユーザに対してサービスの結果に影響を抑えることができる。よって、他のユーザへの影響を抑え、利用実態に合わせて複数の種類のサービス連携の管理を行なうことができる。
【００３６】
＜実施の形態２＞
本実施の形態２は、上述した実施の形態１の改良例である。まず、前記推定部は、前記複数のサービスのうち第１のサービスにおいて発生したイベント情報に含まれる第１の要素値と、その後に第２のサービスにおいて発生したイベント情報に含まれる第２の要素値とが一致する場合に、前記第１のサービスと前記第２のサービスの間の連携が前記利用中のものと推定する。これにより、複数のイベント情報からサービス間の連携の推定精度を高めることができる。
【００３７】
また、サービス連携管理装置は、前記推定されたサービス間の連携をサービス連携推定情報として記憶装置に格納する格納部をさらに備えるとよい。そして、サービス利用装置は、新たなサービス連携ルールの追加要求を受け付けた場合に、前記記憶装置から前記サービス連携推定情報を取得し、当該新たなサービス連携ルールの追加により前記データの流れにループが生じるか否かを判定し、前記ループが生じないと判定した場合に当該追加要求を許可し、前記ループが生じると判定した場合に当該追加要求を拒否する旨を要求元へ応答する追加判定処理を行なう追加判定部と、をさらに備えるとよい。これにより、サービス連携の試行をすることなく、ループとなり得るサービス連携の登録を未然に防ぐことができる。尚、本実施の形態２にかかるサービス連携管理システムとしては、前記追加判定部がサービス連携管理装置内に存在していても構わない。
【００３８】
さらに、前記追加判定部は、第１のサービス利用装置が第１のサービス連携ルールを利用中に、第２のサービス利用装置から第２のサービス連携ルールの追加要求を受け付けた場合に、前記追加判定処理を行なうことが望ましい。これにより、異なる企業間で実際に利用しているサービス連携ルールを開示することなく、実際に利用されているサービス連携に基づいて適切なサービス連携の追加を判断することができる。特に、一企業の単独では、利用しているサービス連携に問題がない場合であっても、他の企業への影響を与える場合を検出できるため、有益である。
【００３９】
また、前記推定部は、３以上のサービスについての連携を、前記複数のサービス連携ルールのうち利用中のものとして推定するとよい。これにより、複雑なサービスの連携の連鎖によるループについて検出でき、有益である。
【００４０】
図３は、本発明の実施の形態２にかかるサービス連携管理システム１０００の構成を示すブロック図である。サービス連携管理システム１０００は、サービス連携提供ネットワーク１０と、サービス提供企業Ｘ１ネットワーク２１と、サービス提供企業Ｘ２ネットワーク２２と、企業Ｙ１ネットワーク３１と、企業Ｙ１ネットワーク３２とを備え、それぞれインターネットＮを介して接続されている。
【００４１】
尚、サービス連携ルール群１１、連携ルール１１１及び１１２、サービス提供企業Ｘ１ネットワーク２１及びサービス提供企業Ｘ２ネットワーク２２、並びに、サービスＡ２１１及びサービスＢ２２１は、図９と同等であるため詳細な説明を省略する。尚、本実施の形態では、サービス連携ルール群１１に含まれる連携ルールは３以上であってもよい。また、サービスの種類の３以上であってよい。併せて、サービス提供企業も３以上であってもよい。また、１つのサービス提供企業が２以上のサービスを提供してもよい。尚、本実施の形態にかかる「サービス」とは、例えば、ＳＯＡＰ（Simple Object Access Protocol）を用いたＷｅｂサービス等が挙げられるが、これに限定されない。本実施の形態にかかるサービスは、提供元が所定のインタフェースを不特定多数に対して開示し、ネットワークを介した当該所定のインタフェースに基づくアクセスに対して特定のアプリケーション等の処理結果を提供するものであればよい。
【００４２】
サービス連携提供ネットワーク１０は、サービス連携ルール群１１に加え、サービス連携管理装置１２を備える。尚、サービス連携ルール群１１は、サービス連携管理装置１２内の記憶装置に保持されているか、サービス連携管理装置１２とは別のサーバ装置等により保持されているものとする。
【００４３】
サービス連携管理装置１２は、サービスＡ２１１及びサービスＢ２２１を含む複数のサービスの連携を管理するためのコンピュータ装置である。尚、サービス連携管理装置１２は、複数台のコンピュータ装置で実現しても構わない。サービス連携管理装置１２は、定められた一定期間毎に、次の処理を実行する。
（１）サービス連携ルール群１１内に登録済みの連携ルールを、予め取得しておく。
（２）（１）で取得した連携ルールに基づく全てのイベント情報を収集する。
（３）収集されたイベント情報を元に、データの流れを分析し、現在利用されているサービス連携を推定する。
上記（１）〜（３）の処理について以下の構成により説明する。
【００４４】
サービス連携管理装置１２は、イベント収集部１２１と、分析部１２２と、サービス連携推定情報保持部１２３とを備える。イベント収集部１２１は、上述した収集部１１０の一例である。まず、イベント収集部１２１は、一定の周期でサービス連携ルール群１１内に登録済みの連携ルールの全てを取得し、内部の記憶領域（不図示）に保存する。その後、イベント収集部１２１は、取得した連携ルール内に定義された各サービスを特定し、特定したサービスにより発生するイベントを特定する。そして、イベント収集部１２１は、特定した各サービスのＷｅｂＡＰＩ経由で、特定した各イベントを監視し、イベント発生時にイベント情報を収集し、内部の記憶領域に保存する。ここで、イベント情報は、ＸＭＬ（Extensible Markup Language）形式で得られるものとする。
【００４５】
図４は、本発明の実施の形態２にかかる地図情報データサービスにおけるイベント情報の例を示す図である。ここでは、地図情報データサービスにおけるあるイベントにおいては、要素「経度」、「緯度」及び「範囲」について各要素値が含まれることを示す。また、図５は、本発明の実施の形態２にかかる渋滞情報データサービスにおけるイベント情報の例を示す図である。ここでは、渋滞情報データサービスにおけるあるイベントにおいては、要素「経度」、「緯度」及び「取得範囲」について各要素値が含まれることを示す。
【００４６】
分析部１２２は、上述した推定部１２０及び格納部の一例である。分析部１２２は、予めイベント収集部１２１から各連携ルールのサービス連携におけるサービス間のデータの対応情報を取得し、内部の記憶領域（不図示）に保存する。ここで、サービス間のデータの対応情報とは、「トリガ：サービスＡ、アクション：サービスＢ」という連携において、サービスＡの要素Ａ−１の値とサービスＢの要素Ｂ−１の値が対応付けられ、サービスＡの要素Ａ−２の値とサービスＢの要素Ｂ−２の値が対応付けられる、という情報である。
【００４７】
図６は、本発明の実施の形態２にかかるサービス連携における要素間の対応情報の例を示す図である。ここでは、例えば、連携元の「地図情報データサービス」における要素「経度」、「緯度」及び「範囲」の各要素値と、連携先の「渋滞データサービス」における要素「経度」、「緯度」及び「取得範囲」の各要素値とが、それぞれ対応付けられていることを示す。
【００４８】
そして、分析部１２２は、イベント収集部１２１にて収集及び保存された各イベント情報をイベントが発生した時刻を加味してデータの流れを分析し、現在利用されているサービス連携の推定を行う。そして、分析部１２２は、推定されたサービス間の連携を示す情報をサービス連携推定情報保持部１２３に格納する。
【００４９】
サービス連携推定情報保持部１２３は、記憶装置の一例である。サービス連携推定情報保持部１２３は、分析部１２２により推定情報１２３１が格納される。推定情報１２３１は、分析部１２２により推定されたサービス間の連携を示すサービス連携推定情報である。
【００５０】
サービス連携装置３１３及び３２３は、第１及び第２のサービス利用装置の一例である。本実施の形態２にかかるサービス連携装置３１３はサービス連携追加判定部３１４をさらに備え、連携ルール３１２に基づくサービス連携が利用されている。サービス連携追加判定部３１４は、サービス連携装置３１３に新たなサービス連携ルールを追加する際に、推定情報１２３１を元に、対象のサービス連携を追加できるかどうかを判断する。すなわち、サービス連携追加判定部３１４は、新たなサービス連携ルールの追加要求を受け付けた場合に、サービス連携推定情報保持部１２３から推定情報１２３１を取得し、当該新たなサービス連携ルールの追加によりデータの流れにループが生じるか否かを判定し、ループが生じないと判定した場合に当該追加要求を許可し、ループが生じると判定した場合に当該追加要求を拒否する旨を要求元へ応答する追加判定処理を行なう。
【００５１】
また、本実施の形態２にかかるサービス連携装置３２３はサービス連携追加判定部３２４をさらに備えるものとする。サービス連携追加判定部３２４は、サービス連携追加判定部３１４と同等の処理を行なう。
【００５２】
図７は、本発明の実施の形態２にかかるサービス連携管理装置のサービス連携推定処理の流れを示すフローチャートである。尚、以下の例では、運送会社Ｙ１と運送会社Ｙ２があり、配送経路決定のため、地図情報を公開するサービスと渋滞情報を公開するサービスを利用する場合の動作の説明を行う。運送経路決定という観点で、地図情報データと渋滞情報データは密接に関連し、同時に取得するというニーズがあると考えられるためである。ここではすでに運送会社Ｙ１が、「トリガ：地図情報データサービス、アクション：渋滞情報データサービス」というサービス連携を利用しているものとする。
【００５３】
［ステップＳ１１］サービス連携ルール一覧取得
イベント収集部１２１は、イベント収集の対象となるサービスを決める必要がある。従って、イベント収集部１２１は、サービス連携ルール群１１として定義されているルール一覧を取得する。ここでは、イベント収集部１２１は、連携ルール１１１及び１１２を取得する。そして、分析部１２２は、予めイベント収集部１２１経由で各連携ルールのサービス間のデータの対応情報を取得しておく。尚、対応情報は、各連携ルールから抽出又は生成しても構わない。
【００５４】
この後、一定の時間間隔で［ステップＳ１２］〜［ステップＳ１４］を繰り返す。
【００５５】
［ステップＳ１２］サービスのイベント収集
イベント収集部１２１は、イベント収集対象のサービスのイベント取得用のＡＰＩを利用して、イベントを取得し、保持する。
【００５６】
［ステップＳ１３］ サービス連携推定
イベント収集部１２１が収集したイベント情報を元に、各種データ連携によって生じているデータフローを分析し、サービス連携の推定を行う。今、運送会社Ｙ１が、「トリガ：地図情報データサービス、アクション：渋滞情報データサービス」というサービス連携を利用している。しかし、このことをサービス連携管理装置１２は直接的には知らないという状態である。
【００５７】
この状態で、以下のようなデータフローの分析により、利用されているサービス連携を、間接的に推定する。
【００５８】
［ステップＳ１３１］
分析部１２２は、ある時刻ｔ１に地図情報データサービス及び渋滞情報データサービスのイベント発生有無を確認する。この時、地図情報データサービスのイベントを検知した場合、分析部１２２は、そのＸＭＬファイルから、渋滞情報データサービスと対応付けられた「経度」「緯度」及び「範囲」タグの値を取得する。仮にこれらの値がそれぞれｘ１、ｙ１、ｗ１であったとする。
【００５９】
［ステップＳ１３２］
分析部１２２は、次のイベント発生有無確認の時刻ｔ２に再度、地図情報データサービス及び渋滞情報データサービスのイベント発生有無を確認する。この時、分析部１２２は、渋滞情報データサービスのイベントを検知し、そのＸＭＬファイルから得られる情報が、ｘ１、ｙ１、ｗ１であった場合、このイベントはステップＳ３１で検知したイベントをトリガとして発生している、つまり、「トリガ：地図情報データサービス、アクション：渋滞情報データサービス」というサービス連携が利用されているということが推定できる。
【００６０】
［ステップＳ１４］サービス連携推定情報の保存
分析部１２２は、データフローの分析により推定されたサービス連携を推定情報１２３１としてサービス連携推定情報保持部１２３に保存する。具体的には、推定されるサービス連携を［連携元］から［連携先］というような形で保存しておく。上記のステップＳ３の例では［地図情報データサービス］から［渋滞情報データサービス］という情報を保持する。尚、この連携は２つのサービスに限らず、複数のサービスの連携についても表現できる。例えば、［サービスＡ］、［サービスＢ］、［サービスＣ］、［サービスＤ］の連携順序を推定情報としてもよい。
【００６１】
図８は、本発明の実施の形態２にかかるサービス連携装置の連携ルール追加処理の流れを示すフローチャートである。
【００６２】
［ステップＳ２１］ユーザによるサービス連携ルール追加要求の受付
サービス連携追加判定部３２４は、ユーザによるサービス連携ルールを新たに追加して利用するための追加要求を受け付けた場合、以下のステップＳ２２からＳ２６により、連携ルールの追加又は拒否を行う。
【００６３】
［ステップＳ２２］サービス連携推定情報の取得
サービス連携追加判定部３２４は、サービス連携管理装置１２のサービス連携推定情報保持部１２３から、現在の推定情報１２３１を取得する。
【００６４】
［ステップＳ２３］ループの追跡
サービス連携追加判定部３２４は、ステップＳ２２で取得した推定情報１２３１とステップＳ２１で受け付けた新たなサービス連携ルールとを用いて、以下の処理によりループの追跡を行なう。
【００６５】
サービス連携追加判定部３２４は、追加要求として受け付けたサービス連携ルールのうちトリガとして指定されたサービス及び要素値をアクションとするサービスが、推定情報１２３１の中に存在するか否かを判定する（Ｓ２３１）。また、サービス連携追加判定部３２４は、追加要求として受け付けたサービス連携ルールのうちアクションとして指定されたサービス及び要素値をトリガとするサービスが、推定情報１２３１の中に存在するか否かを判定する（Ｓ２３２）。そして、ステップＳ２３１及びＳ２３２を満たす１つのサービスが存在する場合、ループとなり得ると判定する（Ｓ２３３）。また、ステップＳ２３１及びＳ２３２を満たすサービスが異なる場合には、各サービスと連携するサービスを検索し、同一のサービスに辿り着く場合にも、ループとなり得ると判定する（Ｓ２３４）。
【００６６】
［ステップＳ２４〜Ｓ２６］ループの有無に基づき連携ルールの追加又は許否
サービス連携追加判定部３２４は、ステップＳ２３の結果、ループの有無を判定する（Ｓ２４）。ループが存在しない場合、サービス連携追加判定部３２４は、サービス連携装置３２３に追加要求されたサービス連携ルールを追加する（Ｓ２６）。一方、ループが存在する場合、サービス連携追加判定部３２４は、サービス連携装置３２３への新たなサービス連携ルールの追加をせず、その旨をユーザに通知する（Ｓ２５）。
【００６７】
例えば、仮に企業Ｙ２のユーザが新たに「トリガ：渋滞情報データサービス、アクション：地図情報データサービス」(企業Ｙ１で利用されている連携ルールと逆のルール)を追加するものとする。この場合、サービス連携がループすると判定され、新たなサービス連携ルールの追加は行われない。尚、企業Ｙ１と同じく、「トリガ：地図情報データサービス、アクション：渋滞情報データサービス」の追加であれば、ループが発生することがないため、追加される。
【００６８】
このように、本実施の形態２により、複数のサービス連携を管理する装置が、明示的にサービス連携ルールを知らされない場合においても、データのループを防止することが可能となる。
【００６９】
＜その他の実施の形態＞
尚、前記推定部が複数のサービス間の連携を推定した場合に、前記データの流れにループが生じるか否かを判定する判定部、をさらに備えてもよい。例えば、サービス連携管理装置内で、サービス連携の利用実態からループを検出できるため、ループを早急に特定し、対策を取ることができる。
【００７０】
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。
【００７１】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００７２】
１００  サービス連携管理装置
１１０  収集部
１２０  推定部
４１  イベント情報
４ｎ  イベント情報
１０００  サービス連携管理システム
１０  サービス連携提供ネットワーク
１１  サービス連携ルール群
１１１  連携ルール
１１２  連携ルール
１２  サービス連携管理装置
１２１  イベント収集部
１２２  分析部
１２３  サービス連携推定情報保持部
１２３１  推定情報
２１  サービス提供企業Ｘ１ネットワーク
２１１  サービスＡ
２２  サービス提供企業Ｘ２ネットワーク
２２１  サービスＢ
３１  企業Ｙ１ネットワーク
３１１  サービス連携装置
３１２  連携ルール
３１３  サービス連携装置
３１４  サービス連携追加判定部
３２  企業Ｙ１ネットワーク
３２１  サービス連携装置
３２３  サービス連携装置
３２４  サービス連携追加判定部
Ｎ  インターネット
【図１】
0006610081.tif 000002
【図２】
0006610081.tif 000003
【図３】
0006610081.tif 000004
【図４】
0006610081.tif 000005
【図５】
0006610081.tif 000006
【図６】
0006610081.tif 000007
【図７】
0006610081.tif 000008
【図８】
0006610081.tif 000009
【図９】
0006610081.tif 000010