• 検索結果がありません。

事例から分かる Web サービスの適用動向 JPGRID-TU0201-No.2 グリッド協議会資料 Web サービスの技術動向の紹介 2002 年 12 月 19 日 NECソリューションズインターネット基盤開発本部藤田悟 内容 1. Webサービスとは 2. Webサービスを支える技術 3. W

N/A
N/A
Protected

Academic year: 2021

シェア "事例から分かる Web サービスの適用動向 JPGRID-TU0201-No.2 グリッド協議会資料 Web サービスの技術動向の紹介 2002 年 12 月 19 日 NECソリューションズインターネット基盤開発本部藤田悟 内容 1. Webサービスとは 2. Webサービスを支える技術 3. W"

Copied!
25
0
0

読み込み中.... (全文を見る)

全文

(1)

グリッド協議会 資料

Webサービスの技術動向の紹介

2002年12月19日

NECソリューションズ

インターネット基盤開発本部

藤田 悟

内容

1. Webサービスとは

2. Webサービスを支える技術

3. Webサービスの技術課題

4. NEC の製品群

5. まとめ

6. デモの説明

(2)

1. Webサービスとは

Webサービスの2つの定義

T

サービス指向に基づいた動的なビジネス

統合基盤

T

IBMのWebサービスの定義

T

A Web service is a software component

described in WSDL.

T

インターフェイス定義が重要。

T

SOAP、EJB、CORBAなど、実装は問わない

T

SOAPによる連携システム

T

SOAP を用いることで

T

HTTP による firewall 越えが容易

T

XML によるハードウェア/環境に非依存

(3)

Copyright(c) 2002, NEC Corp. All rights reserved. 5

サービス指向アーキテクチャ

T

ビジネス設計にとって、

オブジェクト指向では

粒度が細かすぎる。

T

粒度の粗い設計

T

プログラムではなく、フ

ロー中心の設計

T

ビジネスはサービスの

中身が重要。

T

パートナーとは、実行

時に動的に連携

T

サービスを検索

/選択

オブジェクト指向

オブジェクト指向

オブジェクト指向

オブジェクト指向

ビジネス設計

ビジネス設計

ビジネス設計

ビジネス設計

サービス指向

サービス指向

サービス指向

サービス指向

SOAPによるシステム連携

SOAP ≒ HTTP + XML

T

インターネットを経由した疎結合のシステム連携

T

社内部門間のドメインを越えたシステム連携

インターネット接続

インターネット接続

インターネット接続

インターネット接続

SOAP

本部センター

本部センター

本部センター

本部センター

SOAP

メリット

メリット

メリット

メリット

• インフラを既存資産である

インフラを既存資産である

インフラを既存資産である

インフラを既存資産である

Webと共有

と共有

と共有

と共有

新たなネットワーク

新たなネットワーク

新たなネットワーク

新たなネットワーク設定

設定

設定

設定

/管理が

管理が

管理が

管理が不要

不要

不要

不要

• 機種依存性を排除

機種依存性を排除

機種依存性を排除

機種依存性を排除

企業内

企業内

企業内

企業内

(4)

2. Webサービスを支える技術

Webサービスの基本モデル

Webサービス上の役割を、サービ

スの利用者、提供者、ブローカに

区分して、3者間のサービスに対

する関係を規定する。

[提供者⇔ブローカ]

T

提供するサービスの定義を、提供者が

ブローカに

登録

する。

[利用者⇔ブローカ]

T

利用者は、ブローカに対してサービス

定義に関する

検索

を行う。

[利用者⇔提供者]

T

利用者は、提供者との間で直接サービ

スの

結合

(実行)を行う。

サービスブローカ

サービス利用者

サービス提供者

登録

検索

結合

UDDI XML+SOAP

サービス

サービス

定義

サービス

定義

(5)

Copyright(c) 2002, NEC Corp. All rights reserved. 9

Webサービススタック

ネットワーク

ネットワーク

XML Messaging

XML Messaging

サービス定義

サービス定義

HTTP, email

SOAP

WSDL

サービス登録

サービス登録

サービス検索

サービス検索

UDDI

BPEL4WS

WSFL, WSCL

ebXML BPSS

サービスフロー

サービスフロー

標準化技術

仕様はほぼ完成

ビジネスルール

ビジネスルール

RosettaNet

共通サービス

共通サービス

個々のWebサービス

個々のWebサービス

.NET MyServices

ビジネス領域

Sier、xSP が 様々なサービスで 差別化を狙う

新技術領域

各社が新技術を投入

T

BPEL4WS

(Business Process

Execution Language for WS)

Tサービス統合に関するフローを定

義言語

T

UDDI(

Universal Description,

Discovery and Integration

)

TWeb サービスのための情報レジ ストリ T

WSDL(

Web Services

Description Language

)

Tサービス呼出のインターフェース を規定

T

SOAP(

Simple Object Access

Protocol

)

Tシステム間でXML文書情報を交

換するための通信規約

用語解説

用語解説

SOAP (Simple Object Access Protocol)

インターネットに分散したシステム間で構造化された型付きメッセージを交換するため

XMLの標準案。Envelope の中に、Header 部と Body部が定義される。

