JP2005157605A - 商品データ検索装置および同装置におけるデータ更新方法ならびにプログラム - Google Patents
商品データ検索装置および同装置におけるデータ更新方法ならびにプログラム Download PDFInfo
- Publication number
- JP2005157605A JP2005157605A JP2003393344A JP2003393344A JP2005157605A JP 2005157605 A JP2005157605 A JP 2005157605A JP 2003393344 A JP2003393344 A JP 2003393344A JP 2003393344 A JP2003393344 A JP 2003393344A JP 2005157605 A JP2005157605 A JP 2005157605A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- update
- management
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】複数のコマースサーバ間でキャッシュ情報の同期を取り、コマースサーバ間のキャッシュ情報の不整合を軽減する。
【解決手段】商品データベース103へのアクセス処理で要求されたデータに対する処理を行うデータ処理方法において、データの更新要求を受信して、その受信した更新要求によって要求されたデータの更新を指示するステップと、前記データの更新指示を受け付けて、前記更新要求により更新される更新対象のデータを識別する為の管理IDを当該アクセス要求の内容に応じて生成し、その生成された管理IDで識別されるデータの有効期限を更新するステップと、前記更新されたキャッシュデータの有効期限を他のデータ処理装置へ通知するステップとを有する。
【選択図】 図1
【解決手段】商品データベース103へのアクセス処理で要求されたデータに対する処理を行うデータ処理方法において、データの更新要求を受信して、その受信した更新要求によって要求されたデータの更新を指示するステップと、前記データの更新指示を受け付けて、前記更新要求により更新される更新対象のデータを識別する為の管理IDを当該アクセス要求の内容に応じて生成し、その生成された管理IDで識別されるデータの有効期限を更新するステップと、前記更新されたキャッシュデータの有効期限を他のデータ処理装置へ通知するステップとを有する。
【選択図】 図1
Description
本発明は、特に、インターネット等のネットワークを介し、DB(Data Base)サーバ上の商品データを検索してクライアント装置へ提供する電子ショッピングシステムに適用して好適な、商品データ検索装置および同装置におけるデータ更新方法ならびにプログラムに関する。
従来、インターネット等のネットワークを介してユーザ側のクライアント装置と、電子ショッピングシステムを構成するWeb(World Wide Web)サーバ、コマースサーバおよびDB(Data Base)サーバとを接続し、DBサーバで検索された商品データをクライアント装置上に表示してユーザからの注文を受け付け、商品を販売することのできる電子ショッピングシステムが知られている。
また、電子ショッピングシステムで、ユーザが掲載される商品サイトを知らなくても、希望する商品を素早く探し出して購入することのできる、商品情報検索システムも提案されている(例えば特許文献1参照)。
特開2002−342354号公報(段落「0014」〜「0027」、図1)
また、電子ショッピングシステムで、ユーザが掲載される商品サイトを知らなくても、希望する商品を素早く探し出して購入することのできる、商品情報検索システムも提案されている(例えば特許文献1参照)。
前記した電子ショッピングシステムにおける商品データの検索では、ヒット件数が数百件以上となる場合等、ヒット件数が多い場合、表示容量の制限から1ページに表示する件数を数十件に限定し、複数ページで商品データを表現させることが多い。この場合、1ページ目を表示するために、一度、DBサーバから商品情報を取得した後、それらの情報に管理IDを割り当ててキャッシュすることで、2ページ目以降の表示を行う際のDBアクセス回数を減らしている。
更に、前記した電子ショッピングシステムでは、お薦め商品の検索を行うための所定の検索条件を登録しておき、ユーザからのアクセス時に自動的に所定の検索結果(お薦め商品)を表示してユーザにその商品の購入を薦める処理が行われている。ここで、あるユーザが所定の検索条件で検索を行った場合、一度、DBサーバから取得したデータをキャッシュすることで、同一条件で検索する2番目以降のユーザはDBをアクセスすることなくそのデータを得ることを可能にする。
更に、前記した電子ショッピングシステムでは、お薦め商品の検索を行うための所定の検索条件を登録しておき、ユーザからのアクセス時に自動的に所定の検索結果(お薦め商品)を表示してユーザにその商品の購入を薦める処理が行われている。ここで、あるユーザが所定の検索条件で検索を行った場合、一度、DBサーバから取得したデータをキャッシュすることで、同一条件で検索する2番目以降のユーザはDBをアクセスすることなくそのデータを得ることを可能にする。
前記した様に、従来の電子ショッピングシステムでは、多くの商品データを複数ページで表示する場合や、複数のユーザが同一検索条件での利用を行う場合に、1回目のDB検索時に検索結果をキャッシュすることでDBアクセスの回数を減らし、検索に要する手間やシステム負荷を軽減している。
しかしながら、キャッシュされた検索結果はコマースサーバごとに独立して保持されるため、複数のWebサーバ、コマースサーバおよびDBサーバを接続して電子ショッピングシステムを構築した場合、コマースサーバ毎のキャッシュデータに内容の不整合が生じることがある。例えば、実際の在庫が0になったにもかかわらず、あるコマースサーバでは商品在庫が存在したままの状態になっていることがあり、この場合、在庫管理に混乱を来たす。
しかしながら、キャッシュされた検索結果はコマースサーバごとに独立して保持されるため、複数のWebサーバ、コマースサーバおよびDBサーバを接続して電子ショッピングシステムを構築した場合、コマースサーバ毎のキャッシュデータに内容の不整合が生じることがある。例えば、実際の在庫が0になったにもかかわらず、あるコマースサーバでは商品在庫が存在したままの状態になっていることがあり、この場合、在庫管理に混乱を来たす。
本発明は前記した事情に鑑みてなされたものであり、複数のコマースサーバ間におけるキャッシュデータの不整合の発生頻度を減らすことが可能な、商品データ検索装置および同装置におけるデータ更新方法ならびにプログラムを提供することを目的とする。
前記した課題を解決するために本発明は、商品データ検索装置を、外部からデータ更新要求を受信し、当該データ更新要求の対象となるデータを識別する管理IDをその更新内容に応じて生成し、当該生成された管理IDにより識別されるデータの更新を指示するデータ更新処理部と、前記データ更新処理部からデータ更新指示を受信して前記データの更新を行い、当該データ更新結果があらかじめ設定された条件と一致したときに、前記管理IDで識別されるキャッシュデータの有効期限を更新し、当該更新されたキャッシュデータの有効期限をあらかじめ設定された他の商品データ検索装置へ通知するキャッシュデータ同期処理部で構成した。
前記した構成により、データ更新処理部からデータ更新の指示を受けたキャッシュデータ同期処理部が、管理IDで識別されるデータを更新する場合に有効期限を更新し、その更新を他の商品データ検索装置へ通知するため、当該有効期限の更新通知を受けた他の商品データ検索装置は、前記した管理IDで識別されるデータの有効期限を更新することで、商品データ検索装置間のキャッシュデータ、およびデータベース中のデータとメモリキャッシュ間のデータの不整合が軽減できる。
前記した構成により、データ更新処理部からデータ更新の指示を受けたキャッシュデータ同期処理部が、管理IDで識別されるデータを更新する場合に有効期限を更新し、その更新を他の商品データ検索装置へ通知するため、当該有効期限の更新通知を受けた他の商品データ検索装置は、前記した管理IDで識別されるデータの有効期限を更新することで、商品データ検索装置間のキャッシュデータ、およびデータベース中のデータとメモリキャッシュ間のデータの不整合が軽減できる。
本発明によれば、従来、コマースサーバ毎に独立してメモリキャッシュを作成していたものを、管理IDで識別されるデータを更新する場合に有効期限を更新し、その更新を他の商品データ検索装置へ通知するため、商品データ検索装置間のキャッシュデータ間の不整合を軽減することができる。従って、例えば、在庫管理等において混乱を来たすことなく、信頼性の高い商品テータ管理装置を用いた電子ショッピングシステムを構築できる。
以下、本発明の商品データ検索装置につき、クライアント装置から要求された商品データを複数のコマースサーバ上のメモリキャッシュから取得する電子ショッピングシステムを例示して説明する。
図1は、本発明の商品データ管理装置が構築される電子ショッピングシステムの概略構成を示す図である。
図1に示す様に本実施形態の電子ショッピングシステムは、Webサーバ101と、コマースサーバ102と、DBサーバ103と、クライアント装置111〜114と、IP(Internet Protocol)網等のネットワーク120とを有している。
図1に示す様に本実施形態の電子ショッピングシステムは、Webサーバ101と、コマースサーバ102と、DBサーバ103と、クライアント装置111〜114と、IP(Internet Protocol)網等のネットワーク120とを有している。
Webサーバ101は、クライアント装置111〜114から要求されたデータをキャッシュ管理装置であるコマースサーバ102から取得して要求元へ送信するデータ処理装置であり、この電子ショッピングシステムでの商品購入の際に用いられるWebページを作成してクライアント装置111〜114へ送信する情報処理装置である。
コマースサーバ102は、DBサーバ103のデータベースへのアクセス処理でアクセスされたデータを記憶装置上のメモリキャッシュへ格納して管理するキャッシュ管理装置であり、この電子ショッピングシステムでの商品の販売に伴うDBサーバ103へのアクセスや、購入商品のバスケット処理、購入代金支払い時の与信処理等を行う情報処理装置である。
コマースサーバ102は、DBサーバ103のデータベースへのアクセス処理でアクセスされたデータを記憶装置上のメモリキャッシュへ格納して管理するキャッシュ管理装置であり、この電子ショッピングシステムでの商品の販売に伴うDBサーバ103へのアクセスや、購入商品のバスケット処理、購入代金支払い時の与信処理等を行う情報処理装置である。
図1の様に本実施形態の電子ショッピングシステムでは、複数のコマースサーバ102のそれぞれに複数のWebサーバ101が接続されているものとする。
DBサーバ103は、商品データや在庫データを格納しているデータベースを管理する情報処理装置である。クライアント装置111〜114は、ユーザからの商品データの検索条件や購入指示等の入力を受け付けてWebサーバ101へ送信し、商品データの検索結果や商品の購入状況等を示すページデータを受信して表示する処理装置である。ネットワーク120は、クライアント装置111〜114とWebサーバ101とを接続するインターネット等の通信回線である。
なお、負荷分散装置104は、クライアント装置111〜114からの要求を各Webサーバ101へ振り分けるために用意されたハードウェアであり、本発明を実施するうえで必須ではない。
DBサーバ103は、商品データや在庫データを格納しているデータベースを管理する情報処理装置である。クライアント装置111〜114は、ユーザからの商品データの検索条件や購入指示等の入力を受け付けてWebサーバ101へ送信し、商品データの検索結果や商品の購入状況等を示すページデータを受信して表示する処理装置である。ネットワーク120は、クライアント装置111〜114とWebサーバ101とを接続するインターネット等の通信回線である。
なお、負荷分散装置104は、クライアント装置111〜114からの要求を各Webサーバ101へ振り分けるために用意されたハードウェアであり、本発明を実施するうえで必須ではない。
図2は本実施形態のメモリキャッシュを用いたデータ処理の処理概要を示す図である。図2に示すように本実施形態のメモリキャッシュ408は、DBサーバ103のデータベース(DB)より取得した検索結果を、コマースサーバ102(図1参照)のメモリ上に展開し、保持しているメモリ領域であり、商品データの検索結果と管理情報全てのメモリ領域を指すものとする。
セッションキャッシュは、前記したメモリキャッシュの内、ユーザ(セッション)単位に管理されることを想定したメモリ領域であり、グローバルキャッシュは、前記したメモリキャッシュの内、ユーザ単位ではなく、電子ショッピングシステム全体で管理されることを想定したメモリ領域である。また本実施形態では、検索結果と管理情報からなる、1検索結果をメモリ上に保持する単位として「キャッシュ面」という用語を用いるものとする。前記したセッションキャッシュ、グローバルキャッシュ共にキャッシュ管理部411によって制御される。詳細は後記する。
セッションキャッシュは、前記したメモリキャッシュの内、ユーザ(セッション)単位に管理されることを想定したメモリ領域であり、グローバルキャッシュは、前記したメモリキャッシュの内、ユーザ単位ではなく、電子ショッピングシステム全体で管理されることを想定したメモリ領域である。また本実施形態では、検索結果と管理情報からなる、1検索結果をメモリ上に保持する単位として「キャッシュ面」という用語を用いるものとする。前記したセッションキャッシュ、グローバルキャッシュ共にキャッシュ管理部411によって制御される。詳細は後記する。
図3は本実施形態のWebサーバ101の概略構成を示す図である。図3に示す様に本実施形態のWebサーバ101は、CPU301と、メモリ302と、磁気ディスク装置303と、入力装置304と、出力装置305と、CD−ROM装置306と、通信装置307で構成される。
CPU301は、Webサーバ101全体の動作を制御する装置である。メモリ302は、CPU301がWebサーバ101全体の動作を制御する際にその為の各種処理プログラムやデータをロードする記憶装置である。
磁気ディスク装置303は、前記各種処理プログラムやデータを格納しておく記憶装置である。入力装置304は、作成するWebページの定義情報や、予めWebサーバ101によって指定された検索条件を識別する為の目的コードやカテゴリコード等の各種入力を行う装置である。
出力装置305は、Webページの作成に伴う各種出力を行う装置である。CD−ROM装置306は、前記各種処理プログラムを記録したCD−ROMの内容を読み出す装置である。通信装置307は、インターネットやイントラネット等のネットワーク120を介して他の処理装置との通信を行う装置である。
磁気ディスク装置303は、前記各種処理プログラムやデータを格納しておく記憶装置である。入力装置304は、作成するWebページの定義情報や、予めWebサーバ101によって指定された検索条件を識別する為の目的コードやカテゴリコード等の各種入力を行う装置である。
出力装置305は、Webページの作成に伴う各種出力を行う装置である。CD−ROM装置306は、前記各種処理プログラムを記録したCD−ROMの内容を読み出す装置である。通信装置307は、インターネットやイントラネット等のネットワーク120を介して他の処理装置との通信を行う装置である。
Webサーバ101は、ページ作成処理部311と、セッションデータ取得処理部312と、グローバルデータ取得処理部313と、データ更新処理部314で構成される。
ページ作成処理部311は、データの検索要求及び更新要求をクライアント装置111〜114(図1参照)から受信して、その受信した検索要求及び更新要求によって要求されたデータの取得及び更新を指示し、その指示により取得されたデータを検索要求及び更新要求元へ送信するデータ取得制御部であり、要求された商品データを表示するためのWebページを作成してクライアント装置111〜114に送信する処理部である。
セッションデータ取得処理部312は、前記したデータの取得指示を受け付けて、前記した検索要求により検索される検索対象のデータを識別する為の管理IDを当該検索要求の内容に応じて生成し、その生成された管理IDで識別されるデータをコマースサーバ102から取得するデータ取得処理部であり、検索要求元で入力された、例えば、3千円程度の赤いマフラーがほしい等の検索条件が検索要求中に含まれている場合に、その検索条件の入力が行われたセッションを識別するための端末IDを用いて前記管理IDを生成し、データを取得する処理部である。
ページ作成処理部311は、データの検索要求及び更新要求をクライアント装置111〜114(図1参照)から受信して、その受信した検索要求及び更新要求によって要求されたデータの取得及び更新を指示し、その指示により取得されたデータを検索要求及び更新要求元へ送信するデータ取得制御部であり、要求された商品データを表示するためのWebページを作成してクライアント装置111〜114に送信する処理部である。
セッションデータ取得処理部312は、前記したデータの取得指示を受け付けて、前記した検索要求により検索される検索対象のデータを識別する為の管理IDを当該検索要求の内容に応じて生成し、その生成された管理IDで識別されるデータをコマースサーバ102から取得するデータ取得処理部であり、検索要求元で入力された、例えば、3千円程度の赤いマフラーがほしい等の検索条件が検索要求中に含まれている場合に、その検索条件の入力が行われたセッションを識別するための端末IDを用いて前記管理IDを生成し、データを取得する処理部である。
また、グローバルデータ取得処理部313は、セッションデータ取得処理部312と同様に管理IDで識別されるデータをコマースサーバ102から取得するデータ取得処理部であり、予め指定された検索条件が検索要求中に含まれている場合に、その検索条件を識別する為の目的コードやカテゴリコード等の識別情報を用いて前記管理IDを生成し、データを取得する処理部である。
データ更新処理部314は、前記したデータの更新指示を受け付けて、前記した更新要求の対象となるデータを識別するための管理IDを更新要求内容に応じて生成し、その生成された管理IDで識別されるデータの更新をコマースサーバ102に要求する処理部である。
データ更新処理部314は、前記したデータの更新指示を受け付けて、前記した更新要求の対象となるデータを識別するための管理IDを更新要求内容に応じて生成し、その生成された管理IDで識別されるデータの更新をコマースサーバ102に要求する処理部である。
図4は本実施形態のコマースサーバ102の概略構成を示す図である。図4に示す様に本実施形態のコマースサーバ102は、CPU401と、メモリキャッシュ408を含むメモリ402と、磁気ディスク装置403と、入力装置404と、出力装置405と、CD−ROM装置406と、通信装置407で構成される。
CPU401は、コマースサーバ102全体の動作を制御する装置である。メモリ402は、コマースサーバ102全体の動作を制御する際にそのための各種処理プログラムやデータをロードする記憶装置である。
磁気ディスク装置403は、前記した各種処理プログラムやコンフィギュレーション情報や各種データを格納しておく記憶装置である。ここで、コンフィギュレーション情報とは、あらかじめシステム管理者により設定定義され、磁気ディスク装置等の記憶部に記憶される情報であり、例えば、商品在庫数の閾値等、キャッシュデータの有効期限を更新するための指定条件(a)、当該キャッシュデータの有効期限(b)、キャッシュデータの更新によって影響を受ける(同期を要する)他のコマースサーバのアドレス(c)がそれぞれファイル定義されているものとする。いずれも詳細は後述する。
磁気ディスク装置403は、前記した各種処理プログラムやコンフィギュレーション情報や各種データを格納しておく記憶装置である。ここで、コンフィギュレーション情報とは、あらかじめシステム管理者により設定定義され、磁気ディスク装置等の記憶部に記憶される情報であり、例えば、商品在庫数の閾値等、キャッシュデータの有効期限を更新するための指定条件(a)、当該キャッシュデータの有効期限(b)、キャッシュデータの更新によって影響を受ける(同期を要する)他のコマースサーバのアドレス(c)がそれぞれファイル定義されているものとする。いずれも詳細は後述する。
入力装置404は、メモリキャッシュ408の商品の管理、商品の販売に伴うDBサーバ103へのアクセス、購入商品のバスケット処理や、購入代金支払い時の与信処理等に関する各種入力を行う装置である。
出力装置405は、メモリキャッシュ408の管理状況や商品の売買状況の表示等、キャッシュ管理処理及び電子ショッピング処理の実行に伴う各種出力を行う装置である。CD−ROM装置406は、前記各種処理プログラムを記録したCD−ROMの内容を読み出す装置である。
通信装置407は、インターネットやイントラネット等のネットワーク120を介して他の処理装置との通信を行う装置である。メモリキャッシュ408は、DBサーバ103のデータベースへの検索処理で検索されたレコードデータを格納したキャッシュデータと、これらのデータを管理するための管理情報を格納したキャッシュテーブル及びマップを保持するメモリ領域である。
出力装置405は、メモリキャッシュ408の管理状況や商品の売買状況の表示等、キャッシュ管理処理及び電子ショッピング処理の実行に伴う各種出力を行う装置である。CD−ROM装置406は、前記各種処理プログラムを記録したCD−ROMの内容を読み出す装置である。
通信装置407は、インターネットやイントラネット等のネットワーク120を介して他の処理装置との通信を行う装置である。メモリキャッシュ408は、DBサーバ103のデータベースへの検索処理で検索されたレコードデータを格納したキャッシュデータと、これらのデータを管理するための管理情報を格納したキャッシュテーブル及びマップを保持するメモリ領域である。
またコマースサーバ102は、キャッシュ管理部411と、キャッシュデータ抽出処理部412と、キャッシュデータ格納処理部413と、キャッシュデータ同期処理部414とを有している。
キャッシュ管理部411は、メモリキャッシュ408中のデータを識別するための管理IDを受信して、その受信した管理IDで識別されるデータのメモリキャッシュ408からの抽出をキャッシュデータ抽出処理部412に指示し、その指示により抽出されたデータを当該データの取得要求元へ送信する処理部であり、前記管理IDで識別されるデータがメモリキャッシュ408から抽出されなかった場合には、DBサーバ103のデータベースに対する検索処理を実行して前記したデータを含む検索結果をデータベースから取得してメモリキャッシュ408への格納を指示する処理部である。
キャッシュデータ抽出処理部412は、前記データの抽出指示を受け付けて、前記管理IDで識別されるデータをメモリキャッシュ408から抽出する処理部である。キャッシュデータ格納処理部413は、前記検索結果中のデータを前記管理IDと対応付けてメモリキャッシュ408中に格納する処理部である。キャッシュデータ同期処理部414は、データ更新処理部314からデータベースの更新指示及びメモリキャッシュ408中のデータを識別する為の管理IDを受信して、データベースを更新し、コンフィギュレーション情報に基づいて、前記管理IDで識別されるメモリキャッシュ408の有効期限を更新し、コンフィギュレーション情報に登録されたコマースサーバへメモリキャッシュの更新を通知する処理部である。
キャッシュデータ抽出処理部412は、前記データの抽出指示を受け付けて、前記管理IDで識別されるデータをメモリキャッシュ408から抽出する処理部である。キャッシュデータ格納処理部413は、前記検索結果中のデータを前記管理IDと対応付けてメモリキャッシュ408中に格納する処理部である。キャッシュデータ同期処理部414は、データ更新処理部314からデータベースの更新指示及びメモリキャッシュ408中のデータを識別する為の管理IDを受信して、データベースを更新し、コンフィギュレーション情報に基づいて、前記管理IDで識別されるメモリキャッシュ408の有効期限を更新し、コンフィギュレーション情報に登録されたコマースサーバへメモリキャッシュの更新を通知する処理部である。
図5は本実施形態のメモリキャッシュ408の構成例を示す図である。図5に示す様に本実施形態のメモリキャッシュ408は、キャッシュテーブル500と、キャッシュデータ510と、マップ520で構成される。
キャッシュテーブル500は、キャッシュデータ510の管理IDや作成された日時等を示すメモリキャッシュ情報を格納するテーブルである。キャッシュデータ510は、DBサーバ103のデータベースへの検索処理で検索されたレコードデータである。マップ520は、管理IDに対応したキャッシュデータ510の情報を格納しているキャッシュテーブル500の位置情報を格納するテーブルである。
キャッシュテーブル500は、キャッシュID501と、作成日時502と、DBヒット件数503と、キャッシュレコード数504と、キャッシュデータポインタ505とを有している。
キャッシュテーブル500は、キャッシュID501と、作成日時502と、DBヒット件数503と、キャッシュレコード数504と、キャッシュデータポインタ505とを有している。
キャッシュID501は、キャッシュデータポインタ505で示されるキャッシュデータ510を識別する為の識別情報であり、そのレコードデータが検索されたときに用いられた管理IDと同じものである。
作成日時502は、データベース検索が行われ、キャッシュID501で識別されるキャッシュデータ510が作成された日時を示す情報である。DBヒット件数503は、キャッシュID501で識別されるキャッシュデータ510が検索された際にDBサーバ103でヒットしたレコードの件数を示す情報である。
キャッシュレコード数504は、前記ヒットしたレコードの内でメモリキャッシュ408内に格納されているレコードの数を示す情報である。キャッシュデータポインタ505は、キャッシュID501で識別されるキャッシュデータ510が格納されているメモリキャッシュ408内の位置を示す情報である。
作成日時502は、データベース検索が行われ、キャッシュID501で識別されるキャッシュデータ510が作成された日時を示す情報である。DBヒット件数503は、キャッシュID501で識別されるキャッシュデータ510が検索された際にDBサーバ103でヒットしたレコードの件数を示す情報である。
キャッシュレコード数504は、前記ヒットしたレコードの内でメモリキャッシュ408内に格納されているレコードの数を示す情報である。キャッシュデータポインタ505は、キャッシュID501で識別されるキャッシュデータ510が格納されているメモリキャッシュ408内の位置を示す情報である。
マップ520は、キャッシュID521と、格納位置522(キャッシュ内の位置を示す情報)とを有している。
キャッシュID521は、キャッシュテーブル500に格納されているキャッシュID501と同じ識別情報である。格納位置522は、キャッシュID521で識別されるメモリキャッシュ情報が格納されているキャッシュテーブル500内の位置を示す情報である。
キャッシュID521は、キャッシュテーブル500に格納されているキャッシュID501と同じ識別情報である。格納位置522は、キャッシュID521で識別されるメモリキャッシュ情報が格納されているキャッシュテーブル500内の位置を示す情報である。
なお、図5に示す、「最大キャッシュ面数」、「最大キャッシュレコード件数」、「自動キャッシュリフレッシュフラグ」、「キャッシュ生存期間」、「新規キャッシュ格納位置」は、メモリキャッシュ408中に設定されるキャッシュ面の最大値、各キャッシュ面に格納される最大レコード件数、所定の生存期間経過後にレコードデータ(キャッシュデータ510)の更新を行うか否かを示すフラグ、キャッシュデータ有効期間を示す秒数、新規のキャッシュデータを格納する際にメモリキャッシュ情報を格納するキャッシュテーブル500内の位置をそれぞれ示している。
図5に示すキャッシュID501やキャッシュID521は、前記した管理IDと同じもので、メモリキャッシュ408で管理される検索結果をユニークに特定するためのIDであり、メモリキャッシュ毎にユニークであるものとする。
このIDとしては、セッションキャッシュでは、「端末ID+n」を想定し、グローバルキャッシュでは、Webサーバ101の上位ユーザプログラムで採番した「目的コード+カテゴリコード」等のユニークとなるIDを想定するものとする。ここで、「端末ID+n」の「n」は、Webブラウザの「検索」ボタンが押された場合のカウント数であるものとする。
このIDとしては、セッションキャッシュでは、「端末ID+n」を想定し、グローバルキャッシュでは、Webサーバ101の上位ユーザプログラムで採番した「目的コード+カテゴリコード」等のユニークとなるIDを想定するものとする。ここで、「端末ID+n」の「n」は、Webブラウザの「検索」ボタンが押された場合のカウント数であるものとする。
本実施形態のキャッシュデータ510は、キャッシュテーブル500で管理され、管理ID(キャッシュID521)とそのメモリキャッシュ情報の格納位置522はマップ520で管理される。
キャッシュデータ510を取得する際、マップ520からからキャッシュID521をキーにしてメモリキャッシュ情報の格納位置522を求め、その格納位置522が指すキャッシュテーブル500のキャッシュ面から指定された件数分のレコードを取得する。
キャッシュデータ510を登録する際には、図5の新規キャッシュ格納位置が指すキャッシュテーブル500のキャッシュ面にそのメモリキャッシュが登録され、新規キャッシュ格納位置の値が更新される。
キャッシュデータ510を取得する際、マップ520からからキャッシュID521をキーにしてメモリキャッシュ情報の格納位置522を求め、その格納位置522が指すキャッシュテーブル500のキャッシュ面から指定された件数分のレコードを取得する。
キャッシュデータ510を登録する際には、図5の新規キャッシュ格納位置が指すキャッシュテーブル500のキャッシュ面にそのメモリキャッシュが登録され、新規キャッシュ格納位置の値が更新される。
次に、本実施形態の電子ショッピングシステムにおいて、インターネット等のネットワーク120で接続されたクライアント装置111〜114から商品データの検索等のデータベースへのアクセス要求が発行された場合の処理手順について、図6のPAD(Problem Analysis Diagram)と、図3〜図4を参照して説明する。
図6は本実施形態のページ作成処理の処理内容を示す図である。図6に示す様にWebサーバ101のページ作成処理部311は、データの検索要求をクライアント装置111〜114から受信して、その受信した検索要求によって要求されたデータの取得を指示し、要求された商品データを表示する為のWebページを作成してクライアント装置111〜114に送信する処理を行う。
図6は本実施形態のページ作成処理の処理内容を示す図である。図6に示す様にWebサーバ101のページ作成処理部311は、データの検索要求をクライアント装置111〜114から受信して、その受信した検索要求によって要求されたデータの取得を指示し、要求された商品データを表示する為のWebページを作成してクライアント装置111〜114に送信する処理を行う。
具体的には、まず、Webサーバ101のページ作成処理部311は、インターネット等のネットワーク120で接続されたクライアント装置111〜114から、商品データの検索等のデータベースへのアクセス処理要求(リクエスト)を受信しているか否かを調べ(S601)、当該リクエストを受信している場合にはステップS602の処理へ進む。
ステップS602で、ページ作成処理部311は、前記受信したリクエストの内容を読み出して、リクエストの内容がデータ更新要求であり、かつ予めWebサーバ101で指定された更新条件(例えば、図7に示すトップページのお薦め商品)がそのリクエスト中に含まれているかどうかを調べ、Webサーバ101で指定された更新条件が含まれている場合にはステップS603の処理へ進む。ステップS603では、前記読み出した更新要求を指定し、データ更新処理部314を呼び出す。
ステップS602で、ページ作成処理部311は、前記受信したリクエストの内容を読み出して、リクエストの内容がデータ更新要求であり、かつ予めWebサーバ101で指定された更新条件(例えば、図7に示すトップページのお薦め商品)がそのリクエスト中に含まれているかどうかを調べ、Webサーバ101で指定された更新条件が含まれている場合にはステップS603の処理へ進む。ステップS603では、前記読み出した更新要求を指定し、データ更新処理部314を呼び出す。
ステップS604で、ページ作成処理部311は、前記受信したリクエストの内容を読み出して、検索要求元のクライアント側で入力された検索条件がそのリクエスト中に含まれているか否かを調べ、クライアント側で入力された検索条件が含まれている場合にはステップS605の処理へ進む。ページ作成処理部311は、ステップS605で、前記読み出した検索条件を引数として指定し、セッションデータ取得処理部312を呼び出して、コマースサーバ102のセッションキャッシュからのデータの取得を指示し、コマースサーバ102から取得したレコードデータをセッションデータ取得処理部312から受け取る。
ステップS606で、ページ作成処理部311は、前記受信したリクエストの内容を読み出して、予めWebサーバ101で指定された前記した検索条件がそのリクエスト中に含まれているかどうかを調べ、Webサーバ101で指定された検索条件が含まれている場合にはステップS607の処理へ進む。ステップS607では、前記読み出した検索条件を引数として指定し、グローバルデータ取得処理部313を呼び出して、コマースサーバ102のグローバルキャッシュからのデータの取得を指示し、コマースサーバ102から取得したレコードデータをグローバルデータ取得処理部313から受け取る。
ステップS606で、ページ作成処理部311は、前記受信したリクエストの内容を読み出して、予めWebサーバ101で指定された前記した検索条件がそのリクエスト中に含まれているかどうかを調べ、Webサーバ101で指定された検索条件が含まれている場合にはステップS607の処理へ進む。ステップS607では、前記読み出した検索条件を引数として指定し、グローバルデータ取得処理部313を呼び出して、コマースサーバ102のグローバルキャッシュからのデータの取得を指示し、コマースサーバ102から取得したレコードデータをグローバルデータ取得処理部313から受け取る。
ステップS608では、クライアント装置111〜114から要求された商品データを表示するための商品一覧画面等のWebページを前記受け取ったレコードデータを基に作成し、ステップS609では、前記作成したWebページのページデータを要求元のクライアント装置111〜114に送信する。
図7は、クライアント装置の画面上に表示される本実施形態の商品一覧画面の一例を示す図である。図7に示す様に、クライアント側で商品一覧画面700の検索条件入力欄701〜704に検索条件が入力され、検索ボタン705が押されると、コマースサーバ102のセッションキャッシュ中のレコードデータを取得し、検索結果リスト720として表示する。
また、お薦め商品表示欄711〜713の様に、Webサーバ101で指定された検索条件がWebページに予め設定定義されている場合には、当該Webページの表示指示の際に、その指定されている検索条件により、コマースサーバ102のグローバルキャッシュ中のレコードデータを取得し、お勧め商品表示欄711〜713にお勧め商品のデータを表示する。
また、お薦め商品表示欄711〜713の様に、Webサーバ101で指定された検索条件がWebページに予め設定定義されている場合には、当該Webページの表示指示の際に、その指定されている検索条件により、コマースサーバ102のグローバルキャッシュ中のレコードデータを取得し、お勧め商品表示欄711〜713にお勧め商品のデータを表示する。
図8は本実施形態のセッションデータ取得処理の処理内容を示す図である。図8に示す様にWebサーバ101のセッションデータ取得処理部312は、検索要求元のクライアント装置111〜114で入力された検索条件が検索要求中に含まれている場合に、その検索条件の入力が行われたセッションを識別するための端末IDを用いて前記した管理IDを生成し、セッションキャッシュ中のレコードデータをコマースサーバ102から取得する処理を行う。
具体的には、ステップS801でWebサーバ101のセッションデータ取得処理部312は、前記検索要求が送信された際のHTTP(Hyper Text Transfer Protocol)セッションのセッションIDを取得した後、これまでに検索要求を受け付けたクライアントの端末IDを格納しているメモリ(磁気ディスク装置303)中の端末IDと比較し、前記検索要求が新たなクライアントからの最初のアクセスであるか否かを調べる。
前記比較を行った結果、新たなクライアントによる最初のアクセスである場合にはステップS802の処理に進み、そのクライアントのセッションIDを端末IDとしてメモリ302中に格納した後、その端末IDに対応するカウント値nを初期化する。
また、セッションデータ取得処理部312は、前記した比較を行った結果、これまでに検索要求を受け付けているクライアントからのアクセスである場合(最初のアクセスでない場合)には、ステップS803の処理に進み、そのクライアントの端末IDと当該端末IDに対応するカウント値nをメモリ302から読み出す。
前記比較を行った結果、新たなクライアントによる最初のアクセスである場合にはステップS802の処理に進み、そのクライアントのセッションIDを端末IDとしてメモリ302中に格納した後、その端末IDに対応するカウント値nを初期化する。
また、セッションデータ取得処理部312は、前記した比較を行った結果、これまでに検索要求を受け付けているクライアントからのアクセスである場合(最初のアクセスでない場合)には、ステップS803の処理に進み、そのクライアントの端末IDと当該端末IDに対応するカウント値nをメモリ302から読み出す。
ステップS804では、セッションデータ取得処理部312は、ページ作成処理部311から受け取っている検索条件の内容を参照し、図7の検索ボタン705の押下による検索指示であるかまたは前ページボタン721や次ページボタン722の押下による検索指示であるかを調べる。その結果、検索ボタン705の押下による検索指示である場合には、検索条件の変更を伴うものであると見做してステップS805へ進み、ステップS808で読み出したカウント値nに「1」を加算する。ここで、ボタンの種類によらず、前記検索条件から検索条件入力欄701〜704に入力された内容を抽出してメモリ302に格納しておき、その内容の変化を検出することにより検索条件の変更の有無を検出するものとしても良い。
ステップS806では、セッションデータ取得処理部312は、前記端末IDとカウント値nの値を組み合わせて管理IDを生成する。例えば、前記端末IDとカウント値nを文字型として結合して文字型の管理IDを生成する。ステップS807では、前記検索条件からレコードデータの取得開始位置(ポインタ)と取得件数を示す情報を抽出した後、前記生成した管理ID、前記検索条件、前記抽出した取得開始位置及び取得件数等の情報を引数として指定してセッションキャッシュ中のレコードデータの取得をコマースサーバ102へ要求し、前記取得開始位置から取得件数までのレコードデータをコマースサーバ102から受信してページ作成処理部311へ渡す。
ステップS806では、セッションデータ取得処理部312は、前記端末IDとカウント値nの値を組み合わせて管理IDを生成する。例えば、前記端末IDとカウント値nを文字型として結合して文字型の管理IDを生成する。ステップS807では、前記検索条件からレコードデータの取得開始位置(ポインタ)と取得件数を示す情報を抽出した後、前記生成した管理ID、前記検索条件、前記抽出した取得開始位置及び取得件数等の情報を引数として指定してセッションキャッシュ中のレコードデータの取得をコマースサーバ102へ要求し、前記取得開始位置から取得件数までのレコードデータをコマースサーバ102から受信してページ作成処理部311へ渡す。
前記した様に本実施形態では、取得開始位置及び取得件数で指定した必要なレコードデータのみを受信しているため、セッションキャッシュ中におけるレコードデータの取得の際に、Webサーバ101とコマースサーバ102とのデータ転送量を抑えることができる。
また前記の様にセッションデータ取得処理部312では、端末IDとカウント値nを用いて管理IDを生成しているが、検索条件から検索条件入力欄701〜704に入力された内容を抽出してこれを管理IDとしても良い。端末IDを用いて管理IDを生成した場合には、その管理IDに対応するセッションキャッシュ中のレコードデータは当該端末IDで識別されるクライアントのみで使われることになるが、検索条件から管理IDを生成した場合には、同じ検索条件を入力した複数のクライアント間でセッションキャッシュ中のレコードデータを共有することが可能である。
また前記の様にセッションデータ取得処理部312では、端末IDとカウント値nを用いて管理IDを生成しているが、検索条件から検索条件入力欄701〜704に入力された内容を抽出してこれを管理IDとしても良い。端末IDを用いて管理IDを生成した場合には、その管理IDに対応するセッションキャッシュ中のレコードデータは当該端末IDで識別されるクライアントのみで使われることになるが、検索条件から管理IDを生成した場合には、同じ検索条件を入力した複数のクライアント間でセッションキャッシュ中のレコードデータを共有することが可能である。
図9は本実施形態のグローバルデータ取得処理の処理内容を示す図である。図9に示す様にWebサーバ101のグローバルデータ取得処理部313は、予めWebサーバ101で指定された検索条件が検索要求中に含まれている場合に、その検索条件を識別する為の目的コードやカテゴリコード等の識別情報を用いて前記管理IDを生成し、グローバルキャッシュ中のレコードデータをコマースサーバ102から取得する処理を行う。
具体的には、ステップS901でWebサーバ101のグローバルデータ取得処理部313は、ページ作成処理部311から受け取っている検索条件の内容を参照し、Webサーバ101で指定された検索条件を識別する為の目的コードやカテゴリコード等の識別情報を読み出す。例えば、目的コードとしては、お薦め商品の検索、タイムセール品の検索や予約品の検索を識別するための番号が用いられ、また、それらの商品の「カメラ」や「家電品」等を示すカテゴリコード、その商品が属するジャンルを示すジャンルコード等を前記識別情報として読み出す。
ステップS902では、グローバルデータ取得処理部313は、前記目的コードやカテゴリコード等の識別情報を組み合わせて管理IDを生成する。例えば、前記目的コードやカテゴリコードを文字型として結合して文字型の管理IDを生成する。
ステップS903では、グローバルデータ取得処理部313は、前記検索条件からレコードデータの取得開始位置と取得件数を示す情報を抽出した後、前記生成した管理ID、前記検索条件、前記抽出した取得開始位置及び取得件数等の情報を引数として指定してグローバルキャッシュ中のレコードデータの取得をコマースサーバ102へ要求し、前記取得開始位置から取得件数までのレコードデータをコマースサーバ102から受信してページ作成処理部311へ渡す。
ステップS902では、グローバルデータ取得処理部313は、前記目的コードやカテゴリコード等の識別情報を組み合わせて管理IDを生成する。例えば、前記目的コードやカテゴリコードを文字型として結合して文字型の管理IDを生成する。
ステップS903では、グローバルデータ取得処理部313は、前記検索条件からレコードデータの取得開始位置と取得件数を示す情報を抽出した後、前記生成した管理ID、前記検索条件、前記抽出した取得開始位置及び取得件数等の情報を引数として指定してグローバルキャッシュ中のレコードデータの取得をコマースサーバ102へ要求し、前記取得開始位置から取得件数までのレコードデータをコマースサーバ102から受信してページ作成処理部311へ渡す。
前記した様に本実施形態では、取得開始位置及び取得件数で指定した必要なレコードデータのみを受信しているので、グローバルキャッシュ中におけるレコードデータの取得の際にも、Webサーバ101とコマースサーバ102とのデータ転送量を抑えることができる。
また前記の様にグローバルデータ取得処理部313では、検索条件に対応する目的コードやカテゴリコード等の識別情報を用いて管理IDを生成しているため、同じ検索条件を含むWebページを参照した複数のクライアント間でグローバルキャッシュ中のレコードデータを共有することが可能である。
また前記の様にグローバルデータ取得処理部313では、検索条件に対応する目的コードやカテゴリコード等の識別情報を用いて管理IDを生成しているため、同じ検索条件を含むWebページを参照した複数のクライアント間でグローバルキャッシュ中のレコードデータを共有することが可能である。
図10は、本実施形態のデータ更新処理の処理内容を示す図である。図10に示す様にWebサーバ101のデータ更新処理部314は、予めWebサーバ101で指定された更新条件が更新要求中に含まれている場合に、その更新条件を識別する為の目的コードやカテゴリコード等の識別情報を用いて前記管理IDを生成し、データベースの更新、グローバルキャッシュ中におけるレコードデータの有効期限の更新及びコマースサーバ間の同期処理をコマースサーバ102に要求する処理を行う。
具体的には、ステップS1001でWebサーバ101のデータ更新処理部314は、ページ作成処理部311から受け取っている更新条件の内容を参照し、Webサーバ101で指定された更新条件を識別するための目的コードやカテゴリコード等の識別情報を読み出す。ここで、更新条件の識別情報はグローバルデータ取得処理部313で使用した識別情報と同じものである。
ステップS1002では、データ更新処理部314は、前記目的コードやカテゴリコード等の識別情報を組み合わせて管理IDを生成する。例えば、前記した目的コードやカテゴリコードを文字型として結合して文字型の管理IDを生成する。この管理IDは、検索及び更新条件が同じであればグローバルデータ取得処理部313で生成する管理IDと同じIDとなるように生成される。ステップS1003では、前記生成した管理IDと前記更新要求を引数として指定して、データベースの更新、グローバルキャッシュ中におけるレコードデータの有効期限の更新及びコマースサーバ間のキャッシュデータ同期処理をコマースサーバ102へ要求する。
ステップS1002では、データ更新処理部314は、前記目的コードやカテゴリコード等の識別情報を組み合わせて管理IDを生成する。例えば、前記した目的コードやカテゴリコードを文字型として結合して文字型の管理IDを生成する。この管理IDは、検索及び更新条件が同じであればグローバルデータ取得処理部313で生成する管理IDと同じIDとなるように生成される。ステップS1003では、前記生成した管理IDと前記更新要求を引数として指定して、データベースの更新、グローバルキャッシュ中におけるレコードデータの有効期限の更新及びコマースサーバ間のキャッシュデータ同期処理をコマースサーバ102へ要求する。
前記の様にデータ更新処理部314では、更新条件に対応する目的コードやカテゴリコード等の識別情報を用いて管理IDを生成しているので、同じ更新条件を含むWebページを参照した複数のクライアント間でグローバルキャッシュ中のレコードデータを共有することが可能である。
図11は本実施形態のキャッシュ管理の処理内容を示す図である。図11に示す様にコマースサーバ102のキャッシュ管理部411は、メモリキャッシュ408中のデータを識別する為の管理IDを受信して、その受信した管理IDで識別されるデータのメモリキャッシュ408からの抽出を指示し、その指示により抽出されたデータを当該データの取得要求元へ送信する処理や、前記管理IDで識別されるデータがメモリキャッシュ408から抽出されなかった場合に、DBサーバ103のデータベースに対する検索処理を実行して前記データを含む検索結果をデータベースから取得してメモリキャッシュ408への格納を指示する処理を行う。
具体的には、ステップS1101でコマースサーバ102のキャッシュ管理部411は、Webサーバ101からメモリキャッシュ408中のキャッシュデータ510の取得要求を受信すると、その取得要求から管理ID、取得開始位置及び取得件数を読み出してステップS1102の処理へ進む。
ステップ1102では、キャッシュ管理部411は、前記読み出した管理ID、取得開始位置及び取得件数等の情報を引数として指定してキャッシュデータ抽出処理部412を呼び出し、前記管理IDで識別されるレコードデータのメモリキャッシュ408からの抽出をキャッシュデータ抽出処理部412に指示する。そして、その管理IDで識別されるキャッシュデータ510中の前記取得開始位置から取得件数までのレコードデータと、キャッシュデータ抽出処理の処理結果を示す戻り値をキャッシュデータ抽出処理部412から受け取る。
ステップ1102では、キャッシュ管理部411は、前記読み出した管理ID、取得開始位置及び取得件数等の情報を引数として指定してキャッシュデータ抽出処理部412を呼び出し、前記管理IDで識別されるレコードデータのメモリキャッシュ408からの抽出をキャッシュデータ抽出処理部412に指示する。そして、その管理IDで識別されるキャッシュデータ510中の前記取得開始位置から取得件数までのレコードデータと、キャッシュデータ抽出処理の処理結果を示す戻り値をキャッシュデータ抽出処理部412から受け取る。
次に、ステップS1103では、キャッシュ管理部411は、前記受け取った戻り値の値を調べ、戻り値がNULLである場合には、キャッシュデータ抽出処理に失敗したものとしてステップS1104の処理へ進む。ステップS1104では、ステップS1101でWebサーバ101から受信した取得要求から検索条件を読み出してDBサーバ103へ送信し、前記検索条件による検索処理で得られた商品データ検索結果をDBサーバ103から受信する。
ステップS1105では、DBサーバ103から受信した検索結果から、前記取得開始位置から取得件数までのレコードデータを抽出する。ステップS1106では、検索されたレコードデータとDBヒット件数を前記検索結果から読み出した後、前記管理ID、前記読み出したレコードデータ及びDBヒット件数等の情報を引数として指定してキャッシュデータ格納処理部413を呼び出し、DBサーバ103で検索されたレコードデータのメモリキャッシュ408中への格納をキャッシュデータ格納処理部413に指示する。ステップS1107では、ステップS1002でキャッシュデータ抽出処理部412から受け取ったレコードデータ、または、ステップS1105でDBサーバ103から受信した検索結果から抽出したレコードデータをWebサーバ101へ送信する。
ステップS1105では、DBサーバ103から受信した検索結果から、前記取得開始位置から取得件数までのレコードデータを抽出する。ステップS1106では、検索されたレコードデータとDBヒット件数を前記検索結果から読み出した後、前記管理ID、前記読み出したレコードデータ及びDBヒット件数等の情報を引数として指定してキャッシュデータ格納処理部413を呼び出し、DBサーバ103で検索されたレコードデータのメモリキャッシュ408中への格納をキャッシュデータ格納処理部413に指示する。ステップS1107では、ステップS1002でキャッシュデータ抽出処理部412から受け取ったレコードデータ、または、ステップS1105でDBサーバ103から受信した検索結果から抽出したレコードデータをWebサーバ101へ送信する。
図12は本実施形態のキャッシュデータ抽出処理の処理内容を示す図である。図12に示す様にコマースサーバ102のキャッシュデータ抽出処理部412は、前記データの抽出指示を受け付けて、前記管理IDで識別されるデータをメモリキャッシュ408から抽出する処理を行う。
具体的には、ステップS1201でコマースサーバ102のキャッシュデータ抽出処理部412は、キャッシュ管理部411から渡された引数をチェックし、引数として渡された管理IDがNULLである場合等のエラーが検出されなかった場合にはステップS1202の処理へ進み、現在日時を示す情報を取得する。
ステップS1203では、キャッシュデータ抽出処理部412は、マップ520を参照して、前記管理IDと一致するキャッシュID521がマップ520に存在しているか否かを調べ、存在していない場合にはステップS1204の処理に進み、キャッシュ管理部411へ返すアウトパラメータ(関数に渡す引数を更新するデータ)に「−1」を設定した後、戻り値にNULLを設定して処理を終了する。
ステップS1203では、キャッシュデータ抽出処理部412は、マップ520を参照して、前記管理IDと一致するキャッシュID521がマップ520に存在しているか否かを調べ、存在していない場合にはステップS1204の処理に進み、キャッシュ管理部411へ返すアウトパラメータ(関数に渡す引数を更新するデータ)に「−1」を設定した後、戻り値にNULLを設定して処理を終了する。
一方、前記管理IDと一致するキャッシュID521がマップ520に存在している場合にはステップS1205の処理に進み、そのキャッシュID521に対応する格納位置522で示されたキャッシュテーブル500のメモリキャッシュ情報を参照し、DBヒット件数503を読み出してアウトパラメータに設定する。
ステップS1206では、キャッシュデータ抽出処理部412は、前記対応する格納位置522のキャッシュテーブル500から作成日時502を読み出して前記現在日時と比較し、対応するキャッシュデータ510が作成されてから所定の生存期限が経過しているか否かを調べる。前記所定の生存期間が経過している場合には対応するキャッシュデータ510が期限切れであるものとして、戻り値にNULLを設定して処理を終了する。
ステップS1206では、キャッシュデータ抽出処理部412は、前記対応する格納位置522のキャッシュテーブル500から作成日時502を読み出して前記現在日時と比較し、対応するキャッシュデータ510が作成されてから所定の生存期限が経過しているか否かを調べる。前記所定の生存期間が経過している場合には対応するキャッシュデータ510が期限切れであるものとして、戻り値にNULLを設定して処理を終了する。
ステップS1207では、キャッシュデータ抽出処理部412は、前記対応する格納位置522のキャッシュテーブル500からキャッシュレコード数504を読み出して、前記読み出したDBヒット件数503と比較し、キャッシュレコード数504がDBヒット件数503よりも小さい場合にはステップS1208の処理へ進む。
ステップS1208では、キャッシュデータ抽出処理部412は、キャッシュ管理部411から渡された取得開始位置からのオフセットとDBヒット件数503とを比較し、前記取得開始位置からのオフセットがDBヒット件数503以下である場合にはステップS1209の処理へ進む。ステップS1209では、前記取得開始位置からのオフセットがキャッシュレコード数(図5の504)よりも大きいか、キャッシュ管理部411から渡された取得件数が無制限であるか、キャッシュレコード数504が取得終了位置(取得開始位置+取得件数−1)よりも小さいか否かを判定し、何れかに該当する場合には、キャッシュデータ510に保持されていないレコードが取得対象に含まれているものとして、戻り値にNULLを設定して処理を終了する。
ステップS1208では、キャッシュデータ抽出処理部412は、キャッシュ管理部411から渡された取得開始位置からのオフセットとDBヒット件数503とを比較し、前記取得開始位置からのオフセットがDBヒット件数503以下である場合にはステップS1209の処理へ進む。ステップS1209では、前記取得開始位置からのオフセットがキャッシュレコード数(図5の504)よりも大きいか、キャッシュ管理部411から渡された取得件数が無制限であるか、キャッシュレコード数504が取得終了位置(取得開始位置+取得件数−1)よりも小さいか否かを判定し、何れかに該当する場合には、キャッシュデータ510に保持されていないレコードが取得対象に含まれているものとして、戻り値にNULLを設定して処理を終了する。
ステップS1210では、キャッシュデータ抽出処理部412は、前記対応する格納位置522のキャッシュテーブル500からキャッシュデータポインタ505を読み出して、そのポインタで示されるキャッシュデータ510から、前記取得開始位置から取得件数までのレコードデータを抽出し、その抽出したレコードデータを戻り値に設定して処理を終了する。
前記の様に本実施形態のキャッシュデータ抽出処理では、キャッシュデータ510からのレコードの抽出に失敗した場合に戻り値にNULLが設定される。なお、取得開始位置がDBヒット件数503よりも大きい場合は、レコードの抽出失敗ではなく、0件のレコードが抽出されるものとして扱う。
前記の様に本実施形態のキャッシュデータ抽出処理では、キャッシュデータ510からのレコードの抽出に失敗した場合に戻り値にNULLが設定される。なお、取得開始位置がDBヒット件数503よりも大きい場合は、レコードの抽出失敗ではなく、0件のレコードが抽出されるものとして扱う。
図13は、本実施形態のキャッシュデータ格納処理の処理内容を示す図である。図13に示す様にコマースサーバ102のキャッシュデータ格納処理部413は、前記検索結果中のデータを前記管理IDと対応付けてメモリキャッシュ408中に格納する処理を行う。
具体的には、ステップS1301でコマースサーバ102のキャッシュデータ格納処理部413は、キャッシュ管理部411から渡された引数をチェックし、引数として渡された管理IDがNULLである場合等のエラーが検出されなかった場合にはステップS1302の処理へ進み、現在日時を示す情報を取得する。
ステップS1303では、キャッシュデータ格納処理部413は、DBサーバ103で検索され、キャッシュ管理部411から渡されたレコードデータから、起動時に設定されている最大キャッシュレコード件数に該当するレコードを抽出してキャッシュデータ510の空き領域へ格納する。
ステップS1304では、キャッシュデータ格納処理部413は、新規キャッシュ格納位置で示されるキャッシュテーブル500のメモリキャッシュ情報を参照して、その位置にデータが格納されているかどうかを調べ、データが格納されている場合(存在)にはステップS1305の処理へ進む。
ステップS1303では、キャッシュデータ格納処理部413は、DBサーバ103で検索され、キャッシュ管理部411から渡されたレコードデータから、起動時に設定されている最大キャッシュレコード件数に該当するレコードを抽出してキャッシュデータ510の空き領域へ格納する。
ステップS1304では、キャッシュデータ格納処理部413は、新規キャッシュ格納位置で示されるキャッシュテーブル500のメモリキャッシュ情報を参照して、その位置にデータが格納されているかどうかを調べ、データが格納されている場合(存在)にはステップS1305の処理へ進む。
ステップS1305では、キャッシュデータ格納処理部413は、新規キャッシュ格納位置で示されるキャッシュテーブル500からキャッシュID501を読み出した後、そのキャッシュID501とマップ520中のキャッシュID521とを比較して、キャッシュID501がマップ520に登録されているかどうかを調べ、登録されている場合にはステップS1206の処理へ進み、そのキャッシュID521および格納位置522をマップ520から削除する。
ステップS1307では、キャッシュデータ格納処理部413は、新規キャッシュ格納位置で示されるキャッシュテーブル500からキャッシュデータポインタ505を読み出した後、そのキャッシュデータポインタ505がNULLであるか否かを調べ、NULLでない場合にはステップS1308の処理へ進む。
ステップS1307では、キャッシュデータ格納処理部413は、新規キャッシュ格納位置で示されるキャッシュテーブル500からキャッシュデータポインタ505を読み出した後、そのキャッシュデータポインタ505がNULLであるか否かを調べ、NULLでない場合にはステップS1308の処理へ進む。
ステップS1308では、キャッシュデータ格納処理部413は、前記読み出したキャッシュデータポインタ505で示される格納位置に格納されているキャッシュデータ510をクリアして削除し、ステップS1309では、新規キャッシュ格納位置で示されるキャッシュテーブル500のキャッシュデータポインタ505にNULLを格納(代入)する。
ステップS1310では、キャッシュデータ格納処理部413は、新規キャッシュ格納位置で示されるキャッシュテーブル500のキャッシュID501、作成日時502、DBヒット件数503、キャッシュレコード数504及びキャッシュデータポインタ505に、キャッシュ管理部411から渡された管理ID、ステップ1302で取得した現在日時の情報、キャッシュ管理部411から渡されたDBヒット件数、起動時に設定されている最大キャッシュレコード件数、ステップ1303で抽出して格納した先頭レコードへのポインタをそれぞれ格納し、キャッシュテーブル500への登録を行う。
ステップS1310では、キャッシュデータ格納処理部413は、新規キャッシュ格納位置で示されるキャッシュテーブル500のキャッシュID501、作成日時502、DBヒット件数503、キャッシュレコード数504及びキャッシュデータポインタ505に、キャッシュ管理部411から渡された管理ID、ステップ1302で取得した現在日時の情報、キャッシュ管理部411から渡されたDBヒット件数、起動時に設定されている最大キャッシュレコード件数、ステップ1303で抽出して格納した先頭レコードへのポインタをそれぞれ格納し、キャッシュテーブル500への登録を行う。
ステップS1311では、キャッシュデータ格納処理部413は、マップ520を参照し、前記登録したキャッシュID501がキャッシュテーブル500の他の位置に格納されているかどうかを調べ、他の位置に存在する場合にはステップS1312の処理へ進む。
ステップS1312では、キャッシュデータ格納処理部413は、その位置のキャッシュテーブル500からキャッシュデータポインタ505を読み出した後、そのキャッシュデータポインタ505がNULLであるか否かを調べ、NULLでない場合にはステップS1313の処理へ進む。
ステップS1313では、キャッシュデータ格納処理部413は、前記読み出したキャッシュデータポインタ505で示される格納位置に格納されているキャッシュデータ510をクリアして削除し、ステップ1314では、前記位置のキャッシュテーブル500のキャッシュデータポインタ505にNULLを格納(代入)する。
ステップS1312では、キャッシュデータ格納処理部413は、その位置のキャッシュテーブル500からキャッシュデータポインタ505を読み出した後、そのキャッシュデータポインタ505がNULLであるか否かを調べ、NULLでない場合にはステップS1313の処理へ進む。
ステップS1313では、キャッシュデータ格納処理部413は、前記読み出したキャッシュデータポインタ505で示される格納位置に格納されているキャッシュデータ510をクリアして削除し、ステップ1314では、前記位置のキャッシュテーブル500のキャッシュデータポインタ505にNULLを格納(代入)する。
ステップS1315では、その位置のキャッシュテーブル500の内容を初期化した後、ステップS1316では、その位置を示していたキャッシュID521と格納位置522をマップ520から削除する。
ステップS1317では、キャッシュデータ格納処理部413は、ステップS1310で登録したキャッシュID501とキャッシュテーブル500の位置をマップ520へ登録する。またステップS1318では、新規キャッシュ格納位置に「1」を加算して更新し、加算後の値がキャッシュテーブル500の最後尾(最大キャッシュ面数−1)の位置を超える場合には、新規キャッシュ格納位置に「0」を設定する。
ステップS1317では、キャッシュデータ格納処理部413は、ステップS1310で登録したキャッシュID501とキャッシュテーブル500の位置をマップ520へ登録する。またステップS1318では、新規キャッシュ格納位置に「1」を加算して更新し、加算後の値がキャッシュテーブル500の最後尾(最大キャッシュ面数−1)の位置を超える場合には、新規キャッシュ格納位置に「0」を設定する。
図14は、本実施形態のキャッシュデータ同期処理の処理内容を示す図である。図14に示す様にコマースサーバ102のキャッシュデータ同期処理部414は、データ更新処理部314からの更新処理要求を受け付けて、データベースの更新を行い、更新結果が予めコンフィギュレーションファイルに指定された条件と一致した場合に指定の管理IDで識別されるキャッシュデータの有効期限を更新し、キャッシュデータが更新されたことを他のコマースサーバに通知する処理を行う。
具体的には、ステップS1401でコマースサーバ102のキャッシュデータ同期処理部414は、Webサーバ101から渡された引数をチェックし、引数として渡された管理IDがNULLである場合等のエラーが検出されなかった場合にはステップS1402へ進み、現在日時を示す情報を取得する。
ステップS1403では、キャッシュデータ同期処理部414は、Webサーバ101から渡された更新要求に基づきデータベースを更新し、エラー等が検出されなかった場合はステップS1404の処理へ進む。ステップS1404では、キャッシュデータ同期処理部414は、前記データベースの更新内容が予めコンフィギュレーションファイルに指定された条件と一致していない場合は処理を終了する。また、指定の条件に一致した場合はステップ1405に進む。
ステップS1403では、キャッシュデータ同期処理部414は、Webサーバ101から渡された更新要求に基づきデータベースを更新し、エラー等が検出されなかった場合はステップS1404の処理へ進む。ステップS1404では、キャッシュデータ同期処理部414は、前記データベースの更新内容が予めコンフィギュレーションファイルに指定された条件と一致していない場合は処理を終了する。また、指定の条件に一致した場合はステップ1405に進む。
ステップS1405では、キャッシュデータ同期処理部414は、マップ520を参照して、Webサーバ101から渡された管理IDと一致するキャッシュID521がマップ520に存在しているか否かを調べ、存在していない場合には処理を終了する。キャッシュID521がマップ520に存在する場合はステップS1406の処理に進む。
ステップS1406では、キャッシュデータ同期処理部414は、前記対応する格納位置522のキャッシュテーブル500から作成日時502を読み出して前記現在日時と比較し、対応するキャッシュデータ510が作成されてから所定の生存期限が経過しているか否かを調べる。前記所定の生存期間が経過している場合には対応するキャッシュデータ510が期限切れであるものとして、処理を終了する。前記キャッシュデータ510が生存期間内の場合はステップS1407の処理へ進む。
ステップS1406では、キャッシュデータ同期処理部414は、前記対応する格納位置522のキャッシュテーブル500から作成日時502を読み出して前記現在日時と比較し、対応するキャッシュデータ510が作成されてから所定の生存期限が経過しているか否かを調べる。前記所定の生存期間が経過している場合には対応するキャッシュデータ510が期限切れであるものとして、処理を終了する。前記キャッシュデータ510が生存期間内の場合はステップS1407の処理へ進む。
ステップS1407では、キャッシュデータ同期処理部414は、生存期間を予めコンフィギュレーションファイルに設定している内容に変更し、ステップS1408の処理へ進む。例えば、お薦め商品の在庫数が一定の値より少なくなれば、キャッシュの生存期間を短くすることでデータベースとキャッシュデータの不整合を低減することができる。ステップS1408では、キャッシュデータ同期処理部414は、生存期間の更新を予めコンフィギュレーションファイルに登録してあるコマースサーバに通知する。
以上説明した様に本実施形態のデータ処理システムによれば、データベースの更新処理において、更新後の条件によりキャッシュデータの有効期限を更新し、他のコマースサーバへキャッシュデータの更新を通知し同期を取るため、複数のコマースサーバ間におけるキャッシュデータの不整合を軽減することが可能である。
以上説明のように、本発明によれば、例えば、インターネット等のネットワーク120を介して接続されたクライアント装置111〜114から商品データ更新等のデータベースへのアクセス要求が発行されると、Webページを作成するWebサーバ101はそのアクセス要求を受信し、その受信したアクセス要求によって要求されているデータの更新をWebサーバ101内のデータ更新処理部314へ指示する。そして、データ更新処理部314では、そのアクセス要求によりアクセスされる対象データを識別する管理IDを当該アクセス要求の内容に応じて生成し、その生成された管理IDで識別されるデータの更新及び同期処理をコマースサーバ102へ要求する。
Webサーバ101のデータ更新処理部314は、アクセス要求元のクライアント装置111〜114で入力されたアクセス条件が前記アクセス要求中に含まれている場合には、そのアクセス条件の入力が行われたセッションを識別するための端末IDに基づいて前記した管理IDを生成し、また、あらかじめWebサーバ101によって指定されたアクセス条件がアクセス要求中に含まれている場合には、そのアクセス条件を識別するための識別情報を用いて前記した管理IDを生成する。
例えば、アクセス要求が、ユーザによって入力された検索条件による商品データの検索要求である場合には、そのセッションを識別する端末IDを用いて管理IDを生成し、また、あらかじめWebサーバ101によって指定されたお薦め商品等の検索である場合には、その検索条件を識別するための識別情報として、お薦め商品の検索であることを示す目的コードや、検索対象の商品を示すカテゴリコード等を用いて管理IDを生成する。
例えば、アクセス要求が、ユーザによって入力された検索条件による商品データの検索要求である場合には、そのセッションを識別する端末IDを用いて管理IDを生成し、また、あらかじめWebサーバ101によって指定されたお薦め商品等の検索である場合には、その検索条件を識別するための識別情報として、お薦め商品の検索であることを示す目的コードや、検索対象の商品を示すカテゴリコード等を用いて管理IDを生成する。
一方、コマースサーバ102のキャッシュ管理部411は、前記した更新処理要求により送信された管理IDを受信して、その受信した管理IDで識別されるデータの同期処理をキャッシュデータ同期処理部414に指示する。
キャッシュデータ同期処理部414は、データの同期処理指示を受け付けた後、データベース上のデータを更新し、予めコンフィギュレーションファイルに定義している条件と一致した場合、前記管理IDで識別されるデータの有効期限をコンフィギュレーションファイルに定義している有効期限に更新する。ここで、管理IDで識別されるデータがメモリキャッシュ上に存在しなかった場合は有効期限の更新は行わない。また、コンフィギュレーションファイルに定義している他のコマースサーバへ前記管理IDで識別されるデータの有効期限の更新を通知する。当該有効期限の更新通知を受けたコマースサーバは、前記した管理IDで識別されるデータの有効期限を更新する。
キャッシュデータ同期処理部414は、データの同期処理指示を受け付けた後、データベース上のデータを更新し、予めコンフィギュレーションファイルに定義している条件と一致した場合、前記管理IDで識別されるデータの有効期限をコンフィギュレーションファイルに定義している有効期限に更新する。ここで、管理IDで識別されるデータがメモリキャッシュ上に存在しなかった場合は有効期限の更新は行わない。また、コンフィギュレーションファイルに定義している他のコマースサーバへ前記管理IDで識別されるデータの有効期限の更新を通知する。当該有効期限の更新通知を受けたコマースサーバは、前記した管理IDで識別されるデータの有効期限を更新する。
このことにより従来、コマースサーバ毎に独立してメモリキャッシュを作成していたものを、管理IDで識別されるデータを更新する場合に有効期限を更新し、その更新を他のコマースサーバへ通知するため、コマースサーバ間のキャッシュデータ、およびデータベース中のデータとメモリキャッシュ間のデータの不整合を軽減することができる。従って、例えば、在庫管理等において混乱を来たすことなく、信頼性の高い電子ショッピングシステムを構築するものである。
なお、前記した本実施形態によれば、Webサーバ101、コマースサーバ102、DBサーバ103のそれぞれで負荷分散しながら本発明の商品データ検索装置を構成する例についてのみ示したが、コマースサーバ102を、データ更新処理部と同期処理部で構成することで、コマースサーバ102単独で本発明の商品データ検索装置を実現することも可能である。
なお、前記した本実施形態によれば、Webサーバ101、コマースサーバ102、DBサーバ103のそれぞれで負荷分散しながら本発明の商品データ検索装置を構成する例についてのみ示したが、コマースサーバ102を、データ更新処理部と同期処理部で構成することで、コマースサーバ102単独で本発明の商品データ検索装置を実現することも可能である。
また、Webサーバ101をページ作成処理部311、セッションデータ取得処理部312、グローバルデータ取得処理部313、データ更新処理部314として、また、コマースサーバ102をキャッシュ管理部411、キャッシュデータ抽出処理部412、キャッシュデータ格納処理部413及びキャッシュデータ同期処理部414として機能させるためのプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
101Webサーバ
102コマースサーバ
103DBサーバ
111〜114クライアント装置
120ネットワーク
311ページ作成処理部
312セッションデータ取得処理部
313グローバルデータ取得処理部
411キャッシュ管理部
412キャッシュデータ抽出処理部
413キャッシュデータ格納処理部
521キャッシュID(管理ID)
102コマースサーバ
103DBサーバ
111〜114クライアント装置
120ネットワーク
311ページ作成処理部
312セッションデータ取得処理部
313グローバルデータ取得処理部
411キャッシュ管理部
412キャッシュデータ抽出処理部
413キャッシュデータ格納処理部
521キャッシュID(管理ID)
Claims (5)
- 商品データを格納するデータベースを共有し、初回データ検索時における検索結果を自身のメモリキャッシュに登録し、当該メモリキャッシュを利用することで次回以降のデータベースのアクセス回数を減らす商品データ検索装置であって、
外部から前記商品データの更新要求を受信し、当該商品データ更新要求の対象となるキャッシュデータを識別する管理IDをその更新内容に応じて生成し、当該生成された管理IDにより識別されるキャッシュデータの更新を指示するデータ更新処理部と、
前記キャッシュデータの有効期限を更新するための指定条件と、当該有効期限と、前記キャッシュデータの更新によって影響を受ける他の商品データ検索装置のアドレスとが予め管理者によって定義され、記憶されるデータ記憶部と、
前記データ更新処理部からデータ更新指示を受信して前記キャッシュデータの更新を行い、当該データ更新結果が前記データ記憶部に予め記憶された指定条件と一致したときに、前記管理IDで識別されるキャッシュデータの有効期限を更新し、当該更新されたキャッシュデータの有効期限を前記データ記憶部に記憶された他の商品データ検索装置へ通知するキャッシュデータ同期処理部と、
を備えたことを特徴とする商品データ検索装置。 - 前記データ更新処理部は、
前記商品データ更新要求に、前記商品データ検索装置に共通のアクセス条件が含まれている場合、当該アクセス条件を識別する識別情報を用いて前記した管理IDを生成することを特徴とする請求項1に記載の商品データ検索装置。 - 前記キャッシュデータ同期処理部は、
前記データ更新処理部からデータ更新指示を受信して前記商品データベース上のデータを更新し、予め前記データ記憶部に記憶された前記指定条件と一致した場合に前記管理IDで識別される前記キャッシュデータの有効期限を前記データ記憶部に記憶された有効期限情報に更新することを特徴とする請求項1または2に記載の商品データ検索装置。 - 商品データを格納するデータベースを共有し、初回データ検索時における検索結果を自身のメモリキャッシュに登録し、当該メモリキャッシュを利用することで次回以降のデータベースのアクセス回数を減らす商品データ検索装置おけるデータ更新方法であって、
外部からデータ更新要求を受信し、当該データ更新要求の対象となるキャッシュデータを識別する管理IDをその更新内容に応じて生成し、当該生成された管理IDにより識別されるキャッシュデータの更新を指示するステップと、
前記キャッシュデータの更新指示を受信して前記キャッシュデータの更新を行い、当該キャッシュデータ更新結果が、管理者によってあらかじめ定義され記憶されたキャッシュデータの有効期限を更新するための指定条件と一致したときに、前記管理IDで識別されるキャッシュデータの有効期限情報を更新し、当該更新されたキャッシュデータの有効期限情報を、管理者によってあらかじめ定義され記憶された他の商品データ検索装置へ通知するステップと、
を有することを特徴とする商品データ検索装置におけるデータ更新方法。 - 商品データを格納するデータベースを共有し、初回データ検索時における検索結果を自身のメモリキャッシュに登録し、当該メモリキャッシュを利用することで次回以降のデータベースのアクセス回数を減らす請求項1〜3に記載の商品データ検索装置に用いられるプログラムであって、
外部からデータ更新要求を受信し、当該データ更新要求の対象となるキャッシュデータを識別する管理IDをその更新内容に応じて生成し、当該生成された管理IDにより識別されるキャッシュデータの更新を指示する処理と、
前記キャッシュデータの更新指示を受信して当該キャッシュデータの更新を行い、当該キャッシュデータ更新結果が、管理者によってあらかじめ定義され記憶された指定条件と一致したときに、前記管理IDで識別されるキャッシュデータの有効期限情報を更新し、当該更新されたキャッシュデータの有効期限情報を、管理者によってあらかじめ定義され記憶された他の商品データ検索装置へ通知する処理と、
を前記商品データ検索装置に実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003393344A JP2005157605A (ja) | 2003-11-25 | 2003-11-25 | 商品データ検索装置および同装置におけるデータ更新方法ならびにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003393344A JP2005157605A (ja) | 2003-11-25 | 2003-11-25 | 商品データ検索装置および同装置におけるデータ更新方法ならびにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005157605A true JP2005157605A (ja) | 2005-06-16 |
Family
ID=34719726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003393344A Pending JP2005157605A (ja) | 2003-11-25 | 2003-11-25 | 商品データ検索装置および同装置におけるデータ更新方法ならびにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005157605A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010501941A (ja) * | 2006-08-21 | 2010-01-21 | アマゾン テクノロジーズ インコーポレーテッド | キャッシュ・エントリの一致性検索のための確率テクニック |
JP2013504798A (ja) * | 2009-09-14 | 2013-02-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | キャッシュ保護 |
JP5484643B1 (ja) * | 2013-03-29 | 2014-05-07 | 楽天株式会社 | データキャッシュシステム、プログラム、記録媒体、及び方法 |
JP2016136383A (ja) * | 2010-10-27 | 2016-07-28 | プラテック、ニール | 多言語マルチプラットフォーム電子商取引マネージメントシステム |
US9678881B2 (en) | 2013-11-28 | 2017-06-13 | Fujitsu Limited | Data distribution device and data distribution method |
US11182297B1 (en) | 2020-09-22 | 2021-11-23 | Coupang Corp. | Electronic apparatus and information providing method using the same |
-
2003
- 2003-11-25 JP JP2003393344A patent/JP2005157605A/ja active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013050976A (ja) * | 2006-08-21 | 2013-03-14 | Amazon Technologies Inc | キャッシュ・エントリの一致性検索のための確率テクニック |
JP2010501941A (ja) * | 2006-08-21 | 2010-01-21 | アマゾン テクノロジーズ インコーポレーテッド | キャッシュ・エントリの一致性検索のための確率テクニック |
US8806133B2 (en) | 2009-09-14 | 2014-08-12 | International Business Machines Corporation | Protection against cache poisoning |
JP2013504798A (ja) * | 2009-09-14 | 2013-02-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | キャッシュ保護 |
JP2018097884A (ja) * | 2010-10-27 | 2018-06-21 | Lisuto株式会社 | 多言語マルチプラットフォーム電子商取引マネージメントシステム |
JP2016136383A (ja) * | 2010-10-27 | 2016-07-28 | プラテック、ニール | 多言語マルチプラットフォーム電子商取引マネージメントシステム |
US10410262B2 (en) | 2010-10-27 | 2019-09-10 | Lisuto K.K. | Multi-language multi-platform e-commerce management system |
US10853857B2 (en) | 2010-10-27 | 2020-12-01 | Lisuto Kk | Multi-language multi-platform e-commerce management system |
WO2014155737A1 (ja) * | 2013-03-29 | 2014-10-02 | 楽天株式会社 | データキャッシュシステム、プログラム、記録媒体、及び方法 |
JP5484643B1 (ja) * | 2013-03-29 | 2014-05-07 | 楽天株式会社 | データキャッシュシステム、プログラム、記録媒体、及び方法 |
US10261900B2 (en) | 2013-03-29 | 2019-04-16 | Rakuten, Inc. | Data cache system, recording medium and method |
US9678881B2 (en) | 2013-11-28 | 2017-06-13 | Fujitsu Limited | Data distribution device and data distribution method |
US11182297B1 (en) | 2020-09-22 | 2021-11-23 | Coupang Corp. | Electronic apparatus and information providing method using the same |
JP7043116B1 (ja) | 2020-09-22 | 2022-03-29 | クーパン コーポレイション | 電子装置およびこれを用いた情報提供方法 |
JP2022054378A (ja) * | 2020-09-22 | 2022-04-06 | クーパン コーポレイション | 電子装置およびこれを用いた情報提供方法 |
US11544195B2 (en) | 2020-09-22 | 2023-01-03 | Coupang Corp. | Electronic apparatus and information providing method using the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12052475B2 (en) | Access control for a digital event | |
KR100692209B1 (ko) | 맞춤형 상품 정보 제공 방법 및 그 시스템 | |
US10546348B1 (en) | Cleaning noise words from transaction descriptions | |
US20020184096A1 (en) | Portable terminal device for providing and obtaining advertisement information, advertisement providing method, advertisement obtaining method, advertisement distributing method and program therefor | |
US10991056B2 (en) | Menu generation system | |
US20110307389A1 (en) | Method and System for Distributed Point of Sale Transactions | |
US9336547B2 (en) | Integrating local products into global web services | |
CN108170731A (zh) | 数据处理方法、装置、计算机存储介质及服务器 | |
US9461884B2 (en) | Information management device and computer-readable medium recorded therein information management program | |
CN112740228A (zh) | 视觉搜索引擎 | |
US20210350424A1 (en) | Consumer tracking system | |
US20110307387A1 (en) | Method and System for Distributed Point of Sale Transactions | |
JP2005157605A (ja) | 商品データ検索装置および同装置におけるデータ更新方法ならびにプログラム | |
JP7500841B2 (ja) | 情報管理システム、情報管理方法及びコンピュータープログラム | |
JP2020173625A (ja) | プログラム、情報処理装置、情報処理方法、及び情報処理システム | |
JP2011175585A (ja) | 電子商取引システム、電子商取引方法、及び電子商取引プログラム | |
WO2019026453A1 (ja) | センサ管理ユニット、方法及びプログラム | |
JP2016062472A (ja) | コンテンツ管理システム、サーバ、コンテンツ管理方法及びプログラム | |
JP2005228179A (ja) | 購買履歴に基づく情報提供システム | |
JP2004240575A (ja) | データ処理方法及びその実施装置並びにその処理プログラム | |
JP2019061566A (ja) | 注文管理装置および注文管理方法 | |
JP2002150095A (ja) | 特売情報制御方法 | |
JP6899647B2 (ja) | データ提供システム、データ提供方法、およびデータ提供プログラム | |
JP2007004447A (ja) | データベースシステムテストプログラム | |
Michailidis | Development of a Smart Ordering System |