(57)【要約】【課題】更新処理における応答性能を向上させる。【解決手段】更新処理装置１０は、受け付けた要求情報に応じて他の装置で実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報が記憶される記憶部と、更新処理に対応する要求情報を受け付けた場合に、更新情報に応じて、要求情報に対する応答として、記憶部に記憶された応答情報を要求情報の送信元に送信するか否かを判定する判定部３０と、を含む。【選択図】図３
2018181215.tif 000002
【特許請求の範囲】
【請求項１】
記憶部を有するコンピュータに実行させる更新処理プログラムであって、
受け付けた要求情報に応じて他のコンピュータで実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報を前記記憶部に記憶し、
前記更新処理に対応する要求情報を受け付けた場合に、前記更新情報に応じて、前記要求情報に対する応答として、前記記憶部に記憶された応答情報を前記要求情報の送信元に送信するか否かを判定する、
処理をコンピュータに実行させる更新処理プログラム。
【請求項２】
受け付けた要求情報に応じて更新処理を前記他のコンピュータに実行させる際、
前記記憶部に記憶された応答情報を前記送信元に送信すると判定した場合、前記更新処理の実行完了を待たずに、前記記憶部に記憶された応答情報を前記送信元に送信し、前記記憶部に記憶された応答情報を前記送信元に送信しないと判定した場合、前記更新処理の実行完了を待機して、前記更新処理の実行結果を示す応答情報を前記送信元に送信する、
処理を更にコンピュータに実行させる請求項１に記載の更新処理プログラム。
【請求項３】
前記記憶部に記憶された応答情報を前記送信元に送信した後に前記更新処理がエラーとなった場合、前記更新処理がエラーとなったことを示す情報を前記送信元に更に送信する、
請求項２に記載の更新処理プログラム。
【請求項４】
前記記憶部には、前記更新情報の変化に関する履歴情報が記憶され、
前記履歴情報を参照して、前記更新情報が前記記憶部に記憶された応答情報を前記送信元に送信する条件を満たす値を維持する余裕期間を算出し、
前記更新処理に対応する要求情報を受け付けた場合で、かつ前記更新情報が前記条件を満たす値である場合に、前記更新情報を前記他のコンピュータから取得した取得時点から現時点までの期間が、算出した余裕期間以下であるか否かによって、前記記憶部に記憶された応答情報を前記送信元に送信するか否かを判定する、
請求項１から請求項３の何れか１項に記載の更新処理プログラム。
【請求項５】
前記更新情報は、商品の残数を示す情報であり、
前記条件は、前記残数が有るとの条件であり、
前記履歴情報を参照して、前記残数が有りの状態から前記残数が無しの状態となるまでの余裕期間を算出し、
前記更新処理に対応する要求情報を受け付けた場合で、かつ前記更新情報が、前記残数が有ることを示す値である場合に、前記取得時点から現時点までの期間が、算出した余裕期間以下であるか否かによって、前記記憶部に記憶された応答情報を前記送信元に送信するか否かを判定する、
請求項４に記載の更新処理プログラム。
【請求項６】
受け付けた要求情報に応じて実行される参照処理の実行結果は、値と前記値の名称との組み合わせを含むフィールドを複数含み、
受け付けた要求情報に応じて参照処理を実行してから所定期間内に実行された更新処理のうち、実行回数が最多である更新処理を前記参照処理に関連付け、
受け付けた要求情報に応じて参照処理を実行してから所定期間内に、前記参照処理に関連付けた更新処理が実行された場合と実行されなかった場合とで値が異なるフィールドを、前記商品の残数が格納されるフィールドであると推定する、
請求項５に記載の更新処理プログラム。
【請求項７】
受け付けた要求情報に応じて参照処理を実行してから所定期間内に、前記参照処理に関連付けた更新処理が実行されなかった場合の前記参照処理の実行結果における、推定した前記商品の残数が格納されるフィールドの値のうち、前記更新処理の非実行回数が最多である値を、前記商品の残数が無いことを示す値であると推定する、
請求項６に記載の更新処理プログラム。
【請求項８】
受け付けた要求情報に応じて他の装置で実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報が記憶される記憶部と、
前記更新処理に対応する要求情報を受け付けた場合に、前記更新情報に応じて、前記要求情報に対する応答として、前記記憶部に記憶された応答情報を前記要求情報の送信元に送信するか否かを判定する判定部と、
を含む更新処理装置。
【請求項９】
記憶部を有するコンピュータが実行する更新処理方法であって、
受け付けた要求情報に応じて他のコンピュータで実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報を前記記憶部に記憶し、
前記更新処理に対応する要求情報を受け付けた場合に、前記更新情報に応じて、前記要求情報に対する応答として、前記記憶部に記憶された応答情報を前記要求情報の送信元に送信するか否かを判定する、
処理をコンピュータが実行する更新処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、更新処理プログラム、更新処理装置、及び更新処理方法に関する。
【背景技術】
【０００２】
従来、Ｗｅｂクライアント、Ｗｅｂサーバ、及びキャッシュデータをＷｅｂサーバの代理でＷｅｂクライアントに応答する複数のＷｅｂプロキシサーバを備えたネットワークシステムが提案されている。このネットワークシステムでは、Ｗｅｂクライアントと各Ｗｅｂプロキシサーバとの間で過去にキャッシュデータを送受信した際の応答時間に基づき、応答時間が最も短いＷｅｂプロキシサーバを選択してキャッシュデータが応答される。
【０００３】
また、キャッシュデータを保持する複数のプロキシサーバを備えた情報処理システムにおいて、トークンを用いてキャッシュデータを無効化する技術が提案されている。
【０００４】
また、通信ネットワーク内のセッション情報を、情報ネットワークに提供する情報提供システムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１０５２２７号公報
【特許文献２】特表２０１６−５３８６６９号公報
【特許文献３】特開２００９−０４２８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ＷｅｂクライアントとＷｅｂサーバとの間の通信において、前述したキャッシュデータを用いた技術によって、参照処理については応答性能を向上させることができる。しかしながら、前述したキャッシュデータを用いた技術では、更新処理については、キャッシュデータを無効化することについては考慮されているものの、キャッシュデータを用いることで応答性能を向上させることについては考慮されていない。
【０００７】
開示の技術は、一つの側面として、更新処理における応答性能を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様として、受け付けた要求情報に応じて他のコンピュータで実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報を記憶部に記憶する。そして、前記更新処理に対応する要求情報を受け付けた場合に、前記更新情報に応じて、前記要求情報に対する応答として、前記記憶部に記憶された応答情報を前記要求情報の送信元に送信するか否かを判定する。
【発明の効果】
【０００９】
一つの側面として、更新処理における応答性能を向上させることができる、という効果を有する。
【図面の簡単な説明】
【００１０】
【図１】ＡＰＩ基盤を利用したＷｅｂシステムを説明するためのブロック図である。
【図２】Ｗｅｂシステムにおける応答時間を説明するためのブロック図であり、（１）はＡＰＩ基盤を利用しない場合、（２）はＡＰＩ基盤を利用し、かつＡＰＩ基盤がキャッシュ機能を有さない場合、（３）はＡＰＩ基盤を利用し、かつＡＰＩ基盤がキャッシュ機能を有する場合の図である。
【図３】実施形態に係る更新処理装置の機能ブロック図である。
【図４】組み合わせデータベース（ＤＢ）の一例を示す図である。
【図５】関連付けＤＢの一例を示す図である。
【図６】特定用ＤＢの一例を示す図である。
【図７】更新処理に対応する要求情報の一例を示す図である。
【図８】参照処理の実行結果の一例を示す図である。
【図９】残数履歴ＤＢに記憶される情報の一例を示すグラフである。
【図１０】最短期間ＤＢの一例を示す図である。
【図１１】更新情報ＤＢの一例を示す図である。
【図１２】応答情報ＤＢに記憶される応答情報の一例を示す図である。
【図１３】タイミングによる応答情報の違いを説明するための図である。
【図１４】実施形態に係る更新処理装置として機能するコンピュータの概略構成を示すブロック図である。
【図１５】実施形態に係る計数処理の一例を示すフローチャートである。
【図１６】実施形態に係る関連付け処理の一例を示すフローチャートである。
【図１７】実施形態に係る第１推定処理の一例を示すフローチャートである。
【図１８】実施形態に係る第２推定処理の一例を示すフローチャートである。
【図１９】実施形態に係る最短期間算出処理の一例を示すフローチャートである。
【図２０】実施形態に係る更新情報更新処理の一例を示すフローチャートである。
【図２１】実施形態に係る応答処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、開示の技術の実施形態の例を詳細に説明する。なお、以下では、開示の技術をHypertext Transfer Protocol（ＨＴＴＰ）等のプロトコルを用いたＷｅｂシステムに適用した形態例を説明する。
【００１２】
まず、実施形態の詳細を説明する前に、Ｗｅｂシステムにおける更新処理の問題点を説明する。近年、異なる複数の機能を組み合わせて新たなサービスを提供するマッシュアップが行われている。マッシュアップでは、一例として図１に示すように、サービスを提供する事業者は、異なる複数のシステムにより提供される各サービス用のApplication Programming Interface（ＡＰＩ）が登録されたＡＰＩ基盤を利用する。事業者は、ＡＰＩ基盤を利用することで、各サービス用のＡＰＩを組み合わせて利用し、新たなサービスを提供する。また、事業者は、ＡＰＩ基盤を利用することで、ＡＰＩ基盤が提供する各ＡＰＩの呼び出し回数を参照する機能、各ＡＰＩの応答時間を参照する機能、認証機能、及びキャッシュ機能等の付加機能も利用することができる。
【００１３】
図２を参照して、例えば、事業者がＡシステムから提供されるＡＰＩを用いてＡシステムのサービスを利用する場合について説明する。なお、図２（１）は、事業者が直接Ａシステムのサービスを利用する場合を示し、図２（２）は、事業者がＡＰＩ基盤を経由してＡシステムのサービスを利用する場合で、かつＡＰＩ基盤がキャッシュ機能を有さない場合を示す。また、図２（３）は、事業者がＡＰＩ基盤を経由してＡシステムのサービスを利用する場合で、かつＡＰＩ基盤がキャッシュ機能を有する場合を示す。
【００１４】
一例として図２（２）に示すように、事業者がＡＰＩ基盤を経由してＡシステムのサービスを利用する場合、図２（１）に示すように、直接Ａシステムのサービスを利用する場合に比較して、ＡＰＩ基盤を経由する分だけ応答時間が長くなる。なお、本明細書では、応答時間とは、事業者が、実行対象の処理の要求を示す要求情報を送信してから、要求情報に対する応答を示す応答情報を受信するまでの時間をいう。
【００１５】
事業者がＡＰＩ基盤を経由してＡシステムのサービスを利用する場合の応答時間を短縮するために、一例として図２（３）に示すように、ＡＰＩ基盤がキャッシュデータを保持することが考えられる。すなわち、Ａシステムが応答する応答情報をＡＰＩ基盤がキャッシュデータとして保持し、事業者から送信された要求情報に対してＡＰＩ基盤がキャッシュデータを応答することで、応答時間を短縮することができる。
【００１６】
このキャッシュデータを応答する手法では、Ａシステムが保持する情報を更新せずに参照する参照処理（以下、単に「参照処理」という）では応答時間を短縮することができる。しかしながら、Ａシステムが保持する情報を更新する更新処理（以下、単に「更新処理」という）では、キャッシュデータとＡシステムが保持する情報とに齟齬が発生する可能性があるため、キャッシュデータを応答することができない。この結果、更新処理では、応答時間を短縮することができない。そこで、本実施形態では、更新処理における応答性能を向上させることを目的とする。
【００１７】
次に、図３を参照して、本実施形態に係る更新処理装置１０の機能的な構成を説明する。更新処理装置１０は、前述したＡＰＩ基盤を実現する装置である。なお、更新処理装置１０の例としては、パーソナルコンピュータ及びサーバコンピュータ等の情報処理装置が挙げられる。
【００１８】
図３に示すように、更新処理装置１０は、受付部１６、第１計数部１８、第２計数部２０、関連付け部２２、推定部２４、算出部２６、記憶制御部２８、判定部３０、実行部３２、及び応答部３４を含む。また、更新処理装置１０の所定の記憶領域には、組み合わせデータベース（ＤＢ）４０、関連付けＤＢ４２、特定用ＤＢ４４、残数履歴ＤＢ４６、最短期間ＤＢ４８、更新情報ＤＢ５０、及び応答情報ＤＢ５２が記憶される。更新処理装置１０は、事業者１２からの要求を示す要求情報を受け付けると、異なる複数のシステムから提供される各ＡＰＩ１４のうち、要求に応じたＡＰＩ１４を呼び出すことにより、要求に応じた処理を実行する。そして、更新処理装置１０は、要求情報に応じた応答情報を事業者１２に送信する。なお、以下では、検索処理等の参照処理を実行する際に用いられるＡＰＩ１４を「参照ＡＰＩ」といい、商品の購入処理、乗り物の座席の予約処理、及び宿泊施設の部屋の予約処理等の更新処理を実行する際に用いられるＡＰＩ１４を「更新ＡＰＩ」という。
【００１９】
図４に、組み合わせＤＢ４０の一例を示す。組み合わせＤＢ４０は、参照ＡＰＩが呼び出された場合に、呼び出された参照ＡＰＩと、参照ＡＰＩに対応して呼び出される更新ＡＰＩとを関連付けるために用いられるＤＢである。なお、参照ＡＰＩに対応して更新ＡＰＩが呼び出される場合の例としては、商品の検索を行った後に、検索により得られた商品を購入する処理等が挙げられる。なお、検索処理の例としては、商品を一意に特定する識別情報を用いて商品を検索して特定する処理、及びキーワード検索等によって一覧表示された複数の商品から目的とする商品を選択する処理等が挙げられる。
【００２０】
図４に示すように、組み合わせＤＢ４０には、１ｓｔＡＰＩ、２ｎｄＡＰＩ、組み合わせ呼び出し回数、及び１ｓｔＡＰＩ呼び出し回数が記憶される。１ｓｔＡＰＩ列には、参照ＡＰＩを識別する情報が記憶される。２ｎｄＡＰＩ列には、更新ＡＰＩを識別する情報が記憶される。組み合わせ呼び出し回数列には、１ｓｔＡＰＩ列に記憶された参照ＡＰＩが呼び出されてから所定期間内（例えば１０秒以内）に２ｎｄＡＰＩ列に記憶された更新ＡＰＩが呼び出された回数が記憶される。１ｓｔＡＰＩ呼び出し回数列には、１ｓｔＡＰＩ列に記憶された参照ＡＰＩが呼び出された回数が記憶される。
【００２１】
図５に、関連付けＤＢ４２の一例を示す。関連付けＤＢ４２は、関連付けられた参照ＡＰＩ及び更新ＡＰＩに関する情報が記憶されるＤＢである。図５に示すように、関連付けＤＢ４２には、参照ＡＰＩ、参照ＡＰＩのユニークＩＤフィールド、残数フィールド、残数無し値、更新ＡＰＩ、及び更新ＡＰＩのユニークＩＤフィールドが記憶される。参照ＡＰＩ列には、参照ＡＰＩを識別する情報が記憶される。更新ＡＰＩ列には、更新ＡＰＩを識別する情報が記憶される。参照ＡＰＩのユニークＩＤフィールド列、残数フィールド列、残数無し値列、及び更新ＡＰＩのユニークＩＤフィールド列に記憶される情報については後述する。
【００２２】
図６に、特定用ＤＢ４４の一例を示す。特定用ＤＢ４４は、関連付けＤＢ４２の参照ＡＰＩの残数無し値列に記憶する情報を特定するために用いられるＤＢである。図６に示すように、特定用ＤＢ４４には、参照ＡＰＩ、フィールド、値、更新ＡＰＩの呼び出し回数、及び更新ＡＰＩの非呼び出し回数が記憶される。参照ＡＰＩ列には、参照ＡＰＩを識別する情報が記憶される。フィールド列、値列、更新ＡＰＩの呼び出し回数列、及び更新ＡＰＩの非呼び出し回数列に記憶される情報については後述する。
【００２３】
受付部１６は、事業者１２から送信された要求情報を受け付ける。図７に、要求情報の一例を示す。なお、図７では、更新処理に対応する要求情報の一例を示している。図７に示すように、本実施形態に係る要求情報には、値（例えば、「２２２１０」）と、値の名称（例えば、「userId」）との組み合わせ（所謂フィールド）が複数含まれる。なお、本実施形態では、要求情報のデータ形式として、JavaScript（登録商標） Object Notation（ＪＳＯＮ）に対応するデータ形式を適用した場合について説明するが、これに限定されない。例えば、要求情報のデータ形式として、Extensible Markup Language（ＸＭＬ）等の他の構造化されたデータ形式を適用してもよい。
【００２４】
また、図７に示すように、要求情報には、書籍及び乗り物の座席等の処理対象の商品を識別する識別情報（図７の例では「isbn」フィールド）が含まれる。また、本実施形態では、要求情報には、要求情報の送信元のアプリケーションを識別するためのＩＤ（図７の例では「applicationId」フィールド）が含まれる。本実施形態では、要求情報の「applicationId」フィールドの値（図７の例では「１２６４５２１５」）によって、要求情報に応じて実行されるＡＰＩ１４を特定することができる。すなわち、要求情報の「applicationId」の値によって、要求情報に応じて実行される処理が参照処理及び更新処理の何れの処理であるかを判別することができる。
【００２５】
第１計数部１８は、受付部１６により受け付けられた要求情報に応じて参照ＡＰＩが呼び出された場合、組み合わせＤＢ４０の参照ＡＰＩに対応する１ｓｔＡＰＩ呼び出し回数列の値に１を加算する。また、第１計数部１８は、参照ＡＰＩが呼び出されてから所定期間内に更新ＡＰＩが呼び出された場合、組み合わせＤＢ４０の呼び出された参照ＡＰＩ及び更新ＡＰＩの組み合わせに対応する組み合わせ呼び出し回数列の値に１を加算する。
【００２６】
第２計数部２０は、受付部１６により受け付けられた要求情報に応じて参照ＡＰＩが呼び出された場合、参照ＡＰＩの実行結果に従って特定用ＤＢ４４を更新する。図８に、検索処理を実行する参照ＡＰＩの実行結果の一例を示す。図８に示すように、本実施形態に係る参照ＡＰＩの実行結果には、前述した要求情報と同様に、値（例えば、「タイトルＡ」）と、値の名称（例えば、「title」）との組み合わせが含まれる。なお、図８の例では、「isbn」フィールドが検索対象を一意に識別するフィールドであり、「availability」フィールドが検索対象の残数（例えば、在庫数）を表すフィールドである。なお、残数を表すフィールドの値は、参照ＡＰＩを提供するサービスによって変わる。例えば、残数無しと残数有りとの２値の場合も考えられるし、残数が所定値以上、残数が１以上所定値未満（在庫僅少）、及び残数無しの３値の場合も考えられる。
【００２７】
本実施形態では、第２計数部２０は、参照ＡＰＩが呼び出された場合、参照ＡＰＩの実行結果に含まれるフィールド毎に、以下に示す処理を行う。すなわち、この場合、第２計数部２０は、参照ＡＰＩが呼び出されてから所定期間内に、参照ＡＰＩに関連付けられた更新ＡＰＩが呼び出された場合、各フィールドの値に対応する特定用ＤＢ４４の更新ＡＰＩ呼び出し回数列の値に１を加算する。また、第２計数部２０は、参照ＡＰＩが呼び出されてから所定期間内に更新ＡＰＩが呼び出されなかった場合、各フィールドの値に対応する特定用ＤＢ４４の更新ＡＰＩ非呼び出し回数列の値に１を加算する。
【００２８】
関連付け部２２は、組み合わせＤＢ４０を参照し、参照ＡＰＩと更新ＡＰＩとを関連付けて関連付けＤＢ４２に記憶する。本実施形態では、関連付け部２２は、組み合わせＤＢ４０に記憶された１ｓｔＡＰＩ呼び出し回数列の値が所定値以上の参照ＡＰＩについて、以下に示す処理を行う。すなわち、この場合、関連付け部２２は、参照ＡＰＩと、参照ＡＰＩに対応する２ｎｄＡＰＩ列に記憶された更新ＡＰＩのうちの組み合わせ呼び出し回数列の値が最も多い更新ＡＰＩとを関連付けて、関連付けＤＢ４２に記憶する。
【００２９】
推定部２４は、参照ＡＰＩが呼び出されてから所定期間内に、参照ＡＰＩに関連付けられた更新ＡＰＩが呼び出された場合と呼び出されなかった場合とで参照ＡＰＩの実行結果における値が異なるフィールドを、以下に示すフィールドであると推定する。すなわち、この場合、推定部２４は、値が異なるフィールドを、残数が格納されるフィールド（以下、「残数フィールド」という）であると推定する。これは、参照ＡＰＩが呼び出された結果、残数が無しの場合は、更新ＡＰＩが参照ＡＰＩに対応して呼び出されることはないと推定されるためである。そして、推定部２４は、推定した残数フィールドを特定するパスを、関連付けＤＢ４２の参照ＡＰＩに対応する残数フィールド列に記憶する。なお、本実施形態では、推定部２４による残数フィールドの推定に用いるために、参照ＡＰＩが呼び出されてから所定期間内に更新ＡＰＩが呼び出されたか否かを示す情報と参照ＡＰＩの実行結果とが、更新処理装置１０の所定の記憶領域に一時的に記憶される。
【００３０】
また、推定部２４は、特定用ＤＢ４４を参照し、関連付けＤＢ４２の参照ＡＰＩに対応する残数無し値列に値を記憶する。本実施形態では、推定部２４は、特定用ＤＢ４４の各参照ＡＰＩの呼び出し回数列及び非呼び出し回数列各々の合計値が所定値以上の残数フィールドについて、以下に示す推定を行う。すなわち、この場合、推定部２４は、非呼び出し回数列の値が最大のレコードの値列の値を残数が無い場合の残数フィールドの値であると推定する。これは、参照ＡＰＩが呼び出された結果、残数が無い場合は、更新ＡＰＩが参照ＡＰＩに対応して呼び出されることはないと推定されるためである。そして、推定部２４は、推定した値を、関連付けＤＢ４２の参照ＡＰＩに対応する残数無し値列に記憶する。
【００３１】
また、推定部２４は、関連付けＤＢ４２の参照ＡＰＩ及び更新ＡＰＩの組み合わせについて、参照ＡＰＩが呼び出されてから所定期間内に更新ＡＰＩが呼び出された場合に、以下に示す処理を行う。すなわち、この場合、推定部２４は、参照ＡＰＩの実行結果と更新ＡＰＩに対応する要求情報とで値が一致するフィールドを、参照ＡＰＩ及び更新ＡＰＩの処理対象を各々一意に特定するフィールドと推定する。そして、推定部２４は、参照ＡＰＩの実行結果に対応する推定したフィールドを特定するパスを、関連付けＤＢ４２の参照ＡＰＩ及び更新ＡＰＩの組み合わせに対応する参照ＡＰＩのユニークＩＤフィールド列に記憶する。また、推定部２４は、要求情報に対応する推定したフィールドを特定するパスを、関連付けＤＢ４２の参照ＡＰＩ及び更新ＡＰＩの組み合わせに対応する更新ＡＰＩのユニークＩＤフィールド列に記憶する。なお、以下では、これらのユニークＩＤフィールド列に記憶されるフィールドの値を「ユニークＩＤ」という。
【００３２】
算出部２６は、残数履歴ＤＢ４６を参照し、関連付けＤＢ４２の各参照ＡＰＩの各ユニークＩＤについて、残数フィールドの値が、残数が有りの状態から残数が無しの状態となるまでの推定期間を算出する。一例として、図９に示すように、残数履歴ＤＢ４６には、各参照ＡＰＩに対応する各ユニークＩＤフィールドの値（ユニークＩＤ）のそれぞれについて、残数の値が変化した場合における残数の値が変化するまでの期間の履歴情報が記憶される。なお、図９では、縦軸が残数フィールドの値を示し、横軸が期間を示す。また、図９では、残数フィールドの値が「３」の場合は残数が所定値以上、「２」の場合は残数が１以上所定値未満、残数フィールドの値が「１」の場合は残数が無しの場合の例を示している。
【００３３】
本実施形態では、算出部２６は、上記推定期間として、残数フィールドの値が、過去の残数が有りの状態から残数が無しの状態となるまでの期間のうち、最短の期間を算出する。図９に示す例では、算出部２６は、残数フィールドの値が「３」から「１」になるまでの最短期間、及び残数フィールドの値が「２」から「１」になるまでの最短期間を算出する。そして、算出部２６は、参照ＡＰＩ及びユニークＩＤの組み合わせに対応付けて、残数フィールドの残数が有ることを示す値及び最短期間を最短期間ＤＢ４８に記憶する。図１０に、最短期間ＤＢ４８の一例を示す。なお、図１０の例では、例えば、「AシステムAPI2」を用いて検索された検索結果のユニークＩＤが「978-4-XX-YY」の商品の残数フィールドの値が「３」（残数が所定値以上）から「１」（残数が無し）になるまでの最短期間が「２０分」であることを示している。また、算出部２６は、例えば、残数が所定値以上の状態から残数が１以上所定値未満の状態となるまでの期間のうちの最短期間を算出してもよい。
【００３４】
また、算出部２６は、最短期間を算出した時点での更新ＡＰＩの呼び出し頻度と、現時点での更新ＡＰＩの呼び出し頻度とを考慮して、以下に示す（１）式に従って、残数が有りの状態から残数が無しの状態になるまでの余裕期間を算出する。
【数１】
2018181215.tif 000003
【００３５】
例えば、最短期間が「２０分」で、算出部２６が最短期間を算出した時点での更新ＡＰＩの呼び出し頻度が「２回／分」で、現時点での更新ＡＰＩの呼び出し頻度が「５回／分」の場合、余裕期間は、「８分」（＝２０×２÷５）と算出される。
【００３６】
記憶制御部２８は、受付部１６が受け付けた要求情報に応じて更新ＡＰＩが呼び出された結果として更新される更新情報を、更新情報ＤＢ５０に記憶する。本実施形態では、更新情報として、予約処理及び購入処理等を実行する更新ＡＰＩが呼び出されることによって変化する残数フィールドの値を適用した場合について説明する。記憶制御部２８は、定期的に、最短期間ＤＢ４８の参照ＡＰＩ及びユニークＩＤの組み合わせの各々について、以下に示す処理を実行する。すなわち、記憶制御部２８は、ユニークＩＤを用いて参照ＡＰＩを後述する実行部３２によって呼び出させ、呼び出させた参照ＡＰＩの実行結果から、残数フィールドの値を取得する。そして、記憶制御部２８は、参照ＡＰＩ、ユニークＩＤ、取得した残数フィールドの値、及び残数フィールドの値を取得した時刻を対応付けて更新情報ＤＢ５０に記憶する。図１１に、更新情報ＤＢ５０の一例を示す。図１１に示すように、更新情報ＤＢ５０には、参照ＡＰＩ、ユニークＩＤ、残数フィールドの値、及び取得時刻が記憶される。
【００３７】
記憶制御部２８は、定期的に、各参照ＡＰＩの実行結果に応じて後述する応答部３４が事業者１２に送信する応答情報を、各参照ＡＰＩに対応付けて応答情報ＤＢ５２に記憶する。また、記憶制御部２８は、定期的に、各更新ＡＰＩの実行結果に応じて後述する応答部３４が事業者１２に送信する応答情報を、各更新ＡＰＩに対応付けて応答情報ＤＢ５２に記憶する。図１２に応答情報の一例を示す。なお、図１２では、更新ＡＰＩに対応する応答情報の一例を示している。図１２に示すように、本実施形態において応答情報ＤＢ５２に記憶される応答情報は、対応する更新ＡＰＩの処理が完了したことを示すメッセージを含む情報である。
【００３８】
判定部３０は、受付部１６が更新処理に対応する要求情報を受け付けた場合に、更新情報ＤＢ５０の残数フィールドの値に応じて、応答情報ＤＢ５２の応答情報を要求情報の送信元の事業者１２に送信するか否かを判定する。本実施形態では、判定部３０は、更新情報ＤＢ５０を参照し、受付部１６が受け付けた要求情報に対応する更新ＡＰＩに関連付けられた参照ＡＰＩに対応する残数フィールドの値及び取得時刻を取得する。そして、判定部３０は、残数フィールドの値が、残数が無いことを示す値の場合、応答情報ＤＢ５２の応答情報を要求情報の送信元の事業者１２に送信しないと判定する。
【００３９】
一方、判定部３０は、残数フィールドの値が、残数が有ることを示す値の場合、取得時刻から現時点までの期間が、算出部２６により算出された現時点での余裕期間以下であるか否かを判定する。この判定により、判定部３０は、応答情報ＤＢ５２の応答情報を要求情報の送信元の事業者１２に送信するか否かを判定する。
【００４０】
実行部３２は、受付部１６が受け付けた要求情報に応じたＡＰＩ１４を呼び出すことによって、要求情報に応じた処理を実行する。
【００４１】
応答部３４は、実行部３２が実行する処理が参照処理である場合、応答情報ＤＢ５２を参照し、実行部３２が呼び出す参照ＡＰＩに対応する応答情報を、要求情報の送信元の事業者１２に送信する。また、応答部３４は、実行部３２が実行する処理が更新処理である場合で、かつ判定部３０が応答情報ＤＢ５２の応答情報を要求情報の送信元の事業者１２に送信すると判定した場合、以下に示す処理を行う。すなわち、この場合、応答部３４は、応答情報ＤＢ５２を参照し、実行部３２による更新処理の実行完了を待たずに、実行部３２が呼び出す更新ＡＰＩに対応する応答情報を、要求情報の送信元の事業者１２に送信する。
【００４２】
また、応答部３４は、実行部３２による更新処理の実行完了を待たずに応答情報ＤＢ５２の応答情報を事業者１２に送信した後に、実行部３２による更新処理がエラーとなった場合は、更新処理がエラーとなったことを示す情報を、更に事業者１２に送信する。
【００４３】
一方、応答部３４は、実行部３２が実行する処理が更新処理である場合で、かつ判定部３０が応答情報ＤＢ５２の応答情報を要求情報の送信元の事業者１２に送信しないと判定した場合、実行部３２による更新処理の実行完了を待機する。そして、この場合、応答部３４は、実行部３２による更新処理の実行結果を示す応答情報を、要求情報の送信元の事業者１２に送信する。
【００４４】
すなわち、一例として図１３に示すように、本実施形態では、更新処理装置１０は、更新情報ＤＢ５０の残数フィールドの値の取得時刻から上記（１）式に従って算出された余裕期間内は、残数が無しになる可能性が比較的低いと判断する。この場合、更新処理装置１０は、実行部３２による更新処理の実行完了を待たずに応答情報ＤＢ５２に記憶された応答情報を事業者１２に送信する。
【００４５】
一方、更新処理装置１０は、取得時刻に余裕期間を加えた時刻よりも後の時刻では、更新情報ＤＢ５０の残数フィールドの値が、残数が有ることを示す値の場合でも、いつ残数が無くなってもおかしくないと判断する。この場合、更新処理装置１０は、実行部３２による更新処理の実行完了を待機して、更新処理の実行結果を示す応答情報を事業者１２に送信する。
【００４６】
更新処理装置１０は、例えば図１４に示すコンピュータ６０で実現することができる。コンピュータ６０は、Central Processing Unit（ＣＰＵ）６１、一時記憶領域としてのメモリ６２、及び不揮発性の記憶部６３を備える。また、コンピュータ６０は、表示装置及び入力装置等の入出力装置６４を備える。また、コンピュータ６０は、記録媒体６８に対するデータの読み込みと書き込みとを制御するＲｅａｄ／Ｗｒｉｔｅ（Ｒ／Ｗ）部６５、及びネットワークに接続されるネットワークＩ／Ｆ６６を備える。ＣＰＵ６１、メモリ６２、記憶部６３、入出力装置６４、Ｒ／Ｗ部６５、及びネットワークＩ／Ｆ６６は、バス６７を介して互いに接続される。
【００４７】
記憶部６３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部６３には、コンピュータ６０を更新処理装置１０として機能させるための更新処理プログラム７０が記憶される。更新処理プログラム７０は、受付プロセス７１、第１計数プロセス７２、第２計数プロセス７３、関連付けプロセス７４、推定プロセス７５、算出プロセス７６、記憶制御プロセス７７、判定プロセス７８、実行プロセス７９、及び応答プロセス８０を有する。また、記憶部６３は、組み合わせＤＢ４０、関連付けＤＢ４２、特定用ＤＢ４４、残数履歴ＤＢ４６、及び最短期間ＤＢ４８が記憶される情報記憶領域８１を有する。また、メモリ６２は、更新情報ＤＢ５０及び応答情報ＤＢ５２が記憶される情報記憶領域８２を有する。
【００４８】
ＣＰＵ６１は、更新処理プログラム７０を記憶部６３から読み出してメモリ６２に展開し、更新処理プログラム７０が有するプロセスを実行する。ＣＰＵ６１は、受付プロセス７１を実行することで、図３に示す受付部１６として動作する。ＣＰＵ６１は、第１計数プロセス７２を実行することで、図３に示す第１計数部１８として動作する。ＣＰＵ６１は、第２計数プロセス７３を実行することで、図３に示す第２計数部２０として動作する。ＣＰＵ６１は、関連付けプロセス７４を実行することで、図３に示す関連付け部２２として動作する。ＣＰＵ６１は、推定プロセス７５を実行することで、図３に示す推定部２４として動作する。ＣＰＵ６１は、算出プロセス７６を実行することで、図３に示す算出部２６として動作する。ＣＰＵ６１は、記憶制御プロセス７７を実行することで、図３に示す記憶制御部２８として動作する。ＣＰＵ６１は、判定プロセス７８を実行することで、図３に示す判定部３０として動作する。ＣＰＵ６１は、実行プロセス７９を実行することで、図３に示す実行部３２として動作する。ＣＰＵ６１は、応答プロセス８０を実行することで、図３に示す応答部３４として動作する。これにより、更新処理プログラム７０を実行したコンピュータ６０が、更新処理装置１０として機能することになる。なお、更新処理プログラム７０が有するプロセスを実行するＣＰＵ６１は、ハードウェアである。
【００４９】
また、更新処理プログラム７０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００５０】
次に、本実施形態に係る更新処理装置１０の作用を説明する。更新処理装置１０が更新処理プログラム７０を実行することで、図１５に示す計数処理、図１６に示す関連付け処理、図１７に示す第１推定処理、図１８に示す第２推定処理、及び図１９に示す最短期間算出処理を実行する。また、更新処理装置１０が更新処理プログラム７０を実行することで、図２０に示す更新情報更新処理、及び図２１に示す応答処理を実行する。図１５に示す計数処理は、例えば、受付部１６が事業者１２から送信された参照処理に対応する要求情報を受け付けた場合に実行される。また、図１６に示す関連付け処理は、例えば、定期的に実行される。また、図１７に示す第１推定処理は、例えば、参照ＡＰＩが呼び出されてから所定期間内に更新ＡＰＩが呼び出された場合に実行される。また、図１８に示す第２推定処理は、例えば、定期的に実行される。また、図１９に示す最短期間算出処理は、例えば、定期的に実行される。また、図２０に示す更新情報更新処理は、例えば、定期的に実行される。また、図２１に示す応答処理は、例えば、事業者１２から送信された更新処理に対応する要求情報を更新処理装置１０が受信した場合に実行される。
【００５１】
図１５に示す計数処理のステップＳ１０で、実行部３２は、受付部１６が受け付けた要求情報に応じた参照ＡＰＩを呼び出す。そして、応答部３４は、応答情報ＤＢ５２を参照し、実行部３２が呼び出した参照ＡＰＩに対応する応答情報を、要求情報の送信元の事業者１２に送信する。
【００５２】
次のステップＳ１２で、第１計数部１８は、ステップＳ１０で呼び出された参照ＡＰＩを識別する情報が、関連付けＤＢ４２の参照ＡＰＩ列に記憶されているか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１４に移行する。ステップＳ１４で、第１計数部１８は、組み合わせＤＢ４０のステップＳ１０で呼び出された参照ＡＰＩに対応する１ｓｔＡＰＩ呼び出し回数列の値に１を加算する。
【００５３】
次のステップＳ１６で、第１計数部１８は、ステップＳ１０で参照ＡＰＩが呼び出されてから所定期間内に更新ＡＰＩが呼び出されたか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ１８に移行する。ステップＳ１８で、第１計数部１８は、組み合わせＤＢ４０のステップＳ１０で呼び出された参照ＡＰＩ及び所定期間内に呼び出された更新ＡＰＩの組み合わせに対応する組み合わせ呼び出し回数列の値に１を加算する。ステップＳ１８の処理が終了すると、本計数処理が終了する。また、ステップＳ１６の判定が否定判定となった場合は、ステップＳ１８の処理は実行されずに本計数処理が終了する。
【００５４】
一方、ステップＳ１２の判定が肯定判定となった場合は、処理はステップＳ２０に移行する。ステップＳ２０で、第２計数部２０は、関連付けＤＢ４２のステップＳ１０で呼び出された参照ＡＰＩに対応する残数無し値列に情報が記憶されているか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ２２に移行する。ステップＳ２２で、第２計数部２０は、ステップＳ１０で参照ＡＰＩが呼び出されてから所定期間内に、参照ＡＰＩに関連付けられた更新ＡＰＩが呼び出されたか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ２６に移行し、肯定判定となった場合は、処理はステップＳ２４に移行する。
【００５５】
ステップＳ２４で、第２計数部２０は、ステップＳ１０で呼び出された参照ＡＰＩの実行結果の各フィールドの値に対応する特定用ＤＢ４４の更新ＡＰＩ呼び出し回数列の値に１を加算する。ステップＳ２４の処理が終了すると、本計数処理が終了する。一方、ステップＳ２６で、第２計数部２０は、ステップＳ１０で呼び出された参照ＡＰＩの実行結果の各フィールドの値に対応する特定用ＤＢ４４の更新ＡＰＩ非呼び出し回数列の値に１を加算する。ステップＳ２６の処理が終了すると、本計数処理が終了する。また、ステップＳ２０の判定が肯定判定となった場合も、本計数処理が終了する。
【００５６】
図１６に示す関連付け処理のステップＳ３０〜ステップＳ３４の処理は、組み合わせＤＢ４０の１ｓｔＡＰＩ列に記憶された各参照ＡＰＩを処理対象として繰り返し実行される。なお、ステップＳ３０〜ステップＳ３４が繰り返し実行される際には、それまでに処理対象とされていなかった参照ＡＰＩが処理対象とされる。ステップＳ３０で、関連付け部２２は、処理対象の参照ＡＰＩを識別する情報が、関連付けＤＢ４２の参照ＡＰＩ列に記憶されているか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ３６に移行し、否定判定となった場合は、処理はステップＳ３２に移行する。
【００５７】
ステップＳ３２で、関連付け部２２は、組み合わせＤＢ４０を参照し、処理対象の参照ＡＰＩに対応する１ｓｔＡＰＩ呼び出し回数列の値が所定値以上であるか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ３６に移行し、肯定判定となった場合は、処理はステップＳ３４に移行する。
【００５８】
ステップＳ３４で、関連付け部２２は、組み合わせＤＢ４０に記憶された処理対象の参照ＡＰＩに対応して２ｎｄＡＰＩ列に記憶された更新ＡＰＩのうち、組み合わせ呼び出し回数列の値が最も大きい更新ＡＰＩを特定する。そして、関連付け部２２は、処理対象の参照ＡＰＩと特定した更新ＡＰＩとを関連付けて、関連付けＤＢ４２に記憶する。
【００５９】
ステップＳ３６で、関連付け部２２は、組み合わせＤＢ４０の１ｓｔＡＰＩ列に記憶された全ての参照ＡＰＩについて上記ステップＳ３０〜ステップＳ３４の処理が完了したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ３０に戻り、肯定判定となった場合は、本関連付け処理が終了する。
【００６０】
なお、ステップＳ３４の処理が完了した後に、関連付け部２２は、処理対象の参照ＡＰＩに対応する組み合わせＤＢ４２のレコードを削除してもよい。この場合、ステップＳ３０の処理が不要となる。
【００６１】
図１７に示す第１推定処理のステップＳ４０で、推定部２４は、参照ＡＰＩと、参照ＡＰＩが呼び出されてから所定期間内に呼び出された更新ＡＰＩの組み合わせが、関連付けＤＢ４２の参照ＡＰＩ列及び更新ＡＰＩ列に記憶されているか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ４２に移行する。
【００６２】
ステップＳ４２で、推定部２４は、関連付けＤＢ４２を参照し、参照ＡＰＩと、参照ＡＰＩが呼び出されてから所定期間内に呼び出された更新ＡＰＩの組み合わせに対応する各ユニークＩＤフィールド列に情報が記憶されているか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ４４に移行する。
【００６３】
ステップＳ４４で、推定部２４は、上記組み合わせの参照ＡＰＩの実行結果と更新ＡＰＩに対応する要求情報とで値が一致するフィールドがあるか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ４６に移行する。
【００６４】
ステップＳ４６で、推定部２４は、参照ＡＰＩの実行結果と更新ＡＰＩに対応する要求情報とで値が一致するフィールドを、参照ＡＰＩ及び更新ＡＰＩの処理対象を各々一意に特定するフィールドと推定する。そして、推定部２４は、参照ＡＰＩの実行結果に対応する推定したフィールドを特定するパスを、関連付けＤＢ４２の参照ＡＰＩ及び更新ＡＰＩの組み合わせに対応する参照ＡＰＩのユニークＩＤフィールド列に記憶する。また、推定部２４は、更新ＡＰＩの要求情報に対応する推定したフィールドを特定するパスを、関連付けＤＢ４２の参照ＡＰＩ及び更新ＡＰＩの組み合わせに対応する更新ＡＰＩのユニークＩＤフィールド列に記憶する。ステップＳ４６の処理が終了すると、本第１推定処理が終了する。一方、ステップＳ４０の判定が否定判定となった場合、ステップＳ４２の判定が肯定判定となった場合、及びステップＳ４４の判定が否定判定となった場合も、本第１推定処理が終了する。
【００６５】
図１８に示す第２推定処理のステップＳ５０で、推定部２４は、関連付けＤＢ４２を参照し、所定の記憶領域に実行結果が一時的に記憶された参照ＡＰＩに対応する残数フィールド列に情報が記憶されているか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ５４に移行し、否定判定となった場合は、処理はステップＳ５２に移行する。
【００６６】
ステップＳ５２で、推定部２４は、前述したように、参照ＡＰＩが呼び出されてから所定期間内に更新ＡＰＩが呼び出された場合と呼び出されなかった場合とで参照ＡＰＩの実行結果における値が異なるフィールドを、残数フィールドであると推定する。そして、推定部２４は、推定した残数フィールドを特定するパスを、関連付けＤＢ４２の参照ＡＰＩに対応する残数フィールド列に記憶する。
【００６７】
以下のステップＳ５４〜ステップＳ５８の処理は、特定用ＤＢ４４の参照ＡＰＩ列に記憶された各参照ＡＰＩ及び推定した残数フィールドの組み合わせを処理対象として繰り返し実行される。なお、ステップＳ５４〜ステップＳ５８が繰り返し実行される際には、それまでに処理対象とされていなかった組み合わせが処理対象とされる。ステップＳ５４で、推定部２４は、関連付けＤＢ４２を参照し、処理対象の参照ＡＰＩに対応する残数無し値列に値が記憶されているか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ６０に移行し、否定判定となった場合は、処理はステップＳ５６に移行する。
【００６８】
ステップＳ５６で、推定部２４は、特定用ＤＢ４４を参照し、処理対象の参照ＡＰＩ及び残数フィールドの組み合わせに対応する更新ＡＰＩの呼び出し回数列の合計値及び非呼び出し回数列の合計値が所定値以上であるか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ６０に移行し、肯定判定となった場合は、処理はステップＳ５８に移行する。
【００６９】
ステップＳ５８で、推定部２４は、処理対象の参照ＡＰＩ及び残数フィールドの組み合わせに対応する値のうち、更新ＡＰＩの非呼び出し回数列の値が最大である値を、残数が無い場合の残数フィールドの値であると推定する。そして、推定部２４は、推定した値を、関連付けＤＢ４２の処理対象の参照ＡＰＩに対応する残数無し値列に記憶する。
【００７０】
ステップＳ６０で、推定部２４は、特定用ＤＢ４４の参照ＡＰＩ列に記憶された全ての参照ＡＰＩについて上記ステップＳ５４〜ステップＳ５８の処理が完了したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ５４に戻り、肯定判定となった場合は、本第２推定処理が終了する。
【００７１】
なお、ステップＳ５８の処理が完了した後に、推定部２４は、処理対象の参照ＡＰＩに対応する特定用ＤＢ４４のレコードを削除してもよい。この場合、ステップＳ５４の処理が不要となる。
【００７２】
図１９に示す最短期間算出処理のステップＳ７０及びステップＳ７２の処理は、残数履歴ＤＢ４６の参照ＡＰＩ及びユニークＩＤの組み合わせに関する履歴情報の各々を処理対象として繰り返し実行される。なお、ステップＳ７０及びステップＳ７２が繰り返し実行される際には、それまでに処理対象とされていなかった組み合わせが処理対象とされる。
【００７３】
ステップＳ７０で、算出部２６は、処理対象の組み合わせの参照ＡＰＩ及びユニークＩＤが、最短期間ＤＢ４８に記憶されているか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ７４に移行し、否定判定となった場合は、処理はステップＳ７２に移行する。
【００７４】
ステップＳ７２で、算出部２６は、残数履歴ＤＢ４６を参照し、処理対象の参照ＡＰＩ及びユニークＩＤの組み合わせについて、残数フィールドの値が、過去の残数が有りの状態から残数が無しの状態となるまでの期間のうち、最短期間を算出する。そして、算出部２６は、処理対象の参照ＡＰＩ及びユニークＩＤの組み合わせに対応付けて、残数フィールドの残数が有ることを示す値、及び算出した最短期間を最短期間ＤＢ４８に記憶する。
【００７５】
ステップＳ７４で、算出部２６は、残数履歴ＤＢ４６に記憶された全ての参照ＡＰＩ及びユニークＩＤの組み合わせについて上記ステップＳ７０及びステップＳ７２の処理が完了したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ７０に戻り、肯定判定となった場合は、本最短期間算出処理が終了する。
【００７６】
図２０に示す更新情報更新処理のステップＳ８０及びステップＳ８２の処理は、最短期間ＤＢ４８の参照ＡＰＩ及びユニークＩＤの組み合わせの各々を処理対象として繰り返し実行される。なお、ステップＳ８０及びステップＳ８２が繰り返し実行される際には、それまでに処理対象とされていなかった組み合わせが処理対象とされる。
【００７７】
ステップＳ８０で、実行部３２は、処理対象のユニークＩＤを検索対象として用いて処理対象の参照ＡＰＩを呼び出すことにより、処理対象のユニークＩＤを検索する参照処理を実行する。
【００７８】
ステップＳ８２で、記憶制御部２８は、関連付けＤＢ４２を参照し、処理対象の参照ＡＰＩに対応する残数フィールドのパスを取得する。また、記憶制御部２８は、ステップＳ８０で呼び出された参照ＡＰＩの実行結果から、取得した残数フィールドのパスにより特定される残数フィールドの値を取得する。そして、記憶制御部２８は、処理対象の参照ＡＰＩ、処理対象のユニークＩＤ、取得した残数フィールドの値、及び取得時刻を対応付けて、更新情報ＤＢ５０に記憶する。
【００７９】
ステップＳ８４で、記憶制御部２８は、最短期間ＤＢ４８に記憶された全ての参照ＡＰＩ及びユニークＩＤの組み合わせについて上記ステップＳ８０及びステップＳ８２の処理が完了したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ８０に戻り、肯定判定となった場合は、本更新情報更新処理が終了する。
【００８０】
図２１に示す応答処理のステップＳ９０で、受付部１６は、事業者１２から送信された更新処理に対応する要求情報を受け付ける。次のステップＳ９２で、判定部３０は、関連付けＤＢ４２を参照し、ステップＳ９０で受け付けられた要求情報に応じて呼び出される更新ＡＰＩに対応するユニークＩＤフィールドを取得する。そして、判定部３０は、取得したユニークＩＤフィールドにより特定されるステップＳ９０で受け付けられた要求情報に含まれるユニークＩＤを取得する。
【００８１】
次のステップＳ９４で、判定部３０は、関連付けＤＢ４２を参照し、ステップＳ９０で受け付けられた要求情報に応じて呼び出される更新ＡＰＩに対応する参照ＡＰＩを取得する。そして、判定部３０は、更新情報ＤＢ５０を参照し、取得した参照ＡＰＩ及びステップＳ９２で取得されたユニークＩＤの組み合わせに対応する残数フィールドの値及び取得時刻を取得する。
【００８２】
次のステップＳ９６で、判定部３０は、ステップＳ９４で取得された残数フィールドの値が、残数が有ることを示す値であるか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１１０に移行し、肯定判定となった場合は、処理はステップＳ９８に移行する。ステップＳ９８で、算出部２６は、最短期間ＤＢ４８を参照し、ステップＳ９４で取得された参照ＡＰＩ、ステップＳ９２で取得されたユニークＩＤ、及びステップＳ９４で取得された値の組み合わせに対応する最短期間を取得する。そして、算出部２６は、取得した最短期間を用いて、上記（１）式に従って余裕期間を算出する。
【００８３】
次のステップＳ１００で、判定部３０は、ステップＳ９４で取得された取得時刻から現時点までの期間が、ステップＳ９８で算出された余裕期間以下であるか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１１０に移行し、肯定判定となった場合は、処理はステップＳ１０２に移行する。
【００８４】
ステップＳ１０２で、応答部３４は、応答情報ＤＢ５２を参照し、ステップＳ９０で受け付けられた要求情報に応じて呼び出される更新ＡＰＩに対応する応答情報を取得する。そして、応答部３４は、取得した応答情報をステップＳ９０で受け付けられた要求情報の送信元の事業者１２に送信する。次のステップＳ１０４で、実行部３２は、ステップＳ９０で受け付けられた要求情報に対応する更新ＡＰＩを呼び出すことにより、要求情報に応じた更新処理を実行する。
【００８５】
次のステップＳ１０６で、実行部３２は、ステップＳ１０４で実行された更新処理がエラーとなったか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ１０８に移行する。ステップＳ１０８で、応答部３４は、更新処理がエラーとなったことを示す情報を、ステップＳ９０で受け付けられた要求情報の送信元の事業者１２に送信する。ステップＳ１０８の処理が終了すると、本応答処理が終了する。また、ステップＳ１０６の判定が否定判定となった場合は、ステップＳ１０８の処理は実行されずに本応答処理が終了する。
【００８６】
一方、ステップＳ１１０で、実行部３２は、ステップＳ９０で受け付けられた要求情報に対応する更新ＡＰＩを呼び出すことにより、要求情報に応じた更新処理を実行する。次のステップＳ１１２で、応答部３４は、ステップＳ１１０で実行された更新処理の実行結果を示す応答情報を、ステップＳ９０で受け付けられた要求情報の送信元の事業者１２に送信する。ステップＳ１１２の処理が終了すると、本応答処理が終了する。
【００８７】
以上説明したように、本実施形態によれば、受け付けた要求情報に応じて実行される更新処理に応じて更新される更新情報及び更新処理に対する応答に用いる応答情報がメモリ６２に記憶される。また、更新処理に対応する要求情報を受け付けた場合に、更新情報の値に応じて、メモリ６２に記憶された応答情報を要求情報の送信元に送信するか否かを判定する。そして、メモリ６２に記憶された応答情報を要求情報の送信元に送信すると判定した場合、更新処理の実行完了を待たずに、メモリ６２に記憶された応答情報を要求情報の送信元に送信する。従って、更新処理における応答性能を向上させることができる。
【００８８】
また、本実施形態によれば、メモリ６２に記憶された応答情報を要求情報の送信元に送信した後に更新処理がエラーとなった場合、更新処理がエラーとなったことを示す情報を送信元に更に送信する。従って、事業者１２が、メモリ６２に記憶された応答情報を受信した後でも、更新処理がエラーとなったことを把握することができる。
【００８９】
また、本実施形態によれば、更新処理プログラム７０を実行することにより関連付けＤＢ４２及び最短期間ＤＢ４８に情報を記憶する。従って、更新処理装置１０の管理者の手間を低減することができる。
【００９０】
なお、上記実施形態において、関連付けＤＢ４２を更新処理装置１０の管理者が手作業で用意してもよい。この場合、組み合わせＤＢ４０及び特定用ＤＢ４４が不要となる。同様に、最短期間ＤＢ４８も管理者が手作業で用意してもよい。
【００９１】
また、上記実施形態において、更新ＡＰＩの呼び出し頻度を考慮せずに、最短期間を余裕期間としてもよい。また、上記実施形態において、算出部２６は、定期的に余裕期間を算出し、算出した余裕期間を最短期間ＤＢ４８に記憶してもよい。この場合、上記応答処理のステップＳ９８において、最短期間ＤＢ４８から余裕期間を取得すればよい。
【００９２】
また、上記実施形態において、更新情報ＤＢ５０及び応答情報ＤＢ５２を、記憶部６３に記憶してもよい。
【００９３】
また、上記実施形態では、更新処理プログラム７０が記憶部６３に予め記憶（インストール）されている態様を説明したが、これに限定されない。更新処理プログラム７０は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ、メモリカード等の記録媒体に記録された形態で提供することも可能である。
【００９４】
以上の実施形態に関し、更に以下の付記を開示する。
【００９５】
（付記１）
記憶部を有するコンピュータに実行させる更新処理プログラムであって、
受け付けた要求情報に応じて他のコンピュータで実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報を前記記憶部に記憶し、
前記更新処理に対応する要求情報を受け付けた場合に、前記更新情報に応じて、前記要求情報に対する応答として、前記記憶部に記憶された応答情報を前記要求情報の送信元に送信するか否かを判定する、
処理をコンピュータに実行させる更新処理プログラム。
【００９６】
（付記２）
受け付けた要求情報に応じて更新処理を前記他のコンピュータに実行させる際、
前記記憶部に記憶された応答情報を前記送信元に送信すると判定した場合、前記更新処理の実行完了を待たずに、前記記憶部に記憶された応答情報を前記送信元に送信し、前記記憶部に記憶された応答情報を前記送信元に送信しないと判定した場合、前記更新処理の実行完了を待機して、前記更新処理の実行結果を示す応答情報を前記送信元に送信する、
処理を更にコンピュータに実行させる付記１に記載の更新処理プログラム。
【００９７】
（付記３）
前記記憶部に記憶された応答情報を前記送信元に送信した後に前記更新処理がエラーとなった場合、前記更新処理がエラーとなったことを示す情報を前記送信元に更に送信する、
付記２に記載の更新処理プログラム。
【００９８】
（付記４）
前記記憶部には、前記更新情報の変化に関する履歴情報が記憶され、
前記履歴情報を参照して、前記更新情報が前記記憶部に記憶された応答情報を前記送信元に送信する条件を満たす値を維持する余裕期間を算出し、
前記更新処理に対応する要求情報を受け付けた場合で、かつ前記更新情報が前記条件を満たす値である場合に、前記更新情報を前記他のコンピュータから取得した取得時点から現時点までの期間が、算出した余裕期間以下であるか否かによって、前記記憶部に記憶された応答情報を前記送信元に送信するか否かを判定する、
付記１から付記３の何れか１項に記載の更新処理プログラム。
【００９９】
（付記５）
前記更新情報は、商品の残数を示す情報であり、
前記条件は、前記残数が有るとの条件であり、
前記履歴情報を参照して、前記残数が有りの状態から前記残数が無しの状態となるまでの余裕期間を算出し、
前記更新処理に対応する要求情報を受け付けた場合で、かつ前記更新情報が、前記残数が有ることを示す値である場合に、前記取得時点から現時点までの期間が、算出した余裕期間以下であるか否かによって、前記記憶部に記憶された応答情報を前記送信元に送信するか否かを判定する、
付記４に記載の更新処理プログラム。
【０１００】
（付記６）
受け付けた要求情報に応じて実行される参照処理の実行結果は、値と前記値の名称との組み合わせを含むフィールドを複数含み、
受け付けた要求情報に応じて参照処理を実行してから所定期間内に実行された更新処理のうち、実行回数が最多である更新処理を前記参照処理に関連付け、
受け付けた要求情報に応じて参照処理を実行してから所定期間内に、前記参照処理に関連付けた更新処理が実行された場合と実行されなかった場合とで値が異なるフィールドを、前記商品の残数が格納されるフィールドであると推定する、
付記５に記載の更新処理プログラム。
【０１０１】
（付記７）
受け付けた要求情報に応じて参照処理を実行してから所定期間内に、前記参照処理に関連付けた更新処理が実行されなかった場合の前記参照処理の実行結果における、推定した前記商品の残数が格納されるフィールドの値のうち、前記更新処理の非実行回数が最多である値を、前記商品の残数が無いことを示す値であると推定する、
付記６に記載の更新処理プログラム。
【０１０２】
（付記８）
受け付けた要求情報に応じて他の装置で実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報が記憶される記憶部と、
前記更新処理に対応する要求情報を受け付けた場合に、前記更新情報に応じて、前記要求情報に対する応答として、前記記憶部に記憶された応答情報を前記要求情報の送信元に送信するか否かを判定する判定部と、
を含む更新処理装置。
【０１０３】
（付記９）
受け付けた要求情報に応じて更新処理を前記他の装置に実行させる際、
前記記憶部に記憶された応答情報を前記送信元に送信すると判定された場合、前記更新処理の実行完了を待たずに、前記記憶部に記憶された応答情報を前記送信元に送信し、前記記憶部に記憶された応答情報を前記送信元に送信しないと判定された場合、前記更新処理の実行完了を待機して、前記更新処理の実行結果を示す応答情報を前記送信元に送信する応答部、
を更に含む付記８に記載の更新処理装置。
【０１０４】
（付記１０）
前記応答部は、前記記憶部に記憶された応答情報を前記送信元に送信した後に前記更新処理がエラーとなった場合、前記更新処理がエラーとなったことを示す情報を前記送信元に更に送信する、
付記９に記載の更新処理装置。
【０１０５】
（付記１１）
前記記憶部には、前記更新情報の変化に関する履歴情報が記憶され、
前記履歴情報を参照して、前記更新情報が前記記憶部に記憶された応答情報を前記送信元に送信する条件を満たす値を維持する余裕期間を算出する算出部、
を更に含み、
前記判定部は、前記更新処理に対応する要求情報を受け付けた場合で、かつ前記更新情報が前記条件を満たす値である場合に、前記更新情報を前記他の装置から取得した取得時点から現時点までの期間が、算出された余裕期間以下であるか否かによって、前記記憶部に記憶された応答情報を前記送信元に送信するか否かを判定する、
付記８から付記１０の何れか１項に記載の更新処理装置。
【０１０６】
（付記１２）
前記更新情報は、商品の残数を示す情報であり、
前記条件は、前記残数が有るとの条件であり、
前記算出部は、前記履歴情報を参照して、前記残数が有りの状態から前記残数が無しの状態となるまでの余裕期間を算出し、
前記判定部は、前記更新処理に対応する要求情報を受け付けた場合で、かつ前記更新情報が、前記残数が有ることを示す値である場合に、前記取得時点から現時点までの期間が、算出された余裕期間以下であるか否かによって、前記記憶部に記憶された応答情報を前記送信元に送信するか否かを判定する、
付記１１に記載の更新処理装置。
【０１０７】
（付記１３）
受け付けた要求情報に応じて実行される参照処理の実行結果は、値と前記値の名称との組み合わせを含むフィールドを複数含み、
受け付けた要求情報に応じて参照処理を実行してから所定期間内に実行された更新処理のうち、実行回数が最多である更新処理を前記参照処理に関連付ける関連付け部と、
受け付けた要求情報に応じて参照処理を実行してから所定期間内に、前記参照処理に関連付けられた更新処理が実行された場合と実行されなかった場合とで値が異なるフィールドを、前記商品の残数が格納されるフィールドであると推定する推定部と、
を更に含む付記１２に記載の更新処理装置。
【０１０８】
（付記１４）
前記推定部は、受け付けた要求情報に応じて参照処理を実行してから所定期間内に、前記参照処理に関連付けられた更新処理が実行されなかった場合の前記参照処理の実行結果における、推定した前記商品の残数が格納されるフィールドの値のうち、前記更新処理の非実行回数が最多である値を、前記商品の残数が無いことを示す値であると推定する、
付記１３に記載の更新処理装置。
【０１０９】
（付記１５）
記憶部を有するコンピュータが実行する更新処理方法であって、
受け付けた要求情報に応じて他のコンピュータで実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報を前記記憶部に記憶し、
前記更新処理に対応する要求情報を受け付けた場合に、前記更新情報に応じて、前記要求情報に対する応答として、前記記憶部に記憶された応答情報を前記要求情報の送信元に送信するか否かを判定する、
処理をコンピュータが実行する更新処理方法。
【０１１０】
（付記１６）
受け付けた要求情報に応じて更新処理を前記他のコンピュータに実行させる際、
前記記憶部に記憶された応答情報を前記送信元に送信すると判定した場合、前記更新処理の実行完了を待たずに、前記記憶部に記憶された応答情報を前記送信元に送信し、前記記憶部に記憶された応答情報を前記送信元に送信しないと判定した場合、前記更新処理の実行完了を待機して、前記更新処理の実行結果を示す応答情報を前記送信元に送信する、
処理を更にコンピュータが実行する付記１５に記載の更新処理方法。
【０１１１】
（付記１７）
前記記憶部に記憶された応答情報を前記送信元に送信した後に前記更新処理がエラーとなった場合、前記更新処理がエラーとなったことを示す情報を前記送信元に更に送信する、
付記１６に記載の更新処理方法。
【０１１２】
（付記１８）
前記記憶部には、前記更新情報の変化に関する履歴情報が記憶され、
前記履歴情報を参照して、前記更新情報が前記記憶部に記憶された応答情報を前記送信元に送信する条件を満たす値を維持する余裕期間を算出し、
前記更新処理に対応する要求情報を受け付けた場合で、かつ前記更新情報が前記条件を満たす値である場合に、前記更新情報を前記他のコンピュータから取得した取得時点から現時点までの期間が、算出した余裕期間以下であるか否かによって、前記記憶部に記憶された応答情報を前記送信元に送信するか否かを判定する、
付記１５から付記１７の何れか１項に記載の更新処理方法。
【０１１３】
（付記１９）
前記更新情報は、商品の残数を示す情報であり、
前記条件は、前記残数が有るとの条件であり、
前記履歴情報を参照して、前記残数が有りの状態から前記残数が無しの状態となるまでの余裕期間を算出し、
前記更新処理に対応する要求情報を受け付けた場合で、かつ前記更新情報が、前記残数が有ることを示す値である場合に、前記取得時点から現時点までの期間が、算出した余裕期間以下であるか否かによって、前記記憶部に記憶された応答情報を前記送信元に送信するか否かを判定する、
付記１８に記載の更新処理方法。
【０１１４】
（付記２０）
受け付けた要求情報に応じて実行される参照処理の実行結果は、値と前記値の名称との組み合わせを含むフィールドを複数含み、
受け付けた要求情報に応じて参照処理を実行してから所定期間内に実行された更新処理のうち、実行回数が最多である更新処理を前記参照処理に関連付け、
受け付けた要求情報に応じて参照処理を実行してから所定期間内に、前記参照処理に関連付けた更新処理が実行された場合と実行されなかった場合とで値が異なるフィールドを、前記商品の残数が格納されるフィールドであると推定する、
付記１９に記載の更新処理方法。
【０１１５】
（付記２１）
受け付けた要求情報に応じて参照処理を実行してから所定期間内に、前記参照処理に関連付けた更新処理が実行されなかった場合の前記参照処理の実行結果における、推定した前記商品の残数が格納されるフィールドの値のうち、前記更新処理の非実行回数が最多である値を、前記商品の残数が無いことを示す値であると推定する、
付記２０に記載の更新処理方法。
【０１１６】
（付記２２）
記憶部を有するコンピュータに実行させる更新処理プログラムであって、
受け付けた要求情報に応じて他のコンピュータで実行される更新処理に応じて更新される更新情報及び前記要求情報に対する応答に用いる応答情報を前記記憶部に記憶し、
前記更新処理に対応する要求情報を受け付けた場合に、前記更新情報に応じて、前記要求情報に対する応答として、前記記憶部に記憶された応答情報を前記要求情報の送信元に送信するか否かを判定する、
処理をコンピュータに実行させる更新処理プログラムを記憶した記憶媒体。
【符号の説明】
【０１１７】
１０  更新処理装置
１６  受付部
１８  第１計数部
２０  第２計数部
２２  関連付け部
２４  推定部
２６  算出部
２８  記憶制御部
３０  判定部
３２  実行部
３４  応答部
４０  組み合わせＤＢ
４２  関連付けＤＢ
４４  特定用ＤＢ
４６  残数履歴ＤＢ
４８  最短期間ＤＢ
５０  更新情報ＤＢ
５２  応答情報ＤＢ
６０  コンピュータ
６１  ＣＰＵ
６２  メモリ
６３  記憶部
６８  記録媒体
７０  更新処理プログラム
【図１】
2018181215.tif 000004
【図２】
2018181215.tif 000005
【図３】
2018181215.tif 000006
【図４】
2018181215.tif 000007
【図５】
2018181215.tif 000008
【図６】
2018181215.tif 000009
【図７】
2018181215.tif 000010
【図８】
2018181215.tif 000011
【図９】
2018181215.tif 000012
【図１０】
2018181215.tif 000013
【図１１】
2018181215.tif 000014
【図１２】
2018181215.tif 000015
【図１３】
2018181215.tif 000016
【図１４】
2018181215.tif 000017
【図１５】
2018181215.tif 000018
【図１６】
2018181215.tif 000019
【図１７】
2018181215.tif 000020
【図１８】
2018181215.tif 000021
【図１９】
2018181215.tif 000022
【図２０】
2018181215.tif 000023
【図２１】
2018181215.tif 000024