サービス呼出 サービス戻り値

SOAP Envelope

<SOAP-ENV:Body>

<

m:

GetLastTradePrice

xmlns:m="Some-URI">

<m:symbol>

NEC

</m:symbol>

</m:GetLastTradePrice> </SOAP-ENV:Body> <SOAP-ENV:Envelope xmlns:SOAP-ENV=   "http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle=   "http://schemas.xmlsoap.org/soap/encoding/"> </SOAP-ENV:Envelope>

SOAP Body

<SOAP-ENV:Header> </SOAP-ENV:Header>

SOAP Header

SOAP Envelope

<SOAP-ENV:Body> <m:

GetLastTradePriceResponse

xmlns:m="Some-URI"> <m:price>

449

</m:price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> <SOAP-ENV:Envelope xmlns:SOAP-ENV=   "http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle=   "http://schemas.xmlsoap.org/soap/encoding/"> </SOAP-ENV:Envelope>

SOAP Body

<SOAP-ENV:Header> </SOAP-ENV:Header>

SOAP Header

(6)

Copyright(c) 2002, NEC Corp. All rights reserved. 11

SOAP を用いた2つのメッセージ交換手法

T

SOAP RPC

T

サービスコールとレスポンスの組み合わせで、1つのタスクを実現

T

Web サーバは、サービス提供者側だけに存在

インター ネット

SOAP

Web サーバ T

SOAP Messaging

T

(論理的に)一方向のメッセージを複数やり取りすることで、1つのタスク

を実現

T

Web サーバは、両者共に保有

T

ビジネスプロトコルを制御するレイヤーが SOAP 上に必要 (例:

ebXML Messaging Service)

インター ネット

SOAP

Web サーバ Web サーバ

SOAP RPC の仕様

T

型付きのメソッドコールの仕様

T

基本データ型(XML Schema に準拠)

T

byte, short, int, long, float, double, string

T

複合データ型

T

配列(SOAP Encoding で規定)

T

構造体

(XML Schema を利用して表現)

T

複数から参照される構造体は、href でリンクして表現する

T

引数/戻り値

T

引数は、in パラメタと、in/out パラメタがある

T

戻り値は、

out パラメタと、in/out パラメタがある

T

例外処理

T

SOAP Fault によるエラー送信

(7)

Copyright(c) 2002, NEC Corp. All rights reserved. 13

SOAPの配列と構造体例

■配列宣言

■配列宣言

■配列宣言

■配列宣言

<element name="myFavoriteNumbers" type="SOAP-ENC:Array"/>

■配列の送信時の表現

配列の送信時の表現

配列の送信時の表現

配列の送信時の表現

<myFavoriteNumbers SOAP-ENC:arrayType="xsd:int[2]"> <number>3</number> <number>4</number> </myFavoriteNumbers>

■複数参照される構造体の表現

複数参照される構造体の表現

複数参照される構造体の表現

複数参照される構造体の表現

<e:Book>

<title>My Life and Work</title> <author href="#Person-1"/> </e:Book>

<e:Person id="Person-1">

<name>Henry Ford</name> <address href="#Address-2"/> </e:Person>

<e:Address id="Address-2">

<email>mailto:[email protected]</email> <web>http://www.henryford.com</web> </e:Address>

SOAP 1.2 (draft)

T

W3C の XML Protocol の WGで協議中

T

SOAP 1.1 との互換性を重視しながら、仕様の曖

昧性の排除と、機能拡張を試みる。

T

マルチホップした時の処理モデルの定義

T

Header 部分に、トランザクションやコンテキスト管理

情報を載せることを示唆。

T

例外処理に関するコードの充実、定義の明確化

<Envelope> <Header> <Body> Header block Header block Body sub-element Body sub-element <Envelope> <Header> <Body> Header block Body sub-element Body sub-element <Envelope> <Header> <Body> Header block Body sub-element Body sub-element 処理 処理 処理 処理 追加追加追加追加 Header block

(8)

Copyright(c) 2002, NEC Corp. All rights reserved. 15

WSDL

(Web Services Description Language)

WSDLは、サービスのエンドポイント間で交わされる手続き

呼出のインターフェースとプロトコルバインディングを規定す

るための

XML フォーマット。

<?xml version="1.0"?> <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/1999/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all>

<element name=“symbol" type="string"/> </all> </complexType> </element> <element name="TradePriceResult"> <complexType> <all>

<element name="price" type="float"/> </all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput">

<part name=“GetLastTradePrice" element="xsd1:TradePriceRequest"/> </message>

<message name="GetLastTradePriceOutput">

<part name=“GetLastTradePriceResponse" element="xsd1:TradePriceResult"/> </message>

<portType name="StockQuotePortType"> <operation name="GetLastTradePrice">

<input message="tns:GetLastTradePrice"/>

<output message="tns:GetLastTradePriceResponse"/> </operation>

</portType>

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice">

<soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input>

<soap:body use="literal" namespace="http://example.com/stockquote.xsd" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input>

<output>

<soap:body use="literal" namespace="http://example.com/stockquote.xsd" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding>

データ型

の定義

メッセージ

の定義

プロトコル

バインディング

操作の

定義

