IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許7231823プログラム、情報処理システム及びその制御方法
<>
  • 特許-プログラム、情報処理システム及びその制御方法 図1
  • 特許-プログラム、情報処理システム及びその制御方法 図2
  • 特許-プログラム、情報処理システム及びその制御方法 図3
  • 特許-プログラム、情報処理システム及びその制御方法 図4
  • 特許-プログラム、情報処理システム及びその制御方法 図5
  • 特許-プログラム、情報処理システム及びその制御方法 図6
  • 特許-プログラム、情報処理システム及びその制御方法 図7
  • 特許-プログラム、情報処理システム及びその制御方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-21
(45)【発行日】2023-03-02
(54)【発明の名称】プログラム、情報処理システム及びその制御方法
(51)【国際特許分類】
   G06F 8/30 20180101AFI20230222BHJP
【FI】
G06F8/30
【請求項の数】 10
(21)【出願番号】P 2019009046
(22)【出願日】2019-01-23
(65)【公開番号】P2020119170
(43)【公開日】2020-08-06
【審査請求日】2022-01-17
(73)【特許権者】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(73)【特許権者】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【弁理士】
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】鈴木 智子
(72)【発明者】
【氏名】飯沼 賢治
【審査官】山本 俊介
(56)【参考文献】
【文献】特開平07-302197(JP,A)
【文献】特開2014-164309(JP,A)
【文献】特開2011-108040(JP,A)
【文献】特開2017-059237(JP,A)
【文献】特開2010-015458(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/77
(57)【特許請求の範囲】
【請求項1】
アプリケーションを構築するための制御を行う情報処理システムで実行可能なプログラムであって、
前記情報処理システムを、
前記アプリケーションを構築するための定義情報を取得する第1定義情報取得手段と、
前記第1定義情報取得手段により取得された定義情報に基づき、第1ソースコードを生成する第1ソースコード生成手段と、
前記第1ソースコードに基づくアプリケーションが構築された後に更新された前記定義情報を取得する第2定義情報取得手段と、
前記第2定義情報取得手段により取得された定義情報に基づき、第2ソースコードを生成する第2ソースコード生成手段と、
前記第1ソースコード生成手段により生成された第1ソースコードの一部を前記第2ソースコード生成手段により生成された第2ソースコードに差し替えたソースコードを用いて、前記アプリケーションを構築するための制御を行う制御手段
として機能させるためのプログラム。
【請求項2】
前記第2定義情報取得手段により取得された定義情報に関連するソースコードを特定する特定手段として更に機能させ、
前記第2ソースコード生成手段は、
前記第2定義情報取得手段により取得された定義情報に基づき、前記特定手段により特定されたソースコードを生成することを特徴とする請求項に記載のプログラム。
【請求項3】
前記第2定義情報取得手段により取得された定義情報の更新が影響を及ぼすソースコードを特定する特定手段として更に機能させ、
前記第2ソースコード生成手段は、
前記第2定義情報取得手段により取得された定義情報に基づき、前記特定手段により特定されたソースコードを生成することを特徴とする請求項又はに記載のプログラム。
【請求項4】
アプリケーションを構築するための制御を行う情報処理システムで実行可能なプログラムであって、
前記情報処理システムを、
前記アプリケーションを構築するための定義情報を取得する第1定義情報取得手段と、
前記第1定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するための制御を行う第1制御手段と、
前記第1制御手段による制御に基づいて構築されたアプリケーションが構築された後に更新された前記定義情報を取得する第2定義情報取得手段と、
前記第1制御手段による制御に基づいて構築されたアプリケーション及び前記第2定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するための制御を行う第2制御手段と、
前記第1定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを動作させるための第1設定を行う第1設定手段と、
前記第2定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを動作させるための第2設定を行う第2設定手段と、
として機能させるプログラムであって
前記第2制御手段は、
前記第1設定手段により行われた第1設定の一部を前記第2設定手段により行われた第2設定に差し替えた設定に基づき、前記アプリケーションを動作させるように制御することを特徴とするプログラム。
【請求項5】
前記第2定義情報取得手段により取得された定義情報が関連する設定を特定する特定手段として更に機能させ、
前記第2設定手段は、
前記第2定義情報取得手段により取得された定義情報に基づき、前記特定手段により特定された設定を行うことを特徴とする請求項に記載のプログラム。
【請求項6】
前記第2定義情報取得手段により取得された定義情報の更新が影響を及ぼす設定を特定する特定手段として更に機能させ、
前記第2設定手段は、
前記第2定義情報取得手段により取得された定義情報に基づき、前記特定手段により特定された設定を行うことを特徴とする請求項に記載のプログラム。
【請求項7】
アプリケーションを構築するための制御を行う情報処理システムであって、
前記アプリケーションを構築するための定義情報を取得する第1定義情報取得手段と、
前記第1定義情報取得手段により取得された定義情報に基づき、第1ソースコードを生成する第1ソースコード生成手段と、
前記第1ソースコードに基づくアプリケーションが構築された後に更新された前記定義情報を取得する第2定義情報取得手段と、
前記第2定義情報取得手段により取得された定義情報に基づき、第2ソースコードを生成する第2ソースコード生成手段と、
前記第1ソースコード生成手段により生成された第1ソースコードの一部を前記第2ソースコード生成手段により生成された第2ソースコードに差し替えたソースコードを用いて、前記アプリケーションを構築するための制御を行う制御手段と
を備えることを特徴とする情報処理装置。
【請求項8】
アプリケーションを構築するための制御を行う情報処理システムの制御方法であって
記アプリケーションを構築するための定義情報を取得する第1定義情報取得ステップと、
前記第1定義情報取得ステップにより取得された定義情報に基づき、第1ソースコードを生成する第1ソースコード生成ステップと、
前記第1ソースコードに基づくアプリケーションが構築された後に更新された前記定義情報を取得する第2定義情報取得ステップと、
前記第2定義情報取得ステップにより取得された定義情報に基づき、第2ソースコードを生成する第2ソースコード生成ステップと、
前記第1ソースコード生成ステップにより生成された第1ソースコードの一部を前記第2ソースコード生成ステップにより生成された第2ソースコードに差し替えたソースコードを用いて、前記アプリケーションを構築するための制御を行う制御ステップと
することを特徴とする情報処理システムの制御方法。
【請求項9】
アプリケーションを構築するための制御を行う情報処理システムであって、
前記アプリケーションを構築するための定義情報を取得する第1定義情報取得手段と、
前記第1定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するための制御を行う第1制御手段と、
前記第1制御手段による制御に基づいて構築されたアプリケーションが構築された後に更新された前記定義情報を取得する第2定義情報取得手段と、
前記第1制御手段による制御に基づいて構築されたアプリケーション及び前記第2定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するための制御を行う第2制御手段と、
前記第1定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを動作させるための第1設定を行う第1設定手段と、
前記第2定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを動作させるための第2設定を行う第2設定手段と、
を有し、
前記第2制御手段は、
前記第1設定手段により行われた第1設定の一部を前記第2設定手段により行われた第2設定に差し替えた設定に基づき、前記アプリケーションを動作させるように制御することを特徴とする情報処理システム
【請求項10】
アプリケーションを構築するための制御を行う情報処理システムの制御方法であって、
前記アプリケーションを構築するための定義情報を取得する第1定義情報取得ステップと、
前記第1定義情報取得ステップにより取得された定義情報に基づき、前記アプリケーションを構築するための制御を行う第1制御ステップと、
前記第1制御ステップによる制御に基づいて構築されたアプリケーションが構築された後に更新された前記定義情報を取得する第2定義情報取得ステップと、
前記第1制御ステップによる制御に基づいて構築されたアプリケーション及び前記第2定義情報取得ステップにより取得された定義情報に基づき、前記アプリケーションを構築するための制御を行う第2制御ステップと、
前記第1定義情報取得ステップにより取得された定義情報に基づき、前記アプリケーションを動作させるための第1設定を行う第1設定ステップと、
前記第2定義情報取得ステップにより取得された定義情報に基づき、前記アプリケーションを動作させるための第2設定を行う第2設定ステップと、
を有し、
前記第2制御ステップは、
前記第1設定ステップにより行われた第1設定の一部を前記第2設定ステップにより行われた第2設定に差し替えた設定に基づき、前記アプリケーションを動作させるように制御することを特徴とする情報処理システムの制御方法
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションを構築するためのプログラム、情報処理装置及び処理方法に関する。
【背景技術】
【0002】
従来、設定された定義情報に基づきアプリケーションを構築(生成)するツールやサービスが存在する。
【0003】
特許文献1には、アプリケーション構築ツールを用いて、アプリケーションを構築するための定義情報に基づき、アプリケーションのソースコード(プログラム)を生成する仕組みが開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-170785号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1は、アプリケーションを構築するための定義情報の一部を更新した場合であっても、アプリケーションのソースコードをすべて生成し直さなければならないため、アプリケーションの構築に時間がかかってしまうという課題がある。
【0006】
そこで、本発明の目的は、アプリケーション構築ツールにおいて、アプリケーションの構築を効率的に行う仕組みを提供することである。
【課題を解決するための手段】
【0007】
アプリケーションを構築するための制御を行う情報処理システムで実行可能なプログラムであって、
前記情報処理システムを、
前記アプリケーションを構築するための定義情報を取得する第1定義情報取得手段と、
前記第1定義情報取得手段により取得された定義情報に基づき、第1ソースコードを生成する第1ソースコード生成手段と、
前記第1ソースコードに基づくアプリケーションが構築された後に更新された前記定義情報を取得する第2定義情報取得手段と、
前記第2定義情報取得手段により取得された定義情報に基づき、第2ソースコードを生成する第2ソースコード生成手段と、
前記第1ソースコード生成手段により生成された第1ソースコードの一部を前記第2ソースコード生成手段により生成された第2ソースコードに差し替えたソースコードを用いて、前記アプリケーションを構築するための制御を行う制御手段
として機能させるためのプログラム。
【発明の効果】
【0008】
本発明によれば、アプリケーション構築ツールにおいて、アプリケーションの構築を効率的に行う仕組みを提供することができる。
【図面の簡単な説明】
【0009】
図1】本発明に係るシステムの構成図の一例である。
図2】情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントとして適用可能な各ハードウェア構成の一例を示すブロック図である。
図3】ソフトウェア構成を示すブロック図の一例である。
図4】本発明に係るシステムの構成図である。
図5】アプリケーション生成のフローチャートの一例を示す図である。
図6】アプリケーション差分生成のフローチャートの一例を示す図である。
図7】定義情報の更新及び更新後に実行される差分生成のログの一例を示す図である。
図8】定義情報の更新前後のアプリケーション画面の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【0011】
図1は、本発明に係る情報処理装置(ソフトウェア開発者がソフトウェア開発のために操作するソフトウェア開発装置)、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム(情報処理システム)構成図である。なお、本実施形態においては、情報処理装置にて開発されたソフトウェアをアプリケーションと呼ぶが、アプリケーションに限定するものではなく、アプリケーション以外のソフトウェア(例:OS)であってもよい。
【0012】
情報処理装置101は、ソフトウェア開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。情報処理装置101は、プログラム生成、アプリケーション生成を行う。
【0013】
なお、本実施形態においては、情報処理装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Web技術による通信を利用するアプリケーション以外のアプリケーションであってもよい。
【0014】
また、本実施形態においては、情報処理装置101はアプリケーションのソースコード(プログラムコード)を生成するとしたが、この方法に限定するものではなく、ソースコードを生成することなく、アプリケーションサーバ102やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成することにより、アプリケーション(の動作環境)を構築する等であってもよい。
【0015】
アプリケーションサーバ102は、情報処理装置101で開発されたアプリケーションを実行する。また、データベースサーバ103と接続して動作することが可能である。
【0016】
データベースサーバ103は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、ソフトウェア開発者が利用するためにデータベースサーバ103は、情報処理装置101や、アプリケーションサーバ102と同一の装置で構成されていてもよいし、LANなどのネットワーク105内に配置されてもよい。
【0017】
アプリケーションクライアント104(情報処理装置)は、アプリケーションサーバ102と協調して情報処理装置101で開発したアプリケーションプログラムを動作させる、エンドユーザの入力端末である。この、アプリケーションクライアント104は、携帯端末などの情報処理装置であってもよいこととする。
【0018】
なお、情報処理装置101、アプリケーションサーバ102、データベースサーバ103、および、アプリケーションクライアント104の何れかを、クラウドなどのインターネット上に配置してもよい。
【0019】
以上で、図1の説明を終了する。
【0020】
図2は、本発明に係わる情報処理装置101、アプリケーションサーバ102、データベースサーバ103、アプリケーションクライアント104として適用可能な各ハードウェア構成の一例を示すブロック図である。
【0021】
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
【0022】
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【0023】
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
【0024】
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
【0025】
なお、入力部209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
【0026】
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【0027】
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【0028】
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。外部メモリ211には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
【0029】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、出力部210上での表示を可能としている。また、CPU201は、出力部210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0030】
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0031】
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0032】
図3は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【0033】
情報処理装置101は、以下の機能部を備える。
【0034】
第1定義情報取得部301は、アプリケーションを構築するための定義情報を取得する機能部である。
【0035】
第1構築部302は、第1定義情報取得部301により取得された定義情報に基づき、アプリケーションを構築する機能部である。
【0036】
第2定義情報取得部303は、第1構築部302によりアプリケーションが構築された後に更新された定義情報を取得する機能部である。
【0037】
第2構築部304は、第1構築部302により構築されたアプリケーション及び第2定義情報取得部303により取得された定義情報に基づき、アプリケーションを構築する機能部である。
【0038】
第1ソースコード生成部305は、第1定義情報取得部301により取得された定義情報に基づき、第1ソースコードを生成する機能部である。、
第2ソースコード生成部306は、第2定義情報取得部303により取得された定義情報に基づき、第2ソースコードを生成する機能部である。
【0039】
第2構築部304は、第1ソースコード生成部305により生成された第1ソースコード及び第2ソースコード生成部306により生成された第2ソースコードを用いて、アプリケーションを構築する機能部である。
【0040】
第2構築部304は、第1ソースコード生成部305により生成された第1ソースコードの一部を第2ソースコード生成部306により生成された第2ソースコードに差し替えたソースコードを用いて、アプリケーションを構築する機能部である。
【0041】
特定部307は、第2定義情報取得部303により取得された定義情報に関連するソースコードを特定する機能部である。
【0042】
第2ソースコード生成部306は、第2定義情報取得部303により取得された定義情報に基づき、特定部307により特定されたソースコードを生成する機能部である。
【0043】
特定部307は、第2定義情報取得部303により取得された定義情報の更新が影響を及ぼすソースコードを特定する機能部である。
【0044】
第2ソースコード生成部306は、第2定義情報取得部303により取得された定義情報に基づき、特定部307により特定されたソースコードを生成する機能部である。
【0045】
第1設定部308は、第1定義情報取得部301により取得された定義情報に基づき、アプリケーションを動作させるための第1設定を行う機能部である。
【0046】
第2設定部309は、第2定義情報取得部303により取得された定義情報に基づき、アプリケーションを動作させるための第2設定を行う機能部である。
【0047】
第2構築部304は、第1設定部308により行われた第1設定及び第2設定部309により行われた第2設定に基づき、アプリケーションを動作させる機能部である。
【0048】
第2構築部304は、第1設定部308により行われた第1設定の一部を第2設定部309により行われた第2設定に差し替えた設定に基づき、アプリケーションを動作させる機能部である。
【0049】
特定部307は、第2定義情報取得部303により取得された定義情報が関連する設定を特定する機能部である。
【0050】
第2設定部309は、第2定義情報取得部303により取得された定義情報に基づき、特定部307により特定された設定を行う機能部である。
【0051】
特定部307は、第2定義情報取得部303により取得された定義情報の更新が影響を及ぼす設定を特定する機能部である。
【0052】
第2設定部309は、第2定義情報取得部303により取得された定義情報に基づき、特定部307により特定された設定を行う機能部である。
【0053】
以上で、図3の説明を終了する。
【0054】
図4は、情報処理装置101、アプリケーションサーバ102及びアプリケーションクライアント104の構成図である。
【0055】
情報処理装置101は、リポジトリ定義部401及びアプリケーション生成部410を備える。
【0056】
情報処理装置101は、アプリケーションを開発する開発者により設定されたリポジトリ定義部401の各定義を用いて、アプリケーション生成部410によりアプリケーションを生成する。
【0057】
リポジトリ定義部401には、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義408が記憶されている。これら402~405、408の定義は、アプリケーション構築ツールを介して、開発者によって入力設定または配置される。
【0058】
入出力定義403は、アプリケーション画面に配置される各種項目のレイアウトの定義情報を保持する。入出力定義403は、入力項目定義情報及び出力項目定義情報を含む。
【0059】
入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【0060】
なお、本実施形態においては、「入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報」としたが、これらに限定するものではなく、例えば、画面を有さないバッチやWebサービス等のように、「入力項目定義情報は、生成されたアプリケーションに入力される入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションが出力する出力項目を定義した情報」であってもよい。
【0061】
データモデル定義404は、データベースのテーブルの項目の定義情報を保持する。入出力定義403の各項目には、データモデル定義404の項目を対応づけることができる。
【0062】
ビジネスプロセス定義405は、アプリケーションにおけるデータを処理するためのロジックの定義情報を保持する。
【0063】
データベース定義408は、アプリケーションが接続するデータベースに係る情報(データベースサーバ103のIPアドレス、接続ユーザ、接続パスワード等)を定義する。
【0064】
アプリケーション生成部410は、アプリケーション生成用のリポジトリ定義解析部411、定義関連解析部414を用いてリポジトリ定義部401に記憶されている各定義や各定義の関連を解析し、アプリケーションコード生成部412及びソースコードコンパイル部413を介し、コンパイル済Java(登録商標)コード441及びHTML/JSP/JavaScript(登録商標)442を含むアプリケーションソースコード440を生成する。すなわち、アプリケーション生成部410は、設定された定義を用いて、アプリケーションとして用いられるプログラムを生成する手段の一例である。
【0065】
リポジトリ定義エディタ部420は、リポジトリ定義参照部421によってリポジトリ定義部401を解析し、それぞれに対応した定義エディタ部422~425を用いてリポジトリ定義を変更及び参照する。
【0066】
テスト実行部430は、テストケース定義受信部によってテストケース定義407を取得し、テストケース定義解釈部を用いてその内容を解析する。テスト実行部(インタープリタ)は、テストケース定義解釈部を用いて、アプリケーションコードアクセス部から、テスト実行部(インタープリタ)は、テストケース定義解釈部を用いて解釈した内容からテスト実行準備部を用いてテストの事前処理を行い、アプリケーションコードアクセス部を用いてアプリケーションソースコード440をテスト実行する。
【0067】
以上で、図4の説明を終了する。
【0068】
図5は、アプリケーション生成のフローチャートの一例を示す図である。
【0069】
情報処理装置101は、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部401の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。
【0070】
アプリケーション生成のフローチャートについて説明する。
【0071】
ステップS501において、情報処理装置101は、アプリケーション定義402の設定を受け付ける。すなわち、ステップS501は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【0072】
具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者から入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義408の設定を受け付ける。
【0073】
ステップS501にて、受け付けたアプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義408の設定は、リポジトリ定義部401にXMLファイル形式で記憶する。なお、本実施形態においては、XMLファイル形式としたが、この形式に限定するものではなく、他の形式であってもよい。
【0074】
ステップS502において、情報処理装置101は、アプリケーション生成の指示を受け付ける。
【0075】
ステップS503において、情報処理装置101は、リポジトリ定義部401からアプリケーション定義402を取得する。リポジトリ定義解析部411は、読み込んだ定義を解析したうえでROM203に記憶しておき、解析された定義は各生成部から適宜参照される。
【0076】
ステップS504において、情報処理装置101は、リポジトリ定義部401からデータモデル定義404を取得する。
【0077】
ステップS505において、情報処理装置101は、リポジトリ定義部401から入出力定義403を取得する。
【0078】
ステップS506において、情報処理装置101は、リポジトリ定義部401からビジネスプロセス定義405を取得する。
【0079】
ステップS507において、情報処理装置101は、リポジトリ定義部401からデータベース定義408を取得する。すなわち、ステップS501~S507は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【0080】
ステップS508において、情報処理装置101は、アプリケーション生成部410を用いて、アプリケーションに用いるアプリケーションソースコード440を生成する。すなわち、ステップS508は、取得された定義情報に基づき、第1ソースコードを生成する処理の一例を示すステップである。すなわち、ステップS508は、取得された定義情報に基づき、アプリケーションを動作させるための第1設定を行う処理の一例を示すステップである。
【0081】
ステップS509において、情報処理装置101は、ステップS508にて生成したアプリケーションソースコード440をアプリケーションサーバ102に配置(デプロイ)する。すなわち、ステップS509は、取得された定義情報に基づき、アプリケーションを構築する処理の一例を示すステップである。
【0082】
以上により、生成指示を受け付けたアプリケーションを生成(構築)することができる。
【0083】
以上で、図5の説明を終了する。
【0084】
図6は、アプリケーション差分生成のフローチャートの一例を示す図である。
【0085】
ステップS601において、情報処理装置101は、図5の処理でアプリケーションを生成した後(又は図6の処理でアプリケーションを差分生成した後)、アプリケーションの修正や追加開発をするアプリケーション開発者によるアプリケーション定義情報(リポジトリ定義部401に記憶されている402~405、408)の追加、更新又は削除の操作を受け付け、追加、更新又は削除されたアプリケーション定義情報をリポジトリ定義部401に記憶する。以下、簡単のために、「追加、更新又は削除」を単に「更新」と記述する。
【0086】
ステップS602において、情報処理装置101は、定義関連解析部414を介し、ステップS601にて更新されたアプリケーション定義情報を取得し、解析する。すなわち、ステップS602は、アプリケーションが構築された後に更新された定義情報を取得する処理の一例を示すステップである。
【0087】
なお、本実施形態においては、更新されたアプリケーション定義情報が記憶された後にステップS602にて解析するとしたが、この手順に限定するものではなく、外部メモリ211には記憶されてない更新中のアプリケーション定義情報をステップS602にて解析するとしてもよい。
【0088】
ステップS603において、情報処理装置101は、ステップS602にて行った解析に基づき、更新されたアプリケーション定義情報に関連するアプリケーション定義情報を特定する。
【0089】
すなわち、ステップS603は、取得された定義情報に関連するソースコードを特定する処理の一例を示すステップである。すなわち、ステップS603は、取得された定義情報の更新が影響を及ぼすソースコードを特定する処理の一例を示すステップである。
【0090】
すなわち、ステップS603は、取得された定義情報が関連する設定を特定する処理の一例を示すステップである。すなわち、ステップS603は、取得された定義情報の更新が影響を及ぼす設定を特定する処理の一例を示すステップである。
【0091】
例えば、データモデル定義404が更新された場合、当該データモデル定義404を利用するビジネスロジックの定義情報(ビジネスプロセス定義405)や当該ビジネスプロセス定義405を利用する入出力画面の定義情報(入出力定義403)を関連するアプリケーション定義情報として特定する。
【0092】
この場合、更新されたデータモデル定義404に対応するアプリケーションソースコード440だけでなく、当該データモデル定義404に関連するとして特定されたビジネスプロセス定義405や入出力定義403等に対応するアプリケーションソースコード440についても再生成する必要がある。
【0093】
なお、本実施形態においては、更新されたアプリケーション定義情報に関連するアプリケーション定義情報を特定するとしたが、この方法に限定するものではなく、更新された内容が部分的であれば、関連するアプリケーション定義情報であっても更新が影響しない場合もありうるため、アプリケーション定義情報の更新が影響を及ぼすアプリケーション定義情報のみを特定するとしてもよい。
【0094】
つまり、上記の例のように、データモデル定義404が更新された場合であっても、当該データモデル定義404に関連するとして特定されたビジネスプロセス定義405や入出力定義403に対応するアプリケーションソースコード440について、必ず再作成する訳ではなく、当該データモデル定義404の更新内容によって、関連するビジネスプロセス定義405や入出力定義403等のうち影響が及ぶアプリケーション定定義情報のみを特定するとしてもよい。
【0095】
ステップS604において、情報処理装置101は、ステップS603にて特定された関連する定義情報が存在するかを判定する。関連するアプリケーション定義情報が有る場合はステップS605に進み、無い場合はステップS606に進む。
【0096】
ステップS605において、情報処理装置101は、ステップS603にて特定された関連するアプリケーション定義情報をリポジトリ定義部401から取得する。
【0097】
ステップS606において、情報処理装置101は、ステップS601にて更新されたアプリケーション定義情報及びステップS605にて取得されたアプリケーション定義情報に基づき、アプリケーションソースコード440を生成する。
【0098】
すなわち、ステップS606は、取得された定義情報に基づき、第2ソースコードを生成する処理の一例を示すステップである。すなわち、ステップS606は、取得された定義情報に基づき、特定されたソースコードを生成する処理の一例を示すステップである。
【0099】
すなわち、ステップS606は、取得された定義情報に基づき、アプリケーションを動作させるための第2設定を行う処理の一例を示すステップである。すなわち、ステップS606は、取得された定義情報に基づき、特定された設定を行う処理の一例を示すステップである。
【0100】
ステップS606にて生成するアプリケーションソースコード440は、図5の処理でアプリケーションを生成した後に更新されたアプリケーション定義情報及び当該更新されたアプリケーション定義情報に関連するアプリケーション定義情報に対応するアプリケーションソースコード440であるため、ステップS508にて生成したアプリケーションソースコード440からの差分に該当する。
【0101】
ステップS607において、情報処理装置101は、ステップS508にて生成されたアプリケーションソースコード440に対して、ステップS606にて生成されたアプリケーションソースコード440を上書きすることによりアプリケーションをデプロイする。
【0102】
すなわち、ステップS607は、構築されたアプリケーション及びアプリケーションが構築された後に更新された定義情報に基づき、アプリケーションを構築する処理の一例を示すステップである。すなわち、ステップS607は、生成された第1ソースコード及び生成された第2ソースコードを用いて、アプリケーションを構築する処理の一例を示すステップである。
【0103】
なお、本実施形態においては、ステップS509にてデプロイされたアプリケーションに対して、ステップS606にて生成されたアプリケーションソースコード440を上書きすることによりアプリケーションをデプロイするとしたが、この方法に限定するものではなく、ステップS508にて生成されたアプリケーションソースコード440に対して、ステップS606にて生成されたアプリケーションソースコード440を上書きしてできたアプリケーションソースコード440を用いて、デプロイするとしてもよい。
【0104】
すなわち、ステップS607は、生成された第1ソースコードの一部を第2ソースコードに差し替えたソースコードを用いて、アプリケーションを構築する処理の一例を示すステップである。
【0105】
また、本実施形態において、アプリケーションのソースコードを生成することなく、アプリケーションサーバ102やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成するとした場合は、ステップS508にて生成されたデータやファイル等に対して、ステップS606にて生成されたデータやファイル等を上書きすることによりアプリケーションを再構築する。
【0106】
すなわち、ステップS607は、第1設定及び第2設定に基づき、アプリケーションを動作させる処理の一例を示すステップである。すなわち、ステップS607は、第1設定の一部を第2設定に差し替えた設定に基づき、アプリケーションを動作させる処理の一例を示すステップである。
【0107】
具体的な例を挙げて、図6のフローチャートを改めて説明する。
【0108】
アプリケーションを生成した後、入出力定義701(図7)の項目コード「EMP_ADDRESS」の項目名を「住所」から項目703(図7)のように「現住所」へ更新を受け付けたとする(ステップS601)。
【0109】
定義関連解析部414を介して、更新された入出力定義702を解析し(ステップS602)、当該更新された入出力定義702に関連するアプリケーション定義情報を特定する(ステップS603)。
【0110】
更新された入出力定義702及び当該更新された入出力定義702に関連するアプリケーション定義情報に基づき、差分となるアプリケーションソースコード440を生成する(ステップS604~S606)。
【0111】
前回デプロイしたアプリケーションに対して、今回生成した、差分のアプリケーションソースコード440を上書きすることによりデプロイする(ステップS607)。(差分生成ログ704(図7))
差分生成によりデプロイされた後、更新したアプリケーションの画面を参照すると、更新前の画面項目801(図8)の表示「住所」が、更新後の画面項目802(図8)では「現住所」へと更新されており、アプリケーション定義情報の更新内容が反映されていることがわかる。
【0112】
以上により、アプリケーション全体を再生成する場合に比べて、アプリケーション定義情報の更新をアプリケーションに短時間で反映することができるため、更新から動作確認までに要する時間を短縮することができるようになる。つまり、アプリケーション定義情報の更新と動作確認を短いサイクルで繰り返すことが可能となり、アプリケーションの構築を効率的に行うことができるようになる。
【0113】
また、ステップS603にて、アプリケーション定義情報の更新が影響を及ぼすアプリケーション定義情報のみを特定するとした場合は、再生成するアプリケーションソースコード440を更に限定することができるようになるため、アプリケーション構築に要する時間を更に短縮することができ、アプリケーションの構築を更に効率的に行うことができるようになる。
【0114】
以上で、図6の説明を終了する。
【0115】
以上により、アプリケーション構築ツールにおいて、アプリケーションの構築を効率的に行うことができるようになる。
【0116】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0117】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0118】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0119】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0120】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0121】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0122】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0123】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0124】
101 情報処理装置
102 アプリケーションサーバ
103 データベースサーバ
104 アプリケーションクライアント
105 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8