Webサービス相互運用性 (2)

Webサービス互換性を検証するテストツール

株式会社ビーコンIT
岩本 幸男
2003/9/20


 

Analyzerの実行

Analyzer 起動バッチファイル設定

 \wsi-test-tools\java\binにある、Analyzer.batを実行環境に合わせて修正する。

Analyzer Configurationファイルの設定

 \wsi-test-tools\java\samplesにある、analyzerConfig.xmlを実行環境に合わせて修正する。Monitorログの所在やWSDL関連の設定を行う。

[analyzerConfig.xmlの設定例]

<wsi-analyzerConfig:logFile correlationType="endpoint">
    log/log.xml
</wsi-analyzerConfig:logFile>
<wsi-analyzerConfig:wsdlReference>
  <wsi-analyzerConfig:wsdlElement type="port"
   parentElementName="HelloWORD"
   namespace="http://localhost:8080/WS-I/services/HelloWORD">
      HelloWORD
  </wsi-analyzerConfig:wsdlElement>
  <wsi-analyzerConfig:wsdlURI>
      samples/HelloWORD.wsdl
  </wsi-analyzerConfig:wsdlURI>
</wsi-analyzerConfig:wsdlReference>

Step6
 Analyzerにより適合性検査を実施する。

Step7
 Analyzer終了後、レポートの確認を行う。レポートファイルは、report.xmlの名称で格納される。WS-I Profile Conformance Reportは図5のとおり「Analyzer Tool Information」と「Summary」そして「Artifact: discovery」「Artifact: description」「Artifact: message」の5つのセクションから構成される。

図5 Analyzerによるレポートファイル(report.xml)

 Analyzer Tool Informationセクションには、Analyzerツールのバージョン情報のほか、稼働プラットフォーム環境およびAnalyzer設定情報が出力される。

 Summaryセクションには、対象となるWebサービスがWS-I Basic Profile 1.0のinteroperability guidelineに適合しているかどうかの結果を示す(図6)。適合検査の結果、問題が見つかるとResultは「failed」になり、合格するとResultは「passed」の値をとる。Resultが「failed」の場合、以下に続く3つのセクションの中のどこかに問題を見つけることができる

図6 Summaryセクションに表示された検査結果(failed

 UDDIを使用している場合、Summaryセクションに続くArtifact: discoveryセクションには、discovery(UDDI)に関連するAssertionごとに、検査結果の一覧に続き、詳細が出力される(図7)。Artifact: discovery、Artifact: description、Artifact: messageの3つのセクションの各ヘッダ部分には、それぞれ個別にSummaryが設けられている。「Passed」は適合、「Failed」は不適合、「Warning」は注意あり、「Not Applicable」と「Missing Input」は、それぞれテストが適応できない、入力データがない、という意味である。

図7 discoveryセクションに表示された検査結果。今回UDDIは使用していないので「Missing Input」がチェックされている

  Artifact: descriptionセクションには、description(WSDL)に関連するAssertionごとに、検査結果の一覧に続き、詳細が出力される(図8)。このサンプルでは、Bindingに「failed」が発生しているが、順にリンクをたどることにより、「failed」と判断されたレポートの詳細(図9)、該当したBasic Profile 1.0 Test Assertionの詳細(図10)、そして、Test Assertion のもととなったWS-I Basic Profile 1.0までたどり着くことができる。Test AssertionのWSI2406は、WS-I Basic Profile 1.0 R2706とR2723がもとになっており、R2707とも関連している。さらに、WSI2406はWSI2703を先行条件として持つことが分かる。

図8 Descriptionセクションに表示された検査結果

図9 「failed」個所の詳細レポート。図8の該当個所からリンクしている

図10 該当するBasic Profile 1.0 Test Assertionの詳細。図9の「WSI2406」からリンクしている

 R2706、R2723そしてR2707はWS-I Basic Profile 1.0にとって必須(MUST)要件なので、適合しない場合、結果は「failed」となる。この場合、use属性は“literal”でなければならないのである(図11〜13)。



図11、12、13 Basic Profile 1.0のドキュメント。図10からリンクしている

 次に、Artifact: messageセクションを見てみると、Test AssertionのWSI1001で「Warning」が見つかった。前述のdescriptionと同様に、Basic Profile 1.0 R1140までたどることができる(図14〜17)。

図14 Messageセクションに表示された検査結果

図15 「warning」個所の詳細レポート。図14の該当個所からリンクしている

図16 該当するBasic Profile 1.0 Test Assertionの詳細。図15の「WSI1001」からリンクしている

図17 Basic Profile 1.0のドキュメント。図16からリンクしている

 R1140はWS-I Basic Profile 1.0にとって推奨 (SHOULD/SHOULD NOT)要件なので、適合しない場合、結果は「Warning」となる。この場合、HTTP 1.0でもよいがHTTP 1.1の方が望ましいということになる。

日本語版Basic Profile 1.0の設定方法

 日本語版Basic Profile 1.0の取り扱いには若干注意が必要である。日本語版Basic Profile 1.0の冒頭には次のような注意書きがある。

「この文書は Web Services-Interoperability Organization (WS-I) の文書の翻訳である。この翻訳と英語版との間に食い違いがあった場合、又は、翻訳に省略がある場合、原文の英語文書が決定版として扱われるべきである。」

 本稿では、日本語版のWS-I Basic Profile 1.0を使用しているが、オリジナルは英語版である。日本語版が公開された時点で、\wsi-test-tools\common\profiles\BasicProfileTestAssertions.xmlのBasic Profile 1.0参照先を変更することで、日本語版が利用可能になる。

[日本語版利用の設定例]

<profileList>
<profile id="BP1"
 name="Basic Profile" version="1.0" revision="18"
 location="日本語版参照先"/>
</profileList>

 これらの情報は、WS-I会員であれば、最新のものを入手できる。またWS-IのSIGの1つであるJapan-SIGにも参加資格が与えられるため、日本での情報入手も可能である。最新動向に興味のある方は、WS-Iへの参加を勧める。

 

テストツールの位置付けと意義

 現在のテストツールは完ぺきではない。テストを正常にパスしたからといって、そのWebサービスが100%Basic Profile 1.0に適合し、相互運用が可能であると保証されるわけでもない。莫大(ばくだい)なWebサービスの動的な「ふるまい」をすべてテストすること自体が不可能である。このため、WS-IはBasic Profile 1.0準拠の証明基準を定めていない。しかし、Webサービス相互運用のための指標ができたということには大きな意義があり、開発時に大いに参考になる。このテストツールにより、適合の度合いを簡単に知ることができ、相互接続を実現させるための工数を激減させてくれる。

Eclipseへのプラグイン

 WS-Iテストツールは、各種開発ツールへのプラグインが盛んに行われている。例えばEclipseではWeb Service Validation Toolsとしてプラグインを公開している。さまざまなツールにWS-Iテストツールが取り込まれることにより、Webサービス間で、より一層の相互運用性が高まることが期待される。

 まだまだ、さまざまな課題はあるが、現時点で十分に有用なツールとなっている。ぜひ活用していただきたい。

2/2  

Index
  Webサービスの互換性を検証するテストツール(1/2)
 ・WS-Iテストツールの背景
 ・WS-Iテストツールの概要
 ・WS-Iテストツールのインストール(Java版)
 ・Monitorの実行
Webサービスの互換性を検証するテストツール(2/2)
 ・Analyzerの実行
 ・テストツールの位置付けと意義


「Webサービス相互運用性」 バックナンバー

  1. WS-I:Webサービス互換性の実現に向けて
  2. Webサービスの互換性を検証するテストルーツ



XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間