JP2011059751A - プログラム生成システムおよびプログラム生成装置およびプログラム生成方法およびプログラムならびに記録媒体 - Google Patents

プログラム生成システムおよびプログラム生成装置およびプログラム生成方法およびプログラムならびに記録媒体 Download PDF

Info

Publication number
JP2011059751A
JP2011059751A JP2009205497A JP2009205497A JP2011059751A JP 2011059751 A JP2011059751 A JP 2011059751A JP 2009205497 A JP2009205497 A JP 2009205497A JP 2009205497 A JP2009205497 A JP 2009205497A JP 2011059751 A JP2011059751 A JP 2011059751A
Authority
JP
Japan
Prior art keywords
file
web service
mapping file
mapping
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009205497A
Other languages
English (en)
Other versions
JP2011059751A5 (ja
JP5359704B2 (ja
Inventor
Fumihiro Shibamoto
文洋 柴本
Takanobu Tsuruno
貴信 鶴野
Isao Ueda
勲 上田
Maho Yamada
真穂 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon IT Solutions Inc
Original Assignee
Canon Software Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Software Inc filed Critical Canon Software Inc
Priority to JP2009205497A priority Critical patent/JP5359704B2/ja
Publication of JP2011059751A publication Critical patent/JP2011059751A/ja
Publication of JP2011059751A5 publication Critical patent/JP2011059751A5/ja
Application granted granted Critical
Publication of JP5359704B2 publication Critical patent/JP5359704B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】WebサービスのWSDLによるプロキシクラス自動生成技術は知られているが、Webサービスの仕様変更によるWSDL変更の際にプロキシクラスの変更と同時に、Webアプリケーションプログラムも変更しなければならない場合があった。
【解決手段】Webアプリケーションプログラム106とプロキシクラス107の間にマッピングファイル109を生成し、Webアプリケーションプログラム106のデータモデルとプロキシクラス107からの入出力のデータモデルをマッピングさせる。これにより、Webサービスプログラム114の仕様変更の際には、プロキシクラスのWSDLによる自動生成技術と、マッピングファイルの変更のみにより、Webアプリケーションプログラム106を変更することのないマッピングファイルを生成する構成を有する。
【選択図】図1

Description

本発明は、コンピュータで実行するプログラムを生成するプログラム生成制御に関する。
サーバサイドのアプリケーションを他のアプリケーションから呼び出し、利用する仕組みとして、Webサービスが知られている。Webサービスとは、HTTP(HyperText Transport Protocol)などのインターネット関連技術を応用して、SOAP(Simple Object Access Protocol)と呼ばれるXML(Extensible Markup Language)形式のプロトコルを用いメッセージの送受信を行うサービスのことである。
上記の場合、Webサービスを呼び出すクライアントでは、公開されているWSDL(Web Services Description Language)を元に生成されたプロキシクラスファイルを利用することが多い。プロキシクラスとは、クライアントサイドにあって、サーバサイドのアプリケーションをあたかもローカルのライブラリにアクセスするのと同じ要領でアクセスできる役割を担うものである。
そのWebサービスの仕様が変更された場合、サーバサイドのWSDLが変更され、WSDLから生成されるプロキシクラスを変更してクライアントサイドで利用することになる。このWebサービスの変更に対して、WSDLの変更を検知し、プロキシクラスを自動的に変更する方法が特許文献1に記載されている。
特開2006−195555号公報
しかしながら、プロキシクラスを呼び出すWebアプリケーションプログラムについては動的に変更することが出来ず、Webサービスの変更に対して、Webアプリケーションプログラムそのものを修正する必要があるという問題がある。
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、Webサービスならびにプロキシクラスが変更された際に、Webアプリケーションプログラムを変更することなく、Webサービスの入出力データとWebアプリケーションプログラムの入出力データモデルの関係を記述するマッピングファイルの変更のみで、Webサービスの変更に対するWebアプリケーションプログラムのコンパイルの変更なく修正可能な仕組を提供することである。
本発明は、Webサービス記述言語ファイルを有するWebサービス提供装置と通信可能な、Webアプリケーションプログラムを実行するWebアプリサーバ装置と、前記Webアプリサーバ装置で動作するWebアプリケーションプログラムの入出力データモデルと前記Webサービス記述言語により生成されるプロキシクラスファイルの入出力データモデルとをマッピングするマッピングファイルを生成するプログラム生成装置とを有するプログラム生成システムであって、前記プログラム生成装置は、前記Webサービス記述言語ファイルを読み込むWebサービス記述言語読込手段(図1の116)と、前記Webサービス記述言語読込手段により読み込まれたWebサービス記述言語ファイルを解析してWebサービス記述言語ファイルの要素を分類し、前記プロキシクラスファイルの入出力に必要な要素を解析するWebサービス記述言語解析手段(図1の101)と、前記Webサービス記述言語解析手段により解析された要素を抽出し、マッピングファイルテンプレートとして生成するマッピングファイルテンプレート生成手段(図1の103)と、過去に生成された第1のマッピングファイルを読み込むマッピングファイル読込手段(図1の117)と、前記マッピングファイル読込手段により読み込まれた第1のマッピングファイルのユーザ入力欄を抽出して、前記マッピングファイルテンプレート生成手段で生成されたマッピングファイルテンプレートに適応させて第2のマッピングファイルを生成するマッピングファイル生成手段(図1の119)と、前記マッピングファイル生成手段により生成されたマッピングファイルを前記Webアプリサーバ装置に送信する、マッピングファイル送信手段(図1の118)とを有し、前記Webアプリサーバ装置は、前記プロキシクラスファイルを呼び出す際に、前記マッピングファイル送信手段により送信されたマッピングファイル(図1の109)を読み込み、前記Webアプリケーションプログラムの入出力データモデルと前記プロキシクラスファイルの入出力データモデルとのマッピングを行うマッピング処理手段(図1の111)を有することを特徴とする。
本発明は、Webアプリケーションプログラムとプロキシクラスの間にマッピングファイルを生成し、Webアプリケーションプログラムのデータモデルとプロキシクラスからの入出力のデータモデルをマッピングさせることにより、Webサービスプログラムの仕様変更の際にWebアプリケーションプログラムの変更やコンパイルをすることなく、プロキシクラスファイルのWSDLによる自動生成技術と、マッピングファイルの変更のみで対応できる効果を有する。
本発明の実施形態を示すプログラム生成システムの構成を示すブロック図である。 本発明のプログラム生成装置における第1の制御処理手順の一例を示すフローチャートである。 本発明のWebアプリサーバ装置における第2の制御処理手順の一例を示すフローチャートである。 本発明のプログラム生成装置およびWebサービス提供装置における第1の制御処理手順の一例を示すシーケンスチャートである。 本発明のWebサービス提供装置におけるWSDLファイルの一例である。 本発明のプログラム生成装置により生成されるマッピングファイルテンプレートにユーザがアプリケーション入出力データモデルを入力した一例である。 本発明のWebサービス提供装置におけるWebサービス変更後のWSDLファイルの一例である。 本発明のプログラム生成装置によりWebサービス変更後に生成されたマッピングファイルテンプレートにユーザがアプリケーション入出力データモデルを入力した一例である。 本発明のWebアプリサーバ装置におけるWebアプリケーションプログラムの一部を示す一例である。 本発明の実施形態におけるプログラム生成方法を模式的の説明するための模式図である。 本発明のWebアプリサーバ装置で生成されるWebアプリケーションプログラムの画面の模式図である。 本発明のWebサービス提供装置の変更後にWebアプリサーバ装置で生成されるWebアプリケーションプログラムの画面の模式図である。 本発明のプログラム生成装置におけるマッピングファイルテンプレート生成ツールの画面の模式図である。 本発明のプログラム生成装置により生成されるプロキシクラス情報ファイルの一例である。 本発明のWebアプリサーバ装置およびWebサービス提供装置における第2の制御処理手順の一例を示すシーケンスチャートである。 本発明の実施形態における各種装置のハードウェア構成を示すブロック図である。 本発明のプログラム生成装置により生成されるマッピングファイルテンプレートの一例である。 本発明のプログラム生成装置によりWebサービス変更後に生成されたマッピングファイルテンプレートの一例である。 本発明に係るプログラム生成装置で読み込み可能なデータ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。 本発明に係るWebアプリサーバ装置で読み込み可能なデータ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
以下、図面を用いて本発明のプログラム生成システムの実施形態について説明する。
本実施形態では、Webサービスを構成するWebアプリサーバ装置側のプログラム生成について説明する。なお、本実施形態では、「プログラム」とはソースプログラムを示すものとする。
また、Webサービス環境の説明は、本発明と直接関係のある部分についてのみ言及する。
図1は、本発明の一実施形態を示すプログラム生成システムのシステム全体を示す構成図である。
図1において、100はプログラム生成装置であり、101はWSDL解析部である。WSDL解析部101は、Webサービス提供装置113にあるWSDLファイル(Webサービス記述言語ファイル)115をWSDL読込部116で読み込んで解析する。102はプロキシクラス生成部であり、WSDL解析部101の結果を受けてWebアプリサーバ装置のプロキシクラスファイル107を生成する。103はマッピングファイルテンプレート生成部であり、WSDL解析部101の結果を受けてマッピングファイルテンプレートを生成する。マッピングファイルテンプレートとは、プロキシクラス生成部102で生成したプロキシクラスファイル107と、Webアプリサーバ105にあるWebアプリケーションプログラム106との間でデータモデルの変換を行うためのマッピングファイルを生成するためのテンプレートである。マッピングファイルテンプレートのWebアプリケーションプログラム106のデータモデル情報をユーザが入力したものが109のマッピング済みマッピングファイルである。104はプロキシクラス情報ファイル生成部であり、プロキシクラスファイルの所在や名前を示すプロキシクラス情報ファイルを生成する。
105はWebアプリサーバ装置であり、Webサービスを利用する端末である。106はWebアプリケーションプログラムであり、マッピング済みマッピングファイル109を介して、プロキシクラスファイル107とあたかもWebアプリサーバ装置105側にWebサービスがあるかのようにWebサービス提供装置113のWebサービスプログラム114を実行する。Webサービス呼出処理部108はWebアプリケーションプログラム106で呼び出されるランタイムモジュールを指す。111はマッピング処理部であり、プロキシクラスファイル107とマッピング済みマッピングファイル109とを対応づける処理を行う。
Webサービス提供装置113ならびにプログラム生成装置100、Webアプリサーバ装置105は互いにネットワーク112で接続されている。
次に、図16を参照して、図1に示したプログラム生成装置100およびWebアプリサーバ装置105、ならびにWebサービス提供装置113のハードウェア構成について説明する。
図16は、本発明の実施形態における各種装置のハードウェア構成を示す図である。
CPU1601は、システムバス1604に接続される各デバイスやコントローラを統括的に制御する。
また、ROM1602あるいは外部メモリ1611には、CPU1601の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM1603は、CPU1601の主メモリ、ワークエリア等として機能する。
CPU1601は、処理の実行に際して必要なプログラム等をRAM1603にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)1605は、キーボード1609や不図示のマウス等のポインティングデバイスからの入力を制御する。
ビデオコントローラ(VC)1606は、CRTディスプレイ(CRT)1610等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
メモリコントローラ(MC)1607は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピーディスク(登録商標 FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ1611へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)1608は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
なお、CPU1601は、例えばRAM1603内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT1610上での表示を可能としている。また、CPU1601は、CRT1610上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するためのプログラムは外部メモリ1611に記録されており、必要に応じてRAM1603にロードされることによりCPU1601によって実行されるものである。さらに、本発明で生成されるプログラムやプロキシクラスファイル、プログラムが用いる定義ファイル及び各種情報テーブルは外部メモリ1611に格納されており、これらについての詳細な説明は後述する。
なお、図1の構成は一例であり、用途や目的に応じて様々な構成例があることは云うまでもない。その他の構成例として、プログラム生成装置が、ネットワークと接続され、通信可能な不図示のパーソナルコンピュータ等の情報処理装置からプログラム生成命令を受けることによって、プログラムの生成を行うことも可能である。
すなわち、本発明の機能が実現されるものであれば、単体の機器であっても、複数の機器からなるシステムであっても、ネットワークを介して処理が行われるシステムであっても本発明を適用することができる。
また、ここで、ハードディスクドライブ(HDD)等の外部メモリ1611に記憶された情報は、それぞれデータベース(DB)等に格納されていても良い。
次に、プログラム生成装置100の基本的な処理フローについて、図2を用いて説明する。
図2は、本発明の実施形態におけるプログラム生成装置100の基本的な処理フローを示す図である。
上述したように、プログラム生成装置100はWebサービス提供装置113とネットワーク112を介して相互に接続されている。そして、プログラム生成装置100はWebサービス提供装置113のWebサービスプログラム114を利用するためにWebサービスを呼ぶプロキシクラスファイルとマッピングファイルテンプレートを生成する。その一例について、以下に説明する。
図2は、ユーザからのWebサービス利用プログラムを生成する指示により開始される。
まず、ステップS200において、プログラム生成装置100は、ネットワーク112を経由して、Webサービス提供装置113にあるWSDLファイル115にアクセスし、読み込む。
次にステップS201でプログラム生成装置100は、読み込んだWSDLファイル115の内容を解析する。具体的にはWSDLで公開されている要素([service]、[port]、[binding]、[portType]、[message]、[types]等)を分類する。
ステップS202では、プログラム生成装置100は、WSDLファイル115内をWSDLに基づいて走査し、分類された要素毎に必要な情報を収集し細分化して、WSDL要素オブジェクトのインスタンス化を図る。そして、その結果からWebサービスの読み出しに必要なプロキシクラスファイルを生成する。
次にステップS203でプログラム生成装置100は、ステップS202で生成したプロキシクラスファイルの在処やメタ情報を記録したプロキシクラス情報ファイルを生成する。生成したプロキシクラス情報ファイルの具体例を図14に示す。
図14はプロキシクラス情報ファイルの一例である。1400はSampleServiceクラスの所在を示している。図2のフローに戻る。
ステップS204では、プログラム生成装置100は、Webサービス提供装置113から読み込んだWSDLファイル115からマッピングファイルテンプレートを生成する。
図5と図17によりマッピングファイルテンプレート生成の例を示す。
図5は商品検索サービスを提供するWebサービスのWSDLファイルの例である。
また、図17は生成されたマッピングファイルテンプレートの例である。
図5のWSDLファイルによると、Webサービスで呼び出されるSampleServiceサービスのエンドポイント(Webサービスを提供しているURL)は501にあるように“http://localhost:8082/sample”なので、図17の1700のようにマッピングファイルテンプレートに出力する。
また、SampleServiceサービスのsearchShohinオペレーションへの入力データモデルとしては502にあるように、name=“code”、type=“xs:string”と指定されているので、図17の1701のように、name=“code”、type=“string”と出力する。
同様にsearchShohinオペレーションからの出力データモデルは503にあるように、name=“shohin”、type=“tns:shohin”と指定されており、“shohin”というユーザ定義のデータモデルとして、“code”、“description1”、“name”、“price”のそれぞれの名前を持つ要素を持つ。そのため、マッピングファイルテンプレートには、図17の1702のように出力する。
なお、図17のマッピングファイルテンプレートに大文字で記載されているDMCODEやDMITEM、OUTPARAMの属性値は、Webアプリケーションプログラムの入出力のデータモデルなので、マッピングファイルテンプレート生成時には値が設定されていない。図2のフローに戻る。
ステップS205において、プログラム生成装置100は、このフロー以前に記憶されたマッピングファイルがあるかを判断する。以前に記憶されたマッピングファイルがない場合はこのフローを終了する。以前に記憶されたマッピングファイルがある場合は、ステップS206へと処理を進める。
以前に記憶されたマッピングファイルがある場合、ステップS206において、プログラム生成装置100は、以前に作成したマッピングファイルを読み込んで、ステップS204で作成したマッピングファイルテンプレートに対応するデータモデルの属性値をマッピングする。なお、新しいマッピングファイルテンプレートのファイル名は以前に記憶されたマッピングファイルと同じ(即ち、上書き)でも構わないし、新たに名前を変えて保存しても構わない。新たに名前を変えて保存した場合は、Webアプリケーションプログラムを変更しないために、マッピングしたマッピングファイルのファイル名を以前に記憶されたマッピングファイルと同じにする。
具体的に以前に記憶されたマッピングファイルがある場合の例を次に示す。
以下は、図5のWSDLファイルが図7のWSDLファイルに変わった場合の例である。
S204で作成した図17のマッピングファイルテンプレートに開発者がWebアプリケーションプログラムのデータモデルを元にマッピングした例が図6のマッピングファイルである。
図6では、603の欄に開発者により“Shohin”、“Code”、“Description1”、“Name”、“Price”などが入力される。
図6のマッピングファイルをWebアプリケーションプログラムで実装したユーザインタフェイスの例が図11である。図11の場合、将来的にWebサービスの商品説明(603の“Description”属性)が追加されることが分かっているため、商品説明1フィールド1100(“Description1”属性)の他に商品説明2フィールド1101も予め作成されている。但し、Webサービスによる出力はまだないため、データそのものは取得できない状態である。
図7は図5に示す商品検索サービスが変更された結果、WSDLファイルが変更された例である。
図7の700に示すように、変更前には図5の500の“shohin”であった出力データの名前(name属性)は商品検索サービスの変更に伴い、“product”に変更されている。
また、出力データを構成する要素には701のように“description2”が追記されている。
さらに、当初、Webサービスのエンドポイント501は“http://localhost:8082/sample”を指しており、Webアプリサーバ装置自身にWebサービスを実装して開発していたが、図7のWSDLを持つWebサービスに変更されると、Webサービスのエンドポイント702は“http://realserver/sample”に変わり、実際のWebサービス提供装置を指している。
図18は商品検索サービスが図5のWSDLから図7のように変更されたWSDLを読み込み生成されたマッピングファイルテンプレートの例である。マッピングファイルテンプレートを作成する際に前回作成したマッピングファイル(この場合、図6)を読み込む。
図18の1804には、図7の702を参照してWebサービスのエンドポイントを“http://realserver/sample”に設定している。また、1801には図7の700に示すように出力データの属性を“product”と設定している。
さらに、マッピングファイルテンプレート1800を作成する際に読み込んだマッピングファイル602と比較し、ユーザにより入力された属性値である603を抽出し、該当する属性に入力する(1802)。603を抽出する判断は、例えば605の属性名(name)と属性型(type)が一致している要素の場合や、属性型(type)が一致している要素の場合などがある。1803には追加された出力データを構成する要素として、図7の701を反映した要素が追加される。
ユーザは図18の追加された出力データの要素1803の属性値として、“Shohin”や“Description2”を入力するのみで、Webサービスの変更に対応できる。ユーザの入力後のマッピングファイルの例が図8である。図8の801がユーザにより入力された属性値である。
図8のマッピングファイルをWebアプリケーションプログラムで実装したユーザインタフェイスの例が図12である。図12は、商品説明2フィールドを予め作っていたため、Webサービスの変更に伴い追加された商品説明(1803の要素)を1200のように表示可能になる。
図10により、本発明を模式的に説明する。
Webサービスの更新により、図10のようにWebサービス1(114−1)から、Webサービス2(114−2)へ更新された場合、それに伴いWSDLファイルもWSDLファイル1(115−1)からWSDLファイル(115−2)に更新される。
WSDLファイル1(115−1)が図5に該当し、WSDLファイル2(115−2)が図7に該当する。図5と図7の場合、500にある出力データの名前の“shohin”が、700にある“product”に変更される。また、Webサービスのエンドポイント501は“http://localhost:8082/sample”を指しており、当初はWebアプリサーバ装置自身にWebサービスを実装して開発しているが、図7のWSDLを持つWebサービスに変更されると、Webサービスのエンドポイント702は“http://realserver/sample”に変わり、実際のWebサービス提供装置を指す。また、当初はなかった“description2”という名前の項目が図7のWSDLを持つWebサービスには追加されている(701)。
WSDLファイルが更新されていると、マッピングファイル生成部1902内にあるマッピングファイルテンプレート生成部が、Webサービス1(114−1)に対応したマッピングファイル1(109−1)を読み込み、WSDLファイル2(115−2)と共にマッピングファイルテンプレートを生成する。その後、ユーザの入力などによりマッピングファイル2(109−2)を作成し、Webアプリサーバ装置105に送信する。
図2のフローチャート終了後、ユーザによってマッピングファイルテンプレートが修正され、プログラム生成装置100はWebアプリサーバ装置105にプロキシクラスファイル107やプロキシクラス情報ファイル110、マッピングファイル109、別途生成したWebアプリケーションプログラム106を送信し、Webアプリサーバ装置の外部から利用可能な状態にする(デプロイする)。
図2のフローチャートをシーケンスチャートで示したのが図15である。各生成部やWSDL解析部はプログラム生成装置内100に配置され、WSDLはWebサービス提供装置113に配置する。なお、図2の各ステップと同じ処理をしているステップに同じステップ番号を振っている。
次に、Webアプリサーバ装置105の基本的な処理フローについて、図3と図4を用いて説明する。
図3は、本発明の実施形態におけるWebアプリサーバ装置105の基本的な処理フローを示す図である。
また、図4は、本発明の実施形態におけるWebアプリサーバ装置105とWebサービス提供装置113との基本的なシーケンスチャートを示す図である。なお、図番号やステップ番号が共通の処理、構成に関しては図1や図3、図4と同じ図番号やステップ番号を振っている。
図4のクライアント部105、マッピングファイル109、プロキシクラス情報ファイル110、Webサービス呼出処理部108はWebアプリサーバ装置に配置され、Webサービス部114はWebサービス提供装置に配置する
図3、図4は、図示しないユーザ端末からWebアプリサーバ装置105にWebアプリケーションプログラム106を実行する指示があり、Webアプリケーションプログラム106がWebサービスプログラム114を実行する指示があった際に開始される。
まずステップS300において、Webアプリサーバ装置105は、Webアプリケーションプログラム106からWebサービス呼出命令を受ける。Webアプリケーションプログラム106の一部分の一例を図9に示す。
図9はWebアプリケーションプログラム106内のWebサービスプログラム114を呼ぶプログラムの一例である。
図9の例では、900や901に記載されているように、SampleServiceクラスのsearchShohinオペレーションが呼び出される。図3、図4の説明に戻る。
図4のステップS401では、Webアプリサーバ装置105は、マッピングファイルをオブジェクトとして読み込むためにCreateしている。
同様にステップS402では、Webアプリサーバ装置105は、プロキシクラス情報ファイルをオブジェクトとして読み込むためにCreateしている。
ステップS301において、Webアプリサーバ装置105は図2のフローの結果デプロイされたマッピングファイル109を読み込む。
ステップS302において、Webアプリサーバ装置105は図2のフローの結果デプロイされたプロキシクラス情報ファイル110を読み込んでステップS303に処理を進める。プロキシクラス情報ファイルには、プロキシファイルの位置や名前などのメタ情報が記憶されており、ステップS303の処理でプロキシクラスファイルの在処を指定する。
ステップS303において、Webアプリサーバ装置105はWebアプリケーションプログラム106から指定されたWebサービスを実行するプロキシクラスファイルを呼ぶためにWebサービス呼出処理部108にステップS302で指定されたプロキシクラスファイル107が読み込まれる。
Webアプリサーバ装置105は、プロキシクラスファイル107を呼ぶ際の引数のデータモデルの詳細をステップS301で読み込んだマッピングファイル109から取得する。
その後、Webアプリサーバ装置105は、Webアプリケーションプログラム106がユーザもしくはシステムから入力された引数をプロキシクラスファイル107の入力パラメータとしてWebサービス呼出処理部に渡す。
ステップS403において、Webアプリサーバ装置105のWebサービス呼出処理部108は、プロキシクラスファイル107を実行して、Webサービスプログラム114を呼び出す。Webサービス呼出処理部108は、S303で得られた入力パラメータをSOAPメッセージに変換してWebサービスプログラムへ送信する。Webサービス呼出処理部108はWebサービスプログラムを呼び出した結果、返ってくる戻り値をステップS303の戻り値とする。
ステップS404において、Webアプリサーバ装置105は、Webサービス呼出処理部108からの戻り値のデータモデルの詳細をマッピングファイル109から取得する。
ステップS304において、Webアプリサーバ装置105は、ステップS303で呼び出したWebサービス呼出処理部108の結果を受け取り、ステップS404で取得したマッピングファイル109のデータモデルに適応させて、Webアプリケーションプログラム106にデータを返す。
これらの構成により、Webサービスの仕様が変更になった場合にWebアプリケーションプログラムを変更することなく、マッピングファイルを変更するだけで、Webサービスの仕様変更に対応できる。
図13はマッピングファイルテンプレート生成のためのグラフィカルユーザインタフェースの一例である。WSDL URI入力フィールド1300は、開発者がWSDLのURIやWSDLのファイルのパスを入力するためのフィールドである。WSDL読込ボタン1301を押すと、WSDL URI入力フィールド1300で指定されたWSDLを読み込み、WSDLに記述されているサービス名およびポート名のリストをそれぞれ、サービス名選択フィールド1302、ポート名選択フィールド1303に選択肢として表示する。マッピングファイルテンプレート実行ボタン1304を押すことで、マッピングファイルテンプレートの生成を行う。
図10は本実施例を模式的に説明した図である。なお、図1と共通の構成には、同じ符号を付している。
図10のプロキシクラスファイル1(107−1)はWSDLファイル1(115−1)から生成されるWebアプリサーバ105上のWebサービス1(114−1)のプロキシクラスファイルである。Webアプリプログラム106がプロキシクラスファイルを呼ぶ際に、Webアプリサーバ105は、同じくWSDLファイル1(115−1)から作成したマッピングファイル1(109−1)を読み込んで、Webサービスのエンドポイントを指定し、Webサービス側(114−1)の入出力データ名およびデータ型などをWebアプリプログラム106の入出力データモデルに対応させる。
図10において、Webサービス1(114−1)の仕様が変更になった場合、変更後のWebサービス2(114−2)のWSDLファイル2(115−2)により、プロキシクラス生成部102がプロキシクラスファイル2(107−2)を生成する。また、マッピングファイル生成部1902は、WSDLファイル2(115−2)とマッピングファイル1(109−1)から、マッピングファイルテンプレートを生成し、プログラム生成装置でのユーザ入力により、マッピングファイル2(109−2)を生成する。
WebアプリサーバはWebアプリプログラム106がプロキシクラスファイルを呼ぶ際に、マッピングファイル2(109−2)を読み込んで、Webサービスのエンドポイントを指定し、Webサービス側(114−2)の入出力データ名およびデータ型などをWebアプリプログラム106の入出力データモデルに対応させる。
以上のように、本発明ではマッピングファイルテンプレートの変更とプロキシクラスファイルの更新のみで、Webアプリケーションプログラムの修正やコンパイルを必要とせず、Webサービスの変更に対応するという効果を有する。
なお、マッピングファイルテンプレートに修正の必要がなければ、そのままマッピングファイルとして適応することもできる。
また、前記実施形態ではプログラム生成装置にて任意の時点でマッピングファイルを生成しているが、WSDLファイルの変更をネットワーク112経由で定期的に確認し、自動的にマッピングファイルを生成しても良い。
さらに、マッピングファイルはファイルでなくても良く、マッピングファイルに記述されているXMLデータをリレーショナルデータベースやXMLデータベースに格納し、データアクセスコマンドからアクセスしても良い。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
以下、図19、図20に示すメモリマップを参照して本発明に係るプログラム生成装置およびWebアプリサーバ装置(共にコンピュータ)で読み取り可能なデータ処理プログラムの構成について説明する。
図19は、本発明に係るプログラム生成装置(コンピュータ)で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
また、図20は、本発明に係るWebアプリサーバ装置(コンピュータ)で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
100 プログラム生成装置
101 WSDL解析部
102 プロキシクラス生成部
103 マッピングファイルテンプレート生成部
104 プロキシクラス情報ファイル
105 Webアプリサーバ装置
106 Webアプリケーションプログラム
107 プロキシクラス
108 Webサービス呼出処理部
109 マッピング済マッピングファイル
110 プロキシクラス情報ファイル
111 マッピング処理部
112 ネットワーク
113 Webサービス提供装置
114 Webサービスプログラム
115 WSDLファイル
116 WSDL読込部
117 マッピングファイル読込部
118 マッピングファイル送信部

Claims (7)

  1. Webサービス記述言語ファイルを有するWebサービス提供装置と通信可能な、Webアプリケーションプログラムを実行するWebアプリサーバ装置と、前記Webアプリサーバ装置で動作するWebアプリケーションプログラムの入出力データモデルと前記Webサービス記述言語により生成されるプロキシクラスファイルの入出力データモデルとをマッピングするマッピングファイルを生成するプログラム生成装置とを有するプログラム生成システムであって、
    前記プログラム生成装置は、
    前記Webサービス記述言語ファイルを読み込むWebサービス記述言語読込手段と、
    前記Webサービス記述言語読込手段により読み込まれたWebサービス記述言語ファイルを解析してWebサービス記述言語ファイルの要素を分類し、前記プロキシクラスファイルの入出力に必要な要素を解析するWebサービス記述言語解析手段と、
    前記Webサービス記述言語解析手段により解析された要素を抽出し、マッピングファイルテンプレートとして生成するマッピングファイルテンプレート生成手段と、
    過去に生成された第1のマッピングファイルを読み込むマッピングファイル読込手段と、
    前記マッピングファイル読込手段により読み込まれた第1のマッピングファイルのユーザ入力項目を抽出して、該抽出されたユーザ入力欄を前記マッピングファイルテンプレート生成手段で生成されたマッピングファイルテンプレートに適応させて第2のマッピングファイルを生成するマッピングファイル生成手段と
    前記マッピングファイル生成手段により生成されたマッピングファイルを前記Webアプリサーバ装置に送信する、マッピングファイル送信手段とを有し、
    前記Webアプリサーバ装置は、
    前記プロキシクラスファイルを呼び出す際に、前記マッピングファイル送信手段により送信されたマッピングファイルを読み込み、前記Webアプリケーションプログラムの入出力データモデルと前記プロキシクラスファイルの入出力データモデルとのマッピングを行うマッピング処理手段を有することを特徴とするプログラム生成システム。
  2. 前記マッピングファイルテンプレート生成手段は前記マッピングファイルテンプレート生成の際に前記Webサービス提供装置のURIを記憶させたファイルを生成し、
    前記マッピング処理手段は、前記マッピングファイルに記憶されている前記URIへアクセスさせることを特徴とする請求項1記載のプログラム生成システム。
  3. 前記マッピング処理手段は、前記プロキシクラスファイルに渡すデータ名、データモデルと前記プロキシクラスファイルから受け取るデータ名、データモデルを前記Webアプリケーションプログラムの出力および入力にマッピングする処理を有することを特徴とする請求項1又は2記載のプログラム生成システム。
  4. Webサービス記述言語ファイルを有するWebサービス提供装置と、Webアプリケーションプログラムを実行するWebアプリサーバ装置とに通信可能な、前記Webアプリサーバ装置で動作するWebアプリケーションプログラムの入出力データモデルと前記Webサービス記述言語により生成されたプロキシクラスファイルの入出力データモデルとをマッピングするマッピングファイルを生成するプログラム生成装置であって、
    前記Webサービス記述言語ファイルを読み込むWebサービス記述言語読込手段と、
    前記Webサービス記述言語読込手段により読み込まれたWebサービス記述言語ファイルを解析してWebサービス記述言語ファイルの要素を分類し、前記プロキシクラスファイルの入出力に必要な要素を解析するWebサービス記述言語解析手段と、
    前記Webサービス記述言語解析手段により得られた要素を抽出し、マッピングファイルテンプレートとして生成するマッピングファイルテンプレート生成手段と、
    過去に生成された第1のマッピングファイルを読み込むマッピングファイル読込手段と、
    前記マッピングファイル読込手段により読み込まれた第1のマッピングファイルのユーザ入力項目を抽出して、前記マッピングファイルテンプレート生成手段で生成されたマッピングファイルテンプレートに適応させて第2のマッピングファイルを生成するマッピングファイル生成手段と
    前記マッピングファイル生成手段により生成されたマッピングファイルを前記Webアプリサーバ装置に送信する、マッピングファイル送信手段とを有するプログラム生成装置。
  5. Webサービス記述言語ファイルを有するWebサービス提供装置と、Webアプリケーションプログラムを実行するWebアプリサーバ装置とに通信可能な、前記Webアプリサーバ装置で動作するWebアプリケーションプログラムの入出力データモデルと前記Webサービス記述言語により生成されたプロキシクラスファイルの入出力データモデルとをマッピングするマッピングファイルを生成するプログラム生成装置におけるプログラム生成方法であって、
    前記Webサービス記述言語ファイルを読み込むWebサービス記述言語読込工程と、
    前記Webサービス記述言語読込工程により読み込まれたWebサービス記述言語ファイルを解析してWebサービス記述言語ファイルの要素を分類し、前記プロキシクラスファイルの入出力に必要な要素を解析するWebサービス記述言語解析工程と、
    前記Webサービス記述言語解析工程により得られた要素を抽出し、マッピングファイルテンプレートとして生成するマッピングファイルテンプレート生成工程と、
    過去に生成された第1のマッピングファイルを読み込むマッピングファイル読込工程と、
    前記マッピングファイル読込工程により読み込まれた第1のマッピングファイルのユーザ入力項目を抽出して、前記マッピングファイルテンプレート生成工程で生成されたマッピングファイルテンプレートに適応させて第2のマッピングファイルを生成するマッピングファイル生成工程と
    前記マッピングファイル生成工程により生成されたマッピングファイルを前記Webアプリサーバ装置に送信する、マッピングファイル送信工程とを有するプログラム生成方法。
  6. 請求項5に記載されたプログラム生成方法を実行するためのプログラム。
  7. 請求項5に記載されたプログラム生成方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記憶媒体。
JP2009205497A 2009-09-07 2009-09-07 プログラム生成システムおよびプログラム生成装置およびプログラム生成方法およびプログラムならびに記録媒体 Expired - Fee Related JP5359704B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009205497A JP5359704B2 (ja) 2009-09-07 2009-09-07 プログラム生成システムおよびプログラム生成装置およびプログラム生成方法およびプログラムならびに記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009205497A JP5359704B2 (ja) 2009-09-07 2009-09-07 プログラム生成システムおよびプログラム生成装置およびプログラム生成方法およびプログラムならびに記録媒体

Publications (3)

Publication Number Publication Date
JP2011059751A true JP2011059751A (ja) 2011-03-24
JP2011059751A5 JP2011059751A5 (ja) 2012-10-11
JP5359704B2 JP5359704B2 (ja) 2013-12-04

Family

ID=43947341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009205497A Expired - Fee Related JP5359704B2 (ja) 2009-09-07 2009-09-07 プログラム生成システムおよびプログラム生成装置およびプログラム生成方法およびプログラムならびに記録媒体

Country Status (1)

Country Link
JP (1) JP5359704B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018081716A (ja) * 2018-01-09 2018-05-24 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理システム、その制御方法及びプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314706A (ja) * 1995-05-22 1996-11-29 Matsushita Electric Works Ltd ソフトウェアの開発支援システム
JP2000222195A (ja) * 1999-01-28 2000-08-11 Fujitsu Ltd 修正プログラムを継承したプログラムの自動生成方法、プログラム自動生成装置及び修正プログラムを継承したプログラムを自動生成するプログラムを記録した記録媒体
JP2004362183A (ja) * 2003-06-04 2004-12-24 Hitachi Ltd プログラム管理方法及び実施装置並びに処理プログラム
JP2006195555A (ja) * 2005-01-11 2006-07-27 Toshiba Tec Corp ウェブサービス処理装置及びウェブサービス起動方法並びにウェブサービス起動プログラム
JP2008134906A (ja) * 2006-11-29 2008-06-12 Hitachi Ltd 業務プロセス定義生成方法、装置及びプログラム
JP2008287365A (ja) * 2007-05-15 2008-11-27 Canon Software Inc プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314706A (ja) * 1995-05-22 1996-11-29 Matsushita Electric Works Ltd ソフトウェアの開発支援システム
JP2000222195A (ja) * 1999-01-28 2000-08-11 Fujitsu Ltd 修正プログラムを継承したプログラムの自動生成方法、プログラム自動生成装置及び修正プログラムを継承したプログラムを自動生成するプログラムを記録した記録媒体
JP2004362183A (ja) * 2003-06-04 2004-12-24 Hitachi Ltd プログラム管理方法及び実施装置並びに処理プログラム
JP2006195555A (ja) * 2005-01-11 2006-07-27 Toshiba Tec Corp ウェブサービス処理装置及びウェブサービス起動方法並びにウェブサービス起動プログラム
JP2008134906A (ja) * 2006-11-29 2008-06-12 Hitachi Ltd 業務プロセス定義生成方法、装置及びプログラム
JP2008287365A (ja) * 2007-05-15 2008-11-27 Canon Software Inc プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018081716A (ja) * 2018-01-09 2018-05-24 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理システム、その制御方法及びプログラム

Also Published As

Publication number Publication date
JP5359704B2 (ja) 2013-12-04

Similar Documents

Publication Publication Date Title
US9442744B2 (en) Multilingual build integration for compiled applications
RU2390832C2 (ru) Способ визуализации web-страницы с использованием внешних программных тем
KR101507629B1 (ko) 기존 애플리케이션들의 커스터마이징 및 분산을 위한 브라우저-기반 프록시 서버
US8949378B2 (en) Method and system for providing a state model of an application program
KR101528853B1 (ko) Api 서비스 방법과 api 매쉬업 생성 방법, 장치 및기록매체
US20110035435A1 (en) Method and system for converting desktop application to web application
US20140082511A1 (en) Method and system for emulating desktop software applications in a mobile communication network
JP2009515244A (ja) データ管理及びデータ・レンダリング用ユーザ・インターフェースを動的に作成する方法、システム、及びコンピュータ・プログラム(データ管理及びデータ・レンダリング用ユーザ・インターフェースの動的作成)
KR20130105287A (ko) 클라이언트 어플리케이션 및 웹 페이지 통합
US20070174767A1 (en) Display process device and display process method
EP4235403A1 (en) Automatic generation of a cloud integration adapter from a standard, programming language-agnostic interface specification
JP6002302B2 (ja) Webアプリケーション生成システム、Webアプリケーション生成システムの制御方法、Webアプリケーション生成システムのプログラム、Webアプリケーション生成装置、Webアプリケーション生成装置の制御方法、およびWebアプリケーション生成装置のプログラム
JP5039946B2 (ja) クライアント装置およびサーバ装置の間の通信を中継する技術
KR20130068564A (ko) 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법
US20180032329A1 (en) Customized runtime environment
US20060070024A1 (en) Web service generation
JP7014960B2 (ja) 情報処理装置、サーバ、その処理方法及びプログラム
JP5359704B2 (ja) プログラム生成システムおよびプログラム生成装置およびプログラム生成方法およびプログラムならびに記録媒体
JP6274265B2 (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム
CN110399040B (zh) 多模态交互方法、用户端设备、服务器及系统
KR20080027293A (ko) 데이터 언어에서 다수 언어들의 관리
CN114389936A (zh) 一种跨云多集群部署运维方法、系统、处理器和存储介质
CN113791819A (zh) 接口文档生成方法和装置、存储介质、电子设备
JP2009157797A (ja) データ入力支援システム、データ入力支援方法及びプログラム
JP6744553B2 (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120130

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120827

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130531

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130704

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Ref document number: 5359704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees