(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-16
(45)【発行日】2023-05-24
(54)【発明の名称】情報処理装置及びその制御方法、プログラム
(51)【国際特許分類】
G06F 8/35 20180101AFI20230517BHJP
G06F 8/36 20180101ALI20230517BHJP
【FI】
G06F8/35
G06F8/36
(21)【出願番号】P 2019007439
(22)【出願日】2019-01-21
【審査請求日】2022-01-17
(73)【特許権者】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(73)【特許権者】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】岩永 尚己
(72)【発明者】
【氏名】柴本 文洋
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2014/0223408(US,A1)
【文献】特開2010-020680(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/77
(57)【特許請求の範囲】
【請求項1】
ユーザーからのテンプレートの指定を受け付ける受付手段と、
ユーザーに指定されたテンプレートに含まれる変数の値を入力するための入力領域を表示するように制御する表示制御手段と、
前記入力領域にユーザー操作に応じて入力された値で前記変数を置き換えたテンプレートを用いてソフトウェアを生成するための処理を行う処理手段と
を有し、
前記テンプレートは、
前記ソフトウェアにおけるデータを処理するためのロジックにおける
命令、
データモデル、
実行する実行処理、
前記実行処理に用いる値、
呼出元から受け取る値、
前記実行処理が返す戻り値の格納先、
の少なくとも1つを定義し、
ユーザーに指定されたテンプレートに、データモデルの変数が含まれる場合には、データモデルの変数に対応する前記入力領域への入力として、既存のデータモデルからの選択を受け付けることを特徴とする情報処理装置。
【請求項2】
ユーザーからのテンプレートの指定を受け付ける受付手段と、
ユーザーに指定されたテンプレートに含まれる変数の値を入力するための入力領域を表示するように制御する表示制御手段と、
前記入力領域にユーザー操作に応じて入力された値で前記変数を置き換えたテンプレートを用いてソフトウェアを生成するための処理を行う処理手段と
を有し、
前記テンプレートは、
前記ソフトウェアにおけるデータを処理するためのロジックにおける
命令、
データモデル、
実行する実行処理、
前記実行処理に用いる値、
呼出元から受け取る値、
前記実行処理が返す戻り値の格納先、
の少なくとも1つを定義し、
ユーザーに指定されたテンプレートに、前記実行処理に用いる値の変数が含まれる場合には、前記実行処理に用いる値に対応する前記入力領域への入力として、呼出元の入出力定義から受け取ると予想される値と、前記実行処理が返すと予想される戻り値との少なくとも一方からの選択を受け付けることを特徴とする情報処理装置。
【請求項3】
ユーザーからのテンプレートの指定を受け付ける受付手段と、
ユーザーに指定されたテンプレートに含まれる変数の値を入力するための入力領域を表示するように制御する表示制御手段であって、ユーザーから指定されたテンプレートに複数の変数が含まれる場合、前記複数の変数にそれぞれ対応する複数の入力領域を所定の領域に一覧で表示するように制御する表示制御手段と、
前記入力領域にユーザー操作に応じて入力された値で前記変数を置き換えたテンプレートを用いてソフトウェアを生成するための処理を行う処理手段と
を有し、
前記表示制御手段は、ユーザーに指定されたテンプレートが定義する情報を項目別の領域に分けて表示し、当該テンプレートに含まれる変数を前記項目別の領域に表示するとともに、対応する入力領域を前記項目別の領域とは異なる前記所定の領域に表示するように制御することを特徴とする情報処理装置。
【請求項4】
前記テンプレートは、前記ソフトウェアにおけるデータを処理するためのロジックを定義するためのテンプレートであることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
ユーザーに指定されたテンプレートに、前記実行処理に用いる値の変数が含まれる場合には、前記実行処理に用いる値に対応する前記入力領域への入力として、呼出元の入出力定義から受け取ると予想される値と、前記実行処理が返すと予想される戻り値との少なくとも一方からの選択を受け付けることを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記表示制御手段は、ユーザーから指定されたテンプレートに複数の変数が含まれる場合、前記複数の変数にそれぞれ対応する複数の入力領域を所定の領域に一覧で表示するように制御することを特徴とする請求項1または2に記載の情報処理装置。
【請求項7】
前記表示制御手段は、ユーザーに指定されたテンプレートが定義する情報を項目別の領域に分けて表示し、当該テンプレートに含まれる変数を前記項目別の領域に表示するとともに、対応する入力領域を前記項目別の領域とは異なる前記所定の領域に表示するように制御することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
ユーザーの操作に応じて、変数を含む新規のテンプレートを作成する作成手段を更に有することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記新規のテンプレートの作成の際に、ユーザーに指定された既存のテンプレートを用いることが可能であることを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記変数を前記入力領域に入力された値で置き換えたテンプレートを用いて前記ソフトウェアのソースコードを生成する生成手段を更に有することを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
【請求項11】
ユーザーからのテンプレートの指定を受け付ける受付ステップと、
ユーザーに指定されたテンプレートに含まれる変数の値を入力するための入力領域を表示するように制御する表示制御ステップと、
前記入力領域にユーザー操作に応じて入力された値で前記変数を置き換えたテンプレートを用いてソフトウェアを生成するための処理を行う処理ステップと
を有し、
前記テンプレートは、
前記ソフトウェアにおけるデータを処理するためのロジックにおける
命令、
データモデル、
実行する実行処理、
前記実行処理に用いる値、
呼出元から受け取る値、
前記実行処理が返す戻り値の格納先、
の少なくとも1つを定義し、
ユーザーに指定されたテンプレートに、データモデルの変数が含まれる場合には、データモデルの変数に対応する前記入力領域への入力として、既存のデータモデルからの選択を受け付けることを特徴とする情報処理装置の制御方法。
【請求項12】
ユーザーからのテンプレートの指定を受け付ける受付ステップと、
ユーザーに指定されたテンプレートに含まれる変数の値を入力するための入力領域を表示するように制御する表示制御ステップと、
前記入力領域にユーザー操作に応じて入力された値で前記変数を置き換えたテンプレートを用いてソフトウェアを生成するための処理を行う処理ステップと
を有し、
前記テンプレートは、
前記ソフトウェアにおけるデータを処理するためのロジックにおける
命令、
データモデル、
実行する実行処理、
前記実行処理に用いる値、
呼出元から受け取る値、
前記実行処理が返す戻り値の格納先、
の少なくとも1つを定義し、
ユーザーに指定されたテンプレートに、前記実行処理に用いる値の変数が含まれる場合には、前記実行処理に用いる値に対応する前記入力領域への入力として、呼出元の入出力定義から受け取ると予想される値と、前記実行処理が返すと予想される戻り値との少なくとも一方からの選択を受け付けることを特徴とする情報処理装置の制御方法。
【請求項13】
ユーザーからのテンプレートの指定を受け付ける受付ステップと、
ユーザーに指定されたテンプレートに含まれる変数の値を入力するための入力領域を表示するように制御する表示制御ステップであって、ユーザーから指定されたテンプレートに複数の変数が含まれる場合、前記複数の変数にそれぞれ対応する複数の入力領域を所定の領域に一覧で表示するように制御する表示制御ステップと、
前記入力領域にユーザー操作に応じて入力された値で前記変数を置き換えたテンプレートを用いてソフトウェアを生成するための処理を行う処理ステップと
を有し、
前記表示制御ステップは、ユーザーに指定されたテンプレートが定義する情報を項目別の領域に分けて表示し、当該テンプレートに含まれる変数を前記項目別の領域に表示するとともに、対応する入力領域を前記項目別の領域とは異なる前記所定の領域に表示するように制御することを特徴とする情報処理装置の制御方法。
【請求項14】
少なくとも1つのコンピュータを、請求項1乃至10のいずれか1項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションを構築するための情報処理装置及びその制御方法、プログラムに関する。
【背景技術】
【0002】
従来、ソフトウェア(例:OS(オペレーティングシステム)、アプリケーション等)の開発を支援するツール(例:統合開発環境(IDE))が存在する。
【0003】
ソフトウェア開発者は、ソフトウェア開発支援ツールを用いて、ソフトウェアプログラムのコーディングを行う。
【0004】
特許文献1には、開発中のソフトウェアにテンプレート(雛型)を挿入して開発を行う仕組みが記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1では、テンプレートを変更し、その変更をテンプレートに反映することはできるが、テンプレートの変更及びソフトウェアへの反映という手間がかかってしまうため、テンプレートを用いた効率的なソフトウェア開発ができているとは言い難い。
【0007】
そこで、本発明の目的は、テンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供することである。
【課題を解決するための手段】
【0008】
ユーザーからのテンプレートの指定を受け付ける受付手段と、
ユーザーに指定されたテンプレートに含まれる変数の値を入力するための入力領域を表示するように制御する表示制御手段と、
前記入力領域にユーザー操作に応じて入力された値で前記変数を置き換えたテンプレートを用いてソフトウェアを生成するための処理を行う処理手段と
を有し、
前記テンプレートは、前記ソフトウェアにおけるデータを処理するためのロジックにおける
命令、
データモデル、
実行する実行処理、
前記実行処理に用いる値、
呼出元から受け取る値、
前記実行処理が返す戻り値の格納先、
の少なくとも1つを定義し、
ユーザーに指定されたテンプレートに、データモデルの変数が含まれる場合には、データモデルの変数に対応する前記入力領域への入力として、既存のデータモデルからの選択を受け付けることを特徴とする情報処理装置。
【発明の効果】
【0009】
本発明によれば、テンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明に係る情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム構成図である。
【
図2】本発明に係る情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントとして適用可能な各ハードウェア構成の一例を示すブロック図である。
【
図3】本発明の実施形態のソフトウェア構成を示すブロック図の一例である。
【
図4】本発明に係る情報処理装置101及びアプリケーションサーバ102の構成図である。
【
図5】ビジネスプロセス定義生成処理のフローチャートの一例を示す図である。
【
図6】ビジネスプロセステンプレート挿入処理のフローチャートの一例を示す図である。
【
図7】ビジネスプロセス定義入力画面の一例を示す図である。
【
図8】プレースホルダーへの値入力を受け付ける画面の一例を示す図である。
【
図9】テンプレートを挿入したビジネスプロセス定義入力画面の一例を示す図である。
【
図10】新規ビジネスプロセステンプレートを作成するフローチャートの一例を示す図である。
【
図11】新規ビジネスプロセステンプレート作成受付画面の一例を示す図である。
【
図12】新規ビジネスプロセステンプレート作成画面の一例を示す図である。
【
図13】新規ビジネスプロセステンプレート作成画面で作成した新規ビジネスプロセステンプレートの一例を示す図である。
【
図14】アプリケーション構築のフローチャートの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0012】
図1は、本発明に係る情報処理装置(ソフトウェア開発者がソフトウェア開発のために操作するソフトウェア開発装置)、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム(情報処理システム)構成図である。なお、本実施形態においては、情報処理装置にて開発されたソフトウェアをアプリケーションと呼ぶが、アプリケーションに限定するものではなく、アプリケーション以外のソフトウェア(例:OS)であってもよい。
【0013】
情報処理装置101は、ソフトウェア開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。情報処理装置101は、プログラム生成、アプリケーション生成を行う。
【0014】
なお、本実施形態においては、情報処理装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Web技術による通信を利用するアプリケーション以外のアプリケーションであってもよい。
【0015】
また、本実施形態においては、情報処理装置101はアプリケーションのプログラムを生成するとしたが、この方法に限定するものではなく、プログラムを生成することなく、アプリケーションサーバ102やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成することにより、アプリケーション(の動作環境)を構築する等であってもよい。
【0016】
アプリケーションサーバ102は、情報処理装置101で開発されたアプリケーションを実行する。また、データベースサーバ103と接続して動作することが可能である。
【0017】
データベースサーバ103は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、ソフトウェア開発者が利用するためにデータベースサーバ103は、情報処理装置101や、アプリケーションサーバ102と同一の装置で構成されていてもよいし、LANなどのネットワーク105内に配置されてもよい。
【0018】
アプリケーションクライアント104(情報処理装置)は、アプリケーションサーバ102と協調して情報処理装置101で開発したアプリケーションプログラムを動作させる、エンドユーザの入力端末である。この、アプリケーションクライアント104は、携帯端末などの情報処理装置であってもよいこととする。
【0019】
なお、情報処理装置101、アプリケーションサーバ102、データベースサーバ103、および、アプリケーションクライアント104の何れかを、クラウドなどのインターネット上に配置してもよい。
【0020】
【0021】
図2は、本発明に係る情報処理装置101、アプリケーションサーバ102、データベースサーバ103、アプリケーションクライアント104として適用可能な各ハードウェア構成の一例を示すブロック図である。
【0022】
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
【0023】
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【0024】
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
【0025】
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
【0026】
なお、入力部209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
【0027】
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【0028】
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【0029】
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。外部メモリ211には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
【0030】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、出力部210上での表示を可能としている。また、CPU201は、出力部210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0031】
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0032】
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0033】
【0034】
図3は、本発明の実施形態のソフトウェア構成を示すブロック図の一例である。
【0035】
情報処理装置101は、以下の機能部を備える。
【0036】
テンプレート取得部301は、テンプレートを取得する機能部である。
【0037】
値受付部302は、テンプレート取得部301により取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける機能部である。
【0038】
テンプレート挿入部303は、テンプレート取得部301により取得されたテンプレートに含まれる変数を値受付部302により受け付けた値に置換した当該テンプレートをソフトウェアの所定の位置に挿入する機能部である。
【0039】
テンプレート表示部304は、テンプレート取得手段により取得されたテンプレートを、変数を含めた形式で表示する機能部である。
【0040】
値受付部302は、変数毎に当該変数を置換する値の入力を受け付ける機能部である。
【0041】
テンプレート作成受付部305は、変数を含むテンプレートの作成を受け付ける機能部である。
【0042】
テンプレート作成部306は、テンプレート作成受付部305により受け付けたテンプレートを作成する機能部である。
【0043】
データモデル取得部307は、ソフトウェアで用いるデータモデルを取得する機能部である。
【0044】
値受付部302は、データモデル変数を置換する値として、データモデル取得部307により取得されたデータモデルから選択を受け付ける機能部である。
【0045】
テンプレート挿入部303は、テンプレート取得部301により取得されたテンプレートに含まれる変数を値受付部302により受け付けた値に置換した当該テンプレートを、アプリケーションを構築するための定義情報の所定の位置に挿入する機能部である。
【0046】
アプリケーション構築部308は、テンプレート挿入部303により挿入されたテンプレートを含む定義情報に基づき、アプリケーションを構築する機能部である。
【0047】
【0048】
図4は、情報処理装置101及びアプリケーションサーバ102の構成図である。
【0049】
情報処理装置101は、リポジトリ定義部401及びアプリケーション生成部410を備える。
【0050】
情報処理装置101は、アプリケーションを開発するソフトウェア開発者により設定されたリポジトリ定義部401の各定義を用いて、アプリケーション生成部410によりアプリケーションを生成する。
【0051】
リポジトリ定義部401には、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406が記憶されている。これら402~406の定義は、アプリケーション構築ツールを介して、ソフトウェア開発者によって入力設定または配置される。
【0052】
入出力定義403は、アプリケーション画面に配置される各種項目のレイアウトの定義情報を保持する。入出力定義403は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【0053】
なお、本実施形態においては、「入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報」としたが、これらに限定するものではなく、例えば、画面を有さないバッチやWebサービス等のように、「入力項目定義情報は、生成されたアプリケーションに入力される入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションが出力する出力項目を定義した情報」であってもよい。
【0054】
データモデル定義404は、データベースのテーブルの項目の定義情報を保持する。入出力定義403の各項目には、データモデル定義404の項目を対応づけることができる。生成されたアプリケーションは、データモデル定義404を用いてテーブルのレコード操作(例:登録、検索、更新、削除等)を行う。
【0055】
ビジネスプロセス定義405は、アプリケーションにおけるデータを処理するためのロジックの定義情報を保持する。
【0056】
データベース定義406は、アプリケーションが接続するデータベースに係る情報(データベースサーバ103のIPアドレス、接続ユーザ、接続パスワード等)を定義する。
【0057】
ビジネスプロセステンプレート<ユーザ定義>407は、ソフトウェア開発者が独自に作成したビジネスプロセステンプレートである。
【0058】
ビジネスプロセステンプレートとは、ビジネスプロセス定義405の一部として利用可能なテンプレートである。
【0059】
ビジネスプロセステンプレートは、プレースホルダー(ビジネスプロセス定義405に必要な各項目の値を抽象化し、再利用可能にするための変数)を含み、ソフトウェア開発者がプレースホルダーに対して値を入力することによって、プレースホルダーを当該値に置換した状態でビジネスプロセス定義405の一部として利用することができる。
【0060】
ビジネスプロセステンプレート管理部420は、外部メモリ211に記憶されたビジネスプロセステンプレート<組み込み>421を管理する。
【0061】
ビジネスプロセステンプレート<組み込み>421は、ソフトウェア開発支援ツールに組み込まれたビジネスプロセステンプレートである。なお、ビジネスプロセステンプレート<組み込み>421は、ソフトウェア開発支援ツール導入時から組み込まれたテンプレートに限定するものではなく、ソフトウェア開発支援ツール導入後にソフトウェア開発支援ツール開発元や第三者(ビジネスプロセステンプレート提供者等)から取得したテンプレート等であってもよい。
【0062】
以下では、「ビジネスプロセステンプレート<ユーザ定義>407」及び「ビジネスプロセステンプレート<組み込み>421」を総称して、「ビジネスプロセステンプレート」又は単に「テンプレート」と呼ぶ。「ビジネスプロセステンプレート」は、ソフトウェア開発支援ツールの画面(例:ビジネスプロセスエディタ部430)において、「スニペット」と呼ばれる部品として、ビジネスプロセス定義405の作成及び編集に用いることができる。
【0063】
ビジネスプロセスエディタ部430は、ビジネスプロセステンプレート要求受信部431及びビジネスプロセス定義入力部432を用いて、ビジネスプロセス定義405の作成、編集及び参照をする。
【0064】
ビジネスプロセステンプレート編集ダイアログ450は、ビジネスプロセステンプレート表示部451、プレースホルダー値入力部452を用いて、ユーザからのプレースホルダーに対する値入力を受け付け、ビジネスプロセスデータ作成部453を用いて、ビジネスプロセスデータを作成する。
【0065】
ビジネスプロセスデータ作成部453は、作成したビジネスプロセスデータをビジネスプロセスエディタ部に渡す。
【0066】
アプリケーション生成部410は、アプリケーション生成用のリポジトリ定義解析部411を用いてリポジトリ定義部401に記憶されている各定義を解析し、アプリケーションコード生成部412及びソースコードコンパイル部413を介し、コンパイル済Java(登録商標)コード441及びHTML/JSP/JavaScript(登録商標)442を含むアプリケーションコード440を生成する。すなわち、アプリケーション生成部410は、設定された定義を用いて、アプリケーションとして用いられるソフトウェアを生成する手段の一例である。
【0067】
【0068】
図5は、ビジネスプロセス定義生成処理のフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、各装置のCPU201が実行する。
【0069】
ステップS501において、情報処理装置101は、ビジネスプロセス定義入力画面700(
図7)を用いて、ビジネスプロセス定義405に含まれる各項目(「制御コード」「データモデルコード」「機能コード」「パラメータ」及び「作業コード」)の入力を受け付ける。ビジネスプロセス定義入力画面700は、ビジネスプロセス定義入力部432の一例である。
【0070】
ここで、ビジネスプロセス定義405に含まれる各項目について、簡単に説明をしておく。
【0071】
「制御コード」は、ビジネスプロセスにおける命令を表すコードである。具体的には、制御コード“IN”は、画面からバインドされたデータモデルのレコード集合を変数に代入する命令である。また、制御コード“CALL”は、データモデル操作(例:レコードの登録、検索、更新、削除等)を行う命令である。また、制御コード“IF/ELSEIF/ELSE/END”は、ビジネスプロセスにおける処理の分岐を行う命令である。また、制御コード“EXEC”は、定義済のビジネスプロセスを実行する命令である。なお、本実施形態においては、上記の「制御コード」を挙げたが、これらの制御コードに限定するものではなく、その他の命令を表す「制御コード」であってもよい。
【0072】
「機能コード」は、実行する処理を示すコードである。具体的には、データモデル操作コード、定義済のビジネスプロセスのコード、拡張的に定義されたコード等が該当する。
【0073】
「パラメータ」は、「機能コード」で指定した処理に渡す引数である。次に説明する「作業コード」の変数を指定することで、変数に格納された値を「機能コード」で指定した処理に渡すことができる。
【0074】
「作業コード」には、呼出元の入出力定義403から受け取る値、「機能コード」で指定した処理が返す戻り値を格納するための変数を指定する。
【0075】
なお、本実施形態においては、ビジネスプロセス定義405に含まれる項目として、「制御コード」「データモデルコード」「機能コード」「パラメータ」及び「作業コード」を挙げたが、これらの項目に限定するものではなく、その他の項目があってもよい。
【0076】
ステップS502において、情報処理装置101は、ビジネスプロセステンプレート要求受信部431を用いて、ビジネスプロセステンプレート701の挿入操作を受け付けたか否かを判定し、受け付けた場合はステップS503に進み、受け付けなかった場合はステップS504に進む。
【0077】
ビジネスプロセステンプレート701の挿入操作とは、例えば、ビジネスプロセステンプレート701をドラッグし、ビジネスプロセスエディタ部430内の挿入したい位置にドロップする(
図7の702)操作である。なお、本実施形態においては、挿入操作をドラッグ&ドロップ操作としたが、この操作方法に限定するものではなく、挿入するビジネスプロセステンプレート701及び挿入する位置が特定できる操作であれば、キーボードによる操作、画面のタッチ操作、その他の操作等であってもよい。
【0078】
なお、本実施形態においては、挿入するビジネスプロセステンプレート701及び挿入する位置は、ソフトウェアの開発者が操作により指示するとしたが、この方法に限定するものではなく、情報処理装置101が、ビジネスプロセス定義405の定義内容に基づき、挿入するビジネスプロセステンプレート701又は挿入する位置を自動的に(例えば、別途定義されたルール、過去に開発したソフトウェアの解析結果、及び/又は、人工知能等を用いて)特定するとしてもよい。
【0079】
なお、本実施形態においては、挿入するテンプレートをビジネスプロセステンプレート701としたが、これに限定するものではなく、入出力定義403、データモデル定義404等、その他の種類のテンプレート(例:レイアウトやデザインのテンプレート、メッセージのテンプレート、汎用的なデータやロジックのテンプレート等)であってもよい。
【0080】
ステップS503において、情報処理装置101は、ビジネスプロセステンプレートの挿入処理を行う。この処理については、
図6にて後述する。
【0081】
ステップS504において、情報処理装置101は、ソフトウェア開発者からのビジネスプロセス定義405の保存要求を受け付ける。
【0082】
ステップS505において、情報処理装置101は、ソフトウェア開発者からのビジネスプロセス定義405の保存要求の有無を判定する。
【0083】
ステップS505において、情報処理装置101は、ステップS501~S503にて作成されたビジネスプロセスに基づき、ビジネスプロセス定義405を生成し、外部メモリ211に記憶する。
【0084】
【0085】
図6は、ステップS503にて実行されるビジネスプロセステンプレート挿入処理のフローチャートの一例を示す図である。
【0086】
ステップS601において、情報処理装置101は、ビジネスプロセス定義に挿入するビジネスプロセステンプレート701の情報を取得し、RAM202へ記憶する。すなわち、ステップS601は、テンプレートを取得する処理の一例を示すステップである。挿入するビジネスプロセステンプレート701とは、ステップS502にて特定された(例:ソフトウェア開発者がドラッグ&ドロップした)ビジネスプロセステンプレート701である。
【0087】
ステップS602において、情報処理装置101は、ステップS601にて取得したビジネスプロセステンプレート内のプレースホルダーの情報を取得する。
【0088】
ステップS603において、情報処理装置101は、ステップS602にて取得したプレースホルダーの数を判定し、0個の場合はステップS607に進み、1個以上の場合はステップS604に進む。
【0089】
ステップS604において、情報処理装置101は、ステップS601にて取得したビジネスプロセステンプレート及びステップS602にて取得したプレースホルダーを表示する。すなわち、ステップS604は、取得されたテンプレートを、変数を含めた形式で表示する処理の一例を示すステップである。具体的には、ビジネスプロセステンプレート編集ダイアログ450(
図8の800)を表示する。
【0090】
ステップS605において、情報処理装置101は、プレースホルダー値入力部452を用いて、プレースホルダーを置換する値の入力を受け付ける。すなわち、ステップS605は、取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける処理の一例を示すステップである。具体的には、プレースホルダー一覧をプレースホルダー値エディタ801に表示し、ソフトウェア開発者による入力を受け付ける。
【0091】
図8の802は、プレースホルダー値エディタ801にてプレースホルダーを置換する値の入力を受け付けた例である。ここでは、プレースホルダー{DM_CODE}に“EMP_MST”(顧客マスタ)を、プレースホルダー{WK_CODE}に値「WK_ID」の入力を受け付けたとする。
【0092】
なお、「データモデルコード」のプレースホルダーに対して値の入力をする場合は、既存のデータモデル(データモデル定義404)から選択することができるとしてもよい(不図示)。また、「パラメータ」等のプレースホルダーに対して値の入力をする場合は、呼出元の入出力定義403から受け取ると予想される値、「機能コード」で指定した処理が返すと予想される戻り値等から選択ができるとしてもよい(不図示)。これにより、プレースホルダーを置換する値の入力を効率化することができるようになる。
【0093】
すなわち、ステップS605は、ソフトウェアで用いるデータモデルを取得する処理の一例を示すステップであり、データモデル変数を置換する値として、取得されたデータモデルから選択を受け付ける処理の一例を示すステップである。
【0094】
ステップS606において、情報処理装置101は、OKボタン803の押下を受け付けると、ステップS601にてRAM202に記憶したビジネスプロセステンプレート701の各プレースホルダーをステップS605にて受け付けた値に置換する。
【0095】
ステップS607において、情報処理装置101は、RAM202内のビジネスプロセステンプレート701を、ステップS502にて特定された挿入位置に挿入する。すなわち、ステップS607は、テンプレートに含まれる変数を受け付けた値に置換した当該テンプレートをソフトウェアの所定の位置に挿入する処理の一例を示すステップである。すなわち、ステップS607は、取得されたテンプレートに含まれる変数を受け付けた値に置換した当該テンプレートを、アプリケーションを構築するための定義情報の所定の位置に挿入する処理の一例を示すステップである。
【0096】
具体的には、ステップS604にて表示されていたビジネスプロセステンプレートのプレースホルダー{DM_CODE}が“EMP_MST”(顧客マスタ)に、プレースホルダー{WK_CODE}が値「WK_ID」に置換した状態で、ステップS502にて特定された挿入位置に挿入する(
図9の901)。
【0097】
【0098】
図10は、新規のビジネスプロセステンプレートを作成するフローチャートの一例を示す図である。
【0099】
ステップS1001において、情報処理装置101は、新規のビジネスプロセステンプレートを作成する要求を受け付ける(
図11)。
図11では、ビジネスプロセステンプレートを識別するためのコード1101及びその名前1102の入力、並びに、Finishボタン1103の押下を受け付け、それらの値をRAM202に記憶しておく。ここでは、コード1101に“TEMPLATE_SAMPLE”、名前1102に“サンプルテンプレート”の値がそれぞれ入力されたとする。
【0100】
ステップS1002において、情報処理装置101は、新規ビジネスプロセステンプレート作成画面(
図12)を表示し、ロジック一覧部1201(
図12)にて、新たなビジネスプロセステンプレート<ユーザ定義>407を構成する「制御コード」「データモデルコード」「機能コード」「パラメータ」「作業コード」の入力を受け付ける。すなわち、ステップS1002は、変数を含むテンプレートの作成を受け付ける処理の一例を示すステップである。
【0101】
図13は、新規ビジネスプロセステンプレート作成画面で作成した新規ビジネスプロセステンプレートの一例を示す図である。1301~1303のように、「制御コード」「データモデルコード」「機能コード」「パラメータ」「作業コード」に中括弧{}を用いることで、新規ビジネスプロセステンプレート内にプレースホルダーを作成することができる。
【0102】
また、中括弧に囲まれた文字列を同じ文字列(例:1301及び1302)にすることにより、同一のプレースホルダーとして扱うことができる。つまり、この画面を用いて生成された新規ビジネスプロセステンプレートをビジネスプロセス定義に挿入する場合、プレースホルダー{DM_CODE}に対して設定した値を、プレースホルダー{DM_CODE}が定義されているすべての箇所に置換することができる。
【0103】
これにより、ソフトウェア開発者が独自に作成する新規ビジネスプロセステンプレートにおいても、プレースホルダーを用いることができる。つまり、ソフトウェア開発者自身がプレースホルダーを含むテンプレートを自由に作成することができるようになるため、そのソフトウェア開発に適した柔軟なテンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供することができるようになる。
【0104】
ステップS1003において、情報処理装置101は、新たなビジネスプロセステンプレート<ユーザ定義>407に既存のビジネスプロセステンプレートを挿入する操作を受け付けたか否かを判定する。挿入操作を受け付けた場合はステップS1004に進み、受け付けなかった場合はステップS1005に進む。ビジネスプロセス部品1202(
図12)には、「スニペット」と呼ばれる部品としてビジネスプロセステンプレート(421及び既存の407)が表示されており、既存のビジネスプロセステンプレートの挿入操作とは、ビジネスプロセス部品1202のビジネスプロセステンプレートをロジック一覧部1201にドラッグ&ドロップすることで、ビジネスプロセステンプレートを利用して新たなビジネスプロセステンプレート<ユーザ定義>407を作成することができる。
【0105】
なお、本実施形態においては、
図10のフローチャートにより作成された新たな「ビジネスプロセステンプレート<ユーザ定義>407は、ビジネスプロセス部品1202(
図12)の「スニペット」に表示され選択できるようになるとしたが、この方法に限定するものではなく、ビジネスプロセステンプレート<組み込み>421とビジネスプロセステンプレート<ユーザ定義>407とを分けて表示するとしてもよいし、ビジネスプロセステンプレートが持つ設定に基づき、新たなビジネスプロセステンプレート<組み込み>421を作成するときにスニペットとして用いることができないビジネスプロセステンプレートがあってもよい。
【0106】
ステップS1004において、情報処理装置101は、新たなビジネスプロセステンプレート<ユーザ定義>407に既存のビジネスプロセステンプレートを挿入する。
【0107】
これにより、「制御コード」「データモデルコード」「機能コード」「パラメータ」「作業コード」の入力を容易にすることができる。また、ビジネスプロセステンプレートの部品(スニペット)を組み合わせて、複雑かつ高品質なビジネスプロセステンプレートを容易に作成することができるようになる。
【0108】
既存のビジネスプロセステンプレートを挿入した後は、ステップS1002と同様に新たなビジネスプロセステンプレート<ユーザ定義>407の「制御コード」「データモデルコード」「機能コード」「パラメータ」「作業コード」の入力及び修正を受け付けることができる。
【0109】
ステップS1005において、情報処理装置101は、ステップS1001~S1004にて作成した新たなビジネスプロセステンプレート<ユーザ定義>407を外部メモリ211に記憶する。すなわち、ステップS1005は、受け付けたテンプレートを作成する処理の一例を示すステップである。
【0110】
以上により、ソフトウェア開発者自身がテンプレートを自由に作成することができるようになるため、そのソフトウェア開発に適した柔軟なテンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供することができるようになる。
【0111】
図14は、アプリケーション構築のフローチャートの一例を示す図である。
【0112】
ステップS1401において、情報処理装置101は、ユーザによるアプリケーション構築の指示(不図示)を受け付けると、外部メモリ211に記憶されているリポジトリ定義のアプリケーション定義をRAM202に読み込む。なお、リポジトリ定義には、アプリケーションの構築に用いる、データベース定義、データモデル定義、入出力(画面)定義、ビジネスプロセス定義等が含まれる。これらの詳細については、既知の技術であるため、その説明は省略する。
【0113】
すなわち、ステップS1401は、アプリケーションの構築指示を受け付ける処理の一例を示すステップである。また、リポジトリ定義は、アプリケーションの定義を記憶する手段の一例である。
【0114】
ステップS1402において、情報処理装置101は、外部メモリ211に記憶されているリポジトリ定義部のデータモデル定義をRAM202に読み込む。
【0115】
ステップS1403において、情報処理装置101は、外部メモリ211に記憶されているリポジトリ定義部の入出力(画面)定義をRAM202に読み込む。
【0116】
ステップS1404において、情報処理装置101は、外部メモリ211に記憶されているリポジトリ定義部のビジネスプロセス定義をRAM202に読み込む。
【0117】
ステップS1405において、情報処理装置101は、外部メモリ211に記憶されているリポジトリ定義部のデータベース定義をRAM202に読み込む。
【0118】
ステップS1406において、情報処理装置101は、RAM202に読み込んだリポジトリ定義部の各定義に基づき、アプリケーションのソースコードを生成する。
【0119】
なお、生成されたソースコードにはプログラミング言語で記載されたファイルに加え、HTML、JSP、JavaScript(登録商標)等のアプリケーションやサービスの提供に利用されるファイルも含まれる。なお、本実施形態においては、プログラミング言語をJava(登録商標)としたが、これに限定に限定するものではなく、その他のプログラミング言語を用いるとしてもよい。なお、本実施形態においては、HTML、JSP、JavaScript(登録商標)等のファイルを生成するとしたが、当然ながら、そのアプリケーションやサービスの提供に利用するファイルであれば、その他の形式のファイルであってもよい。
【0120】
ステップS1407において、情報処理装置101は、ステップS1406にて生成したソースコードをアプリケーションサーバ102に配置(デプロイ)する。すなわち、ステップS1407は、挿入されたテンプレートを含む定義情報に基づき、アプリケーションを構築する処理の一例を示すステップである。これにより、アプリケーションサーバ102上でアプリケーションが動作するようになる。
【0121】
以上により、テンプレートを用いて効率的にアプリケーションを構築することができるようになる。
以上で、
図14の説明を終了する。
【0122】
以上により、テンプレートを用いてソフトウェア開発を効率的に行うことができるようになる。
【0123】
なお、本実施形態においては、テンプレートを用いてソフトウェアの開発を行うとしたが、ソフトウェアの開発に限定するものではなく、入出力定義403、データモデル定義404等、その他の種類のテンプレート(例:レイアウトやデザインのテンプレート、メッセージのテンプレート、汎用的なデータやロジックのテンプレート等)にも本願発明を適用すれば、デザイン、メッセージ、文書、データ、ロジック等に係る開発や作業を効率的にすることができるようになる。
【0124】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0125】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0126】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0127】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0128】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0129】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0130】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0131】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0132】
101 情報処理装置
102 プログラム生成サーバ
103 データベースサーバ
104 アプリケーションクライアント
105 アプリケーションサーバ
106 ネットワーク