(57)【要約】    【課題】  サービス間の連携関係を一括してつかさどるサービス連携サーバを置くことなく、個々のサービス提供者間の間でサービスの連携関係を導出する。    【解決手段】  サービス連携装置は、複数のサービス提供サーバ１０２、複数のエンドユーザクライアント１０３、１台のサービス記述オントロジサーバ１１０で構成される。サービス提供サーバ１０２は、サーバ提携関係保持手段１０３、サービス定義共有手段１０４、サービス定義保持手段１０５、サービス連携関係導出手段１０６等を有している。エンドユーザクライアント１０７は、サービスプロセス定義手段１０８、サービス検索手段１０９等を有している。個々のサービス提供サーバ１０２間に設定されたピア・ツー・ピアの連携関係をたどることによって、各サービス提供サーバ１０２内で定義されたサービスの接続インタフェースが共有され、もって、サービス間の連携関係を導出できる。【選択図】  図１
2005044158.tif 000002
【特許請求の範囲】
【請求項１】
それぞれサービス提供サーバ装置として機能する複数のコンピュータをネットワークを介して接続し上記複数のコンピュータが提供するサービスを連携させるサービス連携装置において、
上記複数のコンピュータの各々が、
当該コンピュータが提供する各サービスのサービス内容を記述したサービス定義を保持するサービス定義保持手段と、
上記サービス定義保持手段が保持するサービス定義に基づいてサービス間の連携関係を計算するサービス連携関係導出手段と、
他のサービス提供サーバ装置との連携関係の情報を保持する、サービス提供サーバ装置間提携関係保持手段と、
上記サービス提供サーバ装置間提携関係保持手段が保持する連携関係の情報に基づいて当該コンピュータと連携関係にある他のサービス提供サーバ装置との間でサービス定義を共有化するサービス定義共有手段とを有することを特徴とするサービス連携装置。
【請求項２】
上記複数のコンピュータの各々は、連携対象とするサービス定義の集合に対応するサービスコミュニティを保持するサービスコミュニティ保持手段を備え、さらに、上記サービス定義共有手段は、連携関係にある他のサービス提供サーバ装置のサービスコミュニティ保持手段が保持するサービスコミュニティに関する情報を共有し、上記サービス定義保持手段は、上記サービスコミュニティ保持手段が保持するサービスコミュニティに関連してサービスを公開する請求項１記載のサービス連携装置。
【請求項３】
上記サービスコミュニティ保持手段は、各サービスコミュニティに対してサービスを提供しているサービス提供サーバ装置の情報を保持しており、上記サービス提供サーバ装置間連携関係保持手段は、上記サービス定義共有手段によって共有されたサービスコミュニティの情報に基づいて、当該サービスコミュニティに対してサービスを提供している複数のサービス提供サーバ装置の間の連携関係を設定・保持する請求項２記載のサービス連携装置。
【請求項４】
上記サービス連携関係導出手段は、上記サービス定義保持手段が保持する複数のサービス定義を抽象化したサービス定義を自動的に生成し、連携対象のサービスとなるように、サービス定義保持手段に登録する請求項１、２または３記載のサービス連携装置。
【請求項５】
上記複数のコンピュータと別に設けられたコンピュータ、または上記複数のコンピュータのうちの１つが、サービス内容を定義する際に使用される業務を記述するための標準的な名前や標準的な操作名称を提供するサービスオントロジ提供手段を備え、上記複数のコンピュータの各々において、上記サービス定義保持手段は、サービスを定義する際、上記サービスオントロジ提供手段が提供する、業務の記述に使用する標準的な名前や操作名称を検索して利用する請求項１、２、３または４記載のサービス連携装置。
【請求項６】
上記複数のコンピュータとは別にエンドユーザ側に設けられたコンピュータが、
エンドユーザが定義する複数のサービスで形成される一連のプロセスを定義するサービスプロセス定義手段と、
上記サービスプロセス定義手段で定義されたプロセス中の各サービスを検索する検索要求を、サービス提供サーバ装置をなす上記複数のコンピュータの少なくとも１つに発行するサービス検索要求発行手段とを備え、
上記複数のコンピュータの各々は、
サービス検索要求発行手段から送られてくる検索要求に合致するサービスを、サービス定義保持手段が保持するサービス中から検索し、検索結果を上記エンドユーザ側に設けられたコンピュータに返し、該当するサービスが無い場合には、連携関係にある他のサービス提供サーバ装置に検索を依頼する手段を備える請求項１、２、３、４または５記載のサービス連携装置。
【請求項７】
それぞれサービス提供サーバ装置として機能する複数のコンピュータをネットワークを介して接続し上記複数のコンピュータが提供するサービスを連携させるサービス連携装置において、
上記複数のコンピュータの各々が、
当該コンピュータが提供する各サービスのサービス内容を記述したサービス定義を保持するサービス定義保持手段と、
他のサービス提供サーバ装置からの提携要求に基づいて当該サービス提供サーバ装置および上記他のサービス提供サーバ装置の間で相互に提携関係を生成する提携関係生成手段と、
他のサービス提供サーバ装置との連携関係の情報を保持する、サービス提供サーバ装置間提携関係保持手段と、
上記サービス提供サーバ装置間提携関係保持手段が保持する連携関係の情報に基づいて当該コンピュータと連携関係にある他のサービス提供サーバ装置との間でサービスの情報を共有化するサービス情報共有手段とを有することを特徴とするサービス連携装置。
【請求項８】
サービスを提供するサービス提供サーバ装置であって他のサービス提供サーバ装置とともにネットワークに接続され当該サービス提供サーバ装置が提供するサービスと上記他のサービス提供サーバ装置が提供するサービスとを連携させるサービス提供サーバ装置において、
当該コンピュータが提供する各サービスのサービス内容を記述したサービス定義を保持するサービス定義保持手段と、
上記サービス定義保持手段が保持するサービス定義に基づいてサービス間の連携関係を計算するサービス連携関係導出手段と、
他のサービス提供サーバ装置との連携関係の情報を保持する、サービス提供サーバ装置間提携関係保持手段と、
上記サービス提供サーバ装置間提携関係保持手段が保持する連携関係の情報に基づいて当該コンピュータと連携関係にある他のサービス提供サーバ装置との間でサービス定義を共有化するサービス定義共有手段とを有することを特徴とするサービス提供サーバ装置。
【請求項９】
それぞれサービス提供サーバ装置として機能する複数のコンピュータをネットワークを介して接続し上記複数のコンピュータが提供するサービスを連携させるサービス連携方法であって、
上記複数のコンピュータの各々において、
当該コンピュータが提供する各サービスのサービス内容を記述したサービス定義を保持するサービス定義保持ステップと、
上記サービス定義保持ステップにより保持するサービス定義に基づいてサービス間の連携関係を計算するサービス連携関係導出ステップと、
他のサービス提供サーバ装置との連携関係の情報を保持する、サービス提供サーバ装置間提携関係保持ステップと、
上記サービス提供サーバ装置間提携関係保持ステップにより保持する連携関係の情報に基づいて当該コンピュータと連携関係にある他のサービス提供サーバ装置との間でサービス定義を共有化するサービス定義共有ステップとを有することを特徴とするサービス連携方法。
【請求項１０】
それぞれサービス提供サーバ装置として機能する複数のコンピュータをネットワークを介して接続し上記複数のコンピュータが提供するサービスを連携させるために用いられるコンピュータプログラムであって、
当該コンピュータが提供する各サービスのサービス内容を記述したサービス定義を保持するサービス定義保持ステップと、
上記サービス定義保持ステップにより保持するサービス定義に基づいてサービス間の連携関係を計算するサービス連携関係導出ステップと、
他のサービス提供サーバ装置との連携関係の情報を保持する、サービス提供サーバ装置間提携関係保持ステップと、
上記サービス提供サーバ装置間提携関係保持ステップにより保持する連携関係の情報に基づいて当該コンピュータと連携関係にある他のサービス提供サーバ装置との間でサービス定義を共有化するサービス定義共有ステップとをコンピュータに実行させるために用いられることを特徴とするサービス連携用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共同作業支援、より詳細には、ネットワーク上に公開されるサービスを連携して一連のサービスプロセスを形成する技術に関する。なお、サービスとしては、ＡＳＰ等によって提供されるオンラインのアプリケーション、各種情報アプライアンスが提供するアプリケーションなど、ネットワークを介して提供されるすべてのサービスを含む。
【背景技術】
【０００２】
近年、インターネットの普及に伴い、ネットワークを介してサービスを提供するＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）や、ネットワーク上に提供されるサービスを相互に連携するための標準技術として、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）をベースにしたＵＤＤＩ（Ｕｎｉｖｅｒｓａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ，  Ｄｉｓｃｏｖｅｒｙ  ａｎｄ  Ｉｎｔｅｇｒａｔｉｏｎ）、ＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）等の標準で構成されるＷｅｂサービス技術が進展してきている。そして、このような技術トレンドとともに、従来、インターネット上に提供されるサービスを連携して一連のサービスプロセスを構成する技術が、いくつか提案されてきている。
【０００３】
それらの技術には、まず、特許文献１〜６などで示されているように、ネットワーク上に提供されている複数のサービスを連携するための「業務連携サーバ」を個々のサービスと独立した形でネットワーク上に配置し、その業務連携サーバを介して、適切なサービスをユーザに提供する方式がある。しかしながら、インターネットのようなオープンな環境で、企業間にまたがるサービス連携を実現することを想定した場合、この「業務連携サーバ」は、それぞれのサービス提供者の利害関係が及ばない中立的な立場で運用する必要が生じる。このため、このような業務連携サーバは、第三者的な機関によるか、参加する企業間が合意した形で運営しなければならず、このことは、運用上の障壁となる。
【０００４】
また、特許文献７〜９で示されているように、エンドユーザの要求に基づいて、ネットワーク上に広く提供されているサービスを検索して一連のプロセスを生成し、そのプロセスを構成するサービス間で処理を受け渡しながらサービスの提供をすすめてゆく方法がある。しかしながら、これらの特許出願で提案されている方式では、サービス連携がエンドユーザ側で指定された連携関係に基づいて行われるため、サービス提供者間で業務上の信頼関係がない場合であっても業務処理の受け渡しを行わなければならないということになり、企業間でのサービス連携に適用した場合、実際の業務の受け渡しができないという場合が発生することが予想される。
【０００５】
また、特許文献１０に示されているように、固定的な接続インタフェースの集合から連携関係を照合するのではなく、段階的に追加されるサービスに対して、並列に照合を行い、連携関係を計算する方式がある。この方式は、連携関係を導出する際に計算対象となる接続インタフェースの集合を特定する必要がなく、段階的な追加や削除が可能であるという点で、インターネットのような開放環境で業務連携の処理を分散することができる。しかしながら、この方式においても、連携対象とするサービスの接続インタフェースの集合を何らかの方法で特定しなければ、実際には意味を持たない連携関係までも導出されてしまう可能性がある。
【０００６】
また、特許文献１１〜１３で示されているように、企業や部門で個々に管理されている業務プロセス同士を、共通の記述形式の連携インタフェースに基づいて接続する方式が提案されている。この方式は、企業間や部門間での業務処理の受け渡しを可能にするが、企業間や部門間での業務の連携関係の導出は取り扱っていない。
【特許文献１】特開平１０−４９４７１号公報
【特許文献２】特開平１０−２３２２８９９号公報
【特許文献３】特開平１１−１５８４９号公報
【特許文献４】特開平１１−２１２９１１号公報
【特許文献５】特開２００２−１５００３４
【特許文献６】特開２００２−３２４１２３
【特許文献７】特開平８−２４９２９０号公報
【特許文献８】特開平８−３１４８７２号公報
【特許文献９】特開２００２−１９６９２６
【特許文献１０】特開２００１−２０２４０８
【特許文献１１】特開平１１−２３８０９０
【特許文献１２】特開２００１−３２５４１３
【特許文献１３】特開２００２−１０８６３２
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、以上の事情を考慮してなされたものであり、例えば、インターネット上に提供されるさまざまな企業が提供するサービスを連携することを可能にする基盤アーキテクチャを実現するものであり、上記の従来技術で述べたような未解決の課題に対処するため、サービス間の連携関係を一括してつかさどる「サービス連携サーバ」を置くことなく、個々のサービス提供者間の間に設定される提携関係のネットワーク上でサービスの連携関係を導出することを可能にする非集中型のサービス連携アーキテクチャを実現することを目的としている。
【０００８】
また、サービス連携を行う際には、パブリックオープンに提供されるサービス間の連携、ある特定の企業間だけに限定されたサービス連携、ある部門内に限定されたサービス連携、ある部屋の中で利用可能なサービスに限定したサービス連携など、さまざまな範囲のレベルで連携対象となるサービス群を制御する必要があると考えられる。このため、本発明の具体的な側面では、このような連携対象とするサービス集合をさまざまな範囲のレベルで制御できるようにすることを目的としている。
【課題を解決するための手段】
【０００９】
この発明によれば、上述の目的を達成するために、特許請求の範囲に記載のとおりの構成を採用している。
【００１０】
本発明は、例えば、ネットワーク上に公開されているさまざまな企業が提供するサービス提供サーバをピアとして、ピア・ツー・ピア型のサービス連携を可能にする基盤アーキテクチャに関するものである。ここでは、従来技術のように、複数のサービスの連携関係を一括して計算する「サービス連携用サーバ」を置く集中型のアーキテクチャではなく、利害関係が異なる企業間をまたがるサービス連携を可能にするため、それぞれのサービス提供サーバが対等の立場で互いに接続されてピア・ツー・ピアのネットワークを構成し、その関係の中で各サービス提供サーバにおいて連携関係が並列的に計算される非集中型のアーキテクチャを提案する。（従来のような集中型のアーキテクチャで企業間のサービス連携を実現するためには、連携関係を導出する機構を第三者的な機関によって運営する必要があった。）
【００１１】
具体的な構成では、各サービス提供サーバ装置（サーバコンピュータ。以下では単にサーバという）について、サービスの内容を記述した「サービス定義」が、ＸＭＬ文書の形式でネットワーク上に公開される。なお、ここで、サービス定義は、「操作対象」と「操作」を単位として表現されるアクティビティを単位として一連のプロセスを構成する形式として定義される。
【００１２】
また、サービス提供サーバ間には、相互の信頼関係に基づいて提携関係が結ばれ、ピア・ツー・ピア型のネットワークを構成する。また、サービス提供サーバ間に設定される提携関係は、「サービスコミュニティ」という単位で管理され、個々のサービスコミュニティ内でサービス定義の共有が行われる。なお、「サービスコミュニティ」は複数のサービス定義で構成されるが、サービス定義の追加は、各サービスコミュニティに与えられたクレデンシャルがサービスコミュニティと加入するサービスとの間で交換されて確認が行われた上で実施される。なお、「サービスコミュニティ」は、任意のサービス提供サーバ上で生成することが可能であり、個々のサービスコミュニティについて、当該サービスコミュニティを構成するサービス定義を提供しているサービス提供サーバのアドレスが保持される。そして、サービス提供サーバ間で提携関係が結ばれ、サービスコミュニティに対してサービス定義が提供されると、当該、サービスコミュニティが保持している他のサービス提供サーバとの間にも当該提携関係にあるサービス提供サーバとの提携関係が自動的に設定され、これによって、サービス提供サーバが構成するピア・ツー・ピアネットワークの結合密度を向上させ、系全体としての信頼性の向上を図ることができる。
【００１３】
各サービス提供サーバでは、サービスコミュニティを単位として、各サービスコミュニティを構成するサービス定義に基づいてサービス間の連携関係が計算される。連携関係の計算は、一定の時間間隔で実行されてもよいし、新たなサービスが追加された際にサーバ間で通知しあうことによって実行されてもよい。サービス定義には、当該サービスを提供する上で他に依頼するサービスの記述も含まれる。他に依頼するサービスが発見されると、そのサービス内容を提供可能なサービスの候補が、サービスコミュニティ内で検索され、提供可能なサービスが発見されると連携関係が設定される。また、連携関係を計算する際に、複数サービスを統合したサービスをひとつのサービスとして抽象化がなされ、ひとつの仮想的な連携対象のサービスとして扱われる。
【００１４】
サービス利用者は、任意のサービス提供サーバに対してサービスの依頼を行う。すると、そのサービス提供サーバが参加しているサービスコミュニティ内で導出されている連携候補が検索され、所望のサービスを提供する連携関係が提供される。
【００１５】
このような構成では、利害関係が異なる企業間においてサービスの連携を行う際に、サービス間の連携を一括してつかさどるサービス連携サーバ（コーディネーションサーバ）を置くことなく、個々の企業が管理するサービス提供サーバを対等に接続することによって、非集中型のサービス連携を可能にする。すなわち特定のサーバがサービスの連携関係を計算する方式ではなく、個々のサービス提供側で他のサービスとの連携関係を計算して連携を可能にする。
【００１６】
ネットワーク上に提供されるサービス群との間で連携関係を設定する場合、連携対象とするサービス群の範囲を、「サービスコミュニティ」という単位を用いることによって制御することができる。このため、連携対象の規模を、完全にパブリックオープンな範囲から、信頼関係を結んでいるサービス提供者間との間に至るまでの幅広いレンジの間で特定できるとともに、サービス間の連携関係を計算する際の計算爆発（全世界中で提供されるサービス群の間に連携関係を設定する計算を行うことは難しい）を回避することができる。
【００１７】
サービス間の連携関係の計算が、複数のサービス提供サーバに分散されるため、系全体としての信頼性を高めることができる。（一種のグリッドコンピューティングを実現する。）
【００１８】
さらに、一例として図１を参照しながら本発明を説明する。
【００１９】
本発明は、上述の目的を達成するために、複数のサービス間の連携をつかさどる単一のサービス連携用サーバを置かず、個々のサービス間に設定されるピア・ツー・ピアの関係が形成するネットワーク構成に基づいて、サービス間の連携を可能にする非集中型のサービス連携を実現することを前提とする。
【００２０】
本発明の一側面によれば、それぞれサービス提供サーバ装置１０２として機能する複数のコンピュータをネットワーク１０１を介して接続し上記複数のコンピュータが提供するサービスを連携させるサービス連携装置において、上記複数のコンピュータの各々が：当該コンピュータが提供する各サービスのサービス内容を記述したサービス定義を保持するサービス定義保持手段（１０５）と；上記サービス定義保持手段が保持するサービス定義に基づいてサービス間の連携関係を計算するサービス連携関係導出手段（１０６）と；他のサービス提供サーバ装置との連携関係の情報を保持する、サービス提供サーバ装置間提携関係保持手段（１０２）と；上記サービス提供サーバ装置間提携関係保持手段が保持する連携関係の情報に基づいて当該コンピュータと連携関係にある他のサービス提供サーバ装置との間でサービス定義を共有化するサービス定義共有手段（１０４）とを有するようにしている。
【００２１】
この構成においては、中央にサービス連携用のサーバを置くことなく、個々のサービス提供サーバ間に設定されたピア・ツー・ピアの連携関係をたどることによって、各サービス提供サーバ内で定義されたサービスの接続インタフェースが共有され、それらをもとに、サービス間の連携関係を導出することが可能になる。
【００２２】
この構成において、上記複数のコンピュータの各々が、連携対象とするサービス定義の集合に対応するサービスコミュニティを保持するサービスコミュニティ保持手段を備え、さらに、上記サービス定義共有手段は、連携関係にある他のサービス提供サーバ装置のサービスコミュニティ保持手段が保持するサービスコミュニティに関する情報を共有し、上記サービス定義保持手段は、上記サービスコミュニティ保持手段が保持するサービスコミュニティに関連してサービスを公開するようにしてもよい。
【００２３】
サービスコミュニティは上述のとおりサービスの連携関係の単位であり、具体的には、１まとまりの連携関係にあるサービス提供サーバにより構成される。サービスコミュニティの概念を導入することにより１つのサービス提供サーバが複数のサービスコミュニティに参加可能になる。
【００２４】
このようにすると、サービス提供サーバ間に設定される連携関係を「サービスコミュニティ」と呼ぶ単位で管理し、サービス提供サーバが、さまざまなグループに所属し、それら各グループ内を連携対象の範囲としてサービス連携を行うことができる。これによって、さまざまな信用範囲でのサービス連携が可能になる。
【００２５】
また、この場合、上記サービスコミュニティ保持手段が、各サービスコミュニティに対してサービスを提供しているサービス提供サーバ装置の情報を保持しており、上記サービス提供サーバ装置間連携関係保持手段は、上記サービス定義共有手段によって共有されたサービスコミュニティの情報に基づいて、当該サービスコミュニティに対してサービスを提供している複数のサービス提供サーバ装置の間の連携関係を設定・保持するようにしてもよい。
【００２６】
このようにすると、サービス提供サーバ間に設定されるピア・ツー・ピアの連携関係を、より系全体として信頼性の高いネットワークにすることを可能にする。すなわち、サービスコミュニティを形成するネットワークの結合関係をより、メッシュ状に近づけることになるため、あるサービス提供サーバがダウンしている場合においても、他のサービス提供サーバを経由してサービス提供サーバ間で情報を共有することが可能になる。
【００２７】
また、上記サービス連携関係導出手段が、上記サービス定義保持手段が保持する複数のサービス定義を抽象化したサービス定義を自動的に生成し、連携対象のサービスとなるように、サービス定義保持手段に登録するようにしてもよい。
【００２８】
この場合、定義されたサービスに加えて、複数のサービスを連携した結果形成されるサービスをひとつのサービスとして連携対象にすることが可能になる。
【００２９】
また、上記複数のコンピュータと別に設けられたコンピュータ、または上記複数のコンピュータのうちの１つが、サービス内容を定義する際に使用される業務を記述するための標準的な名前や標準的な操作名称を提供するサービスオントロジ提供手段を備え、上記複数のコンピュータの各々において、上記サービス定義保持手段は、サービスを定義する際、上記サービスオントロジ提供手段が提供する、業務の記述に使用する標準的な名前や操作名称を検索して利用するようにしてもよい。
【００３０】
この場合、サービス定義の内容に関して、共通の単語を用いて記述されるため、サービスの連携関係を算出する際のサービス定義の照合が容易になるとともに、同意語辞書や概念の抽象関係に基づく辞書を持つことにより、意味のばらつきや抽象関係による違いを吸収することが可能になる。
【００３１】
さらに、上記複数のコンピュータとは別にエンドユーザ側に設けられたコンピュータが、エンドユーザが定義する複数のサービスで形成される一連のプロセスを定義するサービスプロセス定義手段と、上記サービスプロセス定義手段で定義されたプロセス中の各サービスを検索する検索要求を、サービス提供サーバ装置をなす上記複数のコンピュータの少なくとも１つに発行するサービス検索要求発行手段とを備え、上記複数のコンピュータの各々が、サービス検索要求発行手段から送られてくる検索要求に合致するサービスを、サービス定義保持手段が保持するサービス中から検索し、検索結果を上記エンドユーザ側に設けられたコンピュータに返し、該当するサービスが無い場合には、連携関係にある他のサービス提供サーバ装置に検索を依頼する手段を備えるようにしてもよい。
【００３２】
この場合、サービスの提供を受けようとするエンドユーザに対して、サービス提供サーバのネットワークが提供する一連のプロセスで構成されるサービスを提供することが可能になる。
【００３３】
なお、この発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品もこの発明の技術的な範囲に含まれることも当然である。
【００３４】
この発明の上述の側面および他の側面は特許請求の範囲に記載され以下実施例を用いて詳述される。
【発明の効果】
【００３５】
この発明によれば、サービス間の連携を一括してつかさどるサービス連携サーバ（コーディネーションサーバ）を置くことなく、単にサービス提供サーバを対等に接続することによって、非集中型のサービス連携を可能にする。
【００３６】
より具体的な構成においては、ネットワーク上に提供されるサービス群との間で連携関係を設定する場合、連携対象とするサービス群の範囲を、「サービスコミュニティ」という単位を用いることによって制御することができる。このため、連携対象の規模を、完全にパブリックオープンな範囲から、信頼関係を結んでいるサービス提供者間との間に至るまでの幅広いレンジの間で特定できるとともに、サービス間の連携関係を計算する際の計算爆発（全世界中で提供されるサービス群の間に連携関係を設定する計算を行うことは難しい）を回避することができる。
【００３７】
同様に具体的な構成においては、サービス間の連携関係の計算が、複数のサービス提供サーバに分散されるため、系全体としての信頼性を高めることができる。（一種のグリッドコンピューティングを実現する。）
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施例について図を用いて詳細に説明する。
【００３９】
［原理的な構成］
図１は、本発明によるサービス連携装置の原理的な構成を概略的に示すものであり、図１において、サービス連携装置は、ネットワーク１０１に接続された複数のサービス提供サーバ１０２、複数のエンドユーザクライアント１０３（図では１つしか示さないが通常複数ある）、１台のサービス記述オントロジサーバ１１０で構成される。サービス提供サーバ１０２は、サーバ提携関係保持手段１０３、サービス定義共有手段１０４、サービス定義保持手段１０５、サービス連携関係導出手段１０６等を有している。エンドユーザクライアント１０７は、サービスプロセス定義手段１０８、サービス検索手段１０９等を有している。サービス記述オントロジサーバ１１０はサービスオントロジ提供手段１１１等を有している。
【００４０】
各サービス提供サーバ１０２は、後に図２以降を用いて説明するように、具体的には、図３に示すような、サービスサーバデータ３０１、サービスデータ３０２、サービスコミュニティデータ３０３、サービス内容記述データ３０４、活動インタフェース記述データ３０５、プロセス記述要素データ３０６等を保持している。
【００４１】
サーバ連携関係保持手段１０３は、サービスサーバデータ３０１の連携サーバ集合データを保持するものである。場合によっては、サーバ連携関係保持手段１０３は、このサービスコミュニティデータ３０３の所属サービス提供サーバ集合データの情報を保持するものでもよい。
【００４２】
サービス定義共有手段１０４は、連携関係にあるサービス提供サーバ１０２間で例えば図６に示すサービスコミュニティメッセージ６０２を用いてサービス定義（サービスＩＤのみでもよい）を共有化するものである。
【００４３】
サービス定義保持手段１０５は、当該サービス提供サーバ１０２が提供するサービスのサービス定義を保持するものであり、具体的には、図３に示すサービスデータ３０２、サービス内容記述データ３０４、活動インタフェース記述データ３０５、プロセス記述要素データ３０６等を保持するものであるが、これに限定されない。
【００４４】
サービス連携関係導出手段１０６は、サービスと他のサービスとの連携関係を計算し、所定の条件を満たすときに連携関係があると判別するものである。とくに新たなサービスが導入されたときに行われるが、異なる条件下での再計算等、既存のサービスに関しても行う場合もあり得る。
【００４５】
サービス記述オントロジサーバ１１０のサービスオントロジ提供手段１１１は、例えば図１１に示すようなサービスに関する意味の情報を提供する。
【００４６】
この構成においては、中央にサービス連携用のサーバを置くことなく、個々のサービス提供サーバ１０２間に設定されたピア・ツー・ピアの連携関係をたどることによって、各サービス提供サーバ１０２内で定義されたサービスの接続インタフェースが共有され、それらをもとに、サービス間の連携関係を導出することが可能になる。
【００４７】
以上の構成は以下の実施例の構成によりより明瞭に理解される。
【００４８】
［実施例の構成］
図２は、本発明によるサービス連携装置のより具体的な構成例を示す構成図である。図２の例では、サービス連携装置が、ネットワーク２０１に接続された複数のサービス提供サーバ２０２、複数のエンドユーザクライアント２０３、１台のサービス記述オントロジサーバ２０４で構成される。
【００４９】
ここで、サービス提供サーバ２０２とサービス記述オントロジサーバ２０４には、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバがインストールされており、本発明を実現する上でＸＭＬの形式で表現されるデータをネットワーク上に公開することができる。また、本システムは、Ｊａｖａ（商標）プラットフォーム上に実現され、エンドユーザのクライアント側２０３では、サービス提供サーバ２０２が提供するサービス検索実行のためのアプレットを実行することができ、また、サービス提供サーバ２０２では、サービス提供オントロジサーバ２０４が提供するオントロジ検索用のアプレットを実行することができる。
【００５０】
また、本発明の実施例における処理の中で取り扱われるデータオブジェクトのデータ構造を一例として図３に示す。これらのデータは、サービス提供サーバ２０２にそれぞれ保持され、すべて、サービス提供サーバ２０２で管理される。これらデータは具体的にはサービスサーバデータ３０１、サービスデータ３０２、サービスコミュニティデータ３０３、サービス内容記述データ３０４、活動インタフェース記述データ３０５、プロセス記述要素データ３０６である。
【００５１】
サービスサーバデータ３０１は、サービス集合、サービスコミュニティ集合、連携サーバ集合等を記述する。サービスデータ３０２は、サービス名、インタフェースアドレス、所属コミュニティ集合、サービス窓口アドレス、サービス内容等を記述する。サービスコミュニティデータ３０３は、コミュニティ名、所属サービス提供サーバ集合、クレデンス（認証コード）等を記述する。サービス内容記述データ３０４は、活動インタフェース記述、プロセス記述等を含む。活動インタフェース記述データ３０５は、操作対象集合、操作名、提供サービスアドレス、被提供サービスアドレス集合等を記述する。プロセス記述要素データ３０６は、先行活動集合、サブ活動集合等を記述する。
【００５２】
［サービス提供サーバ間の提携関係設定処理］
サービス提供サーバ２０２間の提携は一方のサービス提供サーバ２０２（提携依頼元）から他方のサービス提供サーバ２０２（提携依頼先）へ提携要求メッセージを送出して行われる。提携依頼元の処理は図４の処理４０１に示されるとおりであり、提携依頼先での処理は図４の処理４０２に示されるとおりである。図４の記載自体は図から明らかであるのでとくに説明しない。
【００５３】
サービス提供サーバ２０２は、ネットワークに接続されている任意の他のサービス提供サーバと２０２の間に提携関係を結ぶことができる。ただし、提携関係を結ぶためには、提携関係を依頼する側が、認証するためのクレデンスを事前に提携先からオフラインによって取得しておく必要がある。
【００５４】
連携依頼元となるサービス提供サーバ２０２では、連携依頼先となるサービス提供サーバ２０２に対して、「提携要求メッセージ６０１」（図６）に示すようなＸＭＬの形式で表現されたメッセージを送信する。
【００５５】
一方、提携要求メッセージ６０１を受信した提携依頼先のサービス提供サーバ２０２では、当該提携要求メッセージ中６０１に含まれているクレデンスが、予めオフラインで通知しておいたクレデンスから算出される値と同一であるかどうか確認する。そして、もし、正しい場合は、当該連携要求元のサービス提供サーバ２０２との間で提携関係を結び、サービスコミュニティに関する情報を、ＸＭＬの形式をした「サービスコミュニティ共有メッセージ」６０２（図６）として、提携依頼元となるサービス提供サーバに通知する。なお、この「サービスコミュニティ共有メッセージ」６０２には、当該連携先となるサービス提供サーバが保持している全サービスコミュニティの名前と、それら個々のサービスコミュニティを構成するサービスのアドレスが含まれている。
【００５６】
提携依頼元では、提携依頼先から返信されてくるＸＭＬの形式をした「サービスコミュニティ共有メッセージ」６０２中に含まれているサービスコミュニティ情報を計算機上で扱えるデータオブジェクトの形式に変換して保存する。またさらに、本来、提携依頼元のサービス提供サーバが保持していたサービスコミュニティに関する情報を、「サービスコミュニティ共有メッセージ」６０２の形式に変換し、提携依頼先のサービス提供サーバに送信する。この結果、提携関係を結んだ２つのサービス提供サーバ間で、サービスコミュニティに関する情報が共有される。
【００５７】
一方、新しいサービスコミュニティは、任意のサービス提供サーバ上で、図１４に示すような概観をしたサービス定義ウィンドウ１４０１のサービスコミュニティ一覧ビュー１４０２上でポップアップメニュー１４０３から「新規登録」を選択することにより、ユーザが独自に追加することが可能であり、このようにして追加された新しいサービスコミュニティに関する情報は、上記のようなサービス提供サーバ間の連携によって伝播してゆく。
【００５８】
［サービスの追加処理］
サービスの追加が行われたときにはサービスを追加したサービス提供サーバ２０２において図５の処理５０１が行われ、提携先のサービス提供サーバ２０２において図５の処理５０２が行われる。図５の記載自体は図から明らかであるのでとくに説明しない。
【００５９】
サービスは、各サービス提供サーバ２０２上で、図１４に示すような概観のサービス定義ウィンドウ１４０１を通じて定義される。新たなサービスを定義する際、ユーザは、まず、サービスを登録させるサービスコミュニティを、サービスコミュニティ名一覧ビュー１４０２上で選択して指定する。そして、サービス名一覧ビュー１４０４上で表示可能なサービス名一覧ポップアップメニュー１４０５上で「新規登録」を選択する。すると、サービス登録用の新規サービス登録ウィンドウ１４１０がオープンする。
【００６０】
新規サービス登録ウィンドウ１４１０上では、サービスの内容を、操作対象名（「何を」に相当）と操作名（「どうする」に相当）によって指定する。これらの名前は、サービス記述オントロジサーバ２０４が保持しているオントロジに基づいて指定され、それらは、操作名オントロジ１１０１、操作対象名オントロジ１１０２（それぞれ図１１参照）に示すような、概念の抽象度に基づいて階層構造を構成するキーワード集合として表現されている。ユーザが、新規サービス登録ウィンドウ１４１０上の選択ボタン１４１１を選択すると、サービス記述オントロジサーバ２０４から操作名オントロジ１１０１が獲得され、選択ウィンドウ１４１７のオントロジビュー１４１８上に、操作名オントロジ１０１１が階層的に表示される。そして、ユーザがそれらの中から、適切な操作名を指定して「選択」ボタン１４１９を押すと、その操作名が指定されたことになる。「キャンセル」ボタン１９２０により以上の処理をキャンセルすることもできる。また、同様にして、新規サービス登録ウィンドウ１４１０上で、選択ボタン１４１２や選択ボタン１４１３を押すと、同様の処理が行われて、サービス記述オントロジサーバ２０４から操作対象名オントロジ１１０２が獲得され、それらの中から該当する操作対象名を選択して指定する。
【００６１】
一方、上記で定義された新しいサービスを構成するサービス群は、プロセスビュー（前後関係）１４０６、および、プロセスビュー（サブタスク関係）１４０８を通じて指定される。ここで、プロセスビュー（前後関係）１４０６は、サービスを構成する複数のサービスに関する順序関係の指定を行うものであり、プロセスビュー（サブタスク関係）１４０８は、サービスを構成する複数のサービスに関するタスク・サブタスク関係の指定を行うものである。これらのサービスも、上記と同様の新規サービス登録ウィンドウ１４１０を、ポップアップメニュー１４０７やポップアップメニュー１４０９からオープンすることによって指定される。
【００６２】
上記のようにして定義されたサービスは、図８に示すようなＸＭＬの形式（公開サービス情報８０１）に変換され、サービス提供サーバが備えているＨＴＴＰサーバによって、ネットワーク上に公開される。（他のサービス提供サーバから当該サービスに関する情報へのアクセスが可能になる。）
【００６３】
一方、上記のようにして定義されたサービスが、サービスコミュニティに追加されると、当該サービス提供サーバにおいて図５の処理５０１が行われる。すなわち、そのサービスコミュニティに関して提携関係にあるサービス提供サーバが、サービスコミュニティ２０３の「所属サービス提供サーバ集合」から取り出され、それらのサービス提供サーバに対して、当該サービスが追加されたことが、サービスコミュニティ共有メッセージ６０２の形で送信される。
【００６４】
上記の処理５０１によって、新たなサービスが追加されたサービス提供サーバ２０２から送信されたサービスコミュニティ共有メッセージ６０２を受信したサービス提供サーバ２０２では、図５の処理５０２に示すように、メッセージ中に含まれているサービスコミュニティに関する情報に基づいて、それぞれが保持しているサービスコミュニティデータ３０３を更新するとともに、以下に示す処理手順に従ってサービス間の連携関係の計算を開始する。
【００６５】
［サービス間の連携関係導出処理］
サービス間の連携関係の計算は、各サービス定義に含まれるプロセス中の被提供サービスに関して、その活動記述に指定された操作対象と操作名が比較されることによって行われる。これは例えば図７に示すような処理７０１、７０２により行われる。図５の記載自体は図から明らかであるのでとくに説明しない。
【００６６】
操作名と操作対象の包含関係は、サービス指定オントロジサーバが保持するオントロジに基づいて判断される。以下のような条件が満足される場合、被提供サービスＡと提供サービスＢとの間に連携関係が設定可能であると判定される。（なお、ここでａ＜ｂは、オントロジ中のキーワードａの抽象度が、キーワードｂの抽象度よりも狭義、つまり、階層関係の下位に所属することを示す。）
【００６７】
条件１）  被提供サービスＡの操作名＜＝提供サービスＢの操作名
条件２）  被提供サービスＡの入力操作対象名＜＝提供サービスＢの入力操作対象名
条件３）  被提供サービスＡの入力操作対象名の集合⊆提供サービスＢの入力操作対象名の集合
条件４）  被提供サービスＡの出力操作対象名＜＝提供サービスＢの出力操作対象名
条件５）  被提供サービスＡの出力操作対象名の集合⊆提供サービスＢの出力操作対象名の集合
【００６８】
連携関係の設定が可能であると判断されると、活動インタフェース記述中３０５の被提供サービスアドレス集合に、当該連携可能なサービスのＵＲＬが追加・保存され、それらサービス間に連携関係が設定される。なお、サービス間の連携関係は、活動インタフェース記述データ３０５中の「被提供サービスアドレス集合」に追加され、保持される。
［合成サービスの導出処理］
【００６９】
各サービス提供サーバ２０２では、一定時間おきに、各サービス提供サーバ２０２が保持しているサービスコミュニティを単位に、合成サービスの計算を行う。これは例えば図９に示すような処理９０１により行われる。図９の記載自体は図から明らかであるのでとくに説明しない。
【００７０】
合成サービスの導出は、図１２に示すようなサービス合成ルール１２０１に基づいて行われる。ここでは、各サービスコミュニティ内に登録されている２つのサービスの組み合わせすべてに対して、合成ルールのパターンに合致するかどうかが検査され、合致すると判断された場合には、新しいサービスが、上述した新規サービスの定義と同じ手順に従って追加される。なお、ここで導出された新しいサービスは、他のサービスと同様、連携対象のサービスとしても扱われることになる。
【００７１】
［サービスの検索と実行の処理］
サービスの検索と実行は例えば図１０に示すような処理１００１により行われる。図１０の記載自体は図から明らかであるのでとくに説明しない。
【００７２】
サービスの提供を受けるユーザは、図１５に示すようなサービス検索・依頼用のユーザインタフェース画面を通じて、所望するサービスの検索を行う。ここでは、サービスを定義する場合と同様、操作名と操作対象を「選択」ボタン１５０２、１５０４、１５０５により指定し、「検索」ボタン１５０３を押すことによって検索を実行する。検索は、当該サービス提供サーバ中の全サービスコミュニティに登録されているサービス（サービスＡ）の活動インタフェースで指定された操作対象と操作名について、検索条件で指定されたサービス（サービスＢ）の操作対象と操作名が比較され、以下のような包含関係が成立したサービス（サービスＡ）が、検索結果として合致する候補サービスとして抽出される。
【００７３】
条件１）  サービスＡの操作名＜＝サービスＢの操作名
条件２）  サービスＡの入力操作対象名＜＝サービスＢの入力操作対象名
条件３）  サービスＡの入力操作対象名の集合⊆サービスＢの入力操作対象名の集合
条件４）  サービスＡの出力操作対象名＜＝サービスＢの出力操作対象名
条件５）  サービスＡの出力操作対象名の集合⊆サービスＢの出力操作対象名の集合
【００７４】
検索結果は、検索結果一覧ビュー１５０６に表示され、このビューで選択したサービスの内部プロセスは、プロセスビュー（前後関係）１５０８、およびプロセスビュー（サブタスク関係）１５０９を通じて表示される。
【００７５】
上記の検索の結果、提供するサービスの内容が要求に合致したサービスを発見した場合、「サービス提供依頼」ボタン１５０７を押すことにより、サービスの提供窓口にアクセスし、サービスの実行を開始する。
【００７６】
［実施例の効果］
以上説明したように、この実施例によれば、利害関係が異なる企業間においてサービスの連携を行う際に、サービス間の連携を一括してつかさどるサービス連携サーバ（コーディネーションサーバ）を置くことなく、個々の企業が管理するサービス提供サーバを対等に接続することによって、非集中型のサービス連携を可能になる。（特定のサーバがサービスの連携関係を計算する方式ではなく、個々のサービス提供側で他のサービスとの連携関係を計算して連携を可能にする点）
【００７７】
また、ネットワーク上に提供されるサービス群との間で連携関係を設定する場合、連携対象とするサービス群の範囲を、「サービスコミュニティ」という単位を用いることによって制御することができる。このため、連携対象の規模を、完全にパブリックオープンな範囲から、信頼関係を結んでいるサービス提供者間との間に至るまでの幅広いレンジの間で特定できるとともに、サービス間の連携関係を計算する際の計算爆発（全世界中で提供されるサービス群の間に連携関係を設定する計算を行うことは難しい）を回避することができる。
【００７８】
サービス間の連携関係の計算が、複数のサービス提供サーバに分散されるため、系全体としての信頼性を高めることができる。（一種のグリッドコンピューティングを実現する。）
【００７９】
なお、この発明は上述の実施例に限定されるものではなくその趣旨を逸脱しない範囲で種々変更が可能である。例えば、
【図面の簡単な説明】
【００８０】
【図１】本発明の実施例の概略構成を説明する図である。
【図２】上述実施例の実現例の構成を説明する図である。
【図３】上述実施例で用いるデータオブジェクトのデータ構造の例を説明する図である。
【図４】上述実施例のサービス提供サーバ間の提携時の処理を説明するフローチャートである。
【図５】上述実施例のコミュニティへのサービス登録処理を説明するフローチャートである。
【図６】上述実施例において連携に関連して交換されるメッセージの例を説明する図である。
【図７】上述実施例のサービス間連携処理を説明するフローチャートである。
【図８】上述実施例で用いる公開サービス情報の例を説明する図である。
【図９】上述実施例の合成サービス導出処理を説明するフローチャートである。
【図１０】上述実施例のサービス検索・実行処理を説明するフローチャートである。
【図１１】上述実施例で用いるサービス記述オントロジの例を説明する図である。
【図１２】上述実施例の合成サービス導出処理に用いるルールの例を説明する図である。
【図１３】上述実施例でサービス提携先指定用の用いるユーザインタフェースの例を説明する図である。
【図１４】上述実施例でサービス定義・コミュニティ登録・コミュニティ生成用に用いるユーザインタフェースの例を説明する図である。
【図１５】上述実施例でサービス検索・依頼用に用いるユーザインタフェースの例を説明する図である。
【符号の説明】
【００８１】
１０１    ネットワーク
１０２    サービス提供サーバ
１０３    サーバ提携関係保持手段
１０４    サービス定義共有手段
１０５    サービス定義保持手段
１０６    サービス連携関係導出手段
１０７    エンドユーザクライアント
１０８    サービスプロセス定義手段
１０９    サービス検索手段
１１０    サービス記述オントロジサーバ
１１１    サービスオントロジ提供手段
２０１    ネットワーク
２０２    サービス提供サーバ
２０３    エンドユーザクライアント
２０４    サービス記述オントロジサーバ
３０１    サービスサーバのデータ構造
３０２    サービスのデータ構造
３０３    サービスコミュニティのデータ構造
３０４    サービス内容記述のデータ構造
３０５    活動インタフェース記述のデータ構造
３０６    プロセス記述要素のデータ構造
４０１    サービス提供サーバ間の連携処理（連携依頼元での処理）
４０２    サービス提供サーバ間の連携処理（連携依頼先での処理）
５０１    新規サービスの追加に伴う処理（追加が発生したサービス提供サーバでの処理）
５０２    新規サービスの追加に伴う処理（提携関係にあるサービス提供サーバでの処理）
６０１    サーバ提携依頼メッセージ
６０２    サービスコミュニティ共有メッセージ
７０１    サービス間の連携関係を計算する処理（全体）
７０２    サービス間の連携関係を計算する処理（照合処理）
８０１    公開サービス情報
９０１    合成サービス導出処理
１００１    サービス検索・実行処理
１１０１    操作名オントロジ
１１０２    操作対象名オントロジ
１２０１    合成サービス導出ルール
１３０１    サービス提携先指定ウィンドウ
１３０２    提携先指定欄
１３０３    クレデンス指定欄
１３０４    提携処理実行ボタン
１３０５    提携処理キャンセルボタン
１４０１    サービス定義ウィンドウ
１４０２    サービスコミュニティ一覧ビュー
１４０３    サービスコミュニティ一覧ポップアップメニュー
１４０４    サービス名一覧ビュー
１４０５    サービス名一覧ポップアップメニュー
１４０６    プロセスビュー（前後関係）
１４０７    プロセスビューポップアップメニュー（前後関係）
１４０８    プロセスビュー（サブタスク関係）
１４０９    プロセスビューポップアップメニュー（サブタスク関係）
１４１０    新規サービス登録ウィンドウ
１４１１    操作名選択ボタン
１４１２    入力操作対象選択ボタン
１４１３    出力操作対象選択ボタン
１４１４    サービス登録ボタン
１４１５    サービス登録キャンセルボタン
１４１６    サービスプロパティ指定ボタン
１４１７    オントロジ選択ウィンドウ
１４１８    オントロジビュー
１４１９    選択ボタン
１４２０    選択キャンセルボタン
１５０１    サービス検索・依頼ウィンドウ
１５０２    操作名選択ボタン
１５０３    検索実行ボタン
１５０４    入力操作対象選択ボタン
１５０５    出力操作対象選択ボタン
１５０６    サービスコミュニティ名一覧ビュー
１５０７    サービスコミュニティ名一覧ポップアップメニュー
１５０８    サービス名一覧ビュー
１５０９    サービス名一覧ポップアップメニュー
１５１０    プロセスビュー（前後関係）
１５１１    プロセスビューポップアップメニュー（前後関係）
１５１２    プロセスビュー（サブタスク関係）
１５１３    プロセスビューポップアップメニュー（サブタスク関係）
【図１】
2005044158.tif 000003
【図２】
2005044158.tif 000004
【図３】
2005044158.tif 000005
【図４】
2005044158.tif 000006
【図５】
2005044158.tif 000007
【図６】
2005044158.tif 000008
【図７】
2005044158.tif 000009
【図８】
2005044158.tif 000010
【図９】
2005044158.tif 000011
【図１０】
2005044158.tif 000012
【図１１】
2005044158.tif 000013
【図１２】
2005044158.tif 000014
【図１３】
2005044158.tif 000015
【図１４】
2005044158.tif 000016
【図１５】
2005044158.tif 000017