以下、本発明の実施の形態を、図面を参照して詳細に説明するが、本発明の特徴の一例を表している箇所は、図33~図35、図36、図37である。
〔第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は、以下の機能部を備える。
入出力定義管理部301は、プログラムへ引数として入力される項目を定義する入力定義情報と、プログラムから処理結果として出力する項目を定義する出力定義情報とを入出力定義情報として管理する機能部である。
入出力定義管理部301は、Webアプリケーションの画面を介して入力される項目を定義する入力定義情報と、画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する機能部である。
実行形態設定部302は、プログラムが実行される形態を設定する機能部である。
選択受付部313は、プログラムをWebサービスとして用いるかの選択を受け付ける機能部である。
プログラム生成制御部303は、実行形態設定部302により設定された実行形態に従って、入出力定義管理部301により管理されている入出力定義情報を用いて、Webアプリケーションとして用いられるプログラムを生成するかWebサービスとして用いられるプログラムを生成するかを制御する機能部である。
プログラム生成制御部303は、入出力定義管理部301により管理されている入出力定義情報を用いて、選択受付部313により受け付けた選択に従って、Webアプリケーションとして用いられるプログラム及び当該Webアプリケーションの処理結果を表示するための画面を出力するプログラムを生成するか又はWebサービスの利用に必要なインタフェースの定義情報及び当該Webサービスとして用いられるプログラムを生成するかを制御する機能部である。
設定受付部304は、入出力定義管理部301により管理されている入出力定義情報の設定を受け付ける機能部である。
設定受付部304により設定を受け付けた入力定義情報は、Webサービスを利用するユーザによって画面から入力される値を表す文字列を含む。
設定受付部304により設定を受け付けた出力定義情報は、Webサービスを利用した結果、取得される値を表す文字列を含む。
記憶部305は、Webアプリケーションに用いられるプログラムおよびWebサービスに用いられるプログラムを生成するルールを記憶する機能部である。
記憶部305は、Webアプリケーションとして用いられるプログラム及びWebサービスとして用いられるプログラムを生成するルールを記憶する機能部である。
プログラム生成制御部303は、実行形態設定部302により設定された実行形態がWebサービスである場合に、設定受付部304により設定を受け付けた入力定義情報に含まれるWebサービスを利用するユーザによって画面から入力される値を表す文字列、及び設定受付部304により設定を受け付けた出力定義情報に含まれるWebサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、記憶部305に記憶されているルールを用いて、Webサービスの利用に必要なインタフェースとなるメッセージを生成し、当該メッセージを含むXMLファイルを生成する機能部である。
プログラム生成制御部303は、選択受付部313により受け付けた選択に従って、設定受付部304により設定を受け付けた入力定義情報に含まれるWebサービスを利用するユーザによって画面から入力される値を表す文字列、及び設定受付部304により設定を受け付けた出力定義情報に含まれるWebサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、記憶部305に記憶されているルールを用いて、Webサービスの利用に必要なインタフェースの定義情報を生成する機能部である。
プログラム生成制御部303は、入出力定義管理部301により管理されている入力定義情報と出力定義情報のうち、Webサービスに必要な情報を用いて、Webサービスとして用いられるプログラムを生成する機能部である。
プログラム生成制御部303は、入出力定義管理部301により管理されている入力定義情報と出力定義情報のうち、Webサービスに必要な情報を用いて、Webサービスの利用に必要なインタフェースの定義情報を生成する機能部である。
入出力定義生成部306は、入出力定義管理部301により管理されている入出力定義情報に基づき、新たな入出力定義情報を生成する機能部である。
対応付管理部307は、入出力定義生成部306により生成された入出力定義情報と、当該入出力定義情報の生成の基となった入出力定義情報とを関連付けて管理する機能部である。
設定変更受付部308は、入出力定義管理部301により管理されている入出力定義情報の設定の変更を受け付ける機能部である。、
通知部309は、設定変更受付部308により設定の変更を受け付けた入出力定義情報が対応付管理部307により他の入出力定義情報と対応付けて管理されている場合、ユーザに通知する機能部である。
指示受付部310は、Webサービスに用いられるプログラムの生成指示を受け付ける機能部である。、
指示受付部310は、Webサービスとして用いられるプログラムの生成指示を受け付ける機能部である。、
プログラム生成部311は、指示受付部310により受け付けた生成指示に従って、入出力定義管理部301により管理されている入力定義情報と出力定義情報とを用いて、Webサービスとして用いられるプログラムを生成する機能部である。
プログラム生成部311は、指示受付部310により受け付けた生成指示に従って、入出力定義管理部301により管理されている入力定義情報と出力定義情報とを用いて、Webサービスの利用に必要なインタフェースの定義情報及び当該Webサービスとして用いられるプログラムを生成する機能部である。
判定部312は、入出力定義管理部301により管理されている入力定義情報と出力定義情報とを用いて、Webサービスとして用いられるプログラムを生成するか否かを判定する機能部である。
プログラム生成部311は、判定部312により、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アプリケーションの画面として出力する出力項目を定義した情報である、と言い換えることができる。
よって、リポジトリ定義部400は、生成されたプログラムの実行によって表示されるWebアプリケーションの画面を介して入力される項目を定義する入力定義情報と、画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する手段の一例である。
そのため、Webアプリケーションの画面における入出力定義情報を、Webサービスとして用いられるプログラムにおける入出力定義情報として利用することができる。
これにより、Webアプリケーションの開発フェーズにおいてよくある、画面項目の追加・変更・削除は、Webアプリケーション開発ツールのレイアウトエディタ等を介して、Webアプリケーション画面の入出力項目を直感的に追加・変更・削除することで、Webアプリケーションとして用いられるプログラムだけでなく、Webサービスとして用いられるプログラムにも反映されるため、Webサービスとして用いられるプログラムを容易に生成することができる。
また、Webアプリケーションの開発においては、Webアプリケーション画面を介してエンドユーザによって入力された値のクライアント端末におけるバリデーションチェック処理(例:JavaScript(登録商標))、その入力値をサーバが受信した際のバリデーションチェック処理(例:サーバサイドJava(登録商標))のように、2回チェック処理を行わなくてはならないケースが多い。
次に、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~ステップS604を繰り返す。
ステップS602において、プログラム開発装置101は、取得した入出力定義404又はWebサービス用の入出力定義406の実行形態(図17の入出力タイプ1701の値、又は図19の入出力タイプ1901の値)を判定し、入出力タイプ1701のように値が“IO”の場合はWebアプリケーション用の入出力定義404であると捉えてステップS603に進み、入出力タイプ1901のように値が“WEB SERVICE”の場合はWebサービス用の入出力定義406であると捉えてステップS604に進む。
すなわち、入出力タイプ1701は、プログラムが実行される形態を設定する手段の一例である。また、プログラムをWebサービスとして用いるかの選択を受け付ける手段の一例である。
また、ステップS602は、設定された実行形態に従って、入出力定義情報を用いて、Webアプリケーションに用いられるプログラムを生成するかWebサービスに用いられるプログラムを生成するかを制御する処理の一例を示すステップである。
また、ステップS602は、入出力定義情報を用いて、受け付けた選択に従って、Webアプリケーションとして用いられるプログラム及び当該Webアプリケーションの処理結果を表示するための画面を出力するプログラムを生成するか又は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にて詳細を説明する。
以上により、設定した入出力定義情報を用いて、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サービスとして用いられるプログラムを生成する処理の一例を示すステップである。また、ステップ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ファイルを生成する処理の一例を示すステップである。
また、ステップS702及びステップS703は、受け付けた選択に従って、設定を受け付けた入力定義情報に含まれるWebサービスを利用するユーザによって画面から入力される値を表す文字列及び設定を受け付けた出力定義情報に含まれるWebサービスを利用した結果、取得される値を表す文字列のうち少なくとも一方と、記憶されているルールを用いて、Webサービスの利用に必要なインタフェースの定義情報を生成する処理の一例を示すステップである。
以上で、図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ファイルを生成することができないという問題を解決することができる。
つまり、Webアプリケーションの入出力定義情報を用いて、Webサービス定義情報を容易に生成することができるようになる。
図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は、入出力定義情報に基づき、新たな入出力定義情報を生成する処理の一例を示すステップである。
ステップS2905において、プログラム開発装置101は、ステップS2903にて指示を受け付けたコピー元の入出力定義404と、ステップS2904にて作成したコピー先の入出力定義404とを関連付けて、外部メモリ211に記憶する。すなわち、ステップS2905は、生成された入出力定義情報と、当該入出力定義情報の生成の基となった入出力定義情報とを関連付けて管理する処理の一例を示すステップである。
ステップ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は、入出力定義情報の設定の変更を受け付ける処理の一例を示すステップである。
ステップS3002において、プログラム開発装置101は、ステップS3001にて編集を受け付けた入出力定義404の実行形態(入出力タイプ)の値を判定する。入出力タイプ=“IO”(Webアプリケーション用の入出力定義404を意味する)の場合はステップS3003に進み、入出力タイプ=“WEB SERVICE”(Webサービス用の入出力定義406を意味する)の場合はステップS3004に進む。
ステップS3003において、プログラム開発装置101は、ステップS3001にて編集を受け付けた入出力定義404に、コピー元又はコピー先として入出力タイプ=“WEB SERVICE”の入出力定義406との関連付けがあるか否かを判定する。ある場合はステップS3005に進み、ない場合は図30の処理を終了する。
ステップS3004において、プログラム開発装置101は、ステップS3001にて編集を受け付けた入出力定義406に、コピー元又はコピー先として入出力タイプ=“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は、設定の変更を受け付けた入出力定義情報が他の入出力定義情報と対応づけて管理されている場合、ユーザに通知する処理の一例を示すステップである。
ステップS3007において、プログラム開発装置101は、ステップS3003にて関連付けられていると判定されたWebサービス用の入出力定義406の設定を、ステップS3001にて受け付けた編集内容で更新し、外部メモリ211に記憶する。
ステップS3008において、プログラム開発装置101は、ステップS3004にて関連付けられていると判定されたWebアプリケーション用の入出力定義404の設定を、ステップS3001にて受け付けた編集内容で更新し、外部メモリ211に記憶する。
以上により、Webアプリケーション用の入出力定義404をコピーしてWebサービス用の入出力定義406を作成した場合、その一方の編集内容をもう一方に反映させることができる。
以上により、Webアプリケーション開発ツールにおいて、Webサービスとして用いられるプログラムを容易に生成する仕組みを提供することができる。
また、Webアプリケーション開発ツールに慣れ親しんでいた開発者にとって、これまでのWebアプリケーション開発と同様にレイアウトエディタ等を介してWebアプリケーション画面の入出力項目を直感的に追加・変更・削除した後、Webアプリケーション用の入出力定義404をコピーしてWebサービス用の入出力定義406を作成することで、Webサービスとして用いられるプログラムを容易に生成することができるため、Webサービスの開発又はWSDLの記載方法に不慣れな開発者にとってはメリットが大きい。
〔第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に記憶する。
ステップ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の説明を終了する。
以上により、Webアプリケーションの入出力定義情報を用いて、Webサービス定義情報を生成する仕組みを提供することができる。つまり、Webアプリケーションの画面の入出力定義情報を用いて、Webサービス定義情報を生成することができないという問題を解決することができる。つまり、Webアプリケーションの画面の入出力定義情報を用いて、Webサービス定義情報又はWebサービスとして用いられるプログラムを生成することにより、Webアプリケーションを容易にWebサービス化したいという課題を解決することができる。
また、Webアプリケーションの開発フェーズにおいてよくある、画面項目の追加・変更・削除は、Webアプリケーション開発ツールのレイアウトエディタ等を介して、Webアプリケーション画面の入出力項目を直感的に追加・変更・削除することで、Webアプリケーションとして用いられるプログラムだけでなく、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サービス定義情報を容易に生成する仕組みを提供することができる。つまり、Webアプリケーションの画面の入出力定義情報を用いてWebサービス定義情報又はWebサービスとして用いられるプログラムを生成することにより、Webアプリケーションを容易にWebサービス化したいという課題を解決することができる。
〔第4の実施形態〕
第4の実施形態は、1つの入出力定義情報を、Webアプリケーション用とWebサービス用のように複数の目的のために用いることによって、Webアプリケーションの入出力定義情報を用いて、Webサービス定義情報を生成する仕組みである。
図37~図38を用いて、第4の実施形態を説明する。なお、第4の実施形態では、第2の実施形態における図33のフローチャートを図37に置き換え、第1の実施形態及び第2の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
図37は、第4の実施形態に係るソースコード生成のフローチャートの一例を示す図である。図38は、第4の実施形態に係るWebアプリケーション用の入出力定義画面(項目一覧)3800の一例を示す図である。第4の実施形態では、図38の3801のように、Webサービスに利用する項目にはチェックを入れ、Webサービスに利用せずWebアプリケーションにのみ利用する項目にはチェックを入れないようにする。
ステップS3701において、プログラム開発装置101は、ステップS601にて取得した入出力定義404に、Webサービスとして利用する項目があるか否かを判定する。Webサービスとして利用する項目がある場合は、ステップS604(図37)に進み、ステップS701(図7)にてWebサービスに利用する項目(図38の3801)を特定し、ステップS702(図7)にてその特定した項目を用いてWebサービスのインターフェースコードを生成する。Webサービスとして利用する項目がない場合は、ステップS601(図37)に進み、次の入出力定義404を取得する。
すなわち、ステップS3701は、入出力定義情報のうち、Webサービスとして用いられるプログラムの生成時に用いる入出力定義であると判定した入出力定義情報を用いて、Webサービスとして用いられるプログラムを生成する処理の一例を示すステップである。
以上で、図37、図38の説明を終了する。
以上により、Webアプリケーションの入出力定義情報を用いて、Webサービス定義情報を容易に生成する仕組みを提供することができる。つまり、Webアプリケーションの画面の入出力定義情報を用いてWebサービス定義情報又はWebサービスとして用いられるプログラムを生成することにより、Webアプリケーションを容易にWebサービス化したいという課題を解決することができる。
また、1つの入出力定義情報を、Webアプリケーション用とWebサービス用のように複数の目的のために用いることができるようになるため、Webアプリケーション用の入出力定義情報に項目を追加した場合、対応するWebサービス用の入出力定義情報にも同じ項目を追加しなければならない、といったWebアプリケーションの定義情報とWebサービスの定義情報の管理の煩雑さを解消することができる。よって、Webサービスの開発及び管理が大変という問題を解決することができる。
〔第5の実施形態〕
第1の実施形態は、入出力定義情報の実行形態に従って、Webアプリケーションの入出力定義情報又はWebサービス定義情報を生成することによって、Webアプリケーション開発ツールにおいて、Webサービス定義情報を容易に生成する仕組みであり、第5の実施形態は、複数の入出力定義情報をまとめたリポジトリ(以下、プロジェクトと記す)の実行形態に従って、Webアプリケーションとして用いられるプログラムを生成するか、Webサービスとして用いられるプログラムを生成するかを制御することにより、Webサービスとして用いられるプログラムを容易に生成する仕組みである。
図39~図40を用いて、第5の実施形態を説明する。なお、第5の実施形態では、第2の実施形態における図33のフローチャートを図39に置き換え、第1の実施形態及び第2の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
図39は、第5の実施形態に係るソースコード生成のフローチャートの一例を示す図である。図40は、第5の実施形態に係るソースコード生成時の確認メッセージの一例を示す図である。
ステップS3901において、プログラム開発装置101は、ソースコード生成の指示を受け付ける。具体的には、WebアプリケーションとWebサービスのどちらのソースコードを生成するかの選択(図40の4001)及びソースコード生成ボタン(図40の4002)の押下を受け付け、「Webアプリケーション」が選択された場合はステップS3902に進み、「Webサービス」が選択された場合はステップS3903に進む。
ステップS3902において、プログラム開発装置101は、RAM202から入出力定義404を取得し、取得した入出力定義404について、それぞれステップS603及びステップS3301を繰り返すことにより、入出力定義404を用いてWebアプリケーション用入出力定義のソースコードを生成する。
ステップS3903において、プログラム開発装置101は、RAM202から入出力定義404を取得し、取得した入出力定義404について、それぞれステップS604及びステップS3303を繰り返すことにより、Webサービス用入出力定義のソースコードを生成する。
なお、本実施形態においては、図40の4001でWebアプリケーションとWebサービスのどちらのソースコードを生成するかの選択と受け付けるとしたが、これに限定するものではなく、例えば、WebアプリケーションとWebサービスの両方のソースコードを生成するという選択肢があってもよい。この場合、ステップS3902及びステップS3903の両方の処理を実行することより、WebアプリケーションとWebサービスの両方のソースコードを生成する。
以上で、図39、図40の説明を終了する。
以上により、プロジェクトの実行形態に従って、Webアプリケーションとして用いられるプログラムを生成するか、Webサービスとして用いられるプログラムを生成するかを制御することにより、Webサービスとして用いられるプログラムを容易に生成することができる。
つまり、第1の実施形態のような個々の入出力定義情報の実行形態に従って、Webアプリケーションの入出力定義情報又はWebサービス定義情報を生成する方法と比べて、第5の実施形態は、プロジェクトの実行形態に従って、プロジェクト全体の入出力定義情報を用いてWebアプリケーションの入出力定義情報又はWebサービス定義情報を一括して生成することが可能であるため、入出力定義情報の管理の煩雑さを解消することができる。
よって、入出力定義情報には複数の定義項目が存在するため、Webサービスの開発者がそれらを誤りなく設定しなければならないため設定ミスが生じやすく、Webアプリケーションとの整合性も取りづらいため、Webサービスの開発及び管理が大変という問題を解決することができる。
〔第6の実施形態〕
第1の実施形態(特に、図30及び図31)は、Webアプリケーション用の入出力定義404をコピーしてWebサービス用の入出力定義406を作成した場合、その一方の編集内容をもう一方に反映させることによって、Webアプリケーション開発ツールにおいて、Webサービス定義情報を容易に生成する仕組みであり、第6の実施形態は、Webアプリケーション用の入出力定義404又はWebサービス用の入出力定義406を編集した場合に、同じプロジェクト内の他の入出力定義にその編集内容を反映させることにより、Webサービスとして用いられるプログラムを容易に生成する仕組みである。
図41~図42を用いて、第6の実施形態を説明する。
図41は、第6の実施形態に係る入出力定義編集のフローチャートの一例を示す図である。図42は、第6の実施形態に係る入出力定義編集時の確認メッセージの一例を示す図である。
ステップS4101において、プログラム開発装置101は、入出力定義404の編集を受け付ける。具体的には、図38の各項目の値について、ユーザの編集を受け付ける。すなわち、ステップS4101は、入出力定義情報の設定の変更を受け付ける処理の一例を示すステップである。
ステップS4102において、プログラム開発装置101は、ステップS4101にて受け付けた編集内容が「Webサービスとして利用する」チェックボックス3801の値変更か否かを判定し、OFFからONに変更された場合はステップS4103に進み、ONからOFFに変更された場合はステップS4104に進み、変更されなかった場合は図41の入出力定義編集を終了する。
ステップS4103において、プログラム開発装置101は、ステップS4102にて「Webサービスとして利用する」チェックボックス3801の値をOFFからONに変更された入出力項目が同プロジェクト内の他の入出力定義404に「Webサービスとして利用する」チェックボックス3801=OFFとして存在するか否かを判定し、存在する場合はステップS4105に進み、存在しない場合は図41の入出力定義編集を終了する。
例えば、図38の項目コード=“ITEM_KEY”の入出力項目の「Webサービスとして利用する」チェックボックス3801の値をOFFからONに変更された場合、同プロジェクト内の他の入出力定義404に項目コード=“ITEM_KEY”&「Webサービスとして利用する」チェックボックス3801=“OFF”の入力項目が存在するか否かを判定する。
ステップS4104において、プログラム開発装置101は、ステップS4104にて「Webサービスとして利用する」チェックボックス3801の値をONからOFFに変更された入出力項目が同プロジェクト内の他の入出力定義404に「Webサービスとして利用する」チェックボックス3801=ONとして存在するか否かを判定し、存在する場合はステップS4106に進み、存在しない場合は図41の入出力定義編集を終了する。
例えば、図38の項目コード=“ITEM_VALUE”の入出力項目の「Webサービスとして利用する」チェックボックス3801の値をONからOFFに変更された場合、同プロジェクト内の他の入出力定義404に項目コード=“ITEM_VALUE”&「Webサービスとして利用する」チェックボックス3801=“ON”の入力項目が存在するか否かを判定する。
ステップS4105において、プログラム開発装置101は、確認メッセージ4200(図42)を表示し、ステップS4103にて存在すると判定された他の入出力定義404を更新するか否かの指示を受け付ける。「OK」の場合はステップS4107に進み、「キャンセル」の場合は図30の処理を終了する。
ステップS4106において、プログラム開発装置101は、確認メッセージ4200(図42)を表示し、ステップS4104にて存在すると判定された他の入出力定義404を更新するか否かの指示を受け付ける。「OK」の場合はステップS4108に進み、「キャンセル」の場合は図30の処理を終了する。
すなわち、ステップS4105及びステップS4106は、設定の変更を受け付けた入出力定義情報の入出力定義が他の入出力定義情報に存在する場合、ユーザに通知する処理の一例を示すステップである。
ステップS4107において、プログラム開発装置101は、ステップS4103にて存在すると判定された他の入出力定義404の入出力定義を、ステップS4101にて受け付けた編集内容で更新し、外部メモリ211に記憶する。
ステップS4108において、プログラム開発装置101は、ステップS4104にて存在すると判定された他の入出力定義404の入出力定義をステップS4101にて受け付けた編集内容で更新し、外部メモリ211に記憶する。
以上で、図41の説明を終了する。
なお、本実施形態においては、入出力項目の編集内容の例として「Webサービスとして利用する」チェックボックス3801の値変更を挙げたが、これに限定するものではなく、入出力項目の他の項目値の変更であってもよい。
以上により、Webアプリケーション用の入出力定義404のWebサービスに係る設定を編集した場合、他の入出力定義404に対して、その編集内容を容易に反映させることができる。
つまり、Webアプリケーションの要件変更に伴い、Webアプリケーションの画面項目の編集する(例えば、Webアプリケーションの画面における既存の入出力項目を新たにWebサービスとしても利用したい)場合、Webアプリケーションの「登録画面」の入出力定義だけでなく、「更新画面」「検索画面」「検索結果画面」など他の画面の入出力定義に対してもWebサービスの入出力定義として利用できるよう反映させなければならず、編集作業が繁雑であるという問題を解決することができる。
また、Webアプリケーションの画面において新たな入出力項目を追加し、その入出力項目をWebサービスとしても利用したい場合も、同様の問題を解決することができる。
よって、Webアプリケーション用の入出力定義情報に項目を追加した場合、対応するWebサービス用の入出力定義情報にも同じ項目を追加しなければならない、といったWebアプリケーションの定義情報とWebサービスの定義情報の管理の煩雑さを解消することができる。よって、Webサービスの開発及び管理が大変という問題を解決することができる。
以上により、Webアプリケーション開発ツールにおいて、Webサービスとして用いられるプログラムを容易に生成することができる。また、Webアプリケーションの入出力定義情報を用いて、Webサービス定義情報を容易に生成することができる。つまり、Webアプリケーションの画面の入出力定義情報を用いて、Webサービス定義情報又はWebサービスとして用いられるプログラムを生成することにより、Webアプリケーションを容易にWebサービス化したいという課題を解決することができる。
図43は、第1~6の実施形態に係る定義ファイル一覧画面の一例を示す図である。
定義ファイル一覧4310は、第1の実施形態に係る定義ファイル一覧画面である。第1の実施形態では、Webアプリケーション用の入出力定義404をコピーしてWebサービス用の入出力定義406を作成するため、入出力定義ファイルを4311のようにWebアプリケーション用の場合は“A”、Webサービス用の場合は“S”と表示する。
定義ファイル一覧4320は、第2~6の実施形態に係る定義ファイル一覧画面である。第2~6の実施形態では、Webアプリケーション用の入出力定義404をWebサービス用の入出力定義406として利用するため、入出力定義ファイルを4321のようにWebアプリケーション用の場合は“A”、Webアプリケーション・Webサービスで共用する場合は“AS”と表示する。
これにより、第1~6の実施形態において、入出力定義を「Webアプリケーション用」、「Webサービス用」及び「Webアプリケーション・Webサービス共用」で容易に識別することができるため、Webアプリケーション又はWebサービスの開発者による入出力定義の設定ミスや設定不整合による、Webサービスの開発及び管理が大変という問題を解決することができる。
以上で、図43の説明を終了する。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。