(57)【要約】【課題】複数のコマースサーバ間でキャッシュ情報の同期を取り、コマースサーバ間のキャッシュ情報の不整合を軽減する。【解決手段】商品データベース１０３へのアクセス処理で要求されたデータに対する処理を行うデータ処理方法において、データの更新要求を受信して、その受信した更新要求によって要求されたデータの更新を指示するステップと、前記データの更新指示を受け付けて、前記更新要求により更新される更新対象のデータを識別する為の管理ＩＤを当該アクセス要求の内容に応じて生成し、その生成された管理ＩＤで識別されるデータの有効期限を更新するステップと、前記更新されたキャッシュデータの有効期限を他のデータ処理装置へ通知するステップとを有する。【選択図】  図1
2005157605.tif 000002
【特許請求の範囲】
【請求項１】
商品データを格納するデータベースを共有し、初回データ検索時における検索結果を自身のメモリキャッシュに登録し、当該メモリキャッシュを利用することで次回以降のデータベースのアクセス回数を減らす商品データ検索装置であって、
外部から前記商品データの更新要求を受信し、当該商品データ更新要求の対象となるキャッシュデータを識別する管理ＩＤをその更新内容に応じて生成し、当該生成された管理ＩＤにより識別されるキャッシュデータの更新を指示するデータ更新処理部と、
前記キャッシュデータの有効期限を更新するための指定条件と、当該有効期限と、前記キャッシュデータの更新によって影響を受ける他の商品データ検索装置のアドレスとが予め管理者によって定義され、記憶されるデータ記憶部と、
前記データ更新処理部からデータ更新指示を受信して前記キャッシュデータの更新を行い、当該データ更新結果が前記データ記憶部に予め記憶された指定条件と一致したときに、前記管理ＩＤで識別されるキャッシュデータの有効期限を更新し、当該更新されたキャッシュデータの有効期限を前記データ記憶部に記憶された他の商品データ検索装置へ通知するキャッシュデータ同期処理部と、
を備えたことを特徴とする商品データ検索装置。
【請求項２】
前記データ更新処理部は、
前記商品データ更新要求に、前記商品データ検索装置に共通のアクセス条件が含まれている場合、当該アクセス条件を識別する識別情報を用いて前記した管理ＩＤを生成することを特徴とする請求項１に記載の商品データ検索装置。
【請求項３】
前記キャッシュデータ同期処理部は、
前記データ更新処理部からデータ更新指示を受信して前記商品データベース上のデータを更新し、予め前記データ記憶部に記憶された前記指定条件と一致した場合に前記管理ＩＤで識別される前記キャッシュデータの有効期限を前記データ記憶部に記憶された有効期限情報に更新することを特徴とする請求項１または２に記載の商品データ検索装置。
【請求項４】
商品データを格納するデータベースを共有し、初回データ検索時における検索結果を自身のメモリキャッシュに登録し、当該メモリキャッシュを利用することで次回以降のデータベースのアクセス回数を減らす商品データ検索装置おけるデータ更新方法であって、
外部からデータ更新要求を受信し、当該データ更新要求の対象となるキャッシュデータを識別する管理ＩＤをその更新内容に応じて生成し、当該生成された管理ＩＤにより識別されるキャッシュデータの更新を指示するステップと、
前記キャッシュデータの更新指示を受信して前記キャッシュデータの更新を行い、当該キャッシュデータ更新結果が、管理者によってあらかじめ定義され記憶されたキャッシュデータの有効期限を更新するための指定条件と一致したときに、前記管理ＩＤで識別されるキャッシュデータの有効期限情報を更新し、当該更新されたキャッシュデータの有効期限情報を、管理者によってあらかじめ定義され記憶された他の商品データ検索装置へ通知するステップと、
を有することを特徴とする商品データ検索装置におけるデータ更新方法。
【請求項５】
商品データを格納するデータベースを共有し、初回データ検索時における検索結果を自身のメモリキャッシュに登録し、当該メモリキャッシュを利用することで次回以降のデータベースのアクセス回数を減らす請求項１〜３に記載の商品データ検索装置に用いられるプログラムであって、
外部からデータ更新要求を受信し、当該データ更新要求の対象となるキャッシュデータを識別する管理ＩＤをその更新内容に応じて生成し、当該生成された管理ＩＤにより識別されるキャッシュデータの更新を指示する処理と、
前記キャッシュデータの更新指示を受信して当該キャッシュデータの更新を行い、当該キャッシュデータ更新結果が、管理者によってあらかじめ定義され記憶された指定条件と一致したときに、前記管理ＩＤで識別されるキャッシュデータの有効期限情報を更新し、当該更新されたキャッシュデータの有効期限情報を、管理者によってあらかじめ定義され記憶された他の商品データ検索装置へ通知する処理と、
を前記商品データ検索装置に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、インターネット等のネットワークを介し、ＤＢ（Data Base）サーバ上の商品データを検索してクライアント装置へ提供する電子ショッピングシステムに適用して好適な、商品データ検索装置および同装置におけるデータ更新方法ならびにプログラムに関する。
【背景技術】
【０００２】
従来、インターネット等のネットワークを介してユーザ側のクライアント装置と、電子ショッピングシステムを構成するＷｅｂ（World Wide Web）サーバ、コマースサーバおよびＤＢ（Data Base）サーバとを接続し、ＤＢサーバで検索された商品データをクライアント装置上に表示してユーザからの注文を受け付け、商品を販売することのできる電子ショッピングシステムが知られている。
また、電子ショッピングシステムで、ユーザが掲載される商品サイトを知らなくても、希望する商品を素早く探し出して購入することのできる、商品情報検索システムも提案されている（例えば特許文献１参照）。
【特許文献１】特開２００２−３４２３５４号公報（段落「００１４」〜「００２７」、図１）
【０００３】
前記した電子ショッピングシステムにおける商品データの検索では、ヒット件数が数百件以上となる場合等、ヒット件数が多い場合、表示容量の制限から１ページに表示する件数を数十件に限定し、複数ページで商品データを表現させることが多い。この場合、１ページ目を表示するために、一度、ＤＢサーバから商品情報を取得した後、それらの情報に管理ＩＤを割り当ててキャッシュすることで、２ページ目以降の表示を行う際のＤＢアクセス回数を減らしている。
更に、前記した電子ショッピングシステムでは、お薦め商品の検索を行うための所定の検索条件を登録しておき、ユーザからのアクセス時に自動的に所定の検索結果（お薦め商品）を表示してユーザにその商品の購入を薦める処理が行われている。ここで、あるユーザが所定の検索条件で検索を行った場合、一度、ＤＢサーバから取得したデータをキャッシュすることで、同一条件で検索する２番目以降のユーザはＤＢをアクセスすることなくそのデータを得ることを可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記した様に、従来の電子ショッピングシステムでは、多くの商品データを複数ページで表示する場合や、複数のユーザが同一検索条件での利用を行う場合に、１回目のＤＢ検索時に検索結果をキャッシュすることでＤＢアクセスの回数を減らし、検索に要する手間やシステム負荷を軽減している。
しかしながら、キャッシュされた検索結果はコマースサーバごとに独立して保持されるため、複数のＷｅｂサーバ、コマースサーバおよびＤＢサーバを接続して電子ショッピングシステムを構築した場合、コマースサーバ毎のキャッシュデータに内容の不整合が生じることがある。例えば、実際の在庫が０になったにもかかわらず、あるコマースサーバでは商品在庫が存在したままの状態になっていることがあり、この場合、在庫管理に混乱を来たす。
【０００５】
本発明は前記した事情に鑑みてなされたものであり、複数のコマースサーバ間におけるキャッシュデータの不整合の発生頻度を減らすことが可能な、商品データ検索装置および同装置におけるデータ更新方法ならびにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記した課題を解決するために本発明は、商品データ検索装置を、外部からデータ更新要求を受信し、当該データ更新要求の対象となるデータを識別する管理ＩＤをその更新内容に応じて生成し、当該生成された管理ＩＤにより識別されるデータの更新を指示するデータ更新処理部と、前記データ更新処理部からデータ更新指示を受信して前記データの更新を行い、当該データ更新結果があらかじめ設定された条件と一致したときに、前記管理ＩＤで識別されるキャッシュデータの有効期限を更新し、当該更新されたキャッシュデータの有効期限をあらかじめ設定された他の商品データ検索装置へ通知するキャッシュデータ同期処理部で構成した。
前記した構成により、データ更新処理部からデータ更新の指示を受けたキャッシュデータ同期処理部が、管理ＩＤで識別されるデータを更新する場合に有効期限を更新し、その更新を他の商品データ検索装置へ通知するため、当該有効期限の更新通知を受けた他の商品データ検索装置は、前記した管理ＩＤで識別されるデータの有効期限を更新することで、商品データ検索装置間のキャッシュデータ、およびデータベース中のデータとメモリキャッシュ間のデータの不整合が軽減できる。
【発明の効果】
【０００７】
本発明によれば、従来、コマースサーバ毎に独立してメモリキャッシュを作成していたものを、管理ＩＤで識別されるデータを更新する場合に有効期限を更新し、その更新を他の商品データ検索装置へ通知するため、商品データ検索装置間のキャッシュデータ間の不整合を軽減することができる。従って、例えば、在庫管理等において混乱を来たすことなく、信頼性の高い商品テータ管理装置を用いた電子ショッピングシステムを構築できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の商品データ検索装置につき、クライアント装置から要求された商品データを複数のコマースサーバ上のメモリキャッシュから取得する電子ショッピングシステムを例示して説明する。
【０００９】
図１は、本発明の商品データ管理装置が構築される電子ショッピングシステムの概略構成を示す図である。
図１に示す様に本実施形態の電子ショッピングシステムは、Ｗｅｂサーバ１０１と、コマースサーバ１０２と、ＤＢサーバ１０３と、クライアント装置１１１〜１１４と、ＩＰ（Internet Protocol）網等のネットワーク１２０とを有している。
【００１０】
Ｗｅｂサーバ１０１は、クライアント装置１１１〜１１４から要求されたデータをキャッシュ管理装置であるコマースサーバ１０２から取得して要求元へ送信するデータ処理装置であり、この電子ショッピングシステムでの商品購入の際に用いられるＷｅｂページを作成してクライアント装置１１１〜１１４へ送信する情報処理装置である。
コマースサーバ１０２は、ＤＢサーバ１０３のデータベースへのアクセス処理でアクセスされたデータを記憶装置上のメモリキャッシュへ格納して管理するキャッシュ管理装置であり、この電子ショッピングシステムでの商品の販売に伴うＤＢサーバ１０３へのアクセスや、購入商品のバスケット処理、購入代金支払い時の与信処理等を行う情報処理装置である。
【００１１】
図１の様に本実施形態の電子ショッピングシステムでは、複数のコマースサーバ１０２のそれぞれに複数のＷｅｂサーバ１０１が接続されているものとする。
ＤＢサーバ１０３は、商品データや在庫データを格納しているデータベースを管理する情報処理装置である。クライアント装置１１１〜１１４は、ユーザからの商品データの検索条件や購入指示等の入力を受け付けてＷｅｂサーバ１０１へ送信し、商品データの検索結果や商品の購入状況等を示すページデータを受信して表示する処理装置である。ネットワーク１２０は、クライアント装置１１１〜１１４とＷｅｂサーバ１０１とを接続するインターネット等の通信回線である。
なお、負荷分散装置１０４は、クライアント装置１１１〜１１４からの要求を各Ｗｅｂサーバ１０１へ振り分けるために用意されたハードウェアであり、本発明を実施するうえで必須ではない。
【００１２】
図２は本実施形態のメモリキャッシュを用いたデータ処理の処理概要を示す図である。図２に示すように本実施形態のメモリキャッシュ４０８は、ＤＢサーバ１０３のデータベース（ＤＢ）より取得した検索結果を、コマースサーバ１０２（図１参照）のメモリ上に展開し、保持しているメモリ領域であり、商品データの検索結果と管理情報全てのメモリ領域を指すものとする。
セッションキャッシュは、前記したメモリキャッシュの内、ユーザ（セッション）単位に管理されることを想定したメモリ領域であり、グローバルキャッシュは、前記したメモリキャッシュの内、ユーザ単位ではなく、電子ショッピングシステム全体で管理されることを想定したメモリ領域である。また本実施形態では、検索結果と管理情報からなる、１検索結果をメモリ上に保持する単位として「キャッシュ面」という用語を用いるものとする。前記したセッションキャッシュ、グローバルキャッシュ共にキャッシュ管理部４１１によって制御される。詳細は後記する。
【００１３】
図３は本実施形態のＷｅｂサーバ１０１の概略構成を示す図である。図３に示す様に本実施形態のＷｅｂサーバ１０１は、ＣＰＵ３０１と、メモリ３０２と、磁気ディスク装置３０３と、入力装置３０４と、出力装置３０５と、ＣＤ−ＲＯＭ装置３０６と、通信装置３０７で構成される。
【００１４】
ＣＰＵ３０１は、Ｗｅｂサーバ１０１全体の動作を制御する装置である。メモリ３０２は、ＣＰＵ３０１がＷｅｂサーバ１０１全体の動作を制御する際にその為の各種処理プログラムやデータをロードする記憶装置である。
磁気ディスク装置３０３は、前記各種処理プログラムやデータを格納しておく記憶装置である。入力装置３０４は、作成するＷｅｂページの定義情報や、予めＷｅｂサーバ１０１によって指定された検索条件を識別する為の目的コードやカテゴリコード等の各種入力を行う装置である。
出力装置３０５は、Ｗｅｂページの作成に伴う各種出力を行う装置である。ＣＤ−ＲＯＭ装置３０６は、前記各種処理プログラムを記録したＣＤ−ＲＯＭの内容を読み出す装置である。通信装置３０７は、インターネットやイントラネット等のネットワーク１２０を介して他の処理装置との通信を行う装置である。
【００１５】
Ｗｅｂサーバ１０１は、ページ作成処理部３１１と、セッションデータ取得処理部３１２と、グローバルデータ取得処理部３１３と、データ更新処理部３１４で構成される。
ページ作成処理部３１１は、データの検索要求及び更新要求をクライアント装置１１１〜１１４（図１参照）から受信して、その受信した検索要求及び更新要求によって要求されたデータの取得及び更新を指示し、その指示により取得されたデータを検索要求及び更新要求元へ送信するデータ取得制御部であり、要求された商品データを表示するためのＷｅｂページを作成してクライアント装置１１１〜１１４に送信する処理部である。
セッションデータ取得処理部３１２は、前記したデータの取得指示を受け付けて、前記した検索要求により検索される検索対象のデータを識別する為の管理ＩＤを当該検索要求の内容に応じて生成し、その生成された管理ＩＤで識別されるデータをコマースサーバ１０２から取得するデータ取得処理部であり、検索要求元で入力された、例えば、３千円程度の赤いマフラーがほしい等の検索条件が検索要求中に含まれている場合に、その検索条件の入力が行われたセッションを識別するための端末ＩＤを用いて前記管理ＩＤを生成し、データを取得する処理部である。
【００１６】
また、グローバルデータ取得処理部３１３は、セッションデータ取得処理部３１２と同様に管理ＩＤで識別されるデータをコマースサーバ１０２から取得するデータ取得処理部であり、予め指定された検索条件が検索要求中に含まれている場合に、その検索条件を識別する為の目的コードやカテゴリコード等の識別情報を用いて前記管理ＩＤを生成し、データを取得する処理部である。
データ更新処理部３１４は、前記したデータの更新指示を受け付けて、前記した更新要求の対象となるデータを識別するための管理ＩＤを更新要求内容に応じて生成し、その生成された管理ＩＤで識別されるデータの更新をコマースサーバ１０２に要求する処理部である。
【００１７】
図４は本実施形態のコマースサーバ１０２の概略構成を示す図である。図４に示す様に本実施形態のコマースサーバ１０２は、ＣＰＵ４０１と、メモリキャッシュ４０８を含むメモリ４０２と、磁気ディスク装置４０３と、入力装置４０４と、出力装置４０５と、ＣＤ−ＲＯＭ装置４０６と、通信装置４０７で構成される。
【００１８】
ＣＰＵ４０１は、コマースサーバ１０２全体の動作を制御する装置である。メモリ４０２は、コマースサーバ１０２全体の動作を制御する際にそのための各種処理プログラムやデータをロードする記憶装置である。
磁気ディスク装置４０３は、前記した各種処理プログラムやコンフィギュレーション情報や各種データを格納しておく記憶装置である。ここで、コンフィギュレーション情報とは、あらかじめシステム管理者により設定定義され、磁気ディスク装置等の記憶部に記憶される情報であり、例えば、商品在庫数の閾値等、キャッシュデータの有効期限を更新するための指定条件（ａ）、当該キャッシュデータの有効期限（ｂ）、キャッシュデータの更新によって影響を受ける（同期を要する）他のコマースサーバのアドレス（ｃ）がそれぞれファイル定義されているものとする。いずれも詳細は後述する。
【００１９】
入力装置４０４は、メモリキャッシュ４０８の商品の管理、商品の販売に伴うＤＢサーバ１０３へのアクセス、購入商品のバスケット処理や、購入代金支払い時の与信処理等に関する各種入力を行う装置である。
出力装置４０５は、メモリキャッシュ４０８の管理状況や商品の売買状況の表示等、キャッシュ管理処理及び電子ショッピング処理の実行に伴う各種出力を行う装置である。ＣＤ−ＲＯＭ装置４０６は、前記各種処理プログラムを記録したＣＤ−ＲＯＭの内容を読み出す装置である。
通信装置４０７は、インターネットやイントラネット等のネットワーク１２０を介して他の処理装置との通信を行う装置である。メモリキャッシュ４０８は、ＤＢサーバ１０３のデータベースへの検索処理で検索されたレコードデータを格納したキャッシュデータと、これらのデータを管理するための管理情報を格納したキャッシュテーブル及びマップを保持するメモリ領域である。
【００２０】
またコマースサーバ１０２は、キャッシュ管理部４１１と、キャッシュデータ抽出処理部４１２と、キャッシュデータ格納処理部４１３と、キャッシュデータ同期処理部４１４とを有している。
【００２１】
キャッシュ管理部４１１は、メモリキャッシュ４０８中のデータを識別するための管理ＩＤを受信して、その受信した管理ＩＤで識別されるデータのメモリキャッシュ４０８からの抽出をキャッシュデータ抽出処理部４１２に指示し、その指示により抽出されたデータを当該データの取得要求元へ送信する処理部であり、前記管理ＩＤで識別されるデータがメモリキャッシュ４０８から抽出されなかった場合には、ＤＢサーバ１０３のデータベースに対する検索処理を実行して前記したデータを含む検索結果をデータベースから取得してメモリキャッシュ４０８への格納を指示する処理部である。
キャッシュデータ抽出処理部４１２は、前記データの抽出指示を受け付けて、前記管理ＩＤで識別されるデータをメモリキャッシュ４０８から抽出する処理部である。キャッシュデータ格納処理部４１３は、前記検索結果中のデータを前記管理ＩＤと対応付けてメモリキャッシュ４０８中に格納する処理部である。キャッシュデータ同期処理部４１４は、データ更新処理部３１４からデータベースの更新指示及びメモリキャッシュ４０８中のデータを識別する為の管理ＩＤを受信して、データベースを更新し、コンフィギュレーション情報に基づいて、前記管理ＩＤで識別されるメモリキャッシュ４０８の有効期限を更新し、コンフィギュレーション情報に登録されたコマースサーバへメモリキャッシュの更新を通知する処理部である。
【００２２】
図５は本実施形態のメモリキャッシュ４０８の構成例を示す図である。図５に示す様に本実施形態のメモリキャッシュ４０８は、キャッシュテーブル５００と、キャッシュデータ５１０と、マップ５２０で構成される。
【００２３】
キャッシュテーブル５００は、キャッシュデータ５１０の管理ＩＤや作成された日時等を示すメモリキャッシュ情報を格納するテーブルである。キャッシュデータ５１０は、ＤＢサーバ１０３のデータベースへの検索処理で検索されたレコードデータである。マップ５２０は、管理ＩＤに対応したキャッシュデータ５１０の情報を格納しているキャッシュテーブル５００の位置情報を格納するテーブルである。
キャッシュテーブル５００は、キャッシュＩＤ５０１と、作成日時５０２と、ＤＢヒット件数５０３と、キャッシュレコード数５０４と、キャッシュデータポインタ５０５とを有している。
【００２４】
キャッシュＩＤ５０１は、キャッシュデータポインタ５０５で示されるキャッシュデータ５１０を識別する為の識別情報であり、そのレコードデータが検索されたときに用いられた管理ＩＤと同じものである。
作成日時５０２は、データベース検索が行われ、キャッシュＩＤ５０１で識別されるキャッシュデータ５１０が作成された日時を示す情報である。ＤＢヒット件数５０３は、キャッシュＩＤ５０１で識別されるキャッシュデータ５１０が検索された際にＤＢサーバ１０３でヒットしたレコードの件数を示す情報である。
キャッシュレコード数５０４は、前記ヒットしたレコードの内でメモリキャッシュ４０８内に格納されているレコードの数を示す情報である。キャッシュデータポインタ５０５は、キャッシュＩＤ５０１で識別されるキャッシュデータ５１０が格納されているメモリキャッシュ４０８内の位置を示す情報である。
【００２５】
マップ５２０は、キャッシュＩＤ５２１と、格納位置５２２（キャッシュ内の位置を示す情報）とを有している。
キャッシュＩＤ５２１は、キャッシュテーブル５００に格納されているキャッシュＩＤ５０１と同じ識別情報である。格納位置５２２は、キャッシュＩＤ５２１で識別されるメモリキャッシュ情報が格納されているキャッシュテーブル５００内の位置を示す情報である。
【００２６】
なお、図５に示す、「最大キャッシュ面数」、「最大キャッシュレコード件数」、「自動キャッシュリフレッシュフラグ」、「キャッシュ生存期間」、「新規キャッシュ格納位置」は、メモリキャッシュ４０８中に設定されるキャッシュ面の最大値、各キャッシュ面に格納される最大レコード件数、所定の生存期間経過後にレコードデータ（キャッシュデータ５１０）の更新を行うか否かを示すフラグ、キャッシュデータ有効期間を示す秒数、新規のキャッシュデータを格納する際にメモリキャッシュ情報を格納するキャッシュテーブル５００内の位置をそれぞれ示している。
【００２７】
図５に示すキャッシュＩＤ５０１やキャッシュＩＤ５２１は、前記した管理ＩＤと同じもので、メモリキャッシュ４０８で管理される検索結果をユニークに特定するためのＩＤであり、メモリキャッシュ毎にユニークであるものとする。
このＩＤとしては、セッションキャッシュでは、「端末ＩＤ＋n」を想定し、グローバルキャッシュでは、Ｗｅｂサーバ１０１の上位ユーザプログラムで採番した「目的コード＋カテゴリコード」等のユニークとなるＩＤを想定するものとする。ここで、「端末ＩＤ＋ｎ」の「ｎ」は、Ｗｅｂブラウザの「検索」ボタンが押された場合のカウント数であるものとする。
【００２８】
本実施形態のキャッシュデータ５１０は、キャッシュテーブル５００で管理され、管理ＩＤ（キャッシュＩＤ５２１）とそのメモリキャッシュ情報の格納位置５２２はマップ５２０で管理される。
キャッシュデータ５１０を取得する際、マップ５２０からからキャッシュＩＤ５２１をキーにしてメモリキャッシュ情報の格納位置５２２を求め、その格納位置５２２が指すキャッシュテーブル５００のキャッシュ面から指定された件数分のレコードを取得する。
キャッシュデータ５１０を登録する際には、図５の新規キャッシュ格納位置が指すキャッシュテーブル５００のキャッシュ面にそのメモリキャッシュが登録され、新規キャッシュ格納位置の値が更新される。
【００２９】
次に、本実施形態の電子ショッピングシステムにおいて、インターネット等のネットワーク１２０で接続されたクライアント装置１１１〜１１４から商品データの検索等のデータベースへのアクセス要求が発行された場合の処理手順について、図６のＰＡＤ(Problem Analysis Diagram)と、図３〜図４を参照して説明する。
図６は本実施形態のページ作成処理の処理内容を示す図である。図６に示す様にＷｅｂサーバ１０１のページ作成処理部３１１は、データの検索要求をクライアント装置１１１〜１１４から受信して、その受信した検索要求によって要求されたデータの取得を指示し、要求された商品データを表示する為のＷｅｂページを作成してクライアント装置１１１〜１１４に送信する処理を行う。
【００３０】
具体的には、まず、Ｗｅｂサーバ１０１のページ作成処理部３１１は、インターネット等のネットワーク１２０で接続されたクライアント装置１１１〜１１４から、商品データの検索等のデータベースへのアクセス処理要求（リクエスト）を受信しているか否かを調べ（Ｓ６０１）、当該リクエストを受信している場合にはステップＳ６０２の処理へ進む。
ステップＳ６０２で、ページ作成処理部３１１は、前記受信したリクエストの内容を読み出して、リクエストの内容がデータ更新要求であり、かつ予めＷｅｂサーバ１０１で指定された更新条件（例えば、図７に示すトップページのお薦め商品）がそのリクエスト中に含まれているかどうかを調べ、Ｗｅｂサーバ１０１で指定された更新条件が含まれている場合にはステップＳ６０３の処理へ進む。ステップＳ６０３では、前記読み出した更新要求を指定し、データ更新処理部３１４を呼び出す。
【００３１】
ステップＳ６０４で、ページ作成処理部３１１は、前記受信したリクエストの内容を読み出して、検索要求元のクライアント側で入力された検索条件がそのリクエスト中に含まれているか否かを調べ、クライアント側で入力された検索条件が含まれている場合にはステップＳ６０５の処理へ進む。ページ作成処理部３１１は、ステップＳ６０５で、前記読み出した検索条件を引数として指定し、セッションデータ取得処理部３１２を呼び出して、コマースサーバ１０２のセッションキャッシュからのデータの取得を指示し、コマースサーバ１０２から取得したレコードデータをセッションデータ取得処理部３１２から受け取る。
ステップＳ６０６で、ページ作成処理部３１１は、前記受信したリクエストの内容を読み出して、予めＷｅｂサーバ１０１で指定された前記した検索条件がそのリクエスト中に含まれているかどうかを調べ、Ｗｅｂサーバ１０１で指定された検索条件が含まれている場合にはステップＳ６０７の処理へ進む。ステップＳ６０７では、前記読み出した検索条件を引数として指定し、グローバルデータ取得処理部３１３を呼び出して、コマースサーバ１０２のグローバルキャッシュからのデータの取得を指示し、コマースサーバ１０２から取得したレコードデータをグローバルデータ取得処理部３１３から受け取る。
【００３２】
ステップＳ６０８では、クライアント装置１１１〜１１４から要求された商品データを表示するための商品一覧画面等のＷｅｂページを前記受け取ったレコードデータを基に作成し、ステップＳ６０９では、前記作成したＷｅｂページのページデータを要求元のクライアント装置１１１〜１１４に送信する。
【００３３】
図７は、クライアント装置の画面上に表示される本実施形態の商品一覧画面の一例を示す図である。図７に示す様に、クライアント側で商品一覧画面７００の検索条件入力欄７０１〜７０４に検索条件が入力され、検索ボタン７０５が押されると、コマースサーバ１０２のセッションキャッシュ中のレコードデータを取得し、検索結果リスト７２０として表示する。
また、お薦め商品表示欄７１１〜７１３の様に、Ｗｅｂサーバ１０１で指定された検索条件がＷｅｂページに予め設定定義されている場合には、当該Ｗｅｂページの表示指示の際に、その指定されている検索条件により、コマースサーバ１０２のグローバルキャッシュ中のレコードデータを取得し、お勧め商品表示欄７１１〜７１３にお勧め商品のデータを表示する。
【００３４】
図８は本実施形態のセッションデータ取得処理の処理内容を示す図である。図８に示す様にＷｅｂサーバ１０１のセッションデータ取得処理部３１２は、検索要求元のクライアント装置１１１〜１１４で入力された検索条件が検索要求中に含まれている場合に、その検索条件の入力が行われたセッションを識別するための端末ＩＤを用いて前記した管理ＩＤを生成し、セッションキャッシュ中のレコードデータをコマースサーバ１０２から取得する処理を行う。
【００３５】
具体的には、ステップＳ８０１でＷｅｂサーバ１０１のセッションデータ取得処理部３１２は、前記検索要求が送信された際のＨＴＴＰ(Hyper Text Transfer Protocol)セッションのセッションＩＤを取得した後、これまでに検索要求を受け付けたクライアントの端末ＩＤを格納しているメモリ（磁気ディスク装置３０３）中の端末ＩＤと比較し、前記検索要求が新たなクライアントからの最初のアクセスであるか否かを調べる。
前記比較を行った結果、新たなクライアントによる最初のアクセスである場合にはステップＳ８０２の処理に進み、そのクライアントのセッションＩＤを端末ＩＤとしてメモリ３０２中に格納した後、その端末ＩＤに対応するカウント値ｎを初期化する。
また、セッションデータ取得処理部３１２は、前記した比較を行った結果、これまでに検索要求を受け付けているクライアントからのアクセスである場合（最初のアクセスでない場合）には、ステップＳ８０３の処理に進み、そのクライアントの端末ＩＤと当該端末ＩＤに対応するカウント値ｎをメモリ３０２から読み出す。
【００３６】
ステップＳ８０４では、セッションデータ取得処理部３１２は、ページ作成処理部３１１から受け取っている検索条件の内容を参照し、図７の検索ボタン７０５の押下による検索指示であるかまたは前ページボタン７２１や次ページボタン７２２の押下による検索指示であるかを調べる。その結果、検索ボタン７０５の押下による検索指示である場合には、検索条件の変更を伴うものであると見做してステップＳ８０５へ進み、ステップＳ８０８で読み出したカウント値ｎに「１」を加算する。ここで、ボタンの種類によらず、前記検索条件から検索条件入力欄７０１〜７０４に入力された内容を抽出してメモリ３０２に格納しておき、その内容の変化を検出することにより検索条件の変更の有無を検出するものとしても良い。
ステップＳ８０６では、セッションデータ取得処理部３１２は、前記端末ＩＤとカウント値ｎの値を組み合わせて管理ＩＤを生成する。例えば、前記端末ＩＤとカウント値ｎを文字型として結合して文字型の管理ＩＤを生成する。ステップＳ８０７では、前記検索条件からレコードデータの取得開始位置（ポインタ）と取得件数を示す情報を抽出した後、前記生成した管理ＩＤ、前記検索条件、前記抽出した取得開始位置及び取得件数等の情報を引数として指定してセッションキャッシュ中のレコードデータの取得をコマースサーバ１０２へ要求し、前記取得開始位置から取得件数までのレコードデータをコマースサーバ１０２から受信してページ作成処理部３１１へ渡す。
【００３７】
前記した様に本実施形態では、取得開始位置及び取得件数で指定した必要なレコードデータのみを受信しているため、セッションキャッシュ中におけるレコードデータの取得の際に、Ｗｅｂサーバ１０１とコマースサーバ１０２とのデータ転送量を抑えることができる。
また前記の様にセッションデータ取得処理部３１２では、端末ＩＤとカウント値ｎを用いて管理ＩＤを生成しているが、検索条件から検索条件入力欄７０１〜７０４に入力された内容を抽出してこれを管理ＩＤとしても良い。端末ＩＤを用いて管理ＩＤを生成した場合には、その管理ＩＤに対応するセッションキャッシュ中のレコードデータは当該端末ＩＤで識別されるクライアントのみで使われることになるが、検索条件から管理ＩＤを生成した場合には、同じ検索条件を入力した複数のクライアント間でセッションキャッシュ中のレコードデータを共有することが可能である。
【００３８】
図９は本実施形態のグローバルデータ取得処理の処理内容を示す図である。図９に示す様にＷｅｂサーバ１０１のグローバルデータ取得処理部３１３は、予めＷｅｂサーバ１０１で指定された検索条件が検索要求中に含まれている場合に、その検索条件を識別する為の目的コードやカテゴリコード等の識別情報を用いて前記管理ＩＤを生成し、グローバルキャッシュ中のレコードデータをコマースサーバ１０２から取得する処理を行う。
【００３９】
具体的には、ステップＳ９０１でＷｅｂサーバ１０１のグローバルデータ取得処理部３１３は、ページ作成処理部３１１から受け取っている検索条件の内容を参照し、Ｗｅｂサーバ１０１で指定された検索条件を識別する為の目的コードやカテゴリコード等の識別情報を読み出す。例えば、目的コードとしては、お薦め商品の検索、タイムセール品の検索や予約品の検索を識別するための番号が用いられ、また、それらの商品の「カメラ」や「家電品」等を示すカテゴリコード、その商品が属するジャンルを示すジャンルコード等を前記識別情報として読み出す。
ステップＳ９０２では、グローバルデータ取得処理部３１３は、前記目的コードやカテゴリコード等の識別情報を組み合わせて管理ＩＤを生成する。例えば、前記目的コードやカテゴリコードを文字型として結合して文字型の管理ＩＤを生成する。
ステップＳ９０３では、グローバルデータ取得処理部３１３は、前記検索条件からレコードデータの取得開始位置と取得件数を示す情報を抽出した後、前記生成した管理ＩＤ、前記検索条件、前記抽出した取得開始位置及び取得件数等の情報を引数として指定してグローバルキャッシュ中のレコードデータの取得をコマースサーバ１０２へ要求し、前記取得開始位置から取得件数までのレコードデータをコマースサーバ１０２から受信してページ作成処理部３１１へ渡す。
【００４０】
前記した様に本実施形態では、取得開始位置及び取得件数で指定した必要なレコードデータのみを受信しているので、グローバルキャッシュ中におけるレコードデータの取得の際にも、Ｗｅｂサーバ１０１とコマースサーバ１０２とのデータ転送量を抑えることができる。
また前記の様にグローバルデータ取得処理部３１３では、検索条件に対応する目的コードやカテゴリコード等の識別情報を用いて管理ＩＤを生成しているため、同じ検索条件を含むＷｅｂページを参照した複数のクライアント間でグローバルキャッシュ中のレコードデータを共有することが可能である。
【００４１】
図１０は、本実施形態のデータ更新処理の処理内容を示す図である。図１０に示す様にＷｅｂサーバ１０１のデータ更新処理部３１４は、予めＷｅｂサーバ１０１で指定された更新条件が更新要求中に含まれている場合に、その更新条件を識別する為の目的コードやカテゴリコード等の識別情報を用いて前記管理ＩＤを生成し、データベースの更新、グローバルキャッシュ中におけるレコードデータの有効期限の更新及びコマースサーバ間の同期処理をコマースサーバ１０２に要求する処理を行う。
【００４２】
具体的には、ステップＳ１００１でＷｅｂサーバ１０１のデータ更新処理部３１４は、ページ作成処理部３１１から受け取っている更新条件の内容を参照し、Ｗｅｂサーバ１０１で指定された更新条件を識別するための目的コードやカテゴリコード等の識別情報を読み出す。ここで、更新条件の識別情報はグローバルデータ取得処理部３１３で使用した識別情報と同じものである。
ステップＳ１００２では、データ更新処理部３１４は、前記目的コードやカテゴリコード等の識別情報を組み合わせて管理ＩＤを生成する。例えば、前記した目的コードやカテゴリコードを文字型として結合して文字型の管理ＩＤを生成する。この管理ＩＤは、検索及び更新条件が同じであればグローバルデータ取得処理部３１３で生成する管理ＩＤと同じＩＤとなるように生成される。ステップＳ１００３では、前記生成した管理ＩＤと前記更新要求を引数として指定して、データベースの更新、グローバルキャッシュ中におけるレコードデータの有効期限の更新及びコマースサーバ間のキャッシュデータ同期処理をコマースサーバ１０２へ要求する。
【００４３】
前記の様にデータ更新処理部３１４では、更新条件に対応する目的コードやカテゴリコード等の識別情報を用いて管理ＩＤを生成しているので、同じ更新条件を含むＷｅｂページを参照した複数のクライアント間でグローバルキャッシュ中のレコードデータを共有することが可能である。
【００４４】
図１１は本実施形態のキャッシュ管理の処理内容を示す図である。図１１に示す様にコマースサーバ１０２のキャッシュ管理部４１１は、メモリキャッシュ４０８中のデータを識別する為の管理ＩＤを受信して、その受信した管理ＩＤで識別されるデータのメモリキャッシュ４０８からの抽出を指示し、その指示により抽出されたデータを当該データの取得要求元へ送信する処理や、前記管理ＩＤで識別されるデータがメモリキャッシュ４０８から抽出されなかった場合に、ＤＢサーバ１０３のデータベースに対する検索処理を実行して前記データを含む検索結果をデータベースから取得してメモリキャッシュ４０８への格納を指示する処理を行う。
【００４５】
具体的には、ステップＳ１１０１でコマースサーバ１０２のキャッシュ管理部４１１は、Ｗｅｂサーバ１０１からメモリキャッシュ４０８中のキャッシュデータ５１０の取得要求を受信すると、その取得要求から管理ＩＤ、取得開始位置及び取得件数を読み出してステップＳ１１０２の処理へ進む。
ステップ１１０２では、キャッシュ管理部４１１は、前記読み出した管理ＩＤ、取得開始位置及び取得件数等の情報を引数として指定してキャッシュデータ抽出処理部４１２を呼び出し、前記管理ＩＤで識別されるレコードデータのメモリキャッシュ４０８からの抽出をキャッシュデータ抽出処理部４１２に指示する。そして、その管理ＩＤで識別されるキャッシュデータ５１０中の前記取得開始位置から取得件数までのレコードデータと、キャッシュデータ抽出処理の処理結果を示す戻り値をキャッシュデータ抽出処理部４１２から受け取る。
【００４６】
次に、ステップＳ１１０３では、キャッシュ管理部４１１は、前記受け取った戻り値の値を調べ、戻り値がＮＵＬＬである場合には、キャッシュデータ抽出処理に失敗したものとしてステップＳ１１０４の処理へ進む。ステップＳ１１０４では、ステップＳ１１０１でＷｅｂサーバ１０１から受信した取得要求から検索条件を読み出してＤＢサーバ１０３へ送信し、前記検索条件による検索処理で得られた商品データ検索結果をＤＢサーバ１０３から受信する。
ステップＳ１１０５では、ＤＢサーバ１０３から受信した検索結果から、前記取得開始位置から取得件数までのレコードデータを抽出する。ステップＳ１１０６では、検索されたレコードデータとＤＢヒット件数を前記検索結果から読み出した後、前記管理ＩＤ、前記読み出したレコードデータ及びＤＢヒット件数等の情報を引数として指定してキャッシュデータ格納処理部４１３を呼び出し、ＤＢサーバ１０３で検索されたレコードデータのメモリキャッシュ４０８中への格納をキャッシュデータ格納処理部４１３に指示する。ステップＳ１１０７では、ステップＳ１００２でキャッシュデータ抽出処理部４１２から受け取ったレコードデータ、または、ステップＳ１１０５でＤＢサーバ１０３から受信した検索結果から抽出したレコードデータをＷｅｂサーバ１０１へ送信する。
【００４７】
図１２は本実施形態のキャッシュデータ抽出処理の処理内容を示す図である。図１２に示す様にコマースサーバ１０２のキャッシュデータ抽出処理部４１２は、前記データの抽出指示を受け付けて、前記管理ＩＤで識別されるデータをメモリキャッシュ４０８から抽出する処理を行う。
【００４８】
具体的には、ステップＳ１２０１でコマースサーバ１０２のキャッシュデータ抽出処理部４１２は、キャッシュ管理部４１１から渡された引数をチェックし、引数として渡された管理ＩＤがＮＵＬＬである場合等のエラーが検出されなかった場合にはステップＳ１２０２の処理へ進み、現在日時を示す情報を取得する。
ステップＳ１２０３では、キャッシュデータ抽出処理部４１２は、マップ５２０を参照して、前記管理ＩＤと一致するキャッシュＩＤ５２１がマップ５２０に存在しているか否かを調べ、存在していない場合にはステップＳ１２０４の処理に進み、キャッシュ管理部４１１へ返すアウトパラメータ（関数に渡す引数を更新するデータ）に「−１」を設定した後、戻り値にＮＵＬＬを設定して処理を終了する。
【００４９】
一方、前記管理ＩＤと一致するキャッシュＩＤ５２１がマップ５２０に存在している場合にはステップＳ１２０５の処理に進み、そのキャッシュＩＤ５２１に対応する格納位置５２２で示されたキャッシュテーブル５００のメモリキャッシュ情報を参照し、ＤＢヒット件数５０３を読み出してアウトパラメータに設定する。
ステップＳ１２０６では、キャッシュデータ抽出処理部４１２は、前記対応する格納位置５２２のキャッシュテーブル５００から作成日時５０２を読み出して前記現在日時と比較し、対応するキャッシュデータ５１０が作成されてから所定の生存期限が経過しているか否かを調べる。前記所定の生存期間が経過している場合には対応するキャッシュデータ５１０が期限切れであるものとして、戻り値にＮＵＬＬを設定して処理を終了する。
【００５０】
ステップＳ１２０７では、キャッシュデータ抽出処理部４１２は、前記対応する格納位置５２２のキャッシュテーブル５００からキャッシュレコード数５０４を読み出して、前記読み出したＤＢヒット件数５０３と比較し、キャッシュレコード数５０４がＤＢヒット件数５０３よりも小さい場合にはステップＳ１２０８の処理へ進む。
ステップＳ１２０８では、キャッシュデータ抽出処理部４１２は、キャッシュ管理部４１１から渡された取得開始位置からのオフセットとＤＢヒット件数５０３とを比較し、前記取得開始位置からのオフセットがＤＢヒット件数５０３以下である場合にはステップＳ１２０９の処理へ進む。ステップＳ１２０９では、前記取得開始位置からのオフセットがキャッシュレコード数（図５の５０４）よりも大きいか、キャッシュ管理部４１１から渡された取得件数が無制限であるか、キャッシュレコード数５０４が取得終了位置（取得開始位置＋取得件数−１）よりも小さいか否かを判定し、何れかに該当する場合には、キャッシュデータ５１０に保持されていないレコードが取得対象に含まれているものとして、戻り値にＮＵＬＬを設定して処理を終了する。
【００５１】
ステップＳ１２１０では、キャッシュデータ抽出処理部４１２は、前記対応する格納位置５２２のキャッシュテーブル５００からキャッシュデータポインタ５０５を読み出して、そのポインタで示されるキャッシュデータ５１０から、前記取得開始位置から取得件数までのレコードデータを抽出し、その抽出したレコードデータを戻り値に設定して処理を終了する。
前記の様に本実施形態のキャッシュデータ抽出処理では、キャッシュデータ５１０からのレコードの抽出に失敗した場合に戻り値にＮＵＬＬが設定される。なお、取得開始位置がＤＢヒット件数５０３よりも大きい場合は、レコードの抽出失敗ではなく、０件のレコードが抽出されるものとして扱う。
【００５２】
図１３は、本実施形態のキャッシュデータ格納処理の処理内容を示す図である。図１３に示す様にコマースサーバ１０２のキャッシュデータ格納処理部４１３は、前記検索結果中のデータを前記管理ＩＤと対応付けてメモリキャッシュ４０８中に格納する処理を行う。
【００５３】
具体的には、ステップＳ１３０１でコマースサーバ１０２のキャッシュデータ格納処理部４１３は、キャッシュ管理部４１１から渡された引数をチェックし、引数として渡された管理ＩＤがＮＵＬＬである場合等のエラーが検出されなかった場合にはステップＳ１３０２の処理へ進み、現在日時を示す情報を取得する。
ステップＳ１３０３では、キャッシュデータ格納処理部４１３は、ＤＢサーバ１０３で検索され、キャッシュ管理部４１１から渡されたレコードデータから、起動時に設定されている最大キャッシュレコード件数に該当するレコードを抽出してキャッシュデータ５１０の空き領域へ格納する。
ステップＳ１３０４では、キャッシュデータ格納処理部４１３は、新規キャッシュ格納位置で示されるキャッシュテーブル５００のメモリキャッシュ情報を参照して、その位置にデータが格納されているかどうかを調べ、データが格納されている場合（存在）にはステップＳ１３０５の処理へ進む。
【００５４】
ステップＳ１３０５では、キャッシュデータ格納処理部４１３は、新規キャッシュ格納位置で示されるキャッシュテーブル５００からキャッシュＩＤ５０１を読み出した後、そのキャッシュＩＤ５０１とマップ５２０中のキャッシュＩＤ５２１とを比較して、キャッシュＩＤ５０１がマップ５２０に登録されているかどうかを調べ、登録されている場合にはステップＳ１２０６の処理へ進み、そのキャッシュＩＤ５２１および格納位置５２２をマップ５２０から削除する。
ステップＳ１３０７では、キャッシュデータ格納処理部４１３は、新規キャッシュ格納位置で示されるキャッシュテーブル５００からキャッシュデータポインタ５０５を読み出した後、そのキャッシュデータポインタ５０５がＮＵＬＬであるか否かを調べ、ＮＵＬＬでない場合にはステップＳ１３０８の処理へ進む。
【００５５】
ステップＳ１３０８では、キャッシュデータ格納処理部４１３は、前記読み出したキャッシュデータポインタ５０５で示される格納位置に格納されているキャッシュデータ５１０をクリアして削除し、ステップＳ１３０９では、新規キャッシュ格納位置で示されるキャッシュテーブル５００のキャッシュデータポインタ５０５にＮＵＬＬを格納（代入）する。
ステップＳ１３１０では、キャッシュデータ格納処理部４１３は、新規キャッシュ格納位置で示されるキャッシュテーブル５００のキャッシュＩＤ５０１、作成日時５０２、ＤＢヒット件数５０３、キャッシュレコード数５０４及びキャッシュデータポインタ５０５に、キャッシュ管理部４１１から渡された管理ＩＤ、ステップ１３０２で取得した現在日時の情報、キャッシュ管理部４１１から渡されたＤＢヒット件数、起動時に設定されている最大キャッシュレコード件数、ステップ１３０３で抽出して格納した先頭レコードへのポインタをそれぞれ格納し、キャッシュテーブル５００への登録を行う。
【００５６】
ステップＳ１３１１では、キャッシュデータ格納処理部４１３は、マップ５２０を参照し、前記登録したキャッシュＩＤ５０１がキャッシュテーブル５００の他の位置に格納されているかどうかを調べ、他の位置に存在する場合にはステップＳ１３１２の処理へ進む。
ステップＳ１３１２では、キャッシュデータ格納処理部４１３は、その位置のキャッシュテーブル５００からキャッシュデータポインタ５０５を読み出した後、そのキャッシュデータポインタ５０５がＮＵＬＬであるか否かを調べ、ＮＵＬＬでない場合にはステップＳ１３１３の処理へ進む。
ステップＳ１３１３では、キャッシュデータ格納処理部４１３は、前記読み出したキャッシュデータポインタ５０５で示される格納位置に格納されているキャッシュデータ５１０をクリアして削除し、ステップ１３１４では、前記位置のキャッシュテーブル５００のキャッシュデータポインタ５０５にＮＵＬＬを格納（代入）する。
【００５７】
ステップＳ１３１５では、その位置のキャッシュテーブル５００の内容を初期化した後、ステップＳ１３１６では、その位置を示していたキャッシュＩＤ５２１と格納位置５２２をマップ５２０から削除する。
ステップＳ１３１７では、キャッシュデータ格納処理部４１３は、ステップＳ１３１０で登録したキャッシュＩＤ５０１とキャッシュテーブル５００の位置をマップ５２０へ登録する。またステップＳ１３１８では、新規キャッシュ格納位置に「１」を加算して更新し、加算後の値がキャッシュテーブル５００の最後尾（最大キャッシュ面数−１）の位置を超える場合には、新規キャッシュ格納位置に「０」を設定する。
【００５８】
図１４は、本実施形態のキャッシュデータ同期処理の処理内容を示す図である。図１４に示す様にコマースサーバ１０２のキャッシュデータ同期処理部４１４は、データ更新処理部３１４からの更新処理要求を受け付けて、データベースの更新を行い、更新結果が予めコンフィギュレーションファイルに指定された条件と一致した場合に指定の管理ＩＤで識別されるキャッシュデータの有効期限を更新し、キャッシュデータが更新されたことを他のコマースサーバに通知する処理を行う。
【００５９】
具体的には、ステップＳ１４０１でコマースサーバ１０２のキャッシュデータ同期処理部４１４は、Ｗｅｂサーバ１０１から渡された引数をチェックし、引数として渡された管理ＩＤがＮＵＬＬである場合等のエラーが検出されなかった場合にはステップＳ１４０２へ進み、現在日時を示す情報を取得する。
ステップＳ１４０３では、キャッシュデータ同期処理部４１４は、Ｗｅｂサーバ１０１から渡された更新要求に基づきデータベースを更新し、エラー等が検出されなかった場合はステップＳ１４０４の処理へ進む。ステップＳ１４０４では、キャッシュデータ同期処理部４１４は、前記データベースの更新内容が予めコンフィギュレーションファイルに指定された条件と一致していない場合は処理を終了する。また、指定の条件に一致した場合はステップ１４０５に進む。
【００６０】
ステップＳ１４０５では、キャッシュデータ同期処理部４１４は、マップ５２０を参照して、Ｗｅｂサーバ１０１から渡された管理ＩＤと一致するキャッシュＩＤ５２１がマップ５２０に存在しているか否かを調べ、存在していない場合には処理を終了する。キャッシュＩＤ５２１がマップ５２０に存在する場合はステップＳ１４０６の処理に進む。
ステップＳ１４０６では、キャッシュデータ同期処理部４１４は、前記対応する格納位置５２２のキャッシュテーブル５００から作成日時５０２を読み出して前記現在日時と比較し、対応するキャッシュデータ５１０が作成されてから所定の生存期限が経過しているか否かを調べる。前記所定の生存期間が経過している場合には対応するキャッシュデータ５１０が期限切れであるものとして、処理を終了する。前記キャッシュデータ５１０が生存期間内の場合はステップＳ１４０７の処理へ進む。
【００６１】
ステップＳ１４０７では、キャッシュデータ同期処理部４１４は、生存期間を予めコンフィギュレーションファイルに設定している内容に変更し、ステップＳ１４０８の処理へ進む。例えば、お薦め商品の在庫数が一定の値より少なくなれば、キャッシュの生存期間を短くすることでデータベースとキャッシュデータの不整合を低減することができる。ステップＳ１４０８では、キャッシュデータ同期処理部４１４は、生存期間の更新を予めコンフィギュレーションファイルに登録してあるコマースサーバに通知する。
【００６２】
以上説明した様に本実施形態のデータ処理システムによれば、データベースの更新処理において、更新後の条件によりキャッシュデータの有効期限を更新し、他のコマースサーバへキャッシュデータの更新を通知し同期を取るため、複数のコマースサーバ間におけるキャッシュデータの不整合を軽減することが可能である。
【００６３】
以上説明のように、本発明によれば、例えば、インターネット等のネットワーク１２０を介して接続されたクライアント装置１１１〜１１４から商品データ更新等のデータベースへのアクセス要求が発行されると、Ｗｅｂページを作成するＷｅｂサーバ１０１はそのアクセス要求を受信し、その受信したアクセス要求によって要求されているデータの更新をＷｅｂサーバ１０１内のデータ更新処理部３１４へ指示する。そして、データ更新処理部３１４では、そのアクセス要求によりアクセスされる対象データを識別する管理ＩＤを当該アクセス要求の内容に応じて生成し、その生成された管理ＩＤで識別されるデータの更新及び同期処理をコマースサーバ１０２へ要求する。
【００６４】
Ｗｅｂサーバ１０１のデータ更新処理部３１４は、アクセス要求元のクライアント装置１１１〜１１４で入力されたアクセス条件が前記アクセス要求中に含まれている場合には、そのアクセス条件の入力が行われたセッションを識別するための端末ＩＤに基づいて前記した管理ＩＤを生成し、また、あらかじめＷｅｂサーバ１０１によって指定されたアクセス条件がアクセス要求中に含まれている場合には、そのアクセス条件を識別するための識別情報を用いて前記した管理ＩＤを生成する。
例えば、アクセス要求が、ユーザによって入力された検索条件による商品データの検索要求である場合には、そのセッションを識別する端末ＩＤを用いて管理ＩＤを生成し、また、あらかじめＷｅｂサーバ１０１によって指定されたお薦め商品等の検索である場合には、その検索条件を識別するための識別情報として、お薦め商品の検索であることを示す目的コードや、検索対象の商品を示すカテゴリコード等を用いて管理ＩＤを生成する。
【００６５】
一方、コマースサーバ１０２のキャッシュ管理部４１１は、前記した更新処理要求により送信された管理ＩＤを受信して、その受信した管理ＩＤで識別されるデータの同期処理をキャッシュデータ同期処理部４１４に指示する。
キャッシュデータ同期処理部４１４は、データの同期処理指示を受け付けた後、データベース上のデータを更新し、予めコンフィギュレーションファイルに定義している条件と一致した場合、前記管理ＩＤで識別されるデータの有効期限をコンフィギュレーションファイルに定義している有効期限に更新する。ここで、管理ＩＤで識別されるデータがメモリキャッシュ上に存在しなかった場合は有効期限の更新は行わない。また、コンフィギュレーションファイルに定義している他のコマースサーバへ前記管理ＩＤで識別されるデータの有効期限の更新を通知する。当該有効期限の更新通知を受けたコマースサーバは、前記した管理ＩＤで識別されるデータの有効期限を更新する。
【００６６】
このことにより従来、コマースサーバ毎に独立してメモリキャッシュを作成していたものを、管理ＩＤで識別されるデータを更新する場合に有効期限を更新し、その更新を他のコマースサーバへ通知するため、コマースサーバ間のキャッシュデータ、およびデータベース中のデータとメモリキャッシュ間のデータの不整合を軽減することができる。従って、例えば、在庫管理等において混乱を来たすことなく、信頼性の高い電子ショッピングシステムを構築するものである。
なお、前記した本実施形態によれば、Ｗｅｂサーバ１０１、コマースサーバ１０２、ＤＢサーバ１０３のそれぞれで負荷分散しながら本発明の商品データ検索装置を構成する例についてのみ示したが、コマースサーバ１０２を、データ更新処理部と同期処理部で構成することで、コマースサーバ１０２単独で本発明の商品データ検索装置を実現することも可能である。
【００６７】
また、Ｗｅｂサーバ１０１をページ作成処理部３１１、セッションデータ取得処理部３１２、グローバルデータ取得処理部３１３、データ更新処理部３１４として、また、コマースサーバ１０２をキャッシュ管理部４１１、キャッシュデータ抽出処理部４１２、キャッシュデータ格納処理部４１３及びキャッシュデータ同期処理部４１４として機能させるためのプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施形態の電子ショッピングシステムの概略構成を示す図である。
【図２】図１のメモリキャッシュを用いたデータ処理の処理概要を示す図である。
【図３】図１のＷｅｂサーバの概略構成を示す図である。
【図４】図１のコマースサーバの概略構成を示す図である。
【図５】図１のコマヘスサーバのメモリキャッシュの構成例を示す図である。
【図６】図１のＷｅｂサーバのページ作成処理の処理内容を示す図である。
【図７】図１のクライアントの画面上に表示される商品一覧画面の一例を示す図である。
【図８】図１のＷｅｂサーバのセッションデータ取得処理の処理内容を示す図である。
【図９】図１のＷｅｂサーバのグローバルデータ取得処理の処理内容を示す図である。
【図１０】図１のＷｅｂサーバのデータ更新処理の処理内容を示す図である。
【図１１】図１のＷｅｂサーバのキャッシュ管理処理の処理内容を示す図である。
【図１２】図１のコマースサーバのキャッシュデータ抽出処理の処理内容を示す図である。
【図１３】図１のコマースサーバのキャッシュデータ格納処理の処理内容を示す図である。
【図１４】図１のコマースサーバのキャッシュデータ同期処理の処理内容を示す図である。
【符号の説明】
【００６９】
１０１Ｗｅｂサーバ
１０２コマースサーバ
１０３ＤＢサーバ
１１１〜１１４クライアント装置
１２０ネットワーク
３１１ページ作成処理部
３１２セッションデータ取得処理部
３１３グローバルデータ取得処理部
４１１キャッシュ管理部
４１２キャッシュデータ抽出処理部
４１３キャッシュデータ格納処理部
５２１キャッシュＩＤ（管理ＩＤ）
【図１】
2005157605.tif 000003
【図２】
2005157605.tif 000004
【図３】
2005157605.tif 000005
【図４】
2005157605.tif 000006
【図５】
2005157605.tif 000007
【図６】
2005157605.tif 000008
【図７】
2005157605.tif 000009
【図８】
2005157605.tif 000010
【図９】
2005157605.tif 000011
【図１０】
2005157605.tif 000012
【図１１】
2005157605.tif 000013
【図１２】
2005157605.tif 000014
【図１３】
2005157605.tif 000015
【図１４】
2005157605.tif 000016