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