(57)【特許請求の範囲】
【請求項１】
少なくとも１つのページの発生を引き起こすデータが入力された時点で、該入力されたデータを用いてページを生成する第１のモードと、該データが入力された時点では該ページを生成せず、その後にページ要求を受信した時点で、該データを用いてページを生成する第２のモードとを実行可能なページ生成手段と、
生成された前記ページを記憶するページ記憶手段と、
前記ページ要求を受信する頻度と前記データが入力される頻度との関係に応じて、前記第１のモードまたは前記第２のモードを設定する設定手段と、
ページ要求を受信したときに、前記第２のモードが設定されている場合には該当するページが前記ページ生成手段により生成された後に、前記第１のモードが設定されている場合には該当するページを生成することなしに、前記ページ記憶手段から該当するページを読み出してその要求元に配信する配信手段とを備えたことを特徴とするデータ配信サーバ。
【請求項２】
前記設定手段は、
前記ページ要求を受信する頻度に係る特性および前記データが入力される頻度に係る特性として、前記ページ要求を受信する平均時間間隔および前記データが入力される平均時間間隔を測定する測定手段と、
前記測定手段による測定の結果、前記ページ要求の受信平均時間間隔が前記データの入力平均時間間隔よりも短いことが示される場合に、前記第１のモードを設定し、それ以外の場合に、前記第２のモードを設定する手段とを含むことを特徴とする請求項１に記載のデータ配信サーバ。
【請求項３】
前記入力されたデータから生成すべきページを特定するための生成ページ特定手段を更に備え、
前記ページ生成部手段は、データ入力時点に、前記生成ページ特定手段によって特定されたページのみを生成することを特徴とする請求項１または２に記載のデータ配信サーバ。
【請求項４】
前記生成ページ特定手段は、データに付されるキー情報と、該キー情報を持つデータが入力されたときに生成すべき１または複数のページの識別情報との対応関係情報、またはデータに付されるキー情報に適用することによって生成すべき１または複数のページの識別情報を得るための規則情報を含むことを特徴とする請求項３に記載のデータ配信サーバ。
【請求項５】
前記データ配信サーバは、複数の者が限定された数量の商品を予め規定された方法で競って購入する形態の売買をネットワークを利用して実施するためのページを提供するサーバであることを特徴とする請求項１ないし４に記載のデータ配信サーバ。
【請求項６】
新たな商品の売買を開始するためのデータが入力された場合、該新たな商品の売買のためのページが生成されることを特徴とする請求項５に記載のデータ配信サーバ。
【請求項７】
利用者側から前記ネットワークを介して或る商品に対する購入の申し込みを受信し、これによって該或る商品の売買のためのページの表示内容を更新すべきものとなった場合、該或る商品の売買のためのページが生成し直されることを特徴とする請求項５または６に記載のデータ配信サーバ。
【請求項８】
少なくとも１つのページの発生を引き起こすデータが入力された時点で、該入力されたデータを用いてページを生成する第１のモードと、該データが入力された時点では該ページを生成せず、その後にページ要求を受信した時点で、該データを用いてページを生成する第２のモードとを実行可能なページ生成手段と、生成された前記ページを記憶するページ記憶手段とを備えたデータ配信サーバにおけるデータ配信方法であって、
前記ページ要求を受信する頻度と前記データが入力される頻度との関係に応じて前記第１のモードまたは前記第２のモードを設定するステップと、
データが入力されたときに、前記第１のモードが設定されている場合には、該入力されたデータを用いてページを生成し、生成された該ページを前記ページ記憶手段に記憶するステップと、
ページ要求を受けたときに、前記第２のモードが設定されている場合には該当するページが前記ページ生成手段により生成された後に、前記第１のモードが設定されている場合には該当するページを生成することなしに、前記ページ記憶手段から該当するページを読み出してその要求元に配信するステップとを備えたことを特徴とするデータ配信方法。
【請求項９】
少なくとも１つのページの発生を引き起こすデータが入力された時点で、該入力されたデータを用いてページを生成する第１のモードと、該データが入力された時点では該ページを生成せず、その後にページ要求を受信した時点で、該データを用いてページを生成する第２のモードとを実行可能なページ生成手段と、生成された前記ページを記憶するページ記憶手段とを備えたデータ配信サーバとしてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体であって、
前記ページ要求を受信する頻度と前記データが入力される頻度との関係に応じて前記第１のモードまたは前記第２のモードを設定するステップと、
データが入力されたときに、前記第１のモードが設定されている場合には、該入力されたデータを用いてページを生成し、生成された該ページを前記ページ記憶手段に記憶するステップと、
ページ要求を受けたときに、前記第２のモードが設定されている場合には該当するページが前記ページ生成手段により生成された後に、前記第１のモードが設定されている場合には該当するページを生成することなしに、前記ページ記憶手段から該当するページを読み出してその要求元に配信するステップとをコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動的に変化するデータを配信するデータ配信サーバ及びデータ配信方法に関する。
【０００２】
【従来の技術】
昨今、インターネットの利用が急速に広まっており、情報発信もしくは情報交換の手段としてだけではなく、新たなビジネスの基盤として大きな期待が寄せられている。
【０００３】
インターネットを利用したビジネスの一つに、インターネット・オークションがある。伝統的なオークションでは参加者は一堂に会して入札する必要があったが、インターネット・オークションには参加者が実際に集まる必要がないという際だった利点がある。この利点を生かして、インターネット・オークションが行われ始めているわけである。
【０００４】
オークションの代表的な方法として、入札するとその入札価格が即座に公開されて、参加者がその状況を見ながら価格を競り上げる「イングリッシュオークション」や、主催者が提示価格を少しずつ下げていき最初に名乗り出た人が競り落とす「ダッチオークション」がある。これらのオークションでは、逐次変化する入札価格や提示価格を速やかに参加者に伝達する必要がある。ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）を用いてインターネット・オークションを実現するには、時々刻々変化するデータを表示する能力がサーバに求められる。
【０００５】
ＷＷＷサーバにおいて、変化するデータを表示するページを構成する方法として、ページ中にデータベースをアクセスする命令を含ませておき、表示要求があったときに命令を解釈実行することにより、最新のデータを含んだページを表示する方式がある。その代表的な方式には、例えば、「ＰＨＰ／ＦＩサーバサイドスクリプト入門」Ｓｏｆｔｗａｒｅ  Ｄｅｓｉｇｎ（月刊雑誌、１９９８年１月号、技術評論社）に開示されているＰＨＰ（ＨＴＭＬ  Ｐｒｅｐｒｏｃｅｓｓｏｒ）や、ＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）などがある。
【０００６】
これらの方式は、ページ要求を受け付けた時点でプログラムによりページを生成する仕組みであり、ページに最新のデータを反映させることができる。
【０００７】
しかしながら、オークションのように多数の参加者が一斉に同じページを見る場合には、データの変化があってもなくても個々の参加者からのページ要求があるたびにページを構成するので、データ変更頻度よりもデータ表示頻度が著しく高い場合には、効率が悪いという問題点があった。
【０００８】
ここで、図８に、従来のデータ配信装置の構成例を示す。図８に示されるように、従来のデータ配信装置は、データ入力部１０１、データ記憶部１０２、ページ生成部１０３、ページ要求受付部１０４、ページ出力部１０５から構成される。
【０００９】
表示すべきデータは、データ入力部１０１より入力され、データ記憶部１０２に記憶される。その後、ページ要求受付部１０４は、受け付けた要求を解析して、ページ生成が必要であると判定すると、ページ生成部１０３に指示する。ページ生成部１０３は、ページ要求受付部１０４からの指示に基づき、データ記憶部１０２よりデータを読み出して、ページを生成する。生成されたページは、ページ出力部１０５に渡され、要求元に向けて送信される。ＣＧＩではページ生成部（ページ生成プロセス）はページ要求のたびに起動されるのに対し、ＰＨＰではページ生成部（ページ生成プロセス）は予め起動されて指示待ち状態で待機しておりページ要求時には直ちにページ生成を行うので、ＰＨＰはＣＧＩに比べて高速な処理ができる。しかし、上記のような方式は、いずれも、データ入力部１０１からデータ記憶部１０２へのデータ書き込みと、ページ生成部１０３によるデータ記憶部１０２からのデータ読み出しとを、排他的に制御する必要があるので、オークションのように頻繁にデータを書き込んだり読み出したりする用途には向かない。
【００１０】
【発明が解決しようとする課題】
従来のページ要求受信時にページを生成する方法では、ページに反映すべきデータの発生頻度よりもページ要求受信頻度が著しく高い場合には処理効率が悪いという問題点があった。
【００１１】
本発明は、上記事情を考慮してなされたもので、効率よくページを生成することが可能なデータ配信サーバ及びデータ配信方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明に係るデータ配信サーバは、少なくとも１つのページの発生を引き起こすデータが入力された時点で、該入力されたデータを用いてページを生成する第１のモードと、該データが入力された時点では該ページを生成せず、その後にページ要求を受信した時点で、該データを用いてページを生成する第２のモードとを実行可能なページ生成手段と、生成された前記ページを記憶するページ記憶手段と、前記ページ要求を受信する頻度と前記データが入力される頻度との関係に応じて前記第１のモードまたは前記第２のモードを設定する設定手段と、ページ要求を受信したときに、前記第２のモードが設定されている場合には該当するページが前記ページ生成手段により生成された後に、前記第１のモードが設定されている場合には該当するページを生成することなしに、前記ページ記憶手段から該当するページを読み出してその要求元に配信する配信手段とを備えたことを特徴とする。
好ましくは、前記設定手段は、前記ページ要求を受信する頻度に係る特性および前記データが入力される頻度に係る特性として、前記ページ要求を受信する平均時間間隔および前記データが入力される平均時間間隔を測定する測定手段と、前記測定手段による測定の結果、前記ページ要求の受信平均時間間隔が前記データの入力平均時間間隔よりも短いことが示される場合に、前記第１のモードを設定し、それ以外の場合に、前記第２のモードを設定する手段とを含むようにしてもよい。
本発明では、ページを生成する条件を適宜設定もしくは制御することによって、状況に応じた稼働をさせて、更なる処理の効率化を図ることができる。
また、好ましくは、前記入力されたデータから生成すべき（１または複数の）ページを特定するための生成ページ特定手段を更に備え、前記ページ生成部手段は、データ入力時点に、前記生成ページ特定手段によって特定されたページのみを生成するようにしてもよい。さらに、好ましくは、前記生成ページ特定手段は、データに付されるキー情報と、該キー情報を持つデータが入力されたときに生成すべき１または複数のページの識別情報との対応関係情報、またはデータに付されるキー情報に適用することによって生成すべき１または複数のページの識別情報を得るための規則情報を含むようにしてもよい。
ところで、上記発明において、前記データ配信サーバを、複数の者が限定された数量の商品を予め規定された方法で競って購入する形態の売買（例えば、イングリッシュオークション、ダッチオークション、タイムセールなど）をネットワーク（例えば、インターネット）を利用して実施するためのページを提供するサーバ（例えば、オークションサーバ）としてもよい。なお、この場合において、ページは、例えば、トップページ、少なくともトップページからリンクされた売買形態毎の商品一覧ページ、少なくとも商品一覧ページからリンクされた商品毎の個別商品ページを含むように、階層的に構成してもよい。この場合、例えば、新たな商品の売買を開始するためのデータが入力された場合、該新たな商品の売買のためのページが生成される。また、例えば、利用者側から前記ネットワークを介して或る商品に対する購入の申し込みを受信し、これによって該或る商品の売買のためのページの表示内容を更新すべきものとなった場合、該或る商品の売買のためのページが生成し直される。例えば、上記売買形態がイングリッシュオークションの場合、ページには或る商品に対して入札されたその時点での最も高い入札価格（このままであれば落札することになる価格）が表示される。利用者は、ページ要求を出し、配信され表示されたページにおいて商品やその時点での最高値の入札価格を閲覧して、商品を購入する意思を持った場合には、その時点での最高値の入札価格を越える入札価格を付けて予め規定された手順に従って入札するための処理を行う。
【００２４】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【００２５】
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００２６】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００２７】
図１に、本実施形態に係るデータ配信サーバの構成例を示す。
【００２８】
なお、本実施形態に係るデータ配信サーバは、通常、サーバとして好適な計算機上で本データ配信サーバ用プログラムを実行することにより実現される。もちろん、本データ配信サーバ用プログラムは、記録媒体または通信媒体を媒介にして受け渡し可能である。
また、上記のように本実施形態に係るデータ配信サーバを計算機とソフトウェアを用いて実現する場合、当該ソフトウェアは特定のオペレーティングシステム上で実行されるものであってもよいし、オペレーティングシステムなしに実行されるものであってもよい。もちろん、前者の場合に、当該ソフトウェアが、オペレーティングシステムにより提供される機能を利用するものであってもよい。
【００２９】
本実施形態に係るデータ配信サーバでは、ページを生成する際に、種々のスペックのブラウザに応えるために、ｈｔｍｌページおよびｘｍｌページを両方生成するものとする（すなわち、要求元のブラウザに応じて、ｈｔｍｌページ、または、ｘｍｌページおよびスタイルシート（例えばｘｓｌデータ）、を配信する）。もちろん、ｈｔｍｌページまたはｘｍｌページの一方のみをサポートするものとして、ｈｔｍｌページまたはｘｍｌページのみを生成するようにしてもよい。
また、本実施形態では、ページの「生成」とは、そのままではページとして表示できないデータをもとにして新たにページを生成する場合の他に、あるページに新たな内容を付け加える場合や、あるページに含まれるあるデータの値を書き換える（更新する）場合も含むものとする。
【００３０】
さて、図１に示されるように、本実施形態のデータ配信サーバは、基本的な構成として、データ入力部１１、データ記憶部１２、ページ生成部１３、ページ要求受付部１４、ページ出力部１５、ページ記憶部１６を備えている。
【００３１】
ここでは、ページを生成するタイミングを、ページ要求受信時ではなく、データ入力時とする。
【００３２】
すなわち、ある時点において、表示すべきデータが、データ入力部１１より入力され、データ記憶部１２に記憶される。この時点で、データ入力部１１は、ページ生成部１３に、ページの生成を指示する。
そして、ページ生成部１３は、上記の指示に従って、データ記憶部１２から必要なデータを読み出し、読み出したデータをもとにページを生成し、生成したページをページ記憶部１６に記憶しておく。
しかして、ページ要求受付部１４がページ要求を受け付けると、従来のようにページ生成を行うことなく、ページ記憶部１６から該当するページを読み出し、ページ出力部１５より要求元に向けて送信する。
【００３３】
なお、データ入力部１１は、ページ生成部１３に指示を出す際に、入力されたデータも併せて渡すようにしてもよい。
これによって、ページ生成部１３がデータ記憶部１２からデータを読み出す手間を省くこともできる。
【００３４】
また、ページ生成部１３がページを生成する際に、毎回全てのページを生成するのではなく、入力されたデータが影響しないページは対象から除外し、入力されたデータが影響するページ（例えば、該データを含む既存の本来のページと、該本来のページへのリンクを持つ他の既存のページであって該データの少なくとも一部分をも含むページ；また、例えば、該データから新たに生成されるページと、該新たに生成されるページへのリンクを新たに張るべき既存のページ）だけを生成するようにすると効率がよい。
このためには、例えば、ページ生成部１３の中に、データ記憶部１２で用いる主キーと生成すべきページとの対応表を備え、入力されたデータの持つ主キーに基づいて、この対応表を参照して、生成すべきページを決定するようにしてもよい（より具体的には、例えば、この対応表に、生成すべき１または複数のページを識別する情報を登録しておく）。
【００３５】
また、データ入力がページ出力よりも頻繁に起きると、あるページに関係するデータが入力されたためにその時点で該ページが生成し直されてから、該ページに対するページ要求を受信するよりも先に、該ページに関係する更なるデータの入力がなされ、この時点で該ページが更に生成し直されてしまう場合がある。すなわち、該ページが実際に使われる前に生成し直されると、結果的に処理の無駄が発生していることになる。
そこで、例えば、ページ要求の平均時間間隔がデータ入力の平均時間間隔よりも短い場合にのみ（もしくは、ページ要求の平均時間間隔がデータ入力の平均時間間隔よりも所定の基準を越えて短い場合にのみ）、データ入力時にページを生成させ、それ以外の場合には、ページ要求受信時にページを生成させる、というようにすることも可能である。
データ入力時にページを生成するモード（モードＡと呼ぶ）と、ページ要求時にページを生成するモード（モードＢと呼ぶ）との切替えは、（１）いずれのモードを選択するかを（データ配信サーバに）静的に設定しておく方法と、（２）（データ配信サーバが）上記の２種類の時間間隔を測定しながら上記の基準に従ってモードを動的に切替える方法がある。
また、（３）上記のモードＡと、上記のモードＢと、上記の測定結果に基づいて動的に切替えるモード（モードＣと呼ぶ）の３つのモードのうちから、ユーザが所望のモードを選択して設定するという方法も可能である。
【００３６】
このように本実施形態によれば、例えばオークションのようにデータ変更頻度よりもデータ表示頻度が高いと想定される場合にも、効率良く、時々刻々と変化するデータをリアルタイムにページに反映させることができる。
【００３７】
なお、データ入力時には、データを書き込むためにデータ記憶部（後に示す図２や図４では商品ＤＢがこれに相当）の排他的ロックが必要であり、ページ生成時には、データを読み出すためにデータ記憶部の共有ロックが必要である。ページ生成とデータ入力とが混在するとデータ記憶部をロックする機会が多くなり性能低下の原因となるが、上記のように、データ入力時に生成も行うようにした場合には、ロック回数を減らすことができる。
【００３８】
さて、以下では、本発明をインターネット・リアルタイム・オークション・システムに適用した場合を例にとって本実施形態についてより詳しく説明する。
【００３９】
以下では、最初に、図２を参照しながらシステムの基本的な構成例を説明し、次に、図３を参照しながらクライアント側に表示されるページ画面構成例について説明する。そして、図４を参照しながらより詳しいシステム構成例について説明し、次に、図５〜図７を参照しながら本オークション・システムにおけるデータ入力とデータ生成に関して詳細に説明する。
【００４０】
以下では、オークションの代表的な方法として、入札するとその入札価格が即座に公開されて、参加者がその状況を見ながら価格を競り上げる「イングリッシュオークション」（この場合、例えば、参加者の入札により、現時点の最高値の入札価格のデータが時々刻々と入力され得る）を主として例にとって説明を行うが、主催者が提示価格を少しずつ下げていき最初に名乗り出た人が競り落とす「ダッチオークション」（この場合、例えば、サーバ側の仕組みによって、より低い提示価格のデータが時系列的に発生する）など他の形態のオークションも同様に実現可能である。また、オークションの他にも、一定の期間内に一定数の特定の商品を申し込みの早い者順に販売する「タイムセール」（この場合、例えば、利用者からの申し込みにより、当該商品の残数のデータが時々刻々と変化し得る）など、種々の商品販売形態が実現可能である。
【００４１】
図２に、本発明を適用したオークション・システムの基本的な構成例を示す。
【００４２】
オークション参加者は、少なくとも競合いができる程度の人数がいるものとする。それらオークション参加者は、ＷＷＷブラウザ３１を用い、インターネットを介しオークションサーバ３２に接続し、オークションサーバ３２からページを取得し表示させて、例えば競合い状況を見たり入札をしたりする。
【００４３】
このオークションサーバ３２は、図２に示されるように、ＷＷＷサーバ３２１、商品ページ記憶部３２２、オークションエンジン（処理部）３２３、顧客データベース（ＤＢ）３２４、商品データベース（ＤＢ）３２５を含んでいる。また、商品管理ツール３３がオークションサーバ３２に接続されている。
【００４４】
図２において、図１のデータ入力部１１に相当するのは、商品管理ツール３３（事業者による設定時にデータ発生）、およびオークションエンジン３２３内のオークション機能（図示せず）である。図１のデータ入力部１１に相当し得るオークション機能は、オークションアルゴリズムによって異なり得るが、例えば、イングリッシュオークションなどの場合には、入札受付処理機能（オークション参加者からの入札時にデータ発生）と、終了処理機能（当該オークションの終了時にデータ発生）がこれに相当する。
【００４５】
データ記憶部１２に相当するのは、商品ＤＢ３２５である。なお、顧客ＤＢ３２４のデータは、オークションのために必要なデータであるが、ページ生成とは直接関係ないものとする。
【００４６】
ページ生成部１３に相当するものはオークションサーバ３２内にあるが図２では記述を省略してある。
【００４７】
ページ要求受付部１４およびページ出力部１５は、ＷＷＷサーバ３２１の機能によって提供されるものとする。
【００４８】
ページ記憶部１６に相当するのは、商品ページＤＢ３２３である。
【００４９】
なお、オークションエンジン３２３は、オークションに関するデータ処理や、前述のページ発生モード（Ａ，Ｂ，Ｃ）の設定・制御などを行うための部分である。
【００５０】
なお、図２のシステムでは、商品管理ツール３３をオークションサーバ３２とは独立に構成した場合を示している。例えば、商品管理ツール３３の部分を優れたユーザインタフェースを持つツールが多いＰＣ（パーソナルコンピュータ）上に、オークションサーバ３２の部分を柔軟なサーバ設定をしやすいＵＮＩＸマシン上にと、分割して実装するようにしてもよい。もちろん、商品管理ツール３３をオークションサーバ３２上に実装してもよい。また、例えば、オークション事業者がインターネット・サービス・プロバイダのサーバを利用する場合には、商品管理ツール３３とオークションサーバ３２をＰＰＰ等で接続する形態もある。後に示す図４の構成例の場合も同様である。
【００５１】
さて、図２のシステムにおいて、オークションを主催し商品を販売する事業者は、商品管理ツール３３を用いてオークションにかける商品の設定を行い、オークション終了後に落札結果を得る。
【００５２】
最初に、事業者が商品に関する情報を設定すると、商品情報（商品説明、オークション開始価格、終了時刻など）は、出品番号を主キーとして、商品ＤＢ３２５に格納される。商品ＤＢ３２５にデータが格納されると、ページ生成部（図示せず）が商品一覧ページや商品個別ページなどのページを生成し、商品ページ記憶部３２２に格納する。
【００５３】
オークション参加者は、ＷＷＷブラウザ３１を通してＷＷＷサーバ３２１にページ要求を出すことにより、商品一覧ページや商品個別ページなどのページを見ることができる。購入したい商品があれば、ＷＷＷサーバ３２１に対して入札を行う。
【００５４】
入札のデータは、ＷＷＷサーバ３２１によりオークションエンジン３２３に渡され、オークションアルゴリズムに応じた処理を行う。その結果として、最新価格を更新したときや、オークション終了時刻になって落札者を決めたときなどに、商品ページ記憶部３２２中の商品一覧ページや商品個別ページを更新する。
【００５５】
ここで、本オークション・システムが扱う商品ページの例について説明する。
【００５６】
図３に、商品ページの例を示す。
【００５７】
図３において、「矢印の線」は、ハイパーテキストのリンクを示す。例えば、ユーザがＷＷＷブラウザ上に表示されたトップページ４１にあるリンク４１１１をマウスでクリックすると、矢印の先のページ４２１にジャンプすることができる。
【００５８】
図３の例では、参加者が商品を探しやすいように、商品を複数のカテゴリに分類し、商品ページも階層構造にする。
【００５９】
図３のページ４１は、このショッピングサイトのトップページである。この例では、オークション販売と同時に、価格を安く固定して時間を区切って一定数量の物品を販売するタイムセールという販売形式も併せて行う。そのため、トップページ４１の左側にオークション販売の商品カテゴリの一覧（リンク群）４１１を、右側にタイムセール販売のカテゴリの一覧（リンク群）４１２を表示している。
【００６０】
トップページ４１の各カテゴリのリンク（４１１１，４１２１参照）をたどると、カテゴリごとの商品一覧ページ（例えば、４２１や４２２）が表示される。商品一覧ページには、カテゴリ内の各々の商品へのリンク、競合いの状況を示す現在価格や、残り個数が表示される（４２１１，４２２１参照）。
【００６１】
なお、図３の例では、各カテゴリの商品一覧ページ（例えば、４２１や４２２）にも、トップページ４１と同じように、各カテゴリの商品一覧ページへのリンク群（４２１２，４２２２参照）が設けられている（トップページ４１に戻らずに、他のカテゴリの商品一覧ページへジャンプすることができる）。
【００６２】
さらに、商品一覧ページ（例えば、４２１や４２２）からリンクをたどると、商品個別ページ（例えば、４３１や４３２）が表示される。これらのページには、商品の画像や説明、入札や購入申し込みのボタン（＝入札価格や購入個数などをサーバに伝えるためのフォーム）、最新の入札状況や販売状況が表示される（４３１１，４３２１等参照）。
【００６３】
なお、図３の例では、トップページ４１に設けた特別に紹介したい商品へのリンク（４１３参照）によって、トップページ４１から直接、該当する商品一覧ページ（例えば、４２１や４２２）にジャンプすることができるものとなっている。
【００６４】
さらに、商品個別ページ（例えば、４３１や４３２）からリンク（４３１２，４３２２参照）をたどると、商品の最も詳しい説明である商品詳細ページ（カタログページ）（例えば、４４１や４４２）が表示される。
【００６５】
ここで、例えば、図３のページ構成例のように、あるページ４３１へ他のページ４２１からリンクが張られている場合に、該あるページ４３１で表示されるデータの一部（現在価格）を該他のページ４２１にも表示する場合がある。このような場合には、該あるページ４３１内のデータの値が更新された場合には、該他のページ４２１の該当データ（現在価格）も更新することになる。
【００６６】
また、新たにオークションが開始される場合のように、ページ自体が初めて生成されるような場合もある。この場合において、例えば４１，４２１等の既存の他のページに当該初めて発生させたページへのリンクを付加する場合には、当該リンクを付加する４１，４２１等の既存の他のページも内容が変わるので、それら生成することになる。
【００６７】
なお、あるオークション４２１が終了した場合のように、落札結果（例えば、落札価格、あるいは落札結果および落札者、など）を一定期間表示して、その後にページ自体を削除するような場合もある。落札結果を表示する場合には、例えば、当該ページにおいて、「現在価格」を「落札価格」と表現を変えたり、入札ボタン（４３１３）を削除したりする。また、例えば、４１等のリンク元のページに、この商品のオークションが終了した旨を一定期間表示する場合には、当該リンク元ページも内容が変わるので、それも生成し直すことになる。そして、当該ページ自体を削除したために、リンク元ページから当該削除するページ４２１へのリンクを除去する場合には、当該リンクを除去するリンク元ページも内容が変わるので、それも生成し直すことになる。
【００６８】
なお、あるページを生成する場合には、そのページへのリンクを持つページをすべて生成する方法も考えられる。
【００６９】
また、あるページの内容を更新することになるデータであって、かつ、そのページにとって即応性を有するデータが入力された場合には、そのデータ入力時点でページを生成するが、あるページの内容を更新することになるデータであって、かつ、即応性を有しないデータが入力された場合には、その時点ではページを生成しないようにする方法も考えられる。
【００７０】
さて、以下では、本発明を適用したオークション・システムの構成例についてより詳しく説明する。
【００７１】
図４に、本発明を適用したオークション・システムのより詳しい構成例（図２をより詳しくした実現例）を示す。
【００７２】
ここでは、イングリッシュオークションを主として例にとって説明するので、データ入力には、事業者がオークションにかける商品の設定をする場合と、オークション実施中に参加者が入札する場合と、あるオークションが終了した場合とがあることになる。
【００７３】
図４において、図１のデータ入力部１１に相当するのは、商品管理ツール５１（事業者による設定時にデータ発生）、入札受付ＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）５５４（オークション参加者からの入札時にデータ発生）、終了コマンド５５５（当該オークションの終了時にデータ発生）である。
【００７４】
データ記憶部１２に相当するのは、データ記憶部５３の商品ＤＢ５３２である。なお、データ記憶部５３の顧客ＤＢ５３１のデータは、オークションのために必要なデータであるが、ページ生成とは直接関係ないものとする。
【００７５】
ページ生成部１３に相当するのは、ページ生成部５２である。
【００７６】
ページ要求受付部１４およびページ出力部１５は、ＷＷＷサーバ５６の機能によって提供されるものとする。
【００７７】
ページ記憶部１６に相当するのは、商品ページＤＢ５４である。
【００７８】
なお、オークションエンジン３２３は、オークションに関するデータ処理や、前述のページ発生モード（Ａ，Ｂ，Ｃ）の設定・制御などを行うための部分である。
【００７９】
さて、図４の構成例において、オークションを実施する事業者は、商品管理ツール５１を用いてオークションにかける商品を設定したり落札結果を得たりする。
【００８０】
ページ生成部５２は、テンプレートやスタイルシートをもとに表示すべきページの中間ファイルを生成するページ生成プログラム１（５２１）と、中間ファイルに最新データを埋め込む処理などを行うページ生成プログラム２（５２２）とに分けて実現している。
【００８１】
すなわち、新たにページを生成するときなどのように中間ファイルを生成する必要があるときもしくは中間ファイルを生成し直す必要があるときに、ページ生成プログラム１（５２１）とページ生成プログラム２（５２２）の両方が実行され、ページに含まれるデータの内容が更新されるだけのときなどのように中間ファイルに変更がないときに、ページ生成プログラム２（５２２）のみが実行され実行される。
【００８２】
これら２つのページ生成プログラムは、主キーである出品番号（出品Ｎｏ）から変更すべきページを選ぶ際に用いる、出品番号−商品ページ対応表５２３を共有している（この場合、データの受け渡しは、出品番号を付加して行うものとする）。対応表５２３の内容は、主に商品管理ツール５１を通して設定される。
【００８３】
図４の例では、対応表５２３に、生成すべき一覧ファイル名や個別ファイル名などが登録されている。
【００８４】
なお、この対応表５２３は、図４では表形式で実現したが、「出品番号に拡張子“．ｈｔｍ”をつけて個別ファイル名とする」などのルール形式で保持してもよい。
【００８５】
商品管理ツール５１から入力されたデータは、データ記憶部５３に記憶される。データ記憶部５３は、顧客ごとの本システム用の登録名やパスワード、連絡先などを格納する顧客ＤＢ５３１と、商品情報や入札状況を格納する商品ＤＢ５３２とを含んでいる。
【００８６】
商品ＤＢ５３２の内容として、５３３にその一例を示す。もちろん、５３３の例の他に、売買形態（例えば、イングリッシュオークションか、ダッチオークションか、タイムセールかなど）、オークション開示時刻、開始価格、終了価格など、種々の項目を設けて構わない。
【００８７】
商品ページＤＢ５４は、表示すべきページを格納するデータベースである。本実施形態では、１ページを１ファイルに格納し、ディレクトリ構造を持ったファイルシステム中に格納するものとしている。他の実現方法としては、１ページを大容量オブジェクトとしてオブジェクト指向データベースに格納するなどの方法がある。
【００８８】
図４の例においては、前述したように、同一ページに対して、ｈｔｍｌとｘｍｌの両方でデータを持つようにしている。
【００８９】
また、図４の例においては、例えば、ページ５４１（Ｌ１．ｈｔｍ、Ｌ１．ｘｍｌ）は、図３の例のトップページ４１に相当し、５４２はページ５４１のインライン画像データ、５４３はｘｍｌデータのためのスタイルシートである。また、例えば、ページ５４７（Ｌ２．ｈｔｍ、Ｌ２．ｘｍｌ）は、図３の商品一覧ページ４２１、ページ５４８（Ｌ３．ｈｔｍ、Ｌ３．ｘｍｌ）は、図３の商品個別ページ４３１に相当する。
【００９０】
オークションエンジン５５は、入札を受け付けるＣＧＩプログラム５５４、ページ要求に対して動的な処理をするページ表示ＣＧＩプログラム５５１、オークションの終了処理をするコマンド５５５、入力頻度・ページ要求を測定するコマンド５５３などから構成される。タイマー５５６は、終了コマンド５５５がオークションの終了を判断するために用いられる。
【００９１】
また、図４の例では、オークションエンジン５５内の設定ファイル５５２にページを生成するモード（例えば、前述のモードＡ，Ｂ，Ｃのいずれか）を設定し、設定されたモードによって、例えば、データ入力時にページを生成するか、ページ要求受信時にページを生成するか、測定コマンド５５３を定期的に起動し測定結果に従ってデータ入力時またはページ要求受信時にページを生成するか、などといった設定もしくは制御をすることができる。
【００９２】
なお、他のオークション形態や販売形態を実施する場合には、オークションエンジン３２３の中のコマンドを適宜修正すればよい。
【００９３】
ＷＷＷサーバ５６は、ＸＭＬ対応ブラウザ５７１やＸＭＬ非対応ブラウザ５７２に対して、ページ要求受付部とページ出力部を兼ねた役割を果たす。
【００９４】
オークション参加者が入札状況を見るときは、ＸＭＬ対応ブラウザ５７１やＸＭＬ非対応ブラウザ５７２からページ要求をインターネット５８を介してＷＷＷサーバ５６に送る。オークション参加者からページ要求があると、ＷＷＷサーバ５６中のページ要求受付部が商品ページＤＢ５４より該当ページ（例えば、トップページ、商品一覧ページ、あるいは商品個別ページなど）を読み出し、ＷＷＷサーバ５６中のページ出力部が要求元に向けて、ＸＭＬもしくはＨＴＭＬページを送信する。
【００９５】
また、ＷＷＷサーバ５６が入札を受けると、その入札データは、入札受付ＣＧＩコマンド５５４に渡され、データとして商品ＤＢ５３２に格納されると共に、入札データで指定されている出品番号に基づいて、例えば該当する商品に関するデータを含む商品一覧ページおよび商品個別ページを生成し直し、結果を商品ページＤＢ５４に格納する。
【００９６】
さて、図４の構成例では、図１におけるデータ入力部に相当する機能が３つある。
【００９７】
すなわち、（ｉ）事業主が最初に商品を設定したり、オークション実施中に設定を変更する場合には、商品管理ツール５１がデータ入力部となる。（ii）参加者がブラウザから入札する場合には、入札受付ＣＧＩ５５４がデータ入力部となる。さらに、（iii ）タイマー５５６により所定の時刻に起動される終了コマンドもデータ入力部として機能する。
【００９８】
以下では、上記の３つの場合のデータの流れについて図５、図６、図７を参照しながら順番に説明する。
【００９９】
まず、（ｉ）の商品管理ツール５１がデータ入力部１１に相当する場合について説明する。
【０１００】
図５に、商品管理ツール５１がデータ入力部１１に相当する場合のデータの流れを示す。
【０１０１】
事業主は、オークションを開始する前に、販売する商品に関する説明やオークションの終了時刻などの設定を、商品管理ツール５１を用いて行う。
【０１０２】
設定されたデータは、出品番号を主キーとしてデータ記憶部５３に格納されるとともに、ページ生成部５２に渡される。
【０１０３】
ページ生成プログラム１およびページ生成プログラム２により生成されたページが商品ページＤＢ５４に格納される。
【０１０４】
最初にオークションを設定するときや、商品を追加するときには、出品番号をキーとして、どのデータが入力されたときにどのページを生成するかを決める対応表５２３が生成される。以降は、この対応表５２３を参照しながら、ページ生成プログラム１，２が必要最小限のページを生成する。
【０１０５】
なお、この場合に、入力時点で直ちにページを生成し格納するのではなく、例えば、指定された時刻になってから生成し格納するようにしてもよい。
【０１０６】
なお、本実施形態では、ページ生成プログラム１はグラフィカルインタフェースが優れているパソコン上に実装し、ページ生成プログラム２は文字列操作プログラムを記述しやすいワークステーション上に実行したが、必ずしも分割して実装する必要はない。
【０１０７】
次に、（ii）の入札受付ＣＧＩ５５４がデータ入力部１１に相当する場合について説明する。
【０１０８】
図６に、入札受付ＣＧＩ５５４がデータ入力部１１に相当する場合のデータの流れを示す。
【０１０９】
参加者がブラウザ５７１，５７２からインターネット５８を経由して接続したＷＷＷサーバ５６を介して入札すると、入札された情報が入札受付ＣＧＩ５５４に渡される。
【０１１０】
入札された情報を渡された入札受付ＣＧＩ５５４は、商品ＤＢ５３２に格納されている情報を参照しながら、入札を受け付けるかどうか（例えば、その入札が適式な入札であるか否か、かつ、その入札価格がそのオークションにおけるそれまでの入札価格の最高値を越えるものであるかどうか）を判定する。
【０１１１】
入札を受け付ける場合には、その情報を商品ＤＢ５３２に格納するとともに、ページ生成プログラム２（５２２）に、ページ変更の指示を与える。ページ生成プログラム２は、対応表５２３を参照しながら、入札により変化する情報（現在の落札可能価格や入札事実など）を含むページだけを生成し直す。
【０１１２】
なお、例えば、入札が適式であるが、入札価格が最高値でないために入札を受け付けない場合であっても、調査のためなどで入札の統計データ等を収集する場合には、その情報を商品ＤＢ５３２もしくは統計用ＤＢ等に格納する。また、例えば、入札総数等の参考データをもページに表示させる場合には、現在の落札可能価格が更新されなくても、参考データが更新されたならば、該当するページを生成し直す。
【０１１３】
次に、（iii ）の終了コマンド５５５がデータ入力部１１となる場合について説明する。
【０１１４】
図７に、終了コマンド５５５がデータ入力部１１となる場合のデータの流れを示す。
【０１１５】
タイマー５５６により所定の時刻に終了コマンド５５５が起動されると、商品ＤＢ５２３に格納されている終了時刻や入札履歴などをもとにオークションの終了処理を始める。終了コマンド５５５は、終了を予告するメッセージやオークションが終了したメッセージをページ生成プログラム２（５２２）に渡して、新しいページを生成するように依頼する。ページ生成プログラム２は、対応表５２３を参照しながら、入札により変化する情報（現在の落札価格や入札事実など）を含むページだけを生成し直す。
【０１１６】
なお、「タイムセール」は「イングリッシュオークション」と同様であり、売買の申し込みがあった場合は、上記の（ii）に該当する。この場合、商品の残数が更新される。
【０１１７】
また、「ダッチオークション」の場合は、例えば、入力受付ＣＧＩ５５４の後にダッチオークション制御コマンドを設け、入札があるまでの間、ダッチオークション制御コマンドは、タイマーを参照して所定のタイミングになったら提示価格を下げ、これを商品ＤＢに格納させるとともに、ページ生成部に渡して該当ページの該当データを更新したものを生成させ、商品ページＤＢに格納させる。入札があった場合は、ダッチオークション制御コマンドは、上記の（iii ）と同様に、オークションの終了処理を行う。
【０１１８】
以上で説明したように、本実施形態によれば、データの変更頻度よりも表示頻度が著しく高い場合でも、サーバの負荷が小さいデータ配信サーバを実現することができる。
【０１１９】
図４の例におけるＣＧＩを用いた実験によると、ページ要求後にページを生成して出力するまでの時間は、ページ要求時に予め生成されたページを読み出して出力するまでの時間の３倍以上かかっている。よって、本発明を用いれば、入札頻度がページ読み出し頻度に比べて無視できる場合で、負荷を１／３以下にすることができる。
【０１２０】
以上、本発明をインターネット・オークション・システムに適用した場合を例にとって説明してきたが、本発明はその他の種々のインターネット上のシステムあるいはデータ配信サーバにも適用可能である。
【０１２１】
より具体的には、例えば、インターネットにおけるニュース配信システムや、スポーツ情報配信システムにも、適用可能である。
【０１２２】
その際、モードＡとモードＢを使い分けると、効率の良い配信サーバを実現することができる。
【０１２３】
すなわち、この場合、データ記憶部には、ニュース記事やスポーツのスコアなどを格納する。
【０１２４】
そして、日常的なニュースしかないときや、スポーツの試合をしていない時間帯には、新しい記事を入力した時点でページを生成してページ記憶部に格納しておく。
【０１２５】
一方、事件が起こり時々刻々新しい記事が発生するときや、スポーツの試合中には、ページ要求受信時点で最新情報を取り込んだページを生成して出力する。
【０１２６】
もちろん、本発明は、インターネット・オークション・システムや、インターネットを利用したニュース配信システムあるいはスポーツ情報配信システムに限らず、他の種々のデータ配信システムに適用可能である。
【０１２７】
また、以上では、インターネットでの利用を中心に説明してきたが、本発明は、他の広域ネットワークにおけるデータ配信システムにも適用可能である。もちろん、ＬＡＮにおけるデータ配信システムにも適用可能である。
【０１２８】
なお、以上の各機能は、ソフトウェアとしても実現可能である。
【０１２９】
また、本実施形態は、コンピュータに所定の手段を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても実施することもできる。
【０１３０】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１３１】
【発明の効果】
本発明によれば、データ入力時にページを生成して格納しておくモードと、ページ要求受信時にページを生成するモードとを適宜使い分けることができるので、効率良くページ生成を行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るデータ配信サーバの構成例を示す図
【図２】本発明の一実施形態に係るインターネットオークションシステムの構成例を示す図
【図３】商品ページの構成例を示す図
【図４】本発明の一実施形態に係るインターネットオークションシステムのより詳しい構成例を示す図
【図５】図４のインターネットオークションシステム中のデータの流れを説明するための図
【図６】図４のインターネットオークションシステム中のデータの流れを説明するための図
【図７】図４のインターネットオークションシステム中のデータの流れを説明するための図
【図８】従来のデータ配信サーバの構成例を示す図
【符号の説明】
１１…データ入力部
１２，５３…データ記憶部
１３，５２…ページ生成部
１４…ページ要求受付部
１５…ページ出力部
１６…ページ記憶部
３１…ＷＷＷブラウザ
３２…オークションサーバ
３２１，５６…ＷＷＷサーバ
３２２…商品ページ記憶部
５５，３２３…オークションエンジン
３２４，５３１…顧客データベース
３２５，５３２…商品データベース
５１，３３…商品管理ツール
５２１，５２２…ページ生成プログラム
５２３…対応表
５４…商品ページデータベース
５５１…ページ表示ＣＧＩ
５５２…設定ファイル
５５３…測定コマンド
５５４…入札受付ＣＧＩ
５５５…終了コマンド
５５６…タイマー
５７１…ＸＭＬ対応ブラウザ
５７２…ＸＭＬ非対応ブラウザ
５８…インターネット
【図１】
0003707970.tif 000002
【図２】
0003707970.tif 000003
【図３】
0003707970.tif 000004
【図４】
0003707970.tif 000005
【図５】
0003707970.tif 000006
【図６】
0003707970.tif 000007
【図７】
0003707970.tif 000008
【図８】
0003707970.tif 000009