JP5379526B2 - Webサービステスト支援装置及びプログラム - Google Patents

Webサービステスト支援装置及びプログラム Download PDF

Info

Publication number
JP5379526B2
JP5379526B2 JP2009068222A JP2009068222A JP5379526B2 JP 5379526 B2 JP5379526 B2 JP 5379526B2 JP 2009068222 A JP2009068222 A JP 2009068222A JP 2009068222 A JP2009068222 A JP 2009068222A JP 5379526 B2 JP5379526 B2 JP 5379526B2
Authority
JP
Japan
Prior art keywords
workflow
structured document
web service
message
script
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.)
Expired - Fee Related
Application number
JP2009068222A
Other languages
English (en)
Other versions
JP2010224632A (ja
Inventor
克人 望月
昌之 飯泉
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.)
Toshiba TEC Corp
Original Assignee
Toshiba TEC Corp
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 Toshiba TEC Corp filed Critical Toshiba TEC Corp
Priority to JP2009068222A priority Critical patent/JP5379526B2/ja
Publication of JP2010224632A publication Critical patent/JP2010224632A/ja
Application granted granted Critical
Publication of JP5379526B2 publication Critical patent/JP5379526B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、Webサービス連携ワークフロー言語スクリプト開発のテスト支援装置及びプログラムに関する。
近年、大規模なシステムを、サービスの集まりとして構築するサービス指向アーキテクチャ(SOA; Service Oriented Architecture)という考え方が普及してきている。サービスの単位として有望視されているものがWebサービスであり、Webサービス記述言語(Web Services Description Language;WSDL)でインターフェイス情報が記述される。このWebサービスを連携するための言語仕様として、ビジネスプロセス実行言語(Business Process Execution Language;BPEL)がある。このBPELで作成されたワークフローは、手順が記述されているものであるためそれだけではワークフローを実行することができない。
このワークフローを実行するためのインターフェイスとしてWebサービスを必要とする。BPELワークフローに対応するWebサービスにメッセージを渡すと、Webサービスはワークフローエンジンのメッセージ受信部にメッセージを送る。それをきっかけとしてBPELワークフローエンジンがワークフローを開始する仕組みが一般的である。(例えば、特許文献1参照)。
そのためにはWebサービスを公開する必要があり、BPEL・WSDLを基にWebサービスを構築し、アプリケーションサーバ上に配置する必要がある。BPELスクリプトをテストする場合、Webサービスを配置し、そのWebサービスを実行するためのクライアントを作成する必要があるが、ワークフローのインターフェイス情報が変更されると、配置したWebサービスをアプリケーションサーバ上より削除し、再度Webサービスを構築し、アプリケーション上に配置し、そのWebサービスにあったクライアントを作成するという一連の動作を繰り返す必要があった。
従来、インターフェイス情報を変更することはよくあり、ワークフローのインターフェイスが変更されるとそのたびに開発者はテストのためにWebサービスの再配置作業とクライアントの修正を行う必要がある。この作業は開発効率を下げていた。
特開2007−4520号公報
従来、テストにおいてインターフェイス情報を変更することはよくあり、ワークフローのインターフェイス情報が変更されると、そのたびに開発者はテストのためにWebサービスの再配置作業とクライアントの修正を行う必要があり、開発効率を下げていた。
本発明は上記事情に鑑みて成されたもので、テストの効率化を図ったWebサービステスト支援装置及びプログラムを提供することを目的とする。
請求項1記載の本発明のWebサービステスト支援装置は、Webサービス部からWebサービス部からワークフローを記述した構造化文書、及び前記ワークフローへのアクセスに必要なインターフェイス情報を示す構造化文書をそれぞれ取得し、前記取得した構造化文書に記述された要素をクラスオブジェクトに変換する構造化文書要素変換手段と、前記クラスオブジェクト化した要素を解析し前記インターフェイス情報を抽出するインターフェイス抽出手段と、前記インターフェイス抽出手段によって抽出されたインターフェイス情報を表示し、前記ワークフローを記述した構造化文書の要素を指定してスクリプトを入力するテストツール設定・表示制御手段と、前記スクリプト入力され前記抽出したインターフェイス情報を基に、前記Webサービス部のワークフローエンジンへ前記スクリプトを特定するメッセージを送信するワークフロー接続手段と、を具備したことを特徴とする。
請求項4記載の本発明は、Webサービス部からのスクリプトをテストするテスト支援プログラムであって、コンピュータに、Webサービス部からワークフローを記述した構造化文書、及び前記ワークフローへのアクセスに必要なインターフェイス情報を示す構造化文書をそれぞれ取得し、前記取得した構造化文書に記述された要素をクラスオブジェクトに変換する変換機能と、前記クラスオブジェクト化した要素を解析しインターフェイス情報を抽出する抽出機能と、前記抽出されたインターフェイス情報を表示し、前記ワークフローを記述した構造化文書の要素を指定してスクリプトを入力する情報表示機能と、前記スクリプト入力され前記抽出したインターフェイス情報を基に、前記Webサービス部のワークフローエンジンへ前記スクリプトを特定するメッセージを送信するワークフロー接続機能と、を実現させるためのテスト支援プログラム。
本発明によれば、ワークフローエンジンに接続するための情報や入力ウィンドウをBPEL/WSDLスクリプトから自動生成してワークフローエンジンへ接続することが可能になり、テストの効率化を図ることができる。
本発明の実施の形態におけるWebサービステスト支援装置の全体構成を示すブロック図。 同実施形態におけるWebサービステスト支援装置の機能構成を示す図。 BPEL文書の一例を示す図。 BPEL文書の要素の関係を構造ツリーによって示す図。 WSDL文書の一例を示す図。 本実施形態におけるインスタンス化処理を示すフローチャート。 BPEL文章をオブジェクト化したときのオブジェクトツリーを示す図。 BPEL・WSDLの要素間の関連性を示す図。 本実施形態におけるインターフェイス抽出処理を示すフローチャート。 本実施形態におけるtargetNameSpace抽出アルゴリズムを示すフローチャート。 本実施形態におけるインターフェイス抽出アルゴリズムを示すフローチャート。 本実施形態における送受信メッセージ名抽出アルゴリズムを示すフローチャート。 本実施形態における送受信メッセージ構成抽出アルゴリズムを示すフローチャート。 テストツールのメッセージ入力画面の一例を示す図。 本実施形態における入力値設定エリア生成処理を示すフローチャート。 本実施形態におけるワークフロー接続処理を示すフローチャート。 テストツールの結果出力画面の一例を示す図。
以下、この発明の一実施の形態について図面を参照して詳細に説明する。
図1は、本発明の一実施の形態に係るWebサービステスト支援装置(以下、テスト支援装置と略称する)の構成を示すブロック図である。
図1の実施形態では、テスト支援装置を実現するためのプログラム開発プログラムを含む各種プログラムやデータの制御等の処理を行うCPU(中央処理装置)10と、CPU10が処理するためのプログラムやデータを一時的に記憶するRAM(Random Access Memory)11と、処理プログラム等を記憶するROM(Read Only Memory)12と、構造化文書等を長期的に記憶するためのハードディスク(HD)に対するアクセスを制御するハードディスク駆動制御部13と、プログラム等を記憶しているCD−ROMを制御するCD−ROM駆動制御部14と、を含む。
さらに構造化文書やその他の情報を表示する表示器16を制御する表示器制御回路15と、キーボード18やマウス等の入力装置の制御を行う入力制御部17と、ネットワークからデータを入力する通信インターフェイス(I/F)19と、バスライン100とを含んでいる。
テスト支援装置を実現するプログラム開発プログラムは、HDに格納されている。HDに格納される際は、CD−ROMからインストールされてもよいし、CD−ROM以外のドライブやメディア(例えば、MOドライブとMOディスク、USB端子とUSBメモリ等)からインストールされてもよい。
図2は、プログラム開発プログラムをCPU10によって実行することにより実現されるテスト支援装置の機能構成を示す図である。図2に示すように、テスト支援装置は、構造化文書要素変換手段22と、インターフェイス抽出手段24と、入力・表示ウィンドウ25と、テストツール設定・表示制御手段26と、ワークフロー接続手段27を含む。
構造化文書要素変換手段22は、構造化文書20に記述された要素を、属性や親子関係等を含む情報が設定されたクラスオブジェクト21に変換する。インターフェイス抽出手段24は、構造化文書要素変換手段22によりクラスオブジェクト化されたクラスオブジェクト21(要素オブジェクト)からインターフェイスリスト23を抽出する。
テストツール設定・表示制御手段26は、入力・表示ウィンドウ25を通じてのスクリプトの入力や、ワークフローに送信するメッセージ内容の決定、及びワークフローからの結果を出力する。ワークフロー接続手段27は、インターフェイスリスト23から受け取ったワークフローに接続するための情報とテストツール設定・表示制御手段26から受け取ったメッセージ内容を基にWebサービス部のワークフローにメッセージを送る。
尚、以下の説明では、構造化文書20としてXML(Extensible Markup Language)により記述された文書を例に説明するが、XML以外の他の構造化文書を対象としても実現することが可能である。
構造化文書要素変換手段22、インターフェイス抽出手段24、テストツール設定・表示制御手段26、及びワークフロー接続手段27は、CPU10、RAM11、及びROM12の組み合わせにより実現される機能である。CPU10は、RAM11あるいはROM12に記憶された、プログラム開発プログラムに含まれるそれぞれに対応するプログラムを実行することにより各手段を実現する。
構造化文書20、クラスオブジェクト21、インターフェイスリスト23は、ハードディスクに記憶され、必要に応じてRAM11に読み出されて処理に供される。入力・表示ウィンドウ25は、RAM11あるいはROM12に記憶されたウィンドウフォーマットのデータに基づいて表示される。尚、図2の機能はテスト用クライアント200内に構成される。
次に、本実施の形態のWebサービステスト支援装置で使用される構造化文書20について説明する。本実施の形態は、構造化文書20であるBPEL(Business Process Execution Language)文書の参照や編集に適応する場合を用いて説明する。BPELは、XMLベースのワークフロー記述言語であり、データの操作や、Webサービスの呼び出し、例外処理等の処理単位を組み合わせて複雑なフローを記述する言語である。
図3に例示するXML文書はBPEL文書を示している。BPEL文書では、1つの処理要素をXMLのタグの形で記述し、一連の処理を示す場合や、要素の集合を示す場合には、開始タグと終了タグに挟む形で入れ子にする。例えば、ワークフローの宣言を行う要素processは、1行目の開始タグと、19行目の終了タグによりワークフロー全体を入れ子にしている。変数定義の集合を示すvariables要素(5行目)は、変数の定義variableを入れ子としている。また、1つの要素で完結するものに関しては空要素と呼ばれている。
例えば、変数の定義を行うvariable(6,7行目)や、メッセージの受信を行うreceive(10行目)等が空要素を指している。また、各要素に必要な情報は属性と呼ばれ、開始タグと空要素タグ内で記述される。例えば、process(1行目)のnameやxmlns等の情報が属性に当たる。また、BPEL文書はXML文書であるため、XMLの論理構造に基づきツリー構造で示すことができる。
図4は、図3に示すBPEL文書の属性部分を除き、要素の関係を構造ツリーの形にしたものである。各要素名の括弧に示された数字は、図3の行番号と対応している(実際のツリー構造には行番号は含まれない)。XML文書において、それぞれの要素は構造ツリー表現においてノードとも呼ばれる。以下の説明では、XML文書の要素を、構造化文書20では要素やタグという表現を用い、文書構造ツリーではノードという表現を用いる。
ノードの相対関係を示すとき「親」、「子」、「子孫」、「先祖」といった表現を利用する。親ノードとは、対象とするノードの1つ上位のノードを指す。例えば、variable(6)の親ノードはvariables(5)となる。子ノードとは対象とする1つ下位のノードを指す。例えば、variables(5)の子ノードはvariable(6)、variable(7)となる。先祖ノードとは、対象となるノードの全上位ノードを指す。子孫ノードは対象となるノードの全下位ノードを指す。またprocess(1)のように頂点のノードのことをルートノードと呼ぶ。構造化文書20を構造ツリーの形で表現することにより、各ノードの関係性が明確になるため、構造化文書20に対する処理が容易に行われると考えられている。
BPEL文書はワークフローの流れのみを示し、Webサービスや自分自身がサービスとして提供された際のインターフェイス情報は含まれない。このインターフェイス情報を示したものがWSDL(Web Services Description Language)文書である。WSDL文書には、メッセージのデータ型や、通信プロトコル、サービス名等が含まれる。WSDL文書もBPEL文書同様にXMLにて表現される。図3で示したBPEL文書がサービス化された時のインターフェイス情報を示したWSDL文書を図5に示す。
図3に示すBPEL文書内には、図5に示すWSDL文書とマッピングするための情報が含まれる。例えば、図3のvariable(6行目)はメッセージのデータの保存に利用されるが、そのデータ型を示すのは、図5のmessage(7行目)となる。BPEL文書のvariable(6行目)のmessageType属性に参照元の情報が記述されている。tnsは、WSDL文書を指定するものであり、MRequestは、WSDL文書内のmessage(7行目)を示している。参照のルールはBPEL文書の仕様により定められており、開発者はこの仕様に基づきBPEL文書を構築する。
次に本実施形態におけるテスト支援ツールが、構造化文書20からクラスオブジェクト21ならびにインターフェイスリスト23を作成する処理について説明する。ここでは、図3のBPEL文書、図5のWSDL文書を対象とする。説明を簡単にするため、これら文書は簡略化された形で記述されている。
まず、テストツールが入出力ウィンドウ25を通じBPEL/WSDLのパスをユーザから受け取ると、テストツール設定・表示制御装置26は構造化文書20を取得し、構造化文書要素変換手段22に渡す。構造化文書要素変換手段22は構造化文書20の各要素に対応したクラスからオブジェクトをインスタンス化する。図6はインスタンス化処理を示すフローチャートである。
まず、構造化文書要素変換手段22は、BPEL文書を要素単位に切り出す(S601)。そして、この切り出した要素を対応するクラスオブジェクトに変換する(S602)。このクラスオブジェクトは、属性値、親要素、子要素リストのデータ群からなる。属性値は文字列で、親要素、子要素のリストは、他のクラスオブジェクトを値として持つ。親要素や子要素リストに設定されるオブジェクトは参照型となる。
そのため、オブジェクト内にある親要素や子要素リストに設定されたオブジェクトにアクセスすることで、それぞれのオブジェクトのデータ群にアクセスすることが可能となる。ここで処理中の要素をE、親要素をP(E)、子要素をC1(E),C2(E),…CN(E)と表す。まず、構造化文書要素変換手段22は、切り出した要素より属性値を抜き出し、クラスオブジェクトEの属性値として設定する。
次に、RAM11から親要素にあたるオブジェクトP(E)が取得できたかを判定する(S603)。存在する場合(S603・Yes)、構造化文書要素変換手段22は、オブジェクトP(E)をRAM11から取得する(S604)。処理要素Nに対する親要素としてP(E)を設定する(S605)。その後、親要素P(E)の子要素リストの末尾に自身のオブジェクトNを追加する(S606)。
構造化文書要素変換手段22は、オブジェクトE,P(E)に関する設定を終えると、RAM11に保存された親要素P(E)を現在の処理要素Eに変更し(S607)、処理要素Nの全ての子要素のそれぞれに対して、前述したインスタンス化処理を再帰的に実施する(S608)。S607.S608によりEを親要素、C1(E),C2(E),…CN(E)を処理中の要素とするインスタンス処理を実施することとなる。再帰的に子孫ノードを処理するため、全ての子要素に対するインスタンス化処理を終了すると、一連のオブジェクト初期化作業は終了となる。この結果、BPEL文書に含まれる要素の関係を表すオブジェクトツリーが構築される。
なお、処理要素がルートノードであるためRAM11に親要素が設定されていない場合(S603・NO)、構造化文書要素変換手段22は、ステップS604〜S606の処理を実行せず、処理要素に対する親要素を設定しない。すなわちステップS607の処理に移る。
図7は、図3に示すBPEL文章を構造化文書要素変換手段22によりオブジェクト化したときのオブジェクトツリーを示す。図7において、ルートノードの要素Processのオブジェクトの子要素リストには、要素variables、要素partnerLinks、要素sequenceのオブジェクトが設定される(C1,C2,C3)。また例えば、要素Processの子要素である要素sequenceには、親要素として要素Processのオブジェクト(P)が設定され、子要素リストには、要素receive、要素assign、要素replyのオブジェクトが設定される(C1,C2,C3)。
さらに、要素assignの子要素である要素copyのオブジェクトには、親要素assignのオブジェクト(P)が設定され、子要素リストには、要素from、要素toのオブジェクトが設定される(C1,C2)。他の子要素のオブジェクトについても、同様にして親子関係に応じて、親要素と子要素リストが設定される。
なお、図7では示していないが、各オブジェクトには属性値を示すデータが含まれている。例えば、要素receiveのオブジェクトには、図3に示すBPEL文書の10行目にあるように、partnerLink、portType、operation、variableの各属性が設定されている。
このようにインスタンス化処理によって生成されたクラスオブジェクト21では、構造化文書20における要素の親子関係が定義される。従って、クラスオブジェクト21を参照とすることで、各オブジェクトの親子関係や属性値、また親子関係にある他のオブジェクトの情報を知ることができるようになる。
なお、前述した説明では、BPEL文書のみを対象にして説明しているが、構造化文書要素変換手段22は、全てのWSDL文書についても同様にしてインスタンス化処理を実行する。
従って、構造化文書要素変換手段22によるインスタンス化処理によって、BPEL文書から変換されたBPEL文書オブジェクトと、WSDL文書から変換されたWSDL文書オブジェクトが生成される。
次にインターフェイス抽出手段22により、オブジェクト化したBPEL、WSDL要素を基にワークフローエンジンへ接続するための情報を抽出する。BPELワークフローへアクセスするために必要なインターフェイス情報として求められるのは、BPELプロセスを識別するための名前空間 (BPEL:process要素のtargetNameSpace属性)、実行する操作の名前(BPEL:receive/reply要素のopeartion属性)、実行する操作のインターフェイス情報(BPEL:receive/reply要素のportType属性)、通信相手の役割を示す(BPEL:receive/reply要素のpartnerLink要素)情報である。
これらを指定することにより対象のスクリプトを決定するとともにメッセージ送信対象の操作を指定する。また、これらの関係はWSDLに定義されており、この関係を満たす必要もある。この関係の正当性を検証すると初めてメッセージ送信対象の操作を一意に特定できるためである。その関係を図8に示す。
本来、これらの正当性を検証する必要性があるが、説明を簡易にするため正当性を検証された文章とみなし検証を行わない。WSDLにはインターフェイス情報から引き出されるメッセージの入力値・帰り値の構成に関する情報が含まれるためそれらもまた抽出する。
図8は、Webサービス部300を示す図であり、BPELとWSDLの関連性を表した図である。BPELのreceiveはクライアント(図2のテスト用クライアント200)からのメッセージを受信し、replyからクライアントにメッセージを返す。BPELは、例えば図8の太線(実線、点線、一点鎖線等)で示す順序((81)〜(88))でWSDLから必要な情報を取得し、クライアントに送信する。
図9にインターフェイス抽出処理を示す。まず、BPELスクリプトからprocess要素のtargetNameSpace属性を取得する(S901・以降、この取得方法をtargetNameSpace抽出アルゴリズムと呼ぶ)。
次にBPELスクリプトからoperation、portType、partnerLinkの各値を取得する(S902・以降、この取得方法をインターフェイス抽出アルゴリズムと呼ぶ)。
最後にWSDLからinput、outputの構成情報を取得する(S904・以降、この取得方法を送受信メッセージ構成抽出アルゴリズムと呼ぶ)。ただし送受信メッセージ構成抽出アルゴリズムを実行するためには、まずWSDLからinput、outputのメッセージ名を取得する必要がある(S903・以降、この取得方法を送受信メッセージ名抽出アルゴリズムと呼ぶ)。以下、ステップS901,S902,S903,S904の詳細な処理の流れについて説明する。
先ずtargetNameSpace抽出アルゴリズム(S901)を図10に示す。図10では、始めにBPELオブジェクトツリーのルートオブジェクトを取得する(S1001)。これはprocess要素である。ここからBPELプロセスの識別の値であるtargetNameSpace属性を取得し(S1002)、取得したtargetNameSpace属性をRAM11に保存する(S1003)。
次に、インターフェイス抽出アルゴリズム(S902)を図11に示す。まず、探査対象の要素を探査変数Eとして設定する(S1101)。初期値はBPELのprocess要素オブジェクトを設定する。process要素はBPELスクリプトのルートノードである。次に初期値としてインデックスn=1を設定(1102)し、Eの要素の子要素(C1(E)、C2(E)、…、Cn(E)、…、CN(E))を取得する(ここではCn(E)を取得したものとする(S1103)。
次のステップS1104では、まずCn(E)存在するか確認する。Cn(E)が存在すればreceive要素か否か比較する(S1105)。同じ場合は、このreceive要素のoperation、portType、partnerLink属性の値をインターフェイスリストに追加する(S1106)。このリストは連想記憶になっており、operationを指定することによりportTypeや、partnerLink、input、outputのメッセージ名と構成を取得できる。
次に探査対象の要素EをCn(E)として、インターフェイス抽出アルゴリズム処理を行う(S1107)。S1107は再帰的な処理になっており、Cn(E)自身の子孫ノードすべてにreceive要素の検出・リスト追加処理を行うことが可能となる。これが終わると、インデックスnをカウントアップする(S1108)。そして次の要素Cn+1(E)とその子孫ノードに対しreceive要素の検索・インターフェイス抽出処理を実施する。これをCN(E)まで繰り返すことになる。CN(E)を終える(S1104・NO)と、すべてのreceive要素を探査したこととなりoperation、portType、partnerLinkの値の抽出が完了するので完成したリストをRAM11に保存する(S1109)。
次に、送受信メッセージ名抽出アルゴリズム(S903)を実施する。送受信メッセージの構成はWSDLのmessage要素にある。そのためには、図8のBPEL・WSDL要素関連図が示す矢印を追ってmesseage要素に辿りつく必要がある。receive/reply要素のvariable属性を基に、図8の83,84の関係性を適用することによりmessage要素を導くことができるが、receive要素と対になるreply要素を探す必要があるため、今回はreceive要素のopeartion属性を基に88,86の関連性を適用することによりmessage要素を導く。
そのため、まずWSDLから対象のoperation要素で使われるinput、output要素が指定するmesseageを取得する必要がある。この取得処理(S903)を図12に示す。図12では、探査対象の要素を探査変数EとしてWSDLのdefinisions要素オブジェクトを設定する(S1201)。definisions要素はWSDLスクリプトのルートノードである。次に子要素(C1(E)、C2(E)、…、CN(E))を取得する。
次に初期値としてインデックスn=1を設定(S1202)し、Eの要素の子要素(C1(E)、C2(E)、…、Cn(E)、…、CN(E))を取得する(ここではCn(E)を取得したものとする(S1203)。Cn(E)がportType要素か比較し(S1204)、Cn(E)がportType要素であれば(S1204・YES)、子要素のoperation要素C(Cn(E))を取得し(S1205)、一致しなければ(S1204・NO)、nをカウントアップして次の要素Cn+1(E)を検証する(S1206)。
次に初期値としてインデックスt=1を設定し(S1207)し、インターフェイスリストからoperationO1,O2,…ONを取得する。(ここでは取り出したoperation をOtとする(S1208)。)operation要素C(Cn(E))のname属性とOtの値が等しいか比較し(S1209)、値が等しければ(S1209・YES)、operation要素C(Cn(E))の子要素のinput要素とoutoput要素のmessage属性を取得する(S1210)。インターフェイスリストのoperationOtと連想させてインターフェイスリストに追加し(S1211)、RAMに保存する(S1212)。
同じでなければ(S1209・NO)インデックスtをカウントアップし(S1213)、次のoperationOt+1を取得し、C(Cn(E))と等しいか検証を行う(S1208)。これを対象のportType要素が見つかるまで行う。BPELとWSDLの各要素の関連性に誤りがなければ必ずマッチングする。
最後に、送受信メッセージ構成抽出アルゴリズム(S904)を実施する。取得したinput、outputに対しこのアルゴリズムを実施する必要があるが、inputとoutputは同じ処理を行うため、ここでは、図13を参照してinputの場合で説明する。
探査対象の要素を探査変数EとしてWSDLのdefinisions要素オブジェクトを設定する(S1301)。definisions要素はWSDLスクリプトのルートノードである。次に初期値としてインデックスn=1を設定し(S1302)、次にEの要素の子要素(C1(E)、C2(E)、…、Cn(E)、…、CN(E))を取得する(ここではCn(E)を取得したものとする(S1303)。
Cn(E)がmessage要素か比較し(S1304)、Cn(E)がmessage要素であれば(S1304・YES)、Cn(E)のname要素を取得し(S1305)、一致しなければ(S1304・NO)nをカウントアップして次の要素Cn+1(E)を検証する(S1306)。次に初期値としてインデックスt=1を設定し(S1307)、インターフェイスリストからoperationO1,O2,…ON、inputのメッセージ名、M1,M2,…,MNを取得する。(ここでは取り出したoperationをOt、inputのメッセージ名をMtをとする(S1308)。
次にmesseage要素Cn(E)のname属性とMtの値が等しいか比較し(S1309)、値が等しければ(S1309・YES)、messeage要素Cn(E)をインターフェイスリストのoperationOtと連想させてインターフェイスリストに追加し(S1310)、RAMに保存する(S1311)。
同じでなければ(S1309・NO)インデックスtをカウントアップして(S1312)、次のoperationOt+1を取得しCn(E)のname属性と等しいか検証を行う(S1308)。これを対象のmesseage要素が見つかるまで行う。BPELとWSDLの各要素の関連性に誤りがなければ必ずマッチングする。outoputに関してもinputと同じアルゴリズムを実施する。
パラメタの抽出と確認を終えると、テストツール設定・表示制御手段26はメッセージ入力画面を生成する。テストツールのメッセージ入力画面を図14に示す。テストツールはコンボボックス1401にインターフェイスリストからoperetionのリストを取り出し、コンボボックスに設定する(例としてhelloを設定)。ユーザからコンボボックスによるoperationの指定を受けると、入力値設定エリア1402を生成する。
入力値設定エリア生成処理を図15に示す。ユーザからのoperationの指定(ここではOtとする)をテストツール設定・表示制御手段26が受けると(S1501)、インターフェイスリストから対応するinputのメッセージ構成INtを取得する(S1502)。次にINtを基にメッセージ構成を読み取る(S1503)。本実施形態ではこのメッセージ構成を読み取るアルゴリズムに関しては省略するが、今までのアルゴリズム同様、ユーザから与えられたWSDLのmesseage要素を、ツリー構造探索アルゴリズムを利用することでメッセージ構成を理解することができる。
テストツール設定・表示制御手段26はこの構成情報を基に入力値設定エリア1402に変数名とそのデータ型、入力テキストボックス1403を表示する(S1504)。この入力テキストボックス1403の値がワークフローへの入力メッセージとなる。
入力メッセージを設定後、ワークフローエンジンに接続を行う。ワークフロー接続処理を図16に示す。テストツール設定・表示制御手段26は、図14の実行ボタン1404のクリックを受けると(S1601)、入力値設定エリア1402の各入力テキストボックス(1403)からメッセージを取得し(S1602)、型にあったオブジェクトに変換する(S1603)なおこの処理はオブジェクトにする必要がない場合は省略しても構わない。次に、接続に必要な情報を取得する。
ユーザに選択されたoperation名Otを取得し(S1604)、これを基にportType、partnerLink、BPELの名前空間を取得する(S1605)。これとS1603で取得した入力メッセージをワークフロー接続情報としてワークフロー接続手段27に与える(S1606)。ワークフロー接続手段27はBPELのワークフローに接続し、入力メッセージをワークフローエンジンに送信する(S1607)。ワークフロー接続手段27の具体手段については問わず、ワークフローエンジンにそれらの情報が渡ればよい。
ワークフロー側ではテストツールから送られてきたメッセージを基にBPELスクリプトを特定し、operation要素、portType要素、partnerLink要素が一致する受信すべき操作に対し、入力値を渡す。BPELスクリプトを通じ、返り値がある場合は、通信の同一セッションを利用しテストツールに値を返す。テストツールがワークフローエンジンから結果メッセージを受け取ると(S1608)、その結果を結果出力エリアに表示する。テストツールの結果出力の画面を図17に示す。
今度はS1604で取得したopearatonOtから連想されるoutputのメッセージ構成OUTtをインターフェイスリストから取得する(S1609)。OUTtを基にメッセージ構成を読み取るアルゴリズムを利用してメッセージ構成を取得する(S1610)。結果出力エリア1704に取得したメッセージ構成を基に変数名と変数の型を表示し、その変数に合わせて結果を表示する(S1611)。
テストツールの結果出力の画面(図17)において、結果出力エリア1704に表示された結果が満足できるものでない場合は、テストツールにBPELとWSDLを読み込み、良好な結果出力が得られるまでテストを繰り返す。
以上説明した本発明の実施形態によれば、ワークフローエンジンに接続するための情報や入力ウィンドウを、BPEL/WSDLスクリプトから自動生成することにより、ワークフローエンジンへ接続することが可能になり、テストの効率化を図ることができる。
尚、本発明の実施形態は、以上の説明に限定されることなく、特許請求の範囲を逸脱しない範囲で種々の変形が可能である。
10…CPU
11…RAM
12…ROM
13…ハードディスク駆動制御部
14…CD−ROM駆動制御部
15…表示器制御部
16…表示器
17…入力制御部
18…キーボード
19…I/F
100…バスライン
20…構造化文書
21…クラスオブジェクト
22…構造化文書要素変換手段、
23…インターフェイスリスト
24…インターフェイス抽出手段、
25…入力・表示ウィンドウ、
26…テストツール設定・表示制御手段、
27…ワークフロー接続手段
200…テスト用クライアント
300…Webサービス部

Claims (6)

  1. Webサービス部からワークフローを記述した構造化文書、及び前記ワークフローへのアクセスに必要なインターフェイス情報を示す構造化文書をそれぞれ取得し、前記取得した構造化文書に記述された要素をクラスオブジェクトに変換する構造化文書要素変換手段と、
    前記クラスオブジェクト化した要素を解析し前記インターフェイス情報を抽出するインターフェイス抽出手段と、
    前記インターフェイス抽出手段によって抽出されたインターフェイス情報を表示し、前記ワークフローを記述した構造化文書の要素を指定してスクリプトを入力するテストツール設定・表示制御手段と、
    前記スクリプト入力され前記抽出したインターフェイス情報を基に、前記Webサービス部のワークフローエンジンへ前記スクリプトを特定するメッセージを送信するワークフロー接続手段と、
    を具備したことを特徴とするWebサービステスト支援装置。
  2. 前記構造化文書要素変換手段は、インスタンス化処理により前記構造化文書に含まれる要素の属性、親子関係を定義した情報が設定されたオブジェクトに変換することを特徴とする請求項1記載のWebサービステスト支援装置。
  3. 前記テストツール設定・表示制御手段は、表示部に前記ワークフローエンジンへの入力メッセージ、及び前記ワークフローエンジンからの結果メッセージを表示するウィンドウを表示することを特徴とする請求項1記載のWebサービステスト支援装置。
  4. Webサービス部からのスクリプトをテストするテスト支援プログラムであって、コンピュータに、
    Webサービス部からワークフローを記述した構造化文書、及び前記ワークフローへのアクセスに必要なインターフェイス情報を示す構造化文書をそれぞれ取得し、前記取得した構造化文書に記述された要素をクラスオブジェクトに変換する変換機能と、
    前記クラスオブジェクト化した要素を解析しインターフェイス情報を抽出する抽出機能と、
    前記抽出されたインターフェイス情報を表示し、前記ワークフローを記述した構造化文書の要素を指定してスクリプトを入力する情報表示機能と、
    前記スクリプト入力され前記抽出したインターフェイス情報を基に、前記Webサービス部のワークフローエンジンへ前記スクリプトを特定するメッセージを送信するワークフロー接続機能と、を実現させるためのテスト支援プログラム。
  5. 前記変換機能は、インスタンス化処理により前記構造化文書に含まれる要素の属性、親子関係を定義した情報が設定されたオブジェクトに変換することを特徴とする請求項4記載のテスト支援プログラム。
  6. 前記表示機能は、表示部に前記ワークフローエンジンへの入力メッセージ、及び前記ワークフローエンジンからの結果メッセージを表示することを特徴とする請求項4記載のテスト支援プログラム。
JP2009068222A 2009-03-19 2009-03-19 Webサービステスト支援装置及びプログラム Expired - Fee Related JP5379526B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009068222A JP5379526B2 (ja) 2009-03-19 2009-03-19 Webサービステスト支援装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009068222A JP5379526B2 (ja) 2009-03-19 2009-03-19 Webサービステスト支援装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2010224632A JP2010224632A (ja) 2010-10-07
JP5379526B2 true JP5379526B2 (ja) 2013-12-25

Family

ID=43041787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009068222A Expired - Fee Related JP5379526B2 (ja) 2009-03-19 2009-03-19 Webサービステスト支援装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5379526B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7367784B2 (ja) * 2020-01-30 2023-10-24 富士通株式会社 入力支援装置、入力支援方法および入力支援プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1639458A4 (en) * 2003-06-12 2010-05-05 Reuters America BUSINESS PROCESS AUTOMATION
JP4671337B2 (ja) * 2005-06-24 2011-04-13 株式会社日立ソリューションズ Webサービスのアクセス制御システム
JP2007102665A (ja) * 2005-10-07 2007-04-19 Hitachi Systems & Services Ltd リクエスタプログラムのチェック装置およびテスト値入力支援装置
JP4444944B2 (ja) * 2006-11-24 2010-03-31 日本電信電話株式会社 サービス連携方法
JP2009003580A (ja) * 2007-06-19 2009-01-08 Hitachi Ltd ビジネスプロセスの設計支援方法、設計支援プログラム、および、設計支援装置
JP4876032B2 (ja) * 2007-06-26 2012-02-15 株式会社日立製作所 Soaアーキテクチャのシステム設計支援方法およびsoaアーキテクチャのシステム設計支援装置
JP4185159B1 (ja) * 2008-01-30 2008-11-26 株式会社三菱東京Ufj銀行 アプリケーション開発支援装置及びプログラム

Also Published As

Publication number Publication date
JP2010224632A (ja) 2010-10-07

Similar Documents

Publication Publication Date Title
CN108491205B (zh) 一种基于组件树的前端网页开发方法及系统
CN106682219B (zh) 关联文档获取方法及装置
CN112099768B (zh) 业务流程处理方法、装置及计算机可读存储介质
CN106254423B (zh) 基于微服务架构实现Restful服务快速发布的方法
Rodriguez-Echeverria et al. Towards a language server protocol infrastructure for graphical modeling
JP4899971B2 (ja) テスト仕様書作成プログラム、テスト仕様書作成装置、およびテスト仕様書作成方法
US9575950B2 (en) Systems and methods for managing spreadsheet models
US20120266131A1 (en) Automatic program generation device, method, and computer program
JP2013097398A (ja) 通信システム及びその制御方法
CN112100550A (zh) 一种页面构建方法和装置
US20090037801A1 (en) Method and apparatus for automatic user manual generation
CN110727417B (zh) 一种数据处理方法和装置
CN111581920A (zh) 文档转换方法、装置、设备及计算机存储介质
CN114594927A (zh) 低代码开发方法、装置、系统、服务器及存储介质
CN113407284A (zh) 导航界面的生成方法、装置、存储介质及电子设备
JP6488417B1 (ja) ワークショップ支援システムおよびワークショップ支援方法
JP6723976B2 (ja) テスト実行装置及びプログラム
CN102521008A (zh) 程序编译装置和程序编译方法
CN104519118B (zh) 信息处理终端及其控制方法、系统及其控制方法
CN113268232B (zh) 一种页面皮肤生成方法、装置和计算机可读存储介质
JP5379526B2 (ja) Webサービステスト支援装置及びプログラム
CN102193789A (zh) 一种实现可配置跳转链接的方法和设备
JP5632593B2 (ja) 情報処理装置、制御方法、及びプログラム
CN117251231B (zh) 一种动画资源处理方法、装置、系统及电子设备
JP3716091B2 (ja) 要求仕様モデル・他形式モデル変換装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130729

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: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130927

R150 Certificate of patent or registration of utility model

Ref document number: 5379526

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees