SOAP/UDDI/WSDLによるB2Bシステムの開発

Webサービスの dynamic
Invocation に関する研究
越田研究室
竹田 拓也
研究目的
1. IBMのUDDIレジストリからWebサービスを
検索
2. Webサービスサーバ上のWSDLファイルの自
動解析
3. Webサービスの動的な検出・実行
 必要になった時点でUDDIレジストリからWebサービス
を検出する。
 スタブプログラムを使用せずにサービスを実行する。
システムの機能
主な機能
公開されているIBMのUDDIレジストリからWeb
サービスを自動検出
 WebサービスのWSDLファイルを自動解析
 実行メソッドへの引数の型を自動判別

入力パラメータ
tModelKey(必須)
 実行メソッド名(必須)
 実行メソッドに与える引数

WSDLファイル取得の流れ
IBM UDDIレジストリ
tModel
WSDLファイル
へのポインタ
tModelKey
WSDLファイルへ
のポインタを取得
入力パラメータ
WSDLファイル
WSDL
Webサービス
クライアント
サービス提供元
UDDIのデータ
<businessEntity businessKey="E0270900-5C3E-11D51-A5
8E-0004AC49CC1E“ operator="www.ibm.com/services/
uddi" authorizedName="0100003RNH">
<discoveryURLs>
<discoveryURL useType="businessEntity">ht
tp://www-3.ibm.com/services/udd
i/testregistry/uddiget?businessKey
=E0270900-5C3E-11D5-A58E-0004
AC49CC1E
</discoveryURL>
</discoveryURLs>
<name xml:lang="en">StockQuote</name>
<businessServices>
<businessService serviceKey="5D0293D0-5C4・270
・
・
・
WSDLファイルのデータ
<message name="getRateRequest">
<part name=“country1” type="xsd:string"/>
<part name="country2“ type="xsd:string"/>
</message>
引数の型
<messageame="getRateResponse">
<part name="Result" type="xsd:float" />
</message>
<portType name="CurrencyExchangePortType">
<operation name="getRate"> メソッド名
<input message="tns:getRateRequest" />
<output message="tns:getRateResponse" />
</operation>
</portType>
・
・
・
開発に使用したライブラリ
 UDDI4J
UDDIレジストリへのアクセスを制御
 UDDIの主要タグの登録・検出

 WSDL4J

WSDLファイルのタグ情報を解析
 WSIF

Webサービスのスタブレスな実行
本システムの構成図
IBM UDDIレジストリ
入力パラメータ
tModelKey
tModel
IBM
検索
UDDI
取得
UDDI4J
レジストリ
UDDI4J
overviewURLを
取得
アクセス
WSIF
メソッド名
指定
 メソッド名
 引数名
 引数の型
引数
解析
WSDLファイル
WSDL4J
入力メッセージの作成
Webサービスサーバ
起動
WSIF
クラスライブラリ
サービスの起動
既存システムとの違い
既存システムにおける実行の流れ
1. ローカルなWSDLファイルの読み込み
2. スタブプログラムの作成
手動
3. クライアントプログラムの作成
4. Webサービスの実行
本システムにおける実行の流れ
1. リモートなWSDLファイルの読み込み・解析
自動
2. Webサービスの設定・実行
完全にスタブレスな実行を実現している
既存システムの実行の流れ
ユーザ側
リモートのWeb
サービスを実行す
るために必要
ネットワーク側
WSDLファイル
サービス提供元
スタブプログラム
の作成
WSDLファイル
スタブプログラム
クライアントプログラム
の作成
サービスプログラム
サービスの起動
クライアントプログラム
手動で行う
本システムの実行の流れ
ユーザ側
tModelKey
クライアントプログラム
tModelKey
WSDLファイル
メソッド名
解析
 メソッド名
ネットワーク側
Webサービス
の検索
UDDI
WSDLファイル
のポインタ
WSDLファイ
ルの取得
 引数名
入力メッセージ
提携
サービス提供元
 引数の型
引数
レジストリ
Webサービス
の起動
WSDLファイル
入力メッセージ
の作成
自動
サービスプログラム
実験結果1
Webサービス:StockQuote
実行メソッド:getQuote
引数:IBM
戻り値:株価
C:\java DynamicInvocation UUID:F24269F0-342
6-11D8-B936-000629DC0A53 getQuote IBM
Reading WSDL document from
‘http://services.xmethods.net/soap/urn:xmetho
ds-delayed-quotes.wsdl’
Operation is succeed
Result:97.7
実験結果2
Webサービス:CurrencyExchange
実行メソッド:getRate
引数1:USA
引数2:JAPAN
戻り値:換金レート
C:\java DynamicInvocation UUID:5B9833C0-FDCE
-11D6-82AC-000629DC0A7B getRate USA JAPAN
Reading WSDL document from
‘http://www.xmethods.net/sd/CurrencyExchange
Service.wsdl’
Operation is succeed
Result:105.94
今後の課題
今後の課題として以下のようなものが考えられる
1. プログラムのインターフェースをコマンドラインか
らGUIに変更する。
2. 本システムの入力パラメータであるtModelキー
検索のためにクライアントプログラムに簡単なU
DDIレジストリブラウザ機能を付加する。