2010年に登場するSilverlight 4はビジネスアプリケーションのUIを変えるか
PDC 09でベータ版が発表されたSilverlight 4は、単なるWebブラウザのプラグインを超えるまでに成長している。今回は、このSilverlight 4を紹介する。
■WPFと同等の機能を持つUI構築ソフトに進化
Silverlightは、Webブラウザで動作するリッチインターネットアプリケーション(RIA)を構築するためのソフトだった。いわば、AdobeのFlash対抗として見られていた。
今年の夏にリリースされたSilverlight 3では、Webブラウザ外(Out Of Browser)での動作をサポートするようになり、Silverlight単独で動作するガジェットなども登場してきた。ただ、Out Of Browserの機能は、先行するAdobeがFlashをベースとしたAIRで実現しており、Silverlight独自の機能とまではいえなかった。
ベータ版が発表されたSilverlight 4は、ビジネスアプリケーションのUIとして利用できるほど機能がアップされている。
まず、操作関連ではファイルのドラッグ機能がサポートされた。例えば、Windowsエクスプローラなどで表示されたファイルをドラッグして、Silverlight 4にドロップすれば、そのファイルがSilverlight上でオープンする。つまり、通常のWindowsアプリケーションと同じ使い勝手を実現している。
また、Silverlight 4では、マウスのホイール操作もサポートしているため、Webブラウザをスクロールするのと同じ感覚で利用できる。
さらに、Silverlight 4上でテキストを選択したとき、右クリックでWindowsアプリケーションにコピー&ペーストすることもできる。現状のベータ版では、テキストだけをサポートしているが、将来的にはWindowsのUIのベースとなっているXAMLフォーマットもサポートする予定だ。
もう一つ大きな機能は、Silverlight 4自体で印刷機能をサポートしたことだ。これにより、Silverlight 4で作成した文書などを独自に印刷することができる。
実際、PDC 09のデモでは、Silverlight 4で作成したテキストエディタの内容を、Windows上で動作しているWordにコピー&ペーストしていた。また、Silverlight 4自体の各国語対応もすすみ、英語や日本語だけではなく、アラビア語やヘブライ語にも対応している。
■企業アプリケーションで必須の機能もサポート
Silverlight 4は、新たなコントロールが追加されている。例えば、データバインディング(データを追加する機能)、データグリッド(データを表のようにして表示、編集する機能)、インプットチェックなど60個ほどのコントロールが追加された。これらのコントロールは、Visual Studio 2010などから簡単にSilverlight 4に追加することができる。
データバインディングやデータグリッドは、企業アプリケーションにおいて、データベースのデータを効率よく表示するために必須の機能だ。こういったコントロールがSilverlight 4でサポートされたことで、企業アプリケーションをSilverlight 4で構築することも簡単にできるようになる。
また、Silverlight 4では、WCF RIA Servicesがサポートされた。WCF RIA Servicesは、以前は.NET RIA Servicesと呼ばれていたものだ。このモジュールは、企業などで構築されるN階層アプリケーションを構築するを容易にする。
多くの企業では、バックエンドのデータベース、中間階層でビジネスロジックをサポートし、フロント階層としてユーザーインターフェイスを担当するWebサーバーが置かれるといった3階層モデルを採用している。
WCF RIA Servicesは、こういったN階層システムの構築を手軽にする |
しかし、クライアントPCの能力がアップするにつれて、サーバー側ですべての処理をするのではなく、クライアント側でインタラクティブな操作や処理を担わせることで、より高度なUIや操作感が実現できるということで考えられたのがN階層アプリケーションだ。
MIcrosoftのN階層アプリケーションのモデルでは、クライアントPC側で、インタラクティブなUIだけでなく、ある程度のデータ処理を任せようと考えている。こういったシステムを構築するときにWCF RIA Servicesは、非常に便利なフレームワークを提供する。
WCF RIA Servicesでは、データをエンドツーエンドで利用できるようになっている。これにより、データをサーバー側で処理するだけでなく、クライアント側で処理することもできる。また、アプリケーション層に置かれるロジックをクライアントとサーバーで一元化することができる。
WCF RIA Servicesは、Silverlight 4で企業システムを構築する場合、大きなメリットになる。通常、N階層システムは、クライアントとサーバー側でどのような切り分けをするのか難しい。しかし、WCF RIA Servicesを利用すれば、N階層システムを構築しやすくしている。さらに、クライアントPCのUIとしてSilverlight 4を利用すれば、インタラクティブで表現能力の高いUIが構築できる。
これ以外にも、Out of Browserの機能としては、Windowsのタスクバーに表示されるポップアップノーティフィケーションのサポート、ウィンドウの位置、サイズなどの設定することもできる。
もう一つOut Of Browserで重要な機能が、Silverlight 4アプリケーションからWindowsアプリケーションやAPIにアクセスできるような権限昇格機能だ。
これまでのSilverlightでは、セキュリティを考えて、サンドボックスとして動作していた。このため、Silverlight内部の決められたものにしかアクセスできなかった。しかし、Silverlight 4では、権限を昇格させることで、WindowsのCOM呼び出し、デバイスへのアクセス、ファイルシステムへのアクセスなどができるようになる。
例えば、Silverlight 4で表示されたデータを、クライアントPCにインストールしてあるExcelを起動して、データを引きわたすといったことができるようになった。また、Silverlight 4で作成したデータをクライアントPCに保存することも可能だ。
ただし、この権限昇格機能は、サンドボックス外へのアクセスを許すことになるため、セキュリティホールにもなりやすい。Silverlight 4ではサポートが表明されたが、今後はセキュリティを保つために、権限昇格機能を利用する場合は、なんらかの電子認証を利用する必要があるかもしれない。
もう一つ、企業システムにとって大きいのは、SharePoint Server 2010が、UI構築モジュールとしてSilverlightをサポートしたことだ。これにより、SharePoint Serverでも、インタラクティブなUIを使用することができる。
■メディア対応を拡張
メディア機能では、ビデオ再生のGPUサポート、ネットワークスピードに応じたスムーズなビデオストリーミング機能などがSilverlight 3からサポートされている。
Silverlight 4では、H.264やMP4コーデックへの対応を行っている。さらに、オフラインでのDRM機能なども用意されている。これにより、HDクオリティの映像をオンラインだけでなく、いったんダウンロードしてから再生することもできる。もちろん、DRM機能があるため、ダウンロードしても、DRMに沿った形での再生になるので、コンテンツ管理も可能だ(画面表示時のプロテクションもサポートしている)。
ネットワーク機能では、UDPのマルチキャストに対応した。これにより、多くのユーザーが一気にアクセスするライブストリーミングなどもSilverlight 4クライアントを利用できるようになる。このほか、認証システムとしては、NTLMや通常のIDとパスワードといったものまでサポートしている。
■Silverlight 4がWindowsのUIになる?
Silverlight 4で追加された機能 |
Microsoftでは、Silverlightをさまざまなプラットフォームで利用できるようにするつもりだ。実際、Windows Mobile(Windows phone)、Mac OS XなどでもSilverlightが利用できるよう開発を進めている(iPhone用のSilverlightも完成したともいわれている)。さらに、対応ブラウザとしては、IE以外に、Firefox、SafariなどがSilverlight 3でサポートされていたが、Silverlight 4ではGoogle Chromeもサポートされる。
また、Microsoft自身では開発はしていないが、Linux上でSilverlightをサポートするMoonlightが提供されている。Moonlightは、Microsoftが技術協力し、Novellが中心となって開発を進めている。
このほか、Silverlight 4ではWebカメラをサポートしている。これにより、サンドボックス外のデバイスにアクセスしなくても、Silverlight内部でテレビ電話などのアプリケーションが使用できる。
便利そうだったのは、PDC 09の基調講演でデモされたバーコード読み取りのアプリケーションだ。書籍のバーコードをWebカメラで読み取り、Silverlightでインターネットにアクセスして、その書籍の情報を表示するといったことができる。日本の携帯電話のQRコードのような使い方ができるようになるかもしれない。
Silverlight 4を実際に見た感想は、ここまでの機能がサポートされると、WindowsネイティブのWPFでUIを開発する必要はなくなるのではと思う。
将来的に、Windows自体は、API群として開発され、UIはSilverlightが担うことになるかもしれない。こうなれば、標準的なWindows UIだけでなく、企業ごと、ユーザーごとにUIをカスタマイズすることも可能になるかもしれない。
しかし、こういった将来が実現するには10年以上かかるだろう(Windows 8では、絶対にここまでドラスティックには進化しないだろう)。
企業アプリケーションを構築する場合も、Silverlightを使えば、インターネットとローカルでの動作を気にしなくても良くなるかもしれない。ビジネスロジックがどこで動作しているのか、データはどこにあるのかをアプリケーションを利用するユーザーは、意識しなくても済むだろう。ある意味、Microsoftが目指す、Software+Serviceを実現化する大きなピースだ。
また、PCだけでなく、携帯電話、Webブラウザなど3つのスクリーンにまたがるアプリケーションも、Silverlightなら簡単に構築できる。Silverlight自体が、こういった3つのスクリーンをサポートしているため、開発者はデバイスの違いを気にしなくても良くなるだろう。
ただ、Silverlight 4の権限昇格機能によりサンドボックス外のアプリケーションやデバイスへのアクセスは、OS環境に左右されるため、もしかするとSilverlightの相互互換性が失われる可能性もある。
Windowsを利用している企業にとっては、権限昇格機能はSilverlightとほかのアプリケーションを連携するための鍵といえる。今後は、企業でもSilverlightが数多く利用されることになるだろう。
2009/12/18/ 00:00