(57)【要約】【課題】入力チェックのエラーで生じる通信の無駄やロールバック機能構築のためのコストを削減する。【解決手段】実施形態のゲートウェイ装置は、記憶部、収集部、更新部を備える。記憶部は組み合わせ処理コンポーネントに組み込まれた処理コンポーネントに関する情報の取得場所と各処理コンポーネントの入力チェックルールと各処理コンポーネントのバージョンが記憶する。収集部は所定のタイミングで、処理コンポーネントに関する情報の取得リクエストを送信し、処理コンポーネントに関する情報を取得する。判定部は取得した処理コンポーネントに関する情報を基に情報更新の必要性を判定する。更新部は情報更新が必要と判定された場合、取得した処理コンポーネントに関する情報により記憶部の処理コンポーネントに関する情報を更新する。【選択図】図１
2019109607.tif 000002
【特許請求の範囲】
【請求項１】
ウェブ上で処理を行う処理コンポーネントを有するサーバコンピュータとクライアントコンピュータとの間に介在させたゲートウェイ装置により前記サーバコンピュータと前記クライアントコンピュータ間の通信を中継するネットワークシステムにおいて、
前記サーバコンピュータが、
前記クライアントコンピュータよりゲートウェイ装置を通じて受信される処理依頼のリクエストによりデータ処理を実行する処理コンポーネントを有し、
前記ゲートウェイ装置が、
一つ以上の処理コンポーネントを組み合わせて定義した組み合わせ処理コンポーネントに組み込まれた前記一つ以上の処理コンポーネントに関する情報として、処理コンポーネントに関する情報の取得場所と各処理コンポーネントの入力チェックルールと各処理コンポーネントのバージョンが記憶された記憶部と、
所定のタイミングで、前記記憶部より処理コンポーネントに関する情報の取得場所を読み出して、該当処理コンポーネントを持つサーバコンピュータへ処理コンポーネントに関する情報の取得リクエストを送信し、この取得リクエストに対するレスポンスを受信することで処理コンポーネントに関する情報を取得する収集部と、
前記収集部により取得された処理コンポーネントに関する情報より抽出した処理コンポーネントのバージョンと入力チェックルールと前記記憶部に予め記憶されている処理コンポーネントのバージョンと入力チェックルールとを比較し、情報更新の必要性を判定する判定部と、
前記判定部により情報更新が必要と判定された場合、取得された処理コンポーネントに関する情報により前記記憶部の処理コンポーネントに関する情報を更新する更新部と
を具備するネットワークシステム。
【請求項２】
前記ゲートウェイ装置が、
前記クライアントコンピュータより受信されたリクエストが、組み合わせ処理コンポーネントの定義により一つ以上の処理コンポーネントにデータ処理を実行させる処理依頼のリクエストであった場合、前記リクエストに含まれる組み合わせ処理コンポーネントの情報を基に、前記組み合わせ処理コンポーネントに組み込まれている呼び出し対象の処理コンポーネントを特定する特定部と、
前記特定部により特定された前記処理コンポーネントの処理に、前記リクエストに含まれる入力データが適合するか否かをチェックするチェック部と、
前記チェック部によるチェックの結果、前記組み合わせ処理コンポーネントに組み込まれているすべての処理コンポーネントに入力データが適合する場合、当該リクエストを呼び出し対象の処理コンポーネントを有するサーバコンピュータへ送信する通信制御部と
を具備する請求項１記載のネットワークシステム。
【請求項３】
前記ゲートウェイ装置が、
前記組み合わせ処理コンポーネントの、更新した処理コンポーネントのバージョンと前記バージョンの入力チェックルールが更新順に記憶された更新情報記憶部と、
前記クライアントコンピュータより受信されたリクエストが、更新履歴の開示リクエストであった場合、前記リクエストに含まれる組み合わせ処理コンポーネントに関する情報を基に、該当する処理コンポーネントのバージョンおよび入力チェックルールを前記更新情報記憶部から読み出し、前記リクエストに対する応答としてリクエスト元のクライアントコンピュータに返す履歴管理部と
をさらに具備する請求項１または請求項２いずれか記載のネットワークシステム。
【請求項４】
ウェブ上で処理を行う処理コンポーネントを有するサーバコンピュータとクライアントコンピュータとの間に介在し、前記サーバコンピュータと前記クライアントコンピュータ間の通信を中継するゲートウェイ装置において、
前記サーバコンピュータが有する一つ以上の処理コンポーネントを組み合わせて定義した組み合わせ処理コンポーネントに組み込まれた前記一つ以上の処理コンポーネントに関する情報として、処理コンポーネントに関する情報の取得場所と各処理コンポーネントの入力チェックルールと各処理コンポーネントのバージョンが記憶された記憶部と、
所定のタイミングで、前記記憶部より処理コンポーネントに関する情報を読み出して、該当処理コンポーネントを持つサーバコンピュータへ処理コンポーネントに関する情報の取得リクエストを送信し、この取得リクエストに対するレスポンスを受信することで処理コンポーネントに関する情報を取得する収集部と、
前記収集部により取得された処理コンポーネントに関する情報より抽出した処理コンポーネントのバージョンと入力チェックルールと予め保持されている処理コンポーネントのバージョンと入力チェックルールとを比較し、情報更新の必要性を判定する判定部と、
前記判定部により情報更新が必要と判定された場合、取得された処理コンポーネントに関する情報により前記記憶部の処理コンポーネントに関する情報を更新する更新部と
を具備するゲートウェイ装置。
【請求項５】
前記クライアントコンピュータより受信されたリクエストが、組み合わせ処理コンポーネントの定義により一つ以上の処理コンポーネントにデータ処理を実行させるリクエストであった場合、前記リクエストに含まれる組み合わせ処理コンポーネントの情報を基に前記組み合わせ処理コンポーネントに組み込まれている呼び出し対象の処理コンポーネントを特定する特定部と、
前記特定部により特定された前記処理コンポーネントの処理に、前記リクエストに含まれる入力データが適合するか否かをチェックするチェック部と、
前記チェック部によるチェックの結果、前記組み合わせ処理コンポーネントに組み込まれているすべての処理コンポーネントに入力データが適合する場合、当該リクエストを呼び出し対象の処理コンポーネントを有するサーバコンピュータへ送信する通信制御部と
を具備する請求項４記載のゲートウェイ装置。
【請求項６】
前記組み合わせ処理コンポーネントの、更新した処理コンポーネントのバージョンと前記バージョンの入力チェックルールが更新順に記憶された更新情報記憶部と、
前記クライアントコンピュータより受信されたリクエストが、更新履歴の開示リクエストであった場合、前記リクエストに含まれる組み合わせ処理コンポーネントに関する情報を基に、該当する処理コンポーネントのバージョンおよび入力チェックルールを前記更新情報記憶部から読み出し、前記リクエストに対する応答としてリクエスト元のクライアントコンピュータに返す履歴管理部と
をさらに具備する請求項４または請求項５いずれか記載のゲートウェイ装置。
【請求項７】
ウェブ上で処理を行う処理コンポーネントを有するサーバコンピュータとクライアントコンピュータとの間に介在させたゲートウェイ装置により前記サーバコンピュータと前記クライアントコンピュータ間の通信を中継するネットワークシステムにおけるデータ処理方法において、
前記ゲートウェイ装置が、
一つ以上の処理コンポーネントを組み合わせて定義した組み合わせ処理コンポーネントに組み込まれた前記一つ以上の処理コンポーネントに関する情報として、処理コンポーネントに関する情報の取得場所と各処理コンポーネントの入力チェックルールと各処理コンポーネントのバージョンとを記憶し、
所定のタイミングで、処理コンポーネントに関する情報の取得場所を読み出して、該当処理コンポーネントを持つサーバコンピュータへ処理コンポーネントに関する情報の取得リクエストを送信し、この取得リクエストに対するレスポンスを受信することで処理コンポーネントに関する情報を取得し、
取得した処理コンポーネントに関する情報より抽出した処理コンポーネントのバージョンと入力チェックルールと予め記憶されている処理コンポーネントのバージョンと入力チェックルールとを比較し、情報更新の必要性を判定し、
判定の結果、情報更新が必要と判定した場合、取得された処理コンポーネントに関する情報により前記記憶されている処理コンポーネントに関する情報を更新する
データ処理方法。
【請求項８】
前記クライアントコンピュータより受信されたリクエストが、組み合わせ処理コンポーネントの定義により一つ以上の処理コンポーネントにデータ処理を実行させるリクエストであった場合、前記リクエストに含まれる組み合わせ処理コンポーネントの情報を基に前記組み合わせ処理コンポーネントに組み込まれている呼び出し対象の処理コンポーネントを特定し、
特定した前記処理コンポーネントの処理に、前記リクエストに含まれる入力データが適合するか否かをチェックし、
チェックの結果、前記組み合わせ処理コンポーネントに組み込まれているすべての処理コンポーネントに入力データが適合する場合、当該リクエストを呼び出し対象の処理コンポーネントを有するサーバコンピュータへ送信する請求項７記載のデータ処理方法。
【請求項９】
前記組み合わせ処理コンポーネントの、更新した処理コンポーネントのバージョンと前記バージョンの入力チェックルールを更新順に更新情報記憶部に記憶しておき、
前記クライアントコンピュータより受信されたリクエストが、更新履歴の開示リクエストであった場合、前記リクエストに含まれる組み合わせ処理コンポーネントに関する情報を基に、該当する処理コンポーネントのバージョンおよび入力チェックルールを前記更新情報記憶部から読み出し、前記リクエスト対する応答としてリクエスト元のクライアントコンピュータに返す請求項７または請求項８いずれか記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワークシステム、ゲートウェイ装置およびデータ処理方法に関する。
【背景技術】
【０００２】
アプリケーションプログラミングインタフェース（ＡＰＩ）を有するアプリケーションサーバとクライアントとの間に介在させたゲートウェイ装置がアプリケーションサーバとクライアント間の通信を中継するネットワークシステムがある。
【０００３】
近年、この種のネットワークシステムでは、ゲートウェイ装置の高機能化が図られ、ゲートウェイ装置には、複数のアプリケーションサーバの複数のＡＰＩを組み合わせて新たなＡＰＩ（マッシュアップＡＰＩ）を定義するマッシュアップ機能が備えられている。
【０００４】
この場合、クライアントより、ゲートウェイ装置で定義したマッシュアップＡＰＩを呼び出すことで、複数のアプリケーションサーバの複数のＡＰＩを順次呼び出してデータを処理することができる。
【０００５】
このようなネットワークシステムでは、クライアント側で入力されたデータ（以下「入力データ」と称す）が各アプリケーションサーバのＡＰＩのフォーマット（入力形式）に適合しているか否かを事前にチェックするため、入力チェック機能が、通常、各アプリケーションサーバ側にそれぞれ設けられる。
【０００６】
このため、ゲートウェイ装置においてマッシュアップＡＰＩが複数のアプリケーションサーバのＡＰＩを順に呼び出して、各ＡＰＩが処理を行う前にゲートウェイ装置からそれぞれのアプリケーションサーバに入力データを渡した上で、各サーバ側で入力データを事前チェックすることになる。
【０００７】
ところで、複数のアプリケーションサーバにおいて、入力チェックを順に行ってゆく中で、いずれかのサーバの入力チェックでエラーとなることがある。
【０００８】
この場合、入力チェックが成功したアプリケーションサーバの処理も含めてロールバックを行う必要がある。ロールバックとは、入力チェックの前まで遡ってエラーを修正（復元）することである。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−２２２１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の場合、複数のアプリケーションサーバにおいて、入力チェックを順に行ってゆく中でいずれかのアプリケーションサーバの入力チェックでエラーとなった場合、入力チェックが成功したアプリケーションサーバの処理も含めてロールバックを行う必要があり、ロールバックの機能を事前準備するための開発コストが増えるとともに、ロールバック後にゲートウェイ装置と複数のアプリケーションサーバ間で入力チェックのためのデータ通信を初めからやり直すため、それまでの通信が無駄になるという問題があった。
【００１１】
本発明が解決しようとする課題は、入力チェックのエラーで生じる通信の無駄やロールバック機能構築のためのコストを削減することができるネットワークシステム、ゲートウェイ装置およびデータ処理方法を提供することにある。
【課題を解決するための手段】
【００１２】
実施形態のゲートウェイ装置は、記憶部、収集部、更新部を備える。記憶部は一つ以上の処理コンポーネントを組み合わせて定義した組み合わせ処理コンポーネントに組み込まれた一つ以上の処理コンポーネントに関する情報として、処理コンポーネントに関する情報の取得場所と各処理コンポーネントの入力チェックルールと各処理コンポーネントのバージョンを記憶している。収集部は、所定のタイミングで、記憶部より処理コンポーネントに関する情報の取得場所を読み出して、該当処理コンポーネントを持つサーバコンピュータへ処理コンポーネントに関する情報の取得リクエストを送信し、この取得リクエストに対するレスポンスを受信することで処理コンポーネントに関する情報を取得する。判定部は収集部により取得された処理コンポーネントに関する情報より抽出した処理コンポーネントのバージョンと入力チェックルールと記憶部の処理コンポーネントのバージョンと入力チェックルールとを比較し、情報更新の必要性を判定する。更新部は判定部により情報更新が必要と判定された場合、取得された処理コンポーネントに関する情報により記憶部の処理コンポーネントに関する情報を更新する。
【図面の簡単な説明】
【００１３】
【図１】実施形態のアプリケーションシステムの構成を示す図である。
【図２】マッシュアップＡＰＩ情報テーブルの一例を示す図である。
【図３】入力チェックルールテーブルの一例を示す図である。
【図４】テーブルの一例を示す図である。
【図５】テーブルの一例を示す図である。
【図６】実施形態のアプリケーションシステムの自動更新動作を示すフローチャートである。
【図７】実施形態のアプリケーションシステムの入力チェック動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、実施形態を詳細に説明する。
（実施形態）
図１はネットワークシステムの一つの実施の形態のアプリケーションシステムの構成を示す図である。
【００１５】
図１に示すように、実施形態のアプリケーションシステムは、サーバコンピュータとしてのアプリケーションサーバＡ１〜Ａ３（以下「ＡＰＩサーバＡ１〜Ａ３」と称す）とクライアントコンピュータとしてのクライアントＣ１とをネットワーク１を介して接続し、互いの間にゲートウェイ装置としてＡＰＩゲートウェイ２を介在させ、ＡＰＩサーバＡ１〜Ａ３とクライアントＣ１間の通信をＡＰＩゲートウェイ２が中継するネットワークシステムである。
【００１６】
ＡＰＩサーバＡ１〜Ａ３は、ウェブ上で処理を行うソフトウェアまたは処理コンポーネントとしてのアプリケーションプログラミングインタフェース（以下「ＡＰＩ＃１〜＃３」と称す）を有する。ＡＰＩ＃１〜＃３はクライアントＣ１よりＡＰＩゲートウェイ２を通じて受信された処理依頼のリクエストによりデータ処理を実行する。
【００１７】
ＡＰＩ＃１〜＃３は、サーバ、クライアントなどのコンピュータが有するソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースプログラムである。ネットワーク１は、インターネットを含む通信回線である。
【００１８】
ＡＰＩサーバＡ１〜Ａ３、クライアントＣ１、ＡＰＩゲートウェイ２は、ハードウェアとして、ＣＰＵ、メモリ、通信インタフェースなどを有するコンピュータである。
【００１９】
クライアントＣ１には、ＪａｖａＳｃｒｉｐｔ（登録商標）が実行可能なウェブブラウザなどのソフトウェアコンポーネントがインストールされている。ウェブブラウザは、ＡＰＩサーバＡ１〜Ａ３へのアクセスによりＡＰＩサーバＡ１〜Ａ３のＡＰＩ＃１〜＃３より各種機能の入力画面を表示可能である。
【００２０】
入力画面には、例えばアンケート調査などのようにクライアントＣ１の操作者がテキストデータ（文字など）を直接キー入力するための入力ボックスが表示される。入力ボックスに入力されたデータは、ネットワーク１およびＡＰＩゲートウェイ２を経由して対象のＡＰＩ（ＡＰＩ＃１〜＃３の少なくとも一つ）に送られて処理される。
【００２１】
ＡＰＩゲートウェイ２は、上記ハードウェアにより実現される機能構成として、入力チェックルール記憶部２１、ＡＰＩ情報記憶部２２、マッシュアップＡＰＩ情報記憶部２３、更新情報記憶部２４、検証部としての入力チェック部２５、収集部２６、マッシュアップＡＰＩ定義部２７、履歴管理部２８、制御部２９などを有する。
【００２２】
マッシュアップＡＰＩ情報記憶部２３には、図２に示すように、マッシュアップＡＰＩ情報テーブル３１が記憶されている。マッシュアップＡＰＩ情報テーブル３１には、クライアントＣ１のユーザが定義したマッシュアップＡＰＩ＃１〜＃３のＩＤ毎に、使用するＡＰＩ＃１〜＃３へのアクセス順に並べたアクセス先であるＡＰＩサーバＡ１〜Ａ３を特定するための情報と、マッシュアップＡＰＩが呼び出すＡＰＩ＃１〜＃３が使用する入力チェックルールの識別情報（以下「入力チェックルールＩＤ」と称す）とが記憶されている。
【００２３】
この例では、例えばマッシュアップＡＰＩＩＤ「ＭｕｓｈｐＡＰＩ_１」に、ＡＰＩサーバＡ１〜Ａ３を特定するための情報として「ＡＰＩ＃１_Ａ１、ＡＰＩ＃２_Ａ２、ＡＰＩ＃３_Ａ３」が記憶されている。ＡＰＩ＃１_Ａ１はＡＰＩサーバＡ１を示し、ＡＰＩ＃２_Ａ２はＡＰＩサーバＡ２を示し、ＡＰＩ＃３_Ａ３はＡＰＩサーバＡ３を示す。
【００２４】
ＡＰＩ＃１_Ａ１のＡＰＩに利用する入力チェックルールのＩＤは「入力チェックルール_１」、ＡＰＩ＃２_Ａ２のＡＰＩに利用する入力チェックルールのＩＤは「入力チェックルール_２」、ＡＰＩ＃３_Ａ３のＡＰＩに利用する入力チェックルールのＩＤは「入力チェックルール_３」とされている。
【００２５】
入力チェックルール記憶部２１には、図３に示すように、入力チェックルールテーブル３２が記憶されている。入力チェックルールテーブル３２には、ＡＰＩ＃１〜＃３の入力チェックルールとそれに関する情報（マッシュアップＡＰＩＩＤ、ＡＰＩＩＤ、バージョン（Ｖｅｒ．）、取得日時など）が記憶されている。この例では、マッシュアップＡＰＩＩＤ「ＭｕｓｈｐＡＰＩ_１」に、ＡＰＩの識別情報として「＃１（ＭｅｍｂｅｒＭａｎａｇｅｍｅｎｔ）」、ＡＰＩのバージョンとして「１．１．０」、取得日時として「２０１７／９／１１ １２：００：００」、入力チェックルールとして「ユーザＩＤ："半角英数字５文字以内"、住所："全角文字のみ"、電話番号："１０桁または１１桁"、メールアドレス：１文字以上の英数字」などが記憶されている。
【００２６】
また、同じマッシュアップＡＰＩ（マッシュアップＡＰＩＩＤ「ＭｕｓｈｐＡＰＩ_１」）に組み込まれているＡＰＩの識別情報として「＃２（ＱｕｅｓｔｉｏｎｎｅｉｒｅＭａｎａｇｅｍｅｎｔ）」、ＡＰＩのバージョンとして「１．０．１」、取得日時として「２０１７／９／４ １４：００：００」、入力チェックルールとして「きっかけ："１文字以上５０文字以内"、興味ある項目："１文字以上５０文字以内"」などが記憶されている。
【００２７】
ＡＰＩ情報記憶部２２には、図４に示すように、ＡＰＩ情報テーブル３３が記憶されている。ＡＰＩ情報テーブル３３には、現時点で最新のＡＰＩに関する情報（マッシュアップＡＰＩＩＤ、ＡＰＩＩＤ、入力チェックルール取得用ＵＲＬ、バージョン（Ｖｅｒ．）、取得日時など）が記憶されている。この例では、マッシュアップＡＰＩＩＤ「ＭｕｓｈｐＡＰＩ_１」に、ＡＰＩの識別情報として「＃１（ＭｅｍｂｅｒＭａｎａｇｅｍｅｎｔ）」、入力チェックルール取得用ＵＲＬとして「ｈｔｔｐ：／／１９２．０．２．１０：８０８０／ＭｅｍｂｅｒＭａｎａｇｅｍｅｎｔ／ＩｎｐｕｔＣｈｅｃｋＲｕｌｅ」、ＡＰＩのバージョンとして「１．１．０」、取得日時として「２０１７／９／１１ １２：００：００」などが記憶されている。
【００２８】
更新情報記憶部２４には、図５に示すように、更新履歴テーブル３４が記憶されている。更新履歴テーブル３４には、マッシュアップＡＰＩ（ＭｕｓｈｕｐＡＰＩＩＤ）の、更新したＡＰＩ（ＡＰＩＩＤ）のバージョン（Ｖｅｒ．）とそのバージョン（Ｖｅｒ．）の入力チェックルール、更新日時などが更新順に逐次追記（記憶）される。
【００２９】
上記入力チェックルール記憶部２１、ＡＰＩ情報記憶部２２、マッシュアップＡＰＩ情報記憶部２３などは、マッシュアップＡＰＩに組み込まれた一つ以上のＡＰＩ＃１〜＃３に関する情報として、ＡＰＩ＃１〜＃３に関する情報の取得場所と各ＡＰＩ＃１〜＃３の入力チェックルールと各ＡＰＩ＃１〜＃３のバージョンが記憶された記憶部として機能する。
【００３０】
マッシュアップＡＰＩ定義部２７は、クライアントＣ１のユーザが、複数のＡＰＩサーバＡ１〜Ａ３の複数のＡＰＩ＃１〜＃３を組み合わせて定義したマッシュアップＡＰＩをマッシュアップＡＰＩ情報記憶部２３のマッシュアップＡＰＩテーブル３１に記憶する。
【００３１】
収集部２６は、所定のタイミングで複数のＡＰＩサーバＡ１〜Ａ３にアクセスしてＡＰＩ＃１〜＃３の情報、入力チェックルールなどを収集する。
【００３２】
収集部２６は、制御部２９により、ＡＰＩ＃１〜＃３のバージョンと入力チェックルールなどの情報更新が必要と判定された場合、取得したＡＰＩ＃１〜＃３に関する情報により記憶部（ＡＰＩ情報記憶部２３、入力チェックルール記憶部２４など）のＡＰＩ＃１〜＃３に関する情報（ＡＰＩ＃１〜＃３のバージョン、入力チェックルール、取得日時など）を更新する更新部として機能する。
【００３３】
収集部２６は、ＡＰＩ＃１〜＃３に関する情報を更新したときに、複数のＡＰＩサーバＡ１〜Ａ３の複数のＡＰＩ＃１〜＃３の新たなバージョンや新たな入力チェックルールなどの更新情報を更新情報記憶部２４の更新履歴テーブル３４に追記する。なお、このように更新に関する動作は履歴管理部２８が行ってもよい。
【００３４】
履歴管理部２８は、クライアントＣ１からマッシュアップＡＰＩについての更新履歴の開示リクエストがあった場合、更新履歴テーブル３４を参照して、該当マッシュアップＡＰＩＩＤに紐付くＡＰＩ＃１〜＃３の一連の更新履歴を読み出し、リクエストに対する応答として、リクエスト元のクライアントＣ１に返し、クライアントＣ１の画面に更新履歴を更新順（更新日順またはバージョン順）に表示する。これにより、マッシュアップＡＰＩとこれに紐付くＡＰＩ＃１〜＃３の更新に関するトレーサビリティを確保することができる。
【００３５】
制御部２９は、入力チェック部２５、収集部２６、マッシュアップＡＰＩ定義部２７、履歴管理部２８などの各部を制御して各ＡＰＩサーバＡ１〜Ａ３のＡＰＩ＃１〜＃３とマッシュアップＡＰＩとの情報の整合をとりつつ通信制御（中継動作）を行う。つまり制御部２９は、クライアントＣ１と複数のＡＰＩサーバＡ１〜Ａ３間の通信を制御する。
【００３６】
制御部２９は、収集部２６により取得されたＡＰＩ＃１〜＃３に関する情報より抽出したＡＰＩ＃１〜＃３のバージョンと入力チェックルールと、入力チェックルール記憶部２１の入力チェックルールテーブル３２に予め記憶されているＡＰＩ＃１〜＃３のバージョンと入力チェックルールとを比較し、情報更新の必要性を判定する判定部として機能する。具体的には、制御部２９は、互いのＡＰＩ＃１〜＃３のバージョンと入力チェックルールに差異がある場合、情報更新の必要性があるものと判定する。
【００３７】
制御部２９は、クライアントＣ１からのリクエストを受信し、リクエストの内容を解析（検証）し、リクエストの内容に応じた動作を行う。つまり制御部２９は、クライアントＣ１より受信されたリクエストの内容を解析する解析部として機能する。
【００３８】
解析の結果、リクエストが例えばＡＰＩサーバＡ１〜Ａ３へデータ処理を依頼するリクエストであれば、制御部２９は、該当ＡＰＩサーバＡ１〜Ａ３へリクエストを送信し、リクエストに対するＡＰＩサーバＡ１〜Ａ３からの応答、つまりレスポンスを受信してリクエスト元のクライアントＣ１へ返す。
【００３９】
制御部２９は、リクエストの解析結果が、マッシュアップＡＰＩの定義により一つ以上組み合わされたＡＰＩ＃１〜＃３にデータ処理を実行させるリクエストであった場合、リクエストに含まれるマッシュアップＡＰＩＩＤを基にマッシュアップＡＰＩ情報テーブル３１を検索し、予め定義されているマッシュアップＡＰＩに組み込まれている呼び出し対象のＡＰＩ＃１〜＃３を特定する。
【００４０】
呼び出し対象のＡＰＩ＃１〜＃３を特定した制御部２９は、入力チェック部２５を制御して、特定したＡＰＩ＃１〜＃３の処理に、リクエストに含まれる入力データが適合するか否かをチェックさせる。
【００４１】
具体的には、入力チェック部２５は、クライアントＣ１で入力された入力データの形式などをチェックする。より詳細には、入力チェック部２５は、入力チェックルールテーブル３２から入力チェックルールを読み出し、読み出した入力チェックルールに入力データの形式（項目毎に入力されるべき文字数、文字種、半角、全角など）が適合するか否かをチェックする。
【００４２】
そして、入力チェックの結果、マッシュアップＡＰＩに組み込まれているすべてのＡＰＩ＃１〜＃３の入力チェックルールに入力データが適合する場合、制御部２９は、マッシュアップＡＰＩ情報テーブル３１の情報（ＡＰＩサーバＡ１〜Ａ３およびＡＰＩ＃１〜＃３の識別情報など）を基に、ＡＰＩ情報テーブル３３からＡＰＩサーバＡ１〜Ａ３のＩＰアドレス（ＵＲＬなど）を取得し、特定したＡＰＩサーバＡ１〜Ａ３のＡＰＩ＃１〜＃３を順に呼び出し、ＡＰＩサーバＡ１〜Ａ３へ入力データを含む当該リクエストを送信し、クライアントＣ１の入力データを処理させる。
【００４３】
以下、図６、図７のフローチャートを参照してこの実施形態のアプリケーションシステムの動作を説明する。図６はこのアプリケーションシステムの自動更新動作を示すフローチャート、図７はこのアプリケーションシステムの入力チェック動作を示すフローチャートである。
【００４４】
クライアントＣ１で入力した入力データをネットワーク上のＡＰＩサーバＡ１〜Ａ３のＡＰＩ＃１〜＃３を利用して処理するアプリケーションシステムでは、クライアントＣ１のウェブブラウザの画面にＡＰＩゲートウェイ２のマッシュアップＡＰＩのＵＲＬを入力することでマッシュアップＡＰＩにアクセスし、マッシュアップＡＰＩの制御に従いＡＰＩゲートウェイ２を中継して所望のＡＰＩ＃１〜＃３を呼び出す。
【００４５】
この場合、クライアントＣ１は、ＡＰＩゲートウェイ２に定義されているマッシュアップＡＰＩを呼び出し、マッシュアップＡＰＩの定義に基づいて複数のＡＰＩサーバＡ１〜Ａ３に順にアクセスして所望のＡＰＩ＃１〜＃３を呼び出してクライアントＣ１の入力データを処理することになる。
【００４６】
通常、ＡＰＩサーバＡ１〜Ａ３には、ＡＰＩ＃１〜＃３で処理する前にクライアントＣ１で入力されたデータの形式などをチェックする入力チェック機能が備えられており、それぞれのＡＰＩサーバＡ１〜Ａ３で入力チェックが行われる。このチェックの結果、エラーになった場合、ロールバックが発生し、それまでのデータ通信が無駄になるという問題がある。
【００４７】
この問題の対策としては、複数のＡＰＩサーバＡ１〜Ａ３にアクセスする前に入力チェックを事前に行うようにＡＰＩゲートウェイ２に入力チェック機能（ソフトウェアコンポーネント）を実装することが考えられる。
【００４８】
しかし、入力チェック機能をＡＰＩゲートウェイ２に単に実装しただけでは、各ＡＰＩサーバＡ１〜Ａ３のＡＰＩ＃１〜＃３が更新されるたびにＡＰＩゲートウェイ２において入力チェック機能の修正を手作業で行わなければならず、修正の進捗によっては入力チェックで不整合が生じることがある。
【００４９】
そこで、この実施形態のアプリケーションシステムでは、ＡＰＩゲートウェイ２にマッシュアップＡＰＩ定義機能の他に、入力チェック機能とＡＰＩ情報および入力チェックルールの自動更新機能と更新履歴管理機能とを実装することで、各ＡＰＩ＃１〜＃３のＡＰＩ情報と各ＡＰＩ＃１〜＃３の入力チェックルールとを収集し、定義したマッシュアップＡＰＩで呼び出されるＡＰＩ＃１〜＃３の情報と入力チェックルールとを自動更新すると共に更新履歴を保持しておくことでトレーサビリティを確保する。
【００５０】
まず、図６のフローチャートを参照してこのアプリケーションシステムのマッシュアップＡＰＩに関する情報（ＡＰＩ＃１〜＃３の情報や入力チェックルールなど）の自動更新動作を説明する。  
このアプリケーションシステムでは、トリガが発生すると（図６のステップＳ１０１）、ＡＰＩゲートウェイ２において、収集部２６が、マッシュアップＡＰＩ情報記憶部２３よりマッシュアップＡＰＩを読み出し（ステップＳ１０２）、読み出したマッシュアップＡＰＩを基に、呼び出し対象のＡＰＩを特定すべく、ＡＰＩ情報記憶部２２のＡＰＩ情報テーブル３３よりＡＰＩ＃１〜＃３のネットワーク１上の場所を含むＡＰＩ情報を読み出し、そのＡＰＩ情報を基に当該ＡＰＩ＃１〜＃３を有するＡＰＩサーバＡ１〜Ａ３へ取得リクエストを送信し（ステップＳ１０３）、当該ＡＰＩサーバＡＰＩよりＡＰＩ＃１〜＃３のバージョンやＡＰＩ＃１〜＃３が持つ入力チェックルールなどが含まれるレスポンスが受信されるのを待機する（ステップＳ１０４のＮｏ、Ｓ１０５）。
【００５１】
トリガは、例えばタイマによるタイムアップでもよく、１日１回決められた時刻でのバッチ処理であってもよい。またクライアントＣ１からの取得リクエストの受信をトリガにしてもよく、各ＡＰＩサーバからのＡＰＩのバージョンアップ通知を受信したときであってもよい。
【００５２】
ＡＰＩサーバＡ１〜Ａ３は、ＡＰＩゲートウェイ２より取得リクエストを受信すると、制御部２９が、動作可能なＡＰＩの情報として、メモリより、ＡＰＩ＃１〜＃３のバージョン、入力チェックルールなどを読み出し、これらのＡＰＩ＃１〜＃３の情報をレスポンスとして、取得リクエストの送信元のＡＰＩゲートウェイ２へ返す。
【００５３】
ＡＰＩゲートウェイ２では、ＡＰＩサーバＡ１〜Ａ３からのレスポンスが受信されると（ステップＳ１０４のＹｅｓ）、収集部２６は、レスポンスに含まれるＡＰＩ＃１〜＃３の情報（ＡＰＩのバージョン、入力チェックルールなど）と、ＡＰＩ情報記憶部２２に保持されているＡＰＩ＃１〜＃３の情報（ＡＰＩのバージョン、入力チェックルールなど）とを比較して更新の必要性を判定する（ステップＳ１０６）。
【００５４】
具体的には、収集部２６は、ＡＰＩ情報テーブルからＡＰＩ＃１〜＃３のバージョンを読み出し、読み出したＡＰＩ＃１〜＃３のバージョンと受信したＡＰＩ＃１〜＃３のバージョンとを比較して互いの差異、つまりバージョン（番号）が同じか、または受信したＡＰＩ＃１〜＃３のバージョンの方が、バージョンが新しいか（番号が大きいか）を判定し、受信したＡＰＩ＃１〜＃３の現在のバージョンの方が、バージョンが新しい（番号が大きい）場合は更新の必要性ありと判定する。なおバージョンはダウングレードされることも考えられるので、バージョンが同じでなければ更新の必要性ありと判定してもよい。
【００５５】
また、収集部２６は、入力チェックルールについても、入力チェックルールテーブル３２の入力チェックルールと受信した入力チェックルールとを比較し、ルールの内容が同じか否か（変更の有無）を確認し、異なる場合は、更新の必要性ありと判定する。
【００５６】
入力チェックルールとバージョンでは、いずれか一方の条件を満たした場合に更新の必要性ありと判定してもよく、両方の条件を満たした場合に更新の必要性ありと判定してもよい。
【００５７】
上記ステップＳ１０６の判定の結果、更新の必要性ありと判定した場合（ステップＳ１０７のＹｅｓ）、収集部２６は、受信したＡＰＩの情報を入力チェックルールテーブル３２とＡＰＩ情報テーブル３３に上書き、つまり入力チェックルールテーブル３２とＡＰＩ情報テーブル３３の内容を、受信したＡＰＩ＃１〜＃３の情報に更新する（ステップＳ１０８）。
【００５８】
また、収集部２６は、更新履歴テーブル３４に、新たに更新した情報を追記する（ステップＳ１０９）。なお、更新履歴テーブル３４に、新たに更新した情報を追記する動作は、履歴管理部２８または制御部２９が行ってもよい。
【００５９】
次に、図７を参照してこのアプリケーションシステムの入力チェック動作を説明する。
このアプリケーションシステムでは、クライアントＣ１からのデータ処理のリクエストがＡＰＩゲートウェイ２の制御部２９により受信されると（図７のステップＳ２０１）、ＡＰＩゲートウェイ２では、制御部２９が、リクエストに含まれるクライアントＣ１の情報を入力チェック部２５に渡す。リクエストには、クライアントＣ１の情報として、例えばクライアントＣ１の識別情報の他、入力データやデータ処理を行うマッシュアップＩＤなどが含まれている。
【００６０】
入力チェック部２５は、渡されたクライアントＣ１の情報から、マッシュアップＡＰＩテーブル３１よりマッシュアップＡＰＩ情報を読み出し（ステップＳ２０２）、読み出したマッシュアップＡＰＩ情報に基づき該当するＡＰＩ＃１〜＃３の入力チェックを順に行う（ステップＳ２０３）。
【００６１】
この例では、ＡＰＩサーバＡ１のＡＰＩ＃１、ＡＰＩサーバＡ２のＡＰＩ＃２、ＡＰＩサーバＡ３のＡＰＩ＃３という順に入力チェックルールがチェックされる。
【００６２】
この際、入力チェック部２５は、入力チェックルール記憶部２１の入力チェックルールテーブル３２より該当ＡＰＩ＃１〜＃３の入力チェックルールを読み出し（ステップＳ２０２）、読み出した入力チェックルールに基づき入力データの形式をチェックする。
【００６３】
この入力チェックの結果、入力データの形式にエラーがあった場合（ステップＳ２０４のＹｅｓ）、入力チェック部２５は、その旨を制御部２９へ通知し、制御部２９は、リクエスト送信元のクライアントＣ１へエラーを示すレスポンスを返す（ステップＳ２０５）。
【００６４】
また、入力チェックの結果、入力データの形式にエラーがない場合（ステップＳ２０４のＮｏ）、入力チェック部２５は、その旨を制御部２９へ通知し、制御部２９は、クライアントＣ１から受信したデータ処理のリクエストを、マッシュアップＡＰＩ情報を基に該当ＡＰＩサーバＡ１〜Ａ３へ送信し、ＡＰＩサーバＡ１〜Ａ３のＡＰＩ＃１〜＃３にてデータを処理させる（ステップＳ２０６）。
【００６５】
次に、この実施形態のアプリケーションシステムの更新履歴管理機能について説明する。
このアプリケーションシステムのＡＰＩゲートウェイ２には、マッシュアップＡＰＩに組み込んだＡＰＩ＃１〜＃３の入力チェック機能とＡＰＩ情報および入力チェックルールの自動更新機能の他に、更新履歴管理機能が実装されている。
【００６６】
更新履歴管理機能は、制御部２９により制御されて履歴管理部２８が行うものである。履歴管理部２８は、ＡＰＩ＃１〜＃３の情報や入力チェックルールを自動更新したタイミングで更新履歴テーブル３４に新たなレコードがマッシュアップＡＰＩ毎に追記されるが、その後、クライアントＣ１からの更新履歴の開示リクエストを受けた制御部２９から指示で動作する。
【００６７】
履歴管理部２８は、受信されたリクエストに含まれるマッシュアップＡＰＩ情報（マッシュアップＡＰＩＩＤ）を基に、履歴管理テーブル３４を検索し、該当するＡＰＩ＃１〜＃３の情報および入力チェックルールを履歴管理テーブル３４から呼び出し、更新履歴情報としてリクエスト元のクライアントＣ１に応答を返す。
【００６８】
クライアントＣ１では、ゲートウェイから受信された更新履歴情報をモニタの画面に表示する。この際、クライアントＣ１の画面に更新履歴を更新順（更新日順またはバージョン順）に一覧表示する。更新履歴の表示のさせ方として、一覧表（表形式）でもよく、組み込まれるＡＰＩが多数存在する場合は、系統図（分岐などがわかる図）などであってもよい。
【００６９】
これにより、マッシュアップＡＰＩに関する情報が何時どのように更新されたのかなどといったトレーサビリティを確保することができる。
【００７０】
このようにこの実施形態のアプリケーションシステムによれば、ＡＰＩゲートウェイ２側で予め定義したマッシュアップＡＰＩにより呼び出されるＡＰＩ＃１〜＃３の入力データのフォーマットチェックをＡＰＩゲートウェイ２が行う際に、各ＡＰＩ＃１〜＃３の更新情報（ＡＰＩのバージョンや取得日時（更新日時）などのバージョンアップの情報）を一括して管理し、クライアントＣ１からの入力データの処理のリクエストがあったとき、またはその前に、呼び出し対象のＡＰＩ＃１〜＃３のバージョンの整合を図ることで、入力チェックでエラーになる通信を発生させないようにできるので、入力チェックエラーで生じる通信の無駄やロールバック機能の構築のためのコストを削減できる。
【００７１】
また、ＡＰＩゲートウェイ２が各ＡＰＩ＃１〜＃３の更新情報（バージョンアップの情報）を一括して管理する際に、各ＡＰＩサーバＡ１〜Ａ３側でのＡＰＩ＃１〜＃３の更新に伴う入力チェックルールの更新を自動反映する仕組みを構築することで、不整合リスクを解消または低減することができる。
【００７２】
すなわち、ＡＰＩゲートウェイ２がＡＰＩ情報（ＡＰＩ＃１〜＃３の場所、ＩＰアドレスやドメインネーム等）を管理し、各ＡＰＩ＃１〜＃３が持つ入力チェックルールを収集し自動更新する機能をＡＰＩゲートウェイ２に設けて入力チェックルールを常に更新し、ＡＰＩゲートウェイ２でマッシュアップＡＰＩの通信中継時に、関連する複数のＡＰＩ＃１〜＃３の入力チェックをＡＰＩゲートウェイ２が事前に一括して行う仕組みを提供することで、従来、エラーとなったときに複数のＡＰＩ＃１〜＃３を有するＡＰＩサーバＡ１〜Ａ３とＡＰＩゲートウェイ２との間で行ったデータ通信のコストやロールバック処理のコストを削減することができる。
【００７３】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここに示した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００７４】
また上記実施形態に示した各構成要素を、コンピュータのハードディスク装置などのストレージにインストールしたプログラムで実現してもよく、また上記プログラムを、コンピュータ読取可能な電子媒体：electronic mediaに記憶しておき、プログラムを電子媒体からコンピュータに読み取らせることで本発明の機能をコンピュータが実現するようにしてもよい。電子媒体としては、例えばＣＤ−ＲＯＭ等の記録媒体やフラッシュメモリ、リムーバブルメディア：Removable media等が含まれる。さらに、ネットワークを介して接続した異なるコンピュータに構成要素を分散して記憶し、各構成要素を機能させたコンピュータ間で通信することで実現してもよい。
【符号の説明】
【００７５】
Ａ１〜Ａ３…アプリケーションサーバ（ＡＰＩサーバ）、Ｃ１…クライアント、２…ＡＰＩゲートウェイ、２１…入力チェックルール記憶部、２２…ＡＰＩ情報記憶部、２３…マッシュアップＡＰＩ情報記憶部、２４…更新情報記憶部、２５…入力チェック部、２６…収集部、２７…マッシュアップＡＰＩ定義部、２８…履歴管理部、２９…制御部、３１…マッシュアップＡＰＩ情報テーブル、３２…入力チェックルールテーブル、３３…ＡＰＩ情報テーブル、３４…更新履歴テーブル。
【図１】
2019109607.tif 000003
【図２】
2019109607.tif 000004
【図３】
2019109607.tif 000005
【図４】
2019109607.tif 000006
【図５】
2019109607.tif 000007
【図６】
2019109607.tif 000008
【図７】
2019109607.tif 000009