WSDLを利用したシステム開発

T

サービスプログラムがある場合

T

例えば、

Java のインタフェース定義から、WSDLを自

動生成

T

その

WSDLからSOAPのクライアントプログラム用にプ

ロキシクラスを自動生成

T

サービスプログラムをSOAPを持つAPサーバに登録し

て完了。

Java

サービス

プログラム

Java

クライアント

プログラム

Java

インタフェース

WSDL

定義

自動

生成

Proxy クラス

自動

生成

APサーバ

登録

呼出

※Javaでなくても、C#でも可能。相互接続も可能。

(9)

Copyright(c) 2002, NEC Corp. All rights reserved. 17

UDDI

(Universal Description, Discovery and Integration)

T

UDDIは、SOAPサーバを連携させた Webサービス提供アーキテクチャにおけるサー

ビスディレクトリを提供

T

ビジネス/サービス/接続方法に関する文書を登録し、利用者からに検索機能を提供

T

登録、検索のインタフェースも

SOAP から利用できる。

ビジネス 提供者 情報 サービスの 内容 サービスの インタフェース WSDL

UDDI

SOAP Server

サービス プロキシ

deploy

register

1

2

ブローカ

(SOAP Server)

0

予備検索

利用者

4

find

WEB Server

(SOAP Server)

3

access

5

bind

html/http

SOAP/http

サービス

レジストリオブジェクトのデータ構造

サービスを提供する企業,

サービスを提供する企業,

サービスを提供する企業,

サービスを提供する企業,

団体の情報を記述

団体の情報を記述

団体の情報を記述

団体の情報を記述

サービスの内容を記述

サービスの内容を記述

サービスの内容を記述

サービスの内容を記述

サービスに接続するため

サービスに接続するため

サービスに接続するため

サービスに接続するため

の情報を記述

の情報を記述

の情報を記述

の情報を記述

WSDL等へのリンクを記述.

等へのリンクを記述.

等へのリンクを記述.

等へのリンクを記述.

WSDL中には

中には

中には

中には

プロトコル,

プロトコル,

プロトコル,

プロトコル,

データ形式等を記述.

データ形式等を記述.

データ形式等を記述.

データ形式等を記述.

(10)

Copyright(c) 2002, NEC Corp. All rights reserved. 19

UDDIプログラマーAPI

T

参照

参照

参照

参照

API (Inquiry API)

T

find_XXX

キーワードなどを用いた検索のためのAPI.検索の結果は対象となった要素

のキーがリスト形式で返される。

T

get_XXX

find_XXXで検索されたキーから、その実体(内容)を取り出すときに使用.

T

発行

発行

発行

発行

API (Publication API)

T

save_XXX

 レジストリオブジェクトを保管するためのAPI.

T

delete_XXX

 レジストリのエントリを削除する

※ここでXXXには検索の対象となるbusinessEntity、businessService、

bindingTemplate、tModelなどが入る.

UDDI 3.0 レジストリ

T

UDDI 3.0

T

Webサービス向けディレク

トリサービスの最新仕様

(2002年7月承認)

T

V2.0 の機能を大幅に強化

T

分散レジストリの対応

T

ノード:一つ一つのサーバ

T

レジストリ:ノードの集合。全ての

ノードは同一データを共有

T

アフィリエーション:レジストリ間

の相互参照関係を定義

T

プライベートディレクトリを構築

するための指針

T

XML署名の導入

T

検索機能・各種APIの強化

アフィリエーション レジストリ ノード ノード ノード ノード レジストリ レジストリ 同一データを共有 ノード ノード ノード ノード: UDDIを 構成する 最小単位。

UDDI V3の分散構成

アフィリエーション アフィリエーション アフィリエーション アフィリエーション: レジス トリの集合体。データ互換 を可能にする緩やかなレ ジストリ連合。 レジストリ レジストリ レジストリ レジストリ:ノード の集合体。すべ てのノードは複 製により同一デー タを保持。

(11)

Copyright(c) 2002, NEC Corp. All rights reserved. 21

Webサービス向けアーキテクチャ

T

XML プロトコルハンドラによる業界標準プロトコルへの対応

T

ワークフローエンジンが、サービス統合のフローを管理

一部は外部

Webサービスを呼び出し、一部は企業内サービスと統合

T

UDDIへのサービスの登録、実行時におけるサービスの検索

Web サービス用サーバ

Web

サーバ

AP サーバ

XML

プロトコル

ハンドラ

SOAP XML

ワーク

フロー

エンジン

サービス

コンポーネント

レガシーシステム ラッピング レガシー DB サービス用 DB

外部

Web

サービス

ディレクトリ サービス UDDI SO A P SO A P

ebXML

RosettaNet

その他の

 SOAPベースの

 メッセージ

既存サービスの

Webサービス化手法

T

既に

Web上に公開していたサービスに SOAP RPCのアク

セスインタフェースを作成して、Webサービスとして提供

する。

T

株価情報、天気予報のようなメソッド呼出だけで完了するサービ

スであれば、簡単に

Webサービス化が可能

T

優良コンテンツを保持していれば、サービス提供料金によるビジ

ネスが可能

Web サービス用サーバ

Web

サーバ

