Web APIが実現する『モダンWebアプリ エクスペリエンス』とは?
シングルページアプリケーション
マルチデバイス対応含め、さらにアプリケーションのアーキテクチャそのものも変わってきている。これまでのWebアプリケーションは静的なHTMLのページをクライアント側に返すだけのものが多かった。それが近年ではサーバー側でWeb APIなどでインターフェースを定義して、HTMLページとは別にデータをクライアント側に返すという手法も増えてきた。例えば、Web APIを通して非同期で取得したデータをクライアント側でHTMLページに動的に埋め込むことで、単一ページ内でさまざまな機能を提供する『シングルページアプリケーション』というアーキテクチャスタイルを意識したWebアプリケーションも増えてきているという。
クライアント側での非同期処理は、かつてはAjaxなどといわれ、GmailやGoogle mapsなど以前からあり、珍しいものではない。しかし、近年になって急速に浸透してきた。その牽引理由の一つがマルチデバイス対応だろう。Web APIでデータと見た目、サーバーとクライアントをそれぞれ切り分けることで、新しいデバイスが登場しても、Viewの部分だけ変えてデータを提供している部分を変えずに、迅速に対応ができる。ASP.NETでは、こうした『モダンWebアプリケーション』に対応する1つのフレームワークとして、Web APIを提供している。
井上氏はMVC 4でWeb APIプロジェクトを作成し、モデルの追加、コントローラーのアクションメソッドの実装を行って、実際にWeb APIの実装のデモを行った。Web APIにはデモで紹介した内容に加えて、データ量が膨大にある場合にURLで指定したフィルター条件に沿った形でデータを取得する方法などが用意されているという。これらの機能は井上氏のブログで紹介されている。
SignalR
続いて紹介された『SignalR』は、リアルタイムの非同期双方向通信がサーバー、クライアント間でできるライブラリである。ASP.NETの公式ライブラリとしてNuGetパッケージとして提供されている。
『SignalR』を利用するメリットは、簡単にいえばリアルタイムかつ双方向の通信を簡単に実現できる点にある。リモートプロシージャコールや、サーバーからクライアントへのプッシュ通信が可能で、自動的にトランスポートを調整する機能も持ち合わせている。最後にデモとして、signalRで作成されたサイト『“へー”ボタン』が紹介された。会場の聴講者がボタンを押すとリアルタイムで反応が起きるのを確認した。
こうしたリアルタイム性や快適な双方向通信を可能にする『SignalR』では、例えばチャットやシューティングゲーム、また、株価情報のプッシュ型配信のような情報サービスなども比較的容易に開発でき、今後さまざまな用途が期待されている。
センサークラウド with ASP.NET
そして、最後に『センサークラウド with ASP.NET』が紹介された。さまざまなWebアプリケーションやASP.NETなどの変化を見てきたが、やはりクラウドとデバイスを上手に連携させることが今後の大きなカギと思われる。GPS、ジャイロ、温度、湿度などのデバイスのデータをうまく生かすことができれば、冒頭に見たムービーのような世界もそう遠くはないだろう。
井上氏は「今後ますます注目が高まるだろう。ぜひ、クラウドとASP.NETの連携でさまざまなアイディアを生かしてほしい」と語りつつ、デバイスとクラウドを連携させ、SignalRを使ってKinectのデータを各クライアントのWebブラウザ上にリアルタイムで配信するデモを紹介した。
最後に井上氏は「ASP.NETは、さまざまなライブラリを組み合わせて、多種多様なWebアプリケーションに対応できるようになってきている。そして、まもなくリリースされるアップデート "ASP.NET and Web Tools 2012.2"(注:2/18にリリース済。詳細はこちらを参照)にも期待してほしい」と語った。
今回のデブサミのテーマである『Action!』に触れ、「エンジニアはコードを書くことで世界を変えることができる。ぜひ、今日からもコーディングを楽しみながら取り組んでほしい。そして一緒に未来をつくることが出来れば。Enjoy coding,Be happy with ITマイクロソフトは応援しています」とメッセージを送り、セッションを結んだ。
日本マイクロソフト株式会社
〒108-0075 東京都港区港南 2-16-3 品川グランドセントラルタワー
TEL: 03-4332-5300 (大代表)