(57)【特許請求の範囲】
【請求項１】
サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているデータ処理装置であって、
１つ以上の引数と１つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信部と、
１つ以上の引数と１つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信部と、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理部と、
各共通変数に代入されたデータ値を記憶する共通変数代入値記憶部と、
前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、前記サーバ通信部により前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理部と、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込むサーバ変数処理部とを有することを特徴とするデータ処理装置。
【請求項２】
前記共通変数管理部は、
クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される共通変数対応付け情報を生成し、
前記クライアント変数処理部は、
前記共通変数対応付け情報に示されるクライアント引数と共通変数との対応付けに基づき、前記クライアント要求の各クライアント引数のデータ値を対応する共通変数に代入し、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるクライアント戻り値と共通変数との対応付けに基づき、対応しているクライアント戻り値に設定し、
前記サーバ変数処理部は、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるサーバ引数と共通変数との対応付けに基づき、対応するサーバ引数に設定し、
前記共通変数対応付け情報に示されるサーバ戻り値と共通変数との対応付けに基づき、前記サーバ応答の各サーバ戻り値のデータ値を対応する共通変数に代入することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記共通変数管理部は、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、相互に異なるデータ種別であるが相互に置換可能な関係にある２以上の置換可能データ種別が含まれている場合に、置換可能データ種別に対して同じ共通変数を生成し、
置換可能データ種別に対して生成した共通変数に対してクライアント引数とサーバ引数との対応付け及びクライアント戻り値とサーバ戻り値との対応付けが示される共通変数対応付け情報を生成することを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記データ処理装置は、更に、
前記クライアント変数処理部又は前記サーバ変数処理部から、前記共通変数代入値記憶部に格納するデータ値を入力し、
当該データ値のデータ形式が、当該データ値が次に前記共通変数代入値記憶部から読み出されて前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項１〜３のいずれかに記載のデータ処理装置。
【請求項５】
前記データ処理装置は、更に、
前記クライアント変数処理部又は前記サーバ変数処理部から、前記クライアント変数処理部又は前記サーバ変数処理部が前記共通変数代入値記憶部から取得したデータ値を入力し、
当該データ値のデータ形式が、当該データ値が前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項１〜４のいずれかに記載のデータ処理装置。
【請求項６】
前記データ処理装置は、
それぞれに固有のサーバ用インタフェースが設けられている複数のサービス実行サーバ装置に接続され、
前記データ処理装置は、更に、
クライアント要求を解析し、前記クライアント要求において要求されているサービスが２以上のサービス実行サーバ装置の連携により実現される連携サービスである場合に、前記連携サービスを実現する２以上の連携サービス実行サーバ装置におけるサービス実行順序が示されるサービス実行シナリオを選択する連携サービス管理部を有し、
前記共通変数管理部は、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と、各連携サービス実行サーバ装置のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに共通変数を生成し、
前記クライアント変数処理部は、
前記サービス実行シナリオのサービス実行順序において最後の順序の連携サービス実行サーバ装置からのサーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成し、
前記サーバ変数処理部は、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記サービス実行順序において最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースに従って最初の順序の連携サービス実行サーバ装置へのサーバ要求を生成し、
最後の順序の連携サービス実行サーバ装置からのサーバ応答まで、前記サーバ通信部がサーバ応答を受信する度に、受信したサーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記サービス実行順序において後続の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して後続の連携サービス実行サーバ装置のサーバ用インタフェースに従って後続の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項１〜５のいずれかに記載のデータ処理装置。
【請求項７】
前記連携サービス管理部は、
前記サーバ通信部がサーバ応答を受信する度に、前記サーバ変数処理部に、前記サービス実行順序において後続の連携サービス実行サーバ装置を通知し、
前記サーバ変数処理部は、
前記共通変数代入値記憶部から取得したデータ値を、前記連携サービス管理部により通知された後続の連携サービス実行サーバ装置のサーバ用インタフェースのサーバ引数に設定して後続の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
前記共通変数管理部は、
クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される共通変数対応付け情報を生成し、
前記クライアント変数処理部は、
前記共通変数対応付け情報に示されるクライアント引数と共通変数との対応付けに基づき、前記クライアント要求の各クライアント引数のデータ値を対応する共通変数に代入し、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるクライアント戻り値と共通変数との対応付けに基づき、対応しているクライアント戻り値に設定し、
前記サーバ変数処理部は、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示される最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けに基づき、最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースにおいて対応しているサーバ引数に設定し、
前記サーバ通信部がサーバ応答を受信する度に、
前記共通変数対応付け情報に示される前記サーバ応答の送信元の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付けに基づき、前記サーバ応答の各サーバ戻り値のデータ値を対応する共通変数に代入し、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示される後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けに基づき、後続の連携サービス実行サーバ装置のサーバ用インタフェースにおいて対応しているサーバ引数に設定することを特徴とする請求項６又は７に記載のデータ処理装置。
【請求項９】
前記共通変数管理部は、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と各連携サービス実行サーバ装置のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、相互に異なるデータ種別であるが相互に置換可能な関係にある２以上の置換可能データ種別が含まれている場合に、置換可能データ種別に対して同じ共通変数を生成し、
置換可能データ種別に対して生成した共通変数に対してクライアント引数とサーバ引数との対応付け、クライアント戻り値とサーバ戻り値との対応付け及びサーバ戻り値とサーバ引数との対応付けが示される共通変数対応付け情報を生成することを特徴とする請求項８に記載のデータ処理装置。
【請求項１０】
前記データ処理装置は、更に、
前記クライアント変数処理部又は前記サーバ変数処理部から、前記共通変数代入値記憶部に格納するデータ値を入力し、
当該データ値のデータ形式が、当該データ値が次に前記共通変数代入値記憶部から読み出されて前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項６〜９のいずれかに記載のデータ処理装置。
【請求項１１】
前記データ処理装置は、更に、
前記クライアント変数処理部又は前記サーバ変数処理部から、前記クライアント変数処理部又は前記サーバ変数処理部が前記共通変数代入値記憶部から取得したデータ値を入力し、
当該データ値のデータ形式が、当該データ値が前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項６〜１０のいずれかに記載のデータ処理装置。
【請求項１２】
前記連携サービス管理部は、
特定の連携サービス実行サーバ装置からのサーバ応答の特定のサーバ戻り値のデータ値により、次のサーバ要求の送信先が２以上の連携サービス実行サーバ装置に分岐するサービス実行シナリオを選択する場合があり、
前記サーバ通信部により受信されたサーバ応答のサーバ戻り値のデータ値が前記サービス実行シナリオにおいてサーバ要求の送信先の分岐が生じるデータ値である場合に、当該データ値に基づき、２以上の連携サービス実行サーバ装置の中から分岐先の連携サービス実行サーバ装置を選択し、
前記サーバ変数処理部は、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記連携サービス管理部により選択された分岐先の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して分岐先の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項６〜１１のいずれかに記載のデータ処理装置。
【請求項１３】
サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているコンピュータが行うデータ処理方法であって、
１つ以上の引数と１つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記コンピュータが前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記コンピュータが前記クライアント装置に送信するクライント通信ステップと、
１つ以上の引数と１つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記コンピュータが前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記コンピュータが前記サービス実行サーバ装置から受信するサーバ通信ステップと、
前記コンピュータが、前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理ステップと、
前記コンピュータが、各共通変数に代入されたデータ値を所定の共通変数代入値記憶領域に記憶する共通変数代入値記憶ステップと、
前記コンピュータが、前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込み、前記サーバ通信ステップにより前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理ステップと、
前記コンピュータが、前記クライアント変数処理ステップにより共通変数に代入されたデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込むサーバ変数処理ステップとを有することを特徴とするデータ処理方法。
【請求項１４】
サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているコンピュータに、
１つ以上の引数と１つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信ステップと、
１つ以上の引数と１つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信ステップと、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理ステップと、
各共通変数に代入されたデータ値を所定の共通変数代入値記憶領域に記憶する共通変数代入値記憶ステップと、
前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込み、前記サーバ通信ステップにより前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理ステップと、
前記クライアント変数処理ステップにより共通変数に代入されたデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込むサーバ変数処理ステップとを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサービス等のクライアント装置にサービスを提供するシステムに関する。
【背景技術】
【０００２】
Ｗｅｂサービス等のサービス接続とＩ／Ｆ（インタフェース）を管理し、サービスの連携を提供する技術において、従来ではリクエストに目的のサービスのＩ／Ｆに一致するデータ型を埋め込み、サービス実行サーバ装置へリクエストを変換・転送する方法が用いられていた（例えば、特許文献１）。
【０００３】
また、シナリオに沿ってサービスを呼び出すような場合は、あらかじめシナリオにメタデータを埋め込んでおき、ユーザがシナリオに定義された次のサービスを実行する際に該当するサービス実行サーバ装置を呼び出す方法が用いられていた（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１９０００８号公報
【特許文献２】特開２００８−１３００３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のサービス連携技術は、リクエストをサービス実行サーバ装置へ適切に転送する点においては解決されているが、その結果を次のサービスへ転送するといったような処理が必要な場合に課題がある。
【０００６】
また、従来技術では、サービスの呼び出し順はシナリオによって制御することができているが、呼び出し自体は基本的にユーザがトリガーとなっており、機械的に処理する場合でも別途サービス間をつなぐメッセージの設計もしくは新規モジュールが必要であるため、機械的にサービス間の連携を行うための開発コストが大きいという課題がある。
【０００７】
また、サービスを実行するサーバ装置のＩ／Ｆとクライアント装置へ公開するＩ／Ｆは必ずしも一致するものではない。
サービス実行サーバ装置が新規に作られる場合はサーバ装置のＩ／Ｆとクライアント装置へ公開するＩ／Ｆは一致するが、サービスを実行するサーバ装置が既存の外部システムであったりすると、クライアント側が利用しやすいようにクライアント装置に公開するＩ／Ｆはサーバ装置のＩ／Ｆとは異なるＩ／Ｆに設計される場合がある。
このような場合においても、サービス間連携と同様に、従来技術では異なるＩ／Ｆ間（クライアント装置への公開Ｉ／Ｆとサーバ装置のＩ／Ｆ）をつなぐためのメッセージ設計や新規モジュールが必要である。
【０００８】
この発明は上記のような課題を解決することを主な目的とし、クライアント装置用のインタフェースとサービス実行サーバ装置のインタフェースとをつなぐためのメッセージ設計や新規モジュール開発を不要とすることを主な目的の一つとする。
また、サービス間連携において連携のためのメッセージ設計や新規モジュール開発を不要とすることを主な目的の一つとする。
また、登録されているサービスの実行順を指定するだけでサービス間連携を行うことを主な目的の一つとする。
【課題を解決するための手段】
【０００９】
本発明に係るデータ処理装置は、
サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているデータ処理装置であって、
１つ以上の引数と１つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信部と、
１つ以上の引数と１つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信部と、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理部と、
各共通変数に代入されたデータ値を記憶する共通変数代入値記憶部と、
前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、前記サーバ通信部により前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理部と、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込むサーバ変数処理部とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、クライアント用インタフェースとサーバ用インタフェースに含まれる引数及び戻り値において共通するデータ種別に対して共通変数を生成し、共通変数を用いてサービス実行サーバ装置への要求発行、サービス実行サーバ装置の実行結果のクライアント装置への応答を行うことができ、クライアント装置のインタフェースとサービス実行サーバ装置のインタフェースとをつなぐためのメッセージ設計や新規モジュール開発が不要となる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るサービス連携サーバ装置の構成例を示す図。
【図２】実施の形態１に係るクライアント装置の動作例を示すフローチャート図。
【図３】実施の形態１に係るサービス公開部の動作例を示すフローチャート図。
【図４】実施の形態１に係る共通変数生成部の動作例を示すフローチャート図。
【図５】実施の形態１に係る型マッピング管理部の動作例を示すフローチャート図。
【図６】実施の形態１に係るサービスＩ／Ｆ管理部の動作例を示すフローチャート図。
【図７】実施の形態１に係るデータ型管理部の動作例を示すフローチャート図。
【図８】実施の形態１に係る共通変数入出力部の動作例を示すフローチャート図。
【図９】実施の形態１に係るサービス接続部の動作例を示すフローチャート図。
【図１０】実施の形態１に係るサービス実行サーバ装置の動作例を示すフローチャート図。
【図１１】実施の形態１に係る処理シーケンスを示す図。
【図１２】実施の形態１に係る処理シーケンスを示す図。
【図１３】実施の形態２に係るサービス連携サーバ装置の構成例を示す図。
【図１４】実施の形態２に係るサービス公開部の動作例を示すフローチャート図。
【図１５】実施の形態２に係るシナリオ管理部の動作例を示すフローチャート図。
【図１６】実施の形態２に係る共通変数生成部の動作例を示すフローチャート図。
【図１７】実施の形態２に係るシナリオ制御部の動作例を示すフローチャート図。
【図１８】実施の形態２に係る処理シーケンスを示す図。
【図１９】実施の形態２に係る処理シーケンスを示す図。
【図２０】実施の形態３に係るサービス連携サーバ装置の構成例を示す図。
【図２１】実施の形態３に係る変数変換部の動作例を示すフローチャート図。
【図２２】実施の形態３に係る処理シーケンスを示す図。
【図２３】実施の形態１に係るデータ型管理部等で管理される情報の例を示す図。
【図２４】実施の形態１〜３に係るサービス連携サーバ装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、本実施の形態に係る、１つのサービスを接続し公開する方式を示すシステム構成図である。
【００１３】
図１において、クライアント装置１００は、サービスを呼び出すクライアントプログラムを実行する計算機装置である。
つまり、クライアント装置１００はサービス連携サーバ装置２００に対してサービスの提供を要求する。
【００１４】
サービス連携サーバ装置２００は、クライアント装置１００とサービス実行サーバ装置３００に接続されている。
サービス連携サーバ装置２００は、クライアント装置１００から利用することができるサービスを提供するサーバ装置である。
サービス連携サーバ装置２００は、データ処理装置の例である。
【００１５】
サービス実行サーバ装置３００は、サービス連携サーバ装置２００がサービス処理を依頼するサーバ装置である。
つまり、サービス実行サーバ装置３００は、クライアント装置１００により要求されたサービスを実行する。
サービス実行サーバ装置３００は、サービス実体ともいう。
【００１６】
サービス連携サーバ装置２００において、サービス公開部２０１はクライアント装置１００へサービス利用のインタフェースを公開する機能である。
サービス公開部２０１は、クライアント装置１００から、リクエスト（クライアント要求ともいう）を受信し、クライアント装置１００からのリクエストに対するレスポンス（クライアント応答ともいう）を生成し、レスポンスをクライアント装置１００に送信する。
サービス公開部２０１は、クライアント通信部の例となる。
また、後述する共通変数入出力部２０６とともにクライアント変数処理部の例となる。
【００１７】
共通変数生成部２０２はクライアント装置からのリクエストにおける処理実行のための共通変数を生成する機能である。
共通変数は、クライアント装置１００からのリクエストがサービス連携サーバ装置２００を介してサービス実行サーバ装置３００において処理され、クライアント装置１００にレスポンスが返されるまでの間に利用される変数である。
つまり、共通変数は、リクエストの受信からレスポンスの送信までの一連の流れの中で共通的に扱われる変数である。
クライアント装置１００からの１リクエスト／レスポンスに専用に用いられる共通変数が生成され、他のリクエスト／レスポンスには影響しない。
共通変数の生成方法については、後述する。
なお、共通変数生成部２０２は、後述するデータ型管理部２０３、型マッピング管理部２０４、サービスＩ／Ｆ管理部２０５とともに共通変数管理部の例となる。
【００１８】
データ型管理部２０３は、サービス連携サーバ装置２００で管理されるサービスが扱うデータ型（種類）と型間の相互関係を管理する機能である。
本実施の形態及び以降の実施の形態において、データ型とは、サービスが扱う情報の型（データ種別）を指している。ｉｎｔ型やｃｈａｒ型といったプログラムにおけるデータ型とは異なる。
例えば、品番から品名を検索するサービスの場合、クライアント装置１００は「品番」の引数として特定の値を指定してリクエストを発行し、サービス連携サーバ装置２００は「品名」の戻り値として特定の値を指定してレスポンスを返す。この場合の「品番」及び「品名」がそれぞれデータ型（データ種別）となる。
つまり、クライアント装置１００からのリクエストに含まれる引数のデータ種別、クライアント装置１００へのレスポンスに含まれる戻り値のデータ種別、更に、サービス連携サーバ装置２００からサービス実行サーバ装置３００に送信されるリクエスト（サーバ要求ともいう）に含まれる引数のデータ種別、サービス実行サーバ装置３００からサービス連携サーバ装置２００に送信されるレスポンス（サーバ応答ともいう）に含まれる戻り値のデータ種別が、本実施の形態及び以降の実施の形態で用いるデータ型である。
このように、データ型管理部２０３は、上記「品番」、「品名」の他、「価格」、「在庫数」、「納期」、「製造ロット」、「従業員番号」、「従業員氏名」、「所属部署」、「役職」、「センサＩＤ」、「温度」、「湿度」、「消費電力」、「重さ」等、サービス連携サーバ装置２００が扱うサービスにおける全ての引数、戻り値のデータ種別を管理する。
【００１９】
型マッピング管理部２０４はサービス連携サーバ装置２００で管理されるサービスのＩ／Ｆの具体的な項目とデータ型管理部２０３で管理されている情報の種類のマッピングを管理する機能である。
サービスＩ／Ｆ管理部２０５はサービス連携サーバ装置２００で管理されるサービスのＩ／Ｆを管理する機能である。
前述したように、データ型管理部２０３、型マッピング管理部２０４、サービスＩ／Ｆ管理部２０５は、共通変数生成部２０２とともに共通変数管理部の例となる。
【００２０】
共通変数入出力部２０６は、共通変数生成部２０２によって生成された共通変数への値の入出力を行う機能である。
前述したように、共通変数入出力部２０６は、サービス公開部２０１とともにクライアント変数処理部の例となる。
また、共通変数入出力部２０６は、後述するサービス接続部２０８とともにサーバ変数処理部の例となる。
【００２１】
共通変数代入値記憶部２０７は、共通変数生成部２０２によって生成された共通変数への代入値を記憶する。
共通変数代入値記憶部２０７は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリの一部の領域であり、共通変数を格納するために共通変数生成部２０２により確保された領域である。
【００２２】
サービス接続部２０８は、サービス連携サーバ装置２００からサービス実行サーバ装置３００へリクエストを送信するための機能である。
サービス接続部２０８は、クライアント装置１００からのリクエスト（クライアント要求）に基づいて、サービス実行サーバ装置３００へのリクエスト（サーバ要求）を送信し、また、サービス実行サーバ装置３００からレスポンス（サーバ応答）を受信する。
サービス実行サーバ装置３００からのレスポンスはクライアント装置１００へのレスポンス（クライアント応答）のもとになる。
サービス接続部２０８は、サーバ通信部の例である。
また、サービス接続部２０８は、前述のように、共通変数入出力部２０６とともにサーバ変数処理部の例となる。
【００２３】
なお、データ型管理部２０３、型マッピング管理部２０４、サービスＩ／Ｆ管理部２０５はそれぞれ別サーバでも良い。
【００２４】
次に、各機能の動作を詳述する前に、以下にて本実施の形態に係るサービス連携サーバ装置２００の動作の概要を説明する。
【００２５】
本実施の形態では、共通変数生成部２０２が、クライアント装置１００のクライアント用インタフェースとサービス実行サーバ装置３００のサーバ用インタフェースに含まれる引数及び戻り値において共通するデータ型に対して共通変数を生成する。
サービス公開部２０１は、クライアント装置１００からのリクエスト（クライアント要求）に含まれる引数を共通変数に代入し、サービス接続部２０８は、共通変数のデータ値を引数とするサービス実行サーバ装置３００へのリクエスト（サーバ要求）を生成し、サービス実行サーバ装置３００のレスポンス（サーバ応答）に含まれる戻り値を共通変数に代入する。
そして、サービス公開部２０１は共通変数のデータ値を戻り値とするクライアント装置１００へのレスポンス（クライアント応答）を生成し、クライアント装置１００に送信する。
【００２６】
より具体的には、サービス公開部２０１は、クライアント装置１００から送信されたクライアント要求を受信する。
クライアント要求は、クライアント用インタフェースに従って生成され、１つ以上の引数がクライアント引数として含まれている。
なお、クライアント用インタフェースでは、クライアント引数ごとにクライアント引数のデータ型（データ種別）が定義されている。
このため、クライアント要求には、定義されているデータ型のクライアント引数が含まれ、各クライアント引数として特定のデータ値が含まれている（例えば、「品番」のクライアント引数として「１２３４５６」がクライアント要求に含まれる）。
また、サービス公開部２０１は、クライアント要求に対する応答としてクライアント応答をクライアント装置１００に送信する。
クライアント応答は、クライアント用インタフェースに従って生成され、１つ以上の戻り値がクライアント戻り値として含まれている。
クライアント用インタフェースでは、クライアント戻り値ごとにクライアント戻り値のデータ型（データ種別）が定義されている。
このため、クライアント応答には、定義されているデータ型のクライアント戻り値が含まれ、各クライアント戻り値として特定のデータ値が含まれている（例えば、「品名」のクライアント戻り値として「ＡＢＣ−ＸＹＺ」がクライアント応答に含まれる）。
【００２７】
サービス接続部２０８は、クライアント要求に基づいて生成されたサーバ要求をサービス実行サーバ装置３００に送信する。
サーバ要求は、サーバ用インタフェースに従って生成され、１つ以上の引数がサーバ引数として含まれている。
なお、本実施の形態では、クライアント用インタフェースとサーバ用インタフェースは異なっているものとする。
サーバ用インタフェースでは、サーバ引数ごとにサーバ引数のデータ型（データ種別）が定義されている。
このため、サーバ要求には、定義されているデータ型のサーバ引数が含まれ、各サーバ引数として特定のデータ値が含まれている（例えば、「品番」のサーバ引数として「１２３４５６」がサーバ要求に含まれる）。
また、サービス接続部２０８は、サーバ要求に対する応答としてサーバ応答をサービス実行サーバ装置３００から受信する。
サーバ応答は、サーバ用インタフェースに従って生成され、１つ以上の戻り値がサーバ戻り値として含まれている。
なお、サーバ用インタフェースでは、サーバ戻り値ごとにサーバ戻り値のデータ型（データ種別）が定義されている。
このため、サーバ応答には、定義されているデータ型のサーバ戻り値が含まれ、各サーバ戻り値として特定のデータ値が含まれている（例えば、「品名」のサーバ戻り値として「ＡＢＣ−ＸＹＺ」がサーバ応答に含まれる）。
【００２８】
共通変数生成部２０２は、データ型管理部２０３、型マッピング管理部２０４、サービスＩ／Ｆ管理部２０５を用いて、クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別とサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する。
また、共通変数生成部２０２は、クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される共通変数対応付け情報を生成する。
共通変数生成部２０２は、例えば、クライアント引数Ａとサーバ引数Ｃがデータ型「品番」であればデータ型「品番」に共通変数ａを生成し、クライアント戻り値Ｂとサーバ戻り値Ｄがデータ型「品名」であればデータ型「品名」に共通変数ｂを生成する。
そして、共通変数生成部２０２は、クライアント引数Ａとサーバ引数Ｃと共通変数ａとの対応付け及びクライアント戻り値Ｂとサーバ戻り値Ｄと共通変数ｂとの対応付けが示される共通変数対応付け情報を生成する。
【００２９】
また、共通変数生成部２０２は、相互に異なるデータ種別であるが相互に置換可能な関係にある２以上の同義なデータ型（置換可能なデータ種別）が含まれている場合に、同義なデータ型に対して同じ共通変数を生成する。
更に、共通変数生成部２０２は、同義なデータ型に対して生成した共通変数に対してクライアント引数及びサーバ引数の対応付けとクライアント戻り値及びサーバ戻り値の対応付けが示される共通変数対応付け情報を生成する。
例えば、クライアント引数Ａのデータ型が「品番」であり、サーバ引数Ｃのデータ型が「シリアルナンバー」であれば、両者は一致していないが同じ内容であるため、同義（置換可能）であり、共通変数生成部２０２は、クライアント引数Ａのデータ型「品番」とサーバ引数Ｃのデータ型「シリアルナンバー」に共通変数ａを生成し、クライアント引数Ａとサーバ引数Ｃと共通変数ａとの対応付けが示される共通変数対応付け情報を生成する。
また、共通変数生成部２０２は、クライアント引数Ａのデータ型が「品番」であり、サーバ引数Ｃのデータ型が「シリアルナンバー」であることを示す情報も生成する。
【００３０】
共通変数代入値記憶部２０７は、前述したように、共通変数生成部２０２によって生成された共通変数への代入値を記憶する。
【００３１】
共通変数入出力部２０６は、サービス公開部２０１からクライアント要求の各クライアント引数のデータ値を入力し、入力したデータ値を各クライアント引数のデータ型に対応する共通変数に代入して共通変数代入値記憶部２０７に書き込む。
更に、共通変数入出力部２０６は、共通変数に代入されたデータ値を共通変数代入値記憶部２０７から取得し、サービス接続部２０８に渡す。
サービス接続部２０８は、共通変数入出力部２０６から取得したデータ値を、共通変数に対応しているサーバ引数に設定してサーバ用インタフェースに従ってサーバ要求を生成し、サービス実行サーバ装置３００に送信する。
前出の例に従えば、共通変数入出力部２０６はクライアント引数Ａのデータ値「１２３４５６」を共通変数ａに代入して共通変数代入値記憶部２０７に書き込む、また、共通変数代入値記憶部２０７から共通変数ａの値「１２３４５６」を取得し、サーバ引数Ｃとしてサービス接続部２０８に渡す。
サービス接続部２０８は、サーバ引数Ｃとして「１２３４５６」を設定してサーバ要求を生成する。
【００３２】
また、共通変数入出力部２０６は、サービス接続部２０８からサーバ応答の各サーバ戻り値のデータ値を入力し、入力したデータ値を各サーバ戻り値のデータ型に対応する共通変数に代入して共通変数代入値記憶部２０７に書き込む。
更に、共通変数入出力部２０６は、共通変数に代入されているデータ値を共通変数代入値記憶部２０７から取得し、サービス公開部２０１に渡す。
サービス公開部２０１は、共通変数入出力部２０６から取得したデータ値を、対応しているクライアント戻り値に設定してクライアント用インタフェースに従ってクライアント応答を生成し、クライアント装置１００に送信する。
前出の例に従えば、共通変数入出力部２０６はサーバ戻り値Ｄのデータ値「ＡＢＣ−ＸＹＺ」を共通変数ｂに代入して共通変数代入値記憶部２０７に書き込む。
また、共通変数代入値記憶部２０７から共通変数ｂの値「ＡＢＣ−ＸＹＺ」を取得し、クライアント戻り値Ｂのデータ値としてサービス公開部２０１に渡す。
サービス公開部２０１は、クライアント戻り値Ｂとして「ＡＢＣ−ＸＹＺ」を設定してクライアント応答を生成する。
【００３３】
次に、本実施の形態に係るサービス連携サーバ装置２００の動作を詳細に説明する。
なお、各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
【００３４】
図２はクライアント装置１００における処理フローチャートである。
クライアント装置１００ではサービス連携サーバ装置２００へリクエストを送信し、結果を得る（Ｆ０１００）。
【００３５】
図３は、サービス連携サーバ装置２００のサービス公開部２０１における処理フローチャートである。
サービス公開部２０１ではクライアント装置１００からのリクエスト（クライアント要求）を受信し（Ｆ０２００）、どのサービスへのリクエストであるかを共通変数生成部２０２に通知して共通変数の生成を要求し、共通変数生成部２０２から共通変数への参照を取得する（Ｆ０２０１）。
この共通変数への参照とは、クライアント引数が代入される共通変数（サーバ引数として値を読み出すべき共通変数）とサーバ戻り値が代入される共通変数（クライアント戻り値として値を読み出すべき共通変数）が示される情報であり、共通変数対応付け情報の例である。
【００３６】
サービス公開部２０１は、リクエストに含まれるクライント引数の値を共通変数入出力部２０６を用いて共通変数に代入し（Ｆ０２０２）、サービス接続部２０８へ共通変数への参照を渡してサービス実行を要求する（Ｆ０２０３）。
つまり、サービス公開部２０１は、クライアント引数のデータ値を対象となる共通変数の変数名と対応付けて共通変数入出力部２０６に通知し、共通変数入出力部２０６がクライアント引数のデータ値を対応する共通変数に代入して共通変数代入値記憶部２０７に書き込む。
また、サービス公開部２０１は、サービス接続部２０８に、クライアント引数の値が代入される共通変数（サーバ引数として値を読み出すべき共通変数）とサーバ戻り値の値が代入される共通変数（クライアント戻り値として値を読み出すべき共通変数）が示される共通変数への参照（共通変数対応付け情報）を通知してサービス実行を要求する。
【００３７】
また、サービス公開部２０１は、共通変数入出力部２０６からサービスの実行結果（クライアント戻り値）を取得し（Ｆ０２０４）、取得した実行結果に基づきクライアント用インタフェースに従ったレスポンス（クライアント応答）を生成し、レスポンスをクライアント装置１００へ返す（Ｆ０２０５）。
つまり、サービス公開部２０１は、サービス接続部２０８からサービス実行サーバ装置３００からのレスポンスを得たとの通知を受け、共通変数入出力部２０６にサーバ戻り値の値が代入される共通変数（クライアント戻り値として値を読み出すべき共通変数）を通知し、共通変数入出力部２０６からクライアント戻り値の値を取得し、取得した値を用いてレスポンス（クライアント応答）を生成し、レスポンスをクライアント装置１００へ返す。
【００３８】
図４は共通変数生成部２０２における処理フローチャートである。
【００３９】
共通変数生成部２０２ではサービス公開部２０１から共通変数の生成要求を受け付けると（Ｆ０３００）、クライアント装置１００から要求されたサービスに対して共通変数化するデータ型を型マッピング管理部２０４に問い合わせる（Ｆ０３０１）。
次に、共通変数生成部２０２は、得られたマッピングのデータ型一覧から共通変数を生成し、同義なデータ型も記憶しておく（Ｆ０３０２）。
また、共通変数生成部２０２は、共通変数の参照（共通変数対応付け情報の例）を生成する。
共通変数の参照は、前述したように、クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される情報である。
生成された共通変数の参照は呼び出し元であるサービス公開部２０１に返される（Ｆ０３０３）。
【００４０】
図５は型マッピング管理部２０４における処理フローチャートである。
【００４１】
型マッピング管理部２０４では共通変数生成部２０２から共通変数化するデータ型の問い合わせを受けると（Ｆ０４００）、サービスＩ／Ｆ管理部２０５から該当するサービスのＩ／Ｆを参照する（Ｆ０４０１）。
次に、型マッピング管理部２０４は、サービスＩ／Ｆから得られるサービスへの引数と戻り値について型マッピング管理部２０４内で管理しているマッピングの情報からデータ型へのマッピング一覧を出す（Ｆ０４０２）。
マッピング一覧の各型についてデータ型管理部２０３を用いてその種類を取得し、同義（種類が同じ）のデータ型を一覧からはずす（Ｆ０４０３）。
このときデータ型をまとめる方法は同義のデータ型一覧の最初を選ぶ方法でもランダムに選ぶ方法でもよい（例えば、データ型一覧に「データＡ、データＢ、データＣ、データＤ」があり、データＡとデータＢとデータＣが同義である場合、最初を選ぶと「データＡ、データＤ」とまとめられることになる。選ぶルールは特に指定しないのでランダムに「データＢ、データＤ」とまとめてもよい）。
整理されたデータ型一覧と、同義であるためはずされたデータ型一覧を返す（Ｆ０４０４）。
より具体的には、マッピング情報も一覧に紐付けられているので、「データＡ、データＤ」という一覧は、例えば「データＡ＝クライアント引数１（同義：データＢ＝サービスＡ引数１）、データＤ＝クライアント戻り値（同義：データＣ＝サービスＡ戻り値）」といった一覧になる。
【００４２】
図２３は、データ型管理部２０３で管理される情報、型マッピング管理部２０４で管理される情報、サービスＩ／Ｆ管理部２０５で管理される情報の例を示す。
データ型管理部２０３では、データ型と、データ型の相互関係が管理される。
サービスＩ／Ｆ管理部２０５では各インタフェースにおける引数や戻り値が管理される。
型マッピング管理部２０４では、マッピング情報が管理される。
マッピング情報はサービスのＩ／Ｆとデータ型のマッピング情報である。
マッピング一覧は指定されたサービスのＩ／Ｆの引数・戻り値からマッピング情報を引くことで得られるマッピングの一覧である。
図２３の例では、サービスＩ／Ｆ管理部２０５において、クライアント用インタフェースの情報とサービスＡ用インタフェースの情報を管理している。
クライアント用インタフェースには引数１（ｉｎｔ型）、引数２（ｉｎｔ型）、戻り値１（ｉｎｔ型）が含まれており、サービスＡ用インタフェースには引数１（ｓｔｒｉｎｇ型）、引数２（ｉｎｔ型）、戻り値１（ｓｔｒｉｎｇ型）が含まれている。
また、型マッピング管理部２０４では、マッピング情報として、クライアント用インタフェースの引数１、引数２、戻り値のデータ型（引数１＝データ型Ａ、引数２＝データ型Ｃ、戻り値＝データ型Ｄ）が管理され、また、サービスＡ用インタフェースの引数１、引数２、戻り値のデータ型（引数１＝データ型Ｂ、引数２＝データ型Ｃ、戻り値＝データ型Ｅ）が管理される。
そして、データ型管理部２０３では、相互関係として、同義であるデータ型が管理される。具体的には、データ型Ａとデータ型Ｂが同義であり、データ型Ｄとデータ型Ｅが同義である。
型マッピング管理部２０４では、これら情報よりデータ型のマッピング一覧を生成する。
つまり、型マッピング管理部２０４は、クライアント用インタフェースの引数１（データ型Ａ）とサービスＡ用インタフェースの引数１（データ型Ｂ）は同義であり、クライアント用インタフェースの引数２（データ型Ｃ）とサービスＡ用インタフェースの引数２（データ型Ｃ）は同じデータ型であり、クライアント用インタフェースの戻り値（データ型Ｄ）とサービスＡ用インタフェースの戻り値（データ型Ｅ）は同義であるというマッピング一覧を生成する。
【００４３】
図６はサービスＩ／Ｆ管理部２０５における処理フローチャートである。
【００４４】
サービスＩ／Ｆ管理部２０５ではサービスＩ／Ｆの参照を受け付けると（Ｆ０５００）、サービス名等の識別子から該当するサービスのＩ／Ｆを返す（Ｆ０５０１）。
【００４５】
図７はデータ型管理部２０３における処理フローチャートである。
データ型管理部２０３ではデータ型の問い合わせを受けると（Ｆ０６００）、データ型管理部２０３内で管理しているデータ型から同義（種類が同じ）のデータ型一覧を返す（Ｆ０６０１）。
【００４６】
図８は共通変数入出力部２０６における処理フローチャートである。
【００４７】
共通変数入出力部２０６では共通変数の入出力の問い合わせを入力する（Ｆ０７００）。
より具合的には、共通変数入出力部２０６は、共通変数へのデータ値の代入の場合は、問い合わせ元の情報（サービス公開部２０１か、サービス接続部２０８か）、共通変数に代入すべき値、当該値の対応Ｉ／Ｆ（引数か、戻り値か）を入力する。
また、共通変数からのデータ値の読み出しの場合は、問い合わせ元の情報（サービス公開部２０１か、サービス接続部２０８か）、読み出し対象の対応Ｉ／Ｆ（引数か、戻り値か）を入力する。
次に、共通変数入出力部２０６は、Ｆ０７００での共通変数への代入値の有無を判断して、実行すべき処理が入力か出力かを判断する（Ｆ０７０１）。
具体的には、共通変数への代入値を入力している場合は、Ｆ０７０２において入力となる。
一方、共通変数への代入値を入力していない場合は、Ｆ０７０２において出力となる。
【００４８】
そして、共通変数入出力部２０６は、Ｆ０７０２の判断において入力の場合は、問い合わせ元から入力した値を、入力したＩ／Ｆに対応する変数名の共通変数に代入する（Ｆ０７０３）。
問い合わせがサービス公開部２０１からの入力（クライアントからのリクエスト入力）である場合は、サービス公開部２０１から入力した値をクライアント引数に対応する共通変数に代入する。
また、問い合わせがサービス接続部２０８からの入力（サービス実体からのレスポンス取得）である場合は、サービス接続部２０８から入力した値をサーバ戻り値に対応する共通変数に代入する。
一方、Ｆ０７０２の判断において出力であった場合は、問い合わせ元から入力したＩ／Ｆに対応する変数名の共通変数からデータ値を読み出し、問い合わせ元に出力する（Ｆ０７０４）。
問い合わせがサービス接続部２０８からの出力（サービス実体へのリクエスト取得）である場合は、サービス接続部２０８から入力したＩ／Ｆに対応する変数名の共通変数からデータ値（サーバ引数に相当する）を読み出して、サービス接続部２０８に出力する。
また、問い合わせがサービス公開部２０１からの出力（クライアントへのレスポンス取得）である場合は、サービス公開部２０１から入力したＩ／Ｆに対応する変数名の共通変数からデータ値（クライアント戻り値に相当する）を読み出して、サービス公開部２０１に出力する。
【００４９】
図９はサービス接続部２０８における処理フローチャートである。
【００５０】
サービス接続部２０８では、サービス公開部２０１からサービス実行の要求を受けると（Ｆ０８００）、共通変数入出力部２０６を用いて共通変数からサービスの引数となる値を取得する（Ｆ０８０１）。
前述したように、サービス接続部２０８は、サービス公開部２０１から共通変数の参照を取得しているため、サーバ引数として読み出す値が格納されている共通変数の出力を共通変数入出力部２０６に通知することができる。また、同様の理由により、後述するサーバ戻り値の代入の際にも、サーバ戻り値の代入対象の共通変数への入力を共通変数入出力部２０６に通知することができる。
次に、サービス接続部２０８は、共通変数入出力部２０６から取得した値を用いてサービス実行サーバ装置３００に処理を実行させて結果を得る（Ｆ０８０２）。
つまり、共通変数入出力部２０６から取得した値をサーバ引数に設定してサービス実行サーバ装置３００へのリクエストを生成し、サービス実行サーバ装置３００へ送信し、また、サービス実行サーバ装置３００からレスポンスを受信する。
次に、サービス接続部２０８は、サービス実行サーバ装置３００から得た結果は共通変数入出力部を用いて共通変数に代入する（Ｆ０８０３）。
つまり、サービス接続部２０８は、レスポンスに含まれるサーバ戻り値と、当該サーバ戻り値であること（Ｉ／Ｆ）を共通変数入出力部２０６に渡し、サーバ戻り値を共通変数に代入させる。
共通変数入出力部２０６は、サーバ戻り値を対応する共通変数に代入して共通変数代入値記憶部２０７に書き込む。
また、サービス接続部２０８は、サービス公開部２０１にサービス実行サーバ装置３００からのレスポンスを得た旨を通知する。
【００５１】
図１０はサービス実行サーバ装置３００における処理フローチャートである。
サービス実行サーバ装置３００では、サービス連携サーバ装置２００からリクエスト（サーバ要求）を受信し、サービス処理を実行して結果を示すレスポンス（サーバ応答）を生成し、レスポンスをサービス連携サーバ装置２００に返す（Ｆ０９００）。
【００５２】
各機能を組み合わせた全体の動作を、クライアント装置１００がサービス連携サーバ装置２００上で公開されているサービス実行サーバ装置３００のサービスを利用する場合の動作で説明する。
【００５３】
図１１及び図１２はクライアント装置１００がサービス連携サーバ装置２００上で公開されているサービス実行サーバ装置３００のサービスを利用する動作を示したシーケンス図である。
これを用いてクライアント装置１００がサービス実行結果を得るまでの動作を説明する。
【００５４】
クライアント装置１００がサービス公開部２０１で公開されているクライアント用インタフェースに従ったリクエストを送信する（Ｓ０１００）。
サービス公開部２０１は、リクエストを受信し、共通変数生成部２０２に呼び出されたサービス（リクエストで要求されているサービス）に対応する共通変数を生成するように要求する（Ｓ０１０１）。
【００５５】
共通変数生成部２０２は型マッピング管理部２０４に呼び出されたサービスで用いるデータ型一覧を問い合わせる（Ｓ０１０２）。
型マッピング管理部２０４はサービスＩ／Ｆ管理部２０５から該当するサービスのＩ／Ｆを取得し（Ｓ０１０３〜Ｓ０１０４）、サービスＩ／Ｆから引数と戻り値のＩ／Ｆと型のマッピングを取得する（Ｓ０１０５）。
マッピングから得られる各データ型と同義のデータ型一覧をデータ型管理部２０３から取得し（Ｓ０１０６〜Ｓ０１０７）、Ｉ／Ｆと型のマッピング一覧から同義な型をまとめる（Ｓ０１０８）。
まとめられたデータ型一覧とその一覧にある各データ型と同義なデータ型一覧を共通変数生成部２０２に返す（Ｓ０１０９）。
共通変数生成部２０２は得られたデータ型一覧から共通変数を生成する（Ｓ０１１０）。
このとき、同義なデータ型一覧も記憶される。
つまり、共通変数生成部２０２は、同じデータ型に対して同じ共通変数を生成する。また、同義なデータ型に対しても同じ共通変数を生成する。
共通変数生成部２０２は生成した共通変数への参照をサービス公開部２０１に返す（Ｓ０１１１）。
【００５６】
サービス公開部２０１は得られた共通変数への参照から共通変数入出力部２０６を用いてリクエストのクライアント引数を共通変数化し（Ｓ０１１２〜Ｓ０１１３）、サービス接続部２０８に共通変数の参照を通知してサービス実行を要求する（Ｓ０１１４）。
【００５７】
サービス接続部２０８は、サービス公開部２０１から取得した共通変数の参照に基づき、実行するサービスへリクエストするための値（サーバ引数の値）を共通変数入出力部２０６から取得し（Ｓ０１１５〜Ｓ０１１６）、取得した値を用いてサービス実行サーバ装置３００へのリクエストを生成し、サービス実行サーバ装置３００にリクエストを送信して、サービス実行サーバ装置３００からサービスの実行結果を得る（Ｓ０１１７〜Ｓ０１１８）。
ここで、共通変数入出力部２０６から得られる値は共通変数生成時にサービスＩ／Ｆに合わせて同義の型がまとめられているので、リクエストに用いるべき値が得られることになる。
サービス接続部２０８は、サービスを実行して得られた結果は共通変数入出力部２０６を用いて共通変数化し（Ｓ０１１９〜Ｓ０１２０）、サービス公開部２０１へ実行完了を返す（Ｓ０１２１）。
サービス公開部２０１は共通変数入出力部２０６から実行結果（クライアント戻り値の値）を取得し（Ｓ０１２２〜Ｓ０１２３）、取得した値からクライアント装置１００へのレスポンスを生成し、生成したレスポンスをクライアント装置１００に返す（Ｓ０１２４）。
ここで、共通変数入出力部２０６から得られる値は共通変数生成時にサービスＩ／Ｆに合わせて同義の型がまとめられているので、Ｓ０１１５の場合と同様にレスポンスに用いるべき値が得られることになる。
【００５８】
以上のように、サービスを実行するために必要な情報（サービスＩ／Ｆと引数・戻り値の型の種類とそのマッピング）を管理し、同義なデータをまとめて一連の連携処理内で共通変数化することで、連携のための内部メッセージ設計を不要とすることができる。
ここで、連携のための内部メッセージ設計というのは、サービス連携サーバ装置がリクエストを受け取ってからサービス実行サーバ装置へ転送するまでと、サービス実行サーバ装置からの処理結果をクライアント装置へレスポンスするまでのデータフォーマットの設計に相当するものである。
インタフェースに合わせて、バイトデータであれば何バイト目から何バイト目までを引数を格納するための領域にするかといった設計が、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）データであればどのようなスキーマにするかといった設計が必要になる。
本実施の形態ではインタフェースに合わせて共通変数が生成されるのでこういった設計が不要になる。
【００５９】
また、共通変数は共通変数生成部によって一時的な記憶領域を確保しているので複数クライアントからの同時リクエストに対してもそれぞれ独立して動作させることが可能である。
【００６０】
以上、本実施の形態では、
任意のクライアントから利用できるサービスを公開する手段と、サービスのＩ／Ｆを管理する手段と、情報の種類と相互関係を管理する手段と、Ｉ／Ｆと種類のマッピングを管理する手段と、処理中にその処理において共通的な一時記憶領域を取得する手段と、一時領域へ情報を入出力する手段と、サービス実行サーバ装置への接続手段を備えたサーバを用いてサービスの連携を実行する装置を説明した。
【００６１】
実施の形態２．
以上の実施の形態１では１種類のサービスをクライアントから実行できるようにサービス連携サーバ装置２００で連携するようにしたものであるが、次に複数サービスを連携するような場合の実施の形態を示す。
【００６２】
図１３は２つのサービスを接続し連携する方式を示すシステム構成図である。
【００６３】
図１３において、実施の形態１のシステム構成図（図１）から変更・追加された機能はサービス公開部２０１、共通変数生成部２０２、シナリオ管理部２０９、シナリオ制御部２１０であり他の機能は実施の形態１と同様である。
また、サービス連携サーバ装置２００は、サービス実行サーバ装置Ａ３０１、サービス実行サーバ装置Ｂ３０２に接続されている。
サービス実行サーバ装置Ａ３０１、サービス実行サーバ装置Ｂ３０２は実施の形態１におけるサービス実行サーバ装置３００と同様にサービスを実行するが、各々の内部のサービス処理が異なるものである。
また、サービス実行サーバ装置Ａ３０１、サービス実行サーバ装置Ｂ３０２それぞれに固有のサーバ用インタフェースが設けられている。
なお、サービス実行サーバ装置Ａ３０１、サービス実行サーバ装置Ｂ３０２を区別しない場合は、サービス実行サーバ装置３００と表記する。
【００６４】
サービス公開部２０１はクライアント装置１００へサービス利用のインタフェースを公開し、複数サービスを実行するシナリオもサービスとして公開する機能である。
共通変数生成部２０２は、クライアント装置１００からのリクエストにおけるサービス実行と、シナリオ内の各サービス実行のための共通変数を生成する機能である。
シナリオ管理部２０９は、サービスの実行順序をサービス実行シナリオ（単にシナリオともいう）として管理する機能である。
シナリオ制御部２１０は、サービスをシナリオに設定された順序で実行する機能である。
シナリオ管理部２０９とシナリオ制御部２１０は連携サービス管理部の例である。
なお、シナリオ管理部２０９は別サーバでも良い。
また、シナリオには実行順序だけでなく実行条件や条件分岐、エラー時に呼び出すサービスの指定などの実行フローが指定されており、判断のための情報はデータ型管理部２０３で管理されている範囲で指定する。
【００６５】
なお、本実施の形態においても、サービス公開部２０１はクライアント通信部及びクライアント変数処理部の例であり、共通変数生成部２０２、データ型管理部２０３、型マッピング管理部２０４、サービスＩ／Ｆ管理部２０５は共通変数管理部の例である。
また、共通変数入出力部２０６はクライアント変数処理部及びサーバ変数処理部の例であり、サービス接続部２０８はサーバ通信部及びサーバ変数処理部の例である。
【００６６】
次に、実施の形態１との差分を中心に本実施の形態に係るサービス連携サーバ装置２００の動作を概説する。
【００６７】
シナリオ管理部２０９は、クライアント装置１００からのリクエスト（クライアント要求）を解析し、リクエストにおいて要求されているサービスが２以上のサービス実行サーバ装置の連携により実現される連携サービスである場合に、該当するサービス実行シナリオを複数のサービス実行シナリオの中から選択する。
前述のように、サービス実行シナリオには、連携サービスを実現する２以上のサービス実行サーバ装置（連携サービス実行サーバ装置）におけるサービス実行順序が示される。
また、共通変数生成部２０２は、クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ型と、各連携サービス実行サーバ装置３００のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ型を解析し、データ型ごとに共通変数を生成する。
【００６８】
共通変数入出力部２０６は、共通変数に代入されたクライアント引数のデータ値を共通変数代入値記憶部２０７から取得する。
そして、サービス接続部２０８が、共通変数入出力部２０６により取得されたデータ値を、シナリオのサービス実行順序において最初の順序の連携サービス実行サーバ装置３００のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して最初の順序の連携サービス実行サーバ装置３００のサーバ用インタフェースに従って最初の順序の連携サービス実行サーバ装置３００へのサーバ要求を生成し、最初の順序の連携サービス実行サーバ装置３００へ送信する。
なお、最後の順序の連携サービス実行サーバ装置３００からのサーバ応答まで、サービス接続部２０８がサーバ応答を受信する度に、共通変数入出力部２０６は、受信したサーバ応答の各サーバ戻り値に設定されているデータ値を各サーバ戻り値に対応する共通変数に代入して共通変数代入値記憶部２０７に書き込み、共通変数に代入されているデータ値を共通変数代入値記憶部２０７から取得し、サービス接続部２０８が、共通変数入出力部２０６が取得したデータ値を、シナリオのサービス実行順序において後続の連携サービス実行サーバ装置３００のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して後続の連携サービス実行サーバ装置３００のサーバ用インタフェースに従って後続の連携サービス実行サーバ装置３００へのサーバ要求を生成し、後続の連携サービス実行サーバ装置３００へ送信する動作を繰り返す。
なお、後続の連携サービス実行サーバ装置３００とは、シナリオのサービス実行順序における次の順序の連携サービス実行サーバ装置３００のみならず、次の順序以降の連携サービス実行サーバ装置３００も含む。
また、シナリオ制御部２１０はサービス接続部２０８がサーバ応答を受信する度に、サービス接続部２０８に後続の連携サービス実行サーバ装置３００を通知する。
サービス接続部２０８は、共通変数入出力部２０６が共通変数代入値記憶部２０７から取得したデータ値を、シナリオ制御部２１０により通知された後続の連携サービス実行サーバ装置３００のサーバ用インタフェースのサーバ引数に設定して後続の連携サービス実行サーバ装置へのサーバ要求を生成する。
【００６９】
そして、シナリオのサービス実行順序において最後の順序の連携サービス実行サーバ装置３００からのサーバ応答が受信され、サービス応答に含まれているサーバ戻り値が共通変数代入値記憶部２０７に格納された後に、共通変数入出力部２０６は、共通変数に代入されているデータ値を共通変数代入値記憶部２０７から取得し、サービス公開部２０１は共通変数代入値記憶部２０７が取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定してクライアント用インタフェースに従ってクライアント応答を生成し、クライアント装置１００に送信する。
【００７０】
次に、本実施の形態に係るサービス連携サーバ装置２００の動作を詳細に説明する。
各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
なお、以下では、各機能の動作については実施の形態１と異なる機能についてのみ説明する。
【００７１】
図１４はサービス公開部２０１における処理フローチャートである。
【００７２】
サービス公開部２０１ではクライアント装置１００からのリクエストを受信し（Ｆ１０００）、リクエストで要求されたサービスが連携サービスの場合は、クライアント装置１００からのリクエストに対応するシナリオをシナリオ管理部２０９から取得してシナリオ内のサービス一覧を得る（Ｆ１００１）。
サービス一覧には、サービスの実行順序が示される。
次に、サービス公開部２０１は、サービス一覧を共通変数生成部２０２に渡して共通変数の生成を要求し、共通変数への参照を取得する（Ｆ１００２）。
共通変数の参照は共通変数対応付け情報の例である。
本実施の形態では、共通変数の参照は、クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される。
【００７３】
サービス公開部２０１は、リクエストのクライアント引数は共通変数入出力部２０６を用いて共通変数に代入し（Ｆ１００３）、シナリオ制御部２１０へ共通変数への参照とシナリオを渡してシナリオ実行を要求し（Ｆ１００４）、共通変数入出力部２０６からシナリオの実行結果を取得し（Ｆ１００５）、それをレスポンスとしてクライアント装置１００へ返す（Ｆ１００６）。
【００７４】
図１５はシナリオ管理部２０９における処理フローチャートである。
【００７５】
シナリオ管理部２０９では、サービス公開部２０１からシナリオの内容取得を受け付けると（Ｆ１１００）、サービス公開部２０１から通知されたリクエストに対応するシナリオの内容を返す（Ｆ１１０１）。
つまり、シナリオ管理部２０９は、複数のシナリオの中からサービス公開部２０１から通知されたリクエストで要求されている連携サービスを実現するシナリオを選択する。
【００７６】
図１６は共通変数生成部２０２における処理フローチャートである。
【００７７】
共通変数生成部２０２では、サービス公開部２０１からサービス一覧とともに共通変数の生成要求を受け付けると（Ｆ１２００）、型マッピング管理部２０４に、サービス公開部２０１から取得したサービス一覧に含まれる各サービスに対して共通変数化するデータ型を問い合わせる（Ｆ１２０１）。
次に、共通変数生成部２０２は、得られたマッピングのデータ型一覧から共通変数を生成し、同義なデータ型も記憶しておく（Ｆ１２０２）。
また、生成された共通変数の参照は呼び出し元であるサービス公開部２０１に返される（Ｆ１２０３）。
本実施の形態では、共通変数生成部２０２は、サービス一覧に示される各サービスに対して、データ型管理部２０３、型マッピング管理部２０４、サービスＩ／Ｆ管理部２０５を用いて、クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ型と、各連携サービス実行サーバ装置３００のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ型を解析し、データ型ごとに共通変数を生成する。
そして、共通変数生成部２０２は、サービス一覧に示されるサービスの実行順序に従って、共通変数の参照を生成する。
前述したように、具体的には、共通変数生成部２０２は、クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される共通変数の参照を生成する。
【００７８】
図１７は、シナリオ制御部２１０における処理フローチャートである。
【００７９】
シナリオ制御部２１０では、サービス公開部２０１から対象となるシナリオとともに、シナリオ実行の要求を受け付けると（Ｆ１３００）、シナリオに示されたサービスの実行順序に従い、サービス接続部２０８を用いてサービスを実行する（Ｆ１３０１）。
つまり、シナリオ制御部２１０はサービス接続部２０８がサーバ応答を受信する度に、サービス接続部２０８からサーバ応答を受信した旨の通知を受け、シナリオのサービス実行順序を参照し、サービス接続部２０８に後続の連携サービス実行サーバ装置３００を通知する。
サービス接続部２０８では、共通変数入出力部２０６を介して共通変数代入値記憶部２０７から共通変数に代入されているサーバ戻り値の値を後続の連携サービス実行サーバ装置３００のサーバ引数の値として取得し、取得したデータ値を対応するサーバ引数に設定し、後続の連携サービス実行サーバ装置３００のサーバ用インタフェースに従ってリクエスト（サーバ要求）を生成し、後続の連携サービス実行サーバ装置３００に送信する。
また、シナリオ制御部２１０は、シナリオ内に条件分岐等の指定（例えば、「サービスＡの戻り値が０以上なら」等）があれば、判断のための値は共通変数入出力部２０６から取得し、次のサービスを実行する。
つまり、シナリオ管理部２０９は、特定の連携サービス実行サーバ装置３００からのサーバ応答の特定のサーバ戻り値により、次のサーバ要求の送信先が２以上の連携サービス実行サーバ装置３００に分岐するシナリオを選択する場合がある。
サービス接続部２０８により受信されたサーバ応答のサーバ戻り値により分岐が生じる場合に、シナリオ制御部２１０は、当該サーバ戻り値に基づき、２以上の連携サービス実行サーバ装置の中から分岐先の連携サービス実行サーバ装置を選択する。
どのサーバ戻り値に対して分岐判断を行うかは、クライアント装置１００からのリクエスト又はいずれかのサービスの実行結果において特定されている。
シナリオ制御部２１０は、分岐判断の対象となるデータ値（サーバ戻り値）が共通変数代入値記憶部２０７に格納されると、共通変数入出力部２０６に分岐判断の対象となるデータ値（サーバ戻り値）を取得するよう指示し、共通変数入出力部２０６から分岐判断の対象となるデータ値（サーバ戻り値）を取得する。
そして、シナリオ制御部２１０は、当該サーバ戻り値を分岐判断の条件と照合し、分岐先の連携サービス実行サーバ装置を選択する。
例えば、「分岐判断の対象となるサーバ戻り値の値が０ならばサービスＡへ移行し、それ以外はサービスＢへ移行する」という条件がシナリオに設定されている場合、シナリオ制御部２１０は、対象となるデータ値が０かどうかによって分岐先の連携サービス実行サーバ装置を選択する。
シナリオ制御部２１０は、選択した連携サービス実行サーバ装置をサービス接続部２０８に通知する。
そして、サービス接続部２０８は、共通変数入出力部２０６から共通変数に代入されているデータ値を入力すると、シナリオ制御部２１０により選択された分岐先の連携サービス実行サーバ装置３００のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して分岐先の連携サービス実行サーバ装置３００へのサーバ要求を生成する。
【００８０】
各機能を組み合わせた全体の動作を、クライアント装置１００がサービス連携サーバ装置２００上で公開されているサービス実行サーバ装置Ａ３０１のサービスＡとサービス実行サーバ装置Ｂ３０２のサービスＢをシナリオで連携して利用する場合の動作で説明する。
【００８１】
図１８及び図１９はクライアント装置１００がサービス連携サーバ装置２００上で公開されているサービス実行サーバ装置Ａ３０１のサービスＡとサービス実行サーバ装置Ｂ３０２のサービスＢをシナリオで連携して利用する動作を示したシーケンス図である。
これを用いてクライアント装置１００がサービス実行結果を得るまでの動作を説明する。
実施の形態１と同様なシーケンスとなる部分は簡略化している。
【００８２】
クライアント装置１００がサービス公開部２０１で公開されているクライアント用インタフェースに従ったリクエストを送信する（Ｓ０２００）。
サービス公開部２０１はシナリオ管理部２０９から該当するシナリオを取得し（Ｓ０２０１〜Ｓ０２０２）、シナリオ内のサービス一覧を共通変数生成部２０２に渡して共通変数を生成するように要求する（Ｓ０２０３）。
【００８３】
共通変数生成部２０２はシナリオ内の各サービスについて型マッピング管理部２０４へデータ型を問い合わせ（Ｓ０２０４：図１１のＳ０１０２〜Ｓ０１０９と同様）、共通変数を生成する（Ｓ０２０５：図１１のＳ０１１０と同様）。
共通変数生成部２０２は生成した共通変数への参照をサービス公開部２０１に返す（Ｓ０２０６：図１１のＳ０１１１と同様）。
【００８４】
サービス公開部２０１は得られた共通変数への参照から共通変数入出力部２０６を用いてリクエスト内容を共通変数化し（Ｓ０２０７：図１１のＳ０１１２〜Ｓ０１１３と同様）、シナリオ制御部２１０にシナリオ実行を要求する（Ｓ０２０８）。
【００８５】
シナリオ制御部２１０はシナリオに従いサービスＡ実行をサービス接続部２０８に要求する（Ｓ０２０９）。また、このとき、サービスＡのサーバ引数及びサーバ戻り値が格納される共通変数の参照がシナリオ制御部２１０からサービス接続部２０８に渡される。
サービス接続部２０８は、シナリオ制御部２１０から取得した共通変数の参照に基づき、実行するサービスへリクエストするための値（サーバ引数の値）を共通変数入出力部２０６から取得し、取得した値を用いてサービス実行サーバ装置Ａ３０１へリクエストを生成し、サービス実行サーバ装置Ａ３０１にリクエストを送信して、サービス実行サーバ装置Ａ３０１からサービスの実行結果を得て、共通変数入出力部２０６を用いて共通変数に結果（サーバ戻り値）を代入する（Ｓ０２１０：図１１のＳ０１１５〜Ｓ０１２０と同様）。
【００８６】
サービス接続部２０８が実行完了を返すと（Ｓ０２１１）、シナリオ制御部２１０は次のサービス実行に移るが、シナリオ中に分岐等があれば共通変数入出力部２０６を用いて判断に用いる値を得て判断する（Ｓ０２１２）。このシーケンスではそのまま次のサービス実行に移る。
シナリオ制御部２１０はサービスＡ実行時（Ｓ０２０９〜Ｓ０２１１）と同様に、サービスＢのサーバ引数及びサーバ戻り値が格納される共通変数の参照をサービス接続部２０８に渡し、サービスＢを実行する（Ｓ０２１３〜Ｓ０２１５）。
このとき、サービスＢの実行に必要な値（サーバ引数の値）をサービスＡの実行結果（サービス戻り値）から取得する必要があったとしても、サービスＡの実行結果（サーバ戻り値）は共通変数化されており、サービスＢへのリクエスト内容はその共通変数から取得されるため、リクエストに用いるべき値が得られることになる。
シナリオが完了するとシナリオ制御部２１０はサービス公開部２０１へ実行完了を返す（Ｓ０２１６）。
サービス公開部２０１は共通変数入出力部２０６を用いて実行結果（クライアント戻り値）を取得し（Ｓ０２１７：図１１のＳ０１２２〜Ｓ０１２３と同様）、取得した値からクライアント装置１００へのレスポンスを生成し、生成したレスポンスをクライアント装置１００に返す（Ｓ０２１８）。
【００８７】
以上のように、サービスを実行するために必要な情報（サービスＩ／Ｆと引数・戻り値の型の種類とそのマッピング）を管理し、同義なデータをまとめて一連の連携処理内で共通変数化することで、シナリオ実行のような複数サービスを連携する場合においても、内部メッセージ設計を不要とすることができる。
また、シナリオの内容は実行順序といった内容でありサービス間のＩ／Ｆを意識することが無くなるため、シナリオに変更が生じた際にもその改修コストを抑えることができる。
【００８８】
以上、本実施の形態では、サービス連携シナリオを管理する手段と、そのシナリオを制御する手段を備えたサービス連携装置を説明した。
【００８９】
また、本実施の形態では、シナリオを制御する手段において、一時記憶領域の情報によって条件分岐等の制御ができる手段を備えたサービス連携装置を説明した。
【００９０】
実施の形態３．
以上の実施の形態２では複数サービスを連携するような場合にサービス間を連携するようにしたものであるが、次に連携するサービス間で値の変換が必要となる場合の実施の形態を示す。
【００９１】
図２０は連携するサービス間で値の変換をする方式を示すシステム構成図である。
【００９２】
図２０において、実施の形態２のシステム構成図（図１３）から追加された機能は変数変換部２１１であり他の機能は実施の形態２と同様である。
【００９３】
変数変換部２１１は共通変数への入出力時にデータ型に応じて値を変換する機能である。
変数変換部２１１による変換は、例えば、トンで表記されている重量値を、キログラム表記に変換するというものである。
変数変換部２１１は、データ変換部の例である。
【００９４】
変数変換部２１１は、具体的には、共通変数入出力部２０６から共通変数代入値記憶部２０７に格納するデータ値を入力し、当該データ値のデータ形式（トン表記、キログラム表記等）が、当該データ値が次に共通変数代入値記憶部２０７から読み出されてサービス公開部２０１又はサービス接続部２０８で用いられる際のデータ形式と一致するか否かを判断し、データ形式が一致しない場合に、当該データ値のデータ形式をサービス公開部２０１又はサービス接続部２０８で用いられる際のデータ形式に変換する。
また、変数変換部２１１は、共通変数入出力部２０６が共通変数代入値記憶部２０７から取得したデータ値を入力し、当該データ値のデータ形式が、当該データ値がサービス公開部２０１又はサービス接続部２０８で用いられる際のデータ形式と一致するか否かを判断し、データ形式が一致しない場合に、当該データ値のデータ形式をサービス公開部２０１又はサービス接続部２０８で用いられる際のデータ形式に変換する。
なお、変数変換部２１１は、共通変数への参照（クライアント装置１００のリクエスト受信からクライアント装置１００のレスポンス送信までの共通変数の参照）と同義型の情報を有しているため、共通変数ごとに次に引数又は戻り値として用いられる際のデータ形式を判別することができる。
【００９５】
なお、本実施の形態においても、サービス公開部２０１はクライアント通信部及びクライアント変数処理部の例であり、共通変数生成部２０２、データ型管理部２０３、型マッピング管理部２０４、サービスＩ／Ｆ管理部２０５は共通変数管理部の例である。
また、共通変数入出力部２０６はクライアント変数処理部及びサーバ変数処理部の例であり、サービス接続部２０８は、サーバ通信部及びサーバ変数処理部の例である。
また、シナリオ管理部２０９及びシナリオ制御部２１０は連携サービス管理部の例である。
【００９６】
次に動作について説明する。
各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
各機能の動作については実施の形態２と異なる機能についてのみ説明する。
【００９７】
図２１は変数変換部２１１における処理フローチャートである。
変数変換部２１１では共通変数への入出力を受け付けると（Ｆ１４００）、対象の共通変数が入出力するデータ型と完全に一致するかで処理が分かれる（Ｆ１４０１）。
【００９８】
データ型が完全一致する場合は、変数変換部２１１は、そのまま値を代入または取得し（Ｆ１４０２）、データ型が完全一致しない場合は共通変数と共に記憶されている同義型の情報から一致する型へ変換して代入または取得する（Ｆ１４０３）。
変数変換部２１１は、例えば、トンとキログラムとの間の変換では、データ値を１０００倍する、１０００分の１倍するという変換を行う。
【００９９】
各機能を組み合わせた全体の動作を、クライアント装置１００がサービス連携サーバ装置２００上で公開されているサービス実行サーバ装置Ａ３０１のサービスＡとサービス実行サーバ装置Ｂ３０２のサービスＢをシナリオで連携して利用する場合の動作で説明する。
ここでは実施の形態２の場合と異なり、サービスＡの戻り値をサービスＢに渡す場合にその型（データ形式）が完全一致しないものとする。
【０１００】
図２０はクライアント装置１００がサービス連携サーバ装置２００上で公開されているサービス実行サーバ装置Ａ３０１のサービスＡとサービス実行サーバ装置Ｂ３０２のサービスＢをシナリオで連携して利用する動作のうち、共通変数への入出力部分のみを示したシーケンス図である。
全体の動作の大部分は実施の形態２の場合（図１８、図１９）と同様であり、共通変数への入出力部分のみ異なるので、これを用いて共通変数への入出力部分の動作を説明する。
【０１０１】
まず、値の入力について説明する。
共通変数入出力部２０６が変数変換部２１１に値の代入を要求すると（Ｓ０３００）、変数変換部２１１はその値が共通変数の型（次に読みだされた際に引数又は戻り値として用いるデータ形式）と比較して直接代入可能かチェックする（Ｓ０３０１）。
直接代入可能でなければ共通変数とともに記憶されている同義の型から代入可能な型へ値を変換して代入し（Ｓ０３０２）、共通変数入出力部２０６へ代入完了を返す。
【０１０２】
次に、値の出力について説明する。
共通変数入出力部２０６が変数変換部２１１に値の参照を要求すると（Ｓ０３０４）、変数変換部２１１は共通変数の型を参照して値が参照したい型（引数又は戻り値として用いるデータ形式）かチェックする（Ｓ０３０５）。
異なる型であれば共通変数とともに記憶されている同義の型から値を目的の型へ変換し（Ｓ０３０６）、共通変数入出力部２０６へ変換後の値を返す（Ｓ０３０７）。
【０１０３】
以上のように、サービスを実行するために必要な情報（サービスＩ／Ｆと引数・戻り値の型の種類とそのマッピング）を管理し、同義なデータをまとめて一連の連携処理内で共通変数化することで、シナリオ実行のような複数サービスを連携する場合において、値の変換が必要となる場合も、変数変換部を用いることで自動で変換することができ、内部メッセージ設計を不要とすることができる。
また、シナリオの内容は実行順序といった内容でありサービス間のＩ／Ｆを意識することが無くなるため、シナリオに変更が生じた際にも実施の形態２の場合と同様にその改修コストを抑えることができる。
【０１０４】
なお、本実施の形態では、実施の形態２に示したサービス連携がある場合を例にして説明を進めたが、実施の形態１に示したサービス連携がない場合にも変数変換部２１１による変換を行うことができる。
つまり、クライアント引数とサーバ引数間でデータ形式が異なる場合やクライアント戻り値とサーバ戻り値でデータ形式が異なる場合に変数変換部２１１による変換がなされる。
【０１０５】
以上、本実施の形態では、一時記憶領域に適切な型へ変換して情報を入出力できる手段を備えたサービス連携装置を説明した。
【０１０６】
最後に、実施の形態１〜３に示したサービス連携サーバ装置２００のハードウェア構成例について説明する。
図２４は、実施の形態１〜３に示すサービス連携サーバ装置２００のハードウェア資源の一例を示す図である。
なお、図２４の構成は、あくまでもサービス連携サーバ装置２００のハードウェア構成の一例を示すものであり、サービス連携サーバ装置２００のハードウェア構成は図２４に記載の構成に限らず、他の構成であってもよい。
【０１０７】
図２４において、サービス連携サーバ装置２００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１〜３で説明した「共通変数代入値記憶部２０７」は、ＲＡＭ９１４等により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【０１０８】
通信ボード９１５は、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されている。
【０１０９】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【０１１０】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【０１１１】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
サービス連携サーバ装置２００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【０１１２】
上記プログラム群９２３には、実施の形態１〜３の説明において「〜部」（「共通変数代入値記憶部２０７」以外、以下同様）、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【０１１３】
ファイル群９２４には、実施の形態１〜３の説明において、「〜の判断」、「〜の判定」、「〜の比較」、「〜の代入」、「〜の取得」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜３で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【０１１４】
また、実施の形態１〜３の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態１〜３で説明したフローチャートに示すステップ、手順、処理により、本発明に係るデータ処理方法を実現することができる。
また、「〜部」、「〜手段」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１〜３の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態１〜３の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【０１１５】
このように、実施の形態１〜３に示すサービス連携サーバ装置２００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【０１１６】
１００  クライアント装置、２００  サービス連携サーバ装置、２０１  サービス公開部、２０２  共通変数生成部、２０３  データ型管理部、２０４  型マッピング管理部、２０５  サービスＩ／Ｆ管理部、２０６  共通変数入出力部、２０７  共通変数代入値記憶部、２０８  サービス接続部、２０９  シナリオ管理部、２１０  シナリオ制御部、２１１  変数変換部、３００  サービス実行サーバ装置、３０１  サービス実行サーバ装置Ａ、３０２  サービス実行サーバ装置Ｂ。
【図１】
0005404528.tif 000002
【図２】
0005404528.tif 000003
【図３】
0005404528.tif 000004
【図４】
0005404528.tif 000005
【図５】
0005404528.tif 000006
【図６】
0005404528.tif 000007
【図７】
0005404528.tif 000008
【図８】
0005404528.tif 000009
【図９】
0005404528.tif 000010
【図１０】
0005404528.tif 000011
【図１１】
0005404528.tif 000012
【図１２】
0005404528.tif 000013
【図１３】
0005404528.tif 000014
【図１４】
0005404528.tif 000015
【図１５】
0005404528.tif 000016
【図１６】
0005404528.tif 000017
【図１７】
0005404528.tif 000018
【図１８】
0005404528.tif 000019
【図１９】
0005404528.tif 000020
【図２０】
0005404528.tif 000021
【図２１】
0005404528.tif 000022
【図２２】
0005404528.tif 000023
【図２３】
0005404528.tif 000024
【図２４】
0005404528.tif 000025