(57)【要約】【課題】  データ構造部Ｍ、データ制御処理部Ｃ及び入出力制御部Ｖを備えたＭＶＣフレームワークにおいて、表示が異なる入出力インターフェースにそれぞれ対応可能なアプリケーションシステムを効率的に開発することの可能なアプリケーションシステム開発方法等を提供すること。【解決手段】入出力制御部Ｖは、Ｗｅｂブラウザと電子メール等、表示が異なる入出力インターフェースにそれぞれ対応する複数の入出力制御部３３，３４である。これら複数の入出力制御部３３，３４に対しデータ構造部Ｍ，３１及びデータ制御処理部Ｃ，３２を共通に設けるようフレームワークを定義する。データ構造部Ｍ、データ制御処理部Ｃ及び複数の入出力制御部Ｖの設計及びコーディングを行う。【選択図】    図４
2010003241.tif 000002
【特許請求の範囲】
【請求項１】
データベース定義を含むデータ構造部（Ｍ）と、データ制御処理部（Ｃ）と、入出力制御部（Ｖ）とを有し、前記入出力制御部（Ｖ）を介したクライアントからの要求に基づいて前記データ構造部（Ｍ）及び前記データ制御処理部（Ｃ）によりデータを処理し又は前記入出力制御部（Ｖ）に表示させるフレームワークを用いてアプリケーションシステムを開発するアプリケーションシステム開発方法において、
前記入出力制御部（Ｖ）は表示が異なる入出力インターフェースにそれぞれ対応する複数の入出力制御部（Ｖ）であって、
これら複数の入出力制御部（Ｖ）に対しデータ構造部（Ｍ）及びデータ制御処理部（Ｃ）を共通に設けるようフレームワークを定義し、
前記データ構造部（Ｍ）、前記データ制御処理部（Ｃ）及び前記複数の入出力制御部（Ｖ）の設計及びコーディングを行うアプリケーションシステム開発方法。
【請求項２】
前記データ制御処理部（Ｃ）における制御メソッド及びこの制御メソッドに対応する前記複数の入出力制御部（Ｖ）の入出力制御処理をフレームワークの基底クラスに加入してある請求項１記載のアプリケーションシステム開発方法。
【請求項３】
前記入出力制御部（Ｖ）は前記クライアントに対話用スクリプトを表示させるものであり、前記データベース定義は前記対話用スクリプトを含み、前記入出力制御部（Ｖ）は前記データベース定義から前記対話用スクリプトを抽出する対話抽出部を備えている請求項１又は２記載のアプリケーションシステム開発方法。
【請求項４】
前記複数の入出力制御部（Ｖ）は、電子メール及びＷｅｂブラウザに各々対応したものである請求項１〜３のいずれかに記載のアプリケーションシステム開発方法。
【請求項５】
データベース定義を含むデータ構造部（Ｍ）と、データ制御処理部（Ｃ）と、入出力制御部（Ｖ）とを有し、前記入出力制御部（Ｖ）を介したクライアントからの要求に基づいて前記データ構造部（Ｍ）及び前記データ制御処理部（Ｃ）によりデータを処理し又は前記入出力制御部（Ｖ）に表示させるフレームワーク及びこれを利用したアプリケーションシステムにおいて、
前記入出力制御部（Ｖ）は表示が異なる入出力インターフェースにそれぞれ対応する複数の入出力制御部（Ｖ）であって、
これら複数の入出力制御部（Ｖ）に対しデータ構造部（Ｍ）及びデータ制御処理部（Ｃ）を共通に設けるようフレームワークを定義してあるフレームワーク及びこれを利用したアプリケーションシステム。
【請求項６】
前記入出力制御部（Ｖ）は前記クライアントに対話用スクリプトを表示させるものであり、前記データベース定義は前記対話用スクリプトを含み、前記入出力制御部（Ｖ）は前記データベース定義から前記対話用スクリプトを抽出する対話抽出部を備えている請求項５記載のフレームワーク及びこれを利用したアプリケーションシステム。
【請求項７】
前記複数の入出力制御部（Ｖ）は、電子メール及びＷｅｂブラウザに各々対応したものである請求項５又は６記載のフレームワーク及びこれを利用したアプリケーションシステム。
【請求項８】
前記対話抽出部は、前記スクリプトと共に対話の順序を決定しモジュール化するものである請求項６又は７記載のフレームワーク及びこれを利用したアプリケーションシステム。
【請求項９】
前記電子メール用の入出力制御部（Ｖ）が、一連の電子メールの遣り取りの途中経過を保存しておくためのデータベースを備えている請求項７記載のフレームワーク及びこれを利用したアプリケーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションシステム開発方法並びにフレームワーク及びこれを利用したアプリケーションシステムに関する。さらに詳しくは、データベース定義を含むデータ構造部（Ｍ）と、データ制御処理部（Ｃ）と、入出力制御部（Ｖ）とを有し、前記入出力制御部（Ｖ）を介したクライアントからの要求に基づいて前記データ構造部（Ｍ）及び前記データ制御処理部（Ｃ）によりデータを処理し又は前記入出力制御部（Ｖ）に表示させるフレームワークを用いてアプリケーションシステムを開発するアプリケーションシステム開発方法並びにフレームワーク及びこれを利用したアプリケーションシステムに関する。
【背景技術】
【０００２】
従来より、ソフトウェア開発、特にＷｅｂアプリケーション開発においては、非特許文献１に示すように、データベース定義を含むデータ構造部（Ｍｏｄｅｌ，Ｍ）と、データ制御処理部（Ｃｏｎｔｒｏｌ、Ｃ）と、入出力制御部（ユーザインターフェース、Ｖｉｅｗ、Ｖ）と分離してアプリケーションを作成する、ＭＶＣフレームワークを用いた開発手法が存在する。
【非特許文献１】John Anderson、CakePHP プログラマーズ リファレンスガイド、2. 基本コンセプト、平成１８年６月２０日[平成２０年６月１９日検索]、インターネット<URL：http://www.cakephp.jp/doc/>
【発明の開示】
【発明が解決しようとする課題】
【０００３】
同フレームワークでは、主としてＷｅｂアプリケーションの開発において用いられ、入出力制御部（Ｖ）の表示としては通常Ｗｅｂブラウザが用いられる。Ｗｅｂブラウザには複数種のタイプが存在するものの、アプリケーションソフトウエア開発者は、Ｗｅｂブラウザ用の入出力制御部（Ｖ）とこれに関連するデータ制御処理部（Ｃ）及びデータ構造部（Ｍ）とを連携させるように、アプリケーションソフトウエア開発を進める必要があった。
【０００４】
一方、Ｗｅｂアプリケーションにおいて、特に携帯電話をインターフェースとして用いる場合、応答速度等の問題がある。したがって、操作をＷｅｂからのみならず、メールアプリケーションとして電子メールから行えれば理想的である。
【０００５】
しかし、上述の如く、Ｗｅｂブラウザ用の入出力制御部（Ｖ）とこれに関連するデータ制御処理部（Ｃ）及びデータ構造部（Ｍ）とを連携させるように、アプリケーションソフトウエア開発を進めていた。したがって、メールアプリケーションを作成するには、電子メールを用いた入出力制御部（Ｖ）とこれに関連するデータ制御処理部（Ｃ）及びデータ構造部（Ｍ）とを連携させるように、アプリケーションソフトウエア開発を先のＷｅｂアプリケーションとは別個に進める必要があり、アプリケーションソフトウエアを効率的に開発するのが困難であった。
【０００６】
かかる従来の実情に鑑みて、本発明は、ＭＶＣフレームワークにおいて、Ｗｅｂブラウザと電子メール等、表示が異なる入出力インターフェースにそれぞれ対応可能なアプリケーションシステムを効率的に開発することの可能なアプリケーションシステム開発方法並びにフレームワーク及びこれを利用したアプリケーションシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係るアプリケーションシステム開発方法の特徴は、データベース定義を含むデータ構造部（Ｍ）と、データ制御処理部（Ｃ）と、入出力制御部（Ｖ）とを有し、前記入出力制御部（Ｖ）を介したクライアントからの要求に基づいて前記データ構造部（Ｍ）及び前記データ制御処理部（Ｃ）によりデータを処理し又は前記入出力制御部（Ｖ）に表示させるフレームワークを用いてアプリケーションシステムを開発するアプリケーションシステム開発方法において、前記入出力制御部（Ｖ）は表示が異なる入出力インターフェースにそれぞれ対応する複数の入出力制御部（Ｖ）であって、これら複数の入出力制御部（Ｖ）に対しデータ構造部（Ｍ）及びデータ制御処理部（Ｃ）を共通に設けるようフレームワークを定義し、前記データ構造部（Ｍ）、前記データ制御処理部（Ｃ）及び前記複数の入出力制御部（Ｖ）の設計及びコーディングを行うことにある。
【０００８】
上記特徴に加え、前記データ制御処理部（Ｃ）における制御メソッド及びこの制御メソッドに対応する前記複数の入出力制御部（Ｖ）の入出力制御処理をフレームワークの基底クラスに加入してあるとよい。
【０００９】
前記入出力制御部（Ｖ）は前記クライアントに対話用スクリプトを表示させるものであり、前記データベース定義は前記対話用スクリプトを含み、前記入出力制御部（Ｖ）は前記データベース定義から前記対話用スクリプトを抽出する対話抽出部を備えていることが望ましい。前記複数の入出力制御部（Ｖ）は、電子メール及びＷｅｂブラウザに各々対応したものであってもよい。
【００１０】
上記目的を達成するため、本発明に係るフレームワーク及びこれを利用したアプリケーションシステムの特徴は、データベース定義を含むデータ構造部（Ｍ）と、データ制御処理部（Ｃ）と、入出力制御部（Ｖ）とを有し、前記入出力制御部（Ｖ）を介したクライアントからの要求に基づいて前記データ構造部（Ｍ）及び前記データ制御処理部（Ｃ）によりデータを処理し又は前記入出力制御部（Ｖ）に表示させる構成において、前記入出力制御部（Ｖ）は表示が異なる入出力インターフェースにそれぞれ対応する複数の入出力制御部（Ｖ）であって、これら複数の入出力制御部（Ｖ）に対しデータ構造部（Ｍ）及びデータ制御処理部（Ｃ）を共通に設けるようフレームワークを定義させることにある。
【００１１】
上記特徴のシステムに加え、前記入出力制御部（Ｖ）は前記クライアントに対話用スクリプトを表示させるものであり、前記データベース定義は前記対話用スクリプトを含み、前記入出力制御部（Ｖ）は前記データベース定義から前記対話用スクリプトを抽出する対話抽出部を備えているとよい。
【００１２】
前記複数の入出力制御部（Ｖ）は、電子メール及びＷｅｂブラウザに各々対応したものであってもよい。また、前記対話抽出部は、前記スクリプトと共に対話の順序を決定しモジュール化するものであるとよい。
【００１３】
加えて、前記電子メール用の入出力制御部（Ｖ）が、一連の電子メールの遣り取りの途中経過を保存しておくためのデータベースを備えているとよい。
【発明の効果】
【００１４】
上記本発明に係るアプリケーションシステム開発方法並びにフレームワーク及びこれを利用したアプリケーションシステムの特徴によれば、ＭＶＣフレームワークを改良することにより、Ｗｅｂブラウザと電子メール等、表示が異なる入出力インターフェースにそれぞれ対応可能なアプリケーションシステムを効率的に開発することが可能となった。
【００１５】
本発明の他の目的、構成及び効果については、以下の発明の実施の形態の項から明らかになるであろう。
【発明を実施するための最良の形態】
【００１６】
次に、適宜添付図面を参照しながら、本発明をさらに詳しく説明する。
図１は、本発明に係る開発方法を実施するプラットホームであるネットワークシステム１の構成図である。
【００１７】
このネットワークシステム１は、ＴＣＰ／ＩＰ等のプロトコルで構築されたネットワークにより、サーバー２と複数のクライアント３（ユーザー端末）とが接続されて構成されている。サーバー２は、ＷＷＷ（World Wide Web）サーバー２ａ、メールサーバー２ｂ、データベースサーバー２ｃを備えており、フレームワーク２ｄを利用してアプリケーションプログラム２ｅを構築し記憶する。
【００１８】
クライアント３は、各々が表示の異なる複数の入出力インターフェイスを有する情報端末であり、主にＷｅｂブラウザを利用するＰＣ（Personal Computer）３ａ、主に電子メールを利用する携帯電話３ｂ、並びに、ＰＤＡ(Personal Digital Assistant)３ｃ等が用いられる。なお、これらの各端末は、それぞれがＷｅｂブラウザ及び電子メールの双方を利用してもよい。その他、クライアント３は、ＡＶ(Audio Visual)機器や家電（家庭用電化製品）などのＣＥ（Consumer Electronics）機器などで構成することもできる。
【００１９】
図１では、フレームワーク２ｄ及びアプリケーションプログラム２ｅを全てサーバー２に記憶させるように表示している。しかし、これらフレームワーク２ｄ及びアプリケーションプログラム２ｅの一部をクライアント３に適宜記憶させてもよい。
【００２０】
図２は、サーバー２又はユーザー端末３であるコンピュータ１０の構成例を示すブロック図である。ＣＰＵ（Central Processing Unit）１１は、ＲＯＭ（Read Only Memory）１２に記憶されているプログラム、または記憶部１８からＲＡＭ（Random Access Memory）１３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ１３にはまた、ＣＰＵ１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００２１】
ＣＰＵ１１、ＲＯＭ１２、およびＲＡＭ１３は、バス１４を介して相互に接続されている。このバス１４には入出力インタフェース１５も接続されている。
入出力インタフェース１５には、キーボード、マウスなどよりなる入力部１６、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部１７、ハードディスクなどより構成される記憶部１８、ネットワークカード、ターミナルアダプタ等より構成される通信部１９が接続されている。通信部１９は、ネットワーク１ａを介しての通信処理を行う。
【００２２】
ここで、ＣＰＵ１１が、例えば図１１〜２０に示す各種のプログラムを実行することにより、図２のコンピュータ１０は、サーバー２又はユーザー端末３として機能することとなる。この場合、プログラムは、図２のコンピュータに内蔵されている記録媒体としてのＲＯＭ１２や記憶部１８に予め記録しておくことができる。あるいはまた、プログラムは、外部記憶装置に接続されたリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）し、いわゆるパッケージソフトウエアとして提供することができる。
【００２３】
図１１〜２０に示す各種のプログラムが実行されて、図３〜図１０の構造が機能する。また、図４の構成図は図１１〜２０に対応するため、以下の記載では、図３〜図１０と 図１１〜２０とを順次対比させて説明する。
【００２４】
図３は、本実施形態に用いられるデータベーステーブルの構成図である。データベースの要素としては、Ｉｄ、アドレス、質問、解答、作成日時及び更新日時が設定されている。
【００２５】
図３は図１１のデータ構造記述によって実現される。図１１の記述はSQLの文法にしたがっている。１行目はqas という名称のテーブルを作る宣言である。２行目から６行目は、その qas の内部要素を宣言している。２行目のid は正の整数で、自動的に増加するので自らデータを入れる必要はなく、主キーであることを意味している。５行目は該当データが作成された日時、６行目は該当データが変更された日時をもつ要素で、初期値は空でも構わない旨を意味している。３行目から５行目がアプリケーションに固有な要素の宣言であり、３行目は住所、４行目は質問内容、５行目は質問の解答を要素とし文字列で格納する旨を意味している。３行目から５行目の「＃」以降はコメント（スクリプト）であり、図２０のモジュールにより対話対応部分をデータ構造から生成させる場合に利用する。
【００２６】
図１２は、図３のテーブルにおけるデータ構造の設定記述の例である。本記述はプログラミング言語 php で記述されており、CakePHPの規範に従っている（以下phpの記述では同様とする）。本記述では Qa というクラスが AppModelというモデルの基底クラスから派生したものであるということだけを記述しており、既定の操作は全てそのまま利用できることになる。
【００２７】
本実施形態では、図１１及び１２により実現された図３のテーブルを図４のフレームワーク及びアプリケーション３０に用いる。ここで、図４のフレームワーク３０は、データ構造部（Ｍ）３１、データ制御処理部（Ｃ）３２、Ｗｅｂブラウザ用入出力制御部（Ｖ）３３及び電子メール用入出力制御部（Ｖ）３４を備えている。
【００２８】
次に、図４と図１１〜２０との関係を記述する。データ構造部（Ｍ）３１は、ＤＢ定義部３１ａ（図１１）及びモデル設定部３１ｂ(図１２）を備えている。データ制御処理部（Ｃ）３２は、データ制御部３２ａ（図１３）を備えている。Ｗｅｂブラウザ用入出力制御部（Ｖ）３３は、表示制御部３３ａ(図１４）及び入力制御部３３ｂ(図１５）を備えている。電子メール用入出力制御部（Ｖ）３４は、第一メール設定用Ｉ／Ｆ部３４ａ（図１６）、第二メール設定用Ｉ／Ｆ部３４ｂ（図１７）、メール対話制御部３４ｃ(図１８）、メール入力出制御部３４ｄ（図１９）及びメール対話描出部３４ｅ（図２０）を備えている。
【００２９】
図１３は、php で記述されたデータ制御処理記述の例である。１行目はQasController というクラスがAppController というデータ制御処理コントローラの基底クラスから派生したものであるということを記述している。２行目から４行目で show というデータ表示用の制御メソッドを定義している。３行目が本メソッドの処理の内容であり、Qa というデータセットのすべてを表示することを指示している。５行目から９行目で、 add というデータ追加用の制御メソッドを定義している。６行目で入力データの有無をチェックしており、もしデータ入力があれば７行目でそのデータをデータベースに保存することを指示している。なおshow, add のメソッド記述は定形であり、基底クラスとして事前に定義すればアプリケーションプログラムにおける記述を省略できる。
【００３０】
次に、入出力制御部（Ｖ）について、説明する。まずＷｅｂブラウザ用入出力制御部３３について説明し、続いて、電子メール用入出力制御部３４について説明する。
【００３１】
図１４は、php で記述されたＷｅｂ用入出力制御処理記述の例で、図１３における show メソッドに対応するものである。１行目と１１行目のタグでこの記述がHTMLで表形式で表示されることを指示している。２行目〜１０行目がPHP記述の開始と終了を宣言している。３行目は表のヘッダを表示するものである。４行目と９行目で、５行目から８行目を各データに対して繰り返すことを指示している。５行目から８行目で図３における show メソッドでの $this->set によってセットされた情報を、表の行形式で出力することを指示している。なお本記述記述は定形であり、基底クラスとして事前に定義すればアプリケーションプログラムにおける記述を省略できる。
【００３２】
図５はデータ表示用のＷｅｂブラウザ表示画面であり、図１１〜１４の記述（モジュール）により実現されている。Ｗｅｂブラウザ表示画面４１中、番号列４１ａには各レコード４１ｄのレコード番号が、問題列４１ｂには問題が、解答列４１ｃには解答が、それぞれ図３のＩｄ、質問及び解答に対応するものとして表示される。
【００３３】
図１５はphp で記述された入出力制御処理記述の例で、Web アプリケーション用として、図１３における add メソッドに対応するものである。１行目のタグでこの記述がHTMLでの見出しであり、「問題新規登録」とブラウザに表示される。２行目〜１０行目がphp記述の開始と終了を宣言している。３行目の記述でブラウザにフォームとよばれる入力部をつくり、入力処理がなされたら図１３における add メソッドを呼び出すことを指示している。４行目から７行目で各データ要素に対する入力用テキストボックスを作ることを指示している。８行目の記述で入力が完了した時にクリックするボタンを作成する。９行目はフォームの終了を意味する。なお本記述記述は定形であり、基底クラスとして事前に定義すればアプリケーションプログラムにおける記述を省略できる。
【００３４】
この図１５の記述では、図８に示すように、まずデータ登録処理のためのアクションが定義（Ｓ２１）される。そして、データ要素「質問」「解答」に対応する入力枠が準備（Ｓ２２）され、データ登録処理の起動のためのスイッチが定義（Ｓ２３）される。係る処理により生成されるのが、図６のデータ入力用のＷｅｂブラウザ表示画面である。Ｗｅｂブラウザ入力画面４５中、質問ラベル４５ａ１、解答ラベル４５ｂ１にそれぞれ対応して入力フィールド４５ａ２，４５ｂ２が表示され、データ追加用の送信ボタン４５ｃが作成されている。
【００３５】
図６のデータ入力用のＷｅｂブラウザ表示画面の使用に際しては、まず、図７に示すように、データ入力を選択（Ｓ１１）することで、当該入力画面が表示される（Ｓ１２）。各フィールド（項目）にデータを入力し（Ｓ１３）、送信ボタンを押す（Ｓ１４）と、ａｄｄが実行（Ｓ１５）され、先のテーブルにデータが追加される。
【００３６】
続いて、電子メール用入出力制御処理部３４について説明する。図９は、電子メールによるユーザー入力手順を示すフローチャートである。先の携帯電話３ｂ等のユーザーが、まず空メールを送信（Ｓ３１）すると、質問要求メールが返信（Ｓ３２）される。これに対し、質問内容メールを送信（Ｓ３３）すると、解答要求メールが返信（Ｓ３４）される。さらに、解答内容メール返信（Ｓ３５）すると、終了通知メール送信（Ｓ３６）され、データ入力が完了する。以下に、対話型の電子メール入出力制御処理部のモジュールについて説明する。
【００３７】
図１６はこのような電子メール対話型の入出力制御処理記述の例で、メールアプリケーションのインターフェースにおける設定用ファイルの記述例を示したものである。本記述は Vine Linux（登録商標）3.1 において postfix というメール転送エージェントの規約に従っている。１行目/etc/postfix/virtualは設定ファイルの名前であり、その中に/^aim.*@aimos.jp$/i aimos@aimos.jpという記述をすることにより、/^aim.*@aimos.jp$/i という正規表現に従うアドレスはすべてaimos@aimos.jp というアドレスに転送することを指示している。なお、@ の右の aimos.jp の文字列はドメイン名を取得することで何にでも置き換えることができ、また @ の左の aimos は任意の文字列に設定できる。
【００３８】
図１７は、メールアプリケーションのインターフェースにおける設定用ファイルの記述例を示したものである。本記述は Vine Linux 3.1 において postfix というメール転送エージェントの規約に従っている。１行目/etc/alias は設定ファイル名である。
【００３９】
その中に
aimos: |/usr/local/bin/php /var/htdocs/aimos/m2wb/prep.php
を記述することにより、aimos というアドレスに送られたメールは /var/htdocs/aimos/m2wb/prep.php という php プログラムで処理されることを指示している。なお本設定の場合アドレスは aimqas-add@aimos.cpの形式となる、アドレス内の aim は接頭語、qas はモデル名、add はコントロール部のメソッドに対応するものとなり、この場合は図３の add メソッドで処理されるものとなる。
【００４０】
図１８はプログラミング言語 php で記述されている。１行目と５行目のタグでこの記述がphp で表形式で表示されることを指示している。２行目から４行目で、このメールアプリケーションではサーバとクライアントの間を３往復メールが送られることを意味する。本実施例ではサーバからはアプリケーション起動はできないので１通目は必然的にクライアントから送られる。その対応として「質問を送ってください。」と記述したメールを返送し、さらにその返送として質問が送ってこられたら次に「解答を送ってください。」と返送し、その返送として正答が送られてきたら「Done」と返送することで、一連の対話が終了したことをクライアントに通知するフローである。
【００４１】
図１９の記述の動作の概略を、図１０に示すフローチャートと対応させて説明する。まず初期設定（Ｓ４１、図１９中２−５１行目）し、ＤＢ要素を取り出す（Ｓ４２、図１９中５１−１０７行目）。全要素の処理が完了（Ｓ４３、図１９中９８行目）したかを確認し、完了したのであれば、臨時記録領域の各要素をＤＢに追加（Ｓ４６、図１９中９９−１０５行目）する。全要素の処理が完了（Ｓ４３）していないのであれば、各要素を臨時記録領域に保存（Ｓ４４、図１９中７５−９３行目）し、要求メールの返信（Ｓ４５、図１９中９４−９５行目）を行う。再度、全要素の処理が完了（Ｓ４３）したかを確認し、処理が完了するまで繰り返す。
【００４２】
図１９はプログラミング言語 php で記述されている。その１行目と１１３行目はこのスクリプトが php で書かれていることを示している。２行目はライブラリを導入することを指示している。４行目から６行目は定数の定義である。８行目から１２行目まででメールデータ取得のためのパラメータを設定した上で、１３行目でメールデータを一括取得している。１５行目から１７行目で送信者のメールアドレスを抽出し、１９行目から２６行目でメールアドレスを修飾しているもの（本名、等）を取り去っている。２７行目から３５行目は宛先のメールアドレスを抽出している。３６行目は後に使う変数である。３７行目で本文を取得している。３９行目から４６行目で、アドレスを解析してどのモデルのどのメソッドについてのメールかを取得している。４１行目から４５行目は一連のメールの遣り取りの途中経過を保存しておくためのデータベース（以降、経過ＤＢ)を用意し、利用できるようにしている。４６行目から５１行目で、当該モデルの当該メソッドに対応する設定ファイルを読みこんで、もし存在しない場合はエラーメールを送信して終了する。
【００４３】
図１９ｂに示すように、５２行目で一連のメールの遣り取りの最初かどうかを判断し、もし最初であれば５３行目から７０行目までの処理を行う。５４行目から６０行目で、初期化するためのSQL文字列を構築し６１行目で経過DBに対して SQL を発行してテーブルを作成する。さらに６２行目から６４行目で最初のデータを挿入し、エラーがあれば６６行目のエラーメールを、無ければ６８行目で次の入力を促すメールを送信し、７０行目で終了する。
【００４４】
図１９ｃに示すように、一連のメールの最初で無い場合の処理は７２行目から１１１行目である。７２、７３行目で既に同じ送信者のアドレスから送信されたデータを抽出し、７４行目からのループで各項目をチェックしていく。７５行目で抜けたデータを発見すれば、もしその項目がアドレスであれば再初期化して、メールを送って終了する。そうでは無い場合は９０行目以降の処理を行う。９０行目から９３行目で当該データの更新を行い、９４行目でエラーをチェックしてもしエラーならエラーメールを送り、エラーではない場合、９７行目で次のメッセージが終了の印の「Done」であるかどうかをチェックして、もし終了であれば９９行目から１０５行目までで図１におけるデータベースにデータを収納する処理を行う。１０８行目で次を促すメールを送信し、１０９行目で終了する。
【００４５】
図２０は対話対応部分をデータ構造から自動生成させるプログラムである「対話抽出部」の記述例を示したものである。本記述はプログラミング言語 perl で記述されている。本記述のプログラムに図１のデータ構造記述を入力として与えることで、図１８の対話構造を自動生成できる。１行目から３行目で変数を初期設定し、４行目から１６行目で標準入力からデータ構造のテキストから入力されることを仮定して入力が終了するまでループ処理を行う。５行目で改行文字を取り、６行目でその行がテーブルを宣言してるかどうかをチェックして、もしテーブル宣言なら３語目がそのデータベース名なので取得する。１０行目で途中に「＃」が存在し、既にテーブルが宣言されているかをチェックして、該当する場合は１語目とポインターである「＃」以降を取り出し、対応表の配列に保存する。１７行目から２０行目でphpの連想配列の初期記述の文字列を生成し、２２行目から２４行目で上記対応表の配列の内容をphpの連想配列の文法にしたがって文字列を生成し、２５行目で連想配列の初期化を閉じる文字列を生成する。
【００４６】
最後に、本発明の他の実施形態の可能性について説明する。
上記実施形態では、入出力制御部（Ｖ）は、電子メール及びＷｅｂブラウザに各々対応した２種類にのみについて例示した。しかし、例えばインラインのテキストコマンド入力等、これら２種以外の入出力インターフェイスについて実施してもよく、また、３種以上の入出力インターフェイスを同時に用いてもよい。
【００４７】
上記実施形態の電子メール用入出力制御処理部３４については、フレームワークとアプリケーションシステムとを混在させて表示した。しかし、Ｗｅｂ用入出力制御処理部３３の例にならい、具体的ファイル名やアドレスを除く機能を一般化させて定形とし、基底クラスとして事前にフレームワーク内に定義すればアプリケーションプログラムにおける記述を省略できる。
【産業上の利用可能性】
【００４８】
本発明は、入出力制御部（Ｖ）を介したクライアントからの要求に基づいてデータ構造部（Ｍ）及びデータ制御処理部（Ｃ）によりデータを処理し又は入出力制御部（Ｖ）に表示させるフレームワークを用いてアプリケーションシステムを開発するアプリケーションシステム開発方法並びにフレームワーク及びこれを利用したアプリケーションシステムとして利用することができる。本発明はＱ＆Ａ集の作成他、ＭＶＣフレームワークの拡張、対話の管理等にも用いることができる。
【図面の簡単な説明】
【００４９】
【図１】本発明に係る開発方法を実施するプラットホームであるネットワークシステムの構成図である。
【図２】サーバー又はユーザー端末であるＰＣの構成例を示すブロック図である。
【図３】データベーステーブルの構成図である。
【図４】フレームワーク及びアプリケーションの構成図である。
【図５】データ表示用のＷｅｂブラウザ表示画面である。
【図６】データ入力用のＷｅｂブラウザ表示画面である。
【図７】Ｗｅｂブラウザによるユーザー入力手順を示すフローチャートである。
【図８】Ｗｅｂブラウザによる入力画面生成手順を示すフローチャートである。
【図９】電子メールによるユーザー入力手順を示すフローチャートである。
【図１０】電子メールによる入力データ処理手順を示すフローチャートである。
【図１１】データ構造部（Ｍ）におけるＤＢ定義部の構成例を示す図である。
【図１２】データ構造部（Ｍ）におけるモデル設定の構成例を示す図である。
【図１３】データ制御処理部（Ｃ）におけるデータ制御部の構成例を示す図である。
【図１４】Ｗｅｂブラウザ用入出力制御部（Ｖ）における表示制御部の構成例を示す図である。
【図１５】Ｗｅｂブラウザ用入出力制御部（Ｖ）における入力制御部の構成例を示す図である。
【図１６】電子メール用入出力制御部（Ｖ）における第一メール設定用Ｉ／Ｆ部の構成例を示す図である。
【図１７】電子メール用入出力制御部（Ｖ）における第二メール設定用Ｉ／Ｆ部の構成例を示す図である。
【図１８】電子メール用入出力制御部（Ｖ）におけるメール対話制御部の構成例を示す図である。
【図１９ａ】電子メール用入出力制御部（Ｖ）におけるメール入力出制御部の構成例を示す図である。
【図１９ｂ】電子メール用入出力制御部（Ｖ）におけるメール入力出制御部の構成例を示す図である。
【図１９ｃ】電子メール用入出力制御部（Ｖ）におけるメール入力出制御部の構成例を示す図である。
【図２０】電子メール用入出力制御部（Ｖ）におけるメール対話描出部の構成例を示す図である。
【符号の説明】
【００５０】
１：ネットワークシステム、１ａ：ネットワーク、２：サーバー、２ａ：ＷＷＷサーバー、２ｂ：メールサーバー、２ｃ：データベースサーバー、２ｄ：フレームワーク、２ｅ：アプリケーションプログラム、３：クライアント（ユーザー端末）、３ａ：ＰＣ、３ｂ：携帯電話、３ｃ：ＰＤＡ、１０：コンピュータ、１１：ＣＰＵ、１２：ＲＯＭ、１３：ＲＡＭ、１４：バス、１５：入出力インタフェース、１６：入力部、１７：出力部、１８：記憶部、１９：通信部、３０：フレームワーク及びアプリケーション、３１：データ構造部（Ｍ）、３１ａ：ＤＢ定義部、３１ｂ：モデル設定部、３２：データ制御処理部（Ｃ）、３２ａ：データ制御部、３３：Ｗｅｂブラウザ用入出力制御部（Ｖ）、３３ａ：表示制御部、３３ｂ：入力制御部、３４：電子メール用入出力制御部（Ｖ）、３４ａ：第一メール設定用Ｉ／Ｆ部、３４ｂ：第二メール設定用Ｉ／Ｆ部、３４ｃ：メール対話制御部、３４ｄ：メール入力出制御部、３４ｅ：メール対話描出部、４１：Ｗｅｂブラウザ表示画面、４１ａ：番号列、４１ｂ：問題列、４１ｃ：解答列、４１ｄ：レコード、４５：Ｗｅｂブラウザ入力画面、４５ａ１：質問、４５ａ１：解答、４５ａ２：入力フィールド、４５ｂ２：入力フィールド、４５ｃ：送信ボタン
【図１】
2010003241.tif 000003
【図２】
2010003241.tif 000004
【図３】
2010003241.tif 000005
【図４】
2010003241.tif 000006
【図５】
2010003241.tif 000007
【図６】
2010003241.tif 000008
【図７】
2010003241.tif 000009
【図８】
2010003241.tif 000010
【図９】
2010003241.tif 000011
【図１０】
2010003241.tif 000012
【図１１】
2010003241.tif 000013
【図１２】
2010003241.tif 000014
【図１３】
2010003241.tif 000015
【図１４】
2010003241.tif 000016
【図１５】
2010003241.tif 000017
【図１６】
2010003241.tif 000018
【図１７】
2010003241.tif 000019
【図１８】
2010003241.tif 000020
【図１９ａ】
2010003241.tif 000021
【図１９ｂ】
2010003241.tif 000022
【図１９ｃ】
2010003241.tif 000023
【図２０】
2010003241.tif 000024