SOAP

ハンドラ

SOAP XML

既存サービス

コンポーネント

サービス用 DB

外部からの

サービス

呼出

SOAPハンドラ

に登録

(12)

Copyright(c) 2002, NEC Corp. All rights reserved. 23

従来技術との比較表

サービス呼び出し

1:多

企業間

プロトコル制御

動的取引

汎用/標準化

プロトコル

Loosely coupled

サービス

自動処理

Webサービス

必要な技術

従来

比較対象

/項目

SOAP, WSDL

データ表現

XML

SingleSignOn

1:1

取引相手

BPEL4WS

エージェント

企業内

アクティビティ制御

ワークフロー

UDDI

固定取引

SCM

標準化

専用

EDI

BPEL4WS, BPSS

メソッドインタフェース

相手との取決

HTTP

Tightly coupled

CORBA

サービス指向設計

オブジェクト

設計対象

SOAP

人間が画面を見る

Webシステム

※ 全ての特徴を持つのではなく、一部の特徴を利用するだけでよい。

3. Webサービスの技術課題

(13)

Copyright(c) 2002, NEC Corp. All rights reserved. 25

Webサービスは、即、使えるか?

T

接続は本当に簡単か?

T

楽観派

T

SOAP は HTTP を利用できるので、新たなネットワークの

構築や、管理設定が不要

T

XML なので、機種非依存の共通表現の構築が容易

T

懐疑派

T

SOAP でつなげることはできても、その後のリモート通信

の難しさは、従来と変わらない

T

トランザクション処理をどうするか

T

通信エラー処理が簡単にできるか

T

コンテクスト管理ができるか

T

相互接続が未検証な状態では、相互運用が疑問

T

セキュリティは万全か?

T

動的なパートナー企業探しは現実的か?

Webサービスは、即、使えるか?

T

接続は本当に簡単か?

T

セキュリティは万全か?

T

楽観派

T

SSL で暗号化するから安心

T

XML 署名で証拠が残り、否認防止が可能

T

WS-Security (暗号、署名)も近々標準が制定される。

T

Liberty Alliance で認証連携もサポートするらしい

T

VPN で通信すれば良い

T

懐疑派

T

DMZ(非武装地帯)を安全に作れるか

T

SOAP は、外向きの通信は簡単だが、内向きの通信をどう

やって安全に行うのか

T

通信エラーなどの例外処理にも堅牢か

T

動的なパートナー企業探しは現実的か?

(14)

Copyright(c) 2002, NEC Corp. All rights reserved. 27

Webサービスは、即、使えるか?

T

接続は本当に簡単か?

T

セキュリティは万全か?

T

動的なパートナー企業探しは現実的か?

T

楽観派

T

UDDI を使えば、その時の最良のパートナーを検索可能

T

サービスの信頼性は、レジストラが保証できる

T

必要な部分だけでも、動的な連携を利用すれば良い

T

懐疑派

T

不特定の相手とのビジネスはリスクが高過ぎる

T

UDDI の検索は、最初の一回だけ。次からは、同じ相手

と連携するので、毎回、動的に検索する必要はない。

ebXML

R&R

WS-Security          

         

         

         

SAML

課題を克服するための技術動向

T

ビジネスで利用するために

Simple から Complex に対応する技術

開発、標準化が進展

T

トランザクション、プロセスフロー、セキュリティ、高信頼メッセージング

T

相互運用性確保のためのベンダー間の協調

SOAP 1.1 →

1.2

ebXML MS

1.0 →

2.0

WSDL

1.1 →

1.2

UDDI

2.0 →

3.0

BTP

トランザクション

トランザクション

トランザクション

トランザクション

やコンテキスト

やコンテキスト

やコンテキスト

やコンテキスト

の考慮

の考慮

の考慮

の考慮

トランザクション

トランザクション

トランザクション

トランザクション

プロトコル

プロトコル

プロトコル

プロトコル

W3C

ebXML

BPSS, CPPA

OASIS

WS-I

XML

コンソーシアム

コンソーシアム

コンソーシアム

コンソーシアム

DOPG

海外

海外

海外

海外

国内

国内

国内

国内

相互運用性検証

相互運用性検証

相互運用性検証

相互運用性検証

高信頼

高信頼

高信頼

高信頼

メッセージ

メッセージ

メッセージ

メッセージ

認証情報

認証情報

認証情報

認証情報

SSO

LibertyAlliance

ECOM

BPEL4WS

IBM,

MS,

BEA

共同

共同

共同

共同

提案

提案

提案

提案

WS-Transaction

(15)

Copyright(c) 2002, NEC Corp. All rights reserved. 29

ebXML Message Service

T

B2B取引に必要な、コンテキスト管理、高信頼メッ

セージング(再送、到着確認、順序保証など)、パー

トナー契約、署名機能等を

SOAP 上に定義

T

ebXML Message Service 自身は、メッセージヘッ

ダのようなもの

T

あらゆる型のビジネス文書を添付して送信

T

V2.0 仕様が承認される(2002年9月)

T

仕様を必須機能と、オプション機能に分離

T

必須機能: 基本メッセージ、署名、エラー処理、同期応答

T

