Webアプリケーション開発に新しいパラダイムをもたらす「Meteor」

杉山貴章(オングス)
2012-05-22 14:58:00
  • このエントリーをはてなブックマークに追加

話題沸騰の「Meteor」とは

 4月に公開された新しいWebアプリケーションプラットフォーム「Meteor」が話題だ。

 MeteorはJavaScript/HTML/CSSによるWebアプリケーションを開発するためのフレームワークとパッケージマネージャー、実行環境などがセットになったプラットフォームである。Node.jsが基盤として採用されているため、サーバ/クライアントともにJavaScriptで記述することが可能で、データベースシステムとしてはMongoDBを備えている。

 Meteorの最大の特徴は、開発のリアルタイム性を極めて高いレベルで実現している点だ。クライアント側でコードに変更を加えたら、即座にそれがクラウド上に展開されたアプリケーションに反映される。そして書き換えられたページは即座にWebブラウザにPush配信されるため、ページを更新するためにリロードボタンを押す必要すらない。データベース上のデータについても同様で、変更が加えられたら即座にそれがページに反映される。複数クライアント間でのデータの同期などにも対応している。

 Meteor自身はクライアントPC上で動作する開発ツールだが、クラウド上のPaaSもMeteorの一部として統合されており、作成したアプリケーションはコマンドひとつでPaaSにデプロイして公開することができるようになっている。プロジェクトの作成や実行、デプロイ、データベースへの接続などはすべてコマンド操作で行う。特徴的なのは、クライアントとサーバで同じJavaScriptコードを動作させることができる点で、クライアント/サーバで別のコーディングノウハウを学習する必要がないというメリットが挙げられている。また、テンプレートエンジンを備えているため、HTMLコードもテンプレートによってシンプルに記述することが可能となっている。

 もうひとつの強みが、独自のインテリジェントなパッケージ管理システムを備えている点だろう。開発者は、使いたいパッケージをコマンドによって追加するだけで、特別な設定をすることなくプロジェクトにアドオンすることができる。利用可能なパッケージは"meteor list"コマンドで確認できる。本稿執筆時点ではCoffeeScriptjQueryLESSBootstraphtmljsAmplifyJSなどといったパッケージがサポートされている。

Meteorの仕組み

 Meteorのインストール方法や基本的な使い方などについては、公式サイトのドキュメントなどを参考にしていただきたい。注意点としては、本稿執筆時点で公開されているのはまだ早期プレビュー版であることや、利用にはcurlコマンドが必要なことなどが挙げられる。

 さて、ここでは、Meteorの主要な機能について、その内部の仕組みを簡単に紹介していきたい。

WebSocketの利用

 MeteorはWebSocketをフル活用することで、サーバ/クライアント間の高速な双方向通信を実現しているようだ。WebSocketを使えば、クライアント側からだけでなく、サーバ側からも自主的にデータの送信を開始することができる。クロスブラウザ対応やプロキシ経由での通信もサポートされているとのこと。WebSocketの実装としてはSock.jsが採用されている。

リアルタイムなページ更新

  • 新着記事
  • 特集
  • ブログ