(57)【要約】      （修正有）【課題】ネットワークを介して提供される機能に関して注意を要する仕様変更を検知するプログラム、方法及び装置を提供する。【解決手段】変更検知方法は、ネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継するコンピュータにより実行される変更検知方法であって、上記機能に関する情報を提供する装置から上記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが最新バージョンと一致するか否かを判定する第１判定処理と、抽出したバージョンが最新バージョンと一致しない場合に、最新バージョンを利用するように改めた試用リクエストを送信し、当該リクエストに対するレスポンスに基づいて、上記リクエストが利用する機能のバージョンと最新バージョンとの互換性の有無を判定する第２判定処理とを含む。【選択図】図８
2019117465.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継するコンピュータに、
前記機能に関する情報を提供する装置から前記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが前記最新バージョンと一致するか否かを判定する第１判定処理と、
前記抽出したバージョンが前記最新バージョンと一致しない場合に、前記リクエストを前記最新バージョンに係る前記機能を利用するように改めた試用リクエストを送信し、当該試用リクエストに対するレスポンスに基づいて、前記リクエストが利用する機能のバージョンと前記最新バージョンとの互換性の有無を判定する第２判定処理と
を実行させる変更検知プログラム。
【請求項２】
前記第２判定処理において、前記リクエストに対するレスポンスと、前記試用リクエストに対する前記レスポンスとの差異に基づいて前記互換性の有無を判定する
請求項１記載の変更検知プログラム。
【請求項３】
前記第２判定処理において、前記差異が所定の例外態様に該当しない場合に、前記互換性が無いと判定する
請求項２記載の変更検知プログラム。
【請求項４】
ネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継するコンピュータにより実行される変更検知方法であって、
前記機能に関する情報を提供する装置から前記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが前記最新バージョンと一致するか否かを判定する第１判定処理と、
前記抽出したバージョンが前記最新バージョンと一致しない場合に、前記リクエストを前記最新バージョンに係る前記機能を利用するように改めた試用リクエストを送信し、当該試用リクエストに対するレスポンスに基づいて、前記リクエストが利用する機能のバージョンと前記最新バージョンとの互換性の有無を判定する第２判定処理と
を含む変更検知方法。
【請求項５】
ネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継する変更検知装置であって、
前記機能に関する情報を提供する装置から前記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが前記最新バージョンと一致するか否かを判定する第１判定部と、
前記抽出したバージョンが前記最新バージョンと一致しない場合に、前記リクエストを前記最新バージョンに係る前記機能を利用するように改めた試用リクエストを送信し、当該試用リクエストに対するレスポンスに基づいて、前記リクエストが利用する機能のバージョンと前記最新バージョンとの互換性の有無を判定する第２判定部と
を有する変更検知装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して提供される機能の仕様変更への対処を支援する技術に関する。
【背景技術】
【０００２】
第三者が提供するＷｅｂＡＰＩ（Application Programming Interface）を利用して、情報を収集し、付加的なサービスを行うことがある。
【０００３】
第三者がＷｅｂＡＰＩをバージョンアップした場合、通常バージョンアップの案内を個別に利用者に通知することはない。一般的には、ＷｅｂＡＰＩの情報を公開するサイトにおいて当該案内の記事が掲載される。
【０００４】
従って、ＷｅｂＡＰＩの利用者が当該案内の記事を見逃せば、新しいバージョンに対処する機会が遅れることになる。また、新しいバージョンにおける改変の程度によって、利用者のシステムにおける対処の要否も異なる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１３−５１６７１５号公報
【特許文献２】特表２０１１−５２５０１３号公報
【特許文献３】特開２０１３−１６４８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、一側面では、ネットワークを介して提供される機能に関して注意を要する仕様変更を検知することである。
【課題を解決するための手段】
【０００７】
一態様に係る変更検知方法は、ネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継するコンピュータにより実行される変更検知方法であって、（Ａ）上記機能に関する情報を提供する装置から上記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが最新バージョンと一致するか否かを判定する第１判定処理と、（Ｂ）抽出したバージョンが最新バージョンと一致しない場合に、上記リクエストを最新バージョンに係る上記機能を利用するように改めた試用リクエストを送信し、当該試用リクエストに対するレスポンスに基づいて、上記リクエストが利用する機能のバージョンと最新バージョンとの互換性の有無を判定する第２判定処理とを含む。
【発明の効果】
【０００８】
一側面としては、ネットワークを介して提供される機能に関して注意を要する仕様変更を検知することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、ネットワーク構成例を示す図である。
【図２】図２は、ＡＰＩ利用プログラムのモジュール構成例を示す図である。
【図３】図３は、ＷｅｂＡＰＩの利用例を示す図である。
【図４】図４は、最新バージョンの試用例を示す図である。
【図５】図５は、最新バージョンの運用例を示す図である。
【図６】図６は、提供終了に伴う障害例を示す図である。
【図７】図７は、実施の形態１におけるバージョン検証の概要を示す図である。
【図８】図８は、実施の形態１における互換性検証の概要を示す図である。
【図９Ａ】図９Ａは、中継装置のモジュール構成例を示す図である。
【図９Ｂ】図９Ｂは、互換性検証部のモジュール構成例を示す図である。
【図１０】図１０は、システムテーブルの例を示す図である。
【図１１】図１１は、識別子形式テーブルの例を示す図である。
【図１２Ａ】図１２Ａは、検証結果テーブルの第１例を示す図である。
【図１２Ｂ】図１２Ｂは、検証結果テーブルの第１例を示す図である。
【図１３】図１３は、検証結果テーブルの第２例を示す図である。
【図１４】図１４は、登録処理フローを示す図である。
【図１５】図１５は、バージョン指定方式の特定処理フローを示す図である。
【図１６】図１６は、メイン処理フローを示す図である。
【図１７】図１７は、最新バージョン特定処理フローを示す図である。
【図１８Ａ】図１８Ａは、情報公開サーバのＷｅｂページの例を示す図である。
【図１８Ｂ】図１８Ｂは、情報公開サーバのＷｅｂページの例を示す図である。
【図１９】図１９は、最新バージョン識別子の抽出処理フローを示す図である。
【図２０】図２０は、互換性検証処理フローを示す図である。
【図２１】図２１は、互換性検証処理フローを示す図である。
【図２２】図２２は、互換性検証処理フローを示す図である。
【図２３】図２３は、試用リクエスト生成処理フローを示す図である。
【図２４】図２４は、互換性判定処理フローを示す図である。
【図２５Ａ】図２５Ａは、運用レスポンス及び試用レスポンスの例を示す図である。
【図２５Ｂ】図２５Ｂは、運用レスポンス及び試用レスポンスの例を示す図である。
【図２５Ｃ】図２５Ｃは、運用レスポンス及び試用レスポンスの例を示す図である。
【図２５Ｄ】図２５Ｄは、運用レスポンス及び試用レスポンスの例を示す図である。
【図２５Ｅ】図２５Ｅは、運用レスポンス及び試用レスポンスの例を示す図である。
【図２５Ｆ】図２５Ｆは、運用レスポンス及び試用レスポンスの例を示す図である。
【図２６】図２６は、互換性検証処理フローを示す図である。
【図２７】図２７は、通知画面の例を示す図である。
【図２８】図２８は、実施の形態２におけるバージョン検証の概要を示す図である。
【図２９】図２９は、実施の形態２における互換性検証の概要を示す図である。
【図３０】図３０は、コンピュータの機能ブロック図である。
【図３１】図３１は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１に、ネットワーク構成例を示す。第１のＷｅｂＡＰＩのサービスを提供する者が使用するＡＰＩ提供システム１０１ａには、ＡＰＩ提供サーバ１０３ａ及び情報公開サーバ１０５ａが含まれている。ＡＰＩ提供サーバ１０３ａは、インターネットに接続されており、インターネットを介して第１のＷｅｂＡＰＩのサービスを提供する。情報公開サーバ１０５ａは、インターネットに接続されており、インターネットを介して第１のＷｅｂＡＰＩに関する情報を公開する。
【００１１】
第２のＷｅｂＡＰＩのサービスを提供する者が使用するＡＰＩ提供システム１０１ｂには、ＡＰＩ提供サーバ１０３ｂ及び情報公開サーバ１０５ｂが含まれている。ＡＰＩ提供サーバ１０３ｂは、インターネットに接続されており、インターネットを介して第２のＷｅｂＡＰＩのサービスを提供する。情報公開サーバ１０５ｂは、インターネットに接続されており、インターネットを介して第２のＷｅｂＡＰＩに関する情報を公開する。
【００１２】
ＡＰＩ利用サーバ１０７は、第１のＷｅｂＡＰＩ及び第２のＷｅｂＡＰＩを利用した統合的なサービスをユーザに提供する。ＡＰＩ利用サーバ１０７は、ＬＡＮ（Local Area Network）及び中継装置１０９を介してインターネットに接続している。中継装置１０９は、例えばゲートウェイ又はルーターである。
【００１３】
ユーザ端末１１１ａ乃至ｃは、インターネットを介してＡＰＩ利用サーバ１０７にアクセスして、統合的なサービスを利用する。
【００１４】
図２に、ＡＰＩ利用サーバ１０７が有するＡＰＩ利用プログラム２０１のモジュール構成例を示す。ＡＰＩ利用プログラム２０１は、ＵＲＩ（Uniform Resource Identifier）生成部２０３、ＨＴＴＰ（Hypertext Transfer Protocol）送信部２０５、ＨＴＴＰ受信部２０７及びレスポンス抽出部２０９を有している。
【００１５】
ＵＲＩ生成部２０３は、ＷｅｂＡＰＩを呼び出すためのＵＲＩを生成する。ここで、第１のＷｅｂＡＰＩを呼び出すためのＵＲＩ「ｈｔｔｐ：／／ａｐｉ．ｓｔｏｒｅ．ｃｏ．ｊｐ／ｖ１／ｘｘｘ／１００？ｋｅｙ＝１２３４＆ｃｏｄｅ＝１」の例に基づいて、ＷｅｂＡＰＩを呼び出すためのＵＲＩの構成について説明する。
【００１６】
「ｈｔｔｐ」は、スキームを示す。「ａｐｉ．ｓｔｏｒｅ．ｃｏ．ｊｐ」は、アクセス先を特定するホスト名であって、第１のＷｅｂＡＰＩを提供するＡＰＩ提供サーバ１０３ａの名前（ドメイン名）に相当する。「ｖ１／ｘｘｘ／１００」は、パス名であって、スラッシュ記号で区切られた要素を含む。この例における第１の要素「ｖ１」は、第１のＷｅｂＡＰＩのバージョン識別子に相当する。この例における第２の要素「ｘｘｘ」は、第１のＷｅｂＡＰＩにおける機能の種類に相当する。この例における第３の要素「１００」は、対象となるデータの番号に相当する。
【００１７】
ＵＲＩのパラメータ「ｋｅｙ＝１２３４」は、第１のＷｅｂＡＰＩを利用するためのキーである。第１のＷｅｂＡＰＩを利用するためのキーは、第１のＷｅｂＡＰＩを利用する装置を特定するとともに、ＷｅｂＡＰＩにおけるモードを指定するために用いられる。この例では、真正のデータに基づいて第１のＷｅｂＡＰＩを実際に利用する運用モードと、疑似的なデータに基づいて第１のＷｅｂＡＰＩの動作を確認するために利用される試用モードとを区別して、１つの利用装置に対して、２種類のキーが割り当てられているものとする。尚、「ｋｅｙ＝１２３４」は、ＡＰＩ利用サーバ１０７が運用モードを指定する場合のキーである。以下では、運用モードを指定する場合のキーを運用キーという。他方、試用モードを指定する場合のキーを試用キーという。
【００１８】
ＵＲＩのパラメータ「ｃｏｄｅ＝１」は、第１のＷｅｂＡＰＩの当該機能における入力パラメータに相当する。
【００１９】
尚、パス名及びＵＲＩのパラメータに関する定義は、任意であって、一般的にＷｅｂＡＰＩによって異なる。但し、この例では、ＷｅｂＡＰＩのバージョン識別子は、パス名に含まれるいずれかの要素によって特定されるものとする。
【００２０】
ＨＴＴＰ送信部２０５は、ＷｅｂＡＰＩを呼び出すためのＵＲＩをＨＴＴＰリクエストに変換して、中継装置１０９を介してインターネットに送信する。ＵＲＩをＨＴＴＰリクエストに変換する処理は、従来技術による。
【００２１】
ＨＴＴＰ受信部２０７は、送信したＨＴＴＰリクエストに対するＨＴＴＰレスポンスを受信する。レスポンス抽出部２０９は、受信したＨＴＴＰレスポンスからステータス及びレスポンスの内容を抽出する。レスポンスの内容は、ＷｅｂＡＰＩからのリターンデータに相当する。そして、レスポンス抽出部２０９は、ステータス及びレスポンスの内容に基づいて、統合的サービスを実現するための処理を行う。
【００２２】
続いて、複数のＷｅｂＡＰＩを利用する一般的な態様について説明する。図３に、ＡＰＩ利用サーバ１０７が、ＡＰＩ提供システム１０１ａが提供するバージョン：ｖ１の第１のＷｅｂＡＰＩを運用モードで利用し、更にＡＰＩ提供システム１０１ｂが提供するバージョン：２０１５−０９−０１の第２のＷｅｂＡＰＩを運用モードで利用する例を示す。尚、第２のＷｅｂＡＰＩは、バージョンを日付形式の識別子で区別している。
【００２３】
この例で、ＡＰＩ利用サーバ１０７は、ＡＰＩ提供サーバ１０３ａの名前、バージョン識別子：ｖ１及びキー：１２３４が格納されたＨＴＴＰリクエストを送信する（Ｓ３０１）。
【００２４】
当該ＨＴＴＰリクエストを受信したＡＰＩ提供サーバ１０３ａは、運用モードでバージョン：ｖ１に係る第１のＷｅｂＡＰＩの処理を行い、その処理によって得られたリターンデータとステータス：正常終了とが格納されたＨＴＴＰレスポンスを、ＨＴＴＰリクエストの送信元であるＡＰＩ利用サーバ１０７へ送信する（Ｓ３０３）。
【００２５】
また、ＡＰＩ利用サーバ１０７は、ＡＰＩ提供サーバ１０３ｂの名前、バージョン識別子：２０１５−０９−０１及びキー：ａｂｃｄが格納されたＨＴＴＰリクエストを送信する（Ｓ３０５）。「ａｂｃｄ」は、ＡＰＩ利用サーバ１０７が運用モードを指定する場合のキーである。
【００２６】
当該ＨＴＴＰリクエストを受信したＡＰＩ提供サーバ１０３ｂは、運用モードでバージョン：２０１５−０９−０１に係る第２のＷｅｂＡＰＩの処理を行い、その処理によって得られたリターンデータとステータス：正常終了とが格納されたＨＴＴＰレスポンスを、ＨＴＴＰリクエストの送信元であるＡＰＩ利用サーバ１０７へ送信する（Ｓ３０７）。以上の手順によって、ＡＰＩ利用サーバ１０７は正常に動作する。
【００２７】
次に、一方のＷｅｂＡＰＩがバージョンアップされることを想定する。例えば、第１のＷｅｂＡＰＩがバージョンアップされる場合には、新しいバージョン：ｖ２に関する情報を含む記事が、情報公開サーバ１０５ａのＷｅｂページに掲載される。ＡＰＩ利用サーバ１０７の管理者は、情報公開サーバ１０５ａのＷｅｂページを見て、第１のＷｅｂＡＰＩがバージョンアップされたことを知る。そして、管理者は、新しいバージョン：ｖ２の第１のＷｅｂＡＰＩに関する情報を確認して対処する。
【００２８】
管理者は、新しいバージョン：ｖ２の第１のＷｅｂＡＰＩに関する動作を確かめるために、図４に示すように、試用モードで新しいバージョン：ｖ２の第１のＷｅｂＡＰＩを呼び出すテストを行う。
【００２９】
この例で、ＡＰＩ利用サーバ１０７は、ＡＰＩ提供サーバ１０３ａの名前、バージョン識別子：ｖ２及びキー：４３２１が格納されたＨＴＴＰリクエストを送信する（Ｓ４０１）。「４３２１」は、ＡＰＩ利用サーバ１０７が試用モードを指定する場合のキーである。
【００３０】
当該ＨＴＴＰリクエストを受信したＡＰＩ提供サーバ１０３ａは、試用モードでバージョン：ｖ２の第１のＷｅｂＡＰＩの処理を行う。例えばバージョン：ｖ２の第１のＷｅｂＡＰＩがバージョン：ｖ１の第１のＷｅｂＡＰＩと互換性が無いにも関わらず、元のＡＰＩ利用プログラム２０１をそのまま動作させると、当該ＷｅｂＡＰＩの処理が失敗することがある。その場合には、ステータス：エラーが格納されたＨＴＴＰレスポンスが、ＨＴＴＰリクエストの送信元であるＡＰＩ利用サーバ１０７へ送信される（Ｓ４０３）。
【００３１】
バージョン：ｖ２の第１のＷｅｂＡＰＩを利用するようにＡＰＩ利用プログラム２０１が改変された場合の動作について、図５を用いて説明する。
【００３２】
この例で、ＡＰＩ利用サーバ１０７は、ＡＰＩ提供サーバ１０３ａの名前、バージョン識別子：ｖ２及びキー：１２３４が格納されたＨＴＴＰリクエストを送信する（Ｓ５０１）。
【００３３】
当該ＨＴＴＰリクエストを受信したＡＰＩ提供サーバ１０３ａは、運用モードでバージョン：ｖ２の第１のＷｅｂＡＰＩの処理を行い、その処理によって得られたリターンデータとステータス：正常終了とが格納されたＨＴＴＰレスポンスを、ＨＴＴＰリクエストの送信元であるＡＰＩ利用サーバ１０７へ送信する（Ｓ５０３）。
【００３４】
また、図３に示したＳ３０５の場合と同様に、ＡＰＩ利用サーバ１０７は、ＡＰＩ提供サーバ１０３ｂの名前、バージョン識別子：２０１５−０９−０１及びキー：ａｂｃｄが格納されたＨＴＴＰリクエストを送信する（Ｓ５０５）。
【００３５】
当該ＨＴＴＰリクエストを受信したＡＰＩ提供サーバ１０３ｂは、図３に示したＳ３０５の場合と同様に、運用モードでバージョン：２０１５−０９−０１の第２のＷｅｂＡＰＩの処理を行い、その処理によって得られたリターンデータとステータス：正常終了とが格納されたＨＴＴＰレスポンスを、ＨＴＴＰリクエストの送信元であるＡＰＩ利用サーバ１０７へ送信する（Ｓ５０７）。このようにバージョンアップに対応すれば、ＡＰＩ利用サーバ１０７は正常に動作する。
【００３６】
但し、バージョンアップに対応せずに放置し、ＡＰＩ利用サーバ１０７において利用中のバージョンに係るＷｅｂＡＰＩの提供が終了すると、ＡＰＩ利用サーバ１０７における障害を招くことがある。旧バージョンのＷｅｂＡＰＩの提供が終了した場合の例を、図６に示す。
【００３７】
この例で、ＡＰＩ利用サーバ１０７は、図３に示したＳ３０１の場合と同様に、ＡＰＩ提供サーバ１０３ａの名前、バージョン識別子：ｖ１及びキー：１２３４が格納されたＨＴＴＰリクエストを送信する（Ｓ６０１）。
【００３８】
ＡＰＩ提供サーバ１０３ａが当該ＨＴＴＰリクエストを受信した時点で、バージョン：ｖ１の第１のＷｅｂＡＰＩの提供が終了していれば、ＡＰＩ提供サーバ１０３ａは、バージョン：ｖ１の第１のＷｅｂＡＰＩの処理を行わない。その場合には、ステータス：エラーが格納されたＨＴＴＰレスポンスが、ＨＴＴＰリクエストの送信元であるＡＰＩ利用サーバ１０７へ送信される（Ｓ６０３）。
【００３９】
その結果、ＡＰＩ利用サーバ１０７のＡＰＩ利用プログラム２０１が適正に動作しなくなる。尚、Ｓ６０５及びＳ６０７の手順は、図３に示したＳ３０５及びＳ３０７の場合と同様である。
【００４０】
本実施の形態では、ＷｅｂＡＰＩを利用するシステムの管理者における注意負担を軽減するために、中継装置１０９においてＷｅｂＡＰＩにおけるバージョンアップを監視する。
【００４１】
図７に、実施の形態１におけるバージョン検証の概要を示す。ＡＰＩ利用サーバ１０７の動作は、図３の場合と同様である。
【００４２】
図３に示したＳ３０１で説明したＨＴＴＰリクエストは、中継装置１０９を介してインターネットに送信される（Ｓ７０１，Ｓ７０３）。また、図３に示したＳ３０３で説明したＨＴＴＰレスポンスは、中継装置１０９を介してインターネットから受信される（Ｓ７０５，Ｓ７０７）。この例で、中継装置１０９は、中継するＨＴＴＰリクエストから第１のＷｅｂＡＰＩのバージョンを抽出し、運用バージョンとして記憶する。また、情報公開サーバ１０５ａにアクセスして（Ｓ７０９）、ＷｅｂページのＨＴＭＬデータを取得し（Ｓ７１１）、当該データから最新バージョンを抽出する。そして、運用バージョンと最新バージョンとを比較して、新しいバージョンのＷｅｂＡＰＩの提供が開始されたか否かを検証する。
【００４３】
また、本実施の形態では、新しいバージョンのＷｅｂＡＰＩについて、旧バージョンのＷｅｂＡＰＩと互換性が有るか否かも検証する。
【００４４】
図８に、実施の形態１における互換性検証の概要を示す。ＡＰＩ利用サーバ１０７の動作は、図３の場合と同様である。
【００４５】
図３のＳ３０１で説明したＨＴＴＰリクエストは、中継装置１０９を介してインターネットに送信される（Ｓ８０１，Ｓ８０３）。中継装置１０９は、中継するＨＴＴＰリクエストからリクエストの内容を抽出し、保持する。
【００４６】
また、図３のＳ３０３で説明したＨＴＴＰレスポンスは、中継装置１０９を介してインターネットから受信される（Ｓ８０５，Ｓ８０７）。中継装置１０９は、中継するＨＴＴＰレスポンスからレスポンスの内容を抽出し、保持する。
【００４７】
更に、中継装置１０９は、保持しているＨＴＴＰリクエスト（以下、運用リクエストという。）に格納されている旧バージョンを最新バージョンに改め、更に運用キーを試用キーに改めて試用のＨＴＴＰリクエスト（以下、試用リクエストという。）を生成する。中継装置１０９は、この試用リクエストをインターネットを介して送信する（Ｓ８０９）。
【００４８】
当該ＨＴＴＰリクエストを受信したＡＰＩ提供サーバ１０３ａは、試用モードでバージョン：ｖ２の第１のＷｅｂＡＰＩの処理を行い、その処理によって得られたリターンデータとステータスとが格納されたＨＴＴＰレスポンスを、ＨＴＴＰリクエストの送信元であるＡＰＩ利用サーバ１０７へ送信する（Ｓ８１１）。
【００４９】
ステータスがエラーである場合には、バージョン：ｖ２の第１のＷｅｂＡＰＩの処理が失敗したことを意味する。従って、中継装置１０９は、最新バージョンの第１のＷｅｂＡＰＩと旧バージョンの第１のＷｅｂＡＰＩとは互換性が無いと判定する。
【００５０】
また、ステータスが正常終了であっても、運用レスポンスの内容と試用レスポンスの内容とが異なれば、中継装置１０９は、互換性が無いと判定する。但し、差異が所定の態様である場合には、互換性が有ると判定することもある。当該例外的判断については、後述する。
【００５１】
そして、中継装置１０９は、第１のＷｅｂＡＰＩにつき、互換性が無い最新バージョンが検出された旨を通知する画面を、中継装置１０９の表示装置に出力する。
【００５２】
このようにすれば、ＷｅｂＡＰＩの最新バージョンへ対処する契機を、当該ＷｅｂＡＰＩを利用するシステムの管理者に提供できる。以上で本実施の形態における概要の説明を終える。
【００５３】
以下、中継装置１０９の動作について説明する。図９Ａに、中継装置１０９のモジュール構成例を示す。中継装置１０９は、登録部９０１、メッセージ転送部９１１及びメイン処理部９２１を有する。
【００５４】
登録部９０１は、ＡＰＩ利用サーバ１０７で利用するＡＰＩ提供システム１０１に関する所定のデータを登録する。登録部９０１は、受付部９０３及び方式特定部９０５を有する。受付部９０３は、ユーザの操作によって各種データを受け付ける。方式特定部９０５は、バージョン指定方式の特定処理を実行する。バージョン指定方式の特定処理については、図１５を用いて後述する。
【００５５】
メッセージ転送部９１１は、従来技術に従ってメッセージの転送を行う。メッセージ転送部９１１は、第１メッセージ受信部９１３、第１メッセージ送信部９１５、第２メッセージ受信部９１７及び第２メッセージ送信部９１９を有する。第１メッセージ受信部９１３は、ＬＡＮからメッセージを受信する。第１メッセージ送信部９１５は、ＬＡＮから受信したメッセージをインターネットへ送信する。第２メッセージ受信部９１７は、インターネットからメッセージを受信する。第２メッセージ送信部９１９は、インターネットから受信したメッセージをＬＡＮへ送信する。
【００５６】
メイン処理部９２１は、メイン処理を実行する。メイン処理部９２１は、待機部９２３、最新バージョン特定部９２５及び互換性検証部９３１を有する。待機部９２３は、所定のタイミングに至るまで待機する処理を行う。最新バージョン特定部９２５は、最新バージョン特定処理を実行する。最新バージョン特定処理については、図１７を用いて後述する。最新バージョン特定部９２５は、サンプルリクエスト取得部９２７及び識別子抽出部９２９を有する。サンプルリクエスト取得部９２７は、サンプルとなるＨＴＴＰリクエストの複製データを取得する。識別子抽出部９２９は、最新バージョン識別子の抽出処理を実行する。最新バージョン識別子の抽出処理については、図１９を用いて後述する。互換性検証部９３１は、互換性検証処理を実行する。互換性検証処理については、図２０乃至図２２及び図２６を用いて後述する。
【００５７】
図９Ｂに、互換性検証部９３１のモジュール構成例を示す。互換性検証部９３１は、運用リクエスト取得部９５１、運用リクエスト抽出部９５３、運用レスポンス取得部９５５、運用レスポンス抽出部９５７、バージョン判定部９５９、試用リクエスト生成部９６１、重複判定部９６３、試用リクエスト送信部９６５、試用レスポンス受信部９６７、試用レスポンス抽出部９６９、互換性判定部９７１、画面生成部９７３及び画面出力部９７５を有する。
【００５８】
運用リクエスト取得部９５１は、中継するＨＴＴＰリクエストの複製データを取得する。運用リクエスト抽出部９５３は、運用リクエストから各種データを抽出する。運用レスポンス取得部９５５は、運用リクエストに対するＨＴＴＰレスポンス（運用レスポンスという。）を取得する。運用レスポンス抽出部９５７は、運用レスポンスから各種データを抽出する。バージョン判定部９５９は、運用リクエストが利用しているＷｅｂＡＰＩのバージョンが最新バージョンと一致するか否かを判定する。運用リクエストが利用しているＷｅｂＡＰＩのバージョンは、運用バージョンである。
【００５９】
試用リクエスト生成部９６１は、運用リクエストに基づいて、最新バージョンのＷｅｂＡＰＩを試用モードで利用するためのリクエスト（試用リクエスト）を生成する。重複判定部９６３は、生成された試用リクエストが、既に送信した試用リクエストと重複しているか否かを判定する。試用リクエスト送信部９６５は、試用リクエストをインターネットへ送信する。試用レスポンス受信部９６７は、インターネットから試用リクエストに対応するＨＴＴＰレスポンス（試用レスポンス）を受信する。試用レスポンス抽出部９６９は、試用レスポンスから各種データを抽出する。互換性判定部９７１は、最新バージョンに係るＷｅｂＡＰＩと運用バージョンに係るＷｅｂＡＰＩとの互換性の有無を判定する。画面生成部９７３は、通知画面を生成する。画面出力部９７５は、通知画面を出力する。
【００６０】
図９Ａの説明に戻る。中継装置１０９は、システムテーブル記憶部９４１、識別子形式記憶部９４３及び検証結果記憶部９４５を有する。システムテーブル記憶部９４１は、システムテーブルを記憶する。システムテーブルについては、図１０を用いて後述する。識別子形式記憶部９４３は、予め識別子形式テーブルを記憶しておく。識別子形式テーブルについては、図１１を用いて後述する。検証結果記憶部９４５は、検証結果テーブルを記憶する。検証結果テーブルについては、図１２Ａ、図１２Ｂ及び図１３を用いて後述する。
【００６１】
上述した登録部９０１、受付部９０３、方式特定部９０５、メッセージ転送部９１１、第１メッセージ受信部９１３、第１メッセージ送信部９１５、第２メッセージ受信部９１７、第２メッセージ送信部９１９、メイン処理部９２１、待機部９２３、最新バージョン特定部９２５、サンプルリクエスト取得部９２７、識別子抽出部９２９及び互換性検証部９３１は、ハードウエア資源（例えば、図３０又は図３１）と、以下で述べる処理をＣＰＵ（Central Processing Unit）３００３、３１０３に実行させるプログラムとを用いて実現される。
【００６２】
上述した運用リクエスト取得部９５１、運用リクエスト抽出部９５３、運用レスポンス取得部９５５、運用レスポンス抽出部９５７、バージョン判定部９５９、試用リクエスト生成部９６１、重複判定部９６３、試用リクエスト送信部９６５、試用レスポンス受信部９６７、試用レスポンス抽出部９６９、互換性判定部９７１、画面生成部９７３及び画面出力部９７５ハードウエア資源（例えば、図３０又は図３１）と、以下で述べる処理をＣＰＵ３００３、３１０３に実行させるプログラムとを用いて実現される。
【００６３】
上述したシステムテーブル記憶部９４１、識別子形式記憶部９４３及び検証結果記憶部９４５、は、ハードウエア資源（例えば、図３０又は図３１）を用いて実現される。
【００６４】
図１０に、システムテーブルの例を示す。この例におけるシステムテーブルは、ＡＰＩ提供システム１０１に対応するレコード（以下、システムレコードという。）を有している。システムレコードは、システムＩＤが設定されるフィールドと、ＡＰＩ提供サーバ名が設定されるフィールドと、情報公開サーバ名が設定されるフィールドと、試用キーが設定されるフィールドと、バージョン指定方式のフィールドと、運用バージョンが設定されるフィールドと、最新バージョンが設定されるフィールドとを有している。
【００６５】
システムＩＤは、ＡＰＩ提供システム１０１を識別する。ＡＰＩ提供サーバ名は、当該ＡＰＩ提供システム１０１に含まれるＡＰＩ提供サーバ１０３の名前である。情報公開サーバ名は、当該ＡＰＩ提供システム１０１に含まれる情報公開サーバ１０５の名前である。試用キーは、中継装置１０９において、当該ＡＰＩ提供システム１０１が提供するＷｅｂＡＰＩを試用モードで利用する場合に用いられるキーである。
【００６６】
バージョン指定方式は、ＵＲＩに含まれるパス名においてバージョンを指定する方式である。バージョン指定方式のフィールドは、要素番号が設定されるフィールドと、識別子形式ＩＤが設定されるフィールドとを有している。要素番号は、ＵＲＩに含まれるパス名においてバージョン識別子に相当する要素の順番を特定する。識別子形式ＩＤは、バージョン識別子の形式を特定する。バージョン識別子の形式については、図１１を用いて後述する。
【００６７】
運用バージョンは、ＡＰＩ利用プログラム２０１が運用モードで利用しているＷｅｂＡＰＩのバージョンである。最新バージョンは、ＡＰＩ提供システム１０１が提供しているＷｅｂＡＰＩにおける最新のバージョンである。
【００６８】
図１１に、識別子形式テーブルの例を示す。この例における識別子形式テーブルは、バージョン識別子の形式に対応するレコード（以下、識別子形式レコードという。）を有している。識別子形式レコードは、識別子形式ＩＤが設定されるフィールドと、バージョン識別子の形式が設定されるフィールドとを有している。
【００６９】
識別子形式ＩＤは、バージョン識別子の形式を識別する。バージョン識別子の形式は、バージョン識別子の正規表現である。
【００７０】
図１２Ａ及び図１２Ｂに、検証結果テーブルの第１例を示す。第１例における検証結果は、１つのリクエストに関する検証結果のレコード（以下、検証結果レコードという。）を有している。検証結果レコードは、運用バージョンが設定されるフィールドと、運用リクエストの内容のフィールドと、運用レスポンスの内容が設定されるフィールドと、最新バージョンが設定されるフィールドと、試用リクエストの内容のフィールドと、試用レスポンスの内容が設定されるフィールドと、ステータスが設定されるフィールドと、互換性が設定されるフィールドとを有している。
【００７１】
運用リクエストの内容は、運用モードによって旧バージョンのＷｅｂＡＰＩを利用する場合に送られるＨＴＴＰリクエストの元となるＵＲＩを特定する。この例における運用リクエストの内容のフィールドは、ホスト名が設定されるフィールドと、パス名が設定されるフィールドと、第１パラメータ名が設定されるフィールドと、第１値が設定されるフィールドと、第２パラメータ名が設定されるフィールドと、第２値が設定されるフィールドとを有している。第１値は、第１パラメータの値である。第２値は、第２パラメータの値である。第３パラメータ以降については、第１パラメータ及び第１パラメータの場合と同様である。
【００７２】
運用レスポンスの内容は、運用リクエストに対応するＨＴＴＰレスポンスに含まれる旧バージョンのＷｅｂＡＰＩの返却データに相当する。
【００７３】
試用リクエストの内容は、試用モードによって最新バージョンのＷｅｂＡＰＩを利用する場合に送られるＨＴＴＰリクエストの元となるＵＲＩを特定する。この例における試用リクエストの内容のフィールドは、運用リクエストの内容のフィールドと同様である。
【００７４】
試用レスポンスの内容は、試用リクエストに対応するＨＴＴＰレスポンスに含まれる最新バージョンのＷｅｂＡＰＩの返却データに相当する。
【００７５】
ステータスは、試用レスポンスにおけるステータスである。ＷｅｂＡＰＩが正常に動作した場合には、ステータスは正常終了のコードである。
【００７６】
互換性は、最新バージョンのＷｅｂＡＰＩと、運用モードで利用している旧バージョンのＷｅｂＡＰＩとの互換性である。
【００７７】
図１３に、検証結果テーブルの第２例を示す。第２例における検証結果は、第１例の場合と同様に、検証結果レコードを有している。検証結果レコードは、第１例の場合と同様に、運用バージョンが設定されるフィールドと、運用リクエストの内容のフィールドと、運用レスポンスの内容が設定されるフィールドと、最新バージョンが設定されるフィールドと、試用リクエストの内容のフィールドと、試用レスポンスの内容が設定されるフィールドと、ステータスが設定されるフィールドと、互換性が設定されるフィールドとを有している。
【００７８】
但し、運用リクエストの内容は、ＵＲＩの形式で設定される。また、試用リクエストの内容は、ＵＲＩの形式で設定される。その他は、第１例の場合と同様である。上述した第１例と第２例のいずれを用いるようにしてもよい。
【００７９】
続いて、登録部９０１における登録処理について説明する。中継装置１０９及びＡＰＩ利用サーバ１０７の管理者は、予めＡＰＩ利用サーバ１０７で利用するＡＰＩ提供システム１０１に関する所定のデータを中継装置１０９に登録しておくものとする。
【００８０】
図１４に、登録処理フローを示す。受付部９０３は、管理者の操作によってＡＰＩ提供システム１０１に関する登録の指示を受け付けたか否かによって処理を分岐させる（Ｓ１４０１）。
【００８１】
ＡＰＩ提供システム１０１に関する登録の指示を受け付けた場合には、受付部９０３は、システムテーブルにシステムレコードを１つ追加し、当該システムレコードに新しいシステムＩＤを設定する（Ｓ１４０３）。
【００８２】
受付部９０３は、管理者の操作によって入力されたＡＰＩ提供サーバ名及び情報公開サーバ名を受け付ける（Ｓ１４０５）。そして、受付部９０３は、当該ＡＰＩ提供サーバ名及び当該情報公開サーバ名を、当該新しいシステムレコードに設定する（Ｓ１４０７）。
【００８３】
受付部９０３は、管理者の操作によって入力された試用キーを受け付ける（Ｓ１４０９）。管理者は、中継装置１０９が検証のために用いる試用キーを、予めＡＰＩ提供システム１０１から得ておくものとする。そして、受付部９０３は、当該試用キーを、当該新しいシステムレコードに設定する（Ｓ１４１１）。
【００８４】
方式特定部９０５は、バージョン指定方式の特定処理を実行する（Ｓ１４１３）。方式特定部９０５は、バージョン指定方式の特定処理において、ＵＲＩに含まれるパス名においてバージョンを指定する方式を特定する。パス名においてバージョンを指定する方式は、各ＷｅｂＡＰＩによって独自に取り決められている。
【００８５】
図１５に、バージョン指定方式の特定処理フローを示す。方式特定部９０５は、Ｓ１４０５で受け付けたＡＰＩ提供サーバ名が、アクセス先のホスト名に設定されているＨＴＴＰリクエストの複製データを取得する（Ｓ１５０１）。そして、方式特定部９０５は、複製されたＨＴＴＰリクエストに設定されているパス名を読む（Ｓ１５０３）。
【００８６】
方式特定部９０５は、パス名に含まれる要素を１つ特定する（Ｓ１５０５）。パス名の要素は、スラッシュ記号によって区切られた部分である。
【００８７】
方式特定部９０５は、識別子形式テーブルの識別子形式レコードを１つ特定する（Ｓ１５０７）。方式特定部９０５は、Ｓ１５０５で特定した要素が、当該識別子形式レコードに設定されているバージョン識別子の形式に合致するか否かを判定する（Ｓ１５０９）。当該要素が、当該バージョン識別子の形式に合致すると判定した場合には、方式特定部９０５は、図１４のＳ１４０３において追加されたシステムレコードに、当該要素の番号を設定する（Ｓ１５１１）。更に、方式特定部９０５は、当該システムレコードに、当該識別子形式のＩＤを設定する（Ｓ１５１３）。そして、バージョン指定方式の特定処理を終え、呼び出し元の登録処理に復帰する。
【００８８】
一方、Ｓ１５０５で特定した要素が、当該識別子形式レコードに設定されているバージョン識別子の形式に合致しないと判定した場合には、方式特定部９０５は、Ｓ１５０７において未特定の識別子形式レコードがあるか否かを判定する（Ｓ１５１５）。未特定の識別子形式レコードがあると判定した場合には、Ｓ１５０７に示した処理に戻って、上述した処理を繰り返す。
【００８９】
一方、未特定の識別子形式レコードがないと判定した場合には、方式特定部９０５は、Ｓ１５０５において未特定の要素があるか否かを判定する（Ｓ１５１７）。未特定の要素があると判定した場合には、Ｓ１５０５に示した処理に戻って、上述した処理を繰り返す。
【００９０】
一方、未特定の要素がないと判定した場合には、方式特定部９０５は、エラーを通知する（Ｓ１５１９）。エラーとなったＡＰＩ提供システム１０１は、例えば評価の対象から除外する。バージョン指定方式の特定処理を終えると、呼び出し元の登録処理に復帰する。
【００９１】
図１４の説明に戻る。Ｓ１４１３におけるバージョン指定方式の特定処理を終えると、Ｓ１４０１に示した処理に戻って、上述した処理を繰り返す。
【００９２】
Ｓ１４０１において、ＡＰＩ提供システム１０１に関する登録の指示を受け付けていない場合には、受付部９０３は、管理者の操作による終了指示を受け付けたか否かを判定する（Ｓ１４１５）。管理者の操作による終了指示を受け付けていない場合には、Ｓ１４０１に示した処理に戻って、上述した処理を繰り返す。一方、管理者の操作による終了指示を受け付けた場合には、登録処理を終える。
【００９３】
続いて、メイン処理部９２１によるメイン処理について説明する。図１６に、メイン処理フローを示す。メイン処理では、所定のタイミング（例えば、毎日の定時のような周期的タイミング）で、各ＡＰＩ提供システム１０１に関する検証を行う。そのため、待機部９２３は、所定のタイミングを待つ（Ｓ１６０１）。
【００９４】
最新バージョン特定部９２５は、最新バージョン特定処理を実行する（Ｓ１６０３）。最新バージョン特定部９２５は、最新バージョン特定処理において、各ＡＰＩ提供システム１０１における最新バージョンを特定する。
【００９５】
図１７に、最新バージョン特定処理フローを示す。最新バージョン特定部９２５は、各ＡＰＩ提供システム１０１に対応する処理済みフラグをＯＦＦに設定する（Ｓ１７０１）。処理済みフラグは、最新バージョンを特定し終えた状態であるか否かを区別するための内部パラメータである。
【００９６】
サンプルリクエスト取得部９２７は、中継するＨＴＴＰリクエスト、つまり第１メッセージ受信部９１３で受信したＨＴＴＰリクエストの複製データを取得する（Ｓ１７０３）。
【００９７】
最新バージョン特定部９２５は、複製されたＨＴＴＰリクエストからＡＰＩ提供サーバ名を抽出する（Ｓ１７０５）。最新バージョン特定部９２５は、抽出したＡＰＩ提供サーバ名に対応する処理済みフラグがＯＦＦであるか否かを判定する（Ｓ１７０７）。
【００９８】
ＡＰＩ提供サーバ名に対応する処理済みフラグがＯＦＦでないと判定した場合、つまり当該処理済みフラグがＯＮである場合には、Ｓ１７０３に示した処理に戻って、上述した処理を繰り返す。
【００９９】
ＡＰＩ提供サーバ名に対応する処理済みフラグがＯＦＦであると判定した場合には、最新バージョン特定部９２５は、システムテーブルにおいて、当該ＡＰＩ提供サーバ名が設定されているシステムレコードを特定する（Ｓ１７０９）。
【０１００】
識別子抽出部９２９は、最新バージョン識別子の抽出処理を実行する（Ｓ１７１１）。識別子抽出部９２９は、最新バージョン識別子の抽出処理において、情報公開サーバ１０５のＷｅｂページからＷｅｂＡＰＩの最新バージョンの識別子を抽出する。
【０１０１】
最新バージョン識別子の抽出処理について説明する前に、情報公開サーバ１０５のＷｅｂページについて述べる。図１８Ａ及び図１８Ｂに、情報公開サーバ１０５ａのＷｅｂページの例を示す。図１８Ａは、バージョン：ｖ１に関する案内の記事が掲載されたＷｅｂページの一部を示している。この例では、バージョン：ｖ１に係る第１のＷｅｂＡＰＩを利用するためのＵＲＩ（パラメータを除く。）が示されている。
【０１０２】
下段に、ＷｅｂページのＨＴＭＬ（HyperText Markup Language ）データにおける当該ＵＲＩに関する記述部分を示す。このように、当該ＵＲＬのコード列が記述されている。
【０１０３】
図１８Ｂは、バージョン：ｖ２に関する案内の記事が掲載されたＷｅｂページの一部を示している。この例では、バージョン：ｖ２に係る第１のＷｅｂＡＰＩを利用するためのＵＲＩ（パラメータを除く。）が示されている。
【０１０４】
下段に、ＷｅｂページのＨＴＭＬデータにおける当該ＵＲＩに関する記述部分を示す。このように、当該ＵＲＬのコード列が記述されている。
【０１０５】
図１９に、最新バージョン識別子の抽出処理フローを示す。識別子抽出部９２９は、Ｓ１７０９において特定したシステムレコードに設定されている情報公開サーバ名に基づいて、情報公開サーバ１０５からＷｅｂページのＨＴＭＬデータを取得する（Ｓ１９０１）。情報公開サーバ１０５が複数のＷｅｂページを提供している場合には、各ＷｅｂページのＨＴＭＬデータを取得する。例えば、Ｗｅｂページの構成を解析するツールを使うようにしてもよい。
【０１０６】
識別子抽出部９２９は、識別子形式テーブルを参照して、Ｓ１７０９において特定したシステムレコードに設定されている識別子形式ＩＤに対応するバージョン識別子の形式を特定する。更に、識別子抽出部９２９は、取得したＨＴＭＬデータにおいて、図１７のＳ１７０５で抽出したＡＰＩ提供サーバ名及び当該形式のバージョン識別子を含む行を探索する（Ｓ１９０３）。
【０１０７】
そして、識別子抽出部９２９は、該当する行からバージョン識別子を抽出する（Ｓ１９０５）。該当する行が複数ある場合には、各行からバージョン識別子を抽出する。そして、複数のバージョン識別子を抽出した場合には、識別子抽出部９２９は、数値が最も大きいバージョン識別子を特定する（Ｓ１９０７）。日付形式のバージョン識別子の場合には、識別子抽出部９２９は、最も新しい日付に相当するバージョン識別子を特定する。最新バージョン識別子の抽出処理を終えると、呼び出し元の最新バージョン特定処理に復帰する。
【０１０８】
図１７の説明に戻る。識別子抽出部９２９は、最新バージョン識別子の抽出処理において抽出した最新バージョン識別子を、Ｓ１７０９において特定したシステムレコードにおける最新バージョンのフィ−ルドに設定する（Ｓ１７１３）。
【０１０９】
最新バージョン特定部９２５は、図１７のＳ１７０５で抽出したＡＰＩ提供サーバ名に対応する処理済みフラグをＯＮに設定する（Ｓ１７１５）。そして、最新バージョン特定部９２５は、未処理のＡＰＩ提供システム１０１があるか否かを判定する（Ｓ１７１７）。具体的には、各ＡＰＩ提供システム１０１に対応する処理済みフラグのうち、ＯＦＦであるフラグがあるか否かを判定する。ＯＦＦである処理済みフラグがある場合には、未処理のＡＰＩ提供システム１０１があると判定する。一方、ＯＦＦである処理済みフラグがない場合には、未処理のＡＰＩ提供システム１０１がないと判定する。
【０１１０】
未処理のＡＰＩ提供システム１０１があると判定した場合には、Ｓ１７０３に示した処理に戻って、上述した処理を繰り返す。一方、未処理のＡＰＩ提供システム１０１がないと判定した場合には、最新バージョン特定処理を終え、呼び出し元のメイン処理に復帰する。
【０１１１】
図１６の説明に戻る。最新バージョン特定処理を終えると、互換性検証部９３１は、互換性検証処理を実行する（Ｓ１６０５）。互換性検証部９３１は、互換性検証処理において、ＡＰＩ利用プログラム２０１が運用モードで利用しているバージョンが最新バージョンでない場合に、最新バージョンのＷｅｂＡＰＩと、運用モードで利用している旧バージョンのＷｅｂＡＰＩとの互換性を検証する。尚、最新バージョン特定処理と互換性検証処理とを続けて行わなくてもよい。最新バージョン特定処理とは別のタイミングで、互換性検証処理を起動するようにしてもよい。
【０１１２】
図２０に、互換性検証処理フローを示す。運用リクエスト取得部９５１は、中継するＨＴＴＰリクエスト、つまり第１メッセージ受信部９１３で受信したＨＴＴＰリクエストの複製データを取得する（Ｓ２００１）。運用リクエスト抽出部９５３は、複製されたＨＴＴＰリクエストからＡＰＩ提供サーバ名を抽出する（Ｓ２００３）。そして、運用リクエスト抽出部９５３は、システムテーブルにおいて、抽出したＡＰＩ提供サーバ名が設定されているシステムレコードを特定する（Ｓ２００５）。
【０１１３】
運用リクエスト抽出部９５３は、取得したＨＴＴＰリクエストからリクエストの内容を抽出する（Ｓ２００７）。リクエストの内容は、基礎となるＵＲＩにおけるホスト名、パス名及びパラメータ名と当該パラメータの値の組に相当する。
【０１１４】
運用リクエスト抽出部９５３は、検証結果テーブルに検証結果レコードを１つ追加する（Ｓ２００９）。運用リクエスト抽出部９５３は、追加した検証結果レコードに、リクエストの内容を設定する（Ｓ２０１１）。更に、運用リクエスト抽出部９５３は、パス名からバージョン識別子を抽出し、追加した検証結果レコードにおける運用バージョンのフィールドに設定する（Ｓ２０１３）。端子Ｂを介して、図２１に示したＳ２１０１の処理に移る。
【０１１５】
図２１の説明に移る。運用レスポンス取得部９５５は、Ｓ２００１で取得したＨＴＴＰリクエストに対するレスポンスの複製データを取得する（Ｓ２１０１）。運用レスポンス抽出部９５７は、複製されたＨＴＴＰレスポンスからレスポンス内容を抽出する（Ｓ２１０３）。レスポンス内容は、ＨＴＴＰレスポンスのボディに格納されているテキストである。運用レスポンス抽出部９５７は、Ｓ２００９において追加した検証結果レコードに、抽出したレスポンス内容を設定する（Ｓ２１０５）。
【０１１６】
バージョン判定部９５９は、システムレコードに設定されている運用バージョンが、システムレコードに設定されている最新バージョンと一致するか否かを判定する（Ｓ２１０７）。当該運用バージョンが当該最新バージョンと一致すると判定した場合には、端子Ｃを介して、図２０に示したＳ２００１の処理に戻る。
【０１１７】
一方、当該運用バージョンが当該最新バージョンと一致しないと判定した場合には、端子Ｄを介して、図２２に示したＳ２２０１の処理に移る。
【０１１８】
図２２の説明に移る。試用リクエスト生成部９６１は、試用リクエスト生成処理を実行する（Ｓ２２０１）。試用リクエスト生成部９６１は、試用リクエスト生成において、運用リクエストに基づいて、最新バージョンのＷｅｂＡＰＩを試用キーを用いて呼び出す試用リクエストを生成する。
【０１１９】
図２３に、試用リクエスト生成処理フローを示す。試用リクエスト生成部９６１は、ＨＴＴＰリクエストにおける運用バージョンの記述を最新バージョンの記述に改める（Ｓ２３０１）。運用バージョン及び最新バージョンは、システムレコードに設定されている。
【０１２０】
試用リクエスト生成部９６１は、ＨＴＴＰリクエストにおける運用キーの記述を、試用キーの記述に改める（Ｓ２３０３）。
【０１２１】
試用リクエスト生成部９６１は、図２０のＳ２００９において追加した検証結果レコードに最新バージョンを設定する（Ｓ２３０５）。試用リクエスト生成部９６１は、同じく検証結果レコードに試用リクエストの内容を設定する（Ｓ２３０７）。試用リクエスト生成処理を終えると、呼び出し元の互換性検証処理に復帰する。
【０１２２】
図２２の説明に戻る。重複判定部９６３は、他の検証結果レコード、つまり追加した検証結果レコード以外の検証結果レコードを１つ特定する（Ｓ２２０３）。重複判定部９６３は、試用リクエスト生成処理において生成した試用リクエストの内容が、当該他の検証結果レコードにおける試用リクエストの内容と一致するか否かを判定する（Ｓ２２０５）。両試用リクエストの内容が一致すると判定した場合には、重複判定部９６３は、追加した検証結果レコードにおける試用レスポンスの内容、レスポンス及び互換性のフィールドに省略の旨のコードを設定する（Ｓ２２０７）。端子Ｃを介して、図２０に示したＳ２００１の処理に戻る。
【０１２３】
一方、Ｓ２２０５において両試用リクエストの内容が一致しないと判定した場合には、重複判定部９６３は、Ｓ２２０３において未特定の検証結果レコードがあるか否かを判定する（Ｓ２２０９）。未特定の検証結果レコードがあると判定した場合には、Ｓ２２０３に示した処理に戻って、上述した処理を繰り返す。一方、未特定の検証結果レコードがないと判定した場合には、試用リクエスト送信部９６５は、Ｓ２２０１において生成した試用リクエストをインターネットに送信する（Ｓ２２１１）。
【０１２４】
このようにすれば、同じリクエストの検証を省くことができる。但し、Ｓ２２０３乃至Ｓ２２０９の処理を省き、同じリクエストの検証を繰り返すようにしてもよい。
【０１２５】
試用レスポンス受信部９６７は、試用リクエストに対応する試用レスポンスをインターネットから受信し、試用レスポンスのステータスを評価結果レコードに設定する（Ｓ２２１３）。また、試用レスポンス抽出部９６９は、試用レスポンスからレスポンスの内容を抽出し、抽出したレスポンスの内容を評価結果レコードに設定する（Ｓ２２１５）。
【０１２６】
互換性判定部９７１は、互換性判定処理を実行する（Ｓ２２１７）。互換性判定部９７１は、互換性判定処理において、最新バージョンのＷｅｂＡＰＩが運用バージョンのＷｅｂＡＰＩと互換性を有するか否かを判定する。
【０１２７】
図２４に、互換性判定処理フローを示す。互換性判定部９７１は、試用レスポンスのステータスが正常終了であるか否かを判定する（Ｓ２４０１）。試用レスポンスのステータスが正常終了ではないと判定した場合には、互換性判定部９７１は、互換性が無いと判定する（Ｓ２４０３）。そして、互換性判定処理を終え、呼び出し元の互換性検証処理に復帰する。
【０１２８】
一方、Ｓ２４０１において試用レスポンスのステータスが正常終了であると判定した場合には、互換性判定部９７１は、評価結果レコードに設定されている試用レスポンスの内容と運用レスポンスの内容とが一致するか否かを判定する（Ｓ２４０５）。試用レスポンスの内容と運用レスポンスの内容とが一致すると判定した場合には、互換性判定部９７１は、互換性が有ると判定する（Ｓ２４０７）。そして、互換性判定処理を終え、呼び出し元の互換性検証処理に復帰する。
【０１２９】
一方、試用レスポンスの内容と運用レスポンスの内容とが一致しないと判定した場合には、互換性判定部９７１は、試用レスポンスの内容と運用レスポンスの内容との差異部分を１つ特定する（Ｓ２４０９）。
【０１３０】
互換性判定部９７１は、特定した差異部分が日時データであるか否かを判定する（Ｓ２４１１）。図２５Ａに示したように、特定した差異部分が日時データである場合には、互換性が無いとは判定せずに、Ｓ２４１９の処理に移る。
【０１３１】
一方、特定した差異部分が日時データではない場合には、互換性判定部９７１は、特定した差異部分が配列データにおける要素の追加であるか否かを判定する（Ｓ２４１３）。図２５Ｂに示したように、特定した差異部分が配列データにおける要素の追加である場合には、互換性が無いとは判定せずに、Ｓ２４１９の処理に移る。
【０１３２】
一方、特定した差異部分が配列データにおける要素の追加ではない場合には、互換性判定部９７１は、特定した差異部分が出力パラメータの追加であるか否かを判定する（Ｓ２４１５）。特定した差異部分が出力パラメータの追加ではない場合には、互換性判定部９７１は、互換性が無いと判定する（Ｓ２４１７）。そして、互換性判定処理を終え、呼び出し元の互換性検証処理に復帰する。
【０１３３】
一方、図２５Ｃに示したように、特定した差異部分が出力パラメータの追加である場合には、互換性判定部９７１は、互換性が無いとは判定せずに、Ｓ２４０９において未特定の差異があるか否かを判定する（Ｓ２４１９）。未特定の差異があると判定した場合には、Ｓ２４０９に示した処理に戻って、上述した処理を繰り返す。
【０１３４】
一方、未特定の差異がないと判定した場合には、互換性判定部９７１は、互換性が有ると判定する（Ｓ２４２１）。そして、互換性判定処理を終え、呼び出し元の互換性検証処理に復帰する。
【０１３５】
例えば図２５Ｄに示したように、特定した差異部分が出力パラメータの変更である場合、図２５Ｅに示したように、特定した差異部分が出力パラメータの削除である場合、或いは図２５Ｆに示したように、配列データにおける要素の削除である場合には、互換性が無いと判定される。
【０１３６】
図２２の説明に戻る。Ｓ２２１７の互換性判定処理を終えると、端子Ｅを介して、図２６に示したＳ２６０１の処理に移る。
【０１３７】
図２６の説明に移る。互換性検証部９３１は、互換性が有ると判定したか否かによって処理を分岐させる（Ｓ２６０１）。互換性が有ると判定した場合には、Ｓ２６０７の処理に移る。
【０１３８】
一方、互換性が無いと判定した場合には、画面生成部９７３は、通知画面を生成する（Ｓ２６０３）。
【０１３９】
図２７に、通知画面の例を示す。通知画面には、運用バージョンと互換性が無い最新バージョンが提供された旨が記述される。また、検証結果レコードの一部又は全部に相当する詳細データも示される。
【０１４０】
図２６の説明に戻る。画面出力部９７５は、生成した通知画面を出力する（Ｓ２６０５）。例えば、画面出力部９７５は、中継装置１０９の表示装置に通知画面を表示させる。
【０１４１】
互換性検証部９３１は、互換性検証処理を終了すると判定したか否かによって処理を分岐させる（Ｓ２６０７）。例えば、一定時間が経過した場合に終了する。あるいは、終了指示を受け付けた場合に終了するようにしてもよい。
【０１４２】
互換性検証処理を終了すると判定しなかった場合には、端子Ｃを介して、図２０に示したＳ２００１の処理に戻る。一方、互換性検証処理を終了すると判定した場合には、互換性検証処理を終え、呼び出し元のメイン処理に復帰する。
【０１４３】
図１６の説明に戻る。互換性検証処理を終えると、Ｓ１６０１に示した処理に戻って、次のタイミングを待つ。
【０１４４】
本実施の形態によれば、ＷｅｂＡＰＩに関して注意を要するバージョンアップを検知することができる。
【０１４５】
また、レスポンス内容の差異に基づいて互換性の有無を判定するので、ＷｅｂＡＰＩを利用するプログラムにおける動作を保証しやすくなる面もある。
【０１４６】
また、差異が所定の例外態様に該当しない場合に、互換性が無いと判定するので、より現実的に互換性を検証できるという面もある。
【０１４７】
［実施の形態２］
ＡＰＩ利用サーバ１０７の内部に、ＨＴＴＰメッセージを中継する中継部を設けて、中継部において上述した登録処理及びメイン処理を行うようにしてもよい。
【０１４８】
図２８に、実施の形態２におけるバージョン検証の概要を示す。図７に示した中継装置１０９に代えて、ＡＰＩ利用サーバ１０７に含まれる中継部２８０１が内部的にＨＴＴＰリクエスト及びＨＴＴＰレスポンスの転送を行う。
【０１４９】
図３に示したＳ３０１で説明したＨＴＴＰリクエストは、中継部２８０１を介して送出される（Ｓ２８０１，Ｓ２８０３）。図３に示したＳ３０３で説明したＨＴＴＰレスポンスは、中継部２８０１を介して受け入れられる（Ｓ２８０５，Ｓ２８０７）。そのため、中継部２８０１は、内部通信によってＡＰＩ利用サーバ１０７とデータのやり取りを行う。また、中継部２８０１は、ＬＡＮを介して外部とのデータのやり取りを行う。
【０１５０】
中継部２８０１は、図９Ａ及び図９Ｂに示したモジュールを有し、実施の形態１の場合と同様の処理を行う。Ｓ２８０９に示したＨＴＴＰリクエストは、図７に示したＳ７０９の場合と同様である。また、Ｓ２８１１に示したＨＴＴＰレスポンスは、図７に示したＳ７１１の場合と同様である。
【０１５１】
図２９に、実施の形態２における互換性検証の概要を示す。互換性検証に関しても、中継部２８０１は、実施の形態１の場合と同様の処理を行う。
【０１５２】
Ｓ２９０１に示したＨＴＴＰリクエストは、図８に示したＳ８０１の場合と同様である。Ｓ２９０３に示したＨＴＴＰリクエストは、図８に示したＳ８０３の場合と同様である。
【０１５３】
Ｓ２９０５に示したＨＴＴＰレスポンスは、図８に示したＳ８０５の場合と同様である。Ｓ２９０７に示したＨＴＴＰレスポンスは、図８に示したＳ８０７の場合と同様である。
【０１５４】
Ｓ２９０９に示したＨＴＴＰリクエストは、図８に示したＳ８０９の場合と同様である。Ｓ２９１１に示したＨＴＴＰレスポンスは、図８に示したＳ８１１の場合と同様である。
【０１５５】
本実施の形態によれば、中継装置１０９を含まないネットワークの構成においても、本発明を適用できる。
【０１５６】
上述した例におけるインターネットは、ネットワークの例である。例えばインターネットをイントラネットに置き換えてもよい。
【０１５７】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１５８】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１５９】
なお、上で述べた中継装置１０９は、コンピュータ装置であって、図３０に示すように、メモリ３００１とＣＰＵ３００３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）３００５と表示装置３００９に接続される表示制御部３００７とリムーバブル・ディスク３０１１用のドライブ装置３０１３と入力装置３０１５とネットワークに接続するための通信部３０１７ａ及びＬＡＮに接続するための３０１７ｂとがバス３０１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ３００５に格納されており、ＣＰＵ３００３により実行される際にはＨＤＤ３００５からメモリ３００１に読み出される。必要に応じてＣＰＵ３００３は、表示制御部３００７、通信部３０１７ａ及び３０１７ｂ、ドライブ装置３０１３を制御して、必要な動作を行わせる。なお、通信部３０１７ａ及び３０１７ｂのいずれかを介して入力されたデータは、他方の通信部３０１７ａ及び３０１７ｂを介して出力される。ＣＰＵ３００３は、通信部３０１７ａ及び３０１７ｂを制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ３００１に格納され、必要があればＨＤＤ３００５に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク３０１１に格納されて頒布され、ドライブ装置３０１３からＨＤＤ３００５にインストールされる。通信部３０１７ａ及び３０１７ｂのいずれかを経由して、ＨＤＤ３００５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ３００３、メモリ３００１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１６０】
また、上で述べたＡＰＩ利用サーバ１０７は、コンピュータ装置であって、図３１に示すように、メモリ３１０１とＣＰＵ３１０３とハードディスク・ドライブ３１０５と表示装置３１０９に接続される表示制御部３１０７とリムーバブル・ディスク３１１１用のドライブ装置３１１３と入力装置３１１５とネットワークに接続するための通信制御部３１１７とがバス３１１９で接続されている。オペレーティング・システム及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ３１０５に格納されており、ＣＰＵ３１０３により実行される際にはＨＤＤ３１０５からメモリ３１０１に読み出される。ＣＰＵ３１０３は、アプリケーション・プログラムの処理内容に応じて表示制御部３１０７、通信制御部３１１７、ドライブ装置３１１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ３１０１に格納されるが、ＨＤＤ３１０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク３１１１に格納されて頒布され、ドライブ装置３１１３からＨＤＤ３１０５にインストールされる。インターネットなどのネットワーク及び通信制御部３１１７を経由して、ＨＤＤ３１０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ３１０３、メモリ３１０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１６１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１６２】
本実施の形態に係るネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継するコンピュータにより実行される変更検知方法であって、（Ａ）上記機能に関する情報を提供する装置から上記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが最新バージョンと一致するか否かを判定する第１判定処理と、（Ｂ）抽出したバージョンが最新バージョンと一致しない場合に、上記リクエストを最新バージョンに係る上記機能を利用するように改めた試用リクエストを送信し、当該試用リクエストに対するレスポンスに基づいて、上記リクエストが利用する機能のバージョンと最新バージョンとの互換性の有無を判定する第２判定処理とを含む。
【０１６３】
このようにすれば、ネットワークを介して提供される機能に関して注意を要する仕様変更を検知することができる。
【０１６４】
更に、上記第２判定処理において、上記リクエストに対するレスポンスと、試用リクエストに対するレスポンスとの差異に基づいて上記互換性の有無を判定するようにしてもよい。
【０１６５】
このようにすれば、ネットワークを介して提供される機能を利用するプログラムにおける動作を保証しやすくなる。
【０１６６】
更に、上記第２判定処理において、上記差異が所定の例外態様に該当しない場合に、上記互換性が無いと判定するようにしてもよい。
【０１６７】
このようにすれば、より現実的に互換性を検証できる。
【０１６８】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１６９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１７０】
（付記１）
ネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継するコンピュータに、
前記機能に関する情報を提供する装置から前記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが前記最新バージョンと一致するか否かを判定する第１判定処理と、
前記抽出したバージョンが前記最新バージョンと一致しない場合に、前記リクエストを前記最新バージョンに係る前記機能を利用するように改めた試用リクエストを送信し、当該試用リクエストに対するレスポンスに基づいて、前記リクエストが利用する機能のバージョンと前記最新バージョンとの互換性の有無を判定する第２判定処理と
を実行させる変更検知プログラム。
【０１７１】
（付記２）
前記第２判定処理において、前記リクエストに対するレスポンスと、前記試用リクエストに対する前記レスポンスとの差異に基づいて前記互換性の有無を判定する
付記１記載の変更検知プログラム。
【０１７２】
（付記３）
前記第２判定処理において、前記差異が所定の例外態様に該当しない場合に、前記互換性が無いと判定する
付記２記載の変更検知プログラム。
【０１７３】
（付記４）
ネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継するコンピュータにより実行される変更検知方法であって、
前記機能に関する情報を提供する装置から前記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが前記最新バージョンと一致するか否かを判定する第１判定処理と、
前記抽出したバージョンが前記最新バージョンと一致しない場合に、前記リクエストを前記最新バージョンに係る前記機能を利用するように改めた試用リクエストを送信し、当該試用リクエストに対するレスポンスに基づいて、前記リクエストが利用する機能のバージョンと前記最新バージョンとの互換性の有無を判定する第２判定処理と
を含む変更検知方法。
【０１７４】
（付記５）
ネットワークを介して提供される機能を利用するためのリクエストと、当該リクエストに対するレスポンスとを中継する変更検知装置であって、
前記機能に関する情報を提供する装置から前記機能の最新バージョンの情報を取得し、リクエストから抽出したバージョンが前記最新バージョンと一致するか否かを判定する第１判定部と、
前記抽出したバージョンが前記最新バージョンと一致しない場合に、前記リクエストを前記最新バージョンに係る前記機能を利用するように改めた試用リクエストを送信し、当該試用リクエストに対するレスポンスに基づいて、前記リクエストが利用する機能のバージョンと前記最新バージョンとの互換性の有無を判定する第２判定部と
を有する変更検知装置。
【符号の説明】
【０１７５】
１０１  ＡＰＩ提供システム
１０３  ＡＰＩ提供サーバ
１０５  情報公開サーバ
１０７  ＡＰＩ利用サーバ
１０９  中継装置
１１１  ユーザ端末
２０１  ＡＰＩ利用プログラム
２０３  ＵＲＩ生成部
２０５  ＨＴＴＰ送信部
２０７  ＨＴＴＰ受信部
２０９  レスポンス抽出部
９０１  登録部
９０３  受付部
９０５  方式特定部
９１１  メッセージ転送部
９１３  第１メッセージ受信部
９１５  第１メッセージ送信部
９１７  第２メッセージ受信部
９１９  第２メッセージ送信部
９２１  メイン処理部
９２３  待機部
９２５  最新バージョン特定部
９２７  サンプルリクエスト取得部
９２９  識別子抽出部
９３１  互換性検証部
９４１  システムテーブル記憶部
９４３  識別子形式記憶部
９４５  検証結果記憶部
９５１  運用リクエスト取得部
９５３  運用リクエスト抽出部
９５５  運用レスポンス取得部
９５７  運用レスポンス抽出部
９５９  バージョン判定部
９６１  試用リクエスト生成部
９６３  重複判定部
９６５  試用リクエスト送信部
９６７  試用レスポンス受信部
９６９  試用レスポンス抽出部
９７１  互換性判定部
９７３  画面生成部
９７５  画面出力部
【図１】
2019117465.tif 000003
【図２】
2019117465.tif 000004
【図３】
2019117465.tif 000005
【図４】
2019117465.tif 000006
【図５】
2019117465.tif 000007
【図６】
2019117465.tif 000008
【図７】
2019117465.tif 000009
【図８】
2019117465.tif 000010
【図９Ａ】
2019117465.tif 000011
【図９Ｂ】
2019117465.tif 000012
【図１０】
2019117465.tif 000013
【図１１】
2019117465.tif 000014
【図１２Ａ】
2019117465.tif 000015
【図１２Ｂ】
2019117465.tif 000016
【図１３】
2019117465.tif 000017
【図１４】
2019117465.tif 000018
【図１５】
2019117465.tif 000019
【図１６】
2019117465.tif 000020
【図１７】
2019117465.tif 000021
【図１８Ａ】
2019117465.tif 000022
【図１８Ｂ】
2019117465.tif 000023
【図１９】
2019117465.tif 000024
【図２０】
2019117465.tif 000025
【図２１】
2019117465.tif 000026
【図２２】
2019117465.tif 000027
【図２３】
2019117465.tif 000028
【図２４】
2019117465.tif 000029
【図２５Ａ】
2019117465.tif 000030
【図２５Ｂ】
2019117465.tif 000031
【図２５Ｃ】
2019117465.tif 000032
【図２５Ｄ】
2019117465.tif 000033
【図２５Ｅ】
2019117465.tif 000034
【図２５Ｆ】
2019117465.tif 000035
【図２６】
2019117465.tif 000036
【図２７】
2019117465.tif 000037
【図２８】
2019117465.tif 000038
【図２９】
2019117465.tif 000039
【図３０】
2019117465.tif 000040
【図３１】
2019117465.tif 000041