オプション機能: 高信頼メッセージ、順序保証、状態通知サー

ビス、マルチホップ

SOAP と ebXML メッセージ

SOAP Envelope

<SOAP-ENV:Body> <

m:

GetLastTradePrice

xmlns:m="Some-URI"> <body>

<symbol>

NEC

</symbol></body> </m:GetLastTradePriceInput> </SOAP-ENV:Body> <SOAP-ENV:Envelope …> </SOAP-ENV:Envelope>

SOAP Body

<SOAP-ENV:Header> </SOAP-ENV:Header>

SOAP Header

簡単な SOAP メッセージ

ebXML メッセージ

<SOAP-ENV:Header> <MessageHeader> <From> … </From> <To> … </To> <CPAId> … </CPAId> <Service> … </Service> <Action> … </Action> <ConversationId> … <ConversationId> </MessageHeader> <ds:Signature> … </ds:Signature> </SOAP-ENV:Header> <SOAP-ENV:Body> <Manifest> <Reference> … </Reference> </Manifest> </SOAP-ENV:Body>

添付ファイル

(MIME)

<?xml version="1.0" encoding="UTF-8"?> <purchase_order>    <po_number>1</po_number>    <part_number>123</part_number>    <price currency="USD">500.00</price>

(16)

Copyright(c) 2002, NEC Corp. All rights reserved. 31

ebXMLの高信頼メッセージ

T

メッセージ到着確認

T

Acknowledgment メッセージ

T

メッセージ再送

T

再送回数、再送間隔の設定

T

重複受信回避

T

メッセージ

IDによる重複検出

T

重複時に、過去のレスポンスを返答するための

persist storage および、その有

効期限の定義

T

メッセージ順序保証

T

オーダー番号による整列

HTTPレスポンス 送信 Ack送信 HTTPレスポンス

非同期の到着確認

HTTPレスポンス 送信 HTTPレスポンス 送信

非同期の再送処理

再送

間隔

HTTPレスポンス 送信 HTTPレスポンス 送信

重複処理と返答保存

再送

間隔

処理

消失 消失 消失 消失 返答

返答保存

返答 HTTPレスポンス

復元

「一度だけ実行」

「一度だけ実行」

「一度だけ実行」

「一度だけ実行」

を保証

消失 消失 消失 消失 Ack 送信者 受信者 送信者 受信者 送信者 受信者

ebXML の相互接続実験

T

電子商取引推進協議会(ECOM)が中心となり、

ebXML のメッセージサービスの相互接続実験を実施。

T

ebXML 相互接続テスト共通仕様書を公表

T

T1: 基本メッセージ

T

T2: 同期応答

T

T3: セキュリティ(SSL, HTTP認証)

T

T4: XML署名

T

T5: 高信頼メッセージ

T

T6: エラー処理

T

富士通、日立、NEC、インフォテリア、NTTの5社が参加

T

基本メッセージ、高信頼メッセージの接続に成功

T

2002年9月30日にニュースリリース

T

2002年12月4日に、アジア地区での相互接続実験開始を

報道

(17)

Copyright(c) 2002, NEC Corp. All rights reserved. 33

セキュリティ技術

T

暗号や署名技術との統合

T

WS-Security: SOAP に暗号や署名情報を添付する標準

T

IBM, Microsoft, Verisign が共同で、OASIS に提案

T

シングルサインオン(SSO)に向けた認証連携

T

SAML: 認証結果を交換するための標準

T

Liberty Alliance: SSO のプロセスの標準

T

Sun が、Network Identity というキーワードで、複数の認証基盤

を連携したID管理方式を提案

ID

ID

ID

ID

サイト毎の

サイト毎の

サイト毎の

サイト毎の

ID管理

管理

管理

管理

ID

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

サイト

IDの集中管理

の集中管理

の集中管理

の集中管理

ID

ID

ID

ID

信頼サークル

信頼サークル

信頼サークル

信頼サークル

ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID ID

フェデレーション

フェデレーション

フェデレーション

フェデレーション

BTP (Business Transaction Protocol)

T

HP, BEA を中心に、OASIS にて策定中の

Webサービス向けトランザクション仕様

T

疎結合、長時間のトランザクションを実現

T

トランザクション制御用メッセージにもXMLを利用

トランザクション トランザクション トランザクション トランザクション コーディネータ コーディネータ コーディネータ コーディネータ クライアント クライアントクライアント クライアント サービスサービスサービスサービス サービスサービスサービスサービス トランザクション トランザクション トランザクション トランザクション 参加者 参加者 参加者 参加者 トランザクション トランザクショントランザクション トランザクション 参加者 参加者 参加者 参加者

トランザクション

トランザクション

トランザクション

トランザクション

アプリ

アプリ

アプリ

アプリ

ケーション

ケーション

ケーション

ケーション

プロトコル

プロトコル

プロトコル

プロトコル

開始

開始

開始

開始

参加

参加

参加

参加

参加

参加

参加

参加

制御

制御

制御

制御

制御

制御

制御

制御

(18)

Copyright(c) 2002, NEC Corp. All rights reserved. 35

WS-I

(Web Services Interoperability Organization)

T

相互運用が可能なWebサービスの開発および普

