特許第6836077号(P6836077)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノンマーケティングジャパン株式会社の特許一覧 ▶ キヤノンITソリューションズ株式会社の特許一覧

特許6836077情報処理装置と、その処理方法及びプログラム
<>
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000002
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000003
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000004
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000005
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000006
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000007
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000008
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000009
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000010
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000011
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000012
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000013
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000014
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000015
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000016
  • 特許6836077-情報処理装置と、その処理方法及びプログラム 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6836077
(24)【登録日】2021年2月9日
(45)【発行日】2021年2月24日
(54)【発明の名称】情報処理装置と、その処理方法及びプログラム
(51)【国際特許分類】
   G06F 8/35 20180101AFI20210215BHJP
【FI】
   G06F8/35
【請求項の数】11
【全頁数】22
(21)【出願番号】特願2017-254613(P2017-254613)
(22)【出願日】2017年12月28日
(65)【公開番号】特開2019-121087(P2019-121087A)
(43)【公開日】2019年7月22日
【審査請求日】2018年12月21日
(73)【特許権者】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(73)【特許権者】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【弁理士】
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】中山 圭
(72)【発明者】
【氏名】柴本 文洋
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 国際公開第2012/160813(WO,A1)
【文献】 特開平07−182222(JP,A)
【文献】 特開平06−124197(JP,A)
【文献】 特開平09−114653(JP,A)
【文献】 特開平08−147151(JP,A)
【文献】 特開平04−336624(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00− 8/38
8/60− 8/77
9/44− 9/451
(57)【特許請求の範囲】
【請求項1】
データベースのデータの操作に用いるデータモデルの定義を記憶するデータモデル記憶手段を備え、前記データベースに接続するアプリケーションを構築する情報処理装置であって、
前記構築するアプリケーションで用いる第2データモデルの定義に任意の定義の設定を受け付ける定義受付手段と、
前記定義受付手段により受け付けた定義と組み合わせる、前記データモデル記憶手段に記憶されている第1データモデルの定義を、前記アプリケーションで用いる第2データモデルの定義の一部として設定を受け付ける設定受付手段と、
前記定義受付手段により設定を受け付けた定義と前記設定受付手段により設定を受け付けた前記第1データモデルの定義を用いて第2データモデルに対応するアプリケーションを構築するアプリケーション構築手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記アプリケーション構築手段は、
前記設定受付手段により設定を受け付けた第2データモデルの前記データの操作を行う場合には前記設定受付手段により設定を受け付けた第1データモデルの定義に基づく定義を用いて前記データの操作を行うアプリケーションを構築すること
を特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記データモデルの定義の編集を受け付けるデータモデル編集受付手段を更に備え、
前記データモデル編集受付手段は、
前記第2データモデルの定義の編集を受け付ける画面に表示された前記第1データモデルの定義の編集を抑止するよう制御すること
を特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
データベースのデータの操作に用いるデータモデルの定義記憶するデータモデル記憶手段を備え、前記データベースに接続するアプリケーションを構築する情報処理装置であって、
前記構築するアプリケーションで用いる第2データモデルの定義に任意の定義の設定を受け付ける定義受付手段と、
前記定義受付手段により受け付けた定義と組み合わせる、前記データモデル記憶手段に記憶されている第1データモデルの定義を、前記アプリケーションで用いる第2データモデルの定義の一部として設定を受け付ける設定受付手段と、
前記第1データモデルの定義に基づき、前記第2データモデルの定義を生成するデータモデル生成手段と、
前記データモデル生成手段により生成された第2データモデルの定義を用いてプリケーションを構築するアプリケーション構築手段と
を備えることを特徴とする情報処理装置。
【請求項5】
前記データモデルの定義の編集を受け付けるデータモデル編集受付手段を更に備え、
前記データモデル生成手段は、
前記データモデル編集受付手段により受け付けた編集に従って変更した第1データモデルの定義に基づき、前記設定受付手段により設定を受け付けた第2データモデルの定義を生成すること
を特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記データモデル編集受付手段は、
前記第2データモデルの定義の編集を受け付ける画面に前記第1データモデルの定義を識別して表示すること
を特徴とする請求項5に記載の情報処理装置。
【請求項7】
データベースのデータの操作に用いるデータモデルの定義は、前記アプリケーションの実行時にデータの操作に用いるクエリを動的に生成するための条件を含む定義であって、
前記アプリケーション構築手段は、前記第2データモデルの定義を用いて前記データの操作を行うクエリを動的に生成するアプリケーションを構築することを特徴とする請求項1乃至6に記載の情報処理装置。
【請求項8】
データベースのデータの操作に用いるデータモデルの定義を記憶するデータモデル記憶手段を備え、前記データベースに接続するアプリケーションを構築する情報処理装置における処理方法であって、
前記情報処理装置が、
前記構築するアプリケーションで用いる第2データモデルの定義に任意の定義の設定を受け付ける定義受付ステップと、
前記定義受付ステップにより受け付けた定義と組み合わせる、前記データモデル記憶手段に記憶されている第1データモデルの定義を、前記アプリケーションで用いる第2データモデルの定義の一部として設定を受け付ける設定受付ステップと、
前記定義受付ステップにより設定を受け付けた定義と前記設定受付ステップにより設定を受け付けた前記第1データモデルの定義を用いて第2データモデルに対応するアプリケーションを構築するアプリケーション構築ステップ
を実行することを特徴とする処理方法。
【請求項9】
データベースのデータの操作に用いるデータモデルの定義を記憶するデータモデル記憶手段を備え、前記データベースに接続するアプリケーションを構築する情報処理装置における処理方法であって、
前記情報処理装置が、
前記構築するアプリケーションで用いる第2データモデルの定義に任意の定義の設定を受け付ける定義受付ステップと、
前記定義受付ステップにより受け付けた定義と組み合わせる、前記データモデル記憶手段に記憶されている第1データモデルの定義を、前記アプリケーションで用いる第2データモデルの定義の一部として設定を受け付ける設定受付ステップと、
前記第1データモデルの定義に基づき、前記第2データモデルの定義を生成するデータモデル生成ステップと、
前記データモデル生成ステップにより生成された第2データモデルの定義を用いてプリケーションを構築するアプリケーション構築ステップ
を実行することを特徴とする処理方法。
【請求項10】
データベースのデータの操作に用いるデータモデルの定義を記憶するデータモデル記憶手段を備え、前記データベースに接続するアプリケーションを構築する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記構築するアプリケーションで用いる第2データモデルの定義に任意の定義の設定を受け付ける定義受付手段と
前記定義受付手段により受け付けた定義と組み合わせる、前記データモデル記憶手段に記憶されている第1データモデルの定義を、前記アプリケーションで用いる第2データモデルの定義の一部として設定を受け付ける設定受付手段と、
前記定義受付手段により設定を受け付けた定義と前記設定受付手段により設定を受け付けた前記第1データモデルの定義を用いて第2データモデルに対応するアプリケーションを構築するアプリケーション構築手段
として機能させるためのプログラム。
【請求項11】
データベースのデータの操作に用いるデータモデルの定義を記憶するデータモデル記憶手段を備え、前記データベースに接続するアプリケーションを構築する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記構築するアプリケーションで用いる第2データモデルの定義に任意の定義の設定を受け付ける定義受付手段と、
前記定義受付手段により受け付けた定義と組み合わせる、前記データモデル記憶手段に記憶されている第1データモデルの定義を、前記アプリケーションで用いる第2データモデルの定義の一部として設定を受け付ける設定受付手段と、
前記第1データモデルの定義に基づき、前記第2データモデルの定義を生成するデータモデル生成手段と、
前記データモデル生成手段により生成された第2データモデルの定義を用いてプリケーションを構築するアプリケーション構築手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベースに接続するアプリケーションを構築するための情報処理装置と、その処理方法及びプログラムに関する。
【背景技術】
【0002】
従来、入出力定義やデータモデル定義などを設定し、アプリケーションを構築するツールやサービスが存在する。
【0003】
それらのツールやサービスを用いて構築したアプリケーションは、設定されたデータモデル定義を用いてデータベースのデータを操作(検索、挿入、更新、削除等)する。また、その操作のうち、登録、更新(論理削除を含む)等を行った場合、監査用の証跡情報として、データベースにおける当該データの「登録ユーザID」「登録日時」「更新ユーザID」「更新日時」等のカラムに処理ユーザID又は処理日時の値を記憶することが一般的である。
【0004】
特許文献1には、監査用の証跡情報として、「承認者ID」及び「承認日時」を複数のテーブルに登録する仕組みが開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2014−38479号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1には、監査用の証跡情報を容易に取得することについては開示されているが、監査用の証跡情報を持つ複数テーブルを利用するアプリケーションの構築については触れられていない。つまり、上記のようなアプリケーション構築ツールで、このようなテーブル構造のデータベースを利用するアプリケーションを構築するには、同じ証跡情報項目を持つデータモデルをテーブルの数分設定し、それらのデータモデルを介して証跡情報の登録及び更新をしなければならず、大変面倒である。
【0007】
そこで、本発明の目的は、データモデル定義を利用するアプリケーションを容易に構築する仕組みを提供することである。
【課題を解決するための手段】
【0008】
データベースのデータの操作に用いるデータモデルの定義を記憶するデータモデル記憶手段を備え、前記データベースに接続するアプリケーションを構築する情報処理装置であって、前記構築するアプリケーションで用いる第2データモデルの定義に任意の定義の設定を受け付ける定義受付手段と、前記定義受付手段により受け付けた定義と組み合わせる、前記データモデル記憶手段に記憶されている第1データモデルの定義を、前記アプリケーションで用いる第2データモデルの定義の一部として設定を受け付ける設定受付手段と、前記定義受付手段により設定を受け付けた定義と前記設定受付手段により設定を受け付けた前記第1データモデルの定義を用いて第2データモデルに対応するアプリケーションを構築するアプリケーション構築手段とを備えることを特徴とする情報処理装置。
【発明の効果】
【0009】
本発明によれば、データモデル定義を利用するアプリケーションを容易に構築する仕仕組みを提供することができる。
【図面の簡単な説明】
【0010】
図1】本発明に係る情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム構成図である。
図2】本発明に係る情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントとして適用可能な各ハードウェア構成の一例を示すブロック図である。
図3】本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
図4】本発明に係るプログラム生成装置の構成図である。
図5】アプリケーション生成のフローチャートの一例を示す図である。
図6】SQL文生成のフローチャートの一例を示す図である。
図7】日付時刻更新のフローチャートの一例を示す図である。
図8】データモデル定義画面の一例を示す図である。
図9】データモデル定義XMLの一例を示す図である。
図10】INSERT押下前画面、INSERT押下後画面の一例を示す図である。
図11】INSERT SQL文、INSERT押下後DBレコードの一例を示す図である。
図12】UPDATE押下前画面、UPDATE押下後画面の一例を示す図である。
図13】UPDATE押下前DBレコード、UPDATE SQL文、UPDATE押下後DBレコードの一例を示す図である。
図14】継承関係を持つデータモデル定義画面の一例を示す図である。
図15】継承関係を持つデータモデル定義画面の一例を示す図である。
図16】継承関係を持つデータモデル定義XMLの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【0012】
図1は、本発明に係る情報処理装置(開発者がWebアプリケーション生成のために操作するプログラム開発装置)、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム(情報処理システム)構成図である。
【0013】
情報処理装置101は、開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。情報処理装置101は、プログラム生成、アプリケーション生成を行う。
【0014】
なお、この実施形態においては、情報処理装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Web技術による通信を利用したアプリケーションでなくてもよい。
【0015】
アプリケーションサーバ102は、情報処理装置101で開発されたアプリケーションを実行する。また、データベースサーバ103と接続して動作することが可能である。
【0016】
データベースサーバ103は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、開発者が利用するためにデータベースサーバ103は、情報処理装置101や、アプリケーションサーバ102と同一の装置で構成されていてもよいし、LANなどのネットワーク105内に配置されてもよい。
【0017】
アプリケーションクライアント104(情報処理装置)は、アプリケーションサーバ102と協調して情報処理装置101で開発したアプリケーションプログラムを動作させる、エンドユーザの入力端末である。この、アプリケーションクライアント104は、携帯端末などの情報処理装置であってもよいこととする。
【0018】
なお、情報処理装置101、アプリケーションサーバ102、データベースサーバ103、および、アプリケーションクライアント104の何れかを、クラウドなどのインターネット上に配置してもよい。
【0019】
図2は、本発明に係る情報処理装置101、アプリケーションサーバ102、データベースサーバ103、アプリケーションクライアント104として適用可能な各ハードウェア構成の一例を示すブロック図である。
【0020】
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
【0021】
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【0022】
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
【0023】
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
なお、入力部209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【0024】
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【0025】
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。外部メモリ211には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
【0026】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、出力部210上での表示を可能としている。また、CPU201は、出力部210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0027】
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0028】
図3は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【0029】
情報処理装置101は、以下の機能部を備える。
【0030】
データモデル記憶部301は、データベースのデータの操作に用いるデータモデルの定義を記憶する機能部である。
【0031】
継承設定受付部302は、データモデル記憶部301に記憶されている第1データモデルの定義を第2データモデルが継承する設定を受け付ける機能部である。
【0032】
アプリケーション構築部303は、継承設定受付部302により設定を受け付けた第2データモデルを用いてデータの操作を行う場合には第1データモデルの定義に基づく定義を用いてデータの操作を行うアプリケーションを構築する機能部である。
【0033】
データモデル編集受付部304は、データモデルの定義の編集を受け付ける機能部である。
【0034】
アプリケーション構築部303は、データモデル編集受付部304により第1データモデルの定義の編集を受け付けた後に継承設定受付部302により設定を受け付けた第2データモデルを用いてデータの操作を行う場合にはデータモデル編集受付部304により受け付けた編集に従って変更した第1データモデルの定義に基づく定義を用いてデータの操作を行うアプリケーションを構築する機能部である。
【0035】
データモデル編集受付部304は、第2データモデルの定義の編集を受け付ける画面に表示された第1データモデルの定義の編集を抑止するよう制御する機能部である。
【0036】
データモデル生成部305は、第1データモデルの定義に基づき、継承設定受付部302により設定を受け付けた第2データモデルの定義を生成する機能部である。
【0037】
アプリケーション構築部303は、データモデル生成部305により生成された第2データモデルの定義を用いてデータの操作を行うアプリケーションを構築する機能部である。
【0038】
データモデル生成部305は、データモデル編集受付部304により受け付けた編集に従って変更した第1データモデルの定義に基づき、継承設定受付部302により設定を受け付けた第2データモデルの定義を生成する機能部である。
【0039】
データモデル編集受付部304は、第2データモデルの定義の編集を受け付ける画面に第1データモデルの定義を識別して表示する機能部である。
【0040】
図4は、情報処理装置101の構成図である。
【0041】
情報処理装置101は、リポジトリ定義部401及びWebアプリケーション生成部407を備える。
【0042】
情報処理装置101は、Webアプリケーションを開発する開発者により設定されたリポジトリ定義部401の各定義を用いて、Webアプリケーション生成部407によりWebアプリケーションを生成する。
【0043】
リポジトリ定義部401には、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406が記憶されている。これら402〜406の定義は、Webアプリケーション構築ツールを介して、開発者によって入力設定または配置される。
【0044】
なお、入出力定義403は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたWebアプリケーションの画面を介して当該Webアプリケーションのユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたWebアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【0045】
Webアプリケーション生成部407は、Webアプリケーション生成用のリポジトリ定義解析部408を用いてリポジトリ定義部401に記憶されている各定義を解析し、Webアプリケーションコード生成部410及びソースコードコンパイル部411を介し、コンパイル済Java(登録商標)コード413及びHTML/JSP/JavaScript(登録商標)412を含むWebアプリケーションを生成する。すなわち、設定された定義を用いて、アプリケーションとして用いられるプログラムを生成する手段の一例である。
【0046】
図5は、アプリケーション生成のフローチャートの一例を示す図である。
【0047】
情報処理装置101は、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造600を用いて、リポジトリ定義部401の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部401の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。
【0048】
アプリケーション生成のフローチャートについて説明する。
【0049】
ステップS501において、情報処理装置101は、アプリケーション定義402の設定を受け付ける。具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者から入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義406の設定を受け付ける。
【0050】
図8は、データモデル定義404の設定を受け付けるデータモデル定義画面800の一例を示す図である。アプリケーション開発者は、データモデル定義画面800を介して、データモデル定義404の設定をする。すなわち、データモデル定義404は、データベースのデータの操作に用いるデータモデルの定義を記憶する手段の一例である。
図8の加工式801のようにして、テーブルのカラムに対応する項目コード毎にタイムゾーンの指定をする。
【0051】
これにより、データベースの1つのテーブルにおいても、複数のタイムゾーンを使い分けるアプリケーションを構築する仕組みを提供することができる。つまり、構築したアプリケーションをクラウド環境で動作させるケース等、エンドユーザが閲覧する日時情報(例:画面に表示する日時情報)には、エンドユーザの住む地域とのタイムゾーンを利用し、それ以外の日時情報(監査用等)には、異なるタイムゾーン(例:システム日時)を利用したいケースにおいても、複数のタイムゾーンを使い分けるアプリケーションを構築する仕組みを提供することができるようになる。また、世界各国のエンドユーザがアプリケーションを利用するケースであっても、複数のタイムゾーンを使い分けるアプリケーションを構築する仕組みを提供することができるようになる。
【0052】
タイムゾーンの指定を指定する場合、加工式801に“@DBZONEDATE:[INSERT][:タイムゾーン文字列]”形式で設定をする。この設定方法について、具体的に説明する。“INSERT”を付けると、レコード挿入時のみこの項目コードに日時が記録される(つまり、レコード更新時には記録されない)。“INSERT”を省略する場合は“@DBZONEDATE::タイムゾーン文字列”と設定する(つまり、レコード挿入時及びレコード更新時にタイムゾーン日時が記録される)。
【0053】
タイムゾーン文字列として、“@LOCAL”が指定された場合は、データベースサーバ103のシステム日時を使用する。(つまり、SQL文に、“AT TIME ZONE”句を付加しない)。タイムゾーン文字列は、SQL文にそのまま渡される(つまり、DBMSに準拠したタイムゾーンを指定することができる)。
【0054】
タイムゾーン文字列を省略すると、SQL生成時、SQL文にタイムゾーンが付加されない。つまり、データベースサーバ103のシステム日時が登録される。
【0055】
また、タイムゾーン日時に未対応のDBMSの場合、データベースサーバ103又はアプリケーションサーバ102の日時を登録する。具体的には、データベース定義406に定義された接続先データベースサーバ103のDBMSがタイムゾーン日時に対応しているか否かを判定し、対応していない場合はSQL生成時にタイムゾーン日時の指定を行わないようにする。これにより、タイムゾーン日時に未対応のDBMSであっても、SQLエラーにならず、処理を続けることが可能になる。
【0056】
また、アプリケーション実行時、アプリケーション利用者のHTTPセッションにセッションキー“@TIME_ZONE”として値が設定されている場合は、“タイムゾーン文字列”の指定の有無にかかわらず、セッション値を使用する。
【0057】
以上から、項目コード804〜806の加工式は、“@DBZONEDATE::タイムゾーン文字列”形式であるため、レコード挿入時及びレコード更新時に指定された各タイムゾーンで処理日時を記録する。項目コード807の加工式は、“@DBZONEDATE::@LOCAL”形式であるため、レコード挿入時及びレコード更新時に指定された各タイムゾーンでデータベースサーバ103のシステム日時を記録する。項目コード808〜810の加工式は、“@DBZONEDATE:INSERT:タイムゾーン文字列”形式であるため、レコード挿入時に指定された各タイムゾーンで処理日時を記録する。項目コード811の加工式は、“@DBZONEDATE:INSERT:@LOCAL”形式であるため、レコード挿入時に指定された各タイムゾーンでデータベースサーバ103のシステム日時を記録する。
【0058】
なお、本実施形態においては、“@LOCAL”が指定された場合は、データベースサーバ103のシステム日杖kを使用するとしたが、これに限定するものではなく、アプリケーションサーバ102であっても、アプリケーションサーバ102又はデータベースサーバ103を選択できるとしてもよい。
【0059】
また、本実施形態においては、各データモデルの各項目コード(各テーブルの各カラムに対応)にタイムゾーン設定をするとしたが、これに限定するものではなく、複数のデータモデルや複数の項目コードに対して、一括的にタイムゾーンを指定できるとしてもよい。
【0060】
ステップS501にて、受け付けたアプリケーション定義402(入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義406)の設定は、リポジトリ定義部401にXMLファイル形式で記憶する。例えば、データモデル定義画面800を介して受け付けた「商品データモデル」は、リポジトリ定義部401にデータモデル定義XML900(図9)のような形式で記憶する。
【0061】
図9は、データモデル定義XMLの一例を示す図である。項目コード毎の設定が、<dm−item>〜</dm−item>部分に記載されている。加工式801の設定は、<statement>〜</statement>部分に記載される。
【0062】
なお、本実施形態においては、データモデル定義404等のアプリケーション定義402をXMLファイル形式で記憶するとしたが、これに限定するものではなく、他のファイル形式やデータベースに登録する等の他の記憶方法であってもよい。
【0063】
ステップS502において、情報処理装置101は、アプリケーション生成の指示を受け付ける。
【0064】
ステップS503において、情報処理装置101は、リポジトリ定義部401からアプリケーション定義402を取得する。リポジトリ定義解析部408は、読み込んだ定義を解析したうえでメモリに保管しておき、解析された定義は各生成部から適宜参照される。
【0065】
ステップS504において、情報処理装置101は、リポジトリ定義部401からデータモデル定義404を取得する。
【0066】
ステップS505において、情報処理装置101は、リポジトリ定義部401から入出力定義403を取得する。
【0067】
ステップS506において、情報処理装置101は、リポジトリ定義部401からビジネスプロセス定義405を取得する。
【0068】
ステップS507において、情報処理装置101は、リポジトリ定義部401からデータベース定義406を取得する。
【0069】
ステップS508において、情報処理装置101は、Webアプリケーション生成部407を用いて、Webアプリケーションに用いるプログラムを生成する。すなわち、ステップS508は、アプリケーションを構築する処理の一例を示すステップである。
【0070】
ステップS509において、情報処理装置101は、SQL文を生成する(詳細は、図6の説明にて後述する)。
【0071】
ステップS510において、情報処理装置101は、ステップS508にて生成したプログラム及びステップS509にて生成したSQL文をアプリケーションサーバ102に配置(デプロイ)する。これにより、複数のタイムゾーンを使い分けるアプリケーションを構築する仕組みを提供することができる。
【0072】
以上で、図5の説明を終了する。
【0073】
図6は、SQL文生成のフローチャートの一例を示す図である。
【0074】
ステップS601において、情報処理装置101は、ステップS504にて取得したデータモデル定義404の加工式801(図9の<statement>〜</statement>部分)に“@DBZONEDATE”が設定されているかを判定し、設定されている場合はステップS602に進み、設定されていない場合は図6の処理を終了する。
【0075】
ステップS602において、情報処理装置101は、ステップS504にて取得したデータモデル定義404の加工式801に“@LOCAL”が設定されているか判定し、設定されている場合はステップS603に進み、設定されていない場合はステップS604に進む。
【0076】
ステップS603において、情報処理装置101は、データベースサーバ103の日付を取得するSQL文を作成する(例:図11の1110又は図13の1320の対象カラム名=CURRENT_TIMESTAMP)。なお、本実施形態においては、データベースサーバ103の日付を“CURRENT_TIMESTAMP”としたが、これに限定するものではなく、DBMSの種類によっては、“SYSTIMESTAMP”等、他の表現方法であってもよい。
【0077】
ステップS604において、情報処理装置101は、“AT TIME ZONE”付のSQL文を作成する(例:図11の1110又は図13の1320の対象カラム名=CURRENT_TIMESTAMP AT TIME ZONE タイムゾーン文字列)。すなわち、ステップS604は、データモデル定義に第1の所定の値(タイムゾーン文字列)が設定されている場合に、当該第1の所定の値に応じたタイムゾーンを指定するクエリを用いてデータベースのデータを操作するアプリケーションを構築する処理の一例を示すステップである。
【0078】
なお、本実施形態においては、データベースサーバ103の日付を“CURRENT_TIMESTAMP AT TIME ZONE タイムゾーン文字列”としたが、これに限定するものではなく、DBMSの種類によっては、“SYSTIMESTAMP AT TIME ZONE タイムゾーン文字列”等、他の表現方法であってもよい。ただし、タイムゾーン文字列については、データベースの種類によってその指定方法が異なる場合があるため、加工式801に設定されたタイムゾーン文字列をそのまま利用するとした方が、汎用性が高まるため好ましい。
【0079】
ステップS605において、情報処理装置101は、データモデル定義404の加工式801の“@DBZONEDATE”に“INSERT”が設定されているか判定し、設定されている場合はステップS606に進み、設定されていない場合はステップS607に進む。つまり、“@DBZONEDATE”に“INSERT”が設定されている場合は、レコード挿入時のみこの項目コードに日時が記録される。すなわち、ステップS605は、記憶されているデータモデル定義に第2の所定の値(“INSERT”)が設定されているか否かを判定する処理の一例を示すステップである。また、ステップS605は、判定に従って、データベースのデータを更新するときにタイムゾーンを指定するクエリを用いるアプリケーションを構築するか、データベースのデータを更新するときにタイムゾーンを指定しないクエリを用いるアプリケーションを構築するかを制御する処理の一例を示すステップである。
【0080】
ステップS606において、情報処理装置101は、ステップS505にて取得した入出力定義403のアクション定義に“@INSERT”が定義されているか判定し、設定されている場合はステップS608に進み、設定されていない場合は図6の処理を終了する。つまり、レコード挿入を行うアクション(例;挿入ボタン押下時)によって実行される処理の場合は、INSERT SQL文に日付時刻のSQLを付加すべく、ステップS608に進む。
【0081】
ステップS607において、情報処理装置101は、ステップS505にて取得した入出力定義403のアクション定義に“@INSERT”又は“@UPDATE”が定義されているか判定し、設定されている場合はステップS608に進み、設定されていない場合は図6の処理を終了する。つまり、レコード挿入又はレコード更新を行うアクション(例;挿入ボタン又は更新ボタン押下時)によって実行される処理の場合は、INSERT SQL文又はUPDATE SQL文に日付時刻のSQLを付加すべく、ステップS608に進む。
【0082】
ステップS608において、情報処理装置101は、ステップS603又はステップS604で作成した日付時刻のSQLを処理SQL文に付加する。
【0083】
以上で、図6の説明を終了する。
【0084】
図7は、図5図6の処理により構築されたアプリケーションが日付時刻を更新する処理のフローチャートの一例を示す図である。
【0085】
ステップS701において、アプリケーションサーバ102は、デプロイしたコンパイル済Java(登録商標)コード413を実行し、生成されたSQL文に“AT TIME ZONE”句が無い且つアプリケーション利用者のHTTPセッションにセッションキー“@TIME_ZONE”として値が設定されているか判定し、Yesの場合はステップS703に進み、Noの場合はステップS702に進む。すなわち、ステップS701は、アプリケーションを利用するユーザのセッションに所定のセッションキーが存在するか否かを判定する処理の一例を示すステップである。
【0086】
ステップS702において、アプリケーションサーバ102は、図6の処理により生成されたSQL文を実行する。
【0087】
具体的には、「INSERT押下前画面1010(図10)」でINSERTボタン1011の押下を受け付けた場合、このINSERTボタン1011(=INSERTアクション)に対応付けられて生成された「INSERT SQL文 1110(図11)」が実行されることによって、「INSERT後 DBレコード1120(図11)」がデータベースに登録され、「INSERT押下後画面1020(図10)」のような画面が表示される。
【0088】
同様に、「UPDATE押下前画面1210(図12)」でUPDATEボタン1211の押下を受け付けた場合、このUPDATEボタン1211(=UPDATEアクション)に対応付けられて生成された「UPDATE SQL文 1320(図13)」が実行されることによって、データベースに記憶されている「UPDATE前 DBレコード1310(図13)」が、「UPDATE後 DBレコード1330(図13)」に更新され、UPDATE押下後画面1220(図12)」のような画面が表示される。つまり、データモデル定義画面800の加工式801に“INSERT”を付けた項目コードについては、レコード更新時に日付は記録されない。
【0089】
これにより、アプリケーション開発者が定義したデータモデル定義404の加工式801のタイムゾーン文字列に従って、挿入日時又は更新日時を記録することができるようになる。つまり、アプリケーション設計のタイムゾーンに合わせた日時の記録及びその後の日時表示ができるようになる。
【0090】
ステップS703において、アプリケーションサーバ102は、図6の処理により生成されたSQL文とセッションキー“@TIME_ZONE”の値とを用いて動的にSQL文を生成し実行する。すなわち、ステップS703は、所定のセッションキーが存在する場合、当該セッションキーに対応する値に応じたタイムゾーンを指定するクエリを用いてデータベースのデータを操作するアプリケーションを構築する処理の一例を示すステップである。また、ステップS703は、所定のセッションキーが存在する場合、当該セッションキーに対応する値に応じたタイムゾーンを指定するクエリを用いてデータベースのデータを操作するアプリケーションを構築する処理の一例を示すステップである。
【0091】
具体的には、アプリケーション利用者のHTTPセッションに@TIME_ZONE=“America/New_York”と記録されていた場合、図8の加工式801の“タイムゾーン文字列”の指定に関わらず、図6の処理により生成されたSQL文中のタイムゾーン文字列を“America/New_York”に置換して、動的にSQL文を生成し実行する。これにより、アプリケーション開発者が定義したデータモデル定義404の加工式801のタイムゾーン文字列に関わらず、アプリケーション利用者のタイムゾーン文字列に従って、挿入日時又は更新日時を記録することができるようになる。つまり、アプリケーション利用者のタイムゾーンに合わせた日時の記録及びその後の日時表示ができるようになる。
【0092】
以上で、図7の説明を終了する。
【0093】
ここまで、監査用の証跡情報(図8の804〜811)を持つデータモデル定義404を利用したアプリケーションの構築について説明した。このような証跡情報は、データベースの各テーブルに通常持つため、各データモデル定義404にも同様に持つ必要がある。また、上記のように証跡情報にタイムゾーンの指定を含む場合は、データ項目の設定だけでなく、加工式801等の設定も各データモデル定義404に必要となる。
【0094】
そこで、図14図16を用いて、監査用の証跡情報を持つ複数テーブルを利用するアプリケーションの構築について説明する。
【0095】
図14は、継承関係を持つデータモデル定義画面1400の一例である。
【0096】
例えば、継承設定を用いて図8の商品データモデル(COMMODITY_DM)を定義する場合、図8の商品データモデル(COMMODITY_DM)から証跡情報(804〜811)だけをタイムゾーンデータモデル1410(TIMEZONE_DM)として切り出して設定する(1411〜1418)。一方、残った商品データモデル独自のデータ項目(1421及び1422)を商品データモデル1420として設定する。
【0097】
図14の1423はデータモデルの継承設定であり、ここでは、商品データモデル1420(子データモデル)がタイムゾーンデータモデル1410(親データモデル)を継承するという意味を表す。つまり、商品データモデル1420は、タイムゾーンデータモデル1410のデータ項目(1411〜1418)を持つという設定である。すなわち、1423は、第1データモデルの定義を第2データモデルが継承する設定を受け付ける手段の一例である。これにより、タイムゾーンデータモデル1410を親、商品データモデル1420を子とする、データモデルの継承設定ができる。
【0098】
また、商品データモデル独自のデータ項目(1421及び1422)及び継承設定1423は変更可能に表示する。すなわち、図14の1421〜1423は、データモデルの定義の編集を受け付ける手段の一例である。
【0099】
なお、本実施形態においては、子データモデル定義画面において親データモデルを指定するとしたが、この方法に限定するものではなく、その他の親データモデルの指定方法、親データモデル定義画面において子データモデルを指定する方法、又は、親子(継承)関係を定義する画面において親データモデル及び子データモデルの両者を指定する方法等であってもよい。
【0100】
図15は、継承関係を持つデータモデル定義画面1500の一例である。図14と異なる設定方法であるが、継承の設定内容は同じである。
【0101】
タイムゾーンデータモデル1410の設定画面は、図14と同じである。
【0102】
一方、商品データモデル1520の設定画面では、継承元となる親データモデルとしてタイムゾーンデータモデル1410の選択を受け付けた(図15の1541)場合、商品データモデル独自のデータ項目(1521及び1522)は変更可能に表示し、継承したタイムゾーンデータモデル1410のデータ項目は変更不可能に表示する(1523〜1530)。ここでは、変更不可能なデータ項目を網掛け1540で表示し、変更不可能であることを識別して表示している。
【0103】
すなわち、図15の1521及び1522は、データモデルの定義の編集を受け付ける手段の一例である。また、図15の1540は、第2データモデルの定義の編集を受け付ける画面に表示された第1データモデルの定義の編集を抑止するよう制御する手段の一例である。また、図15の1540は、第2データモデルの定義の編集を受け付ける画面に第1データモデルの定義を識別して表示する手段の一例である。また、図15の1541は、第1データモデルの定義を第2データモデルが継承する設定を受け付ける手段の一例である。
【0104】
なお、本実施形態においては、変更不可能なデータ項目を網掛け1540で識別して表示するとしたが、この方法に限定するものではなく、グレー文字等の異なるフォントで表示したり、1540のように枠で囲んだり、変更可能なデータ項目と識別できる方法であれば他の方法であってもよい。
【0105】
これにより、1523〜1530はデータモデルの継承であり、商品データモデル1420(子データモデル)がタイムゾーンデータモデル1410(親データモデル)を継承していることがわかる。
【0106】
図16は、データモデル定義画面1400又は1500にて設定した、継承関係を持つタイムゾーンデータモデル(親データモデル)及び商品データモデル(子データモデル)のデータモデル定義XMLの一例を示す図である。
【0107】
親データモデル定義XML1610の記述は、図9の記述方法と同じだが、子データモデル定義XML1620の記述には、<parent−dm><dm−code>TIMEZONE_DM</dm−code></parent−dm>のように親データモデルを指定する記述を持つ。
【0108】
なお、本実施形態においては、子データモデル定義XML1620に<parent−dm>タグのような親データモデルを指定する記述を持つとしたが、この記述方法に限定するものではなく、その他のタグを用いる方法、親データモデル定義XML1610に子データモデルを指定する記述を持つ方法、又は、テーブルやファイル等に親子(継承)関係を記憶する方法等であってもよい。
【0109】
図16のようなデータモデル定義XMLにした場合、ステップS509にてSQL文を生成する際に、ステップS504にて取得したデータモデル定義404の継承関係に基づき、親データモデル定義のデータ項目を用いて、子データモデル定義を利用するSQL文を生成し、アプリケーションを構築する。すなわち、図14図16を用いたステップS508〜510は、第2データモデルを用いてデータの操作を行う場合には第1データモデルの定義に基づく定義を用いてデータの操作を行うアプリケーションを構築する処理の一例を示すステップである。
【0110】
具体的には、ステップS601及びステップS602においてデータモデル定義404の加工式801を取得したり、ステップS603及びステップS604においてデータモデル定義404を用いたSQLを作成したりする際に、そのデータモデル定義404に親データモデル定義の設定が存在する場合は、親データモデル定義に設定されている加工式やデータ項目を参照してSQLを作成する。
【0111】
また、アプリケーション構築ツールが、データモデル定義404に基づき、Java(登録商標)などのオブジェクト指向言語でアプリケーションプログラムを生成する場合(図5のステップS508)、親データモデル定義のプログラムを継承するようにして子データモデル定義のプログラムを生成してもよい。すなわち、ステップS508は、第2データモデルの定義の情報は、第1データモデルの定義の情報を継承することを示す情報を持たせる処理の一例を示すステップである。これにより、継承関係を持つデータモデル定義を、継承関係を維持したままプログラム化することができるため、プログラムの生成方法や管理方法が容易になる。
【0112】
以上により、証跡情報のような同じ項目を複数のデータモデル定義として設定する必要がなくなるため、同じ証跡情報項目を持つデータモデルをテーブルの数分設定し、それらのデータモデルを介して証跡情報の登録及び更新をしなければならないという問題を解決でき、データモデル定義を利用するアプリケーションを容易に構築することができるようになる。
【0113】
また、証跡情報のような同じ項目を複数のデータモデル定義として設定する必要がなくなるため、データモデルを定義する設定量も減り、アプリケーションの開発効率を上げることができる。
【0114】
また、親データモデルに仕様変更が発生した場合であっても、親データモデルの定義のみを変更すればよいため、子データモデルに影響が及ばず、アプリケーションの開発効率を上げることができる。すなわち、図14図16を用いたステップS508〜510は、第1データモデルの定義の編集を受け付けた後に第2データモデルを用いてデータの操作を行う場合には編集に従って変更した第1データモデルの定義に基づく定義を用いてデータの操作を行うアプリケーションを構築する処理の一例を示すステップである。
【0115】
なお、本実施形態においては、データモデル間で継承する項目として証跡情報を例に挙げたが、証跡情報に限定するものではなく、例えば、「SEQ_NO」のようなデータ登録の通し番号項目、「DATA_STATUS」のようなデータ状態を表す項目、「DELETE_FLAG」のような論理削除を示すフラグ等、証跡情報以外の項目であってもよい。
【0116】
また、本実施形態においては、親データモデルのデータ項目をすべて子データモデルに継承するとしたが、この継承方法に限定するものではなく、例えば、親データモデルのデータ項目のうち、選択されたデータ項目のみを継承するような継承方法であってもよい。
【0117】
また、本実施形態においては、継承関係を親データモデル:子データモデル=1:多としたが、この関係に限定するものではなく、例えば、複数の親データモデルのデータ項目を継承するような親データモデル:子データモデル=多:多であってもよい。
【0118】
なお、データモデル定義画面1400又は1500にて継承関係を持つと設定した場合であっても、図16のような継承関係を記憶するデータモデル定義XMLではなく、図9のように継承関係を持たないデータモデル定義XMLとして記憶するとしてもよい。その場合は、ステップS601及びステップS602においてデータモデル定義404の加工式801を取得したり、ステップS603及びステップS604においてデータモデル定義404を用いたSQLを作成したりする際に、データモデルの継承関係を意識する必要はない。
【0119】
すなわち、図14図15及び図9を用いたステップS508は、第1データモデルの定義に基づき、第2データモデルの定義を生成する処理の一例を示すステップである。また、図14図15及び図9を用いたステップS508〜510は、第2データモデルの定義を用いてデータの操作を行うアプリケーションを構築する処理の一例を示すステップである。
【0120】
ただし、図9のようなデータモデル定義XMLの場合、子データモデルの定義において、<dm−code>TIMEZONE_DM</dm−code>のように記述し、どの親データモデルから継承したデータ項目かわかるようにしておき、親データモデルに仕様変更が発生し、親データモデルの定義を変更した場合は、子データモデルにもその変更を反映する。
【0121】
すなわち、図14図15及び図9を用いたステップS508は、編集に従って変更した第1データモデルの定義に基づき、設定を受け付けた第2データモデルの定義を生成する処理の一例を示すステップである。
【0122】
なお、本実施形態においては、親データモデルから継承した網掛け1540部分は変更不可能なデータ項目としたが、この方法に限定するものではなく、子データモデルを生成する際にのみ親データモデルのデータ項目を参照しコピーし、子データモデル生成後はコピーしたデータ項目を変更できるとしてもよい。この場合は、図9のように継承関係を持たないデータモデル定義XMLとして記憶した方が管理し易いため好ましい。
【0123】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0124】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0125】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0126】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0127】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0128】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0129】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0130】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0131】
101 情報処理装置
102 プログラム生成サーバ
103 データベースサーバ
104 アプリケーションクライアント
105 アプリケーションサーバ
106 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16