-SOAP/UDDI/WSDLによるWebサービスの開発- 日本...

21
© Copyright International Business Machines Corporation 2001. All rights reserved. Webサービスの開発とセキュリティ -SOAP/UDDI/WSDLによるWebサービスの開発- 日本アイ・ビー・エム株式会社 ソフトウェア事業部 エマージング・テクノロジー・エバンジェリスト 米持 幸寿

Transcript of -SOAP/UDDI/WSDLによるWebサービスの開発- 日本...

© Copyright International Business Machines Corporation 2001. All rights reserved.

Webサービスの開発とセキュリティ

-SOAP/UDDI/WSDLによるWebサービスの開発-

日本アイ・ビー・エム株式会社 ソフトウェア事業部

エマージング・テクノロジー・エバンジェリスト

米持 幸寿

© Copyright International Business Machines Corporation 2001. All rights reserved.

Agenda

• JavaをとりまくWebサービスツール

• WebSphereを使ったWebサービス開発

• デモ

• 信頼関係の構築

© Copyright International Business Machines Corporation 2001. All rights reserved.

Webサービスとは?

リクエスター

検索UDDI-API

クライアント||

ソフトウェア プロバイダーWebサービス

||ソフトウェア

WSDL説明

登録UDDI-API

サービスを提供

UDDI

利用

SOAP

© Copyright International Business Machines Corporation 2001. All rights reserved.

IBM WebServicesアーキテクチャー

SOAPサービスへの接続

WSDLサービスの記述

UDDIサービスの発見

注:この図では左右が逆です

© Copyright International Business Machines Corporation 2001. All rights reserved.

SOAP/WSDL/UDDI による

動的接続の実現

サービス仲介者(UDDI)

サービス提供者 サービス要求者

サービス記述WSDL

クライアント実装

インターフェース記述

WSDL

tModel

busienssEntity

businessService

bindingTemplate

Webサービス実装

⑤呼出し

④参照

③検索

発見 ①登録

②転記

①サービスの型をtModelとして登録す

る。標準を使う場合、企業団体などが

一度行えば良い作業。

②サービス記述を登録する。これは、

bindingTemplateへの転記の形で行わ

れ、URLなどが書き込まれる。

③サービス要求者はUDDIで検索し、

WSDLを発見する。

④WSDLファイルを参照し、静的バイン

ディングではサービス記述からツール

で、または、動的バインディングではフ

ァクトリーなどを使ってプロキシ・オブジ

ェクトを生成する。

⑤プロキシクラスを使って接続する。

UDDI

© Copyright International Business Machines Corporation 2001. All rights reserved.

Webサービスの開発

• プロバイダー– Green-Field

すべてを開発

– Bottom-Up既存コードをWebサービス化

– Top-Down決められたスキーマに従って開発

– Meet-In-The-Middle既存コードを決められたスキーマにマッピング

• リクエスター– Static Binding

決まった相手に接続

– Builde-Time Dynamic Binding決まったインターフェースにアクセスサービスポイントは実行時に発見

– Runtime Dynamic Binding実行時に動的にプロキシーを生成

Web Services Development Concepts より

© Copyright International Business Machines Corporation 2001. All rights reserved.

JavaをとりまくWebサービス・ツール

• Apache– ApacheSOAP , Xerces, Xalan

• alphaWorks– WSDL Toolkit , XML4J– WebSerices Toolkit(WSTK), XSS4J– WebServices Invocation Framework

• developerWorks– UDDI4J

• WebSphere Developer Domain– UDDI Registry Preview

• WebSphere Application Server V4.0+ WebSphere Studio V4.0

© Copyright International Business Machines Corporation 2001. All rights reserved.

JavaによるWebサービス開発

JavaBeans

Impl-WSDLI/F-WSDL

DeploymentDescriptor

ApacheSOAP

Client

Proxy

メソッド呼出し

UDDI4J

UDDI登録UDDI-API

WSTK wizardWSS4.0

WSTK BrowserUDDI4J

リクエスター

UDDI Registory

プロバイダー

③WSDL TookitWSS4.0

SOAP

© Copyright International Business Machines Corporation 2001. All rights reserved.

①WSDL、ApacheSOAP用DDの生成

• WSTKウィザード(wsdlgen.bat)– WSDL2種とDDが生成される

– JavaBeans、EJB、COMをサポート

• WebSphere Studio V4.0– Webサービス生成ウィザード

– WSTK 2.2のJavaBeans機能と同等の機能

© Copyright International Business Machines Corporation 2001. All rights reserved.

②WebサービスをUDDIへ登録

• WSTK 2.3– Webサービス・ブラウザー

– GUIによるUDDIの検索、登録

