以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図1は、本発明に係わるプログラム開発装置(開発者がWebアプリケーション生成のために使用する情報処理装置)、プログラム開発サーバ、データベースサーバ、アプリケーションクライアント(クライアント装置)、アプリケーションサーバ、Webサーバの構成の一例を示すシステム(情報処理システム)構成図である。
プログラム開発装置101は、開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。プログラム開発装置101単体では、開発者の入力受付を行い、後述するプログラム開発サーバ102に実際のプログラム生成処理、アプリケーション生成処理をさせてもよいし、プログラム開発装置101単体でプログラム生成、アプリケーション生成まで処理してもよい。
なお、この実施形態においては、プログラム開発装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Web技術による通信を利用したアプリケーションでなくてもよい。
プログラム開発サーバ102a~102b(情報処理装置)は、プログラム開発装置101により入力された開発者の指示に従って、プログラムを開発する。プログラム開発サーバ102aはLANなどのネットワーク107内に配置されてもよいし、プログラム開発サーバ102bはインターネット上やクラウド上に配置されてもよい。
データベースサーバ103a~103b(情報処理装置)は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、開発者が利用するためにデータベースサーバ103は、プログラム開発装置101と同一の装置で構成されていてもよいし、LANなどのネットワーク107内に配置されてもよい(データベースサーバ103a)。またインターネット上やクラウド上に配置されてもよい(データベースサーバ103b)。また、プログラム開発装置101が、プログラム開発サーバ102と協調する場合には、プログラム開発サーバ102とデータベースサーバ103が同一の装置内に構成されていてもよい。
アプリケーションサーバ105(情報処理装置)は、プログラム開発装置101で生成されたアプリケーションプログラムを実行する。アプリケーションサーバ105は、LANなどのネットワーク107内に配置されてもよいし、またインターネット上やクラウド上に配置されてもよい。また、ネットワーク107、インターネット、クラウド上のデータベースサーバ103と接続して動作することが可能である。
アプリケーションクライアント104a~104b(情報処理装置)は、アプリケーションサーバ105と協調してプログラム開発装置101で開発したアプリケーションプログラムを動作させる、ユーザの入力端末である。LANなどのネットワーク107内に配置されてもよい(アプリケーションクライアント104a)し、またインターネット上やクラウド上に配置されてもよい(アプリケーションクライアント104b)。携帯端末などの情報処理装置であってもよい。
Webサーバ106(情報処理装置)は、プログラム開発装置101で生成された画面仕様ドキュメント443をアプリケーションクライアント104からのリクエストに応じて送信する。Webサーバ106は、LANなどのネットワーク107内に配置されてもよいし、またインターネット上やクラウド上等に配置されてもよい。
なお、本実施形態においては、アプリケーションサーバ105とWebサーバ106は別筐体の情報処理装置としたが、これに限定するものではなく、1つの情報処理装置であっても、仮想環境上に構築されてもよい。
なお、本実施形態のプログラム開発装置101又はプログラム開発サーバ102は、Webシステムで用いるクライアント装置で表示する画面に対応する入出力定義に従って、Webシステムで実行するプログラムを生成する情報処理装置と言い換えることが可能である。
図2は、本発明に係わるプログラム開発装置101、プログラム開発サーバ102、データベースサーバ103、アプリケーションクライアント104、アプリケーションサーバ105、Webサーバ106として適用可能な各ハードウェア構成の一例を示すブロック図である。
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイスが挙げられる。
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。加えて、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
図3は、本発明の実施形態におけるプログラム開発装置101の機能構成を示すブロック図の一例である。
プログラム開発装置101は、以下の機能部を備える。なおプログラム開発装置101は、Webシステムで用いるアプリケーションクライアント(クライアント装置)で表示する画面に対応する入出力定義に従って、Webシステムで実行するプログラムを生成する情報処理装置と言い換えることが可能である。
ドキュメント生成部301は、入出力定義に従って、画面に関する仕様を含むドキュメントを生成する機能部である。
リンク情報生成部302は、ドキュメント生成部301により生成されるドキュメントのリンク情報を生成する機能部である。
設定部303は、画面からドキュメント生成部301で生成されるドキュメントを表示させるべく、プログラムで用いられる画面にリンク情報を設定する機能部である。
また、ドキュメント生成部301は、Webアプリケーションで用いる画面ごと生成される。
また、設定部303は、プログラムを生成する際に、対応する画面にリンク情報を設定する。
指定受付部304は、生成されるプログラムにおいて、リンク情報を設定するための指定を受け付ける機能部である。
プログラム生成部305は、指定受付部304によりリンク情報を設定するための指定がされた場合に、リンク情報生成部302は前記リンク情報を生成し、指定受付部304によりリンク情報を設定するための指定がされていない場合に、リンク情報生成部302は前記リンク情報を生成することなく、前記プログラムを生成する機能部である。
設定部303は、入出力定義のタイプに従って画面にリンク情報を設定する。
フィルタ設定部306は、出力フィルタを設定する機能部である。
ドキュメント生成部301は、フィルタ設定部306によって設定された出力フィルタと前記入出力定義に従って、フィルタされた画面に関する仕様を含むドキュメントを生成する。
設定部303は、ドキュメント生成部301により生成されたフィルタされた画面に関する仕様を含むドキュメントを表示させるべく、対応する画面に当該ドキュメントのリンク情報を設定する。
なお、クラウド環境でWebアプリケーションの設定を行う場合には、プログラム開発サーバ102としての機能とすることは言うまでもない。
図4は、Webシステムにおける処理概要を示す構成図である。
プログラム開発装置101は、リポジトリ定義部401、Webアプリケーション生成部415及び画面仕様ドキュメント生成部419を備える。
プログラム開発装置101は、Webアプリケーションを開発する開発者により設定されたリポジトリ定義部401の各定義を用いて、Webアプリケーション生成部415によりWebアプリケーション438を生成する。また、プログラム開発装置101は、リポジトリ定義部401の各定義を用いて、画面仕様ドキュメント生成部419により画面仕様ドキュメントを生成する。
リポジトリ定義部401には、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406、ドキュメント用定義407、画面HTMLデータ408、ドキュメントフィルタ定義409、表紙ファイル410、アプリケーションリソースファイル411、ドキュメントリソースファイル412、ヘッダ・フッタファイル413及び関連文書414が記憶されている。これら402~414の定義は、Webアプリケーション開発ツールを介して、開発者によって入力設定または配置される。
なお、入出力定義403は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたWebアプリケーションの画面を介して当該Webアプリケーションのユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたWebアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
また、画面HTMLデータ408は、Webアプリケーション開発ツールのレイアウトエディタを用いて生成された画面レイアウトをHTML等に変換した画面情報である。
また、アプリケーションリソースファイル411は、Webアプリケーションの画面に表示する文言等を定義したファイルであり、ドキュメントリソースファイル412は、画面仕様ドキュメント443に表示する文言等を定義したファイルである。
よって、リポジトリ定義部401は、生成されたプログラムの実行によって表示されるWebアプリケーションの画面を介して入力される項目を定義する入力定義情報と、画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する一例である。
Webアプリケーション生成部415は、Webアプリケーション生成用のリポジトリ定義解析部416を用いてリポジトリ定義部401に記憶されている各定義を解析し、Webアプリケーションコード生成部417及びソースコードコンパイル部418を介し、コンパイル済Java(登録商標)コード439及びHTML/JSP/JavaScript(登録商標)440を含むWebアプリケーション438を生成する。また、画面仕様ドキュメント生成ON/OFF設定部を有しており、画面仕様ドキュメント生成部419の動作の制御(ON/OFF)をする。
画面仕様ドキュメント生成部419は、画面仕様ドキュメント生成用のリポジトリ定義解析部420を用いてリポジトリ定義部401に記憶されている各定義を解析し、画面一覧生成部421、画面仕様生成部422、画面イメージ生成部423、画面項目仕様生成部424、検索機能生成部425、関連文書生成部427、表紙生成部428及びヘッダ・フッタ生成部429を用いて、HTML/CSS/JavaScript(登録商標)444及び画像ファイル445を含む画面仕様ドキュメント443を生成する。
その際、レイアウト構成部426は、出力フィルタ管理部430を介し、ドキュメントエリア設定管理部432にて管理されているエリア出力設定433及びエリアサイズ設定434における設定を、画面一覧生成部421、画面仕様生成部422、画面イメージ生成部423、画面項目仕様生成部424及び検索機能生成部425が生成するドキュメントのレイアウトとして用いる。
更に、レイアウト構成部426は、ドキュメントテーマ管理部435にて管理されている組込デザイン情報436及び/又はユーザ作成デザイン情報437から取得したテーマ(スタイルシート等、ドキュメントのレイアウトや装飾)を画面仕様ドキュメント443に反映する。
また、言語別ドキュメント置換処理部431は、表紙生成部428及びヘッダ・フッタ生成部429へ言語別のファイルを設定する。
図5は、Webアプリケーション及びドキュメント生成のフローチャート並びにドキュメント生成のフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、装置のCPU201が実行する。
プログラム開発装置101は、ディレクトリ構造600(図6)を用いて、リポジトリ定義部401の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造600を用いて、リポジトリ定義部401の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部401の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。
本実施形態では、Webアプリケーションの生成の実行を指示する前に、プログラム開発装置101は、Webアプリケーションの自動生成のための定義の入力を受ける。具体的には、開発するWebアプリケーション(プロジェクト)として、アプリケーション設定でアプリケーションのコードや名前、アプリケーションタイプなどを設定する。
このWebアプリケーション(プロジェクト)に対して、データモデル定義、入出力定義、ビジネスプロセス定義を設定する。これらの定義は、Webアプリケーション自動生成する設定画面でユーザが任意に設定するものとするが、予め生成された定義を読み込む構成であってもよい。
入出力定義は、図14で設定したデータを用いて定義されるものである。
Webアプリケーション及びドキュメント生成のフローチャートについて説明する。
ステップS500において、プログラム開発装置101は、開発者からのアプリケーション生成の実行指示を受け付けると、アプリケーション設定のダイアログを表示する。ここで、画面仕様ドキュメントに関する設定の入力を受け付ける。アプリケーション設定のダイアログの一例を示す図が、図20の2000である。2001で「ドキュメントを生成する」にチェックを設定されると本実施形態における画面仕様ドキュメントの生成がされ、リンクが画面に埋め込まれる。その他の設定として、ドキュメントテーマ(CSS)を設定することや、ドキュメント設定として、管理者向けやエンドユーザ向けの画面仕様ドキュメントであるかの種別を設定することが可能となっている。
すなわち、ステップS500の処理は、生成されるプログラムにおいて、リンク情報を設定するための指定を受け付ける指定受付処理の一例を示すステップである。
ステップS501において、プログラム開発装置101は、リポジトリ定義部401からアプリケーション定義402を取得する。
ステップS502において、プログラム開発装置101は、リポジトリ定義部401からデータモデル定義404を取得する。データモデル定義404は、リポジトリ定義部401として登録されている。データモデル定義404は、データモデル設定画面(不図示)でデータベース上の項目をマッピングして登録されるものである。一般的には、1テーブル1データモデルが作成される。データモデル定義の作成はWebアプリケーションの開発において既知の技術であるため説明を省略する。
ステップS503において、プログラム開発装置101は、リポジトリ定義部401から入出力定義403を取得する。
ここで、図14を用いて、入出力定義403について説明しておく。上述したように入出力定義403の設定自体は、アプリケーションの生成を実行する前に、開発者などにより事前に行われる。まず、図23の入出力レイアウト定義画面2300(画面レイアウト)上で、画面エディタ上にオブジェクト(フィールドやアクションボタン)をドラッグアンドドロップ操作等により配置する。この各オブジェクトに対応する項目の設定を図14で行い入出力定義が生成される。
入出力定義画面1400(図14)は、Webアプリケーションの開発者による入出力定義403の入力設定操作を受け付ける画面である。また、入出力定義画面1400を用いて設定される入出力定義403は、画面仕様ドキュメントの基となる情報である。名前1401は、Webアプリケーションの画面名である。入出力タイプ1402は、入出力定義画面1400にて設定された入出力定義403を用いて、どのようなプログラムを生成するかを決定する項目である。
例えば、Webアプリケーションの画面を表示するプログラムを生成する場合は“IO”、メニューを表示するプログラムを生成する場合は“MENU”、ダイアログを表示するプログラムを生成する場合は“DIALOG”、ファイルを出力するプログラムを生成する場合は“EXPORT”、ファイルを入力するためのプログラムを生成する場合は“IMPORT”、マトリクス画面を表示するプログラムを生成する場合は“MATRIX”、帳票を印刷するプログラムを生成する場合は“PRINT_FILE”、モバイル用の画面を表示するプログラムを生成する場合は“MOBILE”、バッチ用の画面を表示するプログラムを生成する場合は“BATCH”、Webサービス用のプログラムを生成する場合は“WEBSERVICE”を選択する。つまり、入出力タイプ1402に“EXPORT”、“IMPORT”、“PRINT_FILE”、“BATCH”又は“WEBSERVICE”を選択することにより、画面表示を伴わないアプリケーション又はサービスのプログラムを生成することもできる。
入出力項目定義1410(図14)は、画面名が名前1401の画面を介してWebアプリケーションのユーザが入力する入力項目及び生成されたWebアプリケーションの画面名が名前1401の画面に出力する出力項目の定義情報である。入出力項目の項目タイプ1411には、I(入力)、O(出力)、IO(入出力)及びA(アクション)等があり、“I”であれば入力定義、“O”であれば出力定義、“IO”であれば入出力定義を意味する。
(アット)NODOC定義1420(図14)は、入出力定義(図14の1400)及び入出力項目定義(図14の1410)に対して設定でき、「(アット)NODOC」という指定をすることにより、その画面に対する画面仕様ドキュメント443として出力しないようにすることができる。なお以下では「(アット)NODOC」は「NODOC」として説明する。これにより、Webアプリケーションのユーザにとっては不要な画面・画面項目は、個別に画面仕様ドキュメント443に出力しないようにすることができるため、ユーザにとってわかりやすいドキュメントが生成することができる。
図14の1410に「NODOC」を指定すると、その指定した入出力定義に対応する画面仕様ドキュメントが生成されないため、画面一覧表示部1502に表示されない。「NODOC」が指定された場合と指定されない場合の画面一覧表示部1502を図22に示す。2201が「NODOC」が指定されていない場合の画面一覧表示部を2202に示している。ユーザマスタ詳細に「NODOC」を指定している場合には、2210の画面となる。画面仕様ドキュメントが生成されないため、2201の画面一覧表示部では、2203が表示されない。
ステップS504において、プログラム開発装置101は、リポジトリ定義部401からビジネスプロセス定義405を取得する。ビジネスプロセス定義405は、リポジトリ定義部401として登録されている。ビジネスプロセス定義405についても事前に設定されているものである。また、ビジネスプロセス定義405は、受け付けたデータの処理の流れを定義したものである。例えば、入力したデータの重複をチェックして、登録するといったロジックを定義したものである。ビジネスプロセル定義についても、Webアプリケーションの開発において既知の技術であるため説明を省略する。
ステップS505において、プログラム開発装置101は、リポジトリ定義部401からデータベース定義406を取得する。データベース定義406も予め生成されているものとする。
ステップS506において、図20のドキュメントを生成する設定2001がされているか否かを判定する。設定がされている場合には、Webアプリケーションから画面仕様ドキュメントを呼び出せるようにするため、ステップS507へ処理を移す。設定がされていない場合には、画面仕様ドキュメント自体を生成しない設定であるため、ステップS511へ処理を移す。
ステップS507では、ステップS509で生成する画面仕様ドキュメントをWebアプリケーション(Webアプリケーションの画面)からドキュメントを呼び出すためのリンクURL(リンク情報)を、ステップS503で取得した入出力定義のコードを用いて作成する。すなわち、生成されるドキュメントのリンク情報を生成するリンク情報生成処理の一例を示すステップである。また、リンク情報を設定するための指定がされた場合に、リンク情報を生成するものである。
ステップS509の画面仕様ドキュメント生成より前にリンク情報を生成できるのは、画面仕様ドキュメントにおいても同じ入出力定義を用いて生成しているため、どのようなリンク情報を生成すればよいか事前にわかるためである。なお、リンク情報は、ステップS509の後に作成してもよい。その場合、ステップS508も同様にステップS509の後に処理することが望ましい。
リンク情報の一例を示す図が図21である。2100は、リンク情報を記述したWebアプリケーションの画面の例を示す。また、2100のHTMLで記述したリンク情報の例が2101である。2101は、ユーザマスタ詳細の画面仕様ドキュメントを表示するためのリンク情報を示す記述であり、この記述により、Webアプリケーションの画面から、図15の画面仕様ドキュメントを表示させることができる。また、2102はユーザマスタ詳細のコードを示しており、2102のコードをdispatchar.jspに受け渡すことで、対象の画面仕様ドキュメントを取得できる構成となっている。
ステップS508において、プログラム開発装置101は、Webアプリケーション生成部415を用いて、Webアプリケーション438に用いるプログラムを生成する。プログラム開発装置101のWebアプリケーション生成部415が、取得した定義を用いて、Webアプリケーションのソースコードを生成する(例えば、Webアプリケーション438)。具体的には、「入出力定義」「データモデル定義」「ビジネスプロセス定義」に基づき生成する。なお、生成されたソースコードにはプログラミング言語が記載されたファイルHTML、JSP、JavaScript(登録商標)等のWebアプリケーションの提供に利用されるファイルも含まれる。この時ステップS507で生成したリンク情報を、各入出力定義に対応する画面のHTMLに埋め込む。このリンク情報は、各画面に対応する画面仕様ドキュメントが表示される。すなわち、ドキュメントを表示させるべく、プログラムで用いられる画面にリンク情報を設定する設定処理の一例を示すステップである。また、プログラムを生成する際に、対応する画面にリンク情報を設定する設定処理である。また、リンク情報を生成し設定した、プログラムを生成するプログラム生成処理の一例を示すステップである。
ここで、ステップS508のより具体的な処理について説明する。入出力定義画面1400の入出力タイプの設定で、MOBILEが設定されている場合には、MOBILEとして設定した画面にリンク情報を埋め込まないようにする。これは、PCでのブラウザでの表示とMOBILEでの表示とでは画面構成が異なるからである。MOBILEでは、閲覧性を重視するため、画面はシンプルにし、各種操作は別途設けているメニューから操作を行わせるためである。
このようにMOBILEとしての画面を設定して入出力定義を定義している場合には、リンク情報を画面に埋め込む制御を行わないようにする。
また、入出力タイプフィルタ1710で画面仕様ドキュメントを出力対象として設定した場合であっても、対応する画面(図23の2301)を定義していない入出力タイプについてはリンク情報を埋め込む制御を行わないようにする。なお、リンク情報が不要な場合には、リンク情報について作成しないようにすることは言うまでもない。
すなわち、入出力定義のタイプに従って画面にリンク情報を設定する処理である。
これにより、開発者がタイプに応じてリンク情報を画面情報に埋め込む判断をせずに自動でWebアプリケーションプログラムを生成することができ、また、各画面に対応したドキュメントを画面ごとに関連付けできるため、誤った画面のドキュメントをリンクし間違えるというミスを建言することができる。
一般的に、開発者がドキュメントを手作業で生成して、ドキュメントを対応する画面にリンク付けする必要があったため、手作業によりミスを減らすことは困難であったが、本実施形態によればミスをなくし、Webアプリケーションの開発効率を高めることができる。
ステップS509において、プログラム開発装置101は、画面仕様ドキュメント生成部419を用いて、画面仕様ドキュメント443を生成する。ステップS507の詳細処理については、図7を用いて説明する。ステップS509の処理は、入出力定義に従って、画面に関する仕様を含むドキュメントを生成するドキュメント生成処理の一例を示すステップである。また、後述の通り、画面仕様ドキュメントは入出力定義ごと、すなわちWebアプリケーションで用いる画面ごとに生成されるものである。本実施形態では画面ごとに生成されるが、「NODOC」指定があるものは生成されないようになっている。
リポジトリ定義解析部420は、読み込んだ定義を解析したうえでメモリに保管しておき、各生成部から適宜参照される。
レイアウト構成部426は、生成部の生成したドキュメントの各構成要素をレイアウトする。
ステップS510において、プログラム開発装置101は、ステップS506にて生成したプログラムをアプリケーションサーバ105に配置(デプロイ)し、ステップS506にて生成した画面仕様ドキュメント443をWebサーバ106に配置する。これにより、アプリケーションサーバ105上でWebアプリケーションが動作し、Webサーバ106から画面仕様ドキュメント443を配信することができるようになる。
ステップS511において、プログラム開発装置101は、Webアプリケーション生成部415を用いて、Webアプリケーション438に用いるプログラムを生成する。プログラムの生成方法は、ステップS508と同様であるが、画面仕様ドキュメントが生成されないため、リンク情報が付与されない画面が生成される。すなわち、リンク情報を設定するための指定がされていない場合に、リンク情報を生成することなく、プログラムを生成するプログラム生成処理の一例を示すステップである。
図15は、生成された画面仕様ドキュメント1500の一例を示す図である。
1501は、検索キーワード受付部である。生成された画面仕様ドキュメント1500から、入力を受け付けた文字列を含む画面仕様ドキュメント1500を検索して表示する。
1502は、画面一覧表示部であり、入出力定義403の一覧を表示する。表示された画面名がクリックされると、クリックされた画面の入出力定義情報を右ペインに表示する。
1503は、画面仕様表示部であり、入出力定義403の属性及びその設定値を表示する。
1504は、画面イメージ表示部であり、画面HTMLデータ408を用いて、入出力定義403の画面イメージを表示する。
1505は、画面項目仕様表示部であり、入出力定義403の入出力項目の属性及びその設定値を一覧表示する。
1506は、関連文書表示部であり、当該入出力定義403に関連する文書へのリンクを表示する。
1507は、ヘッダ表示部であり、全ページの画面最上部に表示する。
1508は、フッタ表示部であり、全ページの画面最下部に表示する。
以上で、図15の説明を終了する。
図16は、生成された画面仕様ドキュメントの表紙の一例を示す図である。
1601は、表紙表示部である。画面仕様ドキュメント1500の表示の指示を受け付けた場合、最初に表紙表示部1601を表示する。
以上で、図5のWebアプリケーション及びドキュメント生成のフローチャートの説明を終了する。
なお、ステップS501~S508により、Webアプリケーションに用いるプログラム及び画面仕様ドキュメント1500を続けて生成することができるが、画面仕様ドキュメント1500のみを生成することもできる。その場合は、ステップS501、S502、S503、S507を行えばよい。
以上で、図5の説明を終了する。
図7は、画面仕様ドキュメント生成詳細のフローチャートの一例を示す図である。
ステップS701において、プログラム開発装置101は、出力フィルタ管理部430により管理されているドキュメントフィルタ定義409を取得する。
ドキュメントフィルタ定義409には、図17~図19のようなフィルタがあり、これらの定義の設定値に従って。画面仕様ドキュメント443として出力する情報をフィルタリング(選別)する。図17~図19を用いて、各フィルタについて説明する。
入出力タイプフィルタ1710(図17)は、入出力定義403を入出力タイプの値に従ってフィルタリングする。入出力タイプは1401に対応する。
入出力属性フィルタ1720(図17)は、入出力定義403を入出力(定義)の属性に従ってフィルタリングする。
入出力項目タイプフィルタ1810(図18)は、入出力定義403を入出力項目タイプの値に従ってフィルタリングする。
入出力項目属性フィルタ1820(図18)は、入出力定義403を入出力項目の属性の値に従ってフィルタリングする。
エリアフィルタ1900の(図19)は、画面仕様ドキュメント443として出力する情報を、各表示部(図15の1503~1506)の出力可否の値(図19の1911~1915)に従ってフィルタリングし、各表示部の設定されたサイズ(図19の1921~1925)に従って表示するサイズを決定する。
出力フィルタ管理部430は、取得したドキュメントフィルタ定義409(特に1700~1801)の設定値をRAM202に記憶させて管理する。なお、これらの設定値は、各生成部(421~425)により適宜参照される。
ドキュメントエリア設定管理部432は、取得したドキュメントフィルタ定義409(特に1900)の設定値を、エリア出力設定433(特に1911~1915)及びエリアサイズ設定434(特に1921~1925)として、RAM202に記憶させて管理する。なお、これらの設定値は、各生成部(421~425)により適宜参照される。
すなわちず17~図19の設定は、出力フィルタを設定するフィルタ設定処理の一例を示すものである。
図17~図19の説明を終了し、図7の説明に戻る。
ステップS702において、プログラム開発装置101は、ドキュメントテーマ管理部435を用いて、画面仕様ドキュメント443のデザインに用いると指定されたテーマが組込テーマであるか否かを判定し、組込テーマの場合はステップS703に進み、組込テーマでない場合はステップS704に進む。「組込テーマ」とは、Webアプリケーション開発ツールに最初から組み込まれているテーマであり、一方、開発者が新たに作成したテーマは「ユーザ作成テーマ」と呼ぶ。
ステップS703において、プログラム開発装置101は、ドキュメントテーマ管理部435を用いて、組込デザイン情報436から指定されたテーマを取得する。
ステップS704において、プログラム開発装置101は、ドキュメントテーマ管理部435を用いて、ユーザ作成デザイン情報437から指定されたテーマを取得する。
レイアウト構成部426は、画面仕様ドキュメント443のデザインに取得したテーマを反映する。
ステップS705において、プログラム開発装置101は、言語別ドキュメント置換処理部431を用いて、ドキュメントリソースファイル412から、指定された言語のドキュメントリソースファイルを取得する。ドキュメントリソースファイル412は、言語ごとにファイルが分かれており、ファイル名は「DocumentResources_{言語ID}.conf」のようになっている。
ステップS706において、プログラム開発装置101は、指定された言語の数だけ、ステップS707からステップS716までの処理を繰り返す。
ステップS707において、プログラム開発装置101は、リポジトリ定義解析部420を用いて、指定された言語のアプリケーションリソースファイル411及びドキュメントリソースファイル412の解析を行う。
ステップS708において、プログラム開発装置101は、言語別ドキュメント置換処理部431を用いて、ステップS707にて解析したリソース(文言)を指定言語のリソース(文言)に置き換える。
ステップS709において、プログラム開発装置101は、所定のディレクトリにヘッダ・フッタファイル413の有無を判定する。有る場合はステップS710に進み、無い場合はステップS711に進む。
ステップS710において、プログラム開発装置101は、ヘッダ・フッタ生成部429及び言語別ドキュメント置換処理部431を用いて、指定言語に対応するヘッダ表示部1507およびフッタ表示部1508を生成する。ここでいうヘッダ/フッタとは、例えば、JSPで記述できるものである。ヘッダ部はヘッダ表示部1507に加えて例えば企業ロゴなどを表示するような部分である。また、フッタ部はフッタ表示部1508に加えて例えば、コピーライトを表示するような部分である。
ステップS711において、プログラム開発装置101は、検索機能生成部425を用いて、検索情報を生成する。この処理については、図10にて詳細を説明する。
ステップS712において、プログラム開発装置101は、画面一覧生成部421を用いて、画面一覧情報を生成する。この処理については、図11にて詳細を説明する。
ステップS713において、プログラム開発装置101は、入出力定義の数だけ、ステップS714の処理を繰り返す。
ステップS714において、プログラム開発装置101は、入出力定義毎にドキュメント出力処理を行う。この処理については、図8にて詳細を説明する。ステップS714は、ドキュメント生成処理の一例を示すステップであり、フィルタ設定処理によって設定された出力フィルタと入出力定義に従って、フィルタされた画面に関する仕様を含むドキュメントを生成するステップである。
なお、このフィルタされたドキュメントがリンク情報によって表示されるため、前述したステップS508の処理は、ドキュメント生成処理により生成されたフィルタされた画面に関する仕様を含むドキュメントを表示させるべく、対応する画面に当該ドキュメントのリンク情報を設定するステップと言い換えることも可能である。
ステップS715において、プログラム開発装置101は、所定のディレクトリに表紙ファイル410の有無を判定する。有る場合はステップS716に進み、無い場合はステップS717に進む。
ステップS716において、プログラム開発装置101は、表紙生成部428及び言語別ドキュメント置換処理部431を用いて、指定言語に対応する画面仕様ドキュメント表紙1600を生成する。
以上で、図7の説明を終了する。
図8は、ドキュメント出力のフローチャートの一例を示す図である。
ステップS801において、プログラム開発装置101は、当該入出力定義403のNODOC定義1420において「NODOC」(=出力しない)の指定があるか否かを判定する。指定が無い(=出力する)場合はステップS802に進み、指定が有る(=出力しない)場合は図8のフローチャートを終了する。つまり、「NODOC」の指定がある入出力定義403については、画面仕様ドキュメント443を生成しない。
ステップS802において、プログラム開発装置101は、出力フィルタ管理部430により管理されている入出力タイプフィルタ1710において、当該入出力定義403が出力対象として設定されているか否かを判定する。出力対象として設定されている場合はステップS803に進み、出力対象として設定されていない場合は図8のフローチャートを終了する。つまり、出力対象として設定されていない入出力タイプ1402の入出力定義403については、画面仕様ドキュメント443を生成しない。
ステップS803において、プログラム開発装置101は、ステップS712にて生成した画面一覧情報を用いて、画面仕様ドキュメント443に画面一覧表示部1502を出力する。
ステップS804において、プログラム開発装置101は、画面仕様ドキュメント443に画面仕様表示部1503を出力するか否かを判定する。具体的には、ドキュメントエリア設定管理部432により管理されているエリア出力設定433の画面仕様出力設定1911の設定値「出力する」「出力しない」によって判定する。出力する場合はステップS805に進み、出力しない場合はステップS808に進む。
ステップS805において、プログラム開発装置101は、画面仕様表示部1503の表示サイズが設定されているか否かを判定する。具体的には、ドキュメントエリア設定管理部432により管理されているエリアサイズ設定434の画面仕様サイズ設定1921の設定値の有無によって判定する。設定されている場合はステップS806に進み、設定されていない場合はステップS807に進む。
ステップS806において、プログラム開発装置101は、ステップS805の判定に用いた表示サイズを画面仕様表示部1503の表示サイズとして指定する。
ステップS807において、プログラム開発装置101は、画面仕様生成部422を用いて、画面仕様ドキュメント443に画面仕様表示部1503を生成・出力する。この処理については、図12にて詳細を説明する。
ステップS808において、プログラム開発装置101は、画面仕様ドキュメント443に画面イメージ表示部1504を出力するか否かを判定する。具体的には、ドキュメントエリア設定管理部432により管理されているエリア出力設定433の画面HTML出力設定1912の設定値「出力する」「出力しない」によって判定する。出力する場合はステップS809に進み、出力しない場合はステップS812に進む。
ステップS809において、プログラム開発装置101は、画面イメージ表示部1504の表示サイズが設定されているか否かを判定する。具体的には、ドキュメントエリア設定管理部432により管理されているエリアサイズ設定434の画面HTML出力サイズ設定1922の設定値の有無によって判定する。設定されている場合はステップS810に進み、設定されていない場合はステップS811に進む。
ステップS810において、プログラム開発装置101は、ステップS809の判定に用いた表示サイズを画面イメージ表示部1504の表示サイズとして指定する。
ステップS811において、プログラム開発装置101は、画面イメージ生成部423を用いて、画面仕様ドキュメント443に画面イメージ表示部1504を生成・出力する。画面イメージ表示部1504には、画面HTMLデータ408を用いることで、画面イメージを表示する。なお、本実施形態においては、画面HTMLデータ408のように、HTMLを用いて、画面仕様ドキュメント443に含まれる画面イメージを描画するとしたが、これに限定するものではなく、JSP等他の言語を用いて画面イメージを描画してもよいし、レイアウトエディタを用いて生成された画面レイアウトを画像ファイルとして記憶し、その画像ファイルを用いる等、他の描画方法を用いてもよい。
ステップS812において、プログラム開発装置101は、画面仕様ドキュメント443に画面項目仕様表示部1505を出力するか否かを判定する。具体的には、ドキュメントエリア設定管理部432により管理されているエリア出力設定433の画面項目仕様出力設定1913の設定値「出力する」「出力しない」によって判定する。出力する場合はステップS813に進み、出力しない場合はステップS816に進む。
ステップS813において、プログラム開発装置101は、画面項目仕様表示部1505の表示サイズが設定されているか否かを判定する。具体的には、ドキュメントエリア設定管理部432により管理されているエリアサイズ設定434の画面項目仕様サイズ設定1923の設定値の有無によって判定する。設定されている場合はステップS814に進み、設定されていない場合はステップS815に進む。
ステップS814において、プログラム開発装置101は、ステップS813の判定に用いた表示サイズを画面項目仕様表示部1505の表示サイズとして指定する。
ステップS815において、プログラム開発装置101は、画面項目仕様生成部424を用いて、画面仕様ドキュメント443に画面項目仕様表示部1505を生成・出力する。この処理については、図13にて詳細を説明する。
ステップS816において、プログラム開発装置101は、関連文書・ヘッダ・フッタ等出力処理を行う。この処理については、図9にて詳細を説明する。
以上で、図8の説明を終了する。
図9は、関連文書・ヘッダ・フッタ等出力処理のフローチャートの一例を示す図である。
ステップS901において、プログラム開発装置101は、所定のディレクトリに関連文書414の有無を判定する。有る場合はステップS902に進み、無い場合はステップS906に進む。所定のディレクトリとは、画面仕様ドキュメントの生成ごとに用意されている格納場所で、開発者が画面仕様ドキュメントに添付したい文書を格納する。後述するステップS905で、この格納されている文書を取得して、リンクとして画面仕様ドキュメントに埋め込むことが可能となる。
ステップS902において、プログラム開発装置101は、画面仕様ドキュメント443に関連文書表示部1506を出力するか否かを判定する。具体的には、ドキュメントエリア設定管理部432により管理されているエリア出力設定433の関連文書出力設定1915の設定値「出力する」「出力しない」によって判定する。出力する場合はステップS903に進み、出力しない場合はステップS905に進む。
ステップS903において、プログラム開発装置101は、関連文書表示部1506の表示サイズが設定されているか否かを判定する。具体的には、ドキュメントエリア設定管理部432により管理されているエリアサイズ設定434の関連文書サイズ設定1925の設定値の有無によって判定する。設定されている場合はステップS904に進み、設定されていない場合はステップS905に進む。
ステップS904において、プログラム開発装置101は、ステップS903の判定に用いた表示サイズを関連文書表示部1506の表示サイズとして指定する。
ステップS905において、プログラム開発装置101は、関連文書生成部427を用いて、画面仕様ドキュメント443に関連文書表示部1506を生成・出力する。
ステップS906において、プログラム開発装置101は、ステップS710にて生成されたヘッダ・フッタの有無を判定する。有る場合はステップS907に進み、無い場合はステップS908に進む。
ステップS907において、プログラム開発装置101は、ヘッダ・フッタ生成部429を用いて、画面仕様ドキュメント443にヘッダ表示部1507及び/又はフッタ表示部1508を出力する。
ステップS908において、プログラム開発装置101は、検索機能生成部425を用いて、画面仕様ドキュメント443に検索キーワード受付部1501を出力する。
以上で、図9の説明を終了する。
図10は、検索情報生成のフローチャートの一例を示す図である。
ステップS1001において、プログラム開発装置101は、入出力定義の数だけ、ステップS1002~ステップS1004の処理を繰り返す。
ステップS1002において、プログラム開発装置101は、当該入出力定義403のNODOC定義1420において「NODOC」(=出力しない)の指定があるか否かを判定する。指定が無い(=出力する)場合はステップS1003に進み、指定が有る(=出力しない)場合はステップS1005に進む。つまり、「NODOC」の指定がある入出力定義403については、検索情報を生成しない。
ステップS1003において、プログラム開発装置101は、出力フィルタ管理部430により管理されている入出力タイプフィルタ1710において、当該入出力定義403が出力対象として設定されているか否かを判定する。出力対象として設定されている場合はステップS1004に進み、出力対象として設定されていない場合はステップS1005に進む。つまり、出力対象として設定されていない入出力タイプ1402の入出力定義403については、検索情報を生成しない。
ステップS1004において、プログラム開発装置101は、検索情報を生成する。具体的には、検索キーワード受付部1501の検索機能によって、当該入出力定義403の設定値が検索できるよう、当該設定値を検索情報として外部メモリ211に記憶する。
以上で、図10の説明を終了する。
図11は、画面一覧情報生成のフローチャートの一例を示す図である。
ステップS1101において、プログラム開発装置101は、入出力定義の数だけ、ステップS1102~ステップS1104の処理を繰り返す。
ステップS1102において、プログラム開発装置101は、当該入出力定義403のNODOC定義1420において「NODOC」(=出力しない)の指定があるか否かを判定する。指定が無い(=出力する)場合はステップS1103に進み、指定が有る(=出力しない)場合はステップS1105に進む。つまり、「NODOC」の指定がある入出力定義403については、画面一覧情報を生成しない。
ステップS1103において、プログラム開発装置101は、出力フィルタ管理部430により管理されている入出力タイプフィルタ1710において、当該入出力定義403が出力対象として設定されているか否かを判定する。出力対象として設定されている場合はステップS1104に進み、出力対象として設定されていない場合はステップS1105に進む。つまり、出力対象として設定されていない入出力タイプ1402の入出力定義403については、画面一覧情報を生成しない。例えば、図17の入出力タイプフィルタ1710では、「IO」「MENU」「DIALOG」「MATRIX」「MOBILE」が出力対象として選択されており、図14の入出力定義画面1400において入出力タイプ1402=「IO」と設定されているため、当該入出力定義403について画面一覧情報が生成され、図15の画面一覧表示部1502に「ユーザマスタ・一覧」というメニューが表示されている。
ステップS1104において、プログラム開発装置101は、画面一覧情報を生成する。具体的には、当該入出力定義403の名前1401を取得し、ステップS803(図8)にて画面一覧表示部1502(図15)を出力するための画面情報(例:HTML)を生成し、外部メモリ211に記憶する。なお、この画面情報には、画面一覧表示部1502として表示しユーザによって指示を受け付けたときに、1503~1506の表示内容を更新させるためのリンク情報を組み込んでおく。
以上で、図11の説明を終了する。
図12は、画面仕様表示部の生成・出力のフローチャートの一例を示す図である。
ステップS1201において、プログラム開発装置101は、当該入出力定義403の入出力(定義)の属性(例:「コード」「名前」「入出力タイプ」「対象データモデル」等)の数だけ、ステップS1202~ステップS1203の処理を繰り返す。
ステップS1202において、プログラム開発装置101は、出力フィルタ管理部430により管理されている入出力属性フィルタ1720において、当該入出力定義403に設定されている入出力(定義)の属性が出力対象として設定されているか否かを判定する。出力対象として設定されている場合はステップS1203に進み、出力対象として設定されていない場合はステップS1204に進む。つまり、出力対象として設定されていない入出力属性については、画面仕様情報を生成しない。例えば、図17の入出力属性フィルタ1720では、「コード」「名前」「仕様」が出力対象として選択されているため、画面仕様表示部1503(図15)には、属性が「コード」「名前」「仕様」である定義について表示されている。
ステップS1203において、プログラム開発装置101は、画面仕様生成部422を用いて、画面仕様情報を生成する。具体的には、当該入出力定義403の属性の値を取得し、ステップS1205にて画面仕様表示部1503(図15)を出力するための画面情報(例;HTMLファイル)を生成し、外部メモリ211に記憶する。
ステップS1205において、プログラム開発装置101は、画面仕様生成部422及びステップS1203にて生成した画面情報を用いて、画面仕様表示部1503を出力する。
以上で、図12の説明を終了する。
図13は、画面項目仕様表示部の生成・出力のフローチャートの一例を示す図である。
ステップS1301において、プログラム開発装置101は、当該入出力定義403に設定されている入出力項目の数だけ、ステップS1302~ステップS1309の処理を繰り返す。
ステップS1302において、プログラム開発装置101は、当該入出力項目のNODOC定義1420において「NODOC」(=出力しない)の指定があるか否かを判定する。指定が無い(=出力する)場合はステップS1303に進み、指定が有る(=出力しない)場合はステップS1310に進む。つまり、「NODOC」の指定がある入出力項目については、画面一覧情報を生成しない。
ステップS1303において、プログラム開発装置101は、当該入出力項目が非表示項目(例:hidden項目など、Webアプリケーション画面自体に非表示の画面項目)か否かを判定する。非表示項目である場合はステップS1304に進み、非表示項目でない(つまり、通常の画面項目)場合はステップS1305に進む。つまり、出力対象として設定されていない入出力属性については、画面仕様情報を生成しない。
ステップS1304において、プログラム開発装置101は、出力フィルタ管理部430により管理されている入出力項目タイプフィルタ1810の非表示項目出力1812において、「出力する」と設定されているか「出力しない」と設定されているかを判定する。「出力する」と設定されている場合はステップS1305に進み、「出力しない」として設定されている場合はステップS1310に進む。つまり、入出力項目のうち非表示項目の仕様は、入出力項目タイプフィルタ1810の非表示項目出力1812において「出力する」として設定されていない限り、画面仕様ドキュメント443には出力しない。
ステップS1305において、プログラム開発装置101は、出力フィルタ管理部430により管理されている入出力項目タイプフィルタ1810の入出力項目タイプフィルタ1811において、出力対象として選択されているか否かを判定する。出力対象として設定されている場合はステップS1306に進み、出力対象として選択されていない場合はステップS1310に進む。つまり、入出力項目定義1410のうち、出力対象として設定されていない項目タイプ1411については、画面項目仕様情報を生成しない。例えば、図18の入出力項目タイプフィルタ1810では、「入力」「入出力」「出力」「アクション」「グループ」が出力対象として選択されているため、画面項目仕様表示部1505(図15)には、入出力項目タイプが「入力」「入出力」「出力」「アクション」「グループ」に該当する入出力項目について表示されている。
ステップS1306において、プログラム開発装置101は、当該入出力項目の属性(例:項目タイプ、項目コード、名前等)の数だけ、ステップS1307~ステップS1308の処理を繰り返す。
ステップS1307において、プログラム開発装置101は、出力フィルタ管理部430により管理されている入出力項目属性フィルタ1820において、出力対象として選択されているか否かを判定する。出力対象として設定されている場合はステップS1308に進み、出力対象として選択されていない場合はステップS1309に進む。つまり、入出力項目定義1410のうち、出力対象として設定されていない入出力項目属性については、画面項目仕様情報を生成しない。例えば、図18の入出力項目属性フィルタ1820では、「項目タイプ」「名前」「必須」「桁数」「仕様」が出力対象として選択されているため、画面項目仕様表示部1505(図15)には、属性が「項目タイプ」「名前」「必須」「桁数」「仕様」である定義について表示されている。
ステップS1308において、プログラム開発装置101は、画面項目仕様生成部424を用いて、当該入出力項目の当該入出力項目属性について、画面項目仕様情報を生成する。具体的には、当該入出力項目の当該入出力項目属性の値を取得し、ステップS1311にて画面項目仕様表示部1505(図15)を出力するための画面情報(例;HTMLファイル)を生成し、外部メモリ211に記憶する。
ステップS1311において、プログラム開発装置101は、画面項目仕様生成部424及びステップS1308にて生成した画面項目仕様情報を用いて、画面項目仕様表示部1505を出力する。
以上で、図13の説明を終了する。
以上、本実施形態によれば、Webアプリケーションのプログラムの生成に用いられる入出力定義にかかるドキュメントを生成し、Webアプリケーションで用いる画面から容易に表示させることができる。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。