(57)【要約】【課題】複数のＷｅｂサービスを連携させた連携サービスを低コストで実現すること。【解決手段】接続先決定装置１の制御部は、連携サービスに対応するユーザの認証状態を、接続先決定要求内のユーザの認証状態が満たしているときに、認可と判定する認可判定処理を実行し、認可判定処理において認可と判定されたときには、検索キーである連携サービスに対応するサービスの接続先を接続先決定要求の送信元へ応答し、認可判定処理において認可と判定されなかったときには、満たさなかったユーザの認証状態を得るための認証サービスの接続先を、接続先決定要求の送信元へ応答する。【選択図】図４
2012212210.tif 000002
【特許請求の範囲】
【請求項１】
複数の連携サービスの実行順序を規定するシナリオをもとに、前記各連携サービスを実現するための接続先サービスを呼び出すシナリオ実行装置と、呼び出された前記接続先サービスを実行するサービス実行装置と、前記連携サービスから前記接続先サービスを決定する接続先決定装置とを有するサービス連携システムに用いられる接続先決定装置であって、
前記連携サービスごとにその連携サービスの実行を許可するために必要なユーザの認証状態を示す認可ポリシデータと、ユーザの認証状態を更新するための認証サービスの接続先を示す認証先リストデータと、前記連携サービスごとにその連携サービスを実行するためのサービスの接続先を示すサービスリストデータとがそれぞれ格納されている記憶部と、
検索キーである前記連携サービスとユーザの認証状態とを含めた接続先決定要求を前記シナリオ実行装置から受信すると、前記認可ポリシデータにおいて検索キーである前記連携サービスに対応するユーザの認証状態を、前記接続先決定要求内のユーザの認証状態が満たしているときに、認可と判定する認可判定処理を実行する認可判定部と、
前記認可判定処理において認可と判定されたときには、前記サービスリストデータから、検索キーである前記連携サービスに対応するサービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答する第１の接続先応答部と、
前記認可判定処理において認可と判定されなかったときには、前記認証先リストデータから、前記認可判定処理において満たさなかったユーザの認証状態を得るための認証サービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答する第２の接続先応答部とを備えることを特徴とする
接続先決定装置。
【請求項２】
前記記憶部には、前記サービスリストデータとして、サービスの接続先に加えて、その接続先サービスについての負荷値が対応づけて格納されており、
前記応答部は、前記サービスリストデータ内に検索キーである前記連携サービスに対応するサービスの接続先が複数存在するときに、そのうちの前記負荷値が最も低い接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答することを特徴とする
請求項１に記載の接続先決定装置。
【請求項３】
前記応答部は、前記接続先サービスを前記接続先決定要求の送信元へ応答する処理について、前記接続先決定要求の送信元である前記シナリオ実行装置と、前記接続先サービスを実行する前記サービス実行装置との間の通信接続をＳＩＰ（Session Initiation Protocol）の第三者呼制御を用いて確立することを特徴とする
請求項１または請求項２に記載の接続先決定装置。
【請求項４】
前記記憶部には、前記サービスリストデータとして、サービスの接続先に加えて、その接続先サービスを呼び出す担当の前記シナリオ実行装置が対応づけて格納されており、
前記応答部は、前記接続先サービスを前記接続先決定要求の送信元へ応答するときに、前記サービスリストデータで応答する前記接続先サービスを担当する前記シナリオ実行装置の識別情報も併せて応答し、
前記接続先決定要求の応答を受けた前記シナリオ実行装置が、担当する前記シナリオ実行装置とは別装置であるときには、応答を受けた前記シナリオ実行装置から担当する前記シナリオ実行装置へと、前記接続先サービスの呼出処理を引き継がせることを特徴とする
請求項１ないし請求項３のいずれか１項に記載の接続先決定装置。
【請求項５】
請求項１ないし請求項４のいずれか１項に記載の接続先決定装置、前記シナリオ実行装置、および、前記サービス実行装置を有するサービス連携システム。
【請求項６】
複数の連携サービスの実行順序を規定するシナリオをもとに、前記各連携サービスを実現するための接続先サービスを呼び出すシナリオ実行装置と、呼び出された前記接続先サービスを実行するサービス実行装置と、前記連携サービスから前記接続先サービスを決定する接続先決定装置とを有するサービス連携システムによる接続先決定方法であって、
前記接続先決定装置の記憶手段には、前記連携サービスごとにその連携サービスの実行を許可するために必要なユーザの認証状態を示す認可ポリシデータと、ユーザの認証状態を更新するための認証サービスの接続先を示す認証先リストデータと、前記連携サービスごとにその連携サービスを実行するためのサービスの接続先を示すサービスリストデータとがそれぞれ格納されており、
前記接続先決定装置の制御部は、
検索キーである前記連携サービスとユーザの認証状態とを含めた接続先決定要求を前記シナリオ実行装置から受信すると、前記認可ポリシデータにおいて検索キーである前記連携サービスに対応するユーザの認証状態を、前記接続先決定要求内のユーザの認証状態が満たしているときに、認可と判定する認可判定処理を実行し、
前記認可判定処理において認可と判定されたときには、前記サービスリストデータから、検索キーである前記連携サービスに対応するサービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答し、
前記認可判定処理において認可と判定されなかったときには、前記認証先リストデータから、前記認可判定処理において満たさなかったユーザの認証状態を得るための認証サービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答することを特徴とする
接続先決定方法。
【請求項７】
前記接続先決定装置の記憶手段には、前記サービスリストデータとして、サービスの接続先に加えて、その接続先サービスについての負荷値が対応づけて格納されており、
前記接続先決定装置の制御部は、前記サービスリストデータ内に検索キーである前記連携サービスに対応するサービスの接続先が複数存在するときに、そのうちの前記負荷値が最も低い接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答することを特徴とする
請求項６に記載の接続先決定方法。
【請求項８】
前記接続先決定装置の制御部は、前記接続先サービスを前記接続先決定要求の送信元へ応答する処理について、前記接続先決定要求の送信元である前記シナリオ実行装置と、前記接続先サービスを実行する前記サービス実行装置との間の通信接続をＳＩＰ（Session Initiation Protocol）の第三者呼制御を用いて確立することを特徴とする
請求項６または請求項７に記載の接続先決定方法。
【請求項９】
前記接続先決定装置の記憶手段には、前記サービスリストデータとして、サービスの接続先に加えて、その接続先サービスを呼び出す担当の前記シナリオ実行装置が対応づけて格納されており、
前記接続先決定装置の制御部は、前記接続先サービスを前記接続先決定要求の送信元へ応答するときに、前記サービスリストデータで応答する前記接続先サービスを担当する前記シナリオ実行装置の識別情報も併せて応答し、
前記接続先決定要求の応答を受けた前記シナリオ実行装置が、担当する前記シナリオ実行装置とは別装置であるときには、応答を受けた前記シナリオ実行装置から担当する前記シナリオ実行装置へと、前記接続先サービスの呼出処理を引き継がせることを特徴とする
請求項６ないし請求項８のいずれか１項に記載の接続先決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、接続先決定装置、接続先決定方法、および、サービス連携システムの技術に関する。
【背景技術】
【０００２】
Ｗｅｂサービスを利用した分散コンピューティングが普及してきている。Ｗｅｂサービスはモジュール間の通信に、Ｗｅｂの一般的なプロトコルであるＨＴＴＰ（Hypertext Transfer Protocol）の上でＸＭＬ（Extensible Markup Language）技術を応用したＳＯＡＰ（Simple Object Access Protocol）を用いるアプリケーションサービスの一形態である。高い信頼性と通信品質を実現するＮＧＮ（Next Generation Network）の出現などもあり、Ｗｅｂサービスによる分散コンピューティングは従来のように企業内といった比較的閉じたネットワーク内だけでなく、広く開かれたネットワーク上でも利用されると見込まれている。
【０００３】
Ｗｅｂサービスの普及に伴い、複数のＷｅｂサービスを連携させた連携サービスを構成するためのプロセス記述言語の開発が進められている。その主なものとして、ＯＡＳＩＳ（Organization for the Advancement of Structured Information Standards）の定めるＷＳ−ＢＰＥＬ（Web Services Business Process Execution Language）や、ＯＭＧのＢＰＭＮ（Business Process Modeling Notation）がある。これらのプロセス記述言語を用い、Ｗｅｂサービスの実行順序をシナリオとして記述することで、連携サービスは定義される。
【０００４】
シナリオの実行装置は、ユーザからのシナリオ実行要求を受けると、シナリオを解釈してＷｅｂサービスを順次実行し、その実行結果をユーザへ提供する。連携サービスを構成する各Ｗｅｂサービスとして自ら提供するＷｅｂサービスだけではなく、他の事業者が提供するＷｅｂサービスも組み合わせることにより、より高機能な連携サービスを安価に実現することができる。
【０００５】
一方で、連携サービスを高機能化、複雑化すると、それに伴い連携させるサービスの数も増加するため、シナリオの実行装置に掛かる処理負荷が大きくなる問題がある。そのため、シナリオの実行装置を複数台配備して分散的に連携サービスを実行する技術が開発されている。
例えば、特許文献１の技術によると、各シナリオの実行装置の処理負荷やネットワーク負荷の状態を監視し、処理負荷が高くなった場合にシナリオの処理量を緩和できるため、システム全体の処理効率の向上が行える。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第７５８４２７６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
シナリオの設計者は、連携サービスとして呼び出すサービスの順序やその呼び出し条件を、正確かつ詳細にシナリオ内に記述する必要がある。そのため、シナリオの設計者は、ユーザの認証状態（認証済みの登録ユーザ、認証前のゲストユーザ）などに応じて、呼び出すサービスを網羅的に把握する必要があり、シナリオの開発コストや運用コストがかかってしまっていた。
【０００８】
そこで、本発明は、前記した問題を解決し、複数のＷｅｂサービスを連携させた連携サービスを低コストで実現することを、主な目的とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明は、複数の連携サービスの実行順序を規定するシナリオをもとに、前記各連携サービスを実現するための接続先サービスを呼び出すシナリオ実行装置と、呼び出された前記接続先サービスを実行するサービス実行装置と、前記連携サービスから前記接続先サービスを決定する接続先決定装置とを有するサービス連携システムに用いられる接続先決定装置であって、
前記接続先決定装置の記憶手段には、前記連携サービスごとにその連携サービスの実行を許可するために必要なユーザの認証状態を示す認可ポリシデータと、ユーザの認証状態を更新するための認証サービスの接続先を示す認証先リストデータと、前記連携サービスごとにその連携サービスを実行するためのサービスの接続先を示すサービスリストデータとがそれぞれ格納されており、
前記接続先決定装置の制御部が、
検索キーである前記連携サービスとユーザの認証状態とを含めた接続先決定要求を前記シナリオ実行装置から受信すると、前記認可ポリシデータにおいて検索キーである前記連携サービスに対応するユーザの認証状態を、前記接続先決定要求内のユーザの認証状態が満たしているときに、認可と判定する認可判定処理を実行し、
前記認可判定処理において認可と判定されたときには、前記サービスリストデータから、検索キーである前記連携サービスに対応するサービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答し、
前記認可判定処理において認可と判定されなかったときには、前記認証先リストデータから、前記認可判定処理において満たさなかったユーザの認証状態を得るための認証サービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答することを特徴とする。
その他の手段は、後記する。
【発明の効果】
【００１０】
本発明によれば、複数のＷｅｂサービスを連携させた連携サービスを低コストで実現することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に関するシナリオとサービスとの関係を示す説明図である。
【図２】本発明の一実施形態に関するサービス連携システムを示す構成図である。
【図３】本発明の一実施形態に関するサービス連携システムを構成する各計算機を示す構成図である。
【図４】本発明の一実施形態に関するサービス連携処理を示すフローチャートである。
【図５】本発明の一実施形態に関するサービス連携処理におけるデータ引継処理の変形例を示すフローチャートである。
【図６】本発明の一実施形態に関するサービス連携処理における接続先決定処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【００１３】
図１は、シナリオとサービスとの関係を示す説明図である。以下、図１を参照して、本実施形態での説明に使用する各用語を明らかにする。
【００１４】
比較例である図１（ａ）は、商品購入サイトを例として、シナリオ内から認証サービスを呼び出す構成を示す。
「シナリオ」は、「開始」と記載された箇所から実行を開始し、破線矢印で示すように接続先の各サービス（ユーザログインなど）を順に呼び出し、「終了」と記載された箇所で実行を終了する一連のサービス呼び出しを定義するプログラムである。
接続先の各サービスには、「カタログ提示ａ」や「注文ｂ」などの商品購入に関する業務サービスと、その業務サービスを実施するために必要な、「ユーザログイン」や「クレジット認証」などの認証サービスと、がそれぞれ存在する。
よって、シナリオの設計者は、業務サービスだけでなく、認証サービスに関する知識を有する必要がある。そして、「ユーザログイン」により特定されたユーザにとっておすすめの商品を選別した「カタログ提示ａ」を実行するといったように、両方の知識を考慮して、シナリオを設計する必要がある。
つまり、図１（ａ）では、事前に決められたＷｅｂサービスを事前に決められたシナリオの順序で実行することしかできない。
【００１５】
図１（ｂ）は、図１（ａ）のシナリオに対して、「接続先決定処理」を仲介させることで、シナリオから認証サービスを分離する構成を示す。
図１（ｂ）での「シナリオ」は、開始から始めて、「カタログ提示Ａ」→「注文Ｂ」→「代金決済Ｃ」→終了の順にサービスが呼び出される。ここで、シナリオの内部に記述される「カタログ提示Ａ」などのサービスは、直接サービスの呼び出し先を示す代わりに、呼び出すサービスの種別（サービスの特定用情報）を示す。以下、シナリオの内部に記述される各サービスを、「連携サービス」と呼ぶ。
【００１６】
「接続先決定処理」は、連携サービスの名称（カタログ提示Ａなど）を検索キーとして、その連携サービスの実行に必要な接続先のサービスを特定する処理である。例えば、連携サービス「カタログ提示Ａ」の実行には、「カタログ提示ａ」という業務サービスを呼び出す必要があり、さらにその前処理として、「ユーザログイン」という認証サービスを呼び出す必要がある。以下、呼び出されるエンドポイント側の業務サービスと、認証サービスとを総称して、「接続先サービス（適宜、接続先と略す）」と呼ぶ。接続先サービスは、例えば、実行要求の送信と、実行結果の応答の送信とを介する論理インタフェースに、ＳＯＡＰを利用するＷｅｂサービスとして実現される。
【００１７】
図１（ｂ）で示される本実施形態の主な特徴として、シナリオ内の連携サービスと、接続先決定処理により決定される接続先サービスとをそれぞれ分けて定義することが挙げられる。これにより、シナリオ設計者は、認証サービスを意識せず、業務の処理順序に集中してシナリオを設計すればよいとともに、「接続先決定処理」の設定者は、連携サービスの処理順序を意識せず、連携サービスから接続先サービス（認証サービス、業務サービス）を特定する設定に集中してサービスを管理すればよい。つまり、シナリオ設計者と「接続先決定処理」の設定者との役割分担を明確に区別できるので、設計効率（開発効率）が向上する。
【００１８】
図２は、サービス連携システムを示す構成図である。サービス連携システムは、接続先決定装置１と、サービス実行装置２と、シナリオ実行装置３と、ユーザ端末４とがそれぞれネットワークで接続されて構成される。サービス連携システムを構成する各装置は、図３で後記する計算機として構成される。
サービス連携システムを構成する各装置の台数は、図２で例示した台数に限定されず、１台以上の任意の台数としてもよい。同じ種類の装置をサービス連携システム内に冗長構成として複数台配置することにより、その複数台のうちの一部に障害が発生しても、残りの装置が処理を継続することにより、耐障害性が向上する。
さらに、接続先決定装置１と、サービス実行装置２と、シナリオ実行装置３とが、それぞれ異なる装置として示されているが、１台の物理的な計算機装置の内部に、前記した３種類の装置のうちの２種類以上の装置を収容してもよい。これにより、装置の設定スペースや配線のケーブル本数を削減し、システムを簡略化することができる。
【００１９】
ユーザ端末４は、連携サービスを記述したシナリオの実行要求をシナリオ実行装置３へ送信し、その実行結果をシナリオ実行装置３から受信する装置である。
シナリオ実行装置３は、ユーザ端末４からシナリオの実行要求を受けてシナリオを実行し、そのシナリオ内に記述された連携サービスを実現するための接続先サービスの実行をサービス実行装置２に依頼する装置である。
サービス実行装置２は、シナリオ実行装置３から依頼された各接続先サービスを実行するためのサービス実行部２１がディプロイ（またはインストール）されている装置である。本実施形態では、１台のサービス実行装置２内に１つ以上のサービス実行部２１が含まれている。なお、複数台のサービス実行装置２が、同じサービス内容のサービス実行部２１を提供することで、負荷が集中するサービス内容の負荷分散を実現できる。
接続先決定装置１は、図１（ｂ）の「接続先決定処理」で説明したように、連携サービスを検索キーとして、その連携サービスを実現するための接続先サービスを接続先として決定する装置である。
【００２０】
シナリオ実行装置３は、接続先要求部３１と、シナリオ格納部３４と、要求先リスト３２（その格納部）と、シナリオ実行部３３と、引継情報処理部３５とを有する。
【００２１】
接続先要求部３１は、シナリオ実行部３３が読み込んだ連携サービスを検索キーとして、接続先決定装置１（接続先応答部１４）へ問い合わせることで、その連携サービスの実行に必要な接続先サービスを取得し、シナリオ実行部３３へ通知する。
シナリオ格納部３４は、実行する連携サービスの定義情報であるシナリオを格納する。
要求先リスト３２は、接続先決定装置１が問い合わせる接続先決定装置１（接続先要求部３１）の特定情報（ＵＲＬやＩＰアドレスなど）を、接続先決定装置１ごとに格納するリストである。
【００２２】
シナリオ実行部３３は、シナリオ格納部３４内のシナリオに従って、実行する連携サービスを特定する。そして、シナリオ実行部３３は、接続先要求部３１から通知された接続先サービスに対応するサービス実行部２１に対して、サービスの実行を要求し、その実行結果をサービス実行部２１から受信する。さらに、シナリオ実行部３３は、連携サービスの実行が終了すると、シナリオの実行要求を送信してきたユーザ端末４へ、連携サービスの実行結果を送信する。
【００２３】
引継情報処理部３５は、シナリオ実行装置３が複数台存在する構成において、他装置のシナリオ実行装置３とデータ連係をするために、シナリオ実行装置３内のメモリ内容（計算経過データ）を引継情報として、他装置のシナリオ実行装置３と送受信するための処理部である。そのため、引継情報処理部３５は、引継情報を生成する。
なお、図２では、２台のシナリオ実行装置３のうちの１台（下部に記載）について、引継情報処理部３５以外の各構成要素の図示を省略しているが、他のシナリオ実行装置３と同じ構成要素を有する。
【００２４】
接続先決定装置１は、認可判定部１１と、ポリシ格納部１２と、認証先リスト１３（その格納部）と、接続先応答部１４と、サービス状況収集部１５と、サービスリスト１６（その格納部）とを有する。
接続先決定装置１は、制御部（認可判定部１１、接続先応答部１４、サービス状況収集部１５を実行する）と、記憶部（ポリシ格納部１２、認証先リスト１３、サービスリスト１６を格納する）とを有するコンピュータとして構成される。
認可判定部１１は、クライアントユーザの認証状態が、接続先サービス（業務サービス）ごとに定められたセキュリティポリシを満たしているときに、認可されていると判断する。クライアントユーザの認証状態とは、例えば、Identity  Providerがクライアントユーザを認証した際に発行する認証用のcookieやSAML（Security  Assertion  Markup  Language）の認証アサーションを意味する。
ポリシ格納部１２は、接続先サービス（業務サービス）ごとに定められたセキュリティポリシを格納する。セキュリティポリシとは、例えば、図１（ｂ）では、代金決済ｃという業務サービスには、クレジット認証に成功したというクライアントユーザの認証状態が必要である、という旨である。
認証先リスト１３は、クライアントユーザの認証状態を得るために呼び出される接続先サービスとしての認証サービスのリストである。
【００２５】
接続先応答部１４は、接続先要求部３１から連携サービスを検索キーとした接続先の問合せを受け、認可判定部１１での認可結果などから、連携サービスを実行するための接続先サービスを決定し、接続先要求部３１へ応答する。
サービス状況収集部１５は、サービス実行部２１のサービス状況を、サービス実行部２１から収集して、サービスリスト１６へと書き出す。
サービスリスト１６は、サービス実行部２１のサービスごとに、そのサービスに関する情報（接続先のＵＲＬや、サービス状況など）を対応づけたリストである。
【００２６】
【表１】
2012212210.tif 000003
【００２７】
表１は、接続先決定装置１内に格納される各データ内容（ポリシ格納部１２、認証先リスト１３、サービスリスト１６）を示す表である。
【００２８】
ポリシ格納部１２は、検索キーである連携サービス名と、その連携サービスを受けるための認可ポリシとの対応データをポリシとして格納する。例えば、「ＷｅｂサービスＡ」の実行には、認証は必要ない。一方、「ＷｅｂサービスＢ」の実行には、その実行前に、２つの認証「ＩＤ／ＰＷ認証、ＰＫＩ認証」を受けていなければならない。なお、認可ポリシとして、認証のタイプ（ＰＫＩ認証など）を示す情報だけではなく、「どのアイデンティティプロバイダからの認証が必要」といったような、認証の詳細情報を保持してもよい。
【００２９】
認証先リスト１３は、ポリシ格納部１２の認可ポリシで指定された認証種別ごとに、その認証サービスの接続先（「http://」から始まるＵＲＬで表記）と、その接続先のサービス実行部２１ごとの負荷値とを対応づけている。なお、負荷値の計算に用いられるパラメータとして、各サービス実行装置２のＣＰＵ使用率や、サービス実行装置２とシナリオ実行装置３との間に確立されたコネクションの確立数、ネットワーク遅延、ネットワーク帯域の使用率、などを利用することができる。
【００３０】
サービスリスト１６は、検索キーである連携サービス名と、その連携サービスを実行するための接続先サービスを呼び出すシナリオ実行装置３（以下、「担当実行装置」とする）と、そのシナリオ実行装置３から呼び出される接続先サービスと、その接続先のサービス実行部２１ごとの負荷値とを対応づけている。
【００３１】
なお、認証先リスト１３やサービスリスト１６内の「接続先」列には、ＵＲＬのみを保持しているが、ＵＲＬに加え、通信用論理インタフェースを構築するための情報を保持してもよい。通信用論理インタフェースを構築するための情報とは、例えば、ＷＳＤＬ（Web Services Description Language）に従って記述される。
【００３２】
また、認証先リスト１３やサービスリスト１６内の「接続先負荷値」列に格納されている負荷値は、大きい値であるほど負荷が大きいので、負荷分散を目的とするときには、選ばれなくなる。さらに、「接続先負荷値」内の負荷値は、全ての接続先サービスについての負荷を網羅する必要はなく、自身で管理する負荷値だけを格納してもよい。「接続先負荷値」列に格納されている負荷値が一部の接続先サービスについての負荷であるときには、以下の問合せローミング処理（処理１）〜（処理４）により、低負荷の接続先サービスを決定することができる。
【００３３】
複数台の接続先決定装置１のうち、接続先の問合せを受け付ける順序に応じて、「第１の接続先決定装置１」、「第２の接続先決定装置１」…とする。
（処理１）第１の接続先決定装置１で管理する接続先負荷値のうち、低負荷（所定しきい値以下の負荷）である接続先サービスが存在するときには、その低負荷の接続先サービスを採用する。
（処理２）第１の接続先決定装置１で管理する接続先負荷値のうち、低負荷である接続先サービスが存在しないときには、他装置である第２の接続先決定装置１に対して、低負荷の接続先サービスが第２の接続先決定装置１内で管理する負荷値に存在するかをローミングする。
（処理３）第２の接続先決定装置１で管理する接続先負荷値のうち、低負荷である接続先サービスが存在するときには、その低負荷の接続先サービスを採用する。
（処理４）第２の接続先決定装置１で管理する接続先負荷値のうち、低負荷である接続先サービスが存在しないときには、他装置である第３の接続先決定装置１に対して、低負荷の接続先サービスが第３の接続先決定装置１内で管理する負荷値に存在するかをローミングする。
（…以下、接続先決定装置１を変えつつ、再帰的に繰り返す）
【００３４】
【表２】
2012212210.tif 000004
【００３５】
表２は、シナリオ実行装置３内に格納される各データ（要求先リスト３２、シナリオ格納部３４）を示す表である。
【００３６】
要求先リスト３２は、サービス連携システム内の接続先決定装置１のリストとして、装置名称とＵＲＬとの対応データを接続先決定装置１ごとに格納するデータである。
シナリオ格納部３４は、表の１行を１つのシナリオとして定義する情報を格納する。例えば、表２のシナリオαは、シナリオ内容である以下の５行の連携サービスを順に実行する旨を規定する。
【００３７】
（１行目）入力として文字列を受信して変数ｖａｌ０に格納する。
（２行目）ＷｅｂサービスＡをｖａｌ０を用いて実行した結果を変数ｖａｌ１に格納する。
（３行目）ＷｅｂサービスＢをｖａｌ０を用いて実行した結果を変数ｖａｌ２に格納する。
（４行目）ＷｅｂサービスＣをｖａｌ１とｖａｌ２を用いて実行した結果を変数ｖａｌ３に格納する。
（５行目）最終結果としてｖａｌ３を応答する。
なお、シナリオの記述様式は、表２に示した記述様式に限定されず、ＢＰＥＬやＢＰＭＮなどの様々な記述様式を用いてもよい。
【００３８】
図３は、サービス連携システムを構成する各計算機を示す構成図である。
【００３９】
計算機９は、ＣＰＵ９１と、メモリ９２と、ハードディスクなどの外部記憶装置９３と、インターネットやＬＡＮ（Local Area Network）などのネットワーク９９ａを介して他の装置と通信を行うための通信装置９４と、キーボードやマウスなどの入力装置９５と、モニタやプリンタなどの出力装置９６と、可搬性を有する記憶媒体９９ｂの読取装置９７とが、内部バス９８を介して接続されている。記憶媒体９９ｂは、例えば、ＩＣカードやＵＳＢメモリである。
【００４０】
計算機９は、図２で示した各処理部の機能を実現するためのプログラムをメモリ９２上にロードし、ＣＰＵ９１により実行する。そのプログラムは、あらかじめ、計算機９の外部記憶装置９３に格納されていてもよいし、実行時に、読取装置９７や通信装置９４を介して、他の装置から外部記憶装置９３にダウンロードされてもよい。
そして、プログラムは一旦外部記憶装置９３に格納された後、そこからメモリ上にロードされてＣＰＵ９１に実行されてもよいし、あるいは外部記憶装置９３に格納されることなく、直接メモリ上にロードされて、ＣＰＵ９１に実行されてもよい。
【００４１】
図４は、サービス連携処理を示すフローチャートである。
【００４２】
ユーザ端末４は、クライアントユーザからの操作を受け、シナリオ実行要求をシナリオ実行装置３へ送信する（Ｓ１１）。
シナリオ実行部３３は、Ｓ１１で受信したシナリオ実行要求で指定されたシナリオを実行する。つまり、シナリオ実行部３３は、シナリオ実行処理（Ｓ２０）として、シナリオ内に記述された連携サービスごとに、後記するＳ２１〜Ｓ２７の処理を実行する。なお、シナリオ実行処理（Ｓ２０）のうちの並列処理が可能な（ＢＰＥＬの＜FLOW＞タグなどで指定）複数の連携サービスについては、連携サービス間でＳ２１〜Ｓ２７の処理単位で複数並列に実行してもよい。
【００４３】
シナリオ実行部３３は、検索キーの連携サービスから接続先サービスを特定するための接続先決定要求を、接続先決定装置１に送信する（Ｓ２１）。接続先決定要求（Ｓ２１）には、検索キーの連携サービスに加えて、クライアントユーザの認証状態を示す情報が含まれる。
【００４４】
なお、シナリオ実行部３３は、実行されるシナリオについて、その実行経過データ（現在どの連携サービスまで実行したかを示すデータ）を管理し、シナリオ格納部３４内のシナリオとを照合することにより、現在の次に実行する連携サービスを検索キーの連携サービスとして特定する。例えば、表２のシナリオ格納部３４の（１行目）までが実行経過データであるときには、次の（２行目）ＷｅｂサービスＡが検索キーの連携サービスである。
【００４５】
接続先応答部１４は、接続先決定要求（Ｓ２１）を受信すると、検索キーの連携サービスから接続先サービスを特定するための接続先決定処理を実行する（Ｓ２２，詳細は図６参照）。
接続先応答部１４は、Ｓ２２で決定した接続先サービスの特定情報（ＵＲＬ）と、その接続先サービスの担当実行装置であるシナリオ実行装置３の特定情報とを、接続先決定応答として、接続先要求部３１へ応答する（Ｓ２３）。
【００４６】
シナリオ実行装置３は、Ｓ２３内の担当実行装置が自装置であるときには、後記するＳ２４，Ｓ３１のデータ引継に関する処理を省略し、後記するＳ２５を実行する。
一方、シナリオ実行装置３（引継情報処理部３５）は、Ｓ２３内の担当実行装置が他装置であるときには、データ連携（Ｓ２４）として、引継情報を生成して担当実行装置に該当する他のシナリオ実行装置３へ送信するとともに、自身のシナリオの実行処理を終了する。なお、引継情報は、接続先サービスを実行させるために必要な情報であり、以下に例示されるような、引継元装置のメモリ内に格納されているデータ集合である。
・Ｓ１１で実行を要求されたシナリオの識別情報と、Ｓ１１の要求に含まれるパラメータ（要求先のシナリオ実行装置３のアドレスなど）
・現在までの実行経過データ（何行目まで終了したか、実行が終了したサービスの実行結果）
・Ｓ２３で受信した接続先サービスの特定情報（ＵＲＬ）
・クライアントユーザの認証状態
【００４７】
なお、接続先決定応答（Ｓ２３）として、担当実行装置を転送先として指定したリダイレクト応答を用いてもよい。そのリダイレクト応答を受信した自身のシナリオ実行装置３は、他装置である担当実行装置へのコネクションを確立させ、そのコネクションを利用して引継情報の送信処理をデータ連携（Ｓ２４）として実施してもよい。
これにより、HTTPの標準ライブラリを利用するだけでシナリオ実行装置３間の通信チャネルを生成することができ、該当のチャネルを生成するためのモジュールを新たに作りこむ必要がなくなる。
【００４８】
担当実行装置内のシナリオ実行部３３は、Ｓ２３内の接続先サービスの特定情報（ＵＲＬ）で示されるサービス実行部２１へと、サービス実行要求を送信する（Ｓ２５）。
サービス実行装置２は、Ｓ２５で受信したサービス実行要求に従い、該当するサービス実行部２１を実行することでその実行結果を生成し（Ｓ２６）、実行結果をシナリオ実行部３３へと応答する（Ｓ２７）。
【００４９】
Ｓ１１でシナリオ実行要求を受け付けたシナリオ実行装置３（引継情報処理部３５）は、Ｓ２０のシナリオ実行処理が終了すると（つまり、Ｓ２１〜Ｓ２７の処理が終了すると）、Ｓ２４でデータ引継がなされた他装置のシナリオ実行装置３（引継情報処理部３５）から、それぞれの引継情報（Ｓ２６のサービス実行で更新されたデータ）を受信するデータ引継集計処理を行う（Ｓ３１）。
なお、引継情報には、Ｓ１１でシナリオ実行要求を受け付けたシナリオ実行装置３のアドレスが含まれているため、どのシナリオ実行装置３がＳ３１の処理を行うかを特定できる。
【００５０】
Ｓ１１でシナリオ実行要求を受け付けたシナリオ実行装置３（シナリオ実行部３３）は、Ｓ１１の要求元のユーザ端末４に対して、Ｓ３０の集計結果（自装置や他装置におけるＳ２０の処理結果）を応答する。
【００５１】
図５は、サービス連携処理におけるシナリオ実行処理の変形例を示すフローチャートである。図５では、図４のＳ２０に対して、新たにＳ４１〜Ｓ４３が追加されている。なお、図５でＳ１１，Ｓ３２の処理は図示省略しているが、図５の変形例でも図４と同じように実行される。
【００５２】
まず、引継元のシナリオ実行装置３ａから、引継先のシナリオ実行装置３ｂ（担当実行装置に該当する）へのデータ引継処理（Ｓ２４）の前準備として、接続先決定装置１は、シナリオ実行装置３ａとシナリオ実行装置３ｂとの間の呼接続を確立するために、第三者による呼制御の処理（３ＰＣＣ：3rd Party Call Control）であるＳＩＰ（Session Initiation Protocol）のＩＮＶＩＴＥメッセージを、両装置へ送信する。
具体的には、接続先決定装置１は、引継元のシナリオ実行装置３ａへのＩＮＶＩＴＥメッセージを第１接続要求として送信するとともに（Ｓ４１）、Ｓ４１への応答（図示省略）を元に作成した引継先のシナリオ実行装置３ｂへのＩＮＶＩＴＥメッセージを第２接続要求として送信する（Ｓ４２）。この２つの接続要求には、お互いの接続先の装置が指定されている。例えば、第１接続要求の接続先はシナリオ実行装置３ｂである。
そして、両方のシナリオ実行装置３は、受信したＩＮＶＩＴＥメッセージを元に、接続を確立する（Ｓ４３）。Ｓ４３で確立した接続を介して、データ引継（Ｓ２４）およびデータ引継集計（Ｓ３１）の通信が実施される。
【００５３】
このように、接続先決定装置１がシナリオ実行装置３間を第三者による呼制御の処理で接続することによって、接続先決定装置１が確立した接続を制御することができる。例えば、Ｓ４３で確立する接続の通信品質や通信帯域、利用プロトコルなどを、接続先決定装置１が接続要求のＩＮＶＩＴＥメッセージなどの各制御用メッセージを用いて設定できるため、以下に例示されるような柔軟な接続管理ができる。
・課金しているクライアントユーザの接続に割り当てる通信品質（帯域など）を増加させる。
・実行する連携サービスの種類に応じて、通信帯域を変化させる。
【００５４】
さらに、接続先決定装置１は、第三者による呼制御の処理として、接続先決定装置１（担当実行装置に該当する）とサービス実行装置２との間の接続を行ってもよい。この接続は、サービス実行の要求（Ｓ２５）およびその応答（Ｓ２７）に使用される。
【００５５】
図６は、接続先応答部１４が実行する接続先決定処理（Ｓ２２）の詳細を示すフローチャートである。このフローチャートでは、連携サービスの実行時に決まるコンテキスト（ユーザの認証状態など）に応じて、接続先サービスが決定される。
【００５６】
まず、検索キーとして指定された連携サービスの実行に必要な認可ポリシをポリシ格納部１２から取得し（Ｓ１０１）、接続先決定要求（Ｓ２１）に含まれるユーザの認証状態が取得した認可ポリシを満たすか否かを判定する（Ｓ１０２）。Ｓ１０２でＹｅｓならＳ１０４へ進み、ＮｏならＳ１０３へ進む。
【００５７】
Ｓ１０３として、認証先リスト１３から、認可ポリシに含まれる各認可種別に応じた接続先（認証用）を取得し、認証サービスを呼び出すことで、ユーザの認証状態を更新し（Ｓ１０３）、再度、認可ポリシを満たすか否かを判定する（Ｓ１０２）。例えば、表１の認証先リスト１３では、「ＩＤ／ＰＷ認証」を実行するための認証サービスの接続先は、２つ（「http://idpw1/」と「http://idpw2/」）存在するが、そのうちの接続先負荷値が低い「http://idpw1/」が呼び出し先として選択される。
【００５８】
Ｓ１０４として、検索キーとして指定された連携サービスの実行に必要な接続先サービス（連携用）の候補を、サービスリスト１６から取得する。
Ｓ１０５として、Ｓ１０４の候補から、所定条件により１つの接続先を決定する。例えば、所定条件が「負荷が低いサービスを選択する」であるときには、サービスリスト１６内の「接続先負荷値」が最小である接続先サービスを決定する。一方、サービスリスト１６として、「接続先負荷値」の他にも、所定条件を判断するために必要なサービスの属性情報（サービス料金、サービスの登録ユーザなど）をあらかじめ格納しておき、所定条件「サービス料金が安いサービスを選択する」や、所定条件「ユーザ登録されているサービスを選択する」などの様々な所定条件を単独または他の所定条件と併用（ＡＮＤ条件、ＯＲ条件での論理演算など）してもよい。または、所定条件「ランダムにサービスを選択する」でもよい。
Ｓ１０６として、Ｓ１０３やＳ１０５で決定した接続先を、シナリオ実行装置３（接続先要求部３１）へ応答する。
接続先応答部１４は、シナリオ実行装置３に対して、Ｓ１０３で決定した接続先（認証用）を応答することで、シナリオ実行装置３に接続先（認証用）の認証サービスを呼び出させてもよい（第１の接続先応答部）。
接続先応答部１４は、シナリオ実行装置３に対して、Ｓ１０５で決定した接続先（連携用）を応答することで、シナリオ実行装置３に接続先（連携用）の認証サービスを呼び出させてもよい（第２の接続先応答部）。
【００５９】
以上説明した本実施形態では、シナリオ実行装置３が呼び出すサービスを直接シナリオ内に記述する方式（図１（ａ）の方式）ではなく、接続先決定装置１がシナリオの実行時にＳ２１の要求を受けて決定する方式（図１（ｂ）の方式）を主な特徴とする。
これにより、シナリオの実行時に適切な接続先サービスが選択されることで、以下に例示されるような様々な効果を得ることができる。
・認証先リスト１３に記載されている認証サービスを接続先とする（Ｓ１０３）ことで、サービスごとの認可ポリシ（ポリシ格納部１２内）に応じて適切に認証処理が実施でき、連携サービスのセキュリティを向上させることができる。
・サービスリスト１６に記載されている連携用の接続先を選択するときに、接続先負荷値などのサービスの状況に応じた所定条件により、サービスを選択する（Ｓ１０５）ことで、連携サービスの処理スループットを向上させることができる。
・シナリオ設計者は、実行経過データやクライアントユーザの認証状態などの各データを考慮してシナリオを設計する必要がなくなるため、開発コストを削減できる。
【符号の説明】
【００６０】
１      接続先決定装置
２      サービス実行装置
３      シナリオ実行装置
４      ユーザ端末
１１    認可判定部
１２    ポリシ格納部（認可ポリシデータ）
１３    認証先リスト（認証先リストデータ）
１４    接続先応答部（第１の接続先応答部、第２の接続先応答部）
１５    サービス状況収集部
１６    サービスリスト（サービスリストデータ）
２１    サービス実行部
３１    接続先要求部
３２    要求先リスト
３３    シナリオ実行部
３４    シナリオ格納部
３５    引継情報処理部
【図１】
2012212210.tif 000005
【図２】
2012212210.tif 000006
【図３】
2012212210.tif 000007
【図４】
2012212210.tif 000008
【図５】
2012212210.tif 000009
【図６】
2012212210.tif 000010