Tech Ed2006 二日目
T5-402 Windows Workflow Foundation:フローモデルの解説とアプリケーションへの適応
.NET Framework 3.0で追加された、Workflowを実現するためのクラスライブラリ。たとえば、Office 2007でworkflowを実現したい!といった場合にまでこれを使って実現する必要はなくて、Sharepoint Portal Server 2007を使ってみてと。独自にworkflowを実装するような場合に検討してみましょうと。
- C#やVBはプログラム制御の機構を提供するので、フローの制御まではやっちゃだめ。拡張性に欠けることと、GCにより資源が解放されてしまうことがあるので、永続化時に問題が発生する。
- シーケンシャル(逐次実行)、ステートマシン(状態モデル、イベントで制御)で制御する。振る舞いはPlug-inで拡張可能。永続化する先もいろいろ拡張可能。
- アイドル状態になると自動的にランタイムのPersistenceサービスが呼び出され、永続化が行われる。このときSQL Serverを使用することも可能。
- workflowは複数インスタンスを作成でき、GUIDで区別され、それぞれ別のスレッドプールで実行される。ホストプロセスとworkflowのスレッドでのデータ交換はパラメータ、もしくはローカルコミュニケーションサービス、Queueを使う。
シンプルだけどとても使い出がありそうなworkflow foundation。
T2-402 Windows Vistaの展開技術を使ったPC環境の標準化手法 前編
珍しい全後編セッション。Vistaの展開についてIT Pro向けセッション。前編では無料ツールWindows PE 2.0,ImageXやWindows Deployment Serviceを使ったお話。
- RISの後継WDS。もちろんWindows Server 2003で使用可能。
- WDSではレガシーモードを使用してWindows XPも展開可能。
- Active Directoryが前提なので、使えないような場合やもっと高度な複数のシナリオ(新規/アップグレード/再インストールなど)があるような場合はBDD(Business Desktop Deployment)を使いましょう。
- Windows VistaはDVDの中からすでにWIMという形式でのイメージ化が行われており、XMLファイル(従来のunattend.txt)で追加ドライバを定義することも可能
- ドライバ以外にもセキュリティパッチなども追加してイメージング可能(PkgMgr)。
- これらは手作業で行うが、BDDを使えばライトタッチ展開としてこれらを自動化することができるそうな。
企業などで同一仕様のPCを大量に展開するときは便利そうです。
T5-401 Windows Communication Foundation:リライアブルでトランザクテッドな分散サービスの構築
だいぶ遅刻して入ったので最初のほうは聞いてません。Workflow Foundationと同様に.NET Framework 3.0の一部。Webサービスとの相互運用性も確保(WSE 3.0のサポート範囲を拡大している)。
- WCFのEndpointはA(Address),B(Binding),C(Contract)とBehavior、ABCはコードではなく.Configファイル中に定義する。
- WCFの標準bindingは多い。WS-*などで標準化されているものもサポートしている。
- トランザクションの解説。アトミックと補償的。アトミックはいわゆる2Phase Commit。実装簡単。補償的は仮commitしておいて、どこか一箇所でもNGならばロールバック処理を各サブトランザクションがやらなくてはならない。結合度と複雑性のトレードオフ。WCFはアトミックトランザクションをサポート。MSDTCとSystem.Transactionsとも連携。
- メッセージの到達について。WCFでサポートされたMS Message Queue。
- オフライン時にもメッセージ送信可能
- トランザクションももちろん可能
- ひとつのキューを複数サービスから呼び出し可能(スケーラビリティ)
- でも、One-Wayオペレーションのみ定義可能
- このあたりはMS Message Queueサービスの制限、仕様に引きずられるのはもちろんのこと。
T5-322 Windows Communication Foundationによるセキュアな分散アプリケーションの構築および、Windows CardSpace(コードネーム"InfoCard")の実装
WCFをセキュアにするにはどうすればいいか?また、乱造される認証について、仮想的なカードを使用して公開権限を何とかしましょうという話。CardSpaceはMSだけの話ではなくて、UIもみんな統一しましょうという話。
- セキュリティモードはトランスポートとメッセージレベル。もちろん一長一短。セキュリティの話なので、どこかが崩れるとだめ。
- セキュリティの設定は.configファイル(Modeとそれに応じたセキュリティ設定:None,Windows,Username(Message),Basic,Digest,Ntlm,Certificate(Transport))。
- トランスポートのAnonymousはhttpsを使い、暗号化/署名。ブラウザと一緒。
- メッセージの相互認証では送受信サーバそれぞれにサーバ/クライアント証明書が必要(SOAPのリクエスト/レスポンスそれぞれで使うから)。
- Windows特有の機能として、偽装(Impersonation:インパーソネーション)がある。認証にWindows認証を使用可能。ローカルリソース(サーバ上のファイルなど)へのアクセスにこれを使うのは非常に容易。WCFに限ったことではなく、IIS経由でサーバのローカルリソースにアクセスする際にあったことだけど、WCFではクラスが用意されている(C#ならばusingで明示的に影響範囲を限定できる)。ビヘイビアでインタフェース単位でもOK。
- SDKにサンプルシナリオがついているので、みてね(20種類くらいあるそうです)
CardSpace。人間が複数のお店のカードから店にあったカードを提示するように、「この認証にはこのカード」というように申告(クレーム)ベースで使用するカードを決定する。
- WS-*を使ったアイデンティティメタシステムアーキテクチャ。テクノロジー、プラットフォーム、に非依存。
- Relying Party:IDを利用するサイト、サービス(たとえばここもそう)
- Identity Provider:IDを発行する。従来であればRelying Partyがやっていた。
- Subject:ユーザやアプリケーション
- このIDの提供とIDの利用するサービスにより同じIDを別のサービスで利用可能。いうなればWindows Live!アカウントの認証をこのサイトで使うようなもの。たとえば、IISでは旧Passport認証(現Live!アカウント)をサポートしているので、Passportで認証されたからサービス提供者でも信用するという感じ。
- UIはより安全に、わかりやすく。ユーザ名やレジストリなどの依存性を減少。どのサイトでも、同じUIを使用。WindowsのCardSpaceによる実装ではユーザモードでの動作により、不正なサービスからのUIハックを阻止(たぶんVistaのこと)。
- WS-*との関係。
- ポリシーの記述:WS-SecurityPolicy
- ポリシーの取り出し:WS-MetadataExchange
- セキュリティトークンサービス:WS-Trust
- メッセージ:SOAPとWS-Security
- トークンフォーマット:Relying Partyが要求しIdentity Providerが提供できるものなら何でも(一致しなければその組み合わせだけ必要ということ)
- WS-*スタックを使用するためにWCFを使ってます。
T5-308 Windows Forms:エンタープライズ対応のフォームをもつアプリケーションの構築
雑誌の.NET Framework 2.0で追加されたコンポーネントの解説を読めばいいです。特に目新しいことは何もありませんでした。