【文献】
中野 雄介 外3名,「WebアプリケーションWebサービス化ラッパシステムの実装と評価」,情報処理学会論文誌,日本,社団法人情報処理学会,2008年 2月15日,第49巻,第2号,pp.727−738
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0012】
〔第1の実施形態〕
図1は、本実施形態の情報処理システム100の構成の一例を示す図である。
【0013】
図1に示すように、情報処理システム100は、情報処理装置101およびサーバ102が、ネットワーク103により通信可能に接続された構成をとる。
【0014】
情報処理装置101は、Webアプリケーション開発者が使用する、デスクトップPC、携帯電話、スマートフォン、タブレット端末、ノートPC、およびPDA端末などの端末であって、ネットワーク103を介してサーバ102の記憶装置に記憶されている情報を取得し、インストールされているブラウザなどのアプリケーションを用いてディスプレイ装置210に表示する。
【0015】
サーバ102は、Webアプリケーション構築サービスを提供するサーバであって、情報処理装置101からの要求に応じて、情報の検索を行い、検索結果を返信する。情報処理装置101とサーバ102間の通信は、HTTPのリクエスト・レスポンスでもよいし、SOAPなどを利用したウェブサービスに用いられるリクエスト・レスポンスなどであってもよい。
【0016】
つまり、情報処理装置101は、サーバ102が提供するWebアプリケーション構築サービスにアクセスして、Webアプリケーションを構築する。
【0017】
なお、本実施形態においては、Webアプリケーション構築サービスで構築されるアプリケーションは、アプリケーション利用者の情報処理装置のブラウザを利用するWebアプリケーションとしたが、Webアプリケーションに限定するものではなく、Web以外の技術を用いたアプリケーションであってもよい。
【0018】
また、本実施形態においては、情報処理システム100は、情報処理装置101がサーバ102の記憶装置に記憶されているテーブルのデータを検索するシステムとしたが、これに限定するものではなく、情報処理装置101がサーバ102以外の記憶装置に記憶されている情報の検索結果を表示する仕組みであってもよい。
【0019】
以下、
図2を用いて、
図1に示した情報処理装置101およびサーバ102に適用可能なハードウエア構成の一例について説明する。
【0020】
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。
【0021】
202はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【0022】
また、205は入力コントローラで、入力装置209等からの入力を制御する。206はビデオコントローラで、液晶ディスプレイ等のディスプレイ装置210への表示を制御する。なお、ディスプレイ装置は、液晶ディスプレイに限られず、CRTディスプレイなどであっても良い。これらは必要に応じてクライアントが使用するものである。
【0023】
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
【0024】
208は通信I/Fコントローラで、ネットワーク103を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0025】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0026】
ハードウエア上で動作する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0027】
なお、全ての装置がこれらの構成を備えているわけではなく、必要なものを夫々備えていればよい。
【0028】
図3は、情報処理装置101の機能構成の一例を示すブロック図である。
【0029】
アプリケーション画面生成部301は、データベースに登録されているレコードを選択するレコード選択部品を含む、アプリケーション画面を生成する機能部である。
【0030】
アプリケーション入出力定義情報取得部302は、アプリケーションの定義情報を読み取り、当該アプリケーションへ入力する入力データ及び/又は当該アプリケーションから出力される出力データの定義情報を取得する機能部である。
【0031】
また、アプリケーション入出力定義情報取得部302は、アプリケーションの定義情報を読み取り、当該アプリケーションの画面を介して入力される入力データ及び/又は当該アプリケーションの画面に出力される出力データの定義情報を取得する機能部である、ということもできる。
【0032】
Webサービス構築部303は、アプリケーション入出力定義情報取得部302により取得された入力データの定義情報に従ってWebサービスを構築する機能部である。
【0033】
アプリケーション入出力項目管理部311は、アプリケーションが当該アプリケーションの画面を介して入力を受け付ける入力項目及びアプリケーションが当該アプリケーションの画面に出力する出力項目を管理する機能部である。
アプリケーション入力項目取得部312は、アプリケーション入出力項目管理部311により管理されている入力項目の情報を取得する機能部である。
Webサービス公開部313は、アプリケーションの持つ機能をWebサービスとして公開する機能部である。
入力データ項目管理部314は、アプリケーション入力項目取得部312により取得された入力項目からWebサービスへ入力する入力データ項目の選択を受け付け、受け付けた入力データ項目を管理する機能部である。
入力データ受信部315は、入力データ項目管理部314により管理されている入力データ項目に対応する入力データを受信する機能部である。
Webサービス実行部316は、入力データ受信部315により受信した入力データを用いて、Webサービス公開部313により公開されている機能を実行する機能部である。
【0034】
アプリケーション出力項目取得部317は、アプリケーション入出力項目管理部311により管理されている出力項目の情報を取得する機能部である。
出力データ項目管理部318は、アプリケーション出力項目取得部317により取得された出力項目からWebサービスが出力する出力データ項目の選択を受け付け、受け付けた出力データ項目を管理する機能部である。
出力データ送信部319は、Webサービス実行部316により機能が実行された後、出力データ項目管理部318により管理されている出力データ項目に従って出力データを送信する機能部である。
【0035】
Webサービス定義情報生成部320は、入力データ項目管理部314により管理されている入力データ項目をWebサービスへ入力する入力データ項目とし、出力データ項目管理部318により管理されている出力データ項目をWebサービスが出力する出力データ項目として定義したWebサービス定義情報を生成する機能部である。
追加入力データ項目受付部321は、アプリケーション入力項目取得部312により取得された入力項目以外の項目をWebサービスへ入力する入力データ項目として追加する指示を受け付ける機能部である。
追加入力データ受信部322は、追加入力データ項目受付部321により受け付けた入力データ項目に対応する追加入力データを受信する機能部である。
Webサービス実行部316は、入力データ受信部315により受信した入力データ及び追加入力データ受信部315により受信した追加入力データを用いて、Webサービス公開部313により公開されているアプリケーションの持つ機能を実行する機能部である。
【0036】
追加出力データ項目受付部323は、アプリケーション出力項目取得部317により取得された出力項目以外の項目をWebサービスから出力する出力データ項目として追加する指示を受け付ける機能部である。
出力データ送信部319は、Webサービス実行部316により機能が実行された後、追加出力データ項目受付部323により受け付けた出力データ項目に対応する出力データを送信する機能部である。
【0037】
入力データ項目管理部314は、アプリケーションの機能ごとに入力データ項目を管理する機能部である。
機能識別情報受信部324は、機能を識別する機能識別情報を受信する機能部である。、
入力データ受信部315は、機能識別情報受信部324により受信した機能識別情報に対応する機能に対応付けて入力データ項目管理部314により管理されている入力データ項目に対応する入力データを受信する機能部である。
Webサービス実行部316は、入力データ受信部315により受信した入力データを用いて、機能識別情報受信部324により受信した機能識別情報に対応する機能を実行する機能部である。
【0038】
アプリケーション機能設定管理部331は、アプリケーションが持つ機能の設定を管理する機能部である。
アプリケーション機能選択受付部332は、アプリケーション機能設定管理部331により管理されている機能のうち、Webサービスとして公開する機能の選択を受け付ける機能部である。
【0039】
第1アプリケーション機能設定変更部333は、アプリケーション機能選択受付部332により受け付けた機能をWebサービスとして公開するために設定を変更する機能部である。
Webサービス公開部334は、アプリケーション機能選択受付部332により受け付けた機能をWebサービスとして公開する機能部である。
第2アプリケーション機能設定変更部335は、アプリケーション機能設定管理部331により管理されている設定のうち、アプリケーション機能選択受付部332により受け付けた機能を利用する設定を、第1アプリケーション機能設定変更部333による変更に従って変更する機能部である。
【0040】
図19は、第1の実施形態のサーバ102にて管理するテーブルの一例である。
画面テーブル1910は、画面を管理するテーブルであり、「画面ID(主キー)」「画面名」のカラムを持つ。Webアプリケーション画面を作成する画面600(
図6)にて画面が作成されると、画面テーブル1910にレコードが登録される。
画面部品テーブル1920は、画面に配置した部品を管理するテーブルであり、「画面ID」「部品ID」「x座標」「y座標」「部品種別」「部品名」「文字数」「必須」「部品属性1」「部品属性2」…のカラムを持つ。画面を作成する画面600にて画面部品を配置し、保存ボタン619の押下を受け付けると、画面部品テーブル1920にレコードが登録される。すなわち、画面部品テーブル1920は、アプリケーションの定義情報の一例である。
【0041】
なお、「x座標」「y座標」には、部品の配置された位置を記憶し、「部品種別」には、テキストボックス・ラジオボタン・セレクトボックスなどの部品の種別を記憶する。また、「部品属性1」「部品属性2」…には、「部品種別」毎に異なる属性の値を持つことができる。
【0042】
顧客マスタテーブル1930は、作成した画面(顧客マスタ登録画面1820にて登録されたレコードが記憶されるテーブルである。
顧客マスタテーブル1930は、顧客情報を管理するマスタテーブルであり、「顧客ID(主キー)」「顧客名」「住所」「電話」「メール」のカラムを持つ。
【0043】
図6は、第1の実施形態の情報処理装置101が表示する、画面を作成する画面の一例を示す図である。画面600は、画面部品部601と部品配置部602から成る。
【0044】
画面部品部601には、画面に配置する画面部品のアイコン(ボタン)が表示されており、これらのアイコンをドラッグし、部品配置部602にドロップすることで、画面部品を画面に配置することができる。画面部品には、文字を表示するテキスト611(ラベルとも言う)、テキストボックス612、テキストエリア613、ラジオボタン614、チェックボックス615、セレクトボックス616、他画面のデータの値を参照する他画面データコピー617(ルックアップとも言う)、ボタン618などの種類がある。
【0045】
部品配置部602に画面部品を配置し、保存ボタン619を押下することにより、配置した画面部品の情報がサーバ102に送信され、画面部品テーブル1920に記憶される。
【0046】
図4は、第1の実施形態のWebアプリケーション画面に基づきWebサービスを構築するフローチャートである。
【0047】
ステップS401において、情報処理装置101のCPU201は、Webアプリケーション画面構築処理を行う。詳細は、後述する
図5にて説明する。
【0048】
ステップS402において、情報処理装置101のCPU201は、「この画面をWebサービス化しますか?」ダイアログ640(
図6)を表示し、Webサービス化する指示を受け付けた後、Webサービスの入出力項目選択を受け付け(
図6の631、
図7の731、732)、選択された入出力項目をサーバ102に送信する。すなわち、ステップS402は、取得された入力項目からWebサービスへ入力する入力データ項目の選択を受け付ける処理の一例を示すステップである。また、ステップS402は、取得された出力項目からWebサービスが出力する出力データ項目の選択を受け付ける処理の一例を示すステップである。
【0049】
つまり、アプリケーション開発者は、アプリケーション構築画面(例:
図6の630、
図7の730)において、Webサービスへの入出力項目としたい画面項目にチェックを入れることで、そのチェックに従ったWSDLを作成することができるため、構築したアプリケーションをWebサービスとして公開することができるようになる。
【0050】
ステップS403において、サーバ102のCPU201は、選択された入出力項目を受信する。
【0051】
ステップS404において、サーバ102のCPU201は、受信した入出力項目を記憶する。具体的には、画面部品テーブル1920における、受信した入出力項目に対応するレコードについて、「Webサービス」カラムに“I”または“O”を登録する。「Webサービス」カラムに“I”または“O”のどちらを登録するかは、画面630に存在するアクションボタンの種類で決定する。例えば、画面630のようにアクションボタン=“登録”、“更新”、“削除”、“検索”が存在する場合は“I”、画面730の下画面のように“登録”、“更新”、“削除”、“検索”のアクションボタンが存在しない場合は“O”とする。すなわち、ステップS404は、取得された入力項目からWebサービスへ入力する入力データ項目の選択を受け付け、受け付けた入力データ項目を管理する処理の一例を示すステップである。また、ステップS404は、取得された出力項目からWebサービスが出力する出力データ項目の選択を受け付け、受け付けた出力データ項目を管理する処理の一例を示すステップである。
【0052】
また、画面部品テーブル1920は、Webサービスへ入力する入力データ項目を管理する手段の一例である。また、画面部品テーブル1920は、Webサービスが出力する出力データ項目を管理する手段の一例である。
【0053】
ステップS405において、情報処理装置101のCPU201は、WebアプリケーションとWebサービスの提供の開始の指示を受け付ける。
【0054】
ステップS406において、情報処理装置101のCPU201は、WebアプリケーションとWebサービスの提供の要求をサーバ102に送信する。
【0055】
ステップS407において、サーバ102のCPU201は、WebアプリケーションとWebサービスの提供の要求を受信する。
【0056】
ステップS408において、サーバ102のCPU201は、Webアプリケーションの設定情報を取得する。すなわち、ステップS408は、アプリケーションへ入力する入力データおよび当該アプリケーションから出力される出力データの定義情報を取得する処理の一例を示すステップである。また、ステップS408は、管理されている入力項目の情報を取得する処理の一例を示すステップである。また、ステップS408は、管理されている出力項目の情報を取得する処理の一例を示すステップである。
【0057】
ステップS409において、サーバ102のCPU201は、取得したWebアプリケーションの設定情報を用いて、Webアプリケーションの提供を開始する。具体的には、画面テーブル1910および画面部品テーブル1920の情報を取得し、Webアプリ利用者の要求に応じて、画面情報を生成することで、Webアプリケーションとして動作させる。
【0058】
ステップS410において、サーバ102のCPU201は、Webサービスの設定情報を取得する。具体的には、画面テーブル1910および画面部品テーブル1920のWebサービス=“I”または“O”の情報を取得する。
【0059】
ステップS411において、サーバ102のCPU201は、取得したWebサービスの設定情報にWebサービスの入出力項目(Webサービスカラム=“I”または“O”の項目)が存在するか判定する。有ると判定した場合はステップS412に進み、無いと判定した場合は
図4の処理を終了する。
【0060】
ステップS412において、サーバ102のCPU201は、WSDLの作成処理を行う。詳細は、後述する
図8にて説明する。
【0061】
ステップS413において、サーバ102のCPU201は、取得したWebサービスの設定情報を用いて、Webサービスの提供を開始する。すなわち、ステップS412及びステップS413は、取得された入力データの定義情報に従ってWebサービスを構築する処理の一例を示すステップである。また、ステップS413は、アプリケーションの持つ機能をWebサービスとして公開する処理の一例を示すステップである。具体的には、画面テーブル1910および画面部品テーブル1920のWebサービス=“I”または“O”の情報を取得し、Webサービスのリクエスト文の受信に応じて、Webサービスのオペレーションを実行し、レスポンス文を返信する。
【0063】
以上により、構築したアプリケーションを用いて、アプリケーションを容易にWebサービス化することができる。
【0064】
図5は、第1の実施形態のWebアプリケーション画面構築のフローチャートである。
図5を用いて、Webアプリケーション画面を構築する処理について説明する。
【0065】
ステップS501において、情報処理装置101のCPU201は、Webアプリケーション画面を作成する開発者のログインを受け付ける。
【0066】
ステップS502において、情報処理装置101のCPU201は、Webアプリケーション画面を作成する操作を受け付ける。具体的には、表示されたメニュー(不図示)から、画面作成ボタンの押下を受け付ける。
【0067】
ステップS503において、情報処理装置101のCPU201は、Webアプリケーション画面の作成要求をサーバ102に送信する。
【0068】
ステップS504において、サーバ102のCPU201は、Webアプリケーション画面の作成要求を受信する。
【0069】
ステップS505において、サーバ102のCPU201は、Webアプリケーション画面を作成する画面情報を生成する。
【0070】
ステップS506において、サーバ102のCPU201は、生成した画面情報を情報処理装置101に送信する。
【0071】
ステップS507において、情報処理装置101のCPU201は、Webアプリケーション画面を作成する画面情報を受信する。
【0072】
ステップS508において、情報処理装置101のCPU201は、受信した画面情報を用いて、Webアプリケーション画面作成画面600(
図6)を表示する。
【0073】
ステップS509において、情報処理装置101のCPU201は、画面作成操作を受け付け、判定する。部品が配置された場合はステップS510に進み、設定ボタンが押下された場合はステップS511に進み、保存ボタンが押下された場合はステップS514に進む。
【0074】
ステップS510において、情報処理装置101のCPU201は、画面部品部601からドラッグされた画面部品を、部品配置部602のドロップされた位置に表示する。ここでは、顧客マスタ登録画面のデザインとして
図6の620のように画面部品(621〜628)が配置されたとする。
【0075】
ステップS511において、情報処理装置101のCPU201は、配置された画面部品の詳細情報を設定可能な属性設定画面(不図示)を表示する。
【0076】
ステップS512において、情報処理装置101のCPU201は、属性設定の入力を受け付ける。具体的には、属性設定画面では部品名、文字数、必須チェックボックスなど詳細情報の入力を受け付ける。
【0077】
ステップS513において、情報処理装置101のCPU201は、部品配置部602に配置された画面部品、および属性設定画面にて設定された属性情報をRAM202に記憶する。
【0078】
ステップS514において、情報処理装置101のCPU201は、RAM202から作成した画面情報を取得し、サーバ102に送信する。
【0079】
ステップS515において、サーバ102のCPU201は、作成した画面情報を受信する。
【0080】
ステップS516において、サーバ102のCPU201は、受信した画面情報を記憶する。具体的には、受信した画面情報に含まれる画面名は、画面テーブル1910に記憶する。また、配置された画面部品の情報(配置位置、部品種別、文字数、必須チェックボックス、その他の部品属性は、画面部品テーブル1920に記憶する。すなわち、ステップS516は、アプリケーションが当該アプリケーションの画面を介して入力を受け付ける入力項目及びアプリケーションが当該アプリケーションの画面に出力する出力項目を管理する処理の一例を示すステップである。
【0081】
以上で、
図5の画面作成処理の説明を終了する。
【0082】
図8は、WSDL生成のフローチャートの一例を示す図である。
【0083】
ステップS801において、サーバ102のCPU201は、Webサービス用の入出力定義を解析する。具体的には、画面部品テーブル1920を「Webサービス」カラム=“I”または“O”で検索し、ヒットしたレコードを取得する。
【0084】
ステップS802において、サーバ102のCPU201は、取得した入出力定義の情報を基にして、
図20の2003のようなデータ取得のWebサービスインタフェースコードを生成する。具体的には、入出力定義コード名を用いて、戻り値を“WSIo”+ 入出力定義コード名 +“GetDataResult”とし、メソッド名を 入出力定義コード名+“_getData”として出力し、パラメータを引数とする。
【0085】
なお、このメソッドは、Webサービスを利用する端末から、getDataのWebサービスが呼び出されたときに実行される。
【0086】
また、アクション項目にBP(ビジネスプロセス)定義がある場合は、
図20の2004のようなビジネスプロセスを呼び出すWebサービスインタフェースコードを生成する。具体的には、入出力定義コード名を用いて、戻り値を“WSIoActionResult”、メソッド名を 入出力定義コード名 +“_exec”+ アクションのコード名として出力し、パラメータを引数とする。
【0087】
なお、このメソッドは、Webサービスを利用する端末から、BP(ビジネスプロセス)のWebサービスが呼び出されたときに実行される。
【0088】
ステップS803において、サーバ102のCPU201は、取得した入出力定義の情報と同じ画面に存在するアクションボタンを取得した入出力定義の情報から取得し、アクションボタンの種類によって判定する。アクションボタン=“登録”、“更新”、“削除”の場合はステップS804に進み、アクションボタン=“検索”の場合はステップS806に進む。
【0089】
ステップS804において、BPリクエスト生成(
図13)を行う。この処理については、
図13にて詳細を説明する。
【0090】
ステップS805において、BPレスポンス生成(
図15)を行う。この処理については、
図15にて詳細を説明する。
【0091】
なお、BPリクエスト/BPレスポンスは対になっており、それぞれアクション実行とアクション結果取得のために利用される。
【0092】
ステップS806において、サーバ102のCPU201は、getDataリクエスト生成(
図9)を行う。この処理については、
図9にて詳細を説明する。
【0093】
ステップS807において、サーバ102のCPU201は、getDataレスポンス生成(
図11)を行う。この処理については、
図11にて詳細を説明する。
【0094】
なお、getDataリクエスト/getDataレスポンスは対になっており、主に画面情報を取得するために利用される。
【0096】
図9は、BP(ビジネスプロセス)リクエスト生成のフローチャートの一例を示す図である。
【0097】
ステップS901において、サーバ102のCPU201は、WSDLにビジネスプロセス定義を出力する(
図10の1001)。具体的には、入出力定義コード名とアクションの項目コード名を用いて、operation name= 入出力定義コード名 +“_exec”+ アクションの項目コード名 +message= 入出力定義コード名 +“_exec”+ アクションの項目コード名 +“Request” とする。これにより、「IO002_WSDL_execINSERT」という登録処理がWebサービスとして公開され、外部アプリケーションから利用することができるようになる。
【0098】
ステップS902において、サーバ102のCPU201は、Webサービス用の入出力定義の有無を判定する。ある場合はステップS904に進み、ない場合は
図9の処理を終了する。
【0099】
ステップS903において、サーバ102のCPU201は、WSDLにビジネスプロセスへのパラメータを出力する(
図14の1402)。具体的には、入出力定義コード名とアクションの項目コード名を用いて、element=入出力定義コード名 +“_exec”+ アクションの項目コード名 とする。これにより、登録処理「IO002_WSDL_execINSERT」の呼出し時に、外部アプリケーションからパラメータを与えることができるようになる。
【0100】
ステップS904において、サーバ102のCPU201は、Webサービス用の入出力定義から、入出力項目を取得し、WSDLに項目定義を出力する(
図10の1003)。すなわち、ステップS904は、管理されている入力データ項目をWebサービスへ入力する入力データ項目として定義したWebサービス定義情報を生成する処理の一例を示すステップである。
【0101】
具体的には、入出力定義画面(入出力)1900の対象データモデル1902に設定されたデータモデルの項目コード2001(
図20)を用いて、 name=項目コードに従ってデータの型名を決定し、 type=“xs:”+型名 とする。
図14の1403の記述から、登録処理のパラメータは、String型の「item_key」、String型の「item_param」、String型の「item_value」であるということがわかる。これにより、Webサービスの実行時のパラメータを公開できるようになる。
【0103】
図10は、BPリクエストWSDL1000の一例を示す図である。
図10は、入出力定義にビジネスプロセスが定義されたアクション項目があり、かつ入出力項目にIOまたはI項目が存在する場合のBPリクエストWSDLの一例である。
【0104】
図11は、BPレスポンス生成のフローチャートの一例を示す図である。
【0105】
ステップS1101において、サーバ102のCPU201は、WSDLにビジネスプロセス定義を出力する(
図12の1201)。具体的には、入出力定義コード名とアクションの項目コード名を用いて、operation name= 入出力定義コード名 +“_exec”+アクションの項目コード名 +message= 入出力定義コード名 +“_exec”+ アクションの項目コード名 +“Response” とする。これにより、登録処理「IO002_WSDL_execINSERT」を外部アプリケーションから利用した時の戻り値を公開できるようになる。
【0106】
ステップS1102において、サーバ102のCPU201は、WSDLに次画面情報を出力する(
図12の1202)。具体的には、nextIoの値が空の場合は、画面遷移を行わずに自画面に遷移することを表すものとする。これにより、登録処理「IO002_WSDL_execINSERT」を利用した後に遷移する入出力を公開できるようになる。
【0107】
ステップS1103において、サーバ102のCPU201は、WSDLに次入出力パラメータ定義を出力する(
図12の1203)。すなわち、ステップS1103は、管理されている出力データ項目をWebサービスが出力する出力データ項目として定義したWebサービス定義情報を生成する処理の一例を示すステップである。これにより、登録処理「IO002_WSDL_execINSERT」を利用した結果、次の画面へどのような引数が渡されるかを公開できるようになる。
【0109】
図13は、getDataリクエスト生成のフローチャートの一例を示す図である。
【0110】
ステップS1301において、サーバ102のCPU201は、WSDLにデータ取得処理のリクエストの記述を出力する(
図14の1401)。具体的には、入出力定義コード名を用いて、 operation name= 入出力定義コード名+“_getData”、message= 入出力定義コード名+“_getDataRequest” のように出力する。これにより、「IO002_WSDL_getData」という検索処理がWebサービスとして公開され、外部アプリケーションから利用することができるようになる。
【0111】
ステップS1302において、サーバ102のCPU201は、入出力定義にパラメータがあるか否かを判定し、ある場合はステップS1303に進み、ない場合は
図13の処理を終了する。具体的には、パラメータを示す文字列が含まれる場合は、
図14の1402の記述を出力し、ステップS1303に進む。1402の記述は、具体的には、入出力定義コード名を用いて、 element=“ns:”+ 入出力定義コード名 +“_getData” とする。これにより、検索処理「IO002_WSDL_getData」を呼び出す際に、パラメータを送ることができるようになる。
【0112】
ステップS1303において、WSDLに
図14の1403のような記述をパラメータ数だけ出力する。すなわち、ステップS1303は、管理されている入力データ項目をWebサービスへ入力する入力データ項目として定義したWebサービス定義情報を生成する処理の一例を示すステップである。具体的に、1403の記述は、パラメータの通し番号N(
【0113】
数字の数字部)を用いて、 name=“param”+N とする。
【0115】
図14は、getDataリクエストWSDL1400の一例を示す図である。
図15は、getDataレスポンス生成のフローチャートの一例を示す図である。
【0116】
ステップS1501において、サーバ102のCPU201は、WSDLにデータ取得処理のレスポンスの記述を出力する(
図16の1601)。具体的には、入出力定義コード名を用いて、 operation name= 入出力定義コード名+“_getData”、 message= 入出力定義コード名+“_getDataResponse” のように出力する。これにより、Webサービスとして公開された検索処理「IO002_WSDL_getData」の戻り値を公開することができるようになる。
【0117】
ステップS1502において、サーバ102のCPU201は、Webサービス用の入出力定義から、入出力項目を取得し、WSDLに項目定義を出力する(
図12の1202)。すなわち、ステップS1502は、管理されている出力データ項目をWebサービスが出力する出力データ項目として定義したWebサービス定義情報を生成する処理の一例を示すステップである。
【0118】
具体的には、入出力定義画面(入出力)1900の対象データモデル1902に設定されたデータモデルの項目コードを用いて、 name=項目コード とし、データの型名を決定し、 type=“xs:”+型名 とする。
図12の1202の記述から、検索処理の結果として、String型の「item_key」と、String型の「item_value」という項目が出力されることがわかる。これにより、Webサービスの実行結果の戻り値に含まれる項目IDと型情報を公開できるようになる。
【0119】
なお、
図20は、Webアプリケーション構築ツールによって生成されたWebアプリケーションおよびWebサービスが利用するデータモデル定義画面の一例を示す図である。この画面で定義する各項目はWebアプリケーションおよびWebサービスが接続するデータベースのテーブルのカラム名と一致する。
【0121】
図16は、getDataレスポンスWSDL1600の一例を示す図である。
図16は、入出力定義に対象条件1903の設定があり、かつ出力項目が存在する場合のレスポンスWSDLの一例である。
【0122】
以上の
図9〜
図15の処理によってWSDLファイルを生成することにより、プログラムへ引数として入力される項目を定義する入力定義情報やプログラムから処理結果として出力する項目を定義する出力定義情報を管理するアプリケーション開発ツールにおいて、アプリケーションの入出力定義情報を用いてWSDLファイルを生成することができないという問題を解決することができる。
また、
図9〜
図15の処理によってWSDLファイルを生成することにより、アプリケーションの画面を介して入力される項目を定義する入力定義情報やアプリケーションの画面に出力する項目を定義する出力定義情報を管理するアプリケーション開発ツールにおいて、アプリケーションの入出力定義情報を用いてWSDLファイルを生成することができないという問題を解決することができる、ということもできる。
【0123】
図17は、第1の実施形態のWebアプリケーション画面及びWebサービスを利用する処理の一例を示すフローチャートである。
図17を用いて、作成したWebアプリケーション画面及びWebサービスを利用する処理について説明する。
図18は、第1の実施形態の情報処理装置101において、作成したWebアプリケーションの一部をWebサービス化して実行した画面の一例を示す図である。
ここでは、
図18のような顧客マスタ管理アプリケーションのうち、顧客マスタテーブル1930に対して行う処理である、登録・更新・検索のうち少なくとも1つの機能をWebサービス化した場合を想定する。なお、本実施形態においては、サーバ102において、Webアプリケーション及びWebサービスの機能を提供するとした、この方法に限定するものではなく、Webアプリケーション及びWebサービスの機能を異なるサーバが提供するとしてもよい。
【0124】
図17の情報処理装置101は、構築したWebアプリケーションを利用するアプリ利用者が使用する情報処理装置である。なお、アプリ利用者とアプリ開発者が同一人物というケースも多いため情報処理装置101と記したが、
図17の情報処理装置101は、当然異なる情報処理装置であってもよい。
【0125】
ステップS1701において、情報処理装置101のCPU201は、作成したWebアプリケーション画面を利用するアプリ利用者のログインを受け付ける。
【0126】
ステップS1702において、情報処理装置101のCPU201は、Webアプリケーション画面の利用操作を受け付ける。具体的には、表示されたメニュー(不図示)から、利用する画面に遷移するリンクの押下を受け付ける。
【0127】
ステップS1703において、情報処理装置101のCPU201は、Webアプリケーション画面の利用の要求をサーバ102に送信する。
【0128】
ステップS1704において、サーバ102のCPU201は、Webアプリケーション画面の利用の要求を受信する。
【0129】
ステップS1705において、サーバ102のCPU201は、要求された画面の画面情報を生成する。具体的には、画面テーブル1910と画面部品テーブル1920を用いて、画面情報を生成する。
【0130】
ステップS1706において、サーバ102のCPU201は、生成した画面情報を情報処理装置101に送信する。すなわち、ステップS1706は、Webサービスの機能が実行された後、管理されている出力データ項目に従って出力データを送信する処理の一例を示すステップである。
【0131】
ステップS1707において、情報処理装置101のCPU201は、画面情報を受信する。
【0132】
ステップS1708において、情報処理装置101のCPU201は、受信した画面情報を用いて、画面(例えば、
図18の顧客マスタ登録画面1810)を表示する。なお、第1の実施形態においては、ステップS1708にて表示される画面は、顧客マスタ登録画面1810のような、データ登録画面としたが、これに限定するものではなく、顧客マスタ一覧画面1830のような、データ一覧画面やデータ検索画面であってもよい。
【0133】
ステップS1709において、情報処理装置101のCPU201は、画面操作を受け付け、判定する。データ登録ボタン(
図18の1811)が押下された場合はステップS1710に進み、データ編集ボタン(不図示)が押下された場合はステップS1711に進み、データ検索ボタン(
図6の622)が押下された場合はステップS1712に進み、閉じるボタン(不図示)が押下された場合はこの画面利用処理を終了する。
【0134】
ステップS1710において、情報処理装置101のCPU201は、データ登録画面(例えば、顧客マスタ登録画面1820)を表示し、データ入力を受け付ける。
【0135】
ステップS1711において、情報処理装置101のCPU201は、データ編集画面(例えば、顧客マスタ編集画面(不図示))に編集ボタンで選択されたデータを表示し、データ編集を受け付ける。
【0136】
ステップS1712において、情報処理装置101のCPU201は、データ一覧画面(例えば、顧客マスタ一覧画面1830)の検索項目に入力された値を用いて検索条件を作成する。
【0137】
ステップS1713において、情報処理装置101のCPU201は、受け付けた画面操作に従って、登録・更新・検索の要求、並びに、ステップS1710若しくはステップS1711にて受け付けたデータ又はステップS1712にて作成した検索条件をWebサービスへ入力する入力データとしてサーバ102に送信する。なお、登録・更新・検索の機能のうち、Webサービス化された機能を利用する場合、登録・更新はBPリクエストWSDL1000、検索はgetDataリクエストWSDL1400に従って、リクエストメッセージを作成し、サーバ102へ送信する。
なお、本実施形態においては、Webサービスの利用も情報処理装置101が行うとしたが、情報処理装置101からの利用に限定するものではなく、他のWebアプリケーションを提供するサーバ等がサーバ102によって提供されているWebサービスを利用するとしてもよい。その場合、Webアプリケーション構築サービスで構築した画面を介さずに、サーバ102に対して直接、SOAP等のリクエストメッセージを送信するケースが考えられる。なお、ステップS1718のレスポンスメッセージの送信先は、当然ながら、Webサービスの実行を要求したサーバとなる。
【0138】
ステップS1714において、サーバ102のCPU201は、要求及び入力データを受信し、要求された機能の種類を判定する。すなわち、ステップS1714は、管理されている入力データ項目に対応する入力データを受信する処理の一例を示すステップである。データ登録の場合はステップS1715に進み、データ検索の場合はステップS1716に進み、データ更新の場合はステップS1717に進む。
【0139】
ステップS1715において、サーバ102のCPU201は、受信したデータ登録要求に従って、データをテーブルに登録する。具体的には、登録ボタン1821が押下されて、データ登録要求を受信した場合は、顧客マスタ登録画面1820に入力された値を用いて、Webアプリケーション又はWebサービスの機能を実行することにより、顧客マスタテーブル1930に登録する。
【0140】
ステップS1716において、サーバ102のCPU201は、受信したデータ検索要求に従って、テーブルを検索する。具体的には、検索ボタン1836が押下されて、データ検索要求を受信した場合は、顧客マスタ一覧画面1830の検索条件部に入力された検索条件を用いて、Webアプリケーション又はWebサービスの機能を実行することにより、顧客マスタテーブル1930を検索する。
【0141】
ステップS1717において、サーバ102のCPU201は、受信したデータ更新要求に従って、テーブルのデータを更新する。具体的には、更新ボタン(不図示)が押下されて、データ更新要求を受信した場合は、顧客マスタ編集画面に入力された値を用いて、Webアプリケーション又はWebサービスの機能を実行することにより、顧客マスタテーブル1930の該当データを更新する。
【0142】
すなわち、ステップS1715〜S1717は、受信した入力データを用いて、公開されているアプリケーションの持つ機能を実行する処理の一例を示すステップである。
【0143】
ステップS1718において、サーバ102のCPU201は、登録・更新・検索を行った後に表示する画面情報を生成し、画面情報を情報処理装置101に送信する(ステップS1706)。なお、登録・更新・検索の機能のうち、Webサービス化された機能を利用した場合、登録・更新はBPレスポンスWSDL1200、検索はgetDataレスポンスWSDL1600に従って、レスポンスメッセージを作成し、Webサービスの実行を要求した情報処理装置101へ送信する。
【0144】
以上で、
図17の画面利用処理の説明を終了する。
【0145】
以上により、Webアプリ開発者は、多くの設定変更やプログラミングをすることなく、既存のWebアプリケーションの一部をWebサービス化することができるため、既存のアプリケーションを容易にWebサービス化することができるようになる。
【0146】
〔第2の実施形態〕
第1の実施形態は、既存のアプリケーションの画面項目からWebサービスの入出力項目とする画面項目を選択することにより、既存のアプリケーションを容易にWebサービス化する仕組みである。
【0147】
第2の実施形態は、既存のアプリケーションの画面項目以外の項目もWebサービスの入出力項目とすることにより、既存のアプリケーションを容易にWebサービス化する仕組みである。
【0148】
図21は、第2の実施形態のWebアプリケーション画面に基づきWebサービスを構築するフローチャートの一例を示す図である。
【0149】
図22は、第2の実施形態のWebアプリケーション(登録画面)構築/Webサービス入力項目定義の画面の一例を示す図である。
【0150】
図23は、第2の実施形態のサーバ102にて管理するテーブルの一例を示す図である。
【0151】
図21のフローチャートについて説明する。なお、第2の実施形態では、第1の実施形態における
図4のフローチャートを
図21に置き換え、第1の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
【0152】
ステップS2101において、情報処理装置101のCPU201は、Webサービス独自の入出力項目の設定を受け付ける(
図22の2201、2202)。すなわち、ステップS2101は、取得された入力項目以外の項目をWebサービスへ入力する入力データ項目として追加する指示を受け付ける処理の一例を示すステップである。また、ステップS2101は、取得された出力項目以外の項目をWebサービスから出力する出力データ項目として追加する指示を受け付ける処理の一例を示すステップである。
【0153】
ここでは、Webアプリケーション画面から登録された顧客データと、Webサービスから登録された顧客データを区別するため、Webサービス独自の入力項目「登録元2201」の値として「固定値2202(=“Webサービス”)」を追加する設定を受け付けたとする。「登録元2201」及び「固定値2202」は斜体で表示することにより、Webサービス独自の入力項目であることがわかる。
【0154】
なお、
図22では、Webサービス独自の入力項目の設定を受け付けたが、入力項目に限定するものではなく、Webサービス独自の出力項目の設定を受け付けてもよい。Webサービス独自の出力項目は、Webアプリケーション画面には出力されないが、Webサービスから出力されるレスポンスには含まれることになる。
【0155】
ステップS2102において、情報処理装置101のCPU201は、ステップS403にて受信したWebサービス入出力項目にWebサービス独自の入出力項目が含まれているか否かを判定する。具体的には、ステップS403にて受信したWebサービス入出力項目のすべての項目が画面部品テーブル1920にレコードとして存在するか否かに従って判定する。なぜなら、既存のWebアプリケーションの画面項目は、画面部品テーブル1920にレコードとして存在し、Webサービス独自の入出力項目は、この時点で画面部品テーブル1920にレコードとして存在しないからである。
【0156】
Webサービス独自の入出力項目が含まれている場合はステップS2103に進み、含まれていない場合はステップS404に進む。
【0157】
ステップS2103において、サーバ102のCPU201は、ステップS403(
図21)にて受信したWebサービス入出力項目のうち、Webサービス独自の入出力項目であると判定された項目を画面部品テーブル1920にレコードとして登録する(
図23の2301)。なお、「Webサービス」カラムには、“I(入力)”または“O(出力)”を設定する。
【0158】
これにより、Webサービス独自の入出力項目を追加することができるようになるため、Webアプリケーション画面から登録されたデータと、Webサービスから登録されたデータを区別したり、Webアプリケーションのレスポンスにはない項目をWebサービスのレスポンスに追加することができるようになる。
【0159】
つまり、既存のアプリケーションを容易にWebサービス化することができるようになる。
【0160】
よって、第2の実施形態のWebサービスが実行されるときのステップS1714(
図17)は、Webサービス独自の追加入力データを受信する処理の一例を示すステップである。また、第2の実施形態のWebサービスが実行されるときのステップS1706(
図17)は、Webサービスの機能が実行された後、Webサービス独自の出力データを送信する処理の一例を示すステップである。
【0161】
〔第3の実施形態〕
第1の実施形態は、既存のアプリケーションの画面項目からWebサービスの入出力項目とする画面項目を選択することにより、既存のアプリケーションの持つ1つの機能を容易にWebサービス化する仕組みである。
【0162】
第3の実施形態は、既存のアプリケーションの画面項目からWebサービスの入出力項目とする画面項目を機能毎に選択することにより、既存のアプリケーションの持つ複数の機能を一度にWebサービス化する仕組みである。
【0163】
図24は、第3の実施形態のWebアプリケーション画面に基づきWebサービスを構築するフローチャートの一例を示す図である。
【0164】
図25は、第3の実施形態のWebアプリケーション(登録画面)構築/Webサービス入力項目定義の画面の一例を示す図である。
【0165】
図26は、第3の実施形態のサーバ102にて管理するテーブルの一例を示す図である。
【0166】
図24のフローチャートについて説明する。なお、第3の実施形態では、第1の実施形態における
図4のフローチャートを
図24に置き換え、第1の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
【0167】
ここでは、Webアプリケーション画面作成画面620(
図25)にて、顧客マスタのレコードについて登録/検索/更新/削除処理を行う4機能を備えるWebアプリケーション画面を作成し、保存ボタン2501の押下を受け付けた後、「この画面をWebサービス化しますか?」ダイアログ640(
図25)を表示し、Webサービス化する指示(はいボタン押下)を受け付けたケースを想定する。
【0168】
ステップS2401において、情報処理装置101のCPU201は、WebサービスのCRUD機能毎に入出力項目の設定を受け付けることが可能な入力フォーム2503(
図25)を表示する。CRUDとは、Create(登録)/Read(検索)/Update(更新)/Delete(削除)の4つの機能を表している。入力フォーム2503は、Webアプリケーション画面作成画面620(
図25)に配置した入出力項目毎のうち、CRUDの機能毎にどの入出力項目を使うかを設定するフォームである。例えば、Webサービスへ入力する入力データ項目とする場合は“I”、Webサービスが出力する出力データ項目とする場合は“O”、入力データ項目兼出力データ項目とする場合は“IO”とする。
【0169】
図25の入力フォーム2503は、Create機能を持つWebサービス(つまり、顧客登録)は、「顧客ID」「顧客名」「住所」「電話番号」「メール」「登録(ボタン)」を入力データ項目とし、Read機能を持つWebサービス(つまり、顧客検索)は、「顧客ID」「検索(ボタン)」を入力データ項目、「顧客ID」「顧客名」「住所」「電話番号」「メール」を出力データ項目とし、Delete機能を持つWebサービス(つまり、顧客削除)は、「顧客ID」「削除(ボタン)」を入力データ項目とする、Webサービスをこれから構築することを表している。なお、入力フォーム2503のU(=Update)の列には、“I”、IO”、及び“IO”の設定が無いため、Update機能を持つWebサービス(つまり、顧客更新)は作成しない。
【0170】
また、Webアプリケーション画面作成画面620(
図25)にて配置した「登録(ボタン)」「検索(ボタン)」「更新(ボタン)」「削除(ボタン)」は、WebサービスのCRUD機能のうち、どの機能を実行するかの機能識別情報となる。つまり、Webサービスへ入力する入力データに項目名「登録」のデータが含まれていれば、登録機能を実行することになる。
【0171】
すなわち、第3の実施形態のWebサービスが実行されるときのステップS1714(
図17)は、Webサービスの機能を識別する機能識別情報を受信する処理の一例を示すステップである。また、第3の実施形態のWebサービスが実行されるときのステップS1714(
図17)は、受信した機能識別情報に対応する機能に対応付けて管理されている入力データ項目に対応する入力データを受信する処理の一例を示すステップである。また、第3の実施形態のWebサービスが実行されるときのステップS1715〜S1717(
図17)は、受信した入力データを用いて、機能識別情報に対応する機能を実行する処理の一例を示すステップである。
【0172】
入力フォーム2503の設定値は、ステップS403(
図24)にてサーバ102が受信し、ステップS404(
図24)にて受信した入力フォーム2503の項目を画面部品テーブル1920(
図26)のレコードに反映する(
図26の2600)。なお、第3の実施形態の画面部品テーブル1920(
図26)には、Webサービスの「C」「R」「U」「D」の4カラム(
図26の2600)を持ち、入力フォーム2503の項目値に従って、“I”、“O”又は“IO”を設定する。すなわち、第3の実施形態における画面部品テーブル1920(
図26)は、機能毎に入力データ項目を管理する手段の一例である。
【0173】
その後のステップS412(
図24)にてWebサービスカラム2600の設定値に従ってWSDLを生成し、ステップS413(
図24)にてWebサービスの提供を開始することにより、既存のアプリケーションの持つ複数の機能を一度にWebサービス化することができる。
【0174】
なお、本実施形態においては、画面部品テーブル1920(
図26)にWebサービスカラム2600を持ち、そのカラムの値に従って、WSDLを生成するとしたが、Webサービスカラム2600を持つことは必須ではなく、ステップS403(
図24)にて受信した入力フォーム2503の項目値に従って、提供するWebサービスの機能を定義したWSDLを生成するとしてもよい。
【0175】
なお、本実施形態においては、アプリケーション及びWebサービスの持つ機能をCRUDの4つとしたが、CRUDに限定するものではなく、アプリケーションがその他の機能を持ち、それらの機能についても一度にWebサービス化できるとしてもよい。
【0176】
以上により、既存のアプリケーションの画面項目からWebサービスの入出力項目としたい画面項目を機能毎に選択することにより、既存のアプリケーションの持つ複数の機能を一度にWebサービス化することができる。つまり、既存のアプリケーションを容易にWebサービス化することができるようになる。
【0177】
アプリケーションのWebサービス化において入力フォーム2503を用いることで、複数の機能を持つアプリケーションであっても一度にWebサービス化でき、かつ、アプリケーション及びWebサービスの機能を一覧化してその差異を視覚化できるようになる。
【0178】
なお、第1〜第3の実施形態において、既存のアプリケーションを容易にWebサービス化するとしたが、Webサービス提供開始に伴い既存のアプリケーションの持つ機能はそのまま継続してもよいし、機能を停止させてWebサービスに移行するとしてもよい。
【0179】
また、第1〜第3の実施形態の既存アプリケーションのWebサービス化に伴い、アプリケーションのビジネスプロセスを当該アプリケーション及びWebサービスの両者が利用してもよいし、アプリケーションのビジネスプロセスをWebサービス用にコピーしてアプリケーション及びWebサービスが異なるビジネスプロセスを利用するとしてもよい。どちらにせよ、Webサービス化のために新規のビジネスプロセスをコーディングする必要がなくなるため、開発及びテスト工数を削減することができ、既存のアプリケーションで実績のある高品質なビジネスプロセスを利用することができる。
【0180】
〔第4の実施形態〕
第3の実施形態は、既存のアプリケーションの画面項目からWebサービスの入出力項目とする画面項目を機能毎に選択することにより、既存のアプリケーションの持つ複数の機能を一度にWebサービス化する仕組みである。
第4の実施形態は、既存のアプリケーションの画面項目からWebサービスの入出力項目とする画面項目を機能毎に選択することにより、既存のアプリケーションの持つ機能をWebサービス化した場合に、当該アプリケーションが当該Webサービス化した機能を利用するよう自動で改修する仕組みである。
【0181】
図27は、第4の実施形態のWebアプリケーション画面に基づきWebサービスを構築するフローチャートの一例を示す図である。
図28は、第4の実施形態のWebアプリケーション(登録画面)構築/Webサービス入力項目定義の画面の一例を示す図である。
【0182】
図27のフローチャートについて説明する。なお、第4の実施形態では、第1の実施形態における
図4のフローチャートを
図27に置き換え、第1の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
ここでは、Webアプリケーション画面作成画面620(
図28)にて、顧客マスタのレコードについて登録/検索/更新/削除処理を行う4機能を備えるWebアプリケーション画面を作成し、保存ボタン2801(
図28)の押下を受け付けた後、「この画面をWebサービス化しますか?」ダイアログ640(
図28)を表示し、Webサービス化する指示(はいボタン押下)を受け付けたケースを想定する。
【0183】
ステップS2701において、情報処理装置101のCPU201は、第3の実施形態と同様に、WebサービスのCRUD機能毎に入出力項目の設定を受け付けることが可能な入力フォーム2803(
図28)を表示する。入力フォーム2803は、Webアプリケーション画面作成画面620(
図28)に配置した入出力項目毎のうち、CRUDの機能毎にどの入出力項目を使うかを設定するフォームである。例えば、Webサービスへ入力する入力データ項目とする場合は“I”、Webサービスが出力する出力データ項目とする場合は“O”、入力データ項目兼出力データ項目とする場合は“IO”とする。
【0184】
図28の入力フォーム2803は、Read機能を持つWebサービス(つまり、顧客検索)は、「顧客ID」「検索(ボタン)」を入力データ項目、「顧客ID」「顧客名」「住所」「電話番号」「メール」を出力データ項目とする、Webサービスをこれから構築することを表している。なお、入力フォーム2803のC・U・D列には、“I”、IO”、及び“IO”の設定が無いため、Create、Update、Delete機能を持つWebサービスは作成しない。
【0185】
ステップS2702において、情報処理装置101のCPU201は、Webサービスに完全移行するか否かを確認するダイアログ2804(
図28)を表示し、「Webアプリに残す(=WebアプリとWebサービスに同じ機能を併存させる)」「Webアプリから削除する(=Webサービスに機能を完全に移行させる)」の選択を受け付ける。なお、本実施形態においては、Webサービス化した機能をWebアプリに残すか削除するかの選択としたが、これに限定するものではなく、例えば、Webサービス化した機能は、Webアプリの機能ではなくWebサービス化した機能を積極的に利用するか否か等の選択であってもよい。また、Webサービス化した機能を利用している処理をリスト表示し、それらについて、Webアプリの機能とWebサービス化した機能のどちらを利用するかを選択させてもよい。
【0186】
ステップS2703において、サーバ102のCPU201は、ステップS403(
図27)にて入力フォーム2803の設定値と共に受信したダイアログ2804の選択値を判定する。「Webアプリに残す」の場合はステップS404(
図27)に進み、「Webアプリから削除する」の場合はステップS2704に進む。
【0187】
ステップS2704において、サーバ102のCPU201は、Webサービスを作成する機能を利用している処理(例えば、ビジネスプロセス)について、これまでのWebアプリの機能ではなく、新しく生成されるWebサービスの機能を利用するよう設定を変更する。
【0188】
ステップS2705において、サーバ102のCPU201は、Webサービスを作成する機能について、これまで使用していたWebアプリの機能を削除する。
【0189】
このステップS2704及びステップS2705については、
図28及び
図29を用いて、具体的に説明する。
まず、前提として、
図28の画面620で構築したWebアプリケーション「顧客マスタ管理」には、顧客登録(C)/顧客検索(R)/顧客更新(U)/顧客削除(D)の4機能が備わっているとする。また、顧客登録機能は、顧客登録画面にて「登録ボタン」の押下を受け付けると、顧客登録画面に入力されている「顧客ID」の値を検索キーにして、顧客マスタテーブル1930を検索し、当該「顧客ID」を持つレコード件数=0件の場合、顧客登録画面に入力されている顧客情報(顧客ID,、顧客名、住所、電話番号)を用いて、顧客マスタテーブル1930にレコード登録する機能であるとする。
【0190】
図29は、第4の実施形態のWebアプリケーション/Webサーバの設定の一例を示す図である。
入出力定義2910は、顧客登録画面の「登録ボタン」の定義であり、押下を受け付けると、Webアプリケーション用のビジネスプロセス「BP_CUST_INSERT」を実行するよう定義されている。
【0191】
ビジネスプロセス2920は、顧客登録を実行する「BP_CUST_INSERT」の定義であり、「実行処理」の内容から、Webアプリケーション用のビジネスプロセス「BP_CUST_getData」を実行し、レコード件数=0件の場合、顧客マスタにレコードを登録する処理であることがわかる。
同様に、入出力定義2930は、顧客検索画面の「検索ボタン」の定義であり、押下を受け付けると、Webアプリケーション用のビジネスプロセス「BP_CUST_getData」を実行するよう定義されていること、ビジネスプロセス2940は、顧客検索を実行するWebアプリケーション用のビジネスプロセス「BP_CUST_getData」であることがわかる。
【0192】
このケースの場合に、入力フォーム2803(
図28)にてRead機能をWebサービス化すること(ステップS2701)、ダイアログ2804(
図28)にて「Webアプリから削除する」の選択を受け付けた(ステップS2702)場合、ステップS2704において、Webサービスを作成する機能(例:Webアプリケーション用のビジネスプロセス「BP_CUST_getData」)を利用している処理(例:Webアプリケーション用のビジネスプロセス「BP_CUST_INSERT」)は、この後のステップS412(
図27)にて生成されるWebサービス用のビジネスプロセス「IO002_WSDL_getData」を利用するように設定を変更する(
図29の2970及び2960)。
【0193】
これにより、Webサービス化した機能は、Webアプリ用の機能として残すか、それともWebサービスに機能を完全に移行するかをアプリ開発者が選択することができる。そして、後者を選択した場合は、Webアプリ用のその機能を削除し、Webサービスに完全移行するため、機能設定を一元管理することが可能になり、かつ、このステップS2704により、その機能を利用する処理は、新たに生成されたWebサービスの機能を利用するように自動的に設定が変更されるため、Webアプリケーションの持つ機能を容易にWebサービス化することができるようになる。
【0194】
以上により、既存のアプリケーションが持つ機能をWebサービス化し、その機能をWebサービスに完全移行する場合は、その機能を利用する処理についても、自動でWebサービスを利用するよう自動で改修できるため、既存のアプリケーションを容易にWebサービス化することができるようになる。つまり、既存のアプリケーションが持つ機能をWebサービス化し、その機能をWebサービスに完全移行する場合において、開発者の利便性を向上させる
【0195】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0196】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0197】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0198】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0199】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0200】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0201】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0202】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。