More Related Content Similar to クラウド勉強会in北陸Azure資料 (20) More from Shinichiro Isago (19) クラウド勉強会in北陸Azure資料1. クラウド勉強会 in 北陸 第1回
Microsoft Windows Azure 最新情報
マクロソフト株式会社 | June 2010
June 2010 | Page 1
2. スピーカー紹介
い さ ご
砂金 信一郎 shisago@microsoft.com
アーキテクトエバンジェリスト
マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部
クラウドテクノロジー推進部 所属
ブログでもAzureの話題を提供 http://blogs.itmedia.co.jp/isago/
Twitterフォローはお気軽に http://twitter.com/shin135/
マクロソフトでクラウドコンピューテゖングを中心とした啓蒙活動
を行うエバンジェリスト。東京工業大学出身。日本オラクルで修行を
積んだ後、戦略コンサルタントに転身していた時期もあったが、
Windows Azureの世界観に魅せられてマクロソフトに参画。自社技
術に閉じないスタルが信条。自他共に認めるガンダム好きで、特に
戦略シミュレーションものにぐっときます。
June 2010 | Page 2
13. Bing の Auto Pilot ゕーキテクチャ
世界中のデータセンターに分散された100,000 台規模のサーバー
Web & Structured
Data Indices
June 2010 | Page 13
14. 簡単なゕンケート
ギーク スーツ
個人・ベン 大手SI’er
技術者 チャーの開
発者など
所属の
SEさんなど
クラウドで クラウドの
ビジネス ひと儲けし
たいマー
業務適用
を判断した
ケターなど い方など
June 2010 | Page 14
15. 本日ご用意してきた内容
Azureの位置づけ セキュリテゖ
Azureの仕組み 性能保証
How to 開発・注意点 運用監視
賢く使うコツ テスト・障害対応
Azure を好きになってさわってみたい!
と感じてもらうことが本日のゴール
June 2010 | Page 15
18. Azure の位置づけ:
柔軟性の高いクラウドプラットフォーム
ゕプリケーション ゕプリケーション ゕプリケーション
ミドルウェゕ ミドルウェゕ ミドルウェゕ
OS OS OS
ハードウェゕ ハードウェゕ ハードウェゕ
SaaS PaaS IaaS/HaaS
完成品の 開発・実行環境となる ハードウェゕを提供
ソフトウェゕを提供 プラットフォームを提供 (CPU貸し、デゖスク貸し)
June 2010 | Page 18
25. 3スクリーン&クラウド戦略
クライアント
プラットフォーム サポート
ツールおよびクロス
PC 携帯電話 TV
サーバー クラウド
June 2010 | Page 25
27. Power of Choice 選択の自由
自社運用 ホスティッド クラウド
お客様による運用 パートナーによる運用 マクロソフト
による運用
• • •
• • •
• •
•
Windows-based Hosting
June 2010 | Page 27
28. Azure Auto Scale
http://code.msdn.microsoft.com/azurescale
June 2010 | Page 28
32. フゔゕウォールやNATを超えるクラウド上の
サービス バスを介したメッセージルーテゖング
sb://namespace.servicebus.windows.net/a/b/
バックエンドの
ネーミング・
ルーテゖング ③ルーテゖング
フゔブリック ①登録
サービスバス
フロントエンド
ノード
TCP/SSL NLB TCP/SSL
808/828 828
③メッセージ ③メッセージ
クライアント NAT サービス
ファイアウォール
Dynamic IP
June 2010 | Page 32
33. クラウドを介したID フェデレーションを実現する
クレームベース ゕクセス コントロールの処理手順
NameSpace Azureval
Issuer owner
AccountKey Abcdefg……………
InputCraim sastaro@xxxxxx.com
ゕクセス
コントロール
②ルール決定
サービス
ネームスペース
Relying Party管理者
⑦チェック&
ゕクセス&授与
Relying Parties
(サービスバス、 リクエスタ
アプリケーション等) (利用者)
June 2010 | Page 33
34. オンプレミスとSync Framework で同期
Sync • 競合の種類
Application – 同時実行の競合
– 制約の競合
Sync • 競合の解決
Orchestrator – 同期元 Win
– 最新更新 Win(時間比較)
– ユーザー判断 等々…
SQL Server SQL Azure
Sync Sync
Provider Provider 競合
Sync Runtime
June 2010 | Page 34
38. コンピューテゖング機能の耐障害性能対策
VM 監視
各インスタンスには、ファブリック コントローラとのコミュニケーション用
にエージェントが存在
Web
IIS ロール Worker
ロール
エージェント エージェント
停止ドメイン
ハードウェア構成上の単一障害点のあるエリアをドメインとして分割
June 2010 | Page 38
39. フゔブリック コントローラの役割
1: ノード割り当て
停止ドメンで分散 停止・更新ドメン
更新ドメンで分散 にまたがりノードを
割り当て
2: OS とロールのメージを配置
3: 設定
4: ロールの開始
5: ロードバランサーの設定
6: 必要数のロールを維持 LB
停止したロールは自動再起動
ノードが停止した場合は、
別のノードを自動割り当て
June 2010 | Page 39
40. ストレージ管理の自動化
• Key Valueストゕ
TABLE • パーテゖション分割
• 大容量バナリ フゔル
BLOB
• HTTP/HTTPS + REST • ブロック転送が可能
• 256bit シークレット
• ロール間の一時受け渡し領域
キーを利用したHMAC- Queue
SHA256 署名での認証 • タスク失敗時の挙動に対応
• 3つ以上の複製
• クラウド上のNTFSサービス
Drive
• 最大容量 100TB • ランダムゕクセス対応の BLOB
June 2010 | Page 40
41. Table:Key Valueストア
スケーラビリティを最優先した汎用ストレージ
255個までのプロパテゖを持つ
必須 プロパテゖ
<Name, TypedValue> ペゕが保存
Partition Key Row Key Property 3 ….. Property N
Document Name Version Modification . Description
Time 異なるプロパテゖ を
持ってもよい
福利厚生Doc V1.0 3/21/2007 ….. 2007年度
.
福利厚生Doc V1.0.6 9/28/2007 2008年度用 山田作成中
勤怠Doc V1.0 3/28/2007 2007年度
勤怠Doc V1.0.1 7/6/2007 2008年度用 千田作成中
スキーマを持たない
June 2010 | Page 41
45. WorkerRoleの使いこなしがポント
80 でHTTP/HTTPS?
管理をゕウトソースしたい?
WorkerRole
LB
バックエンド
WorkerRole 処理での
活用が基本形
任意のTCPポートで Storage
通信可能
June 2010 | Page 45
47. PHP は IIS の FastCGI で対応。
VisualStudioにテンプレートまである
PHP対応
IISすなわちWebRoleで対応。
Fast CGIの枠組みそのままで
PHPもOK
PHP用SDKを使えば拡張性の
高い Azure Storage にゕク
セスしやすくなる
SQL Server用PHPドラバ
でSQL Azure を使うことも
できる
June 2010 | Page 47
48. ゕクセラレーター for Tomcat と
Java SDK / EclipseツールでJava開発
http://code.msdn.microsoft.com/winazuretomcat
June 2010 | Page 48
50. SQL Azure への移行における注意事項
• 日付時刻データの取り扱い
– すべて UTC(協定世界時)
• サーバー上での SYSDATETIME(), GETDATE()
• UTC は日本より9時間遅れ
– DATEADD(hour, 9, SYSDATETIME()) で対応
– データを日本時間で保存するか UTC で保存するか?
• 既存データは日本時間で保存している場合が多い
• 日本語の取り扱い
– 明示的に Japanease_CI_AS など日本語の
指定が必要
• ソートなどに影響
– SQL 文での日本語記述にも "N" プレフゖックスが必要
• INSERT INTO employees VALUES (1, N‘ゕジュール')
June 2010 | Page 50
53. 便利ツール#1ストレージ管理
RESTゕクセス
プログラムからはStorage
Client 経由で
ツール経由でFTPやフゔ
ルサーバーのように
Harutama氏解説:http://d.hatena.ne.jp/haru-tama/20100115
June 2010 | Page 53
54. 便利ツール#2SQL Azure Manager
SQL Azureの利用
SSMSなどのSQL Server用
ツールがあれば、接続文字
列の変更でそのまま利用可
能
↑がない場合、Click Once
で起動できる SQL Azure
Manager が便利
SQL Azureはゕプリから普
通のリレーショナルデータ
ストゕとして利用すること
ができる
http://hanssens.org/post/SQL-Azure-Manager.aspx
June 2010 | Page 54
55. 便利ツール#3 Computing
監視用ゕプリ
管理APIにUIをつけたも
のやコードから呼び出す
ものがある
いずれはSystemCenter
http://azureservicesmanager.codeplex.com/releases/view/35069
June 2010 | Page 55
56. Windows Azure の価格
11.76 円/時間 14.70 円/月
+ 可変のンスタンスサズ 0.98 円/10K トランザクション
June 2010 | Page 56
57. Windows Azure のインスタンス サイズ
11.76 円 23.52 円 47.04 円 94.08 円
各インスタンスの定義
1 x 1.6Ghz 2 x 1.6Ghz 4 x 1.6Ghz 8 x 1.6Ghz
1.75 GB メモリー 3.5 GB メモリー 7.0 GB メモリー 14 GB メモリー
250 GB ストレージ 500 GB ストレージ 1000 GB ストレージ 2000 GB ストレージ
(インスタンスのストレージ) (インスタンスのストレージ) (インスタンスのストレージ) (インスタンスのストレージ)
June 2010 | Page 57
58. 日本円での課金体系 (抜粋)
日本円 USD
S ¥11.76 $0.12
コンピューティング時間 M ¥23.52 $0.24
(hour) $0.48
L ¥47.04
Windows Azure XL ¥94.08 $0.96
ストレージ (GB/month) ¥14.70 $0.15
ストレージ トランザクション (10,000回) 0.98 $0.01
14.7 (北米、欧州) $0.15 (北米、欧州)
キャッシュ(GB/month)
CDN 19.6 (その他地域) $0.20 (その他地域)
トランザクション(10,000回) 0.98 $0.01
アクセスコントロール(100,000回) 195.02 $1.99
AppFabric
(※2010 年 4 月まで 1 コネクション 391.02 $3.99
課金なし) サービスバス
5 コネクションパック 975.10 $9.95
Web Edition (1GB) ¥979.02 $9.99
SQL Azure
Business Edition (10GB) ¥9,799.02 $99.99
受信 (GB) ¥9.80 $0.10
北米およびヨーロッパ
送信 (GB) ¥14.70 $0.15
Data Transfers
受信 (GB) ¥29.40 $0.30
アジア太平洋
送信 (GB) ¥44.10 $0.45
※ 1 ドル 98.000 円 (四半期ごとに見直し)
June 2010 | Page 58
59. 「コスト」は包括的に考える必要がある
サービス運用 • エンタープラズ用途の場
合、クラウドを利用しても
要件の絞り込み如何では従
ゕプリ改善・保守
来の構築要件と変わらない
項目もある
ンテグレーション
• 条件次第でSI’er または
カスタマズ ISV に移管可能
ゕプリケーション • 独自に構築するかサードパーテゖーゕプリを調達
ミドルウェゕ • Windows Azure の基本利用コストに内包
• CALなどの概念はなく、ユーザー数(ゕカウント数)や
OS デバス数が増えても費用が大きくはねることはない
• 仮想マシンやストレージ容量、データ転送量について
ハードウェゕ
のみ「使った分だけ」課金。すなわち、ゕクセス頻度
が低ければコストは低く抑えられる
ネットワーク
• 最新鋭の高効率データセンターでの運用により電力消
電気代・CO2排出 費を大幅に抑制
June 2010 | Page 59
60. TCO分析ツールの結果
Windows Azure Platform vs. On-Premises Solutions
Windows Azure Platform vs. On-Premises
Comparing the total cost of ownership of the Windows Azure Platform to an on-premises solution over the next year
June 2010 | Page 60
63. Development Accelerator オファー
6 か月間限りの、通常より 42% - 46% 引きのサブスクリプションオファーを提供
オファーは月次ベースの「ユニット」単位で提供 (複数のユニットを購入可能)
超過分は通常の従量課金レートを適用
2010 年 6 月 30 日まで
June 2010 | Page 63
64. 2010 年 1 月からの期間限定特別オファー
初期特別提供 MSDN Premium Core Extended
コンピューティング時間
(hour) 25 750 750 750
Windows ストレージ (GB/month) 0.5 10 10 10
Azure
ストレージ トランザク
ション (times) 10,000 1,000,000 1,000,000 1,000,000
AppFabric トランザクション 100,000 1,000,000 1,000,000 1,000,000
SQL Azure データベース 1 (Web Edition) 3 (Web Edition) 0 1 (Business Edition)
北米および
受信 (GB) 0.5 7.0 7.0 7.0
ヨーロッパ
Data 送信 (GB) 0.5 14.0 14.0 14.0
Transfers 受信 (GB) 0.5 2.5 2.5 2.5
アジア太平
洋
送信 (GB) 0.5 5.0 5.0 5.0
通常価格 (月) 1,345 12,717 9,780 19,759
Price
日本円 (月)
June 2010 | Page 64
66. セコロジー#2
課金は1時間単位の盲点
Azure課金の細則
CPU使用率は関係なく占有し
たデプロ時間で課金
(GAEよりEC2に近い)
Runしてなくてもデプロす
れば(削除しない限り)課金
発生。
ステージングも同じレート
最小単位は1時間。各時の0分
から59分のスロットで、1分
でもデプロすれば1時間分
June 2010 | Page 66
68. アップグレード スクリプトの例
$cert = Get-Item cert:CurrentUserMyD6BE55AC439FEA8CBEBAFF432BDC0780F1BD00CF
$sub = "CCCEA07B-1E9A-5133-8476-3818E2165063" $servicename = 'myservice'
$package = "http://myaccount.blob.core.windows.net/publish/MyPackage.cspkg"
$label = 'nolabel'
$role = ''
if ($args.Length -eq 2)
{
$role = $args[0]
$label = $args[1]
}
if ($args.Length -eq 1)
{
$label = $args[0]
}
if ($role -ne '')
{
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |
Get-Deployment -Slot Production |
Set-Deployment -mode Auto -roleName $role -package $package -label $label |
Get-OperationStatus -WaitToComplete
}
else
{
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |
Get-Deployment -Slot Production |
Set-Deployment -mode Auto -package $package -label $label |
Get-OperationStatus -WaitToComplete
}
June 2010 | Page 68
72. PCの情報漏洩対策サービスの Azure 対応
ワンビ株式会社
盗難・紛失PC のデータを遠隔で消去
不可
視化
トラストデリート
管理サーバー
遠隔
消去
認証
消去命令 時限
Windows Azure 消去
消去 Windows 7
証明書 bitLocker対応
Windows Desktop Search対応
June 2010 | Page 72
Linux → Windows Server で、グローバル+クラウド対応が可能に
76. 後半はAppendix ?
Azureの位置づけ セキュリテゖ
Azureの仕組み 性能保証
How to 開発・注意点 運用監視
賢く使うコツ テスト・障害対応
Azure を好きになってさわってみたい!
と感じてもらうことが本日のゴール
June 2010 | Page 76
80. 運用およびセキュリテゖ管理への対策
カテゴリー 対策 内容
・ 24時間、365日の監視
・ 監視カメラによる監視
・ モーションセンサーの設置
物理的対策 ・ 生体認証による入退出管理
・ データセンター内への車での乗り入れ禁止
・ セキュリテゖ境界線突破時のゕラーム通報
機密性
・ CyberTrust によるセキュリテゖ認定(四半期ごとに実施)
ネットワーク対策 ・ 9階層にわたるセキュリテゖ対策
・ サポート/サービスチームは、Secure ID カードもしくは
情報漏洩対策 RSH Secure ID Token を利用した認証を行う
・ データは全て128ビットで暗号化 ・全通信は HTTPS
・ Raid 5+1 によるデータ保存
データ保存 ・ Disk to Disk to Disk (ミラーリングで最低4コピー保持)
完全性 ・ 日時バックゕップの実施
データバックゕップ ・ Disk to Disk to Disk バックゕップ
・ ジオ リダンダント構成
・ 複数の発電機を装備
・ 電源は複数の発電所から2系統
物理的対策 ・ 各ラックでの電源2重化
可用性 ・ 発電機用の燃料は、地震などで道路が寸断された場合には空輸
・ バッテリーによるバックゕップ
・ コンピューター コントロールによる空調制御
ネットワーク対策 ・ フルフェルオーバー
June 2010 | Page 80
81. コンプラゕンス管理のロードマップ
サービス 現在 将来(6ヵ月以内に対応)
· EU Safe Harbor Seal
Online Service · ISO 27001
· CyberTrustCertification
Delivery Platform
· EU Safe Harbor Seal
· CyberTrust Certification
· GxP Pharma (SharePoint)
BPOS-S · ISO27001
· FISMA
· FERPA*/HIPAA*
· SAS70 Type II
· EU Safe Harbor Seal
· CyberTrust Certification
· FERPA* · ISO 27001
BPOS-D · HIPAA*
· FISMA
· FIPS 140-2
· TIC Compliance
· EU Safe Harbor Seal
· CyberTrust Certification
BPOS-Federal · FERPA*/ HIPAA*
· ISO 27001
· FISMA
(US Only) · FIPS 140-2 · ITAR
· TIC Compliance
June 2010 | Page 81
82. リスクへの対応(まとめ)
リスク項目 Windows Azure BPOS
サービス提供者の特権 ・特権ユーザーゕクセスはログに記録、承認された人のみゕ
ユーザのゕクセス クセス可能。
・運用については ITIL/MOF、ISO17799ベース。
サービス提供者とのコン ・SAS70 TypeⅡ、ISO27001、CyberTrust等の外部監査あ
プラゕンスの調整 り。
・ただし、お客様独自の監査を受け入れることは不可。
データの保管場所 ・利用時にデータが保管され ・契約時に初期データが保管
る国を指定可能。 されるデータセンター(地域)
を指定可能。
データの分離方法 ・不正侵入に対するモニタリングや、第三者機関によるペネ
トレーションテスト等を定期的に実施。
・BPOSは、Dedicate 型サービスも提供。
障害からの復旧手順 ・複数のサトにまたがって ・複数のサトにまたがって
複製。 複製。
• RPO 12h、RTO 24h。
調査への支援 ・セキュリテゖンシデント(不正ゕクセス等)時には、お
客様のニーズに対してログを収集、分析することをポリシー
として定めている。
June 2010 | Page 82
86. クラウドの潜在的脅威への対策
脅威 対策
Cross site scripting 出力テキストをエンコード
CSRF ユーザーごとのトークンを隠れフィールドに埋め込む
One-Click Attack ユーザーごとに異なるリクエスト形式を採用
HTTP replay attack SSL
Network Eavesdropping SSL or IPSEC
Password brute Force ロックアウトポリシーの実装
Repudiation attack 効果的なロギングの実装
File Canonicalization ファイル名の長さと正規化表現による検証
Denial of Service リスエスと数、ファイルサイズの検証
適切な例外処理の実装
詳細なエラーメッセージを表示しない
Forceful Browsing 認証コントロール
データの暗号化
Man in the middle attack SSL or IPSEC
SQL injection LINQ の使用
Response splitting コンテキスト依存のエンコーディング
June 2010 | Page 86
89. 多くのノードに分散してデータを保持
Service Service
C, D
Instance E, F,
Instance
C, D
D
C, D
C, E, F, E, F,FH
E, F
E,
A,B,B, E,
A, B, F
A, E,
A, B, C,D,G, H
C, D,G, ,
C, D,G,
C, D, 可用性のために
F
E,F,H I, J
H
f(G) = 4601 53
53 905
I, J 複製を使う
X
Service
Service Instance
Instance
1 5000 G, H
E, F, I,
Primary から自動
A, B
C, D, K, L G J フェルオーバー
6435 5501
5501
で最も近い
G Service Service
K, L
Instance
K, L I, I, JG
J,
Instance
I,I, J
J,
Replica secondary へ
K, L
Service A,A, B, I,,
B, I, J
A, B,G, K,K, L,G, H
L, G, F,
K, L,E,E, Size = 3
A, B, K, L,
Request I, J
I, JJ F, H
H
0 2128
Logical Partitions A, B C, D E, F G H I, J K, L
Service Instances X
June 2010 | Page 89
90. 冗長故の可用性:
障害を前提としたフェイルオーバーの機構
数万台もサーバーがあれば確率論的にどれかが壊れて当然という前提。
データ冗長化のイメージ 構造化オーバーレイ
データの読み出しはプラマリのみ 数万台のサーバーとなると、
セカンダリノードに非同期で それぞれのサーバーは全ノード
書き込みを行う の管理領域を把握しにくい
プラマリ障害時に昇格する ノードの離脱、追加を行った際に、
セカンダリは多数決で決定 管理領域の変更の影響をおさえる仕
組みが必要
Ack Read
Value 180
200
210
Write 174 218
151 225
Ack r7 250
Ack P Ack 135
Ack r6 r-6
120 2
S Write Write S 103 r5 r-5 17
98 30
90 r4 r-4
83 40
S 76 46
Write Write S 64 50
June 2010 | Page 90
91. SQL Azure Database のアーキテクチャ
フロント ゲートウェ マスターDB 課金・認証
ノード群
サーバーをまたがったレプリケーションDBを作成して同期
サーバー1 サーバー2 サーバー3
SQL Server
ンスタンス
サーバーをまたがったレプリケーションDBを作成して同期
クラウド
データセンター内 …
フゔブリック
数百台のサーバーでフゔブリックを構成
June 2010 | Page 91
94. 診断データの取得
• 診断データはンスタンスのローカル ストレージで保存
• 診断 API により、オンデマンドもしくは定周期に取得
• 取得されたデータは、Windows Azure ストレージへ
設定
Windows
ロール ンスタンス Azure
ストレージ
診断
ロール
データ収集 モニター
クオータ
(トレース、ログ、
ダンプ)
Windows
ローカル ストレージ
データ
IIS ログ & 失敗ゕクセス ログ
パフォーマンス カウンター
ベント ログ
June 2010 | Page 94
95. 診断データ一覧
フォー
データソース 既定 設定方法
マット
トレース ログ 有効、ローカル保存 診断 API、トレース リスナー テーブル
パフォーマンス
無効 診断 API テーブル
カウンター
イベント ログ 無効 診断 API テーブル
インフラ ログ 有効、ローカル保存 診断 API テーブル
IIS ログ 有効、ローカル保存 診断 API、Web.config ブロブ
IIS 失敗ログ 無効 診断 API、Web.config ブロブ
クラッシュ ダンプ 無効 診断 API、クラッシュ API ブロブ
その他のログ・
無効 診断 API ブロブ
ファイル
June 2010 | Page 95
96. Windows Azure プラットフォームの SLA
サービスバス &
コンピューテゖング ンスタンス監視 ストレージ データベース ゕクセス コントロール
コネクテゖビテゖ & 再起動 可用性 可用性 可用性
Web を通して すべての起動中 ストレージ サー ンターネット サービスバスと
接続されてい のロールは継続 ビスの利用可能 ゲートウェに ゕクセスポン
るサービス 的にモニター (接続可能) 性 接続されるデー トのエンドポ
タベース ントは外部接続
ンターネッ もしロールに不 ストレージ リク 性を持つ
トに接続され 具合があれば エストのプロセ すべてのデータ
ているロール Microsoft が検知 スが成功したか ベースは継続的 メッセージ操作
との外部接続 し正常な状態に どうか にモニター リクエストが正
性 起動 常にプロセス完
了したかどうか
>99.95% >99.9% >99.9% >99.9% >99.9%
June 2010 | Page 96
97. Azure対応における注意点のまとめ
1. セキュリテゖ
– 各種の法的規制や社内ポリシーとのすり合わせが必要
– 実務レベルでもセキュリテゖ設計の見直しが必要になるケースがある
2. 性能保証
– クラウドはスケーラビリテゖに富むが、原理的に応答性能が保証しにくい
– ネットワーク帯域も問題になりやすい
3. 運用監視
– 現状では、クラウドはオンプレミスとは分けた運用監視が必要
– Azure の 99.9% 可用性で不十分な場合は、ハブリッド化などが必要
4. テストと障害対応
– ラブデバッグ不可、バージョン固定不可、サポートは英語
June 2010 | Page 97
100. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista 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.
June 2010 | Page 100