BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Yahoo!、"Write Once, Run Anywhere"をもたらすJavaScriptフレームワークMojitoをオープンソース化

Yahoo!、"Write Once, Run Anywhere"をもたらすJavaScriptフレームワークMojitoをオープンソース化

原文(投稿日:2012/04/03)へのリンク

Yahoo!がMojitoをオープンソース化した。これは、さまざまなWebアプリケーションに組み込めて、コード変更なしにクライアントでもサーバでも実行できる、再利用可能なウィジェットを作るためのフレームワークだ。

Yahoo!はオープンソースに熱を上げているようだ。最近YSlowをオープンソース化したところだが、今度はMVC Webアプリケーション構築のためのJavaScript WebフレームワークであるMojitoをオープンソース化した。Mojitoは、個々のデバイスやフォームファクターにポーティングすることなく、マルチデバイス(PC、タブレット、スマートフォンなど)で動作するWebアプリケーションの作成を可能にするJavaScriptプラットフォーム、Yahoo! Cocktailsの一部だ。Yahoo! Cocktailsの主要コンポーネントには、クラウドでMojitoアプリを実行するためのサーバサイドJavaScript環境も含まれる。このプラットフォームの最下部には、すべての主要ブラウザ、デバイスおよびサーバサイド環境でJavaScript Webアプリを動かすための共通APIセットを提供する別のオープンソースフレームワーク、YUI (Yahoo! User Interface) Libraryがある。

Yahoo! Cocktailsの一番の目標は、さまざまなデバイスで表示でき、ブラウザサイドでもサーバサイドでも実行できる、再利用可能なコンポーネントを使ったWebアプリを作れるようにすることだ。このプラットフォームが利用しているのはHTML5とJavaScriptとCSSだけだ。

Mojitoはプレゼンテーション中心のフレームワークだ。その基本要素はMojitというMojitoウィジェットで、さまざまなWebアプリの一部として表示可能なMVCコンポーネントになっている。開発者がMojitoベースのアプリを作るときには、ほかの開発者の作ったウィジェットも組み合せて作ることができる。そうしたアプリの一例がYahoo! OMGだ。ページの各コンポーネントはウィジェットでできている。ウィジェットはレンダリングされる前に、その環境に望ましいルックアンドフィールドになる。将来はこうしたウィジェットの市場が生まれると予想している人もいる。

Mojitoの大きな特徴のひとつは、ウィジェットがデバイスについて何も知らないということだ。Mojitは主要なブラウザをもつデスクトップやモバイルデバイスであればどこでも表示でき、そのコントローラコードはクライアントでもNode.js上のサーバでも実行できる。したがって開発者は、クライアント向け、サーバ向けと別々のコードを書く必要はない。同じコードがクライアントでもサーバでも動かせるのだ。

Yahoo!はMojitoをさらに強化して、必要に応じてクライアントとサーバの間でコード実行を透過的に切り替える仕組みを導入したいと考えている。たとえば、もし特定の処理をするのにそのデバイスだと遅すぎるようなら、開発者の指定なしに、またユーザの操作なしに、そのコードはサーバに送られてサーバ上で実行される、といった具合だ。

Mojitoは依存性管理に使われるYUI3上で動作するが、YUI3に紐づいているわけではなく、jQueryやDOJO上でも動作する。YUI3が選ばれたのは主要なブラウザ、さらにはNode.js上でも動作するためだ。

現在、MojitoはYahoo!によって、LivestandFantasy FinanceFantasy Premier League Footballで使われている。

MojitoのコードはGitHubにてBSDライセンスのもと利用できる。Mojito: A Tale of Two Runtimesでは、Mojitoウィジェットがどのように作られて実行されるのか、低レベルの仕組みについて詳しく解説している。

この記事に星をつける

おすすめ度
スタイル

BT