(57)【要約】【課題】ＡＰＩ利用装置側からみた応答時間が長時間になる場合に開発者及び利用者に知らせて、応答結果を容易に得られるようにする。【解決手段】ＡＰＩ利用装置５０からＡＰＩリクエストの処理に要すると推定する推定応答時間を求める。推定応答時間が閾値以上のときは、中間応答処理部２０が推定応答時間、及び最終応答用ＵＲＬの記載された中間応答となるＡＰＩレスポンスをＡＰＩ利用装置５０に送信する。この場合、この場合、最終的にＡＰＩリクエストの応答として得られたＡＰＩレスポンスの内容はＡＰＩ処理結果記憶部１９に記憶される。ＡＰＩ利用装置５０から最終応答用ＵＲＬにアクセスがあると、ＡＰＩ処理結果記憶部１９に記憶された内容を取得することができる。【選択図】図１
2016151780.tif 000002
【特許請求の範囲】
【請求項１】
ＡＰＩ(Application Programming Interface)のシナリオを記憶するシナリオ記憶部と、
ＡＰＩ利用装置からＡＰＩリクエストを受信する受信部と、
この受信したＡＰＩリクエストを解析して実行するべきＡＰＩ、及び、必要なパラメータを抽出する抽出部と、
前記実行すべきＡＰＩのシナリオを前記シナリオ記憶部から読み込み、前記ＡＰＩリクエストの処理に使用する後段装置を特定する特定部と、
前記パラメータ、及び前記特定部で特定した後段装置に応じた前記ＡＰＩリクエストに対する推定応答時間を推定する応答時間推定部と、
前記特定した後段装置に前記ＡＰＩ利用装置から受信したＡＰＩリクエストの処理を指示するＡＰＩリクエストを送信する送信部と、
前記推定応答時間に関する前記実行するべきＡＰＩごとの閾値を記憶する閾値記憶部と、
前記実行するべきＡＰＩの前記閾値を前記閾値記憶部から取得する閾値取得部と、
前記応答時間推定部で推定した前記推定応答時間の合計が前記閾値取得部で取得した閾値以上であるか否かを判定する判定部と、
前記推定応答時間が前記閾値以上であるときは、前記送信部が送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを前記後段装置から受信したときに当該ＡＰＩレスポンスの内容を処理結果として記憶するＡＰＩ処理結果記憶部と、
前記推定応答時間が前記閾値以上であるときは、前記ＡＰＩ処理結果記憶部の前記ＡＰＩレスポンスの内容のロケーションと前記推定応答時間とを記載した中間応答を前記ＡＰＩ利用装置に返信する中間応答処理部と、
前記推定応答時間が前記閾値未満であるときは、前記送信部が送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを前記後段装置から受信すると対応するＡＰＩレスポンスを前記ＡＰＩ利用装置に返信する返信部と、
前記ロケーションを指定して前記ＡＰＩ利用装置からアクセスがあったときは前記ＡＰＩ処理結果記憶部に記憶されている前記処理結果を記載したＡＰＩレスポンスを前記ＡＰＩ利用装置に送信する最終応答処理部と、
を備えたことを特徴とするＡＰＩ提供装置。
【請求項２】
自装置及び前記後段装置の状況を取得する装置状況取得部をさらに備え、
前記応答時間推定部は、前記装置状況取得部が取得した前記状況に基づいて前記推定応答時間を推定する請求項１に記載のＡＰＩ提供装置。
【請求項３】
前記送信部が前記ＡＰＩリクエストを送信した時刻と前記送信部が送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを受信した時刻との差分を記憶する応答時間記憶部と、
前記差分を統計処理して前記推定応答時間を求めるための関数を算出する応答時間推定関数算出部と、
前記関数を記憶する応答時間推定関数記憶部と、
を備え、
前記応答時間推定部は、前記関数を用いて前記推定応答時間を求めることを特徴とする請求項２に記載のＡＰＩ提供装置。
【請求項４】
ＡＰＩ(Application Programming Interface)利用装置からＡＰＩリクエストを受信する受信工程と、
この受信したＡＰＩリクエストを解析して実行するべきＡＰＩ、及び、必要なパラメータを抽出する抽出工程、
前記実行すべきＡＰＩのシナリオをＡＰＩのシナリオを記憶するシナリオ記憶部から読み込み、前記ＡＰＩリクエストの処理に使用する後段装置を特定する特定工程と、
前記パラメータ、及び前記特定工程で特定した後段装置に応じた前記ＡＰＩリクエストに対する推定応答時間を推定する応答時間推定工程と、
前記特定した後段装置に前記ＡＰＩ利用装置から受信したＡＰＩリクエストの処理を指示するＡＰＩリクエストを送信する送信工程と、
前記推定応答時間に関する前記実行するべきＡＰＩごとの閾値を記憶する閾値記憶部から、前記実行するべきＡＰＩの前記閾値を取得する閾値取得工程と、
前記応答時間推定工程で推定した前記推定応答時間の合計が前記閾値取得工程で取得した閾値以上であるか否かを判定する判定工程と、
前記推定応答時間が前記閾値以上であるときは、前記送信工程で送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを前記後段装置から受信したときに当該ＡＰＩレスポンスの内容を処理結果として記憶する前記ＡＰＩ処理結果記憶部の前記ＡＰＩレスポンスの内容のロケーションと前記推定応答時間とを記載した中間応答を前記ＡＰＩ利用装置に返信する中間応答処理工程と、
前記推定応答時間が前記閾値未満であるときは、前記送信工程で送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを前記後段装置から受信すると対応するＡＰＩレスポンスを前記ＡＰＩ利用装置に返信する返信工程と、
前記ロケーションを指定して前記ＡＰＩ利用装置からアクセスがあったときは、前記推定応答時間が前記閾値以上であるときは、ＡＰＩ処理結果記憶部に記憶されている前記処理結果を記載したＡＰＩレスポンスを前記ＡＰＩ利用装置に送信する最終応答処理工程と、
を備えたことを特徴とするＡＰＩ提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＰＩ提供装置、及びＡＰＩ提供方法に関する。
【背景技術】
【０００２】
通信ネットワーク上で複数の機能をＡＰＩ(Application Programming Interface)として他の装置に提供するＡＰＩ提供装置としては、特許文献１，２などが知られている。
特許文献１には、アプリケーションサーバとＡＰＩサーバとから構成されるＷｅｂシステムについて開示されている。
特許文献２には、ＡＰＩ呼出し要求に応じて呼制御ＡＰＩ又はメディア制御ＡＰＩを提供するＡＰＩゲートウェイ装置について開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４９０２６３３号公報
【特許文献２】特許第５３０９３６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＡＰＩ提供装置がＡＰＩを提供する場合に、当該ＡＰＩの処理内容によっては、ＡＰＩ提供装置を利用するＡＰＩ利用装置側からみた応答時間に長時間を要することがある。
この場合には、提供されるＡＰＩを活用してアプリケーションソフトウェアを開発する開発者にとっては、ＡＰＩ提供装置からの応答が返却されるまで、開発したアプリケーションソフトからのＡＰＩリクエストが正常に処理されているかどうかを判断することができない。
また、当該アプリケーションソフトの利用者には、応答時間に長時間を要しているのがどのような状況なのかを伝達することができない。
【０００５】
これに対して、特許文献１，２では、ＡＰＩ提供装置を利用するＡＰＩ利用装置側からみた応答時間が長時間になる場合の対策については何ら考慮されていない。
そこで本発明は、ＡＰＩ利用装置側からみた応答時間が長時間となる場合にその旨を開発者及び利用者に知らせて、応答結果を容易に得られるようにすることができるＡＰＩ提供装置、及びＡＰＩ提供方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、ＡＰＩ(Application Programming Interface)のシナリオを記憶するシナリオ記憶部と、ＡＰＩ利用装置からＡＰＩリクエストを受信する受信部と、この受信したＡＰＩリクエストを解析して実行するべきＡＰＩ、及び、必要なパラメータを抽出する抽出部と、前記実行すべきＡＰＩのシナリオを前記シナリオ記憶部から読み込み、前記ＡＰＩリクエストの処理に使用する後段装置を特定する特定部と、前記パラメータ、及び前記特定部で特定した後段装置に応じた前記ＡＰＩリクエストに対する推定応答時間を推定する応答時間推定部と、前記特定した後段装置に前記ＡＰＩ利用装置から受信したＡＰＩリクエストの処理を指示するＡＰＩリクエストを送信する送信部と、前記推定応答時間に関する前記実行するべきＡＰＩごとの閾値を記憶する閾値記憶部と、前記実行するべきＡＰＩの前記閾値を前記閾値記憶部から取得する閾値取得部と、前記応答時間推定部で推定した前記推定応答時間の合計が前記閾値取得部で取得した閾値以上であるか否かを判定する判定部と、前記推定応答時間が前記閾値以上であるときは、前記送信部が送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを前記後段装置から受信したときに当該ＡＰＩレスポンスの内容を処理結果として記憶するＡＰＩ処理結果記憶部と、前記推定応答時間が前記閾値以上であるときは、前記ＡＰＩ処理結果記憶部の前記ＡＰＩレスポンスの内容のロケーションと前記推定応答時間とを記載した中間応答を前記ＡＰＩ利用装置に返信する中間応答処理部と、前記推定応答時間が前記閾値未満であるときは、前記送信部が送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを前記後段装置から受信すると対応するＡＰＩレスポンスを前記ＡＰＩ利用装置に返信する返信部と、前記ロケーションを指定して前記ＡＰＩ利用装置からアクセスがあったときは前記ＡＰＩ処理結果記憶部に記憶されている前記処理結果を記載したＡＰＩレスポンスを前記ＡＰＩ利用装置に送信する最終応答処理部と、を備えたことを特徴とするＡＰＩ提供装置である。
本発明によれば、ＡＰＩ利用装置側からみた応答時間が長時間になる場合に開発者及び利用者にその旨を知らせて、応答結果を容易に得られるようにすることができる。
【０００７】
この場合に、自装置及び前記後段装置の状況を取得する装置状況取得部をさらに備え、前記応答時間推定部は、前記装置状況取得部が取得した前記状況に基づいて前記推定応答時間を推定するようにしてもよい。
本発明によれば、自装置及び後段装置の状況に応じて推定応答時間を精度よく求めることができる。
【０００８】
前記の場合に、前記送信部が前記ＡＰＩリクエストを送信した時刻と前記送信部が送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを受信した時刻との差分を記憶する応答時間記憶部と、前記差分を統計処理して前記推定応答時間を求めるための関数を算出する応答時間推定関数算出部と、前記関数を記憶する応答時間推定関数記憶部と、を備え、前記応答時間推定部は、前記関数を用いて前記推定応答時間を求めるようにしてもよい。
本発明によれば、ＡＰＩリクエストを送信した時刻とＡＰＩレスポンスを受信した時刻との差分の過去データを用いて、推定応答時間を精度よく求めることができる。
【０００９】
別の本発明は、ＡＰＩ(Application Programming Interface)利用装置からＡＰＩリクエストを受信する受信工程と、この受信したＡＰＩリクエストを解析して実行するべきＡＰＩ、及び、必要なパラメータを抽出する抽出工程、前記実行すべきＡＰＩのシナリオをＡＰＩのシナリオを記憶するシナリオ記憶部から読み込み、前記ＡＰＩリクエストの処理に使用する後段装置を特定する特定工程と、前記パラメータ、及び前記特定工程で特定した後段装置に応じた前記ＡＰＩリクエストに対する推定応答時間を推定する応答時間推定工程と、前記特定した後段装置に前記ＡＰＩ利用装置から受信したＡＰＩリクエストの処理を指示するＡＰＩリクエストを送信する送信工程と、前記推定応答時間に関する前記実行するべきＡＰＩごとの閾値を記憶する閾値記憶部から、前記実行するべきＡＰＩの前記閾値を取得する閾値取得工程と、前記応答時間推定工程で推定した前記推定応答時間の合計が前記閾値取得工程で取得した閾値以上であるか否かを判定する判定工程と、前記推定応答時間が前記閾値以上であるときは、前記送信工程で送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを前記後段装置から受信したときに当該ＡＰＩレスポンスの内容を処理結果として記憶する前記ＡＰＩ処理結果記憶部の前記ＡＰＩレスポンスの内容のロケーションと前記推定応答時間とを記載した中間応答を前記ＡＰＩ利用装置に返信する中間応答処理工程と、前記推定応答時間が前記閾値未満であるときは、前記送信工程で送信した前記ＡＰＩリクエストに対するＡＰＩレスポンスを前記後段装置から受信すると対応するＡＰＩレスポンスを前記ＡＰＩ利用装置に返信する返信工程と、前記ロケーションを指定して前記ＡＰＩ利用装置からアクセスがあったときは、前記推定応答時間が前記閾値以上であるときは、ＡＰＩ処理結果記憶部に記憶されている前記処理結果を記載したＡＰＩレスポンスを前記ＡＰＩ利用装置に送信する最終応答処理工程と、を備えたことを特徴とするＡＰＩ提供方法である。
本発明によれば、ＡＰＩ利用装置側からみた応答時間が長時間になる場合に開発者及び利用者にその旨を知らせて、応答結果を容易に得られるようにすることができる。
【発明の効果】
【００１０】
本発明によれば、ＡＰＩ利用装置側からみた応答時間が長時間となる場合に開発者及び利用者にその旨を知らせて、応答結果を容易に得られるようにすることができるＡＰＩ提供装置、及びＡＰＩ提供方法を提供することを目的とする。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態であるＡＰＩ提供装置を中心としたシステム構成を示すブロック図である。
【図２】本発明の一実施形態であるＡＰＩ提供装置のＡＰＩ処理部が実行する処理のフローチャートである。
【図３】本発明の一実施形態であるＡＰＩ提供装置の設定記憶部に記憶されている内容を説明する図である。
【図４】本発明の一実施形態であるＡＰＩ提供装置の応答時間推定部が実行する処理のフローチャートである。
【図５】本発明の一実施形態であるＡＰＩ提供装置の装置状況取得部が実行する処理のフローチャートである。
【図６】本発明の一実施形態であるＡＰＩ提供装置の応答時間推定関数記憶部に記憶されている内容を説明する図である。
【図７】本発明の一実施形態であるＡＰＩ提供装置の中間応答処理部が実行する処理を説明するフローチャートである。
【図８】本発明の一実施形態であるＡＰＩ提供装置のＡＰＩ処理結果記憶部に記憶されている内容を説明する図である。
【図９】本発明の一実施形態であるＡＰＩ提供装置の応答時間記憶部に記憶されている内容を説明する図である。
【図１０】本発明の一実施形態であるＡＰＩ提供装置の最終応答処理部が実行する処理のフローチャートである。
【図１１】本発明の一実施形態であるＡＰＩ提供装置の設定受付部が実行する処理のフローチャートである。
【図１２】本発明の一実施形態であるＡＰＩ提供装置の応答時間推定関数算出部が実行する処理のフローチャートである。
【発明を実施するための形態】
【００１２】
（システム構成）
図１は、本発明の一実施形態であるＡＰＩ提供装置１を中心としたシステム構成を示すブロック図である。図１に示すように、ＡＰＩ提供装置１は、複数の機能をＡＰＩとしてＡＰＩ利用装置５０に提供する装置である。ＡＰＩ提供装置１は、例えばＡＰＩ−ＧＷ（Gateway）等の装置である。ＡＰＩ利用装置５０は、ＡＰＩ提供装置１が提供するＡＰＩを利用するアプリケーションソフトがセットアップされたパーソナルコンピュータ、スマートフォン等の装置である。後段装置１００は、ＡＰＩ利用装置５０がサービスを受けるサーバ等の装置である。図１の例では、後段装置１００として、後段装置ａａ、後段装置ａｂ、後段装置ｂａが図示されている。ＡＰＩ提供装置１、ＡＰＩ利用装置５０、後段装置１００は、いずれもインターネット等の通信ネットワークに接続されている。
【００１３】
図１に示すように、ＡＰＩ提供装置１はＡＰＩ提供プログラム（図示せず）に基づいて、ＡＰＩ処理部１１、設定受付部１２、設定記憶部１３、応答時間記憶部１４、装置状況取得部１５、応答時間推定部１６、応答時間推定関数算出部１７、応答時間推定関数記憶部１８、ＡＰＩ処理結果記憶部１９、中間応答処理部２０、最終応答処理部２１の各機能を実行する。また、ＡＰＩ提供装置１には、設定入力装置２２が接続されている。
【００１４】
以下では、これらの各機能に基づいて実行されるＡＰＩ提供方法について説明する。
（ＡＰＩ提供方法）
図２は、ＡＰＩ処理部１１が実行する処理を説明するフローチャートである。まず、ＡＰＩ利用装置５０からＡＰＩリクエストを受信すると（受信部）（Ｓ１のＹｅｓ）、ＡＰＩ処理部１１は、当該ＡＰＩリクエストを解析して、そのＡＰＩリクエストから実行されるＡＰＩ処理名（図１に示す「ＡＰＩ  Ａ」）や、そのＡＰＩの指示内容となるパラメータ（各後段装置１００に入力するデータ）を抽出して（抽出部）（Ｓ２）、Ｓ３に移行する。
【００１５】
図３は、設定記憶部１３に記憶されている内容を説明する図である。設定記憶部１３（シナリオ記憶部、閾値記憶部）には、「ＡＰＩ処理名」と、「シナリオ」と、「閾値」とが関連付けて登録されている。「ＡＰＩ処理名」は図１に示す「ＡＰＩ  Ａ」のような一連のＡＰＩの処理を示す名前である。「シナリオ」は当該ＡＰＩ処理名に対応したＡＰＩの処理内容を規定している。具体的には、シナリオは、後段装置１００のＡＰＩの呼出順やパラメータを規定したファイルである。ここで、パラメータは、ＡＰＩ提供装置１から後段装置１００に与える入力データ等である。例えば、ＡＰＩ  Ａでは、シナリオは「ＡＰＩ  １→ＡＰＩ  ２」であり、ＡＰＩ  １を実行してからＡＰＩ  ２を実行することを示す。同様に、ＡＰＩ  Ｂでは、シナリオは「ＡＰＩ  ２」であり、ＡＰＩ  ２だけを実行することを示す。閾値は、各シナリオを実行する時間に関する閾値である（詳細は後述）。
【００１６】
図２に戻り、ＡＰＩ処理部１１は、Ｓ３では設定記憶部１３からＳ２で抽出されたＡＰＩのシナリオを読み込み、これにより使用する後段装置１００を特定する（特定部）。この後、ＡＰＩ処理部１１はＳ４に移行する。
Ｓ４では、ＡＰＩ処理部１１は、応答時間推定部１６にＳ３で特定した後段装置１００、Ｓ２で抽出したパラメータの情報を渡し、「推定応答時間」を取得する。
図４は、応答時間推定部１６の実行する処理のフローチャートである。ＡＰＩ処理部１１から後段装置１００、パラメータの情報を受け取ると（Ｓ２１のＹｅｓ）、応答時間推定部１６は、装置状況取得部１５から自装置（ＡＰＩ提供装置１）、後段装置１００の状況を取得する（Ｓ２２）。
【００１７】
図５は、装置状況取得部１５が実行する処理のフローチャートである。Ｓ２２により自装置（ＡＰＩ提供装置１）、後段装置１００の状況の取得の要求があると（Ｓ３１のＹｅｓ）、装置状況取得部１５は、当該状況を取得する（Ｓ３２）。ここで、自装置（ＡＰＩ提供装置１）、後段装置１００の状況とは、これら装置の負荷等の状況であり、装置の負荷は例えば各装置のＣＰＵ使用率で判断することができるので、装置状況取得部１５は、当該装置から負荷を取得することにより、これら装置の状況を取得する。そして、装置状況取得部１５は、この取得した状況を応答時間推定部１６に返却する（Ｓ３３）。
図４に戻り、Ｓ３３により自装置（ＡＰＩ提供装置１）、後段装置１００の状況の取得を行って（Ｓ２２）、応答時間推定部１６は、応答時間推定関数記憶部１８から関数を取得する（Ｓ２３）。
【００１８】
図６は、応答時間推定関数記憶部１８に記憶されている内容を説明する図である。応答時間推定関数記憶部１８には、図３の設定記憶部１３のシナリオを構成する「ＡＰＩ」と、当該ＡＰＩに対応した各「パラメータ」とに関連付けて、「関数」が記憶されている。この関数は、Ｓ１で受信したＡＰＩ提供装置１からのＡＰＩリクエストの処理に要する時間を推定するためのものである。例えば、ＡＰＩ提供装置１からのＡＰＩリクエストに含まれる「ＡＰＩ  １」のパラメータ（Ｓ２で抽出したもの）が「ａａａ，ｃ，…」である場合の関数は、「装置ａａの負荷＊０．９＋装置ａｂの負荷＊０．２」である。
【００１９】
図４に戻り、Ｓ２３で図６の応答時間推定関数記憶部１８から関数を取得すると、応答時間推定部１６は、当該関数に基づいて、Ｓ１で受信したＡＰＩ提供装置１からのＡＰＩリクエストの処理に要する時間を推定した推定応答時間を算出し、ＡＰＩ処理部１１に返却する（Ｓ２４）。例えば、Ｓ３（図２）で読み込んだＡＰＩのシナリオが「ＡＰＩ  ２」で、Ｓ２で抽出したパラメータが「ｂｂｂ，ｃ，…」である場合の関数は、図６において、「装置ｂａの負荷＊０．５」である。あとは、応答時間推定部１６が、Ｓ２２で取得した各装置の状況（本例では、負荷）を当該関数にあてはめて計算することで、前記の推定応答時間を算出する。ここで、ＡＰＩ提供装置１から後段装置１００へのＡＰＩが複数の場合は、それぞれのＡＰＩについて応答時間推定部１６が算出した推定応答時間を積算（合計）する必要がある。
【００２０】
図２に戻り、このようにして推定応答時間を取得すると（Ｓ４）、ＡＰＩ処理部１１は、図３の設定記憶部１３からＳ２で抽出したＡＰＩ処理名に対応する「閾値」を取得する（閾値取得部）（Ｓ５）。この閾値は、前記の推定応答時間が長過ぎるか否かを判断するための値である。
そして、ＡＰＩ処理部１１は、Ｓ４で取得した推定応答時間がＳ５で取得した閾値を下回るか否かを判断する（判定部）（Ｓ６）。推定応答時間が閾値を下回るときは（Ｓ６のＹｅｓ）、推定応答時間が比較的短いと想定される場合であり、ＡＰＩ処理部１１は、Ｓ８に移行する。
推定応答時間が閾値以上のときは（Ｓ６のＮｏ）、推定応答時間が過度に長いと想定される場合であり、ＡＰＩ処理部１１は、Ｓ７の処理を行ってからＳ８に移行する。すなわち、ＡＰＩ処理部１１は、Ｓ７において中間応答処理部２０にＳ４で取得した推定応答時間を渡し、中間応答するように依頼する。
【００２１】
図７は、中間応答処理部２０が実行する処理を説明するフローチャートである。ＡＰＩ処理部１１からＳ７で推定応答時間を受け取ると（Ｓ７１のＹｅｓ）、中間応答処理部２０は、処理ＩＤを含む最終応答用ＵＲＬ（Uniform Resource Locator）を用意する（Ｓ７２）。そして、中間応答処理部２０は、Ｓ３１で受け取った推定応答時間、Ｓ３２で用意した最終応答用ＵＲＬを含む仮のＡＰＩレスポンス（中間応答）をＡＰＩ利用装置５０へ送信する（Ｓ７３）。すなわち、この場合は、推定応答時間が過度に長いと想定される、すなわち推定応答時間が閾値以上の場合であり（Ｓ６のＮｏ）、ＡＰＩ利用装置５０からのＡＰＩリクエストに対して本来の応答となるＡＰＩレスポンスは短期間で返ってこないので、仮のＡＰＩレスポンスである中間応答をＡＰＩ利用装置５０に送信するものである。この中間応答には、推定応答時間が記載されているので、どの程度の時間でＡＰＩ利用装置５０からのＡＰＩリクエストに対する結果が得られるかをＡＰＩ利用装置５０の利用者は知ることができる。また、推定応答時間が経過してから、ＡＰＩリクエストに対する結果を取得するためのＡＰＩ提供装置１内のロケーションを示すのが最終応答用ＵＲＬである。
【００２２】
そして、中間応答処理部２０は、この最終応答用ＵＲＬに対応した識別子である「処理ＩＤ」をＡＰＩ処理部１１に返却する（Ｓ７４）。
図２に戻り、処理ＩＤを中間応答処理部２０から返却されたＡＰＩ処理部１１は、当該処理ＩＤをＡＰＩ処理結果記憶部１９に記憶する（Ｓ７）。
【００２３】
図８は、ＡＰＩ処理結果記憶部１９に記憶されている内容を説明する図である。ＡＰＩ処理結果記憶部１９では、「処理ＩＤ」と「処理結果」とが関連付けられて登録される。前記の最終応答用ＵＲＬは処理ＩＤと対応しているので、最終応答用ＵＲＬの示すロケーションは、当該最終応答用ＵＲＬに対応した処理ＩＤに関連付けられている「処理結果」の領域となる。
図２に戻り、推定応答時間が短ければ（Ｓ６のＹｅｓ）、Ｓ７の処理を行わずに、長ければ（Ｓ６のＮｏ）、Ｓ７の処理を実行して、Ｓ８に移行する。
【００２４】
図９は、応答時間記憶部１４に記憶されている内容を説明する図である。応答時間記憶部１４には、設定記憶部１３のシナリオ等で規定される「ＡＰ１」（の種別）と、後段装置１００へのＡＰＩリクエストの送信時刻である「リクエスト送信時刻」と、当該ＡＰＩリクエストに対する後段装置１００からのＡＰＩレスポンスの受信時刻である「レスポンス受信時刻」と、リクエスト送信時刻とレスポンス受信時刻と差分である「応答時間」と、Ｓ３で設定記憶部１３から読み込んだシナリオで設定されている後段装置１００に入力するパラメータである「パラメータ」と、自装置（ＡＰＩ提供装置１）及び各後段装置１００の負荷を入力する「負荷」と、が関連付けられて登録される。
【００２５】
図２に戻り、Ｓ８において、ＡＰＩ処理部１１は、Ｓ３で読み込んだシナリオに基づく後段装置１００に、Ｓ１で受信したＡＰＩリクエストに対応するＡＰＩリクエストを送信し（送信部）、応答時間記憶部１４に設定記憶部１３から読み込んだシナリオで設定されている後段装置１００に入力するパラメータと、当該ＡＰＩリクエストの送信時刻とを、応答時間記憶部１４の「パラメータ」、「リクエスト送信時刻」にそれぞれ記憶する。
【００２６】
次に、ＡＰＩ処理部１１は、装置状況取得部１５から自装置（ＡＰＩ提供装置１）及び各後段装置１００の状況を取得する（Ｓ９）。ここで、「状況」とは、本例では、ＣＰＵ使用率等から判断される各装置の負荷である。そして、ＡＰＩ処理部１１は、当該各装置の負荷を、応答時間記憶部１４の「負荷」の欄に記憶する（Ｓ９）。
次に、ＡＰＩ処理部１１は、Ｓ８で送信したＡＰＩリクエストに対応したＡＰＩレスポンスを後段装置１００から受信し、その受信時刻を応答時間記憶部１４の「レスポンス受信時刻」の欄に記憶する（Ｓ１０）。
【００２７】
次に、ＡＰＩ処理部１１は、前記ＡＰＩレスポンスの受信時刻を応答時間記憶部１４の「レスポンス受信時刻」から読み取り、これに対応するＡＰＩリクエストの送信時刻を応答時間記憶部１４の「リクエスト送信時刻」から読み取り、これらの差し引き応答時間を算出して、応答時間記憶部１４の「応答時間」の欄に記憶する（Ｓ１１）。この応答時間は、ＡＰＩ提供装置１がＡＰＩリクエストを送信してＡＰＩレスポンスを受信するまでの時間となる。
【００２８】
ＡＰＩ処理部１１は、Ｓ８〜Ｓ１１の処理を実行した後段装置１００以外に他の後段装置１００も利用するときは（Ｓ１２のＹｅｓ）、当該他の後段装置１００についてもＳ８〜Ｓ１１の処理を繰り返す。利用する全ての後段装置１００についてＳ８〜Ｓ１１の処理を実行したときは（Ｓ１２のＮｏ）、ＡＰＩ処理部１１は、Ｓ４で取得した推定応答時間がＳ５で取得した閾値を下回るか否かを判断する（判定部）（Ｓ１３）。推定応答時間が閾値を下回るときは（Ｓ１３のＹｅｓ）、推定応答時間が比較的短いと想定される場合であり、ＡＰＩ利用装置５０からのＡＰＩリクエスト（Ｓ１）に対応したＡＰＩレスポンスを後段装置１００から速やかに得られるので、ＡＰＩ処理部１１は、当該後段装置１００からのＡＰＩレスポンスに対応したＡＰＩレスポンスをＡＰＩ利用装置５０に送信する（Ｓ１４）。
【００２９】
一方、推定応答時間が閾値以上のときは（Ｓ１３のＮｏ）、推定応答時間が過度に長いと想定される場合であり、中間応答処理部２０から中間応答となるＡＰＩレスポンスを既にＡＰＩ利用装置５０に送信済みである（Ｓ７３）。そして、これに対応した処理ＩＤをＡＰＩ処理結果記憶部１９に記憶している（Ｓ７）。そこで、長時間を要して後に後段装置１００から得られたＡＰＩレスポンスの内容をＳ７の該当する処理ＩＤと関連付けてＡＰＩ処理結果記憶部１９に記憶する（Ｓ１５）。
【００３０】
この場合、最終応答処理部２１により、ＡＰＩ利用装置５０は後段装置１００から得られたＡＰＩレスポンスの内容を最終的に受け取ることができる。図１０は、最終応答処理部２１が実行する処理を説明するフローチャートである。前記のとおりＳ１５の処理が行われた場合は、推定応答時間が過度に長いと想定される場合であり、中間応答処理部２０から中間応答となるＡＰＩレスポンスを既にＡＰＩ利用装置５０に送信済みであるとき（Ｓ７３）、その中間応答には、最終応答用ＵＲＬが記載されている。そして、ＡＰＩ利用装置５０が最終応答用ＵＲＬにアクセスすると（中間応答には前記の推定応答時間が表示されているので（Ｓ７３）、当該時間を見てＡＰＩ利用装置５０の利用者はアクセスすることができる）（Ｓ４１のＹｅｓ）、最終応答処理部２１は、当該最終応答用ＵＲＬの示すロケーションに存在するＡＰＩ処理結果記憶部１９の処理結果（Ｓ１５で記憶されたもの）を取得し（Ｓ４２）、ＡＰＩ処理が終了済であれば（Ｓ４３のＹｅｓ）、すなわち、ＡＰＩ処理結果記憶部１９の処理結果が記憶されていて、これを取得出来たら、当該処理結果をＡＰＩ利用装置５０へのＡＰＩレスポンスとして送信する（Ｓ４４）。これにより、ＡＰＩ利用装置５０は、ＡＰＩ提供装置１に送信したＡＰＩリクエストに対するＡＰＩレスポンスを最終的に受け取ることができる。
【００３１】
一方、ＡＰＩ処理が終了済でなければ（Ｓ４３のＮｏ）、すなわち、ＡＰＩ処理結果記憶部１９の処理結果が記憶されておらず、これを取得出来なかったら、最終応答処理部２１は、再度、中間応答となるＡＰＩレスポンスをＡＰＩ利用装置５０へ送信するように中間応答処理部２０に指示する（Ｓ４５）。この場合は、前記と同様の処理により、中間応答となるＡＰＩレスポンスをもう一度送信することになる。その後に、ＡＰＩ処理結果記憶部１９の該当の「処理結果」欄にデータが登録されれば、前記のＳ４４の処理により、ＡＰＩ利用装置５０は、Ｓ１で受けたＡＰＩリクエストに対するＡＰＩレスポンスを最終的に受け取ることができる。
【００３２】
次に、以上説明したような処理を実行可能とするためにＡＰＩ提供装置で事前に行っておく処理について説明する。
図１１は、設定受付部１２が実行する処理を説明するフローチャートである。ＡＰＩ提供装置１の管理者が設定入力装置２２を操作して入力することにより、設定受付部１２は、設定記憶部１３に記憶する前記の「ＡＰＩ処理名」、「シナリオ」、「閾値」を受け取る（Ｓ５１）。ここで、前記のとおり、シナリオは、後段装置１００のＡＰＩの呼出順やパラメータを規定したファイルである。また、パラメータは、ＡＰＩ提供装置１から後段装置１００に与える入力データ等である。そして、設定受付部１２は、この受け取った内容を設定記憶部１３に記憶する（Ｓ５２）。
【００３３】
図１２は、応答時間推定関数算出部１７が実行する処理を説明するフローチャートである。かかる処理は、一定期間が経過するたびに行う等、適宜実行する。まず、応答時間推定関数算出部１７は、応答時間記憶部１４から「パラメータ」や、各装置の状況、すなわち本例で「負荷」の過去の登録の履歴を取得する（Ｓ６１）。そして、応答時間推定関数算出部１７は、この履歴を対象に所定の統計処理をして、関数を算出する（Ｓ６２）。最後に、応答時間推定関数算出部１７は、この算出した関数を応答時間推定関数記憶部１８の「関数」の欄に記憶する（Ｓ６３）。
【００３４】
本実施形態によれば、ＡＰＩ利用装置５０側からみた応答時間が長時間になる場合に、中間応答により、その旨を利用者に知らせて、応答結果を容易に得られるようにすることができる。
また、各装置の装置状況、すなわち各装置の負荷や、過去のデータを統計処理した前記の関数を用いて、推定応答時間を求めているので（図１２）、推定応答時間の算出の精度を向上させることができる。
【符号の説明】
【００３５】
１      ＡＰＩ提供装置
１１    ＡＰＩ処理部（受信部、抽出部、特定部、閾値取得部、判定部、送信部、返信部）
１２    設定受付部（シナリオ記憶部、閾値記憶部）
１３    設定記憶部（シナリオ記憶部、閾値記憶部）
１４    応答時間記憶部
１５    装置状況取得部
１６    応答時間推定部
１７    応答時間推定関数算出部
１８    応答時間推定関数記憶部
１９    ＡＰＩ処理結果記憶部
５０    ＡＰＩ利用装置
１００  後段装置
【図１】
2016151780.tif 000003
【図２】
2016151780.tif 000004
【図３】
2016151780.tif 000005
【図４】
2016151780.tif 000006
【図５】
2016151780.tif 000007
【図６】
2016151780.tif 000008
【図７】
2016151780.tif 000009
【図８】
2016151780.tif 000010
【図９】
2016151780.tif 000011
【図１０】
2016151780.tif 000012
【図１１】
2016151780.tif 000013
【図１２】
2016151780.tif 000014