説明

接続先決定装置、接続先決定方法、および、サービス連携システム

【課題】複数のWebサービスを連携させた連携サービスを低コストで実現すること。
【解決手段】接続先決定装置1の制御部は、連携サービスに対応するユーザの認証状態を、接続先決定要求内のユーザの認証状態が満たしているときに、認可と判定する認可判定処理を実行し、認可判定処理において認可と判定されたときには、検索キーである連携サービスに対応するサービスの接続先を接続先決定要求の送信元へ応答し、認可判定処理において認可と判定されなかったときには、満たさなかったユーザの認証状態を得るための認証サービスの接続先を、接続先決定要求の送信元へ応答する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、接続先決定装置、接続先決定方法、および、サービス連携システムの技術に関する。
【背景技術】
【0002】
Webサービスを利用した分散コンピューティングが普及してきている。Webサービスはモジュール間の通信に、Webの一般的なプロトコルであるHTTP(Hypertext Transfer Protocol)の上でXML(Extensible Markup Language)技術を応用したSOAP(Simple Object Access Protocol)を用いるアプリケーションサービスの一形態である。高い信頼性と通信品質を実現するNGN(Next Generation Network)の出現などもあり、Webサービスによる分散コンピューティングは従来のように企業内といった比較的閉じたネットワーク内だけでなく、広く開かれたネットワーク上でも利用されると見込まれている。
【0003】
Webサービスの普及に伴い、複数のWebサービスを連携させた連携サービスを構成するためのプロセス記述言語の開発が進められている。その主なものとして、OASIS(Organization for the Advancement of Structured Information Standards)の定めるWS−BPEL(Web Services Business Process Execution Language)や、OMGのBPMN(Business Process Modeling Notation)がある。これらのプロセス記述言語を用い、Webサービスの実行順序をシナリオとして記述することで、連携サービスは定義される。
【0004】
シナリオの実行装置は、ユーザからのシナリオ実行要求を受けると、シナリオを解釈してWebサービスを順次実行し、その実行結果をユーザへ提供する。連携サービスを構成する各Webサービスとして自ら提供するWebサービスだけではなく、他の事業者が提供するWebサービスも組み合わせることにより、より高機能な連携サービスを安価に実現することができる。
【0005】
一方で、連携サービスを高機能化、複雑化すると、それに伴い連携させるサービスの数も増加するため、シナリオの実行装置に掛かる処理負荷が大きくなる問題がある。そのため、シナリオの実行装置を複数台配備して分散的に連携サービスを実行する技術が開発されている。
例えば、特許文献1の技術によると、各シナリオの実行装置の処理負荷やネットワーク負荷の状態を監視し、処理負荷が高くなった場合にシナリオの処理量を緩和できるため、システム全体の処理効率の向上が行える。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許第7584276号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
シナリオの設計者は、連携サービスとして呼び出すサービスの順序やその呼び出し条件を、正確かつ詳細にシナリオ内に記述する必要がある。そのため、シナリオの設計者は、ユーザの認証状態(認証済みの登録ユーザ、認証前のゲストユーザ)などに応じて、呼び出すサービスを網羅的に把握する必要があり、シナリオの開発コストや運用コストがかかってしまっていた。
【0008】
そこで、本発明は、前記した問題を解決し、複数のWebサービスを連携させた連携サービスを低コストで実現することを、主な目的とする。
【課題を解決するための手段】
【0009】
前記課題を解決するために、本発明は、複数の連携サービスの実行順序を規定するシナリオをもとに、前記各連携サービスを実現するための接続先サービスを呼び出すシナリオ実行装置と、呼び出された前記接続先サービスを実行するサービス実行装置と、前記連携サービスから前記接続先サービスを決定する接続先決定装置とを有するサービス連携システムに用いられる接続先決定装置であって、
前記接続先決定装置の記憶手段には、前記連携サービスごとにその連携サービスの実行を許可するために必要なユーザの認証状態を示す認可ポリシデータと、ユーザの認証状態を更新するための認証サービスの接続先を示す認証先リストデータと、前記連携サービスごとにその連携サービスを実行するためのサービスの接続先を示すサービスリストデータとがそれぞれ格納されており、
前記接続先決定装置の制御部が、
検索キーである前記連携サービスとユーザの認証状態とを含めた接続先決定要求を前記シナリオ実行装置から受信すると、前記認可ポリシデータにおいて検索キーである前記連携サービスに対応するユーザの認証状態を、前記接続先決定要求内のユーザの認証状態が満たしているときに、認可と判定する認可判定処理を実行し、
前記認可判定処理において認可と判定されたときには、前記サービスリストデータから、検索キーである前記連携サービスに対応するサービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答し、
前記認可判定処理において認可と判定されなかったときには、前記認証先リストデータから、前記認可判定処理において満たさなかったユーザの認証状態を得るための認証サービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答することを特徴とする。
その他の手段は、後記する。
【発明の効果】
【0010】
本発明によれば、複数のWebサービスを連携させた連携サービスを低コストで実現することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施形態に関するシナリオとサービスとの関係を示す説明図である。
【図2】本発明の一実施形態に関するサービス連携システムを示す構成図である。
【図3】本発明の一実施形態に関するサービス連携システムを構成する各計算機を示す構成図である。
【図4】本発明の一実施形態に関するサービス連携処理を示すフローチャートである。
【図5】本発明の一実施形態に関するサービス連携処理におけるデータ引継処理の変形例を示すフローチャートである。
【図6】本発明の一実施形態に関するサービス連携処理における接続先決定処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【0013】
図1は、シナリオとサービスとの関係を示す説明図である。以下、図1を参照して、本実施形態での説明に使用する各用語を明らかにする。
【0014】
比較例である図1(a)は、商品購入サイトを例として、シナリオ内から認証サービスを呼び出す構成を示す。
「シナリオ」は、「開始」と記載された箇所から実行を開始し、破線矢印で示すように接続先の各サービス(ユーザログインなど)を順に呼び出し、「終了」と記載された箇所で実行を終了する一連のサービス呼び出しを定義するプログラムである。
接続先の各サービスには、「カタログ提示a」や「注文b」などの商品購入に関する業務サービスと、その業務サービスを実施するために必要な、「ユーザログイン」や「クレジット認証」などの認証サービスと、がそれぞれ存在する。
よって、シナリオの設計者は、業務サービスだけでなく、認証サービスに関する知識を有する必要がある。そして、「ユーザログイン」により特定されたユーザにとっておすすめの商品を選別した「カタログ提示a」を実行するといったように、両方の知識を考慮して、シナリオを設計する必要がある。
つまり、図1(a)では、事前に決められたWebサービスを事前に決められたシナリオの順序で実行することしかできない。
【0015】
図1(b)は、図1(a)のシナリオに対して、「接続先決定処理」を仲介させることで、シナリオから認証サービスを分離する構成を示す。
図1(b)での「シナリオ」は、開始から始めて、「カタログ提示A」→「注文B」→「代金決済C」→終了の順にサービスが呼び出される。ここで、シナリオの内部に記述される「カタログ提示A」などのサービスは、直接サービスの呼び出し先を示す代わりに、呼び出すサービスの種別(サービスの特定用情報)を示す。以下、シナリオの内部に記述される各サービスを、「連携サービス」と呼ぶ。
【0016】
「接続先決定処理」は、連携サービスの名称(カタログ提示Aなど)を検索キーとして、その連携サービスの実行に必要な接続先のサービスを特定する処理である。例えば、連携サービス「カタログ提示A」の実行には、「カタログ提示a」という業務サービスを呼び出す必要があり、さらにその前処理として、「ユーザログイン」という認証サービスを呼び出す必要がある。以下、呼び出されるエンドポイント側の業務サービスと、認証サービスとを総称して、「接続先サービス(適宜、接続先と略す)」と呼ぶ。接続先サービスは、例えば、実行要求の送信と、実行結果の応答の送信とを介する論理インタフェースに、SOAPを利用するWebサービスとして実現される。
【0017】
図1(b)で示される本実施形態の主な特徴として、シナリオ内の連携サービスと、接続先決定処理により決定される接続先サービスとをそれぞれ分けて定義することが挙げられる。これにより、シナリオ設計者は、認証サービスを意識せず、業務の処理順序に集中してシナリオを設計すればよいとともに、「接続先決定処理」の設定者は、連携サービスの処理順序を意識せず、連携サービスから接続先サービス(認証サービス、業務サービス)を特定する設定に集中してサービスを管理すればよい。つまり、シナリオ設計者と「接続先決定処理」の設定者との役割分担を明確に区別できるので、設計効率(開発効率)が向上する。
【0018】
図2は、サービス連携システムを示す構成図である。サービス連携システムは、接続先決定装置1と、サービス実行装置2と、シナリオ実行装置3と、ユーザ端末4とがそれぞれネットワークで接続されて構成される。サービス連携システムを構成する各装置は、図3で後記する計算機として構成される。
サービス連携システムを構成する各装置の台数は、図2で例示した台数に限定されず、1台以上の任意の台数としてもよい。同じ種類の装置をサービス連携システム内に冗長構成として複数台配置することにより、その複数台のうちの一部に障害が発生しても、残りの装置が処理を継続することにより、耐障害性が向上する。
さらに、接続先決定装置1と、サービス実行装置2と、シナリオ実行装置3とが、それぞれ異なる装置として示されているが、1台の物理的な計算機装置の内部に、前記した3種類の装置のうちの2種類以上の装置を収容してもよい。これにより、装置の設定スペースや配線のケーブル本数を削減し、システムを簡略化することができる。
【0019】
ユーザ端末4は、連携サービスを記述したシナリオの実行要求をシナリオ実行装置3へ送信し、その実行結果をシナリオ実行装置3から受信する装置である。
シナリオ実行装置3は、ユーザ端末4からシナリオの実行要求を受けてシナリオを実行し、そのシナリオ内に記述された連携サービスを実現するための接続先サービスの実行をサービス実行装置2に依頼する装置である。
サービス実行装置2は、シナリオ実行装置3から依頼された各接続先サービスを実行するためのサービス実行部21がディプロイ(またはインストール)されている装置である。本実施形態では、1台のサービス実行装置2内に1つ以上のサービス実行部21が含まれている。なお、複数台のサービス実行装置2が、同じサービス内容のサービス実行部21を提供することで、負荷が集中するサービス内容の負荷分散を実現できる。
接続先決定装置1は、図1(b)の「接続先決定処理」で説明したように、連携サービスを検索キーとして、その連携サービスを実現するための接続先サービスを接続先として決定する装置である。
【0020】
シナリオ実行装置3は、接続先要求部31と、シナリオ格納部34と、要求先リスト32(その格納部)と、シナリオ実行部33と、引継情報処理部35とを有する。
【0021】
接続先要求部31は、シナリオ実行部33が読み込んだ連携サービスを検索キーとして、接続先決定装置1(接続先応答部14)へ問い合わせることで、その連携サービスの実行に必要な接続先サービスを取得し、シナリオ実行部33へ通知する。
シナリオ格納部34は、実行する連携サービスの定義情報であるシナリオを格納する。
要求先リスト32は、接続先決定装置1が問い合わせる接続先決定装置1(接続先要求部31)の特定情報(URLやIPアドレスなど)を、接続先決定装置1ごとに格納するリストである。
【0022】
シナリオ実行部33は、シナリオ格納部34内のシナリオに従って、実行する連携サービスを特定する。そして、シナリオ実行部33は、接続先要求部31から通知された接続先サービスに対応するサービス実行部21に対して、サービスの実行を要求し、その実行結果をサービス実行部21から受信する。さらに、シナリオ実行部33は、連携サービスの実行が終了すると、シナリオの実行要求を送信してきたユーザ端末4へ、連携サービスの実行結果を送信する。
【0023】
引継情報処理部35は、シナリオ実行装置3が複数台存在する構成において、他装置のシナリオ実行装置3とデータ連係をするために、シナリオ実行装置3内のメモリ内容(計算経過データ)を引継情報として、他装置のシナリオ実行装置3と送受信するための処理部である。そのため、引継情報処理部35は、引継情報を生成する。
なお、図2では、2台のシナリオ実行装置3のうちの1台(下部に記載)について、引継情報処理部35以外の各構成要素の図示を省略しているが、他のシナリオ実行装置3と同じ構成要素を有する。
【0024】
接続先決定装置1は、認可判定部11と、ポリシ格納部12と、認証先リスト13(その格納部)と、接続先応答部14と、サービス状況収集部15と、サービスリスト16(その格納部)とを有する。
接続先決定装置1は、制御部(認可判定部11、接続先応答部14、サービス状況収集部15を実行する)と、記憶部(ポリシ格納部12、認証先リスト13、サービスリスト16を格納する)とを有するコンピュータとして構成される。
認可判定部11は、クライアントユーザの認証状態が、接続先サービス(業務サービス)ごとに定められたセキュリティポリシを満たしているときに、認可されていると判断する。クライアントユーザの認証状態とは、例えば、Identity Providerがクライアントユーザを認証した際に発行する認証用のcookieやSAML(Security Assertion Markup Language)の認証アサーションを意味する。
ポリシ格納部12は、接続先サービス(業務サービス)ごとに定められたセキュリティポリシを格納する。セキュリティポリシとは、例えば、図1(b)では、代金決済cという業務サービスには、クレジット認証に成功したというクライアントユーザの認証状態が必要である、という旨である。
認証先リスト13は、クライアントユーザの認証状態を得るために呼び出される接続先サービスとしての認証サービスのリストである。
【0025】
接続先応答部14は、接続先要求部31から連携サービスを検索キーとした接続先の問合せを受け、認可判定部11での認可結果などから、連携サービスを実行するための接続先サービスを決定し、接続先要求部31へ応答する。
サービス状況収集部15は、サービス実行部21のサービス状況を、サービス実行部21から収集して、サービスリスト16へと書き出す。
サービスリスト16は、サービス実行部21のサービスごとに、そのサービスに関する情報(接続先のURLや、サービス状況など)を対応づけたリストである。
【0026】
【表1】

