(57)【特許請求の範囲】
【請求項１】
サーバと端末とから構成される情報処理システムであって、
前記端末は、主クエリを前記サーバへ送信し、
前記サーバは、前記主クエリを前記端末から受信し、前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信し、
前記端末は、前記複数の副クエリを前記サーバから受信し、前記複数の副クエリを前記順序で前記サーバへ送信し、
前記サーバは、前記端末から前記副クエリを受信するごとに前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記端末は、前記検索されたレコードを受信し、前記受信したレコードを前記順序に並べて表示し、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされ、前記端末によって前記順序に並べて表示される、
ことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記サーバは、前記サーバの負荷に基づいて、前記主クエリを分割して得られる前記副クエリの数を決定する、
ことを特徴とする情報処理システム。
【請求項３】
請求項１に記載の情報処理システムであって、
前記サーバは、前記主クエリを満たすレコードの数に基づいて、前記主クエリを分割して得られる前記副クエリの数を決定する、
ことを特徴とする情報処理システム。
【請求項４】
請求項３に記載の情報処理システムであって、
前記サーバは、前記主クエリを満たすレコードの数がしきい値以上であれば、前記複数の副クエリを前記端末に送信し、前記主クエリを満たすレコードの数が前記しきい値未満であれば、前記主クエリを満たすレコードを検索して前記端末へ送信する、
ことを特徴とする情報処理システム。
【請求項５】
請求項１に記載の情報処理システムであって、
前記サーバは、前記順序における最初の副クエリを満たすレコードを検索し、前記最初の副クエリにかえて、前記検索されたレコードを前記端末に送信し、前記最初の副クエリ以外の残りの副クエリを前記端末に送信し、
前記端末は、前記順序における残りの副クエリを前記順序で前記サーバへ送信する、
ことを特徴とする情報処理システム。
【請求項６】
請求項１に記載の情報処理システムであって、
前記サーバは、前記副クエリを満たすレコードを、前記ソート条件によりソートする、
ことを特徴とする情報処理システム。
【請求項７】
請求項１に記載の情報処理システムであって、
前記端末は、前記副クエリを満たすレコードを、前記ソート条件によりソートして表示する、
ことを特徴とする情報処理システム。
【請求項８】
請求項７に記載の情報処理システムであって、
前記端末は、前記端末の負荷に基づいて、前記主クエリを前記副クエリに分割するか否かを決定し、
前記サーバは、前記端末によって前記主クエリを前記副クエリに分割すると決定された場合に、前記主クエリを前記副クエリに分割する、
ことを特徴とする情報処理システム。
【請求項９】
請求項１に記載の情報処理システムであって、
前記サーバは、前記主クエリに含まれる検索条件を均等に分割することにより、前記主クエリを前記複数の副クエリに分割する、
ことを特徴とする情報処理システム。
【請求項１０】
請求項１に記載の情報処理システムであって、
前記レコードには、商品を受注した日時が含まれ、
前記検索条件には、前記日時の範囲を指定する条件が含まれ、
前記サーバは、前記商品を受注した数が多い時間帯ほど、分割数を多くして、前記主クエリに含まれる検索条件を前記複数の副クエリに分割する、
ことを特徴とする情報処理システム。
【請求項１１】
請求項１に記載の情報処理システムであって、
前記検索条件には、日時の範囲を指定する条件が含まれ、
前記サーバは、前記サーバへのアクセス数が多い時間帯ほど、分割数を多くして、前記主クエリに含まれる検索条件を前記複数の副クエリに分割する、
ことを特徴とする情報処理システム。
【請求項１２】
主クエリをサーバへ送信する送信部と、
前記主クエリをソート条件に基づく順序で分割した複数の副クエリを前記サーバから受信する受信部と、
を備える端末であって、
前記送信部は、前記複数の副クエリを前記順序で前記サーバへ送信し、
前記受信部は、前記サーバが前記副クエリを受信するごとに検索した前記副クエリを満たすレコードを前記サーバから受信し、
前記受信したレコードを前記順序に並べて表示する表示部を更に備え、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされ、前記表示部によって前記順序に並べて表示される、
ことを特徴とする端末。
【請求項１３】
主クエリを端末から受信する受信部と、
前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信する送信部と、
を備えるサーバであって、
前記受信部は、前記端末から前記順序で前記副クエリを受信し、
前記送信部は、前記端末から前記副クエリを受信するごとに、前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされる、
ことを特徴とするサーバ。
【請求項１４】
端末が主クエリをサーバへ送信する送信ステップと、
前記主クエリをソート条件に基づく順序で分割した複数の副クエリを前記端末が前記サーバから受信する受信ステップと、
を備え、
前記送信ステップでは、前記端末が前記複数の副クエリを前記順序で前記サーバへ送信し、
前記受信ステップでは、前記サーバが前記副クエリを受信するごとに検索した前記副クエリを満たすレコードを前記端末が前記サーバから受信し、
前記端末が前記受信したレコードを前記順序に並べて表示する表示ステップを更に備え、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされ、前記表示ステップにおいて前記順序に並べて表示される、
ことを特徴とする情報処理方法。
【請求項１５】
サーバが主クエリを端末から受信する受信ステップと、
前記サーバが前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信する送信ステップと、
を備え、
前記受信ステップでは、前記サーバが前記端末から前記順序で前記副クエリを受信し、
前記送信ステップでは、前記サーバが、前記端末から前記副クエリを受信するごとに、前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされる、
ことを特徴とする情報処理方法。
【請求項１６】
コンピュータを、
主クエリをサーバへ送信する送信部、
前記主クエリをソート条件に基づく順序で分割した複数の副クエリを前記サーバから受信する受信部、
として機能させ、
前記送信部は、前記複数の副クエリを前記順序で前記サーバへ送信し、
前記受信部は、前記サーバが前記副クエリを受信するごとに検索した前記副クエリを満たすレコードを前記サーバから受信し、
前記受信したレコードを前記順序に並べて表示する表示部を更に備え、
前記副クエリを満たすレコードは、前記サーバもしくは前記コンピュータによって前記ソート条件によりソートされ、前記表示部によって前記順序に並べて表示される、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
コンピュータを、
主クエリを端末から受信する受信部、
前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信する送信部、
として機能させ、
前記受信部は、前記端末から前記順序で前記副クエリを受信し、
前記送信部は、前記端末から前記副クエリを受信するごとに、前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記副クエリを満たすレコードは、前記コンピュータもしくは前記端末によって前記ソート条件によりソートされる、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１８】
コンピュータを、
主クエリをサーバへ送信する送信部、
前記主クエリをソート条件に基づく順序で分割した複数の副クエリを前記サーバから受信する受信部、
として機能させ、
前記送信部は、前記複数の副クエリを前記順序で前記サーバへ送信し、
前記受信部は、前記サーバが前記副クエリを受信するごとに検索した前記副クエリを満たすレコードを前記サーバから受信し、
前記受信したレコードを前記順序に並べて表示する表示部を更に備え、
前記副クエリを満たすレコードは、前記サーバもしくは前記コンピュータによって前記ソート条件によりソートされ、前記表示部によって前記順序に並べて表示される、
ことを特徴とするプログラム。
【請求項１９】
コンピュータを、
主クエリを端末から受信する受信部、
前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信する送信部、
として機能させ、
前記受信部は、前記端末から前記順序で前記副クエリを受信し、
前記送信部は、前記端末から前記副クエリを受信するごとに、前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記副クエリを満たすレコードは、前記コンピュータもしくは前記端末によって前記ソート条件によりソートされる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソートに関する負荷を分散してユーザの快適さを向上するために好適な情報処理システム、端末、サーバ、情報処理方法、記録媒体、ならびに、プログラムに関する。
【背景技術】
【０００２】
サーバが有するデータベースにデータが保存され、端末からの要求に応じてサーバがデータの検索や解析等を行う、クライアント−サーバ型のシステムがある。端末は、クエリと呼ばれる要求をサーバへ送信し、サーバは、そのクエリに対する応答を端末に返す。【０００３】
クエリには、例えば、検索条件に合致したレコードを抽出し、指定されたソート条件に基づいてレコードを並べ替える、といった内容の要求がある。サーバは、検索条件に基づいてレコードを抽出し、ソート条件に基づいてレコードを並べ替えて、端末に送信する。【０００４】
クライアント−サーバ型のシステムとして、特許文献１には、データベースのアクセスに必要なキー値への区分値の割り当て方を工夫した一括処理システムが開示されている。これによれば、同一ブロック内ではシーケンシャルアクセスが可能になり、高速に読み込みが行えるとされる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−００８７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、クライアント−サーバ型のシステムにおいて、クライアントからサーバへのクエリが集中したり、サーバにとっての負荷が大きいクエリがあったりすると、システム全体の応答が遅くなり、利用者の不満が募るおそれがある。特に、抽出したレコードをソートする際には、ソート用の記憶領域を必要とするが、システムへのアクセスが集中すると、この記憶領域を十分に用意できないため、応答が遅くなったり、失敗したりすることがある。また、クエリが集中する時期を予見することは難しいし、要求されるクエリがサーバにどの程度負担をかけることになるのかをクエリの実行前に見越しておくことは難しい。【０００７】
本発明は、以上のような事情に鑑みてなされたものであり、ソートに関する負荷を分散してユーザの快適さを向上するために好適な情報処理システム、端末、サーバ、情報処理方法、記録媒体、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の観点に係る情報処理システムは、
サーバと端末とから構成される情報処理システムであって、
前記端末は、主クエリを前記サーバへ送信し、
前記サーバは、前記主クエリを前記端末から受信し、前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信し、
前記端末は、前記複数の副クエリを前記サーバから受信し、前記複数の副クエリを前記順序で前記サーバへ送信し、
前記サーバは、前記端末から前記副クエリを受信するごとに前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記端末は、前記検索されたレコードを受信し、前記受信したレコードを前記順序に並べて表示し、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされ、前記端末によって前記順序に並べて表示される、
ことを特徴とする。【０００９】
前記サーバは、前記サーバの負荷に基づいて、前記主クエリを分割して得られる前記副クエリの数を決定してもよい。【００１０】
前記サーバは、前記主クエリを満たすレコードの数に基づいて、前記主クエリを分割して得られる前記副クエリの数を決定してもよい。【００１１】
前記サーバは、前記主クエリを満たすレコードの数がしきい値以上であれば、前記複数の副クエリを前記端末に送信し、前記主クエリを満たすレコードの数が前記しきい値未満であれば、前記主クエリを満たすレコードを検索して前記端末へ送信してもよい。【００１２】
前記サーバは、前記順序における最初の副クエリを満たすレコードを検索し、前記最初の副クエリにかえて、前記検索されたレコードを前記端末に送信し、前記最初の副クエリ以外の残りの副クエリを前記端末に送信し、
前記端末は、前記順序における残りの副クエリを前記順序で前記サーバへ送信してもよい。【００１３】
前記サーバは、前記副クエリを満たすレコードを、前記ソート条件によりソートしてもよい。【００１４】
前記端末は、前記副クエリを満たすレコードを、前記ソート条件によりソートして表示してもよい。【００１５】
前記端末は、前記端末の負荷に基づいて、前記主クエリを前記副クエリに分割するか否かを決定し、
前記サーバは、前記端末によって前記主クエリを前記副クエリに分割すると決定された場合に、前記主クエリを前記副クエリに分割してもよい。【００１６】
前記サーバは、前記主クエリに含まれる検索条件を均等に分割することにより、前記主クエリを前記複数の副クエリに分割してもよい。【００１７】
前記レコードには、商品を受注した日時が含まれ、
前記検索条件には、前記日時の範囲を指定する条件が含まれ、
前記サーバは、前記商品を受注した数が多い時間帯ほど、分割数を多くして、前記主クエリに含まれる検索条件を前記複数の副クエリに分割してもよい。【００１８】
前記検索条件には、日時の範囲を指定する条件が含まれ、
前記サーバは、前記サーバへのアクセス数が多い時間帯ほど、分割数を多くして、前記主クエリに含まれる検索条件を前記複数の副クエリに分割してもよい。【００１９】
本発明のその他の観点に係る端末は、
主クエリをサーバへ送信する送信部と、
前記主クエリをソート条件に基づく順序で分割した複数の副クエリを前記サーバから受信する受信部と、
を備え、
前記送信部は、前記複数の副クエリを前記順序で前記サーバへ送信し、
前記受信部は、前記サーバが前記副クエリを受信するごとに検索した前記副クエリを満たすレコードを前記サーバから受信し、
前記受信したレコードを前記順序に並べて表示する表示部を更に備え、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされ、前記表示部によって前記順序に並べて表示される、
ことを特徴とする。【００２０】
本発明のその他の観点に係るサーバは、
主クエリを端末から受信する受信部と、
前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信する送信部と、
を備え、
前記受信部は、前記端末から前記順序で前記副クエリを受信し、
前記送信部は、前記端末から前記副クエリを受信するごとに、前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされる、
ことを特徴とする。【００２１】
本発明のその他の観点に係る情報処理方法は、
端末が主クエリをサーバへ送信する送信ステップと、
前記主クエリをソート条件に基づく順序で分割した複数の副クエリを前記端末が前記サーバから受信する受信ステップと、
を備え、
前記送信ステップでは、前記端末が前記複数の副クエリを前記順序で前記サーバへ送信し、
前記受信ステップでは、前記サーバが前記副クエリを受信するごとに検索した前記副クエリを満たすレコードを前記端末が前記サーバから受信し、
前記端末が前記受信したレコードを前記順序に並べて表示する表示ステップを更に備え、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされ、前記表示ステップにおいて前記順序に並べて表示される、
ことを特徴とする。【００２２】
本発明のその他の観点に係る情報処理方法は、
サーバが主クエリを端末から受信する受信ステップと、
前記サーバが前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信する送信ステップと、
を備え、
前記受信ステップでは、前記サーバが前記端末から前記順序で前記副クエリを受信し、
前記送信ステップでは、前記サーバが、前記端末から前記副クエリを受信するごとに、前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記副クエリを満たすレコードは、前記サーバもしくは前記端末によって前記ソート条件によりソートされる、
ことを特徴とする。【００２３】
本発明のその他の観点に係るコンピュータ読み取り可能な記録媒体は、
コンピュータを、
主クエリをサーバへ送信する送信部、
前記主クエリをソート条件に基づく順序で分割した複数の副クエリを前記サーバから受信する受信部、
として機能させ、
前記送信部は、前記複数の副クエリを前記順序で前記サーバへ送信し、
前記受信部は、前記サーバが前記副クエリを受信するごとに検索した前記副クエリを満たすレコードを前記サーバから受信し、
前記受信したレコードを前記順序に並べて表示する表示部を更に備え、
前記副クエリを満たすレコードは、前記サーバもしくは前記コンピュータによって前記ソート条件によりソートされ、前記表示部によって前記順序に並べて表示される、
ことを特徴とする。【００２４】
本発明のその他の観点に係るコンピュータ読み取り可能な記録媒体は、
コンピュータを、
主クエリを端末から受信する受信部、
前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信する送信部、
として機能させ、
前記受信部は、前記端末から前記順序で前記副クエリを受信し、
前記送信部は、前記端末から前記副クエリを受信するごとに、前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記副クエリを満たすレコードは、前記コンピュータもしくは前記端末によって前記ソート条件によりソートされる、
ことを特徴とする。【００２５】
本発明のその他の観点に係るプログラムは、
コンピュータを、
主クエリをサーバへ送信する送信部、
前記主クエリをソート条件に基づく順序で分割した複数の副クエリを前記サーバから受信する受信部、
として機能させ、
前記送信部は、前記複数の副クエリを前記順序で前記サーバへ送信し、
前記受信部は、前記サーバが前記副クエリを受信するごとに検索した前記副クエリを満たすレコードを前記サーバから受信し、
前記受信したレコードを前記順序に並べて表示する表示部を更に備え、
前記副クエリを満たすレコードは、前記サーバもしくは前記コンピュータによって前記ソート条件によりソートされ、前記表示部によって前記順序に並べて表示される、
ことを特徴とする。【００２６】
本発明のその他の観点に係るプログラムは、
コンピュータを、
主クエリを端末から受信する受信部、
前記主クエリをソート条件に基づく順序で複数の副クエリに分割して前記端末へ送信する送信部、
として機能させ、
前記受信部は、前記端末から前記順序で前記副クエリを受信し、
前記送信部は、前記端末から前記副クエリを受信するごとに、前記副クエリを満たすレコードを検索し、前記検索されたレコードを前記端末へ送信し、
前記副クエリを満たすレコードは、前記コンピュータもしくは前記端末によって前記ソート条件によりソートされる、
ことを特徴とする。【００２７】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記記録媒体は、非一時的な記録媒体であってよく、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００２８】
本発明によれば、ソートに関する負荷を分散してユーザの快適さを向上することができる。
【図面の簡単な説明】
【００２９】
【図１】情報処理システムの構成の概要を示す図である。
【図２】情報処理サーバの構成を示す図である。
【図３】商品データベースに記憶される商品情報の例を示す図である。
【図４】受注リストデータベースに記憶される受注リストの例を示す図である。
【図５】販売者端末の構成を示す図である。
【図６Ａ】主クエリの例を示す図である。
【図６Ｂ】主クエリの例を示す図である。
【図６Ｃ】主クエリの例を示す図である。
【図７】主クエリと副クエリの例を示す図である。
【図８】検索条件とソート条件を指定する画面の例を示す図である。
【図９】検索結果を表示する画面の例を示す図である。
【図１０】詳細な検索結果を表示する画面の例を示す図である。
【図１１】第１の副クエリによる検索結果を表示する画面の例を示す図である。
【図１２】第１及び第２の副クエリによる検索結果を表示する画面の例を示す図である。
【図１３】第１及び第２及び第３の副クエリによる検索結果を表示する画面の例を示す図である。
【図１４】情報処理システムの機能的な構成を示す図である。
【図１５】実施形態１における検索処理の流れを説明するためのフローチャートである。
【図１６】検索処理の流れを説明するためのフローチャートの続きである。
【図１７】検索処理の流れを説明するためのフローチャートの続きである。
【図１８】実施形態２における検索処理の流れを説明するためのフローチャートである。
【図１９】実施形態３における検索処理の流れを説明するためのフローチャートである。
【図２０】特性テーブルの構成を示す図である。
【発明を実施するための形態】
【００３０】
本発明の実施形態を説明する。以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００３１】
（実施形態１）
まず、本実施形態の情報処理システム１の概要構成を、図１を用いて説明する。情報処理システム１は、インターネット上の仮想的なショッピングモール（電子ショッピングモール）を実現する。情報処理システム１は、情報処理サーバ１０と、電子ショッピングモールに出店する一つ以上の店舗に設置され、商品を販売する人が操作する販売者端末２０（図１では、販売者端末２０Ａ，２０Ｂ，２０Ｃの三つ）と、電子ショッピングモールで買い物をする人が操作する購入者端末３０（図１では、購入者端末３０Ａ，３０Ｂ，３０Ｃの三つ）と、通信ネットワーク５０と、から構成される。本実施形態では、通信ネットワーク５０はインターネットである。
【００３２】
情報処理サーバ１０は、複数の店舗が参加する電子ショッピングモールを管理する。情報処理サーバ１０は、電子ショッピングモールの管理者により管理される。電子ショッピングモールに参加する店舗の数は任意である。電子ショッピングモールでは、様々な商品とサービスが販売される。
【００３３】
以下において、説明の簡略化のため、商品とサービスをまとめて「商品」と呼び、商品には、例えばホテルの宿泊予約、オンラインチケット、音楽や映画等のデジタルコンテンツ、ソフトウェアの使用ライセンスなどの無形のサービス、等も含まれる。
【００３４】
情報処理サーバ１０は、店舗によって販売される商品に関する商品情報を記憶する商品情報データベースを有する。
【００３５】
商品情報は、購入者端末３０からアクセス可能なウェブページによって、購入者端末３０に提供される。ウェブページは、ＨＴＭＬ（HyperText Markup Language）データ、画像データ、音声データ等から構成される。ウェブページはＨＴＭＬ形式でなくてもよく、ＸＭＬ（Extensible Markup Language）形式、ＸＨＴＭＬ（Extensible HyperText Markup Language）形式などでもよい。あるいは、商品情報は、購入者端末３０に予めインストールされた、電子ショッピングモールから提供される専用のアプリケーションを用いて、購入者端末３０に提供されてもよい。
【００３６】
また、情報処理サーバ１０は、購入者端末３０を操作して商品を閲覧し購入する者（以下「購入者」という。）からの購入申し込みを受け付け、受注リストデータベースに記憶する。
【００３７】
販売者端末２０は、電子ショッピングモールで商品を販売する店舗に設置される。店舗の担当者（以下、「ユーザ」という。）は、販売者端末２０を操作して、自社が販売する商品を示す商品情報を商品情報データベースに登録する。
【００３８】
また、販売者端末２０は、ユーザによる操作に基づいて、商品の受注リストを情報処理サーバ１０から取得し、表示する。例えば、販売者端末２０は、ユーザから検索条件が指定されると、検索条件を含むクエリを情報処理サーバ１０へ送信する。情報処理サーバ１０は、検索結果を販売者端末２０へ送信する。販売者端末２０は、受信した検索結果を表示する。
【００３９】
購入者端末３０は、購入者によって操作される。購入者は、購入者端末３０を操作して情報処理サーバ１０にアクセスし、商品情報を閲覧し、商品の購入を申し込む。
【００４０】
通信ネットワーク５０は、情報処理サーバ１０と販売者端末２０と購入者端末３０とを互いに接続する。通信ネットワーク５０は、典型的にはインターネットであるが、電話回線、専用回線、ＬＡＮ（Local Area Network）などが含まれてもよい。
【００４１】
次に、情報処理サーバ１０のハードウェア構成について、図２を用いて説明する。情報処理サーバ１０は、記憶部２０１、通信部２０２、制御部２０３を備える。
【００４２】
記憶部２０１は、ハードディスク等の記憶装置から構成される。記憶部２０１には、電子ショッピングモールに出品されるすべての商品についての商品情報を記憶する商品データベース２５１と、購入者から購入申し込みを受け付けた商品のリストである受注リストを記憶する受注リストデータベース２５２と、を記憶する。
【００４３】
図３に、商品データベース２５１に記憶される商品情報の構成例を示す。商品データベース２５１には、商品を識別する商品コード、と対応付けて、商品名、店舗を識別する店舗コード、在庫数、販売価格等、商品の属性を示す様々なデータが記憶される。商品情報は、販売者端末２０あるいは情報処理サーバ１０によって、随時更新される。
【００４４】
図４に、受注リストデータベース２５２に記憶される受注リストの構成例を示す。受注リストデータベース２５２には、受注した日時と対応付けて、購入者を識別する購入者ＩＤ、商品コード、店舗コード、購入数等が記憶される。受注リストは、情報処理サーバ１０によって、随時更新される。受注リストには、住所、支払い方法の区別、支払い状況等の他の情報が記憶されてもよい。
【００４５】
通信部２０２は、ＮＩＣ（Network Interface Card）を備え、情報処理サーバ１０を通信ネットワーク５０に接続し、販売者端末２０や購入者端末３０と通信する。
【００４６】
制御部２０３は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等を備え、情報処理サーバ１０全体を制御する。
【００４７】
情報処理サーバ１０として、一般的なコンピュータサーバ、メインフレーム、クラウド型サーバなどを用いることができる。
【００４８】
次に、販売者端末２０のハードウェア構成について、図５を用いて説明する。販売者端末２０は、通信部５０１、画像処理部５０２、音声処理部５０３、Ｉ／Ｏ（Input/Output）部５０４、入力部５０５、記憶部５０６、制御部５０７を備える。
【００４９】
通信部５０１は、ＮＩＣを備え、販売者端末２０を通信ネットワーク５０に接続し、情報処理サーバ１０と通信する。
【００５０】
画像処理部５０２は、画像を生成してディスプレイ５５１に表示する。例えば、画像処理部５０２は、受注リストの検索条件を指定する入力をユーザから受け付ける画面を生成してディスプレイ５５１に表示する。また、画像処理部５０２は、情報処理サーバ１０から取得した、検索結果である受注リストをディスプレイ５５１に表示する。
【００５１】
本実施形態では、画像処理部５０２は、制御部５０７の制御により、ユーザが情報を閲覧するためのソフトウェアアプリケーション、いわゆるブラウザ上に、受注リストを表示する。
【００５２】
音声処理部５０３は、記憶部５０６や情報処理サーバ１０等から音声データを取得し、再生し、音声をスピーカ５５２から出力する。
【００５３】
Ｉ／Ｏ部５０４は、取り外し可能なメモリカードを販売者端末２０に接続するインタフェースを備える。
【００５４】
入力部５０５は、ユーザからの入力を受け付けるインタフェースを備える。本実施形態では、入力部５０５は、キーボードとマウスを備える。
【００５５】
記憶部５０６は、ＲＯＭ、ＲＡＭ等の記憶装置を備え、販売者端末２０を制御するオペレーティングシステム、各種のプログラム、画像データ、音声データ、テキストデータ等を記憶する。
【００５６】
制御部５０７は、ＣＰＵを備え、販売者端末２０全体を制御する。
【００５７】
販売者端末２０として、通信機能を持った一般的なパーソナルコンピュータ、携帯電話機、スマートフォン、携帯端末、タブレット型コンピュータ等を用いることができる。本実施形態では、販売者端末２０としてパーソナルコンピュータを採用する。
【００５８】
なお、購入者端末３０のハードウェア構成は、販売者端末２０と同等であるので、詳しい説明を省略する。
【００５９】
次に、本実施形態の情報処理システム１において実行される検索処理について説明する。
【００６０】
購入者端末３０の操作者は、ブラウザ等を用いて商品情報を閲覧し、所望の商品の購入を電子ショッピングモールに申し込むことができる。購入者端末３０は、商品の購入申し込みを示すデータを情報処理サーバ１０へ送信する。情報処理サーバ１０は、商品の購入申し込みを示すデータを購入者端末３０から受信すると、受注リストデータベース２５２に記録する。また、情報処理サーバ１０は、商品の購入申し込みを、例えば電子メールにより、その商品を販売する店舗に通知する。
【００６１】
店舗の担当者は、販売者端末２０を用いて、商品の受注状況や、商品の購入を申し込んだ購入者の連絡先、商品の発送先、決済状況等を、随時見ることができる。
【００６２】
例えば、ユーザ（店舗の担当者）が、昨日の０時０分から２３時５９分までにその店舗が受注したすべての商品のリストを確認したい場合、ユーザは、受注日時が「昨日の０時０分から２３時５９分まで」であることを検索条件に指定する。販売者端末２０は、指定された検索条件を含むクエリを情報処理サーバ１０へ送信する。情報処理サーバ１０は、受信したクエリに基づいて受注リストデータベース２５２を検索する。情報処理サーバ１０は、検索結果を販売者端末２０へ送信する。
【００６３】
本実施形態におけるクエリには、主クエリと副クエリの二種類がある。以下の説明において、ユーザが指定した検索条件を表すクエリ（言い換えれば、情報処理サーバ１０が販売者端末２０から最初に受信したクエリ）を「主クエリ」と呼び、後述する処理により情報処理サーバ１０が主クエリ６００を分割して生成されるクエリを「副クエリ」と呼ぶ。
【００６４】
図６Ａ，図６Ｂ，図６Ｃに、主クエリ６００を模式的に示す。主クエリ６００は、情報処理サーバ１０への問い合わせを記述する。一般的には、主クエリ６００は、ＳＱＬ（Structured Query Language）によって記述される。ただし、ＳＱＬを用いる代わりに、検索条件を含む所定フォーマットの問い合わせ電文と、検索結果を含む所定フォーマットの応答電文とを用いてもよい。
【００６５】
例えば、受注リストデータベース２５２から、「店舗コードが“０００１”、且つ、受注日時が“昨日の０時００分から２３時５９分まで”」である受注データを取得する場合、販売者端末２０の制御部５０７は、図６Ａに示すように、店舗コードと受注日時を指定した主クエリ６００を生成し、生成した主クエリ６００を情報処理サーバ１０へ送信する。
【００６６】
あるいは、受注リストデータベース２５２から、「店舗コードが“０００１”、且つ、商品コードが“１２３４５”、且つ、受注日時が“昨日の０時００分から２３時５９分まで”」である受注データを検索する場合、販売者端末２０の制御部５０７は、図６Ｂに示すように、店舗コードと商品コードと受注日時を指定した主クエリ６００を生成し、生成した主クエリ６００を情報処理サーバ１０へ送信する。
【００６７】
主クエリ６００に含まれる検索条件は、店舗コードと商品コードと受注日時だけに限られず、受注リストデータベース２５２に含まれるすべての項目を用いて指定することができる。
【００６８】
例えば、商品の購入を申し込んだ購入者を識別する購入者ＩＤ、決済処理が完了したか否かもしくは購入者からの入金の予定日がいつか等を表す支払い状況、商品の発送処理が完了したか否かもしくは発送予定日がいつか等を表す発送状況、等の項目が受注リストデータベース２５２に予め定義されていれば、販売者端末２０は、図６Ｃに示すように、これらの購入者ＩＤや支払い状況や発送状況等を指定する主クエリ６００を生成することができる。
【００６９】
情報処理サーバ１０の制御部２０３は、主クエリ６００を販売者端末２０から受信し、主クエリ６００に基づいて、受注リストデータベース２５２を検索し、検索して得られたレコードを販売者端末２０へ送信する。
【００７０】
なお、主クエリ６００には、後述するように、抽出したレコードを並べ替えるソート条件も含まれる。
【００７１】
ところで、販売者端末２０は、電子ショッピングモールに出店する店舗のそれぞれに設置されるため、店舗数が増えれば、情報処理サーバ１０へ送信される主クエリ６００の数も増える。また、店舗によっては、頻繁に受注状況を把握しなければならず、主クエリ６００が送受信される頻度は増える。すると、検索処理にかかる情報処理サーバ１０への負荷が増大し、検索処理に時間がかかるばかりか、情報処理サーバ１０全体の応答が遅くなる（重くなる）おそれがある。
【００７２】
そこで、本実施形態では、情報処理サーバ１０が販売者端末２０から主クエリ６００を受信すると、直ちに無条件で主クエリ６００を実行するのではなく、情報処理サーバ１０が現在行っている処理の負荷の大きさや、主クエリ６００に含まれる検索条件を満たすレコードの数等に基づいて、主クエリ６００を分割して実行するようにしている。
【００７３】
ユーザが指定した検索条件を表すクエリが主クエリ６００であり、図７に示すように情報処理サーバ１０が主クエリ６００を分割したクエリが副クエリ７００である。
【００７４】
図７に、主クエリ６００と副クエリ７００（図７中では７００Ａ，７００Ｂ，７００Ｃ，７００Ｄの四つ）の例を示す。主クエリ６００は、検索条件を「店舗コードが“０００１”、且つ、受注日時が“昨日の０時００分から２３時５９分まで”」とし、ソート条件を「受注日時が古い順」とした情報処理サーバ１０への問い合わせを表す。
【００７５】
情報処理サーバ１０の制御部２０３は、予め決められた分割条件が満たされると判別すると、ユーザにより指定されたソート条件に基づいて、主クエリ６００を複数の副クエリ７００に分割する。
【００７６】
より詳細には、制御部２０３は、主クエリ６００に含まれる検索条件のうち、例えば受注期間のように、幅をもって指定される範囲を、複数の範囲に分割する。
【００７７】
図７に示すように、主クエリ６００が示す検索条件に、受注期間が“昨日の０時００分から２３時５９分まで”であることが含まれており、且つ、ソート条件として“受注日時が古い順に並べ替える”ことが指定されているとすると、制御部２０３は、指定された受注期間を、（１）昨日の０時００分から５時５９分まで、（２）昨日の６時００分から１１時５９分まで、（３）昨日の１２時００分から１７時５９分まで、（４）昨日の１８時００分から２３時５９分まで、の４つの区間に均等に分割する。
【００７８】
そして、制御部２０３は、分割したそれぞれの区間を受注日時の範囲に指定した四つの副クエリ７００Ａ，７００Ｂ，７００Ｃ，７００Ｄを生成し、販売者端末２０へ送信する。
【００７９】
副クエリ７００Ａが、受注日時に“昨日の０時００分から５時５９分まで”と指定されたクエリである。副クエリ７００Ｂが、受注日時に“昨日の６時００分から１１時５９分まで”と指定されたクエリである。副クエリ７００Ｃが、受注日時に“昨日の１２時００分から１７時５９分まで”と指定されたクエリである。副クエリ７００Ｄが、受注日時に“昨日の１８時００分から２３時５９分まで”と指定されたクエリである。
【００８０】
副クエリ７００Ａ，７００Ｂ，７００Ｃ，７００Ｄがすべて一回ずつ実行されれば、一つの主クエリ６００が一回実行されたことに等しい検索結果が得られる。制御部２０３は、主クエリ６００を一回だけ実行するのか、あるいは、副クエリ７００Ａ，７００Ｂ，７００Ｃ，７００Ｄを順に一つずつ実行するのかを、状況に応じて使い分けるのである。
【００８１】
副クエリ７００Ａ，７００Ｂ，７００Ｃ，７００Ｄには、実行すべき順序が情報処理サーバ１０によって設定される。情報処理サーバ１０の制御部２０３は、生成した複数の副クエリ７００のうち、受注日時を示す期間が最も古いものを、一番目に設定する。そして、制御部２０３は、受注日時が示す期間が古い順に、順序を設定する。図７に示す副クエリ７００において、設定される順序は、副クエリ７００Ａ、副クエリ７００Ｂ、副クエリ７００Ｃ、副クエリ７００Ｄ、の順である。
【００８２】
販売者端末２０は、設定された順序で、副クエリ７００Ａ，７００Ｂ，７００Ｃ，７００Ｄを情報処理サーバ１０へ送信する。ただし、二番目の副クエリ７００Ｂの送信タイミングは、一番目の副クエリ７００Ａに対する応答（検索結果）を受信した後である。同様に、三番目の副クエリ７００Ｃの送信タイミングは、二番目の副クエリ７００Ｂに対する応答を受信した後であり、四番目の副クエリ７００Ｄの送信タイミングは、三番目の副クエリ７００Ｃに対する応答を受信した後である。
【００８３】
なお、副クエリ７００を実行すべき順序は、販売者端末２０がディスプレイ５５１に早く表示すべき順と同じであることが望ましい。例えば、電子ショッピングモールにおける一般的な販売方法であれば、受注した日時が古い順に、つまりＦＩＦＯ（First In, First Out）で、処理される。従って、受注日時が古い副クエリ７００Ａを先に実行して販売者端末２０へ送信し、受注日時が古い購入申し込みをユーザがいち早く閲覧できるようにする。
【００８４】
分割して得られる副クエリ７００の数、言い換えれば、検索条件の分割数は、図７では四つとしているが、三つ以下あるいは五つ以上でもよく、任意である。
【００８５】
また、制御部２０３は、主クエリ６００で指定された検索条件を、均等に分割してもよいし、偏りを設けて分割してもよい。
【００８６】
すなわち、図７では、制御部２０３は、受注期間を６時間ずつ等間隔に四つの区間に分割するが、例えば、（１）昨日の０時００分から２時５９分まで、（２）昨日の３時００分から１１時５９分まで、（３）昨日の１２時００分から２０時５９分まで、（４）昨日の２１時００分から２３時５９分まで、というように、受注期間の長さが均等でない四つの区間に分割してもよい。
【００８７】
指定された区間を均等でない複数の区間に分割する場合、制御部２０３は、過去の受注実績に基づいた長さの区間に検索条件を分割してもよい。
【００８８】
すなわち、制御部２０３は、受注リストデータベース２５２に記録された過去の受注日時の統計をとり、受注数が比較的多い時間帯での分割数を多くし、受注数が比較的少ない時間帯での分割数を少なくする。制御部２０３は、過去の受注実績に基づいて、区間の長さに偏りを設けることができる。
【００８９】
例えば、深夜の時間帯における受注数が１日平均で１０００件である一方で、昼間の時間帯における受注数が１日平均で１０件しかないならば、深夜の時間帯の分割数を多くして、昼間の時間帯の分割数を少なくするとよい。受注数が少ない時間帯の分割数が多くても、処理の負荷分散にほとんど貢献しないし、受注数が多い時間帯の分割数が少なくても、処理の負荷分散にほとんど貢献しないからである。
【００９０】
制御部２０３は、商品データの過去の閲覧実績に基づいた長さの区間に検索条件を分割してもよい。
【００９１】
例えば、制御部２０３は、商品を説明し注文を受け付けるウェブページが閲覧された数（ページビュー数）の履歴を記憶部２０１に記憶し、ページビュー数が比較的多い時間帯の分割数を多くし、ページビュー数が比較的少ない時間帯の分割数を少なくしてもよい。ページビュー数が多いほど、購入申し込みの数も多いと予想されるからである。
【００９２】
また、制御部２０３は、情報処理サーバ１０へのアクセス数の履歴を記憶部２０１に記憶し、アクセス数が比較的多い時間帯の分割数を多くし、アクセス数が比較的少ない時間帯の分割数を少なくしてもよい。このアクセスには、購入者端末３０からの商品データの閲覧要求や購入申し込みだけでなく、購入者端末３０と販売者端末２０との間でのクエリの送受信も含まれる。
【００９３】
上述の分割条件の一つは、「情報処理サーバ１０が現在行っているすべての処理による負荷の大きさがしきい値以上であること」である。情報処理サーバ１０が現在行っている処理による負荷の大きさは、典型的には、ＣＰＵ等のハードウェアリソースの使用率で表される。主クエリ６００を受信した時点でＣＰＵの使用率がしきい値以上（例えば５０％以上）であれば、制御部２０３は、主クエリ６００を複数の副クエリ７００に分割する。ＣＰＵの使用率がしきい値未満（例えば５０％未満）であれば、制御部２０３は、主クエリ６００を分割せずに実行する。
【００９４】
制御部２０３は、情報処理サーバ１０が現在行っている処理の負荷の大きさを、受注リストデータベース２５２を格納するハードディスクにおけるシークタイム、そのハードディスクにおける単位時間あたりのシーク回数、等によって判別してもよい。制御部２０３は、シークタイムが基準値より長ければ、主クエリ６００を複数の副クエリ７００に分割し、シークタイムが基準値より短ければ、主クエリ６００を分割せずに実行する。あるいは、制御部２０３は、シーク回数が基準値より多ければ、主クエリ６００を複数の副クエリ７００に分割し、シーク回数が基準値より少なければ、主クエリ６００を分割せずに実行する。
【００９５】
また、分割条件は、「主クエリ６００が示す検索条件を満たすレコードの数がしきい値以上であること」でもよい。制御部２０３は、主クエリ６００を受信すると、主クエリ６００に含まれる検索条件を満たすレコードの数を取得する。レコードの数をカウントする処理だけであれば、レコードを抽出して並べ替える処理よりも、ソートプールを使用しない分、ハードウェアリソースへの負担が少ない。そこで、レコードの数がしきい値以上（例えば１００件以上）であれば、制御部２０３は、主クエリ６００を複数の副クエリ７００に分割する。レコードの数がしきい値未満（例えば１００件未満）であれば、制御部２０３は、主クエリ６００を分割せずに実行する。
【００９６】
そして、制御部２０３は、生成した複数の副クエリ７００を販売者端末２０へ送信する。レコードの数がしきい値未満であれば、制御部２０３は、主クエリ６００を分割せずに実行し、主クエリ６００による検索結果であるレコードを販売者端末２０へ送信する。
【００９７】
検索条件を均等に分割して複数の副クエリ７００を生成した結果、ある副クエリ７００が示す検索条件を満たすレコードの数がしきい値以上になった場合、制御部２０３は、更にその副クエリ７００を分割してもよい。
【００９８】
販売者端末２０の制御部５０７は、副クエリ７００を情報処理サーバ１０から受信すると、設定された順序で副クエリ７００を送信する。
【００９９】
販売者端末２０の制御部５０７は、主クエリ６００による検索結果、もしくは、副クエリ７００による検索結果を受信すると、受信した検索結果が示すレコードをソート条件に基づいて並べ替えて、ディスプレイ５５１に表示する。
【０１００】
なお、情報処理サーバ１０の制御部２０３は、レコードの数がしきい値以上であれば、生成した複数の副クエリ７００のうち順序が最初である副クエリ７００Ａを実行し、副クエリ７００Ａによる検索結果と、残りの副クエリ７００Ｂ，７００Ｃ，７００Ｄと、を販売者端末２０へ送信してもよい。副クエリ７００Ａによる検索結果が情報処理サーバ１０から販売者端末２０へ送信されるので、情報処理サーバ１０が副クエリ７００Ａを販売者端末２０へ送信する必要はない。情報処理サーバ１０は、設定された順序が二番目以降の副クエリ７００Ｂ，７００Ｃ，７００Ｄを送信すればよい。この変形例の詳細については、他の実施形態において説明する。
【０１０１】
また、分割条件は、「直近の所定時間内においてクエリの実行にかかった時間がしきい値以上であること」でもよい。制御部２０３は、ＳＱＬの実行時間の履歴を記憶部２０１に記憶し、直近の所定時間内（例えば過去１０分以内）においてＳＱＬの実行を開始してから結果が得られるまでにかかった時間の平均値を計算する。そして、計算した平均値がしきい値以上（例えば３秒以上）であれば、制御部２０３は、主クエリ６００を複数の副クエリ７００に分割する。
【０１０２】
制御部２０３は、実行時間の平均値の代わりに、最大値、最頻値、中央値、偏差、分散等を計算してもよい。
【０１０３】
また、分割条件は、「ＳＱＬの実行計画における実行時間がしきい値以上であること」でもよい。制御部２０３は、定期的なタイミングでＳＱＬの実行計画を取得する。そして、制御部２０３は、実行計画が示す実行時間がしきい値以上（例えば３秒以上）であれば、制御部２０３は、主クエリ６００を複数の副クエリ７００に分割する。
【０１０４】
実行計画の取得対象となるＳＱＬは、時間測定用の予め決められたＳＱＬでもよいし、任意の主クエリ６００に対応するＳＱＬでもよい。
【０１０５】
例えば、ＳＱＬの“EXPLAIN PLAN”文を使えば、クエリを実行せずに実行計画を取得できるため、実行計画の取得が情報処理システム１全体へ過大な負荷を与えることはない。
【０１０６】
次に、販売者端末２０によって表示される画面の構成例を説明する。
【０１０７】
図８に、販売者端末２０によって表示される、検索条件とソート条件の指定をユーザから受け付ける画面の例を示す。この画面には、例えば、受注処理状況の区分（未処理、処理中、又は、処理済み）を選択するチェックボックス８０１，８０２，８０３と、商品コードを指定する欄８０４と、受注日時を示す区間を指定する欄８０５，８０６と、ソート条件を選択するラジオボタン８０７，８０８と、購入者ＩＤを指定する欄８０９と、指定された条件で検索を開始する指示ボタン８１０と、がある。
【０１０８】
ユーザは、受注処理状況の区分、商品コード、受注日時、購入者ＩＤを組み合わせて、所望の検索条件を指定できる。例えば、受注処理状況の区分と受注日時の二つを検索条件に含める場合、ユーザは、チェックボックス８０１，８０２，８０３と欄８０５，８０６に値を入力すればよく、欄８０４，８０９を空欄のままにすればよい。
【０１０９】
また、ユーザは、ラジオボタン８０７，８０８のいずれかをオンにすることで、ソート条件を指定できる。
【０１１０】
本実施形態では、ソート条件に受注日時の古い順もしくは新しい順という二種類しかないが、設定されうるソート条件は任意である。また、優先順位を付けた二つ以上のソート条件を指定できてもよい。例えば、ソート条件は、受注日時以外に、商品コードを表す文字コード順、購入者ＩＤを表す文字コード順、等でもよい。
【０１１１】
制御部５０７は、テキストボックス、ラジオボタン、チェックボックス、リストボックス、ドロップダウンリスト、コンボボックス等のオブジェクトを用いて、検索条件とソート条件の入力を受け付ける画面を構成することができる。
【０１１２】
店舗には、固有の店舗コードが予め割り当てられている。販売者端末２０の記憶部５０６には、割り当てられた店舗コードが予め記憶される。販売者端末２０の制御部５０７は、主クエリ６００を生成する際、自身に割り当てられた店舗コードと一致するレコードであることを、自動的に検索条件に含める。ユーザは、検索の度に店舗コードを入力しなくてよい。
【０１１３】
ユーザによって検索条件とソート条件が指定された後に指示ボタン８１０が操作されると、制御部５０７は、指定された検索条件とソート条件を含む主クエリ６００を生成する。制御部２０３は、生成した主クエリ６００を情報処理サーバ１０へ送信する。
【０１１４】
情報処理サーバ１０の制御部２０３は、主クエリ６００を受信すると、分割条件が満たされるか否かを判別する。分割条件の詳細については後述する。
【０１１５】
分割条件が満たされていなければ、制御部２０３は、主クエリ６００を実行し、得られた検索結果を示す１つ又は複数のレコードを販売者端末２０へ送信する。販売者端末２０は、検索結果のレコードを情報処理サーバ１０から受信する。
【０１１６】
なお、主クエリ６００を実行した結果、該当するレコードが一つも無かった場合には、制御部２０３は、該当するレコードが無い旨を販売者端末２０へ通知する。
【０１１７】
図９に、検索条件を「区分が未処理、且つ、受注日時が2014年4月25日0時0分0秒から2014年4月25日23時59分59秒まで」とし、ソート条件を「受注日時の古い順」とした場合における検索結果の表示例を示す。販売者端末２０の制御部５０７は、情報処理サーバ１０から受信したレコードの一覧、つまり検索結果を表示する。
【０１１８】
すべてのレコードを一度に表示しきれない場合には、制御部５０７は、スクロールバー９１０を配置し、レコードの一覧をスクロール可能に表示する。
【０１１９】
いずれかのレコードがユーザによって選択されると、販売者端末２０の制御部５０７は、図１０に示すように、選択されたレコードの詳細を表示する。
【０１２０】
本実施形態では、販売者端末２０の制御部５０７は、検索結果のレコードを情報処理サーバ１０から受信すると、まず図９に示すようにレコードの一覧を表示し、いずれかのレコードが選択されると、図１０に示すように選択されたレコードの詳細を表示する。
【０１２１】
ソート条件に基づくレコードの並べ替えは、情報処理サーバ１０によって行われてもよいし、販売者端末２０によって行われてもよい。
【０１２２】
販売者端末２０によってソートされるように構成する場合、情報処理サーバ１０の制御部２０３は、主クエリ６００に含まれる検索条件に基づいて検索し、取得したレコードをソートしないまま販売者端末２０へ送信する。ソートされていないレコードを受信した販売者端末２０の制御部５０７は、レコードを受信した後、ソート条件に基づいてレコードを並べ替えて、ディスプレイ５５１に表示する。
【０１２３】
情報処理サーバ１０によってソートされるように構成する場合、情報処理サーバ１０の制御部２０３は、主クエリ６００に含まれる検索条件に基づいて検索し、取得したレコードをソート条件に基づいてソートし、ソート後のレコードを販売者端末２０へ送信する。ソートされたレコードを受信した販売者端末２０の制御部５０７は、受信したレコードをソートされた順のままディスプレイ５５１に表示する。
【０１２４】
情報処理サーバ１０と販売者端末２０のいずれの機器においてソートする場合であっても、ソート対象となるレコードの数が少ないので、ソート用の記憶領域（ソートプール）は小さくてすむ。
【０１２５】
ところで、分割条件が満たされる場合には、主クエリ６００が直ちに実行されるのではなく、主クエリ６００が複数の副クエリ７００に分割される。すなわち、分割条件が満たされていれば、情報処理サーバ１０の制御部２０３は、ソート条件に基づいて主クエリ６００を複数の副クエリ７００に分割し、副クエリ７００を販売者端末２０へ送信する。販売者端末２０は、副クエリ７００を示すデータを情報処理サーバ１０から受信する。
【０１２６】
例えば、主クエリ６００に含まれる検索条件が「区分が未処理、且つ、受注日時が2014年4月25日0時0分0秒から2014年4月25日23時59分59秒まで」であり、主クエリ６００に含まれるソート条件が「受注日時の古い順」であって、分割条件が満たされている場合、情報処理サーバ１０の制御部２０３は、検索条件とソート条件とに基づいて、主クエリ６００を複数の副クエリ７００に分割する。
【０１２７】
受注期間を均等に２４分割するケースでは、２４個の副クエリ７００が生成される。
【０１２８】
第１の副クエリ７００・・・検索条件は「区分が未処理、且つ、受注日時が2014年4月25日0時0分0秒から2014年4月25日0時59分59秒まで」。ソート条件は「受注日時の古い順」。設定される順序は一番目。
【０１２９】
第２の副クエリ７００・・・検索条件は「区分が未処理、且つ、受注日時が2014年4月25日1時0分0秒から2014年4月25日1時59分59秒まで」。ソート条件は「受注日時の古い順」。設定される順序は二番目。
【０１３０】
第３の副クエリ７００・・・検索条件は「区分が未処理、且つ、受注日時が2014年4月25日2時0分0秒から2014年4月25日2時59分59秒まで」。ソート条件は「受注日時の古い順」。設定される順序は三番目。
【０１３１】
同様にして、第４から第２４までの副クエリ７００が生成される。
【０１３２】
なお、より正確には、副クエリ７００には、主クエリ６００に含まれる店舗コードを指定する検索条件も含まれる。
【０１３３】
２４個の副クエリ７００を受信した販売者端末２０の制御部５０７は、順序が一番目である第１の副クエリ７００を情報処理サーバ１０へ送信する。
【０１３４】
第１の副クエリ７００を受信した情報処理サーバ１０の制御部２０３は、第１の副クエリ７００に含まれる検索条件で受注リストデータベース２５２を検索する。更に、制御部２０３は、検索して得られたレコードをソート条件に従って並べ替える。
【０１３５】
情報処理サーバ１０の制御部２０３は、検索して得られたレコードを販売者端末２０へ送信する。販売者端末２０の制御部５０７は、検索して得られたレコードを情報処理サーバ１０から受信する。
【０１３６】
販売者端末２０の制御部５０７は、図１１に示すように、第１の副クエリ７００に含まれる検索条件によって検索されたレコード１１００を表示する。
【０１３７】
なお、販売者端末２０によってソートされる構成では、情報処理サーバ１０の制御部２０３は、第１の副クエリ７００に含まれる検索条件で受注リストデータベース２５２を検索し、検索して得られたレコードを販売者端末２０へ送信する。販売者端末２０の制御部５０７は、検索して得られたレコードを情報処理サーバ１０から受信し、受信したレコードをソート条件に従って並べ替え、レコード１１００を表示する。
【０１３８】
販売者端末２０の制御部５０７は、すべての副クエリ７００が実行されたわけではなく、実行されていない副クエリ７００が存在し、まだ検索の途中であることを示すメッセージ１１５０を、ディスプレイ５５１に表示することが望ましい。
【０１３９】
販売者端末２０の制御部５０７は、第１の副クエリ７００による検索結果を表示した後、順序が二番目である第２の副クエリ７００を情報処理サーバ１０へ送信する。なお、制御部５０７は、第１の副クエリ７００に対する検索結果を受信した後に、順序が二番目である第２の副クエリ７００を情報処理サーバ１０へ送信してもよい。
【０１４０】
第２の副クエリ７００を受信した情報処理サーバ１０の制御部２０３は、第２の副クエリ７００に含まれる検索条件で受注リストデータベース２５２を検索する。情報処理サーバ１０によってソートされる構成では、情報処理サーバ１０の制御部２０３は、検索して得られたレコードをソート条件に従って並べ替える。
【０１４１】
情報処理サーバ１０の制御部２０３は、検索して得られたレコード、もしくは、検索され且つソートされたレコードを、販売者端末２０へ送信する。販売者端末２０の制御部５０７は、検索して得られたレコード、もしくは、検索され且つソートされたレコードを、情報処理サーバ１０から受信する。
【０１４２】
販売者端末２０の制御部５０７は、図１２に示すように、第２の副クエリ７００に含まれる検索条件によって検索されたレコード１２００を、第１の副クエリ７００に含まれる検索条件によって検索されたレコード１１００の末尾に追加する。販売者端末２０によってソートされる構成では、販売者端末２０の制御部５０７は、受信したレコードをソート条件に従って並べ替えた後、レコード１１００の末尾に、レコード１２００を追加する。
【０１４３】
なお、制御部５０７は、第２の副クエリ７００による検索結果であるレコード１２００を表示する際には、既に表示した第１の副クエリ７００による検索結果であるレコード１１００の表示位置を変更しないこととする。
【０１４４】
レコード１１００がソート条件に基づいて並べ替えられており、レコード１２００も同じソート条件に基づいて並べ替えられており、且つ、そのソート条件に基づいて副クエリ７００の実行順序、すなわちレコード１１００とレコード１２００の表示される順番が決まっているので、レコード１１００，１２００の全体が、ソート条件に基づいて並べ替えられている。
【０１４５】
副クエリ７００が二つの場合には、これで検索処理は終了する。
【０１４６】
副クエリ７００が三つ以上の場合、三番目以降の副クエリ７００の実行手順及び表示手順は、一番目及び二番目の副クエリ７００の実行手順及び表示手順と同様である。
【０１４７】
販売者端末２０の制御部５０７は、第２の副クエリ７００による検索結果を表示した後、順序が三番目である第３の副クエリ７００を情報処理サーバ１０へ送信する。なお、制御部５０７は、第２の副クエリ７００に対する検索結果を受信した後に、順序が三番目である第３の副クエリ７００を情報処理サーバ１０へ送信してもよい。
【０１４８】
第３の副クエリ７００を受信した情報処理サーバ１０の制御部２０３は、第３の副クエリ７００に含まれる検索条件で受注リストデータベース２５２を検索する。情報処理サーバ１０によってソートされる構成では、情報処理サーバ１０の制御部２０３は、検索して得られたレコードをソート条件に従って並べ替える。
【０１４９】
情報処理サーバ１０の制御部２０３は、検索して得られたレコード、もしくは、検索され且つソートされたレコードを、販売者端末２０へ送信する。販売者端末２０の制御部５０７は、検索して得られたレコード、もしくは、検索され且つソートされたレコードを、情報処理サーバ１０から受信する。
【０１５０】
図１３に、第３の副クエリ７００によって検索されたレコード１３００の表示例を示す。販売者端末２０の制御部５０７は、第３の副クエリ７００に含まれる検索条件によって検索されたレコード１３００を、第２の副クエリ７００に含まれる検索条件によって検索されたレコード１２００の末尾に追加する。
【０１５１】
情報処理システム１は、すべての副クエリ７００が実行され且つ検索結果が表示されるまで、同様の処理を繰り返す。
【０１５２】
次に、情報処理システム１の機能的な構成について、図１４を用いて説明する。
【０１５３】
第１の送信部１４０１は、主クエリ６００、又は、情報処理サーバ１０から受信した副クエリ７００を、情報処理サーバ１０へ送信する。第１の送信部１４０１は、副クエリ７００を送信する場合には、情報処理サーバ１０によって設定された順序で、送信する。販売者端末２０の制御部５０７と通信部５０１が協働して、第１の送信部１４０１として機能する。
【０１５４】
第１の受信部１４０２は、主クエリ６００又は副クエリ７００を情報処理サーバ１０から受信する。情報処理サーバ１０の制御部２０３と通信部２０２が協働して、第１の受信部１４０２として機能する。
【０１５５】
第２の送信部１４０３は、主クエリ６００をソート条件に基づいて分割した副クエリ７００、又は、主クエリ６００による検索結果を示すレコード、又は、副クエリ７００による検索結果を示すレコードを、販売者端末２０へ送信する。第２の送信部１４０３は、販売者端末２０から副クエリ７００を受信するごとに、その副クエリ７００を満たすレコードを受注リストデータベース２５２において検索し、検索して得たレコードを販売者端末２０へ送信する。情報処理サーバ１０の制御部２０３と記憶部２０１と通信部２０２が協働して、第２の送信部１４０３として機能する。
【０１５６】
第２の受信部１４０４は、副クエリ７００、又は、主クエリ６００による検索結果を示すレコード、又は、副クエリ７００による検索結果を示すレコードを、情報処理サーバ１０から受信する。販売者端末２０の制御部５０７と通信部５０１が協働して、第２の受信部１４０４として機能する。
【０１５７】
表示部１４０５は、第２の受信部１４０４が受信した検索結果を示すレコードを、設定された順序で、ディスプレイ５５１に表示する。販売者端末２０の制御部５０７と画像処理部５０２が協働して、表示部１４０５として機能する。
【０１５８】
次に、本実施形態における検索処理の流れについて、図１５のフローチャートを用いて説明する。本実施形態では、ソート条件によるレコードの並べ替えは情報処理サーバ１０によって行われるものとする。
【０１５９】
まず、販売者端末２０の制御部５０７は、図８に示した画面を表示して、検索条件とソート条件の入力をユーザから受け付ける（ステップＳ１５０１）。ユーザは、検索条件とソート条件を指定する。
【０１６０】
販売者端末２０の制御部５０７は、ユーザによって指定された検索条件とソート条件を含む主クエリ６００を生成し（ステップＳ１５０２）、情報処理サーバ１０へ送信する（ステップＳ１５０３）。
【０１６１】
情報処理サーバ１０の制御部２０３は、主クエリ６００を販売者端末２０から受信する（ステップＳ１５０４）。
【０１６２】
情報処理サーバ１０の制御部２０３は、受信した主クエリ６００をキューと呼ばれるＦＩＦＯ型の待ち行列に登録する。制御部２０３は、キューへ登録された様々なクエリを順々に実行する。
【０１６３】
情報処理サーバ１０の制御部２０３は、キューから主クエリ６００を取り出した時点で、分割条件が満たされるか否かを判別する（ステップＳ１５０５）。
【０１６４】
分割条件が満たされない場合（ステップＳ１５０５；ＮＯ）、後述するステップＳ１７０１からＳ１７０４が実行される。
【０１６５】
一方、分割条件が満たされる場合（ステップＳ１５０５；ＹＥＳ）、情報処理サーバ１０の制御部２０３は、主クエリ６００に含まれるソート条件に基づいて、主クエリ６００を複数の副クエリ７００に分割する（ステップＳ１５０６）。なお、上述したように、生成される副クエリ７００には、実行されるべき順序が設定される。
【０１６６】
情報処理サーバ１０の制御部２０３は、生成した副クエリ７００を示すデータを販売者端末２０へ送信する（ステップＳ１５０７）。制御部２０３は、主クエリ６００をキューから削除する。販売者端末２０の制御部５０７は、副クエリ７００を示すデータを情報処理サーバ１０から受信する（ステップＳ１５０８）。
【０１６７】
販売者端末２０の制御部５０７は、受信した副クエリ７００のうち、順序が最初の副クエリ７００を情報処理サーバ１０へ送信する（ステップＳ１５０９）。
【０１６８】
情報処理サーバ１０の制御部２０３は、最初の副クエリ７００を受信し（ステップＳ１５１０）、受信した副クエリ７００をキューへ登録する。
【０１６９】
制御部２０３は、キューへ登録された様々なクエリを順々に実行する。制御部２０３は、キューから副クエリ７００を読み出し、実行する（ステップＳ１５１１）。すなわち、制御部２０３は、指定された検索条件で受注リストデータベース２５２を検索し、取得したレコードを指定されたソート条件で並べ替える。
【０１７０】
なお、主クエリ６００が登録されるキューと、副クエリ７００が登録されるキューは、同一である。
【０１７１】
販売者端末２０によってソートされる構成では、情報処理サーバ１０の制御部２０３は、取得したレコードを並べ替えなくてもよい。
【０１７２】
情報処理サーバ１０の制御部２０３は、検索結果を販売者端末２０へ送信する（ステップＳ１５１２）。そして、制御部２０３は、実行した副クエリ７００をキューから削除する。
【０１７３】
販売者端末２０の制御部５０７は、検索結果を情報処理サーバ１０から受信し（ステップＳ１５１３）、ディスプレイ５５１に表示する（ステップＳ１５１４）。
【０１７４】
この時点で、主クエリ６００を実行したとしたら得られることになる検索結果の一部分が表示される。そして、その表示される検索結果の一部分とは、主クエリ６００を実行して得られるレコードをソート条件に基づいて並べ替えたときに上位に表示されるレコードである。従って、ユーザによる検索結果の閲覧への影響を小さく抑えることができる。
【０１７５】
販売者端末２０の制御部５０７は、設定された順序が次の副クエリ７００を情報処理サーバ１０へ送信する（ステップＳ１６０１）。
【０１７６】
情報処理サーバ１０の制御部２０３は、副クエリ７００を受信し（ステップＳ１６０２）、キューへ登録する。制御部２０３は、副クエリ７００をキューから取り出し、実行する（ステップＳ１６０３）。すなわち、制御部２０３は、指定された検索条件で受注リストデータベース２５２を検索し、取得したレコードを指定されたソート条件で並べ替える。
【０１７７】
情報処理サーバ１０の制御部２０３は、検索結果を販売者端末２０へ送信する（ステップＳ１６０４）。そして、制御部２０３は、実行した副クエリ７００をキューから削除する。
【０１７８】
販売者端末２０の制御部５０７は、検索結果を情報処理サーバ１０から受信し（ステップＳ１６０５）、ディスプレイ５５１に表示する（ステップＳ１６０６）。
【０１７９】
上述したように、販売者端末２０の制御部５０７は、設定された順序が二番目の副クエリ７００に含まれる検索条件によって検索されたレコード１２００を、設定された順序が一番目の副クエリ７００に含まれる検索条件によって検索されたレコード１１００の末尾に追加する。
【０１８０】
販売者端末２０の制御部５０７は、ステップＳ１５０８で受信したすべての副クエリ７００が実行されたか否か、言い換えればすべての副クエリ７００に対する検索結果が得られたか否かを判別する（ステップＳ１６０７）。
【０１８１】
すべての副クエリ７００が実行された場合（ステップＳ１６０７；ＹＥＳ）、検索処理は終了する。販売者端末２０のディスプレイ５５１には、主クエリ６００が実行された場合と同じ結果が表示される。
【０１８２】
実行されていない副クエリ７００がまだある場合（ステップＳ１６０７；ＮＯ）、順序が三番目の副クエリ７００を情報処理サーバ１０へ送信する（ステップＳ１６０１）。その後、ステップＳ１６０２からＳ１６０７が繰り返される。こうして順序が三番目以降のすべての副クエリ７００に対する検索結果が表示される。
【０１８３】
ところで、図１５のステップＳ１５０５において、分割条件が満たされないと判別した場合には（ステップＳ１５０５；ＮＯ）、情報処理サーバ１０の制御部２０３は、主クエリ６００を分割せず、主クエリ６００を実行する（ステップＳ１７０１）。
【０１８４】
情報処理サーバ１０の制御部２０３は、主クエリ６００に対する検索結果を販売者端末２０へ送信する（ステップＳ１７０２）。制御部２０３は、実行した主クエリ６００をキューから削除する。
【０１８５】
そして、販売者端末２０の制御部５０７は、主クエリ６００に対する検索結果を情報処理サーバ１０から受信し（ステップＳ１７０３）、表示する（ステップＳ１７０４）。
【０１８６】
本実施形態によれば、情報処理システム１は、負荷の状況に応じて適宜処理を分散する。分割条件が満たされる場合には、主クエリ６００をそのまま実行するのではなく、主クエリ６００を分割して得られた複数の副クエリ７００を一つずつ順番に実行し、分割条件が満たされない場合には、主クエリ６００を実行する。
【０１８７】
例えば、従来の手法によれば、情報処理サーバ１０のＣＰＵやハードディスク等といったハードウェアリソースの使用率が高いと、データベースが重くなり、情報処理システム１の応答が遅くなる可能性がある。また、検索されるレコードの数が多いと、ソート条件により並べ替える処理が重くなり、情報処理システム１の応答が遅くなると見込まれる。そこで、本実施形態では、情報処理サーバ１０の使用状況に応じてクエリを分割して実行するので、負荷を分散し、ユーザの快適さを向上することができるようになる。
【０１８８】
（実施形態２）
次に、他の実施形態について説明する。本実施形態では、情報処理サーバ１０は、副クエリ７００を生成すると、順序が最初の副クエリ７００を実行し、順序が最初の副クエリ７００に対する検索結果と、順序が二番目以降の残りの副クエリ７００とを販売者端末２０へ送信する、という点において、上記実施形態と異なる。
【０１８９】
図１８に、本実施形態における検索処理の流れを示す。なお、ステップＳ１８０１からＳ１８０６までは、上記実施形態におけるステップＳ１５０１からＳ１５０６までと同じであるので、説明を省略する。
【０１９０】
ステップＳ１８０６において主クエリ６００を複数の副クエリ７００に分割すると、情報処理サーバ１０の制御部２０３は、順序が最初の副クエリ７００（例えば図７における第１の副クエリ７００Ａ）を実行する（ステップＳ１８０７）。
【０１９１】
情報処理サーバ１０の制御部２０３は、順序が最初の副クエリ７００に対する検索結果と、残りの副クエリ７００を示すデータとを、販売者端末２０へ送信する（ステップＳ１８０８）。制御部２０３は、主クエリ６００をキューから削除する。
【０１９２】
販売者端末２０の制御部５０７は、順序が最初の副クエリ７００に対する検索結果と、残りの副クエリ７００を示すデータとを、販売者端末２０から受信し（ステップＳ１８０９）、受信した検索結果をディスプレイ５５１に表示する（ステップＳ１８１０）。
【０１９３】
すなわち、本実施形態では、販売者端末２０は、順序が最初の副クエリ７００を情報処理サーバ１０へ送信しなくてよい。
【０１９４】
順序が最初の副クエリ７００に対する検索結果が表示された後の、順序が二番目以降の副クエリ７００の実行手順、及び、検索結果の表示手順は、上述した図１６と同じであるので、説明を省略する。また、分割条件が満たされない場合（ステップＳ１８０５；ＮＯ）における処理手順は、上述した図１７と同じであるので、説明を省略する。
【０１９５】
本実施形態によれば、負荷を分散してユーザの快適さを向上することができる。
【０１９６】
（実施形態３）
次に、他の実施形態について説明する。本実施形態では、分割条件が満たされるか否かを、情報処理サーバ１０ではなく販売者端末２０が判別するという点において、上記各実施形態と異なる。なお、本実施形態では、ソート条件によるレコードの並べ替えが販売者端末２０によって行われるものとする。
【０１９７】
図１９に、本実施形態における検索処理の流れを示す。
【０１９８】
まず、販売者端末２０の制御部５０７は、図８に示した画面を表示して、検索条件とソート条件の入力をユーザから受け付ける（ステップＳ１９０１）。ユーザは、検索条件とソート条件を指定する。
【０１９９】
販売者端末２０の制御部５０７は、ユーザによって指定された検索条件とソート条件を含む主クエリ６００を生成する（ステップＳ１９０２）。
【０２００】
販売者端末２０の制御部５０７は、分割条件が満たされるか否かを判別する（ステップＳ１９０３）。
【０２０１】
分割条件は、「販売者端末２０が現在行っているすべての処理による負荷の大きさがしきい値以上であること」である。販売者端末２０が現在行っている処理による負荷の大きさは、典型的には、販売者端末２０が備えるＣＰＵ等のハードウェアリソースの使用率で表される。主クエリ６００を生成した時点で、販売者端末２０が備えるＣＰＵの使用率がしきい値以上（例えば５０％以上）であれば、制御部５０７は、主クエリ６００を分割すると判別する。ＣＰＵの使用率がしきい値未満（例えば５０％未満）であれば、制御部５０７は、主クエリ６００を分割しないと判別する。
【０２０２】
分割条件は、販売者端末２０が有するハードウェアリソースが、予め決められた値以下の性能を有していること」でもよい。具体的には、ＣＰＵの処理速度が所定値以下であること、ＲＡＭの容量が所定値以下であること、等である。
【０２０３】
販売者端末２０の制御部５０７は、ステップＳ１９０２で生成した主クエリ６００と、ステップＳ１９０３で判別した分割条件が満たされるか否かを示す判別結果とを、情報処理サーバ１０へ送信する（ステップＳ１９０４）。
【０２０４】
情報処理サーバ１０の制御部２０３は、主クエリ６００と判別結果とを販売者端末２０から受信する（ステップＳ１９０５）。
【０２０５】
情報処理サーバ１０の制御部２０３は、受信した主クエリ６００をキューへ登録する。制御部２０３は、キューから主クエリ６００を取り出すと、受信した判別結果に基づいて、主クエリ６００を分割するか否かを判別する（ステップ１９０６）。
【０２０６】
主クエリ６００を分割すると判別した場合（ステップＳ１９０６；ＹＥＳ）、情報処理サーバ１０の制御部２０３は、主クエリ６００を複数の副クエリ７００に分割する（ステップＳ１９０７）。
【０２０７】
情報処理サーバ１０の制御部２０３は、順序が最初の副クエリ７００（例えば図７における第１の副クエリ７００Ａ）を実行する（ステップＳ１９０８）。
【０２０８】
情報処理サーバ１０の制御部２０３は、順序が最初の副クエリ７００に対する検索結果と、残りの副クエリ７００を示すデータとを、販売者端末２０へ送信する（ステップＳ１９０９）。制御部２０３は、主クエリ６００をキューから削除する。
【０２０９】
販売者端末２０の制御部５０７は、順序が最初の副クエリ７００に対する検索結果と、残りの副クエリ７００を示すデータとを、販売者端末２０から受信し（ステップＳ１９１０）、受信した検索結果に含まれるレコードをソート条件に基づいて並べ替え（ステップＳ１９１１）、検索結果をディスプレイ５５１に表示する（ステップＳ１９１２）。
【０２１０】
なお、順序が最初の副クエリ７００に対する検索結果が表示された後の、順序が二番目以降の副クエリ７００の実行手順、及び、検索結果の表示手順は、上述した図１６と同じであるので、説明を省略する。また、分割条件が満たされない場合（ステップＳ１８０５；ＮＯ）における処理手順は、上述した図１７と同じであるので、説明を省略する。
【０２１１】
本実施形態によれば、負荷を分散してユーザの快適さを向上することができる。ソート条件による並べ替えが、情報処理サーバ１０ではなく販売者端末２０によって行われる構成においては、従来の手法によれば、販売者端末２０ごとにＣＰＵの処理速度等に差があるので、性能が比較的高くないハードウェアリソースを有する販売者端末２０のユーザに、より多くの不満を感じさせてしまうことがある。そこで、本実施形態では、使用される販売者端末２０の性能に応じてクエリを分割して実行することで、負荷を分散してユーザの快適さを向上することができるようになる。
【０２１２】
（実施形態４）
次に、他の実施形態について説明する。実施形態３のように販売者端末２０が有するハードウェアリソースに基づいて分割条件が定義される場合においても、分割条件が満たされるか否かを情報処理サーバ１０が判別するように構成することができる。
【０２１３】
本実施形態では、販売者端末２０の制御部５０７は、販売者端末２０の特性についての特性情報を予め収集して記憶部５０６に記憶しておく。そして、制御部５０７は、例えば図８に示す検索画面を初めて起動するタイミングや、ユーザから指示されたタイミング、あるいは、情報処理サーバ１０から送信の要求があったタイミングで、特性情報を情報処理サーバ１０へ送信する。そして、情報処理サーバ１０の制御部２０３は、特性情報を受信し、販売者端末２０に固有な識別情報と対応付けて、特性情報を記憶部２０１に記憶する。
【０２１４】
図２０に、記憶部２０１に記憶される特性テーブル２０００の例を示す。特性テーブル２０００には、販売者端末２０に固有な識別情報と対応付けて、販売者端末２０のＣＰＵの処理速度（単位はメガヘルツ）、販売者端末２０のＲＡＭ容量（単位はメガバイト）等、販売者端末２０のハードウェアリソースに関する特性が記憶される。
【０２１５】
情報処理サーバ１０の制御部２０３は、主クエリ６００と販売者端末２０に固有な識別情報とを販売者端末２０から受信すると、受信した識別情報に対応するレコードを特性テーブル２０００から読み出し、特性情報を取得する。
【０２１６】
そして、情報処理サーバ１０の制御部２０３は、取得した特性情報に基づいて、主クエリ６００を副クエリ７００に分割するか否かを判別する。
【０２１７】
例えば、分割条件が「ＣＰＵのクロック数がしきい値未満であること」とすると、情報処理サーバ１０の制御部２０３は、ＣＰＵのクロック数がしきい値未満の販売者端末２０から主クエリ６００を受信すれば、主クエリ６００を副クエリ７００に分割し、ＣＰＵのクロック数がしきい値以上の販売者端末２０から主クエリ６００を受信すれば、主クエリ６００を分割せずに実行する。
【０２１８】
例えば、分割条件が「ＲＡＭ容量がしきい値未満であること」とすると、情報処理サーバ１０の制御部２０３は、ＲＡＭ容量がしきい値未満の販売者端末２０から主クエリ６００を受信すれば、主クエリ６００を副クエリ７００に分割し、ＲＡＭ容量がしきい値以上の販売者端末２０から主クエリ６００を受信すれば、主クエリ６００を分割せずに実行する。
【０２１９】
特性テーブル２０００には、販売者端末２０がユーザによって主に使用される時間帯（例えば店舗の営業時間帯）、所定期間内において販売者端末２０の使用率が比較的高かった時間帯、ユーザによって任意に指定される時間帯、等を示すデータが記憶されてもよい。
【０２２０】
例えば、分割条件が「主クエリ６００を受信した時刻が、指定された時間帯に含まれること」とすると、情報処理サーバ１０の制御部２０３は、指定された時間帯に含まれる時刻に販売者端末２０から主クエリ６００を受信すれば、主クエリ６００を副クエリ７００に分割し、指定された時間帯に含まれない時刻に販売者端末２０から主クエリ６００を受信すれば、主クエリ６００を分割せずに実行する。
【０２２１】
反対に、分割条件は、「主クエリ６００を受信した時刻が、指定された時間帯に含まれないこと」でもよい。
【０２２２】
特性テーブル２０００には、ユーザによって指定された、主クエリ６００を分割するか否かを示す値が、販売者端末２０に固有な識別情報と対応付けて記憶されてもよい。
【０２２３】
例えば、分割条件が「主クエリ６００を分割する旨が予め指定された販売者端末２０から主クエリ６００を受信したこと」とすると、情報処理サーバ１０の制御部２０３は、予め指定された販売者端末２０から主クエリ６００を受信すれば、主クエリ６００を副クエリ７００に分割し、そうでなければ、主クエリ６００を分割せずに実行する。
【０２２４】
なお、検索処理の流れは、上述した図１５、図１６、図１７に示した流れと同様である。
【０２２５】
本実施形態によれば、販売者端末２０の性能に応じて負荷を分散してユーザの快適さを向上することができる。
【０２２６】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【０２２７】
情報処理システム１の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０２２８】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０２２９】
本発明によれば、ソートに関する負荷を分散してユーザの快適さを向上するために好適な情報処理システム、端末、サーバ、情報処理方法、記録媒体、ならびに、プログラムを提供することができる。
【符号の説明】
【０２３０】
１  情報処理システム
１０  情報処理サーバ
２０，２０Ａ，２０Ｂ，２０Ｃ  販売者端末
３０，３０Ａ，３０Ｂ，３０Ｃ  購入者端末
５０  通信ネットワーク
２０１  記憶部
２０２  通信部
２０３  制御部
２５１  商品データベース
２５２  受注リストデータベース
５０１  通信部
５０２  画像処理部
５０３  音声処理部
５０４  Ｉ／Ｏ部
５０５  入力部
５０６  記憶部
５０７  制御部
５５１  ディスプレイ
５５２  スピーカ
５５３  マイクロフォン
６００  主クエリ
７００，７００Ａ，７００Ｂ，７００Ｃ，７００Ｄ  副クエリ
１４０１  第１の送信部
１４０２  第１の受信部
１４０３  第２の送信部
１４０４  第２の受信部
１４０５  表示部
２０００  特性テーブル
【要約】
情報処理システム（１）において、販売者端末（２０）は主クエリを情報処理サーバ（１０）へ送信する。情報処理サーバ（１０）は、主クエリを販売者端末（２０）から受信し、ソート条件に基づく順序で複数の副クエリに分割して販売者端末（２０）へ送信する。販売者端末（２０）は、複数の副クエリを情報処理サーバ（１０）から受信し、指定された順序で副クエリを情報処理サーバ（１０）へ送信する。情報処理サーバ（１０）は、販売者端末（２０）から副クエリを受信するごとに副クエリを満たすレコードを検索し、販売者端末（２０）へ送信する。販売者端末（２０）は、検索されたレコードを受信し、受信したレコードを指定された順序に並べて表示する。副クエリを満たすレコードは、情報処理サーバ（１０）又は販売者端末（２０）によってソート条件によりソートされ、販売者端末（２０）によって表示される。【図１】
0005620617.tif 000002
【図２】
0005620617.tif 000003
【図３】
0005620617.tif 000004
【図４】
0005620617.tif 000005
【図５】
0005620617.tif 000006
【図６Ａ】
0005620617.tif 000007
【図６Ｂ】
0005620617.tif 000008
【図６Ｃ】
0005620617.tif 000009
【図７】
0005620617.tif 000010
【図８】
0005620617.tif 000011
【図９】
0005620617.tif 000012
【図１０】
0005620617.tif 000013
【図１１】
0005620617.tif 000014
【図１２】
0005620617.tif 000015
【図１３】
0005620617.tif 000016
【図１４】
0005620617.tif 000017
【図１５】
0005620617.tif 000018
【図１６】
0005620617.tif 000019
【図１７】
0005620617.tif 000020
【図１８】
0005620617.tif 000021
【図１９】
0005620617.tif 000022
【図２０】
0005620617.tif 000023