及を目的とした業界横断の団体

T

IBM、MS、HP、Oracla他9社が、2002年2月に設立

T

WG活動

T

Webサービスの基本Profile を決定するWG

T

XML Schema 1.0, SOAP 1.1, WSDL 1.1, UDDI 2.0 を中心に

共通仕様を議論中

T

WebサービスのサンプルアプリケーションWG

T

SCMを題材に、サンプルアプリケーションを構築

T

Webサービスの相互接続テストの構築WG

(19)

Copyright(c) 2002, NEC Corp. All rights reserved. 37

WebサービスアーキテクチャとNEC製品

T

AP サーバ: WebOTX, WebLogic Server

T

フローエンジン: BizEngine, WebLogic Integration

T

UDDI: WebOTX UDDI Registry

Web サービス用サーバ

Web

サーバ

AP サーバ

XML

プロトコル

ハンドラ

SOAP XML

フロー

エンジン

サービス

コンポーネント

レガシーシステム ラッピング レガシー DB サービス用 DB

外部

Web

サービス

ディレクトリ サービス UDDI SO A P SO A P

Web

サービス

利用者

WebOTX WebLogic BizEngine WebOTX UDDI registry 携帯 携帯 携帯 携帯 ORB

最新の

最新の

最新の

最新のUDDI2.0仕様に対応した

仕様に対応した

仕様に対応した

仕様に対応したUDDIレジスト

レジスト

レジスト

レジスト

リを提供。

リを提供。

リを提供。

リを提供。

社内やグループ企業間など特定のサイトだけ

社内やグループ企業間など特定のサイトだけ

社内やグループ企業間など特定のサイトだけ

社内やグループ企業間など特定のサイトだけ

で利用可能な

で利用可能な

で利用可能な

で利用可能なWebサービスのシステムを構築。

サービスのシステムを構築。

サービスのシステムを構築。

サービスのシステムを構築。

WebOTX

WebOTX

WebOTX

WebOTX

Webサービスサービスサービスサービス Webサービスサービスサービスサービス クライアント クライアント クライアント クライアント Private Private UDDI UDDI Registry Registry WSDL Global Global UDDI UDDI Registry Registry WSDL クライアント クライアントクライアント クライアント AP AP AP AP

DB

WebOTX

WebOTX

EJB

EJBコンテナ

コンテナ

コンテナ

コンテナ

DB

CORBA 社内サービス用

SOAP

RMI/IIOP

IIOP

CORBA

((((各種サービス)各種サービス)各種サービス)各種サービス) 社外 サービス用

検索

検索

登録登録登録登録 登録 登録 登録 登録

イン

Webサービスサービスサービスサービス クライアント クライアント クライアント クライアント

ラネッ

ファイア ウオール クライアント クライアントクライアント クライアント AP AP AP AP

SO

AP

SOAPサーバ

サーバ

サーバ

サーバ

WebOTX

UDDI Registry

ActiveGlobe WebOTX

ActiveGlobe WebOTX

Web

Web

サービス対応

サービス対応

サービス対応

サービス対応

サービス対応

サービス対応

サービス対応

サービス対応

 

 

 

 

 

 

 

 

(20)

Copyright(c) 2002, NEC Corp. All rights reserved. 39

ActiveGlobe

ActiveGlobe BizEngine

BizEngine

 

 

 

 

 

 

 

 

--

Web

Web

サービス対応

サービス対応

サービス対応

サービス対応

サービス対応

サービス対応

サービス対応

サービス対応

BizEngine/WS

BizEngine/WS

-

-SOAP によるサービス統合から

によるサービス統合から

によるサービス統合からebXMLによるビジネス連携までをカバー

によるサービス統合から

によるビジネス連携までをカバー

によるビジネス連携までをカバー

によるビジネス連携までをカバー

外部サービスサイト 外部サービスサイト 外部サービスサイト 外部サービスサイトA 外部サービスサイト 外部サービスサイト 外部サービスサイト 外部サービスサイトB 取引先 取引先 取引先 取引先X 取引先 取引先 取引先 取引先Y

BizEngine/WS

BizEngine/WS

基幹システム 基幹システム基幹システム 基幹システム,etc.

SOAP

RPC

SOAP

RPC

ebXML

ebXML

サービス統合プロセス サービス統合プロセス サービス統合プロセス サービス統合プロセス サービス利用者 サービス利用者サービス利用者 サービス利用者 ビジネス取引プロセス ビジネス取引プロセス ビジネス取引プロセス ビジネス取引プロセス 信頼性の高いビジネス文書交換 信頼性の高いビジネス文書交換 信頼性の高いビジネス文書交換 信頼性の高いビジネス文書交換

ビジネス取引

ビジネス取引

ビジネス取引

ビジネス取引

内部サービス 内部サービス 内部サービス 内部サービス

BizEngine/WS

BizEngine/WS

の特徴

の特徴

の特徴

の特徴

の特徴

の特徴

の特徴

の特徴

T

フローエンジン/エディタを使ったビジネス設計

T

簡単な

Webサービス構築のために

T

SOAP サポート

T

SOAP からのフローエンジンの起動

T

フローエンジンから、SOAP呼出し

