Upload
ngoc-dao
View
3.864
Download
0
Embed Size (px)
DESCRIPTION
Introduction about Nitrogen Web Framework
Citation preview
Nitrogen
Erlangのウェブフレームワーク
ダオ ゴック タン2009/4/15
特徴
• 規約のかげで設定が少ない• サーバー側 : イベント( Ajaxまたは Cometによる ViewとControllerとの間の通信)のサポートが強い
• ブラウザ側 :jQuery、 jQuery UI、 LiveValidateデータバインディング
• Viewテンプレート:作りやすい、使いやすい• Inets、Mochiweb、 Yaws上で実行可
ソースコード
http://github.com/rklophaus/nitrogen/graphs/languages
Shell:少ないJavaScript:〜 Erlang
イベント・モデル
Button1Button1
Button2Button2
( JavaScriptのイベント)通信: Ajax/Cometデータ: JSON
(リスポンス、 Cometのイベント)
通信: Ajax/Cometデータ: JSONコード: JavaScript
ブラウザ側
サーバー側
Button3Button3
データ検証データバインディングUIアップデートUIアニメーション効果ドラグ&ドロップ…
http://voodootikigod.com/2008/10/02/ajax-head-design-pattern/
View Controller
流れ
ウェブサーバー (Inets/Mochiweb/Yaws)ウェブサーバー (Inets/Mochiweb/Yaws)
wf_inets:do/wf_mochiweb:loop/wf_yaws:outwf_inets:do/wf_mochiweb:loop/wf_yaws:out
PageModule = wf_platform:route(URL)URLが /web/blogs → PageModuleが web_blogsにな
る
PageModule = wf_platform:route(URL)URLが /web/blogs → PageModuleが web_blogsにな
る
リクエストを処理するプロセスの dictionaryをリセット
(1リクエスト → 1処理プロセス )
リクエストを処理するプロセスの dictionaryをリセット
(1リクエスト → 1処理プロセス )
PageModule:mainPageModule:main
PageModule:event(EventTag)PageModule:event(EventTag)
wf_platform:build_responsedictionaryにあるものからリスポンスを生成
wf_platform:build_responsedictionaryにあるものからリスポンスを生成
フレームワーク
Postbackリクエスト(Ajax/Comet)
普通リクエスト
アプリケーション:wf: xxx関数を呼び出す
wf: xxx関数が dictionaryにコンテンツや headerなどをセットする
リクエスト
リスポンス
wfモジュル
wf_utils文字列のフォマット
wf_utils文字列のフォマット
wf_platformサーバータイプに依存するもの: cookie
など
wf_platformサーバータイプに依存するもの: cookie
など
wf_sessionセッションの管理
wf_sessionセッションの管理
wf_bindデータバインディン
グ
wf_bindデータバインディン
グ
wf_pathHTMLエレメントの id
の生成
wf_pathHTMLエレメントの id
の生成wf_convert
HTMLエンコードなどwf_convert
HTMLエンコードなど
wf_renderHTML、 JavaScriptの生
成
wf_renderHTML、 JavaScriptの生
成
wf_cometwf_comet
wf他のモジュルに
delegateする
wf他のモジュルに
delegateする
……
活動
• 2008〜• HP: http://nitrogenproject.com/• メーリング・リスト :
http://groups.google.com/group/nitrogenweb142メンバー〜 8通 /ー日
ソースコードのコミット
http://github.com/rklophaus/nitrogen/graphs/impact
問題点
(普通ウェブ開発者にとっての順番 )• DB layerなし• RESTなし• i18nなし• HTMLコンテンツ・キャッシュ(ページ・キャッシュ、フラグメント・キャッシュ)なし
• SOAPなし