以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、情報処理システムに対して本発明を適用した場合の実施形態である。
[1.第1実施形態]
[1−1.情報処理システムの構成及び機能概要]
先ず、本実施形態に係る情報処理システムSの構成について、図1を用いて説明する。図1は、本実施形態に係る情報処理システムSの概要構成の一例を示す図である。
図1に示すように、情報処理システムSは、ゴルフ場予約サーバ1と、複数のゴルフ場端末2と、複数のユーザ端末3と、を含んで構成されている。そして、ゴルフ場予約サーバ1と各ゴルフ場端末2及び各ユーザ端末3とは、ネットワークNWを介して、例えば、通信プロトコルにTCP/IP等を用いて相互にデータの送受信が可能になっている。なお、ネットワークNWは、例えば、インターネット、専用通信回線(例えば、CATV(Community Antenna Television)回線)、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。
ゴルフ場予約サーバ1は、ゴルフ場を予約するための予約サイトに関する各種処理を実行するサーバ装置である。ゴルフ場予約サーバ1は、本発明における情報処理装置の一例である。ユーザは、予約サイトを利用することにより、所望のゴルフ場の利用を予約することができる。ゴルフ場は、本発明における場所の一例である。ゴルフ場予約サーバ1は、ユーザ端末3からのリクエストに応じて、例えば、予約サイトのウェブページを送信したり、ゴルフ場の検索や予約等に関する処理を行ったりする。
ゴルフ場端末2は、ゴルフ場を提供するゴルフ場提供者により利用される端末装置である。ゴルフ場端末2は、ゴルフ場提供者からの操作に基づいてゴルフ場予約サーバ1等のサーバ装置にアクセスする。これにより、ゴルフ場端末2は、サーバ装置からウェブページを受信して表示する。ゴルフ場端末2には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。ゴルフ場提供者は、ゴルフ場端末2を利用することにより、例えば、ゴルフ場提供者が提供するゴルフ場の予約状況を確認したり、予約変更を行ったりする。
ユーザ端末3は、予約サイトを利用するユーザの端末装置である。ユーザ端末3は、ユーザからの操作に基づいてゴルフ場予約サーバ1にアクセスすることにより、ゴルフ場予約サーバ1からウェブページを受信して表示する。ユーザ端末3には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。ユーザ端末3としては、例えば、パーソナルコンピュータ、PDA(Personal Digital Assistant)、スマートフォン等の携帯情報端末、携帯電話機等が用いられる。
[1−2.連続枠の検索]
[1−2−1.概要]
次に、ゴルフ場における連続枠の検索について、図2乃至図7を用いて説明する。予約サイトにおいてユーザがゴルフ場を予約するために、ユーザは、ゴルフのプレーを開始する時刻を指定する。この時間を、「スタート時間」という。ゴルフ場ごとに、スタート時間が複数定められている。また、ゴルフ場ごとに、スタート時間の間隔が定められている。或るスタート時間からその次のスタート時間の直前までの時間帯を、「時間枠」という。本実施形態の時間枠は、ゴルフ場のコースに対応付けられている。ユーザは、指定したスタート時間に対応する時間枠で、その時間枠に対応付けられたゴルフ場及びコースを予約することになる。そして、予約した時間枠の範囲でゴルフのプレーを開始させることが予定される。
また、ユーザは、2以上の時間枠を予約することができる。このとき、時間的に連続する2以上の時間枠の予約も可能である。連続する2以上の時間枠を、「連続枠」という。連続枠を構成する時間枠の数は、ゴルフをプレーする組の数に相当する。1つの組が、1つの時間枠でゴルフのプレーを開始する。連続枠を構成する時間枠の数を、「時間枠連続数」という。時間枠連続数がnである連続枠を、n連続枠という。
ユーザは、予約サイトにおいてゴルフ場を検索するとき、様々な検索条件を入力することができる。ゴルフ場予約サーバ1は、指定された検索条件で予約可能なプランが提供されるゴルフ場を検索する。プランとは、ゴルフ場の提供を含むサービスである。プランは、例えば、ゴルフ場提供者により企画される。検索条件としては、例えば、プレー日、料金範囲、地域、希望スタート時間帯、連続枠の指定の有無、希望枠数、ゴルフ場名等がある。プレー日は、ゴルフ場でゴルフのプレーが行われる日付である。希望スタート時間帯は、ユーザがプレーの開始を希望する時間帯である。希望スタート時間帯は、例えば、9時台、10時台という方法で指定可能である。あるいは、希望スタート時間帯は、例えば、10時から12時まで、という方法で指定可能であってもよい。連続枠の指定がない場合、ゴルフ場予約サーバ1は、時間枠の数として1が指定されたとみなす。希望枠数は、ユーザが希望する時間枠連続数である。検索条件として、例えば、7時00分から開始する2連続枠、という指定が可能であってもよい。また、検索条件として、7時00分のスタート時間から7時21分のスタート時間まで、という指定が可能であってもよい。
ゴルフ場が検索されると、ユーザ端末3の画面には、ゴルフ場検索結果ページが表示される。ゴルフ場検索結果ページには、ゴルフ場の検索結果として、検索されたゴルフ場の一覧が表示される。一覧の中からユーザが所望のゴルフ場を選択すると、ユーザ端末3の画面には、ゴルフ場ページが表示される。ゴルフ場ページには、選択されたゴルフ場に関する情報が表示される。また、ゴルフ場ページには、選択されたゴルフ場において、検索条件を満たすプランの一覧が表示される。ゴルフ場ページにおいて、ユーザがプランとプレー日との組み合わせを選択すると、ゴルフ場予約サーバ1は、選択された組み合わせにおいて、予約することができる時間枠を検索する。予約することができる時間枠とは、まだ誰にも予約されていない時間枠である。この時間枠を、「空き枠」という。既に予約されている時間枠を、「予約済枠」という。予約済枠を予約したユーザを、「予約済者」という。予約済者は、本発明において、予約済みの時間枠を予約した他のユーザの一例である。検索条件で連続枠が指定されていた場合、ゴルフ場予約サーバ1は、検索条件で指定された時間枠の数の連続枠として、予約可能な連続枠を検索する。なお、ユーザは、検索条件として指定したプレー日とは異なる日付をプレー日として選択することができる。
時間枠が検索されると、ユーザ端末3の画面には、時間枠選択ページが表示される。時間枠選択ページには、時間枠の検索結果として、検索された時間枠の一覧が表示される。一覧の中からユーザが所望の時間枠を選択すると、ユーザ端末3の画面には、予約手続ページが表示される。予約手続ページは、ユーザが予約の手続に必要な各種の情報を入力するためのウェブページである。例えば、ユーザは、各時間枠でプレーする組のプレー人数、各組のメンバーの情報等を入力する。ユーザは手続を行うことにより、選択したゴルフ場、プラン及び日付において、選択した時間枠を予約することができる。
検索条件として連続枠が指定された場合、連続枠が示す時間帯の中に予約済枠が1つでも存在すると、その連続枠をユーザは予約することはできない。もし、その予約済枠を、指定された連続枠が示す時間帯の外に移動させることができれば、ユーザは連続枠を予約することができる。従って、予約済者が予約済枠の移動を受け入れる可能性があれば、連続枠を予約することができる可能性もある。連続枠の予約可能性とは、予約済者が予約済枠の移動を受け入れることで、連続枠が予約可能となる可能性である。予約済枠を移動させることは、予約内容を変更することに相当する。
現時点の予約可能な連続枠が存在しない場合、時間枠選択ページには、検索結果として、連続枠を検索することができなかった旨の示すメッセージが表示される。この場合、ユーザは連続枠を予約することができない。現時点の予約可能な連続枠の数が少ない場合には、時間枠選択ページには、検索された時間枠が表示される。しかしながら、この場合、ユーザによる時間枠の選択肢が限られてしまう。そこで、連続枠の予約を容易とするため、ゴルフ場予約サーバ1は、予約可能性がある連続枠を検索する。そして、ゴルフ場予約サーバ1は、現時点の予約可能な連続枠の検索結果と、予約可能性がある連続枠の検索結果とを、互いに区別可能な態様で、ユーザ端末3によりユーザへ提示させる。区別可能な態様とは、例えば、視覚的に区別可能な態様である。ここで、ゴルフ場予約サーバ1は、予約可能性がない連続枠を検索する必要がない。ユーザに予約可能性がない連続枠が提示されたとしても、将来においてもその連続枠を予約することができないと考えられるからである。
ユーザが指定した連続枠に含まれる予約済枠の移動先の候補となる空き枠を、「移動先候補の時間枠」という。移動先候補となる時間枠は、確保の対象となる連続枠以外の時間範囲内にある空き枠である。また、移動先候補となる時間枠の範囲は、予約済枠の移動によって予約済者が受ける不利益が極力小さくなるように定められている。具体的に、移動先候補となる時間枠は、例えば、移動対象の予約済枠が設定されたゴルフ場、コース及びプランと同一のゴルフ場、コース及びプランに設定された時間枠である。なお、プランは同一ではなくてもよい。また、移動対象の予約済枠が連続枠である場合、移動先候補となる時間枠は、例えば、予約済枠の時間枠連続数分連続して空いている時間枠に限られる。また、移動先候補となる時間範囲は、例えば、確保の対象となる連続枠がある日に限定される。例えば、確保の対象となる連続枠が10月1日である場合、移動先候補の時間範囲も10月1日である。あるいは、移動先候補となる時間範囲は、確保の対象となる連続枠がある日の前日から3日間であってもよい。例えば、確保の対象となる連続枠が10月2日である場合、移動先候補の時間範囲は、10月1日から10月3日までである。あるいは、確保の対象となる連続枠が休日にある場合、移動先候補となる時間範囲は、休日が連続する範囲であってもよい。例えば、月曜日が祝日であり、確保の対象となる連続枠が土曜日にある場合、移動先候補の時間範囲は土曜日から月曜日までである。
以下に、予約可能性の有無の具体例を説明する。図2(a)は、予約状況の一例を示す図である。例えば、或るゴルフ場のOUTコースにおいて、1日に9個の時間枠が設定されているとする。なお、説明の便宜上、時間枠の数が少なくなっている。図2(a)に示すように、一番早いスタート時間が7時00分である。また、スタート時間の時間間隔は7分である。9個の時間枠のうち、7時7分、7時28分、7時35分及び7時56分にそれぞれ開始する時間枠が、予約済枠である。7時28分及び7時35分に開始する時間枠は、ユーザCにより2連続枠として予約されている。これに対して、ユーザAが4連続枠の予約を行いたいとする。この場合、現時点で予約可能な4連続枠は存在しない。しかしながら、予約可能性がある4連続枠は存在する。
図2(b)は、連続枠と、連続枠に対する予約可能性の一例を示す図である。例えば、7時00分に開始する4連続枠においては、移動先候補として、7時42分及び7時49分に開始する時間枠がある。そのため、7時07分に開始する予約済枠が、7時42分又は7時49分に開始する時間枠に移動することで、4連続して空いている連続枠を確保することができる。従って、予約可能性がある。この場合、7時07分に開始する時間枠を予約したユーザBが、時間枠の移動を受け入れる必要がある。
また、例えば、7時07分に開始する4連続枠においては、移動先候補として、7時00分、7時42分及び7時49分に開始する時間枠がある。そのため、7時07分に開始する予約済枠が7時00分に開始する時間枠に移動し、7時28分に開始する2連続枠としての予約済枠が、7時42分に開始する時間枠に移動することで、4連続して空いている連続枠を確保することができる。従って、予約可能性がある。
また、例えば、7時21分に開始する4連続枠においては、この4連続枠以外の範囲で、2連続以上空いている時間枠が存在しない。そのため、7時28分に開始する2連続枠としての予約済枠を移動させることができない。従って、予約可能性がない。
[1−2−2.時間枠選択ページの表示までの処理概要]
次に、情報処理システムSの動作概要について説明する。図3は、本実施形態に係る情報処理システムSの処理概要を示すシーケンス図である。ユーザAが使用するユーザ端末3の画面には、予約サイトにおいて検索条件を指定するためのウェブページが表示されている。例えば、トップページにおいて検索条件の指定が可能である。そこで、ユーザAは、検索条件を指定する。このとき、ユーザAは、図3に示すように、連続枠を指定するとともに、希望枠数として2以上の値を指定したとする(ステップS1)。次いで、ユーザ端末3は、ユーザAの操作に基づいて、ゴルフ場検索リクエストを送信する(ステップS2)。ゴルフ場検索リクエストは、ゴルフ場の検索を要求するメッセージである。ゴルフ場検索リクエストは、ユーザにより指定された検索条件を含む。
ゴルフ場検索リクエストを受信したゴルフ場予約サーバ1は、ゴルフ場検索リクエストに含まれる検索条件を満たすゴルフ場及びプランを検索する。そして、ゴルフ場予約サーバ1は、検索条件を満たすゴルフ場及びプランの中から、ユーザにより指定された希望枠数分の予約することができる時間枠が連続する連続枠があるゴルフ場及びプランを検索する(ステップS3)。
次いで、ゴルフ場予約サーバ1は、検索条件を満たすゴルフ場及びプランの中から、ユーザにより指定された希望枠数分の時間枠が連続し、予約済枠を少なくとも1つ含み、且つ、予約可能性がある連続枠があるゴルフ場及びプランを検索する(ステップS4)。なお、検索条件として連続枠が指定されなかった場合、ゴルフ場予約サーバ1は、予約可能な時間枠があるゴルフ場及びプランのみを検索する。
次いで、ゴルフ場予約サーバ1は、ゴルフ場検索結果ページを生成する。ゴルフ場予約サーバ1は、ステップS3における検索結果とステップS4における検索結果とを統合する。これにより、ゴルフ場予約サーバ1は、予約することができる連続枠があるゴルフ場、及び、予約可能性がある連続枠があるゴルフ場の少なくとも何れかであるゴルフ場のリストを生成する。そして、ゴルフ場予約サーバ1は、生成したリストに基づいて、ゴルフ場検索結果ページを生成する。ゴルフ場予約サーバ1は、生成されたゴルフ場検索結果ページをユーザAのユーザ端末3へ送信する(ステップS5)。
ユーザ端末3は、受信したゴルフ場検索結果ページを表示する。ユーザAは、ゴルフ場検索結果ページに表示されたゴルフ場の一覧の中から何れかのゴルフ場を選択する(ステップS6)。すると、ゴルフ場予約サーバ1は、ユーザ端末3からのリクエストに応じて、ゴルフ場ページをユーザ端末3へ送信する(ステップS7)。ユーザ端末3は、ゴルフ場検索ページを受信すると、受信したゴルフ場ページを表示する。ユーザAは、ゴルフ場ページに表示されたプランの一覧及びプレー日の一覧の中から、何れかのプラン及びプレー日を選択する(ステップS8)。すると、ユーザ端末3は、時間枠検索リクエストをゴルフ場予約サーバ1へ送信する(ステップS9)。時間枠検索リクエストは、時間枠の検索を要求するメッセージである。
時間枠検索リクエストを受信したゴルフ場予約サーバ1は、ユーザにより選択されたゴルフ場、プラン及びプレー日において、検索条件として指定された希望枠数分の予約することができる時間枠が連続する連続枠を検索する(ステップS10)。次いで、ゴルフ場予約サーバ1は、検索された連続枠の数をカウントする。そして、ゴルフ場予約サーバ1は、検索された連続枠の数が、予め設定された件数閾値未満であると判定したとする(ステップS11)。この場合、ゴルフ場予約サーバ1は、ユーザにより選択されたゴルフ場、プラン及びプレー日において、検索条件として指定された希望枠数分の時間枠が連続し、予約済枠を少なくとも1つ含み、且つ、予約可能性がある連続枠を検索する(ステップS12)。なお、検索条件として連続枠が指定されなかった場合、ゴルフ場予約サーバ1は、予約可能な時間枠のみを検索する。
一方、ゴルフ場予約サーバ1は、検索された連続枠の数が件数閾値以上である場合、予約可能性がある連続枠の検索を行わない。その理由は、ユーザによる時間枠の選択肢があるので、予約可能性がある連続枠を検索する必要がないからである。また、検索処理の回数が減ることにより、ゴルフ場予約サーバ1の処理負荷を軽減することができる。この場合、ゴルフ場予約サーバ1は、希望枠数分の予約することができる時間枠が連続する連続枠の検索結果を表示する時間枠選択ページを、ユーザ端末3へ送信する。
ゴルフ場予約サーバ1の管理者は、件数閾値を設定することができる。件数閾値は、例えば、1であってもよいし、2以上であってもよい。
ステップS12の後、ゴルフ場予約サーバ1は、ステップS12で検索された予約可能性がある連続枠ごとに、予約蓋然性を推定する(ステップS13)。予約蓋然性とは、検索された予約可能性がある連続枠が予約可能になる蓋然性の程度を示す。連続枠が予約可能になる蓋然性は、連続枠に含まれる全ての予約済枠が、その連続枠以外の時間枠に移動する蓋然性と等しい。ゴルフ場予約サーバ1は、予約蓋然性を示す情報として、例えば、予約蓋然性スコアを算出する。あるいは、ゴルフ場予約サーバ1は、例えば、予約蓋然性を示す確率を算出してもよい。次いで、ゴルフ場予約サーバ1は、予約蓋然性スコアに基づいて、検索された予約可能性がある各連続枠の検索結果の表示態様を決定する(ステップS14)。予約可能性がある連続枠の検索結果の表示態様については後述する。
次いで、ゴルフ場予約サーバ1は、ステップS11における予約することができる連続枠の検索結果と、ステップS12における予約可能性がある連続枠の検索結果とが区別可能に表示されるように、時間枠選択ページを生成する(ステップS15)。このとき、ゴルフ場予約サーバ1は、予約可能性がある連続枠の検索結果がステップS14で決定された表示態様で表示されるように、時間枠選択ページを生成する。ゴルフ場予約サーバ1は、生成した時間枠選択ページをユーザAのユーザ端末3へ送信する(ステップS16)。ユーザAのユーザ端末3は、受信した時間枠選択ページを表示する(ステップS17)。
[1−2−3.時間枠選択ページの表示内容]
図4(a)は、時間枠選択ページの表示例を示す図である。なお、図4(a)は、5連続枠の検索結果が表示される例を示す。また、図4(a)は、件数閾値が4未満である場合の例を示す。図4(a)に示すように、時間枠選択ページは、検索結果領域100を含む。検索結果領域100には、検索された連続枠の一覧が表示される。具体的に、検索結果領域100には、検索された連続枠ごとに、連続枠情報110が表示される。連続枠情報110には、コース名111、予約可不可情報112、予約蓋然性情報113、連続枠114及び予約ボタン115が表示される。
予約可不可情報112は、現時点で予約することができるか否かを示す情報である。予約することができる場合、予約可不可情報112として、例えば「予約可」が表示される。予約することができない場合、予約可不可情報112として、例えば「予約不可」が表示される。予約可不可情報112が表示されることにより、ユーザは、現時点で予約することができる連続枠の検索結果であるか、又は、現時点では予約することはできない連続枠であって、予約可能性がある連続枠の検索結果であるかを区別することができる。図4(a)の例では、例えば、10時30分から開始する5連続枠については、予約可不可情報112として「予約可」が表示されている。従って、ユーザは、10時30分から開始する5連続枠を現時点で予約することができる。12時12分から開始する5連続枠については、予約可不可情報112として「予約不可」が表示されている。従って、ユーザは、12時12分から開始する5連続枠を現時点では予約することができない。なお、予約可不可情報112として表示される情報は、「予約可」及び「予約不可」ではなくてもよい。予約可不可情報112は、ユーザが検索結果の区別が可能な情報であればよい。
現時点で予約することができる連続枠の検索結果と、現時点では予約することはできない連続枠であって、予約可能性がある連続枠の検索結果と、を区別可能にする表示態様は、図4(a)に示す予約可不可情報112を用いた表示態様に限られるものではない。例えば、ゴルフ場予約サーバ1は、現時点で予約することができない連続枠の連続枠情報110に、連続枠に含まれる予約済枠の数が表示されるように、時間枠選択ページを生成してもよい。また、ゴルフ場予約サーバ1は、現時点で予約することができる連続枠の連続枠情報110と、現時点で予約することができない連続枠の連続枠情報110との間で、例えば、領域の背景色、領域の大きさ、文字の色、文字の大きさ、文字のスタイル等の何れかのうち少なくとも1つが異なるように、時間枠選択ページを生成してもよい。このとき、ゴルフ場予約サーバ1は、現時点で予約することができる連続枠の連続枠情報110の表示態様を、現時点で予約することができない連続枠の連続枠情報110の表示態様よりも視認しやすい表示態様となるように、時間枠選択ページを生成してもよい。また、ゴルフ場予約サーバ1は、現時点で予約することができる連続枠の検索結果と、現時点で予約することができない連続枠の検索結果とが別々の領域に表示されるように、時間枠選択ページを生成してもよい。また、ゴルフ場予約サーバ1は、時間枠選択ページに、現時点で予約することができる連続枠に対応するタブと、現時点で予約することができない連続枠に対応するタブとが、区別可能に表示されてもよい。そして、ゴルフ場予約サーバ1は、ユーザにより選択操作されたタブに対応する連続枠の検索結果が表示されるように、時間枠選択ページを生成してもよい。選択操作対象となる要素は、タブに限られない。選択操作対象となる要素は、例えば、ラジオボタン、リストボックス等であってもよい。
予約蓋然性情報113は、現時点で予約することができない連続枠が予約可能になる蓋然性を示す情報である。例えば、予約蓋然性情報113として、「A」、「B」及び「C」の何れかのマークが表示される。これらのマークのうち、「A」が、予約蓋然性が最も高い。そして、「B」、「C」の順に予約蓋然性が低くなっていく。図4(a)の例の場合、ステップS14でゴルフ場予約サーバ1が決定する表示態様は、「A」、「B」及び「C」のうち、表示されるマークを決定することである。予約蓋然性情報113が表示されることにより、各連続枠の予約蓋然性の程度を認識することができる。図4(a)の例では、例えば、12時12分から開始する5連続枠については、予約蓋然性情報113として「C」が表示されている。従って、12時12分から開始する5連続枠の予約蓋然性は低いと考えられる。なお、予約蓋然性情報113として表示される情報は、「A」、「B」及び「C」ではなくてもよい。ユーザが検索結果の区別が可能な情報であればよい。
現時点では予約することはできない連続枠の検索結果の予約蓋然性に基づく表示態様の変更は、図4(a)に示す予約蓋然性情報113としてのマークの変更に限られるものではない。例えば、ゴルフ場予約サーバ1は、ステップS13で、予約蓋然性を示す確率を算出した場合には、算出した確率が連続枠情報110に表示されるように、時間枠選択ページを生成してもよい。また、ゴルフ場予約サーバ1は、予約蓋然性スコアに基づいて、各連続枠の表示順位を決定してもよい。表示順位とは、検索結果領域100において連続枠情報110が表示される順位である。連続枠の表示順位が高いほど、対応する連続枠情報110が上方に表示される。例えば、ゴルフ場予約サーバ1は、連続枠の予約蓋然性スコアが高いほど、表示順位を高くする。また、ゴルフ場予約サーバ1は、例えば、現時点で予約することができない連続枠の表示順位を、現時点で予約することができる連続枠の表示順位よりも低くする。また、ゴルフ場予約サーバ1は、予約蓋然性スコアが所定の閾値以下である連続枠の連続枠情報110が表示されないように、時間枠選択ページを生成してもよい。予約蓋然性スコアが所定の閾値以下である連続枠は、予約可能性がない、あるいは、予約蓋然性か低いとみなされる。また、ゴルフ場予約サーバ1は、予約蓋然性スコアが高い順に所定数までの連続枠のみについて連続枠情報110が表示されるように、時間枠選択ページを生成してもよい。
なお、ゴルフ場予約サーバ1は、予約蓋然性スコアの算出及び予約蓋然性スコアに基づく表示態様の制御を行わなくてもよい。少なくとも、現時点で予約することができる連続枠の検索結果と、現時点では予約することはできない連続枠であって予約可能性がある連続枠の検索結果が、区別可能にする表示されればよい。
連続枠114は、連続枠を示す情報である。連続枠114として、例えば、連続枠の先頭の時間枠のスタート時間と、連続枠の最後の時間枠のスタート時間とが表示される。連続枠114として、例えば、連続枠の先頭の時間枠のスタート時間のみが表示されてもよい。また、連続枠を構成する各時間枠のスタート時間がそれぞれ表示されてもよい。
予約ボタン115は、連続枠を予約するためのボタンである。ユーザが予約ボタン115を選択すると、予約を手続きするためのウェブページが表示される。現時点で予約することができる連続枠に対してユーザが予約の手続を行った場合、手続きが完了した時点で、連続枠が予約される。現時点で予約することができない連続枠に対してユーザが予約の手続を行った場合、手続きが完了した時点では連続枠は予約されない。この場合、ユーザにより選択された連続枠に含まれる予約済枠が全て移動し、その連続枠が、予約することができる連続枠になった後、連続枠が予約される。
図4(b)は、現時点で予約することができる連続枠が検索されなかった場合の時間枠選択ページの表示例を示す図である。図4(b)に示すように、時間枠選択ページには、メッセージ120及び検索結果領域100が表示される。メッセージ120は、予約することができる連続枠の検索結果として、連続枠を検索することができなかったことを示すメッセージである。例えば、メッセージ120として、「5連続して予約可能な時間枠はありませんでした。」が表示されてもよい。検索結果領域100には、予約することができない連続枠であって、予約可能性がある連続枠の検索結果のみが表示される。メッセージ120及び検索結果領域100が表示されるので、ユーザは、現時点で予約することができる連続枠の検索結果と、現時点では予約することはできない連続枠であって予約可能性がある連続枠の検索結果と、を区別することができる。
なお、現時点で予約することができる連続枠の数が件数閾値以上である場合、又は、現時点で予約することができない連続枠であって予約可能性がある連続枠が1つも存在しない場合、検索結果領域100には、現時点で予約することができる連続枠の検索結果のみが表示される。このとき、現時点では予約することはできない連続枠であって予約可能性がある連続枠の検索結果について、特段のメッセージは表示されなくてもよい。
図5は、時間枠選択ページの別の表示例を示す図である。図5が示す例は、現時点で予約することができる連続枠、及び、現時点では予約することはできないが予約可能性がある連続枠の少なくとも何れか一方に含まれる時間枠が、1枠ずつ表示される例である。なお、図5は、3連続枠の検索結果が表示される例を示す。
図5に示すように、時間枠選択ページには、検索結果領域200、スライドバー220及び予約ボタン230が表示される。検索結果領域200には、検索された時間枠ごとに、時間枠情報210が表示される。時間枠情報210には、予約可不可情報211、予約蓋然性情報212及び時間枠213が表示される。
予約可不可情報211は、時間枠情報210に対応する時間枠を連続枠の先頭の時間枠とした場合の連続枠を現時点で予約することができるか否かを示す情報である。予約可不可情報211の内容は予約可不可情報112の内容と同じである。図5の例では、例えば、9時00分から開始する時間枠については、「予約可」が表示されている。従って、ユーザは、9時00分から開始する3連続枠を現時点で予約することができる。例えば、9時07分から開始する時間枠については、「予約不可」が表示されている。従って、ユーザは、9時07分から開始する3連続枠を現時点で予約することはできない。
予約蓋然性情報212は、時間枠情報210に対応する時間枠を連続枠の先頭の時間枠とした場合に現時点で予約することができない連続枠が予約可能になる蓋然性を示す情報である。予約蓋然性情報212の内容は予約蓋然性情報113の内容と同じである。図5の例では、例えば、9時07分から開始する時間枠については、「A」が表示されている。従って、9時07分から開始する3連続枠の予約蓋然性は高いと考えられる。時間枠213として、例えば、時間枠のスタート時間が表示される。
スライドバー220は、連続枠の選択に用いられる。スライドバー220は、つまみ221を含む。つまみ221の高さは、検索条件として指定された希望枠数分の時間枠情報210の高さに相当する。ユーザは、つまみ221を上下に動かすことができる。これにより、ユーザは、つまみ221の位置に対応する時間枠連続数分の時間枠を、連続枠として選択することができる。図5の例では、9時00分から開始する3連続枠が選択されている状態である。
ユーザがつまみ221を動かすとき、移動先の連続枠が現時点で予約可能であるか否か、及び、移動先の連続枠の予約蓋然性に応じて、ユーザがつまみ221を移動させることの容易さが変化する。具体的に、移動先の連続枠が現時点で予約可能である場合、ユーザはつまみ221をスムーズに動かすことができる。移動先の連続枠が現時点で予約可能ではない場合、移動先の連続枠が現時点で予約可能である場合よりも、ユーザは、つまみ221をスムーズに動かすことができない。例えば、つまみ221に対するユーザの移動操作の量が所定値未満である場合、つまみ221は操作方向に少し動くが、すぐに元の位置に戻ってもよい。そして、つまみ221に対するユーザの移動操作の量が所定値以上である場合、つまみ221は移動先の連続枠に移動してもよい。移動先の連続枠が現時点で予約可能ではない場合、移動先の連続枠の予約可能性が低いほど、ユーザは、つまみ221をスムーズに動かすことができない。このようなつまみ221の挙動は、例えば、時間枠選択ページのHTML(HyperText Markup Language)文書に記述されたスクリプトによって制御される。
予約ボタン115は、つまみ221により現在選択されている連続枠を予約するためのボタンである。
[1−2−4.予約蓋然性スコアの算出基準]
次に、予約蓋然性スコアの算出基準について説明する。図2(c)は、予約蓋然性スコアに影響する要因と、予約蓋然性スコアの算出基準の一例とを示す図である。以下では、予約蓋然性スコアに影響する要因ごとに説明する。ゴルフ場予約サーバ1は、例えば、下記の要因1〜10の全てに基づいて予約蓋然性スコアを算出してもよいし、一部の要因に基づいて予約蓋然性スコアを算出してもよい。
(要因1)予約済枠の数
対象となる連続枠に含まれる予約済枠を移動させる場合、予約済枠を予約した予約済者は、移動させる予約済枠の分、ゴルフのプレーの日程を調整する必要がある。従って、予約済枠の数が多いほど、日程調整に手間がかかる。そのため、予約済枠の数が多いほど、予約済者は、予約済枠の移動を受け入れる蓋然性が低いと考えられる。そこで、ゴルフ場予約サーバ1は、対象となる連続枠に含まれる予約済枠の数が多いほど、予約蓋然性スコアを低くする。例えば、図2(a)の例において、検索条件として3連続枠が指定されたとする。ここで、7時00分からの3連続枠では、予約済枠の数が1である。7時21分からの3連続枠では、予約済枠の数が2である。従って、7時00分からの3連続枠の方が、7時21分からの3連続枠よりも予約蓋然性スコアが高くなる。
(要因2)予約済枠でプレーするメンバーの人数
対象となる連続枠に含まれる予約済枠を移動させる場合、予約済枠を予約した予約済者は、予約済枠でプレーする組のメンバーとの間で日程を調整する必要がある。従って、メンバーの人数が多いほど、日程調整に手間がかかる。そのため、メンバーの人数が多いほど、予約済者は、予約済枠の移動を受け入れる蓋然性が低いと考えられる。そこで、ゴルフ場予約サーバ1は、対象となる連続枠に含まれる予約済枠でプレーする組のメンバーの人数が多いほど、予約蓋然性スコアを低くする。例えば、ゴルフ場予約サーバ1は、対象となる連続枠に含まれる全ての予約済枠のメンバーの人数を合計して、合計の人数が多いほど、予約蓋然性スコアを低くする。例えば、図2(a)の例において、7時00分からの3連続枠では、プレー人数の合計値が4である。7時21分からの3連続枠では、プレー人数の合計値が8である。7時42分からの3連続枠では、プレー人数の合計値が2である。従って、7時42分からの3連続枠の予約蓋然性スコアが最も高くなり、7時21分からの3連続枠の予約蓋然性スコアが最も低くなる。
(要因3)予約済者の数(予約のグループの数)
対象となる連続枠に含まれる1以上の予約済枠の全てが1人の予約済者によって予約されているとは限らない。1以上の予約済枠の一部ごとに、別々の予約済者が予約している場合がある。予約済者の数は、対象となる連続枠に含まれる1以上の予約済枠でプレーするグループの数に相当する。対象となる連続枠に含まれる全ての予約済枠を移動させる場合、グループごとの日程調整が必要である。そして、全ての予約済者が日程調整を行い、全ての予約済者が予約済枠の移動を受け入れないと、対象となる連続枠を空き枠として確保することができない。予約者済数ごとに予約済枠の移動を受け入れる蓋然性が算出されると考えた場合、予約蓋然性は、予約者済数ごとの予約済枠の移動を受け入れる蓋然性の積となる。そのため、予約済者の数が多いほど、全ての予約済者が予約済枠の移動を受け入れる蓋然性は低いと考えられる。そこで、ゴルフ場予約サーバ1は、対象となる連続枠に含まれる予約済枠を予約した予約済者の人数が多いほど、予約蓋然性スコアを低くする。例えば、図2(a)の例において、7時07分からの4連続枠では、予約済者の数が2である。7時21分からの4連続枠では、予約済者の数が1である。従って、7時21分からの4連続枠の方が、7時07分からの4連続枠よりも予約蓋然性スコアが高くなる。
(要因4)予約済枠の移動幅
対象となる連続枠に含まれる予約済枠を移動させる場合、移動幅が長いほど、日程の変更が大きくなる。そのため、日程調整に手間がかかる。そこで、ゴルフ場予約サーバ1は、対象となる連続枠に含まれる予約済枠から移動先候補の時間枠までの移動幅が長いほど、予約蓋然性スコアを低くする。移動先候補の時間枠が複数存在する場合、ゴルフ場予約サーバ1は、例えば、予約済枠からの移動幅が最も短い移動先候補の時間枠への移動幅に基づいて、予約蓋然性スコアを算出してもよい。
(要因5)予約済枠の予約までに要した時間
例えば、ユーザが、ゴルフ場の検索結果の中から何れのゴルフ場やプランを選択するかを悩んだり、検索された時間枠の中から何れの時間枠を選択するかを悩んだりすることがある。この場合、ユーザがゴルフ場の検索を開始してから予約を行うまでに要する時間は長くなる。この時間を、「予約所要時間」という。ユーザが悩んだ結果、予約対象として選択した時間枠は、熟考の結果として選択された蓋然性が高い。熟考の結果して選択された時間枠の移動を、ユーザが受け入れる可能性は低いと考えられる。そこで、ゴルフ場予約サーバ1は、対象となる連続枠に含まれる予約済枠を予約した予約済者について、ゴルフ場の最初の検索の操作から予約済枠の予約までの予約所要時間が長いほど、予約蓋然性スコアを低くする。ゴルフ場予約サーバ1は、例えば、ユーザがゴルフ場予約サイトにログインしてからユーザが最初に行った検索の要求の操作を、予約所要時間を算出するための最初の検索とみなしてもよい。また、ゴルフ場予約サーバ1は、ゴルフ場予約サイトに対するユーザの操作が所定時間以上なかった場合、ユーザがゴルフ場予約サイトの利用をやめたとみなしてもよい。そして、ゴルフ場予約サーバ1は、ゴルフ場予約サイトに対するユーザの操作が所定時間以上なかった後にユーザが最初に行った検索の要求の操作を、予約所要時間を算出するための最初の検索とみなしてもよい。
(要因6)検索回数
ユーザが或る検索条件を指定することによりゴルフ場予約サーバ1が検索を行った結果、検索されたゴルフ場、プラン及び時間枠の中にユーザが所望するゴルフ場、プラン及び時間枠がない場合、ユーザは、別の検索条件を指定して再度検索を要求することがある。ユーザが検索条件を変えて何度も検索を要求している場合、ユーザは、何れのゴルフ場、プラン及び時間枠を選択するかを悩んでいる蓋然性がある。従って、何度も検索が行われた後にユーザが選択した時間枠は、熟考の結果として選択された蓋然性が高い。そこで、ゴルフ場予約サーバ1は、対象となる連続枠に含まれる予約済枠を予約した予約済者について、ゴルフ場の最初の検索の操作から予約済枠の予約までの検索回数が多いほど、予約蓋然性スコアを低くする。
(要因7)検索条件として指定された希望スタート時間帯
ユーザが検索条件として希望スタート時間帯を指定した場合、指定した時間帯の範囲内でユーザはプレーを開始させたいと考えている蓋然性が高い。そのため、予約済者が希望スタート時間帯への時間枠の移動を受け入れる蓋然性は、予約済者が希望スタート時間帯以外の時間帯への時間枠の移動を受け入れる蓋然性よりも高い。そこで、ゴルフ場予約サーバ1は、希望スタート時間帯に移動先候補の時間枠が含まれる場合、希望スタート時間帯に移動先候補の時間枠が含まれていない場合よりも、予約蓋然性スコアを高くする。
(要因8)予約済者が予約する時間帯の傾向
ユーザが予約する時間帯の傾向がユーザごとに存在する場合がある。例えば、予約済者は5時から7時までの間の時間枠を予約する傾向があるとする。この場合、移動先候補の時間枠が5時から7時までの間にある場合、移動先候補の時間枠が他の時間帯にある場合よりも、予約済者が予約済枠の移動を受け入れる蓋然性が高い。そこで、ゴルフ場予約サーバ1は、予約済者が予約する傾向がある時間帯に移動先候補の時間枠が含まれる場合、予約済者が予約する傾向がある時間帯に移動先候補の時間枠が含まれていない場合よりも、予約蓋然性スコアを高くする。ユーザによる予約の傾向は、過去の予約実績を示す予約履歴に基づいて判断することができる。
(要因9)予約済者が他人の予約済枠の直後の時間枠に予約する傾向
ユーザの中には、他人の組の直後の組でゴルフをプレーすることを嫌うユーザが存在する。時間枠選択ページに表示される現時点で予約可能な時間枠の検索結果から、どの時間枠の直前が予約済の時間枠であるかをユーザは認識することができる。そのため、他人の組の直後の組でのプレーを嫌うユーザは、他人の予約済枠の直後の時間枠を予約しない。そこで、ゴルフ場予約サーバ1は、予約済者が他人の予約済枠の直後の時間枠を予約しない傾向がある場合であって、移動先候補の時間枠の中に、直前の時間枠が空き枠である時間帯が存在しない場合、直前の時間枠が空き枠である時間帯が存在する場合よりも、予約蓋然性スコアを高くする。
また、ゴルフ場予約サーバ1は、予約済者が他人の予約済枠の直前の時間枠を予約しない傾向がある場合であって、移動先候補の時間枠の中に、直前の時間枠が空き枠である時間帯が存在しない場合、直前の時間枠が空き枠である時間帯が存在する場合よりも、予約蓋然性スコアを高くしてもよい。ユーザの中には、他人の組の直前の組でゴルフをプレーすることを嫌うユーザが存在するかもしれないからである。なお、直前の時間枠及び直後の時間枠は、それぞれ隣接する時間枠の一例である。
(要因10)他人の予約済枠でプレーするメンバーのゴルフの技量
ゴルフのプレーの進行の早さは、プレーヤーのゴルフの技量によって変化する場合がある。具体的に、ゴルフが下手なプレーヤーほど、プレーの進行が遅い傾向がある。ゴルフが下手なプレーヤーがいる組の直後でゴルフが上手い組がプレーする場合、前の組のプレーが遅いため、ゴルフが上手い組がプレーを待たされることがある。このような事態に遭うことを嫌うユーザは少なくない。そのため、下手なメンバーがいる組がプレーする予約済枠の直後の時間枠を移動先候補とすることは余り好ましくはないと考えられる。そこで、ゴルフ場予約サーバ1は、移動先候補の時間枠の直前の時間枠が予約済枠であり、且つ、その予約済枠でプレーするメンバーの技量が低い場合、その予約済枠でプレーするメンバーの技量が低くない場合よりも、予約蓋然性スコアを低くする。例えば、ゴルフ場予約サーバ1は、少なくとも一人のメンバーの技量が低い場合に、予約蓋然性スコアを低くしてもよい。その理由は、技量が低いメンバーが一人でもいると、プレーの進行が遅くなる蓋然性があるからである。
また、ゴルフ場予約サーバ1は、移動先候補の時間枠の直前の時間枠でプレーするメンバーの技量が低い場合であって、且つ、移動させるべき予約済枠でプレーするメンバーの技量が高い場合に、予約蓋然性スコアを低くしてもよい。技量が低いか否か、及び技量が高いか否かは、それぞれ技量を示す値と閾値と比較することによって判定が可能である。技量が低いか否かの判定に用いられる閾値と、技量が高いか否に用いられる閾値とは異なっていていてもよい。
例えば、ゴルフ場予約サイトでは、ゴルフの技量を示す情報として、ユーザが自分自身のハンディキャップを登録しておくことができる。また、ゴルフ場の予約の際、ユーザは、各組のプレー人数と、各組のメンバーを指定することができる。指定されたメンバーがゴルフ場サイトの会員である場合、ゴルフ場予約サーバ1は、そのメンバーのハンディキャップを取得することができる。また、ゴルフ場の予約の際に、ユーザは各メンバーのハンディキャップを入力することができる仕組みになっていてもよい。あるいは、ユーザがゴルフ場サイトで予約したゴルフ場でプレーした後、プレーしたときに各メンバーのスコアをゴルフ場サイトに登録することができるようになっていてもよい。この場合、ゴルフ場予約サーバ1は、登録されたスコアに基づいて、ハンディキャップを計算することができる。
(要因11)予約済者の住所からゴルフ場までの移動容易性
ユーザの住所からゴルフ場まで近い場合、プレーの日程が変更されても、ユーザは日程変更に容易に対応することができる蓋然性がある。そこで、ゴルフ場予約サーバ1は、予約済者の住所からゴルフ場までの移動が容易であるほど、予約蓋然性スコアを高くする。移動が容易さは、例えば、ユーザの住所からゴルフ場までの直線距離、移動距離、移動時間等により表すことができる。
要因1〜11のうち、要因1〜3は、対象となる連続枠内の予約状況あるいは予約内容である。要因5及び6は、予約済者が予約に至るまでの熟考の度合いである。要因8及び9は、予約済者の予約傾向である。要因1、2、4及び11は、日程調整の負担の程度である。
[1−2−5.予約可能性がある連続枠の予約]
時間枠選択ページに、予約可能性がある連続枠が表示されても、その連続枠に含まれる予約済枠を予約した予約済者が実際に予約済枠の移動を受け入れなければ、その連続枠を予約することはできない。そこで、ゴルフ場予約サーバ1は、予約可能性がある連続枠の予約を容易とするため、予約済者に対して通知を行う。
図6は、本実施形態に係る情報処理システムSの処理概要を示すシーケンス図である。図3に示す処理により、ユーザAのユーザ端末3には、時間枠選択ページが表示されているとする。ここで、ユーザAは、図6に示すように、時間枠選択ページから、予約を希望する連続枠として、予約済枠を含む連続枠に対応する予約ボタン115を選択する(ステップS21)。すると、ユーザ端末3には、予約手続ページが表示される。ユーザAが必要な情報を入力すると、ユーザ端末3は、予約リクエストをゴルフ場予約サーバ1へ送信する(ステップS22)。予約リクエストは、予約の要求を示すメッセージである。予約リクエストは、本発明における予約要求の一例である。予約リクエストを送信したユーザ端末3を利用するユーザを、「予約要求者」という。
予約リクエストを受信したゴルフ場予約サーバ1は、ユーザAが選択した連続枠に含まれる予約済枠を予約した予約済者を特定する(ステップS23)。ここで、予約済者として、ユーザBが特定されたとする。ゴルフ場予約サーバ1は、ユーザBに予約された予約済枠の移動先候補となる時間枠を検索する(ステップS24)。ユーザBが予約済枠を連続枠として予約していた場合、ゴルフ場予約サーバ1は、移動先候補となる連続枠を検索する。そして、ゴルフ場予約サーバ1は、ユーザB宛てに、時間枠移動依頼メールを送信する(ステップS25)。時間枠移動依頼メールは、予約済枠の移動の依頼を通知する電子メールである。時間枠移動依頼メールは、本発明における時間枠の移動依頼の通知の一例である。
図7(a)は、時間枠移動依頼メールの本文の内容の例を示す図である。図7(a)に示すように、時間枠移動依頼メールには、例えば、時間枠の移動依頼があったことを示すメッセージが記載される。また、時間枠移動依頼メールには、現在の予約内容、移動先候補の時間枠のスタート時間、時間枠移動承諾ページのURL(Uniform Resource Locator)が記載される。時間枠移動承諾ページは、時間枠の移動の受け入れを選択するためのウェブページである。また、時間枠移動依頼メールには、時間枠の移動を受け入れたユーザにポイントが付与されること示すメッセージが表示される。ポイントとは、ユーザがゴルフ場予約サイトでゴルフ場を予約するときに、金銭と同等の価値を有するものとして予約料金に充てることができるものである。時間枠の移動を受け入れたユーザにポイントが付与されることで、時間枠の移動の受け入れを促すことができる。ポイントは、本発明においてユーザに付与される特典の一例である。特典は、ポイントに限られるものではない。例えば、特典は、金銭、電子マネー、予約料金の割引クーポン等であってもよい。なお、特典の付与は任意である。
ユーザBは、ユーザ端末3に表示された時間枠移動依頼メールに記載されたURLを選択する(ステップS26)。すると、ユーザBのユーザ端末3は、時間枠移動承諾ページのリクエストを送信する(ステップS27)。時間枠移動承諾ページのリクエストを受信したゴルフ場予約サーバ1は、時間枠移動承諾ページを生成する。このとき、ゴルフ場予約サーバ1は、移動先の時間枠として、ステップS24で検索された移動先候補の時間枠を選択可能なように、時間枠移動承諾ページを生成する。そして、ゴルフ場予約サーバ1は、時間枠移動承諾ページを送信する(ステップS28)。
ユーザBのユーザ端末3は、受信した時間枠移動承諾ページを表示する。図7(b)は、時間枠移動承諾ページの表示例を示す図である。図7(b)に示すように、時間枠移動承諾ページには、移動先候補領域310、承諾ボタン320及び不承諾ボタン330が表示される。移動先候補領域310には、移動先候補の時間枠のスタート時間の一覧が表示される。また、移動先候補領域310には、移動先候補の時間枠ごとに、ラジオボタンが表示される。ユーザBはラジオボタンに対する選択操作によって、移動先の時間枠を選択することができる。
承諾ボタン320は、ユーザが時間枠の移動を受け入れることを通知するためのボタンである。不承諾ボタン330は、ユーザが時間枠の移動を受け入れないことを通知するためのボタンである。
ユーザBが、ラジオボタンで何れかの時間枠を選択し、承諾ボタン320を選択すると(ステップS29)、ユーザ端末3は、承諾メッセージをゴルフ場予約サーバ1へ送信する(ステップS30)。承諾メッセージは、ユーザが時間枠の移動を受け入れることを通知するメッセージである。承諾メッセージは、本発明における時間枠の移動の受け入れの通知の一例である。
承諾メッセージを受信したゴルフ場予約サーバ1は、予約変更を行う。具体的に、ゴルフ場予約サーバ1は、ユーザAが選択した連続枠に含まれるユーザBの予約済枠を、ユーザBが選択した移動先候補の時間枠に移動させる(ステップS31)。
次いで、ゴルフ場予約サーバ1は、ユーザBに対してポイントを付与する処理を実行する(ステップS32)。このとき、ゴルフ場予約サーバ1は、付与するポイントの量を決定する。例えば、ゴルフ場予約サーバ1は、予約蓋然性スコアが低いほど、付与するポイントの量を多くしてもよい。つまり、予約済者が時間枠の移動を受け入れる蓋然性が低いほどポイントの量が多くなる。また、ゴルフ場予約サーバ1は、移動元の時間枠から移動先の時間枠までの時間幅が長いほど、付与するポイントの量を多くしてもよい。時間幅が長いほど、日程の調整が容易ではないからである。あるいは、ゴルフ場予約サーバ1は、例えば、予め定められた量のポイントを付与するようにしてもよい。
次いで、時間枠の移動により、ユーザAが選択した連続枠が予約可能な連続枠になると、ゴルフ場予約サーバ1は、ユーザAが選択した連続枠に対してユーザAからの予約を登録する(ステップS33)。次いで、ゴルフ場予約サーバ1は、ユーザA宛てに、予約成功通知メールを送信する(ステップS34)。予約成功通知メールは、予約要求者が選択した連続枠が予約可能な連続枠として確保されたことを通知する電子メールである。予約成功通知メールは、本発明において、希望時間枠が予約可能な時間枠になることの通知の一例である。予約成功通知メールの本文には、例えば、連続枠の予約が成功したことを示すメッセージが記載される。なお、ゴルフ場予約サーバ1は、予約要求者の予約を自動的に登録しなくてもよい。ゴルフ場予約サーバ1は、予約要求者宛てに、予約要求者が選択した連続枠が予約可能な連続枠として確保されたことを通知することを通知するだけでもよい。この場合、予約要求者は、ゴルフ場予約サイトにアクセスして、予約の手続を行う。
ステップS29において、ユーザBが不承諾ボタン330を選択した場合、ユーザ端末3は、不承諾メッセージをゴルフ場予約サーバ1へ送信する。承諾メッセージは、ユーザが時間枠の移動を受け入れないことを通知するメッセージである。不承諾メッセージを受信したゴルフ場予約サーバ1は、ユーザA宛てに、予約失敗通知メールを送信する。予約失敗通知メールは、予約要求者が選択した連続枠が予約可能な連続枠として確保することができなかったことを通知する電子メールである。予約失敗通知メールの本文には、例えば、連続枠の予約が失敗したことを示すメッセージが記載される。
ゴルフ場予約サーバ1は、例えば、予約リクエストを受信してから所定時間が経過しても、予約要求者が選択した連続枠が予約可能な連続枠として確保することができなかった場合、予約要求者宛てに予約失敗通知メールを送信してもよい。あるいは、ゴルフ場予約サーバ1は、例えば、予約要求者が選択した連続枠が設定されているプレー日までの日数が所定日数以下になっても、予約要求者が選択した連続枠が予約可能な連続枠として確保することができなかった場合、予約要求者宛てに予約失敗通知メールを送信してもよい。
[1−3−5.ゴルフ場提供者への情報提供]
ゴルフ場予約サーバ1は、例えば、ユーザが検索条件として指定する希望枠数の傾向を、ゴルフ場提供者へ提供してもよい。ゴルフ場予約サーバ1は、ゴルフ場予約サイトにおける各ユーザの操作履歴を記録する。操作履歴は、ユーザが検索を要求した際の検索条件を含む。ゴルフ場予約サーバ1は、例えば、ユーザによるゴルフ場の検索の要求操作の履歴を記録するとき、例えば、ユーザが指定した検索条件で検索されたゴルフ場の一覧も記録してもよい。ゴルフ場予約サーバ1は、操作履歴に基づいて、ゴルフ場ごとに、希望枠数の傾向を求めることができる。
例えば、ゴルフ場予約サーバ1は、ゴルフ場提供者からの操作によりゴルフ場端末2からリクエストを受信したとき、希望枠数の傾向を求めてもよい。例えば、ゴルフ場予約サーバは、指定回数が最も多い希望枠数を、指定される傾向が強い希望枠数として抽出してもよいし、対象となるゴルフ場が検索された回数に対して、指定回数が所定値以上である希望枠数を、指定される傾向が強い希望枠数として抽出してもよい。そして、ゴルフ場予約サーバ1は、例えば、指定される傾向が強い希望枠数を示すウェブページをゴルフ場端末2へ送信してもよい。これにより、ゴルフ場提供者は、指定される傾向が強い希望枠数を把握することができる。また、ゴルフ場提供者は、時間枠ごとの予約状況を参照することにより、指定される傾向が強い希望枠数を、予約可能な連続枠として確保するために、どの予約済枠をどこに移動させればよいかを把握することができる。ゴルフ場提供者は、例えば、予約済枠を予約したユーザに対して予約済枠の移動を依頼してもよい。依頼の方法としては、例えば、電子メール、電話等がある。ユーザが予約済枠の移動を受け入れた場合、例えば、ゴルフ場予約サーバ1は、ゴルフ場端末2を操作して、予約済枠を移動させる。
ゴルフ場予約サーバ1は、指定される傾向が強い希望枠数の時間枠で構成される連続枠を、予約可能な連続枠として確保するための情報をゴルフ場提供者へ提供してもよい。例えば、ゴルフ場予約サーバ1は、指定される傾向が強い希望枠数の時間枠で構成される連続枠であって、予約済枠を少なくとも1つ含む連続枠について、予約可能性があるか否かを判定し、予約蓋然性スコアを算出してもよい。そして、ゴルフ場予約サーバ1は、予約蓋然性スコアが所定値以上である連続枠に含まれる予約済枠を、移動元候補の予約済枠として抽出してもよい。また、ゴルフ場予約サーバ1は、例えば、移動元候補の予約済枠を、対象の連続枠以外の範囲に移動するための移動先候補の時間枠を検索してもよい。そして、ゴルフ場予約サーバ1は、移動元候補の予約済枠と移動先候補の時間枠の組み合わせを示すウェブページを、ゴルフ場端末2へ送信してもよい。これにより、ゴルフ場提供者は、どの予約済枠をどこに移動させればよいかを容易に把握することができる。
[1−3.ゴルフ場予約サーバの構成]
次に、ゴルフ場予約サーバ1の構成について、図8乃至図10を用いて説明する。
図8は、本実施形態に係るゴルフ場予約サーバ1の概要構成の一例を示すブロック図である。図8に示すように、ゴルフ場予約サーバ1は、通信部11と、記憶部12と、入出力インターフェース13と、システム制御部14と、を備えている。そして、システム制御部14と入出力インターフェース13とは、システムバス15を介して接続されている。
通信部11は、ネットワークNWに接続して、ゴルフ場端末2やユーザ端末3等との通信状態を制御するようになっている。
記憶部12は、例えば、ハードディスクドライブ等により構成されている。記憶部12は、本発明における実績記憶手段の一例である。この記憶部12には、会員情報DB12a、ゴルフ場情報DB12b、予約状況DB12c、予約情報DB12d、操作履歴DB12e等のデータベースが構築されている。「DB」は、データベースの略語である。
図9(a)は、会員情報DB12aに登録される内容の一例を示す図である。会員情報DB12aには、情報処理システムSに会員登録しているユーザに関する会員情報が登録される。具体的に、会員情報DB12aには、ユーザID、パスワード、ニックネーム、氏名、生年月日、性別、郵便番号、住所、電話番号、電子メールアドレス、ゴルフのハンディキャップ、保有ポイント数等のユーザの属性が、ユーザごとに対応付けて登録される。ユーザIDは、ユーザの識別情報である。ユーザIDは、本発明における識別情報の一例である。保有ポイント数は、ユーザが現在保有しているポイントの量を示す。
図9(b)は、ゴルフ場情報DB12bに登録される内容の一例を示す図である。ゴルフ場情報DB12bには、ゴルフ場に関するゴルフ場情報が登録されている。具体的に、ゴルフ場情報DB12bには、ゴルフ場ID、ゴルフ場名、郵便番号、住所、電話番号、FAX番号、電子メールアドレス、時間枠情報、プラン情報等のゴルフ場の属性が、ゴルフ場ごとに対応付けて登録される。ゴルフ場IDは、ゴルフ場の識別情報である。時間枠情報は、ゴルフ場の提供者が設定している時間枠に関する情報である。例えば、時間枠情報には、一日に設定された時間枠ごとのスタート時間が設定されている。プラン情報は、ゴルフ場提供者が提供するプランに関する情報である。
図9(c)は、予約状況DB12cに登録される内容の一例を示す図である。予約状況DB12cには、各ゴルフ場の予約状況が登録されている。具体的に、ゴルフ場情報DB12bには、ゴルフ場ID、コースID、プレー日、スタート時間、予約フラグ、予約番号等が、時間枠ごとに対応付けて登録される。コースIDは、コースの識別情報である。スタート時間は、時間枠を示す。予約フラグは、予約状況を示す。予約フラグには、「予約済」及び「空き」の何れかが設定される。「予約済」は、時間枠が予約済枠であることを示す。「空き」は、時間枠が空き枠であることを示す。予約番号は、予約が成立するごとに発行される識別番号である。予約番号は、予約フラグが「予約済」であるときに登録される。連続枠が予約された場合、連続枠に対応する各時間枠のスタート時間に対応して、同一の予約番号が登録される。
図9(d)は、予約情報DB12dに登録される内容の一例を示す図である。予約情報DB12dには、ゴルフ場の予約内容を示す予約情報が登録される。予約情報は、ユーザの予約の実績を示す情報である。具体的に、予約情報DB12dには、予約番号、予約日時、ユーザID、ゴルフ場ID、プランID、コースID、プレー日、枠数、スタート時間、組情報、料金、検索条件等が登録される。予約番号は、予約情報を識別する情報である。予約日時は予約が行われた日時である。ユーザIDは、予約したユーザを示す。ゴルフ場ID、プランID及びコースIDは、予約されたゴルフ場、プラン及びコースを示す。枠数は、予約された時間枠の数を示す。スタート時間は、予約された時間枠を示す。枠数が2以上である場合、スタート時間は、予約された連続枠の先頭の時間枠のスタート時間である。検索条件は、予約されたゴルフ場及びプランを検索するためにユーザが指定した検索条件である。
組情報は、プレーを予定する組に関する情報である。組情報は、枠数分登録される。図9(e)は、組情報に設定される内容の一例を示す図である。図9(e)に示すように、組情報には、スタート時間、プレー人数及びメンバーリストが設定される。スタート時間は、組がゴルフのプレーを開始する時間枠を示す。メンバーリストは、組を構成するメンバーのユーザIDのリストである。
図9(f)は、操作履歴DB12eに登録される内容の一例を示す図である。操作履歴DB12eには、ゴルフ場サイトにおけるユーザの操作履歴が登録される。操作履歴DB12eには、ユーザID、操作日時、URL等が対応付けて登録される。ゴルフ場予約サーバ1は、ユーザがユーザ端末3を操作することによりユーザ端末3がゴルフ場予約サーバ1へリクエストを送信するごとに、操作履歴を登録する。ユーザIDは、操作を行ったユーザを示す。操作日時は、操作が行われた日時である。URLは、ユーザ端末3からのリクエストに設定されていたものである。ゴルフ場予約サーバ1は、URLから、操作内容を特定することができる。ゴルフ場サイトにおけるユーザの操作としては、例えば、ゴルフ場の検索の要求操作、時間枠の検索の要求操作、ゴルフページの閲覧操作、予約の操作、ログイン操作、ログアウト操作等がある。操作履歴がゴルフ場の検索の要求操作の履歴である場合、操作履歴が、検索されたゴルフ場の一覧と対応付けて登録されてもよい。ゴルフ場の一覧には、例えば、検索されたゴルフ場のゴルフ場IDが登録される。
次に、記憶部12に記憶されるその他の情報について説明する。記憶部12には、ウェブページを表示するためのHTML文書、XML(Extensible Markup Language)文書、画像データ、テキストデータ、電子文書等の各種データが記憶されている。また、記憶部12には、各種の設定値、閾値、定数等が記憶されている。
また、記憶部12には、オペレーティングシステム、WWW(World Wide Web)サーバプログラム、DBMS(Database Management System)、予約管理プログラム等の各種プログラムが記憶されている。予約管理プログラムは、ゴルフ場の予約に関する各種の処理を実行するためのプログラムである。予約管理プログラムは、本発明における情報処理プログラムの一例である。なお、各種プログラムは、例えば、他のサーバ装置等からネットワークNWを介して取得されるようにしてもよいし、DVD(Digital Versatile Disc)等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。また、予約管理プログラムは、プログラム製品であってもよい。
入出力インターフェース13は、通信部11及び記憶部12とシステム制御部14との間のインターフェース処理を行うようになっている。
図10は、本実施形態に係るゴルフ場予約サーバ1の機能ブロックの一例を示す図である。システム制御部14は、CPU14a、ROM(Read Only Memory)14b、RAM(Random Access Memory)14c等により構成されている。そして、システム制御部14は、CPU14aが、各種プログラムを読み出し実行することにより、図10に示すように、第1検索部141、第2検索部142、スコア算出部143、時間枠選択ページ生成部144、予約処理部145、及びポイント付与部146として機能する。第1検索部141は、本発明における第1検索手段の一例である。第2検索部142は、本発明における第2検索手段の一例である。スコア算出部143は、本発明における推定手段及び実績取得手段の一例である。時間枠選択ページ生成部144は、本発明における提示制御手段の一例である。予約処理部145は、本発明における予約要求取得手段、依頼通知出力手段、受け入れ通知取得手段及び可能通知出力手段の一例である。ポイント付与部146は、本発明における処理手段の一例である。
第1検索部141は、ユーザにより指定された検索条件に基づいて、予約することができる時間枠があるゴルフ場及びプランを検索する。ゴルフ場ページにおいてユーザがプランとプレー日との組み合わせを選択した場合、第1検索部141は、選択された組み合わせにおいて予約することができる時間枠を検索する。検索条件として連続枠が指定されていた場合、第1検索部141は、予約することができる連続枠を検索する。
第2検索部142は、検索条件として連続枠が指定された場合、予約することができない連続枠であって予約可能性がある連続枠があるゴルフ場及びプランを検索する。ゴルフ場ページにおいてユーザがプランとプレー日との組み合わせを選択した場合、第2検索部142は、選択された組み合わせにおいて予約することができない連続枠であって予約可能性がある連続枠を検索する。
スコア算出部143は、第2検索部により検索された連続枠の予約蓋然性スコアを算出する。
時間枠選択ページ生成部144は、第1検索部141及び第2検索部142の検索結果に基づいて、時間枠選択ページのHTML文書を生成する。時間枠選択ページ生成部144は、スコア算出部143により算出された予約蓋然性スコアに基づいて、第2検索部142により検索された連続枠の連続枠情報110の表示態様を制御する。時間枠選択ページ生成部144は、生成したHTML文書を送信することにより、第1検索部141による検索結果と第2検索部142による検索結果とを、互いに区別可能な態様でユーザ端末3により提示させる。
予約処理部145は、予約状況の更新、予約情報の登録、予約情報の変更等を行う。また、予約処理部145は、予約済枠を含む連続枠の予約の要求に対する処理を行う。具体的に、予約処理部145は、時間枠移動依頼メール、時間枠移動承諾ページ、予約成功通知メールの送信、予約失敗メール等を出力する。また、予約処理部145は、予約済者の予約情報の変更、予約要求者の予約情報の登録、等を行う。
ポイント付与部146は、予約処理部145の処理によって予約済者が予約した予約済枠が移動した場合、予約済者へポイントを付与する処理を行う。また、ポイント付与部146は、付与するポイント数を決定する。
なお、ゴルフ場予約サーバ1が、複数のサーバ装置で構成されてもよい。例えば、予約サイトにおいてゴルフ場や時間枠の検索を行うサーバ装置、予約の処理を行うサーバ装置、ユーザ端末3からのリクエストに応じてウェブページを送信するサーバ装置、電子メールを送信するサーバ装置、及びデータベースを管理するサーバ装置等が、互いにLAN等で接続されてもよい。
[1−4.情報処理システムの動作]
次に、情報処理システムSの動作について、図11乃至図16を用いて説明する。なお、以下に説明する動作例は、図4に示すような時間枠選択ページが表示される場合の例である。
図11は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部14の連続枠検索処理における処理例を示すフローチャートである。ゴルフ場ページにおいて、ユーザがプランとプレー日の組み合わせを選択すると、ユーザ端末3は、時間枠検索リクエストをゴルフ場予約サーバ1へ送信する。時間枠検索リクエストは、ユーザに選択されたプランのプランID、プレー日、及びゴルフ場ページに対応するゴルフ場のゴルフ場IDを含む。また、時間枠検索リクエストは、トップページで指定された検索条件(連続枠の指定及び希望枠数を含む)を含む。連続枠検索処理は、ゴルフ場予約サーバ1が時間枠検索リクエストを受信したときであって、且つ、検索条件として連続枠が指定された場合に開始される。
第1検索部141は、通信部11から時間枠検索リクエストを取得する。そして、第1検索部141は、時間枠検索リクエストに設定された希望枠数分連続して空き時間枠である連続枠を検索する(ステップS51)。具体的に、第1検索部141は、予約状況DB12cから、時間枠検索リクエストに設定されたゴルフ場ID、プランID及びプレー日に対応付けられた複数のスタート時間のうち、希望枠数分連続するスタート時間であって、全ての予約フラグが「空き」である希望枠数分のスタート時間を検索する。次いで、時間枠選択ページ生成部144は、検索された各連続枠の予約可不可情報112として、「予約可」を決定する(ステップS52)。
次いで、時間枠選択ページ生成部144は、検索された連続枠の数が、記憶部12に記憶された件数閾値未満であるか否かを判定する(ステップS53)。このとき、時間枠選択ページ生成部144は、連続枠の数が件数閾値未満であると判定した場合には(ステップS53:YES)、ステップS54に進む。一方、時間枠選択ページ生成部144は、連続枠の数が件数閾値以上であると判定した場合には(ステップS53:NO)、ステップS65に進む。
ステップS54において、第2検索部142は、希望枠数分連続する連続枠であって、予約済枠を少なくとも1つ含む連続枠を検索する。具体的に、第2検索部142は、予約状況DB12cから、時間枠検索リクエストに設定されたゴルフ場ID、プランID及びプレー日に対応付けられた複数のスタート時間のうち、希望枠数分連続するスタート時間であって、少なくとも1つの時間枠の予約フラグが「予約済」である希望枠数分のスタート時間を検索する。
次いで、第2検索部142は、ステップS54で検索された連続枠のうち1つを選択する(ステップS55)。次いで、第2検索部142は、選択した連続枠以外の時間範囲から、空き枠を検索する(ステップS56)。具体的に、第2検索部142は、予約状況DB12cから、時間枠検索リクエストに設定されたゴルフ場ID、プランID、プレー日及び選択した連続枠が設定されたコースのコースIDに対応付けられた複数のスタート時間のうち、予約フラグが「空き」であるスタート時間を検索する。このとき、第2検索部142は、選択した連続枠に含まれる時間帯のスタート時間については、検索対象から除外する。
次いで、第2検索部142は、選択した連続枠に含まれる全ての予約済枠を、選択した連続枠以外の空き枠に移動可能であるか否かを判定する(ステップS57)。選択した連続枠に、連続枠としての予約済枠が含まれている場合、第2検索部142は、その予約済枠が連続枠として移動可能であるか否かを判定する。予約状況DB12cにおいては、連続枠を構成する2以上の時間枠のスタート時間のそれぞれに対応付けられている予約番号が同一である。よって、第2検索部142は、予約済枠が連続枠であるか否かを判定することができる。第2検索部142は、選択した連続枠に含まれる少なくとも1つの予約済枠が移動可能ではないと判定した場合には(ステップS57:NO)、ステップS58に進む。一方、第2検索部142は、選択した連続枠に含まれる全ての予約済枠を移動可能であると判定した場合には(ステップS57:YES)、ステップS59に進む。
ステップS58において、第2検索部142は、選択した連続枠を、検索結果から除外する。次いで、第2検索部142は、ステップS63に進む。検索結果から除外された連続枠は、予約可能性がない連続枠である。
ステップS59において、スコア算出部143は、予約蓋然性スコア算出処理を実行する。予約蓋然性スコア算出処理では、選択された連続枠の予約蓋然性スコアが算出される。予約蓋然性スコア算出処理の詳細については後述する。
次いで、時間枠選択ページ生成部144は、算出された予約蓋然性スコアが、記憶部12に記憶されたスコア閾値未満であるか否かを判定する(ステップS60)。スコア閾値は、予め設定された閾値である。このとき、時間枠選択ページ生成部144は、予約蓋然性スコアがスコア閾値未満であると判定した場合には(ステップS60:YES)、ステップS58に進む。予約蓋然性が低いので、選択された連続枠は、検索結果から除外される。一方、時間枠選択ページ生成部144は、予約蓋然性スコアがスコア閾値以上であると判定した場合には(ステップS60:NO)、ステップS61に進む。
ステップS61において、時間枠選択ページ生成部144は、選択された連続枠の予約可不可情報112として、「予約不可」を決定する。次いで、時間枠選択ページ生成部144は、算出された予約蓋然性スコアに基づいて、予約蓋然性情報113として、「A」、「B」及び「C」の何れかを決定する(ステップS62)。
次いで、第2検索部142は、ステップS54で検索された連続枠の中にまだ選択していない連続枠があるか否かを判定する(ステップS63)。このとき、第2検索部142は、まだ選択していない連続枠があると判定した場合には(ステップS63:YES)、ステップS64に進む。一方、第2検索部142は、全ての連続枠を選択したと判定した場合には(ステップS63:NO)、ステップS65に進む。
ステップS64において、第2検索部142は、ステップS54で検索された連続枠の中から、まだ選択していない連続枠のうち1つを選択する。次いで、第2検索部142は、ステップS56に進む。ステップS54〜S64により、第2検索部142は、予約済枠を少なく1つ含む連続枠であって予約可能性がある連続枠を検索する。
ステップS65において、時間枠選択ページ生成部144は、ステップS51における検索結果、ステップS54〜S64における検索結果、予約可不可情報112の設定、及び予約蓋然性情報113の設定に基づいて、時間枠選択ページのHTML文書を生成する(ステップS65)。次いで、時間枠選択ページ生成部144は、生成したHTML文書をユーザ端末3へ送信する(ステップS66)。そして、時間枠選択ページ生成部144は、連続枠検索処理を終了させる。ユーザ端末3は、受信したHTML文書に基づいて、例えば、図4に示したような時間枠選択ページを表示する。
図12は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部14の予約蓋然性スコア算出処理における処理例を示すフローチャートである。
図12に示すように、スコア算出部143は、選択された連続枠に含まれる各予約済枠に対応する予約情報を予約情報DB12dから取得する(ステップS81)。予約状況DB12cに登録されている予約番号と、予約情報DB12dに登録されている予約情報に含まれる予約番号とで、予約済枠と予約情報とが対応付けられている。
次いで、スコア算出部143は、選択された連続枠に含まれる予約済枠の数に応じた予約蓋然性スコアの加算値を決定する(ステップS82)。例えば、スコア算出部143は、SC=SC+KA÷予約済枠の数、を計算する。SCは、ワーク用のスコアである。KAは正の定数である。
次いで、スコア算出部143は、選択された連続枠に含まれる予約済枠でプレーするメンバーの人数に応じた予約蓋然性スコアの加算値を決定する(ステップS83)。具体的に、スコア算出部143は、ステップS81で取得した各予約情報に含まれる各組情報からプレー人数を取得する。次いで、スコア算出部143は、取得したプレー人数の合計値を計算する。そして、スコア算出部143は、例えば、SC=SC+KB÷プレー人数の合計値、を計算する。KBは正の定数である。
次いで、スコア算出部143は、選択された連続枠に含まれる予約済枠を予約した予約済者の数mに応じた予約蓋然性スコアの加算値を決定する(ステップS84)。例えば、スコア算出部143は、SC=SC+KC÷m、を計算する。KBは正の定数である。予約状況DB12cにおいて、予約番号が異なるスタート時間同士では、予約済者が異なる。従って、予約状況DB12cに基づいて、予約済者の数mを算出することができる。
次いで、スコア算出部143は、インデックスiに1を設定する。また、スコア算出部143は、スコアSiにSCを設定する(ステップS85)。スコアSiは、選択された連続枠に含まれる予約済枠を予約した予約済者のうち1人の予約済者が予約した予約済枠に対する予約蓋然性スコアである。予約済者が予約した予約済枠が連続枠である場合、スコアSiは、連続枠としての予約済枠に対する予約蓋然性スコアである。
次いで、スコア算出部143は、1枠対応スコア算出処理を実行する(ステップS86)。1枠対応スコア算出処理では、1人の予約済者が予約した予約済枠に対する予約蓋然性スコアとして、最終的なスコアSiが算出される。1枠対応スコア算出処理の詳細は後述する。
次いで、スコア算出部143は、スコア算出部143は、インデックスiに1を加算する(ステップS87)。次いで、スコア算出部143は、インデックスiが予約済者の数mの値よりも小さいか否かを判定する(ステップS88)。このとき、スコア算出部143は、インデックスiが予約済者の数mの値よりも小さいと判定した場合には(ステップS88:YES)、ステップS86に進む。一方、スコア算出部143は、インデックスiが予約済者の数mの値以上であると判定した場合には(ステップS88:NO)、ステップS89に進む。スコア算出部143は、ステップS85〜S88を実行することにより、スコアSC1〜SCmを算出する。
ステップS89において、スコア算出部143は、スコアSC1〜SCmの平均値を算出する。そして、スコア算出部143は、算出した平均値を、予約蓋然性スコアとして決定する。スコア算出部143は、この処理を終えると、予約蓋然性スコア算出処理を終了させる。
図13は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部14の1枠対応スコア算出処理における処理例を示すフローチャートである。
図13に示すように、スコア算出部143は、インデックスiに対応する予約済者の予約所要時間に応じた予約蓋然性スコアの加算値を決定する(ステップS101)。具体的に、スコア算出部143は、インデックスiに対応する予約済者の予約情報からユーザID及び予約日時を取得する。次いで、スコア算出部143は、予約情報から取得したユーザIDを含む操作履歴を操作履歴DB12eから検索する。次いで、スコア算出部143は、検索した操作履歴に基づいて、予約日時よりも前にログインされた日時のうち、予約日時に最も近い日時を特定する。次いで、スコア算出部143は、特定した日時と予約日時との差を計算することにより、予約所要時間を算出する。そして、スコア算出部143は、例えば、Si=Si+KD÷予約所要時間、を計算する。KDは正の定数である。
次いで、スコア算出部143は、インデックスiに対応する予約済者の検索回数に応じた予約蓋然性スコアの加算値を決定する(ステップS102)。具体的に、スコア算出部143は、検索した操作履歴に基づいて、ログインされた日時から予約日時までに検索が行われた回数をカウントする。そして、スコア算出部143は、例えば、Si=Si+KE÷検索回数、を計算する。KEは正の定数である。
次いで、スコア算出部143は、インデックスiに対応する予約済者が指定した希望スタート時間帯に基づく予約蓋然性スコアの加算値を決定する。具体的に、インデックスiに対応する予約済者の予約情報に含まれる検索条件から希望スタート時間帯を取得する。そして、スコア算出部143は、移動先候補の時間枠のうち少なくとも1つが希望スタート時間帯に含まれるか否かを判定する(ステップS103)。このとき、スコア算出部143は、少なくとも1つの移動先候補の時間枠が希望スタート時間帯に含まれると判定した場合には(ステップS103:YES)、ステップS104に進む。一方、スコア算出部143は、全ての移動先候補の時間枠が希望スタート時間帯に含まれないと判定した場合には(ステップS103:NO)、ステップS105に進む。
ステップS104において、スコア算出部143は、例えば、Si=Si+KF、を計算する。KFは正の定数である。次いで、スコア算出部143は、ステップS105に進む。
ステップS105〜S108において、スコア算出部143は、インデックスiに対応する予約済者が予約する時間帯の傾向に基づいて、予約蓋然性スコアの加算値を決定する。具体的に、スコア算出部143は、予約情報DB12dから、インデックスiに対応する予約済者のユーザIDを含む予約情報を全て検索する(ステップS105)。次いで、スコア算出部143は、検索した各予約情報に含まれるスタート時間及び枠数に基づいて、インデックスiに対応する予約済者による所定時間帯ごとの予約割合を算出する(ステップS106)。次いで、スコア算出部143は、移動先候補の時間枠のうち少なくとも1つが、予約割合が所定値以上である時間帯に含まれるか否かを判定する(ステップS107)。このとき、スコア算出部143は、少なくとも1つの移動先候補の時間枠が、予約割合が所定値以上である時間帯に含まれると判定した場合には(ステップS107:YES)、ステップS108に進む。一方、スコア算出部143は、全ての移動先候補の時間枠が、予約割合が所定値以上である時間帯に含まれていないと判定した場合には(ステップS107:NO)、ステップS109に進む。ステップS108において、スコア算出部143は、例えば、Si=Si+KGを計算する。KGは正の定数である。次いで、スコア算出部143は、ステップS109に進む。
ステップS109〜S116において、スコア算出部143は、インデックスiに対応する予約済者が他人の予約済枠の直後の時間枠に予約する傾向、及び、移動先候補の時間枠の直前の他人の予約済枠でプレーするメンバーのゴルフの技量に基づいて、予約蓋然性スコアの加算値を決定する。具体的に、スコア算出部143は、移動先候補の時間枠のうち少なくとも1つの移動先候補の時間枠の直前の時間枠が、空き枠であるか否かを判定する(ステップS109)。このとき、スコア算出部143は、少なくとも1つの移動先候補の時間枠の直前が、空き枠であると判定した場合には(ステップS109:YES)、ステップS110に進む。一方、スコア算出部143は、全ての移動先候補の時間枠の直前が予約済枠であると判定した場合には(ステップS109:NO)、ステップS111に進む。
ステップS110において、スコア算出部143は、例えば、Si=Si+KH+KIを計算する。KH及びHIは正の定数である。次いで、スコア算出部143は、ステップS117に進む。移動先候補の時間枠のうち少なくとも1つの移動先候補の時間枠の直前の時間枠が空き枠である場合、他人の予約済枠の直後の時間枠に予約する傾向の有無にかかわらず、空き枠の直前にある移動先候補の時間枠を移動先とすればよい。従って、この場合は予約蓋然性が高くなるので、予約蓋然性スコアにKHが加算される。また、空き枠の直前にある移動先候補の時間枠に予約済枠を移動することができれば、他人の予約済枠でプレーするメンバーのゴルフの技量は関係ない。従って、この場合は予約蓋然性が高くなるので、予約蓋然性スコアにKIが加算される。
ステップS111において、スコア算出部143は、ステップS105で検索された予約情報と、予約状況DB12cとに基づいて、予約済者の過去の予約のうち、予約された時間枠の直前の時間枠が予約済枠である予約の数と、予約された時間枠の直前の時間枠が空き枠である予約の数とをカウントする。そして、スコア算出部143は、予約済者の全ての予約のうち、予約済枠の直後の時間枠が予約された割合を計算する。次いで、スコア算出部143は、予約済枠の直後の時間枠が予約された割合が所定値未満であるか否かを判定する(ステップS112)。このとき、スコア算出部143は、予約済枠の直前の時間枠が予約された割合が所定値未満であると判定した場合には(ステップS112:YES)、ステップS114に進む。一方、スコア算出部143は、予約済枠の直前の時間枠が予約された割合が所定値以上であると判定した場合には(ステップS112:NO)、ステップS113に進む。
ステップS113において、スコア算出部143は、例えば、Si=Si+KHを計算する。次いで、スコア算出部143は、ステップS114に進む。
ステップS114において、スコア算出部143は、各移動先候補の時間枠の直前の予約済枠に対応する予約情報を、予約情報DB12dから取得する。次いで、スコア算出部143は、検索された予約情報に含まれる組情報のうち予約済枠に対応する組情報のメンバーリストから、ユーザIDを取得する。次いで、スコア算出部143は、取得したユーザIDに対応するハンディキャップを会員情報DB12aから取得する。次いで、スコア算出部143は、移動先候補の時間枠の直前の予約済枠ごとに、最も高いハンディキャップを選択する。次いで、スコア算出部143は、選択したハンディキャップの中に、所定値未満のハンディキャップがあるか否かを判定する(ステップS115)。このとき、スコア算出部143は、所定値未満のハンディキャップがあると判定した場合には(ステップS115:YES)、ステップS116に進む。一方、スコア算出部143は、所定値未満のハンディキャップがないと判定した場合には(ステップS115:NO)、ステップS117に進む。
ステップS116において、スコア算出部143は、例えば、Si=Si+KIを計算する。つまり、組のメンバーの全員のハンディキャップが所定値未満であれば、プレーの進行が遅くならない。一方、組のメンバーのうち1人でもハンディキャップが所定値以上のメンバーがいると、プレーの進行が遅くなる。移動先候補の時間枠のうち少なくとも1つの移動先候補の時間枠の直前の予約済枠でプレーする組のメンバーの全員のハンディキャップが所定値未満であれば、その移動先候補の時間枠を移動先とすればよい。従って、この場合は予約蓋然性が高くなることから、予約蓋然性スコアにKIが加算される。次いで、スコア算出部143は、ステップS117に進む。
ステップS117及びS118において、スコア算出部143は、インデックスiに対応する予約済者の住所からゴルフ場までの移動容易性に応じた予約蓋然性スコアの加算値を決定する。具体的に、スコア算出部143は、インデックスiに対応する予約済者のユーザIDを含む会員情報から住所を取得する。また、スコア算出部143は、時間枠検索リクエストに含まれるゴルフ場IDを含むゴルフ場情報から住所を取得する。そして、スコア算出部143は、取得した住所に基づいて、予約済者の住所からゴルフ場までの距離を計算する(ステップS117)。次いで、スコア算出部143は、例えば、Si=Si+KJ÷距離、を計算する(ステップS118)。KJは、正の定数である。次いで、スコア算出部143は、ステップS119に進む。
ステップS119及びステップS120において、スコア算出部143は、予約済枠の移動幅に応じた予約蓋然性スコアの加算値を決定する。具体的に、スコア算出部143は、インデックスiに対応する予約済者の予約済枠のスタート時間と、移動先候補の時間枠のスタート時間との差を計算する。そして、スコア算出部143は、計算した差の絶対値を、移動幅とする(ステップS119)。移動先候補の時間枠が複数ある場合、スコア算出部143は、各移動先候補の時間枠について移動幅を計算し、計算された移動幅の中から最も短い移動幅を選択する。次いで、スコア算出部143は、例えば、Si=Si+KK÷移動幅、を計算する(ステップS120)。KKは、正の定数である。そして、スコア算出部143は、1枠対応スコア算出処理を終了させる。
図14は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部14の予約制御処理における処理例を示すフローチャートである。予約手続ページにおいて、ユーザAが必要な情報を入力すると、ユーザ端末3は、予約リクエストをゴルフ場予約サーバ1へ送信する。予約リクエストは、予約要求者のユーザID、ゴルフ場検索結果ページで選択されたゴルフ場のゴルフ場ID、ゴルフ場ページで選択されたプランのプランID及びプレー日、トップページで指定された検索条件、時間枠選択ページで選択された時間枠のスタート時間及びコースのコースID、予約手続ページで入力された情報等を含む。予約制御処理は、ゴルフ場予約サーバ1が予約リクエストを受信したときに開始される。
図14に示すように、予約処理部145は、予約リクエストに設定された検索条件において、連続枠が指定されているか否かを判定する(ステップS131)。このとき、予約処理部145は、連続枠が指定されていないと判定した場合には(ステップS131:NO)、ステップS133に進む。一方、予約処理部145は、連続枠が指定されていると判定した場合には(ステップS131:YES)、ステップS132に進む。
ステップS132において、予約処理部145は、指定された連続枠が少なくとも1つの予約済枠を含むか否かを判定する。具体的に、予約処理部145は、予約状況DB12cから、予約リクエストに設定されたゴルフ場ID、コースID及びプレー日を含む予約状況を検索する。次いで、予約処理部145は、検索された予約状況のうち、予約リクエストに設定されたスタート時間を含む予約状況から予約リクエストに設定された希望枠数分の予約状況を取得する。そして、予約処理部145は、取得した予約状況に含まれる予約フラグに基づいて、判定を行う。このとき、予約処理部145は、指定された連続枠が少なくとも1つの予約済枠を含むと判定した場合には(ステップS132:YES)、ステップS134に進む。一方、予約処理部145は、指定された連続枠が予約済枠を含まないと判定した場合には(ステップS132:NO)、ステップS133に進む。
ステップS133において、予約処理部145は、通常の予約処理を実行する。具体的に、予約処理部145は、予約状況DB12cにおいて、予約リクエストに設定されたゴルフ場ID、コースID、プレー日、スタート時間及び希望枠数に対応する予約フラグに「予約済」を設定するとともに、予約番号に新しい予約番号を設定する。そして、予約処理部145は、予約リクエストに設定された情報に基づいて、予約情報DB12dに予約情報を登録する。予約処理部145は、この処理を終えると、予約制御処理を終了させる。
ステップS134において、予約処理部145は、予約要求者により指定された連続枠に含まれる予約済枠を予約した予約済者のユーザIDを取得する。具体的に、予約処理部145は、予約情報DB12dから、ステップS132で取得した予約状況に設定された予約番号を含む予約情報を検索する。そして、予約処理部145は、検索された予約情報からユーザIDを取得する。
次いで、予約処理部145は、予約要求者により指定された連続枠に含まれる予約済枠を予約した予約済者のうち一人の予約済者を選択する(ステップS135)。次いで、予約処理部145は、予約要求者により指定された連続枠以外の時間範囲から、移動先候補の時間枠を検索する(ステップS136)。具体的に、予約処理部145は、予約状況DB12cから、予約リクエストに設定されたゴルフ場ID、コースID、プレー日に対応付けられた複数のスタート時間のうち、予約フラグが「空き」であるスタート時間を検索する。このとき、第2検索部142は、選択した連続枠に含まれる時間帯のスタート時間については、検索対象から除外する。選択した予約済者が連続枠として予約済枠を予約した場合、予約処理部145は、移動先候補として連続枠を検索する。
次いで、予約処理部145は、選択された予約済者の予約情報、検索した移動先候補の時間枠等に基づいて、時間枠移動依頼メールを生成する。そして、予約処理部145は、選択された予約済者宛てに時間枠移動依頼メールを送信する(ステップS137)。予約処理部145は、宛先の電子メールアドレスとして、予約済者のユーザIDを含む会員情報から電子メールアドレスを取得する。
次いで、予約処理部145は、予約要求者により指定された連続枠に含まれる予約済枠を予約した予約済者の中にまだ選択していない予約済者がいるか否かを判定する(ステップS138)。このとき、予約処理部145は、まだ選択していない予約済者がいると判定した場合には(ステップS138:YES)、ステップS139に進む。ステップS139において、予約処理部145は、まだ選択していない予約済者のうち1人を選択する。次いで、予約処理部145は、ステップS136に進む。一方、予約処理部145は、全ての予約済者を選択したと判定した場合には(ステップS138:NO)、ステップS140に進む。ステップS140において、予約処理部145は、受信した予約リクエストと、ステップS134で取得された予約済者のユーザIDとを、仮の予約番号に対応付けて記憶部12に一時的に保存する。そして、予約処理部145は、予約制御処理を終了させる。
図15は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部14の時間枠移動制御処理における処理例を示すフローチャートである。時間枠移動承諾ページにおいて、ユーザが承諾ボタン320又は不承諾ボタン330を選択する。すると、ユーザ端末3は、ユーザの選択に応じて、承諾メッセージ及び不承諾メッセージの何れかをゴルフ場予約サーバへ送信する。承諾メッセージ及び不承諾メッセージのそれぞれは、仮の予約番号、時間枠移動承諾ページにおいて操作を行った予約済者のユーザID、予約済者が予約済枠を行った際の予約番号を含む。また、承諾メッセージは、時間枠移動承諾ページで予約済者が選択したスタート時間及び予約済枠の枠数を含む。時間枠移動制御処理は、ゴルフ場予約サーバ1が承諾メッセージ及び不承諾メッセージの何れかを受信したときに開始される。
図15に示すように、予約処理部145は、受信したメッセージに含まれる仮の予約番号に対応する予約メッセージ及び予約済者のユーザIDを記憶部12から取得する(ステップS151)。次いで、予約処理部145は、受信されたメッセージが承諾メッセージであるか否かを判定する(ステップS152)。このとき、予約処理部145は、受信されたメッセージが承諾メッセージであると判定した場合には(ステップS152:YES)、ステップS153に進む。一方、予約処理部145は、受信されたメッセージが不承諾メッセージであると判定した場合には(ステップS152:NO)、ステップS163に進む。
ステップS153において、予約処理部145は、時間枠の移動を受け入れた予約済者が選択した移動先の時間枠を予約済枠に変更する。具体的に、予約処理部145は、予約状況DB12cにおいて、予約リクエストに設定されたゴルフ場ID、コースID、プレー日、承諾メッセージに設定されたスタート時間及び枠数に対応する予約フラグ及び予約番号に、「予約済」及び承諾通知メッセージに含まれる予約済者の予約番号を設定する。また、予約処理部145は、承諾メッセージに設定された予約済者の予約番号、スタート時間及び枠数を、承諾メッセージに設定された仮の予約番号及びユーザIDに対応付けて記憶部12に記憶させる。
次いで、予約処理部145は、予約要求者が選択した連続枠に含まれる予約済枠を予約している全ての予約済者が時間枠の移動を受け入れたか否かを判定する(ステップS154)。例えば、承諾メッセージに設定された仮の予約番号に対応付けて記憶部12に記憶されている全ての予約済者のユーザIDのそれぞれに、予約番号が対応付けられている場合、全ての予約済者が時間枠の移動を受け入れている。このとき、予約処理部145は、全ての予約済者が時間枠の移動を受け入れたと判定した場合には(ステップS154:YES)、ステップS155に進む。一方、予約処理部145は、時間枠の移動をまだ受け入れていない予約済者が少なくとも1人いると判定した場合には(ステップS154:NO)、時間枠移動制御処理を終了させる。
ステップS155において、予約処理部145は、ステップS151で取得されたユーザIDに基づいて、予約要求者が選択した連続枠に含まれる予約済枠を予約している全ての予約済者のうち1人を選択する。次いで、予約処理部145は、予約情報DB12dにおいて、選択された予約済者の予約情報を変更する(ステップS156)。具体的に、予約処理部145は、仮の予約番号及び選択した予約済者のユーザIDに対応付けて記憶部12に記憶されている予約番号及びスタート時間を取得する。そして、予約処理部145は、取得した予約番号に対応する予約情報のスタート時間を、取得したスタート時間に変更する。また、予約処理部145は、予約情報に含まれる各組数情報のスタート時間も変更する。
次いで、ポイント付与部146は、ポイント付与処理を実行する(ステップS157)。ポイント付与処理では、選択された予約済者が保有するポイントを増加させる処理が行われる。ポイント付与処理の詳細については後述する。
次いで、予約処理部145は、予約要求者が選択した連続枠に含まれる予約済枠を予約している予約済者の中に、まだ選択していない予約済者がいるか否かを判定する(ステップS158)。このとき、予約処理部145は、まだ選択していない予約済者がいると判定した場合には(ステップS158:YES)、ステップS159に進む。ステップS159において、予約処理部145は、まだ選択していない予約済者のうち1人を選択する。次いで、予約処理部145は、ステップS156に進む。一方、予約処理部145は、全ての予約済者を選択したと判定した場合には(ステップS158:NO)、ステップS160に進む。
ステップS160において、予約処理部145は、予約要求者が選択した連続枠の全ての時間枠を予約済枠にする。また、予約処理部145は、承諾メッセージに含まれる仮の予約番号を、予約要求者の新しい予約番号に決定する。そして、予約処理部145は、予約状況DB12cにおいて、予約要求者が選択した連続枠の全ての時間枠の予約番号を、予約要求者の新しい予約番号に変更する。
次いで、予約処理部145は、予約要求者の予約情報を予約情報DB12dに登録する(ステップS161)。ステップS160及びS161の処理は、図14に示す予約制御処理のステップS133と基本的に同様である。次いで、予約情報DB12dは、予約要求者宛てに予約成功通知メールを送信する(ステップS162)。予約処理部145は、宛先の電子メールアドレスとして、予約要求者のユーザIDを含む会員情報から電子メールアドレスを取得する。そして、予約情報DB12dは、時間枠移動制御処理を終了させる。なお、予約処理部145は、既に時間枠の移動を受け入れている予約済者宛てに、予約済枠が移動したことを通知する電子メールを送信してもよい。
ステップS163において、予約処理部145は、既に時間枠の移動を受け入れた予約済者について、移動先の時間枠を空き枠に変更する。具体的に、予約処理部145は、仮の予約番号に対応付けて記憶部12に記憶されている移動先の時間枠のスタート時間及び枠数を取得する。次いで、予約処理部145は、予約状況DB12cにおいて、予約リクエストに設定されたゴルフ場ID、コースID、プレー日、記憶部12から取得されたスタート時間及び枠数に対応する予約フラグに「空き」を設定する。次いで、予約処理部145は、予約要求者宛てに予約失敗通知メールを送信する(ステップS164)。そして、予約処理部145は、時間枠移動制御処理を終了させる。なお、予約処理部145は、既に時間枠の移動を受け入れている予約済者宛てに、予約済枠が移動しなかったことを通知する電子メールを送信してもよい。
図16は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部14のポイント付与処理における処理例を示すフローチャートである。
図16に示すように、ポイント付与部146は、予約要求者が選択した連続枠を、予約蓋然性スコア算出処理のパラメータとして選択する(ステップS171)。次いで、ポイント付与部146は、予約蓋然性スコア算出処理を実行する(ステップS172)。次いで、ポイント付与部146は、加算ポイントを計算する(ステップS173)。例えば、ポイント付与部146は、加算ポイント数=KL÷予約蓋然性スコア、を計算する。KLは、正の定数である。
次いで、ポイント付与部146は、会員情報DB12aに登録されている予約済者の会員情報に含まれる保有ポイント数に、加算ポイント数を加算する(ステップS174)。そして、ポイント付与部146は、ポイント付与処理を終了させる。
以上説明したように、本実施形態によれば、システム制御部14が、ゴルフ場の利用時間枠として定められた複数の時間枠の中から、ユーザの要求に応じた予約可能な連続枠を検索し、予約済枠を少なくとも1つ含むユーザの要求に応じた連続枠であって、予約済枠を予約した予約済者が予約済枠の移動を受け入れることにより予約可能になる可能性がある連続枠を検索し、予約可能な連続枠の検索結果と、予約可能になる可能性がある連続枠とを、互いに区別可能な態様で提示させる。そのため、連続枠を予約しやすくすることができる。
また、システム制御部14が、予約可能になる可能性がある連続枠が予約可能になる予約蓋然性を、予約蓋然性スコアを算出することによって推定し、推定された蓋然性に基づいて、予約可能になる可能性がある連続枠の連続枠情報110の提示態様を制御する。そのため、ユーザは、予約可能になる蓋然性を認識することができる。
また、システム制御部14が、予約可能になる可能性がある連続枠に含まれる予約済枠の数に基づいて、予約蓋然性を推定する。そのため、時間枠の移動のための日程調整の負担を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約可能になる可能性がある連続枠に含まれる予約済枠におけるプレー人数に基づいて、予約蓋然性を推定する。そのため、時間枠の移動のための利用者の日程調整の負担を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約可能になる可能性がある連続枠に含まれる1以上の予約済枠のそれぞれを予約した予約済者を特定し、予約した予約済者の数に基づいて、予約蓋然性を推定する。そのため、予約可能になる蓋然性は、予約済者ごとの時間枠の移動を受け入れられる蓋然性の積になるという事情を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約可能になる可能性がある連続枠に含まれる1以上の予約済枠から、予約可能になる可能性がある連続枠を除く範予約可能な時間枠までの移動幅に基づいて、予約蓋然性を推定する。そのため、時間枠の移動のための利用者の日程調整の負担を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約済者が検索を要求してから予約済者が予約済枠を予約するまでに要した時間に基づいて、予約蓋然性を推定する。そのため、予約者が予約するまでの熟考の程度を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約済者による予約済枠の予約までに予約済者が検索を要求した回数に基づいて、予約蓋然性を推定することを特徴とする。そのため、予約済者が予約するまでの熟考の程度を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約済枠の検索のために予約済者が検索条件として指定した希望スタート時間帯のうち、予約可能になる可能性がある連続枠を除く範囲の予約状況に基づいて、予約蓋然性を推定する。そのため、予約済者が希望する時間帯を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約された時間枠のスタート時間及び枠数を含む予約情報を、予約したユーザを識別するユーザIDに関連付けて記憶する記憶部12から、予約済者のユーザIDに関連付けられた予約情報を取得し、取得された予約情報から得られる予約の傾向に基づいて、予約蓋然性を推定する。そのため、予約済者の予約の傾向を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約可能になる可能性がある連続枠を除く予約可能な時間枠の直前の時間枠が予約済枠である場合、予約済者が予約済枠の直後の時間枠を予約する傾向に基づいて、予約蓋然性を推定する。そのため、他人が利用する時間枠の直後の時間枠を利用したくないと予約済者が考える傾向を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約可能になる可能性がある連続枠を除く予約可能な時間枠の直前の時間枠が予約済枠である場合、直前の時間枠を利用するプレーヤーのゴルフの技量に基づいて、予約蓋然性を推定する。そのため、予約可能な時間枠を予約済枠の移動先とすることの好ましさを、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約済者の住所からゴルフ場までの移動容易性に基づいて、予約蓋然性を推定する。そのため、時間枠の移動のための日程調整の負担を、予約可能になる可能性がある連続枠の連続枠情報110の提示態様に反映させることができる。
また、システム制御部14が、予約可能になる可能性がある連続枠のスタート時間及び希望枠数を含むユーザからの予約リクエストを取得し、取得された予約リクエストに含まれるスタート時間及び希望枠数が示す連続枠に含まれる予約済枠を予約した予約済者宛ての時間枠移動依頼通知メールを出力し、予約済者のユーザ端末3からの承諾通知メッセージを取得し、承諾通知メッセージが取得された場合、予約要求者宛ての予約成功通知メールを出力する。そのため、予約済枠の移動を促すことができる。また、予約済者が時間枠の移動を受け入れた場合、ユーザへ予約可能な連続枠が確保されることが通知される。そのため、予約可能になる可能性がある連続枠を予約しやすくすることができる。
また、システム制御部14が、予約可能になる可能性がある連続枠であって予約要求者により要求された連続枠に含まれる予約済枠の移動を受け入れた予約済者に対して付与されるポイントの数を、予約蓋然性が低いほど多く決定する。そのため、予約済枠の移動を受け入れることの難しさに応じて、予約済枠の移動を受け入れた予約済者が特典を得ることができる。
[2.第2実施形態]
次に、第2実施形態について、図17乃至図19を用いて説明する。第1実施形態においては、予約要求者が選択した連続枠が予約済枠を含む場合、ゴルフ場予約サーバ1は、予約済者に時間枠の移動を依頼する通知を行っていた。これに対し、第2実施形態では、予約の際にユーザが時間枠の移動先として受け入れる時間帯を登録しておく。この時間帯を、「移動可能時間帯」という。ゴルフ場予約サーバ1は、予約済者が予約した予約済枠を、移動可能時間帯の範囲内で自動的に移動させる。これにより、ユーザは連続枠の迅速に予約することができる。
図17は、本実施形態に係る情報処理システムSの処理概要を示すシーケンス図である。図17に示すように、予約を行うユーザBは、予約手続ページにおいて、必要な情報を入力する(ステップS201)。このとき、ユーザBは、移動可能時間帯として、開示時刻と終了時刻とを入力する。ユーザBは、移動可能時間帯を指定してもよいし、指定しなくてもよい。ユーザBのユーザ端末3は、入力された情報を含む予約リクエストをゴルフ場予約サーバ1へ送信する(ステップS202)。ゴルフ場予約サーバ1は、受信した予約リクエストに設定された情報に基づいて、予約情報を予約情報DB12dに登録する(ステップS203)。このとき、ゴルフ場予約サーバ1は、ユーザBが指定した移動可能時間帯を含む予約情報を登録する。図18は、予約情報DB12dに登録される内容の一例を示す図である。図9(d)に示す第1実施形態の予約情報DB12dと比較して、本実施形態の予約情報DB12dは、登録される情報として移動可能時間帯が追加されている。
その後、図3に示す処理により、ユーザAのユーザ端末3には、時間枠選択ページが表示されているとする。ここで、ユーザAは、予約済枠を含む連続枠に対応する予約ボタン115を選択する(ステップS204)。そして、予約手続ページにおいてユーザAが必要な情報を入力すると、ユーザ端末3は、予約リクエストをゴルフ場予約サーバ1へ送信する(ステップS205)。
予約リクエストを受信したゴルフ場予約サーバ1は、ユーザAが選択した連続枠に含まれる予約済枠を予約した予約済者として、ユーザBを特定する(ステップS206)。ゴルフ場予約サーバ1は、ユーザBの予約情報に設定された移動可能時間帯の範囲内で、ユーザBに予約された予約済枠の移動先候補となる時間枠を検索する。ここで、ゴルフ場予約サーバ1は、移動先候補となる時間枠があると判定したとする(ステップS207)。この場合、ゴルフ場予約サーバ1は、ユーザAが選択した連続枠に含まれるユーザBの予約済枠を、移動可能時間帯の中の移動先候補の時間枠に移動させる(ステップS208)。次いで、ゴルフ場予約サーバ1は、ユーザBに対してポイントを付与する処理を実行する(ステップS209)。次いで、ゴルフ場予約サーバ1は、ユーザB宛てに、時間枠移動通知メールを送信する(ステップS210)。時間枠移動通知メールは、予約済枠が移動されたことを通知する電子メールである。時間枠移動通知メールは、本発明において、予約済の時間枠が移動されることの通知の一例である。時間枠移動通知メールの本文には、例えば、予約済枠が移動されたことを示すメッセージ、予約済枠の移動後の予約内容、付与されたポイント等が記載される。
次いで、ゴルフ場予約サーバ1は、ユーザAが選択した連続枠に対してユーザAからの予約を登録する(ステップS211)。次いで、ゴルフ場予約サーバ1は、予約成功ページをユーザAのユーザ端末3へ送信する(ステップS212)。予約成功ページは、予約要求者が選択した連続枠が予約可能な連続枠として確保されたことを通知するウェブページである。予約成功ページは、本発明において、希望時間枠が予約可能な時間枠になることの通知の一例である。予約成功ページには、例えば、連続枠の予約が成功したことを示すメッセージが表示される。なお、ゴルフ場予約サーバ1は、予約要求者の予約を自動的に登録しなくてもよい。ゴルフ場予約サーバ1は、予約要求者宛てに、予約要求者が選択した連続枠が予約可能な連続枠として確保されたことを通知することを通知するだけでもよい。
ユーザBが予約の際に移動可能時間枠を指定しなかった場合、又は、移動可能時間帯に移動先候補となる時間枠がなかった場合、ゴルフ場予約サーバ1は、ユーザBの予約済枠を移動させない。この場合、ゴルフ場予約サーバ1、ユーザAのユーザ端末3へ予約失敗ページを送信する。予約失敗ページは、予約要求者が選択した連続枠が予約可能な連続枠として確保することができなかったことを通知するウェブページである。予約失敗ページには、例えば、連続枠の予約が失敗したことを示すメッセージが表示される。
図19は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部14の予約制御処理における処理例を示すフローチャートである。図19において図14と同様の処理については同様の符号が付されている。
図19に示すように、ステップS131、S132、S134及びS135の実行の後、予約処理部145は、選択した予約済者の予約情報に移動可能時間帯が登録されているか否かを判定する(ステップS221)。このとき、予約処理部145は、移動可能時間帯が登録されていないと判定した場合には(ステップS221:NO)、ステップS222に進む。一方、予約処理部145は、移動可能時間帯が登録されていると判定した場合には(ステップS221:YES)、ステップS223に進む。ステップS222において、予約処理部145は、予約失敗ページをユーザ端末3へ送信する。そして、予約処理部145は、予約制御処理を終了させる。
ステップS223において、予約処理部145は、予約要求者が選択した連続枠以外の時間範囲のうち、予約情報に登録されている移動可能時間帯の中から、移動先候補の時間枠を検索する。次いで、予約処理部145は、移動先候補の時間枠があるか否かを判定する(ステップS224)。このとき、予約処理部145は、移動先候補の時間枠がないと判定した場合には(ステップS224:NO)、ステップS222に進む。一方、予約処理部145は、移動先候補の時間枠があると判定した場合には(ステップS224:YES)、ステップS225に進む。
ステップS225において、予約処理部145は、移動先候補の時間枠を、予約済枠の移動先として選択する。移動先候補の時間枠が複数ある場合、予約処理部145は、何れかの時間枠を選択する。例えば、予約処理部145は、移動元の時間枠から最も近い時間枠を選択してもよい。次いで、ポイント付与部146は、ポイント付与処理を実行する(ステップS226)。
次いで、予約処理部145は、予約要求者により指定された連続枠に含まれる予約済枠を予約した予約済者の中にまだ選択していない予約済者がいるか否かを判定する(ステップS138)。このとき、予約処理部145は、まだ選択していない予約済者がいると判定した場合には(ステップS138:YES)、ステップS139に進む。ステップS139において、予約処理部145は、まだ選択していない予約済者のうち1人を選択する。次いで、予約処理部145は、ステップS221に進む。一方、予約処理部145は、全ての予約済者を選択したと判定した場合には(ステップS138:NO)、ステップS227に進む。
ステップS227において、予約処理部145は、予約要求者が選択した連続枠の全ての時間枠を予約済に変更する。次いで、予約処理部145は、予約要求者の予約情報を予約情報DB12dに登録する(ステップS228)。ステップS227及びS228の処理は、図14に示す予約制御処理のステップS133と同様である。次いで、予約処理部145は、予約成功ページをユーザ端末3へ送信する(ステップS229)。そして、予約処理部145は、予約制御処理を終了させる。なお、本実施形態の予約処理部145は、予約要求取得手段、時間帯取得手段及び出力手段の一例である。
以上説明したように、本実施形態によれば、システム制御部14が、予約可能になる可能性がある連続枠のスタート時間及び希望枠数を含むユーザからの予約リクエストを取得し、時間枠を予約したユーザが時間枠の移動先として受け入れる移動可能時間帯を記憶する記憶部12から、予約リクエストに含まれるスタート時間及び希望枠数が示す連続枠に含まれる予約済枠を予約した予約済者の移動可能時間帯を取得し、取得された移動可能時間帯のうち予約が要求された時間枠を除く範囲が、予約済枠の移動先として予約可能な時間枠を含む場合、予約成功ページを出力し、予約済者宛ての時間枠移動通知メールを出力する。そのため、予約可能になる可能性がある連続枠を予約しやすくすることができる。また、予約済者は、予約済枠が移動したことを知ることができる。
なお、上記各実施形態においては、本発明の場所がゴルフ場に適用されていた。しかしながら、時間枠を指定して予約可能な場所に、本発明の場所を適用することができる。例えば、本発明の場所が、会議室、体育館、競技施設等に適用されてもよい。
また、上記各実施形態においては、本発明の情報処理装置が、クライアントサーバシステムにおけるサーバ装置に適用されていた。しかしながら、本発明の情報処理装置が、サーバ装置以外の情報処理装置に適用されてもよい。例えば、本発明の情報処理装置がユーザ端末3等に適用されてもよい。そして、例えば、情報処理装置が備える制御部が本発明における手段として機能することにより、制御部が、ディスプレイ等の表示手段により、本発明に係る検索結果を提示させてもよい。この場合、表示手段は、情報処理装置に備えられていてもよい。または、表示手段は、情報処理装置とは別個の装置であってもよい。