以下、本発明の実施の形態を、図面を参照して詳細に説明するが、本発明の特徴の一例を表している箇所は、図42である。
〔第1の実施形態〕
図1は、本発明に係るプログラム開発装置(開発者がWebアプリケーション生成のために使用する情報処理装置)、プログラム開発サーバ、データベースサーバ、アプリケーションクライアント(クライアント装置)、アプリケーションサーバの構成の一例を示すシステム(情報処理システム)構成図である。
プログラム開発装置101は、開発者の操作に従って画面レイアウトおよびデータベース検索指示などを定義する。プログラム開発装置101単体では、開発者の入力受付を行い、後述するプログラム開発サーバ102に実際のプログラム生成処理、アプリケーション生成処理をさせてもよいし、プログラム開発装置101単体でプログラム生成、アプリケーション生成まで処理してもよい。
なお、この実施形態においては、プログラム開発装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Web技術による通信を利用したアプリケーションでなくてもよい。
プログラム開発サーバ102a〜102b(情報処理装置)は、プログラム開発装置101により入力された開発者の指示に従って、プログラムを開発する。プログラム開発サーバ102aはLANなどのネットワーク106内に配置されてもよいし、プログラム開発サーバ102bはインターネット上やクラウド上に配置されてもよい。
データベースサーバ103a〜103b(情報処理装置)は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、開発者が利用するためにデータベースサーバ103は、プログラム開発装置101と同一の装置で構成されていてもよいし、LANなどのネットワーク106内に配置されてもよい(データベースサーバ103a)。またインターネット上やクラウド上に配置されてもよい(データベースサーバ103b)。また、プログラム開発装置101が、プログラム開発サーバ102と協調する場合には、プログラム開発サーバ102とデータベースサーバ103が同一の装置内に構成されていてもよい。
アプリケーションサーバ105a〜105b(情報処理装置)は、プログラム開発装置101で開発されたアプリケーションを実行する。LANなどのネットワーク106内に配置されてもよい(アプリケーションサーバ105a)し、またインターネット上やクラウド上に配置されてもよい(アプリケーションサーバ105b)。また、ネットワーク106、インターネット、クラウド上のデータベースサーバ103と接続して動作する可能である。
アプリケーションクライアント104a〜104b(情報処理装置)は、アプリケーションサーバ105と協調してプログラム開発装置101で開発したアプリケーションプログラムを動作させる、ユーザの入力端末である。LANなどのネットワーク106内に配置されてもよい(アプリケーションクライアント104a)し、またインターネット上やクラウド上に配置されてもよい(アプリケーションクライアント104b)。携帯端末などの情報処理装置であってもよい。
図2は、本発明に係るプログラム開発装置101、プログラム開発サーバ102、データベースサーバ103、アプリケーションクライアント104、アプリケーションサーバ105として適用可能な各ハードウェア構成の一例を示すブロック図である。
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイスが挙げられる。
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。加えて、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
図3は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
プログラム開発装置101は、以下の機能部を備える。
Webアプリケーション用入出力定義管理部301は、プログラムを実行するための引数として入力される項目を定義するWebアプリケーション用入力定義情報と、プログラムを実行した処理結果として出力する項目を定義するWebアプリケーション用出力定義情報とを、Webアプリケーション用入出力定義情報として管理する機能部である。
Webサービス用入出力定義生成部302は、Webアプリケーション用入出力定義管理部301により管理されているWebアプリケーション用入出力定義情報を用いて、Webサービスに用いられるプログラムを実行するための引数として入力される項目を定義するWebサービス用入力定義情報と、Webサービスに用いられるプログラムを実行した処理結果として出力する項目を定義するWebサービス用出力定義情報とを、Webサービスとして利用可能にするために生成する機能部である。
Webサービス用入出力定義生成部302は、Webアプリケーション用入出力定義管理部301により管理されているWebアプリケーション用入力定義情報とWebアプリケーション用出力定義情報のうちWebサービスの実行に必要な情報を用いて、Webサービス用入力定義情報とWebサービス用出力定義情報を生成する機能部である。
Webサービス用入出力定義生成部302は、Webアプリケーション用入出力定義管理部301により管理されているWebアプリケーション用入力定義情報とWebアプリケーション用出力定義情報のうち、Webサービスの実行に不要な情報は用いずに、Webサービス用入力定義情報とWebサービス用出力定義情報とを生成する機能部である。
Webサービス用入出力定義生成部302は、Webアプリケーション用入出力定義管理部301により管理されているWebアプリケーション用入力定義情報とWebアプリケーション用出力定義情報のうち、Webサービスの実行に不要な情報を無効な状態にして、Webサービス用入力定義情報とWebサービス用出力定義情報とを生成する機能部である。
表示部303は、Webサービス用入出力定義生成部302により生成されたWebサービス用入力定義情報もしくは/およびWebサービス用出力定義情報を変更できるように表示する機能部である。
対応付管理部304は、Webサービス用入出力定義生成部302による生成に用いられたWebアプリケーション用入出力定義管理部301により管理されているWebアプリケーション用入力定義情報およびWebアプリケーション用出力定義情報と、Webサービス用入出力定義生成部302により生成されたWebサービス用入力定義情報およびWebサービス用出力定義情報とを、それぞれ対応付けて管理する機能部である。
変更受付部305は、対応付管理部304により対応付けられたどちらか一方の入力定義情報もしくは/および出力定義情報の変更を受け付ける機能部である。
変更反映部306は、変更受付手段により受け付けた変更の内容に従って、対応付管理部304により対応付けられたもう一方の入力定義情報もしくは/および出力定義情報を変更する機能部である。
通知部307は、変更受付部305により変更を受け付けた場合、対応付管理部304により対応付けられた入力定義情報もしくは/および出力定義情報が存在することをユーザに通知する機能部である。
変更反映部306は、変更受付部305により受け付けた変更の内容が、Webアプリケーション用出力定義情報のうち、Webサービスの実行に不要な情報の変更であった場合、Webサービス用出力定義情報に当該変更を反映させない機能部である。
Webサービス用プログラム生成部308は、Webサービス用入出力定義生成部302により生成されたWebサービス用入力定義情報とWebサービス用出力定義情報とを用いて、Webサービスの実行に用いられるプログラムを生成する機能部である。
変更反映部306は、変更受付部305により受け付けた変更が、Webアプリケーション用入力定義情報またはWebアプリケーション用出力定義情報の変更である場合であって、対応付管理部304により当該入力定義情報または当該出力定義情報に対応付けられたWebサービス用入力定義情報またはWebサービス用出力定義情報を用いて、Webサービス用プログラム生成部308によりWebサービスに用いられるプログラムを生成されたことがある場合、当該Webアプリケーション用入力定義情報もしくは/および当該Webアプリケーション用出力定義情報の変更を、当該Webサービス用入力定義情報もしくは/および当該Webサービス用出力定義情報に反映させない機能部である。
図4は、プログラム開発装置101の構成図である。プログラム開発装置101は、Webアプリケーションを開発する開発者が定義した定義ファイルをもとにWebアプリケーションを自動生成することを目的とした装置である。プログラム開発装置101は、リポジトリ定義部400、アプリケーション生成部410、Webアプリケーションコード生成部420、Webサービスコード生成部430、ソースコードコンパイル部440により構成される。
リポジトリ定義部400は、データベース定義401、アプリケーション定義402、データモデル定義403、入出力定義404、ビジネスプロセス定義405、Webサービス入出力定義406(以下、Webサービス用の入出力定義406と記す)を備える。これらのファイルは、Webアプリケーション開発ツールを介して開発者によって入力され、作成される。
すなわち、リポジトリ定義部400は、プログラムを実行するための引数として入力される項目を定義するWebアプリケーション用入力定義情報と、プログラムを実行した処理結果として出力する項目を定義するWebアプリケーション用出力定義情報とを、Webアプリケーション用入出力定義情報として管理する手段の一例である。
次に、Webアプリケーションコード生成部420について説明する。リポジトリ定義解析部421は、リポジトリ定義部400からデータベース定義401、アプリケーション定義402、データモデル定義403、入出力定義404、ビジネスプロセス定義405を読み込み解析する。Webアプリケーションコード生成部422は、外部メモリ211に記憶されているコード生成ルールと、リポジトリ定義解析部421によって解析された内容とを用いて、ソースコードコンパイル部440を介し、Webアプリケーションモジュール454を生成する。すなわち、Webアプリケーションコード生成部422は、Webアプリケーションに用いられるプログラムを生成するルールを記憶する手段の一例である。
次に、Webサービスコード生成部430について説明する。Webサービス入出力定義解析部431は、リポジトリ定義部400からデータベース定義401、アプリケーション定義402、データモデル定義403、ビジネスプロセス定義405、Webサービス用の入出力定義406を読み込み解析する。Webサービスインタフェースコード生成部432は、外部メモリ211に記憶されているコード生成ルールと、Webサービス入出力定義解析部431によって解析された内容とを用いて、ソースコードコンパイル部440を介し、Webアプリケーションモジュール454を生成する。また、WSDL生成部433は、Webサービス入出力定義解析部431によって解析された内容を用いて、Webサービスモジュール451を生成する。
すなわち、Webサービスコード生成部430は、Webサービスに用いられるプログラムを生成するルールを記憶する手段の一例である。
図5は、Webアプリケーション/Webサービス生成のフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、各装置のCPU201が実行する。
ステップS501において、プログラム開発装置101は、ユーザによるWebアプリケーション/Webサービス生成指示を受け付けると、外部メモリ211に記憶されているリポジトリ定義部400のアプリケーション定義402をRAM202に読み込む。すなわち、ステップS501は、Webサービスに用いられるプログラムの生成指示を受け付ける処理の一例を示すステップである。
ステップS502において、プログラム開発装置101は、外部メモリ211に記憶されているリポジトリ定義部400のデータモデル定義403をRAM202に読み込む。
ステップS503において、プログラム開発装置101は、外部メモリ211に記憶されているリポジトリ定義部400の入出力定義404をRAM202に読み込む。
ステップS504において、プログラム開発装置101は、外部メモリ211に記憶されているリポジトリ定義部400のビジネスプロセス定義405をRAM202に読み込む。
ステップS505において、プログラム開発装置101は、外部メモリ211に記憶されているリポジトリ定義部400のデータベース定義401をRAM202に読み込む。
ステップS506において、プログラム開発装置101は、RAM202に読み込んだリポジトリ定義部400の各定義・各ファイルから情報を取得し、ソースコードを生成する。
なお、生成されたソースコードにはプログラミング言語が記載されたファイルに加え、HTML、JSP、JavaScript(登録商標)等のWebアプリケーションやWebサービスの提供に利用されるファイルも含まれる。ソースコード生成処理については、図6にて詳細を説明する。
ステップS507において、プログラム開発装置101は、ステップS506にて生成したソースコードをアプリケーションサーバ105に配置(デプロイ)する。これにより、アプリケーションサーバ105上でWebアプリケーションまたはWebサービスが動作するようになる。
以上で、図5の説明を終了する。
図6は、ソースコード生成のフローチャートの一例を示す図である。
ステップS601において、プログラム開発装置101は、RAM202から、WebアプリケーションまたはWebサービスの生成を指示されたアプリケーション定義402に対応付けられている入出力定義404またはWebサービス用の入出力定義406を取得し、取得した入出力定義404またはWebサービス用の入出力定義406について、それぞれステップS602〜ステップS605を繰り返す。
ステップS602において、プログラム開発装置101は、取得した入出力定義404またはWebサービス用の入出力定義406の実行形態(図17の入出力タイプ1701の値、または図19の入出力タイプ1901の値)を判定し、入出力タイプ1701のように値が“IO”の場合はWebアプリケーション用の入出力定義404であると捉えてステップS603に進み、入出力タイプ1901のように値が“WEB SERVICE”の場合はWebサービス用の入出力定義406であると捉えてステップS604に進む。
すなわち、入出力タイプ1701は、プログラムが実行される形態を設定する手段の一例である。また、ステップS602は、設定された実行形態に従って、入出力定義情報を用いて、Webアプリケーションに用いられるプログラムを生成するかWebサービスに用いられるプログラムを生成するかを制御する処理の一例を示すステップである。また、図17〜図19の入出力定義画面は、入出力定義情報の設定を受け付ける手段の一例である。
ステップS603において、プログラム開発装置101は、入出力定義404を用いて、Webアプリケーション用の入出力定義ソースコードを生成する。具体的には、入出力定義404から、入出力項目(図32の項目タイプ3201=IO(入出力)またはI(入力)の項目)、画面表示に必要なパラメータ(図32の初期値3202)、検索対象(図17の対象データモデル1702)、検索条件(図17の対象条件1703)を取得し解析し、図28の2801、2802のようなWebアプリケーション用の入出力定義ソースコードを生成する。
なお、2801のメソッドの戻り値を、入出力定義コード名3203+“Disp”とする。また、入出力項目(図32の項目タイプ3201=IO(入出力)またはI(入力)の項目)は、2801のparamListおよび2802のformに含まれることになる。よって、入出力定義404の項目タイプ3201の各設定は、ActionFormクラスのgetter/setterメソッド、JSPファイル内の対応する画面項目のIDやNAMEなどに反映されて、Webアプリケーション用の入出力定義ソースコードが生成される。
なお、図32は、Webアプリケーション用の入出力定義画面(項目一覧)3200の一例を示す図であり、ユーザによって表示タブ「入出力(図32の3204)」が押下されると、図17のWebサービス用の入出力定義画面(入出力)1700を表示する。
ステップS604において、プログラム開発装置101は、Webサービス用の入出力定義406を用いて、Webサービス用の入出力定義ソースコードを生成する。すなわち、ステップS604は、受け付けたプログラム生成指示に従って、入力定義情報と出力定義情報とを用いて、Webサービスに用いられるプログラムを生成する処理の一例を示すステップである。この処理については、後述する図7にて詳細を説明する。
ステップS605において、プログラム開発装置101は、このWebサービス用の入出力定義406を用いて、Webサービス用の入出力定義ソースコードを生成したことを示すフラグをONにし、外部メモリ211に記憶する。
以上により、設定した入出力定義情報を用いて、WebアプリケーションやWebサービスなど開発者が所望する形態に応じたプログラムファイルを容易に生成することができるようになる。特に、アプリケーションかWebサービスを容易に切り替えさせ、所望の形態のプログラムファイルを生成することができるようになる。
以上で、図6の説明を終了する。
図7は、Webサービスソースコード生成のフローチャートの一例を示す図である。
ステップS701において、プログラム開発装置101は、Webサービス用の入出力定義406を解析する。具体的には、入出力定義404から、入出力項目(図18の項目タイプ1801=IO(入出力)またはI(入力)の項目)、画面表示に必要なパラメータ(図18の初期値1802)、検索対象(図19の対象データモデル1902)、検索条件(図19の対象条件1903)を取得し解析する。
なお、図18は、Webサービス用の入出力定義画面(項目一覧)1800の一例を示す図であり、ユーザによって表示タブ「入出力(図18の1804)」が押下されると、図19のWebサービス用の入出力定義画面(入出力)1900を表示する。
なお、図17と図19、図18と図32の画面構成は同じであり、図29で後述するが、入出力定義404は、既存の入出力定義をコピーして作成することができる。よって、Webサービス用の入出力定義406には、画面表示上の装飾等(例えば、ラジオボタンやセレクトボックス等、どのような画面部品を用いて表示するか等)、Webサービスに不要な設定も含まれる。そのため、ステップS701では、Webサービス用の入出力定義406の解析を行う際に、Webサービスに不要な設定を除き、解析を行う。これにより、解析処理をより短い時間で行うことができるようになる。
すなわち、ステップS701は、入力定義情報と出力定義情報のうち、Webサービスに必要な情報を用いて、Webサービスに用いられるプログラムを生成する処理の一例を示すステップである。
ステップS702において、プログラム開発装置101は、取得した入出力定義404の情報を基にして、図28の2803のようなデータ取得のWebサービスインタフェースコードを生成する。具体的には、図18の入出力定義コード名1803を用いて、戻り値を“WSIo”+ 入出力定義コード名1803 +“GetDataResult”とし、メソッド名を 入出力定義コード名1803+“_getData”として出力し、パラメータ(初期値1802および対象条件1903に含まれる@の個数分だけ)を引数とする。
なお、このメソッドは、アプリケーションサーバ105から、getDataのWebサービスが呼び出されたときに実行される(図21のステップS2102〜ステップS2104)。
また、アクション項目(図27の2701)にBP(ビジネスプロセス)定義(加工式2703の“@数字”を含む文字列)がある場合は、図28の2804のようなビジネスプロセスを呼び出すWebサービスインタフェースコードを生成する。具体的には、図18の入出力定義コード名1803を用いて、戻り値を“WSIoActionResult”、メソッド名を 入出力定義コード名1803 +“_exec”+ アクションのコード名(加工式2703から@を除いた文字列)として出力し、パラメータを引数とする。
なお、このメソッドは、アプリケーションサーバ105から、BP(ビジネスプロセス)のWebサービスが呼び出されたときに実行される(図21のステップS2102〜ステップS2104)。
ステップS703において、プログラム開発装置101は、ステップS701にて解析したWebサービス用の入出力定義406を用いて、WSDL生成(図8)を行う。この処理については、図8にて詳細を説明する。すなわち、ステップS702およびステップS703は、設定された実行形態がWebサービスである場合に、設定を受け付けた入力定義情報に含まれるWebサービスを利用するユーザによって画面から入力される値を表す文字列、および設定を受け付けた出力定義情報に含まれるWebサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、記憶されているルールを用いて、Webサービスの利用に必要なインタフェースとなるメッセージを生成し、当該メッセージを含むXMLファイルを生成する処理の一例を示すステップである。
以上で、図7の説明を終了する。
図8は、WSDL生成のフローチャートの一例を示す図である。
ステップS801において、プログラム開発装置101は、getDataリクエスト生成(図9)を行う。この処理については、図9にて詳細を説明する。
ステップS802において、getDataレスポンス生成(図11)を行う。この処理については、図11にて詳細を説明する。
なお、getDataリクエスト/getDataレスポンスは対になっており、主に画面情報を取得するために利用される。
ステップS803において、BPリクエスト生成(図13)を行う。この処理については、図13にて詳細を説明する。
ステップS804において、BPレスポンス生成(図15)を行う。この処理については、図15にて詳細を説明する。
なお、BPリクエスト/BPレスポンスは対になっており、それぞれアクション実行とアクション結果取得のために利用される。
以上で、図8の説明を終了する。
図9は、getDataリクエスト生成のフローチャートの一例を示す図である。
ステップS901において、プログラム開発装置101は、入出力定義404に対象条件1903の設定があるか否かを判定し、ある場合はステップS902に進み、ない場合は図9の処理を終了する。
ステップS902において、プログラム開発装置101は、WSDLにデータ取得処理のリクエストの記述を出力する(図10の1001)。具体的には、入出力定義コード名1803を用いて、 operation name= 入出力定義コード名1803+“_getData”、message= 入出力定義コード名1803+“_getDataRequest” のように出力する。これにより、「IO002_WSDL_getData」という検索処理がWebサービスとして公開され、外部アプリケーションから利用することができるようになる。
ステップS903において、プログラム開発装置101は、入出力定義404にパラメータがあるか否かを判定し、ある場合はステップS904に進み、ない場合は図9の処理を終了する。具体的には、対象条件1903または初期値1802に“@数字”を含む文字列が含まれる場合は、図10の1002の記述を出力し、ステップS904に進む。1002の記述は、具体的には、入出力定義コード名1803を用いて、 element=“ns:”+ 入出力定義コード名1803 +“_getData” とする。これにより、検索処理「IO002_WSDL_getData」を呼び出す際に、パラメータを送ることができるようになる。
ステップS904において、WSDLに図10の1003のような記述をパラメータ数だけ出力する。具体的に、1003の記述は、パラメータの通し番号N(@数字の数字部)を用いて、 name=“param”+N とする。
以上で、図9の説明を終了する。
図10は、getDataリクエストWSDL1000の一例を示す図である。図10は、入出力定義404に対象条件1903の設定があり、かつ入出力定義404にパラメータがある場合のリクエストWSDLの一例である。
図11は、getDataレスポンス生成のフローチャートの一例を示す図である。
ステップS1101において、プログラム開発装置101は、ステップS901と同様、入出力定義404に対象条件1903の設定があるか否かを判定し、ある場合はステップS1102に進み、ない場合は図11の処理を終了する。
ステップS1102において、プログラム開発装置101は、WSDLにデータ取得処理のレスポンスの記述を出力する(図12の1201)。具体的には、入出力定義コード名1803を用いて、 operation name= 入出力定義コード名1803+“_getData”、 message= 入出力定義コード名1803+“_getDataResponse” のように出力する。これにより、Webサービスとして公開された検索処理「IO002_WSDL_getData」の戻り値を公開することができるようになる。
ステップS1103において、プログラム開発装置101は、Webサービス用の入出力定義406から、入出力項目(図18の項目タイプ1801=IO(入出力)またはO(出力)の項目)を取得し、WSDLに項目定義を出力する(図12の1202)。具体的には、入出力定義画面(入出力)1900の対象データモデル1902に設定されたデータモデルの項目コード2001(図20)を用いて、 name=項目コード2001 とし、データタイプ2002(図20)に従ってデータの型名を決定し、 type=“xs:”+型名 とする。図12の1202の記述から、検索処理の結果として、String型の「item_key」と、String型の「item_value」という項目が出力されることがわかる。これにより、Webサービスの実行結果の戻り値に含まれる項目IDと型情報を公開できるようになる。
なお、図20は、Webアプリケーション開発ツールによって生成されたWebアプリケーションおよびWebサービスが利用するデータモデル定義画面の一例を示す図である。この画面で定義する各項目はWebアプリケーションおよびWebサービスが接続するデータベースのテーブルのカラム名と一致する。
以上で、図11の説明を終了する。
図12は、getDataレスポンスWSDL1200の一例を示す図である。図12は、入出力定義404に対象条件1903の設定があり、かつ出力項目が存在する場合のレスポンスWSDLの一例である。
図13は、BP(ビジネスプロセス)リクエスト生成のフローチャートの一例を示す図である。
ステップS1301において、プログラム開発装置101は、図27の項目タイプ2701の定義を取得し、項目タイプ2701=「A:アクション」の項目にビジネスプロセス(図27の加工式2703)の定義があるか否か判定する。ある場合はステップS1302に進み、ない場合は図13の処理を終了する。
ステップS1302において、プログラム開発装置101は、WSDLにビジネスプロセス定義を出力する(図14の1401)。具体的には、入出力定義コード名1803とアクションの項目コード名2702を用いて、operation name= 入出力定義コード名1803 +“_exec”+ アクションの項目コード名2702 +message= 入出力定義コード名1803 +“_exec”+ アクションの項目コード名2702 +“Request” とする。これにより、「IO002_WSDL_execINSERT」という登録処理がWebサービスとして公開され、外部アプリケーションから利用することができるようになる。
ステップS1303において、プログラム開発装置101は、Webサービス用の入出力定義406に、入出力項目(図18の項目タイプ1801=IO(入出力)またはI(入力)の項目)の有無を判定する。ある場合はステップS1304に進み、ない場合は図13の処理を終了する。
ステップS1304において、プログラム開発装置101は、WSDLにビジネスプロセスへのパラメータを出力する(図14の1402)。具体的には、入出力定義コード名1803とアクションの項目コード名2702を用いて、element=入出力定義コード名1803 +“_exec”+ アクションの項目コード名2702 とする。これにより、登録処理「IO002_WSDL_execINSERT」の呼出し時に、外部アプリケーションからパラメータを与えることができるようになる。
ステップS1305において、プログラム開発装置101は、Webサービス用の入出力定義406から、入出力項目(図18の項目タイプ1801=IO(入出力)またはI(入力)の項目)を取得し、WSDLに項目定義を出力する(図14の1403)。具体的には、入出力定義画面(入出力)1900の対象データモデル1902に設定されたデータモデルの項目コード2001(図20)を用いて、 name=項目コード2001 とし、データタイプ2002(図20)に従ってデータの型名を決定し、 type=“xs:”+型名 とする。図14の1403の記述から、登録処理のパラメータは、String型の「item_key」、String型の「item_param」、String型の「item_value」であるということがわかる。これにより、Webサービスの実行時のパラメータを公開できるようになる。
以上で、図13の説明を終了する。
図14は、BPリクエストWSDL1400の一例を示す図である。図14は、入出力定義404にビジネスプロセスが定義されたアクション項目があり、かつ入出力項目にIOまたはI項目が存在する場合のBPリクエストWSDLの一例である。
図15は、BPレスポンス生成のフローチャートの一例を示す図である。
ステップS1501において、プログラム開発装置101は、図27の項目タイプ2701の定義を取得し、項目タイプ2701=「A:アクション」の項目にビジネスプロセス(図27の加工式2703)の定義があるか否か判定する。ある場合はステップS1502に進み、ない場合は図15の処理を終了する。
ステップS1502において、プログラム開発装置101は、WSDLにビジネスプロセス定義を出力する(図16の1601)。具体的には、入出力定義コード名1803とアクションの項目コード名2702を用いて、operation name= 入出力定義コード名1803 +“_exec”+アクションの項目コード名2702 +message= 入出力定義コード名1803 +“_exec”+ アクションの項目コード名2702 +“Response” とする。これにより、登録処理「IO002_WSDL_execINSERT」を外部アプリケーションから利用した時の戻り値を公開できるようになる。
ステップS1503において、プログラム開発装置101は、図27の次入出力2704の定義を取得し、WSDLに次画面情報を出力する(図16の1602)。具体的には、nextIoの値が空の場合は、画面遷移を行わずに自画面に遷移することを表すものとする。これにより、登録処理「IO002_WSDL_execINSERT」を利用した後に遷移する入出力を公開できるようになる。
ステップS1504において、プログラム開発装置101は、図27の次入出力パラメータ2705の定義を取得し、次入出力パラメータ2705に設定されている変数の数だけ、WSDLに次入出力パラメータ定義を出力する(図16の1603)。これにより、登録処理「IO002_WSDL_execINSERT」を利用した結果、次の画面へどのような引数が渡されるかを公開できるようになる。
以上で、図15の説明を終了する。
以上の図9〜図15の処理によってWSDLファイルを生成することにより、プログラムへ引数として入力される項目を定義する入力定義情報やプログラムから処理結果として出力する項目を定義する出力定義情報を管理する必要があるWebアプリケーション開発ツールにおいて、それらの入出力定義情報を用いたWSDLファイルを生成することができないという問題を解決することができる。
図16は、BPレスポンスWSDL1600の一例を示す図である。図16は、入出力定義404にビジネスプロセスが定義されたアクション項目があり、かつ次入出力パラメータ2705が設定されている場合のBPレスポンスWSDLの一例である。
図21は、外部アプリケーションを実行している外部アプリケーションクライアントが、図5の処理により生成されたWebサービスを利用するフローチャートの一例を示す図である。図22は、Webサービスを利用する外部アプリケーションのINPUT画面2200の一例を示す図である。図25は、Webサービスを利用する外部アプリケーションのOUTPUT画面2500の一例を示す図である。
ステップS2101において、外部アプリケーションクライアントは、外部アプリケーションのユーザによる検索条件(図22の商品コード2201)の入力を受け付け、検索ボタン2202の押下による処理実行指示を受け付ける。
ステップS2102において、外部アプリケーションクライアントは、外部アプリケーションサーバにリクエストを送信する。
ステップS2103において、外部アプリケーションサーバは、リクエストを受信する。
ステップS2104において、外部アプリケーションサーバは、Webサービスサーバ(図1のアプリケーションサーバ105。つまり、図5の処理により生成されたWebサービスをデプロイしたサーバ。)にて公開されているgetData処理(図10の1001)を利用すべく、Webサービスサーバに図23のようなリクエストを送信する。具体的には、ステップS2101にて入力を受け付けた検索条件(商品コード2201)の値を用いたパラメータ2301を含むリクエストを送信する。
ステップS2105において、Webサービスサーバは、リクエストを受信する。
ステップS2106において、Webサービスサーバは、受信したリクエストに含まれるパラメータを用いて、図20のデータモデル定義2000で定義されるテーブルを検索する。具体的には、Webサービスのプログラムに含まれる、Webサービス用の入出力定義画面(入出力)1900の対象データモデル1902と対象条件1903を用いて、検索処理を行う。
なお、検索対象となるテーブルのカラムは、Webサービスのプログラムに含まれる、データモデル定義2000(図20)に定義されている項目コード2001であり、テーブル(商品マスタテーブル2600)には図26のようなデータが記憶されているものとする。ここでは、対象条件1903に従って、ITEM_KEY=“C101”という検索条件で商品マスタテーブル2600を検索することにより、検索結果としてレコード2603を取得したとする。
ステップS2107において、Webサービスサーバは、外部アプリケーションサーバへ図24のようなレスポンス2400を送信する。具体的には、レスポンス2400には、ステップS2106の検索処理にて取得した検索結果である、item_key2401とitem_value2402の値が含まれる。
ステップS2108において、外部アプリケーションサーバは、レスポンス2400を受信する。
ステップS2109において、外部アプリケーションサーバは、受信したレスポンスを用いて、Webサービスの利用結果を表示する画面情報(例えば、HTML等)を生成し、外部アプリケーションクライアントへ画面情報を送信する。具体的には、画面情報には、レスポンス2400に含まれる検索結果が含まれる。
ステップS2110において、外部アプリケーションクライアントは、画面情報を受信する。
ステップS2111において、外部アプリケーションクライアントは、画面情報を用いて、Webサービスの利用結果を表示する。具体的には、Webサービスの利用した結果、取得できたitem_value2402の値を外部アプリケーションのOUTPUT画面2500(図25)の商品名2501に表示する。
また、外部アプリケーションクライアントは、図25の登録ボタン2502の押下を受け付けることにより、外部アプリケーションサーバにリクエストを送信し、外部アプリケーションサーバはWebサービスサーバにて公開されているexecINSERT処理(図14の1401)を利用すべく、Webサービスサーバにリクエストを送信する。この処理は、図21のフローチャートと同様の流れである。
以上により、外部アプリケーションを実行している外部アプリケーションクライアントが、図5の処理により生成されたWebサービスを利用することができる。
以上で、図21の説明を終了する。
図29は、入出力定義作成のフローチャートの一例を示す図である。この処理は、図17や図19のような入出力定義404を作成する処理である。
ステップS2901において、プログラム開発装置101は、入出力定義作成の指示を受け付け、その指示のタイプを判定する(不図示)。新規に作成する場合はステップS2902に進み、既存の入出力定義をコピーして作成する場合はステップS2903に進む。
ステップS2902において、プログラム開発装置101は、入出力定義404を新規に作成する。ここでは、図17のような入出力タイプ=“IO”の入出力定義404が作成されたとする。
ステップS2903において、プログラム開発装置101は、コピー元となる既存の入出力定義404の指示を受け付ける。ここでは、Webアプリケーション用の入出力定義404が選択されたとする。Webアプリケーション用の入出力定義404とは、図17のように入出力タイプ=“IO”の入出力定義404である。
ステップS2904において、プログラム開発装置101は、コピー元として指示された既存の入出力定義404の内容をコピーして、新規の入出力定義404を作成する。すなわち、ステップS2904は、管理されているWebアプリケーション用入出力定義情報を用いて、Webサービスに用いられるプログラムを実行するための引数として入力される項目を定義するWebサービス用入力定義情報と、Webサービスに用いられるプログラムを実行した処理結果として出力する項目を定義するWebサービス用出力定義情報とを、Webサービスとして利用可能にするために生成する処理の一例を示すステップである。なお、この処理の詳細については、図39にて説明する。
ステップS2905において、プログラム開発装置101は、ステップS2903にて指示を受け付けたコピー元の入出力定義404と、ステップS2904にて作成したコピー先の入出力定義404とを関連付けて、外部メモリ211に記憶する。すなわち、ステップS2905は、生成された入出力定義情報と、当該入出力定義情報の生成の基となった入出力定義情報とを関連付けて管理する処理の一例を示すステップである。また、ステップS2905は、生成に用いられたWebアプリケーション用入力定義情報およびWebアプリケーション用出力定義情報と、生成されたWebサービス用入力定義情報およびWebサービス用出力定義情報とを、それぞれ対応付けて管理する処理の一例を示すステップである。
ステップS2906において、プログラム開発装置101は、S2902またはS2904にて作成した入出力定義404の設定について、ユーザによる入力を受け付ける。ここでは、Webサービス用の入出力定義406に設定が変更されたとする。Webサービス用の入出力定義406とは、図19のように入出力タイプ1901=“WEB SERVICE”の入出力定義404である。
ステップS2907において、プログラム開発装置101は、ユーザによる入出力定義404の記憶指示を受け付ける。
ステップS2908において、プログラム開発装置101は、入出力定義404の設定を外部メモリ211に記憶する。
以上で、図29の説明を終了する。
図30は、入出力定義編集のフローチャートの一例を示す図である。この処理は、図29にて作成した入出力定義404の設定を編集する処理である。
ステップS3001において、プログラム開発装置101は、入出力定義404の編集を受け付ける。具体的には、図17〜図19の各項目の値について、ユーザの編集を受け付ける。すなわち、ステップS3001は、入出力定義情報の設定の変更を受け付ける処理の一例を示すステップである。また、ステップS3001は、対応付けられたどちらか一方の入力定義情報もしくは/および出力定義情報の変更を受け付ける処理の一例を示すステップである。
ステップS3002において、プログラム開発装置101は、ステップS3001にて編集を受け付けた入出力定義404の実行形態(入出力タイプ)の値を判定する。入出力タイプ=“IO”(Webアプリケーション用の入出力定義404を意味する)の場合はステップS3003に進み、入出力タイプ=“WEB SERVICE”(Webサービス用の入出力定義406を意味する)の場合はステップS3004に進む。
ステップS3003において、プログラム開発装置101は、ステップS3001にて編集を受け付けた入出力定義404に、コピー元またはコピー先として入出力タイプ=“WEB SERVICE”の入出力定義404との関連付けがあるか否かを判定する。ある場合はステップS3005に進み、ない場合は図30の処理を終了する。
ステップS3004において、プログラム開発装置101は、ステップS3001にて編集を受け付けた入出力定義404に、コピー元またはコピー先として入出力タイプ=“IO”の入出力定義404が関連付けられているかを判定する。関連付けがある場合はステップS3006に進み、関連付けがない場合は図30の処理を終了する。
ステップS3005において、プログラム開発装置101は、確認メッセージ3111(図31)または確認メッセージ3112(図31)を表示し、ステップS3003にて関連付けられていると判定されたWebサービス用の入出力定義406を更新するか否かの指示を受け付ける。「OK」の場合はステップS3007に進み、「キャンセル」の場合は図30の処理を終了する。
ステップS3006において、プログラム開発装置101は、確認メッセージ3121(図31)または確認メッセージ3122(図31)を表示し、ステップS3004にて関連付けられていると判定されたWebアプリケーション用の入出力定義404を更新するか否かの指示を受け付ける。「OK」の場合はステップS3008に進み、「キャンセル」の場合は図30の処理を終了する。
すなわち、ステップS3005およびステップS3006は、設定の変更を受け付けた入出力定義情報が他の入出力定義情報と対応づけて管理されている場合、ユーザに通知する処理の一例を示すステップである。また、ステップS3005およびステップS3006は、変更を受け付けた場合、対応付けられた入力定義情報もしくは/および出力定義情報が存在することをユーザに通知する処理の一例を示すステップである。
ステップS3007において、プログラム開発装置101は、ステップS3003にて関連付けられていると判定されたWebサービス用の入出力定義406の設定を、ステップS3001にて受け付けた編集内容で更新し、外部メモリ211に記憶する。すなわち、ステップS3007は、受け付けた変更の内容に従って、対応付けられたもう一方の入力定義情報もしくは/および出力定義情報を変更する処理の一例を示すステップである。なお、この処理については、図42を用いて、詳細を説明する。
図42は、第1の実施形態に係るWebサービス入出力定義更新のフローチャートの一例を示す図である。
ステップS4201において、プログラム開発装置101は、外部メモリ211から、ステップS3001にて編集したWebアプリケーション用の入出力定義404に関連付けられているWebサービス用の入出力定義406からWebサービスのソースコードを生成したか否かを示すフラグ(図33のS3303)、およびステップS3007にて更新するWebサービス用の入出力定義406を用いてWebサービス用の入出力定義ソースコードを生成したか否かを示すフラグ(図6のS605)を取得し、少なくともどちらかがON(=生成されたことがある)の場合はステップS4202に進み、どちらもOFF(=生成されたことがない)の場合は図42の処理を終了する。
すなわち、ステップS4201は、受け付けた変更が、Webアプリケーション用入力定義情報またはWebアプリケーション用出力定義情報の変更である場合であって、当該入力定義情報または当該出力定義情報に対応付けられたWebサービス用入力定義情報またはWebサービス用出力定義情報を用いて、Webサービスに用いられるプログラムを生成されたことがある場合、当該Webアプリケーション用入力定義情報もしくは/および当該Webアプリケーション用出力定義情報の変更を、当該Webサービス用入力定義情報もしくは/および当該Webサービス用出力定義情報に反映させない処理の一例を示すステップである。
なお、本実施形態においては、Webサービス用の入出力定義ソースコードを生成したか否かを示すフラグを取得して判定するとしたが、これに限定するものではなく、例えばWebアプリケーション用の入出力定義404またはWebサービス用の入出力定義406を用いてWebサービスが生成されたか否か、または生成されたWebサービスがユーザや他システムから利用されたか否かを示すフラグ等を取得して判定するとしてもよい。
ステップS4202において、プログラム開発装置101は、ステップS3001の編集操作によってWebアプリケーション用の入出力定義404の変更された項目の数だけ、ステップS4203〜ステップS4205の処理を繰り返す。
ステップS4203において、プログラム開発装置101は、Webアプリケーション用の入出力定義404から、ステップS3001の編集操作によって変更された項目およびプロパティを取得する。
ステップS4204において、プログラム開発装置101は、取得したWebアプリケーション用の入出力定義404の変更された項目およびプロパティがWebサービスに不要な定義か否かを判定し、不要でない(=必要)の場合はステップS4205に進み、不要の場合は図42の処理を終了する。すなわち、ステップS4204は、受け付けた変更の内容が、Webアプリケーション用出力定義情報のうち、Webサービスの実行に不要な情報の変更であった場合、Webサービス用出力定義情報に当該変更を反映させない処理の一例を示すステップである。
具体的には、Webアプリケーション画面3700の入出力定義「DATE_INPUT」から、変更された項目およびプロパティを取得し、その項目およびプロパティがWebサービスに不要な定義か否かを判定する。なお、fieldTypeプロパティ3822は、画面にカレンダー部品の表示を意味するプロパティであるため、画面を表示することがないWebサービスにとって、このプロパティは不要であると判定する。
なお、ここでは、プロパティの値に基づいてWebサービスへの要・不要を判定したが、これに限定するものではなく、項目の「項目タイプ」や「項目コード」等に基づいて判定してもよい。また、Webサービスへの要・不要の判定基準として、テーブルやファイルに項目やプロパティのリストを登録しておき、そのリストと照合することでWebサービスへの要・不要を判定してもよい。
ステップS4205において、プログラム開発装置101は、ステップS3001の編集操作によって変更されたWebアプリケーション用の入出力定義404の項目およびプロパティをWebサービスの入出力定義406に反映する。
これにより、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成した場合において、Webアプリケーションの入出力定義情報の変更内容をWebサービスの入出力定義情報に反映できるため、Webアプリケーションの定義情報を用いて、Webサービス用の定義情報を生成した場合、定義情報の管理を容易にすることができる。
図30の説明に戻る。
ステップS3008において、プログラム開発装置101は、ステップS3004にて関連付けられていると判定されたWebアプリケーション用の入出力定義404の設定を、ステップS3001にて受け付けた編集内容で更新し、外部メモリ211に記憶する。すなわち、ステップS3008は、受け付けた変更の内容に従って、対応付けられたもう一方の入力定義情報もしくは/および出力定義情報を変更する処理の一例を示すステップである。
以上により、既存の入出力定義404をコピーして入出力定義404を作成した場合、その一方の編集内容をもう一方に反映させることができる。
以上により、Webアプリケーション開発ツールにおいて、Webサービス定義情報を容易に生成する仕組みを提供することができる。
〔第2の実施形態〕
第1の実施形態は、入出力定義情報の実行形態に従って、Webアプリケーションの入出力定義情報またはWebサービスの入出力定義情報を生成することによって、Webアプリケーション開発ツールにおいて、Webサービス定義情報を容易に生成する仕組みであり、第2の実施形態は、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成することによって、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成する仕組みである。
図33〜図34を用いて、第2の実施形態を説明する。なお、第2の実施形態では、第1の実施形態における図6のフローチャートを図33に置き換え、第1の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
図33は、第2の実施形態に係るソースコード生成のフローチャートの一例を示す図である。図34は、第2の実施形態に係るWebアプリケーション用の入出力定義画面(入出力)3400の一例を示す図である。
ステップS3301において、プログラム開発装置101は、この入出力定義404を用いて、Webアプリケーション用の入出力定義ソースコードを生成したことを示すフラグをONにし、外部メモリ211に記憶する。なお、図33は第2の実施形態のフローチャートであるが、ステップS3301のようにWebアプリケーション用の入出力定義ソースコードを生成したことを示すフラグをONにする処理は、他の実施形態においても実行してもよい。
ステップS3302において、プログラム開発装置101は、この入出力定義404を用いて、Webサービス用の入出力定義ソースコードを生成するか否かを判定する。すなわち、ステップS3302は、入力定義情報と出力定義情報とを用いて、Webサービスに用いられるプログラムを生成するか否かを判定する処理の一例を示すステップである。
また、ステップS3302は、Webサービスに用いられるプログラムを生成すると判定した場合は、Webアプリケーションに用いられるプログラムとWebサービスに用いられるプログラムとを生成し、Webサービスに用いられるプログラムを生成しないと判定した場合は、Webアプリケーションに用いられるプログラムを生成する処理の一例を示すステップである。
生成する場合はステップS604に進み、生成しない場合は図33の処理を終了する。なお、この判定は、図34のWebサービスを生成するチェックボックス3402がONであれば、生成すると判定する。
また、チェックボックス3402は、入出力タイプ3401=“IO”(Webアプリケーション用の入出力定義404)の場合のみ表示するようにして、Webアプリケーション用の入出力定義404を用いて、Webサービスの入出力定義情報を生成できるようにしてもよい。また、入出力タイプ3401=“IO”以外の場合であっても、入出力定義404を用いてWebサービスの入出力定義情報を生成できるものがあれば、チェックボックスを表示するようにしてもよい。
なお、本実施形態においては、チェックボックス3402=ONの場合、Webサービス用の入出力定義406を生成することなく、入出力定義404を用いてWebサービス用の入出力定義ソースコードを生成するとしたが、これに限定するものではなく、入出力定義404をコピーしてWebサービス用の入出力定義406を生成し、Webサービス用の入出力定義ソースコードを生成するとしてもよい。これにより、図29のステップS2903〜ステップS2906のように、コピー元となる既存の入出力定義404の指示を受け付け、入出力タイプ=“WEB SERVICE”に変更するといった手間を省くことができる。
ステップS3303において、プログラム開発装置101は、この入出力定義404を用いて、Webサービス用の入出力定義ソースコードを生成したことを示すフラグをONにし、外部メモリ211に記憶する。なお、図33は第2の実施形態のフローチャートであるが、ステップS3303のようにWebサービス用の入出力定義ソースコードを生成したことを示すフラグをONにする処理は、他の実施形態においても実行してもよい。
以上で、図33の説明を終了する。
以上により、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成する仕組みを提供することができる。
〔第3の実施形態〕
第2の実施形態は、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成することによって、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成する仕組みであり、第3の実施形態は、入出力定義情報から、Webアプリケーションの入出力定義情報またはWebサービスの入出力定義情報を生成することによって、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成する仕組みである。
図35〜図36を用いて、第3の実施形態を説明する。なお、第3の実施形態では、第2の実施形態における図33のフローチャートを図35に置き換え、第2の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
図35は、第3の実施形態に係るソースコード生成のフローチャートの一例を示す図である。図36は、第3の実施形態に係るWebアプリケーション用の入出力定義画面(入出力)3600の一例を示す図である。
ステップS3501において、プログラム開発装置101は、既存の入出力定義404に対するユーザの指示を受け付ける。具体的には、図36のWebアプリケーション用の入出力定義名3601の部分で右クリック等の操作を受け付ける。
ステップS3502において、プログラム開発装置101は、コンテキストメニュー3602を表示し、ユーザによる選択を受け付けて判定する。
「Webアプリケーションソースコードを生成する」3603が選択された場合はステップS603に進み、「Webサービスソースコードを生成する」3604が選択された場合はステップS604に進む。
以上で、図36の説明を終了する。
以上により、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成する仕組みを提供することができる。
第1の実施形態の説明に戻る。
図37〜図41は、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成する場合において、Webアプリケーションの定義情報を用いて、Webサービス用の定義情報を容易に生成する仕組みである。
図37は、第1の実施形態に係るWebアプリケーション画面3700の一例を示す図である。
Webアプリケーション画面3700は、選択ボタンの押下を受け付けるとカレンダーを表示し、カレンダーの選択された日付をテキストボックスに表示するWebアプリケーションである。
図38は、第1の実施形態に係るWebアプリケーション用の入出力定義画面の一例を示す図である。
Webアプリケーション用の入出力定義画面(入出力)3810は、Webアプリケーション画面3700の入出力定義画面である。入出力タイプ3811の値が“IO”であるため、この入出力定義はWebアプリケーション用の入出力定義404であることがわかる。
上述の図29のステップS2901〜ステップS2904のように、このWebアプリケーション用の入出力定義404をコピーし、入出力タイプ=“WEB SERVICE”とすることで、Webアプリケーション用の入出力定義404の内容をコピーしたWebサービス用の入出力定義406を作成することができる。
また、「コピーしてWebサービス入出力定義を作成するボタン3812」(図38)の押下を受け付けることによっても、同様にWebアプリケーション用の入出力定義404の内容をコピーしたWebサービス用の入出力定義406を作成することができる。
Webアプリケーション用の入出力定義画面(項目一覧)3820は、このWebアプリケーション用の入出力定義404に定義されている項目の一覧を表示する画面である。この画面から、このWebアプリケーション用の入出力定義404には、カレンダー3821が「入出力」項目として定義されていることがわかる。また、カレンダー3821には、fieldTypeプロパティ3822に“CALENDAR”という値が設定されていることがわかる。
このカレンダー3821およびfieldTypeプロパティ3822の定義から、Webアプリケーションのプログラムが生成され、Webアプリケーション画面3700が表示される。
図39は、第1の実施形態に係るコピー元入出力定義内容コピー&作成のフローチャートの一例を示す図である。
図39は、既存の入出力定義をコピーして新規の入出力定義の作成する指示(図29のステップS2901における「既存コピー」の指示、または「コピーしてWebサービス入出力定義を作成するボタン3812」(図38)の押下)を受け付けた場合に処理される、ステップS2904の処理を詳細に説明するフローチャートである。図39の各処理について説明する。
ステップS3901において、プログラム開発装置101は、コピー元入出力定義の項目の数だけ、ステップS3902〜ステップS3908の処理を繰り返す。
ステップS3902において、プログラム開発装置101は、Webアプリケーション用の入出力定義404から、コピー元入出力定義の項目およびプロパティを取得する。
ステップS3903において、プログラム開発装置101は、取得したコピー元入出力定義の項目およびプロパティがWebサービスに不要な定義か否かを判定し、不要でない(=必要)の場合はステップS3904に進み、不要の場合はステップS3905に進む。すなわち、ステップS3903は、管理されているWebアプリケーション用入力定義情報とWebアプリケーション用出力定義情報のうちWebサービスの実行に必要な情報を用いて、Webサービス用入力定義情報とWebサービス用出力定義情報を生成する処理の一例を示すステップである。
具体的には、Webアプリケーション画面3700の入出力定義「DATE_INPUT」から、項目(カレンダー3821)およびプロパティ(fieldTypeプロパティ3822)を取得し、項目およびプロパティがWebサービスに不要な定義か否かを判定する。例えば、fieldTypeプロパティ3822は、画面にカレンダー部品の表示することを意味するプロパティであるため、画面を表示することがないWebサービスにとって、このプロパティは不要であると判定する。
なお、本実施形態においては、画面表示上の装飾(例えば、ラジオボタンやセレクトボックス等、どのような画面部品を用いて表示するか等)に係るプロパティであれば、Webサービスにとって不要なプロパティであると判定したが、画面表示上の装飾に限定するものではなく、例えば、Webアプリケーションにのみ必要な定義(例えば、セッションID、リクエストID、ブラウザ種別、遷移元画面識別情報等)、Webアプリケーション開発ツールにおいて便宜的に必要な定義等をWebサービスにとって不要なプロパティであると判定してもよい。
なお、本実施形態においては、プロパティの値に基づいてWebサービスへの要・不要を判定したが、これに限定するものではなく、項目の「項目タイプ」や「項目コード」等に基づいて判定してもよい。また、Webサービスへの要・不要の判定基準として、テーブルやファイルに項目やプロパティのリストを登録しておき、そのリストと照合することでWebサービスへの要・不要を判定してもよい。
ステップS3904において、プログラム開発装置101は、コピー元入出力定義の項目およびプロパティをWebサービスの入出力定義としてそのままコピーする。
ステップS3905において、プログラム開発装置101は、外部メモリ211から「Webアプリ入出力定義からWebサービス入出力定義を作成」設定画面4000の設定値を取得し判定する。ここで、図40について説明しておく。
図40は、第1の実施形態に係る「Webアプリ入出力定義からWebサービス入出力定義を作成」設定画面4000の一例を示す図である。
つまり、Webアプリ入出力定義からWebサービス入出力定義を作成する場合、Webアプリ入出力定義のうち、Webサービスに不要な定義を、そのままコピーする(4001)/無効化してコピーする(4002)/削除する(4003)の設定を受け付ける画面である。
ステップS3905では、設定画面4000の設定値が「そのままコピーする(4001)」の場合はステップS3904に進み、「無効化してコピーする(4002)」の場合はステップS3906に進み、「削除する(4003)」の場合はステップS3907に進む。
ステップS3906において、プログラム開発装置101は、Webサービスの入出力定義として不要な定義を無効化してコピーする。すなわち、ステップS3906は、管理されているWebアプリケーション用入力定義情報とWebアプリケーション用出力定義情報のうち、Webサービスの実行に不要な情報を無効な状態にして、Webサービス用入力定義情報とWebサービス用出力定義情報とを生成する処理の一例を示すステップである。
具体的には、図41の4111のように、fieldTypeプロパティおよびその値をグレーアウトして表示する。これにより。Webアプリケーションの定義情報を無効化した上でWebサービス用の定義情報を容易に生成することができるため、生成時には不要な項目としたいが再利用する可能性がある、再度Webアプリケーションの定義情報に戻した時に復活させたい等のケースに応じて、Webサービス用の定義情報を柔軟に生成することができる。
ステップS3907において、プログラム開発装置101は、Webサービスの入出力定義として不要な定義を削除してコピーする。すなわち、ステップS3907は、管理されているWebアプリケーション用入力定義情報とWebアプリケーション用出力定義情報のうち、Webサービスの実行に不要な情報は用いずに、Webサービス用入力定義情報とWebサービス用出力定義情報とを生成する処理の一例を示すステップである。
具体的には、図41の4112のように、fieldTypeプロパティおよびその値を削除し非表示にする。これにより。Webアプリケーションの定義情報を削除した上でWebサービス用の定義情報を生成することができるため、生成後に不要な項目を削除する必要がなく、Webサービス用の定義情報の生成が容易になる。
なお、図41は、Webアプリ用の入出力定義404をコピーして生成したWebサービス用の入出力定義406を表示する画面であり、定義情報を表示するだけでなく、開発者によって定義情報の変更を受け付け、生成したWebサービス用の入出力定義406を編集することができる(図29のステップS2906)。すなわち、ステップS2906は、生成されたWebサービス用入力定義情報もしくは/およびWebサービス用出力定義情報を変更できるように表示する処理の一例を示すステップである。
以上により、Webアプリケーションの入出力定義情報を用いて、Webサービスの入出力定義情報を生成する場合において、Webアプリケーションの定義情報を用いて、Webサービス用の定義情報を容易に生成することができる。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。