JP2005070831A - Program generator, program generating method, program, and recording medium - Google Patents

Program generator, program generating method, program, and recording medium Download PDF

Info

Publication number
JP2005070831A
JP2005070831A JP2003208473A JP2003208473A JP2005070831A JP 2005070831 A JP2005070831 A JP 2005070831A JP 2003208473 A JP2003208473 A JP 2003208473A JP 2003208473 A JP2003208473 A JP 2003208473A JP 2005070831 A JP2005070831 A JP 2005070831A
Authority
JP
Japan
Prior art keywords
program
screen
data
component
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003208473A
Other languages
Japanese (ja)
Other versions
JP4488701B2 (en
Inventor
Hiroyuki Nakagawa
裕之 中川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon IT Solutions Inc
Original Assignee
Canon Software Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Software Inc filed Critical Canon Software Inc
Priority to JP2003208473A priority Critical patent/JP4488701B2/en
Publication of JP2005070831A publication Critical patent/JP2005070831A/en
Application granted granted Critical
Publication of JP4488701B2 publication Critical patent/JP4488701B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To easily define image transition even in a large-scaled system, by only grasping only a relation between a button and a transition-destination screen in two successive screens without requiring all the conditions in a system and all the screen names under the conditions to be grasped, and to easily develop the system to shorten a development period without lowering readability for the whole system. <P>SOLUTION: A code generation part is characteristically structured to generate "a first program for generating and displaying the screen constituted of a plurality of components" and "the second program for controlling the screen transition by an event indicating that the component is indicated", based on definition information (definition of a plurality of data items, definition of arrangement of the respective data items onto a database, definition of the screens by the plurality of components including the component corresponding to the data items, and definition information capable of defining the transition-destination screen when the component for the screen is indicated) defined in an input/output table 109. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、ウェブアプリケーション開発支援システムに係わり、ボタン選択による画面遷移を効率的に開発可能なプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体に関するものである。
【0002】
【従来の技術】
企業の基幹業務などを処理するウェブ(Web)アプリケーションソフトウェアは、その多機能性から、多数の画面をもち、処理に応じて画面遷移しながら業務プログラムが実行されているため、ウェブアプリケーションソフトウェアの画面遷移を効率的に開発する機構が求められている。
【0003】
従来、4GL(Fourth Generation Language)やカード型データベースでは画面とデータベース項目を1対1に対応させ、かつ画面ごとにその状態を制御するためのコードを作りこむ必要があるため、複雑な条件判断を伴う画面遷移や、データベースに保存されない付随的なデータを取り扱うことが困難であった。
【0004】
これに対し、特開平11−282658号公報(特許文献1)に開示された「対話的ソフトウェア構築・駆動装置」では、画面名に関する記述を含む状態遷移定義を記述した状態遷移表から状態遷移テーブル生成クラスを自動生成し、これを状態遷移管理モジュールに入力することで、状態遷移テーブルによる画面の状態遷移を制御し、その状態遷移に基づいて画面の表示を制御する方法が提案されている。
【0005】
これは、状態遷移定義の中に画面名称を記述すること、即ち状態遷移の枠組みの中に画面遷移をうまく取り込むことで、画面の状態管理を容易に実現することができ、開発・保守作業の効率向上に寄与することができた。
【0006】
【特許文献1】特開平11−282658号公報
【0007】
【発明が解決しようとする課題】
しかしながら、大規模システムにおいては、定義すべき状態数は相当数あり、これらの状態とその状態における画面名を全て把握することは非常に困難である。
【0008】
また、これらの全状態とその状態における画面名を把握できたとしても、これらの状態と画面名を全て、上記特許文献1に示されるように状態遷移定義表で管理することは、システム全体の可読性を低下させることになり、保守性も悪く誤りが発生しやすい等の問題点があった。
【0009】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、複数のデータ項目の定義と、前記各データ項目のデータベースへの配置の定義と、前記データ項目に対応する構成要素を含む複数の構成要素による画面の定義と、当該画面の構成要素が指示された場合の遷移先画面を定義可能な定義情報(入出力テーブル)を予めさ作成しておき、該定義情報に基づいて「前記複数の構成要素により構成される画面を生成表示する第1のプログラム」,「前記構成要素が指示されたことを示すイベントにより画面遷移を制御する第2のプログラム」を生成することにより、システムにおける全ての状態とその状態における画面名を全て把握する必要がなく、連続する2画面間において、ボタンと遷移先画面の関係のみを把握しておくだけで、大規模なシステムであっても容易に画面遷移を定義することができ、システム全体の可読性を低下させることなく、システム開発を容易に行うことができ、開発期間を短縮することができるプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体を提供することである。
【0010】
【課題を解決するための手段】
本発明の第1の発明は、ウェブアプリケーションプログラムを生成するプログラム生成装置において、複数の構成要素による画面の定義と、当該画面の構成要素に対して当該構成要素が指示された場合の遷移先画面を定義可能な第1の定義情報(6列のキー種別=「T」のデータ項目の11列の遷移画面ID)を記憶する記憶手段(図1に示す外部記憶装置104に記憶される入出力テーブル109(図5,図6))と、前記記憶手段に記憶される第1の定義情報に基づいて「前記複数の構成要素により構成される画面を生成表示する第1のプログラム(図10に示す表示プログラム)」,「前記構成要素が指示されたことを示すイベントにより画面遷移を制御する第2のプログラム(図10に示す画面遷移プログラム)」を生成する生成手段(図1に示すコード生成部107,図10のStep1002(図19,図20),Step1005(図18))とを有することを特徴とする。
【0011】
本発明の第2の発明は、前記記憶手段は、複数のデータ項目の定義と、前記各データ項目のデータベースへの配置の定義とを含む第2の定義情報(5列のIO区分=「F」のデータ項目)をも記憶するものであり、前記画面の構成要素は、前記データ項目に対応する構成要素(5列のIO区分=「DI」又は「DO」のデータ項目)を含むことを特徴とする。
【0012】
本発明の第3の発明は、前記生成手段は、「前記構成要素が指示されたことを示すイベントにより、所定の情報を前記遷移先画面へ受け渡す第3のプログラム(図10に示すセッション変数操作プログラム又はJava(登録商標)Script)」を生成する(図1に示すコード生成部107,図10のStep1005(図18のステップS506,S507)、又は、図10のStep1002(図20のステップS606,S607)ことを特徴とする。
【0013】
本発明の第4の発明は、前記記憶手段は、当該画面の構成要素に対して当該構成要素が指示された場合に遷移先画面に渡したいデータ項目を対応付ける第3の定義情報(6列のキー種別=「T」のデータ項目の7列の加工機能に示す項番、又は、6列のキー種別=「T」のデータ項目自身(IO区分=「DO」))をも記憶するものであり、前記所定の情報は、前記第3の定義情報により前記構成要素に対応付けられたデータ項目に対応する情報であることを特徴とする。
【0014】
本発明の第5の発明は、前記第3のプログラム(図10に示すセッション変数操作プログラム)は、前記所定の情報をセッションオブジェクトに格納することにより前記所定の情報を前記遷移先画面へ受け渡しするプログラムであることを特徴とする。
【0015】
本発明の第6の発明は、前記第3のプログラム(図10に示すJava(登録商標)Script)は、前記所定の情報をセッションオブジェクトを用いることなく、前記所定の情報を前記遷移先画面へ受け渡しするプログラムであることを特徴とする。
【0016】
本発明の第7の発明は、前記第3のプログラム(図10に示すJava(登録商標)Script)は、前記所定の情報をパラメータに指定して前記遷移先画面を呼び出すことにより前記所定の情報を前記遷移先画面へ受け渡しするログラムであることを特徴とする。
【0017】
本発明の第8の発明は、前記第3の定義情報により前記構成要素に対応付けられたデータ項目が前記構成要素自身であった場合(6列のキー種別=「T」のデータ項目のIO区分=「DO」の場合)、前記第3のプログラムは、セッションオブジェクトを利用することなく、前記構成要素に対応する情報をパラメータに指定して前記遷移先画面を呼び出すことにより前記構成要素(5列のIO区分=「DO」且つ6列のキー種別=「T」のデータ項目)に対応する情報を前記遷移先画面へ受け渡しするプログラムとして生成されることを特徴とする。
【0018】
本発明の第9の発明は、前記第3のプログラムは、前記第1のプログラムにより生成表示される画面から呼び出されるプログラム(図10の表示プログラム(JSP)により生成表示される画面から呼び出されるJava(登録商標)Script)であることを特徴とする。
【0019】
本発明の第10の発明は、前記生成手段は、前記記憶手段に記憶される第2の定義情報に基づいて、「前記第2の定義情報により定義されたデータ項目に対応するデータをデータベースへ格納する処理,該データベースから前記データ項目に対応するデータを取得する処理を含む第4のプログラム」を生成する(図1に示すコード生成部107,図10のStep1003(図17))ことを特徴とする。
【0020】
本発明の第11の発明は、ウェブアプリケーションプログラムを生成するプログラム生成装置におけるプログラム生成方法において、複数の構成要素による画面の定義と当該画面の構成要素に対して当該構成要素が指示された場合の遷移先画面を定義可能な第1の定義情報に基づいて、「前記複数の構成要素により構成される画面を生成表示する第1のプログラム」,「前記構成要素が指示されたことを示すイベントにより画面遷移を制御する第2のプログラム」を生成する生成工程(図10のStep1002(図19,図20),Step1005(図18))を有することを特徴とする。
【0021】
本発明の第12の発明は、第11の発明に記載されたプログラム生成方法を実行するためのプログラムであることを特徴とする。
【0022】
本発明の第13の発明は、第11の発明に記載されたプログラム生成方法を実行するためのプログラムを記録媒体にコンピュータが読み取り可能に記憶させたことを特徴とする。
【0023】
【発明の実施の形態】
以下、図を参照して本発明のアプリケーション開発システムについて説明する。
【0024】
図1は、本発明の一実施形態を示すプログラム生成装置の構成を示すブロック図である。
【0025】
図において、101は入力装置で、キーボードやマウス等のポインティングデバイス等に相当し、業務仕様情報(テーブル,データ項目のデータベースへの配置とデータ項目間の関係、即ちあるデータがどのような条件のもとにどのようなデータから求められるかを示す情報等)の入力等を行うことが可能である。
【0026】
102は表示装置で、CRT,LCD等で構成され、業務仕様情報の入力画面や、該入力画面から入力された業務仕様情報、生成されたプログラムコード等を表示可能である。104はハードディスク等の外部記憶装置で、入力された業務仕様情報を記憶するための入出力テーブル109や生成されたプログラムコード(JSPコード112,サーブレット(Servlet)コード113,Beanコード114)等を記憶するものである。
【0027】
103は処理装置で、CPU,ROM,RAM等から構成され、CPUがROM,外部記憶装置104又はその他の記録媒体に格納されるプログラムをRAM上にロードして実行することにより実現されるものであり、画面制御部105,仕様解析部106,コード生成部107を備える。
【0028】
画面制御部105は、入力装置101から業務仕様情報を入力するために表示装置102の画面(不図示)を制御する業務仕様記述部116を備える。
【0029】
仕様解析部106は、入力装置101から入力された又は外部記憶装置104から読み出された業務仕様情報に対して字句解析や文法解析を行う。コード生成部107は、仕様解析部106により仕様解析された業務仕様情報に基づいてプログラムコード(JSPコード112,サーブレット(Servlet)コード113,Beanコード114)を生成し、外部記憶装置104に記憶させる。また、コード生成部107は、外部記憶装置104から読み出された業務仕様情報(入出力テーブル109)に基づいて図示しないデータベース(DB)システムに対してデータベースの作成(CREATE)及びテーブルの作成(CREATE TABLE)等を行うものとする。
【0030】
108は全体制御部で、画面制御部105,仕様解析部106,コード生成部107等の各部の制御を行う。
【0031】
図2は、図1に示したコード生成部107によって生成したサーブレット、JSP、およびBeanを利用したウェブアプリケーションシステムの全体構成の一例を示す図である。
【0032】
コード生成部107によって生成されたサーブレット、JSP、およびBeanは、それぞれ実行可能な状態で、サーバ304側のアプリケーションサーバ306上に配置される。
【0033】
このWebアプリケーションシステムは、クライアント301からウェブブラウザ302によって利用される。ウェブブラウザ302からJSP309にアクセスすることにより、HTMLページを生成し、クライアント301側に返送する。そして、ウェブブラウザ302上には、JSP309から送信されるHTMLページ303が表示される。
【0034】
また、Webブラウザ302からのリクエストは、HTTP経由でサーバ304側に送信される。サーバ304にはHTTPサーバ305とアプリケーションサーバ306があり、アプリケーションサーバ306にはサーブレットやJSPの実行環境が含まれている。
【0035】
サーバ304側にリクエストが送信されると、リクエストに応じて該当するサーブレット307が起動される。サーブレット307は、対応するBean308に処理を要求する。さらに、Bean308はDBアクセスオブジェクト310を利用してデータベース311にアクセスし、業務に関する処理やデータ加工などを行い、その処理結果を保持する。DBアクセスオブジェクト310は、業務を分析、設計した結果、作成されるクラスや、再利用可能な既存のクラスである。
【0036】
次に、サーブレット307からJSP309にBean308を渡し、JSP309を呼び出す。JSP309は、Bean308で保持する処理結果を参照して、HTMLページを生成し、クライアント301側に返送する。なお、JSP309から直接Bean308を実行させ、該Beanの処理を参照して、HTMLページを生成し、クライアント301側に返送するように構成してもよい。クライアント301側に返送されたHTMLページ303は、Webブラウザ302上に表示される。
【0037】
サーブレット307は、Webブラウザ302からのリクエストの受け付け、Bean308への処理要求やJSP309の呼び出しという、それぞれの間をつなぎ、制御する役割を持つ。JSP309はHTMLページを出力するための表示に関することを受け持ち、Bean308はデータベース311へのアクセス等の業務に関する処理を受け持つ。Bean308やJSP309を利用せず、サーブレット307のみでWebブラウザ302からのリクエストを処理することは可能であるが、Bean308やJSP309を利用することでそれぞれの役割を明確に分離することで、機能分担を簡潔に把握することができる。
【0038】
図3は、図1に示したコード生成部107によって生成したウェブアプリケーションシステムのアプリケーションサーバを構成するWebサーバのシステム構成を示す図である。
【0039】
Webサーバ400は、ネットワーク404を介して送信される複数のクライアントPC405上で動作するブラウザ等からのリクエストを処理するためのJava(登録商標)サーブレットエンジン(サーブレットコンテナ)401と、Java(登録商標)サーブレットエンジン401を介して与えられるクライアントブラウザからのリクエストを処理するためのメインプログラム(サーブレット)402と、メインプログラム402が各クライアントにセッションを維持するために用意するセッション変数を格納するセッションオブジェクト403で成り立っている。
【0040】
サーブレットのセッション管理機能は、複数のウェブページ間(複数のHTTPプロトコル間)の連続性を維持するメカニズム(セッションメカニズム)として、それぞれのセッションごとに専用の記憶領域を提供しており、セッションが続いている限りデータを保持できるようになっている。このような記憶領域のことをセッションオブジェクトと呼び、上記セッションオブジェクト403はこれに相当する。
【0041】
図4は、本発明のプログラム生成装置における第1の制御処理手順の一例を示すフローチャートであり、図1に示した処理装置103の全体制御部108の動作に対応する。なお、S101〜S106は各ステップを示す。
【0042】
図1に示した処理装置103は、コード生成する業務仕様(入出力テーブル)の入力を行う入力モードと、入力された業務仕様(入出力テーブル)からプログラムコードを生成する生成モードとを有する。
【0043】
まず、全体制御部108が起動されると、ステップS101において、入力装置101からオペレータの指示により選択されたモードが生成モードか入力モードかを判定し、入力モードが選択されたと判定した場合には、ステップS102に進み、全体制御部108は、画面制御部105を起動する。
【0044】
起動された画面制御部105は、ステップS103において、業務仕様記述部116により業務仕様入力部を起動して、図示しない入力画面を表示させ、生成するウェブアプリケーションのアプリケーション名,オペレータからの業務仕様の一形態である入出力テーブル(詳細は後述する図5,図6に示す)への項目入力を受け付け、該入出力テーブル(図5,図6)を外部記憶装置104に格納し、処理を終了する。
【0045】
一方、ステップS101において、入力装置101からオペレータの指示により選択されたモードが生成モードであると判定した場合には、ステップS104に進み、全体制御部108は、オペレータから指示されたアプリケーション名に基づいて、外部記憶装置104に格納された入出力テーブル(業務仕様情報;詳細は後述する図5,図6に示す)を読み出すとともに、仕様解析部106を起動させて、読み出した入出力テーブルの字句解析,文法解析を行い、その情報をRAM又は外部記憶装置104内のワーク領域に格納しておく。これらワーク領域に格納された情報は、以下のステップS105で起動されるコード生成部107によるコード生成処理時に使用される。なお、このワーク領域には、アプリケーション名も格納されるもとする。
【0046】
次に、ステップS105において、全体制御部108は、コード生成部107を起動させて、仕様解析部106で字句解析,文法解析が行われた入出力テーブルに基づいて図示しないデータベースシステムに対するテーブルの登録及びコード生成を行う。
【0047】
そして、ステップS106において、全体制御部108は、生成されたコードを、オペレータの指示により表示装置102に表示したり、ユーザの指示した場所(例えば、外部記憶装置104やネットワークに接続された他の装置の記憶装置)に書き込む出力処理を行う。
【0048】
以下、各処理を具体的に説明する。
【0049】
まず、オペレータによって入力モードが選択された場合について説明する。
【0050】
入力モードの選択により、全体制御部108は業務仕様記述部116を起動する。これにより、表示装置102に図示しない業務仕様入力画面が表示され、オペレータはこの業務仕様入力画面より業務仕様を入力装置101を用いて入力する。
【0051】
以下、図5,図6を参照して、本発明のプログラム生成装置における業務仕様(入出力テーブル)について説明する。
【0052】
図5,図6は、本発明のプログラム生成装置における業務仕様(入出力テーブル)について説明する模式図である。
【0053】
図において、1列は、項番を指定するものである。2列,3列は、データ項目のデータベースの配置とデータ項目間の関係を記述した情報(業務仕様)を表したもので、2列は、入出力のためのデータファイル番号を示したものであり、データファイル番号を構成するフィールドとしてデータ項目枝番(3列)がある。なお、データファイル番号(2列)に「Button」が指定されていた場合、その項目は何らかの処理を伴ったボタンが生成されることを意味する。
【0054】
4列はデータ項目名で、データ項目枝番(3列)に対応するフィールドの名称である。
【0055】
なお、この入出力テーブルは、ファイル項目と表示項目とセッション項目で構成されており、その識別は、5列のIO区分でなされる。その分類を図7に示す。
【0056】
図7に示すように、このIO区分(5列)が「F」の場合には、当該データ項目枝番がファイル項目であることを示す。詳細には、生成されるウェブアプリケーションで用いる複数のデータ項目の定義と前記各データ項目のデータベースへの配置の定義を示す。
【0057】
また、このIO区分(5列)が「S」の場合には、当該データ項目枝番がセッションオブジェクトに登録するデータ(ウェブアプリケーションの複数ページ間で共有したいデータ項目の定義であり、このように定義されたデータ項目を、以下セッション変数と称する)であることを示し、「D*」(「*」は任意の文字列を示す)の場合には、当該データ項目枝番が画面の表示アイテムであることを示す。
【0058】
なお、IO区分=「S」で定義されるセッション変数は、アプリケーション名とクライアントIDの組み合わせにより、そのスコープが決まるため、セッション変数の属性名称は、同一アプリケーションのデータ項目名(ファイル項目または表示項目)の中に存在する必要がある。例えば、入出力テーブルの項番7〜9はセッション変数に割り当てられたデータ項目名であるが、各データ項目名は、同一のアプリケーションのデータ項目(項番1〜3)に存在する。
【0059】
また、画面の表示アイテムであることを示す「D*」には、当該データ項目枝番がテキスト出力用アイテムであることを示す「DO」、テキスト入力用アイテムであることを示す「DI」、ボタンアイテムであることを示す「DB*」等がある。
【0060】
また、画面のボタンアイテムであることを示す「DB*」には、後述する列7の加工機能の指定によりセッション変数に対する様々な処理を指定することができる。
【0061】
さらに、画面のボタンアイテムであることを示す「DB*」には、当該ボタンアイテムが業務処理属性を有しないことを示す「DB」、認証処理属性を有することを示す「DBNinsyo」、データベースへの追加処理属性を有することを示す「DBTsuika」等がある。
【0062】
例えば、項番6に示すように、「DBNinsyo」が指定されて生成されたログインボタンが指示されると、サーブレットは、9列の参照先データファイル番号で示されたデータファイル「Login」内を検索し、参照先データ項目枝番で示された「UsrID」,「PassWd」の双方を用いて認証処理を行う。そして、認証結果を示すメッセージアラート(「認証が成功しました」/「ユーザIDが登録されていません」/「パスワードが違います」等)を生成し、認証結果がOKの場合にのみ次の処理に進むようにする。
【0063】
また、項番30に示すように、「DBTsuika」が指定されて生成されたログインボタンが指示されると、サーブレットは、ウェブブラウザから取得した情報に基づいて、9列の参照先データファイル番号で示されたデータファイル「Ordr」を追加更新する追加処理を行う。そして、追加処理結果がOKの場合にのみ次の処理に進み、追加処理結果がNGの場合にはメッセージアラートを生成するようにする。なお、これらのメッセージを、メッセージテーブル等により定義可能に構成してもよい。
【0064】
6列は、当該データ項目の検索キーの種別を示しており、その分類を図8に示す。
【0065】
図8に示すように、このキー種別(6列)が「K」の場合には、当該データ項目枝番が主キー(プライマリキー)であることを示す。
【0066】
また、このキー種別(6列)が「T」の場合には、当該データ項目枝番に対応する画面の表示アイテムが指示された場合に画面遷移があることを示す。これにより、画面遷移を生起させるボタンの定義と、定義されたボタンが押下されたときの遷移画面(アプリケーションプログラム)名称を、業務仕様の枠組みの中で定義できる。
【0067】
7列は、当該データ項目に対する加工機能の種別を表しており、その分類を図9に示す。
【0068】
図9に示すように、加工機能(7列)が「S」の場合には、セッション変数を操作することを示しており、そのセッション変数の操作内容は8列に記述される。
【0069】
例えば、項番6の場合、左辺の括弧の内容は、値がセットされるセッション変数の組を表し、右辺の括弧は、値をセットする入出力項番の組を示している。この定義で生成されたボタンが指示されると、サーブレットは、項番7,8,9のセッション変数(ユーザID,名前,パスワード)に項番1,2,3の値(ユーザID,名前,パスワード)を投入する。
【0070】
また、項番21の場合のように、加工式が「IF(第1項,第2項,第3項)」のような形式で記載された場合、この定義で生成されたボタンが指示されると、サーブレットは、第1項の演算式の結果が「真」の場合に第2項の演算式を実行し、一方、第1項の演算式の結果が「偽」の場合に第3項の演算式を実行し、セッション変数を操作する。なお、演算式に「−」が記載されているものは、何もしない処理であることを示す。
【0071】
即ち、「個数(項番20)>0」の場合に、商品コード(項番18),商品名(項番19),個数(項番20)をセッション変数(項番22,項番23,項番24)に格納(追加更新)することを示している。
【0072】
即ち、これらは、セッション変数のセッションオブジェクトへの格納(設定)タイミングをボタン指示(イベント発生)に対応付けて定義している。また、上述したように、これらの格納タイミングは、各セッション変数毎(1つでも複数でも可)に定義可能である。
【0073】
また、図9の加工機能分類一覧に示すように、加工機能に「E」が記述されている場合は、当該データ項目の定義により生成されたボタンが指示されると、セッションを明示的に開放処理(セッションオブジェクトから対応するセッション変数を削除する処理)することを示している。そのセッション変数の開放内容は、8列に記述され、開放したいセッション変数の項番を括弧の中に組として記述する形式をとる。ただし、全てのセッションを開放するときに限り「All Off」を記述する。
【0074】
例えば、項番34のログアウトボタンの定義では加工機能(列7)に「E」が指定され、加工式に「All Off」が記述されているので、全てのセッションを開放する定義であることを示している。この定義で生成されたボタン(即ち、ログアウトボタン)が指示されると、生成されるサーブレットは、全てのセッション変数をシステムから開放する。
【0075】
また、項番30の注文決定ボタンの定義では加工機能に「E」が指定され、加工式に開放したいセッション変数を組で定義している。この定義では項番22,23,24のセッションを開放している。
【0076】
即ち、これらは、セッション変数をセッションオブジェクトから削除(開放)するタイミングをボタン指示(イベント発生)に対応付けて定義している。また、上述したように、これらのタイミングは、各セッション変数毎(1つでも複数でも可)に定義可能である。
【0077】
なお、全てのセッション変数を削除(開放)するタイミングが定義されていた場合(加工式に「All Off」が記述されていた場合)、セッションオブジェクト自体を無効化(開放)するタイミング(イベント発生に対応したタイミング)の定義を示すものとする。
【0078】
また、図5,図6には示していないが、セッションオブジェクト自体を無効化(開放)するタイミングを、クライアントからのアクセス間隔に対応付けて定義するように構成してもよい。即ち、クライアントが所定時間アクセスしなかった場合に、タイムアウトとする時間を設定するように構成してもよい。このタイムアウトの時間の設定は、図5,図6に示した入出力テーブルであっても、その他の設定ファイルであってもよい。
【0079】
次に、9列,10列は、参照先データファイル番号,参照先データ項目枝番を示すものであり、IO区分(5列)で「DBNinsyo」が指定されている場合には、認証処理で用いるデータファイル番号,データ項目枝番を参照先データファイル番号(9列),参照先データ項目枝番(10列)に示す。
【0080】
また、IO区分(5列)で「DBTsuika」が指定されている場合には、追加処理で用いるデータファイル番号を参照先データファイル番号(9列)に示す。
【0081】
さらに、IO区分(5列)で「DO」が指定され、且つキー機能(6列)で「T」が指定されている場合には、当該データ項目に対応するデータの値を遷移先画面に渡すパラメータとして渡される。なお、画面遷移時にパラメータを引き渡す場合、セッション変数を用いて実現するのは一般的な手法ではあるが、1つのパラメータをただ1度の画面遷移実現のためにセッション変数を設定することは、セッション変数の本質ではない。そこで、このような場合、セッション変数を明示的に定義することなく、即ちサーバ側にセッション維持をさせることなく、画面間のパラメータの受け渡しすることを定義できるようにした。なお、この時の画面遷移とパラメータの受け渡しは、Java(登録商標)Scriptにより行われる。このように、データ項目の表示アイテム(IO区分=「DO」)に遷移先画面が定義されていた場合に限り、セッション変数を明示的に定義することなく、画面間のデータ受け渡しを行うことができる。従って、複数画面間でセッションを用いたデータ受け渡しと、セッションを用いないデータ受け渡しを自由に使い分けた、ユーザの所望の最適なウェブアプリケーションを容易に生成することができる。
【0082】
11列は遷移先画面IDで、キー機能(6列)で「T」が指定されている場合には、遷移先となる画面IDを示す。
【0083】
12列は画面ID,13列は画面名で、画面のID,画面名を示す。
【0084】
14列は画面属性で、画面が有する業務処理属性を示すものである。この画面属性には、15列の対象データファイル番号で指定されるデータファイル番号を用いてデータベースへの検索処理を行う「Kensaku」がある。なお、当該画面の呼び出し時にパラメータが指定されている場合には、当該パラメータを検索条件として検索処理を行うものとする。また、15列の対象データファイル番号で「Session」が指定されている場合は、データベースへの検索処理のかわりにセッション変数を検索処理する。
【0085】
なお、図5,図6に示した入出力テーブルは、図示しない業務仕様入力部より入力されたアプリケーション名(例えば、「SyouhinTyumon」)に対応付けられて外部記憶装置104に格納されるものとする。
【0086】
また、図5,図6には示していないが、セッションオブジェクトのタイムアウト時間(クライアントのアクセスが一定時間以上行われない場合に、セションを終了するための時間)を図5,図6に示した入出力テーブル又は図示しない設定ファイル等に設定可能に構成してもよい。
【0087】
なお、本実施形態では、図5,図6に示した入出力テーブルを、図示しない入力画面から入力する構成について説明したが、入出力テーブルをテキストファイルやCSVファイル等で構成し、ユーザがテキストエディタやその他のアプリケーションで作成し、外部記憶装置104に格納するように構成してもよい。
【0088】
図10は、本発明のプログラム生成装置におけるプログラム生成処理の概念(処理の構成)を示す模式図である。
【0089】
図5,図6に示した入出力テーブル109の情報のうち、IO区分が「F」のデータファイルから、データベース(DB)の作成とテーブルの作成を行う(Step1001(後述する図16に相当))。
【0090】
例えば、アプリケーション名(図示しないユーザインタフェースから入力される)でデータベースを作成(CREATE)し、該作成したデータベースに対して、図5,図6に示した項番1〜3よりテーブル名を「Login」、テーブル内の各項目を「UsrID」,「Name」,「PassWd」とするテーブルを作成する。
【0091】
さらに、IO区分が「D*」のデータファイルから、JSPとJava(登録商標)Scriptによる表示プログラムコードの生成を行う(Step1002(後述する図19,図20に相当))。詳細には、IO区分が「DI」のデータ項目に対応するデータをクライアントから入力処理,IO区分が「DO」のデータ項目に対応するデータをクライアントに出力処理するための表示プログラムコードの生成を行う。
【0092】
また、IO区分が「F」のデータファイルから、データベース(DB)に対するデータ操作プログラムコードの作成を行う(Step1003(後述する図17に相当))。詳細には、IO区分が「F」のデータ項目に対応するデータのデータベースへの格納処理(新規/追加処理),該データベースから前記データ項目に対応するデータの取得処理(検索処理)のデータ操作プログラムコードの生成を行う。
【0093】
また、IO区分が「DB*」のデータファイルから、業務処理を行うプログラムコードの作成を行う。
【0094】
さらに、IO区分が「DB*」且つ加工機能が「S」又は「E」のデータファイル及びIO区分が「S」のデータファイルから、セッション変数操作を行うプログラムコードの作成を行う。詳細には、IO区分が「DB*」且つ加工機能が「S」のデータ項目(ボタン)の加工式に示されるIO区分が「S」のデータ項目(セッション変数)に対応する情報を、当該ボタンが指示されたタイミング(ボタン押下イベントの発生タイミング)でセッションオブジェクトに格納(設定)する処理、また、IO区分が「DB*」且つ加工機能が「E」のデータ項目(ボタン)の加工式に示されるIO区分が「S」のデータ項目(セッション変数)に対応する情報を、当該ボタンが指示されたタイミング(ボタン押下イベントの発生タイミング)でセッションオブジェクトから削除(開放)する処理(なお、加工式が「All Off」の場合は、セッションオブジェクト自体を無効化(開放)する処理)を行うセッション変数操作プログラムの生成を行う。
【0095】
また、IO区分が「DB*」且つキー機能が「T」のデータファイルから、画面遷移処理を行うプログラムコードの作成を行う。以上説明したStep1004の業務処理プログラム,セッション変数操作プログラム,画面遷移プログラムは、後述する図18に相当する。
【0096】
なお、IO区分が「DO」且つキー機能が「T」の場合に限り、当該データ項目の表示アイテムが指示されたことを示すイベントにより当該データ項目のデータを遷移先画面に渡すパラメータに指定して遷移先画面を呼び出すJava(登録商標)Scriptコードの作成を行う(後述する図20のステップS606,S607に相当)。これにより、セッション変数を使用しない、画面表示プログラム(JSP)と画面遷移アクションプログラム(JSPで呼び出されるJava(登録商標)Script)を自動生成することができる。
【0097】
以上のように、画面とデータベースの項目を対応させ、画面ごとに遷移画面を定義し、複雑な条件判断や付随的なデータの取り扱いについては業務仕様と業務ロジックの定義からプログラムコードを自動生成することができる。
【0098】
なお、上記図10は概念図であり、詳細は後述する図15〜図20のフローチャートに示す。
【0099】
以下、図11〜図14を参照して、図5,図6で示した入出力テーブルに基づいて生成されるウェブアプリケーションプログラムについて具体的且つ詳細に説明する。
【0100】
図11〜図14は、本発明のプログラム生成装置において生成されるウェブアプリケーションの一例を示す模式図である。
【0101】
図5,図6で示した入出力テーブルの項番1〜3は、テーブル名を「Login」、テーブル内の各項目名を「UsrID」,「Name」,「PassWd」とし、「UsrID」をプライマリキーとするテーブルが図示しないデータベースシステムに対して作成することを定義している。
【0102】
また、項番4〜6は、図11に示すようなログイン(Login)画面1100の表示とその処理を制御するコードを生成することを定義している。
【0103】
詳細には、項番4,5は、ユーザID(UsrID),パスワード(PassWd)を入力するためのラベル1101,1102とテキストボックス1103,1104の生成を定義している。
【0104】
また、項番6は、5列のIO区分で「DBNinsyo」が指定されていることより、9列に示すデータベース(「Login」テーブル)のユーザID(UsrID),パスワード(PassWd)を用いた認証処理を行った後、8列の加工式に基づいて項番1,2,3の値を項番7,8,9で定義しているセッション変数オブジェクトに投入し(セッション変数としてセッションオブジェクトに格納し)、図12に示すショッピングカート(Cart)画面1200に遷移する(即ち、認証処理が正常に終了するとユーザ情報をセッション変数に維持して、ショッピングカート画面1200に遷移する)機能を持つ「ログイン」ボタン1105を生成することを定義している。
【0105】
なお、この認証処理は、ログイン画面から入力されたプライマリキー(ユーザID)を用いてデータベース(「Login」テーブル)の検索を行い、データベースに登録されたユーザIDとパスワードを取得し、入力されたユーザIDがデータベースに登録されていない場合や、入力されたパスワードと登録パスワードが等しくない場合には図示しないアラート表示を行い、一方、入力されたパスワードと登録パスワードが等しい場合には、1106に示すような表示を行い、次の処理に移る等の処理とする。
【0106】
また、項番10〜13は、テーブル名を「ShohinM」、テーブル内の各項目名を「ShohinCode」,「ShohinName」,「ShohinTanka」,「ShohinSetsumei」とし、「ShohinCode」をプライマリキーとするテーブルを図示しないデータベースシステムに対して作成することを定義している。
【0107】
項番14〜17は、図12に示すような商品マスタ(ShohinM)画面11204を表示制御するコードを生成することを定義している。この商品マスタ画面1204では、14列の画面属性に「Kensaku」が指定されていることより、15列のデータベース(「ShohinM」テーブル)を検索し(パラメータが指定されるときは、そのパラメータをキーとして検索し)、該検索結果を一覧表示する処理を組み込むことを定義している。
【0108】
詳細には、項番14,15,16,17は、商品コード(ShohinCode),商品名(ShohinName),単価(ShohinTanka),説明(ShohinSetsumei)の検索結果を一覧表示するためのコードを生成することを定義している。
【0109】
また、項番18〜21は、図12に示すようなショッピングカート(Cart)画面1200を表示制御するコードを生成することを定義している。このショッピングカート画面1200では、14列の画面属性に「Kensaku」が指定されていることより、15列に示されるデータベース(「ShohinM」テーブル)を検索し(パラメータが指定されるときは、そのパラメータをキーとして検索し)、該検索結果を一覧表示する処理を組み込むことを定義している。
【0110】
詳細には、項番18,19は、商品コード(ShohinCode),商品名(ShohinName)の検索結果を表示するためのコードを生成することを定義している。また、項番20は、個数(Kosu)を入力するためのテキストボックスを生成することを定義している。さらに、項番21は、8列の加工式に基づいて項番20の値が正のとき、項番18,19,20の値を項番22,23,24で定義しているセッション変数オブジェクトに投入し、注文内容確認画面(kakunin)へ遷移する「注文へ」ボタン1202を生成することを定義している。また、項番18に示す商品コードは、5列のIO区分が「DO」で且つ6列のキー機能が「T」と指定されていることにより、この表示をマウス等で指示することで商品マスタ(ShohinM)画面1204に遷移することが定義されている。なお、この時、商品コードがパラメータとして商品マスタ画面1204に渡される。
【0111】
また、項番25〜30は、図13に示すような注文確認画面(Kakunin)1300と注文確認画面の表示処理を制御するコードを生成することを定義している。この注文確認画面では、14列の画面属性に「Kensaku」が指定されていることより、15列に示されるセッション変数オブジェクト(Session)を検索し(パラメータが指定されるときは、そのパラメータをキーとしてセッションオブジェクトに保持されているセッション変数を検索し)、該検索結果を一覧表示する処理が組み込まれる。
【0112】
詳細には、項番25,26,27は、商品コード(ShohinCode),商品名(ShohinName),個数(Kosu)の検索結果を表示するためのコードを生成することを定義している。また、項番28は、8列の加工式に基づいて項番22,23,24で定義しているセッション変数オブジェクトを開放し(セッション変数をセッションオブジェクトから削除し)、図12に示したショッピングカート(Cart)画面1200へ遷移する「全て取消」ボタン1201を生成することを定義している。さらに、項番29は、ショッピングカート(Cart)画面1200へ遷移する「ショッピングを続ける」ボタン1302を生成することを定義している。また、項番30は、5列のIO区分で「DBTsuika」が指定されていることより、9列に示すデータベース(「Order」テーブル)に対して、この注文確認画面の内容を登録処理した後、8列の加工式に基づいて項番22,23,24で定義しているセッション変数オブジェクトを開放し、図13に示すログアウト(Logout)画面へ遷移する「注文決定」ボタン1303を生成することを定義している。
【0113】
また、項目31〜33は、テーブル名を「Order」、テーブル内の各項目名を「UsrID」,「ShohinCode」,「Kosu」とし、「UsrID」をプライマリキーとするテーブルをデータベースに作成することを定義している。
【0114】
さらに、項番34,35は、図14に示すようなログアウト(Logout)画面1400を生成することを定義している。
【0115】
詳細には、項番34は、加工式(All Off)に基づいて全てのセッション変数オブジェクトを開放し(セッションオブジェクト自体を無効化し)、図11に示したログイン画面(Login)1100へ遷移する「ログアウト」ボタン1401を生成することを定義している。
【0116】
また、項番35は、図12に示したショッピングカート画面(Cart)1200へ遷移する「ショッピング」ボタン1402を生成することを定義している。
【0117】
以上説明したように、図5,図6で示した入出力テーブルに基づいて生成されるアプリケーションは、ウェブブラウザから図11に示したログイン画面1100に対応するJSPが起動されると、ログイン画面1100がクライアントのウェブブラウザ上に表示される。
【0118】
次に、表示されたログイン画面1100に対し、ユーザIDとパスワードの入力が行われ、ログインボタン1105が指示されると、サーブレットへデータが転送され、サーブレットにより認証処理が実行され、認証が成功するとその旨が通知され(図11に示す通知画面1106)、遷移先画面である図12に示したショッピングカート画面1200に対応するJSPが起動される。すると、ショッピングカート画面がクライアントのウェブブラウザ上に表示される。このショッピングカート画面では表示されている商品の数量欄に数値を入力し、「注文へ」ボタン1202を指示することにより、商品の購入予約が出来る。
【0119】
次に、上記ショッピングカート画面1200において、商品コード1201が指示されると、Java(登録商標)Scriptにより、商品マスタ画面1204に対応するJSPが別ウィンドウで起動される(指示された商品コードをパラメータとして起動される)。すると、商品マスタ画面がクライアントのウェブブラウザ上に表示される。この処理では、セッション変数を使用することなしに、指示された商品コードを商品マスタ画面1204に渡し、該商品コードをキーとした商品マスタの詳細を表示することができる。例えば、商品マスタ画面1204の例では、商品コード「001」で商品マスタを検索した結果の明細画面が表示される。
【0120】
また、表示されたショッピングカート画面1200において、「注文」ボタン1202が指示されると、サーブレットへデータが転送され、サーブレットにより、注文内容となる「商品コード」,「商品名」,「個数」のデータをセッション変数に格納する処理が実行され、遷移先画面である図13に示した注文内容確認画面1300に対応するJSPが起動される。すると、注文内容確認画面1300がクライアントのウェブブラウザ上に表示される。
【0121】
図13に示した注文内容確認画面1300では、図12のショッピングカート画面1200で入力された内容をセッション変数に基づき表示される。
【0122】
次に、表示された注文内容確認画面1300において、「全て取消」ボタン1301が指示されると、サーブレットへデータが転送され、サーブレットにより、「商品コード」「商品名」「個数」のセッション変数を開放する処理が実行され、遷移先画面であるショッピングカート画面1200に対応するJSPが起動される。すると、図12に示したショッピングカート画面1200がクライアントのウェブブラウザ上に表示される。
【0123】
また、注文内容確認画面1300において、「ショッピングを続ける」ボタン1302が指示されると、サーブレットへデータが転送され、サーブレットにより、遷移先画面であるショッピングカート画面に対応するJSPが起動される。すると、ショッピングカート画面1200がクライアントのウェブブラウザ上に表示される。
【0124】
さらに、注文内容確認画面1300において、「注文決定」ボタン1303が指示されると、サーブレットへデータが転送され、サーブレットにより、転送データに基づくデータベースのテーブルOrderに対する追加更新処理が実行され、追加更新処理が成功すると、「商品コード」「商品名」「個数」のセッション変数を開放する処理が実行され、遷移先画面であるログアウト画面1400に対応するJSPが起動される。すると、図14に示すログアウト画面1400がクライアントのウェブブラウザ上に表示される。
【0125】
次に、表示されたログアウト画面1400において、「ログアウト」ボタン1401が指示されると、サーブレットへデータが転送され、サーブレットにより、全セッション変数を開放する処理が実行され、遷移先画面であるログイン画面に対応するJSPが起動される。すると、図11に示したログイン画面1100がクライアントのウェブブラウザ上に表示される。
【0126】
また、ログアウト画面1400において、「ショッピング」ボタン1402が指示されると、サーブレットへデータが転送され、サーブレットにより、遷移先画面であるショッピングカート画面に対応するJSPが起動される。すると、ショッピングカート画面1200がクライアントのウェブブラウザ上に表示される。
【0127】
以上が、図5,図6に示した入出力テーブルに基づいて生成されるアプリケーションの基本的な流れである。
【0128】
以下、図15〜図20のフローチャートを参照して、図1に示したコード生成部107によるコード生成処理について説明する。
【0129】
図15は、本発明の第2の制御処理手順の一例を示すフローチャートであり、図1に示したコード生成部107によるコード生成処理に対応する。なお、S201〜S204は各ステップを示す。
【0130】
まず、ステップS201において、入出力テーブル109に格納された業務仕様情報に基づいて、図示しないDBシステムにアクセスし、データベース(DB)を作成する(詳細は図16に示す)。
【0131】
次に、ステップS202において、入力データチェック処理及びステップS201で作成したデータベースに対するデータ操作処理を行うBeanコード114を、入出力テーブル109に基づいて生成する(詳細は図17に示す)。
【0132】
次に、ステップS203において、入出力テーブル109に基づいて、ウェブブラウザからの入力データを取得してウェブアプリケーション全体を制御するサーブレットコード113を生成する(詳細は図18に示す)。
【0133】
次に、ステップS204において、ウェブブラウザへの表示を制御する(図11〜図14に示した各画面のウェブブラウザへの出力を制御する)JSPコード112を生成し(詳細は図19,図20に示す)、処理を終了して図4のフローチャートにリターンする。
【0134】
図16は、本発明の第3の制御処理手順の一例を示すフローチャートであり、図15のステップS201に示したDB作成処理に対応する。なお、S301〜S305は各ステップを示す。
【0135】
まず、ステップS301において、図示しないDBシステムに対して、ワーク領域からアプリケーション名を取得し、該アプリケーション名をデータベース名とするDBを作成するコマンドを発行する。次に、ステップS302において、ステップS301で作成したDBに接続する。
【0136】
そして、ステップS303において、ワーク領域から入出力テーブル109で定義されたIO区分(5列)=「F」のデータファイル番号を1つ取得し、該データファイル番号をテーブル名、該データファイル番号内のデータ項目枝番をテーブル内の項目名としたテーブルを作成するSQL文を生成し、該SQL文のクエリを実行する。
【0137】
次に、ステップS304において、IO区分(5列)=「F」の全データファイルについてステップS303の処理が終了したか否かを判定し、まだ終了していない場合には、ステップS303に戻り、一方、既に終了したと判定した場合には、ステップS305に進む。
【0138】
ステップS305において、データベースから切断する処理を行い、処理を終了して図15のフローチャートにリターンする。
【0139】
図17は、本発明の第4の制御処理手順の一例を示すフローチャートであり、図15のステップS202に示した業務処理用Bean生成処理に対応する。なお、S401〜S405は各ステップを示す。
【0140】
まず、ステップS401において、ワーク領域から入出力テーブル109で定義されたIO区分(5列)=「F」のデータファイル番号を1つ取得し、該データファイル番号に対応する業務処理用のBeanファイルを生成する。なお、Beanファイル名は、例えば、アプリケーション名にデータファイル番号及び文字列“Bean”を付加し拡張子を“java(登録商標)”としたBeanファイルとする。また、このとき、作成したBeanファイル内の先頭に、「パッケージ名(例えば、アプリケーション名にデータファイル番号及び文字列“Bean”を付加したもの)の宣言、「java(登録商標).sql」パッケージのインポート、Java(登録商標)Beansを利用するために必要なインタフェースの実装等を行うコード」を格納しておく。
【0141】
次に、ステップS402において、検索処理コードを生成する。詳細には、「DBに接続し(この時、セッション変数内に格納されたユーザID(UsrID),パスワード(PassWD)を用いるように構成してもよい)、指定されたパラメータを検索条件として当該データファイル番号に対応するテーブルに対する検索処理を行うためのSQL文のクエリを実行し、検索結果を返し、DBから切断するコード(検索メソッド)」を当該Beanファイル内に生成する。
【0142】
次に、ステップS403において、新規/追加処理コードを生成する。詳細には、「DBに接続し、指定されたパラメータを新規追加データとして当該データファイル番号に対応するテーブルに対して追加処理を行うためのSQL文のクエリを実行し、新規追加結果を返し、DBから切断するコード(追加メソッド)」を当該Beanファイル内に生成する。
【0143】
次に、ステップS404において、削除処理コードを生成する。詳細には、「DBに接続し、指定されたパラメータにより削除対象レコードを指定して削除処理を行うためのSQL文のクエリを実行し、削除結果を返し、DBから切断するコード(削除メソッド)」を当該Beanファイル内に生成する。
【0144】
そして、ステップS405において、IO区分(5列)=「F」の全データファイルについてステップS401〜S405の処理が終了したか否かを判定し、まだ終了していない場合には、ステップS401に戻り、一方、既に終了したと判定した場合には、処理を終了して図15のフローチャートにリターンする。
【0145】
なお、上記ステップS402,S403,S404により当該Beanファイル内に生成されるコードには、「ドライバクラスをロードする処理、データベースに接続する処理、SQLステートメントオブジェクトを生成する処理、サーブレットから渡されたデータに基づくSQL文のクエリを実行して結果を取得する処理、結果をセットする処理、SQLステートメントオブジェクトとデータベース接続オブジェクトをクローズする処理を行うためのコード」等が記載されているものとする。
【0146】
また、ステップS402,S403,S404で生成する検索処理コード,新規/追加処理コード,削除処理コードは、Beanファイル内で定義される業務処理用のクラス(例えば、クラス名:データファイル名に文字列“DBAccess”を追加)内の検索メソッド,認証メソッド,追加メソッド,削除メソッドとして生成するものとする。
【0147】
さらに、図17のフローチャートでは、入出力テーブルで定義されたIO区分の「F」の全データファイルに対して、検索処理コード,新規追加処理コード,削除処理コードを生成する構成について示したが、入出力テーブルで定義されている処理コードのみ生成するように構成してもよい。
【0148】
例えば、図5,図6に示した入出力テーブルでは、項番6では、IO区分(5列)=「DBNinsyo」,参照先データファイル番号(9列)=「Login」と定義されているため、データベースの「Login」テーブルに対する検索処理コードを生成する。また、項番14〜17では、画面属性(14列)=「Kensaku」、対象データファイル番号(15列)=「ShohinM」と定義されているため、データベースの「ShohinM」テーブルに対する検索処理コードを生成する。さらに、項番30では、IO区分(5列)=「DBTsuika」,参照先データファイル番号(9列)=「Order」と定義されているため、データベースの「Order」テーブルに対する追加処理コードを生成するように構成してもよい。
【0149】
図18は、本発明の第5の制御処理手順の一例を示すフローチャートであり、図13のステップS203に示したサーブレット生成処理に対応する。なお、S501〜S513は各ステップを示す。
【0150】
まず、ステップS501において、ワーク領域から入出力テーブル109で定義されたIO区分(5列)=「D*」のデータファイル番号を1つ取得し、当該データファイル番号にボタンに対応するデータ項目(IO区分=「DB*」)があるか否かを判定し、ボタンに対応するデータ項目がないと判定した場合には、そのままステップS513に進む。
【0151】
一方、ステップS501で、当該データファイル番号にボタンに対応するデータ項目があると判定した場合には、ステップS502において、サーブレットファイルを生成する。なお、サーブレットファイル名は、例えば、アプリケーション名にデータファイル番号と文字列“Servlet”を付加し拡張子を“java(登録商標)”としたサーブレットファイルとする。なお、このとき、サーブレットファイル内の先頭に、「使用するBeanパッケージ及びその他必要なパッケージをインポートするコード、アクセス修飾子,クラスの定義,クラス(例えば、HttpServletクラス)の継承、ウェブブラウザ(HTMLフォーム)から送信されたパラメータ(送信情報)を受け取るためのメソッドを示すコード」を格納しておく。
【0152】
次に、ステップS503において、「ウェブブラウザからの送信情報(入力情報)を受け取るコード」を当該サーブレットファイル内に生成する。
【0153】
次に、ステップS504において、当該データファイル番号内のボタンに対応するデータ項目を1つ取得し、当該ボタンに対応するデータ項目が業務処理を伴うボタン(IO区分(5列)が「DBNinsyo」,「DBKensaku」,「DBTsuika」,「DBSakuzyo」)か否かを判定し、業務処理を伴うボタンでないと判定した場合には、ステップS506に進む。
【0154】
一方、ステップS504で、業務処理を伴うボタンであると判定した場合には、ステップS505において、「当該ボタンが指示された場合に、対応する業務処理を実行するコード」を当該サーブレットファイル内に生成する。
【0155】
詳細には、当該ボタンが「DBNinsyo」の場合には、「当該ボタンが指示された場合に、ウェブブラウザから取得したデータのうちプライマリキーとなるデータを検索条件として、参照先データファイル番号(9列)で指定されたデータファイルに対応する検索メソッドを実行し、検索結果と参照先データ項目枝番(10列)の指定に対応するウェブブラウザからの取得データとの比較等により認証処理を行い、認証が失敗した場合には処理を終了するコード」を当該サーブレットファイル内に生成する。
【0156】
また、当該ボタンが「DBKensaku」の場合には、「当該ボタンが指示された場合に、ウェブブラウザから取得したデータを検索条件として、参照先データファイル番号(9列)で指定されたデータファイルに対応する検索メソッドを実行して検索結果を取得するコード」を生成する。
【0157】
また、当該ボタンが「DBTsuika」の場合には、「当該ボタンが指示された場合に、ウェブブラウザから取得したデータを追加データとして、参照先データファイル番号(9列)で指定されたデータファイルに対応する追加メソッドを実行するコード」を生成する。
【0158】
また、当該ボタンが「DBSakuzyo」の場合には、「当該ボタンが指示された場合に、ウェブブラウザから取得したデータを削除対象データとして、参照先データファイル番号(9列)で指定されたデータファイルに対応する削除メソッドを実行するコード」を生成する。
【0159】
次に、ステップS506において、当該ボタンに対応するデータ項目の加工機能=「S」か否かを判定し、「S」でないと判定した場合には、ステップS508に進む。
【0160】
一方、ステップS506で、当該ボタンに対応するデータ項目の加工機能(7列)=「S」であると判定した場合には、ステップS507において、図示しないが「セッションオブジェクトを取得(存在しない場合は生成)するコード」をサーブレットファイル内に生成し(不図示)、加工式(8列)の定義に基づいて「当該ボタンが指示された場合に、セッションオブジェクトにセッション変数(加工式での指定に基づくセッション変数)を追加更新するコード」をサーブレットファイル内に生成する。
【0161】
なお、セッションオブジェクトの取得には、getSession()メソッドをクリエイトモードで用いるものとする。また、セッションオブジェクトへのセッション変数の設定は、setAttribute()メソッドを用いるものとする。さらに、セッションオブジェクトからセッション変数を参照するには、getAttribute()メソッドを用いるものとする。
【0162】
次に、ステップS508において、当該ボタンに対応するデータ項目の加工機能=「E」か否かを判定し、加工機能=「E」でないと判定した場合には、ステップS510に進む。
【0163】
一方、ステップS508で、当該ボタンに対応するデータ項目の加工機能(7列)=「E」であると判定した場合には、ステップS509において、図示しないが「セッションオブジェクトを取得するコード」をサーブレットファイル内に生成し(不図示)、加工式(8列)の定義に基づいて「当該ボタンが指示された場合に、セッションオブジェクト内の属性(加工式で指定されたセッション変数に対応する属性)を開放(削除)するコード」を当該サーブレットファイル内に生成する。なお、加工式に「All Off」が指定されていたい場合には、当該ユーザのセッションオブジェクトそのものを開放(無効化)するコードを生成するものとする。
【0164】
なお、セッションオブジェクトの取得には、getSession()メソッドをクリエイトモードで用いるものとする。また、セッションオブジェクトからセッション変数を削除するには、removeAttribute()メソッドを用いるものとする。さらに、セッションオブジェクト自体を無効化するには、invalidate()メソッドを用いるものとする。
【0165】
また、加工機能にその他の演算処理を示す「G」を設け、例えば、当該ボタンに対応するデータ項目の加工機能(7列)=「G」であると判定した場合には、加工式(8列)の定義に基づいて「当該ボタンが指示された場合に、加工式で指定された演算処理を実行するコード」を当該サーブレットファイル内に生成するように構成してもよい。
【0166】
次に、ステップS510において、当該ボタンに対応するデータ項目のキー種別(6列)=「T」か否かを判定し、キー種別=「T」でないと判定した場合には、ステップS512に進む。
【0167】
一方、ステップS510で、当該ボタンに対応するデータ項目のキー種別=「T」であると判定した場合には、ステップS511において、遷移先画面ID(11列)の指示に基づいて「当該ボタンが指示された場合に、遷移先画面に対応するJSPを呼び出すコード」を当該サーブレットファイル内に生成する。
【0168】
次に、ステップS512において、当該データファイル内の全ボタンについてステップS504〜S511の処理が終了したか否かを判定し、まだ終了していない場合には、ステップS504に戻り、一方、既に終了したと判定した場合には、ステップS513に進む。
【0169】
ステップS513では、IO区分(5列)=「D*」の全データファイルについてステップS501〜S512の処理が終了したか否かを判定し、まだ終了していない場合には、ステップS501に戻り、一方、既に終了したと判定した場合には、処理を終了して図15のフローチャートにリターンする。
【0170】
なお、図5,図6に示した入出力テーブル又は図示しない設定ファイルに、セッションオブジェクトのタイムアウト時間が設定されていた場合には、サーブレットファイル内に、「指定されたタイムアウト時間でセッションオブジェクトをタイムアウトするように設定する処理を行うコード」を生成するように構成してもよい。
【0171】
図19,図20は、本発明の第6の制御処理手順の一例を示すフローチャートであり、図15のステップS204に示したJSP生成処理に対応する。なお、S601〜S615は各ステップを示す。
【0172】
まず、ステップS601において、ワーク領域から入出力テーブル109で定義されたIO区分(5列)=「D*」のデータファイル番号を1つ取得し、当該データファイルに対応するJSPファイルを生成する。このJSPファイルのファイル名は、例えば、アプリケーション名にデータファイル名を付加し拡張子を“jsp”とする。なお、このJSPファイル内には、「JSPページのMIMEタイプとエンコードするキャラクタセットを設定するコード、当該データファイルに対応するBeanをインスタンスするコード、htmlのタグである“<html><head><title>アプリケーション名</title>”等」を生成し格納しておくものとする。
【0173】
次に、ステップS602において、当該データファイル番号にIO区分(5列)=「DO」且つキー種別(6列)=「T」であるデータ項目があるか否かを判定し、ないと判定した場合には、ステップS604に進む。
【0174】
一方、ステップS602で、当該データファイル番号にIO区分(5列)=「DO」且つキー種別(6列)=「T」であるデータ項目があると判定した場合には、ステップS603において、「新たなウィンドウを表示し、該ウィンドウから遷移先画面に対応するJSPにアクセスするための画面遷移用Java(登録商標)Scriptコード」を当該JSPファイル内に生成する。なお、このとき、遷移先の画面には、当該データ項目の値をパラメータとして遷移先画面に渡すようにプログラムコードを生成するものとする。
【0175】
次に、htmlのタグである“</head><body>”等を格納した後、ステップS604において、当該データファイル番号の画面属性(14列)に「Kensaku」が指定されているかを判定し、指定されていないと判定した場合には、ステップS606に進む。
【0176】
一方、ステップS604で、当該データファイル番号の画面属性(14列)に「Kensaku」が指定されていると判定した場合には、ステップS605において、「Beanを用いて検索用処理を実行し、結果を取得するコード」を生成し、ステップS606に進む。
【0177】
次に、ステップS606おいて、当該データファイル番号内からデータ項目を1つ取り出し、当該データ項目のIO区分(5列)=「DO」且つキー種別(6列)=「T」であるか否かを判定し、IO区分=「DO」且つキー種別=「T」でないと判定した場合には、ステップS608に進む。
【0178】
一方、ステップS606で、当該データ項目のIO区分(5列)=「DO」且つキー種別(6列)=「T」と判定した場合には、ステップS607において、「当該データ項目を表示する出力アイテムを生成するコード」を当該JSPファイル内に生成する。但し、このコードは、当該出力アイテムが指示された場合に、当該データ項目の値をパラメータとし、遷移先画面ID(11列)を指定して上記画面遷移用Java(登録商標)Scriptを起動するように生成する。
【0179】
次に、ステップS608において、当該データ項目のIO区分(5列)=「DO」且つキー種別(6列)≠「T」であるか否かを判定し、IO区分=「DO」且つキー種別≠「T」でないと判定した場合には、ステップS610に進む。
【0180】
一方、ステップS608で、当該データ項目のIO区分(5列)=「DO」且つキー種別(6列)≠「T」であると判定した場合には、ステップS609において、「当該データ項目を表示する表示出力アイテムを生成するコード」を当該JSPファイル内に生成する。
【0181】
次に、ステップS610において、当該データ項目のIO区分(5列)=「DI」であるか否かを判定し、IO区分=「DI」でないと判定した場合には、ステップS612に進む。
【0182】
一方、ステップS610で、当該データ項目のIO区分(5列)=「DI」であると判定した場合には、ステップS611において、「当該データ項目を入力するためのテキストボックスを生成するコード」を当該JSPファイル内に生成する。
【0183】
次に、ステップS612において、当該データ項目のIO区分(5列)=「DB*」であるか否かを判定し、IO区分=「DB*」でないと判定した場合には、ステップS614に進む。
【0184】
一方、ステップS612で、当該データ項目のIO区分(5列)=「DB*」であると判定した場合には、ステップS613において、「当該データ項目に対応するボタンを生成するコード」をJSPファイル内に生成する。但し、当該ボタンが指示された場合に、対応するサーブレットを起動し、当該フォームのデータをサーブレットに送信するようにコードを生成する。
【0185】
次に、ステップS614おいて、当該データファイル内の全データ項目について、ステップS606〜S613の処理が終了したか否かを判定し、終了していないと判定した場合には、ステップS606に戻る。
【0186】
一方、ステップS614で、当該データファイル内の全データ項目について、ステップS606〜S613の処理が終了したと判定した場合には、htmlのタグである“</body></html>”等を当該JSPファイル内に格納した後、ステップS615に進む。
【0187】
次に、ステップS615おいて、IO区分(5列)=「D*」の全データファイルについて、ステップS601〜S614の処理が終了したか否かを判定し、終了していないと判定した場合には、ステップS601に戻る。
【0188】
一方、ステップS615で、ステップS606〜S613の処理が終了したと判定した場合には、処理を終了して図15のフローチャートにリターンする。
【0189】
なお、本フローチャートでは、ステップS606,S607で示したように、当該データ項目のIO区分(5列)=「DO」且つキー種別(6列)=「T」と判定した場合、当該データ項目が指示された場合に画面遷移用Java(登録商標)Scriptを起動するようにコードを生成する構成について説明したが、当該データ項目のIO区分(5列)=「DO」且つキー種別(6列)=「T」であって、且つ当該データ項目が遷移先画面ID(11列)に対応するデータベースのプライマリキーであると判定した場合に限り、当該データ項目が指示された場合に画面遷移用Java(登録商標)Scriptを起動するようにコードを生成し、一方、当該データ項目のIO区分(5列)=「DO」且つキー種別(6列)=「T」であっても、当該データ項目が遷移先画面ID(11列)に対応するデータベースのプライマリキーでないと判定した場合には、当該データ項目が指示された場合に対応するサーブレットを起動し当該フォームのデータをサーブレットに送信するようにコードを生成する構成としてもよい。
【0190】
なお、HTTPセッションは、セッションIDをクッキー(Cookie)に設定して、クライアント側に送出し、このクッキー内のセッションIDにより、ウェブブラウザは、セッションオブジェクトを利用することができる。しかしながら、ウェブブラウザにこのクッキーを受け取らないような設定が成されている場合や、携帯電話等の携帯端末のウェブブラウザではクッキーを受け取ることができないものもある。このようなウェブブラウザに対応するため、ウェブアプリケーションの実行環境のウェブサーバのリライティングを有効に設定しておくようにし、「ウェブブラウザにダミーのクッキーを送信する等により、ウェブブラウザのクッキー享受の有無を判定し、当該クライアントがクッキーを受け取らない場合には、当該クライアントとのセッションIDをURLパラメータとして当該クライアントに送信する処理を含むコード」を生成するように構成してもよい。
【0191】
これにより、クッキーを受け取ることができないウェブブラウザにも対応可能なウェブアプリケーションを自動生成することができる。
【0192】
以上の処理により生成されるプログラムコードにより、業務設計を行い、セッション変数をデータ項目とした入出力テーブルを生成し、入出力テーブル間の関係を定義することを開発作業の中心とすることで、セッション変数を用いたシステム開発を容易に行うことができ、かつ開発作業を軽減できるため、開発期間を短縮することができる。
【0193】
また、業務仕様からセッション変数オブジェクトを自動生成することによって、Java(登録商標)の特別な知識を必要とはせず、セッション変数を用いた複雑且つ高度なプログラミングを簡単に行うことができ、開発作業を軽減することができる。
【0194】
さらに、入出力テーブルからウェブアプリケーションを自動生成できるので、システム環境の変化に柔軟に対応できる保守性に優れたWebアプリケーションの開発を容易に行うことができる。
【0195】
また、セッション変数を自由なタイミングで、選択して開放できるため、サーバ側の無駄なリソースが減り、サーバに対する負荷を軽減できる優れたウェブアプリケーションを容易に生成することができる。
【0196】
以上のように、サーバサイドのプログラムが各クライアントにセッションを維持するためのセッション変数を業務仕様の枠組み(入出力テーブル)の中で定義でき、セッション変数をユーザの所望の最適なタイミングで取得保存するウェブアプリケーションを自動生成できることができる。
【0197】
また、セッション変数を自由なタイミングで選択して開放できる仕組みを業務仕様の枠組みの中で定義でき、セッション変数をユーザ所望の最適なタイミングで開放するウェブアプリケーションを自動生成することができる。
【0198】
また、業務仕様の枠組みの中で、画面遷移を定義できることで、各状態とその状態における画面名を全て把握する必要はなく、連続する2画面間において、ボタンと遷移先画面の関係のみを把握しておくだけで、大規模なシステムであっても容易に画面遷移を定義することができ、システム全体の可読性を低下させることなく、システム開発を容易に行うことができ、かつ開発作業を軽減できるため、開発期間を短縮することができる。
【0199】
また、業務仕様から画面遷移プログラムを自動生成することによって、Java(登録商標)等のプログラムコードの特別な知識を必要とせず、ウェブアプリケーションのプログラミングコードを生成することができ、開発作業を軽減することができる。
【0200】
このような、可読性の高い定義情報からウェブアプリケーションを自動生成することにより、システム環境が変化した場合であっても、柔軟に対応できる保守性に優れたウェブアプリケーションの開発を容易に行うことができる。
【0201】
なお、本実施形態では、サーバサイドのJava(登録商標)プログラムを用いたウェブアプリケーションを生成する場合について説明したが、生成されるプログラムコードは、Java(登録商標)に限られるものではなく、ASP(Active Server Pages),PHP(Hypertext Preprosessor)等によるウェブアプリケーションであってもよい。
【0202】
また、Java(登録商標)Scriptを用いる場合について説明したが、その他のスクリプト言語を用いてもよい。
【0203】
以上のように、データ項目のデータベースの配置とデータ項目間の関係を記述した業務仕様の一部としてセッション変数を定義しておくだけで、定義されたセッションに係わる業務仕様からセッション変数を取得・保存・開放するウェブアプリケーションを自動生成することができる。
【0204】
なお、本発明のプログラム生成装置は、HTTPプロトコルだけではなく、セッションレスのプロトコルであれば、どのようなプロトコルにも適用可能である。
【0205】
また、生成するウェブアプリケーションの複数ページ間で共有したいデータ項目をセッションを用いて保持するウェブアプリケーションを生成する場合について説明したが、上記複数ページ間で共有したいデータを、クッキーに設定したり、クライアントに渡すフォームのhiddenフィールドに設定するように構成してもよい。しかしながら、セキュリティ面を考えると、セッションを用いるほうが適切であると考えられる。
【0206】
また、上述した各変形例を合わせた構成も全て本発明の適用範囲である。
【0207】
さらに、図5,図6の入出力テーブルの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0208】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0209】
なお、本実施形態で示したプログラム生成装置は、画面を構成するボタンやデータ表示アイテムに対応付けられた遷移先画面情報を含む入出力テーブル(図5,図6)を予め生成しておき、該入出力テーブルに基づいて、画面遷移を行うウェブアプリケーションのコードを生成するものであるため、連続する2画面間において、ボタンと遷移先画面の関係のみを把握しておくだけで、大規模なシステムであっても容易に画面遷移を定義することができる。
【0210】
これに対して、従来の技術の欄に示した特許文献1に示される対話的ソトウエア構築・駆動装置では、画面名に関する記述を含む状態遷移定義を記述した状態遷移表を生成しておく必要があるため、システムにおける全ての状態を把握しておく必要がある。しかしながら、大規模システムにおいては、定義すべき状態数は相当数あり、これらの状態とその状態における画面名を全て把握することは非常に困難である。また、これらの全状態とその状態における画面名を把握できたとしても、これらの状態と画面名を全て、上記特許文献1に示されるように状態遷移定義表で管理することは、システム全体の可読性を低下させることになり、保守性も悪く誤りが発生しやすくなってしまう。
【0211】
また、本発明では、データ項目の定義と該データ項目のデータベースへの配置を定義する入出力テーブル内の枠組みの中で、上述した画面遷移をも定義するものであるが、上記特許文献1では、上述した状態遷移定義表に加え、画面項目制約表,データベース項目対応表等もそれぞれユーザが作成する必要があり、さらに煩雑となってしまう。
【0212】
このように、画面遷移の定義において、本発明と上記特許文献1とは根本的に異なるものである。
【0213】
さらに、従来の技術の欄に示した特許文献1では、フレームワークを予め準備することにより、ユーザが個別にプログラミングする個別プログラムの量を少なくするものであり、少なくなったとはいえプログラミングを行う必要があるが、本発明では、画面遷移を定義した入出力テーブルに基づいて、Webアプリケーションで必要な全てのコードを生成するものであり、本発明の場合、ユーザはJava(登録商標)等を用いたプログラミングを一切行う必要がない。この点においても、本発明と上記特許文献1とは根本的に異なる。
【0214】
さらに、本発明では、画面遷移時に、遷移先の画面に情報を受け渡すことさえも、上述した入出力テーブル(データ項目の定義と該データ項目のデータベースへの配置の定義)内の枠組みの中で定義するものである。また、情報の受け渡しを行う際に、セッションオブジェクトを用いて情報の受け渡しを行うか、セッションオブジェクトを用いることなく情報の受け渡しを行うかの指定さえも、上述した入出力テーブル内の枠組みの中で定義するものである。
【0215】
このように、本発明は、上記特許文献1の抱える各種問題点を解決し、さらにウェブアプリケーションの複数ページ間でのデータ受け渡しを業務仕様の枠組みの中で容易に指定可能として、フレキシブル(セッション使用、不使用等)且つ優れたウェブアプリケーションプログラムを生成するものである。
【0216】
以上示した点は、本実施形態で示したプログラム生成装置と、上記特許文献1に記載される対話的ソフトウエア構築・駆動装置との相違を考察する上で、特に留意すべき事項と考える。
【0217】
以下、図21に示すメモリマップを参照して本発明に係るプログラム生成装置で読み出し可能なデータ処理プログラムの構成について説明する。
【0218】
図21は、本発明に係るプログラム生成装置で読み出し可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0219】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0220】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0221】
本実施形態における図4,図15,図16,図17,図18,図19,図20に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0222】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0223】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0224】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0225】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0226】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0227】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0228】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0229】
【発明の効果】
以上説明したように、本発明によれば、複数の構成要素により画面を定義するとともに当該画面の構成要素が指示された場合の遷移先画面を定義可能な定義情報を予めさ作成しておき、該定義情報に基づいて「前記複数の構成要素により構成される画面を生成表示する第1のプログラム」,「前記構成要素が指示されたことを示すイベントにより画面遷移を制御する第2のプログラム」を生成するので、システムにおける全ての状態とその状態における画面名を全て把握する必要がなく、連続する2画面間において、ボタンと遷移先画面の関係のみを把握しておくだけで、大規模なシステムであっても容易に画面遷移を定義することができ、システム全体の可読性を低下させることなく、システム開発を容易に行うことができ、開発期間を短縮することができる。
【0230】
また、データ項目の定義と該データ項目のデータベースへの配置を定義する業務仕様の枠組みの中で、画面遷移をも定義できることで、システム全体の可読性を低下させることなく、システム開発を容易に行うことができ、かつ開発作業を軽減できるため、開発期間を短縮することができる。
【0231】
さらに、業務仕様から画面遷移プログラムを自動生成することによって、Java(登録商標)等のプログラミングの特別な知識を必要とはせず、プログラムコードを簡単に生成することができ、開発作業を軽減することができる。
【0232】
また、画面遷移時に遷移先の画面に渡す情報もセッション変数を用いた方法、又はセッション変数を用いない方法により、該情報を渡す状況に応じてフレキシブルに指定することができる。
【0233】
従って、所望の画面遷移を実現でき、システム環境の変化に柔軟に対応できる保守性に優れたウェブアプリケーションの開発を容易に行うことができる等の効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施形態を示すプログラム生成装置の構成を示すブロック図である。
【図2】図1に示したコード生成部によって生成したサーブレット、JSP、およびBeanを利用したウェブアプリケーションシステムの全体構成の一例を示す図である。
【図3】図1に示したコード生成部によって生成したウェブアプリケーションシステムのアプリケーションサーバを構成するWebサーバのシステム構成を示す図である。
【図4】本発明のプログラム生成装置における第1の制御処理手順の一例を示すフローチャートである。
【図5】本発明のプログラム生成装置における業務仕様(入出力テーブル)について説明する模式図である。
【図6】本発明のプログラム生成装置における業務仕様(入出力テーブル)について説明する模式図である。
【図7】図5,図6に示した入出力テーブルにおけるIO区分の分類を示す図である。
【図8】図5,図6に示した入出力テーブルにおけるキー種別の分類を示す図である。
【図9】図5,図6に示した入出力テーブルにおける加工機能の分類を示す図である。
【図10】本発明のプログラム生成装置におけるプログラム生成処理の概念(処理の構成)を示す模式図である。
【図11】本発明のプログラム生成装置において生成されるウェブアプリケーションの一例を示す模式図である。
【図12】本発明のプログラム生成装置において生成されるウェブアプリケーションの一例を示す模式図である。
【図13】本発明のプログラム生成装置において生成されるウェブアプリケーションの一例を示す模式図である。
【図14】本発明のプログラム生成装置において生成されるウェブアプリケーションの一例を示す模式図である。
【図15】本発明の第2の制御処理手順の一例を示すフローチャートである。
【図16】本発明の第3の制御処理手順の一例を示すフローチャートである。
【図17】本発明の第4の制御処理手順の一例を示すフローチャートである。
【図18】本発明の第5の制御処理手順の一例を示すフローチャートである。
【図19】本発明の第6の制御処理手順の一例を示すフローチャートである。
【図20】本発明の第6の制御処理手順の一例を示すフローチャートである。
【図21】本発明に係るプログラム生成装置で読み出し可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
101 入力装置
102 表示装置
103 処理装置(CPU,RAM,ROM)
104 外部記憶装置(ハードディスク)
105 画面制御部
116 業務仕様記述部
106 仕様解析部
107 コード生成部
108 全体制御部
109 入出力テーブル
112 JSPコード
113 Servletコード
114 Beanコード
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a web application development support system, and relates to a program generation apparatus, a program generation method, a program, and a recording medium that can efficiently develop screen transitions by button selection.
[0002]
[Prior art]
Web application software that processes core business of a company has many screens due to its multi-functionality, and business programs are executed while changing screens according to processing. There is a need for a mechanism that efficiently develops transitions.
[0003]
Conventionally, in 4GL (Fourth Generation Language) and card-type databases, it is necessary to create a code to control the state of each screen and to correspond to the screen and database items on a one-to-one basis. It was difficult to handle accompanying screen transitions and incidental data not stored in the database.
[0004]
On the other hand, in the “interactive software construction / drive device” disclosed in Japanese Patent Application Laid-Open No. 11-282658 (Patent Document 1), a state transition table is changed from a state transition table in which a state transition definition including a description about a screen name is described. A method has been proposed in which a generation class is automatically generated and input to a state transition management module to control the screen state transition by the state transition table, and the screen display is controlled based on the state transition.
[0005]
This is because the screen state management can be easily realized by describing the screen name in the state transition definition, that is, by incorporating the screen transition into the state transition framework. It was possible to contribute to efficiency improvement.
[0006]
[Patent Document 1] Japanese Patent Laid-Open No. 11-282658
[0007]
[Problems to be solved by the invention]
However, in a large-scale system, there are a considerable number of states to be defined, and it is very difficult to grasp all of these states and screen names in those states.
[0008]
Moreover, even if all these states and the screen names in the states can be grasped, managing all of these states and screen names in the state transition definition table as shown in the above-mentioned Patent Document 1 There was a problem that readability was lowered, maintenance was poor, and errors were likely to occur.
[0009]
The present invention has been made to solve the above-described problems, and an object of the present invention is to define a plurality of data items, a definition of the arrangement of each data item in a database, and the data items. Definition information (input / output table) that can define the screen definition by a plurality of components including the component to be processed and the transition destination screen when the component of the screen is specified is created in advance. Based on the information, “a first program that generates and displays a screen composed of the plurality of components” and “a second program that controls screen transition by an event indicating that the component is instructed” are generated. By doing this, it is not necessary to know all the states in the system and all the screen names in that state, and only the relationship between the button and the transition destination screen is understood between two consecutive screens. It is possible to easily define screen transitions even in a large-scale system, and system development can be easily performed without reducing the readability of the entire system, and the development period can be shortened. A program generation apparatus, a program generation method, a program, and a recording medium are provided.
[0010]
[Means for Solving the Problems]
According to a first aspect of the present invention, in a program generation device that generates a web application program, a screen definition by a plurality of components and a transition destination screen when the component is instructed to the component of the screen Storage means (input / output stored in the external storage device 104 shown in FIG. 1) that stores first definition information (6 column key type = 11 transition screen ID of data item “T”) Based on the table 109 (FIGS. 5 and 6)) and the first definition information stored in the storage means, “a first program for generating and displaying a screen composed of the plurality of components (see FIG. 10). Display program) ”and“ second program for controlling screen transition by an event indicating that the component is designated (screen transition program shown in FIG. 10) ” (Code generation unit 107 shown in FIG. 1, Step 1002 (FIG. 19 in FIG. 10, FIG. 20), Step 1005 (FIG. 18)) and having a.
[0011]
According to a second aspect of the present invention, the storage means includes second definition information (five columns of IO classification = “F”) including definitions of a plurality of data items and definitions of arrangement of the data items in the database. Data item) ”, and the screen component includes a component corresponding to the data item (IO column of 5 columns =“ DI ”or“ DO ”data item). Features.
[0012]
According to a third aspect of the present invention, the generation means “a third program (a session variable shown in FIG. 10) that delivers predetermined information to the transition destination screen by an event indicating that the component has been instructed. Operation program or Java (registered trademark) Script) ”(the code generation unit 107 shown in FIG. 1, Step 1005 in FIG. 10 (Steps S506 and S507 in FIG. 18), or Step 1002 in FIG. 10 (Step S606 in FIG. 20). , S607).
[0013]
According to a fourth aspect of the present invention, the storage means includes third definition information (six columns) that associates a data item to be transferred to the transition destination screen when the component is instructed to the component of the screen. It also stores the item number shown in the processing function of the 7th column of the data item of the key type = “T”, or the data item itself of the 6th column type = “T” (IO classification = “DO”)). And the predetermined information is information corresponding to a data item associated with the component by the third definition information.
[0014]
In a fifth aspect of the present invention, the third program (the session variable operation program shown in FIG. 10) transfers the predetermined information to the transition destination screen by storing the predetermined information in a session object. It is a program.
[0015]
In a sixth aspect of the present invention, the third program (Java (registered trademark) Script shown in FIG. 10) transfers the predetermined information to the transition destination screen without using the predetermined information. The program is a delivery program.
[0016]
According to a seventh aspect of the present invention, the third program (Java (registered trademark) Script shown in FIG. 10) calls the transition destination screen by designating the predetermined information as a parameter. Is transferred to the transition destination screen.
[0017]
According to an eighth aspect of the present invention, when the data item associated with the constituent element by the third definition information is the constituent element itself (six items of key type = “T” data item IO) When the classification = “DO”), the third program calls the transition destination screen by designating information corresponding to the structural element as a parameter without using a session object. Information corresponding to the IO category of the column = “DO” and the key item of the 6 columns = “T”) is generated as a program for transferring to the transition destination screen.
[0018]
According to a ninth aspect of the present invention, the third program is a program called from a screen generated and displayed by the first program (a Java called from a screen generated and displayed by the display program (JSP) in FIG. 10). (Registered trademark) Script).
[0019]
According to a tenth aspect of the present invention, the generating means, based on the second definition information stored in the storage means, “data corresponding to the data item defined by the second definition information to the database. A “fourth program including processing for storing and processing for obtaining data corresponding to the data item from the database” is generated (code generation unit 107 shown in FIG. 1, Step 1003 in FIG. 10 (FIG. 17)). And
[0020]
According to an eleventh aspect of the present invention, in a program generation method in a program generation apparatus for generating a web application program, a definition of a screen by a plurality of components and a case where the components are instructed to the components of the screen Based on the first definition information that can define the transition destination screen, “the first program that generates and displays the screen composed of the plurality of components”, “the event indicating that the component is instructed” It has a generation process (Step 1002 (FIG. 19, FIG. 20), Step 1005 (FIG. 18) in FIG. 10) for generating a “second program for controlling screen transition”.
[0021]
A twelfth aspect of the present invention is a program for executing the program generation method described in the eleventh aspect.
[0022]
A thirteenth invention of the present invention is characterized in that a program for executing the program generation method described in the eleventh invention is stored in a recording medium so as to be readable by a computer.
[0023]
DETAILED DESCRIPTION OF THE INVENTION
The application development system of the present invention will be described below with reference to the drawings.
[0024]
FIG. 1 is a block diagram showing a configuration of a program generation apparatus showing an embodiment of the present invention.
[0025]
In the figure, reference numeral 101 denotes an input device, which corresponds to a pointing device such as a keyboard or mouse, and business specification information (arrangement of tables and data items in a database and the relationship between data items, that is, under what conditions certain data is It is possible to input information indicating what kind of data is originally obtained.
[0026]
Reference numeral 102 denotes a display device, which is composed of a CRT, LCD, or the like, and can display a business specification information input screen, business specification information input from the input screen, a generated program code, and the like. An external storage device 104 such as a hard disk stores an input / output table 109 for storing input business specification information, generated program codes (JSP code 112, servlet code 113, bean code 114), and the like. To do.
[0027]
A processing unit 103 includes a CPU, a ROM, a RAM, and the like, and is realized by the CPU loading and executing a program stored in the ROM, the external storage device 104, or other recording medium on the RAM. And includes a screen control unit 105, a specification analysis unit 106, and a code generation unit 107.
[0028]
The screen control unit 105 includes a business specification description unit 116 that controls a screen (not shown) of the display device 102 in order to input business specification information from the input device 101.
[0029]
The specification analysis unit 106 performs lexical analysis and grammatical analysis on the business specification information input from the input device 101 or read from the external storage device 104. The code generation unit 107 generates a program code (JSP code 112, servlet code 113, bean code 114) based on the business specification information analyzed by the specification analysis unit 106, and stores the generated program code in the external storage device 104. . Further, the code generation unit 107 creates a database (CREATE) and creates a table (for a database (DB) system (not shown)) based on the business specification information (input / output table 109) read from the external storage device 104. (CREATE TABLE) etc. shall be performed.
[0030]
An overall control unit 108 controls each unit such as the screen control unit 105, the specification analysis unit 106, and the code generation unit 107.
[0031]
FIG. 2 is a diagram showing an example of the entire configuration of a web application system using a servlet, JSP, and Bean generated by the code generation unit 107 shown in FIG.
[0032]
The servlet, JSP, and Bean generated by the code generation unit 107 are arranged on the application server 306 on the server 304 side in an executable state.
[0033]
This Web application system is used by the Web browser 302 from the client 301. By accessing the JSP 309 from the web browser 302, an HTML page is generated and returned to the client 301 side. Then, an HTML page 303 transmitted from the JSP 309 is displayed on the web browser 302.
[0034]
A request from the Web browser 302 is transmitted to the server 304 side via HTTP. The server 304 includes an HTTP server 305 and an application server 306, and the application server 306 includes a servlet and JSP execution environment.
[0035]
When a request is transmitted to the server 304 side, the corresponding servlet 307 is activated according to the request. The servlet 307 requests the corresponding Bean 308 to perform processing. Further, the Bean 308 accesses the database 311 using the DB access object 310, performs business-related processing and data processing, and holds the processing result. The DB access object 310 is a class created as a result of analyzing and designing a business, or an existing class that can be reused.
[0036]
Next, the Bean 308 is passed from the servlet 307 to the JSP 309 and the JSP 309 is called. The JSP 309 refers to the processing result held by the Bean 308, generates an HTML page, and returns it to the client 301 side. Alternatively, the Bean 308 may be directly executed from the JSP 309, an HTML page may be generated by referring to the Bean processing, and returned to the client 301 side. The HTML page 303 returned to the client 301 is displayed on the Web browser 302.
[0037]
The servlet 307 has a role of controlling by connecting requests such as receiving a request from the Web browser 302, processing request to the Bean 308, and calling the JSP 309. The JSP 309 is responsible for the display for outputting the HTML page, and the Bean 308 is responsible for processing related to operations such as access to the database 311. Although it is possible to process a request from the Web browser 302 using only the servlet 307 without using the Bean 308 or JSP 309, the role sharing can be performed by clearly separating each role by using the Bean 308 or JSP 309. It can be grasped concisely.
[0038]
FIG. 3 is a diagram showing a system configuration of a Web server that constitutes an application server of the Web application system generated by the code generation unit 107 shown in FIG.
[0039]
The Web server 400 includes a Java (registered trademark) servlet engine (servlet container) 401 for processing requests from browsers operating on a plurality of client PCs 405 transmitted via the network 404, and a Java (registered trademark). A main program (servlet) 402 for processing a request from a client browser given through the servlet engine 401, and a session object 403 for storing a session variable prepared for the main program 402 to maintain a session for each client. It is made up.
[0040]
The servlet session management function provides a dedicated storage area for each session as a mechanism (session mechanism) that maintains continuity between multiple web pages (between multiple HTTP protocols). Data can be retained as long as possible. Such a storage area is called a session object, and the session object 403 corresponds to this.
[0041]
FIG. 4 is a flowchart showing an example of a first control processing procedure in the program generation apparatus of the present invention, and corresponds to the operation of the overall control unit 108 of the processing apparatus 103 shown in FIG. Note that S101 to S106 indicate each step.
[0042]
The processing apparatus 103 shown in FIG. 1 has an input mode for inputting a business specification (input / output table) for generating a code and a generation mode for generating a program code from the input business specification (input / output table).
[0043]
First, when the overall control unit 108 is activated, in step S101, it is determined whether the mode selected by the operator's instruction from the input device 101 is the generation mode or the input mode, and if it is determined that the input mode has been selected. In step S102, the overall control unit 108 activates the screen control unit 105.
[0044]
In step S103, the activated screen control unit 105 activates the business specification input unit by the business specification description unit 116, displays an input screen (not shown), and generates the application name of the web application to be generated and the business specification from the operator. Accepts item input to an input / output table (details are shown in FIGS. 5 and 6 to be described later), stores the input / output table (FIGS. 5 and 6) in the external storage device 104, and ends the process. To do.
[0045]
On the other hand, in step S101, if it is determined that the mode selected by the operator's instruction from the input device 101 is the generation mode, the process proceeds to step S104, and the overall control unit 108 is based on the application name instructed by the operator. The input / output table (business specification information; details are shown in FIG. 5 and FIG. 6 to be described later) stored in the external storage device 104 is read out, and the specification analysis unit 106 is started to read Analysis and grammatical analysis are performed, and the information is stored in a work area in the RAM or the external storage device 104. The information stored in these work areas is used at the time of code generation processing by the code generation unit 107 activated in the following step S105. It is assumed that the application name is also stored in this work area.
[0046]
Next, in step S105, the overall control unit 108 activates the code generation unit 107, and registers a table for a database system (not shown) based on the input / output table subjected to lexical analysis and grammatical analysis by the specification analysis unit 106. And code generation.
[0047]
In step S106, the overall control unit 108 displays the generated code on the display device 102 according to an instruction from the operator, or a location designated by the user (for example, the external storage device 104 or another network connected to the network). Output processing to be written to the storage device of the apparatus.
[0048]
Each process will be specifically described below.
[0049]
First, a case where the input mode is selected by the operator will be described.
[0050]
When the input mode is selected, the overall control unit 108 activates the business specification description unit 116. As a result, a business specification input screen (not shown) is displayed on the display device 102, and the operator inputs the business specifications from the business specification input screen using the input device 101.
[0051]
The business specifications (input / output table) in the program generation apparatus of the present invention will be described below with reference to FIGS.
[0052]
5 and 6 are schematic diagrams for explaining the business specifications (input / output table) in the program generation apparatus of the present invention.
[0053]
In the figure, one column specifies an item number. Columns 2 and 3 represent the information (business specifications) describing the data item database arrangement and the relationship between the data items, and column 2 represents the data file number for input / output. There is a data item branch number (3 columns) as a field constituting the data file number. If “Button” is specified in the data file number (two columns), this item means that a button with some processing is generated.
[0054]
Column 4 is the data item name, which is the name of the field corresponding to the data item branch number (column 3).
[0055]
The input / output table is composed of file items, display items, and session items, and is identified by five columns of IO classifications. The classification is shown in FIG.
[0056]
As shown in FIG. 7, when the IO classification (5 columns) is “F”, it indicates that the data item branch number is a file item. Specifically, the definition of a plurality of data items used in the generated web application and the definition of the arrangement of each data item in the database are shown.
[0057]
When this IO category (5 columns) is “S”, the data item branch number is data registered in the session object (definition of a data item to be shared among a plurality of pages of the web application. In the case of “D *” (“*” indicates an arbitrary character string), the data item branch number is the display item on the screen. Indicates that
[0058]
Since the scope of the session variable defined by IO classification = “S” is determined by the combination of the application name and the client ID, the attribute name of the session variable is the data item name (file item or display item of the same application). ) Must be present. For example, item numbers 7 to 9 in the input / output table are data item names assigned to session variables, but each data item name exists in the same application data item (item numbers 1 to 3).
[0059]
Further, “D *” indicating a display item on the screen includes “DO” indicating that the data item branch number is a text output item, “DI” indicating that the item is a text input item, There is “DB *” indicating a button item.
[0060]
In addition, in “DB *” indicating that it is a button item on the screen, various processes for the session variable can be specified by specifying a processing function in column 7 to be described later.
[0061]
Furthermore, “DB *” indicating a button item on the screen includes “DB” indicating that the button item has no business processing attribute, “DBNinyo” indicating that the button item has an authentication processing attribute, There is “DBTsuika” or the like indicating an additional processing attribute.
[0062]
For example, as shown in item number 6, when a login button generated by specifying “DBNinyo” is designated, the servlet moves through the data file “Login” indicated by the reference data file number in the ninth column. Search is performed, and authentication processing is performed using both “UsrID” and “PassWd” indicated by the reference data item branch number. Then, a message alert indicating the authentication result ("authentication was successful" / "user ID is not registered" / "password is wrong") is generated, and only if the authentication result is OK Proceed to processing.
[0063]
Also, as shown in item number 30, when a login button generated by designating “DBTsuika” is designated, the servlet uses a reference data file number in 9 columns based on the information acquired from the web browser. An additional process of additionally updating the indicated data file “Ordr” is performed. Then, the process proceeds to the next process only when the addition process result is OK, and the message alert is generated when the addition process result is NG. Note that these messages may be defined by a message table or the like.
[0064]
Column 6 shows the type of search key for the data item, and its classification is shown in FIG.
[0065]
As shown in FIG. 8, when the key type (6 columns) is “K”, it indicates that the data item branch number is a primary key (primary key).
[0066]
Further, when the key type (6 columns) is “T”, it indicates that there is a screen transition when the display item of the screen corresponding to the data item branch number is instructed. As a result, the definition of the button that causes the screen transition and the name of the transition screen (application program) when the defined button is pressed can be defined within the framework of the business specification.
[0067]
Column 7 represents the type of processing function for the data item, and its classification is shown in FIG.
[0068]
As shown in FIG. 9, when the processing function (seven columns) is “S”, it indicates that a session variable is operated, and the operation contents of the session variable are described in eight columns.
[0069]
For example, in the case of item number 6, the contents of parentheses on the left side represent a set of session variables for which values are set, and the parentheses on the right side indicate sets of input / output item numbers for setting values. When the button generated by this definition is designated, the servlet assigns the values (user ID, name, password) of the item numbers 1, 2, and 3 to the session variables (user ID, name, password) of item numbers 7, 8, and 9. Password).
[0070]
Also, as in the case of item number 21, when the processing formula is described in a format such as “IF (first term, second term, third term)”, the button generated with this definition is indicated. Then, the servlet executes the arithmetic expression of the second term when the result of the arithmetic expression of the first term is “true”, whereas the servlet executes the third when the result of the arithmetic expression of the first term is “false”. Execute the arithmetic expression of the term and manipulate the session variable. In addition, what is described as “−” in the arithmetic expression indicates that the process does nothing.
[0071]
That is, when “number (item number 20)> 0”, the product code (item number 18), the product name (item number 19), and the number (item number 20) are set as session variables (item number 22, item number 23, It is stored (additional update) in item number 24).
[0072]
In other words, these define the storage (setting) timing of the session variable in the session object in association with the button instruction (event occurrence). Further, as described above, these storage timings can be defined for each session variable (one or more can be used).
[0073]
In addition, as shown in the processing function classification list of FIG. 9, when “E” is described in the processing function, the session is explicitly released when the button generated by the definition of the data item is designated. This indicates that processing (processing for deleting the corresponding session variable from the session object) is performed. The release contents of the session variable are described in 8 columns, and the item number of the session variable to be released is described as a set in parentheses. However, “All Off” is described only when all sessions are released.
[0074]
For example, in the definition of the logout button of item No. 34, “E” is specified in the processing function (column 7) and “All Off” is described in the processing formula. Show. When a button generated by this definition (that is, a logout button) is designated, the generated servlet releases all session variables from the system.
[0075]
In addition, in the definition of the order determination button of item number 30, “E” is designated as the machining function, and session variables that are desired to be opened in the machining formula are defined in pairs. In this definition, the sessions of item numbers 22, 23, and 24 are released.
[0076]
That is, these define the timing for deleting (releasing) the session variable from the session object in association with the button instruction (event occurrence). Further, as described above, these timings can be defined for each session variable (one or more can be used).
[0077]
When the timing for deleting (releasing) all session variables has been defined (when “All Off” is described in the processing formula), the timing for invalidating (releasing) the session object itself (for event occurrence) The definition of (corresponding timing) shall be shown.
[0078]
Although not shown in FIGS. 5 and 6, the timing at which the session object itself is invalidated (released) may be defined in association with the access interval from the client. That is, it may be configured to set a time for timeout when the client does not access for a predetermined time. The timeout time may be set in the input / output table shown in FIGS. 5 and 6 or in another setting file.
[0079]
Next, the 9th and 10th columns indicate the reference destination data file number and the reference destination data item branch number. When “DBNinyo” is specified in the IO classification (5 columns), the authentication process is performed. The data file number and the data item branch number to be used are shown in the reference destination data file number (9th column) and the reference destination data item branch number (10th column).
[0080]
When “DBTsuika” is specified in the IO classification (5 columns), the data file number used in the additional processing is shown in the reference data file number (9 columns).
[0081]
Furthermore, when “DO” is specified in the IO category (5 columns) and “T” is specified in the key function (6 columns), the data value corresponding to the data item is displayed on the transition destination screen. Passed as a passing parameter. In addition, when passing parameters at the time of screen transition, it is a common technique to implement using session variables, but setting a session variable to achieve only one screen transition is a session It is not the essence of variables. Therefore, in such a case, it is possible to define passing of parameters between screens without explicitly defining session variables, that is, without causing the server to maintain a session. Note that screen transition and parameter transfer at this time are performed by Java (registered trademark) Script. As described above, only when the transition destination screen is defined in the display item of the data item (IO category = “DO”), the data can be transferred between the screens without explicitly defining the session variable. it can. Therefore, it is possible to easily generate an optimum web application desired by the user by freely using data transfer using a session between a plurality of screens and data transfer not using a session.
[0082]
The eleventh column is a transition destination screen ID, and when “T” is specified in the key function (sixth column), the transition destination screen ID is displayed.
[0083]
Column 12 is the screen ID, column 13 is the screen name, and indicates the screen ID and screen name.
[0084]
The 14th column is a screen attribute indicating the business processing attribute of the screen. As this screen attribute, there is “Kensaku” for performing a search process to the database using the data file number specified by the target data file number in the 15th column. When a parameter is specified when the screen is called, the search process is performed using the parameter as a search condition. When “Session” is designated by the target data file number in the 15th column, the session variable is searched for instead of searching for the database.
[0085]
The input / output tables shown in FIGS. 5 and 6 are stored in the external storage device 104 in association with an application name (for example, “SyohinTymon”) input from a business specification input unit (not shown). .
[0086]
Although not shown in FIGS. 5 and 6, the timeout time of the session object (time for ending the session when the client access is not performed for a certain period of time) is shown in FIGS. It may be configured to be settable in an input / output table or a setting file (not shown).
[0087]
In the present embodiment, the input / output table shown in FIGS. 5 and 6 has been described as being input from an input screen (not shown). However, the input / output table is configured by a text file, CSV file, etc. It may be configured to be created by an editor or other application and stored in the external storage device 104.
[0088]
FIG. 10 is a schematic diagram showing the concept of the program generation process (process configuration) in the program generation apparatus of the present invention.
[0089]
Of the information in the input / output table 109 shown in FIGS. 5 and 6, a database (DB) is created and a table is created from a data file whose IO classification is “F” (Step 1001 (corresponding to FIG. 16 described later)). ).
[0090]
For example, a database is created (CREATE) with an application name (input from a user interface (not shown)), and the table name is set to “Login” from the item numbers 1 to 3 shown in FIGS. , A table is created in which each item in the table is “UsrID”, “Name”, and “PassWd”.
[0091]
Further, display program code is generated by JSP and Java (registered trademark) Script from the data file whose IO classification is “D *” (Step 1002 (corresponding to FIGS. 19 and 20 described later)). Specifically, data corresponding to a data item whose IO category is “DI” is input from the client, and display program code for generating data corresponding to a data item whose IO category is “DO” is generated to the client. Do.
[0092]
Further, a data operation program code for the database (DB) is created from the data file whose IO classification is “F” (Step 1003 (corresponding to FIG. 17 described later)). Specifically, the data operation of the data processing corresponding to the data item whose IO classification is “F” in the database (new / addition processing), the data acquisition processing (search processing) corresponding to the data item from the database Generate program code.
[0093]
Also, a program code for performing business processing is created from a data file whose IO classification is “DB *”.
[0094]
Further, a program code for performing a session variable operation is created from a data file whose IO category is “DB *” and processing function is “S” or “E” and a data file whose IO category is “S”. Specifically, the information corresponding to the data item (session variable) whose IO category is “S” shown in the processing formula of the data item (button) whose IO category is “DB *” and whose processing function is “S”, Processing for storing (setting) in the session object at the timing when the button is instructed (timing for occurrence of the button pressing event), and processing formula for the data item (button) whose IO classification is “DB *” and whose processing function is “E” The process of deleting (releasing) the information corresponding to the data item (session variable) whose IO classification is “S” from the session object at the timing when the button is instructed (the generation timing of the button press event) (note that When the processing expression is “All Off”, a session variable operation program for invalidating (releasing) the session object itself. Generate the program.
[0095]
In addition, a program code for performing a screen transition process is created from a data file having an IO classification “DB *” and a key function “T”. The business processing program, session variable operation program, and screen transition program of Step 1004 described above correspond to FIG.
[0096]
Only when the IO category is “DO” and the key function is “T”, the data item data is designated as a parameter to be passed to the transition destination screen by an event indicating that the display item of the data item is instructed. Then, a Java (registered trademark) Script code for calling the transition destination screen is created (corresponding to steps S606 and S607 in FIG. 20 described later). This makes it possible to automatically generate a screen display program (JSP) and a screen transition action program (Java (registered trademark) Script called by JSP) that do not use session variables.
[0097]
As described above, screens are associated with database items, transition screens are defined for each screen, and program codes are automatically generated from business specifications and business logic definitions for complex condition judgments and incidental data handling. be able to.
[0098]
10 is a conceptual diagram, and details are shown in flowcharts of FIGS. 15 to 20 described later.
[0099]
Hereinafter, the web application program generated based on the input / output tables shown in FIGS. 5 and 6 will be described specifically and in detail with reference to FIGS.
[0100]
FIGS. 11-14 is a schematic diagram which shows an example of the web application produced | generated in the program production | generation apparatus of this invention.
[0101]
The item numbers 1 to 3 of the input / output tables shown in FIGS. 5 and 6 indicate that the table name is “Login”, the item names in the table are “UsrID”, “Name”, “PassWd”, and “UsrID” is It is defined that a table as a primary key is created for a database system (not shown).
[0102]
Item numbers 4 to 6 define that a code for controlling the display and processing of a login screen 1100 as shown in FIG. 11 is generated.
[0103]
Specifically, item numbers 4 and 5 define the generation of labels 1101 and 1102 and text boxes 1103 and 1104 for inputting a user ID (UsrID) and a password (PassWd).
[0104]
Item No. 6 is authentication using the user ID (UsrID) and password (PassWd) of the database ("Login" table) shown in column 9 because "DBNinsho" is specified in the IO column of column 5. After processing, the values of Nos. 1, 2, and 3 are entered into the session variable object defined in Nos. 7, 8, and 9 based on the 8 columns of processing formulas (stored in the session object as session variables) “Login” has a function of transitioning to the shopping cart screen 1200 shown in FIG. 12 (that is, when the authentication process ends normally, the user information is maintained as a session variable and transitioning to the shopping cart screen 1200). "Button 1105 is defined to be generated.
[0105]
In this authentication process, the database ("Login" table) is searched using the primary key (user ID) input from the login screen, and the user ID and password registered in the database are acquired and input. If the user ID is not registered in the database, or if the entered password and the registered password are not equal, an alert display (not shown) is displayed. On the other hand, if the entered password and the registered password are equal, 1106 is displayed. Such a display is performed, and the process proceeds to the next process.
[0106]
Item Nos. 10 to 13 are tables in which the table name is “ShohinM”, the item names in the table are “ShohinCode”, “ShohinName”, “ShohinTanka”, “ShohinSetsumei”, and “ShohinCode” is the primary key. It is defined to create a database system (not shown).
[0107]
Item numbers 14 to 17 define that a code for controlling the display of a merchandise master (ShohinM) screen 11204 as shown in FIG. 12 is generated. In this product master screen 1204, since “Kensaku” is specified as the screen attribute of the 14th column, the 15th column database (“ShohinM” table) is searched (when a parameter is specified, the parameter is designated as a key). And a process for displaying a list of the search results is defined.
[0108]
Specifically, the item numbers 14, 15, 16, and 17 generate codes for displaying a list of search results of the product code (ShohinCode), the product name (ShohinName), the unit price (ShohinTanka), and the description (ShohinSetsumei). Is defined.
[0109]
The item numbers 18 to 21 define that a code for controlling the display of a shopping cart screen 1200 as shown in FIG. 12 is generated. In this shopping cart screen 1200, since “Kensaku” is specified in the screen attribute of the 14th column, the database (“ShohinM” table) shown in the 15th column is searched (when a parameter is specified, the parameter is specified). And a process for displaying a list of the search results is defined.
[0110]
Specifically, item numbers 18 and 19 define that a code for displaying a search result of a product code (ShohinCode) and a product name (ShohinName) is generated. Item No. 20 defines that a text box for inputting the number (Kosu) is generated. Furthermore, the item number 21 is a session variable object in which the values of the item numbers 18, 19, and 20 are defined by the item numbers 22, 23, and 24 when the value of the item number 20 is positive based on the 8-column processing formula. And “To Order” button 1202 for transitioning to the order content confirmation screen (kakuun) is defined to be generated. In addition, the product code shown in Item No. 18 indicates that the product is indicated by instructing this display with a mouse or the like because the IO classification in the 5th row is “DO” and the key function in the 6th row is designated as “T”. Transition to the master (ShohinM) screen 1204 is defined. At this time, the product code is passed to the product master screen 1204 as a parameter.
[0111]
Item numbers 25 to 30 define that a code for controlling the display processing of the order confirmation screen (Kakuunin) 1300 and the order confirmation screen as shown in FIG. 13 is generated. In this order confirmation screen, “Kensaku” is specified in the screen attribute of the 14th column, so the session variable object (Session) shown in the 15th column is searched (when a parameter is specified, the parameter is keyed) And a process for displaying a list of the search results is incorporated.
[0112]
Specifically, item numbers 25, 26, and 27 define that a code for displaying a search result of a product code (ShohinCode), a product name (ShohinName), and the number (Kosu) is generated. The item number 28 opens the session variable object defined in the item numbers 22, 23, and 24 based on the eight columns of processing formulas (deletes the session variable from the session object), and the shopping shown in FIG. It is defined that a “cancel all” button 1201 for transitioning to a cart screen 1200 is generated. Further, item number 29 defines that a “Continue Shopping” button 1302 for transitioning to a shopping cart screen 1200 is generated. In addition, item number 30 is registered after the contents of this order confirmation screen are registered in the database ("Order" table) shown in column 9 because "DBTsuika" is specified in the IO column of 5 columns. , Based on the processing formulas in 8 columns, release the session variable object defined in the item numbers 22, 23, 24, and generate an “order determination” button 1303 for transitioning to the logout screen shown in FIG. Is defined.
[0113]
In addition, items 31 to 33 are created in the database with a table name “Order”, each item name in the table “UsrID”, “ShohinCode”, “Kosu”, and “UsrID” as a primary key. Is defined.
[0114]
Further, item numbers 34 and 35 define that a logout screen 1400 as shown in FIG. 14 is generated.
[0115]
Specifically, the item number 34 releases all session variable objects based on the processing formula (All Off) (invalidates the session object itself), and transitions to the login screen (Login) 1100 shown in FIG. It defines that a “logout” button 1401 is generated.
[0116]
The item number 35 defines that a “shopping” button 1402 for transitioning to the shopping cart screen (Cart) 1200 shown in FIG. 12 is generated.
[0117]
As described above, the application generated based on the input / output tables shown in FIGS. 5 and 6 is activated when the JSP corresponding to the login screen 1100 shown in FIG. 11 is started from the web browser. Is displayed on the client's web browser.
[0118]
Next, when the user ID and password are input to the displayed login screen 1100 and the login button 1105 is instructed, data is transferred to the servlet, authentication processing is executed by the servlet, and authentication is successful. This is notified (notification screen 1106 shown in FIG. 11), and a JSP corresponding to the shopping cart screen 1200 shown in FIG. 12 as a transition destination screen is started. Then, a shopping cart screen is displayed on the web browser of the client. In this shopping cart screen, the user can make a purchase reservation for a product by inputting a numerical value in the quantity column of the displayed product and instructing a “To Order” button 1202.
[0119]
Next, when the product code 1201 is designated on the shopping cart screen 1200, the JSP corresponding to the product master screen 1204 is started in another window by Java (registered trademark) Script (the designated product code is set as a parameter). As a). Then, the product master screen is displayed on the web browser of the client. In this processing, the instructed product code can be passed to the product master screen 1204 without using a session variable, and the details of the product master using the product code as a key can be displayed. For example, in the example of the product master screen 1204, a detailed screen as a result of searching for the product master with the product code “001” is displayed.
[0120]
In addition, when the “Order” button 1202 is instructed on the displayed shopping cart screen 1200, data is transferred to the servlet, and the “Product Code”, “Product Name”, and “Quantity” that are the order contents by the servlet are displayed. Processing for storing data in a session variable is executed, and a JSP corresponding to the order content confirmation screen 1300 shown in FIG. Then, an order details confirmation screen 1300 is displayed on the web browser of the client.
[0121]
In the order content confirmation screen 1300 shown in FIG. 13, the content input on the shopping cart screen 1200 of FIG. 12 is displayed based on the session variable.
[0122]
Next, when the “Cancel All” button 1301 is instructed on the displayed order content confirmation screen 1300, data is transferred to the servlet, and the servlet sets session variables of “product code”, “product name”, and “number”. The opening process is executed, and the JSP corresponding to the shopping cart screen 1200 that is the transition destination screen is activated. Then, the shopping cart screen 1200 shown in FIG. 12 is displayed on the web browser of the client.
[0123]
In addition, when the “Continue Shopping” button 1302 is instructed on the order details confirmation screen 1300, data is transferred to the servlet, and the JSP corresponding to the shopping cart screen as the transition destination screen is activated by the servlet. Then, a shopping cart screen 1200 is displayed on the client's web browser.
[0124]
Further, when an “order determination” button 1303 is instructed on the order content confirmation screen 1300, the data is transferred to the servlet, and the servlet executes an additional update process for the database table Order based on the transferred data. Is successful, processing for releasing the session variables of “product code”, “product name”, and “number” is executed, and the JSP corresponding to the logout screen 1400 that is the transition destination screen is activated. Then, a logout screen 1400 shown in FIG. 14 is displayed on the web browser of the client.
[0125]
Next, when a “logout” button 1401 is instructed on the displayed logout screen 1400, data is transferred to the servlet, and processing for releasing all session variables is executed by the servlet, and a login screen which is a transition destination screen JSP corresponding to is activated. Then, the login screen 1100 shown in FIG. 11 is displayed on the web browser of the client.
[0126]
In addition, when a “shopping” button 1402 is instructed on the logout screen 1400, data is transferred to the servlet, and the JSP corresponding to the shopping cart screen that is the transition destination screen is activated by the servlet. Then, a shopping cart screen 1200 is displayed on the client's web browser.
[0127]
The above is the basic flow of the application generated based on the input / output tables shown in FIGS.
[0128]
Hereinafter, the code generation process by the code generation unit 107 illustrated in FIG. 1 will be described with reference to the flowcharts of FIGS.
[0129]
FIG. 15 is a flowchart showing an example of the second control processing procedure of the present invention, and corresponds to the code generation processing by the code generation unit 107 shown in FIG. S201 to S204 indicate steps.
[0130]
First, in step S201, a DB system (not shown) is accessed based on the business specification information stored in the input / output table 109, and a database (DB) is created (details are shown in FIG. 16).
[0131]
Next, in step S202, a bean code 114 for performing input data check processing and data operation processing for the database created in step S201 is generated based on the input / output table 109 (details are shown in FIG. 17).
[0132]
Next, in step S203, based on the input / output table 109, the input data from the web browser is acquired and the servlet code 113 for controlling the entire web application is generated (details are shown in FIG. 18).
[0133]
Next, in step S204, a JSP code 112 for controlling the display on the web browser (controlling the output of each screen shown in FIGS. 11 to 14 to the web browser) is generated (details are shown in FIGS. 19 and 20). The process is terminated and the process returns to the flowchart of FIG.
[0134]
FIG. 16 is a flowchart showing an example of the third control processing procedure of the present invention, which corresponds to the DB creation processing shown in step S201 of FIG. S301 to S305 indicate each step.
[0135]
First, in step S301, an application name is acquired from a work area to a DB system (not shown), and a command for creating a DB having the application name as a database name is issued. Next, in step S302, connection is made to the DB created in step S301.
[0136]
In step S303, one data file number of IO classification (5 columns) = “F” defined in the input / output table 109 is acquired from the work area, and the data file number is stored in the table name and the data file number. A SQL statement for creating a table with the data item branch number as the item name in the table is generated, and a query of the SQL statement is executed.
[0137]
Next, in step S304, it is determined whether or not the processing in step S303 has been completed for all data files with IO classification (5 columns) = “F”. If not, the process returns to step S303. On the other hand, if it is determined that the process has already been completed, the process proceeds to step S305.
[0138]
In step S305, a process of disconnecting from the database is performed, the process ends, and the process returns to the flowchart of FIG.
[0139]
FIG. 17 is a flowchart showing an example of a fourth control processing procedure according to the present invention, and corresponds to the business processing bean generation processing shown in step S202 of FIG. In addition, S401-S405 shows each step.
[0140]
First, in step S401, one data file number of IO classification (5 columns) = “F” defined in the input / output table 109 is obtained from the work area, and a business processing bean file corresponding to the data file number is obtained. Is generated. The bean file name is, for example, a bean file in which the data file number and the character string “Bean” are added to the application name and the extension is “java (registered trademark)”. At this time, a declaration of “package name (for example, a data file number and a character string“ Bean ”added to an application name) declaration,“ java (registered trademark). ”And a code for implementing an interface necessary for using Java (registered trademark) Beans” are stored.
[0141]
Next, in step S402, a search processing code is generated. In detail, “Connect to DB (may be configured to use the user ID (UsrID) and password (PassWD) stored in the session variable at this time), and use the specified parameter as the search condition. An SQL statement query for performing a search process on the table corresponding to the data file number is executed, a search result is returned, and a code (search method) for disconnecting from the DB is generated in the Bean file.
[0142]
Next, in step S403, a new / addition processing code is generated. Specifically, “Connect to DB, execute a query of an SQL statement for performing additional processing on the table corresponding to the data file number as the newly added data with the specified parameter, and return the new addition result, A code for disconnecting from the DB (additional method) "is generated in the Bean file.
[0143]
Next, in step S404, a deletion process code is generated. For more details, refer to “Code to connect to DB, execute SQL statement to specify deletion target record by specified parameter and perform deletion process, return deletion result, and disconnect from DB (deletion method) Is generated in the Bean file.
[0144]
In step S405, it is determined whether or not the processing in steps S401 to S405 has been completed for all data files with IO classification (5 columns) = “F”. If not, the process returns to step S401. On the other hand, if it is determined that the process has already been completed, the process is terminated and the process returns to the flowchart of FIG.
[0145]
Note that the code generated in the Bean file by the above steps S402, S403, and S404 includes: "driver class loading process, database connection process, SQL statement object generation process, data passed from servlet" “A process for acquiring a result by executing a query of an SQL statement based on SQL, a process for setting a result, a code for performing a process for closing an SQL statement object and a database connection object”, and the like are described.
[0146]
The search processing code, new / addition processing code, and deletion processing code generated in steps S402, S403, and S404 are business processing classes defined in the Bean file (for example, class name: character string in data file name). The search method, authentication method, add method, and delete method in “DBAccess” are added.
[0147]
Further, in the flowchart of FIG. 17, a configuration is shown in which search processing codes, new addition processing codes, and deletion processing codes are generated for all data files of “F” of the IO classification defined in the input / output table. Only the processing code defined in the input / output table may be generated.
[0148]
For example, in the input / output tables shown in FIGS. 5 and 6, item number 6 defines IO classification (5 columns) = “DBNinsho” and reference data file number (9 columns) = “Login”. The search processing code for the “Login” table of the database is generated. Further, in item numbers 14 to 17, since the screen attribute (14 columns) = “Kensaku” and the target data file number (15 columns) = “ShohinM” are defined, the search processing code for the “ShohinM” table in the database is Generate. Furthermore, since item number 30 defines IO classification (5 columns) = “DBTsuika” and reference data file number (9 columns) = “Order”, an additional processing code for the “Order” table of the database is generated. You may comprise.
[0149]
FIG. 18 is a flowchart showing an example of the fifth control processing procedure of the present invention, and corresponds to the servlet generation processing shown in step S203 of FIG. S501 to S513 indicate each step.
[0150]
First, in step S501, one data file number of IO classification (5 columns) = “D *” defined in the input / output table 109 is acquired from the work area, and the data item corresponding to the button is assigned to the data file number ( If there is no data item corresponding to the button, the process proceeds to step S513 as it is.
[0151]
On the other hand, if it is determined in step S501 that there is a data item corresponding to the button in the data file number, a servlet file is generated in step S502. The servlet file name is, for example, a servlet file in which the data file number and the character string “Servlet” are added to the application name and the extension is “java (registered trademark)”. At this time, at the top of the servlet file, “code to import the Bean package to be used and other necessary packages, access modifier, class definition, inheritance of class (for example, HTTP Servlet class), web browser (HTML form) ”) Is stored in the“ code indicating the method for receiving the parameter (transmission information) transmitted from () ”.
[0152]
Next, in step S503, “a code for receiving transmission information (input information) from the web browser” is generated in the servlet file.
[0153]
Next, in step S504, one data item corresponding to the button in the data file number is acquired, and the data item corresponding to the button is a button with business processing (IO classification (5 columns) is “DBNinsho”, ("DBKensaku", "DBTsuika", "DBSakuzuyo")). If it is determined that the button is not a button with business processing, the process proceeds to step S506.
[0154]
On the other hand, if it is determined in step S504 that the button is associated with a business process, in step S505, “a code for executing the corresponding business process when the button is instructed” is generated in the servlet file. To do.
[0155]
More specifically, when the button is “DBNinsyo”, “when the button is instructed, the reference data file number (9 Execute the search method corresponding to the data file specified in (Column), and perform the authentication process by comparing the search result with the data acquired from the web browser corresponding to the specified reference data item branch number (10 columns) If the authentication fails, a code for terminating the process ”is generated in the servlet file.
[0156]
When the button is “DBKensaku”, “when the button is instructed, the data acquired from the web browser is used as a search condition to the data file specified by the reference data file number (9 columns). Generate code that executes the corresponding search method and retrieves the search results.
[0157]
When the button is “DBTsuika”, “when the button is instructed, the data acquired from the web browser is added to the data file designated by the reference data file number (9 columns) as additional data. Generate code that executes the corresponding additional method ".
[0158]
When the button is “DBSakuzuyo”, “when the button is instructed, the data file specified by the reference data file number (9th column) with the data acquired from the web browser as the data to be deleted. Generate code that executes the delete method corresponding to.
[0159]
Next, in step S506, it is determined whether or not the processing function of the data item corresponding to the button = “S”. If it is determined that it is not “S”, the process proceeds to step S508.
[0160]
On the other hand, if it is determined in step S506 that the processing function (seven columns) of the data item corresponding to the button = “S”, in step S507, although not shown, “Acquire session object (if not present” "Generate code" in the servlet file (not shown), based on the definition of the processing formula (8 columns), "When the button is instructed, the session object to the session variable (specified in the processing formula Generate code to add and update session variables based on the servlet file.
[0161]
Note that to acquire a session object, the getSession () method is used in the create mode. The session variable is set to the session object using the setAttribute () method. Furthermore, in order to refer to a session variable from a session object, a getAttribute () method is used.
[0162]
Next, in step S508, it is determined whether or not the processing function of the data item corresponding to the button is “E”. If it is determined that the processing function is not “E”, the process proceeds to step S510.
[0163]
On the other hand, if it is determined in step S508 that the processing function of the data item corresponding to the button (seven columns) = “E”, in step S509, although not illustrated, “code for acquiring a session object” is set as a servlet. Generated in the file (not shown) and based on the definition of the processing formula (8 columns) “When the button is specified, the attribute in the session object (the attribute corresponding to the session variable specified in the processing formula) Is generated in the servlet file. If it is desired to specify “All Off” in the processing expression, a code for opening (invalidating) the session object of the user is generated.
[0164]
Note that to acquire a session object, the getSession () method is used in the create mode. Also, the removeAttribute () method is used to delete a session variable from the session object. Furthermore, the invalidate () method is used to invalidate the session object itself.
[0165]
Further, “G” indicating other calculation processing is provided in the processing function. For example, when it is determined that the processing function (7 columns) = “G” of the data item corresponding to the button, the processing formula (8 Based on the definition of the column, “a code for executing the arithmetic processing specified by the processing expression when the button is designated” may be generated in the servlet file.
[0166]
Next, in step S510, it is determined whether or not the key type (six columns) of the data item corresponding to the button is “T”. If it is determined that the key type is not “T”, the process proceeds to step S512. .
[0167]
On the other hand, if it is determined in step S510 that the key type of the data item corresponding to the button is “T”, in step S511, “the button is selected” based on the instruction of the transition destination screen ID (11th column). When instructed, a code for calling a JSP corresponding to the transition destination screen is generated in the servlet file.
[0168]
Next, in step S512, it is determined whether or not the processing in steps S504 to S511 has been completed for all the buttons in the data file. If the processing has not been completed, the process returns to step S504. If it is determined, the process proceeds to step S513.
[0169]
In step S513, it is determined whether or not the processing in steps S501 to S512 has been completed for all data files with IO classification (5 columns) = “D *”. If not yet completed, the process returns to step S501. On the other hand, if it is determined that the process has already been completed, the process ends and the process returns to the flowchart of FIG.
[0170]
If the session object timeout time is set in the input / output table shown in FIG. 5 or FIG. 6 or the setting file (not shown), the timeout is set in the servlet file. It may be configured to generate a “code for performing a process for setting to do”.
[0171]
19 and 20 are flowcharts showing an example of the sixth control processing procedure according to the present invention, which corresponds to the JSP generation processing shown in step S204 of FIG. S601 to S615 indicate each step.
[0172]
First, in step S601, one data file number of IO division (5 columns) = “D *” defined in the input / output table 109 is acquired from the work area, and a JSP file corresponding to the data file is generated. As the file name of the JSP file, for example, the data file name is added to the application name and the extension is “jsp”. The JSP file includes “a code for setting the MIME type of the JSP page and a character set to be encoded, a code for instantiating a Bean corresponding to the data file, and an“ html ”tag“ <head><“title> application name </ title>” etc. ”is generated and stored.
[0173]
Next, in step S602, it is determined whether or not there is a data item having IO classification (5 columns) = “DO” and key type (6 columns) = “T” in the data file number. In the case, the process proceeds to step S604.
[0174]
On the other hand, if it is determined in step S602 that there is a data item with IO classification (5 columns) = “DO” and key type (6 columns) = “T” in the data file number, in step S603, “ A new window is displayed, and a Java (registered trademark) Script code for screen transition for accessing a JSP corresponding to the transition destination screen from the window is generated in the JSP file. At this time, the program code is generated on the transition destination screen so as to pass the value of the data item as a parameter to the transition destination screen.
[0175]
Next, after storing the html tag “</ head><body>” and the like, in step S604, it is determined whether “Kensaku” is specified in the screen attribute (14th column) of the data file number. If it is determined that it is not designated, the process proceeds to step S606.
[0176]
On the other hand, if it is determined in step S604 that “Kensaku” is specified in the screen attribute (14th column) of the data file number, in step S605, “Bean is used to execute the search process. Is generated, and the process proceeds to step S606.
[0177]
Next, in step S606, one data item is extracted from the data file number, and whether or not IO classification (5 columns) = “DO” and key type (6 columns) of the data item is “T”. If it is determined that IO classification = “DO” and key type = “T”, the process proceeds to step S608.
[0178]
On the other hand, if it is determined in step S606 that the IO classification (5 columns) = “DO” and the key type (6 columns) = “T” of the data item, in step S607, “output indicating the data item is displayed”. “Code for generating items” is generated in the JSP file. However, when the output item is specified, this code uses the value of the data item as a parameter, specifies the transition destination screen ID (11th column), and activates the above-described Java (registered trademark) Script for screen transition. Generate as follows.
[0179]
Next, in step S608, it is determined whether IO category (5 columns) = “DO” and key type (6 columns) ≠ “T” of the data item, and IO category = “DO” and key type. If it is determined that ≠ “T”, the process proceeds to step S610.
[0180]
On the other hand, if it is determined in step S608 that the IO classification (5 columns) = “DO” and the key type (6 columns) ≠ “T” of the data item, in step S609, “display the data item”. "Code for generating a display output item to be generated" is generated in the JSP file.
[0181]
Next, in step S610, it is determined whether or not the IO category (5 columns) of the data item is “DI”. If it is determined that the IO category is not “DI”, the process proceeds to step S612.
[0182]
On the other hand, if it is determined in step S610 that the IO classification (5 columns) of the data item is “DI”, “code for generating a text box for inputting the data item” is set in step S611. Generate in the JSP file.
[0183]
Next, in step S612, it is determined whether or not the IO category (5 columns) of the data item is “DB *”. If it is determined that the IO category is not “DB *”, the process proceeds to step S614. .
[0184]
On the other hand, if it is determined in step S612 that the IO classification (5 columns) of the data item is “DB *”, “code for generating a button corresponding to the data item” is stored in the JSP file in step S613. Generate within. However, when the button is instructed, the corresponding servlet is activated, and the code is generated so that the form data is transmitted to the servlet.
[0185]
Next, in step S614, it is determined whether or not the processing in steps S606 to S613 has been completed for all data items in the data file. If it is determined that the processing has not ended, the process returns to step S606.
[0186]
On the other hand, if it is determined in step S614 that the processing in steps S606 to S613 has been completed for all data items in the data file, the html tag “</ body></html>” or the like is added. After storing in the JSP file, the process proceeds to step S615.
[0187]
Next, in step S615, it is determined whether or not the processing of steps S601 to S614 has been completed for all data files with IO classification (5 columns) = “D *”, and if it is determined that the processing has not ended. Returns to step S601.
[0188]
On the other hand, if it is determined in step S615 that the processes in steps S606 to S613 have been completed, the process ends and the process returns to the flowchart in FIG.
[0189]
In this flowchart, as shown in steps S606 and S607, when it is determined that the IO category (5 columns) = “DO” and the key type (6 columns) = “T” of the data item, the data item is In the above description, the code is generated so that the Java (registered trademark) Script for screen transition is started when instructed. However, the IO classification (5 columns) = “DO” and the key type (6 columns) of the data item. = “T” and only when it is determined that the data item is the primary key of the database corresponding to the transition destination screen ID (11th column), when the data item is instructed, Java for screen transition (Registered trademark) Script is generated to start Script, while IO classification (5 columns) = “DO” and key type (6 columns) = “T” of the data item If it is determined that the data item is not the primary key of the database corresponding to the transition destination screen ID (11th column), the servlet corresponding to the data item is instructed and the form data is transferred to the servlet. It is good also as a structure which produces | generates a code | cord | chord so that it may transmit.
[0190]
The HTTP session sets a session ID in a cookie and sends it to the client side, and the web browser can use the session object by the session ID in the cookie. However, some web browsers are configured not to accept this cookie, and some web browsers of portable terminals such as mobile phones cannot accept cookies. In order to support such web browsers, rewrite of the web server in the web application execution environment must be set to be effective, and "whether or not the web browser can enjoy cookies by sending a dummy cookie to the web browser etc. If the client does not receive the cookie, a code including a process of transmitting the session ID with the client as a URL parameter to the client may be generated.
[0191]
Thereby, the web application which can respond also to the web browser which cannot receive a cookie can be automatically generated.
[0192]
By designing work with the program code generated by the above processing, generating input / output tables with session variables as data items, and defining the relationship between the input / output tables, the focus of development work is System development using session variables can be easily performed, and development work can be reduced, so the development period can be shortened.
[0193]
Also, by automatically generating session variable objects from business specifications, it is possible to easily perform complex and advanced programming using session variables without requiring special knowledge of Java (registered trademark). Work can be reduced.
[0194]
Furthermore, since a web application can be automatically generated from the input / output table, it is possible to easily develop a web application with excellent maintainability that can flexibly cope with changes in the system environment.
[0195]
In addition, since session variables can be selected and released at arbitrary timings, unnecessary resources on the server side can be reduced, and an excellent web application that can reduce the load on the server can be easily generated.
[0196]
As described above, session variables can be defined in the business specification framework (input / output table) for the server-side program to maintain a session with each client, and session variables are acquired and stored at the user's optimum timing. A web application can be automatically generated.
[0197]
In addition, a mechanism for selecting and releasing a session variable at any timing can be defined within the framework of the business specification, and a web application that automatically releases a session variable at an optimum timing desired by the user can be automatically generated.
[0198]
In addition, since screen transitions can be defined within the framework of business specifications, it is not necessary to grasp all states and screen names in those states, but only the relationship between buttons and transition destination screens between two consecutive screens. This makes it easy to define screen transitions even in a large-scale system, making system development easy and reducing development work without reducing the readability of the entire system. Therefore, the development period can be shortened.
[0199]
Also, by automatically generating a screen transition program from business specifications, it is possible to generate web application programming code without requiring special knowledge of program code such as Java (registered trademark), thereby reducing development work. be able to.
[0200]
By automatically generating web applications from such highly readable definition information, it is possible to easily develop web applications with excellent maintainability that can be flexibly handled even when the system environment changes. .
[0201]
In the present embodiment, the case where a web application using a server-side Java (registered trademark) program is generated has been described. However, the generated program code is not limited to Java (registered trademark), but ASP. It may be a web application such as (Active Server Pages) or PHP (Hypertext Preprocessor).
[0202]
Moreover, although the case where Java (trademark) Script was used was demonstrated, you may use another script language.
[0203]
As described above, session variables can be obtained from the business specifications related to the defined session simply by defining the session variables as part of the business specifications describing the data item database layout and the relationship between the data items. Web applications to be saved / released can be automatically generated.
[0204]
Note that the program generation apparatus of the present invention is applicable not only to the HTTP protocol but also to any protocol as long as it is a sessionless protocol.
[0205]
In addition, the case of generating a web application that uses a session to hold data items that are to be shared between multiple pages of the generated web application has been described. However, the data that is to be shared between multiple pages can be set in a cookie or a client It may be configured to set in the hidden field of the form passed to. However, considering security, it is considered more appropriate to use a session.
[0206]
Further, all the configurations in which the above-described modifications are combined are also within the scope of the present invention.
[0207]
Furthermore, the configuration and contents of the input / output tables in FIGS. 5 and 6 are not limited to this, and it goes without saying that the configurations and contents are configured in accordance with the application and purpose.
[0208]
Although one embodiment has been described above, the present invention can take an embodiment as, for example, a system, apparatus, method, program, or recording medium, and specifically includes a plurality of devices. The present invention may be applied to a system including a single device.
[0209]
Note that the program generation apparatus shown in the present embodiment generates in advance an input / output table (FIGS. 5 and 6) including transition destination screen information associated with buttons and data display items constituting the screen, Based on the input / output table, the code for the web application that performs screen transition is generated. Therefore, it is necessary to know only the relationship between the button and the transition destination screen between two consecutive screens. Screen transition can be easily defined even in a system.
[0210]
On the other hand, in the interactive software constructing / driving apparatus shown in Patent Document 1 shown in the column of the prior art, it is necessary to generate a state transition table in which a state transition definition including a description about a screen name is described. Therefore, it is necessary to grasp all the states in the system. However, in a large-scale system, there are a considerable number of states to be defined, and it is very difficult to grasp all of these states and screen names in those states. Moreover, even if all these states and the screen names in the states can be grasped, managing all of these states and screen names in the state transition definition table as shown in the above-mentioned Patent Document 1 Readability is reduced, maintainability is poor, and errors are likely to occur.
[0211]
In the present invention, the above-mentioned screen transition is also defined in the framework of the input / output table that defines the definition of the data item and the arrangement of the data item in the database. In addition to the state transition definition table described above, the screen item constraint table, the database item correspondence table, and the like need to be created by the user, which is further complicated.
[0212]
Thus, in the definition of screen transition, the present invention and the above-mentioned Patent Document 1 are fundamentally different.
[0213]
Furthermore, in Patent Document 1 shown in the column of the prior art, by preparing a framework in advance, the amount of individual programs to be individually programmed by the user is reduced. However, in the present invention, all codes necessary for the Web application are generated based on the input / output table defining the screen transition. In the present invention, the user uses Java (registered trademark) or the like. There is no need to do any programming that was done. Also in this point, the present invention and the above-mentioned Patent Document 1 are fundamentally different.
[0214]
Furthermore, in the present invention, even when information is transferred to the screen at the transition destination at the time of screen transition, within the framework in the input / output table described above (definition of data items and definition of arrangement of the data items in the database). Is defined in In addition, when transferring information, even the specification of whether to transfer information using a session object or to transfer information without using a session object is within the framework of the input / output table described above. To define.
[0215]
As described above, the present invention solves the various problems of the above-mentioned Patent Document 1, and further allows flexible designation of data transfer between a plurality of pages of a web application within a framework of business specifications. , Non-use, etc.) and an excellent web application program is generated.
[0216]
The points described above are considered matters to be particularly noted when considering the difference between the program generation device shown in the present embodiment and the interactive software construction / drive device described in Patent Document 1.
[0217]
The configuration of a data processing program that can be read by the program generation device according to the present invention will be described below with reference to the memory map shown in FIG.
[0218]
FIG. 21 is a diagram for explaining a memory map of a recording medium (storage medium) for storing various data processing programs that can be read by the program generating apparatus according to the present invention.
[0219]
Although not specifically shown, information for managing a program group stored in the recording medium, for example, version information, creator, etc. is also stored, and information depending on the OS on the program reading side, for example, a program is identified and displayed. Icons may also be stored.
[0220]
Further, data depending on various programs is also managed in the directory. In addition, when a program or data to be installed is compressed, a program to be decompressed may be stored.
[0221]
The functions shown in FIGS. 4, 15, 16, 17, 18, 19, and 20 in this embodiment may be performed by a host computer by a program installed from the outside. In this case, the present invention is applied even when an information group including a program is supplied to the output device from a recording medium such as a CD-ROM, a flash memory, or an FD, or from an external recording medium via a network. Is.
[0222]
As described above, a recording medium recording software program codes for realizing the functions of the above-described embodiments is supplied to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus stores the recording medium in the recording medium. It goes without saying that the object of the present invention can also be achieved by reading and executing the programmed program code.
[0223]
In this case, the program code itself read from the recording medium realizes the novel function of the present invention, and the recording medium storing the program code constitutes the present invention.
[0224]
As a recording medium for supplying the program code, for example, a flexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, DVD-ROM, magnetic tape, nonvolatile memory card, ROM, EEPROM, A silicon disk or the like can be used.
[0225]
Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) or the like running on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.
[0226]
Furthermore, after the program code read from the recording medium is written in a memory provided in a function expansion board inserted in the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that the case where the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.
[0227]
Further, the present invention may be applied to a system composed of a plurality of devices or an apparatus composed of a single device. Needless to say, the present invention can be applied to a case where the present invention is achieved by supplying a program to a system or apparatus. In this case, by reading a recording medium storing a program represented by software for achieving the present invention into the system or apparatus, the system or apparatus can enjoy the effects of the present invention. .
[0228]
Furthermore, by downloading and reading out a program represented by software for achieving the present invention from a server, database, etc. on a network using a communication program, the system or apparatus can enjoy the effects of the present invention. It becomes.
[0229]
【The invention's effect】
As described above, according to the present invention, the definition information is defined in advance so that the screen can be defined by a plurality of components and the transition destination screen can be defined when the component of the screen is instructed. Based on the definition information, “first program for generating and displaying a screen composed of the plurality of components”, “second program for controlling screen transition by an event indicating that the components are instructed” It is not necessary to grasp all the states in the system and all the screen names in the system, and only grasps the relationship between the button and the transition destination screen between two consecutive screens. Even in a system, screen transitions can be easily defined, system development can be easily performed without reducing the readability of the entire system, and the development period can be shortened. It can be.
[0230]
In addition, it is possible to define screen transitions within the framework of business specifications that define the definition of data items and the placement of the data items in the database, thus facilitating system development without reducing the readability of the entire system. Development time can be reduced and the development period can be shortened.
[0231]
Furthermore, by automatically generating a screen transition program from business specifications, it is possible to easily generate program code without requiring special knowledge of programming such as Java (registered trademark), thereby reducing development work. be able to.
[0232]
In addition, information to be transferred to a transition destination screen at the time of screen transition can be flexibly specified according to a situation in which the information is passed by a method using a session variable or a method not using a session variable.
[0233]
Therefore, it is possible to realize a desired screen transition, and it is possible to easily develop a web application excellent in maintainability that can flexibly cope with a change in the system environment.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a program generation device showing an embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of the overall configuration of a web application system using a servlet, JSP, and Bean generated by a code generation unit illustrated in FIG. 1;
FIG. 3 is a diagram showing a system configuration of a Web server that constitutes an application server of the Web application system generated by the code generation unit shown in FIG. 1;
FIG. 4 is a flowchart showing an example of a first control processing procedure in the program generation apparatus of the present invention.
FIG. 5 is a schematic diagram for explaining a business specification (input / output table) in the program generation apparatus of the present invention.
FIG. 6 is a schematic diagram for explaining business specifications (input / output table) in the program generation apparatus of the present invention.
7 is a diagram showing classification of IO sections in the input / output tables shown in FIGS. 5 and 6. FIG.
8 is a diagram showing classification of key types in the input / output tables shown in FIGS. 5 and 6. FIG.
9 is a diagram showing a classification of processing functions in the input / output table shown in FIGS. 5 and 6. FIG.
FIG. 10 is a schematic diagram showing a concept of program generation processing (configuration of processing) in the program generation device of the present invention.
FIG. 11 is a schematic diagram showing an example of a web application generated in the program generation apparatus of the present invention.
FIG. 12 is a schematic diagram showing an example of a web application generated in the program generation apparatus of the present invention.
FIG. 13 is a schematic diagram showing an example of a web application generated in the program generation apparatus of the present invention.
FIG. 14 is a schematic diagram showing an example of a web application generated in the program generation apparatus of the present invention.
FIG. 15 is a flowchart showing an example of a second control processing procedure according to the present invention.
FIG. 16 is a flowchart showing an example of a third control processing procedure according to the present invention.
FIG. 17 is a flowchart showing an example of a fourth control processing procedure according to the present invention.
FIG. 18 is a flowchart illustrating an example of a fifth control processing procedure according to the present invention.
FIG. 19 is a flowchart illustrating an example of a sixth control processing procedure according to the present invention.
FIG. 20 is a flowchart showing an example of a sixth control processing procedure according to the present invention.
FIG. 21 is a diagram illustrating a memory map of a recording medium (storage medium) that stores various data processing programs that can be read by the program generation device according to the present invention.
[Explanation of symbols]
101 Input device
102 Display device
103 Processing device (CPU, RAM, ROM)
104 External storage device (hard disk)
105 Screen controller
116 Business specification description part
106 Specification Analysis Department
107 Code generator
108 Overall control unit
109 I / O table
112 JSP code
113 Servlet code
114 Bean code

Claims (13)

ウェブアプリケーションプログラムを生成するプログラム生成装置において、
複数の構成要素による画面の定義と、当該画面の構成要素に対して当該構成要素が指示された場合の遷移先画面を定義可能な第1の定義情報を記憶する記憶手段と、
前記記憶手段に記憶される第1の定義情報に基づいて「前記複数の構成要素により構成される画面を生成表示する第1のプログラム」,「前記構成要素が指示されたことを示すイベントにより画面遷移を制御する第2のプログラム」を生成する生成手段と、
を有することを特徴とするプログラム生成装置。
In a program generation device for generating a web application program,
Storage means for storing a definition of a screen by a plurality of components, and first definition information capable of defining a transition destination screen when the component is instructed to the components of the screen;
Based on the first definition information stored in the storage means, “first program for generating and displaying a screen composed of the plurality of components”, “screen based on an event indicating that the component is instructed” Generating means for generating a “second program for controlling transition”;
A program generation apparatus comprising:
前記記憶手段は、複数のデータ項目の定義と、前記各データ項目のデータベースへの配置の定義とを含む第2の定義情報をも記憶するものであり、
前記画面の構成要素は、前記データ項目に対応する構成要素を含むことを特徴とする請求項1記載のプログラム生成装置。
The storage means also stores second definition information including definitions of a plurality of data items and definitions of arrangement of the data items in a database.
The program generation apparatus according to claim 1, wherein the constituent elements of the screen include a constituent element corresponding to the data item.
前記生成手段は、「前記構成要素が指示されたことを示すイベントにより、所定の情報を前記遷移先画面へ受け渡す第3のプログラム」を生成することを特徴とする請求項2記載のプログラム生成装置。3. The program generation according to claim 2, wherein the generation unit generates a “third program that delivers predetermined information to the transition destination screen according to an event indicating that the component is designated”. apparatus. 前記記憶手段は、当該画面の構成要素に対して当該構成要素が指示された場合に遷移先画面に渡したいデータ項目を対応付ける第3の定義情報をも記憶するものであり、
前記所定の情報は、前記第3の定義情報により前記構成要素に対応付けられたデータ項目に対応する情報であることを特徴とする請求項3記載のプログラム生成装置。
The storage means also stores third definition information that associates a data item desired to be passed to the transition destination screen when the component is instructed with respect to the component of the screen,
4. The program generation apparatus according to claim 3, wherein the predetermined information is information corresponding to a data item associated with the component by the third definition information.
前記第3のプログラムは、前記所定の情報をセッションオブジェクトに格納することにより前記所定の情報を前記遷移先画面へ受け渡しするプログラムであることを特徴とする請求項3又は4記載のプログラム生成装置。5. The program generation apparatus according to claim 3, wherein the third program is a program that transfers the predetermined information to the transition destination screen by storing the predetermined information in a session object. 6. 前記第3のプログラムは、前記所定の情報をセッションオブジェクトを用いることなく、前記所定の情報を前記遷移先画面へ受け渡しするプログラムであることを特徴とする請求項3又は4記載のプログラム生成装置。5. The program generation apparatus according to claim 3, wherein the third program is a program that transfers the predetermined information to the transition destination screen without using the predetermined information in a session object. 6. 前記第3のプログラムは、前記所定の情報をパラメータに指定して前記遷移先画面を呼び出すことにより前記所定の情報を前記遷移先画面へ受け渡しするログラムであることを特徴とする請求項6記載のプログラム生成装置。7. The program according to claim 6, wherein the third program is a program for transferring the predetermined information to the transition destination screen by calling the transition destination screen by specifying the predetermined information as a parameter. Program generator. 前記第3の定義情報により前記構成要素に対応付けられたデータ項目が前記構成要素自身であった場合、前記第3のプログラムは、セッションオブジェクトを利用することなく、前記構成要素に対応する情報をパラメータに指定して前記遷移先画面を呼び出すことにより前記構成要素に対応する情報を前記遷移先画面へ受け渡しするプログラムとして生成されることを特徴とする請求項4記載のプログラム生成装置。If the data item associated with the component by the third definition information is the component itself, the third program can store information corresponding to the component without using a session object. 5. The program generation apparatus according to claim 4, wherein the program generation apparatus is generated as a program for transferring information corresponding to the component to the transition destination screen by calling the transition destination screen by specifying a parameter. 前記第3のプログラムは、前記第1のプログラムにより生成表示される画面から呼び出されるプログラムであることを特徴とする請求項6〜8のいずれかに記載のプログラム生成装置。The program generation apparatus according to claim 6, wherein the third program is a program called from a screen generated and displayed by the first program. 前記生成手段は、前記記憶手段に記憶される第2の定義情報に基づいて「前記第2の定義情報により定義されたデータ項目に対応するデータをデータベースへ格納する処理,該データベースから前記データ項目に対応するデータを取得する処理を含む第4のプログラム」を生成することを特徴とする請求項2〜9のいずれかに記載のプログラム生成装置。The generating means is based on the second definition information stored in the storage means, “a process of storing data corresponding to the data item defined by the second definition information in the database, the data item from the database. The program generation apparatus according to claim 2, wherein a fourth program including a process of acquiring data corresponding to the above is generated. ウェブアプリケーションプログラムを生成するプログラム生成装置におけるプログラム生成方法において、
複数の構成要素による画面の定義と当該画面の構成要素に対して当該構成要素が指示された場合の遷移先画面を定義可能な第1の定義情報に基づいて、「前記複数の構成要素により構成される画面を生成表示する第1のプログラム」,「前記構成要素が指示されたことを示すイベントにより画面遷移を制御する第2のプログラム」を生成する生成工程を有することを特徴とするプログラム生成方法。
In a program generation method in a program generation device for generating a web application program,
Based on the first definition information that can define the transition destination screen when the component is instructed to the component of the screen and the component of the screen based on the definition of the plurality of components. Generating a “first program for generating and displaying a screen to be displayed” and “a second program for controlling screen transition by an event indicating that the component has been specified” Method.
請求項11に記載されたプログラム生成方法を実行するためのプログラム。A program for executing the program generation method according to claim 11. 請求項11に記載されたプログラム生成方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。A recording medium storing a computer-readable program for executing the program generation method according to claim 11.
JP2003208473A 2003-08-22 2003-08-22 PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM Expired - Fee Related JP4488701B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003208473A JP4488701B2 (en) 2003-08-22 2003-08-22 PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003208473A JP4488701B2 (en) 2003-08-22 2003-08-22 PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2005070831A true JP2005070831A (en) 2005-03-17
JP4488701B2 JP4488701B2 (en) 2010-06-23

Family

ID=34401748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003208473A Expired - Fee Related JP4488701B2 (en) 2003-08-22 2003-08-22 PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP4488701B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330896A (en) * 2005-05-24 2006-12-07 Nittetsu Hitachi Systems Engineering Inc Application creation support system for portable terminal
JP2007265291A (en) * 2006-03-29 2007-10-11 Fujitsu Ltd Input/output screen generating program, method and server machine
JP2008052387A (en) * 2006-08-23 2008-03-06 Canon Software Inc Program generation device, program generation method, program, and recording medium
JP2010255962A (en) * 2009-04-27 2010-11-11 Mitsubishi Electric Corp Air conditioning control device and air conditioning control method
JP2011159202A (en) * 2010-02-03 2011-08-18 Nippon Telegr & Teleph Corp <Ntt> Test item generating method, device, and program
JP2012048693A (en) * 2010-08-24 2012-03-08 Takafumi Tanzawa Portable identification encryption system and login system with automatic switching between cookie and url embedding
CN101059758B (en) * 2006-04-19 2012-05-16 日本电气株式会社 Screen transition program generating method and device
US9021381B2 (en) 2010-03-25 2015-04-28 Fujitsu Limited Display device, controller, method and computer readable medium
CN114144735A (en) * 2019-05-20 2022-03-04 马库斯·格鲁伯 Computer-implemented method for the computer-aided generation of an executable control program for controlling and/or regulating a technical process
CN115176222A (en) * 2020-03-04 2022-10-11 欧姆龙株式会社 Visual programming support method, program, and visual programming support device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344105A (en) * 2000-03-31 2001-12-14 Hitachi Software Eng Co Ltd Web application developing method, development support system, and memory medium storing program related to this method
JP2002215394A (en) * 2000-08-15 2002-08-02 Fujitsu Ltd Web application development and execution system and web application generating device
JP2002366514A (en) * 2001-06-12 2002-12-20 Himacs Ltd Method, system for generating display information and servlet engine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344105A (en) * 2000-03-31 2001-12-14 Hitachi Software Eng Co Ltd Web application developing method, development support system, and memory medium storing program related to this method
JP2002215394A (en) * 2000-08-15 2002-08-02 Fujitsu Ltd Web application development and execution system and web application generating device
JP2002366514A (en) * 2001-06-12 2002-12-20 Himacs Ltd Method, system for generating display information and servlet engine

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330896A (en) * 2005-05-24 2006-12-07 Nittetsu Hitachi Systems Engineering Inc Application creation support system for portable terminal
JP2007265291A (en) * 2006-03-29 2007-10-11 Fujitsu Ltd Input/output screen generating program, method and server machine
CN101059758B (en) * 2006-04-19 2012-05-16 日本电气株式会社 Screen transition program generating method and device
JP2008052387A (en) * 2006-08-23 2008-03-06 Canon Software Inc Program generation device, program generation method, program, and recording medium
JP2010255962A (en) * 2009-04-27 2010-11-11 Mitsubishi Electric Corp Air conditioning control device and air conditioning control method
JP2011159202A (en) * 2010-02-03 2011-08-18 Nippon Telegr & Teleph Corp <Ntt> Test item generating method, device, and program
US9021381B2 (en) 2010-03-25 2015-04-28 Fujitsu Limited Display device, controller, method and computer readable medium
JP2012048693A (en) * 2010-08-24 2012-03-08 Takafumi Tanzawa Portable identification encryption system and login system with automatic switching between cookie and url embedding
CN114144735A (en) * 2019-05-20 2022-03-04 马库斯·格鲁伯 Computer-implemented method for the computer-aided generation of an executable control program for controlling and/or regulating a technical process
CN115176222A (en) * 2020-03-04 2022-10-11 欧姆龙株式会社 Visual programming support method, program, and visual programming support device
CN115176222B (en) * 2020-03-04 2023-06-20 欧姆龙株式会社 Visual programming support method, storage medium, and visual programming support device

Also Published As

Publication number Publication date
JP4488701B2 (en) 2010-06-23

Similar Documents

Publication Publication Date Title
US11635974B2 (en) Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
US6819965B2 (en) Electronic work instruction object oriented system and method
US20020065846A1 (en) Spreadsheet Web server system and spreadsheet Web system
JP2002342250A (en) Information sharing method and device using object- oriented technology
US6175864B1 (en) Method and apparatus for storyboard scripting of application programs running on a computer system
JPWO2008126796A1 (en) Technology for generating service programs
KR20100072232A (en) Method and apparatus for bridging real-world web applications and 3d virtual worlds
WO2000013108A1 (en) Computer product for integrated document development
CN101960423A (en) Application development support device, program and recording medium
US7617219B2 (en) Enhanced handling of repeated information in a web form
JP4488701B2 (en) PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM
JPH10283281A (en) Device and method for home page automatic generation and electronic mail transmission
WO2007132568A1 (en) Data processing server and data processing method
JP4488700B2 (en) PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM
KR101815924B1 (en) Online document editing service apparatus that provides a collaborative environment so that a plurality of users can create electronic documents online and operating method thereof
TW479172B (en) Communication system, database server, control unit, processing terminal, relay server, and method of manufacturing a semiconductor
JP3512705B2 (en) Screen simulation system for programmable display, screen simulation method, and recording medium recording program for screen simulation
US20100287292A1 (en) Method, apparatus and computer program product for generating a content website in a data communications network
JP6304433B2 (en) Information processing apparatus, server, processing method thereof, and program
JP2006309697A (en) Computer system, program for computer system, and program generating application program based on spreadsheet program among the programs
JP2004234380A (en) Table display switching method, text data conversion program, and tagging program
JP2005078119A (en) Support system and method for software development support, program, and recording medium
Genova et al. A prototype of a web-based decision support system for building models and solving optimization and decision making problems
JP6115664B2 (en) Information processing apparatus and program
JP2007272444A (en) Content management device, content management method, and content management program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060814

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091013

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100308

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100330

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4488701

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees