デベロッパープラットフォーム統括本部 部長 平野 和順 クラウド 時代の SOA のあり方と Windows Azure への 展開 セッション ID T1401 エバンジェリスト ID: 282981
Download Presentation The PPT/PDF document "マイクロソフト株式会社" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1Slide2
マイクロソフト株式会社デベロッパー&プラットフォーム統括本部部長平野 和順
クラウド時代の SOA のあり方と Windows Azure への展開
セッション ID:T1-401
エバンジェリスト
野村 一行Slide3
セッションの目的とゴールSession
Objectives and Takeawaysセッションの目的
アーキテクチャ スタイルとしての SOA はクラウドへの展開においてさらに重要になってきていることを理解いただくWindows Azure Platform のケーパビリティを活用し クラウドにおける SOA の重要アーキテクチャ スタイル適用を紹介するセッションのゴールクラウドをプラットフォームとして選択するに際して、 SOA の何が活用できるのかをご説明いただけるようになる
SOA
アプリケーションがクラウドに乗る際に重要となる設計理念をご説明
いただけるようになる
ご注意
:
No code, No demo!Slide4
アジェンダSOA の本来性とは?アーキテクチャ スタイルとしての SOA
Fiefdom / Emissary モデルSOA を活用するためのクラウドの 3 つの柱伸縮性、高い可用性、統合性
クラウドに適したアプリケーションの特性ショッピングサイトへの適用シナリオSlide5
クラウドとオンプレミスの連携
5
企業
専用クラウド
パブリック
クラウド
プライベート
クラウド
セキュア
クラウド
フェデレーション
社内
ITSlide6
SOA は死んだ?SOA is Dead; Long Live Serviceshttp://
apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.htmlSlide7
サービス指向と
いうアーキテクチャ スタイル
インターフェイスと実装の分離データとビジネス プロセスの迅速な統合役割の異なるアプリケーション間のゆるやかな連携Slide8
クラウドは
SOA
の再生?Slide9
10 年前の SOASlide10
Interoperability実装が先か? インターフェイスが先か?
歴史的には実装が先行SOAP Toolkit、COM+、WSE
、…そもそも SOAP = Simple Object Activation Protocol"RPC" プロトコルとしての XML現在の推奨 (.NET) は「コントラクトファースト」インターフェイス設計を先行させ、実装独立とするSlide11
SOA
の典型的な形
Service
Service
Service
Service
Service
Contract
情報のスキーマ
運用管理の規約
ビジネスの契約
Message
Message
Message
Message
MessageSlide12
サービスとは「信頼境界」である
2002
年の
TechEd
Y
OKOHAMA
で
出会った
SOA
の
あり方Slide13
Fiefdom自律したサービス個別に管理される共有データを管理する
リクエストを経由して動作する「外部」を信頼しない「外部」とトランザクション
連携しないリクエスターが送信したものを検証するFiefdom の設計を慎重に行うことが適切なサービス実装につながる
どうかこのささやかな
お願いを聞いて
ください・・・Slide14
サービスのリクエスターは「特使」であるSlide15
EmissaryFiefdom と連携する情報を表示するリクエストを準備する
Fiefdom から信頼はされていない2 種類のデータを使う
参照データユーザーごとのデータEmissary 自体もサービスでありうる参照データ
ユーザー
ごとのデータSlide16
データに関する考察Fiefdom だけが現在のデータを保持するFiefdom はトランザクションを共有しない
外部のデータはリクエスターが参照するまでにロック解除されているユーザーのアプリケーションの大部分は Fiefdom の外部で動作するゆえに、ユーザーのアプリケーションの大部分
は "現在でない" データで作業する
1
秒前
1
分前
1
時間前
1
日前
1
週間
前1 か月前現在Slide17
Fiefdom と EmissaryFiefdoms と Emissariesサービス リクエストで通信しあう
アプリケーションは疎結合サービスで構成されるFiefdom必要とするあらゆるデータを使う最重要データを取り囲み、保護する
Emissaryリードオンリーの、スナップショットの参照データを使うプライベートな、ユーザーごとの状態データを保持する (例: ショッピング バスケット)
Web
サービス
共有
書き込み可
リードオンリー
参照
ユーザーごと
書き込み可
ユーザーごと
書き込み可
リードオンリー参照Slide18
Fiefdom はメッセージ駆動サービスの要求はメッセージで着信要求はできるだけべき等にする
サービスの要求に対する返答はメッセージで送信
Web
サービス
ロジックSlide19
クレームベース アイデンティティFiefdom 内には認可を受けた者だけが入れる = Authorization正当な Emissary であることの証し
を提示する必要がある = Authentication
正当な資格 (= クレーム) を持って
自己を証明
(identify)
する
Web
サービスSlide20
クレームベース アイデンティティ
本人
顔
指紋
入国申請書
滞在期間
滞在先
パスポート
・
・
ビザ
滞在可能期間
発行
パスポート
発行国
氏名
有効期限
旅券番号
写真
出国印
健保番号/免許証番号/住民票出国信頼Slide21
クレームベース アイデンティティ
本人
顔
指紋
入国申請書
滞在期間
滞在先
パスポート
・
・
ビザ
滞在可能期間
発行
パスポート
発行国
氏名
有効期限
旅券番号
写真
出国印
健保番号/免許証番号/住民票出国信頼
セキュリティ
トークンクレーム
クレーム
クレーム
クレームクレーム
クレーム
リライング パーティ
ID
ストア
クレーム
アイデンティティ
プロバイダー
STS
クレーム
クレーム
クレーム
クレーム
クレームSlide22
Fiefdom 間の統合問題Slide23
サービス バス パターンの適用Slide24
Fiefdom におけるデータ一貫性Fiefdom 間では ACID トランザクションは非常に困難
CAP 定理 (Theorem) を意識した設計が必要
ACID
ACIDSlide25
CAP 定理とは ?
C
onsistencyAvailability
P
artition ToleranceSlide26
SOA
活用にむけて、クラウド技術の 3 つを考える
伸縮性(Elastic)
可用性
(Availability)
統合性
(Integration)
サービス
インターフェース
ビジネス プロセス
ビジネス コンポーネント
データベースSlide27
伸縮性
(Elastic)Slide28
クラウド利用が最適なワークロード パターン
使用
量
コンピューティング
時間
平均
稼働不要な
時期
“On
と
Off “
On & off
ワークロード (e.g. バッチ処理など)過剰設備の余力の無駄が発生マーケットへの対応が煩雑になりがち
時間
“
予測不可能な使用増
“
平均使用料予測していなかった急激な使用量増加
突然のスパイクがパフォーマンスに影響してしまう例外的なケースへの設備投資が不可能
平均使用量時間“急速な成長“ 成長とスケールが必要な成功したサービスIT のチャレンジのため継続的な成長が必要
展開の
ためにリード タイムが必要
時間
平均使用量
“
周期的な使用増
“ 小さな季節変動のトレンドを持つサービス周期的な需要の増加
IT
の複雑性と資源の無駄が発生
コンピューティング
コンピューティング
コンピューティング
Slide29
高い可用性
(High Availability)Slide30
管理の自動化
ファブリック
コントローラー
ファブリック
コンピューティング
ファブリック
ストレージ
管理ポータル(
Azure.com
)
構成定義
(
XML
)
マイクロソフト データセンターSlide31
リング構造による障害検
知:
複数のノードが2重リンクから成るリングを構成Fabric 間の通信により隣接ノードの障害を検知常にリングを自動メンテナンス
Eventual Consistent
:
やがて整合性が取れる
Read
はプライマリで完結
Write
はプライマリからトランザクションを開始、セカンダリにレプリカを送信、ただし
ACK
のないセカンダリは障害発生と判断しリングから除外
高可用なノードを維持する仕組みP
SSSSWriteWriteWriteWriteAckAck
Ack
Ack
Read
ValueWriteAck
ID 1
ID 23
ID 15
ID 13
ID 30Slide32
一貫性の保持
ある期間のうちにデータの整合性を取る非同期キュー: Windows Azure Storage
キュー + BLOB非同期メッセージング: AppFabric Service Bus パブリッシュ / サブスクライブデータ同期: SQL Azure Data Sync
ACID
キューSlide33
統合性
(
Integration)Slide34
Windows Azure AppFabric Access Control によるフェデレーション
ADFS 2.0
信頼関係の確立
(
証明書やキー交換など
)
信頼関係の確立
(
証明書やキー交換など
)
Access Control Service
アイデンティティ
プロバイダー
/
STS
リライング
パーティ
Active
DirectorySlide35
Access Control Service
Windows Azure
platform
AppFabric
Service
Bus
リレー
サービス
ロード
バランサーSlide36
クラウドに適したアプリケーション特性
ノンコアな
ビジネス
サービス
短期間に集中するワーク
ロード
新たな
ビジネスサービスと試験
運用
Web 2.0
コラボレーション
集中型
アプリケーション出典 : 「クラウドによって広がる SOA の有効範囲」、Lakshmanan G
、Manish Pande 著、アーキテクチャ ジャーナル 第 21 号、マイクロソフトSlide37
グローバル小売企業のケーススタディビジネス推進要因モデル
家電製品のオンライン販売への進出
顧客からのフィードバックや顧客とのコラボレーションのための新しいソーシャル メディア アプリケーション修理サービス向け
の新しい
CRM
システム
オンライン マーケティング キャンペーンの実施
サービスベースのロイヤリティ アプリケーションをグローバルに使用
自社
開発
の
e
コマース システムをグローバルに拡張 e コマースのピーク ワークロードへの迅速な対応店舗スタッフ用の新しい店舗ポータル店舗システムの一元化出典 : 「クラウドによって広がる SOA の有効範囲」、Lakshmanan G
、Manish Pande 著、アーキテクチャ ジャーナル 第 21 号、マイクロソフトSlide38
グローバル小売企業のケーススタディアプリケーション シナリオ
出典
: 「クラウドによって広がる SOA の有効範囲」、Lakshmanan G、Manish Pande 著、アーキテクチャ ジャーナル 第
21
号、マイクロソフトSlide39
シナリオの検討Slide40
あるWebショッピングのシステム
Web
サイト
本社
物流センター
メーカー
生産
経理
在庫
販売
商品
顧客
商品物流
決済クレジット顧客商品Slide41
ショッピングサイト
商品
選択決済
PayPal
ログイン
商品
カタログ
顧客
リスト
ショッピングカート
売上
伝票
認証
Web サイト(複数在り)売上
ユーザ
Data
Sync
ID FederationSlide42
ショッピングサイト
商品
選択決済
PayPal
ログイン
商品
カタログ
顧客
リスト
ショッピングカート
売上
伝票
認証
Web サイト(複数在り)売上ユーザData
SyncSlide43
ショッピング カート
ショッピングカート
Web
サイト
PayPal
ショッピングカート
市販コンポーネント
or
外部サービス
自社開発
クレジットカード処理も自社開発(将来)
PartitionKey
RowKeyCartID
TotalShippingFeeShippingMethod…PartitionKeyRowKeyProductIDNameQuantity
UnitPrice
SubTotal
LastUpdated
(Color)
(Size)
…
Customer1*Azure Storage?SQL Azure?Slide44
本社側の仕組み
商品
マスタ顧客マスタ
売上
伝票
センター
在庫
売掛
データ
配送
発注
メーカー
在庫
本社物流センター (複数箇所に在り)配送伝票
Service Bus
発注
伝票
在庫が
ない?
Data Sync
Data Sync引当Slide45
イメージ処理への応用今までの処理
社内
Windows Server イメージのスキャン商品マスター管理
ファイル システムへ書き出し
Image Processor
File System
Watcher
On Created
Write
Read
サムネイル画像
オリジナル画像
Read
Azureでの実装イメージ イメージのスキャン商品マスター管理Image ProcessorWriteSlide46
メーカー側の仕組み
メーカー
在庫Data Sync
発注
伝票
受注
出荷
製造
企業
B
企業
C
メーカー
Data SyncData SyncService Bus
製造計画
メーカー
在庫
メーカー
在庫
センター在庫
需要予測Data SyncSlide47
企業間のデータ同期
SQL Azure
SQL Azure
SQL Azure
Sync Group
メーカー
在庫
メーカー
メーカー
在庫
企業
D
メーカー
在庫企業 B・CモバイルユーザーODataData SyncOData・REST
Data Sync
Windows Azure
メーカー
在庫
物流センター
Data SyncSlide48
企業システム全体図
商品
選択決済
PayPal
ログイン
商品
カタログ
顧客
リスト
ショッピングカート
売上
伝票
認証
Web サイトService Bus売上
ユーザ
Data
Sync
ID Federation
商品マスタ
顧客マスタ
売上伝票売掛データ本社センター在庫配送発注
メーカー
在庫物流センター
配送殿表
発注
伝票在庫がない?
Data Sync
メーカー在庫
発注
伝票
受注
出荷
製造
メーカーSlide49
あなたならどう描きますか?Slide50
まとめアーキテクチャ スタイルとしての SOA はクラウドを基盤にますます重要となるSOA を考慮した連携モデルが
クラウド利用のポイントクラウドならではの特性を理解し、業務システムに積極的に活用すべしSlide51
関連セッションT1-307:Windows Azure を利用したスケーラブルなアプリケーション構築
T1-402:既存業務システムの Windows Azure への移行
T1-404:Windows Azure platform AppFabric サービス バスにおける設計パターン、ベスト プラクティスおよびテクニックT6-312:Windows Communication Foundation 4 における新機能のポイント ~ REST サービスからワークフロー サービスまで ~Slide52
リファレンスWindows Azure Platform 開発者向け技術情報
http://msdn.microsoft.com/ja-jp/windowsazure/default.aspx
アーキテクチャ ジャーナル第 21 号: サービス指向の現在、そして未来http://msdn.microsoft.com/ja-jp/architecture/ff817053.aspx外部のデータと内部のデータhttp://msdn.microsoft.com/ja-jp/library/ms954587.aspxSlide53
ご清聴ありがとうございました。
T1-401
アンケートにご協力ください。Slide54
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows
and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.