説明

サービス連携処理システム及び方法

【課題】サービスコンポーネントにおける、プロトコルの違いや認証方式の違いにかかわらず、サービスを要求するユーザが1形式のプロトコルに従って生成した1個のリクエスト情報でWebサービスを連携して利用可能とすること。
【解決手段】実行制御サーバ1のSOAPリクエスト情報転送部4またはRESTリクエスト情報転送部5は、プロファイルサーバ10のサービス情報テーブル51に登録されたプロトコル変換の要否を示す情報に従って変換の要否を判断し、また、実行制御サーバ1のSOAPリクエスト情報転送部4またはRESTリクエスト情報転送部5または、メッセージトランスレータ装置7のSOAPリクエスト情報変換部8またはRESTリクエスト情報変換部9は、プロファイルサーバ10のオペレーションテーブル52に登録されたサービスコンポーネントが行う認証処理に関する情報に従って、サービスコンポーネントに応じた認証情報をリクエスト情報中に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、SOAPサービスやRESTサービスなどによるウェブサービスに適用されるサービス連携処理システム及び方法に関する。
【背景技術】
【0002】
近年、インターネット上の複数のWebサービスを組み合わせて新しいWebサービスを生み出すマッシュアップが盛んに行われている。Webサービスのプロトコルには、SOAP(Simple Object Access Protocol)、REST(Representational State Transfer)、JSON(Java Script Object Notation)など、幾つかのプロトコルがあり、中でも、SOAPおよびRESTを用いたWebサービスが多数提供されている。
マッシュアップを行う際、利用するWebサービス毎にプロトコルが異なり、あるいは、認証方法が異なる場合、各プロトコルや認証方法に合わせたWebサービス要求(リクエスト情報)を送信するためのプログラムが必要となり、また、SOAP用ミドルウェアソフトやREST用ミドルウェアソフトの購入などのコストが発生する。
【0003】
また、サービスリクエスタ端末からリクエスト情報を送信してサービスを要求する際、SOAPとRESTとでは認証方式が異なる。例えば、SOAPでは身元を示す証明書を用いて認証を行うので、その証明書の設定が必要である。また、RESTでは、サービスコンポーネントでその認証を行うので、サービスコンポーネント毎に異なるパスワードが必要であり、手動で、または、専用のプログラムを作成して、サービスコンポーネント毎に認証を行う必要がある。
【0004】
ところで、同一プロトコルのWebサービスを連携する場合は、一括して認証を行い、或いは、非機能要件処理(リクエスト情報に対するWebサービスの提供以外の処理)を行う方法が提案されている。
例えば、非特許文献1では、Webとテレコムとを連携する際、SOAPのシングルサインオン(Single Sign On; SSO)認証認可処理を行い、サービス品質監視制御処理やトラフィック制御処理などの非機能要件処理を一括して行う実行制御サーバが提案されている。
また、非特許文献2では、電話サービスとWebサービスとを連携する際に、共通処理を行う実行制御サーバが提案されている。
一方で、非特許文献3に示されるように、SAML(Security Assertion Markup Language)認証のシングルサインオン認証認可を有する正規権限保侍者が権限委譲証明書を被権限委譲者に譲渡し、権限を委譲された利用者は、権限を譲渡された利用者のアカウントでAPL(Application)サーバにログインする方式が一般的になってきており、この方式によるメリットは権限委譲によるサービス認可を実現可能な点である。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】山登庸次、大西浩行、須永宏、「Web-テレコム連携のためのサービス実行制御技術の研究開発」、電子情報通信学会論文誌B, Vol.J91-B, No.11, p.1417-1427
【非特許文献2】Y. Yamato, H. Ohnishi, and H. Sunaga, "Development of Service Control Server for Web-Telecom Coordination Service", IEEE International Conference on Web Services (ICWS 2008), September 23-26, 2008, p.600-607
【非特許文献3】青柳真紀子、高橋健司、古村隆明、永井靖浩、「SAML拡張仕様を利用した認可方式の提案」、電子情報通信学会大会講演論文集、Vol.2008情報・システム1,p.157
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、これまでの技術で、SOAPのWebサービス(SOAPサービス)とRESTのWebサービス(RESTサービス)とを連携する場合に、非特許文献3に示されるようなシングルサインオン認証を行った上で、非機能要件処理を一括して行うことはできなかった。つまり、SOAPとRESTの複数のWebサービスを連携する場合には、SOAPとRESTとのプロトコルの違いや、認証方式の違いにより、各々のミドルウェアの設定やプロトコルにあわせたプログラムが必要であった。
【0007】
本発明は、このような事情に鑑みてなされたもので、その目的は、サービスコンポーネントにおける、SOAPとRESTとのプロトコルの違いや認証方式の違いにかかわらず、サービスを要求するユーザが1形式のプロトコルに従って生成された1個のリクエスト情報でWebサービスを連携して利用できる、SOAPサービスとRESTサービスとの連携処理システムを提供することにある。
【課題を解決するための手段】
【0008】
この発明は上述した課題を解決するためになされたもので、本発明のサービス連携処理システムは、予め定められるプロトコルでウェブサービスを提供するサービスコンポーネントサーバと、前記サービスコンポーネントサーバのウェブサービスを複数の異なるプロトコルに対応するインタフェース定義で記述した定義文書により公開するサービス公開サーバと、前記複数の異なるプロトコルに応じた認証情報を発行する認証局と、前記サービスコンポーネントサーバが行う認証処理を示した認証処理情報を提供するプロファイルサーバと、自端末のプロトコルに対応する認証情報を前記認証局に要求して受信し、サービスを利用するサービスコンポーネントサーバの定義文書のうち自端末のプロトコルに対応する定義文書を前記サービス公開サーバに要求して受信し、受信した定義文書に前記受信した認証情報を含めたリクエスト情報を生成して送信するサービスリクエスタ端末と、前記サービスリクエスタ端末から前記リクエスト情報を受信し、前記リクエスト情報から認証情報を読み出し、読み出した認証情報に応じたシングルサインオン認証を行い、前記リクエスト情報が正当なリクエスト情報であると認証した場合、前記リクエスト情報の変換の要否を判断し、変換が不要と判断した場合は、前記サービスコンポーネントサーバが行う認証処理情報を前記プロファイルサーバに要求して受信し、受信した認証処理情報に応じた前記認証情報の書き換えを行い、前記サービスコンポーネントサーバへ送信する実行制御サーバと、前記実行制御サーバが変換が必要と判断した場合には、該実行制御サーバから前記リクエスト情報を受信し、前記リクエスト情報を前記サービスコンポーネントサーバのインタフェース仕様に従って変換し、前記サービスコンポーネントサーバが行う認証処理情報を前記プロファイルサーバに要求して受信し、受信した認証処理情報に応じた前記認証情報の書き換えを行い、前記サービスコンポーネントサーバに送信するメッセージトランスレータ装置と、を備えたことを特徴とする。
【0009】
また、本発明のサービス連携システムは、上記のサービス連携システムであって、前記プロトコルはSOAP、あるいはRESTであり、前記実行制御サーバは、前記受信したリクエスト情報のプロトコルを検出し、検出したプロトコルがSOAPを示す場合、前記リクエスト情報から認証チケットで示される認証情報を読み出し、読み出した認証チケットによりシングルサインオン認証を行い、検出したプロトコルがRESTを示す場合、前記リクエスト情報から認証チケットポインタで示される認証情報を読み出し、読み出した認証チケットポインタを前記認証局に送信し、前記認証局から前記認証チケットポインタに対応する認証チケットを受信してシングルサインオン認証を行うことを特徴とする。
【0010】
また、本発明のサービス連携システムは、上記のサービス連携システムであって、前記プロファイルサーバは、前記サービスコンポーネントサーバが行う認証処理として、連携型、ID置換型、削除型の処理のいずれかを認証処理情報として提供し、前記実行制御サーバは、前記リクエスト情報の変換が不要と判断した場合は、前記認証処理情報がID置換型の場合、前記認証情報を予め定められるID情報に書き換え、前記認証処理情報が削除型の場合、認証情報の削除を行い、前記認証処理情報が連携型の場合であって、前記リクエスト情報がSOAPのとき、認証情報の書き換えを行わず、前記リクエスト情報がRESTのとき、前記認証局に認証チケットポインタで示される認証情報を要求して受信し、認証情報に書き換え、前記メッセージトランスレータ装置は、前記実行制御サーバから前記リクエスト情報を受信すると、前記認証処理情報がID置換型の場合、前記認証情報を削除して、予め定められるID情報を変換したリクエスト情報に付与し、前記認証処理情報が削除型の場合、認証情報の削除を行い、前記認証処理情報が連携型の場合であって、前記リクエスト情報がSOAPのとき、前記リクエスト情報に含まれる認証チケットで示される認証情報を読み出し、該リクエスト情報から該認証情報を削除し、前記認証局に認証チケットに対応した認証チケットポインタで示される認証情報を要求して受信し、受信した認証情報をSOAPからRESTへ変換したリクエスト情報に含め、前記認証処理情報が連携型の場合であって、前記リクエスト情報がRESTのとき、前記リクエスト情報に含まれる認証チケットポインタで示される認証情報を読み出し、読み出した認証チケットポインタを前記認証局に送信し、前記認証局から前記認証チケットポインタに対応する認証チケットを受信し、受信した認証チケットをRESTからSOAPへ変換したリクエスト情報に含めることを特徴とする。
【0011】
また、本発明のサービス連携システムは、上記のサービス連携システムであって、前記定義文書のうち、SOAPに対応する定義文書は、WSDL定義文書であり、RESTに対応する定義文書は、WADL定義文書であり、 前記サービス公開サーバは、 WADL定義文書からWSDL定義文書に変換する場合、SOAPオペレーション名をHTTPメソッドに連番を付与する形式とし、WSDL定義文書をWADL定義文書に変換する場合、HTTPメソッドをGET固定とし、SOAPオペレーション名をクエリパラメータmethodにより指定する形式として変換して異なるプロトコルに対応する定義文書を生成することを特徴とする。
【0012】
また、本発明のサービス連携システムは、上記のサービス連携システムであって、前記メッセージトランスレータ装置は、前記リクエスト情報を、SOAPからRESTへ変換する場合、前記リクエスト情報に含まれるHTTPメソッドに連番が付与されている場合、連番の順にHTTPメソッドを、RESTメソッドの1リソースに複数定義して変換し、前記リクエスト情報を、RESTからSOAPへ変換する場合、HTTPメソッドのGETの箇所からクエリパラメータmethodで指定されるSOAPのオペレーション名を抽出してSOAPオペレーションへ変換することを特徴とする。
【0013】
また、本発明のサービス連携システムは、上記のサービス連携システムであって、前記実行制御サーバがシングルサインオン認証をした後に、前記リクエスト情報に対して、認可処理、スロットリング及びコンテンツフィルタの擾乱防止処理、トラフィック制御処理のいずれかの非機能要件処理を行う非機能要件処理手段を備えたことを特徴とする。
【0014】
また、本発明のサービス連携処理方法は、予め定められるプロトコルでウェブサービスを提供するサービスコンポーネントサーバと、前記サービスコンポーネントサーバのウェブサービスを複数の異なるプロトコルに対応するインタフェース定義で記述した定義文書により公開するサービス公開サーバと、前記複数の異なるプロトコルに応じた認証情報を発行する認証局と、前記サービスコンポーネントサーバが行う認証処理を示した認証処理情報を提供するプロファイルサーバと、サービスリクエスタ端末と、実行制御サーバと、メッセージトランスレータ装置とを備えたサービス連携処理システムにおけるサービス連携処理方法であって、前記サービスリクエスタ端末が、自端末のプロトコルに対応する認証情報を前記認証局に要求して受信する過程と、前記サービスリクエスタ端末が、サービスを利用するサービスコンポーネントサーバの定義文書のうち自端末のプロトコルに対応する定義文書を前記サービス公開サーバに要求して受信する過程と、前記サービスリクエスタ端末が、受信した定義文書に前記受信した認証情報を含めたリクエスト情報を生成して送信する過程と、前記実行制御サーバが、前記サービスリクエスタ端末から前記リクエスト情報を受信し、前記リクエスト情報から認証情報を読み出し、読み出した認証情報に応じたシングルサインオン認証を行い、前記リクエスト情報が正当なリクエスト情報であると認証した場合、前記リクエスト情報の変換の要否を判断し、変換が不要と判断した場合は、前記サービスコンポーネントサーバが行う認証処理情報を前記プロファイルサーバに要求して受信し、受信した認証処理情報に応じた前記認証情報の書き換えを行い、前記サービスコンポーネントサーバへ送信する過程と、前記メッセージトランスレータ装置が、前記実行制御サーバが変換が必要と判断した場合には、該実行制御サーバから前記リクエスト情報を受信し、前記リクエスト情報を前記サービスコンポーネントサーバのインタフェース仕様に従って変換し、前記サービスコンポーネントサーバが行う認証処理情報を前記プロファイルサーバに要求して受信し、受信した認証処理情報に応じた前記認証情報の書き換えを行い、前記サービスコンポーネントサーバに送信する過程と、を含むことを特徴とする。
【発明の効果】
【0015】
この発明によれば、SOAPサービスとRESTサービスとの連携処理システムは、サービスコンポーネントに応じて認証情報を置き換え、変換の必要がある場合にはリクエスト情報のプロトコルを変換するので、シングルサインオンを可能にするとともに、1形式のプロトコルに従って生成された1個のリクエスト情報で異なるプロトコルのサービスコンポーネントを利用することができる。
【図面の簡単な説明】
【0016】
【図1】この発明の一実施形態による、SOAPサービスとRESTサービスとの連携処理システム100の構成を示す概略ブロック図である。
【図2】同実施形態において、サービス登録サーバ12が、RESTサービスコンポーネント28、29、30からWADL定義文書を受信して、WSDL定義文書に変換する例を示す図である。
【図3】同実施形態において、サービス登録サーバ12が、SOAPサービスコンポーネント20、26、27からWSDL定義文書を受信して、WADL定義文書に変換する例を示す図である。
【図4】同実施形態における、プロファイルサーバ10の構成を示す図である。
【図5】同実施形態において、SOAPリクエスト情報がRESTリクエスト情報に変換され、それに対するRESTレスポンスがSOAPレスポンスに変換される例を示す図である。
【図6】同実施形態において、RESTリクエスト情報がSOAPリクエスト情報に変換され、それに対するSOAPレスポンスがRESTレスポンスに変換される例を示す図である。
【図7】同実施形態において、実行制御サーバ1が、SOAPリクエスト情報を受信し、SOAPサービスコンポーネント20、26、27に送信する動作を示すフロー図である。
【図8】同実施形態において、実行制御サーバ1が、RESTリクエスト情報を受信し、RESTサービスコンポーネント28、29、30に送信する動作を示すフロー図である。
【図9】同実施形態において、メッセージトランスレータ装置7が、実行制御サーバ1を経由して受信したSOAPリクエスト情報をRESTリクエスト情報に変換して、RESTサービスコンポーネント28、29、30に送信する動作を示すフロー図である。
【図10】同実施形態において、メッセージトランスレータ装置7が、実行制御サーバ1を経由して受信したRESTリクエスト情報をSOAPリクエスト情報に変換して、SOAPサービスコンポーネント20、26、27に送信する動作を示すフロー図である。
【発明を実施するための形態】
【0017】
<サービス連携処理システムの構成>
以下、図面を参照して、本発明の実施形態について説明する。図1は、本発明の実施形態による、サービス連携処理システム100の構成を示す概略ブロック図である。
図1のサービス連携処理システム100は、実行制御サーバ1と、トラフィック情報管理サーバ14と、メッセージトランスレータ装置7と、プロファイルサーバ10と、サービス登録サーバ12と、サービス公開サーバ13と、認証局6と、ネットワーク18と、SOAPサービスコンポーネントサーバ19と、RESTサービスコンポーネントサーバ21と、SOAPサービスリクエスタ端末16と、RESTサービスリクエスタ端末17とを備える。
SOAPサービスリクエスタ端末16、RESTサービスリクエスタ端末17、実行制御サーバ1、メッセージトランスレータ装置7、サービス公開サーバ13、サービス登録サーバ12、認証局6、SOAPサービスコンポーネントサーバ19、RESTサービスコンポーネントサーバ21は、ネットワーク18を介して接続されている。
また、プロファイルサーバ10は、実行制御サーバ1、メッセージトランスレータ装置7、サービス登録サーバ12に接続されている。
また、トラフィック情報管理サーバ14は、実行制御サーバ1に接続されている。
なお、プロファイルサーバ10、トラフィック情報管理サーバ14は、ネットワーク18を介して接続されていてもよい。
【0018】
SOAPサービスコンポーネントサーバ19において、SOAPサービスコンポーネント20、26、27は、それぞれのプログラムが実行されることにより構成される機能部であり、SOAPリクエスト情報を受信して、SOAPレスポンスを送信する。また、SOAPサービスコンポーネント20、26、27は、提供するサービスをインタフェース定義であるWSDL(Web Service Description Language)で定義したWSDL定義文書を生成する。
ここで、SOAPリクエスト情報は、サービスコンポーネントにレスポンスの送信を要求するために、XML(Extensible Markup Language)やHTTP(Hyper Text Transfer Protocol)などの転送プロトコルに基づいて記述される情報である。また、SOAPサービスコンポーネント20、26、27に対するSOAPリクエスト情報のフォーマットについても、提供するサービスを記述する場合と同じく、WSDLを用いて記述されるWSDL定義文書によって示される。
RESTサービスコンポーネントサーバ21において、RESTサービスコンポーネント28、29、30は、それぞれのプログラムが実行されることにより構成される機能部であり、RESTリクエスト情報を受信して、RESTレスポンスを送信する。また、RESTサービスコンポーネント28、29、30は、提供するサービスをインタフェース定義であるWADL(Web Application Description Language)で定義したWADL定義文書を生成する。
ここで、RESTリクエスト情報は、サービスコンポーネントにレスポンスの送信を要求するために、HTTPのGET、PUT、POST、DELETEメソッドを用いて記載される情報である。また、RESTサービスコンポーネント28、29、30に対するRESTリクエスト情報のフォーマットについても、提供するサービスを記述する場合と同じく、WADLを用いて記載されるWADL定義文書によって示される。
なお、以下の説明において、SOAPサービスコンポーネント20、26、27、RESTサービスコンポーネント28、29、30の全てをいうときは、単にサービスコンポーネントともいう。
また、SOAPリクエスト情報及びRESTリクエスト情報の両方を示すときには、単にリクエスト情報ともいう。
また、WSDL定義文書とWADL定義文書の両方を示すときには、単に定義文書ともいう。
【0019】
サービス登録サーバ12において、サービス登録部41は、SOAPサービスコンポーネント20、26、27から受信したWSDL定義文書、または、RESTサービスコンポーネント28、29、30から受信したWADL定義文書を内部の記憶領域に登録する。
コンポーネント情報抽出部42は、サービスコンポーネントから受信する定義文書中に記載されたサービスID(Identifier)と、URI(Uniform Resource Identifier)と、オペレーション名とを読み出す。また、コンポーネント情報抽出部42は、定義文書の書式から、該定義文書を送信したサービスコンポーネントのプロトコルがSOAPかRESTかを判定する。併せて、コンポーネント情報抽出部42は、サービスコンポーネントから定義文書と共に送信される、非機能要件処理ポリシーと、ID変換パターンと、サービスコンポーネント固有の認証情報と、変換を求める情報とを受信する。
【0020】
ここで、サービスIDとは、サービスコンポーネントを識別するための識別子である。
また、URIとは、サービスコンポーネントのネットワーク上でのアドレスを表す識別子である。
また、非機能要件処理ポリシーとは、サービスコンポーネントが実行を要求する非機能要件を示す情報である。非機能要件処理とは、SOAPリクエスト情報或いはRESTリクエスト情報に対する直接の処理であるレスポンスを返信する処理以外の処理をいい、例えば、認可処理や、ユーザ閉塞確認処理や、サービス閉塞確認処理や、擾乱防止処理や、トラフィック制御処理などがある。認可処理としては、SOAPリクエスト情報またはRESTリクエスト情報のホワイトリスト照合や、ブラックリスト照合や、SOAPリクエスト情報またはRESTリクエスト情報中に書き込まれた、サービスコンポーネントによって発行されたIDを検出することによるサービスコンポーネントへのアクセス権限の判定などがある。擾乱防止処理は、ネットワークからの擾乱を防止する処理であり、リクエスト情報に記載された条件を満たさないサービスコンポーネントへのリクエスト情報の送信を行わなくするコンテンツフィルタ処理や、いわゆるスパム攻撃などの場合に、特定のユーザとの通信量を制御するスロットリング処理などがある。トラフィック制御機能処理としては、リクエスト情報に優先度を付けて優先度の高いものから処理する優先制御処理や、サービスコンポーネントサーバの処理能力に応じて通信量を制御するフロー制御などがある。
また、ID変換パターンとは、サービスコンポーネントが行う認証方法のパターンを表す情報であり、例えば、後述するSAML連携型、ID置換型、削除型などがある。
また、サービスコンポーネント固有の認証情報とは、サービスコンポーネントが独自に発行する認証情報であり、例えば、該サービスコンポーネントが発行するIDおよびパスワードである。したがって、認証を行わないサービスコンポーネントや、複数のサービスコンポーネントに共通の認証情報である認証チケットを利用して認証を行うサービスコンポーネントは、サービスコンポーネント固有の認証情報を発行しない。
なお、以下では、サービスコンポーネント固有の認証情報を、単に固有の認証情報ともいう。
定義文書変換部43は、サービス登録部41からWSDL定義文書の入力を受けると、該WSDL定義文書中の送信先アドレスを実行制御サーバ1のアドレスに書き換え、認証情報のパラメータを書き込む。また、定義文書変換部43は、WSDL定義文書と共に、変換を求める旨の情報の入力を受けると、該WSDL定義文書をWADL定義文書に変換する。また、定義文書変換部43は、サービス登録部41からWADL定義文書の入力を受けると、該WADL定義文書中の送信先アドレスを実行制御サーバ1のアドレスに書き換え、認証情報のパラメータを書き込む。また、定義文書変換部43は、WADL定義文書と共に、変換を求める旨の情報の入力を受けると、該WADL定義文書をWSDL定義文書に変換する。
【0021】
プロファイルサーバ10において、プロファイル制御部11は、プロトコル変換の要否を示す情報として変換が不要であること示す情報(例えば、「否」)を生成し、これと、コンポーネント情報抽出部42から受信したサービスIDと、URIと、サービスコンポーネントのプロトコルと、名前空間とを関連付けて、サービス情報テーブル51に登録する。また、プロファイル制御部11は、定義文書変換部43から、定義文書の変換を行った旨を示す情報を受信すると、コンポーネント情報抽出部42から受信したサービスIDと、URIと、変換後の定義文書に対応するプロトコルと、プロトコル変換が必要であることを示す情報(例えば、「要」)と、名前空間とを関連付けて、サービス情報テーブル51に登録する。ここで、変換後の定義文書に対応するプロトコルとしては、変換後の定義文書がWSDL定義文書であればSOAP、WADL定義文書であればRESTを登録する。
また、プロファイル制御部11は、コンポーネント情報抽出部42から受信したサービスIDと、オペレーション名と、ID変換パターンと、サービスコンポーネント固有の認証情報と、非機能要件ポリシーとを関連付けて、オペレーションテーブル52に登録する。
【0022】
サービス公開サーバ13において、公開サービス制御部48は、定義文書変換部43から、プロトコル変更前のWSDL定義文書またはWADL定義文書を受信して、公開サービス記憶部49に登録する。また、定義文書変換部43が定義文書の変換を行った場合は、公開サービス制御部48は、プロトコル変換後の定義文書を定義文書変換部43から受信して、公開サービス記憶部49に登録する。また、定義文書変換部43が定義文書の変換を行った場合は、公開サービス制御部48は、タグセットを定義する外部スキーマファイルと名前空間とを定義文書家変換部43から受信し、両者を対応付けて公開サービス記憶部49に登録する。
【0023】
認証局6において、認証情報制御部50は、認証情報の発行要求を受信すると、発行要求の正当性を判定し、正当な発行要求と判定した場合には、SOAP用の認証情報である認証チケット、または、REST用の認証情報である認証チケットポインタを発行(送信)する。発行要求の正当性の判断は、例えば、認証チケット、認証チケットポインタ、IDおよびパスワードのいずれかを受信し、その正当性を判断することによって行う。
ここで、認証局6が発行する認証情報は、一度の認証で複数のWebサービスが利用できるシングルサインオン(SSO; Single Sign On)のための認証情報であり、例えばSAMLの認証チケットや認証チケットポインタである。SAMLは、標準化団体OASIS(Organization for the Advancement of Structured Information Standards)によって策定された、IDやパスワードなどの認証及び認証情報を、安全に受け渡しするための規格であり、XML仕様で規定される。SAMLにおける認証情報の受け渡し方法は、SAMLプロトコルとしてまとめられており、メッセージの送受信にはHTTPまたはSOAPが用いられる。SAMLの認証チケットは、資格証明用の情報であり、これを流通させることでシングルサインオンができる。なお、RESTでは、認証情報は1度しか使えないものとして、認証チケットではなく、認証チケットへのポインタである認証チケットポインタの受け渡しを行うこととする。
また、認証情報制御部50は、例えば、認証チケットまたは認証チケットポインタを受信して、あるいは、認証局6専用のIDとパスワードを受信して、これらが正当なものであるかを判定する。IDとパスワードが正当なものであると判定した場合、認証情報制御部50は、認証チケットを受信したときは、認証チケットポインタ/認証チケット対応表25で対応付けられた認証チケットポインタを発行する。また、認証チケットポインタを受信したときは、認証チケットポインタ/認証チケット対応表25で対応付けられた認証チケットを発行する。また、認証局6専用のIDとパスワードと共に、認証チケットまたは認証チケットポインタの指定を受信した場合は、指定に従って、認証チケット及び認証チケットポインタを発行し、発行した認証チケット及び認証チケットポインタを認証チケットポインタ/認証チケット対応表25に記憶させ、指定のあった認証チケットまたは認証チケットポインタを送信する。
【0024】
SOAPサービスリクエスタ端末16において、SOAPサービスリクエスタ44は、サービス公開サーバ13にWSDL定義文書を要求して受信し、該WSDL定義文書に基づいてSOAPリクエスト情報を生成する。また、SOAPサービスリクエスタ端末16は、認証局6に認証チケットの発行を要求して受信し、該認証チケットをSOAPリクエスト情報中に、パラメータ値として書き込む。
RESTサービスリクエスタ端末17において、RESTサービスリクエスタ45は、サービス公開サーバ13にWADL定義文書を要求して受信し、該WADL定義文書に基づいてRESTリクエスト情報を生成する。また、RESTサービスリクエスタ端末17は、認証局6に認証チケットポインタの発行を要求して受信し、該認証チケットポインタをRESTリクエスト情報中に、パラメータ値として書き込む。
なお、以下の説明において、SOAPサービスリクエスタ44と、RESTサービスリクエスタ45との両方をいうときは、単にサービスリクエスタともいう。
【0025】
実行制御サーバ1は、メッセージプロキシ部3と、認証部36と、非機能要件処理部2とを備える。
メッセージプロキシ部3において、プロトコル判定部33は、SOAPサービスリクエスタ44またはRESTサービスリクエスタ45からリクエスト情報を受信し、該リクエスト情報のプロトコルがSOAPかRESTかを判定する。SOAPかRESTかの判定は、例えば、要素名が「soapenv」で始まるタグがあればSOAP、なければRESTとする。
SOAPリクエスト情報転送部4は、プロトコル判定部33が受信したリクエスト情報のプロトコルがSOAPである場合に、該リクエスト情報の入力を受ける。また、SOAPリクエスト情報転送部4は、プロファイルサーバ10から、プロトコル変換が必要か否かの情報と、該リクエスト情報に対するサービスコンポーネントサーバのURIを受信し、変換が不要な場合は、該サービスコンポーネントサーバにリクエスト情報を送信する。
RESTリクエスト情報転送部5は、プロトコル判定部33が受信したリクエスト情報のプロトコルがRESTである場合に、該リクエスト情報の入力を受ける。また、RESTリクエスト情報転送部5は、プロファイルサーバ10から、プロトコル変換が必要か否かの情報と、該リクエスト情報に対するサービスコンポーネントサーバのURIを受信し、変換が不要な場合は、該サービスコンポーネントサーバにリクエスト情報を送信する。
SOAPレスポンス転送部34は、SOAPレスポンスを受信すると、SOAPサービスリクエスタ44に、該SOAPレスポンスを送信する。
RESTレスポンス転送部35は、RESTレスポンスを受信すると、RESTサービスリクエスタ45に、該RESTレスポンスを送信する。
【0026】
認証部36において、認証チケットポインタ解決部46は、プロトコル判定部33からリクエスト情報の入力を受け、該リクエスト情報のプロトコルがSOAPの場合は、リクエスト情報から認証チケットを読み出す。また、認証チケットポインタ解決部46は、リクエスト情報がRESTの場合は、リクエスト情報から認証チケットポインタを読み出し、読み出した認証チケットポインタを認証局6へ送信して認証チケットを受信する。
シングルサインオン部47は、認証チケットポインタ解決部46から認証チケットの入力を受け、該認証チケットの正当性を判断することによって認証を行う。
なお、SOAPサービスリクエスタ44は、認証チケットの代わりに実行制御サーバ1が発行したIDおよびパスワードをSOAPリクエスト情報中に書き込んで実行制御サーバ1へ送信し、シングルサインオン部47は、該IDおよびパスワードの正当性を判定することによって認証を行ってもよい。同様に、RESTサービスリクエスタ45は、認証チケットポインタの代わりに実行制御サーバ1が発行したIDおよびパスワードをRESTリクエスト情報中に書き込んで実行制御サーバ1へ送信し、シングルサインオン部47は、該IDおよびパスワードの正当性を判定することによって認証を行ってもよい。
認証部36が行う認証は、シングルサインオンの基礎認証であり、認証に成功すると、すなわち、正当な認証チケットと判断された場合は、サービスリクエスタは、サービスコンポーネントの認証を直接受けることを免除される。
非機能要件処理部2は、認証部36から、認証に成功したこと、すなわち、認証チケットあるいは認証チケットポインタにより示される認証チケットが正当なものであることが示された情報の入力を受けると、非機能要件処理を行う。また、非機能要件処理部2は、メッセージプロキシ部3へ、非機能要件処理に成功したこと、例えば、認可処理において、サービスコンポーネントへのアクセス権限を有するサービスリクエスタであることが確認されたことを示す情報を出力する。
【0027】
メッセージトランスレータ装置7は、リクエスト情報変換部37と、レスポンス変換部38を備える。
リクエスト情報変換部37において、SOAPリクエスト情報変換部8は、SOAPリクエスト情報転送部4からSOAPリクエスト情報を受信して、RESTリクエスト情報に変換し、プロファイルサーバ10に、該RESTリクエスト情報に対応するサービスコンポーネントのURIを要求して受信し、該サービスコンポーネントにRESTリクエスト情報を送信する。
RESTリクエスト情報変換部9は、RESTリクエスト情報転送部5からRESTリクエスト情報を受信して、SOAPリクエスト情報に変換し、プロファイルサーバ10に、該SOAPリクエスト情報に対応するサービスコンポーネントのURIを要求して受信し、該サービスコンポーネントにSOAPリクエスト情報を送信する。
レスポンス変換部38において、SOAPレスポンス変換部39は、SOAPサービスコンポーネント20、26、27のいずれかからSOAPレスポンスを受信すると、RESTレスポンスに変換してRESTレスポンス転送部35へ送信する。
RESTレスポンス変換部40は、RESTサービスコンポーネント28、29、30のいずれかからRESTレスポンスを受信すると、SOAPレスポンスに変換してSOAPレスポンス転送部34へ送信する。
【0028】
トラフィック情報管理サーバ14において、サービス品質監視制御部15は、サービスコンポーネントが起動しているか否かや、レスポンスに要する時間を調べるサービス品質監視制御を行い、これらの情報を実行制御サーバ1の非機能要件処理部2に送信する。また、サービス品質監視制御部15は、非機能要件処理部2から、スロットリングの情報や、優先制御の情報や、フロー制御の情報を受信して、通信の制御を実行する。
【0029】
<WADL定義文書からWSDL定義文書への変換例>
次に、図2を参照しつつ、サービス登録サーバ12が、RESTサービスコンポーネント28、29、30からWADL定義文書を受信して、WSDL定義文書に変換する例について説明する。WADL定義文書は、RESTリクエスト情報のフォーマットを示すものであり、SOAPサービスリクエスタ44がそのまま用いることはできない。そこで、サービス登録サーバ12は、該WADL定義文書を、SOAPリクエスト情報のフォーマットを示すWSDL定義文書に変換する。
サービス事業者の操作を受けたRESTサービスコンポーネント28、29、30は、サービスIDとオペレーション名とが書き込まれたWADL定義文書、例えば、図2のsample.wadlを生成し、サービス登録サーバ12に送信する。また、RESTサービスコンポーネント28、29、30は、非機能要件処理ポリシーと、ID変換パターンと、サービスコンポーネント固有の認証情報と、変換を求めるか否か示す情報とを、WADL定義文書と共に、サービス登録サーバ12に送信する。
【0030】
サービス登録サーバ12のサービス登録部41は、受信したWADL定義文書を、内部の記憶部に登録する。また、サービス登録部41は、受信したWADL定義文書と、非機能要件処理ポリシーと、ID変換パターンと、サービスコンポーネント固有の認証情報とを、コンポーネント情報抽出部42に出力する。また、サービス登録部41は、受信したWADL定義文書を、定義文書変換部43へ出力する。
コンポーネント情報抽出部42は、RESTサービスコンポーネント28、29、30から受信するWADL定義文書中に記載されたサービスIDと、URIと、オペレーション名とを読み出して、プロファイルサーバ10へ送信する。また、コンポーネント情報抽出部42は、定義文書の書式から、該定義文書を送信したRESTサービスコンポーネント28、29、30のプロトコルがSOAPかRESTかを判定して、プロファイルサーバ10へ送信する。ここでは、RESTであることを示す情報を送信する。また、コンポーネント情報抽出部42は、サービス登録部41から入力された、非機能要件処理ポリシーと、ID変換パターンと、サービスコンポーネント固有の認証情報とをプロファイルサーバ10へ出力する。
【0031】
定義文書変換部43は、サービス登録部41から入力されたWADL定義文書中に記載された送信先アドレスを実行制御サーバ1のアドレスに書き換え、また、認証情報のパラメータを書き加えて、サービス公開サーバ13に送信し、公開サービス制御部48を通じて公開サービス記憶部49に登録させる。
また、定義文書変換部43は、サービス登録部41から、変換を求める旨の情報が入力された場合は、サービス登録部41から入力されたWADL定義文書をWSDL定義文書に変換する。そして、定義文書変換部43は、変換後のWSDL定義文書中に記載された送信先アドレスを実行制御サーバ1のアドレスに書き換え、認証情報のパラメータを書き加えて、サービス公開サーバ13に送信し、公開サービス制御部48を通じて公開サービス記憶部49に登録させる。
また、定義文書変換部43は、変換を行った場合は、変換を行った旨を示す情報を、プロファイルサーバ10へ送信する。
【0032】
定義文書変換部43が行う、WADL定義文書からWSDL定義文書への変換は、以下の手順に従って行われる。
(1)SOAP名前空間(targetNamespace)は、サービス登録時に入力されたサービスIDに、定型プレフィックスを付したものとする。例えば、サービスID「com.goo.search」に、定型プレフィックス「urn:nttcs:com」を付して、名前空間を「urn:nttss:com:goo:search」とする。図2の例では、サービスID「sample」に定型プレフィックス「nttss」を付して、名前空間を「urn:nttss:sample」としている。
ここで、名前空間とは、SOAPリクエスト情報中で使用されるタグセットの定義に付される識別子であり、タグセットの定義の登録先を示す。手順(1)によって、名前空間の一意性を確保する。
【0033】
(2)SOAPサービスコンポーネントのエンドポイントは、RESTサービスコンポーネントのURIを用いて、URIの共通部分をbase属性、そこからの相対パスURIをpath属性として、base属性にpath属性を付したもので表す。図2の例では、URIの共通部分「http://AAA」に相対パス「BBB」を付して、エンドポイントを「http://AAA/BBB」で表している。
【0034】
(3)SOAPオペレーション名は、「HTTPメソッド名+#連番」とする。図2の例では、sample.wadl中のHTTPメソッド名「GET」に、連番「#1」を付して、SOAPオペレーション名「GET#1」としている。連番は、同一メソッド名に対して、例えば「GET#1」、「GET#2」のように付す。
ここで、SOAPオペレーション名を「HTTPメソッド名十#連番」とするのは、RESTでは1リソースに同一メソッド名を複数定義(オーバーロード)できるので、その識別をするためである。
【0035】
(4)SOAPリクエスト情報のパラメータのメディアタイプが、「application/x-www-form-urlencoded」の場合は、RESTの各クエリパラメータが、SOAPのパラメータと一対一に対応付けられる。
また、メディアタイプが「application/xml」または「text/xml」の場合は、当該XML文書が、SOAPの1パラメータとして対応付けられる。
変換前後でパラメータを1対1に対応付けることによって、メッセージトランスレータ装置7が、SOAPリクエスト情報をRESTリクエスト情報に変換する際に、変換前後でパラメータが1対1に対応付けられ、RESTリクエスト情報のパラメータに、対応するSOAPリクエスト情報のパラメータ値を書き込めるようにするためである。
【0036】
(5)SOAPレスポンスを表すパラメータは、RESTのレスポンスとして定義されたXML文書そのものとする。
これにより、メッセージトランスレータ装置7がSOAPリクエスト情報をRESTリクエスト情報に変換する際、SOAPレスポンスのパラメータを読み出すことでRESTレスポンスのパラメータが得られる。
【0037】
また、サービス登録サーバの定義文書変換部43は、WADL定義文書中のinclude文から、タグセットの定義を示す外部スキーマファイルを読み出し、該外部スキーマフィルと手順(1)に従って生成した名前空間と対応付けてサービス公開サーバ13の公開サービス制御部48を経由して公開サービス記憶部49に登録する。また、定義文書変換部43は、名前空間を、プロファイルサーバ10のプロファイル制御部11を経由してサービス情報テーブル51に登録する。
図2の例では、定義文書変換部43は、include文「<include href="sample.xsd">」から、タグセットの定義を示す外部スキーマファイルsample.xsdを読み出し、該外部スキーマフィルと名前空間「targetNamespace="urn:nttss:sample"」とを公開サービス記憶部49に登録する。外部スキーマファイルと名前空間との対応付けは、例えば、公開サービス記憶部49中に対応関係テーブルを設けて登録することによって行う。
また、定義文書変換部43は、生成するWSDL定義文書sample.wswdl中に、名前空間を書き込む。
これによって、SOAPサービスリクエスタ44が、WSDL定義文書を受信してSOAPリクエストを生成する際、名前空間をサービス公開サーバ13に送信し、外部スキーマファイルを受信してタグセットの定義を知ることができる。
【0038】
<WSDL定義文書からWADL定義文書への変換例>
次に、図3を参照しつつ、サービス登録サーバ12が、SOAPサービスコンポーネント20、26、27からWSDL定義文書を受信して、WADL定義文書に変換する例について説明する。WADL定義文書からWSDL定義文書への変換の場合と同様、サービス登録サーバ12は、WSDL定義文書をRESTサービスリクエスタ45が利用できるWADL定義文書に変換する。
なお、プロファイルサーバ10に情報を登録する過程、および、サービス公開サーバ13に定義文書を登録する過程は、サービス登録サーバ12がプロファイルサーバ10に名前空間を登録する点を除いて、WADL定義文書からWSDL定義文書に変換する場合と同様であり以下、名前空間を登録する構成と変換の手順について説明する。
サービス登録サーバ12のコンポーネント情報抽出部42は、WSDL定義文書中に記載されたサービスIDと、URIとに加えて、名前空間を読み出して、プロファイルサーバ10へ送信する。名前空間は、プロファイルサーバ10のサービス情報テーブル51に登録される。
サービス登録サーバ12の定義文書変換部43は、WSDL定義文書、例えば、図3のsample.wsdlを、図3のWADL定義文書sampleExport.wadlに変換する。
定義文書変換部43が行う、WSDL定義文書からWADL定義文書への変換は、以下の手順に従って行われる。
【0039】
(1)使用するHTTPのメソッドは、GET固定とし、SOAPのオペレーション名をクエリパラメータ「nttss:method」に設定する。図3の例では、メソッドGET用いて「<method name="GET">」とし、「<param name="nttss:method" … fixed="search"/>」タグにてSOAPのオペレーション名「search」を示している。
ここで、SOAPのオペレーションの意味は自動判別できないため、httpのGETに全てマッピングすることで、自動変換を可能としている。
【0040】
(2)以下のルールに従い、SOAPの全パラメータフィールドを直列化し、クエリパラメータに変換する。
1.配列は、element名と配列のインテックスを「@」で結合して、element名@<配列のインデックス(1〜)>とする。
2.構造体の入れ子は、element名を「@」で連結する。図3の例では、パラメータ「condition」は構造体であり、sampleExport.wadlでは、入れ子を「@」で結合した「condition@elem1」、「conditon@elem2」がelement名として用いられている。
3.その他は、element名をそのまま用いる。図3の例では、sample.wsdl中のパラーメータ「keyword」は、「string」型であって配列でも構造体でもないので、sampleExport.wadl中では「<param name="tns:keyword"…>」と、element名「keyword」がそのまま用いられている。
これにより、メッセージトランスレータ装置7が、RESTリクエスト情報をSOAPリクエスト情報に変換する際に、元の配列や構造体の構造に変換できるようにしている。
【0041】
(3)SOAPのレスポンスメッセージ定義を、そのままRESTのレスポンス(XML文書)とする。
これにより、メッセージトランスレータ装置7がRESTリクエスト情報をSOAPリクエスト情報に変換する際、RESTレスポンスのパラメータを読み出すことでSOAPレスポンスのパラメータを得られる。
【0042】
また、サービス登録サーバ12の定義文書変換部43は、WSDL定義文書からタグセットの定義と該タグセットの定義に付される識別子である名前空間とを読み出し、両者を対応付けてサービス公開サーバ13の公開サービス制御部48を経由して公開サービス記憶部49に登録しする。また、定義文書変換部43は、名前空間を、プロファイルサーバ10のプロファイル制御部11を経由してサービス情報テーブル51に登録する。
図3の例では、定義文書変換部43は、WSDL定義文書sample.wsdlから、点線で囲まれた部分のタグセットの定義と、名前空間「targetNamespace="http://AAA" xmlns:ns1="http://BBB"」とを読み出す。点線部分のタグセットの定義は、例えば"Response"の文字を含むタグを検出し、タグで囲まれた部分を抽出することによって行う。
また、定義文書変換部43は、読み出したタグセットの定義を、外部スキーマファイルsearchResponse_schema.xsdとして、名前空間と対応付けて公開サービス記憶部49に登録する。タグセットの定義と名前空間との対応付けは、例えば、公開サービス記憶部49中に対応関係テーブルを設けて登録することによって行う。
また、定義文書変換部43は、生成するWADL定義文書sampleExport.wadl中に、外部スキーマファイルの読み込み文(include文)「<include href="searchResponse_schema.xsd/>"」を書き込む。
これによって、RESTサービスリクエスタ45が、WADL定義文書を受信してRESTリクエストを生成する際、include文中の外部スキーマファイル名をサービス公開サーバ13に送信し、外部スキーマファイルを受信してタグセットの定義を知ることができる。
【0043】
また、定義文書変換部43は、名前空間をプロファイルサーバ10に送信し、プロファイルサーバ10のプロファイル制御部11は、受信した名前空間を、コンポーネント情報抽出部42から受信したサービスIDと対応付けてサービス情報テーブル51に登録する。
これによって、メッセージトランスレータ装置7がRESTリクエストをSOAPリクエストに変換する際、WADL定義文書中のサービスIDをプロファイルサーバ10に送信して名前空間を受信し、SOAPリクエスト中に書き込むことができる。また、SOAPリクエストを受信したSOAPサービスコンポーネント20、26、27は、SOAPリクエスト中の名前空間をサービス公開サーバ13に送信し、外部スキーマファイルを受信して、タグセットの定義を知ることができる。
【0044】
<プロファイルサーバに登録される情報>
次に、図4を参照して、プロファイルサーバ10のサービス情報テーブル51およびオペレーションテーブル52に登録される情報について説明する。
サービス情報テーブル51は、サービスコンポーネントを識別するための識別子である「サービスID」と、リクエスト情報の「プロトコル」と、サービスコンポーネントのネットワーク上のアドレスを表す「URI」と、リクエスト情報の変更の要否を示す「変換要否」の情報と、前述の「名前空間」とを記憶する。
「URI」の項目は、実行制御サーバ1またはメッセージトランスレータ装置7が、リクエスト情報をサービスコンポーネントに送信するために用いられる。
「変換要否」の項目に記載される情報は、実行制御サーバ1がリクエスト情報の送信先を決定するために用いられる情報である。実行制御サーバ1は、変換が必要な場合はメッセージトランスレータ装置7へ、不要な場合はサービスコンポーネントへ、リクエスト情報を送信する。
「サービスID」の項目は、「プロトコル」の項目と共に、サービス情報テーブル51を検索する際のキーとなる。
【0045】
オペレーションテーブル52は、「サービスID」と、「オペレーション名」と、「ID変換パターン」と、「固有の認証情報」と、「非機能要件処理ポリシー」とを記憶する。
「オペレーション名」の項目は、「サービスID」の項目と共に、オペレーションテーブル52を検索する際のキーとなる。なお、オペレーション名が規定されないサービスの場合は、「サービスID」のみをキーとしてオペレーションテーブル52を検索する。
「ID変換パターン」の項目は、サービスコンポーネントが行う認証方法のパターンを表す情報である。ID変換パターンは、「SAML連携型」と、「ID置換型」と、「削除型」のいずれかの情報である。
ここで、以下の説明では、SOAPサービスコンポーネント20、RESTサービスコンポーネント28が「SAML連携型」、SOAPサービスコンポーネント26、RESTサービスコンポーネント29が「ID置換型」、SOAPサービスコンポーネント27、RESTサービスコンポーネント30が「削除型」であるとする。
「SAML連携型」のSOAPサービスコンポーネント20は、認証局6が発行する認証チケットを利用して認証を行うサービスコンポーネントである。実行制御サーバ1またはメッセージトランスレータ装置7は、SOAPサービスコンポーネント20に対しては、認証チケットを書き込んだリクエスト情報を送信する。また、同じくSAML連携型のRESTサービスコンポーネント28は、認証局6が発行する認証チケットポインタを利用して認証を行うサービスコンポーネントであり、RESTサービスコンポーネント28に対しては、実行制御サーバ1またはメッセージトランスレータ装置7は、認証チケットポインタを書き込んだリクエスト情報を送信する。
「ID置換型」のSOAPサービスコンポーネント26、RESTサービスコンポーネント29は、サービスコンポーネント固有の認証情報、例えばIDおよびパスワードを利用するサービスコンポーネントである。実行制御サーバ1またはメッセージトランスレータ装置7は、SOAPサービスコンポーネント26、RESTサービスコンポーネント29に対しては、固有の認証情報を書き込んだリクエスト情報を送信する。
「削除型」のSOAPサービスコンポーネント27、RESTサービスコンポーネント30は、認証を行わないサービスコンポーネントである。実行制御サーバ1またはメッセージトランスレータ装置7は、SOAPサービスコンポーネント27、RESTサービスコンポーネント30に対しては、認証情報を削除したリクエスト情報を送信する。
非機能要件処理ポリシーは、前記のとおり、実行制御サーバ1が行う非機能要件処理の内容を示す情報である。
また、実行制御サーバ1やメッセージトランスレータ装置7に、キャッシュ部31、32を備えておき、サービス情報テーブル51やオペレーションテーブル52の情報をそれぞれのキャッシュ部31、32に記憶しておくことで、プロファイルサーバ10との通信量を削減するようにしてもよい。
【0046】
<SOAPリクエスト情報からRESTリクエスト情報への変換例>
次に、SOAPリクエスト情報からRESTリクエスト情報への変換について、図5に示す例を用いて説明する。なお、以下ではSAML連携型のRESTサービスコンポーネント28について説明する。ID置換型のRESTサービスコンポーネント29や、削除型のRESTサービスコンポーネント30についても同様の変換を行う。
図5は、SOAPリクエスト情報がRESTリクエスト情報に変換され、それに対するRESTレスポンスがSOAPレスポンスに変換される例を示す図である。
実行制御サーバ1は、SOAPサービスリクエスタ44からSOAPリクエスト情報を受信すると、要素名が「soapenv」で始まるタグがあることから、プロトコルがSOAPであると判定して、SOAPリクエスト中から認証チケットを読み出して、認証チケットの検証によるシングルサインオン認証を行い、非機能要件処理を実行し、SOAPリクエスト情報をメッセージトランスレータ装置7に転送する。
メッセージトランスレータ装置7のSOAPリクエスト情報変換部8は、SOAPリクエスト情報を受信すると、SOAPオペレーションからRESTメソッドを判断してSOAPリクエスト情報をRESTリクエスト情報に変換し、また、SOAPリクエスト情報中にパラメータとして書き込まれた認証チケットと、その他のパラメータ値とを抽出する。また、SOAPリクエスト情報変換部8は、認証局6に認証チケットを送信して認証チケットポインタを取得し、該認証チケットポインタとSOAPリクエスト情報から抽出したその他のパラメータ値とを、RESTリクエスト情報中に書き込んで、RESTサービスコンポーネント28に送信する。
図5の場合、SOAPリクエスト
<soapenv:Envelope・・・> <soapenv:Header/>
<soapenv:Body>
<tns:Get#1> <para1>xxx</para1> <para2>yyy</para2>
<tns:Get#1> <soapenv:Body> </soapenv:Envelope>
に記載されている、SOAPオペレーション「GET#1」からRESTメソッドが「GET」であると判別し、SOAPリクエスト情報から抽出したパラメータ「<para1>xxx</para1> <para2>yyy</para2>」を「para1=xxx&para2=yyy#1」の形にしてRESTのクエリパラメータに入れる。
この変換は、WADL定義文書をWSDL定義文書に変換する際に、前述した手順(1)〜(5)に従うことによって可能となっている。
【0047】
SOAPリクエスト情報変換部8は、変換したRESTリクエスト情報をRESTサービスコンポーネント28へ送信する。
RESTサービスコンポーネント28は、RESTリクエスト情報を受信すると、RESTレスポンスをメッセージトランスレータ装置7へ送信する。
メッセージトランスレータ装置7のRESTレスポンス変換部40は、受信したRESTレスポンスの内容を、SOAPレスポンスのパラメータ値として書き込むことによって、RESTレスポンスをSOAPレスポンスに変換する。
図5の場合、RESTレスポンスの内容「<ZZZ> <result> 0 </result> </ZZZ>」が、SOAPレスポンス中にパラメータ値として書き込まれている。
RESTレスポンス変換部40は、変換によって生成されたSOAPレスポンスを、実行制御サーバ1のSOAPレスポンス転送部34を経由して、SOAPサービスリクエスタ44へ送信する。
以上よって、SOAPサービスリクエスタ44は、SOAPによって記載されたSOAPリクエスト情報を送信することによって、RESTサービスコンポーネント28からのレスポンスを、SOAPレスポンスとして得ることができる。
【0048】
<RESTリクエスト情報からSOAPリクエスト情報への変換例>
次に、RESTリクエスト情報からSOAPリクエスト情報への変換について、図6に示す例を用いて説明する。なお、以下ではSAML連携型のSOAPサービスコンポーネント20について説明する。ID置換型のSOAPサービスコンポーネント26や、削除型のSOAPサービスコンポーネント27についても同様の変換を行う。
図6は、RESTリクエスト情報がSOAPリクエスト情報に変換され、それに対するSOAPレスポンスがRESTレスポンスに変換される例を示す図である。
実行制御サーバ1は、RESTサービスリクエスタ45からRESTリクエスト情報を受信すると、要素名が「soapenv」で始まるタグが無いことから、プロトコルがRESTであると判定して、RESTリクエスト情報中から認証チケットポインタを読み出して認証局6へ送信し、認証チケットを取得する。実行制御サーバ1は、取得した認証チケットの検証によるシングルサインオン認証を行い、また、RESTでは認証情報は1度しか使えないので、認証チケットを認証局6へ送信して認証チケットポインタを取得し、RESTリクエスト情報中に取得した認証チケットポインタの情報を書き込む。また、実行制御サーバ1は、非機能要件処理を実行し、RESTリクエスト情報をメッセージトランスレータ装置7に転送する。
メッセージトランスレータ装置7のRESTリクエスト情報変換部9は、RESTリクエスト情報を受信すると、RESTメソッドからSOAPオペレーション名を判断してRESTリクエスト情報をSOAPリクエスト情報に変換し、また、RESTリクエスト情報中にパラメータ値として書き込まれた認証チケットポインタ、その他のパラメータ値を読み出す。また、RESTリクエスト情報変換部9は、認証局6へ認証チケットポインタ送信し、認証チケットを取得する。また、RESTリクエスト情報変換部9は、取得した認証チケットと、その他のパラメータ値とをSOAPリクエスト情報中に書き込んで、SOAPサービスコンポーネント20に送信する。
【0049】
図6の場合、RESTリクエスト中のメソッド「nttss:method=search」からSOAPオペレーション名が「search」であると判別し、「<tns:search>」タグを生成する。また、RESTリクエスト中から読み出したパラメータ「tns:keyword=xxx &ns1:condition@elem1=yyy &ns1:condition@elem2=zzz」を「<tns:keyword>xxx</tns:keyword> <ns1:condition> <elem1> yyy </elem1> <elem2> zzz </elem2> </ns1:condition>」の形にしてSOAPリクエスト情報中に書き込む。
また、下記のRESTリクエスト情報の場合、「method=makeCallSession」によりSOAPのオペレーション「makeCallSession」が指定され、&でつながれたパラメータがSOAPのパラメータにマッピングされる。
?method=makeCallSession
&loc:callParticipants@1=sip:AAA &loc:callParticipants@2=sjp:BBB
&loc:ca1llngParticipantName=xxx &loc:charging@description=xxx
&loc:charging@currency=xxx &loc:charging@amount=100
&loc:charging@code=xxx &loc:mediaInfo@media=Audio
&loc:mediaInfo@mediaDirection=InOut &loc:changeMediaNotAllowed=false
この変換は、WSDL定義文書をWADL定義文書に変換する際に、前述した手順(1)〜(3)に従うことによって可能となっている。
【0050】
RESTリクエスト情報変換部9は、以下の手順で、RESTリクエスト情報をSOAPリクエスト情報に変換する。
RESTリクエスト情報変換部9は、変換したSOAPリクエスト情報をSOAPサービスコンポーネント20へ送信する。
SOAPサービスコンポーネント20は、SOAPリクエスト情報を受信すると、SOAPレスポンスをメッセージトランスレータ装置7へ送信する。
メッセージトランスレータ装置7のSOAPレスポンス変換部39は、受信したSOAPレスポンスのパラメータ値を、RESTレスポンスの内容とすることによって、SOAPレスポンスをRESTレスポンスに変換する。
図6の場合、SOAPレスポンスのパラメータ値「<tns:searchRseponse> <tns:result> 0 </tns:result> <tns:serarchResponse>」をRESTレスポンスの内容として、これに送信先アドレスを書き込んでRESTレスポンスを生成している。
SOAPレスポンス変換部39は、変換によって生成されたRESTレスポンスを、実行制御サーバ1のRESTレスポンス転送部35を経由して、RESTサービスリクエスタ45へ送信する。
以上によって、RESTサービスリクエスタ45は、RESTによって記載されたRESTリクエスト情報を送信することによって、SOAPサービスコンポーネント20からのレスポンスを、RESTレスポンスとして得ることができる。
次に、SOAPサービスリクエスタ44、RESTサービスリクエスタ45がリクエスト情報を送信してレスポンスを取得する際の、サービス連携処理システム100の動作について説明する。
【0051】
<第1の実施形態:実行制御サーバ1がSOAPリクエスト情報を受信し、SOAPサービスコンポーネント20、26、27にSOAPリクエスト情報を送信する場合の動作>
第1の実施形態では、SOAPサービスリクエスタ44がSOAPリクエスト情報を送信し、実行制御サーバ1を経由してSOAPサービスコンポーネント20、26、27が受信する際のサービス連携処理システム100の動作を、図7を参照しつつ説明する。
ユーザに操作されたSOAPサービスリクエスタ端末16の、SOAPサービスリクエスタ44は、サービス公開サーバ13の公開サービス記憶部49に登録されたWSDL定義文書を取得し、また、認証局6に認証チケットの発行を要求して取得する。
また、SOAPサービスリクエスタ44は、WSDL定義文書に規定されたフォーマットに従って、利用するサービスコンポーネントのサービスIDとオペレーション名とを含んだSOAPリクエスト情報を生成し、認証情報のパラメータに認証チケットの情報を書き込んで、実行制御サーバ1へ送信する(Sa1)。
【0052】
実行制御サーバ1のプロトコル判定部33は、SOAPサービスリクエスタ44から受信したリクエスト情報中に要素名が「soapenv」で始まるタグがあることから、該リクエスト情報のプロトコルがSOAPであると判定し、シングルサインオン部47へ、受信したSOAPリクエスト情報と、プロトコルがSOAPであることを示す情報を出力する(Sa2)。
シングルサインオン部47は、入力されたSOAPリクエスト情報中から読み出した認証チケットの正当性を判断することによって認証を行う。認証に成功すると、すなわち正当な認証チケットと判断すると、シングルサインオン部47は、非機能要件処理部2に、SOAPリクエスト情報と、リクエスト情報のプロトコルを示す情報とを出力する(Sa3)。
ここで、シングルサインオン部47は、例えば、認証チケットの解読方法を予め知っており、認証チケットを解読して、該認証チケットの正当性を判断する。なお、シングルサインオン部47は、認証局6へ認証チケットを送信して認証局6が認証を行ってもよい。
非機能要件処理部2は、入力されたSOAPリクエスト情報中からサービスIDを読み出し、該サービスIDをプロファイルサーバ10へ送信して、プロファイルサーバ10からオペレーションテーブル52に登録された非機能要件処理ポリシーを受信し、非機能要件処理を実行する。また、非機能要件処理部2は、認可処理などの非機能要件処理に成功すると、SOAPリクエスト情報と、リクエスト情報のプロトコルを示す情報とを、SOAPリクエスト情報転送部4へ出力する(Sa4)。
なお、オペレーションテーブルからの情報の受信は、オペレーション名が規定されているサービスでは「サービスID」と「オペレーション名」とをキーとして送信し、オペレーション名が規定されていないサービスでは「サービスID」のみをキーとして送信することによって行う。以下の説明でも同様である。
【0053】
SOAPリクエスト情報転送部4は、SOAPリクエスト情報中からサービスIDを読み出し、該サービスIDとリクエスト情報のプロトコルを示す情報とをプロファイルサーバ10に送信し、サービス情報テーブル51に登録された、SOAPサービスコンポーネント20、26、27のいずれかのURIと、変換が不要であることを示す情報とを取得する。また、SOAPリクエスト情報転送部4は、サービスIDをプロファイルサーバ10に送信し、オペレーションテーブル52に登録された、ID変換パターンの情報と、ID変換パターンがID置換型の場合は、固有の認証情報とを取得する(Sa5)。
また、SOAPリクエスト情報転送部4は、ID変換パターンがSAML連携型の場合は、SOAPリクエスト情報中の認証チケットを削除せずにそのままとして(Sa6)、SOAPサービスコンポーネント20に送信する(Sa9)。
また、SOAPリクエスト情報転送部4は、ID変換パターンがID置換型の場合は、SOAPリクエスト情報中の認証チケットを固有の認証情報に書き換え(Sa7)、SOAPサービスコンポーネント26に転送する(Sa9)。
また、SOAPリクエスト情報転送部4は、ID変換パターンが削除型の場合は、SOAPリクエスト情報中の認証チケットを削除して(Sa8)、SOAPサービスコンポーネント27に転送する(Sa9)。
SOAPサービスコンポーネント20、26、27は、SOAPリクエスト情報を受信すると、実行制御サーバ1のSOAPレスポンス転送部34を経由して、SOAPサービスリクエスタ44にSOAPレスポンスを送信する。
【0054】
<第2の実施形態:実行制御サーバ1がRESTリクエスト情報を受信し、RESTサービスコンポーネント28、29、30にRESTリクエスト情報を送信する場合の動作>
第2の実施形態では、RESTサービスリクエスタ45がRESTリクエスト情報を送信し、実行制御サーバ1を経由してRESTサービスコンポーネント28、29、30が受信する際のサービス連携処理システム100の動作を、図8を参照しつつ説明する。
ユーザに操作されたRESTサービスリクエスタ45は、サービス公開サーバ13の公開サービス記憶部49に登録されたWADL定義文書を取得し、また、認証局6に認証チケットポインタの発行を要求して取得する。
また、RESTサービスリクエスタ45は、WADL定義文書に規定されたフォーマットに従って、利用するサービスコンポーネントのサービスIDを含んだRESTリクエスト情報を生成し、認証情報のパラメータに認証チケットポインタの情報を書き込んで、実行制御サーバ1へ送信する(Sb1)。
【0055】
実行制御サーバ1のプロトコル判定部33は、RESTサービスリクエスタ45から受信したリクエスト情報中に、要素名が「soapenv」で始まるタグが無いことから、該リクエスト情報のプロトコルがRESTであると判定し、認証チケットポインタ解決部46へ、受信したRESTリクエスト情報と、プロトコルがRESTであることを示す情報を出力する(Sb2)。
認証チケットポインタ解決部46は、RESTリクエスト情報中から認証チケットポインタの情報を読み出して認証局6に送信し、認証チケットの発行を要求する。認証局6は、受信した認証チケットポインタに対応した認証チケットを、認証チケットポインタ/認証チケット対応表25を用いて生成し、認証チケットポインタ解決部46に送信する(Sa3)。また、認証チケットポインタ解決部46は、受信した認証チケットをRESTリクエスト情報中に書き込んで、シングルサインオン部47に出力する(Sb4)
シングルサインオン部47は、入力されたRESTリクエスト情報中から読み出した認証チケットを用いて認証を行う。認証チケットが正当なものであると判断されると、シングルサインオン部47は、非機能要件処理部2に、RESTリクエスト情報と、リクエスト情報のプロトコルを示す情報とを出力する(Sb5)。
非機能要件処理部2は、入力されたRESTリクエスト情報中からサービスIDを読み出し、該サービスIDをプロファイルサーバ10へ送信して、オペレーションテーブル52に登録された非機能要件処理ポリシーをプロファイルサーバ10から受信し、非機能要件処理を実行する。また、非機能要件処理部2は、認可処理などの非機能要件処理に成功すると、RESTリクエスト情報と、RESTリクエスト情報のプロトコルを示す情報とを、RESTリクエスト情報転送部5へ出力する(Sb6)。
【0056】
RESTリクエスト情報転送部5は、RESTリクエスト情報中からサービスIDを読み出し、該サービスIDとリクエスト情報のプロトコルを示す情報とをプロファイルサーバ10に送信し、サービス情報テーブル51に登録された、RESTサービスコンポーネント28、29、30のいずれかのURIと、変換が不要であることを示す情報とを取得する。また、RESTリクエスト情報転送部5は、サービスIDをプロファイルサーバ10に送信し、オペレーションテーブル52に登録された、ID変換パターンの情報と、ID変換パターンがID置換型の場合は、固有の認証情報とを取得する(Sb7)。
また、RESTリクエスト情報転送部5は、RESTリクエスト情報中から認証チケットを読み出し、また、RESTリクエスト情報中の認証チケットポインタを削除する(Sb8)。
また、RESTリクエスト情報転送部5は、ID変換パターンがSAML連携型の場合は、読み出した認証チケットを認証局6に送信し、認証チケットポインタ/認証チケット対応表25上で該認証チケットに対応付けられた認証チケットポインタを取得する(Sb9)。また、RESTリクエスト情報転送部5は、取得した認証チケットポインタをRESTリクエスト情報に書き込んで(Sb10)、RESTサービスコンポーネント28に送信する(Sb12)。
また、RESTリクエスト情報転送部5は、ID変換パターンがID置換型の場合は、RESTリクエスト情報中に固有の認証情報を書き込み(Sb11)、RESTサービスコンポーネント29に転送する(Sb12)。
また、RESTリクエスト情報転送部5は、ID変換パターンが削除型の場合は、RESTリクエスト情報に新たな認証情報を加えずにそのまま、RESTサービスコンポーネント30に転送する(Sb12)。
RESTサービスコンポーネント28、29、30は、RESTリクエスト情報を受信すると、実行制御サーバ1のRESTレスポンス転送部35を経由して、RESTサービスリクエスタ45にRESTレスポンスを送信する。
【0057】
<第3の実施形態:SOAPリクエスト情報をRESTリクエスト情報に変換する場合の動作>
第3の実施形態では、SOAPサービスリクエスタ44がSOAPリクエスト情報を送信し、実行制御サーバ1を経由して、メッセージトランスレータ装置7がこれを受信してRESTリクエスト情報に変換し、RESTサービスコンポーネント28、29、30に送信する際のサービス連携処理システム100の動作を、図9を参照しつつ説明する。
ユーザに操作されたSOAPサービスリクエスタ端末16のSOAPサービスリクエスタ44は、サービス公開サーバ13に登録されたWSDL定義文書を取得し、また、認証局6に認証チケットの発行を要求して取得する。
また、SOAPサービスリクエスタ44は、WSDL定義文書に規定されたフォーマットに従ってサービスIDとオペレーション名とが書き込まれたSOAPリクエスト情報を生成し、認証情報のパラメータに認証チケットの情報を書き込んで、実行制御サーバ1へ送信する(Sc1)。
【0058】
実行制御サーバ1のプロトコル判定部33は、SOAPサービスリクエスタ44から受信したリクエスト情報の中に要素名が「soapenv」で始まるタグがあることから、該リクエスト情報のプロトコルがSOAPであると判定し、シングルサインオン部47へ、受信したSOAPリクエスト情報と、プロトコルがSOAPであることを示す情報を出力する(Sc2)。
シングルサインオン部47は、入力されたSOAPリクエスト情報中から読み出した認証チケットを用いて認証を行う。認証に成功すると、すなわち、正当な認証チケットと判断すると、シングルサインオン部47は、非機能要件処理部2に、SOAPリクエスト情報と、リクエスト情報のプロトコルを示す情報とを出力する(Sc3)。
非機能要件処理部2は、入力されたSOAPリクエスト情報中からサービスIDを読み出し、該サービスIDをプロファイルサーバ10へ送信して、オペレーションテーブル52に登録された非機能要件処理ポリシーを受信し、非機能要件処理を実行する。また、非機能要件処理部2は、認可処理などの非機能要件処理に成功すると、SOAPリクエスト情報と、リクエスト情報のプロトコルを示す情報とを、SOAPリクエスト情報転送部4へ出力する(Sc4)。
【0059】
SOAPリクエスト情報転送部4は、SOAPリクエスト情報中からサービスIDを読み出し、該サービスIDとリクエスト情報のプロトコルを示す情報とをプロファイルサーバ10に送信し、サービス情報テーブルに登録された、SOAPサービスコンポーネント20、26、27のいずれかのURIと、変換が必要であることを示す情報とを取得する。また、SOAPリクエスト情報転送部4は、サービスIDをプロファイルサーバ10に送信し、オペレーションテーブルに登録された、ID変換パターンの情報と、ID変換パターンがID置換型の場合は、固有の認証情報とを取得する(Sc5)。
また、SOAPリクエスト情報転送部4は、ID変換パターンがSAML連携型の場合は、SOAPリクエスト情報中の認証チケットを削除せずにそのままとし(Sc6)、該SOAPリクエスト情報をメッセージトランスレータ装置7のSOAPリクエスト情報変換部8へ送信する(Sc8)。
また、SOAPリクエスト情報転送部4は、ID変換パターンがID置換型の場合は、SOAPリクエスト情報中の認証チケットを固有の認証情報に書き換え(Sc7)、メッセージトランスレータ装置7のSOAPリクエスト情報変換部8へ送信する(Sc8)。
また、SOAPリクエスト情報転送部4は、ID変換パターンがSAML連携型の場合は、SOAPリクエスト情報中の認証チケットを削除して、メッセージトランスレータ装置7のSOAPリクエスト情報変換部8へ送信する(Sc8)。
【0060】
メッセージトランスレータ装置7のSOAPリクエスト情報変換部8は、SOAPリクエスト情報を受信し(Sc9)、該リクエスト情報中のSOAPオペレーションからRESTのメソッドを判別してSOAPリクエスト情報をRESTリクエスト情報に変換する(Sc10)。
また、SOAPリクエスト情報変換部8は、ID変換パターンがSAML連携型の場合は、認証局6に認証チケットを送信して、対応する認証チケットポインタを取得し、RESTリクエスト情報のパラメータに書き込み(Sc12)、RESTサービスコンポーネント28に送信する(Sc14)。
また、SOAPリクエスト情報変換部8は、ID変換パターンがID置換型または削除型の場合は、SOAPリクエスト情報中のSOAPボディ部の全パラメータ値をRESTパラメータに設定して(Sc13)、RESTサービスコンポーネント28に送信する(Sc14)。SOAPボディ部のパラメータには、ID置換型の場合の固有の認証情報が含まれる。
RESTサービスコンポーネント28、29、30は、RESTリクエスト情報を受信すると、メッセージトランスレータ装置7にRESTレスポンスを送信する。メッセージトランスレータ装置7のRESTレスポンス変換部40は、RESTレスポンスをSOAPレスポンスに変換し、該SOAPレスポンスを、実行制御サーバ1のSOAPレスポンス転送部34を経由してSOAPサービスリクエスタ44に送信する。
【0061】
<第4の実施形態:RESTリクエスト情報をSOAPリクエスト情報に変換する場合の動作>
第4の実施形態では、RESTサービスリクエスタ45がRESTリクエスト情報を送信し、実行制御サーバ1を経由して、メッセージトランスレータ装置7がこれを受信してSOAPリクエスト情報に変換し、SOAPサービスコンポーネント20、26、27に送信する際のサービス連携処理システム100の動作を、図10を参照しつつ説明する。
ユーザに操作されたRESTサービスリクエスタ45は、サービス公開サーバ13に登録されたWADL定義文書を取得し、また、認証局6に認証チケットポインタの発行を要求して取得する。
また、RESTサービスリクエスタ45は、WADL定義文書に規定されたフォーマットに従ってサービスIDとオペレーション名とが書き込まれたRESTリクエスト情報を生成し、認証情報のパラメータに認証チケットポインタの情報を書き込んで、実行制御サーバ1へ送信する(Sd1)。
【0062】
実行制御サーバ1のプロトコル判定部33は、RESTサービスリクエスタ45から受信したリクエスト情報中に、要素名が「soapenv」で始まるタグが無いことから、該リクエスト情報のプロトコルがRESTであると判定し、認証チケットポインタ解決部46へ、受信したRESTリクエスト情報と、プロトコルがRESTであることを示す情報を出力する(Sd2)。
認証チケットポインタ解決部46は、RESTリクエスト情報中から認証チケットポインタの情報を読み出して認証局6に送信し、認証チケットの発行を要求する。認証局6は、受信した認証チケットポインタに対応した認証チケットを、認証チケットポインタ/認証チケット対応表25を用いて生成し、認証チケットポインタ解決部46に送信する。また、認証チケットポインタ解決部46は、受信した認証チケットをRESTリクエスト情報中に書き込んで、シングルサインオン部47に出力する(Sd3)
シングルサインオン部47は、入力されたRESTリクエスト情報中から読み出した認証チケットを用いて認証を行う。認証に成功すると、すなわち正当な認証チケットと判断すると、シングルサインオン部47は、非機能要件処理部2に、RESTリクエスト情報と、リクエスト情報のプロトコルを示す情報とを出力する(Sd4)。
非機能要件処理部2は、入力されたRESTリクエスト情報中からサービスIDを読み出し、該サービスIDをプロファイルサーバ10へ送信して、オペレーションテーブル52に登録された非機能要件処理ポリシーを受信し、非機能要件処理を実行する。また、非機能要件処理部2は、認可処理などの非機能要件処理に成功すると、SOAPリクエスト情報と、リクエスト情報のプロトコルを示す情報とを、RESTリクエスト情報転送部5へ出力する(Sd5)。
【0063】
RESTリクエスト情報転送部5は、RESTリクエスト情報中からサービスIDを読み出し、該サービスIDとリクエスト情報のプロトコルを示す情報とをプロファイルサーバ10に送信し、サービス情報テーブルに登録された、RESTサービスコンポーネント28、29、30のいずれかのURIと、変換が必要であることを示す情報とを取得する。また、RESTリクエスト情報転送部5は、サービスIDをプロファイルサーバ10に送信し、オペレーションテーブルに登録された、ID変換パターンの情報と、ID変換パターンがID置換型の場合は、固有の認証情報とを取得する(Sd6)。
また、RESTリクエスト情報転送部5は、ID変換パターンがSAML連携型の場合は、RESTリクエスト情報中から認証チケットを読み出し、また、RESTリクエスト情報中の認証チケットポインタを削除する。また、RESTリクエスト情報転送部5は、読み出した認証チケットを認証局6に送信し、対応する認証チケットポインタを取得する(Sd7)。また、RESTリクエスト情報転送部5は、取得した認証チケットポインタをRESTリクエスト情報のパラメータに書き込んで(Sd8)、メッセージトランスレータ装置7のRESTリクエスト情報変換部9に送信する(Sd10)。
また、RESTリクエスト情報転送部5は、ID変換パターンがID置換型の場合は、RESTリクエスト情報のパラメータに固有の認証情報を書き込んで(Sd9)、メッセージトランスレータ装置のRESTリクエスト情報変換部9に送信する(Sd10)。
また、RESTリクエスト情報転送部5は、ID変換パターンが削除型の場合は、RESTリクエスト情報中の認証チケットポインタを削除して、メッセージトランスレータ装置のRESTリクエスト情報変換部9に送信する(Sd10)。
【0064】
メッセージトランスレータ装置7のRESTリクエスト情報変換部9は、RESTリクエスト情報を受信し(Sd11)、該RESTリクエスト情報中のパラメータのメソッドからSOAPオペレーションを判別してRESTリクエスト情報をSOAPリクエスト情報に変換する(Sd12)。
また、RESTリクエスト情報変換部9は、ID変換パターンがSAML連携型の場合は、認証局6に認証チケットポインタを送信して、対応する認証チケットを取得し、SOAPリクエスト情報中に書き込み(Sd13)、RESTリクエスト情報中のその他のパラメータ値もSOAPリクエスト情報中に書き込んで(Sd14)、SOAPサービスコンポーネント20に送信する(Sd15)。
また、RESTリクエスト情報変換部9は、ID変換パターンがID置換型または削除型の場合は、RESTリクエスト情報中のパラメータ値をSOAPリクエスト情報中に書き込んで(Sd14)、SOAPサービスコンポーネント26、27に送信する(Sd15)。
RESTリクエスト情報中のパラメータには、ID置換型の場合の固有の認証情報が含まれる。SOAPサービスコンポーネント20、26、27は、SOAPリクエスト情報を受信すると、メッセージトランスレータ装置7にSOAPレスポンスを送信する。メッセージトランスレータ装置7のSOAPレスポンス変換部39は、SOAPレスポンスをRESTレスポンスに変換し、該RESTレスポンスを、実行制御サーバ1のRESTレスポンス転送部35を経由してRESTサービスリクエスタ45に送信する。
【0065】
以上、本発明の実施形態によれば、サービスリクエスタ44、45は、1形式のプロトコルで記載されたリクエスト情報によってSOAPレスポンス、RESTレスポンスのいずれも取得できるので、1形式のプロトコルで記載されたリクエスト情報によってSOAPサービスとRESTサービスとを連携することができる。
また、非機能要件処理部2が一括して非機能要件処理を行うので、サービスコンポーネントは個別に非機能要件処理を行う必要がない。
また、SOAPサービスリクエスタ44、RESTサービスリクエスタ45は、シングルサインオンの認証を受けられるので、SOAPサービスとRESTサービスとの異なるプロトコルのサービスコンポーネントを利用する場合でも、認証情報の入力は1度でよい。
また、SOAPサービスリクエスタ44、RESTサービスリクエスタ45は、新たにミドルウェアを用意して設定を行わなくても、自リクエスタと異なるプロトコルのサービスコンポーネントからサービスを受けることができるので、アプリケーション開発コストを削減でき、また、開発期間を短縮することができる。加えて、SOAPとRESTとで提供される多くのWebサービスを利用できるので、1形式のプロトコルで提供されるWebサービスのみからは開発できない、新しいアプリケーションを開発できる。
また、本実施形態のサービス連携システムは、トラフィック制御処理等、ネットワークの安定性を制御する処理を実行するので、SOAPサービスリクエスタ44、RESTサービスリクエスタ45は、安定したサービスを受けることができる。
【0066】
また、図1におけるSOAPサービスリクエスタ端末16のSOAPサービスリクエスタ44と、RESTサービスリクエスタ端末17のRESTサービスリクエスタ45と、実行制御サーバ1のメッセージプロキシ部3と、プロトコル判定部33と、SOAPリクエスト情報転送部4と、RESTリクエスト情報転送部5と、SOAPレスポンス転送部34と、RESTレスポンス転送部35と、認証部36と、認証チケットポインタ解決部46と、シングルサインオン部47と、非機能要件処理部2と、認証局6の認証情報制御部50と、認証チケットポインタ/認証チケット対応表25と、メッセージトランスレータ装置7のリクエスト情報変換部37と、SOAPリクエスト情報変換部8と、RESTリクエスト情報変換部9と、レスポンス変換部38と、SOAPレスポンス変換部39と、RESTレスポンス変換部40と、プロファイルサーバ10のプロファイル制御部11と、サービス情報テーブル51と、オペレーションテーブル52と、サービス公開サーバ13の公開サービス制御部48と、公開サービス記憶部49と、サービス登録サーバ12のサービス登録部41と、コンポーネント情報抽出部42と、定義文書変換部43の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0067】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0068】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【0069】
本発明は、SOAPサービスとRESTサービスとの連携処理システムに用いて好適である。
【符号の説明】
【0070】
1…実行制御サーバ
2…非機能要件処理部
3…メッセージプロキシ部
4…SOAPリクエスト情報転送部
5…RESTリクエスト情報転送部
6…認証局
7…メッセージトランスレータ装置
8…SOAPリクエスト情報変換部
9…RESTリクエスト情報変換部
10…プロファイルサーバ
11…プロファイル制御部
12…サービス登録サーバ
13…サービス公開サーバ
14…トラフィック情報管理サーバ
15…サービス品質監視制御部
16…SOAPサービスリクエスタ端末
17…RESTサービスリクエスタ端末
18…ネットワーク
19…SOAPサービスコンポーネントサーバ
21…RESTサービスコンポーネントサーバ
20、26、27…SOAPサービスコンポーネント
28、29、30…RESTサービスコンポーネント
25…認証チケットポインタ/認証チケット対応表
51…サービス情報テーブル
52…オペレーションテーブル
31…キャッシュ部(実行制御サーバ内)
32…キャッシュ部(メッセージトランスレータ装置内)
33…プロトコル判定部
34…SOAPレスポンス転送部
35…RESTレスポンス転送部
36…認証部
37…リクエスト情報変換部
38…レスポンス変換部
39…SOAPレスポンス変換部
40…RESTレスポンス変換部
41…サービス登録部
42…コンポーネント情報抽出部
43…定義文書変換部
44…SOAPサービスリクエスタ
45…RESTサービスリクエスタ
46…認証チケットポインタ解決部
47…シングルサインオン部
48…公開サービス制御部
49…公開サービス記憶部
50…認証情報制御部
100…サービス連携処理システム