【0027】
表1は、接続先決定装置1内に格納される各データ内容(ポリシ格納部12、認証先リスト13、サービスリスト16)を示す表である。
【0028】
ポリシ格納部12は、検索キーである連携サービス名と、その連携サービスを受けるための認可ポリシとの対応データをポリシとして格納する。例えば、「WebサービスA」の実行には、認証は必要ない。一方、「WebサービスB」の実行には、その実行前に、2つの認証「ID/PW認証、PKI認証」を受けていなければならない。なお、認可ポリシとして、認証のタイプ(PKI認証など)を示す情報だけではなく、「どのアイデンティティプロバイダからの認証が必要」といったような、認証の詳細情報を保持してもよい。
【0029】
認証先リスト13は、ポリシ格納部12の認可ポリシで指定された認証種別ごとに、その認証サービスの接続先(「http://」から始まるURLで表記)と、その接続先のサービス実行部21ごとの負荷値とを対応づけている。なお、負荷値の計算に用いられるパラメータとして、各サービス実行装置2のCPU使用率や、サービス実行装置2とシナリオ実行装置3との間に確立されたコネクションの確立数、ネットワーク遅延、ネットワーク帯域の使用率、などを利用することができる。
【0030】
サービスリスト16は、検索キーである連携サービス名と、その連携サービスを実行するための接続先サービスを呼び出すシナリオ実行装置3(以下、「担当実行装置」とする)と、そのシナリオ実行装置3から呼び出される接続先サービスと、その接続先のサービス実行部21ごとの負荷値とを対応づけている。
【0031】
なお、認証先リスト13やサービスリスト16内の「接続先」列には、URLのみを保持しているが、URLに加え、通信用論理インタフェースを構築するための情報を保持してもよい。通信用論理インタフェースを構築するための情報とは、例えば、WSDL(Web Services Description Language)に従って記述される。
【0032】
また、認証先リスト13やサービスリスト16内の「接続先負荷値」列に格納されている負荷値は、大きい値であるほど負荷が大きいので、負荷分散を目的とするときには、選ばれなくなる。さらに、「接続先負荷値」内の負荷値は、全ての接続先サービスについての負荷を網羅する必要はなく、自身で管理する負荷値だけを格納してもよい。「接続先負荷値」列に格納されている負荷値が一部の接続先サービスについての負荷であるときには、以下の問合せローミング処理(処理1)〜(処理4)により、低負荷の接続先サービスを決定することができる。
【0033】
複数台の接続先決定装置1のうち、接続先の問合せを受け付ける順序に応じて、「第1の接続先決定装置1」、「第2の接続先決定装置1」…とする。
(処理1)第1の接続先決定装置1で管理する接続先負荷値のうち、低負荷(所定しきい値以下の負荷)である接続先サービスが存在するときには、その低負荷の接続先サービスを採用する。
(処理2)第1の接続先決定装置1で管理する接続先負荷値のうち、低負荷である接続先サービスが存在しないときには、他装置である第2の接続先決定装置1に対して、低負荷の接続先サービスが第2の接続先決定装置1内で管理する負荷値に存在するかをローミングする。
(処理3)第2の接続先決定装置1で管理する接続先負荷値のうち、低負荷である接続先サービスが存在するときには、その低負荷の接続先サービスを採用する。
(処理4)第2の接続先決定装置1で管理する接続先負荷値のうち、低負荷である接続先サービスが存在しないときには、他装置である第3の接続先決定装置1に対して、低負荷の接続先サービスが第3の接続先決定装置1内で管理する負荷値に存在するかをローミングする。
(…以下、接続先決定装置1を変えつつ、再帰的に繰り返す)
【0034】
【表2】

【0035】
表2は、シナリオ実行装置3内に格納される各データ(要求先リスト32、シナリオ格納部34)を示す表である。
【0036】
要求先リスト32は、サービス連携システム内の接続先決定装置1のリストとして、装置名称とURLとの対応データを接続先決定装置1ごとに格納するデータである。
シナリオ格納部34は、表の1行を1つのシナリオとして定義する情報を格納する。例えば、表2のシナリオαは、シナリオ内容である以下の5行の連携サービスを順に実行する旨を規定する。
【0037】
(1行目)入力として文字列を受信して変数val0に格納する。
(2行目)WebサービスAをval0を用いて実行した結果を変数val1に格納する。
(3行目)WebサービスBをval0を用いて実行した結果を変数val2に格納する。
(4行目)WebサービスCをval1とval2を用いて実行した結果を変数val3に格納する。
(5行目)最終結果としてval3を応答する。
なお、シナリオの記述様式は、表2に示した記述様式に限定されず、BPELやBPMNなどの様々な記述様式を用いてもよい。
【0038】
図3は、サービス連携システムを構成する各計算機を示す構成図である。
【0039】
計算機9は、CPU91と、メモリ92と、ハードディスクなどの外部記憶装置93と、インターネットやLAN(Local Area Network)などのネットワーク99aを介して他の装置と通信を行うための通信装置94と、キーボードやマウスなどの入力装置95と、モニタやプリンタなどの出力装置96と、可搬性を有する記憶媒体99bの読取装置97とが、内部バス98を介して接続されている。記憶媒体99bは、例えば、ICカードやUSBメモリである。
【0040】
計算機9は、図2で示した各処理部の機能を実現するためのプログラムをメモリ92上にロードし、CPU91により実行する。そのプログラムは、あらかじめ、計算機9の外部記憶装置93に格納されていてもよいし、実行時に、読取装置97や通信装置94を介して、他の装置から外部記憶装置93にダウンロードされてもよい。
そして、プログラムは一旦外部記憶装置93に格納された後、そこからメモリ上にロードされてCPU91に実行されてもよいし、あるいは外部記憶装置93に格納されることなく、直接メモリ上にロードされて、CPU91に実行されてもよい。
【0041】
図4は、サービス連携処理を示すフローチャートである。
【0042】
ユーザ端末4は、クライアントユーザからの操作を受け、シナリオ実行要求をシナリオ実行装置3へ送信する(S11)。
シナリオ実行部33は、S11で受信したシナリオ実行要求で指定されたシナリオを実行する。つまり、シナリオ実行部33は、シナリオ実行処理(S20)として、シナリオ内に記述された連携サービスごとに、後記するS21〜S27の処理を実行する。なお、シナリオ実行処理(S20)のうちの並列処理が可能な(BPELの<FLOW>タグなどで指定)複数の連携サービスについては、連携サービス間でS21〜S27の処理単位で複数並列に実行してもよい。
【0043】
シナリオ実行部33は、検索キーの連携サービスから接続先サービスを特定するための接続先決定要求を、接続先決定装置1に送信する(S21)。接続先決定要求(S21)には、検索キーの連携サービスに加えて、クライアントユーザの認証状態を示す情報が含まれる。
【0044】
なお、シナリオ実行部33は、実行されるシナリオについて、その実行経過データ(現在どの連携サービスまで実行したかを示すデータ)を管理し、シナリオ格納部34内のシナリオとを照合することにより、現在の次に実行する連携サービスを検索キーの連携サービスとして特定する。例えば、表2のシナリオ格納部34の(1行目)までが実行経過データであるときには、次の(2行目)WebサービスAが検索キーの連携サービスである。
【0045】
接続先応答部14は、接続先決定要求(S21)を受信すると、検索キーの連携サービスから接続先サービスを特定するための接続先決定処理を実行する(S22,詳細は図6参照)。
接続先応答部14は、S22で決定した接続先サービスの特定情報(URL)と、その接続先サービスの担当実行装置であるシナリオ実行装置3の特定情報とを、接続先決定応答として、接続先要求部31へ応答する(S23)。
【0046】
シナリオ実行装置3は、S23内の担当実行装置が自装置であるときには、後記するS24,S31のデータ引継に関する処理を省略し、後記するS25を実行する。
一方、シナリオ実行装置3(引継情報処理部35)は、S23内の担当実行装置が他装置であるときには、データ連携(S24)として、引継情報を生成して担当実行装置に該当する他のシナリオ実行装置3へ送信するとともに、自身のシナリオの実行処理を終了する。なお、引継情報は、接続先サービスを実行させるために必要な情報であり、以下に例示されるような、引継元装置のメモリ内に格納されているデータ集合である。
・S11で実行を要求されたシナリオの識別情報と、S11の要求に含まれるパラメータ(要求先のシナリオ実行装置3のアドレスなど)
・現在までの実行経過データ(何行目まで終了したか、実行が終了したサービスの実行結果)
・S23で受信した接続先サービスの特定情報(URL)
・クライアントユーザの認証状態
【0047】
なお、接続先決定応答(S23)として、担当実行装置を転送先として指定したリダイレクト応答を用いてもよい。そのリダイレクト応答を受信した自身のシナリオ実行装置3は、他装置である担当実行装置へのコネクションを確立させ、そのコネクションを利用して引継情報の送信処理をデータ連携(S24)として実施してもよい。
これにより、HTTPの標準ライブラリを利用するだけでシナリオ実行装置3間の通信チャネルを生成することができ、該当のチャネルを生成するためのモジュールを新たに作りこむ必要がなくなる。
【0048】
担当実行装置内のシナリオ実行部33は、S23内の接続先サービスの特定情報(URL)で示されるサービス実行部21へと、サービス実行要求を送信する(S25)。
サービス実行装置2は、S25で受信したサービス実行要求に従い、該当するサービス実行部21を実行することでその実行結果を生成し(S26)、実行結果をシナリオ実行部33へと応答する(S27)。
【0049】
S11でシナリオ実行要求を受け付けたシナリオ実行装置3(引継情報処理部35)は、S20のシナリオ実行処理が終了すると(つまり、S21〜S27の処理が終了すると)、S24でデータ引継がなされた他装置のシナリオ実行装置3(引継情報処理部35)から、それぞれの引継情報(S26のサービス実行で更新されたデータ)を受信するデータ引継集計処理を行う(S31)。
なお、引継情報には、S11でシナリオ実行要求を受け付けたシナリオ実行装置3のアドレスが含まれているため、どのシナリオ実行装置3がS31の処理を行うかを特定できる。
【0050】
S11でシナリオ実行要求を受け付けたシナリオ実行装置3(シナリオ実行部33)は、S11の要求元のユーザ端末4に対して、S30の集計結果(自装置や他装置におけるS20の処理結果)を応答する。
【0051】
図5は、サービス連携処理におけるシナリオ実行処理の変形例を示すフローチャートである。図5では、図4のS20に対して、新たにS41〜S43が追加されている。なお、図5でS11,S32の処理は図示省略しているが、図5の変形例でも図4と同じように実行される。
【0052】
まず、引継元のシナリオ実行装置3aから、引継先のシナリオ実行装置3b(担当実行装置に該当する)へのデータ引継処理(S24)の前準備として、接続先決定装置1は、シナリオ実行装置3aとシナリオ実行装置3bとの間の呼接続を確立するために、第三者による呼制御の処理(3PCC:3rd Party Call Control)であるSIP(Session Initiation Protocol)のINVITEメッセージを、両装置へ送信する。
具体的には、接続先決定装置1は、引継元のシナリオ実行装置3aへのINVITEメッセージを第1接続要求として送信するとともに(S41)、S41への応答(図示省略)を元に作成した引継先のシナリオ実行装置3bへのINVITEメッセージを第2接続要求として送信する(S42)。この2つの接続要求には、お互いの接続先の装置が指定されている。例えば、第1接続要求の接続先はシナリオ実行装置3bである。
そして、両方のシナリオ実行装置3は、受信したINVITEメッセージを元に、接続を確立する(S43)。S43で確立した接続を介して、データ引継(S24)およびデータ引継集計(S31)の通信が実施される。
【0053】
このように、接続先決定装置1がシナリオ実行装置3間を第三者による呼制御の処理で接続することによって、接続先決定装置1が確立した接続を制御することができる。例えば、S43で確立する接続の通信品質や通信帯域、利用プロトコルなどを、接続先決定装置1が接続要求のINVITEメッセージなどの各制御用メッセージを用いて設定できるため、以下に例示されるような柔軟な接続管理ができる。
・課金しているクライアントユーザの接続に割り当てる通信品質(帯域など)を増加させる。
・実行する連携サービスの種類に応じて、通信帯域を変化させる。
【0054】
さらに、接続先決定装置1は、第三者による呼制御の処理として、接続先決定装置1(担当実行装置に該当する)とサービス実行装置2との間の接続を行ってもよい。この接続は、サービス実行の要求(S25)およびその応答(S27)に使用される。
【0055】
図6は、接続先応答部14が実行する接続先決定処理(S22)の詳細を示すフローチャートである。このフローチャートでは、連携サービスの実行時に決まるコンテキスト(ユーザの認証状態など)に応じて、接続先サービスが決定される。
【0056】
まず、検索キーとして指定された連携サービスの実行に必要な認可ポリシをポリシ格納部12から取得し(S101)、接続先決定要求(S21)に含まれるユーザの認証状態が取得した認可ポリシを満たすか否かを判定する(S102)。S102でYesならS104へ進み、NoならS103へ進む。
【0057】
S103として、認証先リスト13から、認可ポリシに含まれる各認可種別に応じた接続先(認証用)を取得し、認証サービスを呼び出すことで、ユーザの認証状態を更新し(S103)、再度、認可ポリシを満たすか否かを判定する(S102)。例えば、表1の認証先リスト13では、「ID/PW認証」を実行するための認証サービスの接続先は、2つ(「http://idpw1/」と「http://idpw2/」)存在するが、そのうちの接続先負荷値が低い「http://idpw1/」が呼び出し先として選択される。
【0058】
S104として、検索キーとして指定された連携サービスの実行に必要な接続先サービス(連携用)の候補を、サービスリスト16から取得する。
S105として、S104の候補から、所定条件により1つの接続先を決定する。例えば、所定条件が「負荷が低いサービスを選択する」であるときには、サービスリスト16内の「接続先負荷値」が最小である接続先サービスを決定する。一方、サービスリスト16として、「接続先負荷値」の他にも、所定条件を判断するために必要なサービスの属性情報(サービス料金、サービスの登録ユーザなど)をあらかじめ格納しておき、所定条件「サービス料金が安いサービスを選択する」や、所定条件「ユーザ登録されているサービスを選択する」などの様々な所定条件を単独または他の所定条件と併用(AND条件、OR条件での論理演算など)してもよい。または、所定条件「ランダムにサービスを選択する」でもよい。
S106として、S103やS105で決定した接続先を、シナリオ実行装置3(接続先要求部31)へ応答する。
接続先応答部14は、シナリオ実行装置3に対して、S103で決定した接続先(認証用)を応答することで、シナリオ実行装置3に接続先(認証用)の認証サービスを呼び出させてもよい(第1の接続先応答部)。
接続先応答部14は、シナリオ実行装置3に対して、S105で決定した接続先(連携用)を応答することで、シナリオ実行装置3に接続先(連携用)の認証サービスを呼び出させてもよい(第2の接続先応答部)。
【0059】
以上説明した本実施形態では、シナリオ実行装置3が呼び出すサービスを直接シナリオ内に記述する方式(図1(a)の方式)ではなく、接続先決定装置1がシナリオの実行時にS21の要求を受けて決定する方式(図1(b)の方式)を主な特徴とする。
これにより、シナリオの実行時に適切な接続先サービスが選択されることで、以下に例示されるような様々な効果を得ることができる。
・認証先リスト13に記載されている認証サービスを接続先とする(S103)ことで、サービスごとの認可ポリシ(ポリシ格納部12内)に応じて適切に認証処理が実施でき、連携サービスのセキュリティを向上させることができる。
・サービスリスト16に記載されている連携用の接続先を選択するときに、接続先負荷値などのサービスの状況に応じた所定条件により、サービスを選択する(S105)ことで、連携サービスの処理スループットを向上させることができる。
・シナリオ設計者は、実行経過データやクライアントユーザの認証状態などの各データを考慮してシナリオを設計する必要がなくなるため、開発コストを削減できる。
【符号の説明】
【0060】
1 接続先決定装置
2 サービス実行装置
3 シナリオ実行装置
4 ユーザ端末
11 認可判定部
12 ポリシ格納部(認可ポリシデータ)
13 認証先リスト(認証先リストデータ)
14 接続先応答部(第1の接続先応答部、第2の接続先応答部)
15 サービス状況収集部
16 サービスリスト(サービスリストデータ)
21 サービス実行部
31 接続先要求部
32 要求先リスト
33 シナリオ実行部
34 シナリオ格納部
35 引継情報処理部

【特許請求の範囲】
【請求項1】
複数の連携サービスの実行順序を規定するシナリオをもとに、前記各連携サービスを実現するための接続先サービスを呼び出すシナリオ実行装置と、呼び出された前記接続先サービスを実行するサービス実行装置と、前記連携サービスから前記接続先サービスを決定する接続先決定装置とを有するサービス連携システムに用いられる接続先決定装置であって、
前記連携サービスごとにその連携サービスの実行を許可するために必要なユーザの認証状態を示す認可ポリシデータと、ユーザの認証状態を更新するための認証サービスの接続先を示す認証先リストデータと、前記連携サービスごとにその連携サービスを実行するためのサービスの接続先を示すサービスリストデータとがそれぞれ格納されている記憶部と、
検索キーである前記連携サービスとユーザの認証状態とを含めた接続先決定要求を前記シナリオ実行装置から受信すると、前記認可ポリシデータにおいて検索キーである前記連携サービスに対応するユーザの認証状態を、前記接続先決定要求内のユーザの認証状態が満たしているときに、認可と判定する認可判定処理を実行する認可判定部と、
前記認可判定処理において認可と判定されたときには、前記サービスリストデータから、検索キーである前記連携サービスに対応するサービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答する第1の接続先応答部と、
前記認可判定処理において認可と判定されなかったときには、前記認証先リストデータから、前記認可判定処理において満たさなかったユーザの認証状態を得るための認証サービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答する第2の接続先応答部とを備えることを特徴とする
接続先決定装置。
【請求項2】
前記記憶部には、前記サービスリストデータとして、サービスの接続先に加えて、その接続先サービスについての負荷値が対応づけて格納されており、
前記応答部は、前記サービスリストデータ内に検索キーである前記連携サービスに対応するサービスの接続先が複数存在するときに、そのうちの前記負荷値が最も低い接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答することを特徴とする
請求項1に記載の接続先決定装置。
【請求項3】
前記応答部は、前記接続先サービスを前記接続先決定要求の送信元へ応答する処理について、前記接続先決定要求の送信元である前記シナリオ実行装置と、前記接続先サービスを実行する前記サービス実行装置との間の通信接続をSIP(Session Initiation Protocol)の第三者呼制御を用いて確立することを特徴とする
請求項1または請求項2に記載の接続先決定装置。
【請求項4】
前記記憶部には、前記サービスリストデータとして、サービスの接続先に加えて、その接続先サービスを呼び出す担当の前記シナリオ実行装置が対応づけて格納されており、
前記応答部は、前記接続先サービスを前記接続先決定要求の送信元へ応答するときに、前記サービスリストデータで応答する前記接続先サービスを担当する前記シナリオ実行装置の識別情報も併せて応答し、
前記接続先決定要求の応答を受けた前記シナリオ実行装置が、担当する前記シナリオ実行装置とは別装置であるときには、応答を受けた前記シナリオ実行装置から担当する前記シナリオ実行装置へと、前記接続先サービスの呼出処理を引き継がせることを特徴とする
請求項1ないし請求項3のいずれか1項に記載の接続先決定装置。
【請求項5】
請求項1ないし請求項4のいずれか1項に記載の接続先決定装置、前記シナリオ実行装置、および、前記サービス実行装置を有するサービス連携システム。
【請求項6】
複数の連携サービスの実行順序を規定するシナリオをもとに、前記各連携サービスを実現するための接続先サービスを呼び出すシナリオ実行装置と、呼び出された前記接続先サービスを実行するサービス実行装置と、前記連携サービスから前記接続先サービスを決定する接続先決定装置とを有するサービス連携システムによる接続先決定方法であって、
前記接続先決定装置の記憶手段には、前記連携サービスごとにその連携サービスの実行を許可するために必要なユーザの認証状態を示す認可ポリシデータと、ユーザの認証状態を更新するための認証サービスの接続先を示す認証先リストデータと、前記連携サービスごとにその連携サービスを実行するためのサービスの接続先を示すサービスリストデータとがそれぞれ格納されており、
前記接続先決定装置の制御部は、
検索キーである前記連携サービスとユーザの認証状態とを含めた接続先決定要求を前記シナリオ実行装置から受信すると、前記認可ポリシデータにおいて検索キーである前記連携サービスに対応するユーザの認証状態を、前記接続先決定要求内のユーザの認証状態が満たしているときに、認可と判定する認可判定処理を実行し、
前記認可判定処理において認可と判定されたときには、前記サービスリストデータから、検索キーである前記連携サービスに対応するサービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答し、
前記認可判定処理において認可と判定されなかったときには、前記認証先リストデータから、前記認可判定処理において満たさなかったユーザの認証状態を得るための認証サービスの接続先を取得して、その取得した接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答することを特徴とする
接続先決定方法。
【請求項7】
前記接続先決定装置の記憶手段には、前記サービスリストデータとして、サービスの接続先に加えて、その接続先サービスについての負荷値が対応づけて格納されており、
前記接続先決定装置の制御部は、前記サービスリストデータ内に検索キーである前記連携サービスに対応するサービスの接続先が複数存在するときに、そのうちの前記負荷値が最も低い接続先を前記接続先サービスとして、前記接続先決定要求の送信元へ応答することを特徴とする
請求項6に記載の接続先決定方法。
【請求項8】
前記接続先決定装置の制御部は、前記接続先サービスを前記接続先決定要求の送信元へ応答する処理について、前記接続先決定要求の送信元である前記シナリオ実行装置と、前記接続先サービスを実行する前記サービス実行装置との間の通信接続をSIP(Session Initiation Protocol)の第三者呼制御を用いて確立することを特徴とする
請求項6または請求項7に記載の接続先決定方法。
【請求項9】
前記接続先決定装置の記憶手段には、前記サービスリストデータとして、サービスの接続先に加えて、その接続先サービスを呼び出す担当の前記シナリオ実行装置が対応づけて格納されており、
前記接続先決定装置の制御部は、前記接続先サービスを前記接続先決定要求の送信元へ応答するときに、前記サービスリストデータで応答する前記接続先サービスを担当する前記シナリオ実行装置の識別情報も併せて応答し、
前記接続先決定要求の応答を受けた前記シナリオ実行装置が、担当する前記シナリオ実行装置とは別装置であるときには、応答を受けた前記シナリオ実行装置から担当する前記シナリオ実行装置へと、前記接続先サービスの呼出処理を引き継がせることを特徴とする
請求項6ないし請求項8のいずれか1項に記載の接続先決定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−212210(P2012−212210A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−76269(P2011−76269)
【出願日】平成23年3月30日(2011.3.30)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成20年度 独立行政法人情報通信研究機構「次世代ネットワーク(NGN)基盤技術の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】