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レジストリブラウザ機能を付加する。
© Copyright 2024 ExpyDoc