【特許請求の範囲】
【請求項1】
予め定められるプロトコルでウェブサービスを提供するサービスコンポーネントサーバと、
前記サービスコンポーネントサーバのウェブサービスを複数の異なるプロトコルに対応するインタフェース定義で記述した定義文書により公開するサービス公開サーバと、
前記複数の異なるプロトコルに応じた認証情報を発行する認証局と、
前記サービスコンポーネントサーバが行う認証処理を示した認証処理情報を提供するプロファイルサーバと、
自端末のプロトコルに対応する認証情報を前記認証局に要求して受信し、サービスを利用するサービスコンポーネントサーバの定義文書のうち自端末のプロトコルに対応する定義文書を前記サービス公開サーバに要求して受信し、受信した定義文書に前記受信した認証情報を含めたリクエスト情報を生成して送信するサービスリクエスタ端末と、
前記サービスリクエスタ端末から前記リクエスト情報を受信し、前記リクエスト情報から認証情報を読み出し、読み出した認証情報に応じたシングルサインオン認証を行い、前記リクエスト情報が正当なリクエスト情報であると認証した場合、前記リクエスト情報の変換の要否を判断し、変換が不要と判断した場合は、前記サービスコンポーネントサーバが行う認証処理情報を前記プロファイルサーバに要求して受信し、受信した認証処理情報に応じた前記認証情報の書き換えを行い、前記サービスコンポーネントサーバへ送信する実行制御サーバと、
前記実行制御サーバが変換が必要と判断した場合には、該実行制御サーバから前記リクエスト情報を受信し、前記リクエスト情報を前記サービスコンポーネントサーバのインタフェース仕様に従って変換し、前記サービスコンポーネントサーバが行う認証処理情報を前記プロファイルサーバに要求して受信し、受信した認証処理情報に応じた前記認証情報の書き換えを行い、前記サービスコンポーネントサーバに送信するメッセージトランスレータ装置と、
を備えたことを特徴とするサービス連携処理システム。
【請求項2】
前記プロトコルはSOAP、あるいはRESTであり、
前記実行制御サーバは、
前記受信したリクエスト情報のプロトコルを検出し、検出したプロトコルがSOAPを示す場合、前記リクエスト情報から認証チケットで示される認証情報を読み出し、読み出した認証チケットによりシングルサインオン認証を行い、検出したプロトコルがRESTを示す場合、前記リクエスト情報から認証チケットポインタで示される認証情報を読み出し、読み出した認証チケットポインタを前記認証局に送信し、前記認証局から前記認証チケットポインタに対応する認証チケットを受信してシングルサインオン認証を行う
ことを特徴とする請求項1に記載のサービス連携処理システム。
【請求項3】
前記プロファイルサーバは、
前記サービスコンポーネントサーバが行う認証処理として、連携型、ID置換型、削除型の処理のいずれかを認証処理情報として提供し、
前記実行制御サーバは、
前記リクエスト情報の変換が不要と判断した場合は、
前記認証処理情報がID置換型の場合、前記認証情報を予め定められるID情報に書き換え、
前記認証処理情報が削除型の場合、認証情報の削除を行い、
前記認証処理情報が連携型の場合であって、前記リクエスト情報がSOAPのとき、認証情報の書き換えを行わず、前記リクエスト情報がRESTのとき、前記認証局に認証チケットポインタで示される認証情報を要求して受信し、認証情報に書き換え、
前記メッセージトランスレータ装置は、
前記実行制御サーバから前記リクエスト情報を受信すると、
前記認証処理情報がID置換型の場合、前記認証情報を削除して、予め定められるID情報を変換したリクエスト情報に付与し、
前記認証処理情報が削除型の場合、認証情報の削除を行い、
前記認証処理情報が連携型の場合であって、前記リクエスト情報がSOAPのとき、前記リクエスト情報に含まれる認証チケットで示される認証情報を読み出し、該リクエスト情報から該認証情報を削除し、前記認証局に認証チケットに対応した認証チケットポインタで示される認証情報を要求して受信し、受信した認証情報をSOAPからRESTへ変換したリクエスト情報に含め、
前記認証処理情報が連携型の場合であって、前記リクエスト情報がRESTのとき、前記リクエスト情報に含まれる認証チケットポインタで示される認証情報を読み出し、読み出した認証チケットポインタを前記認証局に送信し、前記認証局から前記認証チケットポインタに対応する認証チケットを受信し、受信した認証チケットをRESTからSOAPへ変換したリクエスト情報に含める
ことを特徴とする請求項2に記載のサービス連携処理システム。
【請求項4】
前記定義文書のうち、SOAPに対応する定義文書は、WSDL定義文書であり、RESTに対応する定義文書は、WADL定義文書であり、
前記サービス公開サーバは、
WADL定義文書からWSDL定義文書に変換する場合、SOAPオペレーション名をHTTPメソッドに連番を付与する形式とし、
WSDL定義文書をWADL定義文書に変換する場合、HTTPメソッドをGET固定とし、SOAPオペレーション名をクエリパラメータmethodにより指定する形式として変換して異なるプロトコルに対応する定義文書を生成する
ことを特徴とする請求項2または3に記載のサービス連携処理システム。
【請求項5】
前記メッセージトランスレータ装置は、
前記リクエスト情報を、SOAPからRESTへ変換する場合、前記リクエスト情報に含まれるHTTPメソッドに連番が付与されている場合、連番の順にHTTPメソッドを、RESTメソッドの1リソースに複数定義して変換し
前記リクエスト情報を、RESTからSOAPへ変換する場合、HTTPメソッドのGETの箇所からクエリパラメータmethodで指定されるSOAPのオペレーション名を抽出してSOAPオペレーションへ変換する
ことを特徴とする請求項4に記載のサービス連携処理システム。
【請求項6】
前記実行制御サーバがシングルサインオン認証をした後に、前記リクエスト情報に対して、認可処理、スロットリング及びコンテンツフィルタの擾乱防止処理、トラフィック制御処理のいずれかの非機能要件処理を行う非機能要件処理手段
を備えたことを特徴とする請求項1から5のいずれかに記載のサービス連携処理システム。
【請求項7】
予め定められるプロトコルでウェブサービスを提供するサービスコンポーネントサーバと、前記サービスコンポーネントサーバのウェブサービスを複数の異なるプロトコルに対応するインタフェース定義で記述した定義文書により公開するサービス公開サーバと、前記複数の異なるプロトコルに応じた認証情報を発行する認証局と、前記サービスコンポーネントサーバが行う認証処理を示した認証処理情報を提供するプロファイルサーバと、サービスリクエスタ端末と、実行制御サーバと、メッセージトランスレータ装置とを備えたサービス連携処理システムにおけるサービス連携処理方法であって、
前記サービスリクエスタ端末が、自端末のプロトコルに対応する認証情報を前記認証局に要求して受信する過程と、
前記サービスリクエスタ端末が、サービスを利用するサービスコンポーネントサーバの定義文書のうち自端末のプロトコルに対応する定義文書を前記サービス公開サーバに要求して受信する過程と、
前記サービスリクエスタ端末が、受信した定義文書に前記受信した認証情報を含めたリクエスト情報を生成して送信する過程と、
前記実行制御サーバが、前記サービスリクエスタ端末から前記リクエスト情報を受信し、前記リクエスト情報から認証情報を読み出し、読み出した認証情報に応じたシングルサインオン認証を行い、前記リクエスト情報が正当なリクエスト情報であると認証した場合、前記リクエスト情報の変換の要否を判断し、変換が不要と判断した場合は、前記サービスコンポーネントサーバが行う認証処理情報を前記プロファイルサーバに要求して受信し、受信した認証処理情報に応じた前記認証情報の書き換えを行い、前記サービスコンポーネントサーバへ送信する過程と、
前記メッセージトランスレータ装置が、前記実行制御サーバが変換が必要と判断した場合には、該実行制御サーバから前記リクエスト情報を受信し、前記リクエスト情報を前記サービスコンポーネントサーバのインタフェース仕様に従って変換し、前記サービスコンポーネントサーバが行う認証処理情報を前記プロファイルサーバに要求して受信し、受信した認証処理情報に応じた前記認証情報の書き換えを行い、前記サービスコンポーネントサーバに送信する過程と、
を含むことを特徴とするサービス連携処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−165250(P2010−165250A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−8057(P2009−8057)
【出願日】平成21年1月16日(2009.1.16)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】