以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、本実施形態におけるWebアプリケーション自動生成システム(以下、情報処理システムとも称する)のシステム構成を示す図である。本発明のWebアプリケーション自動生成システムは、開発用端末101、サーバ102(サーバ装置)、利用者用端末103が、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワーク105を介して相互にデータ通信可能に接続されている。
Webアプリケーションとは、企業内で用いられる業務用アプリケーションをWeb上で実施することができるアプリケーションのことであり、クライアント端末上に特別なアプリケーションをインストールすることなく業務を行うことができるため、近年広く用いられている。本発明のWebアプリケーションシステムは、このようなWebアプリケーションを指定した要件定義情報からプログラミングレスで自動生成することができるシステムである。このようなシステムを用いることにより、開発スキルが不足していたしても各企業内で容易にWeb上の業務アプリケーションを開発することができる。
図1に示す開発用端末101には、Webアプリケーション(プログラム)を自動生成する際に開発者が使用する端末でありプログラムを自動生成する開発ツールがインストールされている。この端末で予め要件定義を行い、開発ツールに読み込ませて自動生成処理を行うことでWebアプリケーション130(プログラム)が生成される。
サーバ102は、開発用端末101で生成されたWebアプリケーション(プログラム)を保持運用し、業務アプリケーションを本番環境として提供するために用いられる。利用者は、利用者用端末103を介してWebアプリケーション130(プログラム)へのアクセスを行い、業務アプリケーションを利用することができる。そして、Webアプリケーションを用いて生成されたデータは、データベース140内に記憶される。
利用者用端末103は、一般に本番環境において業務アプリケーションを利用するユーザが利用する端末であり、本端末を用いてサーバ102に接続することで、Web化されたアプリケーションを利用することができる。
図2は、開発用端末101、サーバ102、利用者用端末103のハードウェア構成を示す図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM202あるいは外部メモリ211(記憶手段)には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OS)や、開発用端末101、サーバ102、利用者用端末103の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)205は、キーボードや不図示のマウス等のポインティングデバイス等の入力デバイス209からの入力を制御する。
ビデオコントローラ(VC)206は、ディスプレイ210等の表示器への表示を制御する。表示器の種類はCRTや、液晶ディスプレイを想定するが、これに限らない。
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。また、CPU201は、ディスプレイ210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明の開発用端末101、サーバ102、利用者用端末103が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行可能となるものである。
さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
図3は、Webアプリケーション自動生成システムの構成図および生成されたアプリケーション等の機能構成を説明するための図である。
開発用端末101は、リポジトリ定義部(Webアプリケーション定義部)1000と、ソースコード保持部121と生成処理部122を含むWebアプリケーション生成部120と、メニューエディタ部150とを有している。
リポジトリ定義部1000は、データベース定義111、データモデル定義112、ビジネスプロセス定義113、入出力定義114と、Webアプリケーションを生成する際にこれらの定義ファイルのうちいずれの定義ファイルを用いるかを設定するアプリケーション定義110とを有している。
メニューエディタ部150は、生成されたWebアプリケーションで利用者が使用するメインメニュー画面を編集することができる編集部であり、具体的には、入出力定義で定義されるメニュー定義項目を編集するために用いられ、定義項目特定部151と、位置特定部152と、メニュー項目生成部153と、メニュー描画部154とを有している。メニュー描画部154は、アプリケーションで表示されるメニュー画面を構成するメニュー定義項目をアイコンとして描画するメニューエディタ領域と、画面を識別する画面情報である入出力定義等を表示する定義領域とを表示領域に描画している。アプリケーション開発者であるユーザは、この表示領域上でアイコン等をドラッグしたりドロップしたりすることができ、マウス等の入力デバイス209を用い直観的な操作でアイコン(すなわちメニュー定義項目)を追加したり移動することができる。なお、このような操作はディスプレイがタッチパネル式ディスプレイであるような場合には、タッチ操作で受け付けることもできる。メニュー描画部154においてアイコンの追加や移動が発生すると、定義項目特定部151は、追加若しくは移動がされたアイコンの定義項目を入出力定義114から特定する。さらに、位置特定部152が、追加若しくは移動がされたアイコンがドロップされた位置と他のアイコンとの位置関係をもとに、メニュー画面上の位置情報を特定する。そしてメニュー項目生成部は、定義項目特定部151で特定された定義と位置特定部152で特定された位置とを用いて、入出力定義114のメニュー定義を生成若しくは変更する。このようにメニュー定義を生成若しくは変更することにより、最終的に作成されるWebアプリケーションで利用されるメインメニュー画面が生成される。
サーバ102は、開発用端末101の生成処理部122で生成されたWebアプリケーション130を保持し、利用者用端末103からの要求に応じた処理や、利用者用端末103から入力された入力データ等をデータベース140への記憶処理を行う。
(Webアプリケーションの自動生成処理)
次に、図3乃至図10を用いて、開発者がWebアプリケーションを開発用端末101で自動生成する際の流れを説明する。図4乃至8は、図3のリポジトリ定義部1000に記憶されるデータベース定義111、データモデル定義112、ビジネスプロセス定義113、入出力定義114、アプリケーション定義110等の開発者によって予め設定した定義の一例を示したものである。
図4はWebアプリケーションがアクセスするサーバの設定を記憶したデータベース定義111である。図4に示すように、データベース定義には、サーバ102のコード401、サーバの名前402、接続URL情報403、サーバの種類404、データベース名405、アプリケーションがデータベースにアクセスする際に必要となるユーザ名406及びパスワード407が定義されている。
図5は、スキーマ情報として定義されるデータモデル定義112である。図5(a)に示すように各データモデル定義は、コード501と名前502を付与して管理されており、詳細定義もそれぞれ定義されている。例えばコード『PRODUCT』では、図5(b)に示す項目510と図5(c)に示す操作コード520が詳細定義されている。
図5(b)は、データベース上で受け付ける項目として、項目コード511、項目の名前512、NULLを許可するか否かを設定する項目513、桁数514、データタイプ515を定義している。
項目コード511はデータモデル内のデータモデル項目を一意に特定するコードである。名前512はデータモデル項目に対して、ユーザが任意に設定する名前である。ユーザがデータモデル項目を特定しやすくするために設定するものである。項目513はデータモデル項目に登録するデータに対して空を許容するかどうかを設定する項目である。桁数514はデータモデル項目に登録できるデータの桁数を設定する。データタイプ515はデータモデル項目のデータ型を設定する項目である。文字、数値、日付等、データの型を指定する。この例では、データモデル「PRODUCT」に対して、「PRODUCT_ID」から「PRODUCT_STOCK」までのデータモデル項目を定義している。ここで定義する各項目はWebアプリケーションが接続するデータベースのテーブルのカラム名と一致する。
図5(c)は、データモデルに対する操作をどのように受け付けるかを設定した操作コードであり、操作コード521、当該操作の名前522、操作タイプ523が定義されている。すなわち、データモデルが関連するテーブルに対して操作内容を定義するものである。ここでは、操作コード『REGIST』というコードを有する商品データ登録操作は、操作タイプ『INSERT』であると定義されており、つまりユーザ登録操作で入力されたデータがデータベースに挿入されるというように定義されている。
図6は、Webアプリケーションの業務フローを定義するためのビジネスプロセス定義113である。図6(a)に示すように、各ビジネスプロセス定義は、コード601と名前602を付与して管理されており、詳細なロジック定義もそれぞれ定義されている。なお、ビジネスプロセスのコード601は、後述する入出力定義からの呼び出し指定するコードとして用いられる。詳細なロジック定義としては、図6(b)に示すように、制御コード611、データモデルコード612、機能コード613、パラメータ614、作業コード615が設定されている。
制御コード611はビジネスロジックの操作タイプを示す。この例の「IN」はビジネスプロセスへの入力データの変数格納を示す。変数は作業コード615が該当する。この例の「CALL」はデータモデルコード612が保有する機能コード613の内容を呼び出すことを示す。呼び出しの際にはパラメータ614の内容を引数として渡す。
例えば図6(a)のコード『REGIST_BP』のビジネスプロセス定義では、制御コード611の設定順に以下のような処理が行われる。この例ではWeb画面の入力内容を制御コード「IN」で受け取り、受け取ったデータを作業コード「INPUT」として定義している。次に制御コード「CALL」でデータモデル「PRODUCT」に対する操作を定義している。つまり、まず(1)『IN』制御として、図5のPRODUCT(DM商品)というデータモデルコード501から、入力データを取得する。その際に、当該作業コードに『INPUT』というコードを付与する。次に、(2)『CALL』制御として、図5(c)のデータモデル定義の操作コードとして設定されており『INSERT』処理を、『IN』制御で読み込んだ入力データ(作業コード『INPUT』)に対して行うビジネスロジックが定義している。
図7は、Web画面に配置する各表示項目の入出力定義114である。ここで設定されている項目が、利用者用端末103の表示画面に表示され、本番環境時にユーザが用いる画面として用いられる。図7(a)に示すように、各入出力定義は、コード701と名前702と入出力タイプ703等を付与して管理されており、詳細な項目定義もそれぞれされている。例えば図7(a)のコード『PRODUCT_REGIST_IO』では、図7(b)に示す項目タイプ711、項目コード712、名前713、表示714、加工式715、遷移先となる次入出力716(画面情報)、データモデルコード718、データモデル項目コード719が定義されている。なお、本実施形態では入出力タイプ703として通常の入出力画面を示す「IO」とメニュー画面であることを示す「MENU」の例を示しているが、それ以外にユーザの指示を受けつけるダイアログ画面であることを示す「DIALOG」、エクスポート画面であることを示す「EXPORT」、インポート画面であることを示す「IMPORT」、マトリクス画面であることを示す「MATRIX」、帳票印刷画面であることを示す「PRINT_FILE」、携帯端末画面であることを示す「MOBILE」等様々な入出力タイプを定義することもできる。
項目コード712は入出力定義内の項目を一意に特定するコード(画面情報)である。名前713は入出力項目に対してユーザが任意に命名する名前である。入出力項目を特定しやすくする目的で設定する。表示714は定義した入出力項目を画面上に表示するかどうかの設定である。非表示とした場合は画面上には表示されず、隠しデータとして情報を保持する。次入出力716は項目タイプがアクションに設定された入出力項目について、ボタン押下された後に遷移する入出力コードを設定する。すなわち、ある画面から別の画面への遷移を定義する。次入出力パラメータ717は項目タイプがアクションに設定された入出力項目について、ボタン押下された後に画面遷移と同時に渡すパラメータ情報である。データモデルコード718は該入出力項目と関連するデータモデルコードを設定する。同様にデータモデル項目コード719は該入出力項目と関連するデータモデル項目コードを設定する。
この例では、項目タイプ「IO 入出力」と定義されている項目は入出力項目(データを入力およびデータを表示する「フィールド」)である。項目タイプ「A アクション」と定義されている項目はアクション項目(処理を呼び出し、画面を遷移する「ボタン」)である。この例における、項目コード「REGIST_ACT」はアクション項目である。アクション項目「REGIST_ACT」の加工式715には、「REGIST_BP」が定義されている。「REGIST_BP」のアクションでは、ビジネスプロセス「REGIST_BP」が呼び出されることを示す定義である。そして、次入出力先として、「PRODUCT_LIST_IO」のコードが定義されている。すなわち、アプリケーション上の商品登録画面でユーザによる「登録」アクションが行われると、「REGIST_BP」の加工式で定義されたアクションが実行された後、次入出力716として定義された「PRODUCT_LIST_IO」に画面遷移することが定義されている。すなわち、「PRODUCT_LIST_IO」が遷移先の表示画面情報となる。
また、図7(a)の入出力タイプ「MENU」と定義されている項目は、メインメニュー画面を定義することができる項目タイプである。コード『MAIN_MANU』では、図7(c)に示すように、項目コード712「TO_PRODUCT_ID」の次入出力716には「PRODUCT_REGIST_IO」が対応するように定義されており、項目コード712「TO_PRODUCT_NAME」の次入出力716には「PROCUCT_LIST_IO」が対応するように定義されている。すなわち、アプリケーション上のメインメニュー画面でユーザによる「商品登録ページへ」アクションが行われると、「PRODUCT_REGIST_IO」に画面遷移し、メインメニュー画面でユーザによる「商品一覧ページへ」アクションが行われると、「PRODUCT_LIST_IO」に画面遷移することが定義されている。さらに、入出力タイプが「MENU」である場合には、各項目のメニュー画面上における階層720(階層情報)と階層構造となった際の親項目721とが定義できる。
図8(a)は、Webアプリケーションを生成する際に使用する入出力定義を規定するアプリケーション定義110を示す図である。各アプリケーション定義110、コード801とアプリケーション名802とが設定されており、さらに初期画面として用いられる入出力定義を初期入出力コード803として定義することができる。すなわち、初期入出力コード803として特定された入出力定義が遷移画面図のトップ階層として特定される画面となる。コード801は、リポジトリ定義部1000に保存される定義ファイル全体(プロジェクトとも称する)の中でアプリケーションを一意に特定することができるコードである。アプリケーション名802は、アプリケーションに対して、ユーザが任意に設定することができる名前である。
さらに、アプリケーション定義110は、コードごとに図8(b)の所属定義設定画面810に示すように所属する入出力定義が設定されている。所属定義設定画面810には、入出力一覧811と所属入出力一覧812と、追加ボタン814、削除ボタン815が表示される。
入出力一覧811にはプロジェクトに保存される入出力定義1004の入出力コード全てが表示される。ユーザは任意の入出力コードを所望の数だけ選択し、追加ボタン814を押下することにより、当該アプリケーションコードに所属入出力として所属させることができる。追加処理が行われると、当該入出力コードは所属入出力一覧812に表示される。また、ユーザは所属入出力一覧812に表示されている入出力コードを選択し削除ボタン815を押下することにより、所属を外すこともできる。
図9は、図4乃至8に示すようなリポジトリ定義部1000に記憶されているデータベース定義111、データモデル定義112、ビジネスプロセス定義113、入出力定義114、アプリケーション定義110等の要件定義がされた後、Webアプリケーションを自動生成する際の流れを説明するためのフローチャートである。このような処理は、開発用端末101のCPU201が記憶されている制御プログラムを読み出して実行することにより実現される。
まず、S901では、開発用端末101のCPU201が、ユーザからWebアプリケーションを生成するアプリケーション定義110の指定を受け付ける(受付手段)。
次に、S902では、開発用端末101のCPU201が、データベース定義111をリポジトリ定義部1000から読み込む。S903では、データモデル定義112をリポジトリ定義部1000から読み込む。S904では、ビジネスプロセス定義113をリポジトリ定義部1000から読み込む。S905では、入出力定義114をリポジトリ定義部1000から読み込む。
このような定義はXML形式で記述されているため、S906では、開発用端末101のCPU201が、XMLファイルを構造解析し、必要な定義内容をメモリ上にオブジェクトデータとして保存する。
次に、S907では、生成処理は開発用端末101のCPU201が生成処理部122として機能し、予め設定されているソースコードテンプレートを、ソースコード保持部121から読み込み、S908でメモリ上に保存した定義データをソースコードテンプレートに埋め込んだ、ソースコードファイル、すなわちWebアプリケーションを生成する。
以上のように、予め定義した要件定義とソースコードを用いることにより、Webアプリケーションが自動生成される。開発者は、このように生成したWebアプリケーションを、サーバ102に保存して業務アプリケーションの開発作業を終了する。
(メニュー定義項目の追加処理)
次に、図10乃至図14を用いて、Webアプリケーションの開発者等が予め定義している画面の入出力定義を用いて、アプリケーションで使用されるメニュー画面を生成する際に用いるメニュー定義項目(メニュー定義情報)を作成する流れを説明する。
上述したようなWebアプリケーションなどで生成される業務アプリケーションでは、複数の画面を用意し、画面から別の画面に遷移するように設計されるが、このようなアプリケーションでは途中で所望の画面へ遷移が行えるように各画面へのリンクを集めたメニューを作成することが一般的である。しかし開発時には頻繁に画面が追加されたり、画面をまとめているカテゴリが変更されたりすることがあるため、直観的な操作で、Webアプリケーションで使用する画面に対応したメニュー画面を生成することができる仕組みが必要とされている。本実施形態では、メニュー画面のメニュー定義項目をユーザが直観的な操作で簡便に生成することができる仕組みを提供する。
図10は、Webアプリケーションの開発者等が予め定義している画面の入出力定義を用いて、メニュー定義項目を追加する処理を説明するためのフローチャートである。このような処理は、開発用端末101のCPU201が記憶されている制御プログラムを読み出して実行することにより実現される。図11(a)乃至(d)は、画面の定義情報を用いてメニュー定義項目を作成する様子を示す図であり、入出力定義の『CUSTOMER_REG(顧客登録)』をメニュー定義として追加する際の例を示している。図11に示すメニューエディタ画面の表示領域には、メニュー定義項目に対応するアイコンが表示されるメニューエディタ領域1102と各種定義情報が表示される定義領域1101が設けられている。入出力定義のメニュー定義項目に既に何らかの項目が設けられている場合には、当該項目に対応するアイコンがメニューエディタ領域1102に表示されており、このような状態でユーザはメニュー定義項目を追加する操作を行う。以下の説明ではアイコンの名称としてメニュー定義項目の「名前」を用いた例で説明するが、「名前」以外の項目をアイコンの名称としてもい。
まず、S1001では、開発用端末101のCPU201が、ユーザによって図11(a)に示すようなメニューエディタ画面を表示した状態で、各種定義情報が選択できるように表示された定義領域1101からメニューエディタ領域1102に定義がドラッグアンドドロップされたことを受け付けたかどうかを判断する。定義領域1101には、アプリケーション定義、ビジネスプロセス定義、データモデル定義、入出力定義等が表示されており、ユーザはマウス等の入力デバイス209を用いて選択アイコン1104を操作し、所望の定義を選択することができる。
S1002では、開発用端末101のCPU201が、選択アイコン1104で選択された定義がメニュー画面で画面遷移可能な定義であるかを特定する。具体的には、選択された定義が入出力定義114の入出力タイプ703がIOである場合に、画面遷移可能な定義であると判断される。それ以外の定義の場合には画面遷移はできないため、メニューエディタ領域には定義のアイコンを生成させずに処理を終了する。
S1002で画面遷移可能な定義であると判断された場合には、S1003に遷移し、開発用端末101のCPU201が、ユーザによって選択された定義の定義情報を取得する(情報取得)。具体的には、入出力タイプ703がIOである入出力定義114の定義項目のうち、少なくとも画面を特定することができる項目コード712を取得する。
S1004では、開発用端末101のCPU201が、ユーザにより選択された定義に対応するアイコンがメニューエディタ領域1102でドロップされた位置情報を取得し、アイコンがドロップされた位置と他のアイコンとの位置関係をもとに、メニュー画面上のユーザにより選択された定義のアイコンを追加したい位置の位置情報を特定する。図11(b)に示す例では、「商品一覧ページへ」のアイコンの下に追加されることを示す識別アイコン1120が表示された状態で『CUSTOMER_REG(顧客登録)』のアイコンをドロップ操作する様子を示している。この場合には、「商品一覧ページへ」と同じ階層であって、「商品一覧ページへ」の次に表示される位置を示す位置関係が特定される(位置取得)。識別アイコン1120としては、具体的には図11(b)に示すように三角形状のアイコンや挿入位置に破線を表示する形態や挿入位置を示す線を表示させる形態を用いることができる。
S1005では、開発用端末101のCPU201が、ユーザからメニュー定義で表示される項目名を受け付ける。具体的には、図11(c)に示すようなメニュー項目の追加作成画面1150が表示され、ユーザは項目コードと名前を入力し、OKボタン1151を押下するとメニュー定義で表示される項目名を設定することができる。なお、メニュー項目の追加作成画面1150を表示させることなく、「項目コード」と「名前」を当初は自動補間しておき、後から編集するようにしてもよい。
S1006では、開発用端末101のCPU201が、入出力タイプ703がMANUである入出力定義の定義項目にS1003で取得した項目コード712とS1004で特定した位置関係から求まる階層とS1005で取得した項目コード及び名前とを追加する。すなわち、アプリケーションで表示されるメニュー画面を設定するメニュー定義項目にメニュー項目を追加されてメニュー定義項目が新たに生成される(メニュー定義生成)。図13(a)は図11で行われた操作によって『CUSTOMER_REG(顧客登録)』が追加された後の入出力タイプ703がMANUである入出力定義の定義項目である(メニュー定義)。図13(a)に示すように、図11に示す操作を行うと、階層720はアイコンがドロップされた位置に対応する「1」とし、次入出力716は、選択されたアイコンに対応する入出力定義から特定された情報である「CUSTOMER_REG_IO 顧客情報」とし、項目コード712と名前713は、メニュー項目の追加作成画面1150で受け付けた内容としてメニュー項目が追加される。
S1007では、開発用端末101のCPU201は、作成されたメニュー画面用の入出力定義をもとに、画面の定義情報に対応したアイコンがメニューエディタ領域1102に描画されるように表示制御する(図11(d))。つまりメニューエディタ領域1102を開発者は見るだけで、アプリケーションのメニュー画面で表示されるであろう表示状態を確認することができる。
このような処理により作成された入出力定義をもとに作成されたアプリケーションのメニュー画面1400(利用者用端末で表示されるメニュー画面)を図14(a)に示す。メニュー画面1400に表示される名称は、入出力定義の名前713が用いられる。図11及び図13(a)に示すように「商品登録ページへ」と「商品一覧ページへ」と「顧客登録ページへ」とがいずれも階層「1」とされている場合には、メニュー画面1400では第1階層の選択ボックスとして並列させて表示される。
以上説明したように、画面の入出力定義を用いてメニュー画面の入出力定義を直観的な操作で作成することができる。なお図11は、他のアイコンの階層と同じ階層に新たなアイコンを追加する例であったが、図12に示すようにいずれかのアイコンの下位層に新たなアイコンを追加することもできる。
図12(a)に示す例では、「商品一覧ページへ」のアイコンの右側に追加されることを示す識別アイコン1120が表示された状態で『CUSTOMER_REG(顧客登録)』のアイコンをドロップしている。この場合には「商品一覧ページへ」を親階層とし、「商品一覧ページへ」の下階層である階層「2」に項目が追加されることになる。この場合にも図12(b)に示すようにメニュー項目の追加作成画面1150が表示され、ユーザは項目コードと名前を入力し、OKボタン1151を押下するとメニュー定義で表示される項目名を設定することができる。図12(c)は図12(a)(b)に示す操作により、新たな「顧客登録ページへ」の項目が追加された後のメニューエディタ領域1102の様子である。図13(b)は、図12で行われた操作によって『CUSTOMER_REG(顧客登録)』が追加された後の入出力タイプ703がMANUである入出力定義の定義項目である(メニュー定義)。階層720はアイコンがドロップされた位置である「2」が追加され、親項目721には「商品一覧ページへ」に対応する「TO_PRODUCT_MANU」が追加される。
図14(b)は図12の操作に伴って行われた処理により作成された入出力定義をもとに作成されたアプリケーションのメニュー画面1400(利用者用端末で表示されるメニュー画面)である。「商品登録ページへ」と「商品一覧ページへ」が階層「1」の選択ボックスとして表示され、「顧客登録ページへ」は親階層の「商品一覧ページへ」の選択ボックスの上に選択アイコン1401が位置している場合、若しくは「商品一覧ページへ」の選択ボックスが選択されている場合しか表示されない階層「2」の選択ボックスとして用意される。つまり、入出力定義に対応する定義アイコンをメニューエディタ領域にドロップする位置により、階層や親項目を決定することができる。
図10乃至図14では入出力定義を用いてメニュー定義項目を追加する例を説明したが、メニュー定義項目には画面の入出力定義以外の項目もメニュー定義項目として追加することができる。このような処理について、図15乃至17を用いて説明する。
図15は、入出力定義とは関係ないカテゴリを示す項目をメニュー定義項目に追加する処理を説明するためのフローチャートである。このような処理は、開発用端末101のCPU201が記憶されている制御プログラムを読み出して実行することにより実現される。図16(a)乃至(d)は、入出力項目パレット1601に用意されたアイコン1602を用いてメニュー定義項目を作成する様子を示す図であり、『商品』のカテゴリをメニュー定義として追加する際の例を示している。図17は、図16で行われた操作によって『商品』のカテゴリが追加された後の入出力タイプ703がMANUである入出力定義の定義項目である(メニュー定義)。
S1501では、開発用端末101のCPU201は、ユーザによって図16(a)に示すようなメニューエディタ画面を表示した状態で、入出力項目パレット1601からカテゴリ追加を行うための入出力項目パレット1601に用意されたアイコン1602がメニューエディタ領域1102にドラッグアンドドロップされたことを受け付けたかどうかを判断する。
S1502では、開発用端末101のCPU201が、ユーザにより選択されたアイコン1602がメニューエディタ領域1102でドロップされた位置情報を取得し、アイコンがドロップされた位置と他のアイコンとの位置関係をもとに、メニュー画面上のユーザにより選択された定義のアイコンを追加したい位置の位置情報を特定する。図16(b)に示す例では、「商品登録ページへ」のアイコンの左に追加されることを示す識別アイコン1120が表示された状態でアイコン1602をドロップしている。この場合には「商品登録ページへ」の階層を一つ下げ、追加されたアイコン1602が「商品登録ページへ」の元の階層とする位置関係を特定する。
S1503では、開発用端末101のCPU201が、ユーザからメニュー定義で表示される項目名を受け付ける。具体的には、図16(c)に示すようなメニュー項目の追加作成画面1150が表示され、ユーザは項目コードと名前を入力し、OKボタン1151を押下するとメニュー定義で表示される項目名を設定することができる。
S1504では、開発用端末101のCPU201が、入出力タイプ703がMANUである入出力定義の定義項目にS1503で特定した位置関係から求まる階層とS1504で取得した項目コード及び名前とを追加する。すなわち、アプリケーションで表示されるメニュー画面を設定するメニュー定義項目に追加する。図17は図16で行われた操作によってメニュー画面で各画面をまとめたカテゴリとして「商品」が追加された後の入出力タイプ703がMANUである入出力定義の定義項目である(メニュー定義)。図17に示すように、図16に示す操作を行うと、階層720はアイコンがドロップされた位置に対応する「1」とし、項目コード712と名前713は、メニュー項目の追加作成画面1150で受け付けた内容としてメニュー項目が追加される。さらに「商品」のアイコンが追加されることにより階層が変更された「商品登録ページへ」のメニュー定義は、階層720が親階層である「商品」の次の階層である「2」に変更され、親項目721に親階層である「商品」を示す「PRODUCT」が追加される。
S1506では、開発用端末101のCPU201は、作成されたメニュー画面用の入出力定義をもとに、カテゴリを示すアイコンをメニューエディタ領域1102に描画されるように表示制御する(図16(d))。
以上説明したように、メニュー定義項目には画面の入出力定義以外のカテゴリを示す項目もメニュー定義項目として追加することができる。このようなカテゴリを示す項目は、アプリケーションのメニュー画面1400で選択されても対応する画面が用意されていないため、遷移することはできないが関連する複数の画面をひとまとまりにしてメニュー画面上で表示させることができるため、利用者はメニュー画面1400上で遷移したい画面を見つけやすくなる。
図10乃至図17の説明では、いずれもメニューエディタ領域に存在しないアイコンを追加する場合を説明したが、メニューエディタ領域では既に使用されているメニュー定義項目のアイコンの配置位置を変更することで、メニュー画面の表示形態を変更させることもできる。このようなメニュー定義の変更処理について、図18乃至24を用いて説明する。
図18は、メニューエディタ領域に既に表示されている、すなわち既にメニュー画面として定義されているメニュー定義項目のメニュー画面上での表示位置を変更する処理を説明するためのフローチャートである。このような処理は、開発用端末101のCPU201が記憶されている制御プログラムを読み出して実行することにより実現される。図19(a)乃至(c)は、メニューエディタ領域1102に表示されたアイコンを用いてメニュー定義項目のメニュー画面上での表示位置を変更する様子を示す図であり、階層「1」の「商品一覧ページへ」の項目を「商品」カテゴリの下位層である階層「2」の位置に変更する例を示している。図20は、図19で行われた操作によって「商品一覧ページへ」が「商品」のカテゴリに含まれるように変更された後の入出力タイプ703がMANUである入出力定義の定義項目である(メニュー定義)。
S1801では、開発用端末101のCPU201は、ユーザによって図19(a)に示すようなメニューエディタ画面上で表示されているメニュー定義項目に対応したアイコンの位置が変更されるようにドラッグアンドドロップされたことを受け付けたかどうかを判断する。
S1802では、開発用端末101のCPU201が、ユーザによって選択された定義の定義情報を取得する。具体的には、入出力タイプ703がMANUである入出力定義114のいずれのメニュー定義項目が選択されているかを特定する。
S1803では、開発用端末101のCPU201が、ユーザにより選択されたアイコンがメニューエディタ領域1102でドロップされた位置情報を取得し、アイコンがドロップされた位置と他のアイコンとの位置関係をもとに、メニュー画面上のユーザにより選択された定義のアイコンを追加したい位置の位置情報を特定する。図19(b)に示す例では、「商品一覧ページへ」のアイコンを「商品登録ページへ」のアイコンの下に追加されることを示す識別アイコン1120が表示された状態でドロップ操作する様子を示している。この場合には、「商品一覧ページへ」の階層が「商品登録ページへ」と同じ階層となるような位置関係を特定する。
S1804では、開発用端末101のCPU201が、S1803で特定した位置関係から求まる階層となるようにメニュー項目を変更する。図20は、図17に示す入出力定義の定義情報を図19で行われた操作によって変更した後の入出力定義のメニュー定義項目である。図20に示すように、図19に示す操作を行うと、「商品一覧ページへ」の階層720はアイコンがドロップされた位置に対応する「2」に変更され、親項目721に親階層である「商品」を示す「PRODUCT」が追加される。
S1805では、開発用端末101のCPU201は、変更されたメニュー画面用の入出力定義をもとに、カテゴリを示すアイコンをメニューエディタ領域1102に描画されるように表示制御する(図19(c))。
また、アイコンの位置変更は図21乃至図23に示すように、既に配置されている上位層アイコンと下位層アイコンとの間に割り込ませる形で挿入することも可能である。下位層アイコンが1つしかない場合には、挿入したアイコンの階層を元の下位層アイコンの階層とするとともに、下位層アイコンの階層を1つ下の階層に変更すればよい。しかし、下位層アイコンが複数ある場合には、複数の下位層アイコンと上位層アイコンとの間に新たな階層としてアイコンを挿入し複数の下位層アイコンの階層を1つ下の階層に変更したいのか、若しくは、複数の下位層アイコンのうちの1つの下位層アイコンのみの親階層としてアイコンを挿入したいのか判別が難しい。
そこで、本実施形態では、いずれの処理を行うかは、アイコンをドロップする位置応じて決定することができる。図21は、複数の下位層アイコンのうちの1つの下位層アイコンのみの親階層としてアイコンを挿入したい場合の例であり、図21(c)に示すように「商品情報管理」を、「顧客登録ページへ」のみの親階層として挿入している。このように挿入したい場合には、図21(b)に示すように「商品登録ページへ」の上位階層であって、「商品」カテゴリの含まれる複数のアイコンの群を識別可能な破線領域2001の内側にアイコン1120が表示されている状態でドロップすればよい。このような位置でドロップすることにより、図21(c)に示すように、「商品」と「商品登録ページへ」の間の位置であって、「商品一覧ページへ」と同じ階層に「商品情報管理」の位置を変更することができる。このときの変更前の入出力定義の定義情報は図23(a)であり、図21の操作により変更された後の入出力定義情報が図23(b)である。ここで示されているように、「商品情報管理」の階層が「1」から「2」に変更され、親項目721が「PRODUCT」と追記されるとともに、「商品登録ページへ」の階層が「2」から「3」に変更され、親項目721が「PRODUCT_EDIT」に変更される。そして図23(a)に対応するアプリケーションのメニュー画面1400が図24(a)であり、図23(b)に対応するアプリケーションのメニュー画面1400が図24(b)である。
一方、図22は、複数の下位層アイコンの全ての親階層としてアイコンを挿入したい場合の例であり、図22(b)に示すように「商品情報管理」を「商品登録ページへ」と「商品一覧ページへ」の親階層として挿入している。このように挿入したい場合には、図22(a)に示すように「商品登録ページへ」もしくは「商品一覧ページへ」の上位階層であって、「商品」カテゴリの含まれる複数のアイコンの群を識別可能な破線領域2001の外側にアイコン1120が表示されている状態でドロップすればよい。このような位置でドロップすることにより、図22(b)に示すように、「商品」と「商品登録ページへ」及び「商品一覧ページへ」との間の階層位置に「商品情報管理」の位置を変更することができる。このときの変更前の入出力定義の定義情報は図23(a)であり、図21の操作により変更された後の入出力定義情報が図23(c)である。ここで示されているように、「商品情報管理」の階層が「1」から「2」に変更され、親項目721が「PRODUCT」と追記されるとともに、「商品登録ページへ」の階層が「2」から「3」に変更され、親項目721が「PRODUCT_EDIT」に変更され、さらに「商品登録一覧ページへ」の階層が「2」から「3」に変更され、親項目721が「PRODUCT_EDIT」に変更される。そして図23(c)に対応するアプリケーションのメニュー画面1400が図24(c)である。
このように、配置を変更したいアイコンをドロップする位置に応じて、複数の下位層アイコン全ての親階層として挿入するか、複数の下位層アイコンのいずれか1つの親階層として挿入するかを決定し、アイコンを挿入することができるため、ユーザは直観的な操作でいずれの階層構造にするかを選択することができる。
なお、図21乃至図23の説明では、既に配置されているアイコンの位置を変更する例を用いて説明したが、新しい項目を追加する場合でも同様にドロップする位置に応じて、複数の下位層アイコン全ての親階層としてアイコンを追加するか、複数の下位層アイコンのいずれか1つの親階層となるようにアイコンを追加するかを決定し、アイコンを挿入することができる。また、配置位置を変更する操作は、画面にリンクしていないカテゴリ項目のアイコンも、画面にリンクしている項目のアイコンもいずれも同じように変更させることができる。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置の情報処理装置が前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理を情報処理装置で実現する(実行可能とする)ために、前記情報処理装置にインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理を情報処理装置で実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行して情報処理装置にインストールさせて実現することも可能である。
また、情報処理装置が、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、情報処理装置上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、情報処理装置に挿入された機能拡張ボードや情報処理装置に接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。