(57)【要約】【課題】貸出対象物の滞留を防ぎ、在庫の有効活用が可能な貸出管理装置を提供する。【解決手段】同時に複数の対象物の貸し出しを希望する場合に当該対象物を識別する対象ＩＤを複数指定できる依頼情報を受け付ける受付部と、依頼情報を識別する予約ＩＤと依頼情報が指定する対象ＩＤと対象ＩＤにより識別される対象物の確保予定日とを有する予約情報を記憶した予約情報記憶部から前記依頼情報が有する対象ＩＤを用いて予約情報を検索する第１の検索部と、第１の検索部により取得した予約情報が示す予約ＩＤを用いて予約情報記憶部から予約情報を検索する第２の検索部と、第２の検索部により取得した予約情報が示す確保予定日と第１の検索部により取得した予約情報が示す確保予定日との差分に基づいて、第１の検索部により検索された予約情報が示す対象物を、依頼情報が示す予約に割り当てても良いかどうかを判定する。【選択図】図１
2010231563.tif 000002
【特許請求の範囲】
【請求項１】
貸出管理装置であって、
貸し出しを依頼する対象物を識別する対象ＩＤを有する依頼情報であって、同時に複数の対象物の貸し出しを希望する場合に当該対象物を識別する対象ＩＤを複数指定できる前記依頼情報を受け付ける、依頼受付部と、
前記依頼情報を識別する予約ＩＤと、当該依頼情報が有する対象ＩＤと、当該対象ＩＤにより識別される対象物の貸し出しが可能な日付を示す確保予定日と、を有する前記予約情報であって、前記依頼情報に対象ＩＤが複数個指定された場合に相互に関連付けられた予約ＩＤを有する前記予約情報が記憶される、予約情報記憶部と、
前記依頼情報が有する対象ＩＤにより識別される対象物の貸し出しの予約を登録する際に、前記予約情報記憶部に記憶されている予約情報を、前記依頼情報が有する対象ＩＤを用いて検索する、第１の検索部と、
前記第１の検索部により検索された予約情報が有する予約ＩＤを用いて、前記予約情報記憶部に記憶されている予約情報を検索する、第２の検索部と、
前記第２の検索部により検索された予約情報が示す確保予定日と、前記第１の検索部により検索された予約情報が示す確保予定日と、の差分に基づいて、前記第１の検索部により検索された予約情報が示す対象ＩＤにより識別される対象物を、前記依頼受付部により受け付けられた依頼情報に示される予約に割り当てても良いかどうかを判定する、割当可否判定部と、
前記判定部の判定結果に基づいて、前記依頼情報を送信した利用者へ、貸出依頼の結果を送信する、結果送信部と、
を有する、貸出管理装置。
【請求項２】
貸出管理装置において用いられる貸出管理方法であって、
貸し出しを依頼する対象物を識別する対象ＩＤを有する依頼情報であって、同時に複数の対象物の貸し出しを希望する場合に当該対象物を識別する対象ＩＤを複数指定できる前記依頼情報を受け付ける依頼受付工程と、
前記受信した依頼情報が有する対象ＩＤにより識別される対象物の貸し出しの予約を登録する際に、前記依頼情報を識別する予約ＩＤと、当該依頼情報が有する対象ＩＤと、当該対象ＩＤにより識別される対象物の貸し出しが可能な日付を示す確保予定日と、を有する予約情報であって、前記依頼情報に対象ＩＤが複数個指定された場合に相互に関連付けられた予約ＩＤを有する前記予約情報が記憶された予約情報記憶部から、前記予約情報記憶部に記憶されている予約情報を、前記依頼情報が有する対象ＩＤを用いて検索する、第１の検索工程と、
前記第１の検索工程により検索された予約情報が有する予約ＩＤを用いて、前記予約情報記憶部に記憶されている予約情報を検索する、第２の検索工程と、
前記第２の検索工程により検索された予約情報が示す確保予定日と、前記第１の検索工程により検索された予約情報が示す確保予定日と、の差分に基づいて、前記第１の検索工程により検索された予約情報が示す対象ＩＤにより識別される対象物を、前記依頼受付工程により受け付けられた依頼情報に示される予約に割り当てても良いかどうかを判定する、判定工程と、
前記判定工程の判定結果に基づいて、前記依頼情報を送信した利用者へ、貸出依頼の結果を送信する、結果送信工程と、
を有する、貸出管理方法。
【請求項３】
貸出管理プログラムであって、
コンピュータを、
貸し出しを依頼する対象物を識別する対象ＩＤを有する依頼情報であって、同時に複数の対象物の貸し出しを希望する場合に当該対象物を識別する対象ＩＤを複数指定できる前記依頼情報を受け付ける、依頼受付部と、
前記依頼情報を識別する予約ＩＤと、当該依頼情報が有する対象ＩＤと、当該対象ＩＤにより識別される対象物の貸し出しが可能な日付を示す確保予定日と、を有する前記予約情報であって、前記依頼情報に対象ＩＤが複数個指定された場合に相互に関連付けられた予約ＩＤを有する前記予約情報が記憶される、予約情報記憶部と、
前記依頼情報が有する対象ＩＤにより識別される対象物の貸し出しの予約を登録する際に、前記予約情報記憶部に記憶されている予約情報を、前記依頼情報が有する対象ＩＤを用いて検索する、第１の検索部と、
前記第１の検索部により検索された予約情報が有する予約ＩＤを用いて、前記予約情報記憶部に記憶されている予約情報を検索する、第２の検索部と、
前記第２の検索部により検索された予約情報が示す確保予定日と、前記第１の検索部により検索された予約情報が示す確保予定日と、の差分に基づいて、前記第１の検索部により検索された予約情報が示す対象ＩＤにより識別される対象物を、前記依頼受付部により受け付けられた依頼情報に示される他の予約に割り当てても良いかどうかを判定する、判定部と、
前記判定部の判定結果に基づいて、前記依頼情報を送信した利用者へ、貸出依頼の結果を送信する、結果送信部と、
を有する貸出管理装置として動作させる貸出管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願に開示の発明は、貸出物を管理するシステムに関する。
【背景技術】
【０００２】
特許文献１には、利用者に対する貸出物の貸し出しに係る情報を管理する貸出情報管理装置が開示されている。この貸出情報管理装置は、貸出物が返却される返却予定日に係る情報に基づいて利用者に貸出物を所定の順序にしたがって貸し出す貸出スケジュールを作成する貸出スケジュール作成工程と、その貸出スケジュール作成工程により作成された貸出スケジュールを出力する貸出スケジュール出力工程と、を実行する。
【０００３】
特許文献１によると、貸出物が返却される返却予定日に係る情報に基づいて、利用者に貸出物を所定の順序にしたがって貸し出す貸出スケジュールを作成し、作成された貸出スケジュールを出力することにより、利用者が複数の貸出物を所定の順序で容易に借り受けることができるスケジュールを利用者に提供することができる、とされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３１９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の利用者から同一の対象物に対して貸出の予約を受け付けた場合、例えば、予約を受け付けた順番に従って対象物の在庫を割り当てる処理が、一般的に行なわれる。そして、在庫が足りない場合には、貸し出した対象物が返却される等して在庫が確保できるまで、貸し出しの予約をした利用者は予約を受け付けた順番に対象物の貸出を待たされる。
【０００６】
ところが、予約を受け付けた順番に従って一律に在庫の割当を行なった場合、対象物の滞留を生じ、在庫の有効活用が充分でない事態が生じることがある。例えば、上巻と下巻などの分冊形式の書籍やＤＶＤソフトなど、複数の貸出対象物を同時にまとめて利用する場合、全ての貸出対象物が貸し出し可能な状態になるまで、その予約のために確保された一部の対象物は、他の予約に割り当てられることなく、滞留することになる。
【０００７】
そこで、本願に開示の発明は、貸し出しの依頼に対する貸出対象物の割当を最適化することにより、対象物の滞留を防ぎ、在庫の有効活用が可能な貸出管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願に開示の貸出管理装置は、貸し出しを依頼する対象物を識別する対象ＩＤを有する依頼情報であって、同時に複数の対象物の貸し出しを希望する場合に当該対象物を識別する対象ＩＤを複数指定ができる前記依頼情報を受け付ける依頼受付部と、前記依頼情報を識別する予約ＩＤと、当該依頼情報が有する対象ＩＤと、当該対象ＩＤにより識別される対象物の貸し出しが可能な日付を示す確保予定日と、を有する予約情報であって、前記依頼情報に対象ＩＤが複数個指定された場合に相互に関連付けられた予約ＩＤを有する前記予約情報が記憶される予約情報記憶部と、前記依頼情報が有する対象ＩＤにより識別される対象物の貸し出しの予約を登録する際に、前記予約情報記憶部に記憶されている予約情報を、前記依頼情報が有する対象ＩＤを用いて検索する第１の検索部と、前記第１の検索部により検索された予約情報が有する予約ＩＤを用いて、前記予約情報記憶部に記憶されている予約情報を検索する第２の検索部と、前記第２の検索部により検索された予約情報が示す確保予定日と、前記第１の検索部により検索された予約情報が示す確保予定日と、の差分に基づいて、前記第１の検索部により検索された予約情報が示す対象ＩＤにより識別される対象物を、前記依頼受付部により受け付けられた依頼情報に示される他の予約に割り当てても良いかどうかを判定する判定部と、前記判定部の判定結果に基づいて、前記依頼情報を送信した利用者へ、貸出依頼の結果を送信する結果送信部と、を有する。
【発明の効果】
【０００９】
本願に開示の発明によると、貸し出しの依頼に対する貸出対象物の割当が最適化され、対象物の滞留を防ぐことができる。その結果、在庫の有効活用が可能となる、という顕著な効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】システムの構成を示す図
【図２】システムの処理の流れを示す図
【図３】予約処理の流れを示す図
【図４】確保候補の検索処理の流れを示す図
【図５】仮確保候補日の取得処理の流れを示す図
【図６】予約情報のデータ構造を示す図
【図７】蔵書管理情報のデータ構造を示す図
【図８】仮予約情報のデータ構造を示す図
【図９】予約情報のデータ構造を示す図
【図１０】貸出情報のデータ構造を示す図
【図１１】予約情報の内容例を示す図
【図１２】図１１に示す予約情報の内容例に基づく確保候補の検索処理の概念を示す図
【発明を実施するための形態】
【実施例１】
【００１１】
〔１．本実施例のシステムの構成〕
図１は、本システムの構成を示す。図１に示す本システムは、貸出管理装置１００と、端末装置２００とを有する。
【００１２】
図１に示す貸出管理装置１００は、制御部１１０と、記憶部１２０と、通信部１３０とを有し、ネットワーク３００を介して、端末装置２００と通信することができる。
【００１３】
貸出管理装置１００の制御部１１０は、内部通信線（バス）を介して貸出管理装置１００のハードウェア各部と接続されており、プログラムの手順に従って所定の機能を実現する。制御部１１０は、例えば、記憶部１２０から読み込んだ命令を一時的に格納する命令レジスタ（Instruction Register）、命令レジスタに格納されている機械語命令（２進数）を解読しその命令に応じて貸出管理装置１００が有するハードウェア各部を制御する命令解読回路（Instruction Decoder）、命令解読回路からの制御に従って加算・減算・数値の比較などの演算を行なう演算回路（Arithmetic Logic Unit）、演算対象のデータや演算の結果などを一時的に格納するアキュムレータ（Accumulator）、制御部１１０が読み書きする記憶部１２０が有する記憶領域の番地を格納する番地レジスタ（Address Register）、次に実行するべき命令が格納されている記憶部１２０が有する記憶領域の番地を示すプログラムカウンタ（Program Counter）などで構成される。
【００１４】
貸出管理装置１００の制御部１１０は、依頼受付部Ｐ１１０と、第１の検索部Ｐ１２０と、第２の検索部Ｐ１３０と、割当可否判定部Ｐ１４０と、結果送信部Ｐ１５０を有する貸出管理プログラムを実行する。なお、記憶部１２０に貸出管理プログラムを格納しておき、制御部１１０は、記憶部１２０から貸出管理プログラムの命令コードなどを逐次読み出すことにより、貸出管理プログラムを実行するようにしてもよい。
【００１５】
依頼受付部Ｐ１１０は、貸し出しを依頼する対象物を識別する対象ＩＤを有する依頼情報であって、同時に複数の対象物の貸し出しを希望する場合に当該対象物を識別する対象ＩＤを複数有することができる前記依頼情報を受信する構成要素として、制御部１１０を動作させる。
【００１６】
第１の検索部Ｐ１２０は、前記依頼情報が有する対象ＩＤにより識別される対象物の貸し出しの予約を登録する際に、前記予約情報記憶部に記憶されている予約情報を、前記依頼情報が有する対象ＩＤを用いて検索する構成要素として、制御部１１０を動作させる。
【００１７】
第２の検索部Ｐ１３０は、前記第１の検索部により検索された予約情報が有する予約ＩＤを用いて、前記予約情報記憶部に記憶されている予約情報を検索する構成要素として、制御部１１０を動作させる。
【００１８】
割当可否判定部Ｐ１４０は、前記第２の検索部により検索された予約情報が示す確保予定日と、前記第１の検索部により検索された予約情報が示す確保予定日と、の差分に基づいて、前記第１の検索部により検索された予約情報が示す対象ＩＤにより識別される対象物を、前記依頼情報に示される他の予約に割り当てても良いかどうかを判定する構成要素として、制御部１１０を動作させる。
【００１９】
結果送信部Ｐ１５０は、前記判定部の判定結果に基づいて、前記依頼情報を送信した利用者へ、貸出依頼の結果を送信する構成要素として、制御部１１０を動作させる。
【００２０】
貸出管理装置１００の記憶部１２０は、蔵書管理情報Ｄ１１０、仮予約情報Ｄ１２０、予約情報Ｄ１３０、貸出情報Ｄ１４０などの制御部１１０の動作により生じたデータを記憶する。例えば、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）や、ＳＲＡＭ（Static Random Access Memory）などの半導体メモリや、ＨＤＤ（Hard Disk Drive）などの磁気記録装置や、ＳＳＤ（Solid State Disk）などの不揮発性半導体記憶装置を用いることができる。なお、記憶部１２０が記憶する蔵書管理情報Ｄ１１０の集合を蔵書管理情報ＤＢと呼ぶ。記憶部１２０が記憶する仮予約情報Ｄ１２０の集合を仮予約情報ＤＢと呼ぶ。記憶部１２０が記憶する予約情報Ｄ１３０の集合を予約情報ＤＢと呼ぶ。記憶部１２０が記憶する貸出情報Ｄ１４０の集合を貸出情報ＤＢと呼ぶ。
【００２１】
通信部１３０は、ネットワーク３００を介して端末装置２００と信号を送受信する。例えば、ネットワークインタフェースカードを用いて構成される。
【００２２】
図７は、蔵書管理情報Ｄ１１０のデータ構造を示す。図７に示す蔵書管理情報Ｄ１１０は、対象ＩＤ（Ｄ１１０１）と、蔵書数（Ｄ１１０２）と、貸出数（Ｄ１１０３）と、在庫数（Ｄ１１０４）を有する。
【００２３】
対象ＩＤ（１１０１）は、対象物を識別する情報を示す。例えば、図書館における貸出の対象物である本を識別する情報や、レンタルビデオ店における貸出の対象物であるレンタル用のＤＶＤソフトを識別する情報などが該当する。なお、対象ＩＤは、個別の対象物の１つずつを識別単位としてもよいし、題名などが同じ対象物をグループとしてそのグループを識別単位としてもよい。
【００２４】
蔵書数（Ｄ１１０２）は、対象ＩＤに対応する対象物について所蔵する個数を示す。例えば、個別の対象物の１つずつを識別単位とした場合、蔵書数は通常１になる。
【００２５】
貸出数（Ｄ１１０３）は、対象ＩＤに対応する対象物について貸し出し中の対象物の個数を示す。例えば、個別の対象物の１つずつを識別単位とした場合、蔵書数は通常１又は０になる。
【００２６】
在庫数（Ｄ１１０４）は、対象ＩＤに対応する対象物について貸出が可能な状態の個数を示す。すなわち、蔵書数（Ｄ１１０２）から貸出数（Ｄ１１０３）を減算した値となる。
【００２７】
図８は、仮予約情報Ｄ１２０のデータ構造を示す。図８に示す仮予約情報Ｄ１２０は、対象ＩＤ（Ｄ１２０１）と、確保予定日（Ｄ１２０２）と、更新予約ＩＤ（Ｄ１２０３）を有する。対象ＩＤ（Ｄ１２０１）は、対象物を識別する情報を示す。確保予定日（Ｄ１２０２）は、後述の工程Ｓ１０８の処理結果から取得される確保候補日の値を示す。更新予約ＩＤ（Ｄ１２０３）は、後述の工程Ｓ１０８の処理結果から取得される更新予約ＩＤを示す。
【００２８】
図９は、予約情報Ｄ１３０のデータ構造を示す。図９に示す予約情報Ｄ１３０は、予約ＩＤ（Ｄ１３０１）と、利用者ＩＤ（Ｄ１３０２）と、対象ＩＤ（Ｄ１３０３）と、確保予定日（Ｄ１３０４）を有する。予約ＩＤ（Ｄ１３０１）は、予約依頼情報Ｄ１００を識別する情報を示す。利用者ＩＤ（Ｄ１３０２）は、利用者を識別するための情報を示す。      
【００２９】
対象ＩＤ（Ｆ１３０３）は、予約された対象物を識別する情報を示す。確保予定日（Ｄ１３０４）は、予約された対象物が貸出可能な状態となる予定の日時を示す。すなわち、記憶部１２０は、予約受付部Ｐ１１０の工程により受け付けた依頼情報に基づいて登録された貸し出しの予約内容を示す予約情報であって、依頼情報を識別する予約ＩＤと、当該依頼情報が有する対象ＩＤと、当該対象ＩＤにより識別される対象物の貸し出しが可能な日付を示す確保予定日と、を有する予約情報が記憶される。なお、記憶部１２０に記憶される予約情報Ｄ１３０は、依頼情報Ｄ１００に対象ＩＤが複数個指定された場合、その対象ＩＤごとの対象物の確保予定日とその対象ＩＤとを組み合わせた情報セットが、相互に関連付けられた予約ＩＤを有する。例えば、同一の予約ＩＤを有する予約情報が、依頼情報に指定された対象ＩＤごとに記憶される。また、例えば、同一のＩＤ値に対して枝番を付して関連付けられた予約ＩＤを有する予約情報を、依頼情報に指定された対象ＩＤごとに記憶しても良い。
【００３０】
図１０は、貸出情報Ｄ１４０のデータ構造を示す。図１０に示す貸出情報Ｄ１４０は、利用者ＩＤ（Ｄ１４０１）と、対象ＩＤ（Ｄ１４０２）と、返却予定日（Ｄ１４０３）を有する。利用者ＩＤ（Ｄ１４０１）は、利用者を識別する情報を示す。対象ＩＤ（Ｄ１４０２）は、利用者へ貸し出されている対象物を識別する情報を示す。返却予定日（Ｄ１４０３）は、対象ＩＤで識別される対象物が返却される予定の日付を示す。
【００３１】
図１に示す端末装置２００は、制御部２１０と、記憶部２２０と、通信部２３０と、操作部２４０と、表示部２５０とを有し、ネットワーク３００を解して、貸出管理装置１００と通信することができる。端末装置２００は、例えば、パーソナルコンピュータや、携帯電話などである。
【００３２】
端末装置２００の制御部２１０は、内部通信線（バス）を介して貸出管理装置２００のハードウェア各部と接続されており、プログラムの手順に従って所定の機能を実現する。制御部２１０は、例えば、記憶部２２０から読み込んだ命令を一時的に格納する命令レジスタ（Instruction Register）、命令レジスタに格納されている機械語命令（２進数）を解読しその命令に応じて端末装置２００が有するハードウェア各部を制御する命令解読回路（Instruction Decoder）、命令解読回路からの制御に従って加算・減算・数値の比較などの演算を行なう演算回路（Arithmetic Logic Unit）、演算対象のデータや演算の結果などを一時的に格納するアキュムレータ（Accumulator）、制御部２１０が読み書きする記憶部２２０が有する記憶領域の番地を格納する番地レジスタ（Address Register）、次に実行するべき命令が格納されている記憶部２２０が有する記憶領域の番地を示すプログラムカウンタ（Program Counter）などで構成される。
【００３３】
端末装置２００の制御部２１０は、依頼入力部Ｐ２１０と、依頼情報送信部Ｐ２２０と、結果受信部Ｐ２３０と、結果表示部Ｐ２４０を有する端末プログラムを実行する。なお、記憶部２２０に端末プログラムを格納しておき、制御部２１０は、記憶部２２０から端末プログラムの命令コードなどを逐次読み出すことにより、端末プログラムを実行するようにしてもよい。
【００３４】
依頼入力部Ｐ２１０は、操作部２４０を用いて、貸し出しの依頼を受け付ける構成要素として、制御部２１０を動作させる。
【００３５】
依頼情報送信部Ｐ２２０は、依頼入力部Ｐ２１０の工程により入力を受けた依頼の内容を示す依頼情報を、通信部２３０を用いて、貸出管理装置１００へ送信する構成要素として、制御部２１０を動作させる。
【００３６】
結果受信部Ｐ２３０は、依頼情報送信部Ｐ２２０の工程により送信された依頼情報に示す依頼の結果を示す結果情報を、通信部２３０を用いて、貸出管理装置１００から受信する構成要素として、制御部２１０を動作させる。
【００３７】
結果表示部Ｐ２４０は、結果受信部Ｐ２３０の工程により受信された結果情報を、表示部２５０を用いて表示させる構成要素として、制御部２１０を動作させる。
【００３８】
なお、上述の端末プログラムは、例えば、一般的なＷｅｂブラウザを用いることができる。この場合、端末プログラムの各部は、貸出管理装置１００から受信したＨＴＭＬファイルにより描画されるＷｅｂブラウザ上の画面により実現することができる。
【００３９】
端末装置の記憶部２２０は、制御部２１０の動作により生じたデータを記憶する。例えば、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）や、ＳＲＡＭ（Static Random Access Memory）などの半導体メモリや、ＨＤＤ（Hard Disk Drive）などの磁気記録装置や、ＳＳＤ（Solid State Disk）などの不揮発性半導体記憶装置を用いることができる。
【００４０】
通信部２３０は、ネットワーク３００を介して端末装置２００と信号を送受信する。例えば、ネットワークインタフェースカードを用いて構成される。
【００４１】
操作部２４０は、利用者の操作を受付ける。操作部２４０は、利用者の操作に応じた信号を、内部通信線を介して制御部１１０へ出力する。例えば、キーボード装置や、マウスポインタ装置などを用いることができる。
【００４２】
表示部２５０は、制御部２１０からの制御命令に応じた情報を、液晶ディスプレイ装置などの表示装置に出力させる。なお、表示装置は、端末装置２００の内部に有する通信線を用いて端末装置２００と接続し端末装置２００と一体として構成しても良いし、Ｄ−Ｓｕｂ（D-Subminiature）１５ｐｉｎケーブル等を用いて端末装置２００と接続する構成としても良い。
【００４３】
〔２．本実施例のシステムの処理について〕
図２は、本システムの処理の流れを示す。まず、端末装置２００は、予約画面を要求する予約画面要求信号を、貸出管理装置１００に送信する（Ｓ００１）。
【００４４】
貸出管理装置１００は、予約画面要求信号を受信し、予約画面用のＨＴＭＬ文書ファイルを、端末装置２００へ送信する（Ｓ００２）。
【００４５】
端末装置２００は、貸出管理装置１００から送信された予約画面用のＨＴＭＬ文書ファイルを受信する。そして、端末装置２００は、予約依頼の入力操作を受け付ける予約画面を、受信したＨＴＭＬ文書ファイルに基づいて表示する（Ｓ００３）。
【００４６】
端末装置２００は、予約依頼の入力操作を受け、入力された予約依頼の内容を示す予約依頼情報を、貸出管理装置１００へ送信する（Ｓ００４）。
【００４７】
図６は、予約依頼情報Ｄ１００のデータ構造を示す。図６に示す予約依頼情報Ｄ１００は、利用者ＩＤ（Ｄ１００１）と、対象数（Ｄ１００２）と、対象ＩＤ（Ｄ１００３）を有する。利用者ＩＤ（Ｄ１００１）は、利用者を識別する情報を示す。対象数（Ｄ１００２）は、予約依頼情報Ｄ１００が有する対象ＩＤ（Ｄ１００３）の個数を示す。すなわち、予約依頼情報Ｄ１００は、対象ＩＤ（Ｄ１００３）を複数個有することができる。対象ＩＤ（Ｄ１００３）は、貸し出しの予約の対象となる対象物を識別する情報を示す。なお、対象ＩＤ（Ｄ１００３）は、個別の対象物の１つずつを識別単位としてもよいし、題名などが同じ対象物をグループとしてそのグループを識別単位としてもよい。
【００４８】
貸出管理装置１００は、端末装置２００から送信された予約依頼情報を受信する。そして、貸出管理装置１００は、受信した予約依頼情報に基づいて、予約処理を実行する（Ｓ００５）。
【００４９】
貸出管理装置１００は、予約処理の実行結果を示す予約結果を、端末装置２００へ送信する（Ｓ００６）。
【００５０】
端末装置２００は、貸出管理装置１００から送信された予約結果を受信する。そして、端末装置２００は、受信した予約結果に基づいて、予約結果を表示する予約結果画面を表示する。端末装置２００は、例えば、予約した貸出の対象物が確保できる予定日を予約結果として表示する。
【００５１】
以上の様にして、本システムにおいて予約処理が行なわれる。なお、複数の利用者から同一の対象物に対して貸出の予約を受け付けた場合、例えば、予約を受け付けた順番に従って対象物の在庫の割り当てを行なう。そして、在庫が足りない場合には、貸し出した対象物が返却される等して在庫が確保できるまで、貸し出しの予約をした利用者は対象物の貸出を待たされることになる。
【００５２】
本実施例は、工程Ｓ００５の予約処理において、貸し出しの予約に対する貸出対象物の割当を最適化することにより、対象物の滞留を防ぐ。
【００５３】
〔３．予約処理の流れについて〕
図３は、図２における工程Ｓ００５の予約処理の流れを示す。まず、貸出管理装置１００の制御部１１０は、予約処理において用いる各種変数に初期値を設定する（Ｓ１００）。制御部１１０は、例えば、現在の日時を用いて、変数「仮確保日」を初期化する。
【００５４】
制御部１１０は、通信部１３０を用いて端末装置２００から受信した予約依頼情報に基づいて、ループ処理を開始する（Ｓ１０１）。ここで、変数ｉは、ループ処理が一巡する毎に１を加算して更新されるループ変数である。ここで、変数ｍは、予約依頼情報が有する対象ＩＤの要素数が設定される。これにより、予約依頼情報が有する全ての対象ＩＤについて、ループ処理が実行される。
【００５５】
制御部１１０は、予約依頼が有する対象ＩＤのうち、ループ変数ｉで特定される対象ＩＤを取得する（Ｓ１０２）。例えば、初回ループの場合、ループ変数ｉの値は１であるため、予約依頼情報が有する対象ＩＤ配列の１番目の要素に格納されている対象ＩＤが取得される。
【００５６】
制御部１１０は、蔵書管理情報Ｄ１１０を参照して、対象ＩＤに対応する在庫状況を取得する（Ｓ１０３）。
【００５７】
制御部１１０は、取得した在庫状況に基づいて、予約依頼に割当てる在庫が存在するかどうかを判定する（Ｓ１０４）。制御部１１０は、予約依頼に割当てる在庫が存在すると判定した場合（Ｓ１０４でＹＥＳ）、工程Ｓ１０５以降を実行する。一方、制御部１１０は、予約依頼に割当てる在庫が存在しないと判定した場合（Ｓ１０４でＮＯ）、工程Ｓ１０８以降を実行する。
【００５８】
制御部１１０は、例えば、対象ＩＤに対応する在庫数（Ｄ１１０４）が１以上である場合、予約依頼に割当てる在庫が存在すると判定することができる（Ｓ１０４でＹＥＳ）。一方、制御部１１０は、例えば、対象ＩＤに対応する在庫数（Ｄ１１０４）が０である場合、予約依頼に割当てる在庫が存在しないと判定することができる（Ｓ１０４でＮＯ）。
【００５９】
制御部１１０は、予約依頼に割当てる在庫が存在すると判定した場合（Ｓ１０４でＹＥＳ）、工程Ｓ１０５以降を実行する。すなわち、制御部１１０は、対象ＩＤにより特定される貸出対象物についての仮予約情報Ｄ１２０を作成する（Ｓ１０５）。図８は、仮予約情報Ｄ１２０のデータ構造の例を示す。図８に示す仮予約情報Ｄ１２０は、対象ＩＤ（Ｄ１２０１）と、確保予定日（Ｄ１２０２）と、更新予約ＩＤ（Ｄ１２０３）とを有する。
【００６０】
工程Ｓ１０５において、制御部１１０は、工程Ｓ１０２において取得した対象ＩＤ（Ｄ１２０１）と、例えば現在の日時（Ｄ１２０２）と、を用いて仮予約情報Ｄ１２０を作成する。なお、工程Ｓ１０４において制御部１１０が予約依頼に割当てる在庫が存在すると判定した場合（Ｓ１０４でＹＥＳ）、工程Ｓ１０５において制御部１１０は、仮予約情報１２０の更新予約ＩＤ（Ｄ１２０３）に何も値を設定しなくて良い。すなわち、この場合（Ｓ１０４でＹＥＳ）には、既登録の予約情報Ｄ１３０の確保予定日（Ｄ１３０４）を変更しなくてもよいため、更新予約ＩＤの値を設定する必要がない。
【００６１】
つぎに、制御部１１０は、ループ処理の終了条件を満たすか否か判定する（Ｓ１０６）。制御部１１０は、ループ処理の終了条件を満たすと判定した場合は、ループ処理を終了し、工程Ｓ１０７を実行する。一方、制御部１１０は、ループ処理の終了条件を満たさないと判定した場合は、ループ変数を更新し、工程Ｓ１０２以降の処理を実行する。
【００６２】
制御部１１０は、ループ変数ｉと予約依頼情報が有する対象ＩＤの要素数とを比較し、例えば、ループ変数ｉの値が予約依頼情報が有する対象ＩＤの要素数を超える場合、ループ処理の終了条件を満たすと判定し、ループ処理を終了する。そして、工程Ｓ１０５において作成した仮予約情報を用いて、予約情報（Ｄ１２０）を、予約情報ＤＢへ登録する(Ｓ１０７)。なお、ループ処理（Ｓ１０１乃至Ｓ１０６）において予約依頼情報が有する対象ＩＤの全てに対して上述の一連の処理を実行することができればよく、その趣旨の範囲でループ処理の終了条件は適宜変更することができる。
【００６３】
一方、制御部１１０は、ループ変数ｉと予約依頼情報が有する対象ＩＤの要素数とを比較し、例えば、ループ変数ｉの値が予約依頼情報が有する対象ＩＤの要素数以下である場合、ループ処理の終了条件を満たさないと判定し、例えば、ループ変数の値に１を加算して更新し、工程Ｓ１０２以降の処理を実行する。
【００６４】
工程Ｓ１０４において、制御部１１０は、予約依頼に割当てる在庫が存在しないと判定した場合（Ｓ１０４でＮＯ）、確保候補の検索処理を実行し（Ｓ１０８）、工程Ｓ１０８の実行結果から確保候補日を取得し（Ｓ１０９）、工程Ｓ１０８の実行結果から更新予約ＩＤを取得する（Ｓ１１０）。なお、確保候補の検索処理（Ｓ１０８）の具体的な処理内容は、図４を用いて後述する。
【００６５】
制御部１１０は、工程Ｓ１０９で取得した確保候補日と仮確保日とを比較し、確保候補日が仮確保日を越えるかどうかを判定する（Ｓ１１１）。ここで、仮確保日は、予約依頼情報が有する複数の対象ＩＤについて、工程Ｓ１０８に示す確保候補の検索処理により取得した確保候補日のうち、最も遅い日時を示す。なお、仮確保日は、一回目の実行の際には、工程Ｓ１００に示す初期化処理により設定された初期値として、例えば、現在の日時が設定されている。
【００６６】
制御部１１０は、確保候補日が仮確保日を越えると判定した場合（Ｓ１１１でＹＥＳ）、工程Ｓ１１２以降の処理を実行する。一方、制御部１１０は、確保候補日が仮確保日を越えないと判定した場合（Ｓ１１１でＮＯ）、工程Ｓ１０５以降の処理を実行する。
【００６７】
工程Ｓ１１２において、制御部１１０は、確保候補日を用いて、仮確保日を更新する。そして、制御部１１０は、ループ変数ｉの値を参照し、ループ変数ｉの値が１を超えるかどうかを判定する（Ｓ１１３）。すなわち、工程Ｓ１１３において、制御部１１０は、ループ処理（Ｓ１０１乃至Ｓ１０６）における１回目の処理であるかどうかを判定する。ループ処理（Ｓ１０１乃至Ｓ１０６）における１回目の処理であるかどうかを判定する趣旨の範囲において、工程Ｓ１１３の判定処理における判定条件を適宜変更してもよい。
【００６８】
工程Ｓ１１３において、制御部１１０は、ループ変数ｉの値が１を超えないと判定した場合（Ｓ１１３でＮＯ）、後述の工程Ｓ１０５以降の処理を実行する。一方、工程Ｓ１１３において、制御部１１０は、ループ変数ｉの値が１を超えると判定した場合（Ｓ１１３でＹＥＳ）、ループ処理を終了し（Ｓ１１４）、工程Ｓ１０１に戻ってループ処理を新規に開始する。すなわち、ループ変数ｉに初期値を設定し、工程Ｓ１０２以降の処理を実行する。ここで、仮確保日は、新規に開始した工程Ｓ１０１以降のループ処理において、工程Ｓ１１２で設定された値を保持する。また、新規に開始した工程Ｓ１０１以降のループ処理において、仮予約情報は全て保持されていない。
【００６９】
一方、制御部１１０は、確保候補日が仮確保日を越えないと判定した場合（Ｓ１１１でＮＯ）、工程Ｓ１０５以降の処理を実行する。工程Ｓ１０５において、制御部１１０は、工程Ｓ１０２において取得した対象ＩＤ（Ｄ１２０１）と、工程Ｓ１０９において取得した確保候補日と、工程Ｓ１１０において取得した更新予約ＩＤと、を用いて仮予約情報Ｄ１２０を作成する。そして、同様にして、工程Ｓ１０６以降の処理を実行する。
【００７０】
なお、工程Ｓ１０７において、制御部１１０は、検索依頼情報が有する対象ＩＤの要素数に対応する仮予約情報を用いて、予約情報の登録処理を実行する。
【００７１】
工程Ｓ１０７において、制御部１１０は、仮予約情報Ｄ１２０に示される対象ＩＤ（Ｄ１２０１）と、確保予定日（Ｄ１２０２）とを用いて、予約情報Ｄ１３０の対象ＩＤ（Ｄ１３０３）と確保予定日（Ｄ１３０４）を設定する。
【００７２】
工程Ｓ１０７において、制御部１１０は、予約依頼情報Ｄ１００を識別する識別情報を生成し、その識別情報を用いて、予約情報Ｄ１３０の予約ＩＤ（Ｄ１３０１）を設定する。すなわち、予約依頼情報Ｄ１００が複数個の対象ＩＤ（Ｄ１００３）を有する場合、各対象ＩＤについての予約情報Ｄ１３０は同じ値の予約ＩＤ（Ｄ１３０１）が設定される。
【００７３】
工程Ｓ１０７において、制御部１１０は、予約依頼情報Ｄ１００に示される利用者ＩＤ（Ｄ１００１）を用いて、予約情報Ｄ１３０の利用者ＩＤ（Ｄ１３０２）を設定する。
【００７４】
工程Ｓ１０７において、制御部１１０は、仮予約情報Ｄ１２０の更新予約ＩＤ（Ｄ１２０３）と、仮予約情報Ｄ１２０の対象ＩＤ（Ｄ１２０１）とを用いて、予約情報Ｄ１３０を検索し、該当する予約情報Ｄ１２０の確保予定日（Ｄ１３０４）を、仮確保日に貸し出し日数を加算した値を用いて更新する。なお、工程Ｓ１０７において、制御部１１０は、仮予約情報Ｄ１２０の更新予約ＩＤ（Ｄ１２０３）に値が設定されていない場合は、既登録の予約情報Ｄ１３０に対する確保予定日（Ｄ１３０４）の更新処理を実行しなくてよい。すなわち、この場合は、対象物に対する既登録の予約情報Ｄ１３０が存在しないか、又は、在庫から割当が可能であるため、既登録の予約情報Ｄ１３０に対する更新処理は必要ないからである。
【００７５】
さらに、工程Ｓ１０７において、制御部１１０は、仮予約情報Ｄ１２０の内容に基づいて、蔵書管理情報Ｄ１１０の更新を行なっても良い。例えば、制御部１１０は、仮予約情報Ｄ１２０の対象ＩＤを用いて蔵書管理情報Ｄ１１０を検索し、該当する蔵書管理情報Ｄ１１０の在庫数（Ｄ１１０４）の値が１以上であれば、該当する蔵書管理情報Ｄ１１０の在庫数（Ｄ１１０４）の値から１を減じる更新処理を行なう（Ｓ１０７）。
【００７６】
〔４．確保候補の検索処理の流れについて〕
図４は、図３における工程Ｓ１０８の確保候補の検索処理の流れを示す。まず、制御部１１０は、確保候補の検索処理において用いる各種変数に初期値を設定する（Ｓ２００）。制御部１１０は、例えば、変数「確保候補日」の値を、任意の初期値を用いて初期化する。ここで、変数「確保候補日」の初期値は、後述のループ処理（Ｓ２０３乃至Ｓ２０９）における１回目の処理において、後述の工程Ｓ２０７が必ず実行される値であれば、どのような値でもよい。なお、後述の工程Ｓ２０６の判定処理において、後述のループ処理における１回目の処理のときには必ず真として判定（Ｓ２０６でＹＥＳ）するようにした場合、変数「確保候補日」の初期値は、どのような値でも良い。
【００７７】
制御部１１０は、工程Ｓ１０２において取得した対象ＩＤを用いて、予約依頼と同一の貸出対象について登録されている予約情報Ｄ１３０を、予約情報ＤＢから検索する（Ｓ２０１）。
【００７８】
制御部１１０は、工程Ｓ２０１の検索処理を実行した結果に基づいて、予約情報があるかどうかを判定する（Ｓ２０２）。制御部１１０は、例えば、検索結果として取得した予約情報が１件以上存在する場合、予約情報があると判定し（Ｓ２０２でＹＥＳ）、工程Ｓ２０３以降の処理を実行する。一方、制御部１１０は、例えば、検索結果として取得した予約情報が０件であった場合、予約情報が存在しないと判定し（Ｓ２０２でＮＯ）、工程Ｓ２１０以降の処理を実行する。
【００７９】
工程Ｓ２１０において、制御部１１０は、工程Ｓ１０２で取得した対象ＩＤを用いて、予約依頼と同一の貸出対象について登録されている貸出情報Ｄ１４０を、貸出情報ＤＢから検索する（Ｓ２１０）。
【００８０】
そして、制御部１１０は、工程Ｓ２１０の検索処理により取得した貸出情報の返却予定日Ｄ１０３を用いて、確保候補日を設定する（Ｓ２１１）。工程Ｓ２１１を実行した後、制御部１１０は、図４に示す確保候補の検索処理を終了し、確保候補日及び更新予約ＩＤを工程Ｓ１０８の処理結果とする。ここで、更新予約ＩＤは、例えばｎｕｌｌ値や通常の予約ＩＤでは取り得ない値など、工程Ｓ２００において設定された初期値を示す。なお、工程Ｓ２１０において、複数の貸出情報Ｄ１４０を取得した場合、制御部１１０は、各貸出情報の返却予定日（Ｄ１０３）を参照し、最も早い日時を採用する。
【００８１】
工程Ｓ２０２において、制御部１１０は、予約情報があると判定した場合（Ｓ２０２でＹＥＳ）、工程Ｓ２０１で取得した予約情報に基づいて、ループ処理を開始する（Ｓ２０３）。ここで、変数ｊは、ループ処理が一巡する毎に１を加算して更新されるループ変数である。ここで、変数ｎは、工程Ｓ２０１で取得した予約情報の件数が設定される。これにより、工程Ｓ２０１で取得した全ての予約情報について、ループ処理が実行される。
【００８２】
制御部１１０は、工程Ｓ２０１で取得した予約情報のうち、ループ変数ｊで特定される予約情報を取得する（Ｓ２０４）。例えば、ループ回数が１回目の場合、ループ変数ｊの値は初期値の１であり、工程Ｓ２０１で取得した予約情報のうち１件目の予約情報が取得される。
【００８３】
制御部１１０は、工程Ｓ２０４で取得した予約情報に基づいて、予約情報に示される貸出対象物について最適化された貸出可能な日を示す仮確保候補日を取得する、仮確保候補日の取得処理を実行する（Ｓ２０５）。なお、仮確保候補日の取得処理（Ｓ２０５）の具体的な処理内容は、図５を用いて後述する。
【００８４】
つぎに、制御部１１０は、工程Ｓ２０５で取得した仮確保候補日と確保候補日とを比較し、仮確保候補日が確保候補日より前であるかどうかを判定する（Ｓ２０６）。ここで、確保候補日は、工程Ｓ２０１で取得した１件以上の予約情報について、工程Ｓ２０５に示す仮確保候補日の取得処理により取得した仮確保候補日のうち、最も早い日時を示す。なお、一回目の実行の際には、確保候補日は、工程Ｓ２００に示す初期化処理により設定された初期値を示す。そのため、ループ処理（Ｓ２０３乃至Ｓ２０９）における工程Ｓ２０６の一回目の実行の際には、工程Ｓ２０７が実行されるように制御する。
【００８５】
制御部１１０は、仮確保候補日が確保候補日より前であると判定された場合（Ｓ２０６でＹＥＳ）、仮確保候補日の値を用いて確保候補日を設定し（Ｓ２０７）、工程Ｓ２０４で取得した予約情報Ｄ１３０の予約ＩＤ（Ｄ１３０１）の値を用いて更新予約ＩＤを設定する（Ｓ２０８）。そして、制御部１１０は、ループ処理の終了条件を満たすか否か判定する（Ｓ２０９）。
【００８６】
制御部１１０は、ループ処理の終了条件を満たすと判定した場合は、ループ処理を終了し、図４に示す確保候補の検索処理を終了し、確保候補日及び更新予約ＩＤを工程Ｓ１０８の処理結果とする。一方、制御部１１０は、ループ処理の終了条件を満たさないと判定した場合は、ループ変数を更新し、工程Ｓ２０４以降の処理を実行する。ここで、確保候補日は、工程Ｓ２０４以降のループ処理において、工程Ｓ２０７で設定された値を保持する。
【００８７】
一方、工程Ｓ２０６において、制御部１１０は、仮確保候補日が確保候補日より前でないと判定された場合（Ｓ２０９でＮＯ）、工程Ｓ２０７を実行せずに、工程Ｓ２０９を実行する。
【００８８】
〔５．仮確保日の取得処理の流れについて〕
図５は、図４における工程Ｓ２０５の仮確保候補日の取得処理の流れを示す。まず、制御部１１０は、工程Ｓ２０４において取得された予約情報に示される予約ＩＤ（Ｄ１３０１）を用いて、対応する予約情報を、予約情報ＤＢから取得する（Ｓ３０１）。すなわち、一つの予約依頼情報に起因して登録された予約情報Ｄ１３０を、予約情報ＤＢから取得する。なお、対応する予約情報の取得は、工程Ｓ２０４において取得された予約情報に示される予約ＩＤ（Ｄ１３０１）と同一の予約ＩＤを有する予約情報を検索する処理でも良いし、同一のＩＤ値に対して枝番を付して関連付けられた予約ＩＤを有する予約情報を検索する処理でも良い。また、ここでは、説明の便宜上、工程Ｓ３０１で取得する予約情報を、同時貸出対象の予約情報と呼ぶ。また、工程Ｓ２０４において取得された予約情報を、貸出対象の予約情報と呼ぶ。
【００８９】
工程Ｓ３０１において、制御部１１０は、同時貸出対象として取得した予約情報から、貸出対象の予約情報が示す対象ＩＤ（Ｄ１３０２）と同じ値の対象ＩＤを有する予約情報を除外する。すなわち、制御部１１０は、同時貸出対象として取得した予約情報から、貸出対象の予約情報と重複する内容の予約情報を除外する（Ｓ３０１）。
【００９０】
制御部１１０は、工程Ｓ３０１において取得した予約情報に基づいて、同時貸出対象が存在するかどうかを判定する（Ｓ３０２）。制御部１１０は、例えば、工程Ｓ３０１において取得した予約情報が１件以上存在する場合、同時貸出対象が存在すると判定し（Ｓ３０２でＹＥＳ）、工程Ｓ３０３以降の処理を実行する。一方、制御部１１０は、例えば、工程Ｓ３０１において取得した予約情報が０件すなわち工程Ｓ３０１において該当する予約情報が存在しない場合、同時貸出対象が存在しないと判定し（Ｓ３０２でＮＯ）、工程Ｓ３０７以降の処理を実行する。
【００９１】
工程Ｓ３０７において、制御部１１０は、貸出対象の予約情報Ｄ１０３に示される確保予定日（Ｄ１３０３）の値に、貸出対象を貸し出す日数等の値を加算することにより、貸出対象の返却予定日を算出する。ここで、貸出対象を貸し出す日数等の値は、例えば７日間や１ヶ月間など、予め設定した値を用いることができる。また、端末装置２００は利用者が設定した値を予約依頼情報に追加して送信し、制御部１１０は、受信した予約依頼情報に示される設定値を参照することにより、貸出対象を貸し出す日数等の値を決定しても良い。
【００９２】
工程Ｓ３０７において、制御部１１０は、算出した返却予定日を用いて、仮確保候補日を設定する。そして、工程Ｓ３０７を実行した後、制御部１１０は、図５に示す仮確保候補日の取得処理を終了し、工程Ｓ３０７で設定した仮確保候補日の値を、工程Ｓ２０５の処理結果とする。
【００９３】
工程Ｓ３０２において、制御部１１０は、同時貸出対象が存在すると判定した場合（Ｓ３０２でＹＥＳ）、同時貸出対象のうち最も遅い確保予定日を特定する（Ｓ３０３）。工程Ｓ３０３において、制御部１１０は、例えば、工程Ｓ３０１で取得した同時貸出対象の予約情報に示される確保予定日（Ｄ１３０３）を順次比較し、最も遅い日時を示す確保予定日（Ｄ１３０３）を特定する。
【００９４】
つぎに、制御部１１０は、貸出対象の返却予定日と工程Ｓ３０３で特定した確保予定日とを比較し、工程Ｓ３０３で特定した確保予定日が貸出対象の返却予定日を越えるかどうかを判定する（Ｓ３０４）。ここで、貸出対象の返却予定日は、工程Ｓ３０７と同様に、貸出対象の予約情報Ｄ１０３に示される確保予定日（Ｄ１３０３）の値に、貸出対象を貸し出す日数等の値を加算した値となる。
【００９５】
工程Ｓ３０４において、制御部１１０は、工程Ｓ３０３で特定した確保予定日が貸出対象の返却予定日を越えると判定した場合（Ｓ３０４でＹＥＳ）、工程Ｓ３０５以降の処理を実行する。一方、制御部１１０は、工程Ｓ３０３で特定した確保予定日が貸出対象の返却予定日を越えないと判定した場合（Ｓ３０４でＮＯ）、工程Ｓ３０８以降の処理を実行する。
【００９６】
工程Ｓ３０８において、制御部１１０は、工程Ｓ３０３で特定した確保予定日の値に、同時貸出対象を貸し出す日数等の値を加算することにより、同時貸出対象の返却予定日を算出する。
【００９７】
工程Ｓ３０８において、制御部１１０は、算出した返却予定日を用いて、仮確保候補日を設定する。そして、工程Ｓ３０８を実行した後、制御部１１０は、図５に示す仮確保候補日の取得処理を終了し、工程Ｓ３０８で設定した仮確保候補日の値を、工程Ｓ２０５の処理結果とする。
【００９８】
工程Ｓ３０５において、制御部１１０は、仮確保日と貸出対象の確保予定日とを比較し、貸出対象の確保予定日が確保日を越えているか否かを判定する（Ｓ３０５）。ここで、仮確保日は、工程Ｓ１００において設定された初期値か、工程Ｓ１１２において設定された値を示す。
【００９９】
工程Ｓ３０５において、制御部１１０は、貸出対象の確保予定日が確保日を越えていると判定した場合（Ｓ３０５でＹＥＳ）、工程Ｓ３０６以降の処理を実行する。一方、制御部１１０は、貸出対象の確保予定日が確保日を越えていないと判定した場合（Ｓ３０５でＮＯ）、工程Ｓ３０９以降の処理を実行する。
【０１００】
工程Ｓ３０６において、制御部１１０は、貸出対象の確保予定日を用いて、仮確保候補日を設定する。そして、工程Ｓ３０６を実行した後、制御部１１０は、図５に示す仮確保候補日の取得処理を終了し、工程Ｓ３０６で設定した仮確保候補日の値を、工程Ｓ２０５の処理結果とする。
【０１０１】
工程Ｓ３０９において、制御部１１０は、返却予定日と同時貸出対象の確保予定日とを比較し、同時貸出対象の確保予定日が返却予定日を越えるかどうかを判定する。ここで、工程Ｓ３０９における返却予定日は、仮確保日に貸し出し日数等を加算した値を示す。ここで、同時貸出対象の確保予定日は、工程Ｓ３０３において特定された確保予定日の値を示す。
【０１０２】
工程Ｓ３０９において、制御部１１０は、同時貸出対象の確保予定日が返却予定日を越えると判定した場合（Ｓ３０９でＹＥＳ）、工程Ｓ３０６以降の処理を実行する。一方、制御部１１０は、同時貸出対象の確保予定日が返却予定日を越えないと判定した場合（Ｓ３０９でＮＯ）、工程Ｓ３１０以降の処理を実行する。
【０１０３】
工程Ｓ３１０において、制御部１１０は、同時貸出対象の確保予定日に貸し出し日数等を加算することにより、返却予定日を算出する。ここで、同時貸出対象の確保予定日は、工程Ｓ３０３において特定した確保予定日の値を示す。
【０１０４】
工程Ｓ３１０において、制御部１１０は、算出した返却予定日の値を用いて、仮確保候補日を設定する。そして、工程Ｓ３１０を実行した後、制御部１１０は、図５に示す仮確保候補日の取得処理を終了し、工程Ｓ３１０で設定した仮確保候補日の値を、工程Ｓ２０５の処理結果とする。
【０１０５】
〔６．本システムにおける予約処理の概念的説明〕
図１１は、予約情報ＤＢの内容例を示す。図１１に示す予約情報ＤＢは、４件の予約依頼情報Ｄ１００に起因して登録された予約情報の内容例を示す。図１１に示す例では、予約ＩＤ「１」と利用者ＩＤ「ａａ」を有する予約情報として対象ＩＤ「Ａ」と確保予定日「2009/03/13」を有する予約情報の１件のみが登録されている。
【０１０６】
図１１に示す例では、予約ＩＤ「２」と利用者ＩＤ「ｂｂ」を有する予約情報として、対象ＩＤ「Ａ」と確保予定日「2009/03/13」を有する予約情報と、対象ＩＤ「Ｂ」と確保予定日「2009/03/15」を有する予約情報と、の２件が登録されている。
【０１０７】
図１１に示す例では、予約ＩＤ「３」と利用者ＩＤ「ｃｃ」を有する予約情報として、対象ＩＤ「Ａ」と確保予定日「2009/03/13」を有する予約情報と、対象ＩＤ「Ｂ」と確保予定日「2009/03/21」を有する予約情報と、の２件が登録されている。
【０１０８】
図１１に示す例では、予約ＩＤ「４」と利用者ＩＤ「ｄｄ」を有する予約情報として、対象ＩＤ「Ａ」と確保予定日「2009/03/13」を有する予約情報と、対象ＩＤ「Ｂ」と確保予定日「2009/03/15」を有する予約情報と、対象ＩＤ「Ｃ」と確保予定日「2009/03/24」を有する予約情報と、の３件が登録されている。
【０１０９】
図１２は、図１１に示す予約情報の内容例に基づく対象物の貸し出しスケジュールを示す。図１２に示す例は、第一の予約依頼情報（Ｔ１０１）に起因した予約情報として、予約ＩＤ「１」と対象ＩＤ「Ａ」と確保予定日「３月１３日」を有する予約情報を示す。この例において、「●」印は確保予定日を示し、「○」印は返却予定日を示す。ここで、返却予定日は、貸し出し日数を７日間とした場合の例を示している。
【０１１０】
図１２に示す例は、第二の予約依頼情報（Ｔ１０２）に起因した予約情報として、予約ＩＤ「２」と対象ＩＤ「Ａ」と確保予定日「３月１３日」とを有する予約情報と、予約ＩＤ「２」と対象ＩＤ「Ｂ」と確保予定日「３月１５日」とを有する予約情報とを示す。この例において、「◎」印は予約情報に設定された確保予定日を示し、「●」印は同時貸出対象の全ての対象物が確保される確保予定日を示し、「○」印は返却予定日を示す。すなわち、図１２に示す例は、予約ＩＤ「２」と対象ＩＤ「Ａ」とを有する予約情報は確保予定日が３月１３日であるが、同時貸出対象である対象ＩＤ「Ｂ」の確保予定日である３月１５日まで、利用者への対象物の貸し出しが行なわれずに対象物が滞留することを示す。
【０１１１】
図１２に示す例は、第三の予約依頼情報（Ｔ１０３）に起因した予約情報として、予約ＩＤ「３」と対象ＩＤ「Ａ」と確保予定日「３月１３日」とを有する予約情報と、予約ＩＤ「３」と対象ＩＤ「Ｂ」と確保予定日「３月２１日」とを有する予約情報とを示す。この例において、「◎」印は予約情報に設定された確保予定日を示し、「●」印は同時貸出対象の全ての対象物が確保される確保予定日を示し、「○」印は返却予定日を示す。すなわち、図１２に示す例は、予約ＩＤ「３」と対象ＩＤ「Ａ」とを有する予約情報は確保予定日が３月１３日であるが、同時貸出対象である対象ＩＤ「Ｂ」の確保予定日である３月２１日まで、利用者への対象物の貸し出しが行なわれずに対象物が滞留することを示す。
【０１１２】
図１２に示す例は、第四の予約依頼情報（Ｔ１０４）に起因した予約情報として、予約ＩＤ「４」と対象ＩＤ「Ａ」と確保予定日「３月１３日」とを有する予約情報と、予約ＩＤ「４」と対象ＩＤ「Ｂ」と確保予定日「３月１５日」とを有する予約情報と、予約ＩＤ「４」と対象ＩＤ「Ｃ」と確保予定日「３月２４日」とを有する予約情報とを示す。この例において、「◎」印は予約情報に設定された確保予定日を示し、「●」印は同時貸出対象の全ての対象物が確保される確保予定日を示し、「○」印は返却予定日を示す。すなわち、図１２に示す例は、予約ＩＤ「４」と対象ＩＤ「Ａ」とを有する予約情報は確保予定日が３月１３日であり、予約ＩＤ「４」と対象ＩＤ「Ｂ」とを有する予約情報は確保予定日が３月１５日であるが、同時貸出対象である対象ＩＤ「Ｃ」の確保予定日である３月２４日まで、利用者への対象物の貸し出しが行なわれずに対象物が滞留することを示す。
【０１１３】
つぎに、図１２に示す例における予約処理の例を、次の条件に基づいて、説明する。まず、現時点は３月６日とする。予約依頼情報Ｄ１００が有する対象ＩＤ（Ｄ１０３）は「Ａ」のみとする。貸し出し日数は一律７日間とする。
【０１１４】
この場合、予約ＩＤ「１」の予約情報と、予約ＩＤ「２」の予約情報と、予約ＩＤ「３」の予約情報と、予約ＩＤ「４」の予約情報との４件が、工程Ｓ２０１において取得される。
【０１１５】
予約ＩＤ「１」の予約情報に基づく工程Ｓ２０５の処理結果は、３月２０日となる。すなわち、予約ＩＤ「１」の予約情報は、対象ＩＤ「Ａ」を有する予約情報のみであるため、同時貸出対象は存在せず、工程Ｓ３０７が実行される。工程Ｓ３０７において、予約ＩＤ「１」と対象ＩＤ「Ａ」とを有する予約情報が示す確保予定日「３月１３日」に、貸し出し日数「７日間」を加算することにより、処理結果「３月２０日」が算出される。
【０１１６】
予約ＩＤ「２」の予約情報に基づく工程Ｓ２０５の処理結果は、３月２２日となる。その根拠は次のとおりである。まず、予約ＩＤ「２」の予約情報は、対象ＩＤ「Ａ」を有する予約情報と、対象ＩＤ「Ｂ」を有する予約情報との２件となる。すなわち、工程Ｓ３０１において取得される同時貸出対象は対象ＩＤ「Ｂ」を有する予約情報の１件のみとなる。工程Ｓ３０４の判定処理において、制御部１１０は、対象ＩＤ「Ｂ」を有する予約情報が示す確保予定日「３月１５日」が、対象ＩＤ「Ａ」を有する予約情報が示す確保予定日「３月１３日」に基づく返却予定日「３月２０日」を越えないと判定し（Ｓ３０４でＮＯ）、工程Ｓ３０８を実行する。工程Ｓ３０８において、対象ＩＤ「Ｂ」を有する予約情報に示される確保予定日「３月１５日」に、貸し出し日数「７日間」を加算することにより、処理結果「３月２２日」が算出される。
【０１１７】
予約ＩＤ「３」の予約情報に基づく工程Ｓ２０５の処理結果は、３月１３日となる。その根拠は次のとおりである。まず、予約ＩＤ「３」の予約情報は、対象ＩＤ「Ａ」を有する予約情報と、対象ＩＤ「Ｂ」を有する予約情報との２件となる。すなわち、工程Ｓ３０１において取得される同時貸出対象は対象ＩＤ「Ｂ」を有する予約情報の１件のみとなる。工程Ｓ３０４の判定処理において、制御部１１０は、対象ＩＤ「Ｂ」を有する予約情報が示す確保予定日「３月２１日」が、対象ＩＤ「Ａ」を有する予約情報が示す確保予定日「３月１３日」に基づく返却予定日「３月２０日」を越えると判定し（Ｓ３０４でＹＥＳ）、工程Ｓ３０５を実行する。工程Ｓ３０５の判定処理において、制御部１１０は、対象ＩＤ「Ａ」を有する予約情報が示す確保予定日「３月１３日」が仮確保日「３月６日」を超えると判定し（Ｓ３０５でＹＥＳ）、工程Ｓ３０６を実行する。工程Ｓ３０６において、対象ＩＤ「Ａ」を有する予約情報に示される確保予定日「３月１３日」が仮確保候補日として設定され、設定された「３月１３日」が工程Ｓ２０５の処理結果となる。
【０１１８】
予約ＩＤ「４」の予約情報に基づく工程Ｓ２０５の処理結果は、３月１３日となる。その根拠は次のとおりである。まず、予約ＩＤ「４」の予約情報は、対象ＩＤ「Ａ」を有する予約情報と、対象ＩＤ「Ｂ」を有する予約情報と、対象ＩＤ「Ｃ」を有する予約情報との３件となる。すなわち、工程Ｓ３０１において取得される同時貸出対象は、対象ＩＤ「Ｂ」を有する予約情報と、対象ＩＤ「Ｃ」を有する予約情報との２件となる。工程Ｓ３０３において、制御部１１０は、最も遅い同時貸出対象の確保予定日として、対象ＩＤ「Ｃ」を有する予約情報の確保予定日「３月２４日」を特定する。そして、工程Ｓ３０４の判定処理において、制御部１１０は、対象ＩＤ「Ｃ」を有する予約情報が示す確保予定日「３月２４日」が、対象ＩＤ「Ａ」を有する予約情報が示す確保予定日「３月１３日」に基づく返却予定日「３月２０日」を越えると判定し（Ｓ３０４でＹＥＳ）、工程Ｓ３０５を実行する。工程Ｓ３０５において、制御部１１０は、対象ＩＤ「Ａ」を有する予約情報が示す確保予定日「３月１３日」が仮確保日「３月６日」を越えると判定し（Ｓ３０５でＹＥＳ）、工程Ｓ３０６を実行する。工程Ｓ３０６において、対象ＩＤ「Ａ」を有する予約情報に示される確保予定日「３月１３日」が仮確保候補日として設定され、設定された「３月１３日」が工程Ｓ２０５の処理結果となる。
【０１１９】
工程Ｓ１０８の処理結果は、上述の工程Ｓ２０５の処理結果に基づき、確保候補日が「３月１３日」となり、更新予約ＩＤが「３」又は「４」となる。すなわち、上述の工程Ｓ２０５の処理結果のうち最も早い日時を示す処理結果が、工程Ｓ１０８の処理結果となる。なお、工程Ｓ２０５の処理結果のうち最も早い日時を示す処理結果が複数存在する場合は、いずれか一つを任意に選択すればよい。
【０１２０】
工程Ｓ１０８の確保候補の検索処理により、既登録の予約情報Ｄ１０３のうち、滞留する可能性のある対象物を特定し、他の予約情報に割り当てることできる。
【０１２１】
また、図１２に示す例における予約処理の他の例を、次の条件に基づいて、説明する。まず、現時点は３月６日とする。予約依頼情報Ｄ１００が有する対象ＩＤ（Ｄ１０３）は「Ａ」と「Ｂ」の２件とする。貸し出し日数は一律７日間とする。
【０１２２】
まず、対象ＩＤ「Ａ」についての工程Ｓ１０８の処理結果は、上述と同様にして、３月１３日となる。工程Ｓ１１１において、制御部１１０は、確保候補日「３月１３日」が仮確保日「３月６日」を越えると判定し（Ｓ１１１でＹＥＳ）、工程１１２を実行する。ここで、仮確保日は、工程Ｓ１００において設定された初期値として現時点の日時「３月６日」を示す。工程Ｓ１１２において、制御部１１０は、確保候補日「３月１３日」を用いて、仮確保日の値を更新する。
【０１２３】
つぎに、対象ＩＤ「Ｂ」についての工程Ｓ１０８の処理結果は、上述の対象ＩＤ「Ａ」の例と同様にして、３月１５日となる。その根拠は次のとおりである。まず、工程Ｓ２０１において取得される予約情報は、予約ＩＤ「２」を有する予約情報と、予約ＩＤ「３」を有する予約情報と、予約ＩＤ「４」を有する予約情報と、の３件となる。
【０１２４】
予約ＩＤ「２」の予約情報に基づく工程Ｓ２０５の処理結果は、３月２２日である。対象ＩＤ「Ｂ」の予約情報に示される確保予定日「３月１５日」は、同時貸出対象である対象ＩＤ「Ａ」の予約情報に示される確保予定日「３月１３日」を越えるため、工程Ｓ３０４の判定処理においても判定条件が成立せず（Ｓ３０４でＮＯ）、工程Ｓ３０８が実行されるからである。
【０１２５】
予約ＩＤ「３」の予約情報に基づく工程Ｓ２０５の処理結果は、予約ＩＤ「２」の場合と同様にして、３月２８日である。対象ＩＤ「Ｂ」の予約情報に示される確保予定日「３月２１日」は、同時貸出対象である対象ＩＤ「Ａ」の予約情報に示される確保予定日「３月１３日」を越えるため、工程Ｓ３０４の判定処理においても判定条件が成立せず（Ｓ３０４でＮＯ）、工程Ｓ３０８が実行されるからである。
【０１２６】
予約ＩＤ「４」の予約情報に基づく工程Ｓ２０５の処理結果は、３月１５日である。まず、予約ＩＤ「４」の予約情報は、対象ＩＤ「Ａ」を有する予約情報と、対象ＩＤ「Ｂ」を有する予約情報と、対象ＩＤ「Ｃ」を有する予約情報との３件となる。すなわち、工程Ｓ３０１において取得される同時貸出対象は、対象ＩＤ「Ａ」を有する予約情報と、対象ＩＤ「Ｃ」を有する予約情報との２件となる。工程Ｓ３０３において、制御部１１０は、最も遅い同時貸出対象の確保予定日として、対象ＩＤ「Ｃ」を有する予約情報の確保予定日「３月２４日」を特定する。そして、工程Ｓ３０４の判定処理において、制御部１１０は、対象ＩＤ「Ｃ」を有する予約情報が示す確保予定日「３月２４日」が、対象ＩＤ「Ｂ」を有する予約情報が示す確保予定日「３月１５日」に基づく返却予定日「３月２２日」を越えると判定し（Ｓ３０４でＹＥＳ）、工程Ｓ３０５を実行する。工程Ｓ３０５において、制御部１１０は、対象ＩＤ「Ｂ」を有する予約情報が示す確保予定日「３月１５日」が仮確保日「３月１３日」を越えると判定し（Ｓ３０５でＹＥＳ）、工程Ｓ３０６を実行する。工程Ｓ３０６において、対象ＩＤ「Ｂ」を有する予約情報に示される確保予定日「３月１５日」が仮確保候補日として設定され、設定された「３月１５日」が工程Ｓ２０５の処理結果となる。
【０１２７】
対象ＩＤ「Ｂ」に対する工程Ｓ１０８の処理結果は、上述の工程Ｓ２０５の処理結果に基づき、３月１５日となる。すなわち、上述の工程Ｓ２０５の処理結果のうち最も早い日時を示す処理結果が、工程Ｓ１０８の処理結果となる。
【０１２８】
さらに、対象ＩＤ「Ｂ」に対する工程Ｓ１１１において、制御部１１０は、工程Ｓ１０８の処理結果から取得した確保候補日「３月１５日」が仮確保日「３月１３日」を越えると判定し（Ｓ１１１でＹＥＳ）、工程Ｓ１１２を実行する。ここで、対象ＩＤ「Ｂ」に対する工程Ｓ１１１における仮確保日は、対象ＩＤ「Ａ」に対する工程Ｓ１０８の処理結果から取得した確保候補日の値を用いて設定された値を示す。
【０１２９】
工程Ｓ１１２において、制御部１１０は、確保候補日「３月１５日」を用いて、仮確保日の値を更新する。すなわち、対象ＩＤ「Ｂ」に対する工程Ｓ１１１の実行に至るまでに最も遅い確保候補日とされていた日時が設定されている仮確保日を、対象ＩＤ「Ｂ」に対する工程Ｓ１０８の処理結果から取得した新たな確保候補日が越える場合に、その新たな確保候補日を用いて、仮確保日の値を更新する。
【０１３０】
そして、制御部１１０は、対象ＩＤ「Ｂ」に対する工程Ｓ１１３におけるループ変数ｉの値は２であるため、工程ＳＳ１１３の判定処理における判定条件が成立し（Ｓ１１３でＹＥＳ）、工程Ｓ１１４を実行する。すなわち、ループ処理が終了され、新規に処理Ｓ１０１が開始される。その際、仮確保日は「３月１５日」を示す。
【０１３１】
仮確保日が「３月１５日」を示す条件下において、対象ＩＤ「Ａ」についての工程Ｓ１０８の処理結果から得られる確保候補日は「３月１３日」であるが、更新予約ＩＤは「４」のみとなる。その根拠は、次のとおりである。まず、予約ＩＤ「３」に対する工程Ｓ３０３の処理において、最も遅い同時貸出対象の確保予定日として対象ＩＤ「Ｂ」の予約情報が示す確保予定日「３月２１日」が特定される。これは、上述の初回目のループ処理と同じ値である。したがって、工程Ｓ３０４における判定処理も同様に、制御部１１０は、対象ＩＤ「Ｂ」を有する予約情報が示す確保予定日「３月２１日」が、対象ＩＤ「Ａ」を有する予約情報が示す確保予定日「３月１３日」に基づく返却予定日「３月２０日」を越えると判定し（Ｓ３０４でＹＥＳ）、工程Ｓ３０５を実行する。すなわち、工程Ｓ３０４において、予約ＩＤ「３」の対象ＩＤ「Ａ」で識別される対象物は、同時貸出対象である対象ＩＤ「Ｂ」で識別される対象物が確保されるまで、他の利用者に貸出が可能であることが判定されている。
【０１３２】
ところが、工程Ｓ３０５の判定処理において、制御部１１０は、対象ＩＤ「Ａ」を有する予約情報が示す確保予定日「３月１３日」が仮確保日「３月１５日」を超えないと判定し（Ｓ３０５でＮＯ）、工程Ｓ３０９を実行する。さらに、工程Ｓ３０９において、仮確保日「３月１５日」に基づく返却予定日「３月２２日」が、対象ＩＤ「Ｂ」を有する予約情報が示す確保予定日「３月２１日」を越えると判定し（Ｓ３０９でＮＯ）、工程Ｓ３１０を実行する。ここで、仮確保日は、予約依頼情報が有する対象ＩＤ「Ｂ」についての工程Ｓ１０８の処理結果から取得した確保候補日の値を示す。工程Ｓ３１０において、対象ＩＤ「Ｂ」を有する予約情報に示される確保予定日「３月１５日」に基づく返却予定日「３月２２日」が仮確保候補日として設定され、設定された「３月２２日」が工程Ｓ２０５の処理結果となる。すなわち、予約依頼情報が有する同時貸出対象の対象ＩＤ「Ｂ」で識別される対象物を確保できる日が「３月１５日」であることを考慮すると、予約ＩＤ「３」に割り当てられた対象ＩＤ「Ａ」で識別される対象物を、予約ＩＤ「３」の同時貸出対象物を確保できる日までに返却することが困難であるため、工程Ｓ３０９の判定処理により、再割当の対象から除外している。工程Ｓ１０８の確保候補の検索処理において、工程Ｓ３０９の判定処理により、既登録の予約情報Ｄ１０３のうち、滞留する可能性のある対象物を特定し、他の予約情報に割り当てる際に、元の予約情報の確保日に与える影響を最小限に留めることができる。
【０１３３】
なお、上述の説明において、貸し出し日数を一律７日間とする例を説明したが、本実施例はこれに限定されない。例えば、利用者ごとの貸し出し履歴の記録を収集し、利用者ごとに収集した履歴に基づいて利用者の平均的な貸し出し日数を算出し、算出した貸し出し日数の平均値を用いて上述の処理を実行しても良い。また、対象物ごとの貸し出し履歴の記録を収集し、対象物ごとに収集した履歴に基づいて対象物の平均的な貸し出し日数を算出し、算出した貸し出し日数の平均値を用いて上述の処理を実行しても良い。
【０１３４】
また、利用者ごとに曜日ごとの貸し出し回数および／または返却回数の履歴を収集し、利用者ごとに収集した曜日ごとの貸し出し回数および／返却回数に基づいて、利用者が来訪する可能性の高い曜日を特定し、特定された曜日を考慮して貸し出し日数を決定しても良い。例えば、貸し出し日数の初期値が７日間であって、確保予定日に初期値を加算して算出された返却予定日が「月曜日」になる場合、利用者ごとに収集した曜日ごとの返却回数の多い曜日が「土曜日」であるとき、貸し出し日数を５日間に短縮して、その利用者が来訪する可能性の高い「土曜日」を返却予定日とするようにしてもよい。
【０１３５】
また、上述の実施例において説明した工程のうち、自動的に行なわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的に行なわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【０１３６】
さらに、本実施例に示す各装置にて行なわれる処理は、その全部または任意の一部が、ワイヤードロジックによるハードウェアとして実現され得る。
【図１】
2010231563.tif 000003
【図２】
2010231563.tif 000004
【図３】
2010231563.tif 000005
【図４】
2010231563.tif 000006
【図５】
2010231563.tif 000007
【図６】
2010231563.tif 000008
【図７】
2010231563.tif 000009
【図８】
2010231563.tif 000010
【図９】
2010231563.tif 000011
【図１０】
2010231563.tif 000012
【図１１】
2010231563.tif 000013
【図１２】
2010231563.tif 000014