Javaのプレゼンテーション層フレームワークであるサーバサイドDHTMLエンジン"Sarugau JS"(さるごー じぇいえす)をオープンソースで公開します。
Sarugau(さるごー) http://www.sarugau.org
別エントリしますが、24日発売のDBマガジンには、こいつの紹介記事を寄稿しました。実績がないフレームワークを、コンセプトだけで共感いただいて記事にさせていただきました。DBマガジン編集部に感謝しています。
Sarugau/Sarugau JSとは何か
詳しいことはサイトに書かれていますが、Sarugauは「共創」をテーマにしたアプリケーション・フレームワーク群をしめす名称です。その第一弾としてSarugau JSをリリースします。
Sarugau JSは「ビジュアル・デザインがかっちょいいサイトをもっと簡単に作れないのか?」という要求から、デザイナー・HTMLコーダーとエンジニアが、うまく協業できるWebアプリケーション・フレームワークが欲しいというコンセプトから始まりました。
すぐに考えたのがTapestry、Mayaa、Wicketに代表されるPOHP(Plain Old HTML Page) のテンプレートエンジンです。しかし、それらは、あくまでもJavaエンジニアが使うものです。
HTMLがテンプレートになるのはもとより、画面上のレンダリングやデータ加工そのものからビジュアル・デザインの専門家に渡したら何が起きるのか?と考えました。
そこでヘビーユーザー(ライトデベロッパー)が使えるであろうJavaScrpitを、Java上で動かす"サーバサイドDHTML"というアイデアにたどり着いたのです。おりしもAjaxブームによってJavaScriptが見直されている時期でもあり、かなり面白い取り組みとなりました。prototype.jsの$('hoge')とかがサーバサイドで動きます。
Java内でのマルチ言語を実現
このブログを読んでいるようなJavaデベロッパー向けの萌えポイントとしてはJava上でのマルチ言語の実現があると思います。
従来、アプリケーションはJava言語とXMLで実装していましたが、これにJavaScript言語が加わります(実装はRhinoを使っています)。しかもJavaScript上からDIコンテナへのルックアップをグローバル変数かのように記述できるようにしてあります。こんな感じです。
var list = services.mydao.findByPk('aaa');
こうすることでJava言語、JavaScript言語、XMLという3つの言語を目的に応じて使い分けることが可能になっています。サービスを利用する側はスクリプト言語、サービス提供する側はJava、その間をつなぐのがXML(DOM/DIの設定ファイル)というのが1つのVM内で見ることができます。詳しくはこちら。
なお、既に2つの案件に採用しており実運用にも入っています。まだまだ実装テクニックの洗練は必要ですが問題なく動いている状態です。
現在は、様々な事情からサイトにコミュニティ機能がないので、なにか質問やご意見、説明が聞きたいなどありましたらコメント、トラバ、yusuke[あっと]arclamp.jpなどで連絡ください。