T

ビジネスWebサービスの構築のために

T

ebXML Message Service V2 仕様をサポート

T

メッセージ送受信するフローを定義し、実行

T

高信頼メッセージ、CPA V2(契約)サポート

T

XML署名機能サポート

(21)

Copyright(c) 2002, NEC Corp. All rights reserved. 41

Webサーバ

ORBProxy

Java

Java

対応携帯電話向け

対応携帯電話向け

対応携帯電話向け

対応携帯電話向け

対応携帯電話向け

対応携帯電話向け

対応携帯電話向け

対応携帯電話向け

SOAP

SOAP

技術

技術

技術

技術

技術

技術

技術

技術

ActiveGlobe WebOTX Mobile Broker

ActiveGlobe WebOTX Mobile Broker

EJBコンポーネント EJBコンポーネントEJBコンポーネント EJBコンポーネント

バックエンド

APサーバ等

各キャリア

各キャリア

各キャリア

各キャリア

Java対応

Java対応

Java対応

Java対応

携帯電話

携帯電話

携帯電話

携帯電話

インター インターインター インター インター インター インター インター ネット ネットネット ネット ネット ネット ネット ネット

Webサービス

サービス

サービス

サービス

SOAP

SOAP

SOAP

SOAP

RMIサーバサーバサーバサーバ CORBAサーバサーバサーバサーバ

IIOP

IIOP

IIOP

IIOP

JRMP

JRMP

JRMP

JRMP

T

携帯電話からバックエンドへ様々なプロトコルでアクセス可能

T

重い標準プロトコルの処理をサーバ側で行い、クライアントを軽量化

T

Proxyによりさまざまな標準プロトコルに変換可能

T

SSLの採用等による、セキュリティの確保

RMI

RMI

RMI

RMI-

--

-IIOP

IIOP

IIOP

IIOP

ロード ロードロード ロード バランサ バランサ バランサ バランサ

コンパイラ

自動生成

WSDL EJB

クラス

RMI

インター

フェース

IDL

クライアント スタブ 携帯 携帯携帯

携帯JavaJavaJavaJava アプリケーション

アプリケーションアプリケーション

アプリケーション

コード例

import com. import com.import com.

import com.nttdocomonttdocomonttdocomo....uinttdocomouiuiui....IApplicationIApplicationIApplicationIApplication;;;; public class

public class public class

