1 プリミティブ Web サービスの 入出力データに関する一考察 2005 年 3 月 21 日 松江工業高等専門学校 情報工学科 奈良先端科学技術大学院大学 情報科学研究科 越田高志 電子情報通信学会 2005年総合 大会
2 1.はじめに Web サービスとは – データアクセスプロトコルとして SOAP を用 い、 XML 形式でデータ交換を行う分散処理 プログラムのこと。 Web サービスの基本技術 –SOAP 、 UDDI 、 WSDL である。 –UDDI レジストリを Web サービスのベースに 考え、研究開発を進める。 Web サービスの目的 – ユーザが必要とするサービスを必要な時点で 検出し、実行できること。
3 WSの問題点 ( 3 項 目 ) Web サービス実行時に,ユーザ側でその Web サービスを駆動するスタブが必要であり,そ の開発負荷が大きい. ユーザが必要とする,または利用したい Web サービスの検出が難しい. 3. ユーザが Web サービスを利用する際に,その 機能や入出力インターフェースなど利用法に ついて短時間で正確に知ることが難しい. プリミティブ Web サービスの提 案 [1] WSの動的実行手法 に関する研究 [2][3]
4 UDDI レジスト リ Web サービスに関する情 報 ・ Web サービス、 WSDL のアドレス ①検索 ②情報 Web サービス提供者 Web サービス WSDL ファイル ③実行 ④結果 クライアント・プログ ラムの作成 Web サービス の登録 Web サービス実行の流 れ ユーザ クライアント・プログラ ムの作成と①~④を自動 化した.
5 プリミティブ Web サービス (PWS) の 提案 –WS を一元管理する,グローバルな CALS/EC シス テムを実現する基盤として, UDDI レジストリは必要. – しかし, WS 登録時に名称,機能説明,入出力 IF に 関する規約などはなく,全て提供者に委ねられて いる. 従って, – ユーザは利用する WS 個々に機能,入出力データ の確認と理解が必要である. – 標準化することによって,理解と確認を容易にす る.
6 WS の UDDI レジストリへの登録 例
7 様々なビジネス分野で,共通に利用可能な 一意に統一された名称,機能,入出力 IF を もつ基本的な WS として定義する. –WS に対する曖昧さ,不確定性が無くなる. – 一度,それについて理解すれば良い. – 任意のビジネスプロセスに対しても,ユー ザ主体で PWS の組合せとして処理できる. 定義
8 WS の入出力データについて WS の実行を動的,かつ自動化したい. –WS のデータ型は大きく 2 種類ある. 基本型と複合型(基本型を複数個組み合わせたも の) – 出力データ型に依存しない,自動化・統合化 された WS 動的実行システムは開発済み. – 現在の WS は,入力データ型は基本型である. (何故なら,複合型にすると,実行時にユーザ側で複 合型に対応した JavaBeans クラスを用意する必要があ る.)
9 <schema targetNamespace=" xmlns=" 複合型 WS の WSDL 記述の一部
10 基本型と複合型の比較 基本型 – そのままデータを WS に送付・実行できる. – 実行時に,入力順番を常に確認する必要があ る. – 全ての入力データ名を指定するので,プログ ラミングが煩雑になる. 複合型 – その複合型データに対応した JavaBeans クラス を用意する必要がある. – 実行時に,全ての入力データを JavaBeans クラ スのオブジェクトとしてまとめて扱える(入 力順番を気にする必要はない.)
11 public class GoodsService6{ public SData6 getStocks(String beertype, int quantity) throws Exception{ public class GoodsService6{ public SData6 getStocks(GData6 details) throws Exception{ 基本型の場合 複合型の場合 GData6 クラスを共通に定義すれば良い.
12 複合型の利点 WS の連携がシンプルになる. – ある WS の出力を次の WS の入力とする場合な ど,同じ JavaBeans クラスのオブジェクトを 利用できる. 入力データのカプセル化 – ユーザは入力データの意味さえ分かればよい. その変数名や入力順番などを気にしなくてよ い.プログラミングが簡略化される. WS メソッドのシグニチャ(メソッド名と 引数)は同じ,でも引数の内容が異なる WS も可能.
13 Web サービスの検出 – ユーザが必要とする最適な Web サービスを 如何に効率良く、検出するか。 – その Web サービスの使い方をどう理解させ るか。 その機能、出力タイプ、入力パラメータの数と そのタイプをユーザに伝えること。 Web サービスの結合 – 複数の Web サービスをどう結びつけるか? – セマンテック Web 。