– WebServicesアーキテクチャーに従ってWSDLをUDDIに登録

– 同時にApacheSOAPへのディプロイが可能

– 残念ながらV2.4では廃止

– WSADに同様の機能を搭載

• UDDI4J、WSTK-API による登録– Java-APIの呼出し

– 自動登録が可能

© Copyright International Business Machines Corporation 2001. All rights reserved.

③Webサービス接続用Proxyの生成

• WSDL Toolkit(WSTK:proxygen)

– コマンドプロンプトで動作するJavaプログラム

– WSDLからJavaプロキシーを生成

– HTTP経由でWSDLにアクセスする

• WebSphere Studio V4.0– Webサービス取得ウィザード

– WSDLからプロキシーを生成

– 表示用JSPのひな形を生成

© Copyright International Business Machines Corporation 2001. All rights reserved.

④UDDI4J呼出しコーディング

• UDDIProxyオブジェクトの生成

• サービスポイントURLの設定

• 検索メソッド(find_xxx)の呼出し

• リストオブジェクトの取得(getXXXList)• イテレート

• 取得メソッド(get_xxx)の呼出し

• BusinessServiceオブジェクトからWSDLを取得

© Copyright International Business Machines Corporation 2001. All rights reserved.

⑤Proxy呼出しコードの作成

• WSDLで公開されているメソッドのセットと

インターフェースが一致

• 呼出しは、普通のクラスと同じ

• サービスを提供するクラスと共通interfaceにすることで、取り替えがカンタン

© Copyright International Business Machines Corporation 2001. All rights reserved.

WebSphereによるWebサービス開発

• WebSphere Application Server V3.5+WebServices Toolkit V2.3

• WebSphere Application Server V4.0+WebSphere Studio V4.0

or+WebServices Toolkit V2.4

• WebSphere UDDI Registory

© Copyright International Business Machines Corporation 2001. All rights reserved.

WebSphereAS V4.0へのディプロイ

• WAS4.0はJ2EEサーバー

– WARまたはEARにする必要あり

• WebSphere Studio V4.0での手順

1. ウィザードでWSDL、DD生成

2. WSDLを発行可能に

3. WARファイルに発行

4. WAS4.0付属のAATでEARファイルに組立て

5. SoapEarEnablerでSOAPランタイムを付加

6. WAS4.0へインストール

© Copyright International Business Machines Corporation 2001. All rights reserved.

DB2 UDB - WORF

RDB

WORF

WSDL DADX

SOAPClient SOAP

DB2 UDB

© Copyright International Business Machines Corporation 2001. All rights reserved.

© Copyright International Business Machines Corporation 2001. All rights reserved.

信頼関係の構築

• 取引相手の選定– 人手による選定

– UDDI Version 2 “Checked Taxonomy”– レーティングサービスの利用

• 取引相手のアイデンティティの確認– Public Key Infrastructure(公開鍵証明書の発行)

– 権限の委譲/信頼の伝播(信任状の発行)

• 証拠性のある取引 – 電子署名– Identrus(与信/決済)

– オリックス様システム

© Copyright International Business Machines Corporation 2001. All rights reserved.

電子署名に関する法整備• アメリカ

– 2000年6月30日法案成立, 同10月施行

• 日本

– 「電子署名及び認証業務に関する法律」• 2000年5月31日成立, 2001年4月1日施行

• 電磁的記録の真正な成立の推定、特定認証業務に関する認定の制度を定めている

• RSA、ECDSA、DSA、ESIGNなどの電子署名アル

ゴリズムが推奨されている

© Copyright International Business Machines Corporation 2001. All rights reserved.

オリックス様システムへの適用

Internet

中立地帯 イントラネット

アプリケーションサーバ(WAS)

アプリケーションサーバ(WAS)

署名サーバ

バックエンドDB

インターネット

MQ

Clie

nt

MQ

キュー

マネージャ

従来アプリ用サーブレット

署名プロキシサーブレット

メッセージサポート Access

controlKey Mng.

Logging

従来アプリ用サーブレット

署名/検証エンジン

HTTPS/XML SOAP on MQ

SOAP on MQ

SOAP on MQ

DB

© Copyright International Business Machines Corporation 2001. All rights reserved.

Links• W3C

– http://www.w3c.org/• UDDI

– http://www.uddi.org/• IBM外むけページ

– http://www.ibm.com/jp/software/webservices/ (日本語)

• alphaWorks– http://www.alphaworks.ibm.com/ (英語)

– http://www.trl.ibm.com/alphaWorks/ (日本語)

• developerWorks– http://www.jp.ibm.com/developerworks/ (日本語)

• WebSphere Developer Domain– http://www.jp.ibm.com/software/websphere/developer/index.html

• Apache– http://www.apache.org/