以下、本発明の実施の形態を、図面を参照して詳細に説明する。
〔第1の実施形態〕
図1は、本発明に係わるプログラム開発装置(開発者がWebアプリケーション生成のために使用する情報処理装置)、プログラム開発サーバ、データベースサーバ、アプリケーションクライアント(クライアント装置)、アプリケーションサーバの構成の一例を示すシステム構成図である(情報処理システム)。
プログラム開発装置101は、開発者の操作に従って画面レイアウトおよびデータベース検索指示などを定義する。プログラム開発装置101単体では、開発者の入力受付を行い、後述するプログラム開発サーバ102に実際のプログラム生成処理、アプリケーション生成処理をさせてもよいし、プログラム開発装置101単体でプログラム生成、アプリケーション生成まで処理してもよい。
なお、この実施形態においては、プログラム開発装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Webサービスとのやりとりには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サービス定義情報取得部311は、アプリケーションが利用するWebサービスの定義情報を読み取り、当該Webサービスへ入力する入力データの定義情報及び当該Webサービスから出力される出力データの定義情報を取得する機能部である。
アプリケーション構築部302は、Webサービス入出力定義情報取得部301により取得された入力データの定義情報に従ってWebサービスに対してデータを送信し、Webサービス入出力定義情報取得部301により取得された出力データの定義情報に従ってWebサービスからデータを受信するアプリケーションを構築する機能部である。
アプリケーション構築部312は、Webサービス定義情報取得手段により取得された入力データの定義情報に従ってWebサービスに対してデータを送信し、Webサービス定義情報取得手段により取得された出力データの定義情報に従ってWebサービスからデータを受信するアプリケーションを構築する機能部である。
アプリケーション入出力定義情報生成部313は、Webサービス定義情報取得部311により取得された入力データ定義情報に従ってアプリケーションが出力する項目を定義する出力定義情報を生成し、Webサービス定義情報取得部311により取得された出力データ定義情報に従ってアプリケーションに入力される項目を定義する入力定義情報を生成する機能部である。
アプリケーション構築部312は、アプリケーション入出力定義情報生成部313により生成された入力定義情報に従ってWebサービスからデータを受信し、アプリケーション入出力定義情報生成部313により生成された出力定義情報に従ってWebサービスへデータを送信するアプリケーションを構築する機能部である。
データモデル定義情報設定部303は、アプリケーションが接続するデータベースにおけるデータ操作に用いるデータモデル定義情報を設定する機能部である。
データモデル定義対応付部304は、Webサービス入出力定義情報取得部301により取得された入力データの定義情報及び/又は出力データの定義情報と、データモデル定義情報設定部303により設定されたデータモデル定義情報とを対応付ける機能部である。
アプリケーション構築部302は、データモデル定義対応付部304により対応付けられたデータモデル定義情報を用いてWebサービスに対してデータを送信する及び/又はデータモデル定義対応付部304により対応付けられたデータモデル定義情報を用いてWebサービスからデータを受信するアプリケーションを構築する機能部である。
アプリケーション構築部312は、データモデル定義対応付部304により対応付けられたデータモデル定義情報を用いてWebサービスに対してデータを送信する及び/又はデータモデル定義対応付部304により対応付けられたデータモデル定義情報を用いてWebサービスからデータを受信するアプリケーションを構築する機能部である。
入出力定義情報設定部305は、アプリケーションが出力する画面情報を生成するために与える入力項目の定義情報およびアプリケーションが出力する画面情報に含まれる出力項目の定義情報を設定する機能部である。
また、入出力定義情報設定部305は、アプリケーションの画面を介して入力される項目を定義する入力定義情報と、アプリケーションの画面に出力する項目を定義する出力定義情報とを入出力定義情報として設定する機能部である、ということもできる。
入出力定義対応付部306は、Webサービス入出力定義情報取得部301により取得された入力データの定義情報と入出力定義情報設定部305により設定された入力項目の定義情報及び/又はWebサービス入出力定義情報取得部301により取得された出力データの定義情報と入出力定義情報設定部305により設定された出力項目の定義情報とを対応付ける機能部である。
アプリケーション構築部302は、入出力定義対応付部306により対応付けられた入力項目の定義情報を用いてWebサービスに対してデータを送信する及び/又は入出力定義対応付部306により対応付けられた出力項目の定義情報を用いてWebサービスからデータを受信するアプリケーションを構築する機能部である。
レイアウト設計画面表示部314は、アプリケーションの画面のレイアウト設計を受け付けるレイアウト設計画面を表示する機能部である。
部品配置受付部315は、レイアウト設計画面表示部314により表示されたレイアウト設計画面において、Webサービスへアクセスするための部品の配置を受け付ける機能部である。
部品設定受付部316は、部品配置受付部315により受け付けた部品の設定を受け付ける機能部である。
アプリケーション構築部312は、部品設定受付手段により受け付けた設定に従ってWebサービスにアクセスし、部品配置受付手段により受け付けた部品の位置に対応するアプリケーションの画面の位置に当該Webサービスから出力された出力データを用いた情報を表示するアプリケーションを構築する機能部である。
プログラム生成部307は、アプリケーション構築部302により構築されたアプリケーションのプログラムを生成する機能部である。
プログラム生成部317は、アプリケーション構築部312により構築されたアプリケーションを当該アプリケーションとして機能させるためのプログラムを生成する機能部である。
図4は、プログラム開発装置101の構成図である。
プログラム開発装置101は、Webアプリケーションを開発する開発者が定義した定義ファイルをもとにWebアプリケーションを自動生成することを目的とした装置である。
プログラム開発装置101は、リポジトリ定義部400、アプリケーション生成部410、Webアプリケーション基盤コード生成部420、Webサービス呼び出しモジュール(つまり、Webサービスを利用するWebアプリケーション)生成部430、マッピングファイルGUIエディタ部440、ソースコードコンパイル部460、Webサービス連携定義自動生成部470を備える。
リポジトリ定義部400は、マッピングファイル401、アプリケーション定義402、データモデル定義403、入出力定義404、ビジネスプロセス定義405、拡張定義406を備える。これらの定義・ファイルは、Webアプリケーション開発ツールを介して開発者によって入力され、生成される。
次に、Webアプリケーション基盤コード生成部420について説明する。リポジトリ定義解析部421は、リポジトリ定義部400からアプリケーション定義402、データモデル定義403、入出力定義404、ビジネスプロセス定義405を読み込み解析する。Webアプリケーションコード生成部422は、外部メモリ211に記憶されているコード生成ルールと、リポジトリ定義解析部421によって解析された内容とを用いて、ソースコードコンパイル部460を介し、Webアプリケーション481のソースコード(プログラム)を生成する。
すなわち、データモデル定義403は、アプリケーションが接続するデータベースにおけるデータ操作に用いるデータモデル定義情報を設定する手段の一例である。
また、入出力定義404は、Webアプリケーションが出力する画面情報を生成するために与える入力項目の定義情報およびWebアプリケーションが出力する画面情報に含まれる出力項目の定義情報を設定する手段の一例である。
なお、入力項目の定義情報は、生成されたWebアプリケーションの画面を介して当該Webアプリケーションのユーザが入力する入力項目を定義した情報であり、出力項目の定義情報は、生成されたWebアプリケーションの画面として出力する出力項目を定義した情報である、と言い換えることができる。
よって、リポジトリ定義部400は、生成されたプログラムの実行によって表示されるアプリケーションの画面を介して入力される項目を定義する入力定義情報と、画面に出力する項目を定義する出力定義情報とを入出力定義情報として管理する手段の一例である。
次に、Webサービス呼び出しモジュール生成部430について説明する。WSDL解析部431は、利用するWebサービスのWSDLを解析する。マッピングファイル生成部432は、WSDL解析部431によって解析された、Webサービスの呼び出しに必要な入力データおよびWebサービスから出力される出力データをデータモデル定義403と対応付けるマッピングファイルを生成する。Webサービス呼び出しプログラム生成部は、外部メモリ211に記憶されているコード生成ルールと、WSDL解析部431によって解析された内容とを用いて、Webサービスを利用するWebアプリケーションのプログラムを生成する。
図5は、Webサービスを利用するWebアプリケーション生成のフローチャートである。なお、図5〜図9のフローチャートにおける各処理は、プログラム開発装置101のCPU201が行うものとする。
ステップS501において、これから生成するWebアプリケーションが利用するWebサービスの定義情報であるWSDLファイル1000(図10)を読み込む。具体的には、ユーザによって指定されたURLから、利用するWebサービスのWSDLファイル1000をダウンロードしてRAM202に読み込む。
ステップS502において、WSDL解析部431を用いて、ダウンロードしたWSDLファイル1000を解析する。すなわち、ステップS501〜ステップS502は、アプリケーションが利用するWebサービスの定義情報を読み取り、当該Webサービスへ入力する入力データおよび当該Webサービスから出力される出力データの定義情報を取得する処理の一例を示すステップである。また、ステップS501〜ステップS502は、アプリケーションが利用するWebサービスの定義情報を読み取り、当該Webサービスへ入力する入力データの定義情報及び当該Webサービスから出力される出力データの定義情報を取得する処理の一例を示すステップである。
具体的には、図10の1005における<wsdl:operation>の記述に基づき、オペレーション名=“SLOC_JAVA(登録商標)_WSIO_getData”と読み取る。
また、図10の1005における<wsdl:input>の記述および1002、1003、1006の記述から、Webサービスの呼び出しに必要な入力データ=“gOrderBy”および“token”と読み取る。
同様に、図10の1005における<wsdl:output>の記述および1004の記述に基づき、Webサービスから出力される出力データ=“WSIoSLOC_JAVA(登録商標)_WSIOGetDataResult”であり、その形式は1001(図10)のような形式であると読み取る。
ステップS503において、WSDLファイル1000の解析結果に基づき、マッピングファイル生成部432を用いて、データモデルとWebサービスの入出力データを対応付けるマッピングファイル401(図11)を生成する。なお、マッピングファイル401とは、データモデル定義403とWebサービスの入出力定義404の対応付けを行うファイルである。なお、マッピングファイル401を生成することにより、Webサービスの入出力データの仕様変更がデータモデル定義403などWebアプリケーションの定義に影響を及ぼさないため、仕様変更の多いWebサービスを利用するWebアプリケーションや多くのWebサービスを利用するWebアプリケーション開発の管理を容易にすることができる。
具体的には、WSDLファイル1000に記述されていたオペレーション名1002はマッピングファイル401の1102(図11)に、WSDLファイル1000に記述されていた入力データ1003はマッピングファイル401の1103(図11)に、WSDLファイル1000に記述されていた出力データ1001はマッピングファイル401の1101(図11)に、それぞれ展開する形でマッピングファイル401を生成する。
ステップS504において、マッピングファイルGUIエディタ部440を用いて、Webサービスの呼び出し時に必要な入力データ1003およびWebサービスからの出力データ1001を定義する入出力定義404とデータモデル定義403とを紐付け、Webアプリケーション定義(リポジトリ定義部400の各定義)を生成する。
すなわち、ステップS504は、Webサービスの定義情報から取得された入力データの定義情報に従ってWebサービスに対してデータを送信し、Webサービスの定義情報から取得された出力データの定義情報に従ってWebサービスからデータを受信するアプリケーションを構築する処理の一例を示すステップである。
また、ステップS504は、アプリケーションが接続するデータベースにおけるデータ操作に用いるデータモデル定義情報を用いてWebサービスに対してデータを送信する及び/又はアプリケーションが接続するデータベースにおけるデータ操作に用いるデータモデル定義情報を用いてWebサービスからデータを受信するアプリケーションを構築する処理の一例を示すステップである。
また、ステップS504は、アプリケーションが出力する画面情報を生成するために与える入力項目の定義情報を用いてWebサービスに対してデータを送信する及び/又はアプリケーションが出力する画面情報に含まれる出力項目の定義情報を用いてWebサービスからデータを受信するアプリケーションを構築する処理の一例を示すステップである。
また、ステップS504は、取得された入力データの定義情報に従ってWebサービスに対してデータを送信し、取得された出力データの定義情報に従ってWebサービスからデータを受信するアプリケーションを構築する処理の一例を示すステップである。
また、ステップS504は、生成された入力定義情報に従ってWebサービスからデータを受信し、生成された出力定義情報に従ってWebサービスへデータを送信するアプリケーションを構築する処理の一例を示すステップである。
また、ステップS504は、対応付けられたデータモデル定義情報を用いてWebサービスに対してデータを送信する及び/又は対応付けられたデータモデル定義情報を用いてWebサービスからデータを受信するアプリケーションを構築する処理の一例を示すステップである。
具体的には、後述する図6にて説明する。
ステップS505において、Webアプリケーションのプログラムを生成する。すなわち、ステップS505は、構築されたアプリケーションのプログラムを生成する処理の一例を示すステップである。
具体的には、Webサービス呼び出しプログラム生成部433を用いて、ステップS503にて生成したマッピングファイル401(図11)およびステップS504にて生成したWebアプリケーション定義に従い、Webサービスを利用するWebアプリケーションのプログラムを生成する。
ステップS506において、ソースコードコンパイル部460を用いて、ステップS505にて生成したWebアプリケーションのプログラムをコンパイルし、アプリケーションサーバ480にWebアプリケーション481としてデプロイ(配置)する。
これにより、Webサービスを利用するアプリケーションを容易に構築することができる。
図6は、Webサービスを利用するWebアプリケーション定義生成のフローチャートである。
ステップS601において、マッピングファイルGUI表示部441を介して、Webアプリケーション開発者からマッピングファイル401を開く指示を受け付け、マッピングファイルエディタ1200(図12)を用いて、指示されたマッピングファイル401の内容を表示する。
ここで、図12のマッピングファイルエディタ1200について説明しておく。マッピングファイルエディタ1200は、操作一覧部1201、データ構造部1202、プロパティ一覧部1203を備えるマッピングファイル401を編集するためのツールである。
操作一覧部1201には、図5のステップS501にて読み込んだWSDLファイルに記述されているWebサービスの操作(オペレーション)の一覧を表示する。操作一覧部1201に表示されている「操作」の選択を受け付けると、選択された「操作」の内容をデータ構造部1202およびプロパティ一覧部1203に表示する。
データ構造部1202には、操作一覧部1201にて選択された「操作」の入出力データの名前をツリー形式で表示する。入力タブ1204と出力タブ1205を切り換えることにより、マッピングファイル401の入力データ(例えば、図11の1103の情報)または出力データ(例えば、図11の1101の情報)を選択可能に表示する。
データ構造部1202に表示するデータの名前の後ろに[1][n]のような数字を表示する。この数字は、当該データの出現回数である。
つまり、当該データが入出力データに1つだけ存在する詳細情報形式の場合は当該データ名の後ろに[1]を表示し、入出力データに複数存在する一覧情報形式の場合は当該データ名の後ろに[n]を表示する。この数字が表示されていることにより、アプリケーション開発者はデータの型を知ることができるため、どのような入出力定義で使用できるかについて認識することができる。
データ構造部1202に表示された入出力データの選択を受け付けると、コンテキストメニュー(図13の1301)を表示し、選択された入出力データに係る「拡張定義の作成」「データモデル定義の作成」「入出力定義の作成」の実行の受け付けを可能にする。なお、拡張定義とは、Webサービスを呼び出すために利用するマッピングファイルやWebサービスの操作名等の定義である。
プロパティ一覧部1203には、データ構造部1202にて選択された入出力データのプロパティ一覧を表示し、データモデルとのマッピングを可能にする。
以上により、WSDLファイル1000の構造を視覚的に表示し、Webサービスの入出力定義をGUIの操作によってWebアプリケーションの各定義と対応付けることができるため、アプリケーションの定義情報を用いて、そのWebサービスを利用するアプリケーションの入出力定義を容易に構築することができる。
以上で、図12の説明を終了する。
図6の説明に戻る。
ステップS602において、データ構造部1202にて選択された入出力データのコンテキストメニューのうち、データモデル定義生成メニュー1301(図13)の押下による指示を受け付ける。
ステップS603において、データモデル定義生成部472を用いて、Webサービスを利用するためのデータモデル定義403(図16)を生成する。具体的には、後述する図7にて説明する。
ステップS604において、データ構造部1202にて選択された入出力データのコンテキストメニューのうち、拡張定義生成メニュー1701(図17)の押下による指示を受け付ける。
ステップS605において、拡張定義生成部474を用いて、Webサービスを利用するための拡張定義406(図19)を生成する。具体的には、後述する図8にて説明する。
ステップS606において、データ構造部1202にて選択された入出力データのコンテキストメニューのうち、入出力定義生成メニュー2001(図20)の押下による指示を受け付ける。
ステップS607において、入出力定義生成部476を用いて、Webサービスを利用するための入出力定義404(図27)を生成する。具体的には、後述する図9にて説明する。
すなわち、ステップS601〜ステップS607は、取得された入力データの定義情報に従ってWebサービスに対してデータを送信し、取得された出力データの定義情報に従ってWebサービスからデータを受信するアプリケーションを構築する処理の一例を示すステップである。
また、ステップS601〜ステップS607は、生成された入力定義情報に従ってWebサービスからデータを受信し、生成された出力定義情報に従ってWebサービスへデータを送信するアプリケーションを構築する処理の一例を示すステップである。
また、ステップS601〜ステップS607は、対応付けられたデータモデル定義情報を用いてWebサービスに対してデータを送信する及び/又は対応付けられたデータモデル定義情報を用いてWebサービスからデータを受信するアプリケーションを構築する処理の一例を示すステップである。
以上のように、ウィザード形式でWebサービスを利用するアプリケーションに必要なデータを設定することができるため、Webサービスへ接続するための定義の設定に不慣れな開発者にとっても、本発明のようなアプリケーション開発ツールを使用すれば、Webサービスを利用するアプリケーション開発に時間がかかってしまうという問題は解消できるようになる。
図7は、Webサービスを利用するためのデータモデル定義生成のフローチャートである。
ステップS701において、データモデル定義ウィザード表示部444を用いて、データモデル定義生成ウィザード画面1400(図14)を表示する。
ここで、図14のデータモデル定義生成ウィザード画面1400について説明しておく。データモデル定義生成ウィザード画面1400は、Webサービスの入出力データのプロパティにマッピングするデータモデル定義を作成する画面である。
データモデル定義生成ウィザード画面1400には、マッピングファイル解析部449を用いてステップS503にて生成したマッピングファイル401(図11)を解析した結果を表示する。具体的には、図10の1004のnameの値を「項目コード1401」と「名前1402」に表示し、図10の1004のtypeの値を「データタイプ1403」に表示する。
以上で、図14の説明を終了する。
図7の説明に戻る。
ステップS702において、Finishボタン1406(図14)の押下を受け付けると、データモデル定義生成命令送信部443からデータモデル定義生成命令を送信し、データモデル定義生成受信部471を用いてデータモデル定義生成命令を受信する。
ステップS703において、データモデル定義生成ウィザード画面1400の各値に基づき、データモデル定義生成部472を用いて、図16のようなデータモデル定義403を生成する。生成されたデータモデル定義403は、図15の1501のように自動的にマッピングされる。
以上により、Webサービスの入出力データのプロパティにマッピングするデータモデル定義を作成することができる。
なお、データモデル定義403は、元々、(Webサービスを利用しない)WebアプリケーションをWebアプリケーション開発ツールで開発する際に、データベースのデータを操作しやすくするために用意された定義である。そのデータモデル定義403を、Webサービスを利用する際の入出力データのプロパティへのマッピングに用いることで、Webサービスを利用していないアプリケーションを開発するのと同様の仕組みで、Webサービスを利用するアプリケーションを開発することができるようになる。
つまり、Webサービスへ接続するための定義の設定に不慣れな開発者にとっても、本発明のようなアプリケーション開発ツールを使用すれば、Webサービスを利用するアプリケーション開発に時間がかかってしまうという問題は解消できるようになる。
以上で、図7の説明を終了する。
図8は、Webサービスを利用するための拡張定義生成のフローチャートである。
ステップS801において、拡張定義ウィザード表示部446を用いて、拡張定義生成ウィザード画面1800(図18)を表示する。
ここで、図18の拡張定義生成ウィザード画面1800について説明しておく。拡張定義生成ウィザード画面1800では、Webサービスの操作の呼び出しに必要な拡張定義を作成する。拡張定義生成ウィザード画面1800では、「拡張定義ファイル名1801」では保存するためのファイル名、「コード1802」では拡張定義を特定するためのID、「名前1803」ではその名前の入力をそれぞれ受け付ける。
以上で、図18の説明を終了する。
図8の説明に戻る。
ステップS802において、Finishボタン1804(図18)の押下を受け付けると、拡張定義生成送信部445から拡張定義生成命令を送信し、拡張定義生成受信部473を用いて拡張定義生成命令を受信する。
ステップS803において、拡張定義生成ウィザード画面1800の各値に基づき、拡張定義生成部474を用いて、図19のような拡張定義406を生成する。拡張定義406には、マッピングファイル名1901と呼び出す操作名1902とが定義されている。
以上で、図8の説明を終了する。
図9は、Webサービスを利用するための入出力定義生成のフローチャートである。
ステップS901において、入出力定義ウィザード表示部448を用いて、入出力定義生成ウィザード画面2100(図21)を表示する。
入出力定義生成ウィザード画面(Webサービス呼び出し方法選択)2100にて、Webアプリケーション開発者は、呼び出すWebサービスが検索処理などのデータ取得の場合は「入出力の対象条件」を選択し、追加・更新・削除処理の場合は「ビジネスプロセス」を選択する。
ステップS902において、入出力定義生成ウィザード画面(Webサービス呼び出し方法選択)2100にてWebサービス呼び出し方法の選択を受け付ける。図21では、「入出力の対象条件」が選択されたとする。
ステップS903において、入出力定義生成ウィザード画面(拡張定義選択)(図22)にて、Webサービス呼び出しに必要な拡張定義の選択を受け付ける。なお、拡張定義コードの選択肢には、リポジトリ定義部400に存在する拡張定義406が表示される。図22では、ステップS803(図8)にて生成した拡張定義406(図19)が選択されたとする。
ステップS904において、ステップS902にて選択されたWebサービス呼び出し方法を判定する。Webサービス呼び出し方法が「ビジネスプロセス」の場合はステップS905に進み、Webサービス呼び出し方法が「入出力の対象条件」の場合はステップS906に進む。
ステップS905において、Webサービス呼び出しを行うビジネスプロセス定義を生成する。
ステップS906において、マッピングファイル401で定義されている入力データに対応付けるデータモデル定義403の指定を受け付ける(図23)。
ここで、図23について説明しておく。図23は、入出力定義生成ウィザード画面(入力データの指定)の一例を示す図である。
入出力定義生成ウィザード画面(入力データの指定)2300の2301〜2303には、初期値として、マッピングファイル401の入力データ(例えば、図11の1103の情報)を表示する。Webアプリケーション開発者は、データモデルコード2304とデータモデル項目コード2305を入力することにより、Webサービスの呼び出しに必要な入力データとデータモデル定義403とを関連付けることができる。
以上で、図23の説明を終了する。
図9の説明に戻る。
ステップS907において、マッピングファイル401で定義されている出力データに対応付けるデータモデル定義403の指定を受け付ける(図24)。
ここで、図24について説明しておく。図24は、入出力定義生成ウィザード画面(出力データの指定)の一例を示す図である。
入出力定義生成ウィザード画面(出力データの指定)2400の2401〜2403には、初期値として、マッピングファイル401の入力データ(例えば、図11の1104の情報)を表示する。また、既にマッピング済の場合は、図24のようにデータモデルコード2404とデータモデル項目コード2405が入力された状態で表示される。Webアプリケーション開発者は、データモデルコード2404とデータモデル項目コード2405を入力または更新することにより、Webサービスから出力される出力データとデータモデル定義403とを関連付けることができる。
なお、Webサービスの呼び出し方法が「ビジネスプロセス」の場合、データモデル生成するチェックボックス2406を表示する。Webアプリケーション開発者は、出力データ用に新たなデータモデルを生成する場合、データモデル生成するチェックボックス2406にチェックを入れる。
以上で、図24の説明を終了する。
図9の説明に戻る。
ステップS908において、データモデル生成するチェックボックス2406がチェックされているか否かを判定する。チェックされている場合はステップS909に進み、チェックされていない場合はステップS910に進む。
ステップS909において、入出力定義生成ウィザード画面(出力データの指定)2400の各値に基づき、データモデル定義生成部472を用いて、データモデル定義403を生成する。すなわち、ステップS909は、取得された入力データの定義情報及び/又は出力データの定義情報と、Webアプリケーションが接続するデータベースにおけるデータ操作に用いるデータモデル定義情報とを対応付ける処理の一例を示すステップである。
ステップS910において、図25の入出力定義生成ウィザード画面(入出力定義の生成)2500にて、生成する入出力画面のコード2501と名前2502の入力を受け付ける。すなわち、ステップS910は、取得された入力データの定義情報とアプリケーションが出力する画面情報を生成するために与える入力項目の定義情報、または取得された出力データの定義情報とアプリケーションが出力する画面情報に含まれる出力項目の定義情報とを対応付ける処理の一例を示すステップである。入出力定義生成ウィザード画面(入出力定義の生成)2500では、図20にて選択された操作名2002をコード2501に、図20にて選択された名前2502に、それぞれ初期値として表示し、編集可能にすることによって、任意のコードと名前を付けることができる。
ステップS911において、図26の入力定義生成ウィザード画面(定義ファイルの生成確認)2600を表示し、Finishボタン2601の押下を受け付けると、入出力定義生成送信部447から入出力定義生成命令を送信し、入出力定義生成受信部475を用いて入出力定義生成命令を受信する。
ステップS912において、図21から図26の入出力定義生成ウィザード画面を介して設定された入出力定義に基づき、入出力定義生成部476を用いて、図27のような入出力定義を生成する。すなわち、ステップS912は、取得された入力データ定義情報に従ってアプリケーションが出力する項目を定義する出力定義情報を生成し、取得された出力データ定義情報に従ってアプリケーションに入力される項目を定義する入力定義情報を生成する処理の一例を示すステップである。
ここで、図27について説明しておく。
図27は、図21から図26の入出力定義生成ウィザード画面を介して設定・生成された入出力定義の一例を示す図である。
Webサービスの呼び出しに必要な入力データは項目タイプ2701=“I 入力”として生成され、Webサービスから出力される出力データは項目タイプ2701=“O 出力”として生成される。また、出力データには、マッピングされているデータモデル定義403が表示されている。
本実施例では、図23にて指定された項目は2702のように生成され、図24にて指定された項目は2703のように生成される。また、図21にて「入出力の対象条件」を選択したため、Webサービスを呼び出すトリガーとしてアクション2704が生成される。
以上で、図9の説明を終了する。
以上により、アプリケーションの定義情報を用いて、そのWebサービスを利用するアプリケーションの入出力定義を容易に構築することができる。
なお、入出力定義404、元々、(Webサービスを利用しない)アプリケーションをアプリケーション開発ツールで開発する際に、画面に対しての入力項目、画面での出力項目を設定しやすくするために用意された定義である。その入出力定義404を、Webサービスを利用する際の入出力データに用いることで、Webサービスを利用していないアプリケーションを開発するのと同様の仕組みで、Webサービスを利用するアプリケーションを開発することができるようになる。つまり、Webサービスへ接続するための定義の設定に不慣れな開発者にとっても、本発明のようなアプリケーション開発ツールを使用すれば、Webサービスを利用するアプリケーション開発に時間がかかってしまうという問題は解消できるようになる。
図28は、生成したWebアプリケーションの実行結果(Webサービス連携結果)の一例を示す図である。
アプリケーションクライアント104から送信されたQUERYボタン2801の押下信号を受信したアプリケーションサーバ105は、図8のステップS803にて生成した拡張定義406(図19)を呼び出し、拡張プロパティ(図19の1901と1902)に定義されている、図5のステップS503にて生成したマッピングファイル401(図11および図15)の設定に従い、Webサービスの操作を呼び出す。
アプリケーションサーバ105は、Webサービスから出力される出力データをマッピングファイル401の設定に従い、図7にて設定・生成されたデータモデル定義403(図16)にバインドし、当該データモデル定義403と図9のステップS912にて生成した入出力定義404とを用いて、Webサービスの利用結果を表示する画面情報を生成し、アプリケーションクライアント104に送信し、アプリケーションクライアント104が結果画面を表示する(図28)。
これにより、ソースコードを記述しなくてもWebサービスを利用するアプリケーションを生成することができるため、アプリケーションの定義情報を用いて、そのWebサービスを利用するアプリケーションを容易に構築することができる。よって、Webサービスへ接続するための定義の設定に不慣れな開発者にとっては多くの学習時間を要するという問題、上記のようなアプリケーション開発ツールを活用しても、Webサービスを利用するアプリケーション開発には時間がかかってしまうという問題を解決することができる。
〔第2の実施形態〕
第1の実施形態は、Webサービスの定義情報(WSDLファイル)を用いて、そのWebサービスを利用するアプリケーションの定義情報(入出力定義、データモデル定義など)を生成し、アプリケーションのプログラムを生成することで、当該アプリケーションを容易に構築する仕組みである。
一方、第1の実施形態のような、ユーザによって設定された各定義情報を用いてアプリケーションのプログラムを生成する開発ツール以外にも、プログラムを生成せずにユーザによって設定された各定義情報に従って動作するアプリケーションを提供する仕組みもある。例えば、ブラウザ等を介して、クラウド上でユーザにアプリケーションの設定をさせ、その設定に従って動作するアプリケーションを提供する仕組み等が挙げられる。
第2の実施形態は、そのようなアプリケーション提供システムにおいて、Webサービスの定義情報(WSDLファイル)を用いて、そのWebサービスを利用するアプリケーションを容易に提供する仕組みである。
よって、第2の実施形態では、プログラム開発装置101は、プログラムを開発する装置ではないため、アプリケーション構築装置と読み替える。
この場合、図5のステップS503〜ステップS506は不要である。つまり、第1の実施形態で説明したデータモデル定義403、入出力定義404、ビジネスプロセス定義405、拡張定義406はファイルとして生成する必要はなく、例えばデータベースにデータモデル項目、入出力項目、ビジネスプロセス項目、拡張項目等のように記憶し、アプリケーション提供システムはそれらの項目に従って動作するアプリケーションを提供する。
これにより、Webサービスの定義情報(WSDLファイル)を用いて、そのWebサービスを利用するアプリケーションを容易に提供することができる。
〔第3の実施形態〕
第1の実施形態は、Webサービスの定義情報(WSDLファイル)を用いて、そのWebサービスを利用するアプリケーションの定義情報(入出力定義、データモデル定義など)を生成し、アプリケーションのプログラムを生成することで、当該アプリケーションを容易に構築する仕組みである。
一方、第1の実施形態のように、Webサービスの定義情報を指定して、そのWebサービスを利用するアプリケーションの定義情報を生成する以外にも、アプリケーション開発ツールで生成した既存のアプリケーション又は第2の実施形態のようなアプリケーション提供システムで構築した既存のアプリケーションのレイアウト設計画面を用いて、既存のアプリケーションの画面レイアウトにWebサービスへアクセスするための部品を配置し、その部品の設定を行うことでWebサービスへのアクセスを可能にする仕組みも考えられる。
第3の実施形態は、このように既存のアプリケーションの画面レイアウトにWebサービスへアクセスするための部品を配置することにより、Webサービスを利用するアプリケーションを容易に提供する仕組みである。
よって、第3の実施形態では、プログラム開発装置101は、プログラムを開発する装置又はアプリケーション構築装置と読み替える。
なお、この実施形態においては、生成または構築するアプリケーションはWebアプリケーションとしたが、Webアプリケーションに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、WebサービスとのやりとりにはWebによる通信を利用するが、主としてWebによる通信を利用しないアプリケーションであってもよい。
図29は、第3の実施形態に係るアプリケーションレイアウト設計画面にWebサービスアクセス部品を配置するフローチャートの一例を示す図である。
図30は、第3の実施形態に係るアプリケーションレイアウト設計画面3000の一例を示す図である。アプリケーションレイアウト設計画面3000は、プログラム開発装置101を用いて、生成または構築されたアプリケーションの画面レイアウトを設計する画面である。
ステップS2901において、プログラム開発装置101は、開発者による既存のアプリケーション画面3001に対する指示を受け付けると、レイアウト設計画面3002に既存のアプリケーション画面3001のレイアウトを表示する。すなわち、ステップS2901は、アプリケーションの画面のレイアウト設計を受け付けるレイアウト設計画面を表示する処理の一例を示すステップである。
ステップS2902において、プログラム開発装置101は、開発者によるWebサービスアクセス部品3003の3004へのドラッグ&ドロップ操作を受け付けると、3004の位置にWebサービスアクセス部品3003を配置する。すなわち、ステップS2902は、表示されたレイアウト設計画面において、Webサービスへアクセスするための部品の配置を受け付ける処理の一例を示すステップである。ここでは、「天気予報」を表示欄に天気情報を提供するWebサービスへアクセスする部品を配置する。
ステップS2903において、プログラム開発装置101は、配置されたWebサービスアクセス部品3003の設定を受け付ける設定画面(不図示)を表示し、設定を受け付ける。すなわち、ステップS2903は、配置を受け付けた部品の設定を受け付ける処理の一例を示すステップである。
ステップS2904において、プログラム開発装置101は、Webアプリケーション生成処理(図5)を行う。具体的には、Webサービスアクセス部品3003の設定画面において、アクセスするWebサービスの定義情報(WSDLファイル)のURL及びWebサービスへ入力する入力データ(ここでは、仕入日3005)の指定を受け付け、Webサービスの定義情報を読み込み解析し、当該Webサービスを利用するWebアプリケーションを生成する。
なお、本実施形態においては、図5のステップS504にて、図6のステップS601〜ステップS607に含まれる、データモデル定義生成処理(図7)、拡張定義生成処理(図8)、入出力定義生成処理(図9)を行うことでWebサービスを利用するアプリケーションを構築するとしたが、この方法に限定するものではなく、図6〜図9の処理を行わず、Webサービスアクセス部品3003の設定画面において設定した「仕入日3005」のような画面入力項目をWebサービスへ入力する入力データ定義情報としてWebサービスを実行し、Webサービスから出力される出力データを用いてWebサービスアクセス部品3003の配置位置に表示するとしてもよい。
以上で、図28及び図29の説明を終了する。
図31は、第3の実施形態により生成したWebアプリケーションの実行結果(Webサービス連携結果)の一例を示す図である。
アプリケーションクライアント104から送信された「仕入日3005」の値を受信したアプリケーションサーバ105は、図8のステップS803にて生成した拡張定義406(図19)を呼び出し、拡張プロパティ(図19の1901と1902)に定義されている、図5のステップS503にて生成したマッピングファイル401(図11および図15)の設定に従い、Webサービスの操作を呼び出す。
アプリケーションサーバ105は、Webサービスから出力される出力データ(天気予報情報。例えば、“晴れ 30℃”)をマッピングファイル401の設定に従い、図7にて設定・生成されたデータモデル定義403(図16)にバインドし、当該データモデル定義403と図9のステップS912にて生成した入出力定義404とを用いて、Webサービスの利用結果を表示する画面情報(天気予報3102)を生成し、アプリケーションクライアント104に送信し、アプリケーションクライアント104が結果画面を表示する(図31)。
よって、このWebアプリケーションのユーザは、仕入日3101の天気予報3102を見ながら、仕入れる商品3103を入力することができるようになる。
すなわち、第3の実施形態におけるステップS601〜ステップS607は、受け付けた設定に従ってWebサービスにアクセスし、受け付けた部品の位置に対応するアプリケーションの画面の位置に当該Webサービスから出力された出力データを用いた情報を表示するアプリケーションを構築する処理の一例を示すステップである。
これにより、アプリケーションの定義情報を用いて、(ここでは「仕入日3005」のような画面入力項目)を用いて、そのWebサービスを利用するアプリケーションを容易に構築することができる。つまり、Webサービスに引数を渡し、Webサービスからある情報を得るというだけの小さい及び/又は単純なWebサービス(例えば、ここで挙げた「天気予報サービス」)へアクセスする部品を配置して設定するだけで、Webサービスを利用するアプリケーションを容易に構築することができる。
よって、Webサービスへ接続するための定義の設定に不慣れな開発者にとっては多くの学習時間を要するという問題、上記のようなアプリケーション開発ツールを活用しても、Webサービスを利用するアプリケーション開発には時間がかかってしまうという問題を解決することができる。
なお、本実施形態においては、WebアプリケーションとWebサービスの通信に「拡張定義406」「マッピングファイル401」「データモデル定義403」を用いるとしたが、この方法に限定するものではなく、異なる定義を用いたり、これらの定義を用いずにWebサービスアクセス部品3003の設定画面において、Webサービスの定義情報のURL及び「仕入日3005」のような画面入力項目を設定に従ってWebサービスを実行し、Webサービスから出力される出力データを用いてWebサービスアクセス部品3003の配置位置に表示したりしてもよい。
なお、本実施形態においては、Webサービスの例として「天気予報サービス」を挙げたが、これに限定するものではなく、日時を受信してニュース情報を返信する「ニュース提供サービス」や、商品IDを受信して当該商品を返信する「商品情報提供サービス」などであってもよい。
以上により、アプリケーションの定義情報を用いて、そのWebサービスを利用するアプリケーションを容易に構築することができる。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。