(57)【要約】【課題】本発明の目的は、データグリッドに関する処理を効率化するＷｅｂシステムのプログラムを容易に開発する仕組みを提供することである。【解決手段】Ｗｅｂシステムで実行するプログラムを生成する情報処理装置であって、前記Ｗｅｂシステムで用いるクライアント装置で表示する画面の定義であって、グリッドに係る計算処理情報を含む入出力定義を設定する設定手段と、前記計算処理情報に従って、前記グリッドに値が入力された場合の計算処理に係る影響度を算出する影響度算出手段と、前記影響度算出手段により算出された影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理をサーバで実行するプログラムを生成し、当該影響度が所定の条件を満たさない場合に、前記計算処理情報に対応する計算処理をクライアントで実行するプログラムを生成する生成手段とを備えることを特徴とする。【選択図】図５Ａ
2018018394.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂシステムで実行するプログラムを生成する情報処理装置であって、
前記Ｗｅｂシステムで用いるクライアント装置で表示する画面の定義であって、グリッドに係る計算処理情報を含む入出力定義を設定する設定手段と、
前記計算処理情報に従って、前記グリッドに値が入力された場合の計算処理に係る影響度を算出する影響度算出手段と、
前記影響度算出手段により算出された影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理をサーバで実行するプログラムを生成し、当該影響度が所定の条件を満たさない場合に、前記計算処理情報に対応する計算処理をクライアントで実行するプログラムを生成する生成手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記影響度算出手段は、前記計算処理情報から、前記グリッドの項目を特定し、特定された項目から影響度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設定手段は、前記グリッドの項目ごとに計算処理情報を設定し、
前記影響度算出手段は、項目ごとに影響度を算出し、
前記生成手段は、前記項目の影響度が所定の条件を満たすか否かによって、項目ごとに計算処理をサーバで実行するプログラムかクライアントで実行するプログラムを生成することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記生成手段は、前記影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理を実行するサーバ実行用のプログラムと、クライアントで値が入力された際に、前記サーバ実行用のプログラムでの計算を実行するためのクライアントプログラムを生成することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記計算処理情報は、項目の項目識別情報を含む計算式であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
Ｗｅｂシステムで実行するプログラムを生成する情報処理装置の処理方法であって、
前記Ｗｅｂシステムで用いるクライアント装置で表示する画面の定義であって、グリッドに係る計算処理情報を含む入出力定義を設定する設定ステップと、
前記計算処理情報に従って、前記グリッドに値が入力された場合の計算処理に係る影響度を算出する影響度算出ステップと、
前記影響度算出ステップにより算出された影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理をサーバで実行するプログラムを生成し、当該影響度が所定の条件を満たさない場合に、前記計算処理情報に対応する計算処理をクライアントで実行するプログラムを生成する生成ステップと
を含むことを特徴とする処理方法。
【請求項７】
Ｗｅｂシステムで実行するプログラムを生成する情報処理装置のプログラムであって、
前記情報処理装置を、
前記Ｗｅｂシステムで用いるクライアント装置で表示する画面の定義であって、グリッドに係る計算処理情報を含む入出力定義を設定する設定手段と、
前記計算処理情報に従って、前記グリッドに値が入力された場合の計算処理に係る影響度を算出する影響度算出手段と、
前記影響度算出手段により算出された影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理をサーバで実行するプログラムを生成し、当該影響度が所定の条件を満たさない場合に、前記計算処理情報に対応する計算処理をクライアントで実行するプログラムを生成する生成手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
プログラム生成する情報処理装置とその処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ブラウザで表示する画面においても、表形式での表示（以下グリッドの表示）が求められるようになってきている。
そして、表形式のアプリケーションのようなリッチなグリッド表示を行うための技術としてハンズオンテーブルがある。（非特許文献１）
このハンズオンテーブルを用いることで、表示したグリッドへの値の入力などがブラウザ上で容易に行うことができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ｈｔｔｐｓ：／／ｈａｎｄｓｏｎｔａｂｌｅ．ｃｏｍ／
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＪａｖａＳｃｒｉｐｔ（登録商標）の技術を用いて、セルに入力された値を計算処理し、グリッドの他のセルにセットすることが可能であるが、ＪａｖａＳｃｒｉｐｔ（登録商標）の技術を用いて単にクライアント端末で計算処理を実行した場合、複雑な処理や多くのセルに対する処理を実行するとパフォーマンスが悪くなるという課題が存在する。
【０００５】
また、近年、Ｗｅｂアプリケーションの開発において、定義を行うことでプログラムの自動生成が行われるようになってきており、パフォーマンスを考慮した、Ｗｅｂアプリケーションにおけるプログラムの自動生成が必要になってくる。
そこで、本発明の目的は、データグリッドに関する処理を効率化するＷｅｂシステムのプログラムを容易に開発する仕組みを提供することである。
【課題を解決するための手段】
【０００６】
本発明の目的を達成するためのＷｅｂシステムで実行するプログラムを生成する情報処理装置であって、前記Ｗｅｂシステムで用いるクライアント装置で表示する画面の定義であって、グリッドに係る計算処理情報を含む入出力定義を設定する設定手段と、前記計算処理情報に従って、前記グリッドに値が入力された場合の計算処理に係る影響度を算出する影響度算出手段と、前記影響度算出手段により算出された影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理をサーバで実行するプログラムを生成し、当該影響度が所定の条件を満たさない場合に、前記計算処理情報に対応する計算処理をクライアントで実行するプログラムを生成する生成手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、データグリッドに関する処理を効率化するＷｅｂシステムのプログラムを容易に開発することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態におけるシステム構成を示す図である。
【図２】本実施形態における各装置に適用可能なハードウェア構成を示す図である。
【図３】プログラム開発装置１０１の処理構成を示す図である。
【図４】アプリケーションサーバ１０５に配置されるＷｅｂアプリケーション４５１の構成を示す図である。
【図５Ａ】Ｗｅｂアプリケーション生成の全体の処理のフローチャートである。
【図５Ｂ】ステップＳ５０９の詳細な処理のフローチャートである。
【図５Ｃ】ステップＳ５１０の詳細な処理のフローチャートである。
【図６】入出力定義画面の一例を示す図である。
【図７】入出力定義画面（入出力定義・項目一覧）の一例を示す図である。
【図８】入出力定義画面（入出力定義・項目編集画面）の一例を示す図である。
【図９】クライアント側計算閾値設定画面の一例を示す図である。
【図１０】データグリッドに値が入力された際の計算処理のフローチャートである。
【図１１】値の入力前の状態を示す画面の一例を示す図である。
【図１２】値の入力後に計算が実行された状態を示す画面の一例を示す図である。
【図１３】入出力サーバ計算処理部４６３の計算処理のソースコードの一例を示す図である。
【図１４】入出力クライアント計算処理部４８４の計算処理のソースコードの一例を示す図である。
【図１５】画面レイアウト設定画面の一例を示すイメージ図である。
【図１６】入出力クライアント計算処理部４８４の判定処理のソースコードの一例を示す図である。
【図１７】計算場所判定情報の一例を示す図である。
【図１８】機能構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１０】
図１は、本発明に係わるプログラム開発装置（開発者がＷｅｂアプリケーション生成のために使用する情報処理装置）、プログラム開発サーバ、データベースサーバ、アプリケーションクライアント（クライアント装置）、アプリケーションサーバの構成の一例を示すシステム構成図である（情報処理システム）。
【００１１】
プログラム開発装置１０１は、開発者の操作に従って画面レイアウトおよびデータベース検索指示などを定義する。プログラム開発装置１０１単体では、開発者の入力受付を行い、後述するプログラム開発サーバ１０２に実際のプログラム生成処理、アプリケーション生成処理をさせてもよいし、プログラム開発装置１０１単体でプログラム生成、アプリケーション生成まで処理してもよい。
【００１２】
なお、この実施形態においては、プログラム開発装置１０１で生成するアプリケーションはＷｅｂアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Ｗｅｂ技術による通信を利用したアプリケーションでなくてもよい。
【００１３】
プログラム開発サーバ１０２ａ〜１０２ｂ（情報処理装置）は、プログラム開発装置１０１により入力された開発者の指示に従って、プログラムを開発する。プログラム開発サーバ１０２ａはＬＡＮなどのネットワーク１０６内に配置されてもよいし、プログラム開発サーバ１０２ｂはインターネット上やクラウド上に配置されてもよい。
【００１４】
データベースサーバ１０３ａ〜１０３ｂ（情報処理装置）は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、開発者が利用するためにデータベースサーバ１０３は、プログラム開発装置１０１と同一の装置で構成されていてもよいし、ＬＡＮなどのネットワーク１０６内に配置されてもよい（データベースサーバ１０３ａ）。またインターネット上やクラウド上に配置されてもよい（データベースサーバ１０３ｂ）。また、プログラム開発装置１０１が、プログラム開発サーバ１０２と協調する場合には、プログラム開発サーバ１０２とデータベースサーバ１０３が同一の装置内に構成されていてもよい。
【００１５】
アプリケーションサーバ１０５ａ〜１０５ｂ（情報処理装置）は、プログラム開発装置１０１で開発されたアプリケーションを実行する。ＬＡＮなどのネットワーク１０６内に配置されてもよい（アプリケーションサーバ１０５ａ）し、またインターネット上やクラウド上に配置されてもよい（アプリケーションサーバ１０５ｂ）。また、ネットワーク１０６、インターネット、クラウド上のデータベースサーバ１０３と接続して動作する可能である。
【００１６】
アプリケーションクライアント１０４ａ〜１０４ｂ（情報処理装置）は、アプリケーションサーバ１０５と協調してプログラム開発装置１０１で開発したアプリケーションプログラムを動作させる、ユーザの入力端末である。ＬＡＮなどのネットワーク１０６内に配置されてもよい（アプリケーションクライアント１０４ａ）し、またインターネット上やクラウド上に配置されてもよい（アプリケーションクライアント１０４ｂ）。携帯端末などの情報処理装置であってもよい。
【００１７】
図２は、本発明に係わるプログラム開発装置１０１、プログラム開発サーバ１０２、データベースサーバ１０３、アプリケーションクライアント１０４、アプリケーションサーバ１０５として適用可能な各ハードウェア構成の一例を示すブロック図である。
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。
【００１８】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステム（ＯＳ）や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア、一時待避領域等として機能する。
【００１９】
入力コントローラ２０５は、入力部２０９からの入力を制御する。この入力部２０９としては、情報処理装置では、キーボード、マウス等のポインティングデバイスが挙げられる。
出力コントローラ２０６は、出力部２１０の表示を制御する。この出力部２１０としては、例えば、ＣＲＴや液晶ディスプレイ等が挙げられる。
【００２０】
外部メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ２１１へのアクセスを制御する。加えて、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ２１１としては、ハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）、ＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）、スマートメディア等が挙げられる。
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器との通信制御処理を実行する。
【００２１】
本発明を実現するためのプログラム２１２は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００２２】
次に本実施形態における基本の処理について、図３、図４の構成図を用いて説明する。なお、本実施形態における特徴となる処理の詳細については、図５Ａ〜図５Ｃ、図１０のフローチャートを用いて説明する。
【００２３】
図３は、プログラム開発装置１０１の処理概要を示す構成図である。プログラム開発装置１０１は、Ｗｅｂアプリケーションを開発する開発者が定義した定義ファイルをもとにＷｅｂアプリケーションを自動生成することを目的とした装置である。プログラム開発装置１０１は、リポジトリ定義部４００、アプリケーション生成部４１０、Ｗｅｂアプリケーションコード生成部４２０、ソースコードコンパイル部４４０により構成される。
【００２４】
リポジトリ定義部４００は、データベース定義４０１、アプリケーション定義４０２、データモデル定義４０３、入出力定義４０４、ビジネスプロセス定義４０５を備える。これらのファイルは、Ｗｅｂアプリケーション開発ツールを介して開発者によって入力され、作成される。
【００２５】
すなわち、リポジトリ定義部４００は、プログラムへ引数として入力される項目を定義する入力定義情報と、プログラムから処理結果として出力する項目を定義する出力定義情報とを入出力定義情報として管理している。
【００２６】
次に、Ｗｅｂアプリケーションコード生成部４２０について説明する。Ｗｅｂアプリケーションコード生成部４２０で生成された情報は、外部メモリ２１１に記憶される。
【００２７】
リポジトリ定義解析部４２１は、リポジトリ定義部４００からデータベース定義４０１、アプリケーション定義４０２、データモデル定義４０３、入出力定義４０４、ビジネスプロセス定義４０５を読み込み解析する。
【００２８】
Ｗｅｂアプリケーションコード生成部４２２は、外部メモリ２１１に記憶されているコード生成ルールと、リポジトリ定義解析部４２１によって解析された内容とを用いて、ソースコード（ＪＳＰ）を生成する。このソースコードを取り込みソースコードコンパイル部４４０でコンパイルされたファイルを生成する。そしてソースコードコンパイル部４４０がコンパイルされたファイルをアプリケーションサーバへデプロイする。デプロイする際に、図４の４７１〜４８４の関連ファイルも合わせてデプロイされる。
【００２９】
より詳細には、生成されるソースコードは、大きくサーバ用（例えば、サーバ処理部４６０）とクライアント用（クライアント処理部４７０）に分かれている。サーバ用のソースコードをコンパイルしコンパイルされたファイルが生成され、クライアント用のソースコードはコンパイルされずファイルとしてプログラム開発装置１０１上に置く。このファイルを用いてアプリケーションサーバ１０５にデプロイする。
【００３０】
また、サーバ用はＪａｖａプログラムが生成され、生成された直後にコンパイルされてｃｌａｓｓファイルになり、そのｃｌａｓｓファイルがデプロイされる。クライアント用はＪＳＰ／ＪａｖａＳｃｒｉｐｔ（登録商標）／ＣＳＳが生成され、それらはコンパイルされず、そのままデプロイされる。
【００３１】
デプロイされたモジュールがＷｅｂアプリケーションモジュール４５１である。具体的には、デプロイすると「．ｗａｒ」の拡張子を有するファイルがアプリケーションサーバに配置される。すなわち、Ｗｅｂアプリケーションコード生成部４２２は、Ｗｅｂアプリケーションに用いられるプログラムを生成するルールを記憶している。例えば、予め決められたルールに従って、図１３、図１４、図１６のソースコードが生成される。特に、図１５の画面でデータグリッド（一般にグリッドともいう）が設定され、このデータグリッドの入出力定義が設定されると、４８１のデータグリッド部品（ハンズオンテーブル）が読み込まれ、このデータグリッド部品を用いて計算処理した結果をグリッド表示するソースコードが生成される。
【００３２】
４８１のデータグリッド部品（ハンズオンテーブル）は、ＨＴＭＬ（Ｗｅｂ画面）上で、データベースから取得したデータを表形式（グリッドやテーブル）に挿入して表示する部品である。この部品上のセルをクリックして、データを変更したり、表のレイアウト（項目の並び順や列幅など）を変更可能となっている。このデータグリッド部品は、「．ｊｓ」という拡張子を持つファイルであり、プログラム開発装置１０１のアプリケーション生成部４１０で予めセットされている（保持している）。すなわち、グリッド制御部品は、ハードディスク等に記憶している。
アプリケーションサーバ１０５は、生成したＷｅｂアプリケーション４５１を配置する、Ｗｅｂアプリケーションサーバである。
【００３３】
Ｗｅｂアプリケーション４５１は、データグリッド機能を含む、Ｗｅｂ用のサーバアプリケーションである。このＷｅｂアプリケーション４５１は、図３のＷｅｂアプリケーションコード生成部４２２で生成されたソースコードや各種ファイルをまとめたファイルである。
【００３４】
Ｗｅｂアプリケーション４５１はサーバ処理部４６０とクライアント処理部４７０に分かれている。サーバ処理部４６０とクライアント処理部４７０それぞれについて、図４を用いて説明する。
【００３５】
図４は、Ｗｅｂアプリケーションコード生成部４２２で生成されたＷｅｂアプリケーション４５１を説明する構成図である。アプリケーションサーバ１０５にデプロイした状態の図として説明するが、サーバ処理部４６０とクライアント処理部４７０は、プログラム自動生成するプログラム開発装置１０１で生成してできたファイル群（プログラム開発装置１０１上に存在するファイル）に置き換えることも可能である。
【００３６】
サーバ処理部４６０は、サーバ側で動作する機能部であり、ビジネスプロセス処理部４６１によりクライアントからの要求を処理する。具体的には、データベースと通信しデータの検索要求や登録要求などに基づき、データの取得や更新を行う。
サーバ処理部４６０は、リポジトリ定義部４００として登録されたビジネスプロセス定義に基づき、生成されるビジネスプロセス処理部４６１を備えている。
また、リポジトリ定義部４００として登録されたデータモデル定義に基づき、生成されるデータモデル処理部４６２を備えている。
【００３７】
さらに、アプリケーションサーバ１０５で計算処理を実行する入出力サーバ計算処理部４６３を有している。この入出力サーバ計算処理部４６３が、アプリケーションクライアント１０４の入出力クライアント計算処理部４８４の要求に応じて、計算処理を実行し、計算結果をアプリケーションクライアント１０４に出力する。
【００３８】
クライアント処理部４７０は、実行時にクライアント（アプリケーションクライアント１０４）のブラウザを介してダウンロードするものであり、クライアント側の処理を実現させるファイル群（スクリプトが記述されたファイルがインクルードされたＨＴＭＬファイル）である。具体的には、クライアントから所定のＵＲＬが指定されることにより、データグリッド用ＪＳＰ４７１に基づくＨＴＭＬ形式のＷｅｂ画面、データグリッド用ＣＳＳ４７２、データグリッド部品４８１、入出力クライアント計算処理部４８４をクライアントに送信する。
以下、データグリッド用ＪＳＰ４７１、データグリッド用ＣＳＳ４７２、データグリッド部品４８１、入出力クライアント計算処理部４８４について説明する。
【００３９】
データグリッド用ＪＳＰ４７１は、グリッドを表示することが可能なＨＴＭＬを含むＪＳＰファイルであり、ＪＳＰの実行時に動的にデータをＨＴＭＬに含め、クライアントにダウンロードさせ、表示させるものである。データグリッド用ＪＳＰ４７１には、グリッドの位置を示す情報や、図１５で設定した画面部品の情報が記述される。
【００４０】
このデータグリッド用ＪＳＰ４７１は、データグリッド用ＣＳＳ４７２、データグリッド部品４８１、入出力クライアント計算処理部４８４をインクルードしたファイルである。
データグリッド用ＣＳＳ４７２は、グリッドの色や文字の大きさなどの情報を含んでいるファイルである。
【００４１】
データグリッド部品４８１は、Ｗｅｂアプリケーション用にＪａｖａＳｃｒｉｐｔ（登録商標）で書かれた、一覧表示・編集用のコンポーネントである。例えばハンズオンテーブルと呼ばれるグリッド表示するファイルである。
【００４２】
入出力クライアント計算処理部４８４は、アプリケーションクライアント１０４で、データグリッドで入力された値を図８の８０３の設定に基づき計算処理を実行するファイルである。また、アプリケーションサーバ１０５の入出力サーバ計算処理部４６３で図８の８０３の設定に基づき計算処理を実行させる要求をすることが可能なファイルである。入出力クライアント計算処理部４８４では、クライアントで計算するかサーバで計算するかを判定するＪａｖａＳｃｒｉｐｔ（登録商標）の記述がされている（図１６）。
【００４３】
ブラウザ４９０は、Ｗｅｂアプリケーションを利用するエンドユーザが利用するアプリケーションであり、クライアント処理部４７０で渡されるＨＴＭＬファイルを表示するアプリケーションである。
【００４４】
図５Ａ、図５Ｂ、図５Ｃは、Ｗｅｂアプリケーション生成のフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、各装置のＣＰＵ２０１が実行する。
まず図５Ａを用いて、Ｗｅｂアプリケーション生成の全体の処理について説明する。
【００４５】
ステップＳ５０１において、プログラム開発装置１０１は、ユーザによるＷｅｂアプリケーション生成指示を受け付けると、外部メモリ２１１に記憶されているリポジトリ定義部４００のアプリケーション定義４０２をＲＡＭ２０２に読み込む。具体的には、開発したＷｅｂアプリケーション（プロジェクト）を決定するものである。このＷｅｂアプリケーション定義に、データモデル定義、入出力定義、ビジネスプロセス定義を設定する。これらの定義は、Ｗｅｂアプリケーション自動生成する設定画面でユーザが任意に設定するものとするが、予め生成された定義を読み込む構成であってもよい。
【００４６】
ステップＳ５０２において、プログラム開発装置１０１は、データモデル定義４０３を生成する。生成されたデータモデル定義４０３は、リポジトリ定義部４００として登録される。具体的には、データモデル設定画面（不図示）でデータベース上の項目をマッピングする。一般的には、１テーブル１データモデルが作成される。データモデル定義の作成はＷｅｂアプリケーションの開発において既知の技術であるため説明を省略する。
【００４７】
ステップＳ５０３において、プログラム開発装置１０１は、Ｗｅｂシステムで用いるクライアント装置で表示する画面の定義（入出力定義）を入出力定義画面（設定画面）上で設定し、入出力定義４０４を生成する。生成された入出力定義４０４は、リポジトリ定義部４００として登録される。図６の入出力定義画面でＷｅｂ画面のグリッド定義を行う。
【００４８】
具体的には、まず、画面レイアウト設定画面（図１５）上で、画面エディタ上にグリッドの部品１５０１をドラッグアンドドロップ操作等により配置する。すなわち、グリッドオブジェクトを配置する配置処理の一例を示すものである。
【００４９】
グリッドの部品を配置したタイミングでは、単なる格子状のグリッドが表示されるため、この表にどのデータモデルのどの項目を表示させるかを設定する。この項目の設定も図１５の１５０２からデータモデルをドラッグアンドドロップすることにより設定される。すなわち、配置したグリッドオブジェクトに対して、データモデルを設定するデータモデル設定処理の一例を示すものである。
次に、グリッドが配置された画面の入出力定義を行うため、図６の入出力定義画面に遷移する。
【００５０】
グリッドが配置された画面の場合、入出力定義画面６０１でグリッドに対応する定義情報６０２が表示される。項目タイプには「Ｇグループ」、項目コード「Ｇ」、名前「重さ」などが設定される。名前については、画面レイアウト設定画面でグリッドを配置する際に設定されたデータモデルの名前が設定される。
【００５１】
このグリッドで各列の定義情報６１０が、定義情報６０２の下に設定される。レベル６１１によって、定義情報６０２の配下の定義情報と判定できるようになっている。定義情報６０２はレベル「１」、定義情報６１０はレベル「２」。
次に、６０２の定義情報を選択すると、入出力項目プロパティが表示され、６０３にはグループタイプ（種別）が「ＤＡＴＡＧＲＩＤ」が設定される。
【００５２】
さらに、図７と図８を用いて、本実施形態の図６の定義情報６１０のより詳細な設定について説明する。
【００５３】
まず、図７の入出力定義画面（入出力定義・項目一覧７０１）で、項目を選択する。ここでは７０２の「ｋｉｌｏｇｒａｍ（キログラム）」を選択した例を示している。
【００５４】
７０２を選択すると、図８の入出力定義・項目編集画面８０１で、７０２で選択した項目に対する制御の設定を受け付ける。加工式欄８０２において、任意の計算式を受け付ける。
【００５５】
８０２の例では、「ｔｏｎ＊１０００」の計算式（計算処理情報）が入力されている。８０３の「ｔｏｎ」は、図７の項目コードを示している。すなわち、他の項目の値に対して１０００倍する計算式が入力されていることを示している。
【００５６】
すなわち、Ｗｅｂシステムで用いるクライアント装置で表示する画面の定義であって、グリッドに係る計算処理情報を含む入出力定義を設定する処理の一例を示している。
【００５７】
さらに、入出力定義の設定画面（図９）の９０１において、クライアント側計算閾値９０２を設定する。このクライアント側計算閾値は、データグリッドにおいて値が入力された際の影響する項目数を指定するものであり、影響度を示す値である。また、開発者により、任意の値が入力されるものとするが、予め決定された値を用いてもよい。
【００５８】
ステップＳ５０４において、プログラム開発装置１０１は、ビジネスプロセス定義４０５を生成する。生成されたビジネスプロセス定義４０５は、リポジトリ定義部４００として登録される。具体的には、受け付けたデータの処理の流れを定義したものである。例えば、入力したデータの重複をチェックして、登録するといったロジックを定義したものである。ビジネスプロセル定義についても、Ｗｅｂアプリケーションの開発において既知の技術であるため説明を省略する。
【００５９】
ステップＳ５０５において、プログラム開発装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部４００のデータベース定義４０１をＲＡＭ２０２に読み込む。データベース定義４０１は予め生成されているものとする。
【００６０】
ステップＳ５０６において、プログラム開発装置１０１は、設定・読み込みしたリポジトリ定義部４００の各定義・各ファイルから情報を取得し、サーバ処理部のソースコードを生成する。具体的には、「ビジネスプロセス定義」に基づき、ビジネスプロセス処理部４６１を生成する。
【００６１】
ステップＳ５０７において、プログラム開発装置１０１は、設定・読み込みしたリポジトリ定義部４００の各定義・各ファイルから情報を取得し、サーバ処理部のソースコードを生成する。具体的には、「データモデル定義」に基づき、データモデル処理部４６２を生成する。
【００６２】
ステップＳ５０８において、プログラム開発装置１０１は、設定・読み込みしたリポジトリ定義部４００の各定義・各ファイルから情報を取得し、クライアント処理部の入出力処理部４８０のファイル群を生成する。なお、データグリッド部品４８１はプログラム開発装置１０１が予め有している部品をコピーするものとする。
【００６３】
図１５の画面設定の情報や図６の入出力定義の情報（入出力定義４０４）を用いて、ソースコードを生成し、データグリッド用ＪＳＰ４７１とデータグリッド用ＣＳＳ４７２のファイルが生成される。
【００６４】
なお、生成されたソースコードにはプログラミング言語が記載されたファイル（例えば、データグリッド用ＪＳＰ４７１）に加え、ＨＴＭＬ、ＪＳＰ、ＪａｖａＳｃｒｉｐｔ（登録商標）等のＷｅｂアプリケーションの提供に利用される他のファイルも含まれる。
【００６５】
ステップＳ５０８までの処理により、Ｗｅｂアプリケーションを構築するための基本的なプログラムが生成される。ステップＳ５０９からの処理により、本実施形態における特徴的な処理を実行するプログラムが生成されるが、ステップＳ５０６〜ステップＳ５１０の処理手順に限定されるものではない。
【００６６】
ステップＳ５０９において、入出力定義４０４から情報を取得し、計算場所判定情報１７０１を生成する。計算場所判定情報１７０１は、入出力定義の入出力項目毎に、その項目の影響範囲項目を保持するものである。
すなわち、計算処理情報に従って、前記グリッドに値が入力された場合の計算処理に係る影響度を算出する処理の一例を示している。
ステップＳ５０９の詳細な処理については、図５Ｂのフローチャートを用いて後述する。
【００６７】
ステップＳ５１０において、入出力定義４０４から情報と、計算場所判定情報１７０１に応じて、入出力サーバ計算処理部４６３、および入出力クライアント計算処理部４８４のソースコードを生成する。
ステップＳ５１０の詳細な処理については、図５Ｃのフローチャートを用いて後述する。
【００６８】
すなわち、算出された影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理をサーバで実行するプログラムを生成し、当該影響度が所定の条件を満たさない場合に、前記計算処理情報に対応する計算処理をクライアントで実行するプログラムを生成する処理を示している。
【００６９】
ステップＳ５０１において、プログラム開発装置１０１は、生成したソースコード（ファイル）をアプリケーションサーバ１０５に配置（デプロイ）する。これにより、アプリケーションサーバ１０５上でＷｅｂアプリケーションが動作するようになる。デプロイした際のアプリケーションサーバの構成は、図４の４６０、４７０である。
ここで、ソースコード生成処理について具体的に説明する。
【００７０】
ソースコードを生成する基となる入出力定義の定義情報を読み出す。そして、入出力定義の定義情報に入出力項目プロパティに設定されているグリッドタイプが、ＤＡＴＡＧＲＩＤの定義情報（例えば、６０２のレコード）があるか否かを判定する。すなわち、ソースコードを生成する際に、Ｗｅｂ画面にグリッドが含まれるか否かを判定する処理である。グリッドが含まれるＷｅｂ画面に対応するＷｅｂアプリケーションのソースコードを生成する場合には、データグリッド用ＪＳＰ４７１を作成する。具体的には、入出力定義の定義情報に従って、ＪＳＰファイルに、ＨＴＭＬ画面上でのグリッドを表示するための位置やインクルードするファイルを設定する。また、図１５で設定した画面上の他の部品の定義情報（制御情報）も書き込まれる。
【００７１】
また、データグリッド用ＣＳＳ４７２を作成する。具体的にはグリッドのヘッダー（１行目）の色、フォント情報が記述されている。本実施形態では、アプリケーション生成部４１０が予め有している固定値を用いるものとするが、ユーザが任意に設定することも可能である。ＣＳＳファイル内に記載されている情報について、ＣＳＳファイルは既知の技術であるため詳細な説明を省略する。
【００７２】
また、データグリッド部品４８１を複製する。これは、アプリケーション生成部４１０が予め有しているデータグリッド部品を用いて、プログラムを生成するためである。なお、他のファイルは、設定された定義情報に基づいて、新たなファイル（例えば、４８４）を作っているため、ここではデータグリッド部品を複製する。
【００７３】
その他、例えば、データグリッドデフォルトスタイルといったファイルを生成する。デフォルトスタイルには、データグリッドの各列の項目名と順番（項目名の並び順が項目名の表示順となる）を示すように記載されている。なお、図１５の列名を設定した情報を基にデフォルトスタイルが決定される。グリッドのセルの幅はデータグリッド部品４８１が自動で決定するものとする。
【００７４】
次に、ステップＳ５０９の入出力計算場所判定情報生成処理の詳細を、図５Ｂのフローチャートを用いて説明する。
ステップＳ５２１では、入出力定義に定義された入出力数、以下の処理を繰り返す。具体的には、図７の７０１のレコードを繰り返し処理するものとする。
【００７５】
ステップＳ５２２では、処理対象の定義にデータグリッドが定義されているか否かを判定する。図６の６０３で示すように、ＤＡＴＡＧＲＩＤで設定されている定義がデータグリッドに関する定義と判定する。
データグリッドであると判定された場合には、ステップＳ５２３へ処理を移し、データグリッドでないと判定された場合には、ステップＳ５２６へ処理を移す。
【００７６】
ステップＳ５２３では、データグリッド内の項目数（定義数）分処理を繰り返す。具体的には、７０３の数分処理を繰り返す。これは、データグリッドに値が入力された場合に影響するセルがどの程度あるか（影響度）をチェックするための入出力計算場所判定情報を生成するためである。
【００７７】
ステップＳ５２４では、対象項目の影響範囲を導出する。具体的には、対象項目で設定された加工式の中で使用している他項目を列挙し、図１７の計算場所判定情報１７０１に格納する。図８の例では、８０３の「ｔｏｎ」が列挙され、「ｋｉｌｏｇｒａｍ」の項目コードに対応して格納される。計算場所判定情報１７０１では、図面では便宜上Ｉｔｅｍ１０１などの表記になっているが、「ｔｏｎ」「ｋｉｌｏｇｒａｍ」などの表記であってもよいことは言うまでもない。
また、入出力コードの「ＰＡＧＥ１」は、データグリッドを識別するためのものであり、データグリッドごとに管理できるようになっている。
【００７８】
ステップＳ５２５では、データグリッド内の項目数、処理を繰り返すと終了する。これにより、項目ごとに、影響する項目の数が特定できる。なお、本実施形態では、影響を受ける項目の項目コードを用いるようにしたが、項目（列）の代わりに、セルのセルＩＤを用いてもよい。この場合、加工式にセルＩＤが含まれているものとする。
ステップＳ５２６では、入出力数分（定義数分）、処理を繰り返すと終了する。
【００７９】
次に、ステップＳ５１０の入出力計算処理部生成処理の詳細を、図５Ｃのフローチャートを用いて説明する。
【００８０】
ステップＳ５３１では、計算場所判定情報１７０１のレコードのデータを取得し、処理を開始する。レコード数分、処理を繰り返す。
ステップＳ５３２では、図９の９０２で設定され、入出力定義４０４に記憶されたクライアント側計算閾値を取得する。
ステップＳ５３３では、計算場所判定情報１７０１のレコードから、影響項目数を算出（特定）し、クライアント側計算閾値を超えるか否かを判定する。
【００８１】
具体的には、図１７の例を参照すると、１レコード目の「入出力項目コード：Ｉｔｅｍ００１」の影響する項目は「Ｉｔｅｍ１０１」であるため、影響項目数は「１」となる。そして、図９の例では、クライアント側計算閾値は「５」であるため、クライアント側計算閾値を超えないと判定される。また、２レコード目の「入出力項目コード：Ｉｔｅｍ００２」の影響する項目は「Ｉｔｅｍ０１１，Ｉｔｅｍ０１２，Ｉｔｅｍ０１３，Ｉｔｅｍ０１４，Ｉｔｅｍ０１５，Ｉｔｅｍ０１６」であるため、影響項目数は「６」となり、クライアント側計算閾値を超えると判定される。
このように、クライアント側計算閾値を影響度条件として、この条件を満たすか否かによって、処理を切り替える。
【００８２】
クライアント側計算閾値を超える（条件を満たす）場合には、ステップＳ５３４へ処理を移し、クライアント側計算閾値を超えない（条件を満たさない）場合には、ステップ５３５へ処理を移す。
【００８３】
すなわち、計算処理情報から、前記グリッドの項目を特定し、特定された項目から影響度を算出する処理を示している。また、影響度が所定の条件を満たすか否かを判定する処理を示している。
【００８４】
クライアント側計算閾値を超える（条件を満たす）場合とは、例えば、複雑な計算処理が発生し、多くの項目に処理が走ることで、クライアントに処理負荷がかかる（処理が遅くなる）場合である。そのため、サーバ側で処理させるため、サーバに計算処理要求を実行できるプログラムをステップＳ５３４で生成する。
【００８５】
一方、クライアント側計算閾値を超えない（条件を満たさない）場合とは、例えば、単純な計算処理で、影響する項目が少なく、クライアントに処理負荷がかからない場合である。そのため、クライアント側で処理させるため、クライアントで計算処理を実行できるプログラムをステップＳ５３５で生成する。
【００８６】
ステップＳ５３４では、影響項目の計算をサーバで行うために、入出力サーバ計算処理部４６３のソースコードを生成する。生成されたソースコードの例が、図１３の１３０１である。図１３の１３０１は、サーバ側で実行されるプログラムのソースコードである。加工式「ｔｏｎ＊１０００」を例にしたソースコードとなっている。
【００８７】
ステップＳ５３５では、影響項目の計算をクライアントで行うために、入出力クライアント計算処理部４８４のソースコードを生成する。生成されたソースコードの例が、図１４の１４０１である。加工式「ｔｏｎ＊１０００」を例にしたソースコードとなっている。
【００８８】
ステップＳ５３６では、ステップＳ５３４で入出力サーバ計算処理部４６３を生成した場合には、サーバに要求し、サーバから要求を受け取るソースコードを生成し、入出力クライアント計算処理部４８４に出力する。また、ステップＳ５３５で入出力クライアント計算処理部４８４を生成した場合には、クライアントで計算させるため図１４の１４０１の関数を呼び出すソースコードを生成し、入出力クライアント計算処理部４８４に出力する。ステップＳ５３７で生成されるソースコードの例が、図１６の１６０１である。
【００８９】
図１６の１６０１のソースコードでは、クライアントで処理する項目を判定し、クライアントで処理する項目と判定されると、クライアントの計算処理（例えば、１４０１）が呼び出される記述がされている。また、クライアントで処理する項目でない（サーバで処理する項目）と判定されると、サーバへ入力値と項目コードのパラメータを含む要求が出力され、要求の結果（計算結果）を受け付ける処理が記述されている。さらに、クライアント又はサーバでの計算結果をデータグリッドに反映させるため、データグリッド部品４８１に渡す処理が記述されている。
ステップＳ５３７では、計算場所判定情報１７０１のレコード数、処理を繰り返し、処理を終了する。
【００９０】
次に、アプリケーションクライアント１０４でデータグリッドに値が入力された際の計算処理について、図１０のフローチャートを用いて説明する。
【００９１】
ステップＳ１００１〜ステップＳ１００３、ステップＳ１００７は、アプリケーションクライアント１０４の処理である。ステップＳ１００４〜ステップＳ１００６は、アプリケーションサーバ１０５の処理である。
【００９２】
ステップＳ１００１では、ユーザの操作によりデータグリッドへの値の入力を受け付ける。データグリッド部品４８１より項目コードや入力値が入出力クライアント計算処理部４８４に渡される。
【００９３】
値の入力前の状態を示す画面例が、図１１の１１０１である。例えば、１１０２の箇所を選択して、値を入力する。本実施形態では「５」を「５５」に変更する例とする。
【００９４】
ステップＳ１００２では、入出力クライアント計算処理部４８４において、クライアントで計算する項目コードか否かを判定する。クライアントで計算する項目コードであると判定した場合には、ステップＳ１００３へ処理を移す。サーバで計算する項目コードであると判定した場合には、ステップＳ１００４へ処理を移す。
ステップＳ１００３では、計算処理する関数（例えば、１４０１）を呼び出し、計算を実行する。
ステップＳ１００４では、取得した入力値と項目コードを含む計算要求をアプリケーションサーバ１０５へ送信する。
【００９５】
ステップＳ１００５では、アプリケーションクライアント１０４から計算要求を受信し、入出力サーバ計算処理部４６３が項目コードに対応する関数（例えば、１３０１）を呼び出し、計算を実行する。
ステップＳ１００６では、入出力サーバ計算処理部４６３が実行された計算結果を取得し、アプリケーションクライアント１０４に計算結果を送信する。
【００９６】
ステップＳ１００７では、クライアントで計算した結果又はサーバで計算した結果を入出力クライアント計算処理部４８４で取得して、データグリッド部品４８１に受け渡し、入力された項目に関連する項目の値を更新する。
【００９７】
値の入力後に計算が実行された状態を示す画面例が、図１２の１２０１である。例えば、１２０２の箇所が「５５」に変更されたため、他の項目の値も設定された加工式の通りの計算結果が反映される。
また、変更されたレコードについて、識別可能にマーク（１２０３）が表示される。
本実施形態では、入力された項目によって影響度が変わるため、同じ画面であっても項目によってサーバとクライアントの計算処理を切り替えている。
【００９８】
他の実施形態として、入出力定義の設定（例えば、図９）で、計算処理を実行する装置を統一する設定を設け、統一する設定がなされた場合には、データグリッド全体でサーバで処理する項目が多い場合には、すべての入力値における計算をサーバで行うようにソースコードを生成する。データグリッド全体でクライアントで処理する項目が多い場合には、すべての入力値における計算をクライアントで行うようにソースコードを生成する。
【００９９】
なお、入出力定義の設定（例えば、図９）において、クライアントで計算処理するか、サーバで計算処理するかを自動判定させず、クライアントのみで計算処理をさせる設定を開発者が任意に行うことが可能である。
【０１００】
また、Ｗｅｂアプリケーションを生成し構築するシステムとして説明したが、ＸＭＬ形式でやり取りするＷｅｂサービスとして動作するシステムであってもよい。
【０１０１】
次に、図１８を用いて、本実施形態における、特徴を示す機能構成の一例について説明する。
【０１０２】
なお、図１８の機能構成は、プログラム開発装置１０１の機能構成であるが、プログラム開発が可能な装置であればサーバであってもよい。すなわち、クラウド環境で開発できるシステムを利用する場合、サーバの機能構成に置き換えることも可能である。すなわち、Ｗｅｂシステムで実行するプログラムを生成する情報処理装置と言い換えることが可能である。
【０１０３】
設定部１６０１は、Ｗｅｂシステムで用いるクライアント装置で表示する画面の定義であって、グリッドに係る計算処理情報を含む入出力定義を設定する機能部である。また、前記グリッドの項目ごとに計算処理情報を設定する機能部である。
【０１０４】
影響度算出部１６０２は、計算処理情報に従って、前記グリッドに値が入力された場合の計算処理に係る影響度を算出する機能部である。また、前記計算処理情報から、前記グリッドの項目を特定し、特定された項目から影響度を算出する機能部である。また、項目ごとに影響度を算出する。
【０１０５】
生成部１６０３は、算出された影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理をサーバで実行するプログラムを生成し、当該影響度が所定の条件を満たさない場合に、前記計算処理情報に対応する計算処理をクライアントで実行するプログラムを生成する機能部である。
【０１０６】
また、前記項目の影響度が所定の条件を満たすか否かによって、項目ごとに計算処理をサーバで実行するプログラムかクライアントで実行するプログラムを生成する機能部である。
【０１０７】
また、前記影響度が所定の条件を満たす場合に、前記計算処理情報に対応する計算処理を実行するサーバ実行用のプログラムと、クライアントで値が入力された際に、前記サーバ実行用のプログラムでの計算を実行するためのクライアントプログラムを生成する機能部である。
なお、計算処理情報は、項目の項目識別情報を含む計算式である。
以上、本実施形態の詳細な説明を終了する。
本実施形態によれば、データグリッドに関する処理を効率化するＷｅｂシステムのプログラムを容易に開発することができる。
【０１０８】
特に、データグリッドの項目に設定された加工式（計算処理情報）により、クライアントで計算処理をするか、サーバで計算処理するかを自動で判定してプログラムを自動生成するため、計算処理の負荷を軽減し、処理を効率化したＷｅｂシステムのプログラムを容易に開発することができる。
【０１０９】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【０１１０】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０１１１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０１１２】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１４】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１１５】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１１６】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１１７】
１０１  プログラム開発装置
１０２  プログラム開発サーバ
１０３  データベースサーバ
１０４  アプリケーションクライアント
１０５  アプリケーションサーバ
２０１  ＣＰＵ
２０２  ＲＡＭ
２１１  外部メモリ
【図１】
2018018394.tif 000003
【図２】
2018018394.tif 000004
【図３】
2018018394.tif 000005
【図４】
2018018394.tif 000006
【図５Ａ】
2018018394.tif 000007
【図５Ｂ】
2018018394.tif 000008
【図５Ｃ】
2018018394.tif 000009
【図６】
2018018394.tif 000010
【図７】
2018018394.tif 000011
【図８】
2018018394.tif 000012
【図９】
2018018394.tif 000013
【図１０】
2018018394.tif 000014
【図１１】
2018018394.tif 000015
【図１２】
2018018394.tif 000016
【図１３】
2018018394.tif 000017
【図１４】
2018018394.tif 000018
【図１５】
2018018394.tif 000019
【図１６】
2018018394.tif 000020
【図１７】
2018018394.tif 000021
【図１８】
2018018394.tif 000022