Presentation is loading. Please wait.

Presentation is loading. Please wait.

入出力データ型に透過な Webサービス動的実行システム 松江工業高等専門学校 情報工学科 越田高志 情報処理学会第68回全国大会

Similar presentations


Presentation on theme: "入出力データ型に透過な Webサービス動的実行システム 松江工業高等専門学校 情報工学科 越田高志 情報処理学会第68回全国大会"— Presentation transcript:

1 入出力データ型に透過な Webサービス動的実行システム 松江工業高等専門学校 情報工学科 越田高志 情報処理学会第68回全国大会
               2006年3月7日    松江工業高等専門学校 情報工学科 越田高志

2 1.はじめに Webサービスとは Webサービスの基本技術 Webサービス実用化の問題点
データアクセスプロトコルとしてSOAPを用い,XML形式でデータ交換を行う分散処理プログラムのこと. Webサービスの基本技術 SOAP,UDDI,WSDLである. Webサービス実用化の問題点 1.必要とする適切なWebサービスを検出・連携し,目的と する処理を実行する適切な手段が存在しないこと, 2.ユーザ側でWebサービスの実行を制御するスタブを開発しなければならないこと,及び, 3.入力データ型が複合型であるWebサービスを利用できないこと.

3 その問題点の解決 プリミティブWebサービスの提案[1,2]
本論文で解決手法を提案する.

4 2.Webサービスの問題点 Webサービスの入出力データ型について WSのデータ型は大きく2種類ある.
基本型と複合型(基本型を複数個組み合わせたもの) 出力データ型に依存しない,自動化・統合化されたWS動的実行システムは開発済み. 出力データも自動処理可能となった. 現在WSの入力データ型は,全て基本型である. (何故なら,複合型にすると,実行時にユーザ側で複合型に対応したJavaBeansクラスを用意しなければならない.    ⇒ユーザへの負荷が大きい

5 入力データ型が複数の基本型パラメータをまとめた複合型であれば,
 1つのオブジェクトとして操作できるので,コードが  シンプルになり,開発と処理操作が容易になる利点があり, 入出力データ型の一元化も可能になる. public class GoodsService6{ // (A) 基本型入力データ  public SData6 getStocks(String btype, Stirng id, String gcode,   int quantity, int price) throws Exception{ public class GoodsService6{ // (B) 複合型入力データ  public SData6 getStocks(GData6 details) throws Exception{

6 Webサービス実行の流れ UDDIレジストリ Webサービス提供者 ユーザ クライアント・プログラムの作成と③,④を自動化した.
WSDLファイル Webサービスに関する情報 ・Webサービス,WSDLのアドレス Webサービスの登録 ②情報 ①検索 ④結果 ユーザ ③実行 クライアント・プログラムの作成 クライアント・プログラムの作成と③,④を自動化した.

7 3.入出力データ型に依存しないWebサービス動的実行システム

8 3.1 プリミティブWebサービス(PWS) Webサービスに関して,その名称,機能説明,入出力IFに関する規約などはなく,全て提供者に委ねられている.     従って, ユーザは利用するWS個々に機能,入出力データの確認と理解が必要である. 標準化することによって,理解と確認を容易にする.

9 定義 様々なビジネス分野で,共通に利用可能な一意に統一された名称,機能,入出力IFをもつ標準化されたWebサービスとして定義する.
WSに対する曖昧さ,不確定性が無くなる. 一度,それについて理解すれば良い. 任意のビジネスプロセスに対しても,ユーザ主体で PWSの組合せとして処理できる.

10

11

12 入力データ部分 出力データ部分 <wsdl:types> <schema >
<complexType name="Dat1"> <sequence> <element name="name" nillable="true" type="xsd:string"/> <element name="tel" nillable="true" type="xsd:string"/> </sequence> </complexType> <element name="Dat1" nillable="true" type="tns1:Dat1"/> <complexType name="CDat1">   <sequence> <element name="address" nillable="true" type="xsd:string"/> <element name="credit" nillable="true" type="xsd:string"/> <element name="head" nillable="true" type="xsd:string"/> </sequence> </complexType> <element name="CDat1" nillable="true" type="tns1:CDat1"/> </schema> </wsdl:types> 出力データ部分

13 複合型WSのWSDL記述の一部 <wsdl:types>
<schema targetNamespace=" xmlns=" <import namespace=" /> <complexType name="GData6"> <sequence> <element name="beertype" nillable="true" type="xsd:string" /> <element name="quantity" type="xsd:int" /> </sequence> </complexType> <element name="GData6" nillable="true" type="tns1:GData6" /> <complexType name="SData6"> <sequence> <element name="beercode" nillable="true" type="xsd:string" /> <element name="beername" nillable="true" type="xsd:string" /> <element name="casevalue" type="xsd:int" /> <element name="totalcost" type="xsd:int" /> <element name="unitvalue" type="xsd:int" /> <element name="SData6" nillable="true" type="tns1:SData6" /> </schema> </wsdl:types> <wsdl:message name="getStocksRequest"> <wsdl:part name="in0" type="tns1:GData6" /> </wsdl:message> <wsdl:message name="getStocksResponse"> <wsdl:part name="getStocksReturn" type="tns1:SData6" /> </wsdl:message>

14 基本型と複合型の比較 基本型 複合型 そのままデータをWSに送付・実行できる. 実行時に,入力順番を常に確認する必要がある.
全ての入力データ名を指定するので,プログラミングが煩雑になる. 複合型 その複合型データに対応したJavaBeansクラスを用意する必要がある. 実行時に,全ての入力データをJavaBeansクラスのオブジェクトとしてまとめて扱える(入力順番を気にする必要はない.)

15 基本型の場合 複合型の場合 public class GoodsService6{
public SData6 getStocks(String beertype, int quantity)                           throws Exception{ public SData6 getStocks(GData6 details) throws Exception{ 複合型の場合 GData6クラスを共通に定義すれば良い.

16 複合型の利点 WSの連携がシンプルになる. 入力データのカプセル化
あるWSの出力を次のWSの入力とする場合など,同じJavaBeansクラスのオブジェクトを利用できる. 入力データのカプセル化 ユーザは入力データの意味さえ分かればよい.その変数名や入力順番などを気にしなくてよい.プログラミングが簡略化される. WSメソッドのシグニチャ(メソッド名と引数)は同じ,でも引数の内容が異なるWSも可能.

17 3,2 システムの機能

18 Webサービスの検出 Webサービスの結合 ユーザが必要とする最適なWebサービスを如何に効率良く,検出するか.
その機能,出力タイプ,入力パラメータの数とそのタイプをユーザに伝えること. Webサービスの結合 複数のWebサービスをどう結びつけるか? セマンテックWeb.

19 3.3 実験結果

20 4.おわりに 本システムを利用することにより,
複合型入力データをもつWebサービスに対しても,動的実行が可能になる.これにより,Webサービス提供側でも複合型入力データをもつWebサービスが提供可能となり,提供側のWebサービス開発工数と処理効率の向上が期待できる.Webサービスメソッドの入力IFの統一が容易になる. 従って,基本的なビジネスプロセスに対応した,一意に定義されたWebサービス名,メソッド名,入力IFをもつWebサービス標準化が実現でき,またWebサービスの動的連携も容易になると考えられる.


Download ppt "入出力データ型に透過な Webサービス動的実行システム 松江工業高等専門学校 情報工学科 越田高志 情報処理学会第68回全国大会"

Similar presentations


Ads by Google