(57)【要約】      （修正有）【課題】Ｗｅｂアプリケーションのプログラムを自動生成する技術において、クライアント側しか知りえない情報を処理するための処理内容がサーバ側にあった場合、情報漏洩の可能性を低くする。【解決手段】ユーザが指定した対象データの記憶領域情報に基づいて、サーバ側プログラムから対象データを処理するプログラムを抽出し、抽出したサーバ側プログラムの情報に基づいてクライアント側プログラムの対象データを処理する部分を特定する。そして、クライアント側プログラムの特定した部分に、抽出したサーバ側のプログラムをクライアント側のプログラムとして生成する。【選択図】図１
2015049777.tif 000002
【特許請求の範囲】
【請求項１】
サーバ側で処理を行うサーバ側プログラムから、ユーザが処理を指定した対象データが記憶されているデータベースの記憶領域の記憶領域情報に基づいて、前記対象データを処理する前記サーバ側プログラムを抽出する抽出手段と、
該抽出手段で抽出された前記サーバ側プログラムの情報に基づいて、クライアント側で処理を行うクライアント側プログラムの記前対象データが処理される部分を特定する特定手段と、
該特定手段で特定した部分に、前記抽出手段で抽出した前記対象データを処理する前記サーバ側プログラムを、前記クライアント側処理プログラムとして生成する生成手段と
を備えたことを特徴とするプログラム生成装置。
【請求項２】
前記抽出手段は、前記対象データに対して加工または更新を行う処理プログラムを抽出することを特徴とする請求項１記載のプログラム生成装置。
【請求項３】
前記対象データがデータベースに記憶された領域の記憶領域情報を取得するデータベース解析手段を更に備え、
前記抽出手段は、前記データベース解析手段が取得した前記記憶領域情報に基づいて、前記対象データを処理するサーバ側プログラムを抽出することを特徴とする請求項１または請求項２記載のプログラム生成装置。
【請求項４】
前記サーバ側プログラムを更新する更新手段を更に備え、
該更新手段は、前記抽出手段が抽出した前記対象データを処理する前記サーバ側プログラムを、前記サーバ側プログラムから削除することを特徴とする請求項１または請求項２記載のプログラム生成装置。
【請求項５】
前記対象データを処理する前記サーバ側プログラムは、暗号化または復号化を含むことを特徴とする前記１〜４のいずれかに記載のプログラム生成装置。
【請求項６】
サーバ側で処理を行うサーバ側プログラムから対象データを処理するサーバ側プログラムを抽出して、クライアント側で処理を行うクライアント側プログラムとして生成するプログラム生成装置のプログラム生成方法において、
サーバ側で処理を行うサーバ側プログラムから、ユーザが処理を指定した対象データが記憶されているデータベースの記憶領域の記憶領域情報に基づいて、前記対象データを処理する前記サーバ側プログラムを抽出する抽出ステップと、
該抽出ステップで抽出された前記サーバ側プログラムの情報に基づいて、クライアント側で処理を行うクライアント側プログラムの記前対象データが処理される部分を特定する特定ステップと、
該特定ステップで特定した部分に、前記抽出ステップで抽出した前記対象データを処理する前記サーバ側プログラムを、前記クライアント側処理プログラムとして生成する生成ステップと
を備えたことを特徴とするプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント側で処理を行うプログラムを自動生成するプログラム生成装置に関するものである。
【背景技術】
【０００２】
近年、情報システムの形態は、Ｗｅｂアプリケーションが主流となり、システム開発において短期間、低コスト、高品質にシステムを構築するため、より一層、開発の生産性と品質の向上が求められている。
そのため、開発の生産性と品質の向上を目的に、業務仕様からＷｅｂアプリケーションを制御するプログラムを自動生成する技術が用いられてきた（特許文献１）。
【０００３】
【特許文献１】特開２００５−０２５４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来のＷｅｂアプリケーションのプログラムを自動生成する技術では、クライアント側しか知りえない情報を処理するための処理内容がサーバ側にあった場合、クライアント側からサーバ側に情報を送信して、サーバ側で情報を処理するため、情報漏洩の可能性が高くなるという問題があった。
【課題を解決するための手段】
【０００５】
この発明に係るプログラム生成装置は、サーバ側で処理を行うサーバ側プログラムから、ユーザが処理を指定した対象データが記憶されているデータベースの記憶領域の記憶領域情報に基づいて、前記対象データを処理する前記サーバ側プログラムを抽出する抽出手段と、該抽出手段で抽出された前記サーバ側プログラムの情報に基づいて、クライアント側で処理を行うクライアント側プログラムの前記対象データが処理される部分を特定する特定手段と、該特定手段で特定した部分に、前記抽出手段で抽出した前記対象データを処理する前記サーバ側プログラムを、前記クライアント側処理プログラムとして生成する生成手段とを備えたことを特徴とする。
【発明の効果】
【０００６】
この発明は、ユーザが指定した対象データの記憶領域情報に基づいて、サーバ側プログラムから対象データを処理するプログラムを抽出し、抽出したサーバ側プログラムの情報に基づいてクライアント側プログラムの対象データを処理する部分を特定する。そして、クライアント側プログラムの特定した部分に、抽出したサーバ側のプログラムをクライアント側のプログラムとして生成するので、例えば、クライアント側しか知りえない情報を、クライアント側からサーバ側に送らずにクライアント側のプログラムで処理することができ、情報漏洩を防止することができる。
【図面の簡単な説明】
【０００７】
【図１】この発明の実施の形態における、プログラム自動生成装置１の構成図である。
【図２】この発明の実施の形態における、プログラム自動生成装置１のフローチャートである。
【図３】この発明の実施の形態における、サーバロジック９とクライアントロジック１０のクラスの構成図の一例を示す図である。
【図４】この発明の実施の形態における、サーバロジック９のＵｓｅｒＤｔｏ２４の一例を示す図である。
【図５】この発明の実施の形態における、第一言語更新部４によって更新されるサーバロジック９のＵｓｅｒＦｏｒｍ２２の一例を示す図である。
【図６】この発明の実施の形態における、第一言語更新部４によって更新されるサーバロジック９のＵｓｅＬｏｇｉｃ２３の一例を示す図である。
【図７】この発明の実施の形態における、第二言語更新部６によって更新されるクライアントロジック１０のＪＳＰ２１の一例を示す図である。
【図８】この発明の実施の形態における、処理内容一次記憶部７に記憶された処理内容の一例を示す図である。
【発明を実施するための形態】
【０００８】
実施の形態．
図１は、この発明の実施の形態における、プログラム自動生成装置１の構成図である。
図１において、プログラム自動生成装置１は、データベース解析部（データベース解析手段）２、第一言語解析部（抽出手段）３、第一言語更新部（更新手段）４、第二言語解析部（特定手段）５、第二言語更新部（生成手段）６、処理内容一次記憶部（記憶手段）７から構成されている。
【０００９】
プログラム自動生成装置１は、Ｗｅｂアプリケーションで扱うデータに対して、ユーザから対象データの処理が指示されると、Ｗｅｂアプリケーションで扱うデータを記憶するデータベース８に対して処理の実行を行うサーバ側のサーバ側プログラム（サーバロジック９）から、ユーザが指定した対象データを処理するプログラムを抽出し、抽出したプログラムをクライアント側のクライアント側プログラム（クライアントロジック１０）として生成する。
【００１０】
データベース８は、サーバロジック９とクライアントロジック１０で実行されるＷｅｂアプリケーションで扱うデータを記憶する。
サーバロジック９は、Ｗｅｂアプリケーンで扱うデータ処理を第一言語であるＪａｖａ（登録商標）で記述したサーバ側のプログラムである。サーバロジック９は、ユーザ（クライアント側）からデータの処理要求を受けると（対象データが指示されると）、データベース８に記憶されているデータに対して要求された処理内容を実行するプログラムである。そして、データ処理した結果をクライアントロジック１０に渡す。
【００１１】
クライアントロジック１０は、クライアント側のＷｅｂアプリケーションの表示用の画面を作成するプログラムであり、第二言語であるＪａｖａＳｃｒｉｐｔ（登録商標）で記述されている。クライアントロジック１０は、サーバロジック９からデータ処理した結果を受け取り、クライアント側の表示用の画面にデータ処理の結果を表示するプログラムである。
【００１２】
例えば、データベース８には、ビル管理などで利用するために一元管理されている個人情報が記憶されている。ビル管理では、例えばビルの出入口の入退室管理、またはビルの各フロアの会社毎の入退室管理に個人情報を利用している。個人情報は、データベース８に記憶して管理する際、またはデータの送受信を行う際に、暗号化して秘匿する必要のあるデータである。そのため、この個人情報のうち、例えば名前のデータを更新する必要がある場合には、Ｗｅｂアプリケーションで、ユーザが名前のデータを指定する。
【００１３】
プログラム自動生成装置１は、Ｗｅｂアプリケーションで、ユーザから対象データ（例えば名前のデータ）が指定されると、データベース８から対象データが記憶されている記憶領域を探す。そして、データベース８に記憶されている対象データの列名、データ型、データの大きさを含む記憶領域の情報（記憶領域情報）を取得する。そして、取得した記憶領域情報に基づいて、サーバロジック９から、対象データが処理されるパスを探す。そして、対象データを処理するサーバロジック９のプログラムを抽出し、抽出したサーバロジック９のプログラムを処理内容一次記憶部７に記憶して、対象データを処理するプログラムをサーバロジック９から削除する。
次に、対象データのサーバロジック９内での一次記憶領域情報に基づいて、クライアントロジック１０から、対象データが処理されるパスを探す。そして、その部分に、処理内容一次記憶部７に記憶した対象データを処理するプログラムを、第一言語であるＪａｖａ（登録商標）から第二言語であるＪａｖａＳｃｒｉｐｔ（登録商標）に変換して挿入する。
【００１４】
そのため、個人情報のうち、例えば名前のような秘匿する必要のある対象データを更新するためにユーザが対象データを指定すると、データを一元処理するためにサーバロジック９に構築されていた、例えば暗号化および復号化を含むデータの処理プログラムを抽出し、クライアント側の処理プログラムとして自動的に生成し、クライアント側の処理プログラムによって、データベース８のデータが更新される。
この様に、サーバロジック９で処理していた、例えば暗号化および復号化を含むデータの処理のプログラムをクライアントロジック１０に自動的に移して、クライアント側でデータの暗号化および復号化を含むデータの処理を行うため、秘匿する必要のある対象データを復号可能な状態でクライアント側からサーバに送る必要がなくなり、情報漏洩を防止することができる。
【００１５】
この様なプログラム自動生成装置１の各構成について説明する。
データベース解析部２は、ユーザから対象データが入力されると、データベース８に記憶されている記憶領域を解析して、対象データが記憶されている領域の列名、データ型、データの大きさを含む情報（記憶領域情報）を取得する。そして、取得した対象データの記憶領域情報を第一言語解析部３に出力する。
【００１６】
第一言語解析部３は、データベース解析部２から対象データの記憶領域情報が入力されると、サーバロジック９のプログラムを解析して、対象データの記憶領域情報に基づいて、対象データに対して実行される処理内容のパスを探し、対象データに対する処理内容のプログラムを特定する。例えば、対象データの列名、データ型、データの大きさについての情報が含まれる処理内容のプログラムを探して特定する。そして、対象データが処理されるパスを第一言語更新部４に出力する。また、対象データに対する処理内容のプログラムを抽出して、処理内容一次記憶部７に記憶する。
【００１７】
第一言語更新部４は、第一言語解析部３から入力された対象データが処理されるパスの情報を用いて、対象データに対する処理内容のプログラムをサーバロジック９から削除し、削除したプログラムの部分に代入処理を挿入して更新する。そして、第一言語更新部４は、対象データのサーバロジック９内での一次記憶領域情報を第二言語解析部５に出力する。
対象データのサーバロジック９内での一次記憶領域情報は、例えば、後で詳細に説明する個人情報の名前が対象データであれば、対象データが処理された後の対象データが一次記憶されるクラス名(ＵｓｅｒＦｏｒｍ)と変数名(ｆｉｒｓｔＮａｍｅ，ｌａｓｔＮａｍｅ)と、代入処理に更新した後の対象データが一次記憶されるクラス名（ＵｓｅｒＦｏｒｍ）と変数名（ｎａｍｅ）である。
【００１８】
第二言語解析部５は、第一言語更新部４から対象データのサーバロジック９内での一次記憶領域情報が入力されると、入力された対象データのサーバロジック９内での一次記憶領域情報を用いてクライアントロジック１０を解析し、対象データが処理されるパスを探して、対象データに関する処理部分を特定する。そして、対象データが処理されるパスの情報を第二言語更新部６に出力する。
【００１９】
第二言語更新部６は、第二言語解析部５から対象データが処理されるパスが入力されると、処理内容一次記憶部７から、対象データを処理する処理内容のプログラムを取得する。そして取得したプログラムを、第一言語であるＪａｖａ（登録商標）から第二言語であるＪａｖａＳｃｒｉｐｔ（登録商標）に変換して、クライアント側のプログラムとして生成する。そして、第二言語解析部５から入力された対象データが処理されるパスの情報を用いて、クライアントロジック１０に、変換したＪａｖａＳｃｒｉｐｔ（登録商標）を挿入して更新する。
【００２０】
処理内容一次記憶部７は、第一言語解析部３がサーバロジック９から抽出した対象データに対して処理されるプログラムを記憶する。また、記憶している対象データに対して処理されるプログラムが、第二言語更新部６から取得される。
【００２１】
次に、プログラム自動生成装置１の動作について説明する。
図２は、この発明の実施の形態における、プログラム自動生成装置１のフローチャートである。
プログラム自動生成装置１のソースコードを解析する方法は、静的解析であっても動的解析であってもよい。
Ｗｅｂアプリケーションで、ユーザから処理を指示する対象データが入力されると、プログラム自動生成装置１のデータベース解析部２に対象データが入力される。
【００２２】
そして、データベース解析部２が、データベース８に記憶されている対象データの記憶領域情報（スキーマ名、テーブル名、列名、データ型、データの大きさを含む）を取得する。そして、取得した対象データの記憶領域情報を第一言語解析部３に出力する（Ｓ１）。
【００２３】
第一言語解析部３は、データベース解析部２から対象データの記憶領域情報が入力されると、入力された対象データの記憶領域情報を用いてサーバロジック９を解析し、対象データが通るパスを取得する。そして、取得したパスの情報を第一言語更新部４に出力する。また、対象データに対して処理されるサーバロジック９のプログラムを抽出する。（Ｓ２）。
【００２４】
そして、第一言語解析部３は、Ｓ２で抽出した対象データに対するプログラムすべてに対して、Ｓ４またはＳ４〜Ｓ６を実行したか否かを判定する（Ｓ３）。
【００２５】
Ｓ３で実行されたと判定された場合、第一言語更新部４は、対象データのサーバロジック９内での一次記憶領域情報を第二言語解析部５に出力し、Ｓ７の処理に移行する。
Ｓ３で実行されていないと判定された場合は、Ｓ４の処理を実行する。
第一言語解析部３は、抽出された対象データに対する処理内容が加工または更新を行う処理か否かを判定する（Ｓ４）。
処理内容が加工または更新を行う処理と判定された場合、Ｓ５の処理を行う。
処理内容が加工または更新を行わない処理と判定された場合、Ｓ３の処理に戻る。加工または更新を行わない処理とは、例えば参照のみの場合である。
【００２６】
対象データに対して加工または更新を行うプログラムの場合は、第一言語解析部３が、対象データに対して加工または更新を行うプログラムを処理内容一次記憶部７に出力し、記憶する（Ｓ５）。
【００２７】
そして、第一言語更新部４が、第一言語解析部３から入力されたサーバロジック９の対象データを処理するパスの情報を用いて、処理内容一次記憶部７に記憶されている処理内容をサーバロジック９から削除する（Ｓ６）。また、削除したプログラムの部分には、代入処理を挿入して更新する。
【００２８】
Ｓ３で、Ｓ４またはＳ４〜Ｓ６が実行されたと判定され、第一言語更新部４から第二言語解析部５に対象データのサーバロジック９内での一次記憶領域情報が入力されると、第二言語解析部５は、入力された対象データのサーバロジック９内での一次記憶領域情報を用いてクライアントロジック１０を解析し、対象データが処理されるパスを取得する。そして、取得したパスを第二言語更新部６に出力する（Ｓ７）。
【００２９】
第二言語更新部６は、第二言語解析部５からクライアントロジック１０の対象データが処理されるパスが入力されると、処理内容一次記憶部７に記憶されているプログラムを第一言語のＪａｖａ（登録商標）から第二言語のＪａｖａＳｃｒｉｐｔ（登録商標）に変換して、クライアント側のプログラムとして生成する。そして、生成した対象データを処理するクライアント側のプログラムを、第一言語解析部３で取得したパスを用いて、クライアントロジック１０に挿入し、更新する（Ｓ８）。
【００３０】
次に、サーバロジック９とクライアントロジック１０の構成について詳細に説明する。
図３は、この発明の実施の形態における、サーバロジック９とクライアントロジック１０のクラスの構成の一例を示す図である。
サーバロジック９とクライアントロジック１０は、Ｗｅｂアプリケーションを制御するプログラムのクラスで構成されている。Ｗｅｂアプリケーションを制御するプログラムは、例えば、ユーザから処理を指定された対象データをデータベース８から取得して、対象データに対して処理した結果をクライアント側のＷｅｂアプリケーションの画面に表示する制御を行う。
処理プログラムのクラスは、ＪＳＰ２１、ＵｓｅｒＦｏｒｍ２２、ＵｓｅｒＬｏｇｉｃ２３、ＵｓｅｒＤｔｏ２４、ＵｓｅｒＤａｏ２５で構成されている。
【００３１】
ＪＳＰ２１は、Ｗｅｂアプリケーションでユーザから処理を要求される対象データが入力されると、Ｗｅｂアプリケーションから対象データの処理要求が入力される。そして、入力された対象データの処理要求をＵｓｅｒＬｏｇｉｃ２２に出力する。そして、ＵｓｅｒＬｏｇｉｃ２３から対象データの処理要求の結果が入力されると、ＵｓｅｒＦｏｒｍ２２からＵｓｅｒＬｏｇｉｃ２３で処理された対象データを取得し、処理された対象データをＷｅｂアプリケーションの画面に表示する。
【００３２】
ＵｓｅｒＦｏｒｍ２２は、ＵｓｅｒＬｏｇｉｃ２３がＵｓｅｒＤｔｏ２４から取得した対象データを加工または更新するデータ処理を行った結果を一次的に記憶している。
【００３３】
ＵｓｅｒＬｏｇｉｃ２３は、ＪＳＰ２１から対象データの処理要求が入力されると、ＵｓｅrＤａｏ２５に対象データの取得要求を出力する。そして、ＵｓｅｒＤａｏ２５から対象データの取得要求の処理結果が入力されると、ＵｓｅｒＤａｏ２５によってデータベース８から取り出された対象データをＵｓｅｒＤｔｏ２４から取得する。そして、取得した対象データを加工または更新するデータ処理を行い、データ処理の結果をＵｓｅrＦｏｒｍ２２に出力して一次的に記憶する。そして、ＪＳＰ２１に対象データの処理要求の結果を出力する。
【００３４】
ＵｓｅｒＤｔｏ２４は、ＵｓｅｒＤａｏ２５がデータベース８から取り出した対象データを一時的に記憶する。
【００３５】
ＵｓｅｒＤａｏ２５は、ＵｓｅｒＬｏｇｉｃ２３から対象データの取得要求が入力されると、データベース８から対象データを取り出す。そして、データベース８から取り出した対象データをＵｓｅｒＤｔｏ２４に一次的に記憶する。また、ＵｓｅｒＬｏｇｉｃ２３に対象データの取得要求の処理結果を出力する。
【００３６】
サーバロジック９とクライアントロジック１０は、上記のような処理プログラムの構成になっているが、サーバロジック９の各クラスは、Ｊａｖａ（登録商標）で記述され、クライアントロジック１０の各クラスは、ＪａｖａＳｃｒｉｐｔ（登録商標）で記述されている。
【００３７】
次に、各クラスの記述例を示す。
図４は、この発明の実施の形態における、サーバロジック９のＵｓｅｒＤｔｏ２４の一例を示す図である。
ＵｓｅｒＤｔｏ２４（ａ）では、個人情報のうち例えば名前を記憶するためのｎａｍｅ属性を持つクラスがＪａｖａ（登録商標）で記述されている。ＵｓｅｒＤａｏ２５は、ＵｓｅｒＤｔｏ２４のインスタンスを作成し、データベースから取得した個人情報のうち名前をｎａｍｅ属性として、ＵｓｅｒＤｔｏ２４に記憶する。
【００３８】
図５は、この発明の実施の形態における、第一言語更新部４によって更新されるサーバロジック９のＵｓｅｒＦｏｒｍ２２の一例を示す図である。
図１の第一言語更新部で更新される前のサーバロジック９のＵｓｅｒＦｏｒｍ２２（ａ）は、個人情報のうち名前の姓を記憶するためのｆｉｒｓｔＮａｍｅ属性と、名を記憶するためのｌａｓｔＮａｍｅ属性を持つクラスがＪａｖａ（登録商標）で記述されている。そして、第一言語更新部で更新された後のＵｓｅｒＦｏｒｍ２２（ｂ）は、個人情報のうち名前を記憶するためのｎａｍｅ属性を持つ。
【００３９】
図６は、この発明の実施の形態における、第一言語更新部４によって更新されるサーバロジック９のＵｓｅＬｏｇｉｃ２３の一例を示す図である。
図１の第一言語更新部で更新される前のサーバロジック９のＵｓｅrＬｏｇｉｃ２３（ａ）は、ＵｓｅｒＤｔｏ２４のｎａｍｅ属性値を半角スペースで分割し、ＵｓｅｒＦｏｒｍ２２のｆｉｒｓｔＮａｍｅ属性とｌａｓｔＮａｍｅ属性に記憶するロジックであり、Ｊａｖａ（登録商標）で記述されている。
そして、第一言語更新部４で更新された後のＵｓｅrＬｏｇｉｃ２３（ｂ）は、ＵｓｅｒＤｔｏ２４のｎａｍｅ属性値をＵｓｅｒＦｏｒｍ２２のｎａｍｅ属性値に記憶するロジックであり、Ｊａｖａ（登録商標）で記述されている。
第一言語更新部４は、この更新前のサーバロジック９内での、対象データが処理された後の対象データが一次記憶されるクラス名(ＵｓｅｒＦｏｒｍ)と変数名(ｆｉｒｓｔＮａｍｅ，ｌａｓｔＮａｍｅ)と、代入処理に更新した後のサーバロジック内での、対象データが一次記憶されるクラス名（ＵｓｅｒＦｏｒｍ）と変数名（ｎａｍｅ）を、第二言語解析部５に出力する。
【００４０】
図７は、この発明の実施の形態における、第二言語更新部６によって更新されるクライアントロジック１０のＪＳＰ２１の一例を示す図である。
図１の第二言語更新部で更新される前のクライアントロジック１０のＪＳＰ２１（ａ）は、ＵｓｅｒＦｏｒｍ２２のｆｉｒｓｔＮａｍｅ属性をＨＴＭＬの中のｎａｍｅ１のＩＤを持つ要素に代入し、ｌａｓｔＮａｍｅ属性をｎａｍｅ２のＩＤを持つ要素に代入するロジックであり、ＪａｖａＳｃｒｉｐｔ（登録商標）で記述されている。
【００４１】
そして、第二言語更新部で更新された後のＪＳＰ２１（ｂ）は、ＵｓｅｒＦｏｒｍ２２のｎａｍｅ属性値を半角スペースで分割し、ＨＴＭＬの中のｎａｍｅ１のＩＤを持つ要素とｎａｍｅ２のＩＤを持つ要素に代入するロジックであり、ＪａｖａＳｃｒｉｐｔ（登録商標）で記述されている。
尚、例ではｎａｍｅに対する処理ｓｐｌｉｔは、第一言語であるＪａｖａ（登録商標）と第二言語であるＪａｖａＳｃｒｉｐｔ（登録商標）で同様の表現がされているが、同様の処理をするために別の表現に変換する場合もある。
【００４２】
図８は、この発明の実施の形態における、処理内容一次記憶部７に記憶された処理内容の一例を示す図である。
処理内容一次記憶部７には、処理先７１、処理元７２、処理内容７３が一次的に記憶されている。
処理内容一次記憶部７は、第一言語解析部３がサーバロジック９を解析して、対象データを処理する処理内容（例えば、個人情報の名前を姓と名に分割する処理）を抜き出し、処理先７１、処理元７２、処理内容７３に分けて記憶している。そして、第二言語更新部６が、処理内容７３をＪａｖａＳｃｒｉｐｔ（登録商標）に変換して、クライアント側のプログラムとして生成し、クライアントロジック１０に挿入する。
【００４３】
以上のように、ユーザが指定した対象データの記憶領域情報に基づいて、サーバロジック９から対象データを処理するプログラムを抽出し、第二言語解析部が、対象データのサーバロジック９内での一次記憶領域情報に基づいて、クライアントロジック１０の対象データに対する処理部分を特定する。そして、特定した部分に、サーバロジック９から抽出した対象データに対する処理プログラムをクライアント側のプログラムに変換してクライアントロジック１０を生成するので、例えば、クライアント側しか知りえない情報を、クライアント側からサーバ側に送らずにクライアント側のプログラムでデータ処理することができるため、情報漏洩を防止することができる。
【００４４】
また、対象データに対して、加工または更新を行う処理内容を特定してサーバロジックから抽出して、クライアントロジック１０に対象データを加工または更新する処理を生成するので、データ処理を効率よくクライアント側のプログラムで処理することができる。
【００４５】
また、データベース解析手段２から取得した対象データの記憶領域情報を用いて、対象データを処理する処理内容を特定するので、プログラムの生成を高速で行うことができる。
【００４６】
また、サーバ側で行っていた対象データの処理内容を削除するため、クライアント側しか知りえない対象データがサーバ側で処理されることがなく、より情報漏洩を防止することができる。
【００４７】
例えば、クライアント側しか知りえない対象データが個人情報であり、サーバ側のプログラムで、個人情報を暗号化してデータベースで一元管理する処理内容をもっていた場合、ユーザがクライアント側のプログラムから個人情報のデータの更新を要求すると、サーバ側はその個人情報のデータをサーバ側のプログラムの中で復号化する必要があった。しかし、プログラム生成装置１によって、このサーバ側のプログラムで行っていた暗号化と復号化の処理を含めたデータ処理をクライアント側のプログラムに移すため、クライアント側からサーバ側に個人情報のデータを送受信する必要がなくなり、情報漏洩を防止することができる。
【符号の説明】
【００４８】
１  プログラム自動生成装置、２  データベース解析部、３  第一言語解析部、４  第一言語更新部、５  第二言語解析部、６  第二言語更新部、７  処理内容一次記憶部、８  データベース、９  サーバロジック、１０  クライアントロジック、２１  ＪＳＰ、２２  ＵｓｅｒＦｏｒｍ、２３  ＵｓｅｒＬｏｇｉｃ、２４  ＵｓｅｒＤｔｏ、２５  ＵｓｅＤａｏ。
【図１】
2015049777.tif 000003
【図２】
2015049777.tif 000004
【図３】
2015049777.tif 000005
【図４】
2015049777.tif 000006
【図５】
2015049777.tif 000007
【図６】
2015049777.tif 000008
【図７】
2015049777.tif 000009
【図８】
2015049777.tif 000010