|
Seasar2とは何か
Seasarとは?
Seasarとは、沖縄の方言で「狛犬(こまいぬ)」を意味します。 オープンソースプロダクトで成功するにも、ネーミングとキャラクターが重要だとして沖縄出身の開発者である「ひがやすを氏」が命名しました。ひがやすを氏によると、既にGoogleで検索結果件数が多いようなプロダクト名は、リリース後に、ぐぐらびりてぃが悪くなる(本当に知りたい情報にたどり着くのが難しくなる)ので避けた方が良いとのことでした。 Seasar2とは?
Seasar2はDI (Dependency Injection:依存性の注入)とAOP (Aspect Oriented Programming:アスペクト指向プログラミング )をサポートするオープンソースの軽量コンテナです。S2Containerと呼ばれることもあります。他のライバルの軽量コンテナと総合的に比較しても、実力が世界レベルにあると言えます。 Seasar2を使うことで高品質なWeb+DBアプリケーションを効率良く開発することができます。この『高品質』というのがポイントであり、従来高いスキルを持ったエンジニアでなければ手を付けることが難しかった領域をとても手軽に扱うことができます。 開発しているのが日本人ですから、ドキュメントが日本語であると利用しやすいものです。 Seasarプロジェクトとは?
正式名は「The Seasar Project」。(http://www.seasar.org/) プロダクトの開発者であるコミッターの人数だけをみれば、アジア最大のオープンソースコミュニティとも言われています。 Seasarプロジェクトは、コミッターのブログやメーリングリスト、そして、イベントを通じて、ユーザの声が反映されやすい形式で活動が進められています。 Seasarファウンデーションとは?
Seasarプロジェクトなどの国内オープンソースソフトウェア開発コミュニティを 裏方で支援する役割の特定非営利活動法人です。(http://www.seasarfoundation.org/) 組織の運営には何かとコストが掛かりますが、その受取先が個人や任意団体、企業の場合様々な問題が生じてしまいます。このような背景を考慮すると、特定非営利活動法人というのは、オープンソースコミュニティの実状にマッチした組織形態であるといえます。 主要ソフトウェア(プロダクト群)
Javaだけでなく、.NET FrameworkやPHPのプロダクトも存在します。プロダクトは、本体プロダクトとSandBoxと呼ばれる実験的なプロダクトに大きく分類されます。SandBoxを卒業して本体プロダクトに昇格する仕組みも存在しています。 (このあたりはThe Apache Software Foundation(ASF)のJakartaプロジェクトの仕組みと 似ています。以前は Jakarta Strutsだったものが、Apache Strutsに格上げされるそれと同じです。) 私が数多くのプロダクトから主要なプロダクトを厳選すれば、次のようになります。
『Chura』は厳密な意味でプロダクトと言えないかも知れません。画面からDBまでを一貫した設計思想の元にプロダクトの組み合わせの最適解、および、その利用方法をパッケージングして提供しているものと言えます。 紹介される機会は少ないのですが、個人的にTomcatの起動を早くする『舞姫』は実務家にとって必須のツールと考えています。 Seasar2(S2Container)は、DIとAOP以外にも下記のような機能を含んでいます。
ちなみに、Seasar2の利用ユーザーの大半はS2Daoを利用しているので、S2DaoですらS2Container に統合することも検討・議論がされたこともあるようです。統合化によって得られるメリットも多いのですが、単独で機能を使いたい場合に困ると考えているユーザーもいるようです。 基本的にSeasar2のプロダクトを利用するにあたっては、DIとAOPの考え方は押さえておいたほうがいいと思います。 メリットと特徴
以下にSeasar2を利用する際のメリットや特徴をあげてみました。 設定ファイルをほとんど書かなくても良い
パッケージ構成やクラス名、メソッド名を名前規約に従うことで、ソースコードはシンプルだが XML地獄と呼ばれるXML形式の設定ファイルを作成・メンテナンスに苦労することから解消されます。また、規約に従うことで、プロジェクトごとに策定されるローカルな規約の量が減ります。これは、社内アーキテクトの仕事量を減らし、プロジェクト間のアーキテクチャーや品質のバラつきを少なくし、プロジェクトへの人員投入も容易になる2次的なメリットもあります。 ソースコードを変更しても再起動不要でサクサク開発ができる
Seasar 2.4から導入されたHotDeployと呼ばれるブラウザのリロードでソースコードの変更が反映される機能です。一度、体験すると従来のようにソースコードを1文字でも修正したらサーバー再起動というストレスのたまる世界には戻れません。Eclipseベースで開発をすると静的なエラーチェックやメソッド名などのコード入力補完機能が使えるので、スクリプト言語のサクサク感以上の恩恵があるのではないでしょうか。 開発者とユーザーの距離が近い
ブログやメーリングリスト、イベントを通じて行うコミュニケーションが日本語であることで従来の海外プロダクトにはみられないユーザーと開発者の良好な関係構築ができつつあると言えます。例えば、コミッターのブログを定期的にチェックしていると徐々にコミッターの設計思想が理解できるようになるでしょう。その上で、プロダクトを利用するのとそうでないのとでは、プロダクトの活用で大きく差が出ます。英語の壁でオープンソースコミュニティーのパワーを実感することが難しい我々日本人にとってはとても貴重な機会に思えます。 ヒーローが存在する
最近は、格闘技人気が強く、プロレスが押され気味であるが、観客としてどちらが面白いかは競技のルールではなく、ヒーローの存在が大きな要因である、という話を聞いたことがあります。 オープンソースの世界にも、これに似たものを感じます。つまり、プロダクトやコミュニティの良し悪しも、つまるところ、ヒーローの存在が大きいのではないかと。(結局は人ということでしょうか。) Seasarコミュニティーには、ひがやすを氏というヒーローが他の優秀な技術者を引き付けており、これが今日のコミュニティーの活力に繋がっているのだと思います。 SI業界の現場で役立つことを強く意識
「SI業界の現場で役立つ」ことが強く意識されていることは、一見すると当たり前のように思えますが、実は非常に重要なコンセプトだと思います。「打倒EJB」や「シンプル」というコンセプトと比べて、ユーザー側はより恩恵が受けやすく、開発者側はより進化の手を休めないスタイルを確立しつつあるのではないかと思われます。実際にSeasar2を導入してみると、実に痒いところに手が届く工夫が盛り込まれているのが実感できることでしょう。 まとめ
Chura(Seasar 2.4 + Teeda + Dolteng)のデモ
いかがでしょうか?これまでSeasar2の概要を説明させて頂きましたが、やはり実際のソースコードを見ないと、実感が沸かない方も多いと思われます。そこで Chura(Seasar 2.4 + Teeda + Dolteng)によるHello Worldのデモを用意しました。デモの内容は次の通りです。
以下の図をクリックしてご覧ください。(別ウィンドウが開きます。) 次回
次回は、各プロダクトの詳細な説明、及び、各プロダクトの組み合わせに関する説明をさせて頂きます。
|


出羽健一(でわけんいち)




