MEAN (ソフトウェアバンドル)

MEAN は、ウェブアプリケーション構築のためのフリー&オープンソースのJavaScriptソフトウェア群を指す造語である。2013年にMongoDBの開発者のValeri Karpovにより提唱された用語であり、MongoDB, Express, AngularJS, Node.jsの4つのアプリケーションの頭文字を取って名付けられた。

 概要 
MEANを採用すると、サーバサイドからクライアントサイドまでの全ての実装作業がJavaScriptとJSONのみで完結できる。従って、Webアプリにおける内部処理の全工程を単一の言語で記述でき、データベースの入出力におけるデータ変換も行う必要がない。また、サーバの役割を果たすNode.jsが、シングルスレッド、ノンブロッキングI/Oにより、省メモリかつ高速で動作する。従って、開発作業の効率化やサーバマシンの大幅な負荷低減を実現できる。

 構成 
MEANは以下の要素から構成される。 
 MongoDB: NoSQLデータベース
 Express.js: Node.jsで動作するWebアプリケーションフレームワーク
 AngularJS: Webブラウザ上で動作するJavaScriptのMVCフレームワーク
 Node.js: イベント駆動型のサーバサイド／ネットワークアプリケーション

 歴史 
MEANという言葉を作成したのはMongoDBの開発者のValeri Karpovである。Karpovは2013年に自身のブログでこの概念を紹介した。

MEANのロゴを作成したのはAustin Andersonで、LinkedInのMEANグループのためのものであった。このロゴでは、MEANの由来を示すように、各アプリケーションの頭文字が組み合わされている。

 実装 
 MEAN.io: MEANの最初のフレームワークの一つ。Amos HavivとLinnovateによるもの。
 MEAN.JS: Linnovateの離脱後にAmos Havivが作成したもので、コミュニティによる管理が行われているMEAN.JS - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.jsGitHub - meanjs/mean: MEAN.JS - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js -。

 派生 
MEANの構成要素のいくつかを他のフレームワークなどに置き換えたものが知られている。こうした例としては、AngularJSの代わりに同じくJavaScriptのMVCフレームワークであるを用いたMEENなどがある。GitHub - YunnuY/meen: Mongo-Ember-Express-Node full-stack javascript open-source solution

 関連書籍 
 シングルページWebアプリケーション ―Node.js、MongoDBを活用したJavaScript SPA, Michael S. Mikowski, オライリージャパン, 2014/5/24
 関連項目 
 LAMP (ソフトウェアバンドル)

 出典 

 外部リンク 
  公式ウェブサイト
 mean.io 
 @IT - MEANスタックで始めるWebアプリ開発入門

Category:ソリューションスタック
Category:ウェブアプリケーションフレームワーク
Category:JavaScript