(57)【要約】【課題】  従来より、Ｗｅｂを利用したアプリケーションは様々な形態で利用されているが、アプリケーションの生産性が問題となっており、向上させるための手法としてロジックとデータ定義と画面定義と分け、例えば、ＪａｖａＢｅａｎｓ（サンマイクロシステムズ社の登録商標）とＪＳＰ（ＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（サンマイクロシステムズ社の登録商標））タグを用いて、画面定義内に特殊タグを埋め込むことが行われているが、この技術では、画面定義とデータ定義が相互に依存しているので、再利用生の高いアプリケーションの作成が難しい。そこで、アプリケーション開発の生産性を向上させたアプリケーション実行装置を提供する。【解決手段】  画面定義とロジック定義との間に、画面依存の画面変数と、画面非依存のアプリケーション変数を設けることで、既存のアプリケーションにおける画面定義の変更を容易とする。【選択図】        図１
2005228184.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション実行装置であって、画面定義と、画面変数定義と、アプリケーション変数定義と、ロジック定義と、画面変数アプリケーション変数対応定義と、状態遷移定義と、画面変数アプリケーション変数対応処理実行部と、データ記憶部と実行エンジン部とを備え、
前記画面定義は、アプリケーション入出力画面表現を定義するものであり、前記画面変数定義は、前記画面定義内の入出力変数を定義するものであり、前記アプリケーション変数定義は、アプリケーションのロジック変数を定義するものであり、前記ロジック定義は、前記アプリケーション変数で記述されたアプリケーションの動作を定義するものであり、前記画面変数アプリケーション変数対応定義は、前記画面変数定義内の画面変数と前記アプリケーション変数定義内のアプリケーション変数との対応関係を定義するものであり、
前記状態遷移定義は、アプリケーションの状態遷移を定義するものであり、前記データ記憶部は、前記アプリケーション変数および前記画面変数および前記アプリケーションの状態を記憶する機能を有するものであり、前記画面変数アプリケーション変数対応処理実行部は、前記画面変数定義と前記アプリケーション変数定義及び画面変数アプリケーション変数対応定義から、前記データ記憶部内の画面変数からアプリケーション変数を、前記データ記憶部内のアプリケーション変数から画面変数を計算する機能を有するものであり、
前記実行エンジン部は、クライアントによるイベントと前記画面定義と前記画面変数定義と、前記アプリケーション変数定義と前記ロジック定義と前記状態遷移定義に従って、前記画面変数アプリケーション変数対応処理実行部と、前記データ記憶部とを制御してアプリケーションを動作させることを特徴とするアプリケーション実行装置。
【請求項２】
アプリケーション実行装置であって、デザイン画面定義と、画面定義生成処理部と、画面定義と、画面変数定義と、アプリケーション変数定義と、ロジック定義と、画面変数アプリケーション変数対応定義と、状態遷移定義と、画面変数アプリケーション変数対応処理実行部と、データ記憶部と実行エンジン部とを備え、
前記デザイン画面定義は、デザイン画面を定義するものであり、前記画面定義生成処理部は、前記デザイン画面定義と前記画面変数定義とから画面定義を自動で生成する機能を有するものであり、前記画面定義は、前記画面定義生成処理部が生成した画面表現を定義するものであり、
前記画面変数定義は、前記画面定義内の入出力変数を定義するものであり、前記アプリケーション変数定義は、アプリケーションのロジック変数を定義するものであり、前記ロジック定義は、前記アプリケーション変数で記述されたアプリケーションの動作を定義するものであり、前記画面変数アプリケーション変数対応定義は、前記画面変数定義内の画面変数と前記アプリケーション変数定義内のアプリケーション変数との対応関係を定義するものであり、
前記状態遷移定義は、アプリケーションの状態遷移を定義するものであり、前記データ記憶部は、前記アプリケーション変数および前記画面変数および前記アプリケーションの状態を記憶する機能を有するものであり、前記画面変数アプリケーション変数対応処理実行部は、前記画面変数定義と前記アプリケーション変数定義及び画面変数アプリケーション変数対応定義から、前記データ記憶部内の画面変数からアプリケーション変数を、前記データ記憶部内のアプリケーション変数から画面変数を計算する機能を有するものであり、
前記実行エンジン部は、クライアントによるイベントと前記画面定義と前記画面変数定義と、前記アプリケーション変数定義と前記ロジック定義と前記状態遷移定義に従って、前記画面変数アプリケーション変数対応処理実行部と、前記データ記憶部とを制御してアプリケーションを動作させることを特徴とするアプリケーション実行装置。
【請求項３】
アプリケーション実行装置であって、前記アプリケーション実行装置は複数の端末で一つのアプリケーションを利用するものであり、アプリケーションビュー定義と、端末種別判定定義と、端末種別選定部と、画面定義と、画面変数定義と、アプリケーション変数定義と、ロジック定義と、画面変数アプリケーション変数対応定義と、状態遷移定義と、画面変数アプリケーション変数対応処理実行部と、データ記憶部と実行エンジン部とを備え、前記アプリケーションビュー定義は、前記複数の端末毎に前記各定義の組み合わせを定義するものであり、前記端末種別判定定義は、前記複数の端末種別を判定するものであり、前記端末種別選定部は、前記複数の端末からのリクエスト情報と前記端末種別判定定義とを比較して端末を選定するものであり、
前記画面定義は、アプリケーション入出力画面表現を定義するものであり、前記画面変数定義は、前記画面定義内の入出力変数を定義するものであり、前記アプリケーション変数定義は、アプリケーションのロジック変数を定義するものであり、前記ロジック定義は、前記アプリケーション変数で記述されたアプリケーションの動作を定義するものであり、前記画面変数アプリケーション変数対応定義は、前記画面変数定義内の画面変数と前記アプリケーション変数定義内のアプリケーション変数との対応関係を定義するものであり、
前記状態遷移定義は、アプリケーションの状態遷移を定義するものであり、前記データ記憶部は、前記アプリケーション変数および前記画面変数および前記アプリケーションの状態を記憶する機能を有するものであり、前記画面変数アプリケーション変数対応処理実行部は、前記画面変数定義と前記アプリケーション変数定義及び画面変数アプリケーション変数対応定義から、前記データ記憶部内の画面変数からアプリケーション変数を、前記データ記憶部内のアプリケーション変数から画面変数を計算する機能を有するものであり、
前記実行エンジン部は、クライアントによるイベントと前記画面定義と前記画面変数定義と、前記アプリケーション変数定義と前記ロジック定義と前記状態遷移定義に従って、前記画面変数アプリケーション変数対応処理実行部と、前記データ記憶部と、前記端末種別選定部とを制御してアプリケーションを動作させることを特徴とするアプリケーション実行装置。
【請求項４】
前記画面変数アプリケーション変数対応定義は、前記画面変数と前記アプリケーション変数との対応関係を定義するとともに、複数のアプリケーション変数を結合して画面変数に、あるいは複数の画面変数を結合してアプリケーション変数に代入する対応関係を定義することを特徴とする請求項１〜３のいずれか１項に記載のアプリケーション実行装置。
【請求項５】
前記画面変数アプリケーション変数対応定義は、さらに加えて表示形態の変換や演算処理をして画面変数をアプリケーション変数に、あるいはアプリケーション変数を画面変数に代入する対応関係を定義することを特徴とする請求項１〜３のいずれか１項に記載のアプリケーション実行装置。
【請求項６】
前記アプリケーション変数定義は、複数の端末で共通のアプリケーションのロジック変数を定義するものであり、
前記ロジック定義は、複数の端末で共通で前記アプリケーション変数で記述されたアプリケーションの動作を定義するものであることを特徴とする請求項３に記載のアプリケーション実行装置。
【請求項７】
前記アプリケーション変数定義は、複数の端末で共通なアプリケーションと異なるアプリケーションのロジック変数を定義するものであり、
前記ロジック定義は、複数の端末で共通と、異なる前記アプリケーション変数で記述されたアプリケーションの動作を定義するものであることを特徴とする請求項３に記載のアプリケーション実行装置。
【請求項８】
前記アプリケーション実行装置には、さらに加えて定義自動生成部が備えられており、前記定義自動生成部は、既存のアプリケーションビュー定義で定義されているものと同一の画面変数定義を行った前記画面変数定義から、画面変数アプリケーション変数対応定義、アプリケーション変数定義、状態遷移定義、アプリケーションビュー定義を自動生成することを特徴とする請求項３に記載のアプリケーション実行装置。
【請求項９】
前記画面定義がＨＴＭＬ、ＣｏｍｐａｃｔＨＴＭＬ（ＣＨＴＭＬ）、ＸＭＬ形式であることを特徴とする請求項１〜８のいずれか１項に記載のアプリケーション実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、Ｗｅｂを利用したアプリケーションに関するものであり、特にアプリケーション開発の生産性を向上する技術に係るものである。
【背景技術】
【０００２】
従来より、Ｗｅｂを利用したアプリケーションは様々な形態（端末、メディア、アプリケーションプラットフォーム）で利用されるようになってきており、アプリケーションの生産性が問題となってきている。生産性を向上させるための手法として、ロジックとデータと画面定義を分け、例えば、ＪａｖａＢｅａｎｓ（サンマイクロシステムズ社の登録商標）（データ）とＪＳＰ（ＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（サンマイクロシステムズ社の登録商標））タグを用いて、画面定義内に特殊タグを埋め込む技術が示されている（例えば、特許文献１）。
【０００３】
【特許文献１】特開２００２−２１５３９４号公報（図１、００１３欄）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記特許文献１に示されたものは、画面定義とデータオブジェクトが相互に依存しているために、保守性、再利用性の高いアプリケーションを作成することが難しいという問題点を有している。
【０００５】
この発明は、前記のような課題を解決するものであって、ロジックと変数と画面定義の相互依存性を少なくして、ロジックと変数の再利用性を増すことによって、アプリケーション開発の生産性を向上させることを目的としている。
【課題を解決するための手段】
【０００６】
この発明に係るアプリケーション実行装置は、画面定義と、画面変数定義と、アプリケーション変数定義と、ロジック定義と、画面変数アプリケーション変数対応定義と、状態遷移定義と、画面変数アプリケーション変数対応処理実行部と、データ記憶部と実行エンジン部とを備え、
画面定義は、アプリケーション入出力画面表現を定義し、画面変数定義は、画面定義内の入出力変数を定義し、アプリケーション変数定義は、アプリケーションのロジック変数を定義し、ロジック定義は、アプリケーション変数で記述されたアプリケーションの動作を定義し、画面変数アプリケーション変数対応定義は、画面変数定義内の画面変数とアプリケーション変数定義内のアプリケーション変数との対応関係を定義するものであり、
状態遷移定義は、アプリケーションの状態遷移を定義するものであり、データ記憶部は、前記アプリケーション変数および前記画面変数および前記アプリケーションの状態を記憶する機能を有するものであり、画面変数アプリケーション変数対応処理実行部は、画面変数定義とアプリケーション変数定義と画面変数アプリケーション変数対応定義からデータ記憶部内の画面変数からアプリケーション変数を、データ記憶部内のアプリケーション変数から画面変数を計算する機能を有するものであり、
実行エンジン部は、クライアントによるイベントと画面定義と画面変数定義と、アプリケーション変数定義とロジック定義と状態遷移定義に従って、画面変数アプリケーション変数対応処理実行部と、データ記憶部とを制御してアプリケーションを動作させるものである。
【発明の効果】
【０００７】
この発明のアプリケーション実行装置は、画面定義とロジック定義との間に、画面依存の画面変数と、画面非依存のアプリケーション変数を設けているので、ロジック定義とアプリケーション変数が画面定義に依存しなくなる。従って、既存のアプリケーションにおける画面定義の変更が容易に行えるという効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
以下、この発明の実施の形態１を図に基づいて説明する。
図１は本発明の実施の形態１によるアプリケーション実行装置１００の構成を示す図である。このアプリケーション実行装置１００はアプリケーションの入出力画面表現を定義した画面定義１０１、画面定義１０１内の入出力変数である画面変数定義１０２、アプリケーションのロジックの変数であるアプリケーション変数定義１０３、前記アプリケーション変数で記述されたアプリケーションの動作を定義するロジック定義１０４、画面変数定義１０２とアプリケーション変数定義１０３の対応関係を定義する画面変数アプリケーション変数対応定義１０５、アプリケーションの状態遷移を定義した状態遷移定義１０６、アプリケーションの現在の状態、アプリケーション変数値および画面変数値を記憶するデータ記憶部１０８、画面変数定義１０２とアプリケーション変数定義１０３と画面変数アプリケーション変数対応定義１０５から、データ記憶部内の画面変数からアプリケーション変数を、またはデータ記憶部内のアプリケーション変数から画面変数を計算する画面変数アプリケーション変数対応処理実行部１０７と、アプリケーションのクライアントとなる端末１０９、クライアント１０９によるイベント（コマンド）と画面定義１０１と画面変数定義１０２とアプリケーション変数定義１０３とロジック定義１０４と状態遷移定義１０６にしたがって画面変数アプリケーション変数対応処理実行部１０７とデータ記憶部１０８を制御してアプリケーションを動作させる実行エンジン１１０から構成される。なお、端末１０９はパソコン，ワークステーション、携帯電話、携帯情報端末、カーナビゲーションシステム、情報家電機器など、表示装置および入力装置を備えた計算機システムであれば何れのものでもよい。
【０００９】
図２と３は実施の形態１による画面定義１０１を説明する図であり、画面２０１、３０１を図２、図３に示す。図４は図２と図３の画面２０１と３０１との関係を示したものであり、図２の「ユーザＩＤ」入力欄２０２と「パスワード」入力欄２０３に文字列を入力し、「ログイン」ボタン２０４が押されることによって図３の画面に遷移し、図２の画面で入力した情報に従って図３の画面にそのユーザの情報である「名前」３０２、「所属」３０３、「電話番号」３０４を表示する、という遷移を示したものである。図２と図３のこの画面例は、ＪＳＰ（ＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（サンマイクロシステムズ社の登録商標））にて記述した場合の例である。図２の画面２０１では、「ユーザＩＤ」および「パスワード」の項目に文字入力欄があり、リクエスト情報を送信するための「ログイン」ボタンを定義している。２０５は画面２０１に対応したＪＳＰによる画面定義を記述したファイル「ｌｏｇｉｎ．ｊｓｐ」を示している。図３の画面３０１では、「名前」、「所属」、「電話番号」のそれぞれのラベルの後に、文字列を表示する定義を行っている。３０５は画面３０１に対応したＪＳＰによる画面定義を記述したファイル「ｕｓｅｒＩｎｆｏ．ｊｓｐ」を示している。
【００１０】
図５は、実施の形態１による画面変数定義１０２を説明する図である。画面変数定義１０２の形態は、表形式、ＣＳＶ形式、ＸＭＬ文いずれでもよいがこの例は表形式で示した例である。図５に示すように画面変数定義１０２の項目は、「状態名」、「画面定義名」、「画面変数」からなり、さらに「画面変数」の項目は「タグ」、「名前」および「属性」からなる。前述した図２の２０１の画面では、「ユーザＩＤ」と「パスワード」欄で入力する文字列が画面変数となる。ここでは画面変数は前述図２のＪＳＰ２０５内のＨＴＭＬタグの名前およびその名前属性およびその属性名で表現する。つまり「ユーザＩＤ」に対応するタグは「ｉｎｐｕｔ」でありそのｎａｍｅ属性を参照すると「ｕｓｅｒＩＤ」であり、文字入力値が代入されるのはｖａｌｕｅ属性であるため図５に示す行５０１のように定義する。同様に「パスワード」に対応するタグも行５０２のように定義する。前述図３の３０１の画面では、「名前」、「所属」、「電話番号」のそれぞれのラベルの後の文字列が画面変数となる。ここでは前述図３のＪＳＰ３０５内のＨＴＭＬタグである「ｓｐａｎ」がそれを示している。つまり図５の行５０３に示すように、「名前」の後にはタグ「ｓｐａｎ」でありその名前は「ｎａｍｅ」であり属性は「＃ｔｅｘｔ」である。なお「＃ｔｅｘｔ」はｓｐａｎタグに挟まれた文字列を示すものである。同様に「所属」の後の文字列、「電話番号」の後の文字列に対応する画面変数も行５０４、行５０５のように定義する。なお、この実施の形態１では画面変数定義としてＨＴＭＬ形式について述べたがＣＨＴＭＬ形式であってもよい。
【００１１】
図６は実施の形態１によるアプリケーション変数定義１０３を説明する図である。アプリケーション変数１０３の表現形式も、表形式、ＣＳＶ形式やＸＭＬ文などいずれでもよい。アプリケーション変数定義１０３の項目は、「名前」、「型」、「配列」からなる。また型はプリミティブ型、つまり、文字列、整数、小数、日付型などの定型のもの以外にも、任意に定義したものでもよい。図６では、文字列で配列でない「ａｐｐ＿ｕｓｅｒｎａｍｅ」というアプリケーション変数を６０１のように、日付型で配列である「ａｐｐ＿ｄａｔｅ」は６０２のように定義する。また、アプリケーション変数１０３は構造化することが可能であり、任意の型を定義してもよい。たとえば、図６の６０３のＡｄｄｒｅｓｓ型は６０４に示すように文字列の「ｐｒｅｆｅｃｔｕｒｅ」、文字列の「ｃｉｔｙ」、文字列の「ｓｔｒｅｅｔ」から構成される。ここでは、アプリケーション変数定義１０３は、「名前」、「型」、「配列」としたが、アプリケーション変数の存在サイクルを示す「スコープ」という項目を追加してもよい。
【００１２】
図７は実施の形態１による画面変数アプリケーション変数対応定義１０５を説明する図である。画面変数アプリケーション変数対応定義１０５の項目は、「画面定義名」、「ｉｎ／ｏｕｔ種別」、「画面変数名」、「対応定義」、「アプリケーション変数名」からなる。「ｉｎ／ｏｕｔ種別」の「ｉｎ」は当該画面定義に遷移してきた場合に取得して表示する変数であり、「ｏｕｔ」は当該画面定義から遷移する場合にリクエストとして送信する変数である。画面変数名は、図５で説明した画面変数の名前と属性で定義されるものである。例えば図７の７０１の「ｕｓｅｒＩＤ．ｖａｌｕｅ」は図５の５０１の名前「ｕｓｅｒＩＤ」と属性「ｖａｌｕｅ」をピリオド（．）で区切って表現したものである。一つの画面定義名に対応して画面変数名は一意に決まるものである。次に「対応定義」の項目について説明する。「対応定義」の項目に示される「ｓｅｔ」は、代入を意味する、つまり「ｉｎ／ｏｕｔ種別」が「ｉｎ」の場合はアプリケーション変数を画面変数に代入、「ｏｕｔ」の場合は画面変数をアプリケーション変数に代入するという対応関係を示すものである。つまり図７の７０１は画面変数「ｕｓｅｒＩＤ．ｖａｌｕｅ」をアプリケーション変数「ａｐｐ＿ｕｓｅｒｎａｍｅ」に代入、７０２はアプリケーション変数「ａｐｐ＿ａｆｆｉｌ」を画面変数「ａｆｆｉｌ．ｖａｌｕｅ」に代入するということを示している。また７０３で示される対応定義の「ｃｏｎｃａｔ」は連結処理を意味するものであり、“姓”を示すアプリケーション変数「ａｐｐ＿ｎａｍｅ＿ｌａｓｔ」と“名”を示すアプリケーション変数「ａｐｐ＿ｎａｍｅ＿ｆｉｒｓｔ」を結合して“名前”を示す画面変数「ｎａｍｅ．ｖａｌｕｅ」に代入することを示すものである。この実施の形態１では、画面定義１０１とロジック定義１０４の間に画面変数定義１０２とアプリケーション変数定義１０３を介在させて、画面変数とアプリケーション変数の対応関係を画面変数アプリケーション変数対応定義１０５で対応づけできるようにしたので、このような入出力の画面変数とアプリケーション変数に対して疎な対応づけが可能となる。
【００１３】
図８は、実施の形態１による状態遷移定義１０６を説明する図である。状態遷移定義１０６の項目は、「状態名」、「イベント」、「処理ロジック」、「遷移先状態名」からなる。図８の行８０１は、状態名「ｓｔａｔｅ１」においてイベント「ｌｏｇｉｎ」を受信した場合は、処理ロジック「ＬｏｇｉｎＡｃｔｉｏｎ」を実行して遷移先状態名に示される「ｓｔａｔｅ２」に遷移する、ということを定義したものである。
【００１４】
図９は、実施の形態１によるロジック定義１０４を説明する図である。ここではユーザの名前「ａｐｐ＿ｕｓｅｒｎａｍｅ」とパスワード「ａｐｐ＿ｐａｓｓｗｏｒｄ」を引数としたＡｃｔｉｏｎの中身を記述するメソッドと、各アプリケーション変数の値を取得するメソッドを記述した例である。ここでは、一つの状態に一つのイベントを記述しているが、複数のイベントを対応させることも当然可能である。ここでは、ＪＡＶＡ（登録商標）言語で記述する例を示したが、他の言語でもかまわない。
【００１５】
次に、実施の形態１によるアプリケーション実行装置１００の動作を図１０に示すフローチャートを用いて説明する。Ｓ１００１にて実行エンジン１１０は、端末（クライアント）１０９からリクエスト情報を取得すると、Ｓ１００２にてそのリクエスト情報から画面変数値とイベントを抽出する。イベントを抽出すると図８の状態遷移定義１０６から処理ロジックと遷移先状態名が決まり、Ｓ１００３に示す状態遷移が決定する。次に、Ｓ１００４にてリクエストで取得した画面変数の値を、図７で示した画面変数アプリケーション変数対応定義に基づいて、入力された画面変数のアプリケーション変数への対応付け処理を行う。アプリケーション変数の値が決定すると、Ｓ１００３で決定したロジックをＳ１００５で実行する。ロジックの処理の結果アプリケーション変数の値が決定するので、今度はＳ１００４とは逆にＳ１００６で画面変数アプリケーション変数対応定義に基づいて、アプリケーション変数の出力画面変数への対応付け処理を実行する。画面変数の値が決定すれば、Ｓ１００７で画面定義に基づいて出力画面が生成される。
【００１６】
次に画面定義１０１の一部を変更した場合の作業について説明する。図１１は、前述した図３で示したユーザ情報の表示のための画面定義「ｕｓｅｒＩｎｆｏ．ｊｓｐ」を変更した画面「ｈｅｌｌｏ．ｊｓｐ」である。１１０１が表示画面を示し、１１０２はＨＴＭＬによる画面定義１０１を示したものである。図３では「姓名」を名前として３０２に、「所属」を３０３に表示していたものを、図１１では、「所属」を１１０３に、「姓」を１１０４に、「名」を１１０５に表示するように変更している。これに伴って、画面変数も「姓」と「名」が別になり、１１０６と１１０７に示すように「ｌａｓｔｎａｍｅ」と「ｆｉｒｓｔｎａｍｅ」に分離されている。
【００１７】
次に図１１で示した画面定義の変更に対して各定義をどのように追加するかを図１２を用いて説明する。ここでは、画面定義１０１を上書きして変更するのではなく、新たに追加して前のものを残す場合の例である。図１２の１２０１は画面変数定義１０２の例であり、１２０２は画面変数アプリケーション変数対応定義１０５の例である。１２０３と１２０４の行に示されているように、前述した図３の例ではアプリケーション変数「ａｐｐ＿ｎａｍｅ＿ｌａｓｔ」と「ａｐｐ＿ｎａｍｅ＿ｆｉｒｓｔ」を「ｃｏｎｃａｔ」（結合）していたが、ここではそれぞれ「姓」を示すドキュメント変数「ｌａｓｔｎａｍｅ．ｖａｌｕｅ」と「名」を示すドキュメント変数「ｆｉｒｓｔｎａｍｅ．ｖａｌｕｅ」に代入「ｓｅｔ」するように変更する。１２０５は図８で示した状態遷移定義１０６の変更を示しており、１２０６に示したように遷移先状態名を今回の画面の状態である「ｓｔａｔｅ３」に変更している。
ここでは、画面定義１０１の例としてＪＳＰの画面を示したが、Ｍｉｃｒｏｓｏｆｔ社のＡＳＰ（Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）のような言語で定義した画面でもよい。
【００１８】
このようにこの実施の形態１の構成によれば、画面定義１０１とロジック定義１０４の間に画面依存の画面変数定義１０２と、画面非依存のアプリケーション変数定義１０３を介在するようにしたので、画面定義１０１とロジック定義１０４を疎に結合することができるので、図１１に示すように、画面を変更することによっても、アプリケーション変数とロジックを変更する必要がなく、画面の差し替えが容易であり、効率のよいアプリケーション作成が実現できる。
【００１９】
実施の形態２．
次に、実施の形態２の画面変数アプリケーション変数対応定義について図１３を用いて説明する。前記実施の形態１の図７で示した画面変数アプリケーション変数対応定義１０５では「代入」と「結合」の例を示したが、図１３に示したような表示形態の変換や四捨五入などの演算処理の対応定義を有するようにしてもよい。図１３の表１３０１の各行は、同じアプリケーション変数の値に対して、さまざまな対応定義を指定することで画面変数の値を変更することができることを示している。行１３０２で示される「ｓｅｔ」はそのまま代入するので、表示は「１２００」である。行１３０３の「ｆｏｒｍａｔ１」は表示を千の単位で行うものであり、「１．２千」という画面変数に変換する対応定義である。行１３０４の「ｆｏｒｍａｔ２」は、同様に表示を百の単位で行い「１２百」とする。行１３０５は日付のアプリケーション変数を英語表記で行う「ｄａｔｅＦｏｒｍａｔ１」を、行１３０６は元号形式で表記を行う「ｄａｔｅＦｏｒｍａｔ２」の指定をそれぞれ示している。行１３０７は、アプリケーション変数の値を四捨五入する対応定義「ｏｐｅｒａｔｉｏｎ１」を指名している。１３０８はこの「ｏｐｅｒａｔｉｏｎ１」に対応する処理をＪＡＶＡ（登録商標）言語で記述したものである。他の対応定義も同様に、プログラムとして記述して設定すればよい。
このようなこの実施の形態２に示す構成によれば、画面変数の表示の形式や形態を変換する対応定義を画面変数アプリケーション変数対応定義１０５に設定できるようにしたので、画面表示の表示形式や形態を変えるだけの改修や拡張に対しては、画面変数アプリケーション変数対応定義１０５と対応定義に対する処理を記述するだけで、これまでに作成した他の定義を変更することなくアプリケーションを実行することができる。
【００２０】
実施の形態３．
次に、実施の形態３のアプリケーション実行装置１００ａについて図１４を用いて説明する。前記実施の形態１の図１で示したアプリケーション実行装置１００では、この図１４に示す画面定義１４０１をユーザが自ら作成していたが、この実施の形態３のアプリケーション実行装置１００ａは図１４に示すように、デザイン画面定義１４０２を設け、画面変数定義１４０３を参照してＪＳＰを自動で生成する画面定義生成処理部１４０４を備えるようにしてもよい。
デザイン画面定義１４０２の例を図１５、図１６に示す。図１５は前述した図２に、図１６は図３にそれぞれ対応したデザイン画面の表示とデザイン画面定義である。図２、図３はＪＳＰであるため、＜％  ％＞で示されるデータ取得部分がＨＴＭＬのタグ定義と異なるが、このデザイン画面定義１４０２ではそのようなデータ取得部分が埋まっていない、デザインだけの画面定義である。図２や図３で消えていた「鈴木一郎」という名前や「業務」という所属名がそのまま残っている。
【００２１】
次に、画面定義生成処理部１４０４の動作についてフローチャート図１７を用いて説明する。画面定義生成処理部１４０４は、オフライン（製作したアプリケーションが非動作時）で動作するものである。Ｓ１７０１でまず、デザイン画面定義１４０２を読み込み、Ｓ１７０２で該当する画面定義について画面変数定義１４０３（例えば図５）を読み込む。次に、Ｓ１７０３でカウンタを初期化し、デザイン画面定義１４０２について画面変数定義１４０３で示されたタグの該当箇所にＳ１７０４で例えばＪＳＰタグを埋め込む。次にＳ１７０５でカウンタを更新して、Ｓ１７０６で画面変数の数だけ埋め込み処理が行われたかを判定し、処理が行われればＳ１７０７で画面定義を返して画面定義１０１に保存に、Ｓ１７０４で残っていれば例えばＪＳＰタグを埋め込む処理を繰り返す。
【００２２】
この処理の結果、生成される画面定義の例は例えば図２，３に示したＪＳＰタグの埋め込まれたＪＳＰファイルである。またここではＪＳＰタグを埋め込むようにしたが、図１８のようにＪＳＰカスタムタグを埋め込むようにしてもよい。例えば、画面変数の値を取り出す例として、図１８の１８０１に示す＜ｏｕｔ：ｄｏｃ  ｎａｍｅ＝“ｎａｍｅ．ｖａｌｕｅ”／＞は、処理の結果「ｎａｍｅ．ｖａｌｕｅ」で示されるドキュメント変数値を取得して文字列を表示するタグである。
このようなこの実施の形態３の構成によれば、ＨＴＭＬからなるデザイン画面定義１４０２から、ＪＳＰタグの埋まったＪＳＰからなる画面定義１４０１を自動で生成する画面定義生成処理部１４０４を備えるようにしたので、ＪＳＰを知らないデザイナーがデザイン画面を定義することが可能となりプログラマーはアプリケーション変数を使ったアプリケーションのロジックを作成することができるので、デザイナーとプログラマーの作業を分担することができ、作業効率が向上する。また、デザイン画面定義１４０２はＪＳＰタグなどＨＴＭＬ以外のタグを含まないようにしたので、市販のＨＴＭＬに準拠したデザインツール上の対話的な視覚的環境で作成することが可能である。
【００２３】
実施の形態４．
次に、実施の形態４のアプリケーション実行装置１００ｂについて図１９を用いて説明する。前記実施の形態１の図１に示したアプリケーション実行装置１００では、一つのアプリケーションを画面サイズが異なるような複数の端末で利用することを想定していなかったが、この実施の形態４のアプリケーション実行装置１００ｂは複数の端末１０９で一つのアプリケーションを利用するようにしてもよい。この場合、一つのアプリケーションに対して、端末１０９毎に各定義の組み合わせを定義するアプリケーションビュー定義１９０１と、端末種別を判定するための端末種別判定定義１９０２と当該アプリケーション実行時に端末１０９からのリクエスト情報から端末１０９の種別を選定する端末種別選定部１９０３をそなえるようにすればよい。
【００２４】
アプリケーションビュー定義１９０１の例を、図２０を用いて説明する。アプリケーションビュー定義１９０１の形態は、表形式、ＣＳＶ形式、ＸＭＬ文いずれでもよいがこの例は表形式で示した例である。アプリケーションビュー定義１９０１の項目は、「アプリケーション名」、「アプリケーションビュー名」、「画面定義」、「画面変数定義」、「画面変数アプリケーション変数対応定義」、「アプリケーション変数定義」、「ロジック定義」、「状態遷移定義」からなる。「アプリケーション名」は対象のアプリケーションの名称であり、「アプリケーションビュー名」は端末１０９の種別を示すものである。この例では、パソコン「ＰＣ」と携帯電話「Ｍｏｂｉｌｅ」の二種類のアプリケーションビューを定義している。その他の項目についてはこれまでに説明してきたものであるので説明省略する。この図２０で示したアプリケーションビュー定義１９０１は、「アプリケーション変数定義」と「ロジック定義」の項目については、端末共通で同一のものを利用するものである。
図２１と図２２は、異なる端末１０９での画面遷移の例を示したものである。図２１はパソコンの場合、図２２は携帯電話の場合である。携帯電話は一般にパソコンよりも小さな画面のため、画面のレイアウトが微妙に異なる。図２３は、この場合のパソコンと携帯電話で共通のアプリケーション変数対応定義（図２０でＡｐｐＶａｒで示したもの）を示したものである。この場合の共通の処理ロジックは実施の形態１の図９で示したものをパソコンと携帯電話で共通に利用可能である。
【００２５】
次に端末種別判定定義１９０２について図２４を用いて説明する。図２４はＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）リクエストのヘッダ情報を利用した端末判別定義の一例を示したものである。このヘッダーが「Ｍｏｚｉｌｌａ」で始まっていればパソコン上のインターネットのブラウザーからのリクエストであることがわかり、端末がパソコンであることがわかる。またＤｏＣｏＭｏで始まっていれば、ＮＴＴＤｏＣｏＭｏ社の携帯電話のｉモードのブラウザーからのリクエストであり、携帯電話であることが判別できる。
【００２６】
次に、端末種別選定部１９０３の動作について図２５に示すフローチャートを用いて説明する。前記実施の形態１の図１０で説明したようにＳ１００１で実行エンジン１１０は端末１０９からのリクエスト情報を取得し、次にＳ２５０１で端末種別選定部１９０３がそのリクエスト情報と図２４で説明した端末種別判定定義１９０２を比較することで端末を選定する。次に、Ｓ２５０２でその判定された端末種別から図２０で説明したアプリケーションビュー定義１９０１から該当する端末に対する「画面定義」、「画面変数定義」、「画面変数アプリケーション変数対応定義」、「アプリケーション変数定義」、「ロジック定義」、「状態遷移定義」を選定し、以降図１０で説明した処理つまりＳ１００２の「画面変数値とイベントの抽出」に移行して処理を行う。
このような実施の形態４の構成によれば、アプリケーションビュー定義１９０１と端末種別判定定義１９０２と端末種別判定部１９０３を備えるようにしたので、一つのアプリケーションについて、ロジックを共有して作成し、それを複数種別の端末からアクセスしても実行可能なように実現できる。
【００２７】
実施の形態５．
次に、実施の形態５のアプリケーション変数定義について述べる。前記実施の形態４に示した図２０の例では、アプリケーション変数定義とロジック定義を異なる端末種別で共有したが、共有しながら、端末独自のアプリケーション変数とロジックを追加で持たせるようにしてもよい。この実施の形態５の図２６の例では、アプリケーション変数定義として「ＡｐｐＶａｒ」を、ロジック定義として「Ｌｏｇｉｃ」を共通に利用し、パソコンではアプリケーション変数定義「ＰＣＡｐｐＶａｒ」とロジック定義「ＰＣＬｏｇｉｃ」を、携帯電話ではアプリケーション変数定義「ＭｏｂｉｌｅＡｐｐＶａｒ」とロジック定義「ＭｏｂｉｌｅＬｏｇｉｃ」を独自に定義したものである。
また、図２７と図２８は一つのアプリケーションについて、異なる種別の端末で、状態遷移が一部異なる例を示したものである。図２７はパソコンの場合の状態遷移、図２８は携帯電話の場合の状態遷移図であり、検索結果の表示画面が異なっている。つまり、パソコンでは検索画面２７０１から、検索条件を入力すると２７０２のように一覧表形式で画面を出力するが、携帯電話の場合は、画面のサイズやファイルの要領制限の問題でパソコンのように一画面に大量の情報を表示することが不可能であるため、検索画面２８０１から検索結果の概要情報２８０２が表示され個別の詳細情報をさらに２８０３のような形式で表示するものである。
【００２８】
図２９と図３０はそれぞれ、パソコンの場合の画面変数定義、携帯電話の場合の画面変数定義の例を示したものである。図３１は共通のアプリケーション変数定義を示したものであり、図３２は携帯電話固有のアプリケーション変数定義の例を示したものである。この場合は図２８で示した２８０２の検索結果の各名前の前についている選択ボタン２８０４のＩＤをリクエストとして取得する必要があるため、「ａｐｐ＿ｉｄ」をアプリケーション変数として独自に定義している。なお、パソコンの場合のアプリケーション変数については、この例題では独自の定義は存在しない。
【００２９】
図３３はパソコンの場合の画面変数アプリケーション変数対応定義の例を示したものであり、図３４は携帯電話の場合の画面変数アプリケーション変数対応定義を示したものである。図３４の画面定義名「ｒｅｓｕｌｔ．ｊｓｐ」および「ｄｅｔａｉｌ．ｊｓｐ」の部分が図３３とは異なっている。
図３５はパソコンの画面例である図２７に対応する状態遷移定義であり、図３６は携帯電話の画面例である図２８に対応する状態遷移定義である。ここで、ロジック定義については、図３６の３６０１で示される「ｄｅｔａｉｌＡｃｔｉｏｎ」以外は、パソコンと携帯電話で共通である。
このような実施の形態５の構成によれば、アプリケーションビュー定義において、端末に応じて独自にロジック定義とアプリケーション変数定義を追加できるようにしたので、端末毎に独自のロジックを追加しても、一つの共通アプリケーションとして動作可能な、多種端末対応のアプリケーションを作成し、実行することが可能である。
【００３０】
実施の形態６．
図３７は、実施の形態６によるアプリケーション実行装置１００ｃの構成図を示す図である。前記実施の形態４では、異なる端末について、各定義を個別に定義したが、これを自動で生成するようにしてもよい。つまり、画面変数定義１０２において、すでに定義した端末１０９の画面変数定義１０２と同一の名称の画面変数（名前と属性）を、新たに作成する端末１０９の画面変数とすることで、その他の「画面変数アプリケーション変数対応定義」、「アプリケーション変数定義」、「状態遷移定義」をコピーして当該端末１０９の定義とする定義自動生成部３７０１を備えるようにすればよい。
【００３１】
定義自動生成部３７０１の動作を、図３８に示すフローチャートを用いて説明する。あらかじめ画面定義の作成者は、他端末１０９の画面定義を参照し、同一の処理を行う画面定義は同一の画面定義名・状態名として画面定義を作成し、さらに他端末１０９の画面変数定義を参照し、同一の意味をもつ項目については同一の画面変数を持つように画面変数定義を作成しておくものとする。つまり、ログイン画面について「Ｌｏｇｉｎ．ｊｓｐ」と他端末１０９で画面定義名がなされていれば当該端末についても「Ｌｏｇｉｎ．ｊｓｐ」とし、さらに「名前」入力欄について画面変数の名前が「ｎａｍｅ」で属性が「ｖａｌｕｅ」と他端末１０９で定義されていた場合、同じ「名前」入力欄について画面変数の名前を「ｎａｍｅ」、属性を「ｖａｌｕｅ」として画面変数を定義すればよい。
【００３２】
このように作成した画面変数定義をＳ３８０１で読込む。次にＳ３８０２にて既に存在する他端末１０９の中から基準とする端末１０９の定義を全て読込む。次にＳ３８０３にて基準端末１０９の画面変数アプリケーション変数対応定義の中で、同一画面定義で同一名称の画面変数について、該当部分を画面変数アプリケーション変数対応定義としてコピーし当該端末１０９の画面変数アプリケーション変数対応定義とする。次に、Ｓ３８０４にてその新たな画面変数アプリケーション変数対応定義に出現するアプリケーション変数について、基準端末１０９のアプリケーション変数定義から該当部分を、当該端末１０９のアプリケーション定義としてコピーして作成する。次に、Ｓ３８０５にて基準端末の状態遷移定義から、当該端末の画面定義と同一の名称の状態について、該当部分の状態定義を順次コピーし、当該端末の新しい状態遷移定義とする。さらに、Ｓ３８０６にて既に定義されているアプリケーションビュー定義を読込み、追加する端末について、これまでのステップで作成した各定義を、アプリケーションビュー定義に新たなビュー定義として追加する。
【００３３】
追加した端末１０９で追加処理を行いたい場合は、前記で作成した各定義に対して追加・編集作業を行えばよい。
また、基準端末１０９の定義を変更すれば、当該端末１０９の該当部分が同様に変更されるようにしてもよい。
このようなこの実施の形態６の構成によれば、あるアプリケーションについて動作する端末の種類を追加する際に、同一の画面定義名と同一意味部分の名前と属性が同じ画面変数定義を作成すれば、そのほかの定義を自動でコピーして生成する定義自動生成部３７０１をそなえるようにしたので、アプリケーション定義の作業を短縮化できる。
【００３４】
実施の形態７．
これまでの実施の形態１〜６では、画面定義１０１としてＨＴＭＬおよびＣＨＴＭＬ形式の画面変数定義について特に言及して説明したが、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）にて定義される、ＷＭＬ（Ｗｉｒｅｌｅｓｓ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）、ＶｏｉｃｅＸＭＬにて画面定義を記述するアプリケーションに適用してもよい。
図３９はＳＶＧによる楕円を表示する画面定義の記述を示したものである。図４０は、これに対する表示の際の処理として、楕円のｘ軸方向の半径を変数として変えたい場合の画面変数定義を示したものである。これまでの実施の形態で示した方法と同じように定義を行うことで、楕円の形状を変更するアプリケーションを記述することが可能である。
このようなこの実施の形態７の構成によれば、画面定義１０１としてＨＴＭＬ以外のＸＭＬ形式で定義できる画面定義を保存できるようにしたので、文字情報だけでなくグラフィックスや音声情報などで表示を行うアプリケーションについても、アプリケーション定義の作業を短縮することができる。
【産業上の利用可能性】
【００３５】
以上のように、この発明の実施の形態１〜７をＷｅｂを利用したアプリケーションに利用すれば、アプリケーション開発の生産性を向上できる。
【図面の簡単な説明】
【００３６】
【図１】この発明の実施の形態１のアプリケーション実行装置を示す図である。
【図２】この発明の実施の形態１の画面定義を示す図である。
【図３】この発明の実施の形態１の画面定義を示す図である。
【図４】この発明の実施の形態１の図２と図３の関係を示す図である。
【図５】この発明の実施の形態１の画面変数定義を示す図である。
【図６】この発明の実施の形態１のアプリケーション変数定義を示す図である。
【図７】この発明の実施の形態１の画面変数アプリケーション変数対応定義を示す図である。
【図８】この発明の実施の形態１の状態遷移定義を示す図である。
【図９】この発明の実施の形態１のロジック定義を示す図である。
【図１０】この発明の実施の形態１のアプリケーション実行装置の動作を示す図である。
【図１１】この発明の実施の形態１の画面定義の一部を変更した画面を示す図である。
【図１２】この発明の実施の形態１の画面定義の追加の仕方を示す図である。
【図１３】この発明の実施の形態２の画面変数アプリケーション変数対応定義を示す図である。
【図１４】この発明の実施の形態３のアプリケーション実行装置を示す図である。
【図１５】この発明の実施の形態３のデザイン画面定義を示す図である。
【図１６】この発明の実施の形態３のデザイン画面定義を示す図である。
【図１７】この発明の実施の形態３の画面定義生成処理部の動作を示す図である。
【図１８】この発明の実施の形態３の画面定義の１例を示す図である。
【図１９】この発明の実施の形態４のアプリケーション実行装置を示す図である。
【図２０】この発明の実施の形態４のアプリケーションビュー定義を示す図である。
【図２１】この発明の実施の形態４の状態遷移の例を示す図である。
【図２２】この発明の実施の形態４の状態遷移の例を示す図である。
【図２３】この発明の実施の形態４のアプリケーション変数定義の例を示す図である。
【図２４】この発明の実施の形態４の端末種別判定定義を示す図である。
【図２５】この発明の実施の形態４の端末種別判定部の動作を示す図である。
【図２６】この発明の実施の形態５のアプリケーションビュー定義を示す図である。
【図２７】この発明の実施の形態５の状態遷移を示す図である。
【図２８】この発明の実施の形態５の状態遷移を示す図である。
【図２９】この発明の実施の形態５のパソコンの場合の画面変数定義を示す図である。
【図３０】この発明の実施の形態５の携帯電話の画面変数定義を示す図である。
【図３１】この発明の実施の形態５の共通のアプリケーション変数定義を示す図である。
【図３２】この発明の実施の形態５の携帯電話固有のアプリケーション変数定義を示す図である。
【図３３】この発明の実施の形態５のパソコンの画面変数アプリケーション変数対応定義を示す図である。
【図３４】この発明の実施の形態５の携帯電話の画面変数アプリケーション変数対応定義を示す図である。
【図３５】この発明の実施の形態５の状態遷移定義を示す図である。
【図３６】この発明の実施の形態５の状態遷移定義を示す図である。
【図３７】この発明の実施の形態６のアプリケーション実行装置を示す図である。
【図３８】この発明の実施の形態６の定義自動生成部の動作を示す図である。
【図３９】この発明の実施の形態７の画面定義を示す図である。
【図４０】この発明の実施の形態７の画面変数定義を示す図である。
【符号の説明】
【００３７】
１００，１００ａ，１００ｂ，１００ｃ  アプリケーション実行装置、
１０１，１４０１  画面定義、１０２，１４０３  画面変数定義、
１０３  アプリケーション変数定義、１０４  ロジック定義、
１０５  画面変数アプリケーション変数対応定義、１０６  状態遷移定義、
１０７  画面変数アプリケーション変数対応処理実行部、１０８  データ記憶部、
１０９  端末、１１０  実行エンジン、１４０２  デザイン画面定義、
１４０４  画面定義生成処理部、１９０１  アプリケーションビュー定義、
１９０２  端末種別判定定義、１９０３  端末種別選定部、３７０１  定義自動生成部。
【図１】
2005228184.tif 000003
【図２】
2005228184.tif 000004
【図３】
2005228184.tif 000005
【図４】
2005228184.tif 000006
【図５】
2005228184.tif 000007
【図６】
2005228184.tif 000008
【図７】
2005228184.tif 000009
【図８】
2005228184.tif 000010
【図９】
2005228184.tif 000011
【図１０】
2005228184.tif 000012
【図１１】
2005228184.tif 000013
【図１２】
2005228184.tif 000014
【図１３】
2005228184.tif 000015
【図１４】
2005228184.tif 000016
【図１５】
2005228184.tif 000017
【図１６】
2005228184.tif 000018
【図１７】
2005228184.tif 000019
【図１８】
2005228184.tif 000020
【図１９】
2005228184.tif 000021
【図２０】
2005228184.tif 000022
【図２１】
2005228184.tif 000023
【図２２】
2005228184.tif 000024
【図２３】
2005228184.tif 000025
【図２４】
2005228184.tif 000026
【図２５】
2005228184.tif 000027
【図２６】
2005228184.tif 000028
【図２７】
2005228184.tif 000029
【図２８】
2005228184.tif 000030
【図２９】
2005228184.tif 000031
【図３０】
2005228184.tif 000032
【図３１】
2005228184.tif 000033
【図３２】
2005228184.tif 000034
【図３３】
2005228184.tif 000035
【図３４】
2005228184.tif 000036
【図３５】
2005228184.tif 000037
【図３６】
2005228184.tif 000038
【図３７】
2005228184.tif 000039
【図３８】
2005228184.tif 000040
【図３９】
2005228184.tif 000041
【図４０】
2005228184.tif 000042