public class OrderClientOrderClientOrderClient extends OrderClientextends extends extends IApplicationIApplicationIApplicationIApplication {{{{

…....

public void public void public void

public void processEventprocessEventprocessEventprocessEvent((((intintint type, inttype, type, type, intintintint par) {par) {par) {par) {

….... try { try { try { try { Order Order Order

Order objobjobj = new Order(this, obj= new Order(this, = new Order(this, = new Order(this, "

""

"sumidasumidasumidasumida////servletservlet/servletservlet///_Hello_Proxy_Hello_Proxy_Hello_Proxy",_Hello_Proxy",",",

“OrderObjOrderObjOrderObjOrderObj");");");"); int nstock int nstock int nstock int nstock int nstock int nstock int nstock

int nstock= = = = = = obj= = objobjobjobjobjobjobj...getStockNumgetStockNumgetStockNumgetStockNumgetStockNumgetStockNumgetStockNumgetStockNum((((((((“GearGearGearGearGearGearGearGear”);););););););); _l.

_l. _l.

_l.setTextsetTextsetText(String.setText(String.(String.valueOf(String.valueOfvalueOf((((nstockvalueOfnstocknstock));nstock));));)); } catch (Exception e) { } catch (Exception e) { } catch (Exception e) { } catch (Exception e) { err.out(e. err.out(e. err.out(e.

err.out(e.getMessagegetMessagegetMessagegetMessage());());());()); }}}} ….... }}}} }}}}

携帯JavaORBを利用しないと

上の1行が左のコードに。

int intint int nstocknstocknstocknstock;;;; try { try {try { try {

HttpConnection HttpConnectionHttpConnection HttpConnection connconnconnconn

= ( = ( = (

= (HttpConnectionHttpConnectionHttpConnectionHttpConnection)Connector.open()Connector.open()Connector.open()Connector.open( http://

http://http://

http://inbinbinb....kkinbkkkk.co.kk.co.jp.co..co.jpjp/Order/jp/Order//Order//Order/getStockNumgetStockNumgetStockNum,,,,getStockNum Connector.READ_WRITE, true); Connector.READ_WRITE, true);Connector.READ_WRITE, true); Connector.READ_WRITE, true); conn

connconn

conn....setRequestMethodsetRequestMethodsetRequestMethod((((HttpConnectionsetRequestMethodHttpConnectionHttpConnectionHttpConnection.POST);.POST);.POST);.POST); DataOutputStream

DataOutputStreamDataOutputStream

DataOutputStream ososos = os= = = connconnconnconn....openDataOutputStreamopenDataOutputStreamopenDataOutputStreamopenDataOutputStream();();();(); os

osos

os....writeUTFwriteUTFwriteUTFwriteUTF("Gear");("Gear");("Gear");("Gear"); os

osos os.close();.close();.close();.close(); conn connconn conn.connect();.connect();.connect();.connect(); DataInputStream DataInputStreamDataInputStream

DataInputStream is = is = is = is = connconnconnconn....openDataInputStreamopenDataInputStreamopenDataInputStreamopenDataInputStream();();();(); if (is.

if (is.if (is.

if (is.readBytereadBytereadByte() == 0) {readByte() == 0) {() == 0) {() == 0) { nstock nstocknstock

nstock = Integer.= Integer.= Integer.= Integer.parseIntparseIntparseInt.(is.parseInt.(is..(is..(is.readUTFreadUTFreadUTF());readUTF());());()); } else {

} else {} else { } else {

re = new re = new re = new

re = new RuntimeExceptionRuntimeExceptionRuntimeException(is.RuntimeException(is.(is.(is.readUTFreadUTFreadUTFreadUTF());());());()); }}}} is.close(); is.close();is.close(); is.close(); conn connconn conn.close();.close();.close();.close(); } catch (Con } catch (Con} catch (Con

} catch (ConnectionNotFoundExceptionnectionNotFoundExceptionnectionNotFoundExceptionnectionNotFoundException e) /* open */ {e) /* open */ {e) /* open */ {e) /* open */ { re = new

re = new re = new

re = new RuntimeExceptionRuntimeExceptionRuntimeException(e.RuntimeException(e.(e.getClass(e.getClass().getClassgetClass().().().getNamegetNamegetNamegetName());());());()); }}}}

(22)

5. まとめ

まとめ

T

Webサービスとは、インターネット環境における

疎結合なサービスアーキテクチャ

T

WSDL によるサービスの抽象化

T

SOAP によるメッセージ交換

T

SOAP, WSDL, UDDI ともに標準化途中

T

SOAP 1.2 で、中継ノードも含めた仕様に進化

T

WSDL 1.2では、定義の精緻化

T

UDDI 3.0 で分散環境におけるUDDIに進化

T

関連する標準化団体

T

OASIS: UDDI, ebXML, WS-Security, SAML, BTP

T

W3C: SOAP, WSDL, XML Schema

(23)

6. デモの説明

デモの説明

企業内の資材管理システムと社外のサプライヤをWebサービスで結合するデモ。

1. Webブラウザから発注する従来の企業内の資材発注システム。

2. 大量の資材発注をすると、自動的に社外の納入業者にebXML(Webサービス)で

発注する。

3. ebXML メッセージ中にXML署名などがされる。

4. 同じような発注を、携帯JavaからSOAPを通して実行できる。

<<NECの製品>>

Webサービス統合基盤 ActiveGlobe BizEngine を用いて、資材管理システム、

納入業者サーバを構築。

BizEngine が ebXML プロトコルハンドラを提供。

ActiveGlobe Web OTX Mobile Broker がSOAPのサービスを携帯から呼び出す

機能を提供。

資材システム

在庫確認 あり なし 出庫 見積 発注 回答

発注

在庫量

発注

納入業者サーバ

HTML

ebXML

XML署名

プロセスエンジン プロセスエンジン

SOAP

iアプリ

ゲートウェイサーバ

(24)

Copyright(c) 2002, NEC Corp. All rights reserved. 47

資材発注デモ画面

(1)

社内資材発注画面

(文房具一覧表示中)

(受注履歴表示中)

サプライヤ画面

ebXML

資材発注

受注回答

資材発注デモ画面

(3)

ビジネスプロセス定義例

T

資材発注システムのバックエンドのビジネスプロセス

アクティビティ

アクティビティ

アクティビティ

アクティビティ

定義用

定義用

定義用

定義用

テンプレート

テンプレート

テンプレート

テンプレート

購買要求確認

購買要求確認

購買要求確認

購買要求確認

在庫確認

在庫確認

在庫確認

在庫確認

外部発注用メッセージ送信

外部発注用メッセージ送信

外部発注用メッセージ送信

外部発注用メッセージ送信

確認用メッセージ受信

確認用メッセージ受信

確認用メッセージ受信

確認用メッセージ受信

エラー処理

エラー処理

エラー処理

エラー処理

(25)

Copyright(c) 2002, NEC Corp. All rights reserved. 49

資材発注デモ画面

(4)

ebXMLメッセージ表示

資材発注デモ画面

(5)

携帯電話からの発注

初期画面 データ取得

品目決定 発注数入力

発注確認 発注履歴

参照

関連したドキュメント

東京都は他の道府県とは値が離れているように見える。相関係数はこう

サーバー費用は、Amazon Web Services, Inc.が提供しているAmazon Web Servicesのサーバー利用料とな

ROKU KYOTO Autumn Parfait ~ Shine muscat &amp; Jasmine tea ~ ROKU KYOTO

2.本サービスの会費の支払い時に、JAF

(4) 現地参加者からの質問は、従来通り講演会場内設置のマイクを使用した音声による質問となり ます。WEB 参加者からの質問は、Zoom

4G LTE サービス向け完全仮想化 NW を発展させ、 5G 以降のサービス向けに Rakuten Communications Platform を自社開発。. モデル 3 モデル

重要: NORTON ONLINE BACKUP ソフトウェア /

特に LUNA 、教学 Web