以下、図面を参照して、本発明の実施の形態の一例について説明する。
<第1の実施形態>
まず図1を参照して、本発明の第1の実施形態における、情報処理システムの構成の一例について説明する。
本発明の情報処理システムは、図1に示すように、PC100(プログラム開発PC)、PC101、アプリケーションサーバ200、データベースサーバ250等の各種装置が、WAN150(ワイドエリアネットワーク)等のネットワークを介して通信可能に接続され構成されている。
PC100は、Webアプリケーション等のアプリケーションプログラムを開発するためのPCである。
PC100には、プログラム開発アプリケーション(図3でいうデータモデル定義作成部生成部410を備えるプログラム生成ソフト)がインストールされている。
PC100は、ユーザ操作により当該プログラム開発アプリケーションを自機上で動作させ、Webアプリケーション等のアプリケーションプログラムを生成する。
なお、ここでいうプログラム開発アプリケーションとは、Webアプリケーションプログラムを開発するためのWebアプリケーション開発ツールである。
また、当該Webアプリケーション開発ツールで使用するデータモデル(データモデル定義ともいう)と呼ばれるデータ定義を生成して記憶する。
本発明の実施形態におけるデータモデルとは、データテーブルの情報を、データモデルを扱うWebアプリケーション開発ツール用に抽象化して管理する情報である。
データテーブルは、RDBMS(relational database management system)を提供するデータベースサーバ250に記憶されており、RDBMS上で管理されている。つまりデータベースサーバ250はデータ記憶装置である。扱えるデータ型はRDBMSによって異なることがある。
Webアプリケーション開発ツールでは、RDBMSのデータテーブルの情報を、Webアプリケーション開発ツール自身及びWebアプリケーション開発ツールで開発する新たなWebアプリケーションで取り扱い可能なデータ型として管理するデータモデルを扱う。
なお、Webアプリケーションが実際にデータテーブルの情報を使って処理を行うためには、Webアプリケーションの取り扱い可能なデータ型のデータで構成されたデータテーブルを用いる方法の他に、どのデータ型のテーブルのデータをWebアプリケーションにおいてどのデータ型のデータとして扱うかをWebアプリケーション自身が参照する方法がある。
当該情報を参照することで、Webアプリケーションが扱うどのデータ型のデータを、どのデータ型のデータテーブルのどの項目に記憶するかを特定可能となる。
アプリケーションサーバ200は、例えばPC101等の外部装置からの操作指示に応じて処理・機能を実行するWebアプリケーションを備える。以上が図1の説明である。
次に図2を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、ディスプレイ装置210(例えばCRTディスプレイ)等の表示器への表示を制御する。なお、表示器はCRTディスプレイだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じてユーザが使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示すWAN150やLAN151)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。以上が図2の説明である。
次に図3を参照して、本発明の第1の実施形態における、各種装置の機能構成の一例について説明する。
リポジトリ定義部300は、アプリケーション定義301、入出力定義302、ビジネスプロセス定義303、データモデル定義304、データベース定義305を記憶する記憶部である。
これらの定義ファイルは、Webアプリケーション開発ツールを介してプログラム開発PC(PC100)を操作するユーザ(開発者)によって入力され、予め作成・記憶されている。
すなわち、リポジトリ定義部は、プログラムへ引数として入力される項目を定義する入力定義情報と、プログラムから処理結果として出力する項目を定義する出力定義情報とを入出力定義情報として管理する手段の一例である。
ここでいうプログラムとは、例えばアプリケーションサーバ200上で稼働するWebアプリケーションプログラムのことである。
入出力定義302は、生成されたWebアプリケーションの画面を介して当該Webアプリケーションを使用するユーザが入力する入力項目を定義し、生成されたWebアプリケーションの画面として出力する出力項目を定義した情報である。
これにより、Webアプリケーションの開発フェーズにおいてよくある、画面項目の追加・変更・削除は、Webアプリケーション開発ツールのレイアウトエディタ等を介して、Webアプリケーション画面の入出力項目を直感的に追加・変更・削除することで、Webアプリケーションとして用いられるプログラムを容易に生成することができる。
データモデル定義生成部310は、変換ルール決定部311、データベース参照部312、適合判定部313、変換部314、変換結果出力部315、データモデル定義生成処理実行部316を備える。
変換ルール決定部311は、既存テーブルを、Webアプリケーション開発ツール及び開発されるWebアプリケーションで利用可能なデータモデルを生成(作成)するために、既存テーブルの中のカラム(データ項目)をどの変換ルールに基づいて変換するか決定する決定部である。変換ルールの一例を図7の700に示す。
既存テーブルとは、例えばWebアプリケーション開発ツールで新たに開発するWebアプリケーションに可能な限り流用したい、既存のWebアプリケーションのデータ342のテーブル341である。
既存テーブル341は、既存データベース340に記憶されている。既存テーブルの詳細は、図6の600に示す。既存テーブルは、例えばデータベースサーバ250の外部メモリ211に記憶されている
データベース参照部312は、既存データベース340のテーブル341(既存テーブル)を読み出し、RAM203に記憶する。
適合判定部313は、プログラム開発ツールで開発するWebアプリケーションが既存テーブルをそのままのデータ型でテーブル情報として使用できるかを判定する適合判定(流用可否判定)を行う。
流用可能でない場合は、新テーブル331を作成し、既存テーブルのデータのデータ型を当該Webアプリケーションで取り扱う型に変換して、データ332として記憶する必要がある。
また、変換したデータモデルのデータの中に、Webアプリケーション開発ツールで扱うことができないデータがないか判定する。例えば変換後のデータの桁数が、Webアプリケーション開発ツールが取り扱い可能な桁数と合致しているか否か等を判定する。
変換部314は、既存テーブルのカラムの情報を、変換ルール決定部311で決定された変換ルールに従って、Webアプリケーションが利用できるデータモデル用のデータ型へ変換する機能部である。
変換結果出力部315は、変換結果のデータモデルの情報と、データモデルにおける各カラムのデータが、Webアプリケーション開発ツールが取り扱い可能な状態か否かを表示画面に出力して表示する。
データモデル定義生成処理実行部316は、変換部314で変換されたデータをデータモデル定義のファイルとして生成し、リポジトリ定義部300に記憶する。
レポート生成部317は、変換結果レポート318を出力する機能部である。例えばテキストファイルとして出力、記憶する。変換結果レポートの詳細は、図8の810に示す。
レポートとは、既存テーブルの各データを、Webアプリケーション開発ツールで開発するWebアプリケーションにおいて取り扱い可能か否か(新テーブル331に流用可能か否か)、及び、Webアプリケーション開発ツールで扱うことができないカラムを識別可能として、ユーザに確認させるためのファイルである。
なお、PC100は、不図示のWebアプリケーション生成部を備えており、当該Webアプリケーション生成部は、リポジトリ解析部、Webアプリケ−ションコード生成部、ソースコードコンパイル部を備えている。
リポジトリ解析部の機能を用いてリポジトリ定義部に記憶されたデータを解析し、Webアプリケ−ションコード生成部が当該解析結果に基づいてWebアプリケーションのソースコードを生成する。その後、ソースコードコンパイル部がWebアプリケーションのソースコードをコンパイルする。つまり、Webアプリケーション生成部がWebアプリケーションの開発を行う。
その後、ソースコードコンパイル部がアプリケーションサーバ200の記憶領域に記憶させる。Webアプリケーションは、コンパイル済みのコードの一部にデータモデルを保持しているものとする。以上が図3の説明である。
次に図4を参照して、本発明の第1の実施形態における処理の概要について説明する。図4は、既存テーブルから情報を読み取りデータモデルを生成する処理の概要を示すフローチャートである。
図4の処理は、PC100のCPU201が、自機にインストールされたWebアプリケーション開発ツールの各機能を用いて実行する。
なお、ステップS401の開始時点では既にWebアプリケーション開発ツールは起動されているものとする。
ステップS401で、Webアプリケーション開発ツールは、既存テーブルを基にデータモデルを新規生成する機能の起動イベントを検知する。
具体的には、PC100に表示されているWebアプリケーション開発ツールの画面900(図9に例示)において、「テーブルからデータモデル」ボタン901(コンテキストメニュー)が押下されたイベントを取得する。
ステップS402で、Webアプリケーション開発ツールは図9の接続情報入力画面910を表示し、当該画面において既存データベースへの接続情報の入力を受け付ける。接続情報入力画面910は、例えばデータベースサーバ250の提供するRDBMSへの接続情報を入力するための画面である。
接続情報とは、例えば接続文字列911である。接続文字列911は、接続するデータベースのURLである。
「Next」ボタン912が押下されると、入力済の接続情報を決定し、次のウィザードであるスキーマ選択画面1000(図10に例示)をPC100の画面に表示する。
本実施形態の説明においてスキーマは、例えばユーザごとにRDBMS上で管理されている。
「Next」ボタン1001が押下されると、選択中のスキーマを決定し、処理をステップS403に進める。
ステップS403で、Webアプリケーション開発ツールは、既存テーブルのカラム変換処理を実行する。カラム変換処理の具体的な処理内容については図5の説明で後述する。
ここで図5を参照して、本発明の第1の実施形態における、カラム変換処理の流れについて説明する。
図5の処理は、PC100のCPU201が、自機にインストールされたWebアプリケーション開発ツールの各機能を用いて実行する。
カラムとは、例えば図6の600に示すような既存テーブルを構成する列の情報(項目)のことをいう。
ステップS501でWebアプリケーション開発ツールは、「Next」ボタン1001が押下されることにより、次のウィザードであるテーブル選択画面1010(図10に例示)をPC100の画面に表示する。
テーブル選択画面1010は、実際にデータモデルとして生成したい既存テーブルを選択する画面である。
選択の候補となる既存テーブルは表示部1011に表示する。また、選択済の既存テーブルは表示部1012に表示する。
表示部1011には、ステップS402で選択され決定されたスキーマに属する既存テーブルをRDBMS内の複数の既存テーブルの中から特定して表示する。
カラムデータ型選択部1013は、カラムデータ型のvarcharを何のデータ型として取り込む(Webアプリケーションで利用可能なデータモデルの項目に変換する)かの選択を受け付ける操作受付部である。
カラムデータ型とは、カラムのデータ型(データ(値)の種類に関する分類)を示す。カラムデータタイプともいう。データ型には、例えばCODE型やTEXT型等がある。
ステップS502で、Webアプリケーション開発ツールはデータモデルに変換したいテーブルの選択を受け付る。具体的には、表示部1011に表示されている既存テーブルからデータモデルとして生成したいテーブルの選択を受け付け、カラムデータ型選択部1013においてデータ型の選択を受け付け、「Next」ボタン1014の押下を受け付ける。
なお、カラムデータ型選択部1013(varcharカラムのデータタイプの選択部)において「全てコード型」が選択された場合は、varcharは全てCODE型として変換して取り込む。
「全てテキスト型」が選択された場合は、varcharは全てTEXT型として変換して取り込む。
また、「キー項目のみコード型」が選択された場合は、カラム情報が主キーのものをコード型として変換して取り込み、その他はTEXT型として変換して取り込む。
ステップS503で、Webアプリケーション開発ツールは、ステップS402で入力された接続文字列911からRDBMSの種類を特定し、適応する変換ルール700を決定する。ここでは図7の変換ルール700に決定したものとする。
変換ルールは、PC100の外部メモリ211に、RDBMSの種類ごとに異なるルールが記憶されている。変換ルール700は、これら複数の変換ルールのうちの1つである。
Webアプリケーション開発ツールは、接続文字列911から特定されるRDBMS用の変換ルールを特定し、既存テーブルに適用するルールとして決定する。
変換ルール700には、どのカラムデータ型701を、どのアプリデータ型702(データモデルの中の項目のデータ型=Webアプリケーション開発ツールで開発するWebアプリケーションが取り扱うデータ型/データ型記憶手段)に変換するかのルールが記憶されている。
桁数及び少数桁数は、カラムデータ型701のデータ型に基づいて特定する、データモデルにおける変換後のデータの桁数及び少数桁数である。なお、「桁数=0」は、カラムデータ型701から当該桁数を特定できないことを示す。
Webアプリケーション開発ツールは、ステップS502で選択されて変換対象の既存テーブルを取得してRAM203に保持し、各既存テーブルのカラム数分、ステップS504〜S509の処理を実行する。
既存テーブルの構成の一例を図6の既存テーブル600に示す。既存テーブル600には、名前602によって識別されるカラムが複数含まれており、各カラムは601に示すデータ型で定義されている。
NULL603は、値が空でもよいか否かを示す。キー情報604は、主キー否かを示している。
また、Webアプリケーション開発ツールは、ステップS503において、変換ルール700の特定とあわせてデータ型対応表710を決定して取得する。
データ型対応表710は、RDBMSの種類毎に決定する。データ型対応表710は、PC100の外部メモリ211に、RDBMSの種類ごとに予め記憶されている。
データ型対応表710は、Webアプリケーション開発ツール及び当該ツールで開発するWebアプリケーションがサポートしている(取り扱う)データ型の対応を示す。
具体的には、Webアプリケーション開発ツール及び当該ツールで開発するWebアプリケーションは、アプリデータタイプ711の示すデータモデルのデータ型を、RDBMSにおけるデータ型712として扱うことを示す。
つまり、アプリデータタイプ711は、Webアプリケーション開発ツール及び当該ツールで開発するWebアプリケーションが取り扱い可能なデータモデル上のデータ型である。
また、データ型712は、RDBMSが扱うデータ型の1つであり、Webアプリケーション開発ツール及び当該ツールで開発するWebアプリケーションが取り扱い可能なデータテーブル上のデータ型である。
すなわち、NUM型(NUM 数値型)のデータを扱うWebアプリケーションを開発したとしても、当該NUM型のデータに対応するRDBMS上のデータテーブルのデータ型がDECIMALではない(例えば既存テーブルのようにINT型である)場合には、Webアプリケーションは当該テーブルのデータを扱うことができないものである。
ステップS504で、Webアプリケーション開発ツールは、RAM203に保持している変換対象の既存テーブルのうち未処理のテーブルの、未処理のカラムを1つ取得する。
ステップS505で、Webアプリケーション開発ツールは、当該カラムの情報(カラム情報)を、データモデル用に変換することなく流用可能か判定する。
例えば、ステップS504で取得したカラムのデータ型601が、データ型対応表710のデータ型712と一致している場合に、流用可能であると判定する。
流用可能と判定された場合は、処理をステップS509に移行し、流用可能なカラム情報として決定する。また、当該カラムのデータを変換ルール700に従って変換し、流用可能である旨を示す値と対応付けてRAM203に、変換後データの一部として記憶する。
ここでは、データ型712とアプリデータタイプ711と同じ組み合わせが変換ルール700のカラムデータ型701とアプリデータ型702に記憶されていることを前提にステップS509の処理を行っている。
つまり、実際には、ステップS509で流用可能と判定された後、当該カラムのデータ型を変換ルール700のカラムデータ型701から特定し、これに対応するアプリデータ型702に変換する処理を行う。変換先の候補が複数ある場合は、1013での選択結果に従う。
なお、ここでいう変換後データとは、外部メモリ211におけるリポジトリ定義部300に記憶される前の、一時データとしてRAM203に記憶されるデータモデルである。
データモデルの構成の一例を図6の610に示す。データモデル610は、既存テーブル600に変換ルールを適用してデータモデルを作成した場合のデータモデル定義の例である。
項目コード611と名前612は、既存テーブル600のカラムの名前602と同じ値を挿入する。
NULL613はNULL603から値を決定し、挿入する。NULL603=「はい」の場合、NULL613に「可」と挿入する。NULL603=「いいえ」の場合、NULL613に「不可」と挿入する。「可」は値が空であることを許可する(空でもよい)ことを示す。「不可」は値が空であることを許可しないことを示す。
キーグループ614はキー情報704の情報から値を決定し、挿入する。キー情報704が主キーであることを示す場合、キーグループ614に「1」と挿入する。キー情報704主キーでないことを示す場合、キーグループ614に「0」と挿入する。
また、データタイプ615は、変換ルール700及び1013での選択内容に基づいて変換した後の値を挿入する。
ステップS509で流用可能でないと判定された場合は、処理をステップS506に移行する。ステップS506で、Webアプリケーション開発ツールは、ステップS504で取得したカラムのデータ型601を、ステップS503で決定して取得した変換ルール700に基づいて変換可能か判定する。つまり、テーブルとして今のデータ型のまま流用できなくとも、変換ルール700によって変換は可能か判定する。
具体的には、カラム情報のデータ型601が変換ルール700のカラムデータ型701のいずれかに一致しているか判定する。
カラムデータ型701のいずれかに一致する場合(カラムデータ型701の中に対応するカラムが存在する場合)は、変換可能と判定する。カラムデータ型701のいずれとも一致しない場合は、変換不可能と判定する。
変換可能と判定された場合、処理をステップS508に移行する。変換不可能と判定された場合、処理をステップS507に移行する。
ステップS508で、Webアプリケーション開発ツールは、処理中のカラム情報のデータ型を変換ルール700に基づいて変換した値をRAM203に変換後データの一部として生成・記憶する。そして、当該カラム情報が、流用不可能だが変換を行ったカラム情報であることを示す値を対応付けて記憶する。
ステップS507で、Webアプリケーション開発ツールは、処理中のカラム情報のデータ型を強制的にCODE型に変換してRAM203に変換後データの一部として記憶し、当該カラム情報が変換ルール700に基づいて変換不可能であり、且つデータモデルに流用不可能であることを示す値を記憶する。
Webアプリケーション開発ツールは、ステップS504〜S509の判定及び判定に応じた処理を、変換対象の既存テーブルのカラム情報数分繰り返し行う。
全てのカラム情報が流用可能なカラム情報と判定された既存テーブルは、Webアプリケーションから利用できる既存テーブル341であると判定される。1件でも流用不可なカラム情報がある場合は、RAM203上に新規テーブルを作成後、データのコンバートを行う必要があると判定される。
Webアプリケーション開発ツールは、ステップS504〜S509の判定及び判定に応じた処理を、変換対象の既存テーブルのカラム情報数分繰り返し行った後、処理をステップS510に移行し、カラム情報を変換ルール700及び1013の選択内容に基づいて変換したデータモデルの情報(変換後データ)を表示する。例えば図8のデータモデル生成画面800を表示する。
なお、変換を行ったカラムについては、変換後のカラムの各情報が、Webアプリケーション開発ツールが扱うための条件を満たしているか判定する処理を行う。例えば桁数が特定できるか否かの判定を行い、桁数を特定できない場合は、当該桁数の項目に対応付けて、桁数を特定できなかった旨を示す値(テキスト)を記憶する。
データモデル生成画面800では、変換不可能なカラムが存在せず、流用可能なカラムと、流用はできないが変換は可能だったカラムとが混在した変換後データを表示している。
表示部801には、既存テーブル名と、既存テーブルを変換した変換後データ(データモデルのデータ)の識別情報(データモデルコード)及び名前を表示する。データモデルの外部メモリ上への生成・保存は、「Finish」ボタン808が押下された場合に実行する。
表示部803は、既存テーブルの情報の一覧表示部804と、当該既存テーブルの情報を変換したデータモデルの情報の一覧表示部805から構成される。
804には、変換ルールを適用した既存テーブルのカラム名及びカラムデータ型を表示する。805には、既存テーブルの各カラムを変換ルール700及び1013の選択内容に基づいて変換することで生成したデータモデルにおける、変換後の項目コード、項目の名前、データ型、桁数及び少数桁等を表示する。
また、Webアプリケーション開発ツールが取り扱い不可能なカラム(例えば、変換ルール700に基づいて桁数が特定できないという結果が得られたカラム)については、その先頭にエラーアイコン806を表示する。
また、データモデルの中に、Webアプリケーション開発ツールが取り扱い不可能なカラムが1つでも含まれている場合、801において、当該データモデルの先頭にエラーアイコン802を表示する。
取り扱い不可能であると判定された原因の項目(例えば桁数の項目)には、エラーアイコン807を表示する。
つまり、このままデータモデルを生成(外部メモリのリポジトリ定義部に生成・保存)すると、Webアプリケーション開発ツールが取り扱うことのできないデータモデルとなってしまう(当該データモデルを使ってWebアプリケーションを開発できない)ことを、その原因とあわせて通知する。以上が図5の説明である。
図4の説明に戻る。ステップS404で、Webアプリケーション開発ツールは、「Finish」ボタン808の押下を受け付けることで、データモデルをリポジトリ定義部300に生成し、記憶する。
具体的には、「Finish」ボタン808の押下時点で、表示部803においてチェックボックスがチェックされていた(選択されていた)カラムの項目コードをRAM203上の変換後データ(データモデル610)から取得してデータモデルのファイルを生成する。
なお、データモデル生成画面800においては、エラーとなっている欄を、ユーザ操作により選択可能であり、直接値を入力して修正可能である。
値の修正を受け付けた後「Finish」ボタン808が押下された場合は、修正後の値(厳密には、修正後、「Finish」ボタン808時点で入力されている値)を用いてデータモデルを生成して記憶する。
ある項目が選択された後に当該選択が解除された場合は、選択が解除された項目の値が、Webアプリケーション開発ツールが当該値を扱うための条件を満たしているか判定する。条件が満たされるようになった場合は、エラーが解消されたことを確認させるべく、当該項目におけるエラーアイコン807を非表示とする。
全てのエラーアイコン807が非表示となったカラムについては、エラーアイコン806を非表示とする。
データモデル生成画面によれば、データモデル化に際して、Webアプリケーションの開発のために修正が必要な項目を容易に確認することができる。
つまり、新たなアプリケーションの開発のためのデータ移行業務を省力化することが可能な仕組みを提供することができる。
ステップS404で生成した、エラーのないデータモデルの一例を図6の610に示す。その構成は、ステップS510で生成された変換後データ(RAM203上のデータモデル)と同じである。
値が修正されず、又は修正されたがエラーが残ったままのデータモデルの一例を図6の620に示す。620においてはエラーを621及び622のようなアイコンとして記載しているが、実際にはエラーを示す値を記憶する。
Webアプリケーション開発ツールは、データモデルの生成に成功した場合、ステップS405で図11のレポート出力画面1100を表示する。そして、当該レポート出力画面1100でレポートの出力操作を受け付けた場合に、変換結果レポート810を出力する。つまり、レポート結果をユーザに通知するためのファイルを生成する(通知制御手段に該当)。
具体的には、チェックボックス1101にチェックが入れられた状態で、且つ、指定受付部1102で出力先ファイルが指定された状態で「OK」ボタンが押下された場合に、レポートの出力操作を受け付けたと判定する。
レポートのファイル形式は指定された出力先ファイルによって変わるが、ここではテキスト形式であるものとする。
変換結果レポート810における非標準型811は、変換の結果、対象のカラムが流用可能かどうかを示す。流用可能なカラムにはアスタリスク(流用不可能であることを示す印)を付与せず、流用不可能な項目にはアスタリスクを付与する。つまり、アスタリスクが1つでもあれば流用不可能なテーブルである。
813には変換前のカラムデータ型を出力し、814には変換後のデータタイプを出力する。また、エラーがある場合には812のようにエラーの内容を挿入・出力する。
また、ユーザは変換結果レポートを確認することで、どのカラムが流用可能で、どのカラムがデータモデル化してもWebアプリケーション開発ツールが扱えないのか、その原因は何かを確認することができる。
例えば、データモデル化に際して、Webアプリケーションの開発のために修正が必要な項目を容易に確認することができるようになる。
また、移行・変換が正常に行われないデータ項目を確認できることで、どの項目を修正すればよいか容易に確認できる。
また、どの項目がWebアプリケーションの開発のために修正が必要な項目で、どの項目が流用できない項目かを容易に確認できる。
つまり、データのテーブル間の移行における修正すべき箇所や、新たなWebアプリケーションの開発のために修正すべき箇所を確認でき、データ移行業務を省力化することができる。
以上説明したように、本発明の第1の実施形態によれば、新たなアプリケーションのためのデータ移行業務を省力化することが可能な仕組みを提供することができる。
<第2の実施形態>
以下、本発明の第2の実施形態について説明する。なお、第1の実施形態と共通の装置、装置にかかる構成、処理、データ、画面については説明を省略する。
第2の実施形態においては、過去の変換履歴(データモデルの生成履歴)に基づいてデータの変換を行う。
これは、過去の変換時に行った値の修正内容を新たな変換に流用し、新たなアプリケーションのためのデータ移行業務を省力化するためである。
Webアプリケーション開発ツールは、図4のステップS404の後、データモデル生成の履歴情報を外部メモリ211に記憶する。なお、当該履歴情報は、例えばデータモデル生成画面において変更・修正された項目について(カラムについて)、変更される前と後の情報を記憶するものである。
履歴情報の一例を図12の1200に示す。履歴情報は1210の履歴一覧と、履歴の内容を示す1220から構成される。1220は履歴ごと(履歴IDごと)に記憶管理する。
例えば、変換ルール700によってカラムデータ型がINTのものをデータタイプNUM型とすることが決定されたカラム名=moneyのカラム情報につき、データモデル生成画面800においてデータタイプがNUM型からCURRENCY型に変更されたとする。その後、データモデルの生成が行われた場合、当該変更・生成がされたデータモデルの、変更されたカラムを含む変換元の既存テーブルを特定して、当該既存テーブルの名前を1213に挿入した新規レコードを1210に生成する。履歴ID1215には一意の値を挿入する。
また、当該レコードの1211、1213、1214に、接続情報入力画面910に対して入力された接続文字列911により特定されるデータベース種別の値、スキーマ選択画面1000で選択されたスキーマの名称、テーブル選択画面1010のカラムデータ型選択部1013で選択されたデータ型の値を挿入して記憶する。
そして、当該履歴ID1215と同じ値を履歴ID1221に持つレコードを1220に作成し、カラム名1222にmoney、変換前データ型1223にNUM、変換後データ型1224にCURRENCYを挿入して記憶する。以上が図12の説明である。
次に図13を参照して、本発明の第2の実施形態におけるカラム変換処理の流れについて説明する。
図13の処理は、PC100のCPU201が、自機にインストールされたWebアプリケーション開発ツールの各機能を用いて実行する。
ステップS1301からステップS1309までは、図5のステップS501からS509と同じであるため、説明を割愛する。
ステップS1310で、Webアプリケーション開発ツールは、過去に変更の履歴があるか判定する。
具体的には、カラム情報を変換に際し特定、選択、指定されたデータベース種別、スキーマ、既存テーブル名、1013で選択されたデータ型の組み合わせを持つ履歴が、履歴情報1200の1210に存在するか判定する。
当該履歴が存在する場合は当該履歴を1210から取得し、また、当該履歴に対応する(同じ履歴IDを持つ)履歴を1220から取得してRAM203に記憶し、処理をステップS1311に移行する。
Webアプリケーション開発ツールは、RAM203上に記憶した当該履歴の1220を参照し、1220の中からステップS1307又はステップS1308又はステップS1309で決定したカラム情報のカラム名を特定する。同じカラム名がない場合はステップS1311の処理をスキップする。
ステップS1311で、Webアプリケーション開発ツールは、1220の履歴内に存在するカラム名の変換前データ型1223と一致する、変換後データにおける変換後のデータ型(ステップS1307又はステップS1308又はステップS1309で決定したカラム情報のデータ型)を特定し、変換後データ型1224に変換する。
例えば、変換ルール700に従ってカラムデータ型がINTのものをデータタイプNUM型とすることが決定され変換されたカラム名=moneyのデータ型を、履歴情報に従って、NUM型からCURRENCY型に変更する。
履歴情報に従って変更(変換)がされた場合、ステップS1312では、履歴情報に従って変更(変換)された後のカラム情報を持つデータモデルを取得し、データモデル生成画面800に表示する。
図13の処理によれば、過去の変換時に行った値の修正内容を新たな変換に流用し、新たなアプリケーションのためのデータ移行業務を省力化することができる。
また、履歴情報を用いて変換された旨を識別表示する。例えば、履歴情報を用いて変換されたカラム内のデータタイプを赤字で表示する。それ以外は黒字で表示する。
履歴に基づいて変換されたデータ型とそれ以外のデータ型を識別可能とすることで、例えば新たなアプリケーションの開発や新たなアプリケーションでのデータ利用のために必要な変換結果のチェック箇所を、過去の修正内容を流用した箇所以外の箇所に容易に絞り込むことができるようになる。
また、変換後データの全てのカラムではなく、変換ルールにおいて変換候補が複数あり変換先が特定できないカラムのデータ型又は変換できなかったカラムのデータ型(ステップS1307でCODE型に変換されたデータ型)に対してのみ、ステップS1310以下の処理を適用し、変換、識別表示してもよい。
これにより、可能な限り、予め用意された変換ルールに従ってデータを変換しつつ、過去の変換時に行った値の修正内容を新たな変換に流用し、新たなアプリケーションのためのデータ移行業務を省力化することができる。
また、履歴に基づいて変換されたデータ型と変換ルールに基づいて変換されたデータ型を識別可能とすることで、例えば新たなアプリケーションの開発や新たなアプリケーションでのデータ利用のために必要な変換結果のチェック箇所を容易に絞り込むことができるようになる。
<第3の実施形態>
以下、本発明の第3の実施形態について説明する。なお、第1の実施形態及び第2の実施形態と共通の装置、装置にかかる構成、処理、データ、画面については説明を省略する。
第3の実施形態においては、データモデルの変換結果に基づいて、当該データモデルを用いて開発する新たなアプリケーション用のデータテーブルを生成し、既存のデータを移行・登録する。
図14を参照して、本発明の第3の実施形態における、データ登録処理の流れについて説明する。図14は、データをコンバートする処理のフローチャートである。
図14の処理は、PC100のCPU201が、自機にインストールされたWebアプリケーション開発ツールの各機能を用いて実行する。
Webアプリケーション開発ツールは、図4のステップS404でデータモデルが生成された場合に図14の処理を開始する。
ステップS1401で、Webアプリケーション開発ツールのデータ移行部320のSQL発行部321は、データモデル定義304に基づき、テーブル生成のSQLを作成する。
次にステップS1402では、SQL発行部321が当該SQLを実行し、新しいデータベースにテーブル331を作成する。当該SQLの実行は、データベース定義305に基づき行われる。
ステップS1403では、データ移行部320が、既存データベース340の既存テーブル341(ステップS404のデータモデルの生成に際し、変換に用いられた既存テーブル)からデータ342を抽出するSQLを作成する。
ステップS1404で、SQL発行部321は当該SQLを実行し、データ342を抽出する。
そして、抽出したデータを、変換ルール700及びデータ型対応表710を用いて変換する。例えば、変換ルール700を参照して既存テーブルのTIMESTAMP型のデータをTIME型に変換する。その後、データ型対応表710を参照して、当該TIME型のデータをDATETIME型に変換する。
S1405で、ステップS1402で作成したテーブル331に対して、ステップS1404で抽出して変換したデータ342を登録するSQLを作成する。
次にステップS1406で当該SQLを実行し、データ342をテーブル331に登録する。この処理を移行する対象のテーブル分だけ繰り返し行う。
なお、ステップS404の実行後に図14の処理を実行するものとしたが、例えばステップS405の実行後に図14の処理を実行するようにしてもよい。
ステップS405の後に図14の処理を実行する場合、Webアプリケーション開発ツールは、ステップS405で出力されたレポートの非標準型811を参照し、データモデルへの変換に用いられた既存テーブルが流用可能なテーブルか否かを判定する。
流用可能な場合は、PC100の外部メモリ211に記憶されている新たなアプリケーション用のRDBMSの接続情報を用いて当該RDBMSに接続し、既存テーブルを、新たなアプリケーション用のテーブルとしてコピー・転送して、当該RDBMSに登録する。
流用可能なテーブルでない場合(非標準型811にアスタリスクが1つでもある場合)、ステップS1401以下の処理を実行する。以上が第3の実施形態の説明である。
本発明の第3の実施形態によれば、データモデルの変換結果に基づいて、当該データモデルを用いて開発する新たなアプリケーション用のデータテーブルを自動生成し、既存のデータを移行・登録する(コンバートする)ことで、データ移行業務を省力化することが可能となる。
以上説明したように、本発明によれば、新たなアプリケーションのためのデータ移行業務を省力化することが可能な仕組みを提供することができる。
上述したWebアプリケーションはアプリケーションプログラムの一例である。例えばPC100の外部メモリに記憶されてPC100で動作するローカルアプリケーションや、クライアントアプリケーションであってもよい。すなわち、Webアプリケーション開発ツールが、ローカルアプリケーションや、クライアントアプリケーションの開発ツールであってもよい。
尚、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
具体的には、PC100とデータベースサーバ250が一体であり、上述した実施形態の各処理を実行するようにしてもよい。また、PC100とデータベースサーバ250及び/又はアプリケーションサーバ200が一体であり、上述した実施形態の各処理を実行するようにしてもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
尚、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。
即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。