(57)【要約】【課題】一連の作業を行わせることができる、ユーザにとって有用な連携関係を有するサービスの組合せを容易にかつ効率良く抽出してそれを実行することができるサービス連携装置を提供すること。【解決手段】利用可能サービス管理プログラム１３が、ユーザ１０の作業環境に関連のあるサービスを登録し、連携サービス組合せ抽出プログラム１４が、その登録されたサービス内で、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有する、ユーザの作業環境に関連するサービスの組合せを連携結果として抽出してユーザ１０に提示し、フローエンジン２２がユーザ１０に選択されたサービスの組合せをそれを形成する各サービスを呼び出すことにより実行する。【選択図】      図１
2004164313.tif 000002
【特許請求の範囲】
【請求項１】
異なるサービスをそれぞれ提供する複数のサーバ装置と、所望のサーバ装置からサービスの提供を受けるクライアント装置とが所在するネットワークに接続されたサービス連携装置であって、
あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出する抽出手段と、
前記抽出手段により抽出された連携結果に基づいて前記サービスへのアクセス順序を前記クライアント装置に通知するアクセス順序通知手段と、
を備えたことを特徴とするサービス連携装置。
【請求項２】
前記クライアント装置を利用するユーザの作業環境に関連する複数のサービスを登録したリストを記憶するリスト記憶手段と、をさらに備え、前記抽出手段は、前記リスト記憶手段に登録した複数のサービスの中から前記連携関係を有するサービスの組合せを抽出することを特徴とする請求項１に記載のサービス連携装置。
【請求項３】
前記抽出手段は、各サービスの入力と出力のデータ形式を記憶したデータ形式記憶手段を備え、前記データ形式記憶手段に記憶した各サービスの入力と出力のデータ形式に基づいて、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出することを特徴とする請求項１または２に記載のサービス連携装置。
【請求項４】
前記抽出手段は、各サービスが要するユーザに係るユーザ情報を記憶するユーザ情報記憶手段をさらに備え、前記データ形式記憶手段に記憶した各サービスの入力と出力のデータ形式並びに前記ユーザ情報記憶手段に記憶したユーザ情報に基づいて、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出することを特徴とする請求項３に記載のサービス連携装置。
【請求項５】
前記クライアント装置が、前記アクセス順序通知手段により通知された連携結果に含まれるサービスの組合せの実行を前記サービス連携装置に要求した際に、前記サービス連携装置は、前記サービスの組合せを形成する第１のサービスを提供する第１のサーバ装置に対してアクセスして該第１のサーバ装置から出力結果を受け取るとともに、該第１のサービスに連携する第２のサービスを提供する第２のサーバ装置に対して前記出力結果を出力するフローエンジンをさらに備えたことを特徴とする請求項１〜４のいずれか一つに記載のサービス連携装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、異なるサービスをそれぞれ提供する複数のサーバ装置と、所望のサーバ装置からサービスの提供を受けるクライアント装置とが所在するネットワークに接続されたサービス連携装置に関し、特に、一連の作業を行わせることができる、ユーザにとって有用な連携関係を有するサービスの組合せを容易にかつ効率良く抽出してそれを実行することができるサービス連携装置に関する。
【０００２】
【従来の技術】
従来、インターネットやイントラネットなどのネットワークに接続されたサーバ装置が提供する、様々なサービスの組合わせを探索して抽出し、ユーザが所望する一連の作業を行うことができるようサービスを連携させることが行われている。
【０００３】
例えば、そのようなサービスには、Ｗｅｂサイト上での情報検索サービス・商品の受発注サービス・メールサービス・電子掲示板サービス・文書ファイルの共有サービス・スケジューラサービス等がある。その他、メールなどからスケジュールに関する情報を抽出するスケジュール情報抽出サービスや、添付ファイルを抽出する添付ファイル抽出サービスといったサービス等も存在する。このようなサービスは、単に個人の作業のためだけでなく、作業の効率化を図るためにグループで行う共同作業のためにも利用されている。
【０００４】
これらの各種サービスを次々に利用しながら一連の作業を行う場合の具体例としては、メールサービスで会議を開催する旨のメールを受け取り、スケジュール情報抽出サービスがそのメールから会議が開催される日時や場所等の情報を抽出し、スケジューラサービスがその抽出された情報を個人あるいはグループのスケジューラに登録する場合などがある。
【０００５】
このような場合、ユーザは、各サービスの入力と出力のデータ形式を考慮して、あるサービスの出力結果が他のサービスの入力となるよう、呼び出すサービスの順番を選択し、その呼び出すサービスの順番を記述した連携手順ファイルを予め作成する。そして、その連携手順ファイルに記述された手順に従って各サービスが呼び出され、ユーザの所望する作業が実現される。
【０００６】
上記の例では、ユーザが、各サービスの入力と出力のデータ形式を考慮して各サービスを呼び出す順番を記述するといった作業を行うが、ユーザが連携手順ファイルを記述する手間を省くため、各サービスの入力と出力のデータ形式の情報をデータベースで管理し、それを参照して指定された特定の機能を実現させるサービスの組合せを自動的に探索し、実行する方法が開示されている（例えば、特許文献１参照。）。
【０００７】
【特許文献１】
特開平１１−２１２９１１号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上記従来技術を用いたとしても、ユーザの所望する一連の作業を実行することのできるサービスの組合せを抽出させるためには、ユーザ自身がその一連の作業を明示的に指定する必要があるため、ユーザにとって手間がかかり、煩雑であるという問題があった。
【０００９】
また、ユーザが明示的に指定した作業以外にユーザにとって有用なサービスの組合せがたとえ存在するとしても、ユーザが明示的に指定した作業以外のサービスの連携可能性を探索することはないので、それらは発見されることはなく、利用の機会を逸するという問題があった。
【００１０】
更に、インターネットやイントラネットなどの、ネットワークに接続されたサーバ装置により提供されるサービスの数が多い場合には、所望する作業をサービスの連携によって行うことができるかどうかを前もってユーザが予測することは困難で、その作業を行わせる連携関係を有するサービスの組合せが存在しなかった場合、ユーザが自分の所望する作業を指定したことが無駄になり、時間を浪費するという問題があった。
【００１１】
この発明は、上記問題（課題）を解消するためになされたものであり、一連の作業を行わせることができる、ユーザにとって有用な連携関係を有するサービスの組合せを容易にかつ効率良く抽出してそれを実行することができるサービス連携装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、請求項１の発明に係るサービス連携装置は、異なるサービスをそれぞれ提供する複数のサーバ装置（図７に示すサーバＡ７２ａ〜サーバＤ７２ｄに対応する）と、所望のサーバ装置からサービスの提供を受けるクライアント装置（図７に示すクライアント装置７０に対応する）とが所在するネットワーク（図７に示すネットワーク７１に対応する）に接続されたサービス連携装置（図７に示すサービス連携装置１２に対応する）であって、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出する抽出手段（図７に示す連携サービス組合せ抽出部７６に対応する）と、前記抽出手段により抽出された連携結果に基づいて前記サービスへのアクセス順序を前記クライアント装置に通知するアクセス順序通知手段（図７に示すサービス通知・選択部７９に対応する）と、を備えたことを特徴とする。
【００１３】
この請求項１の発明によれば、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出し，その抽出された連携結果に基づいて前記サービスへのアクセス順序を前記クライアント装置に通知することとしたので、ユーザに手間をかけることなく様々なサービスの組合せを容易に抽出し、それらのサービスの利用機会をユーザが逸しないようユーザに通知することができる。
【００１４】
また、請求項２の発明に係るサービス連携装置は、請求項１の発明において、前記クライアント装置を利用するユーザの作業環境に関連する複数のサービスを登録したリストを記憶するリスト記憶手段（図７に示す利用可能サービスリスト１７とワークプレース属性情報１９に対応する）と、をさらに備え、前記抽出手段は、前記リスト記憶手段に登録した複数のサービスの中から前記連携関係を有するサービスの組合せを抽出することを特徴とする。
【００１５】
この請求項２の発明によれば、ユーザの作業環境に関連する複数のサービスを登録したリストを記憶し、そのリストに登録したサービスの中から連携関係を有するサービスの組合せを抽出することとしたので、ユーザの作業環境に関連のあるサービスの組合せのみを容易にかつ効率的に抽出することができる。
【００１６】
また、請求項３の発明に係るサービス連携装置は、請求項１または２の発明において、前記抽出手段は、各サービスの入力と出力のデータ形式を記憶したデータ形式記憶手段（図７に示すサービス属性情報２１に対応する）を備え、前記データ形式記憶手段に記憶した各サービスの入力と出力のデータ形式に基づいて、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出することを特徴とする。
【００１７】
この請求項３の発明によれば、各サービスの入力と出力のデータ形式を記憶し、それに基づいてあるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出することとしたので、各サービスに入出力のデータ形式をその都度問い合わせる必要がなく、効率的にサービスの組合せを抽出することができる。
【００１８】
また、請求項４の発明に係るサービス連携装置は、請求項３の発明において、前記抽出手段は、各サービスが要するユーザに係るユーザ情報を記憶するユーザ情報記憶手段（図７に示すユーザ属性情報１８とワークプレース属性情報１９に対応する）をさらに備え、前記データ形式記憶手段に記憶した各サービスの入力と出力のデータ形式並びに前記ユーザ情報記憶手段に記憶したユーザ情報に基づいて、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出することを特徴とする。
【００１９】
この請求項４の発明によれば、各サービスが必要とするユーザに係るユーザ情報を記憶し、それと各サービスの入力と出力のデータ形式に基づいてあるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを抽出することとしたので、各サービスがユーザ情報による設定を必要とする場合に、ユーザがその都度設定を行う必要がなくなり、容易にかつ効率的にサービスの組合せを探索することができる。
【００２０】
また、請求項５の発明に係るサービス連携装置は、請求項１〜４のいずれか一つの発明において、前記クライアント装置が、前記アクセス順序通知手段により通知された連携結果に含まれるサービスの組合せの実行を前記サービス連携装置に要求した際に、前記サービス連携装置は、前記サービスの組合せを形成する第１のサービスを提供する第１のサーバ装置に対してアクセスして該第１のサーバ装置から出力結果を受け取るとともに、該第１のサービスに連携する第２のサービスを提供する第２のサーバ装置に対して前記出力結果を出力するフローエンジン（図７に示すフローエンジン２２に対応する）をさらに備えたことを特徴とする。
【００２１】
この請求項５の発明によれば、クライアント装置がアクセス順序通知手段により通知された連携結果に含まれるサービスの組合せの実行を前記サービス連携装置に要求した際に、そのサービスの組合せを形成する第１のサービスを提供する第１のサーバ装置にアクセスして出力結果を受け取るとともに、その出力結果を第１のサービスに連携する第２のサービスを提供する第２のサーバ装置に対して出力することとしたので、ユーザは各サービスの入出力データの形式を気にする必要がなく、連携結果の中から所望するサービスの組合せを容易に実行させることができる。
【００２２】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るサービス連携装置の好適な実施の形態を詳細に説明する。以降、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを「連携サービス」と呼ぶこととする。
【００２３】
まず、本実施の形態に係るサービス連携装置の概念について説明する。図１は、本実施の形態に係るサービス連携装置の概念を示す概念図である。同図に示すように、このサービス連携装置では、ユーザ１０が、クライアント装置におけるＷｅｂブラウザ１１等のソフトウェアを操作してサービス連携装置１２にアクセスし、利用可能サービス管理プログラム１３や、連携サービス組合せ抽出プログラム１４や、ワークプレース１６を通しての連携サービスの呼び出しを行う。
【００２４】
そのユーザ１０の操作に応じて、サービス連携装置１２は、連携サービスを抽出するために利用できるサービスのリストの更新を行ったり、連携サービスの組合せの抽出を行ったり、抽出された連携サービスの組合せ情報に従ってネットワークに接続されたサーバに存在する各サービス（サービスＡ２３ａ〜サービスＤ２３ｄ）を呼び出して、連携サービスを実現する。
【００２５】
ここで、ワークプレース１６とは、ユーザ１０に対し限定された環境の中でユーザに関連したサービスを提供することのできる、ソフトウェアによって実現されるサーバの機能の一部である。このワークプレース１６の概念を、図２を用いて具体的に説明する。図２は、図１に示したワークプレース１６の概念を説明する概念図である。
【００２６】
同図に示すように、ワークプレース１６は、部署やプロジェクト等の単位で管理され、複数設定することが可能である（ワークプレースＡ１６ａ〜ワークプレースＣ１６ｃ）。また、そういった作業環境の違いによる単位だけでなく、あるＬＡＮにアクセス可能なグループ、あるいはインターネット上のあるＷＷＷサーバにアクセス可能なグループといったものなど、任意の単位で設定することができる。以下では、ワークプレース１６が作業単位で管理されている場合について説明する。
【００２７】
サービス連携装置１２は、どのワークプレース１６に属するユーザ１０からでも利用することができるサービスのリストを利用可能サービスリスト１７として蓄積している。そして、そのワークプレース１６へのアクセス権があるユーザのリスト、各ワークプレース１６に属するユーザ１０が利用可能な個々のサービスのリスト、あるいは各ワークプレース１６に属するユーザ１０が利用可能な連携サービスのリストなどの、ワークプレース１６内におけるユーザ１０に関する情報をワークプレース属性情報１９として蓄積している。
【００２８】
更に、ユーザ１０のメールアドレスや電話番号、あるいは利用可能なワークプレース１６の情報等のユーザ１０に関する情報をユーザ属性情報１８として蓄積している。このように、サービス連携装置１２では、ユーザ１０の作業環境に対する様々な情報を収集し管理している。
【００２９】
サービス連携装置１２は、ユーザ１０がＷｅｂブラウザ１１等を操作してアクセス要求をしてきた際に、ユーザ１０に対し、利用可能なワークプレース１６の一覧を提示して、ワークプレース１６を選択させる。続いて、サービス連携装置１２はユーザ１０に対し、選択したワークプレース１６内で利用できるサービスのリストをワークプレース属性情報１９を参照して提示し、ユーザ１０からの選択を受け付ける。
【００３０】
そして、選択されたサービスを実行するために必要なサービス（例えば、ワークプレースＡ１６ａに対しては、サービスＡ２３ａとサービスＢ２３ｂ）を呼び出して実行させる。その際、それらのサービスがユーザ属性情報１８やワークプレース属性情報１９を設定情報として必要とする場合には、予めその情報を提供して設定を行う。
【００３１】
上記のように、ユーザ１０は、ワークプレース１６を経由して各サービス（サービスＡ２３ａ〜サービスＣ２３ｃ）を利用するため、作業に関連したサービスのみを閲覧・選択して利用することができる。また、各ワークプレース１６において、各サービス（ワークプレースＡ１６ａに対しては、サービスＡ２３ａとサービスＢ２３ｂ）をそのワークプレース１６に属するユーザ間で共有することで、効率的に作業を進めることができる。例えば、製品開発プロジェクトで、電子掲示板サービス・文書ファイル共有サービス・スケジューラサービス等を製品開発プロジェクトに携わっているメンバー間で共有して作業する場合などが挙げられる。
【００３２】
図１の説明に戻ると、利用可能サービス管理プログラム１３は、新しく利用可能なサービスが加わったり、利用可能であったサービスが削除されたりして、利用可能サービスリスト１７とワークプレース属性情報１９とを更新する必要がある場合に実行され、それらを更新する。利用可能サービス管理プログラム１３は、それらを更新し終えると、自動的に連携サービス組合せ抽出プログラム１４を起動する。
【００３３】
連携サービス組合せ抽出プログラム１４は、利用可能サービス管理プログラム１３によって起動されるか、あるいはユーザ１０からの要求によって直接起動される。連携サービス組合せ抽出プログラム１４は、利用可能サービスリスト１７・ユーザ属性情報１８・ワークプレース属性情報１９・サービス利用履歴情報２０・サービス属性情報２１を参照しながら、ユーザ１０の属するワークプレース１６に関連した連携サービスを構成する各サービス（サービスＡ２３ａ〜サービスＤ２３ｄ）の組み合わせを抽出し、抽出された連携結果を連携サービス組合せ情報１５として蓄積する。
【００３４】
利用可能サービスリスト１７、ユーザ属性情報１８およびワークプレース属性情報１９に関しては既に説明した。サービス利用履歴情報２０は、各サービスの利用履歴を蓄積したもので、その中には利用した日時・利用したサービス名・利用したユーザ名などが記録される。サービス利用履歴情報２０は、連携サービスを構成する各サービスの利用頻度を基に連携サービスの有用さの順位を求め、順位の高い方からユーザ１０に連携サービスを提示する場合に参照される。
【００３５】
一般に、頻繁に利用されるサービスはユーザにとって有用である可能性が高いものと考えられる。従って、利用頻度を基にして連携サービスを並べ替え、ユーザ１０に提示することによって、ユーザ１０は有用な連携サービスを容易に選択することができるようになる。
【００３６】
そして、サービス属性情報２１には、各サービス（サービスＡ２３ａ〜サービスＤ２３ｄ）の入出力データの形式が予め登録されており、それを必要に応じて参照できるようになっている。この登録は、各サービス（サービスＡ２３ａ〜サービスＤ２３ｄ）の管理者がサービス連携装置１２に通知して行う、各サービスに問い合わせる、あるいは各サービスを個別に利用したユーザ１０の履歴を基に登録するなどの方法で行うことができる。サービス属性情報２１を利用しない場合も考えられるが、その場合はサービス連携装置１２は各サービスに対して入出力データの形式を問い合わせる。
【００３７】
ここで、連携サービスを構成するサービスの組合わせの抽出について説明する。図３は連携サービスを構成するサービスの組合わせの抽出を説明する説明図である。同図に示すように、サービス連携装置１２では、どのワークプレース１６からでも利用可能なサービス群３０が利用可能サービスリスト１７に登録されている。そして、ワークプレース属性情報１９には、ワークプレースで利用可能なサービス群３１が登録されている。
【００３８】
連携サービス組合せ抽出プログラム１４は、ワークプレースで利用可能なサービス群３１の中のすべてのサービスをスタートサービス候補群３２とし、また、すべてのサービスをゴールサービス候補群３４として設定する。そして、それらを連結するサービスである中間サービス候補群３３を、ワークプレースで利用可能なサービス群３１から探索する。
【００３９】
また、電子掲示板サービスやスケジューラサービスなどのユーザ１０の作業に直接関連したサービス以外でも、所定のデータを電子掲示板から抽出してスケジューラサービス用の入力データの形式に変換し、スケジューラに登録するといったような、ユーザ１０に対して直接出力を行わない連携サービスのための補助的な中継サービスも存在する。
【００４０】
このような中継サービスは、ある特定のワークプレースだけで使用されるものではなく、どのワークプレースでも共通に用いられるものであるので、利用可能サービスリスト１７の利用可能なサービス群３０に中継サービスとして登録しておき、連携サービス組合せ抽出プログラム１４は、中間サービス候補群としてそれらの中継サービスも含めて探索を行う。
【００４１】
連携サービスを構成するサービスが設定情報を必要とする場合には、サービス連携装置１２のユーザ属性情報１８とワークプレース属性情報１９から必要な設定情報を参照して各サービスの設定を行う。次に、連携サービスを構成するサービスの設定を説明する。図４は連携サービスを構成するサービスの設定を説明する説明図である。
【００４２】
同図に示すように、ユーザ１０がＷｅｂブラウザ１１を操作して、サービス連携装置１２の連携サービス組合せ抽出プログラム１４を起動すると、連携サービス組合せ抽出プログラム１４は、スタートサービス４１とゴールサービス４３を設定し、サービス属性情報２１を参照してスタートサービス４１とゴールサービス４３とを連携することが可能な中間サービス４２を探索する。
【００４３】
その際、連携サービス組合せ抽出プログラム１４は、連携サービスを構成する各サービス４１〜４３に対し、そのサービス４１〜４３を実行するための設定情報が不足しているかどうかを問い合わせる。各サービス４１〜４３は、その問い合わせに応答して自サービスに必要な設定情報を確認し、必要な設定情報の転送を連携サービス組合せ抽出プログラム１４に要求する。
【００４４】
同図には、連携サービス組合せ抽出プログラム１４が、中間サービス４２から設定情報の転送要求を受けた場合について示してある。その転送要求を受けた連携サービス組合せ抽出プログラム１４は、その設定情報がユーザ属性情報１８あるいはワークプレース属性情報１９に含まれているかどうかを検索し、含まれている場合には中間サービス４２に対し必要な設定情報を転送し設定を行う。設定情報が含まれていない場合には、その中間サービス４２は連携不可能となるので、その中間サービス４２を探索候補から除外し、他の中間サービス４２を探索する。
【００４５】
また、サービス属性情報２１に予め設定情報が必要かどうか、そして設定情報が必要な場合には、必要な設定情報の種類に関する情報を登録しておき、サービスの組合せを抽出する際に、それを参照して各サービス４１〜４３の設定を行うことも可能である。
【００４６】
図１の説明に戻ると、ユーザ１０がワークプレース１６上でサービスを利用する場合には、Ｗｅｂブラウザ１１を操作してワークプレース１６にアクセスし、サービスのリストの中から必要な作業を行うことができる個々のサービス（サービスＡ２３ａ〜サービスＤ２３ｄ）、あるいは連携サービスを選択する。
【００４７】
個々のサービス（サービスＡ２３ａ〜サービスＤ２３ｄ）が選択された場合には、ワークプレース１６から該当するサービスを直接呼び出して実行する。連携サービスが選択された場合には、ワークプレース１６からフローエンジン２２を起動する。フローエンジン２２とは、連携サービス組合せ情報１５を参照し、それに記述された手順に従って各サービス（図の例では、サービスＡ２３ａとサービスＣ２３ｃ）を呼び出し、各サービス間での入出力データの送受信を中継し、連携サービスを実現するプログラムのことである。
【００４８】
次に、サービス連携装置１２におけるサービス利用履歴の取得について説明する。図５は、サービス連携装置１２におけるサービス利用履歴の取得について説明する説明図である。同図に示すように、まず、ユーザ１０はＷｅｂブラウザ１１を操作して、サービス連携装置１２によって提供されるワークプレース１６のサービスリストの中から作業に必要なサービスを選択する。
【００４９】
ワークプレース１６は、選択されたサービスが個々のサービス（この例では、サービスＢ２３ｂである。）である場合には、そのサービスを直接呼び出して実行させる。その際、サービス利用履歴情報２０に利用した日時・利用したサービス名・利用したユーザ名等の履歴情報を記録する。
【００５０】
選択されたサービスが連携サービスである場合には（この例では、連携サービスはサービスＡ２３ａとサービスＣ２３ｃとで構成される。）、ワークプレース１６は、フローエンジン２２に連携サービスの実行を要求する。フローエンジン２２は、その命令に従って連携サービスを構成する各サービス（サービスＡ２３ａとサービスＣ２３ｃ）を呼び出して実行させる。その際、ワークプレース１６は、呼び出された連携サービスを構成する各サービス（サービスＡ２３ａとサービスＣ２３ｃ）についての履歴情報をサービス利用履歴情報２０に記録する。
【００５１】
次に、サービス連携装置１２における連携サービス組合せ情報１５の更新について説明する。図６は、サービス連携装置１２における連携サービス組合せ情報１５の更新について説明する説明図である。同図に示すように、新たなサービスが追加され、それがサービス連携装置１２から利用可能なものである場合に、ワークプレース管理者６０はＷｅｂブラウザＢ１１ｂを操作し、利用可能サービス管理プログラム１３を起動する。
【００５２】
そして、ワークプレース管理者６０は、新しく追加されたサービスを利用可能サービスリスト１７に追加するよう利用可能サービス管理プログラム１３に要求する。要求を受けた利用可能サービス管理プログラム１３は、その要求に応じて、そのサービスを利用可能サービスリスト１７に追加して更新する。
【００５３】
更に、新しく追加されたサービスに関連したワークプレース１６がある場合には、ワークプレース管理者６０は、ワークプレース属性情報１９に蓄積されている、各ワークプレース１６に属するユーザ１０が利用可能なサービスのリストに、そのサービスを追加するよう利用可能サービス管理プログラム１３に要求する。要求を受けた利用可能サービス管理プログラム１３は、その要求に応じて、そのサービスを、各ワークプレース１６に属するユーザ１０が利用可能なサービスのリストに追加して更新する。
【００５４】
更新作業が終了すると、利用可能サービス管理プログラム１３は、自動的に連携サービス組合せ抽出プログラム１４を起動する。そして、連携サービス組合せ抽出プログラム１４は、更新された利用可能サービスリスト１７とワークプレース属性情報１９を参照しながら、連携可能なサービスの組合せを抽出し、連携サービス組合せ情報１５を更新する。
【００５５】
連携サービス組合せ情報１５の更新後、新しく得られた連携サービスをワークプレース管理者６０のＷｅｂブラウザＢ１１ｂ上に表示して、ワークプレース管理者６０に通知するとともに、利用可能なサービスが変更となったワークプレース１６の、ユーザ１０のＷｅｂブラウザＡ１１ａ上にも表示して、ユーザ１０への通知を行う。
【００５６】
利用可能サービスリスト１７とワークプレース属性情報１９に登録してあるサービスが削除された場合でも、利用可能サービスリスト１７とワークプレース属性情報１９と連携サービス組合せ情報１５とを、上記と同様の手順で更新することができる。
【００５７】
これにより、利用可能なネットワークに接続されたサーバが提供するサービスが頻繁に更新されるような環境でも、ユーザ１０は様々な連携サービスの存在を把握して、それを容易に利用することができる。
【００５８】
次に、本実施の形態に係るサービス連携装置１２の構成について説明する。図７は、本実施の形態に係るサービス連携装置１２の構成を示す機能ブロック図である。同図に示すように、このサービス連携装置１２には、ユーザ１０の操作するクライアント端末７０がネットワーク７１を介して接続されており、また、サービス（サービスＡ２３ａ〜サービスＤ２３ｄ）を提供するサーバ（サーバＡ７２ａ〜サーバＤ７２ｄ）が、同じくネットワーク７１を介して接続されている。クライアント端末７０は、Ｗｅｂブラウザ１１などのユーザインターフェースを備え、ユーザ１０からの入力を受け付けたり、ユーザ１０に対する出力を行う。
【００５９】
サービス連携装置１２は、インターフェース部７３と、属性情報管理部７４と、利用可能サービス管理部７５と、連携サービス組合せ抽出部７６と、ワークプレースサービス管理部７７と、データベース８３とを有する。また、ワークプレースサービス管理部７７は、ワークプレース選択部７８と、サービス通知・選択部７９と、サービス呼び出し部８０と、フローエンジン２２とを有する。
【００６０】
更に、フローエンジン２２は、連携サービス呼び出し部８１と、入出力データ送受信部８２とを有する。そして、データベース８３は、利用可能サービスリスト１７と、ユーザ属性情報１８と、ワークプレース属性情報１９と、連携サービス組合せ情報１５と、サービス利用履歴情報２０と、サービス属性情報２１とから構成される。
【００６１】
インターフェース部７３は、クライアント端末７０や各サービス（サービスＡ２３ａ〜サービスＤ２３ｄ）との通信を行うためのネットワークインターフェースである。属性情報管理部７４は、ユーザ属性情報１８、ワークプレース属性情報１９およびサービス属性情報２１の管理を行い、それらの情報に変更があればユーザ１０、ワークプレース管理者６０あるいは各サービス（サービスＡ２３ａ〜サービスＤ２３ｄ）の管理者からの要求によりそれぞれの更新を行う。
【００６２】
利用可能サービス管理部７５は、利用可能サービスリスト１７とワークプレース属性情報１９との管理を行い、サービスが新規に追加されたりあるいは削除されたりして更新された場合に、利用可能サービスリスト１７とワークプレース属性情報１９とを更新する。更に、利用可能サービスリスト１７とワークプレース属性情報１９との更新が終了したら、連携サービス組合せ抽出部７６を呼び出して連携サービス組合せ抽出プログラム１４を実行する。
【００６３】
連携サービス組合せ抽出部７６は、利用可能サービス管理部７５あるいはクライアント端末７０から命令を受け、利用可能サービスリスト１７・ユーザ属性情報１８・ワークプレース属性情報１９・サービス利用履歴情報２０・サービス属性情報２１を参照して、ワークプレース１６内での連携サービスの抽出を行い、抽出された結果を連携サービス組合せ情報１５として蓄積する。
【００６４】
ワークプレースサービス管理部７７内のワークプレース選択部７８は、ユーザ属性情報１８を参照してユーザ１０が利用可能なワークプレース１６のリストをクライアント端末７０に送信し、ユーザ１０のワークプレース１６の選択を待ち受ける。ユーザ１０が、リストの中からワークプレース１６をクライアント端末７０を用いて選択すると、ワークプレース選択部７８はインターフェース部７３を経由してその選択を受け付ける。
【００６５】
サービス通知・選択部７９は、ワークプレース属性情報１９を参照して、選択されたワークプレース１６内で利用可能なサービスのリストをクライアント端末７０に送信してユーザ１０に通知し、ユーザ１０の選択を待ち受ける。このリストには、個々のサービスや抽出された連携サービスが登録されている。ユーザ１０が、リストの中から所望するサービスをクライアント端末７０を用いて選択すると、サービス通知・選択部７９はインターフェース部７３を経由してその選択を受け付ける。
【００６６】
選択されたサービスが個々のサービスである場合には、サービス通知・選択部７９は、それをサービス呼び出し部８０に通知し、サービス呼び出し部８０は、選択されたサービスをインターフェース部７３を通じて呼び出して実行する。
【００６７】
選択されたサービスが連携サービスである場合には、サービス通知・選択部７９は、それをフローエンジン２２の連携サービス呼び出し部８１に通知する。連携サービス呼び出し部８１は、連携サービス組合せ情報１５に蓄積された該当する連携サービスの情報に従って、次々にサービスを呼び出す。その際、入出力データ送受信部８２は、インターフェース部７３経由で、サービスの出力データを受信し、その受信した出力データを次に呼び出すサービスに送信し、入力データとする。
【００６８】
次に、図３に示した連携サービスを形成するサービスの組合せの抽出手順を具体的に説明する。図８は、図３に示した連携サービスを形成するサービスの組合せの抽出手順を示すフローチャートである。同図に示すように、まず、連携サービス組合せ抽出部７６は、連携サービスの抽出の対象となるワークプレース１６を選択する（ステップＳ８０１）。そして、サービス連携装置１２において利用可能なサービスのリストを利用可能サービスリスト１７から取得し（ステップＳ８０２）、続いて、選択されたワークプレース１６に属するユーザ１０が利用可能な個々のサービスのリストをワークプレース属性情報１９から取得する（ステップＳ８０３）。
【００６９】
そして、そのワークプレース１６に属するユーザ１０が利用可能な個々のサービスのリストに登録された、ワークプレースで利用可能なサービス群３１から、すべてのサービスをスタートサービス候補群３２として設定し、また、すべてのサービスをゴールサービス候補群３４として設定する（ステップＳ８０４）。その後、スタートサービス候補群３２の中から１つのスタートサービス４１を選択し、また、ゴールサービス候補群３４の中から１つのゴールサービス４３を選択する（ステップＳ８０５）。
【００７０】
その後、選択したスタートサービス４１あるいはゴールサービス４３が、ユーザ属性情報１８やワークプレース属性情報１９内の情報を設定情報として必要とするかどうかを確認する（ステップＳ８０６）。それらの情報を必要とする場合には（ステップＳ８０６，Ｙｅｓ）、ユーザ属性情報１８とワークプレース属性情報１９に必要な情報があるかどうかを調べる（ステップＳ８０７）。必要な情報がある場合には（ステップＳ８０７，Ｙｅｓ）、それを読み込んで（ステップＳ８０８）、スタートサービス４１あるいはゴールサービス４３の設定を行う（ステップＳ８０９）。
【００７１】
必要な情報がない場合には（ステップＳ８０７，Ｎｏ）、そのスタートサービス４１あるいはゴールサービス４３を除外して（ステップＳ８１９）、次のスタートサービス４１とゴールサービス４３の組を選択し（ステップＳ８０５）、探索を続行する。設定情報としてユーザ属性情報１８やワークプレース属性情報１９内の情報を必要としない場合には（ステップＳ８０６，Ｎｏ）、ステップＳ８１０に移行する。
【００７２】
その後、スタートサービス４１の出力データの形式と一致する入力データの形式を持つ中間サービス４２をワークプレースで利用可能なサービス群３１の中から、また、ユーザ１０に直接出力を行わない中継サービスに関しては、利用可能なサービス群３０の中から検索し（ステップＳ８１０）、スタートサービス４１と連携可能なサービスがあるかどうかを調べる（ステップＳ８１１）。
【００７３】
連携可能なサービスがあった場合には（ステップＳ８１１，Ｙｅｓ）、更に、そのサービスを実行するのに、ユーザ属性情報１８やワークプレース属性情報１９内の情報を設定情報として必要とするかどうかを確認する（ステップＳ８１２）。
【００７４】
それらの情報を必要とする場合には（ステップＳ８１２，Ｙｅｓ）、データベース８３内のユーザ属性情報１８とワークプレース属性情報１９に必要な情報があるかどうかを調べる（ステップＳ８１３）。必要な情報がある場合には（ステップＳ８１３，Ｙｅｓ）、それを読み込み（ステップＳ８１４）、中間サービス４２の設定を行う（ステップＳ８１５）。
【００７５】
必要な情報がない場合には（ステップＳ８１３，Ｎｏ）、そのサービスを除外して（ステップＳ８２０）、前のサービスの出力データの形式と一致する入力データの形式をもつサービスを検索し（ステップＳ８２２）、ステップＳ８１１に戻って探索を続行する。設定情報としてユーザ属性情報１８やワークプレース属性情報１９内の情報を必要としない場合には（ステップＳ８１２，Ｎｏ）、ステップＳ８１６に移行する。
【００７６】
その後、検索されたサービスが、ゴールサービス４３と一致するかどうかを調べる（ステップＳ８１６）。ゴールサービス４３と一致する場合には（ステップＳ８１６，Ｙｅｓ）、探索されたサービスの組合せを連携サービス組合せ情報１５に登録する（ステップＳ８１７）。一致しない場合には（ステップＳ８１６，Ｎｏ）、予め設定された探索終了条件を満たすかどうかを調べる（ステップＳ８２１）。ここで、探索終了条件としては、連携サービスを構成するサービスの数の上限を越えたか、といった例が挙げられる。
【００７７】
この探索終了条件を満たす場合は（ステップＳ８２１，Ｙｅｓ）、連携サービスの探索を終了する。満たさない場合は（ステップＳ８２１，Ｎｏ）、前のサービスの出力データの形式と一致する入力データの形式をもつサービスを検索し（ステップＳ８２２）、ステップＳ８１１に戻って探索を続行する。
【００７８】
ステップＳ８１７において連携サービスを登録した後、スタートサービス４１とゴールサービス４３のすべての組み合わせの探索が終了したかどうかを調べる（ステップＳ８１８）。すべての組み合わせの探索が終了していたら（ステップＳ８１８，Ｙｅｓ）、連携サービスの探索を終了する。探索が終了していなかったら（ステップＳ８１８，Ｎｏ）、探索がまだ行われていないスタートサービス４１とゴールサービス４３との組み合わせを選択し（ステップＳ８０５）、その組み合わせに対して連携サービスの探索を行う。
【００７９】
次に、より具体的な例を挙げて、連携サービスを構成するサービスの組合わせの抽出について説明する。図９は、図１に示したサービス連携装置１２の具体的な例である。また、図１０は、図９に示した具体的な例における、連携サービスを形成するサービスの組合わせの抽出を説明する説明図である。
【００８０】
図９に示すように、この具体例では、サービスとして、メール受信サービス９４と、電子掲示板サービス９５と、ファイル共有サービス９６と、スケジューラサービス９７と、スケジュール情報抽出サービス９８とがある。そして、これらのサービスが、ネットワーク７１経由でサービス連携装置１２から利用可能であるものとする。
【００８１】
そして、ユーザ１０は、製品開発部に属しており、製品開発ワークプレース９０上で作業を行っている。また、ユーザ属性情報１８として、ユーザ属性情報ファイル９１にユーザＡのメールアドレス（ＵｓｅｒＡ）や電話番号（０１２−３４５−６７８９）等が記述されている。また、ワークプレース属性情報として、ワークプレース属性情報ファイル９２に製品開発部のメールアドレス（ｐｒｏｄｕｃｔ−ｄｅｖ）やスケジューラの製品開発部の登録場所（ｐｒｏｄｕｃｔ−ｄｅｖ）等の情報が記述されている。更に、サービス利用履歴情報２０として、サービス利用履歴情報ファイル９３に過去に使用されたサービスの履歴（日時・サービス名・ユーザ名）が蓄積されている。
【００８２】
図１０に示すように、サービス連携装置１２で利用可能なサービス群３０としては、メール受信サービス９４・電子掲示板サービス９５・ファイル共有サービス９６・スケジューラサービス９７・スケジュール情報抽出サービス９８の５つが登録されている。そして、製品開発部の製品開発ワークプレースで利用可能なサービス群１００としては、メール受信サービス９４・電子掲示板サービス９５・ファイル共有サービス９６・スケジューラサービス９７の４つが登録されている。
【００８３】
そして、サービス属性情報２１として、サービス属性情報ファイル１０１に各サービスの入出力データの形式情報が蓄積されている。具体的には、メール受信サービス９４では入力データがなく、出力データの形式はメール形式であり、スケジュール情報抽出サービス９８では入力データの形式はメール形式で、出力データの形式はスケジュール形式であり、スケジューラサービス９７の入力データと出力データの形式はともにスケジュール形式であるといった情報が蓄積されている。
【００８４】
連携サービス組合せ抽出プログラム１４は、製品開発ワークプレースで利用可能なサービス群１００から、４つのすべてのサービスをスタートサービス候補群３２とし、また、４つのすべてのサービスをゴールサービス候補群３４として設定する。そして、それらを連結するサービスである中間サービス候補群３３を、製品開発ワークプレースで利用可能なサービス群１００の中から探索する。
【００８５】
ただし、この例におけるスケジュール情報抽出サービス９８のような、ユーザ１０に対する出力を行わない中継サービスについては、どのワークプレースでも共通に用いられるものであるので、利用可能なサービス群３０の中にあっても探索に含められる。
【００８６】
この例では、メール受信サービス９４の出力データの形式とスケジュール情報抽出サービス９８の入力データの形式がメール形式で一致しており、また、スケジュール情報抽出サービス９８の出力データの形式とスケジューラサービス９７の入力データの形式がスケジュール形式で一致しているので、スケジュール情報抽出サービス９８が、メール受信サービス９４とスケジューラサービス９７とを連携する中間サービス４２として探索されている。
【００８７】
探索の際には、連携サービス組合せ抽出プログラム１４は、各サービスに設定情報が不足しているかどうかを問い合わせる。この例では、スケジュール情報抽出サービス９８で、入力対象となるメールの宛て先情報と出力対象となるスケジューラの登録先が不足していることが返答される。それに応答して、連携サービス組合せ抽出プログラム１４は、ワークプレース属性情報１９からメールの宛て先情報として製品開発部（ｐｒｏｄｕｃｔ−ｄｅｖ）を、ユーザ属性情報１８からスケジューラの登録先としてユーザＡ（ＵｓｅｒＡ）を抽出してスケジュール情報抽出サービス９８に転送し設定を行う。
【００８８】
その後、探索された連携サービスは連携サービス組合せ情報１５として蓄積される。この例で示されたように、スタートサービス４１とゴールサービス４３を連携する中間サービス４２を、ユーザ属性情報１８とワークプレース属性情報１９とを参照しながら効率的に探索することができる。
【００８９】
次に、サービス連携装置１２がユーザ１０にサービスを提供する場合の処理手順を具体的に説明する。図１１は、サービス連携装置１２がユーザ１０にサービスを提供する場合の処理手順を示すフローチャートである。同図に示すように、まずサービス連携装置１２は、ユーザ１０からのログイン要求を待ち受ける（ステップＳ１１０１）。
【００９０】
そして、ユーザ１０からのログイン要求があるかどうかを調べ（ステップＳ１１０２）、ログイン要求がある場合には（ステップＳ１１０２，Ｙｅｓ）、ユーザ１０のログイン処理を行う（ステップＳ１１０３）。ログイン要求がない場合には（ステップＳ１１０２，Ｎｏ）、ステップＳ１１０１に戻り、ユーザ１０からログイン要求があるまで待機する。
【００９１】
ログイン処理が終わると、サービス連携装置１２は、ユーザ１０が利用可能なワークプレース１６の情報をユーザ属性情報１８から取得する（ステップＳ１１０４）。そして、利用可能なワークプレース１６の一覧をＷｅｂブラウザ１１上に表示する（ステップＳ１１０５）。続いて、ユーザ１０がワークプレース１６を選択するのを待機して（ステップＳ１１０６）、選択があったかどうかを調べる（ステップＳ１１０７）。
【００９２】
ワークプレース１６の選択があった場合には（ステップＳ１１０７，Ｙｅｓ）、そのワークプレース１６内で利用可能なサービスの情報をワークプレース属性情報１９から取得し（ステップＳ１１０８）、その一覧をＷｅｂブラウザ１１上に表示する（ステップＳ１１０９）。ワークプレース１６の選択がない場合には（ステップＳ１１０７，Ｎｏ）、ユーザ１０からのユーザ属性情報１８の編集要求があるかどうかを調べる（ステップＳ１１１７）。
【００９３】
ユーザ属性情報１８の編集要求がある場合には（ステップＳ１１１７，Ｙｅｓ）、属性情報管理部７３がユーザ１０からの編集情報を受け付け、それに従ってユーザ属性情報１８の編集処理を行い（ステップＳ１１１８）、それが終了したらステップＳ１１０６に移行する。
【００９４】
ユーザ属性情報１８の編集要求がない場合には（ステップＳ１１１７，Ｎｏ）、ユーザ１０からのワークプレース属性情報１９の編集要求があるかどうかを調べる（ステップＳ１１１９）。ワークプレース属性情報１９の編集要求がある場合には（ステップＳ１１１９，Ｙｅｓ）、属性情報管理部７４がユーザ１０からの編集情報を受け付け、それに従ってワークプレース属性情報１９の編集処理を行い（ステップＳ１１２０）、それが終了したらステップＳ１１０６に移行する。
【００９５】
ワークプレース属性情報１９の編集要求がない場合には（ステップＳ１１１９，Ｎｏ）、ユーザ１０からのログアウト要求があるかどうかを調べる（ステップＳ１１２１）。ログアウト要求がある場合には（ステップＳ１１２１，Ｙｅｓ）、ユーザ１０のログアウト処理を行い（ステップＳ１１２２）、ステップＳ１１０１に移行する。ログアウト要求がない場合には（ステップＳ１１２１，Ｎｏ）、ステップＳ１１０６に移行する。
【００９６】
ステップＳ１１０９において、ワークプレース１６内で利用可能なサービスの一覧をＷｅｂブラウザ１１上に表示した後、サービス連携装置１２は、ユーザ１０がサービスを選択するのを待機して（ステップＳ１１１０）、サービスの選択があったかどうかを調べる（ステップＳ１１１１）。
【００９７】
サービスの選択があった場合は（ステップＳ１１１１，Ｙｅｓ）、それが連携サービスかあるいは個々のサービスかを調べる（ステップＳ１１１２）。それが連携サービスであった場合は（ステップＳ１１１２，Ｙｅｓ）、連携サービス組合せ情報１５をデータベース８３から取得し（ステップＳ１１１３）、その手順に従って個々のサービスを呼び出し、連携サービスを実行する（ステップＳ１１１４）。ユーザ１０によって選択されたサービスが個々のサービスであった場合には（ステップＳ１１１２，Ｎｏ）、ステップＳ１１１４に移行し、該当するサービスを呼び出して実行する（ステップＳ１１１４）。
【００９８】
その後、呼び出したサービス毎にサービスの利用履歴をサービス利用履歴情報２０に記録し（ステップＳ１１１５）、サービスの実行により得られた出力結果をＷｅｂブラウザ上に表示する（ステップＳ１１１６）。そして、表示後はステップＳ１１０６に移行する。
【００９９】
次に、サービス連携装置１２内のフローエンジン２２による連携サービス実行処理の処理手順を説明する。図１２は、サービス連携装置１２内のフローエンジン２２による連携サービス実行処理の処理手順を示すフローチャートである。同図に示すように、まずフローエンジン２２は、ユーザ１０によって指定された連携サービスの連携サービス組合せ情報１５をデータベース８３から取得する（ステップＳ１２０１）。
【０１００】
そして、連携サービスのスタートサービス４１を呼び出して実行する（ステップＳ１２０２）。続いて、連携サービス組合せ情報１５を参照し、その連携サービスを構成するすべてのサービスの実行が終了したかどうかを調べる（ステップＳ１２０３）。
【０１０１】
すべてのサービスの実行が終了したら（ステップＳ１２０３，Ｙｅｓ）、連携サービスのゴールサービス４３の出力データをユーザ１０に対し回答する（ステップＳ１２０４）。すべてのサービスの実行が終了していなかったら（ステップＳ１２０３，Ｎｏ）、そのサービスの出力データを次のサービスの入力データとし、連携サービス組合せ情報１５を参照して次のサービスを呼び出し、実行する（ステップＳ１２０５）。実行後は、ステップＳ１２０３に移行する。
【０１０２】
次に、図６に示した連携サービスの更新処理の処理手順について具体的に説明する。図１３は、図６に示した連携サービスの更新処理の処理手順を示すフローチャートである。同図に示すように、まず利用可能サービス管理部７５は、ワークプレース管理者６０からの利用可能サービスリスト１７、またワークプレース属性情報１９の更新命令を受け付ける（ステップＳ１３０１）。
【０１０３】
そして、その更新命令が利用可能サービスリスト１７に対する新たなサービスの追加であるかどうかを調べる（ステップＳ１３０２）。新たなサービスの追加である場合には（ステップＳ１３０２，Ｙｅｓ）、指定されたサービスを利用可能サービスリスト１７に追加する（ステップＳ１３０３）。
【０１０４】
その後、更新命令がワークプレース属性情報１９に対するサービスの追加を含むかどうかを調べる（ステップＳ１３０４）。それを含む場合は（ステップＳ１３０４，Ｙｅｓ）、指定されたサービスをワークプレース属性情報１９の各ワークプレース１６に属するユーザ１０が利用可能なサービスのリストに追加して（ステップＳ１３０５）、連携サービス組合せ抽出プログラム１４を起動する（ステップＳ１３０６）。
【０１０５】
そして、連携サービス組合せ抽出プログラム１４により更新された連携サービスを、ワークプレース管理者６０とユーザ１０のＷｅｂブラウザ１１上に表示して通知する。更新命令がワークプレース属性情報１９に対するサービスの追加を含まない場合は（ステップＳ１３０４，Ｎｏ）、直接ステップＳ１３０６に移行する。
【０１０６】
ステップＳ１３０２において、ワークプレース管理者６０からの更新命令が、利用可能サービスリストに対する新たなサービスの追加ではない場合には（ステップＳ１３０２，Ｎｏ）、その更新命令が、既存のサービスの利用可能サービスリスト１７からの削除であるかどうかを調べる（ステップＳ１３０８）。既存のサービスの削除でない場合には（ステップＳ１３０８，Ｎｏ）、この連携サービスの更新処理を終了する。
【０１０７】
既存のサービスの削除である場合には（ステップＳ１３０８，Ｙｅｓ）、その指定されたサービスを利用可能サービスリスト１７から削除する（ステップＳ１３０９）。続いて、そのサービスが、ワークプレース属性情報１９に登録してあるかどうかを調べ（ステップＳ１３１０）、登録してある場合には（ステップＳ１３１０，Ｙｅｓ）、その指定されたサービスをワークプレース属性情報１９から削除する（ステップＳ１３１１）。
【０１０８】
指定されたサービスを削除した後、それを含む連携サービスを連携サービス組合せ情報１５から削除する（ステップＳ１３１２）。指定されたサービスをワークプレース属性情報１９に登録していない場合は（ステップＳ１３１０，Ｎｏ）、そのままステップＳ１３１２に移行する。ステップＳ１３１２が終了した後は、ステップＳ１３０７に移行し、更新された連携サービスを、ワークプレース管理者６０とユーザ１０のＷｅｂブラウザ１１上に表示して通知する（ステップＳ１３０７）。
【０１０９】
次に、連携サービスを形成する各サービスの利用頻度を基に有用な連携サービスを選択する連携サービスの選択手順を具体的に説明する。図１４は、連携サービスを構成する各サービスの利用頻度を基に有用な連携サービスを選択する連携サービスの選択手順を示すフローチャートである。同図に示すように、まず連携サービス組合せ抽出プログラム１４は、連携サービスの探索を行う（ステップＳ１４０１）。この具体的な探索手順は、図８において説明したものと同様である。
【０１１０】
続いて、探索によって得られた複数の連携サービスの並べ替えの実行をユーザ１０が要求しているかどうかを調べる（ステップＳ１４０２）。ユーザ１０がそれを要求している場合には（ステップＳ１４０２，Ｙｅｓ）、複数の連携サービスの中から一つを選択し（ステップＳ１４０３）、その連携サービスを構成する各サービスの利用頻度をサービス利用履歴情報２０から取得する（ステップＳ１４０４）。ここで、各サービスの利用頻度としては、サービスを提供する各サーバ（サーバＡ７２ａ〜サーバＤ７２ｄ）が起動してからの累計利用頻度や、あるいはある一定期間中の利用頻度などを考えることができる。
【０１１１】
その後、その連携サービスを構成する各サービスの利用頻度の合計値を計算する（ステップＳ１４０５）。そして、すべての連携サービスについて合計値の計算が終了したかどうかを調べ（ステップＳ１４０６）、計算が終了した場合には（ステップＳ１４０６，Ｙｅｓ）、利用頻度の合計値の大きい順に複数の連携サービス手順を並べ替える（ステップＳ１４０７）。
【０１１２】
続いて、ユーザ１０にその並べ替えられた連携サービスの一覧を提示し、ユーザ１０に必要な連携サービスの選択を促す（ステップＳ１４０８）。そして、ユーザ１０により選択された連携サービスを連携サービス組合せファイルに連携サービス組合せ情報１５として登録して（ステップＳ１４０９）、連携サービスの選択処理を終了する。ステップＳ１４０２において、ユーザ１０が連携サービスの並べ替えの実行を要求していない場合には（ステップＳ１４０２，Ｎｏ）、そのままステップＳ１４０８に移行し、ユーザ１０に必要な連携サービスの選択を促す。
【０１１３】
このようにすることで、連携サービスの数が多数となっても、ユーザ１０は頻繁に使用されるサービスから構成される、ユーザ１０にとって有用と考えられる連携サービスを抽出し利用することができるようになる。
【０１１４】
ここで、図１４の説明では、複数の連携サービスを並べ替える指標として、連携サービスを構成する各サービスの利用頻度の合計値を選んだが、その合計値を連携サービスを構成するサービスの数で除した平均利用頻度を選ぶことも可能である。このようにすることで、各サービスの利用頻度は低いが長い連携からなる、連携サービス手順を選択する可能性を低めることができる。
【０１１５】
次に、同一の作業を行うことのできる複数の連携サービスが抽出された場合に、重複した連携サービスのうち最適なものを選択する選択処理について説明する。図１５は、同一の作業を行うことのできる複数の連携サービスが抽出された具体的な例であり、図１６は、重複した連携サービスのうち最適なものを選択する選択処理の処理手順を示すフローチャートである。
【０１１６】
図１５に示すように、サービス連携装置１２で利用可能なサービス群３０として、メール受信サービス９４・電子掲示板サービス９５・ファイル共有サービス９６・スケジューラサービス９７・スケジュール情報抽出サービスＡ９８ａ・スケジュール情報抽出サービスＢ９８ｂ・スケジュール情報抽出サービスＣ９８ｃの７つが登録されている。そして、製品開発部の製品開発ワークプレースで利用可能なサービス群１００としては、メール受信サービス９４・電子掲示板サービス９５・ファイル共有サービス９６・スケジューラサービス９７の４つが登録されている。
【０１１７】
また、サービス属性情報２１として、サービス属性情報ファイル１０１に各サービスの入出力データの形式情報が蓄積されている。具体的には、メール受信サービス９４では入力データがなく、出力データの形式はメール形式であり、スケジュール情報抽出サービスＡ９８ａでは入力データの形式はメール形式で、出力データの形式はスケジュール形式であり、スケジュール情報抽出サービスＢ９８ｂでは入力データの形式はメール形式で、出力データの形式は電子掲示板形式であり、スケジュール情報抽出サービスＣ９８ｃでは入力データの形式は電子掲示板形式で、出力データの形式はスケジュール形式であり、スケジューラサービス９７の入力データと出力データの形式はともにスケジュール形式であり、電子掲示板サービス９５の入力データと出力データの形式はともに電子掲示板形式である、といった情報が蓄積されている。
【０１１８】
連携サービス組合せ抽出プログラム１４は、図１０で説明したように、連携サービスを構成する中間サービス４２を探索する。この例では、メール受信サービス９４をスタートサービス４１とし、スケジューラサービス９７をゴールサービス４３とするものに対し、２つの連携サービスが探索されている。
【０１１９】
１つ目は、メール受信サービス９４・スケジュール情報抽出サービスＡ９８ａ・スケジューラサービス９７と連携されるものであり、２つ目は、メール受信サービス９４・スケジュール情報抽出サービスＢ９８ｂ・電子掲示板サービス９５・スケジュール情報抽出サービスＣ９８ｃ・スケジューラサービス９７と連携されるものである。なお、ここでは説明を簡略化するため、ユーザ属性情報１８とワークプレース属性情報１９を参照して行う各サービスの設定に関しては考えないこととする。
【０１２０】
この場合、２つ目の連携サービス手順では、１つ目で行うことができる作業に加えて電子掲示板にスケジュールを掲載する作業を行うことができる。ただし、ユーザ１０がそれを必要とせず、メールの受信作業とスケジューラへの登録作業のみで事足りる場合には、ユーザ１０にとっては１つ目の連携サービス手順と重複するものであり、余分な電子掲示板サービス９５が入っているだけかえって処理に時間がかかる。このような状況では、ユーザ１０にとって最適な連携サービス手順を自動的に選択することができれば、ユーザ１０の連携サービス手順の選択を容易にし、効率的に作業を行うことができるようになる。
【０１２１】
上記のことを実現するために、図１６を用いて、重複した連携サービスのうち最適なものを選択する選択処理の処理手順を説明する。まず、ユーザが、必要なサービスをある連携サービス上で指定する（ステップＳ１６０１）。図１５の例では、メール受信サービス９４とスケジューラサービス９７を指定する。続いて、それらのサービスを含み、少なくとも同じ作業を実現することのできる連携サービスを検索し（ステップＳ１６０２）、連携サービスがあるかどうかを調べる（ステップＳ１６０３）。
【０１２２】
連携サービスがあった場合には（ステップＳ１６０３，Ｙｅｓ）、その連携サービスを構成する各サービスの平均処理時間をサービス利用履歴情報２０より取得する（ステップＳ１６０４）。この平均処理時間は、各サービスが呼び出されるたびに、個々のサービスでの処理に要した時間をサービス利用履歴情報２０に蓄積しておき、平均時間を計算することで容易に求めることができる。その後、各サービスの平均処理時間の和を算出し（ステップＳ１６０５）、ステップＳ１６０２に移行する。
【０１２３】
連携サービスがなかった場合には（ステップＳ１６０３，Ｎｏ）、ユーザがサービスの指定に使用した連携サービスを含めて、２つ以上の連携サービスがあるかどうかを調べる（ステップＳ１６０６）。そして、連携サービスが２つ以上あった場合は（ステップＳ１６０６，Ｙｅｓ）、その中から平均処理時間の和が最小である連携サービスを選択し（ステップＳ１６０７）、連携サービスの選択処理を終了する。連携サービスが２つ以上なかった場合には（ステップＳ１６０６，Ｎｏ）、そのまま連携サービスの選択処理を終了する。
【０１２４】
ここでは、ユーザ１０に最適な連携サービスとして、平均処理時間の和が最小になるものを選択した。これにより、ユーザ１０は重複した連携サービス手順のうち処理時間が最も短いことが期待できる連携サービスを選択することができ、効率的に作業を進めることができる。
【０１２５】
また、この選択方法は他にも考えられ、例えば、連携サービスを構成するサービスの数の和が最小となるものを選択することなどが挙げられる。この場合には、各サービスの処理時間を蓄積する必要がないので、記憶容量を節約できるほか、サービスの数の和が最小のものを選択するため、処理時間が短いことが期待できる連携サービスを選択することができ、効率的に作業を進めることができる。
【０１２６】
本実施の形態では、作業環境を限定したワークプレース１６を利用して連携サービスを抽出する場合の説明を行ってきたが、ワークプレース１６を用いないで連携サービスを抽出することも可能である。この場合、サービス連携装置１２は、ネットワークに接続されたサービスを提供する各サーバに入出力データの形式を問い合わせるか、あるいは各ユーザ１０が利用した個々のサービスの利用履歴とそのサービスの入出力情報および設定情報とを記憶し、そこから各サービスの入出力データの形式と設定情報とを取得して、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として容易に抽出することができる。
【０１２７】
また、本実施の形態では、ワークグループ管理者６０がネットワーク上のサービス２３を必要時に追加して利用可能サービスリスト１７およびワークプレース属性情報１９を更新することとしたが、各ユーザ１０がワークプレース１６経由以外で使用したサービスの履歴を記憶し、使用頻度の多いものから利用可能サービスリスト１７とワークプレース属性情報１９に追加してそれらを更新することもできる。
【０１２８】
ただし、ワークプレース属性情報１９に追加する場合には、どのワークプレース１６に関連したサービスかを知る必要があり、この場合ユーザ１０がそのサービスが関連するワークプレース１６を指定する。これにより、ユーザ１０の実際の使用状況に即したサービスを利用可能サービスリスト１７とワークプレース属性情報１９に追加することができ、ユーザ１０にとってより有益な連携サービスを提供することが可能となる。
【０１２９】
更に、本実施の形態では、連携サービスを構成するサービスのユーザ属性情報１８あるいはワークプレース属性情報１９を参照して行う設定を連携サービス手順の探索時に行うこととしたが、それを連携サービスの実行時に行うこともできる。この場合、連携サービスの探索時には、設定を行うことで各サービスの連携が可能になるかどうかを調べることのみを行う。これにより、各サービスを提供しているサーバに、設定がなされたサービスを常に記憶して保持することが不要となり、サーバの記憶容量を低減することができる。
【０１３０】
上述してきたように、本実施の形態に係るサービス連携装置は、ユーザ１０が利用可能なサービスのあらゆる組合せについて入出力の形式や設定情報を調べて連携可能性を探り、その結果得られた連携サービスをユーザ１０に提示することとしたので、連携サービスを容易にかつ効率的に抽出してユーザ１０に提示することができ、ユーザ１０はそれらを単に選択するだけで効率良く連携サービスを実行させることがができる。
【０１３１】
（付記１）異なるサービスをそれぞれ提供する複数のサーバ装置と、所望のサーバ装置からサービスの提供を受けるクライアント装置とが所在するネットワークに接続されたサービス連携装置であって、
あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出する抽出手段と、
前記抽出手段により抽出された連携結果に基づいて前記サービスへのアクセス順序を前記クライアント装置に通知するアクセス順序通知手段と、
を備えたことを特徴とするサービス連携装置。
【０１３２】
（付記２）前記クライアント装置を利用するユーザの作業環境に関連する複数のサービスを登録したリストを記憶するリスト記憶手段と、をさらに備え、前記抽出手段は、前記リスト記憶手段に登録した複数のサービスの中から前記連携関係を有するサービスの組合せを抽出することを特徴とする付記１に記載のサービス連携装置。
【０１３３】
（付記３）前記抽出手段は、各サービスの入力と出力のデータ形式を記憶したデータ形式記憶手段を備え、前記データ形式記憶手段に記憶した各サービスの入力と出力のデータ形式に基づいて、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出することを特徴とする付記１または２に記載のサービス連携装置。
【０１３４】
（付記４）前記抽出手段は、各サービスが要するユーザに係るユーザ情報を記憶するユーザ情報記憶手段をさらに備え、前記データ形式記憶手段に記憶した各サービスの入力と出力のデータ形式並びに前記ユーザ情報記憶手段に記憶したユーザ情報に基づいて、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出することを特徴とする付記３に記載のサービス連携装置。
【０１３５】
（付記５）前記抽出手段は、前記リスト記憶手段に記憶した前記ユーザの作業環境に関連する複数のサービスを登録したリストが更新された場合に、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを再抽出することを特徴とする付記２〜４のいずれか一つに記載のサービス連携装置。
【０１３６】
（付記６）前記抽出手段は、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを複数抽出した場合に、各組合せを形成するサービスの利用頻度の総和に基づいて各組合せをその利用頻度の大きなものから順に並び替えて抽出することを特徴とする付記１〜５のいずれか一つに記載のサービス連携装置。
【０１３７】
（付記７）前記クライアント装置が、前記アクセス順序通知手段により通知された連携結果に含まれるサービスの組合せの実行を前記サービス連携装置に要求した際に、前記サービス連携装置は、前記サービスの組合せを形成する第１のサービスを提供する第１のサーバ装置に対してアクセスして該第１のサーバ装置から出力結果を受け取るとともに、該第１のサービスに連携する第２のサービスを提供する第２のサーバ装置に対して前記出力結果を出力するフローエンジンをさらに備えたことを特徴とする付記１〜６のいずれか一つに記載のサービス連携装置。
【０１３８】
（付記８）前記抽出手段は、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せで、該サービスの組合せを構成するサービスのうちユーザが所望する指定されたサービスを少なくとも含む前記サービスの組合せが複数抽出された場合に、該組合せを構成するサービスの数が最小となる前記サービスの組合せを抽出すること特徴とする付記１〜７のいずれか一つに記載のサービス連携装置。
【０１３９】
（付記９）前記抽出手段は、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せで、該サービスの組合せを構成するサービスのうちユーザが所望する指定されたサービスを少なくとも含む前記サービスの組合せが複数抽出された場合に、該サービスの組合せの処理に係る負荷が最小となる前記サービスの組合せを抽出することを特徴とする付記１〜７のいずれか一つに記載のサービス連携装置。
【０１４０】
（付記１０）前記抽出手段は、前記サービスの組合せを構成する各サービスの処理時間に係る履歴を記憶する処理時間記憶手段をさらに備え、前記負荷は前記処理時間記憶手段により記憶された各組合せを構成する前記各サービスの平均処理時間の総和であることを特徴とする付記９に記載のサービス連携装置。
【０１４１】
（付記１１）異なるサービスをそれぞれ提供するネットワークに接続された複数のサーバ装置から該ネットワークに接続されたクライアント装置にサービスを提供するサービス連携方法であって、
あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出する抽出工程と、
前記抽出工程により抽出された連携結果に基づいて前記サービスへのアクセス順序を前記クライアント装置に通知するアクセス順序通知工程と、
を含んだことを特徴とするサービス連携方法。
【０１４２】
（付記１２）前記クライアント装置を利用するユーザの作業環境に関連する複数のサービスを登録したリストを記憶するリスト記憶工程と、をさらに含み、前記抽出工程は、前記リスト記憶工程により登録した複数のサービスの中から前記連携関係を有するサービスの組合せを抽出することを特徴とする付記１１に記載のサービス連携方法。
【０１４３】
（付記１３）異なるサービスをそれぞれ提供するネットワークに接続された複数のサーバ装置から該ネットワークに接続されたクライアント装置にサービスを提供するサービス連携方法をコンピュータに実行させるプログラムであって、
あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出する抽出工程と、
前記抽出工程により抽出された連携結果に基づいて前記サービスへのアクセス順序を前記クライアント装置に通知するアクセス順序通知工程と、
をコンピュータに実行させるプログラム。
【０１４４】
（付記１４）前記クライアント装置を利用するユーザの作業環境に関連する複数のサービスを登録したリストを記憶するリスト記憶工程と、をさらに含み、前記抽出工程は、前記リスト記憶工程により登録した複数のサービスの中から前記連携関係を有するサービスの組合せを抽出することをコンピュータに実行させることを特徴とする付記１３に記載のプログラム。
【０１４５】
【発明の効果】
以上説明したように、請求項１の発明によれば、あるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出し，その抽出された連携結果に基づいて前記サービスへのアクセス順序を前記クライアント装置に通知することとしたので、ユーザに手間をかけることなく様々なサービスの組合せを容易に抽出し、それらのサービスの利用機会をユーザが逸しないようユーザに通知することが可能なサービス連携装置が得られるという効果を奏する。
【０１４６】
また、請求項２の発明によれば、ユーザの作業環境に関連する複数のサービスを登録したリストを記憶し、そのリストに登録したサービスの中から連携関係を有するサービスの組合せを抽出することとしたので、ユーザの作業環境に関連のあるサービスの組合せのみを容易にかつ効率的に抽出することが可能なサービス連携装置が得られるという効果を奏する。
【０１４７】
また、請求項３の発明によれば、各サービスの入力と出力のデータ形式を記憶し、それに基づいてあるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを連携結果として抽出することとしたので、各サービスに入出力のデータ形式をその都度問い合わせる必要がなく、効率的にサービスの組合せを抽出することが可能なサービス連携装置が得られるという効果を奏する。
【０１４８】
また、請求項４の発明によれば、各サービスが必要とするユーザに係るユーザ情報を記憶し、それと各サービスの入力と出力のデータ形式に基づいてあるサービスの出力結果が他のサービスの入力となり得る連携関係を有するサービスの組合せを抽出することとしたので、各サービスがユーザ情報を必要とする場合に、ユーザがその都度設定を行う必要がなくなり、容易にかつ効率的にサービスの組合せを探索することが可能なサービス連携装置が得られるという効果を奏する。
【０１４９】
また、請求項５の発明によれば、クライアント装置がアクセス順序通知手段により通知された連携結果に含まれるサービスの組合せの実行を前記サービス連携装置に要求した際に、そのサービスの組合せを形成する第１のサービスを提供する第１のサーバ装置にアクセスして出力結果を受け取るとともに、その出力結果を第１のサービスに連携する第２のサービスを提供する第２のサーバ装置に対して出力することとしたので、ユーザは各サービスの入出力データの形式を気にする必要がなく、連携結果の中から所望するサービスの組合せを容易に実行させることが可能なサービス連携装置が得られるという効果を奏する。
【図面の簡単な説明】
【図１】本実施の形態に係るサービス連携装置の概念を示す概念図である。
【図２】図１に示したワークプレースの概念を説明する概念図である。
【図３】連携サービスを構成するサービスの組合わせの抽出を説明する説明図である。
【図４】連携サービスを構成するサービスの設定を説明する説明図である。
【図５】サービス連携装置におけるサービス利用履歴の取得について説明する説明図である。
【図６】サービス連携装置における連携サービス組合せ情報の更新について説明する説明図である。
【図７】本実施の形態に係るサービス連携装置の構成を示す機能ブロック図である。
【図８】図３に示した連携サービスを形成するサービスの組合せの抽出手順を示すフローチャートである。
【図９】図１に示したサービス連携装置の具体的な例を示す図である。
【図１０】図９に示した具体的な例における、連携サービスを形成するサービスの組合わせの抽出を説明する説明図である。
【図１１】サービス連携装置がユーザにサービスを提供する場合の処理手順を示すフローチャートである。
【図１２】サービス連携装置内のフローエンジンによる連携サービス実行処理の処理手順を示すフローチャートである。
【図１３】図６に示した連携サービスの更新処理の処理手順を示すフローチャートである。
【図１４】連携サービスを形成する各サービスの利用頻度を基に有用な連携サービスを選択する連携サービスの選択手順を示すフローチャートである。
【図１５】同一の作業を行うことのできる複数の連携サービスが探索された具体的な例を示す図である。
【図１６】重複した連携サービスのうち最適なものを選択する選択処理の処理手順を示すフローチャートである。
【符号の説明】
１０    ユーザ
１０ａ〜１０ｄ    ユーザＡ〜ユーザＤ
１１    Ｗｅｂブラウザ
１１ａ〜１１ｄ    ＷｅｂブラウザＡ〜ＷｅｂブラウザＤ
１２    サービス連携装置
１３    利用可能サービス管理プログラム
１４    連携サービス組合せ抽出プログラム
１５    連携サービス組合せ情報
１６    ワークプレース
１７    利用可能サービスリスト
１８    ユーザ属性情報
１９    ワークプレース属性情報
２０    サービス利用履歴情報
２１    サービス属性情報
２２    フローエンジン
２３ａ〜２３ｄ    サービスＡ〜サービスＤ
３０    利用可能なサービス群
３１    ワークプレースで利用可能なサービス群
３２    スタートサービス候補群
３３    中間サービス候補群
３４    ゴールサービス候補群
４１    スタートサービス
４２    中間サービス
４３    ゴールサービス
６０    ワークプレース管理者
７０    クライアント端末
７１    ネットワーク
７２ａ〜７２ｄ    サービスを提供するサーバＡ〜サービスを提供するサーバＤ
７３    インターフェース部
７４    属性情報管理部
７５    利用可能サービス管理部
７６    連携サービス組合せ抽出部
７７    ワークプレースサービス管理部
７８    ワークプレース選択部
７９    サービス通知・選択部
８０    サービス呼び出し部
８１    連携サービス呼び出し部
８２    入出力データ送受信部
８３    データベース
９０    製品開発ワークプレース
９１    ユーザ属性情報ファイル
９２    ワークプレース属性情報ファイル
９３    サービス利用履歴情報ファイル
９４    メール受信サービス
９５    電子掲示板サービス
９６    ファイル共有サービス
９７    スケジューラサービス
９８    スケジュール情報抽出サービス
９８ａ〜９８ｃ    スケジュール情報抽出サービスＡ〜スケジュール情報抽出サービスＣ
１００    製品開発ワークプレースで利用可能なサービス群
１０１    サービス属性情報ファイル
【図１】
2004164313.tif 000003
【図２】
2004164313.tif 000004
【図３】
2004164313.tif 000005
【図４】
2004164313.tif 000006
【図５】
2004164313.tif 000007
【図６】
2004164313.tif 000008
【図７】
2004164313.tif 000009
【図８】
2004164313.tif 000010
【図９】
2004164313.tif 000011
【図１０】
2004164313.tif 000012
【図１１】
2004164313.tif 000013
【図１２】
2004164313.tif 000014
【図１３】
2004164313.tif 000015
【図１４】
2004164313.tif 000016
【図１５】
2004164313.tif 000017
【図１６】
2004164313.tif 000018