(57)【特許請求の範囲】
【請求項１】
設問と、該設問に対する回答形式とを定義する回答欄定義部と、
該回答欄定義部で定義された前記設問に対する利用者からの回答をどのように加工するのかを示す加工方法を定義する構成を有すると共に、利用者から送られてくる前記設問に対する回答をサーバに回収もしくは回収させ加工させる際の、複数種類の制約条件の内の一部の制約条件の値が定義されることにより、加工方法と値が未定義の制約条件の種類との組み合わせ毎に予め用意されている、前記値が未定義の制約条件の値を求めるための数式の中から、前記定義された加工方法と前記複数の制約条件の内の値が未定義の制約条件の種類との組み合わせに対応した数式を選択し、該選択した数式を利用して、前記値が未定義の制約条件の値を求める構成を有するサービス方法定義部とを備え、且つ、
前記制約条件が、回答の回収処理に許される回収時間、回答の加工処理に許される加工時間、利用者から送られてくると予測される予測回答数、回答に対する加工方法、設問に対する回答形式、回答の回収処理に使用するサーバ台数の全てもしくは一部を含むことを特徴とするサーバ構築支援システム。
【請求項２】
請求項１記載のサーバ構築支援システムにおいて、
前記加工方法と値が未定義の制約条件の種類との組み合わせ毎に予め用意されている数式は、
0003918697.tif 000016
なる第１の数式と、
0003918697.tif 000017
なる第２の数式とを利用して求めた数式であることを特徴とするサーバ構築支援システム（但し、前記第１の数式および前記第２の数式において、Ｐt(x)はサーバで回答１件当りの回収にかかる時間関数、Ｕfは回収サーバ１台当りの視聴者数、Ｐs(x)は回収サーバ１台当りの加工処理にかかる時間関数、Ｒrは回収に許される回収時間、Ｌrは加工項目数、Ｎc(x)はネットワーク接続時間関数、Ｍは使用する回収サーバの台数、Ｎt(x)はネットワークデータ転送時間関数、Ｐb(x)はサーバでの加工にかかる時間関数、Ｒsは回収受付終了から加工完了までに許される加工時間である）。
【請求項３】
請求項１記載のサーバ構築支援システムにおいて、
前記サービス方法定義部は、前記残りの制約条件が複数種類である場合、前記複数種類の制約条件が取り得る値の組み合わせを求める構成を有することを特徴とするサーバ構築支援システム。
【請求項４】
請求項３記載のサーバ構築支援システムにおいて、
前記サービス方法定義部は、求めた残りの制約条件の値を提示する構成を有することを特徴とするサーバ構築支援システム。
【請求項５】
請求項４記載のサーバ構築支援システムにおいて、
前記サービス方法定義部は、複数種類の制約条件が取り得る値の組み合わせを提示した場合、その中から１つの組み合わせを選択させる構成を有することを特徴とするサーバ構築支援システム。
【請求項６】
請求項３記載のサーバ構築支援システムにおいて、
前記サービス方法定義部は、制約条件が取り得る値の組み合わせを複数個求めた場合は、その中から予め決められている規則に従って１個の組み合わせを選択し提示する構成を有することを特徴とするサーバ構築支援システム。
【請求項７】
請求項１乃至６の何れか１項に記載のサーバ構築支援システムにおいて、
前記回答欄定義部で定義された前記設問に対する回答形式と、前記サービス方法定義部で定義された前記設問に対する回答の加工方法と、前記一部の制約条件の値と、前記サービス方法定義部で求められた残りの制約条件の値とに基づいて、予め用意されているサーバプログラムに、サーバ上で利用者からの回答を回収若しくは回収し加工する処理を行わせるための動作定義情報を生成するプログラム自動生成部と、
前記生成された動作定義情報を、前記制約条件の一つとして定義若しくは求められた数のサーバに送信する送信管理部とを備え、且つ、
前記動作定義情報は、前記設問に対する回答形式と、前記設問に対する回答の加工方法とを含み、
前記サーバプログラムは、前記動作定義情報に含まれている前記設問に対する回答形式と、前記設問に対する回答の加工方法とに基づいて、利用者から送られてくる回答を回収若しくは加工するプログラムであることを特徴とするサーバ構築支援システム。
【請求項８】
請求項１乃至７の何れか１項に記載のサーバ構築支援システムにおいて、
自サーバに依存する定数値を実際に計測を行って決定する定数決定部および該定数決定部で決定した定数値を前記サーバ構築支援システムに送信するサーバ側定数通信部を備えたサーバから送られてきた定数値を受信するシステム側定数通信部を備え、且つ、
前記サービス方法定義部が、前記残りの制約条件の値を求める際、前記システム側定数通信部で受信した定数値を利用する構成を有することを特徴とするサーバ構築支援システム。
【請求項９】
コンピュータが、設問と、該設問に対する回答形式とを定義する回答欄定義ステップと、
前記コンピュータが、前記回答欄定義ステップで定義された前記設問に対する利用者からの回答をどのように加工するのかを示す加工方法を定義する加工方法定義ステップと、
前記コンピュータが、利用者から送られてくる前記設問に対する回答をサーバに回収もしくは回収させ加工させる際の、複数種類の制約条件の内の一部の制約条件の値が定義されることにより、加工方法と値が未定義の制約条件の種類との組み合わせ毎に予め用意されている、前記値が未定義の制約条件の値を求めるための数式の中から、前記定義された加工方法と前記複数の制約条件の内の値が未定義の制約条件の種類との組み合わせに対応した数式を選択し、該選択した数式を利用して、前記値が未定義の制約条件の値を求めるサービス方法定義ステップとを含み、且つ、
前記制約条件が、回答の回収処理に許される回収時間、回答の加工処理に許される加工時間、利用者から送られてくると予測される予測回答数、回答に対する加工方法、設問に対する回答形式、回答の回収処理に使用するサーバ台数の全てもしくは一部を含むことを特徴とするサーバ構築支援方法。
【請求項１０】
請求項９記載のサーバ構築支援方法において、
前記加工方法と値が未定義の制約条件の種類との組み合わせ毎に予め用意されている数式は、
0003918697.tif 000018
なる第１の数式と、
0003918697.tif 000019
なる第２の数式とを利用して求めた数式であることを特徴とするサーバ構築支援方法（但し、前記第１の数式および前記第２の数式において、Ｐt(x)はサーバで回答１件当りの回収にかかる時間関数、Ｕfは回収サーバ１台当りの視聴者数、Ｐs(x)は回収サーバ１台当りの加工処理にかかる時間関数、Ｒrは回収に許される回収時間、Ｌrは加工項目数、Ｎc(x)はネットワーク接続時間関数、Ｍは使用する回収サーバの台数、Ｎt(x)はネットワークデータ転送時間関数、Ｐb(x)はサーバでの加工にかかる時間関数、Ｒsは回収受付終了から加工完了までに許される加工時間である）。
【請求項１１】
請求項９または１０記載のサーバ構築支援方法において、
前記コンピュータが、前記回答欄定義ステップで定義された前記設問に対する回答形式と、前記加工方法定義ステップで定義された前記設問に対する回答の加工方法と、前記一部の制約条件の値と、前記サービス方法定義ステップで求められた残りの制約条件の値とに基づいて、予め用意されているサーバプログラムに、サーバ上で利用者からの回答を回収若しくは回収し加工する処理を行わせるための動作定義情報を生成するプログラム自動生成ステップと、
前記コンピュータが、前記生成された動作定義情報を、前記制約条件の一つとして定義若しくは求められた数のサーバに送信する送信管理ステップとを含み、且つ、
前記動作定義情報は、前記設問に対する回答形式と、前記設問に対する回答の加工方法とを含み、
前記サーバプログラムは、前記動作定義情報に含まれている前記設問に対する回答形式と、前記設問に対する回答の加工方法とに基づいて、利用者から送られてくる回答を回収若しくは加工するプログラムであることを特徴とするサーバ構築支援方法。
【請求項１２】
請求項９乃至１１の何れか１項に記載のサーバ構築支援方法において、
前記コンピュータが、自サーバに依存する定数値を実際に計測を行って決定する定数決定部および該定数決定部で決定した定数値を前記サーバ構築支援システムに送信するサーバ側定数通信部を備えたサーバから送られてきた定数値を受信するシステム側定数通信ステップを含み、且つ、
前記コンピュータが、前記サービス方法定義ステップで、前記残りの制約条件の値を求める際、前記システム側定数通信ステップで受信した定数値を利用することを特徴とするサーバ構築支援方法。
【請求項１３】
コンピュータをサーバ構築支援システムとして機能させるためのプログラムであって、
前記コンピュータを、
設問と、該設問に対する回答形式とを定義する回答欄定義部、
該回答欄定義部で定義された前記設問に対する利用者からの回答をどのように加工するのかを示す加工方法を定義する構成を有すると共に、利用者から送られてくる前記設問に対する回答をサーバに回収もしくは回収させ加工させる際の、回答の回収処理に許される回収時間、回答の加工処理に許される加工時間、利用者から送られてくると予測される予測回答数、回答に対する加工方法、設問に対する回答形式、回答の回収処理に使用するサーバ台数の全てもしくは一部を含む複数種類の制約条件の内の一部の制約条件の値が定義されることにより、加工方法と値が未定義の制約条件の種類との組み合わせ毎に予め用意されている、前記値が未定義の制約条件の値を求めるための数式の中から、前記定義された加工方法と前記複数の制約条件の内の値が未定義の制約条件の種類との組み合わせに対応した数式を選択し、該選択した数式を利用して、前記値が未定義の制約条件の値を求める構成を有するサービス方法定義部として機能させるためのプログラム。
【請求項１４】
請求項１３記載のプログラムにおいて、
前記加工方法と値が未定義の制約条件の種類との組み合わせ毎に予め用意されている数式は、
0003918697.tif 000020
なる第１の数式と、
0003918697.tif 000021
なる第２の数式とを利用して求めた数式であることを特徴とするプログラム（但し、前記第１の数式および前記第２の数式において、Ｐt(x)はサーバで回答１件当りの回収にかかる時間関数、Ｕfは回収サーバ１台当りの視聴者数、Ｐs(x)は回収サーバ１台当りの加工処理にかかる時間関数、Ｒrは回収に許される回収時間、Ｌrは加工項目数、Ｎc(x)はネットワーク接続時間関数、Ｍは使用する回収サーバの台数、Ｎt(x)はネットワークデータ転送時間関数、Ｐb(x)はサーバでの加工にかかる時間関数、Ｒsは回収受付終了から加工完了までに許される加工時間である）。
【請求項１５】
請求項１３または１４記載のプログラムにおいて、
前記コンピュータを、
前記回答欄定義部で定義された前記設問に対する回答形式と、前記サービス方法定義部で定義された前記設問に対する回答の加工方法と、前記一部の制約条件の値と、前記サービス方法定義部で求められた残りの制約条件の値とに基づいて、予め用意されているサーバプログラムに、サーバ上で利用者からの回答を回収若しくは回収し加工する処理を行わせるための動作定義情報を生成するプログラム自動生成部、
前記生成された動作定義情報を、前記制約条件の一つとして定義若しくは求められた数のサーバに送信する送信管理部として機能させ、且つ、
前記動作定義情報は、前記設問に対する回答形式と、前記設問に対する回答の加工方法とを含み、
前記サーバプログラムは、前記動作定義情報に含まれている前記設問に対する回答形式と、前記設問に対する回答の加工方法とに基づいて、利用者から送られてくる回答を回収若しくは加工するプログラムであることを特徴とするプログラム。
【請求項１６】
請求項１３乃至１５の何れか１項に記載のプログラムにおいて、
前記コンピュータを、
自サーバに依存する定数値を実際に計測を行って決定する定数決定部および該定数決定部で決定した定数値を前記サーバ構築支援システムに送信するサーバ側定数通信部を備えたサーバから送られてきた定数値を受信するシステム側定数通信部として機能させ、且つ、
前記サービス方法定義部が、前記残りの制約条件の値を求める際、前記システム側定数通信部で受信した定数値を利用する構成を有することを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、利用者からネットワークを介して送られてくる回答もしくは情報を回収，加工するサーバの構築を支援する技術に関し、特に予め定められている期間内に大量に送られてくる回答等を回収，加工する多量同時アクセス処理サーバの構築を支援するサーバ構築支援技術に関する。
【０００２】
【従来の技術】
多量同時アクセス処理サーバは、予め定められている期間内に多数の利用者から送られてくる回答や情報を回収，加工するサーバであり、このようなサーバは、例えば、双方向番組やWebショッピング等で利用される。ところで、多量同時アクセス処理サーバを構築する場合には、その利用分野に応じて種々の制約条件が発生する。例えば、番組中で視聴者に対してアンケート、クイズ、リクエストの受け付け等の設問を発し、それらに対する回答を利用して番組を進行する双方向番組の回答回収加工用のサーバとして利用する場合には、例えば、回答の回収時間、回答の集計時間、回答の回収に使用するサーバ台数、視聴者数（回答数）、回答形式、設問数、集計方法等が制約条件となる。これらの制約条件は関連し、或る制約条件の値が決定すると、他の制約条件の値が決まる。
【０００３】
上記したような各種の制約条件の値を適切な値にすることが、双方向番組の進行を円滑にしたり、Webショッピングの運営を円滑にする上で重要になり、従来は各種制約条件の値を人手により決定していた。例えば、回答の回収時間、回答の集計時間、視聴者数等が決まっている場合には、決定している制約条件の値に基づいて残りの制約条件（例えば、回収処理に使用するサーバ台数）を人手により決定していた。
【０００４】
尚、アンケートに対する回答をネットワークを介してサーバで受け付け、処理する従来の技術としては、サーバから各アンケート回答者に対してアンケートを送信し、アンケート回答者から返信されてきた回答を回答格納部に格納した後、集計回収部において集計分析するというものが知られている（例えば、特許文献１、２参照）。しかし、これらの特許文献には、双方向番組，Webショッピング等に利用する多量同時アクセス処理サーバ特有の制約条件については、全く記載されていない。
【０００５】
【特許文献１】
特開平８−２７２７７３号公報
【特許文献２】
特開２００１−１８４２７３号公報
【０００６】
【発明が解決しようとする課題】
上述したように、従来は、多量同時アクセス処理サーバ特有の各種制約条件の値を人手により決定していたため、適切な値を決定するために多くの時間がかかるという問題があると共に、適切な値が決定されない場合があるという問題がある。また、適切な値が決定されなかった場合は、双方向番組，Webショッピング等の運営に種々の悪影響を及ぼすという問題もある。例えば、回答の回収時間、回答の集計時間、視聴者数などの値によって決まる適切なサーバ台数に比較して人手で求めたサーバ台数が少ない場合は、一部の回答しか回収することができないという問題が発生し、これとは逆に人手で決定したサーバ台数の方が多い場合は、サーバの利用効率が悪くなるという問題が発生する。
【０００７】
そこで、本発明の目的は、適切な制約条件の値を短時間で求められるようにすることにある。
【０００８】
【課題を解決するための手段】
本発明のサーバ構築支援システムは、上記目的を達成するため、
利用者からネットワークを介して送られてくる回答もしくは情報をサーバで回収したり、回収し加工（統計演算による処理等）する際の、複数種類の制約条件の内の一部の値が定義されることにより、値が定義された制約条件以外の残りの制約条件の値を求めるサービス方法定義部を備えている。また、サービス方法定義部は、残りの制約条件の値を求める際、上記サーバもしくは上記サーバと同等環境を有するサーバ上で実際に計測された上記サーバに依存する定数値を利用する。また、サービス方法定義部は、求めた残りの制約条件の値を番組制作者等に提示する。その際、残りの制約条件が複数種類である場合は、上記複数種類の制約条件が取り得る値の組み合わせを番組制作者等に提示し、その中から１つの組み合わせを選択させたり、上記複数種類の制約条件が取り得る値の組み合わせの中から予め決められている規則に従って１つの組み合わせを選択し、番組制作者等に提示する。
【０００９】
この構成によれば、サービス方法定義部が入力された一部の制約条件の値に基づいて、残りの制約条件の値を求めるので、適切な制約条件の値を短時間で求めることが可能になる。また、残りの制約条件の値を求める際、実際に計測されたサーバに依存する定数値を利用するので、適切な制約条件の値を求めることができる。また、番組制作者等は、サービス方法定義部によって求められた残りの制約条件の値を、サービス方法定義部によって提示された内容に基づいて確認することができる。更に、複数種類の制約条件がとり得る値の組み合わせが提示された場合は、その中から番組制作者等が適当と考える組み合わせを選択することができる。なお、制約条件としては、例えば、回答の回収処理に許される回答回収時間、回答の加工処理に許される加工時間、回収する回答数、回答に対する加工方法、設問に対する回答形式、回答の回収処理に必要になるサーバ台数等がある。
【００１０】
また、本発明のサーバ構築支援システムは、定義された一部の制約条件の値およびサービス方法定義部によって求められた残りの制約条件の値に応じた動作をサーバに行わせるため、
値が定義されている一部の制約条件、サービス方法定義部で求められた残りの制約条件の値、番組制作者や予め決められている規則によって選択された制約条件の値の組み合わせに基づいて、利用者からの回答や情報をサーバで回収もしくは回収し加工するためのサーバプログラムを生成したり、或いは予め用意されているサーバプログラムに、視聴者からの回答を回収若しくは回収し加工させるための動作定義情報を生成するプログラム自動生成部を備えている。また、プログラム自動生成部で生成されたサーバプログラムや動作定義情報は、配信管理部によってサーバへ送信される。
【００１１】
この構成によれば、各種制約条件の値に応じたサーバプログラムや予め用意されているサーバプログラムの動作を制御する動作定義情報を自動的に生成することができるので、サーバの利用分野にあった方法で利用者からの回答を回収したり、加工することが可能になる。
【００１２】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１３】
図１は本発明の実施の形態の構成例を示すブロック図であり、サーバ構築支援システム１と、複数台の回収サーバ２−１〜２−Ｎと、加工サーバ３とから構成されている。サーバ構築支援システム１は、双方向番組用の多量同時アクセス処理サーバや、Webショッピング用の多量同時アクセス処理サーバなどの各種多量同時アクセス処理サーバの構築を支援することができるものであるが、以下では、双方向番組用の多量同時アクセス処理サーバの構築を支援する場合を例にとって説明を行う。
【００１４】
サーバ構築支援システム１は、番組中で視聴者に対してアンケート，クイズなどの設問を発し、視聴者からの回答を利用して番組を進行する双方向番組で使用する多量同時アクセス処理サーバの構築を支援するシステムであり、アンケートエディタ１１と、サービス定義エディタ１２と、プログラムジェネレータ１３と、サービスプログラムレポジトリ１４と、サーバプログラム配信管理サービス部１５とを備えている。なお、双方向番組は、放送、通信、若しくはパッケージ流通の内の、何れか１つ若しくは複数の経路によって提供される番組であり、視聴者からの回答はインターネットなどのネットワークを介して回収される。また、サーバ構築支援システム１は、例えば、コンピュータによって実現されるものである。コンピュータは、ディスク、半導体メモリなどの記録媒体に記録されているプログラムを読み取り、その動作を制御することで、コンピュータ上に、アンケートエディタ１１、サービス定義エディタ１２、プログラムジェネレータ１３、及びサーバプログラム配信管理サービス部１５を実現する。
【００１５】
アンケートエディタ１１は、回答欄定義部として機能するものであり、アンケート，クイズ，購入申し込み等の設問および設問に対する回答形式を定義する機能を有する。
【００１６】
サービス定義エディタ１２は、サービス方法定義部として機能するものであり、視聴者からの回答を回収したり、回収加工したりする際の、複数種類の互いに関連する制約条件の内の一部の値が入力されることにより、残りの制約条件の値を求める機能を有する。ここで、制約条件としては、例えば、回答の回収処理に許される回収時間、回答の加工処理（統計処理や抽出処理など）に許される加工時間、予想回答数、回答の加工方法、設問に対する回答形式、回答の回収処理に使用する回収サーバの台数などがある。
【００１７】
プログラムジェネレータ１３は、プログラム自動生成部として機能するものであり、アンケートエディタ１１で定義された回答形式や、サービス定義エディタ１２に入力された一部の制約条件の値や、サービス定義エディタ１２によって求められた残りの制約条件の値に基づいて、回収サーバ２−１〜２−Ｎ用の動作定義ファイル（回収用動作定義ファイル）および加工サーバ３用の動作定義ファイル（加工用動作定義ファイル）を生成する機能を有する。回収用動作定義ファイル，加工用動作定義ファイルは、予め用意されている回収用サーバプログラム，加工用サーバプログラムの動作を定義するファイルである。
【００１８】
サービスプログラムレポジトリ１４には、上記した予め用意されている回収用サーバプログラム，加工用サーバプログラムと、プログラムジェネレータ１３で生成された回収用動作定義ファイル，加工用動作定義ファイルとが対応付けて格納される。
【００１９】
サーバプログラム配信管理サービス部１５は、サービスプログラムレポジトリ１４に格納されている回収用サーバプログラム，加工用サーバプログラム，回収用動作定義ファイル，加工用動作定義ファイルを、何時、配信するのかを示すスケジュール情報を管理している。そして、上記配信タイミングになると、サービスプログラムレポジトリ１４から回収用サーバプログラム，加工用サーバプログラム，回収用動作定義ファイル，加工用動作定義ファイルを取り出し、配信する。
【００２０】
回収サーバ２−１〜２−Ｎは、サーバプログラム配信管理サービス部１５から送られてきた回収用サーバプログラム，回収用動作定義ファイルに従った動作を行うものであり、アンケート回収サービス部２１と、加工ミドルウェア部２２と、回収ミドルウェア部２３と、データ送信ミドルウェア部２４と、Webサーバ２５とから構成されている。ここで、アンケート回収サービス部２１、加工ミドルウェア部２２、回収ミドルウェア部２３、データ送信ミドルウェア部２４は、サーバプログラム配信管理サービス部１５から送られてきた回収用サーバプログラム，回収用動作定義ファイルによって実現されるものである。従って、回収用動作定義ファイルの内容によっては、回収サーバ２−１〜２−Ｎの構成が、図１と異なるものになる場合がある。本実施の形態では、図２或いは図３のブロック図に示す構成をとる場合がある。図２に示した構成は、図１に示した構成から回収ミドルウェア部２３を取り除いた構成であり、図３に示した構成は、図１に示した構成から加工ミドルウェア部２２を取り除いた構成である。
【００２１】
加工サーバ３は、サーバプログラム配信管理サービス部１５から送られてきた加工用サーバプログラム，加工用動作定義ファイルに従った動作を行うものであり、データ受信ミドルウェア部３１と、加工サービス部３２と、回収サービス部３３と、回答データベース（回答ＤＢ）３４と、レポートサービス部３５と、Webサーバ３６とから構成されている。ここで、データ受信ミドルウェア部３１、加工サービス部３２、回収サービス部３３、レポートサービス部３５は、サーバプログラム配信管理サービス部１５から送られてきた加工用サーバプログラム，加工用動作定義ファイルによって実現されるものである。従って、加工用動作定義ファイルの内容によっては、加工サーバ３の構成が図１とは異なるものになる場合がある。本実施の形態では、図４或いは図５のブロック図に示す構成をとる場合がある。図４の構成は、図１の構成から回収サービス部３３を取り除いた構成であり、図５の構成は、図１の構成から加工サービス部３２を取り除いた構成である。
【００２２】
【実施の形態の動作】
次に本実施の形態の動作について説明する。図６は、本実施の形態の処理例の概略を示したフローチャートであり、同図を参照して本実施の形態の動作を説明する。
【００２３】
先ず、ステップＳ６１のアンケートエディタ１１による入力処理が行われる。このステップＳ６１の処理は、番組制作者がアンケートエディタ１１を起動することにより開始される。アンケートエディタ１１は、起動されると、図７に示すようなアンケートエディタ画面７１を表示する。このアンケートエディタ画面７１には、設問入力欄７２と、回答形式選択欄７３と、決定ボタン７４と、終了ボタン７５とが設けられている。
【００２４】
番組制作者は、アンケートエディタ画面７１が表示されると、設問入力欄７２に、双方向番組中で視聴者に対して発する設問をキーボードから入力する。図７の例では設問「年収は？」が入力されている。その後、番組制作者は、回答形式選択欄７３に表示されている回答形式の中から１つの回答形式をマウスなどを用いて選択する。図７の例では、設問「年収は？」に対する回答形式として「選択」が選択されている。必要事項の入力が完了すると、番組制作者は、決定ボタン７４をクリックする。なお、回答形式選択欄７３で「選択」が選択された場合は、アンケートエディタ１１は、選択肢入力用のアンケートエディタ画面を表示し、番組制作者に選択肢を入力させる。
【００２５】
これにより、アンケートエディタ１１は、設問入力欄７２に入力された内容と、回答形式選択欄７３で選択された内容とを含むアンケート項目ファイル（回答形式として「選択」が選択された場合は選択肢も含む）を生成し、それにユニークなファイルＩＤを付与する。その後、アンケートエディタ１１は、設問入力欄７２を未入力状態（空白状態）に戻すと共に、回答形式選択欄７３を未選択状態にする。番組制作者は、双方向番組中で視聴者に対して発する設問が他にもある場合は、再度前述した操作と同様の操作を行い、そうでない場合は終了ボタン７５をクリックする。終了ボタン７５がクリックされると、アンケートエディタ１１は、生成した全てのアンケート項目ファイルを出力する。以上が、ステップＳ６１で行われる処理である。なお、上述した実施の形態では、番組制作者が、設問を構成する全ての文字列をキーボードを用いて入力し、設問の回答形式をマウス等を用いて選択するようにしたが、設問中の定形部分、および上記設問に対する回答形式が設定されている、予め用意されているテンプレートを使用して設問，回答形式を入力するようにしても良い。
【００２６】
その後、ステップＳ６２のサービス定義エディタ１２による入力処理が行われる。ステップ６２において、サービス定義エディタ１２は、先ず、アンケートエディタ１１から出力されたアンケート項目ファイルを全て読み込み、その後、図８に示すような、サービス定義エディタ画面８１を表示する。このサービス定義エディタ画面８１には、アンケート項目選択欄８２と、加工方法選択欄８３と、決定ボタン８４と、終了ボタン８５とが設けられている。アンケート項目選択欄８２には、アンケートエディタ１１から出力された各アンケート項目ファイルに含まれている設問が表示されている。また、加工方法選択欄８３には、設問に対する回答の加工方法が複数表示されている。本実施の形態では、加工方法として「単純集計」，「クロス集計」，「合計」，「抽選」，「上位者抽出」，「下位者抽出」，「先着者抽出」，「回収のみ」が表示されているが、加工方法はこれらに限られるものではなく、標本、度数分布、平均、標準偏差、相関係数等の統計演算を行う処理や、部分データ抽出、暗号化、復号化、認証、比較、文書改竄、情報提供、メニュー表示等の統計値演算外の処理を採用できる。なお、加工方法選択欄８３に表示されている各加工方法は、それぞれ次のことを意味する。
【００２７】
・「単純集計」…１つの設問に係る選択肢毎の回答数を集計する処理。
・「クロス集計」…複数の設問に関し、予め決められている選択肢の組み合わせを選択している回答数を集計する処理。（例えば、設問１では選択肢Ａを選び且つ設問２では選択肢Ｂを選んでいる回答数を集計する処理）
・「合計」…或る設問に対する回答の内、条件に合う回答の回答数を集計する処理。
・「抽選」…視聴者から送られてくる回答の中から予め決められている数の回答をランダムに選ぶ処理。
・「上位者抽出」…或る設問に対する回答中の数値に着目し、その値が大きなものを予め決められている数だけ選択する処理。
・「下位者抽出」…或る設問に対する回答中の数値に着目し、その値が小さいものを予め決められている数だけ選択する処理。
・「先着者抽出」…視聴者から送られてくる回答の中から、到着順が早いものから所定個数の回答を選択する処理。
・「回収のみ」…視聴者から送られてくる回答を保存する処理。
【００２８】
番組制作者は、図８に示すようなサービス定義エディタ画面８１が表示されると、アンケート項目選択欄８２に表示されている複数の設問の中から双方向番組中で使用する設問の内の１つを選択し、更に、選択した設問に対する回答の加工方法を加工方法選択欄８３に表示されているものの中から１つ選択する。図８の例では、設問「Ｑ２．結婚していますか？」と、加工方法「合計」が選択されている。その後、番組制作者は、決定ボタン８４をクリックする。これにより、サービス定義エディタ１２は、選択された設問と加工方法との対を記憶する。番組制作者は、双方向番組中で使用する設問が他にもある場合は、前述した操作と同様の操作を行い、そうでない場合は、終了ボタン８５をクリックする。
【００２９】
終了ボタン８５がクリックされると、サービス定義エディタ１２は、図９に示すようなサービス定義エディタ画面９１を表示する。このサービス定義エディタ画面９１には、推定視聴者数（推定回答数）を入力する推定視聴者数入力欄９２と、回答の回収にかけられる時間を入力する回収時間入力欄９３と、回答の加工処理にかけられる時間を入力する加工時間入力欄９４と、使用可能な最大サーバ台数を入力する最大サーバ台数入力欄９５と、使用することが必要になる回収サーバの台数を入力する使用サーバ台数入力欄９６と、決定ボタン９７とが設けられている。
【００３０】
番組制作者は、図９に示すサービス定義エディタ画面９１が表示されると、既に値を決定若しくは予定している制約条件については入力欄９２〜９６の内の対応する入力欄に値を入力し、値を求めたい制約条件に対応する入力欄は空白のままにしておく。図９の例は、使用サーバ台数を求める際の入力例を示しており、使用サーバ台数の入力欄９６が空白になっている。番組制作者は、上記した操作を行うと、決定ボタン９７をクリックする。これにより、サービス定義エディタ１２は、入力欄９２〜９６の内の、空欄になっている制約条件の値を求める。
【００３１】
以下、空欄になっている制約条件の値を求める処理を、次の３つのケースＡ〜Ｃに分けして説明する。
【００３２】
・ケースＡ…図８のサービス定義エディタ画面８１において、加工方法として「回収のみ」以外の加工方法が選択された場合
・ケースＢ…図８のサービス定義エディタ画面８１において、加工方法として「回収のみ」だけが選択された場合
・ケースＣ…図８のサービス定義エディタ画面８１において、加工方法として「回収のみ」と他の加工方法との両方が選択された場合
【００３３】
（ケースＡについて）
先ず、ケースＡについて説明する。このケースでは、次式（１），（２）に示す回収サーバ，加工サーバの数理モデルを利用して予め求めておいた数式（空欄になっている制約条件の値を求めるための数式であり、加工方法と制約条件の種類との組み合わせ毎に存在する）を用いて、図１０，図１１のフローチャートに示す処理を行うことにより、サービス定義エディタ画面９１において空欄になっている制約条件の値を求める。なお、図１０は空欄の数が１つの場合の処理例を示し、図１１は空欄が複数個である場合の処理例を示す。また、式（１），（２）の数理モデルはそれぞれ図２，図４に示す構成に対応する。
【００３４】
0003918697.tif 000002
0003918697.tif 000003
【００３５】
0003918697.tif 000004
0003918697.tif 000005
【００３６】
なお、式（１），（２）において、Ｐt(x)は回収サーバで回答１件当りの回収にかかる時間関数、Ｕfは回収サーバ１台当りの視聴者数、Ｐs(x)は回収サーバ１台当りの加工処理にかかる時間関数、Ｒrは回収に許される回収時間、Ｌrは加工項目数、Ｎc(x)はネットワーク接続時間関数、Ｍは使用する回収サーバの台数、Ｎt(x)はネットワークデータ転送時間関数、Ｐb(x)は加工サーバでの加工にかかる時間関数、Ｒsは回収受付終了から加工完了までに許される加工時間である。
【００３７】
先ず、式（１），（２）に基づいて予め求めておく数式について説明しておく。上述したように、数式は、加工方法と制約条件の種類（未知数の種類）との組み合わせ毎に存在するが、ここでは、加工方法「合計」、未知数の種類「使用サーバ台数」の組み合わせに対応する数式についてのみ説明する。
【００３８】
回収サーバ２−１〜２−Ｎの内のＭ台（１≦Ｍ≦Ｎ）の回収サーバそれぞれで処理すべき視聴者数Ｕfは、全体の視聴者数(予想視聴者数)Ｕaをサーバ台数Ｍで均等配分した値であるので、次式（３）に示すものとなる。
【００３９】
Ｕf＝Ｕa／Ｍ            …    （３）
【００４０】
また、回収時間が回答のデータ量のみに比例するとした場合、時間関数Ｐt(x)は、次式（４）に示すものとなる。
【００４１】
Ｐt(x)＝（ＡaＴa＋Ｃa）x         …  （４）
【００４２】
ここで、Aaは１回答当たりの平均データ量、Taは回収データの単位データ当たりの回収時間、Caは１回答当たりの回収オーバーヘッド時間である。
【００４３】
加工方法「合計」において、各項目の加算にかかる計算時間が項目と関係なく均一な時間Ｆ1であるとすれば、次式（５）が成り立つ。
【００４４】
Ｐs(x)＝Ｆ1x         …  （５）
【００４５】
式（３）〜（５）を式（１）に代入すると、次式(６)が得られる。
【００４６】
（ＡaＴa＋Ｃa＋Ｆ1Ｌr）Ｕa／Ｍ≦Ｒr    …    （６）
【００４７】
更に、サーバ台数Ｍについて変形することにより、次式（７）を得ることができる。
【００４８】
Ｍ≧（ＡaＴa＋Ｃa＋Ｆ1Ｌr）Ｕa／Ｒr    …    （７）
【００４９】
回収サーバと加工サーバ３の間のネットワーク接続が、一つの回収サーバからのデータ転送が完了するのを待ち順次接続される場合、理想値では均一の接続オーバーヘッド時間に比例するので、次式（８）が成り立つ。
【００５０】
Ｎc(x)＝Ｎox       …    （８）
【００５１】
ここで、Noは回収サーバと加工サーバ３間での１回当たり接続オーバーヘッド時間である。
【００５２】
また、理想的なネットワーク転送での転送時間はデータ量とオーバーヘッド量に比例するので、次式（９）が成り立つ。
【００５３】
Nt(x)＝Ｎpx(Ｑ+Ｃb)       …    （９）
【００５４】
ここで、Npは単位バイト当たりのネットワーク転送時間、Qは各加工項目のデータ量、Cbは加工項目毎のオーバーヘッドデータ量である。
【００５５】
加工サーバ３での加工時間はサーバ台数Ｍに比例するので、次式（１０）が成り立つ。
【００５６】
Ｐb（x）＝Ｂ１x …    （１０）
【００５７】
Ｂ1は加工サーバ３での、回収サーバ１台当たりの加工時間である。
【００５８】
ここで、Qが全ての加工項目で同一で、かつCbが全加工項目で均一だとすれば、式（８）〜（１０）を式（２）代入することにより、次式（１１）を得ることができる。
【００５９】
ＮoM＋NpMLr（Ｑ+Ｃb）+Ｂ1MLr≦Ｒs     …    （１１）
【００６０】
これを更にサーバ台数Ｍについて変形すると、次式（１２）が得られる。
【００６１】
Ｍ≦Ｒs／｛Ｎo＋NpLr（Ｑ+Ｃb）+Ｂ1Lr｝      …    （１２）
【００６２】
上記した式（７），（１２）が、加工方法「合計」、未知数「使用サーバ台数」の組み合わせに対応して設けられている数式であり、サービス定義エディタ１２は、上記した式（７），（１２）を内部に保持している。サービス定義エディタ１２は、上記した式（７），（１２）以外にも、加工方法と未知数との組み合わせ毎の数式を保持している。
【００６３】
次に、サービス定義エディタ画面９１における空欄が１つの場合(値を求める制約条件が１種類の場合)の動作について説明する。図１０のフローチャートに示すように、サービス定義エディタ画面８１で選択された加工方法と、サービス定義エディタ画面９１で空欄になっている入力欄の種類（未知数の種類）とに基づいて、加工方法と未知数の種類との組み合わせ毎に存在する数式の中から使用する数式を選択する（ステップＳ１０１）。次いで、ステップＳ１０１で選択した各数式の各変数に、サービス定義エディタ画面８１，９１で与えられている対応する制約条件の値を入力し、上記各式を満たす未知数の値の内の、例えば最小値を求める（ステップ１０２）。これにより、空欄になっている制約条件の値が求まる。
【００６４】
例えば、サービス定義エディタ画面８１，９１で加工方法「合計」，未知数「使用サーバ台数Ｍ」が選択された場合は、ステップＳ１０１で、式（７），（１２）が選択され、次のステップＳ１０２で式（７），（１２）の「使用サーバ台数Ｍ」以外の変数に、サービス定義エディタ画面８１，９１で与えられている各制約条件（推定視聴者数，回収時間など）の値を代入し、式（７），（１２）の両方を満たす使用サーバ台数Ｍの値の最小値を求める。
【００６５】
上述したようにして未知の制約条件の値の最小値を求めると、サービス定義エディタ１２は、図１２に示すようなサービス定義エディタ画面１２１を表示する。このサービス定義エディタ画面１２１には、入力データ確認欄１２２と、算出データ確認欄１２３と、可否ボタン１２４とが設けられている。番組制作者は、この表示を見て、算出されたデータ（必要サーバ台数：３６台）を了解する場合は、可否ボタン１２４中の「了解」をクリックする。これにより、サービス定義エディタ１２は、算出されたサーバ台数、回収時間、加工時間、加工方法、回収・加工の対象となるアンケート項目を定義したサービス定義ファイルを作成する。サービス定義ファイルの一例を図１３に示す。図１３の例は、回収の開始，終了日時を定義する項目１３１と、加工の開始，終了日時を定義する項目１３２と、加工方法を定義する項目１３３，１３４と、加工対象を定義する項目１３５とを含んでいる。なお、回収の開始，終了日時および加工の開始，終了日時は番組制作者がサービス定義エディタ１２に入力しておくものである。
【００６６】
次に、サービス定義エディタ画面９１における空欄が複数（値を求める制約条件が複数）の場合の動作を、図１１のフローチャートを参照して説明する。
【００６７】
先ず、サービス定義エディタ画面８１で選択された加工方法と、サービス定義エディタ画面９１で空欄になっている入力欄の種類（未知数の種類）とに基づいて、加工方法と未知数の種類との組み合わせ毎に存在する数式の中から使用する数式を選択する（ステップＳ１１１）。次いで、ステップＳ１１１で選択した各数式それぞれに対して、値を求める変数の内の１つを左辺に、その他の変数を右辺におくような変形を行う（ステップＳ１１２）。その際、各数式において、同じ変数が左辺に置かれるようにする。その後、各数式に対して、サービス定義エディタ画面８１，９１で与えられている変数の値を代入する（ステップＳ１１３）。更に、各数式の右辺中に変数として残っている項目に、予め与えられている制約を満たす適当な数値を１つ代入し、左辺の変数が取り得る値の内の例えば最小値（上記した各数式の全てを満足させる左辺の変数が取り得る値の最小値）を求める（ステップＳ１１４）。このステップＳ１１４の処理を、制約を満たす適当な数値がなくなるまで（ステップＳ１１５がＮＯとなるまで）、繰り返し行う。そして、ステップＳ１１５の判断結果がＮＯとなると、右辺の未知の変数に与えられた数値の範囲と、それによって得られる左辺の値の最小値とを組にして、全て若しくは一部を出力する（ステップＳ１１６）。
【００６８】
例えば、サービス定義エディタ画面９１において、回収時間入力欄９３と使用サーバ台数入力欄９６とが空欄になっている場合には、サーバ台数が左辺、その他の変数が右辺になるように各数式を変形しておく。次に、変形された各数式にサービス定義エディタ画面８１，９１において入力されているデータ（推定視聴者数，加工時間など）を代入する。この例では、右辺に変数として回収時間が残っているので、回収時間が受ける制約（回収時間が０よりも大きいという制約）と、左辺のサーバ台数が受ける制約（サーバ台数は１台以上、用意することができるサーバ台数の上限値は１０００台という制約）とを使用する。この制約の中で、回収時間とサーバ台数との関係を、代入される値の組として求める。回収時間がある大きさだけ増加する度にサーバ台数は１台増加するので、最終的な組み合わせは、番組制作者の判断のしやすさを考慮して、以下に示すように、範囲をまとめて出力する。
【００６９】
回収時間：０〜１００（秒）、サーバ台数：１
回収時間：１００〜２００（秒）、サーバ台数：２
回収時間：２００〜３００（秒）、サーバ台数：３
…
回収時間：９９００〜１００００（秒）、サーバ台数：１００
【００７０】
上述したようにして、未知の制約条件（上記した例では、使用サーバ台数と、回収時間）が取り得る値の組み合わせを求めると、サービス定義エディタ１２は、図１４のフローチャートに示すように、その組み合わせの全てを画面に表示し、番組制作者に提示する（ステップＳ１４１）。この表示を見た番組制作者は、表示されている組み合わせの中から１つの組み合わせを選択する（ステップＳ１４２）。これにより、サービス定義エディタ１２は、サービス定義ファイルを生成し、出力する。
【００７１】
なお、サービス定義ファイルの生成方法は、これに限られるものではなく、例えば、図１５のフローチャートに示すように、全ての値の組み合わせの中から、予め決められている優先度に従って、最もふさわしい組み合わせを決定するようにしても良い（ステップＳ１５１）。例えば、優先度として「サーバ台数が少ないものを優先」が予め決められている場合は、サーバ台数が最小になる組み合わせを選択する。
【００７２】
（ケースＢについて）
次に、ケースＢについて説明する。このケースＢでは、次式（１３），（１４）に示す回収サーバ，加工サーバの数理モデルを利用して予め求めておいた数式（空欄になっている制約条件の値を求めるための数式であり、加工方法「回収のみ」と制約条件の種類との組み合わせ毎に存在する）を用いて、図１０，図１１のフローチャートに示す処理を行うことにより、サービスエディタ画面９１において空欄になっている制約条件の値を求める。なお、式（１３），（１４）の数理モデルは、それぞれ図３，図５に示した構成に対応する。
【００７３】
0003918697.tif 000006
0003918697.tif 000007
【００７４】
0003918697.tif 000008
0003918697.tif 000009
【００７５】
式（１３），（1４）において、Pm(x)は回収サーバで回答１件当たりの格納にかかる回収時間関数、Nt(x,y)はネットワークデータ転送時間関数、Pw(x,y)は加工サーバでの蓄積時間関数、Ｒs2は受付終了から蓄積完了までに許される時間である。
【００７６】
ここで、式（１３），（１４）に基づいて予め求めておく数式について説明しておく。ここでは、加工方法「回収のみ」、未知数「使用サーバ台数」に対応する数式についてのみ説明する。
【００７７】
回収サーバ２−１〜２−Ｎの内のＭ台（１≦Ｍ≦Ｎ）の回収サーバそれぞれで処理すべき視聴者数Ｕfは、全体の視聴者数(予想視聴者数)Ｕaをサーバ台数Ｍで均等配分した値であるので、次式（１５）に示すものとなる。
【００７８】
Ｕf＝Ｕa／Ｍ      …    （１５）
【００７９】
また、回収時間が回答のデータ量のみに比例するとした場合、時間関数Ｐt(x)は、次式（１６）に示すものとなる。
【００８０】
Ｐt(x)＝（ＡaＴa＋Ｃa）x     …  （１６）
【００８１】
また、１格納項目当たりの平均データ量Pvを推定できると仮定すれば、格納時間は、平均データ量と単位バイト当たりの処理時間Tdに比例するので、Ｐm(x)は次式（１７）に示すものとなる。
【００８２】
Ｐm(x)＝ＰvＴdx    …    （１７）
【００８３】
式（１５）〜（１７）を式（１３）に代入すると、次式（１８）が得られる。
【００８４】
（ＡaＴa＋Ｃa＋ＰvＴdＬr）Ｕa／Ｍ≦Ｒr    …    （１８）
【００８５】
これを使用サーバ台数Ｍについて変形すると、次式（１９）が得られる。
【００８６】
Ｍ≧（ＡaＴa＋Ｃa＋ＰvＴdＬr）Ｕa／Ｒr    …  （１９）
【００８７】
回収サーバと加工サーバの間のネットワーク接続が、一つの回収サーバからのデータ転送が完了するのを待ち順次接続される場合、理想値では均一の接続オーバーヘッド時間に比例するので、次式（２０）が成り立つ。
【００８８】
Ｎc(x)＝Ｎox   …    （２０）
【００８９】
ここで、Noは、回収サーバと加工サーバ間での１回当たりの接続オーバーヘッド時間である。
【００９０】
また、理想的なネットワーク転送での転送時間はデータ量とオーバーヘッド量に比例するので、１件当たりの平均転送データ量をAbとすれば、次式（２１）が成り立つ。
【００９１】
Ｎt(x,y)＝y{x(ＡbＴb＋Ｃc)＋Ｃd}     …    （２１）
【００９２】
ここで、Tbは回収サーバから加工サーバへの回収データの単位データ当たりの転送時間、Ccは回収サーバから加工サーバへの転送１件当たりのオーバーヘッド処理時間、Cdは回収サーバから加工サーバへの回収サーバ１台当たりの転送オーバーヘッド処理時間である。
【００９３】
加工サーバで格納される１件当たりの平均格納データ量をAcとすれば、次式（２２）が成り立つ。
【００９４】
Ｐw(x,y)＝y{x(ＡcＴc＋Ｃe)＋Ｃf}       …    （２２）
【００９５】
ここで、Tcは加工サーバでの、回収データの単位データ当たりの格納時間、Ceは加工サーバでの、格納１件当たりのオーバーヘッド処理時間、Cfは加工サーバでの格納に際する、回収サーバ１台当たりのオーバーヘッド処理時間である。式（２０）〜（２２）を式（１４）に代入することにより、次式（２３）が得られる。
【００９６】
0003918697.tif 000010
【００９７】
これを使用サーバ台数Mについて変形すると、次式（２４）が得られる。
【００９８】
Ｍ≦{Ｒs2−Ｕa(ＡbＴb＋Ｃc＋ＡcＴc＋Ｃe)}／（Ｎo＋Ｃd＋Ｃf）…    （２４）
【００９９】
上記した式（１９），（２４）が加工方法「回収のみ」、未知数「使用サーバ台数」に対応する数式である。サービス定義エディタ１２は、式（１９），（２４）以外にも、加工方法「回収のみ」と他の未知数との組み合わせ毎の数式を内部に保持しており、未知数の値（サービス定義エディタ画面９１で空欄になっている制約条件の値）を求める際、それらを利用して図１０，図１１のフローチャートに示す処理を行う。
【０１００】
（ケースＣについて）
次に、ケースＣについて説明する。このケースＣでは、次式（２５），（２６）に示す回収サーバ，加工サーバの数理モデルを利用して予め求めておいた数式（空欄になっている制約条件の値を求めるための数式であり、加工方法と制約条件の種類との組み合わせ毎に存在する）を用いて、図１０，図１１のフローチャートに示す処理を行うことにより、サービスエディタ画面９１において空欄になっている制約条件の値を求める。なお、式（２５），（２６）の数理モデルは、図１に示した回収サーバ２−１，加工サーバ３の構成に対応する。
【０１０１】
0003918697.tif 000011
0003918697.tif 000012
【０１０２】
0003918697.tif 000013
0003918697.tif 000014
【０１０３】
ここで、式（２５），（２６）に基づいて予め求めておく数式について、加工方法「合計」、未知数「使用サーバ台数」に対応する数式を例に挙げて説明しておく。ケースＣは、回収(格納)および加工(合計等)を同時に行う場合である。ただし、加工(合計)は先に計算を完了し、その後に回収(格納)を行うこととする。
【０１０４】
式（３）〜（５），（１７）を式（２５）に代入すると、次式（２７）が得られる。
【０１０５】
（ＡaＴa＋Ｃa＋Ｆ1Ｌr＋ＰvＴdＬr）Ｕa／Ｍ≦Ｒr     …    （２７）
【０１０６】
この式を使用サーバ台数Ｍについて変形すると、次式（２８）が得られる。
【０１０７】
Ｍ≧（ＡaＴa＋Ｃa＋Ｆ1Ｌr＋ＰvＴdＬr）Ｕa／Ｒr   …    （２８）
【０１０８】
また、式（８）〜（１０），（２１），（２２）を式（２６）に代入することにより、次式（２９）が得られる。
【０１０９】
２ＮoＭ＋ＮpＬrＭ（Ｑ＋Ｃb）＋Ｂ1ＬrＭ＋{Ｕa(ＡbＴb＋Ｃc)／Ｍ＋Ｃd}＋Ｍ{Ｕa(ＡcＴc＋Ｃe)／Ｍ＋Ｃf}≦Ｒs2      …      （２９）
【０１１０】
この式を使用サーバ台数Ｍについて変形すると、次式（３０）が得られる。
【０１１１】
0003918697.tif 000015
【０１１２】
次に、プログラムジェネレータ１３について説明する。プログラムジェネレータ１３は、アンケートエディタ１１，サービス定義エディタ１２からアンケート項目ファイル，サービス定義ファイルが出力されると、予め用意されている回収用サーバプログラム，加工用サーバプログラムにアンケート項目ファイルの内容およびサービス定義ファイルの内容に従った動作を行わせるための、回収サーバ用動作定義ファイル、加工サーバ用動作定義ファイルを生成する（図６，ステップＳ６３）。
【０１１３】
この処理を、図１６〜図２１のフローチャートを参照して説明する。
【０１１４】
先ず、図１６〜図１８のフローチャートを参照して加工サーバ用動作定義ファイルの生成処理について説明する。
【０１１５】
先ず、プログラムジェネレータ１３は、アンケートエディタ１１から出力されたアンケート項目ファイルに対する処理を行い、その後、サービス定義エディタ１２から出力されたサービス定義ファイルに対する処理を行うことにより、加工サーバ用動作定義ファイルを生成する（図１６のステップＳ１６１，Ｓ１６２）。
【０１１６】
図１７，図１８はそれぞれ、ステップＳ１６１，Ｓ１６２の詳細な処理例を示すフローチャートである。
【０１１７】
図１７のステップＳ１７１では、アンケート項目ファイルから１件の質問を読み込む。今、例えば、アンケート項目ファイルの内容が図２２に示すものであるとすると、質問ID（QUESTION ID）が"00000"の質問を読み込む。
【０１１８】
次のステップＳ１７２では、ステップＳ１７１で読み込んだ質問の中から質問ID、回答形式の種類、質問名を取り出し、それらを対応付けて加工サーバ用動作定義ファイルに書き出す。図２２の例では、質問ID「QUESTION ID="00000"」、回答形式の種類「TYPE="SINGLE"」、質問名「Q1.端末種類」が、加工サーバ用動作定義ファイルに書き出される。
【０１１９】
ステップＳ１７３では、質問に対する回答形式が選択肢からの選択であるか否かを判断する。図２２の例では、回答形式が、選択肢の中から１つを選択することを示す"SINGLE"となっており、判断結果がＹＥＳとなるので、ステップＳ１７４の処理を行う。なお、ステップＳ１７３の判断結果がＮＯの場合は、ステップＳ１７６の処理を行う。
【０１２０】
ステップＳ１７４では、質問ID、選択肢ID、選択肢名を対応付けて加工サーバ用動作定義ファイルに書き出す。図２２の例では、質問ID「QUESTION ID="00000"」、選択肢ID「ANSWER ID="000"」、選択肢名「A1.TV」を書き出す。
【０１２１】
ステップＳ１７４の処理を全ての選択肢について行うと、次の質問（図２２の例の場合は、質問IDが「QUESTION ID="00001"」の質問）を対象にして前述した処理と同様の処理を行う。そして、未処理の質問がなくなると（ステップＳＳ１７６がＹＥＳ）、アンケート項目ファイルに対する処理を終了する。
【０１２２】
その後、プログラムジェネレータ１３は、サービス定義エディタ１２から出力されたサービス定義ファイルを処理対象にして図１８のフローチャートに示す処理を行う。
【０１２３】
ステップＳ１８１では、サービス定義ファイルから１件のレポートを読み込む。今、例えば、サービス定義ファイルが図１３に示すものである場合は、レポート番号(REPORT NO="1")のレポート１３３を読み込む。
【０１２４】
次のステップＳ１８２では、ステップＳ１８１で読み込んだレポート１３３からレポートID、加工方法の種類、コンディション、コメントを抜き出し、加工サーバ用動作定義ファイルに書き出す。図１３の例では、レポートID「REPORT NO="1"」、加工方法の種類「RTYPE="SUM-SINGLE"」、コメント「NOTE="単純集計（aは何人、bは何人）"」が書き出される。図１３の例の場合は、レポート１３３にコンディションは存在しない。
【０１２５】
ステップＳ１８３ではステップＳ１８１で読み込んだレポート１３３に質問に関する記述があるか否かを調べる。図１３の例では、質問に関する記述があり、判断結果がＹＥＳとなるので、ステップＳ１８４の処理を行う。なお、ステップ１８３の判断結果がＮＯの場合は、ステップＳ１８６の処理を行う。
【０１２６】
ステップＳ１８４では、レポートID、質問ID、グループを加工サーバ用動作定義ファイルに書き出す。図１３の例では、レポートID「REPORT NO="1"」、質問ID「QUESTION ID="1"」が書き出される。図１３の例では、レポート１３３にはグループは存在せず、レポート１３５のみに存在する。
【０１２７】
ステップＳ１８４の処理を、処理対象にしているレポート中の全ての質問に対して行うと（ステップＳ１８５がＮＯ）、次のレポートを処理対象にして前述した処理と同様の処理を行う。そして、未処理のレポートが無くなると（ステップＳ１８６がＹＥＳ）、処理を終了する。
【０１２８】
次に、回収サーバ用動作定義ファイルの生成方法を図１９〜図２１を参照して説明する。
【０１２９】
先ず、プログラムジェネレータ１３は、アンケートエディタ１１から出力されたアンケート項目ファイルに対する処理を行い、その後、サービス定義エディタ１２から出力されたサービス定義ファイルに対する処理を行うことにより、回収サーバ用動作定義ファイルを生成する（図１９のステップＳ１９１，Ｓ１９２）。
【０１３０】
図２０はステップＳ１９１で行う処理を詳細に示したフローチャートである。この図２０のフローチャートのステップＳ２０１〜Ｓ２０６で行う処理は、図１７のフローチャートのステップＳ１７１〜Ｓ１７６で行う処理と同一の処理である。但し、質問IDなどの書き出し先は、回収サーバ用動作定義ファイルとなる。
【０１３１】
図２１はステップＳ１９２で行う処理を詳細に示したフローチャートである。この図２１のフローチャートのステップＳ２１１，Ｓ２１３〜Ｓ２１６の処理は、図１８のステップＳ１８１，Ｓ１８３〜Ｓ１８６と同一の処理であり（但し、レポートIDなどの書き出し先は回収サーバ用動作定義ファイルなる）、ステップＳ２１２の処理がステップＳ１８２の処理と多少異なっている。ステップＳ１８２では、コメントを動作定義ファイルに書き出すが、ステップＳ２１２では、コメントの書き出しは行わない。
【０１３２】
プログラムジェネレータ１３は、上述したようにして、回収サーバ用，加工サーバ用の動作定義ファイルを生成すると、それらをサービスプログラムレポジトリ１４に格納する。
【０１３３】
なお、本実施の形態では、プログラムジェネレータ１３で、回収サーバ用，加工サーバ用の動作定義ファイルを生成するようにしたが、その代わりに、入力されたアンケート項目ファイル及びサービス定義ファイルに基づいて、予め用意されている複数のプログラムモジュールの中から必要なモジュールを選択し、それらのモジュール間とやり取りする駆動プログラム部分を生成し、更に、選択した各モジュールと駆動プログラムとを結合することで、動作定義ファイルを必要としない回収サーバ用のサーバプログラム及び加工サーバ用のサーバプログラムを生成するようにしても良い。
【０１３４】
サーバプログラム配信管理サービス部１５は、サービスプログラムレポジトリ１４に格納されている動作定義ファイルの内容若しくは運用者の指示に基づいて、視聴者からの回答を回収，加工するタイミングになったことを検出すると、加工サーバ３に対して予め用意されている加工サーバ用のサーバプログラムと、動作定義ファイルとを配信すると共に、回収サーバ２−１〜２−Ｎの中からＭ台（使用サーバ台数入力欄９６に入力された台数若しくはサービス定義エディタ１２が求めた台数）の空き状態の回収サーバを選択し、選択した回収サーバに回収サーバ用のサーバプログラムと、動作定義ファイルとを配信する（図６，ステップＳ６４）。なお、プログラムジェネレータ１３が、動作定義ファイルを必要としない回収サーバ用，加工サーバ用のプログラムを生成した場合には、回収サーバ用のサーバプログラムをＭ台の回収サーバへ配信し、加工サーバ用のサーバプログラムを加工サーバ３に配信する。
【０１３５】
回収サーバ２−１は、回収サーバ用のサーバプログラムと動作定義ファイルとが送られてくると、それらに従って、自サーバ２−１上に、図１、図２若しくは図３に示す構成を実現する。また、加工サーバ３は、サーバプログラムと加工サーバ用の動作定義ファイルとが送られてくると、自サーバ３上に、図１、図４若しくは図５に示す構成を実現する。
【０１３６】
今、例えば、回収サーバ２−１、加工サーバ３の構成が図１に示すものになったとすると、回収サーバ２−１、加工サーバ３において、次のような処理が行われる。
【０１３７】
回収サーバ２−１では、Webサーバ２５を動作させ、Webのインターフェースを通じて視聴者端末からの回答をアンケート回収サービス部２１で受け付ける。アンケート回収サービス部２１は、受け付けた回答の内、サービス定義エディタ１２で加工を指示されたアンケート回答項目を加工ミドルウェア部２２に、回収を指示されたアンケート回答項目を回収ミドルウェア部２３に渡す。加工ミドルウェア部２２では、渡された回答を既に渡されている回答と一緒にして加工（集計などの統計処理若しくは抽出）を行う。一方、回収ミドルウェア部２３では、保存形式で保存する。一定のタイミング毎に、若しくは回収時間の終了後、若しくは加工サーバ３からの要求に応じて、加工もしくは回収保存したデータをデータ送信ミドルウェア部２４を通じて加工サーバ３に送信する。（図６，ステップＳ６５）。
【０１３８】
一方、加工サーバ３は、データ受信ミドルウェア部３１を用いて、回収サーバ２−１と同じ双方向番組についての回答を回収している全ての回収サーバ（Ｍ台）からデータを受け取る。受け取ったデータが、加工データであれば加工サービス部３２に、回収データであれば回収サービス部３３に渡す。加工サービス部３２では、各回収サーバから集められた全ての加工データに対して更に加工を行う。一方、回収サービス部３３は、回収した全ての回収データを、回答データベース３４に格納する（図６，ステップＳ６６）。
【０１３９】
次に、回収サーバ２−１、加工サーバ３の構成がそれぞれ図３、図５に示すものになったときの動作について説明する。
【０１４０】
回収サーバ２−１では、図２３のフローチャートに示すように、アンケート回収サービス部２１が視聴端末からの回答を受け付け（ステップＳ２３１）、回収ミドルウェア２３部が、アンケート回収サービス部２１によって受け付けられた回答をメモリ（図示せず）に格納する（ステップＳ２３２）。メモリへの格納時、メモリ上限になるか、その恐れがある場合には、一定サイズ毎にファイル等に格納内容を書き出してメモリを節約する。この動作を予定された受付時間が終了するか、受付終了指示があるまで継続する。受付が終了したら（ステップＳ２３３がＹＥＳ）、メモリに格納した全ての回答データをデータ送信ミドルウェア部２４が、一括して加工サーバ３に送信する（ステップＳ２３４）。この時の送信の方法としては、一度に全ての回答データを送信できない場合には、データをいくつかの送信可能なサイズに分割し、その分割された単位で送信することもある。また、さきほどファイル等に書き出し処理をしている場合には、そのファイルから一旦メモリに読み込み、その内容を加工サーバ３に送信することもある。なお、図２３のフローチャートでは、回答をメモリに格納するようにしたが（ステップＳ２３２）、図２４のフローチャートに示すように、回答をファイル等の不揮発性記憶媒体（図示せず）に格納するようにしても良い（Ｓ２４２）。図２４の他のステップＳ２４１、Ｓ２４３、Ｓ２４４は、それぞれ図２３のステップＳ２３１、２３３、Ｓ２３４と対応するステップである。
【０１４１】
一方、加工サーバ３では、図２５のフローチャートに示すように、データ受信ミドルウェア部３１が、各回収サーバ２−１〜２−Ｎから送られてくる回答データを順次受信し、受信した回答データをメモリやファイル等の比較的高速な記憶媒体（図示せず）に一次的に格納したり、全回答データを一繋がりのバイナリデータとして回答ＤＢ３４に格納する（ステップＳ２５１）。その際、比較的高速な記憶媒体への格納と、低速な回答ＤＢ３４への格納とを並行して行っても良いし、比較的高速な記憶媒体への格納が完了した後に、回答ＤＢ３４へ格納を行うようにしても良い。そして、全ての回収サーバ２−１〜２−Ｎからの回答データを受信すると（ステップＳ２５２がＹＥＳ）、回収サービス部３３が、上記記憶媒体に格納されている各回収データを一回答毎に分解し、各回答毎に回答ＤＢ３４に格納する（ステップＳ２５３）。回収サービス部３３では、この処理を全回答分継続する（ステップＳ２５４がＹＥＳとなるまで継続する）。また、データ受信ミドルウェア部３１と回収サービス部３３が並行動作可能な場合には、データ受信ミドルウェア部３１による各回収サーバ２−１〜２−Ｎからのデータ受信処理と、回収サービス部３３における回収データの回答ＤＢ３４への格納処理が並行して行われる場合もある。
【０１４２】
次に、回収サーバ２−１、加工サーバ３の構成がそれぞれ図３、図５に示すものである時に行う更に別の動作を、図４１、図４２のフローチャートを参照して説明する。
【０１４３】
図４１は、回収サーバ２−１の動作を示すものであり、加工サーバ３からの送信要求を受け付けた後、回答を加工サーバ３へ送信する点（ステップＳ４１４、Ｓ４１５）が図２３のフローチャートと相違している。なお、ステップＳ４１１〜Ｓ４１３は、図２３のステップＳ２３１〜Ｓ２３３と対応している。
【０１４４】
また、図４２は、加工サーバ３の動作を示すものであり、回収サーバ２−１〜２−Ｎに順次送信要求を送るようにしている点（ステップＳ４２１）が図２５のフローチャートと相違している。なお、ステップＳ４２２〜Ｓ４２５は、図２５のステップＳ２５１〜Ｓ２５４と対応している。この図４１、図４２のフローチャートに示した動作では、回収サーバ２−１〜２−Ｎは、視聴端末から回収したデータを、加工サーバ３からの送信要求があって初めて送信することになる。これによって、回収サーバの数が増加した場合に、加工サーバ３側でのシステムリソースの多量の消費を抑えることが可能となる。
【０１４５】
次に、回収サーバ２−１が図３に示す構成のときに行う更に他の処理例を図２６のフローチャートを参照して説明する。この図２６のフローチャートに示す処理は、回収サーバ２−１にメモリ障害が発生した場合、それに対処できるようになっている。
【０１４６】
回収サーバ２−１は、起動時、通常の目的で起動されたか、障害復旧の目的で起動されたかを判別する（ステップＳ２６１）。
【０１４７】
通常の目的で起動された場合（ステップＳ２６１がＮＯ）には、視聴端末から回答が送られてくる毎に次のような処理を行う。アンケート回収サービス部２１が、視聴端末からの回答を受け付け（ステップＳ２６２）、回収ミドルウェア部２３が、アンケート回収サービス部２１によって受け付けられた回答をメモリ（図示せず）に格納し、同時にファイル等の不揮発性媒体にも格納する（ステップＳ２６３、２６４）。メモリへの格納時には、メモリ上限になるか、その恐れがある場合には一定サイズ毎にファイル等に格納内容を書き出してメモリを節約する。この動作を予定された受付時間が終了するか、受付終了指示があるまで継続する（Ｓ２６５がＹＥＳとなるまで継続する）。そして、ステップＳ２６５がＹＥＳとなると、ステップＳ２６６の処理を行う。
【０１４８】
これに対して、障害復旧を目的として起動された場合（ステップＳ２６１がＹＥＳ）は、上記回答の回収処理（ステップＳ２６２〜Ｓ２６５）をスキップし、ステップＳ２６６の処理を行う。
【０１４９】
ステップＳ２６６では、回答回収中にメモリ格納分のデータが消去されてしまう障害が発生したか否かを判断する。そして、そのような障害が発生したと判断した場合（ステップＳ２６６がＹＥＳ）は、ステップＳ２６４でファイルに書き出た回答データをメモリに再格納する（ステップＳ２６７）。なお、障害復旧を目的として起動された場合においても、ステップＳ２６６の判断結果はＹＥＳとなる。
【０１５０】
ステップＳ２６７の処理が終了すると、データ送信ミドルウェア部２４が、メモリに格納されている回答データを一括して加工サーバ３に送信する（ステップＳ２６８）。また、ステップＳ２６６の判断結果がＮＯとなった場合も、ステップＳ２６８の処理が行われる。この時の送信の方法としては、一度に全ての回答データを送信できない場合には、データをいくつかの送信可能なサイズに分割し、その分割された単位で送信することもある。また、さきほどファイル等に書き出し処理をしている場合には、そのファイルから一旦メモリに読み込み、その内容を加工サーバに送信することもある。
【０１５１】
次に、回収サーバ２−１、加工サーバ３の構成がそれぞれ図２、図４に示すものになったときの動作について説明する。
【０１５２】
回収サーバ２−１では、図２７のフローチャートに示すように、アンケート回収サービス部２１が視聴端末からの回答を受け付ける毎に（ステップＳ２７１）、加工ミドルウェア部２２が、受け付けた回答をあらかじめ決められた加工方法に従って加工し、加工した内容（加工結果）をメモリに格納する（ステップＳ２７２、Ｓ２７３）。メモリへの格納時には、メモリ上限になるか、その恐れがある場合には一定サイズ毎にファイル等に格納内容を書き出してメモリを節約する。この動作を予定された受付時間が終了するか、受付終了指示があるまで継続する（ステップＳ２７４がＹＥＳとなるまで継続する）。受付が終了したらメモリ上に格納した加工結果をデータ送信ミドルウェア部２４が一括して加工サーバ３に送信する（ステップＳ２７５）。この時の送信の方法としては、一度に全てのデータを送信できない場合には、データをいくつかの送信可能なサイズに分割し、その分割された単位で送信することもある。また、さきほどファイル等に書き出し処理をしている場合には、そのファイルから一旦メモリに読み込み、その内容を加工サーバ３に送信することもある。なお、図２７のフローチャートでは、加工結果をメモリに格納するようにしたが（ステップＳ２７３）、図２８のフローチャートのように、加工結果をファイル等の不揮発性記憶媒体に格納するようにしても良い（ステップＳ２８３）。図２８の他のステップＳ２８１、Ｓ２８２、２８４、Ｓ２８５は、それぞれ図２７のステップＳ２７１、Ｓ２７２、２７４、Ｓ２７５に対応するステップである。
【０１５３】
一方、加工サーバ３では、図２９のフローチャートに示すように、先ず、予め決められている加工方法に応じた初期化処理を行う（ステップＳ２９１）。その後、データ受信ミドルウェア部３１が、各回収サーバ２−１〜２−Ｎから送られてくる加工結果を受信する毎に、加工サービス部３２が、受信した加工結果を更に加工する（ステップＳ２９２、Ｓ２９３）。なお、データ受信ミドルウェア部３１は、ステップＳ２９２において、受信した加工結果をメモリやファイル等の比較的高速な媒体上に一次的に格納したり、全加工結果を一繋がりのバイナリデータとして回答ＤＢ３４に格納する。また、加工サービス部３２は、ステップＳ２９３において、もし必要があれば、自加工サービス部３２の加工結果をメモリ、ファイル、回答ＤＢ３４等に格納する。全ての、回収サーバ２−１〜２−Ｎからの加工結果を受信すると（ステップＳ２９４がＹＥＳ）、加工サービス部３２は、必要に応じてステップＳ２９３の加工結果を更に加工する（ステップＳ２９５）。なお、データ受信ミドルウェア部３１と加工サービス部３２が並行動作可能な場合には、データ受信ミドルウェア部３１による加工結果の回収処理と、加工サービス部３２による加工処理とが並行して行われる場合もある。
【０１５４】
次に、回収サーバ２−１が図２に示す構成のときに行う他の処理例を図３０のフローチャートを参照して説明する。この図３０のフローチャートに示す処理は、回収サーバ２−１にメモリ障害が発生した場合、それに対処できるようになっている。
【０１５５】
回収サーバ２−１は、起動時、通常の目的で起動されたか、障害復旧の目的で起動されたかを判別する（ステップＳ3001）。
【０１５６】
通常の目的で起動された場合（ステップＳ3001がＮＯ）には、視聴端末から回答が送られてくる毎に、次のような処理を行う。アンケート回収サービス部２１が、視聴端末からの回答を受け付け（ステップＳ3002）、加工ミドルウェア部２２が、アンケート回収サービス部２１によって受け付けられた回答を予め決められた加工方法に従って加工し、その加工結果をメモリ上に格納するとともに、元の回答データをファイル等の不揮発性媒体に格納する（ステップＳ3003〜Ｓ3005）。この動作を予定された受付時間が終了するか、受付終了指示があるまで継続し（ステップＳ3006がＹＥＳとなるまで継続し）、その後、ステップＳ3007の処理を行う。
【０１５７】
これに対して、障害復旧の目的で起動された場合（ステップＳ3001がＹＥＳ）は、上記した回答の回収および加工・格納等の処理（ステップＳ3002〜Ｓ3006）をスキップし、ステップＳ3007の処理を行う。
【０１５８】
ステップＳ3007では、回答回収および加工中（ステップＳ3002〜Ｓ3006）にメモリ格納分のデータが消去されてしまう等のメモリ障害が発生したか否かを判断する。そして、障害が発生したと判断した場合（ステップＳ3007がＹＥＳ）は、既にファイル等に書き出した回答データをメモリ上に再格納し、再度格納前に行った加工方法によって加工しメモリに格納し直す（ステップＳ3008〜Ｓ3010）。この時、実装によっては、回答データの再格納と加工を一括して行う場合もあれば、各回答毎にメモリに再格納し、都度再加工する場合もある。なお、障害復旧を目的として起動された場合においても、ステップＳ3007の判断結果はＹＥＳとなる。
【０１５９】
ステップＳ3010の処理が終了する、メモリに格納されている加工結果をデータ送信ミドルウェア部２４が一括して加工サーバ３に送信する。この時の送信の方法としては、一度に全てのデータを送信できない場合には、データをいくつかの送信可能なサイズに分割し、その分割された単位で送信することもある。
【０１６０】
次に、具体例（１）〜（５）を挙げ、回収サーバ２−１、加工サーバ３の動作を説明する。
【０１６１】
（１）先ず、視聴端末のユーザに示される回答選択肢には、AとBの二つがあり、最終的にサーバ側の処理としてAとBをそれぞれ選択した人数を求める場合の動作を説明する。
【０１６２】
回収サーバ２−１では、図３１のフローチャートに示すように、受付開始前または受付開始時に、メモリに記憶する変数AおよびBを0に初期化する（ステップＳ３１１）。受付が開始されると、アンケート回収サービス部２１で回答を受け付ける（ステップＳ３１２）。加工ミドルウェア部２２では、受け付けた回答の回答選択肢を解読し、回答がAであれば変数Aに1を加算し、Bであれば変数Bに1を加算する（ステップＳ３１３〜Ｓ３１５）。これを受付終了まで（ステップＳ３１６がＹＥＳとなるまで）、繰り返す。受付終了後に、データ送信ミドルウェア部２４が、変数Aおよび変数Bの内容を加工サーバに転送する（ステップＳ３１７）。
【０１６３】
一方、加工サーバ３では、図３２のフローチャートに示すように、データ受信ミドルウェア部３１において、起動時もしくは各回収サーバから変数A,Bの内容の回収を開始する前に、変数SA、変数SBを0に初期化する（ステップＳ３２１）。回収が開始されると、各回収サーバ２−１〜２−Ｎから回収した、変数Aの内容を変数SAに加算し、変数Bの内容を変数SBに加算する（ステップＳ３２２、Ｓ３２３）。これを全回収サーバ２−１〜２−Ｎから変数A、Bの内容を受信し終わるまで（ステップＳ３２４がＹＥＳとなるまで）、繰り返す。この繰り返しが終了した後の変数SAが選択肢Aを回答した人数となり、変数SBが選択肢Bを回答した人数となる。
【０１６４】
（２）次に、視聴者端末のユーザの年齢を数値回答で質問し、最終的にサーバ側で、20才未満のグループA0、20才以上60才未満のグループA20、60才以上のグループA60のそれぞれの回答者数を求める場合の動作を説明する。なお、回答の数値は正数とする。
【０１６５】
回収サーバ２−１では、図３３のフローチャートに示すように、受付開始前または受付開始時に、メモリに記憶する変数A0、A20、A60をそれぞれ0に初期化する（ステップＳ３３１）。受付が開始されると、アンケート回収サービス部２１で回答を受け付ける（ステップＳ３３２）。加工ミドルウェア部２２では、受け付けた回答の数値を解読し、回答が20才未満であれば変数A0に1を加算し、20才以上60才未満であれば変数A20に1を加算し、60才以上であれば変数A60に1を加算する（ステップＳ３３３〜Ｓ３３６）。これを受付終了まで（ステップＳ３３７がＹＥＳとなるまで）、繰り返す。受付終了後に、データ送信ミドルウェア部２４が、変数A0、A20、A60の内容を加工サーバに転送する（ステップＳ３３８）。
【０１６６】
一方、加工サーバ３では、図３４のフローチャートに示すように、データ受信ミドルウェア部３１が、起動時もしくは各回収サーバ２−１〜２−Ｎから変数A0、A20、A60の内容の回収を開始する前に、変数SA0、SA20、SA60のそれぞれを0に初期化する（ステップＳ３４１）。回収が開始されると、データ受信ミドルウェア部３１で回収サーバから送られてくるA0,A20,A60の内容を回収し、加工サービス部３２では並行して、各回収サーバ２−１〜２−Ｎから回収した、変数A0の内容を変数SA0に加算し、変数A20の内容を変数SA20に加算し、変数A60の内容を変数SA60に加算する（ステップＳ３４２、Ｓ３４３）。これを全回収サーバから変数A0、A20、A60の内容を受信し終わるまで（ステップＳ３４４がＹＥＳとなるまで）、繰り返す。この繰り返しが終了した後の変数SA0の値が20才未満を回答した人数となり、変数SA20の値が20才以上60才未満を回答した人数となり、変数SA60の値が60才以上を回答した人数となる。この値をレポートサービス部３５を通じて出力する。
【０１６７】
（３）次に、サーバ側において、回答を送ってきたユーザの内の先着10名を当選者として抽出する場合の動作を説明する。なお、ユーザからの回答データにはユーザの氏名や住所等、ユーザを識別可能な回答欄が設けられているとする。
【０１６８】
回収サーバ  ２−１では、図３５のフローチャートに示すように、受付開始前もしくは開始時に変数Nを初期化する（ステップＳ３５１）。受付が開始されると、アンケート回収サービス部２１で回答を受け付ける（ステップＳ３５２）。加工ミドルウェア部２２では、変数Nが10未満であれば（Ｓ３５３がＹＥＳ）、受け付けた回答を配列変数K[N]に保存し、配列変数T[N]にはこの回答の受付時間を保存し、変数Nに1を加算する（ステップＳ３５４、Ｓ３５５）。これを受付が終了するまで（ステップＳ３５６がＹＥＳとなるまで）、繰り返す。受付終了後、データ送信ミドルウェア部２４が、配列変数K[0]〜K[N-1]、T[0]〜T[N-1]および変数Nを加工サーバ３に送信する（ステップＳ３５７）。
【０１６９】
一方、加工サーバ３では、図３６のフローチャートに示すように、データ受信ミドルウェア部３１によって各回収サーバ２−１〜２−Ｎから、配列変数K、T、変数Nの内容を回収する（ステップＳ３６１）。配列変数K、Tは十分な大きさの配列にそれぞれ連続して保存する（ステップＳ３６２）。これを全ての回収サーバからの回収が終了するまで（ステップＳ３６３がＹＥＳとなるまで）、繰り返す。加工サービス部３２では、こうして保存された配列に対してTの値、つまり受付時間でKの値をソートする（ステップＳ３６４）。こうしてソートされた上位10人分の配列K、つまり回答をレポートサービス部３５を通じて出力し、当選者の決定と発表を行う（ステップＳ３６５）。
【０１７０】
（４）次に、オークションの値付けのために、回答者の中から最大の呼値を決定する場合の動作を説明する。なお、回答データには、値段を表す数値が入っているとする。
【０１７１】
回収サーバ２−１では、図３７のフローチャートに示すように、受付開始後にアンケート回収サービス部２１で受け付けた最初の回答を変数BESTに格納し初期値とする（ステップＳ３７１、Ｓ３７２）。変数BESTはメモリに格納されているものとする。以後受付終了まで（ステップＳ３７６がＹＥＳとなるまで）、アンケート回収サービス部２１で回答を受け付け、加工ミドルウェア部２２において受け付けた回答と変数BESTを比較し、回答が変数BESTを上回る場合にはその回答を変数BESTに格納する（ステップＳ３７３〜Ｓ３７５）。受付が終了すると、データ送信ミドルウェア部２４が、変数BESTの内容を加工サーバ３に送信する（ステップＳ３７７）。
【０１７２】
一方、加工サーバ３では、図３８のフローチャートに示すように、データ受信ミドルウェア部３１によって最初に回収した変数BESTの内容を変数SBESTに格納する（ステップＳ３８１、Ｓ３８２）。SBESTはメモリに格納されているものとする。以後全回収サーバからの回収終了まで（ステップＳ３８６がＹＥＳとなるまで）、データ受信ミドルウェア部３１が各回収サーバ２−１〜２−Ｎからそれぞれのサーバの変数BESTを受信し、加工サービス部３２が、BESTの値と変数SBESTを比較し回答が変数SBESTを上回る場合にはその回答を変数SBESTに格納する（ステップＳ３８３〜Ｓ３８５）。回収が終了した時点の変数SBESTの内容が全回答者中の最大の呼値となる。
【０１７３】
（５）次に、全体から10人分の回答を抽選する場合の動作を説明する。なお、回答データの内容に関係なく抽選を行うものとする。
【０１７４】
回収サーバ  ２−１では、図３９のフローチャートに示すように、受付開始前もしくは受付開始時に変数N、変数Sを0に初期化する（ステップＳ3901）。変数N、変数Sはそれぞれメモリ上に格納される。アンケート回収サービス部２１で回答を受け付けると、変数Sに1を加算する（ステップＳ3902、Ｓ3903）。加工ミドルウェア部２２では、変数Nが10未満の場合には受け付けた回答を配列変数Kに追加格納し、変数Nに1を加算する（ステップＳ3904がＹＥＳ、Ｓ3905、Ｓ3906）。変数Nが10以上の場合には(10÷S)の確率で入れ替え判定を行う（ステップＳ3904はＮＯ、Ｓ3909）。入れ替える場合には、配列変数Kに保存している回答のうち入れ替え対象となる回答を乱数によって決定し、その入れ替え対象の回答と受け付けた回答の内容を入れ替える（ステップＳ3910、Ｓ3911）。以上を受付終了まで（ステップＳ3907がＹＥＳとなるまで）、繰り返す。受付終了後は、データ送信ミドルウェア部２４が、配列変数Kと変数Sの内容を加工サーバ３に送信する（ステップＳ3908）。
【０１７５】
一方、加工サーバ３では、図４０のフローチャートに示すように、データ受信ミドルウェア部３１によって、各回収サーバ２−１〜２−ＮからそれぞれのKとSの内容を受信し、メモリに格納する（ステップＳ４０１）。全回収サーバからの回収完了後、加工サービス部３２において、(10*対象の回収サーバのS)÷(各回収サーバのSの合計)を各回収サーバの当選人数とし、その当選人数分を各回収サーバの受信分から乱数によって回答を抽選する（Ｓ４０２がＹＥＳ、Ｓ４０３、Ｓ４０４）。そのようにして決定した10人が全体の当選者(あるいは当選回答)となる。なお、各回収サーバの当選人数が整数とならない場合には、切捨てや四捨五入等によって整数化し調整する。
【０１７６】
レポートサービス部３５は、例えば、Webサーバ３６上で動作しており、利用者がWebブラウザや、外部のコンピュータの通信機能を利用して行ったレポートの出力要求を受け付ける。これにより、レポートサービス部３５は、加工サービス部３２によって既に加工済みのアンケート項目については、加工サービス部３２からデータを受け取り、図２３に示すようなHTML形式もしくは図２４に示すようなXML形式にフォーマットを変換して出力する。これに対して、回収データベース３４に回答が格納されているだけのアンケート項目については、データの全部もしくは一部をHTML形式もしくはXML形式にフォーマット変換して出力したり、加工サービス部３２等を使用して、回答データベース３４に格納されている回答に対して、担当者によって要求されている加工処理を行い、その結果をHTML形式もしくはXML形式にフォーマット変換して出力する（図６，ステップＳ６７）。
【０１７７】
なお、上述した実施の形態では、双方向番組用の多量同時アクセス処理サーバを構築する場合を例にとって説明したが、Webショッピング用の多量同時アクセス処理サーバ等を構築する場合に適用することもできる。
【０１７８】
次に、本発明の他の実施の形態について説明する。図４５は、本実施の形態の構成例を示すブロック図である。本実施の形態は、回収サーバ２−１〜２−Ｎの代わりに回収サーバ２−１ａ〜２−Ｎａを備えている点が図１に示した実施の形態と相違している。回収サーバ２−１ａ〜２−Ｎａは、ユーザ数変化感知プログラム２６、動作変更プログラム２７を備えている点が回収サーバ２−１〜２−Ｎと相違し、加工サーバ３ａは動作変更プログラム３８を備えている点が加工サーバ３と相違している。
【０１７９】
あらかじめ、サービス定義エディタ１２によって、複数の視聴者数の想定ケース毎に、それぞれの場合の制約条件の値を求め、更に、プログラムジェネレータ１３により各想定ケース毎の動作定義ファイルを生成し、それらを各回収サーバ２−１ａ〜２−Ｎａ、加工サーバ３ａに配布しておく。
【０１８０】
各回収サーバ２−１ａ〜２−Ｎａ、加工サーバ３ａでは、処理しているユーザ回答数を例えば１分毎の単位時間毎に集計する機能を有するユーザ数変化感知プログラム２６と、ユーザ数変化感知プログラム２６によって知ったユーザ数の増減とあらかじめ設定されたユーザ数と比較し、自サーバの動作状態をユーザ数に応じた動作状態に変更する動作変更プログラム２７，３８とが動作している。
【０１８１】
例えば、あらかじめ次のようなパターンについてサービス定義エディタ１２で制約条件の値を求めておく。
(1) 単位時間（１分間）あたりのユーザ回答数が１万人未満の場合
(2) 単位時間あたりのユーザ回答数が１万人以上５万人未満の場合
(3) 単位時間あたりのユーザ回答数が５万人以上の場合
【０１８２】
そして、それぞれの場合毎に、プログラムジェネレータ１３で生成される動作定義ファイルを、各回収サーバ２−１ａ〜２−Ｎａ、加工サーバ３ａに配布しておく。
【０１８３】
各回収サーバ２−１ａ〜２−Ｎａ、集計サーバ３では、全体のユーザ回答数を、ユーザ数変化感知プログラム２６によって知ることができる。
【０１８４】
この時、動作変更プログラム２７、３８は、ユーザ数変化感知プログラム２６によって知った現在の単位時間あたりのユーザ数と、前記３パターンの定義対象のユーザ数とを比較し、ユーザ回答数が１万人未満の場合には、(1)で定義された動作状態に対応する動作定義ファイル、１万人以上５万人未満の場合には(2)で定義された動作状態に対応する動作定義ファイル、５万人以上の場合には(3)で定義された動作状態に対応する動作定義ファイルによりサーバプログラムの動作を制御するようにする。
【０１８５】
尚、本実施の形態では、各ケース毎の動作定義ファイルを生成するようにしたが、各ケース毎のサーバプログラムを生成するようにしても良い。また、本実施の形態では、ユーザ数変化感知プログラム２６を回収サーバ２−１ａ〜２−Ｎａ内に配置するようにしたが、回収サーバ２−１ａ〜２−Ｎａの外部にあり各回収サーバ２−１ａ〜２−Ｎａに利用者からの回答や情報を振り分けるロードバランサ（図示せず）上に配置するようにしてもよい。また、動作変更プログラム２７、３８は回収サーバ２−１ａ〜２−Ｎａの外部、例えば、サーバプログラム配信管理サービス部１５上に配置するようにしてもよい。
【０１８６】
この実施形態は、これまでに述べた回答を回収するサーバだけでなく、アクセスしてきたユーザに対してサービスメニューを変更する場合にも利用可能である。すなわち、Webサイトに対して、次のような実施例が考えられる。
【０１８７】
以下のように、アクセスユーザ数により２パターンのサイトメニュー表示方法を定義する。
(1) 単位時間あたりのアクセスユーザ数が多い場合には、処理が簡単なサービスのみをサイトメニューとして表示
(2) 単位時間あたりのアクセスユーザ数が少ない場合には、全てのサービスをサイトメニューとして表示
ユーザ数変化感知プログラムにより、ユーザ数の増減に対して該当する(1)もしくは(2)の動作をWebサーバで切り替える。
【０１８８】
次に、本発明の更に他の実施の形態について、図４６を参照して説明する。図４６に示した実施の形態と図１に示した実施の形態との相違点は、サーバ構築支援システム１、回収サーバ２−１、加工サーバ３の代わりにサーバ構築支援システム１ｂ、回収サーバ２−１ｂ、加工サーバ３ｂを備えている点である。
【０１８９】
回収サーバ２−１ｂは、定数決定部２８及び定数通信部２９が追加されている点が、図１に示した回収サーバ２−１と相違している。なお、他の回収サーバ２−２〜２−Ｎは、図１に示した回収サーバ２−１と同様の構成を有している。また、各回収サーバ２−１ｂ、２−２〜２−Ｎは、同等の性能を有しているとする。なお、各回収サーバの性能がそれぞれ異なる場合には、各回収サーバそれぞれに定数決定部２８及び定数通信部２９を設けるようにしても良い。
【０１９０】
定数決定部２８は、予め定められている定数の値を測定によって直接的に決定したり、測定値に基づく演算によって間接的に決定する機能を有する。ここで、値を決定する定数は、サービス定義エディタ１２ｂが、制約条件の値を決定するために内部に保持している式（加工方法と値が未知の制約条件との組み合わせ毎に存在する式で、式７，１２，１９，２４，２８，３０等がこれに当たる）で使用されている定数の内、回収サーバ２−１ｂに依存する定数である。例えば、式（７）のＴａ、Ｃａ等が定数決定部２８で値を決定する定数となる。
【０１９１】
定数通信部２９は、定数決定部２８が決定した各定数の値をサーバ構築支援システム１ｂに送信する機能を有する。
【０１９２】
加工サーバ３ｂは、定数決定部３９及び定数通信部４０が追加されている点が図１の加工サーバ３と相違している。
【０１９３】
定数決定部３９は、予め定められている定数の値を測定によって直接的に決定したり、測定値に基づく演算によって間接的に決定する機能を有する。ここで、値を決定する定数は、サービス定義エディタ１２ｂが、制約条件の値を決定するために内部に保持している式（加工方法と値が未入力の制約条件との組み合わせ毎に存在する式で、式７，１２，１９，２４，２８，３０等がこれに当たる）で使用されている定数の内、加工サーバ３ｂに依存する定数である。例えば、式（１２）のＮo、Np、Ｂ1等がこれに当たる。
【０１９４】
定数通信部４０は、定数決定部３９が決定した各定数の値をサーバ構築支援システム１ｂに送信する機能を有する。
【０１９５】
サーバ構築支援システム１ｂは、サービス定義エディタ１２の代わりにサービス定義エディタ１２ｂを備えている点、及び定数通信部１６が追加されている点が図１に示したサーバ構築支援システム１と相違している。
【０１９６】
定数通信部１６は、回収サーバ２−１ｂ内の定数通信部２９や加工サーバ３ｂ内の定数通信部４０から送られてきた定数の値をサービス定義エディタ１２ｂに渡す機能を有する。
【０１９７】
サービス定義エディタ１２ｂは、サービス定義エディタ画面９１（図９参照）で値が未入力であった制約条件の値を、内部に保持している式の内の該当する式と、定数通信部１６から渡された定数の値とに基づいて求める機能を有する。それ以外の機能は、図１に示したサービス定義エディタ１２と同様である。
【０１９８】
次に、本実施の形態の動作について説明する。なお、以下では、図１の実施の形態と異なる動作についてのみ説明する。
【０１９９】
回収サーバ２−１ｂ内の定数決定部２８は、図４７のフローチャートに示すように、所定のタイミング（例えば、回収サーバ２−１ｂのセッティング時や、動作環境が変化し管理者により指示された時）で、予め決められている各定数の値（サービス定義エディタ１２ｂが未入力の制約条件の値を決定するために内部に保持している式で使用されている定数の内の、回収サーバ２−１ｂに依存する各定数の値）を、実際に測定したり、測定値に基づく演算を行うことにより決定する（ステップＳ４７１）。例えば、回収サーバ２−１ｂ上でのファイル書き込み速度を定数値として決定したり、ある定数値を決定するためにファイル書き込み速度が必要になる場合は、実際にファイル書き込みを一定回数繰り返し、その平均時間をファイル書き込み速度定数値とする。また、回収サーバ２−１ｂ上でのメモリへの一定長の文字列格納時間を定数値として決定したり、ある定数値を決定するために文字列格納時間が必要になる場合は、メモリへの一定長の文字列の格納を一定回数繰り返し、その平均時間を文字列格納時間定数値とする。また、必要であれば、ＤＢからのレコード読み込み速度や書き込み速度、あるアルゴリズムの処理速度等についても同様に計測、演算して定数値とする。
【０２００】
定数決定部２８がステップＳ４７１の処理を行い、サービス定義エディタ１２ｂが未入力の制約条件の値を決定するために内部に保持している式で使用されている定数の内の、回収サーバ２−１ｂに依存する各定数の値を決定すると、定数通信部２９が、定数決定部２８が決定した各定数値をサーバ構築支援システム１ｂに送信する（ステップＳ４７２）。
【０２０１】
一方、加工サーバ３ｂ内の定数決定部３９は、図４７のフローチャートに示すように、所定のタイミング（例えば、回収サーバ２−１ｂのセッティング時や、動作環境が変化し管理者により指示された時）で、予め決められている各定数の値（サービス定義エディタ１２ｂが未入力の制約条件の値を決定するために内部に保持している式で使用されている定数の内の、加工サーバ３ｂに依存する各定数の値）を、実際に測定したり、測定値に基づく演算を行うことにより決定する（ステップＳ４７１）。例えば、加工サーバ３ｂ上でのファイル書き込み速度を定数値として決定したり、ある定数値を決定するためにファイル書き込み速度が必要になる場合は、実際にファイル書き込みを一定回数繰り返し、その平均時間をファイル書き込み速度定数値とする。また、加工サーバ３ｂ上でのメモリへの一定長の文字列格納時間を定数値として決定したり、ある定数値を決定するために文字列格納時間が必要になる場合は、メモリへの一定長の文字列の格納を一定回数繰り返し、その平均時間を文字列格納時間定数値とする。また、必要であれば、ＤＢからのレコード読み込み速度や書き込み速度、あるアルゴリズムの処理速度等についても同様に計測、演算して定数値とする。
【０２０２】
定数決定部３９がステップＳ４７１の処理を行い、サービス定義エディタ１２ｂが未入力の制約条件の値を決定するために内部に保持している式で使用されている定数の内の、加工サーバ３ｂに依存する各定数の値を決定すると、定数通信部４０が、定数決定部３９が決定した各定数値をサーバ構築支援システム１ｂに送信する（ステップＳ４７２）。
【０２０３】
サーバ構築支援システム１ｂ内の定数通信部１６は、図４８のフローチャートに示すように、回収サーバ２−１ｂの定数通信部２９や、加工サーバ３ｂ内の定数通信部４０から定数値が送られてくる毎に、それをサービス定義エディタ１２ｂに渡す（ステップＳ４８１）。サービス定義エディタ１２ｂは、通信部１６から渡された定数値を内部に保存する（ステップＳ４８２）。その後、ユーザがサービス定義エディタ画面９１（図９参照）を用いて、空白になっている制約条件の値を求めることを指示すると、サービス定義エディタ１２ｂは、ステップＳ４８２で保持した定数値と、加工方法と未知数との組み合わせ毎に存在する式の内の該当する式とを用いて、空白になっている制約条件の値を決定する。例えば、サービス定義エディタ画面９１の各入力欄の内容が図９に示すものである場合は、式（７）、（１２）を使用することになり、式（７）、（１２）に含まれているＴａ、Ｃａ、Ｎ0、Ｎp、Ｂ1の値は、ステップＳ４８２で保持した定数値を使用する。このように、実際の測定値に基づいて直接的、間接的に決定した定数値を使用して、空白になっている制約条件の値を決定するようにしているので、制約条件の値を適切なものとすることができる。
【０２０４】
次に、本発明の更に他の実施の形態の形態について、図４９を参照して説明する。図４９に示した実施の形態は、図４６に示した実施の形態と、サーバ構築支援システム１ｂ、回収サーバ２−１ｂ、加工サーバ３ｂの代わりに、サーバ構築支援システム１ｃ、回収サーバ２−１ｃ、加工サーバ３ｃを備えている点が相違している。
【０２０５】
回収サーバ２−１ｃは、図４６に示した回収サーバ２−１ｂと、定数通信部２９の代わりに定数保存部３０を備えている点が相違している。定数保存部３０は、定数決定部２８が決定した各定数値をフレキシブルディスク上のファイル等に保存する機能を有する。
【０２０６】
加工サーバ３ｃは、図４６に示した加工サーバ３ｂと、定数通信部４０の代わりに定数保存部４１を備えている点が相違している。定数保存部４１は、定数決定部３９が決定した各定数値をフレキシブルディスク上のファイル等に保存する機能を有する。
【０２０７】
サーバ構築支援システム１ｃは、図４６に示したサーバ構築支援システム１ｂと、定数通信部１６の代わりに定数読み取り部１７を備えている点が相違している。定数読み取り部１７は、フレキシブルディスク上のファイル等の格納されている定数値を読み取り、サービス定義エディタ１２ｂに渡す機能を有する。
【０２０８】
次に、本実施の形態の動作について説明する。
【０２０９】
回収サーバ２−１ｃ内の定数決定部２８は、図５０のフローチャートに示すように、所定のタイミングで、予め決められている各定数の値を、実際に測定したり、測定値に基づく演算を行うことにより決定する（ステップＳ５０１）。その後、定数保存部３０が、定数決定部２８で決定された各定数値をフレキシブルディスク上のファイルなどに格納する（ステップＳ５０２）。その後、管理者などが、回収サーバ２−１ｃに依存する定数値が記録されたフレキシブルディスクを持ってサーバ構築支援システム１ｃの設置場所の出向き、定数読み取り部１７にフレキシブルディスクをセットする。
【０２１０】
これにより、定数読み取り部１７は、図５１のフローチャートに示すように、フレキシブルディスク上のファイルに格納されている回収サーバ２−１ｃに依存する定数値を読み取り、サービス定義エディタ１２ｂに渡す（ステップＳ５１１）。サービス定義エディタ１２ｂは、定数読み取り部１７から渡された回収サーバ２−１ｃに依存する定数値を内部に保存する（ステップＳ５１２）。
【０２１１】
一方、加工サーバ３ｃ内の定数決定部３９は、図５０のフローチャートに示すように、所定のタイミングで、予め決められている各定数の値を、実際に測定したり、測定値に基づく演算を行うことにより決定する（ステップＳ５０１）。その後、定数保存部４１が、定数決定部３９で決定された各定数値をフレキシブルディスク上のファイルなどに格納する（ステップＳ５０２）。その後、管理者が加工サーバ３ｃに依存する定数値が格納されたフレキシブルディスクを持ってサーバ構築支援システム１ｃの設置場所に出向き、定数読み取り部１７にセットする。
【０２１２】
これにより、定数読み取り部１７が、図５１のフローチャートに示すように、フレキシブルディスク上のファイルに格納されている加工サーバ３ｃに依存する定数値を読み取り、サービス定義エディタ１２ｂに渡す（ステップＳ５１１）。サービス定義エディタ１２ｂは、定数読み取り１７から渡された加工サーバ３ｃに依存する定数値を内部に保存する（ステップＳ５１２）。
【０２１３】
回収サーバ２−１ｃ、加工サーバ３ｃに依存する定数値をサービス定義エディタ１２ｂに保存させた後、管理者などがサービス定義エディタ画面９１（図９参照）を使用して、入力欄が空白になっている制約条件の値を求めることを指示すると、サービス定義エディタ１２ｂは、図４６の実施の形態と同様にして、入力欄が空白になっている制約条件の値を求める。
【０２１４】
図５２は、図４９に示したサーバ構築支援システム１ｃ、回収サーバ２−１ｃ、加工サーバ３ｃを、１台のコンピュータ５２１上に構成した場合における、定数値の受け渡し方法を説明するための図である。
【０２１５】
定数決定部５２２は、実際に測定を行ったり、測定値に基づいた演算を行うことにより、回収サーバ２−１ｃに依存する定数値を決定すると共に、加工サーバ３ｃに依存する定数値を決定する。定数保存部５２３は、定数決定部５２２が決定した回収サーバ２−１ｃに依存する定数値と、加工サーバ３ｃに依存する定数値をフレキシブルディスクなどの記録媒体５２５に記録する。管理者などは、この記録媒体を定数読み取り部５２４に読み取らせる。定数読み取り部５２４は、記録媒体５２５に記録されている回収サーバ２−１ｃに依存する定数値、加工サーバ３ｃに依存する定数値を読み取り、サービス定義エディタ１２ｂに渡す。サービス定義エディタ１２ｂは、定数読み取り部５２４から渡された回収サーバ２−１ｃに依存する定数値、加工サーバ３ｃに依存する定数値を内部に保存する。その後、管理者などがサービス定義エディタ画面９１を使用して、入力欄が空白になっている制約条件の値を求めることを指示すると、前述した実施の形態と同様にして制約条件の値を求める。
【０２１６】
図５３は、図４９に示したサーバ構築支援システム１ｃ、回収サーバ２−１ｃ、加工サーバ３ｃを、１台のコンピュータ５２１上の構成した場合における、別の定数値の受け渡し方法を説明するための図である。
【０２１７】
定数決定部５３２は、実際に測定を行ったり、測定値に基づいた演算を行うことにより、回収サーバ２−１ｃに依存する定数値を決定すると共に、加工サーバ３ｃに依存する定数値を決定する。そして、決定した各定数値をサービス定義エディタ１２ｂに渡す（図５４、ステップＳ５４１）。サービス定義エディタ１２ｂは、定数決定部５３２から渡された回収サーバ２−１ｃに依存する定数値、加工サーバ３ｃに依存する定数値を内部に保存する（ステップＳ５４２）。その後、管理者などがサービス定義エディタ画面９１を使用して、入力欄が空白になっている制約条件の値を求めることを指示すると、前述した実施の形態と同様にして制約条件の値を求める。
【０２１８】
【発明の効果】
以上説明したように、本発明は、設問に対する利用者からの回答や情報を回収したり、回収加工したりする際の、複数種類の制約条件の内の一部の制約条件の値が定義されると、残りの制約条件の値を求めるサービス方法定義部を備えているので、双方向番組や、Webショッピングなどで利用する多量同時アクセス処理サーバを構築する際の適切な制約条件の値を短時間で求めることが可能になる。
【０２１９】
また、本発明は、サービス方法定義部が、残りの制約条件の値を求める際、サーバ上で実際に計測されたサーバに依存する定数値を利用するので、適切な制約条件の値を求めることができる。
【０２２０】
また、本発明は、サービス方法定義部で定義されたり、求められたりした制約条件の値に基づいて、サーバに回収処理や加工処理を行わせるサーバプログラムや動作定義情報を生成するプログラム自動生成部を備えているので、予想される回答状況などに合った適切な条件で利用者からの回答を回収したり加工したりすることが可能になる。
【図面の簡単な説明】
【図１】本発明の実施の形態の構成例を示すブロック図である。
【図２】回収サーバ２−１が取り得る構成の一例を示すブロック図である。
【図３】回収サーバ２−１が取り得る構成の一例を示すブロック図である。
【図４】加工サーバ３が取り得る構成の一例を示すブロック図である。
【図５】加工サーバ３が取り得る構成の一例を示すブロック図である。
【図６】実施の形態の処理例の概略を示すフローチャートである。
【図７】アンケートエディタ画面７１の一例を示す図である。
【図８】サービス定義エディタ画面８１の一例を示す図である。
【図９】サービス定義エディタ画面９１の一例を示す図である。
【図１０】サービス定義エディタ１２の処理例を示すフローチャートである。
【図１１】サービス定義エディタ１２の処理例を示すフローチャートである。
【図１２】サービス定義エディタ画面１２１の一例を示す図である。
【図１３】サービス定義ファイルの一例を示す図である。
【図１４】サービス定義エディタ１２の処理例を示すフローチャートである。
【図１５】サービス定義エディタ１２の処理例を示すフローチャートである。
【図１６】プログラムジェネレータ１３の処理例を示すフローチャートである。
【図１７】プログラムジェネレータ１３の処理例を示すフローチャートである。
【図１８】プログラムジェネレータ１３の処理例を示すフローチャートである。
【図１９】プログラムジェネレータ１３の処理例を示すフローチャートである。
【図２０】プログラムジェネレータ１３の処理例を示すフローチャートである。
【図２１】プログラムジェネレータ１３の処理例を示すフローチャートである。
【図２２】アンケート項目ファイルの一例を示す図である。
【図２３】回収サーバが図３に示す構成の時の処理例を示すフローチャートである。
【図２４】回収サーバが図３に示す構成の時の他の処理例を示すフローチャートである。
【図２５】加工サーバが図５に示す構成の時の処理例を示すフローチャートである。
【図２６】メモリ障害に対処できるようにした時の回収サーバの処理例を示すフローチャートである。
【図２７】回収サーバが図２に示す構成の時の処理例を示すフローチャートである。
【図２８】回収サーバが図２に示す構成の時の他の処理例を示すフローチャートである。
【図２９】加工サーバが図４に示す構成の時の処理例を示すフローチャートである。
【図３０】メモリ障害に対処できるようにした時の回収サーバの処理例を示すフローチャートである。
【図３１】選択肢毎の選択人数を集計する際の回収サーバの処理例を示すフローチャートである。
【図３２】選択肢毎の回答人数を集計する際の加工サーバの処理例を示すフローチャートである。
【図３３】回答者を年齢によってグループ分けした際の各グループに属する回答者数を求める際の回収サーバの処理例を示すフローチャートである。
【図３４】回答者を年齢によってグループ分けした際の各グループに属する回答者数を求める際の加工サーバの処理例を示すフローチャートである。
【図３５】回答者の中から先着１０名を選択する際の回収サーバの処理例を示すフローチャートである。
【図３６】回答者の中から先着１０名を選択する際の加工サーバの処理例を示すフローチャートである。
【図３７】オークションを行う際の回収サーバの処理例を示すフローチャートである。
【図３８】オークションを行う際の加工サーバの処理例を示すフローチャートである。
【図３９】抽選を行う際の回収サーバの処理例を示すフローチャートである。
【図４０】抽選を行う際の加工サーバの処理例を示すフローチャートである。
【図４１】回収サーバの処理例を示すフローチャートである。
【図４２】加工サーバの処理例を示すフローチャートである。
【図４３】レポートサービス部３５が出力するHTML形式文書に従って表示したレポートサービス画面の一例を示す図である。
【図４４】レポートサービス部３５が出力するXML形式文書の一例を示す図である。
【図４５】本発明の他の実施の形態の構成例を示すブロック図である。
【図４６】本発明の更に他の実施の形態の構成例を示すブロック図である。
【図４７】回収サーバ２−１ｂ、加工サーバ３ｂ内の定数決定部２８、３９及び定数通信部２９、４０の処理例を示すフローチャートである。
【図４８】サーバ構築支援システム１ｂ内のサービス定義エディタ１２ｂ、定数通信部１６の処理例を示すフローチャートである。
【図４９】本発明の更に他の実施の形態の構成を示すブロック図である。
【図５０】回収サーバ２−１ｃ、加工サーバ３ｃ内の定数決定部２８、３９及び定数保存部３０、４１の処理例を示すフローチャートである。
【図５１】サーバ構築支援システム１ｃ内のサービス定義エディタ１２ｂ、定数読み取り部１７の処理例を示すフローチャートである。
【図５２】本発明の更に他の実施の形態の構成を示すブロック図である。
【図５３】本発明の更に他の実施の形態の構成例を示すブロック図である。
【図５４】コンピュータ５３１内のサービス定義エディタ１２ａ、定数決定部５３２の処理例を示すフローチャートである。
【符号の説明】
１、１ｂ、１ｃ…サーバ構築支援システム
１１…アンケートエディタ
１２、１２ｂ…サービス定義エディタ
１３…プログラムジェネレータ
１４…サービスプログラムレポジトリ
１５…サーバプログラム配信管理サービス部
１６…定数通信部
１７…定数読み取り部
２−１〜２−Ｎ、２−１ａ〜２−Ｎａ、２−１ｂ、２−１ｃ…回収サーバ
２１…アンケート回収サービス部
２２…加工ミドルウェア部
２３…回収ミドルウェア部
２４…データ送信ミドルウェア部
２５…Webサーバ
２６…ユーザ数変化感知プログラム
２７…動作変更プログラム
２８…定数決定部
２９…定数通信部
３０…定数保存部
３、３ａ、３ｂ、３ｃ…加工サーバ
３１…データ受信ミドルウェア部
３２…加工サービス部
３３…回収サービス部
３４…回答データベース
３５…レポートサービス部
３６…Webサーバ
３７…サービスレポート
３８…動作変更プログラム
３９…定数決定部
４０…定数通信部
４１…定数保存部
【図１】
0003918697.tif 000022
【図２】
0003918697.tif 000023
【図３】
0003918697.tif 000024
【図４】
0003918697.tif 000025
【図５】
0003918697.tif 000026
【図６】
0003918697.tif 000027
【図７】
0003918697.tif 000028
【図８】
0003918697.tif 000029
【図９】
0003918697.tif 000030
【図１０】
0003918697.tif 000031
【図１１】
0003918697.tif 000032
【図１２】
0003918697.tif 000033
【図１３】
0003918697.tif 000034
【図１４】
0003918697.tif 000035
【図１５】
0003918697.tif 000036
【図１６】
0003918697.tif 000037
【図１７】
0003918697.tif 000038
【図１８】
0003918697.tif 000039
【図１９】
0003918697.tif 000040
【図２０】
0003918697.tif 000041
【図２１】
0003918697.tif 000042
【図２２】
0003918697.tif 000043
【図２３】
0003918697.tif 000044
【図２４】
0003918697.tif 000045
【図２５】
0003918697.tif 000046
【図２６】
0003918697.tif 000047
【図２７】
0003918697.tif 000048
【図２８】
0003918697.tif 000049
【図２９】
0003918697.tif 000050
【図３０】
0003918697.tif 000051
【図３１】
0003918697.tif 000052
【図３２】
0003918697.tif 000053
【図３３】
0003918697.tif 000054
【図３４】
0003918697.tif 000055
【図３５】
0003918697.tif 000056
【図３６】
0003918697.tif 000057
【図３７】
0003918697.tif 000058
【図３８】
0003918697.tif 000059
【図３９】
0003918697.tif 000060
【図４０】
0003918697.tif 000061
【図４１】
0003918697.tif 000062
【図４２】
0003918697.tif 000063
【図４３】
0003918697.tif 000064
【図４４】
0003918697.tif 000065
【図４５】
0003918697.tif 000066
【図４６】
0003918697.tif 000067
【図４７】
0003918697.tif 000068
【図４８】
0003918697.tif 000069
【図４９】
0003918697.tif 000070
【図５０】
0003918697.tif 000071
【図５１】
0003918697.tif 000072
【図５２】
0003918697.tif 000073
【図５３】
0003918697.tif 000074
【図５４】
0003918697.tif 000075