Cappell & AssociatesのDavid Chappell氏の新しいレポート(リンク)が、Microsoftの最新技術ーWF 4.0、Dublin、Osloーについていち早く伝えている。彼はこれらのテクノロジがどういったものか、さらにそれらを使ってワークフローベースのアプリケーション、サービス指向アプリケーション、そしてモデル駆動アプリケーションをどのように作るかを説明している。
今日WFはすでにある程度アプリケーションで利用されているが、WF 4.0ではより使いやすいようになる。これは次のような多くの新機能が取り込まれることで実現される。
- ユーザがより使いやすいWFの新しいワークフローデザイナ。このデザイナはVisual Studio内で動き、ユーザはグラフィカルにワークフローやアクティビティを開発することができます。必ずこのデザイナを使わないといけないわけではありませんが、デザイナを使えばワークフローやアクティビティの全てをコードあるいはXAML(Extensible Application Markup Language)で書く必要はなくなります。このデザイナはソフトウェアベンダの製品など他の環境でも使用可能で、WF 4.0のリリースではもう少しシンプルになるでしょう。
- 数多くのビルトインアクティビティ。WFのBase Activity Libraryはフローのコントロールやコミュニケーションを目的としたものです。WF 4.0ではデータアクセスやPowerShellのコマンドレット(PowerShell内蔵のコマンド)の実行などに用いるアクティビティも提供されます。このことで既存のアクティビティをワークフローに組み込むことで実用的なアプリケーションを簡単になります。
- 新しい Flowchartワークフロー型。WFには元々2つのビルトインワークフローがありました。一つはSequentialで、比較的シンプルなプロセスに向いています。もう一つはState Machineで、より広い範囲で利用できるが扱いも難しくなります。FlowchartはSequentialとState Machineの両方の利点を合わせもちながら使用方法も分かりやすい第3のワークフローとして加わることになります。
他にもWF 4.0ではパフォーマンスの向上、データハンドリングの簡素化など多くの改良が加えられている。
Windows Serverの拡張機能となるDublinはInternet Information Server(IIS)およびWindows Process Acrivation Service(WAS)が基盤となっている。これら基盤技術によって提供される基底サービスを「ラッピング」する以外にも、Dublinは多くの機能を新しく提供する。
- オートスタート:WCF(Windows Communication Foundation)のサービスは、デフォルトで最初にメッセージを受け取った時に実行を始めるようになっていますが、Dublinのオートスタート機能によってサービスが構成され次第自動的にロードすることができるようになります。これはアクティベート型でないチャネル-たとえばFTPやSMTPのように自動的にサービスを開始しないWFCコミュニケーションメカニズム-を使うサービスにとっては便利な機能です。オートスタートは、最初のリクエストのハンドリング前に初期化処理を実行しないといけないサービスの応答時間も改善します。
- インスタンス再起動:一つのアプリケーションが動くには1つあるいは複数のサービスインスタンスが利用できる必要があるものです。インスタンス再起動機能は全Dublinサービスからの信号をモニタリングします。信号が一定期間送られてこないサービスがあると自動的に再起動されます。WFベースのサービスの場合は、最後に保存された状態からワークフローが再開されます。
- メッセージフォワード:この機能によってメッセージベースのルーティング、つまりはメッセージの内容に基づくルーティングルールを定義することが可能になります。そのようにルーティングルールを定義すれば、Dublinはメッセージをその内容に応じて異なるサービスにルーティングすることができるようになります。
- トラッキング:サービスが何をしているかの情報を格納したイベントを書くことはサービスにとって有用なことです。Dublinのトラッキングサービスは、WFを使っている使っていないに関わらずどんなサービスに対してもこのトラッキングができるようにします。WFベースのサービスの場合、DublinはWFが元々サポートしている機能に加え、それを使いやすくしたりその他の機能を使えるようにします。
Osloの話になると、実のところこれが何なのか分かりかねる人が多くいたようだった。代表的な質問(リンク)は、
- OsloはMicrosoftの次のウェブサービスプラットフォームなのか?
- どのようにOsloをBizTalkと連携させる、あるいは置き換えるのか?
- OsloはMicrosoftのESB(Enterprise Service Bus:ミドルウェアの連携基盤)に対する答えなのか?
- OsloはMicrosoftのBPM(Business Proocess Management:ビジネスプロセス管理)プラットフォームになるのか?
Don's Box Don Box氏の投稿(リンク)によると、
Osloについては2つのことに取り組んでいます。
一つ目のことをなるべくスムーズにおこなえるように、モデルをテキストで表現するのに適した言語を作りました。これは多くの人(特にディベロッパ)にとって便利な表現手段になっています。ビジュアルデザイン(「Quadrant」:四分円の意味)のGUIも多くの人にとって便利なものなので、私たちもテキストベースが好きな友人たちが作ったり使ったりする情報を使ってデザインツールを作っているところです。
- 物事を言語で表現する際に、対象となるドメイン的に意味のある方法で表現することを簡単にしようとしています。ざっくり一般的な言葉で言えばモデリングということですね。
- 実行時にプログラムなどがプラットフォームにアクセスしやすくするようにしています。
Doug Purdy氏が強調しているOsloの要点(リンク)は、
簡単にいえば、このプラットフォームがソフトウェアの開発と管理にもたらすのは「変換」で・・・
Dave Chappell氏の説明では、
Osloが)目指すのは、モデル駆動アプリケーションやモデルを利用するものを、IT効果を指向して作る基盤を提供することです。Osloはいろいろな方法で利用することができます・・・まず、Osloの一番重要な使い方はWFベースのアプリケーションと一緒に使うことになるでしょう・・・技術寄りのビジネスアナリストはWFのワークフローを作ったり変更したりするのにQuadarantを使うことができます・・・その他の利用法としては、それぞれが異なったツールを使う技術寄りビジネスアナリストとディベロッパが同一のWFワークフローについて作業することが考えられます・・・
これらで描かれているテクノロジはどれも単体で使えるものだが、その根底にあるビジョンを感じ取るにはそれらがどのように連携するかを理解する必要がある。たとえばDave Chappell氏はエンタープライズビジネスプロセスの改善というケースについて述べていて、そこではOsloをビジネスプロセス、アプリケーション、その関係、そしてプロセス定義用デザインツールのレポジトリとして使うことを想定している。またその新しいプロセス定義では、WFをプロセスの実装技術として、Dublinをデプロイプラットフォームとして用いる。
この記事で書かれているテクノロジは発展途中でまだ確定していない部分も多く、同時リリースが予定されているわけでもない。仮のリリーススケジュールでは、
これらの新しいテクノロジがリリースされれば、これらを好きなように組み合わせて使うことができるようになります。たとえば、WF 4.0アプリケーションをOsloを使って作ったり、Visual Studioだけで作ったりすることができるでしょう。できあがったアプリケーションはDublinにデプロイすることも、ユーザの使うホストにデプロイすることもできます。
- WF 4.0は.NET Framework 4.0とVisual Studio 2010と一緒にリリースされる予定です。新しい.NET FrameworkとVisual StudioにはWCFの更新バージョンなど他のものも含まれる予定です。
- Dublinは最初、単体でのダウンロードで提供される予定です。それからWindows Serverに含まれます。これは.NET Framework 4.0とVisual Studio 2010のリリースからそれほど間を置かないでおこなわれるでしょう。
- Osloモデリングテクノロジはそれに対応したレポジトリ、言語、Quadrantなどと一緒にリリースされる予定です。
Dave Chappell氏のレポートでは、次世代の分散型SOAベースシステムに対するMicrosoftの興味深いビジョンが述べられている。そのビジョンでは、サービスはワークフローを用いて連携したりモデルによって定義したりでき、また実行環境をモニタリングすることもできる。そしてそれらのサービスはレポジトリに格納される。ただしこのビジョンには、アプリケーションをデプロイしなくてもモデル変更による影響を評価できるシミュレーション環境だけが欠けているようだ。