(57)【要約】【課題】プログラムの開発期間が短く、必要な労力が少なく、高度な知識を必要とせずにプログラムを容易に作成できるデータ収集システムを提供する。【解決手段】ユーザ端末を用いて入力インターフェースを介して入力されたデータを収集する調査プログラムを形成するためのパラメータの入力を受け付ける受付部１１０と、パラメータに基づいて、ソースコードを動的に生成し、コンパイルしてプログラムを自動的に生成する調査プログラム生成部１４０と、パラメータに基づいて、調査データＤＢに調査プログラムに対応したデータ構造を有するデータテーブルを動的に生成するテーブル生成プログラムのソースコードを動的に生成し、コンパイルしてプログラムを自動的に生成するテーブル生成プログラム生成部１４２と、調査プログラム毎に、データテーブルおよびテーブル生成プログラムと対応付けるための調査ＩＤを付与する調査ＩＤ付与部１４６と、を備える。【選択図】図７
2008084259.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末と、
前記ユーザ端末から送信された所定のデータをネットワークを介して収集する収集装置と、
前記収集装置が収集した前記所定のデータを格納するデータベースと、
前記ユーザ端末に前記データを入力するための入力インターフェースを形成し、前記ユーザ端末を用いて前記入力インターフェースを介して入力されたデータを前記収集装置に送信する機能を実現するための前記ユーザ端末が実行可能なデータ収集プログラムを生成するプログラム生成装置と、を備えたデータ収集システムであって、
前記プログラム生成装置は、
前記データ収集プログラムを形成するためのパラメータの入力を受け付ける受付部と、
前記パラメータに基づいて、前記データ収集プログラムのソースコードを動的に生成し、前記データ収集プログラムの前記ソースコードをコンパイルして前記ユーザ端末が実行可能なデータ収集プログラムを自動的に生成するデータ収集プログラム生成部と、
前記パラメータに基づいて、前記データベースに前記データ収集プログラムに対応したデータ構造を有するデータテーブルを動的に生成するテーブル生成プログラムのソースコードを動的に生成し、前記テーブル生成プログラムの前記ソースコードをコンパイルして前記収集装置が実行可能なテーブル生成プログラムを自動的に生成するテーブル生成プログラム生成部と、
前記データ収集プログラム毎に、前記データ収集プログラムと、前記データテーブルおよび前記テーブル生成プログラムとを対応付けるためのプログラム識別子を付与する識別子付与部と、を含むデータ収集システム。
【請求項２】
請求項１に記載のデータ収集システムにおいて、
前記プログラム生成装置は、
前記テーブル生成プログラムを実行する第１実行部を含み、
前記プログラム生成装置の前記識別子付与部は、前記第１実行部が前記テーブル生成プログラムを実行して前記データベースに前記データテーブルを生成するとき、前記プログラム識別子を前記データテーブルに付与し、
前記ユーザ端末は、
前記データ収集プログラムを実行する第２実行部と、
前記第２実行部が前記データ収集プログラムを実行して、前記所定のデータを収集するとき、前記プログラム識別子を含む収集データを生成する収集データ生成部と、
前記収集データを前記ネットワークを介して前記収集装置に送信する送信部と、を含み、
前記収集装置は、
前記ユーザ端末から送信された前記収集データを受信する受信部と、
前記データベースにアクセスし、前記受信部が受信した前記収集データから前記プログラム識別子を取得し、そのプログラム識別子に対応する前記データテーブルに前記収集データを格納する格納部と、を含むデータ収集システム。
【請求項３】
請求項１または２に記載のデータ収集システムにおいて、
前記データベースの前記データテーブルに格納された前記収集データを解析する解析装置をさらに備え、
前記プログラム生成装置は、
前記パラメータに基づいて、前記データベースの前記データテーブルにアクセスするためのテーブルアクセスプログラムのソースコードを動的に生成し、前記テーブルアクセスプログラムの前記ソースコードをコンパイルして前記解析装置が実行可能なテーブルアクセスプログラムを自動的に生成するテーブルアクセスプログラム生成部を含み、
前記プログラム生成装置の前記識別子付与部は、前記データ収集プログラム毎に、前記データ収集プログラムと前記テーブルアクセスプログラムとを対応付けるために前記プログラム識別子を付与するデータ収集システム。
【請求項４】
請求項３に記載のデータ収集システムにおいて、
前記解析装置は、
前記テーブルアクセスプログラムを実行する第３実行部と、
前記第３実行部が前記テーブルアクセスプログラムを実行するとき、前記プログラム識別子をキーとして前記データベースの前記データテーブルにアクセスし、前記データテーブルに格納されている前記収集データを読み出し、所定のファイル形式のデータファイルを生成するデータファイル生成部と、
前記データファイルに保存された前記収集データを解析する解析部と、を含むデータ収集システム。
【請求項５】
請求項１乃至４いずれかに記載のデータ収集システムにおいて、
前記パラメータの入力画面を表示部に表示させる表示処理部をさらに備え、
前記受付部は、前記入力画面を介して入力されたパラメータを受け付けるデータ収集システム。
【請求項６】
請求項５に記載のデータ収集システムにおいて、
前記データ収集プログラムは、所定の調査内容に対する調査データを入力するための入力インターフェースを形成し、前記入力インターフェースを介して入力された調査データを、前記ネットワークを介して前記収集装置に送信する機能を前記ユーザ端末に実現させるものであり、
前記入力画面は、
前記調査内容として複数の調査項目と、その調査項目に対する回答の選択肢とを受け付けるように形成されるデータ収集システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ収集システムに関し、特に、ユーザが直接的にソースコードを入力することなくプログラムを生成する技術に関する。
【背景技術】
【０００２】
コンピュータは、今や日常生活に欠かすことのできないものになっている。コンピュータは、たとえば端末装置、携帯電話、家庭電化製品など種々の装置に搭載され、それらの装置が有するハードウエアを適切に制御し、所定の機能を実現する。たとえば、端末装置は、企業では業務管理のために利用され、研究機関では実験結果の解析のために利用され、個人レベルでは電子メールの送受信やウェブページの閲覧のために利用される。一般に、コンピュータを利用して所定の機能を実現するためには、プログラムをコンピュータで実行する必要がある。
【０００３】
そうしたプログラムを作成するためには、高い専門知識が必要である。たとえばＣ言語、Ｃ＋＋言語、ＪＡＶＡ（登録商標）などのプログラミング言語でソースプログラムを作成し、それをコンパイラでコンパイルすることで、コンピュータで実行可能なマシン語のプログラムが作られる。こうしたソースプログラムを、表形式のプログラム仕様書に基づいて自動的に生成する技術がある（特許文献１）。
【特許文献１】特開２００３−２０８３０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コンピュータの普及や、コンピュータの利用分野の多様化にともない、プログラムの必要数は年々増加している。さらに、そうしたプログラムの開発期間も短縮される傾向にある。しかしながら、慢性的なプログラマーの不足、プログラム技術の急速な発達、プログラムを実行する装置の急速な発達などにより、必要な時にプログラムの供給を受けることができないことが多々生じる。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、プログラムの開発期間が短く、プログラムの開発に必要な労力が少なく、高度な知識を必要とせずにプログラムを容易に作成できるデータ収集システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明によれば、ユーザ端末と、
前記ユーザ端末から送信された所定のデータをネットワークを介して収集する収集装置と、
前記収集装置が収集した前記所定のデータを格納するデータベースと、
前記ユーザ端末に前記データを入力するための入力インターフェースを形成し、前記ユーザ端末を用いて前記入力インターフェースを介して入力されたデータを前記収集装置に送信する機能を実現するための前記ユーザ端末が実行可能なデータ収集プログラムを生成するプログラム生成装置と、を備えたデータ収集システムであって、
前記プログラム生成装置は、
前記データ収集プログラムを形成するためのパラメータの入力を受け付ける受付部と、
前記パラメータに基づいて、前記データ収集プログラムのソースコードを動的に生成し、前記データ収集プログラムの前記ソースコードをコンパイルして前記ユーザ端末が実行可能なデータ収集プログラムを自動的に生成するデータ収集プログラム生成部と、
前記パラメータに基づいて、前記データベースに前記データ収集プログラムに対応したデータ構造を有するデータテーブルを動的に生成するテーブル生成プログラムのソースコードを動的に生成し、前記テーブル生成プログラムの前記ソースコードをコンパイルして前記収集装置が実行可能なテーブル生成プログラムを自動的に生成するテーブル生成プログラム生成部と、
前記データ収集プログラム毎に、前記データ収集プログラムと、前記データテーブルおよび前記テーブル生成プログラムとを対応付けるためのプログラム識別子を付与する識別子付与部と、を含むデータ収集システムが提供される。
【０００７】
この発明によれば、データを入力するための入力インターフェースを形成するデータ収集プログラムと、ユーザ端末が、そのデータ収集プログラムを実行して収集した所定のデータをデータベースに格納するためのテーブルを生成するためのテーブル生成プログラムとを自動的に生成することができる。これにより、ユーザがデータ収集プログラムを形成するためのパラメータを入力するだけで、データ収集プログラムとテーブル生成プログラムが自動的に生成されることとなる。
【０００８】
すなわち、ユーザは高度なプログラム設計技術や知識を必要とせずに、直接ソースコードを入力しなくても、データ収集プログラムおよびテーブル生成プログラムを生成することが可能となる。また、自動的に各プログラムは生成されるので、プログラマーの手入力によるソースコードの作成に比較して、プログラムのデバッグが不要となり、プログラム作成工数を大幅に削減することが可能となる。
【０００９】
上記データ収集システムにおいて、前記プログラム生成装置は、前記テーブル生成プログラムを実行する第１実行部を含むことができ、前記プログラム生成装置の前記識別子付与部は、前記第１実行部が前記テーブル生成プログラムを実行して前記データベースに前記データテーブルを生成するとき、前記プログラム識別子を前記データテーブルに付与することができ、前記ユーザ端末は、前記データ収集プログラムを実行する第２実行部と、前記第２実行部が前記データ収集プログラムを実行して、前記所定のデータを収集するとき、前記プログラム識別子を含む収集データを生成する収集データ生成部と、前記収集データを前記ネットワークを介して前記収集装置に送信する送信部と、を含むことができ、前記収集装置は、前記ユーザ端末から送信された前記収集データを受信する受信部と、前記データベースにアクセスし、前記受信部が受信した前記収集データから前記プログラム識別子を取得し、そのプログラム識別子に対応する前記データテーブルに前記収集データを格納する格納部と、を含むことができる。
【００１０】
この構成によれば、ユーザ端末で収集されたデータをデータベースの該当するデータテーブルに自動的に格納し、蓄積することができる。
【００１１】
上記データ収集システムにおいて、前記データベースの前記データテーブルに格納された前記収集データを解析する解析装置をさらに備えることができ、前記プログラム生成装置は、前記パラメータに基づいて、前記データベースの前記データテーブルにアクセスするためのテーブルアクセスプログラムのソースコードを動的に生成し、前記テーブルアクセスプログラムの前記ソースコードをコンパイルして前記解析装置が実行可能なテーブルアクセスプログラムを自動的に生成するテーブルアクセスプログラム生成部を含むことができ、前記プログラム生成装置の前記識別子付与部は、前記データ収集プログラム毎に、前記データ収集プログラムと前記テーブルアクセスプログラムとを対応付けるために前記プログラム識別子を付与することができる。
【００１２】
この構成によれば、データを入力するための入力インターフェースを形成するデータ収集プログラムと、テーブル生成プログラムと、データベースに格納されたデータにアクセスするためのテーブルアクセスプログラムと、を自動的に生成することができる。これにより、ユーザがデータ収集プログラムを形成するためのパラメータを入力するだけで、データ収集プログラム、テーブル生成プログラム、およびテーブルアクセスプログラムが自動的に生成されることとなる。
【００１３】
すなわち、ユーザは高度なプログラム設計技術や知識を必要とせずに、直接ソースコードを入力しなくても、データ収集プログラム、テーブル生成プログラムおよびテーブルアクセスプログラムを生成することが可能となる。これにより、データの入力から収集、蓄積、そして解析までをトータルで行えるデータ収集システムが容易に提供されることとなる。また、自動的に各プログラムは生成されるので、プログラマーの手入力によるソースコードの作成に比較して、プログラムのデバッグが不要となり、プログラム作成工数を大幅に削減することが可能となる。
【００１４】
上記データ収集システムにおいて、前記解析装置は、前記テーブルアクセスプログラムを実行する第３実行部と、前記第３実行部が前記テーブルアクセスプログラムを実行するとき、前記プログラム識別子をキーとして前記データベースの前記データテーブルにアクセスし、前記データテーブルに格納されている前記収集データを読み出し、所定のファイル形式のデータファイルを生成するデータファイル生成部と、前記データファイルに保存された前記収集データを解析する解析部と、を含むことができる。
【００１５】
この構成によれば、携帯端末から収集され、データベースに格納されたデータを解析しやすい所定のファイル形式のデータファイルに書き出すことができる。
【００１６】
上記データ収集システムにおいて、前記パラメータの入力画面を表示部に表示させる表示処理部をさらに備えることができ、前記受付部は、前記入力画面を介して入力されたパラメータを受け付けることができる。
【００１７】
この構成によれば、ユーザは入力画面を介してパラメータを入力するだけで、データ収集プログラム、データテーブル、テーブル生成プログラム、テーブルアクセスプログラムを自動的に生成させることができる。
【００１８】
上記データ収集システムにおいて、前記データ収集プログラムは、所定の調査内容に対する調査データを入力するための入力インターフェースを形成し、前記入力インターフェースを介して入力された調査データを、前記ネットワークを介して前記収集装置に送信する機能を前記ユーザ端末に実現させるものであり、前記入力画面は、前記調査内容として複数の調査項目と、その調査項目に対する回答の選択肢とを受け付けるように形成されることができる。
【００１９】
この構成によれば、ユーザは調査内容を決定し、対応する調査項目とその回答の選択肢を入力するだけで、データ収集プログラム、データテーブル、テーブル生成プログラム、テーブルアクセスプログラムを自動的に生成させることができる。
【００２０】
以上、本発明の構成について説明したが、これらの各構成の任意の組合せや、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２１】
本発明によれば、プログラムの開発期間が短く、プログラムの開発に必要な労力が少なく、高度な知識を必要とせずにプログラムを容易に作成できるデータ収集システムが提供される。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２３】
図１は、本発明の実施の形態に係る調査システム１０の構成を示す概略ブロック図である。本実施形態のデータ収集システム（調査システム１０）は、ユーザ端末（端末装置５０）と、ユーザ端末から送信された所定のデータをネットワークを介して収集する収集装置２２０と、収集装置２２０が収集した所定のデータを格納するデータベース（調査データデータベース３４０）と、ユーザ端末にデータを入力するための入力インターフェースを形成し、ユーザ端末を用いて入力インターフェースを介して入力されたデータを収集装置に送信する機能を実現するためのユーザ端末が実行可能なデータ収集プログラムを生成するプログラム生成装置１００と、を備えたデータ収集システム（調査システム１０）であって、プログラム生成装置１００は、データ収集プログラムを形成するためのパラメータの入力を受け付ける受付部（図４の受付部１１０）と、パラメータに基づいて、データ収集プログラムのソースコードを動的に生成し、データ収集プログラムのソースコードをコンパイルしてユーザ端末が実行可能なデータ収集プログラムを自動的に生成するデータ収集プログラム生成部（図４の生成部１１２、図７の調査プログラム生成部１４０）と、パラメータに基づいて、データベースにデータ収集プログラムに対応したデータ構造を有するデータテーブルを動的に生成するテーブル生成プログラムのソースコードを動的に生成し、テーブル生成プログラムのソースコードをコンパイルして収集装置が実行可能なテーブル生成プログラムを自動的に生成するテーブル生成プログラム生成部（図４の生成部１１２、図７のテーブル生成プログラム生成部１４２）と、データ収集プログラム毎に、データ収集プログラムと、データテーブルおよびテーブル生成プログラムとを対応付けるためのプログラム識別子を付与する識別子付与部（図７の調査ＩＤ付与部１４６）と、を含む。
【００２４】
さらに、本実施形態のデータ収集（調査システム１０）システムにおいて、データベース（調査データデータベース３４０）のデータテーブルに格納された収集データを解析する解析装置３００をさらに備え、プログラム生成装置１００は、パラメータに基づいて、データベースのデータテーブルにアクセスするためのテーブルアクセスプログラムのソースコードを動的に生成し、テーブルアクセスプログラムのソースコードをコンパイルして解析装置が実行可能なテーブルアクセスプログラムを自動的に生成するテーブルアクセスプログラム生成部（図４の生成部１１２、図７のテーブルアクセスプログラム生成部１４４）を含み、プログラム生成装置１００の識別子付与部（図７の調査ＩＤ付与部１４６）は、データ収集プログラム毎に、データ収集プログラムとテーブルアクセスプログラムとを対応付けるためにプログラム識別子を付与する。
【００２５】
具体的には、本実施形態の調査システム１０において、第１端末装置５０ａ、第２端末装置５０ｂ、第３端末装置５０ｃ、および第４端末装置５０ｄ（以下、単に「端末装置５０」という）と、プログラム生成装置１００と、プログラム提供装置２００と、収集装置２２０と、解析装置３００と、データベースサーバ３２０と、調査データデータベース３４０と、を備える。
【００２６】
端末装置５０は、たとえば、携帯電話やＰＤＡ（Personal Digital Assistants）などの携帯可能な端末である。また端末装置５０は、プログラムの実行条件としてプログラムのデータサイズに上限が定められており、メモリサイズが一般的な端末と比較して小さい装置であってよい。端末装置５０は、たとえばＧＰＳ衛星からＧＰＳ信号を受信して位置情報を取得するＧＰＳ（Global Positioning System）ユニット、ＣＣＤカメラ、マイクなどを有する。また、それぞれの端末装置５０は、基地局１４を介して第１ネットワーク１２に接続し、プログラム提供装置２００、収集装置２２０および解析装置３００と通信を行う機能を有する。
【００２７】
プログラム生成装置１００は、調査内容を端末装置５０の表示部５２に表示させ、調査結果を受け付けるための調査プログラムを生成し、プログラム提供装置２００に格納する。プログラム提供装置２００は、第１ネットワーク１２を介して、その調査プログラムを端末装置５０に提供する。調査員は、その調査プログラムを実行することにより表示部５２に表示された調査内容に基づいて調査を行う。たとえば、調査員は、指定された調査地点まで端末装置５０を所持して移動し、その場で調査を行う。
【００２８】
端末装置５０は、その移動地点の位置情報（以下、単に「調査位置情報」という）を、ＧＰＳユニットを利用して取得する。その取得指示は、調査員の指示に基づいて行われてもよいし、端末装置５０内部の調査プログラムにより自動的に行われてもよいし、その他外部からの信号に基づいて行われてもよい。調査員は、端末装置５０のＣＣＤカメラを利用して指定された対象物を撮影したり、調査内容に沿った事項を、たとえばキーボタンなどの操作部５４を利用して端末装置５０に入力したりする。
【００２９】
これらの調査位置情報、画像、およびその他の調査員に直接的に入力された情報以外の端末装置５０が取得する情報は、調査結果として利用されるだけでなく、調査結果の信頼性を判断するための情報として利用される。つまり、端末装置５０が有するＧＰＳ、ＣＣＤカメラ、マイクなどから得られるデータは、一般的には調査員が任意に書き換えることができないので、調査結果の信頼性を保証するための情報として利用できる。端末装置５０は、調査員に入力された事項、および各デバイスで得られた画像、調査位置情報などを調査結果として収集装置２２０に送信する。
【００３０】
収集装置２２０は、第１ネットワーク１２を介して端末装置５０から調査結果を受信し、第２ネットワーク１６を介してデータベースサーバ３２０に調査結果を受け渡す。収集装置２２０は、複数の端末装置５０から調査位置情報が対応付けられた調査結果を収集する。収集装置２２０は、その調査結果を、例えばＣＳＶ形式や調査項目を示すパラメータ名に対応付けた形式で端末装置５０から収集する。本実施形態において、第２ネットワーク１６は、企業内などに限定されたイントラネットとするのが好ましい。
【００３１】
図２に、本実施形態の収集装置２２０が端末装置５０から受信する調査結果１９０のデータフォーマットの一例を示す。調査結果１９０は、たとえば、調査ＩＤ、調査員番号、調査員名、機体番号、営業部コード、営業部名、都道府県コード、都道府県名、ＧＰＳ取得日、ＧＰＳ取得時間、緯度、経度、光英Ｘ、光英Ｙ、回答完了日、回答完了時間、送信日、送信時間、電界強度、電池残量、ＧＰＳ測位モード、ＧＰＳ高度、および複数の調査項目の回答を含むことができる。
【００３２】
図１に戻り、データベースサーバ３２０は、後述するテーブル生成プログラムを実行することで、所定の調査ＩＤを有する調査プログラムによって収集されたデータを蓄積するためのテーブルを調査データデータベース３４０に作成する。データベースサーバ３２０は、調査データデータベース３４０にアクセスし、収集装置２２０が端末装置５０から受信した調査結果を第２ネットワーク１６を介して受けとり、調査データデータベース３４０に蓄積する。このとき、データベースサーバ３２０は、受信した調査結果のデータに含まれる調査ＩＤをキーとして、調査データデータベース３４０内の該当するデータテーブルを見つけ出し、データを格納する。なお、プログラム提供装置２００と収集装置２２０は同じ装置でもよい。
【００３３】
解析装置３００は、調査データデータベース３４０にアクセスし、調査結果を取得し、それぞれの調査結果の信頼性を判断した後、所定の解析を行う。解析装置３００は、調査位置情報が対応付けられた調査結果を取得する。解析装置３００は後述するテーブルアクセスプログラムを実行することで、任意の調査結果のデータを格納したデータテーブルにアクセスすることができる。解析装置３００は、ユーザから指定された調査ＩＤをキーとして該当するデータテーブルを調査データデータベース３４０から見つけ出し、データをたとえば、ＣＳＶ形式で読み出す。
【００３４】
図３は、本実施形態の端末装置５０で調査プログラム実行時に図１の表示部５２に表示される作業画面４００の遷移の一例を示す図である。調査プログラムを実行することにより、図１の表示部５２には、まず第１作業画面４００ａが表示され、第２作業画面４００ｂ、第３作業画面４００ｃ、第４作業画面４００ｄ、第５作業画面４００ｅ、および第６作業画面４００ｆの順に表示される。第１作業画面４００ａは、タイトル領域４０２、入力開始ボタン４０４、およびデータ送信ボタン４０６を有する。タイトル領域４０２は、たとえば調査名などを表示するための領域であり、作業画面４００の上部に表示される。
【００３５】
作業画面４００は、調査内容を示す情報を表示するための調査項目指示領域４４０と、その調査内容に対する調査結果を調査員が入力するための調査結果入力領域４４２とを含む。詳細は後述するが、調査内容を明確に調査員に伝えるために、調査項目指示領域４４０には、例えば調査内容を表す調査内容文字列４３４や、その調査内容に関連する例えば商品の外観や、調査内容に含まれる専門用語の説明のための画像４２０が含まれる。また調査結果入力領域４４２には、後述するテキストボックス、ラジオボタン、チェックボックスなどのコンポーネントが含まれ、回答を効率的かつ正確に行うために、例えば選択肢の中から回答を選択できるように形成される。
【００３６】
入力開始ボタン４０４は、調査を開始するための指示を受け付けるボタンである。入力開始ボタン４０４を選択することにより、調査項目が表示部５２に表示される。ここで、調査内容は、複数の調査項目により構成されている。データ送信ボタン４０６は、各調査項目に対する回答を完了した後、その回答を調査結果として図１の解析装置３００に送信するためのボタンである。データ送信ボタン４０６を押下すなわち選択することにより、調査結果が解析装置３００に送信される。
【００３７】
第２作業画面４００ｂは、入力開始ボタン４０４を押下すると表示される。本実施の形態では、調査項目毎にページが設けられ、その調査項目に適した回答入力用のコンポーネントが配置される。ページ番号領域４０８は、そのページ番号を表示する領域である。回答内容文字列４１０は、後述のテキスト入力領域４１２に入力する回答内容を示す文字列を表示する領域である。テキスト入力領域４１２は、回答を入力するためのテキストボックスであり、任意の文字列を入力することができる。また、第４作業画面４００ｄのラジオボタン群４２２は、予め用意された選択肢からひとつ回答を選択するためのコンポーネントである。また、図示していないが、予め用意された選択肢の中から任意の数の回答を選択するためのチェックボックスが、調査結果入力領域４４２に設けられてもよい。
【００３８】
第２作業画面４００ｂに戻り、次画面表示ボタン４１４ａは、次の調査項目に進むためのボタンであり、このボタンを押下することにより作業画面４００が切り替わる。第２作業画面４００ｂの次画面表示ボタン４１４ａを押下すると、第３作業画面４００ｃが表示される。このとき端末装置５０は、ＧＰＳユニットを利用して位置情報を取得している。位置情報の取得が完了すると、第４作業画面４００ｄが表示される。第４作業画面４００ｄの調査項目に回答し、第４作業画面４００ｄの次画面表示ボタン４１４ｂを押下すると、第５作業画面４００ｅが表示される。このように作業画面４００を順次切り替えながら、調査員は一連の調査項目に回答を入力する。
【００３９】
第５作業画面４００ｅの撮影開始ボタン４３０は、図１の端末装置５０が有するＣＣＤカメラを利用して撮影を行うためのボタンである。撮影開始ボタン４３０を押下することにより、ＣＣＤカメラがアクティブになり、撮影可能となる。このように、図１のプログラム提供装置２００が提供する調査プログラムは、端末装置５０が有するＧＰＳユニットやＣＣＤカメラなどのハードウエアを利用して得たデータを調査結果とすることができるようにコーディングされている。
【００４０】
本図では最後の作業画面４００になる第６作業画面４００ｆは、保存ボタン４３２を有する。保存ボタン４３２は、各作業画面４００で入力した回答を保存するためのボタンである。保存ボタン４３２を押下することにより、端末装置５０の記憶領域に調査結果として保存される。そして、調査員が第１作業画面４００ａのデータ送信ボタン４０６を選択すると、端末装置５０は、保存中の調査結果を図１の収集装置２２０に送信する。
【００４１】
このように、調査結果を保存した後、送信する形態にすることにより、例えば電波が届かない場所で調査を行い、電波の届く場所で調査結果を送信することができる。つまり、電波状態を気にせず、調査を行うことができるので、様々な場所での調査が可能になる。また、こうした調査項目と、回答のための入力インターフェースをプログラムにより実現することにより、調査項目に適した入力インターフェースを設けることができるので、入力ミスなど人為的なミスを防止できるとともに、迅速な調査が可能になる。また、例えば調査項目をウェブページで提供する場合と比べて、サーバへのアクセス数が大幅に減少するので、サーバの負荷を下げることができる。
【００４２】
このような作業画面４００を表示するためのプログラムは、例えばＪＡＶＡ（登録商標）などのプログラミング言語で作成されたプログラムであってよい。このプログラムを調査毎に毎回プログラマーが作成していたのでは、開発期間の問題により必要なタイミングで必要な調査を実施できないなど、迅速な調査を行うことができないこともある。また、人為的なミスにより、誤った調査項目や選択肢が含まれる場合もある。また、プログラムの開発コストの問題により、調査を控えるということもあり得る。
【００４３】
そのため、こうしたプログラムを自動的に生成することが、図１の調査システム１０を運用するためには必要になる。一般に、プログラムは、ソースコードをコンパイルすることにより生成される。プログラマーは、各種の開発ツールを利用してソースコードを作成するが、その作業には高い知識が必要となるため、一般の人は容易にソースコードを作成できない。
【００４４】
本発明者は、様々な調査を想定し、その入力インターフェースを検討した結果、調査項目毎の入力インターフェースを統一し、ひな形を作ることにより、ひな形の組合せ処理と、ひな形中の文字列を他の文字列に置換する処理とにより自動的にソースコードを生成することが可能であるということに想到した。図１のプログラム生成装置１００は、この手法に準じてソースコードを生成し、コンパイルすることによりプログラムを自動的に生成する。
【００４５】
また、プログラム生成装置１００が生成するプログラムは、上述の調査プログラムと、テーブル生成プログラムと、テーブルアクセスプログラムと、を含む。テーブル生成プログラムは、データベースサーバ３２０がプログラム生成装置１００からの指示に従い実行し、収集された調査結果を調査データデータベース３４０に格納するためのデータテーブルを調査データデータベース３４０内に作成するためのものである。
【００４６】
本実施形態のデータ収集システム（調査システム１０）において、プログラム生成装置１００は、テーブル生成プログラムを実行する第１実行部（図４の実行指示部１３４）を含み、プログラム生成装置１００の識別子付与部（図７の調査ＩＤ付与部１４６）は、第１実行部がテーブル生成プログラムを実行してデータベース（調査データデータベース３４０）にデータテーブルを生成するとき、プログラム識別子（調査ＩＤ）をデータテーブルに付与し、ユーザ端末（端末装置５０）は、データ収集プログラムを実行する第２実行部（不図示）と、第２実行部がデータ収集プログラムを実行して、所定のデータを収集するとき、プログラム識別子を含む収集データを生成する収集データ生成部（不図示）と、収集データをネットワーク（第１ネットワーク１２）を介して収集装置２２０に送信する送信部（不図示）と、を含み、収集装置２２０は、ユーザ端末（端末装置５０）から送信された収集データを受信する受信部（不図示）と、データベース（調査データデータベース３４０）にアクセスし、受信部が受信した収集データからプログラム識別子（調査ＩＤ）を取得し、そのプログラム識別子に対応するデータテーブルに収集データを格納する格納部（データベースサーバ３２０）と、を含む。
【００４７】
テーブルアクセスプログラムは、解析装置３００が実行し、調査データデータベース３４０に蓄積された調査結果を読み出し、所定のファイル形式に書き出すためのものである。
【００４８】
図４は、図１のプログラム生成装置１００の構成を示す機能ブロック図である。プログラム生成装置１００は、表示部１０２と、表示処理部１０４と、操作部１０８と、受付部１１０と、生成部１１２と、コンパイル部１１４と、格納処理部１１８と、入力画面情報生成部１２４と、コンテンツ格納部１２６と、ひな形格納部１２８と、基本関数格納部１３０と、実行指示部１３４と、第１インターフェース部１３６と、第２インターフェース部１３８と、を含む。
【００４９】
プログラム生成装置１００の各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インターフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現されるが、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００５０】
入力画面情報生成部１２４は、前述した調査用のプログラム（以下、単に「調査プログラム」という）を形成するために必要な種々の情報を入力するための入力画面を、表示部１０２に形成するための情報を生成し、表示処理部１０４に出力する。表示処理部１０４は、入力画面からの通知の内容を表示部１０２に表示させる。操作部１０８は、例えばキーボードやマウスなどの入力デバイスであり、ユーザから操作を受け付け、入力画面に対する種々の情報をパラメータ管理部１０９に出力する。パラメータ管理部１０９は、入力された情報をパラメータとして、パラメータ名などに対応付けて管理する。そして、入力画面情報生成部１２４は、パラメータ管理部１０９に管理されているパラメータを読み込み、新たに入力されたパラメータを入力画面に反映する。また、パラメータ管理部１０９は、所定のタイミングで管理中のパラメータを受付部１１０に出力する。
【００５１】
図５は、図４の表示部１０２に表示される入力画面４５０の一例を示す図である。諸情報入力領域４６０は、調査プログラムが前述した機能を実現するために必要な種々の情報を入力するための領域である。「調査ＩＤ」は、調査プログラムを識別するための情報であり、例えば調査結果を図１の解析装置３００に送信する際に、調査結果に対応付けて送信される。たとえば、後述する調査ＩＤ付与部が、調査プログラム作成時に自動的に調査プログラムに調査ＩＤを連番で付与することができる。「調査名称」は、調査毎の名称であり、図３のタイトル領域４０２に表示される。「データ送信ＵＲＬ」は、調査結果の送信先である図１の解析装置３００を第１ネットワーク１２上で特定するための情報を入力するための領域であり、例えば収集装置２２０のＵＲＬ（Uniform Resource Locator）が設定される。
【００５２】
コンポーネント追加操作ボタン群４６２は、調査項目を追加する場合に利用する。タイプ選択コンポーネント４７０は、追加する調査項目の回答の入力に利用するコンポーネントのタイプを指定するためのコンポーネントである。タイプ選択コンポーネント４７０で選択可能なコンポーネントのタイプとして、例えば複数の選択肢の中からひとつの回答を選択可能なラジオボタン（図中では「ＳＡ」と表記）、複数の選択肢の中から任意の数の回答を選択可能なチェックボックス（図中では「ＭＡ」と表記）、テキスト入力をするためのテキストボックス（図中では「Ｔｅｘｔ」と表記）がある。任意のタイプをタイプ選択コンポーネント４７０から選択し、コンポーネント追加ボタン４７２を押下することにより、選択したタイプに応じたコンポーネント設定領域４６４が追加される。
【００５３】
各コンポーネント設定領域４６４は、図３の調査項目指示領域４４０を形成するために必要な情報と、図３の調査結果入力領域４４２を形成するために必要な情報とを入力できるように、例えばテキストボックスやチェックボックスなどのコンポーネントにより構成されている。
【００５４】
第１コンポーネント設定領域４６４ａは、コンポーネントタイプとして「テキストボックス」を選択した場合に追加される。タイプ表示領域４７６には、コンポーネントのタイプが表示される。第１コンポーネント設定領域４６４ａには、図３の調査項目指示領域４４０を形成するために、質問文入力領域４８０および画像選択コンポーネント４８６が設けられている。また、図３の調査結果入力領域４４２を形成するために、回答入力領域４８２、最大文字数指定領域４８８、および入力文字タイプ指定ボックス４９０が設けられている。
【００５５】
質問文入力領域４８０は、例えば、調査員に調査させる事柄を指示するための文書を入力するための領域である。ここに入力した文字列が、図３の調査内容文字列４３４として表示される。画像選択コンポーネント４８６は、図３の画像４２０として表示する画像コンテンツを選択するためのコンポーネントであり、例えばリストの中から任意の画像コンテンツを選択できるように形成される。詳細は後述するが図４のコンテンツ格納部１２６は、画像コンテンツを格納しており、入力画面情報生成部１２４は、コンテンツ格納部１２６に格納されている画像コンテンツのリストを生成して、図５の画像選択コンポーネント４８６を形成する。
【００５６】
回答入力領域４８２は、テキストボックスの周辺に表示される文字列を入力するための領域である。この文字列が、回答を入力するためのテキストボックスの上方、下方、左側、または右側のいずれかに配置される。最大文字数指定領域４８８は、テキストボックスに入力可能な文字数の上限を設定するための領域である。入力文字タイプ指定ボックス４９０は、テキストボックスに入力可能な文字タイプを指定するためのチェックボックスである。本実施の形態では、チェックすることにより数字の入力だけが可能になり、チェックをはずすことにより、例えばひらがな、カタカナ、漢字、アルファベット、数字など任意の文字タイプの入力が可能になる。なお、回答入力領域４８２、最大文字数指定領域４８８、および入力文字タイプ指定ボックス４９０は対応付けられている。
【００５７】
本図では、回答入力領域４８２に「自販機ＩＤを入力」が記入され、最大文字数指定領域４８８に「４」が記入され、入力文字タイプ指定ボックス４９０がチェックされている。これにより、図３の第２作業画面４００ｂが形成される。すなわち、テキスト入力領域４１２の上方の回答内容文字列４１０に「自販機ＩＤを入力」と表示される。また、そのテキスト入力領域４１２は、数字のみ入力可能であり、その最大数は４文字になっている。
【００５８】
図５に戻り、回答追加ボタン４７８は、回答入力領域４８２を追加する。すなわち、図３の調査結果入力領域４４２としてテキストボックスを複数設ける場合、回答追加ボタン４７８を所望の回数、押下する。これにより、第１コンポーネント設定領域４６４ａには、回答追加ボタン４７８を押下した数の回答入力領域４８２が新たに追加される。追加したそれぞれの回答入力領域４８２は、個別に文字列を設定可能である。もちろん、各回答入力領域４８２に対応付けられた最大文字数指定領域４８８および入力文字タイプ指定ボックス４９０を個別に設定できる。また、後述する第２コンポーネント設定領域４６４ｂ、および第３コンポーネント設定領域４６４ｃの回答追加ボタン４７８は、それぞれラジオボタンならびにチェックボックス用の回答入力領域４８２を追加する。
【００５９】
回答削除コンポーネント４９４は、回答入力領域４８２を削除するためのコンポーネントである。回答削除コンポーネント４９４を押下することにより、対応する回答入力領域４８２が削除される。
【００６０】
ラジオボタン４７４は、調査結果に位置情報を対応付けるか否か、すなわち図１の端末装置５０が有するＧＰＳユニットを利用するか否かを指定するためのコンポーネントである。ラジオボタン４７４がチェックされている場合、調査結果に位置情報が対応付けられる。本実施の形態では、いずれかのコンポーネント設定領域４６４のラジオボタン４７４がチェックされている場合、調査プログラムを実行したのち、いずれかのタイミングで位置情報が取得される。
【００６１】
調査項目削除コンポーネント４９６は、調査項目を削除するためのコンポーネントである。調査項目削除コンポーネント４９６を押下することにより、対応する調査項目のコンポーネント設定領域４６４が削除される。
【００６２】
第２コンポーネント設定領域４６４ｂは、コンポーネントタイプとして「ラジオボタン」を選択した場合に追加される。第２コンポーネント設定領域４６４ｂの回答入力領域４８２に入力した文字列は、ラジオボタン毎に対応付けられて表示される。つまり、各回答入力領域４８２には各選択肢を入力する。リンク指定領域４９２は、その回答を選択した場合に、順番に調査項目を表示するのではなく、リンク先として指定された他の調査項目を表示するか否かを指定するためのコンポーネントである。例えば、リンク指定領域４９２は、調査項目のリストの中から任意の調査項目を選択できるように形成されている。そして、ラジオボタンが選択された場合に、リンク先として指定された調査項目の画面が表示される。
【００６３】
第３コンポーネント設定領域４６４ｃは、コンポーネントタイプとして「チェックボックス」を選択した場合に追加される。第３コンポーネント設定領域４６４ｃの回答入力領域４８２に入力した文字列は、チェックボックス毎に対応付けて表示される。つまり、各回答入力領域４８２には各選択肢を入力する。
【００６４】
こうした表示処理は、図４の操作部１０８におけるユーザの操作に応じて更新されたパラメータに基づいて、入力画面情報生成部１２４が入力画面４５０を形成するための情報を随時書き換えることにより実現する。
【００６５】
生成ボタン４５２は、入力画面４５０に入力された種々の情報を利用してソースコードを生成することを指示するためのボタンである。キャンセルボタン４５４は、入力画面４５０への入力をキャンセルするためのボタンである。生成ボタン４５２を押下した場合、図４のパラメータ管理部１０９は、管理中のパラメータを受付部１１０に出力する。パラメータの出力形態はいろいろとあるが、本実施の形態では、パラメータ管理部１０９は、ＸＭＬ（eXtensible Markup Language）形式のファイル（以下、単に「パラメータファイル」という）として、各パラメータを受付部１１０に出力する。
【００６６】
図６は、図４のパラメータ管理部１０９が受付部１１０に出力するパラメータファイル１５０のデータ構造の一例を示す図である。ひとつの調査プログラムを生成するための全てのパラメータは、パラメータの開始を示すパラメータ開始タグ１５１ａと、パラメータの終了を示すパラメータ終了タグ１５１ｂとに囲まれて保持される。そして、各パラメータは、パラメータの名称を示すタグに囲まれて保持される。調査ＩＤ欄１５２、名称欄１５４、およびＵＲＬ欄１５６は、図５の諸情報入力領域４６０に入力した、「調査ＩＤ」、「調査名称」ならびに「データ送信ＵＲＬ」をそれぞれ保持する。また、図５のコンポーネント設定領域４６４に入力した種々の情報は、ページ構成情報欄１６０にそれぞれタグに囲まれて保持される。本実施の形態では、ひとつのページ、すなわち図３のひとつの作業画面４００を形成するための情報が、ひとつのページ構成情報欄１６０に含まれている。
【００６７】
ページＮｏ欄１６２は、ページを識別するページ識別情報を保持し、例えば表示する順番を保持してもよい。すなわち、後述する図４の生成部１１２は、ページ識別情報に基づいて各ページを表示する順番を決め、その順番で各ページを表示するようにソースコードを生成する。このページ識別情報は、図５のコンポーネント追加ボタン４７２を操作して、コンポーネント設定領域４６４を追加した際に、図４のパラメータ管理部１０９により各コンポーネント設定領域４６４に例えば昇順で割り当てられる。
【００６８】
コンポーネント欄１７４は、図３の調査結果入力領域４４２を形成するための種々の情報を保持する。データ名欄１６４は、そのコンポーネントにより入力もしくは選択された回答を特定するデータ名を保持する。図１の端末装置５０は、調査結果を解析装置３００に送信する際、そのデータ名に対応付けて回答を送信する。また、他の例で、調査結果をＣＳＶ形式で送信する場合には、データ名を設定しなくてもよい。
【００６９】
タイプ欄１６６は、例えば、テキスト（図中「Ｔｅｘｔ」と表記）、ラジオボックス（図中「ＳＡ」と表記）、チェックボックス（図中「ＭＡ」と表記）などのコンポーネントのタイプを特定するタイプ情報を保持する。また、位置情報を取得するＧＰＳコンポーネント、ＣＣＤカメラを利用して画像を撮影する撮影コンポーネントなど端末装置５０のハードウエアを制御するためのコンポーネントを識別する情報も同様にタイプ情報としてタイプ欄１６６に保持される。
【００７０】
文字列欄１６８は、図５の回答入力領域４８２に入力された文字列を保持する。文字種欄１７０は、入力可能な文字の種類を特定する情報を保持する。本実施の形態では、図５の入力文字タイプ指定ボックス４９０がチェックされている場合に、「数字」が設定され、チェックされていない場合に任意の文字の種類を示す情報が設定される。文字数欄１７２は、図５の最大文字数指定領域４８８に入力された数字を保持する。
【００７１】
タイプ欄１６６にテキストが保持されている場合、コンポーネント欄１７４には、テキストボックスを形成するために文字種欄１７０および文字数欄１７２が含まれる。また、タイプ欄１６６にラジオボックスを示す「ＳＡ」またはチェックボックスを示す「ＭＡ」が保持されている場合、ラジオボックスまたはチェックボックスを形成するために、選択肢の枝数分の文字列欄１６８が含まれる。
【００７２】
質問文欄１８０は、図５の質問文入力領域４８０に入力された文字列を保持する。画像ファイル名欄１８２は、図５の画像選択コンポーネント４８６で選択された画像ファイルのファイル名を保持する。他の例では、画像ファイル名欄１８２は、画像ファイルの格納場所を示すパスやＵＲＬを保持してもよい。
【００７３】
図４に戻り、パラメータ管理部１０９は、このように図３の作業画面４００を形成するための各パラメータを、調査項目毎にグループに分けて、すなわちページ構成情報欄１６０毎に分けて保持するパラメータファイルを図４の受付部１１０に出力する。
【００７４】
受付部１１０は、パラメータファイルをパラメータ管理部１０９から受け付ける。生成部１１２は、図７に示すように、調査プログラム生成部１４０と、テーブル生成プログラム生成部１４２と、テーブルアクセスプログラム生成部１４４と、調査ＩＤ付与部１４６と、を含む。
【００７５】
調査プログラム生成部１４０は、受付部１１０が受け付けたパラメータに基づいて、調査プログラムのソースコードを動的に生成し、コンパイル部１１４に受け渡す。テーブル生成プログラム生成部１４２は、受付部１１０が受け付けたパラメータに基づいて、テーブル生成プログラムのソースコードを動的に生成し、コンパイル部１１４に受け渡す。テーブルアクセスプログラム生成部１４４は、受付部１１０が受け付けたパラメータに基づいて、テーブルアクセスプログラムのソースコードを動的に生成し、コンパイル部１１４に受け渡す。調査ＩＤ付与部１４６は、調査プログラム生成部１４０がソースコードを生成する調査プログラム毎に、調査プログラムと、テーブル生成プログラムと、テーブルアクセスプログラムと、を対応付けるための調査ＩＤを各々に付与する。
【００７６】
図４に戻り、ひな形格納部１２８は、ソースコードを生成するための複数種類のひな形を保持する。本実施形態において、ひな形格納部１２８は、調査プログラム、テーブル生成プログラム、およびテーブルアクセスプログラムの各種プログラム毎に、必要なひな形を保持する。生成部１１２は、生成するプログラムに応じたひな形を読み出し、生成部１１２は、そのひな形を組み合わせ、各ひな形の所定の箇所にパラメータファイルに含まれているパラメータを挿入、もしくはひな形中の所定の文字列をパラメータに置換することによりソースコードを生成する。
【００７７】
ひな形格納部１２８は、ひな形と、そのひな形により実現する機能や入力インターフェースなどを特定する情報とを対応付けて保持する。例えば、ひな形格納部１２８は、タイプ情報に対応付けて、それらのコンポーネントを端末装置５０で実現するためのプログラムコードをひな形として保持する。
【００７８】
一般に、各種のプログラム言語には、ＡＰＩ（Application Program Interface）として予め所定の処理を実現するための関数が用意されている。ソースコードは、それらのＡＰＩをプログラム言語毎の文法に準じて組み合わせて作られている。ひな形は、例えば複数の関数を組み合わせたプログラムコードであってもよいし、ひとつの関数から成るプログラムコードであってもよい。要は、ひな形格納部１２８は、コンポーネントタイプとそのひな形とを対応付けて保持すればよい。
【００７９】
パラメータファイルに基づいて、ソースコードを生成するためのアルゴリズムは、いろいろと考えられる。ひな形格納部１２８が保持するひな形は、そのアルゴリズムに応じて適宜用意される。
【００８０】
例えば、図３の調査結果入力領域４４２としてテキストボックスを有する作業画面４００を生成するためのひな形は、文字列を表示するための文字列表示関数とテキストボックスを表示するためのテキストボックス関数とを含んでいる。そして、それらの関数の引数に、図６の文字列欄１６８、文字種欄１７０、および文字数欄１７２に保持されている各情報を設定できるように、例えば引数に所定の変数名が割り当てられている。例えば、生成部１１２は、その変数に対応するパラメータを代入することにより、ソースコードを生成してもよいし、その変数をパラメータに置き換えて、ソースコードを生成してもよい。
【００８１】
また、図３の調査結果入力領域４４２としてラジオボックスやチェックボックスを有する作業画面４００を生成するためのひな形は、それぞれ文字表示関数を含み、ラジオボックスを表示するラジオボックス関数またはチェックボックスを表示するチェックボックス関数の少なくとも一方を含む。こうしたひな形に含まれるプログラムコードは、パラメータファイルに基づいてソースコードを生成するためのアルゴリズムに応じて適切に記述すればよい。要は、生成部１１２は、パラメータファイルに含まれるタイプ情報に基づいて、そのコンポーネントを形成するための関数もしくはひな形を特定し、その引数にパラメータを設定すればよい。
【００８２】
パラメータファイルに図６の画像ファイル名欄１８２が含まれている場合、生成部１１２は、コンテンツ格納部１２６から該当する画像コンテンツを読み込み、所定のタイミングでソースコードとともにコンパイル部１１４に出力する。例えばそのタイミングは、後述するコンパイル部１１４がコンパイル処理を行うときであってもよい。
【００８３】
生成部１１２は、ソースコードを生成し終えると、その旨をソースコード完成通知としてコンパイル部１１４に出力する。例えば、生成部１１２は、パラメータファイルのページ構成情報欄１６０を単位としてソースコードに変換する処理を順次行う。そして、全てのページ構成情報欄１６０について変換を終了した時点でソースコードが完成する。生成部１１２は、このとき、すなわち全てのページ構成情報欄１６０について変換を終了した時点で、その旨をコンパイル部１１４に出力してもよい。また、生成部１１２は、パラメータファイルのパラメータ開始タグ１５１ａからパラメータ終了タグ１５１ｂまで、各パラメータに基づいて順次ソースコードに変換する処理を行い、パラメータ終了タグ１５１ｂに到達すると変換処理を終了するとともに、ソースコード完成通知をコンパイル部１１４に出力してもよい。
【００８４】
基本関数格納部１３０は、コンパイルに必要な種々のファイルを保持する。コンパイル部１１４は、基本関数格納部１３０に保持されているファイルを利用して、ソースコードをオブジェクトコードに変換して、調査プログラム、テーブル生成プログラム、またはテーブルアクセスプログラムを生成する。
【００８５】
格納処理部１１８は、コンパイル部１１４が生成した調査プログラムをプログラム提供装置２００に出力し、配信可能にさせる。また、格納処理部１１８は、テーブル生成プログラムを実行指示部１３４に受け渡す。実行指示部１３４は、テーブル生成プログラムを第１インターフェース部１３６を介して第２ネットワーク１６上のデータベースサーバ３２０に送信するとともに、テーブル生成プログラムの実行を指示する。さらに格納処理部１１８は、テーブルアクセスプログラムを第２インターフェース部１３８を介して第３ネットワーク１８上の解析装置３００に送信する。
【００８６】
このプログラム生成装置１００により、ユーザが図５の入力画面４５０を利用して単に調査項目を入力することにより、ソースコードを生成し、自動的にコンパイルして調査プログラム、テーブル生成プログラム、およびテーブルアクセスプログラムを生成することができる。
【００８７】
図８は、図１のプログラム提供装置２００の構成を示す機能ブロック図である。登録部２０２は、プログラム生成装置１００から調査プログラムを受け付ける。そして、登録部２０２は、受け付けた調査プログラムをプログラム格納部２０４に格納する。プログラム提供部２０６は、端末装置５０からの要求に応じて、プログラム格納部２０４に格納されている調査プログラムを提供する。プログラム提供部２０６は、調査プログラムを提供する際に、例えば端末装置５０に固有に割り当てられている識別情報などにより、調査員の認証を行い、認証に成功した場合に、調査プログラムを端末装置５０に提供してもよい。
【００８８】
このように構成された本実施形態の調査システム１０の動作について、以下に説明する。図９は、本実施形態の調査システム１０の動作の一例を示すフローチャートである。以下、図１乃至図９を用いて説明する。
【００８９】
はじめに、図４のプログラム生成装置１００において、表示部１０２に図５の入力画面４５０が表示される（Ｓ１０）。ユーザが入力画面４５０に従って、諸情報入力領域４６０に「調査ＩＤ」、「調査名称」ならびに「データ送信ＵＲＬ」をそれぞれ入力する。さらに、図５のコンポーネント追加ボタン４７２を操作して、コンポーネント設定領域４６４を追加し、コンポーネントのタイプを選択し、図３の調査項目指示領域４４０を形成するために、質問文入力領域４８０への質問文の入力および画像選択コンポーネント４８６の有無を選択する。さらに、回答入力領域４８２に少なくとも一つの回答を入力することができる。このようにしてユーザが入力画面４５０を用いて入力したパラメータを図４のパラメータ管理部１０９が図４の操作部１０８から受けとり、図４の受付部１１０に受け渡す。
【００９０】
そして、図４の受付部１１０は、図４のパラメータ管理部１０９からパラメータファイルを受け付ける（Ｓ１２）。そして、図７の生成部１１２において、受付部１１０が受け付けたパラメータファイルに含まれるパラメータに基づいて、ひな形格納部１２８から調査プログラム用のひな形を選択し（Ｓ１４）、図７の調査プログラム生成部１４０が、そのひな形中の所定の引数を、パラメータファイル中のパラメータに置き換え、調査プログラムのソースコードを生成する（Ｓ１６）。
【００９１】
さらに、図７の調査プログラム生成部１４０にて調査プログラムのソースコードが完成したとき、図４のコンパイル部１１４は調査プログラムのソースコードのコンパイルを実行する（Ｓ１８）。このとき、コンパイルされた調査プログラムには、調査ＩＤ付与部１４６により調査ＩＤを含むファイル名が付与される。
【００９２】
コンパイルされた調査プログラムは、図４の格納処理部１１８に出力され、格納処理部１１８はその調査プログラムを図１のプログラム提供装置２００に出力し、図１の端末装置５０に提供可能な状態にさせる（Ｓ２０）。たとえば、後述するように、調査プログラムを第１ネットワーク１２上で公開することにより、端末装置５０がプログラム提供装置２００にアクセスし、ダウンロードさせる構成とすることもできる。
【００９３】
つづいて、図７のテーブル生成プログラム生成部１４２が、ひな形格納部１２８から選択されたテーブル生成プログラム用のひな形中の所定の引数を、パラメータファイル中のパラメータに置き換え、テーブル生成プログラムのソースコードを生成する（Ｓ２２）。そして、図７のテーブル生成プログラム生成部１４２にてテーブル生成プログラムのソースコードが完成したとき、図４のコンパイル部１１４はテーブル生成プログラムのソースコードのコンパイルを実行する（Ｓ２４）。このとき、コンパイルされたテーブル生成プログラムには、調査ＩＤ付与部１４６により調査ＩＤを含むファイル名が付与される。
【００９４】
そして、コンパイルされたテーブル生成プログラムは、図４の実行指示部１３４に受け渡され、第１インターフェース部１３６を介して第２ネットワーク１６上のデータベースサーバ３２０に送信される。そして実行指示部１３４は、データベースサーバ３２０にそのテーブル生成プログラムの実行指示を行う（Ｓ２６）。このとき、データベースサーバ３２０は、受信したテーブル生成プログラムを実行し、調査データデータベース３４０にテーブル生成プログラムによってデータテーブルが作成される。
【００９５】
ここで作成されるデータテーブルは、調査プログラムの調査項目と対応したデータ構造を有するテーブルとなる。データテーブルには、調査ＩＤを含むファイル名が付与される。データベースサーバ３２０は、収集装置２２０によって収集された調査結果のデータを格納する際、調査結果のデータに含まれる調査ＩＤをキーとしてデータを格納するデータテーブルを探し、該当するデータテーブルに調査結果のデータを格納する。調査結果１９０のデータは図２に示されるフォーマットを有し、収集装置２２０が受信した順にデータテーブルに蓄積されていく。
【００９６】
さらに、図７のテーブルアクセスプログラム生成部１４４が、ひな形格納部１２８から選択されたテーブルアクセスプログラム用のひな形中の所定の引数を、パラメータファイル中のパラメータに置き換え、テーブルアクセスプログラムのソースコードを生成する（Ｓ２８）。そして、図７のテーブルアクセスプログラム生成部１４４にてテーブルアクセスプログラムのソースコードが完成したとき、図４のコンパイル部１１４はテーブルアクセスプログラムのソースコードのコンパイルを実行する（Ｓ３０）。このとき、コンパイルされたテーブルアクセスプログラムには、調査ＩＤ付与部１４６により調査ＩＤを含むファイル名が付与される。
【００９７】
図１０および図１１に、テーブルアクセスプログラム５００のソースコードの一例を示す。テーブルアクセスプログラム５００は、サーバ名５０２、テーブル名５０４、調査共通情報５０６、および複数の調査項目５０８、ならびに選択肢５１０を含むことができる。調査項目５０８および選択肢５１０に示すように、図３の作業画面４００で調査を実行したときの調査項目の文字列が使用される。
【００９８】
調査項目５０８および選択肢５１０は、調査データデータベース３４０のデータテーブルから調査結果のデータを読み出し、所定の形式のファイルに書き出すときに、たとえばフィールド名として使用することができる。これにより、テーブルアクセスプログラムによって読み出された調査結果のデータは、単なるデータの羅列ではなく、特に分かりやすい意味を持ったレコード群となる。このようにして読み出された調査結果は、その後各種の解析でより扱いやすいデータとなる。たとえば、そのままＣＳＶ形式で書き出せば、表計算ソフトなどに読み込むことにより、簡単に集計および図表化することができ、様々な解析が可能となる。
【００９９】
そして、コンパイルされたテーブルアクセスプログラムは、図４の第２インターフェース部１３８を介して第３ネットワーク１８上の図１の解析装置３００に送信される（Ｓ３２）。解析装置３００では、テーブルアクセスプログラムをプログラム記憶部（不図示）に格納し、ユーザの要求に応じて実行させることができる。あるいは、調査プログラムと同様に、テーブルアクセスプログラムも、プログラム提供装置２００に登録し、解析装置３００がプログラム提供装置２００にアクセスすることにより、必要なテーブルアクセスプログラムを解析装置３００にダウンロードする構成とすることもできる。その場合、図１の解析装置３００は、プログラム提供装置２００に第３ネットワーク１８を介して接続されることとなる。本実施形態において、第３ネットワーク１８は、企業内などに限定されたイントラネットとするのが好ましい。
【０１００】
図１２は、本実施形態の調査システム１０において、複数の調査プログラムを作成、編集するための調査一覧画面５３０の一例を示す図である。本実施形態において、調査システム１０は、複数の調査プログラムを一元管理する調査一覧画面５３０を提示する提示部（不図示）を含むことができる。調査一覧画面５３０は、新規作成ボタン５３２を含み、新規作成ボタン５３２の押下により、調査プログラムの作成が開始される。すなわち、図５の入力画面４５０がプログラム生成装置１００の表示部１０２に表示される。
【０１０１】
たとえば、プログラム生成装置１００は、新規作成ボタン５３２の押下を操作部１０８が受け付け、調査プログラムの新規作成の要求に呼応して、表示処理部１０４が、新規作成の要求に呼応して、表示部１０２に入力画面４５０を表示する。
【０１０２】
上述したように入力画面４５０にて作成された調査プログラムは、調査一覧として、調査一覧画面５３０に表示でき、一元管理することができる。調査一覧画面５３０は、プログラム提供装置２００の登録部２０２およびプログラム提供部２０６に相当する。調査一覧には、調査プログラム毎に、調査ＩＤ５３４、調査名称５３６、作成日５３８、状況５４０、および操作メニュー５４２を含む。操作メニュー５４２としては、たとえば、編集ボタン５４４、運用ボタン５４６、コピーボタン５４８、および削除ボタン５５０がある。プログラム生成装置１００は、さらにこれらの各種ボタンの押下を操作部１０８を介して受け付け、各処理を行う処理部（不図示）を含むことができる。たとえば、ユーザが任意に選択した調査プログラムの運用ボタン５４６の押下を受け付けると、後述する調査運用画面が表示部１０２に表示され、選択された調査プログラムの各種情報を確認することができる。
【０１０３】
図１３は、本実施形態の調査システム１０において、図１２の調査一覧画面５３０において、運用ボタン５４６が押下されたとき表示される調査運用画面５６０の一例を示す図である。図１３では、図１２の状況５４０が「未公開」の調査プログラムが選択された場合について示している。調査運用画面５６０は、公開ボタン５６２およびアプリ作成ボタン５６４を含む。調査運用画面５６０では、調査プログラムの調査運用情報として、公開、未公開などのステータス、公開日、調査公開名、公開対象、公開終了日、アプリ名、アプリ更新日などを含む。さらに調査運用画面５６０は、調査プログラムの調査情報として、調査ＩＤ、調査名、データ送信ＵＲＬ、作成者名、作成日、更新日などを含む。調査ＩＤ、調査名、データ送信ＵＲＬなどは、調査プログラム作成時に、図５の諸情報入力領域４６０で入力された情報である。
【０１０４】
アプリ作成ボタン５６４の押下を受け付けることにより、図７の生成部１１２のテーブルアクセスプログラム生成部１４４により、テーブルアクセスプログラムが生成される。また、公開ボタン５６２の押下を受け付けることにより、図８のプログラム提供装置２００のプログラム提供部２０６が、端末装置５０が第１ネットワーク１２から調査プログラムをダウンロード可能なように公開する。
【０１０５】
図１４は、公開中の調査プログラムの調査運用画面５７０の一例を示す図である。公開中の調査プログラムのデータ情報として、回答データの圧縮ファイルのファイル名、その更新日、ＳＡＳプログラム（テーブルアクセスプログラム）を含む。このように、各調査プログラムに関する各種の情報を調査運用画面５６０および調査運用画面５７０で確認でき、また編集などの操作をすることができる。
【０１０６】
以上、説明したように、本実施形態の調査システム１０によれば、データを入力するための入力インターフェースを形成するデータ収集プログラムと、ユーザ端末が、そのデータ収集プログラムを実行して収集した所定のデータをデータベースに格納するためのテーブルを生成するためのテーブル生成プログラムとを自動的に生成することができる。これにより、ユーザがデータ収集プログラムを形成するためのパラメータを入力するだけで、データ収集プログラムとテーブル生成プログラムが自動的に生成されることとなる。
【０１０７】
すなわち、ユーザは高度なプログラム設計技術や知識を必要とせずに、直接ソースコードを入力しなくても、データ収集プログラムおよびテーブル生成プログラムを生成することが可能となる。これにより、データの入力から収集、蓄積、そして解析までをトータルで行えるデータ収集システムが容易に提供されることとなる。また、自動的に各プログラムは生成されるので、プログラマーの手入力によるソースコードの作成に比較して、プログラムのデバッグが不要となり、プログラム作成工数を大幅に削減することが可能となる。
【０１０８】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【０１０９】
たとえば、上記実施形態では、調査プログラムを例に説明したが、調査プログラムだけでなく、例えばアンケートやクイズなど種々のプログラムをであってもよい。
【図面の簡単な説明】
【０１１０】
【図１】本発明の実施の形態に係る調査システムの構成を示す概略ブロック図である。
【図２】図１の調査システムにおいて、端末装置から送信される調査結果のデータフォーマットの一例を示す図である。
【図３】図１の調査システムの端末装置の表示部に表示される作業画面の遷移の一例を示す図である。
【図４】図１のプログラム生成装置の構成を示す機能ブロック図である。
【図５】図４のプログラム生成装置の表示部に表示される入力画面の一例を示す図である。
【図６】図４のプログラム生成装置のパラメータ管理部が受付部に出力するパラメータファイルのデータ構造の一例を示す図である。
【図７】図４のプログラム生成装置の生成部の構成を示す機能ブロック図である。
【図８】図１のプログラム提供装置の構成を示す機能ブロック図である。
【図９】本実施形態の調査システムの動作の一例を示すフローチャートである。
【図１０】テーブルアクセスプログラムのソースコードの一例を示す図である。
【図１１】図１０のテーブルアクセスプログラムのソースコードの一例の続きを示す図である。
【図１２】図１の調査システムにおいて、複数の調査プログラムを作成、編集するための調査一覧画面の一例を示す図である。
【図１３】本実施形態の調査システムにおいて、図１２の調査一覧画面において、運用ボタンが押下されたとき表示される調査運用画面の一例を示す図である。
【図１４】公開中の調査プログラムの調査運用画面の一例を示す図である。
【符号の説明】
【０１１１】
１０  調査システム
１２  第１ネットワーク
１４  基地局
１６  第２ネットワーク
１８  第３ネットワーク
５０  端末装置
５２  表示部
５４  操作部
１００  プログラム生成装置
１０２  表示部
１０４  表示処理部
１０８  操作部
１０９  パラメータ管理部
１１０  受付部
１１２  生成部
１１４  コンパイル部
１１８  格納処理部
１２４  入力画面情報生成部
１２６  コンテンツ格納部
１２８  ひな形格納部
１３０  基本関数格納部
１３４  実行指示部
１３６  インターフェース部
１３８  インターフェース部
１４０  調査プログラム生成部
１４２  テーブル生成プログラム生成部
１４４  テーブルアクセスプログラム生成部
１４６  調査ＩＤ付与部
１５０  パラメータファイル
１９０  調査結果
２００  プログラム提供装置
２０２  登録部
２０４  プログラム格納部
２０６  プログラム提供部
２２０  収集装置
３００  解析装置
３２０  データベースサーバ
３４０  調査データデータベース
４００  作業画面
４５０  入力画面
５００  テーブルアクセスプログラム
５３０  調査一覧画面
５６０  調査運用画面
５７０  調査運用画面
【図１】
2008084259.tif 000003
【図２】
2008084259.tif 000004
【図３】
2008084259.tif 000005
【図４】
2008084259.tif 000006
【図５】
2008084259.tif 000007
【図６】
2008084259.tif 000008
【図７】
2008084259.tif 000009
【図８】
2008084259.tif 000010
【図９】
2008084259.tif 000011
【図１０】
2008084259.tif 000012
【図１１】
2008084259.tif 000013
【図１２】
2008084259.tif 000014
【図１３】
2008084259.tif 000015
【図１４】
2008084259.tif 000016