【レポート】

オープンソースカンファレンス2005 Tokyo/Fall - JavaServer Templates「Maya」

2 Mayaの特徴と効果

    後藤大地  [2005/09/26]

    Mayaの特徴

    Mayaの特徴は、HTMLによる表示と処理のロジックが分離している点にある。たとえばプレゼンテーション層の代表的な技術であるJSPは、HTML文書にロジックを埋め込むし、それはPHPでもJavaScriptでも同じだ。MayaではHTML文書による表示と処理のロジックが、HTML文書とXML設定ファイルの2つに分離している。HTML文書は通常のHTML文書であり、XML設定ファイルはJSPのようなタグ形式の記述になっている。HTML文書とXML設定ファイルから、実際にブラウザに表示されるHTML文書が動的に生成される仕組みになっている。

    ロジックとデザインの分離

    Mayaのもうひとつの特徴は、HTML文書とXML設定ファイルを関連づける方法として、いくつかの方法が提供されている点にある。複数の方法を提供することで状況に応じた方法が採用できる。idを指定する方法はHTML文書への編集が必要になるが、XPathを使ってインジェクションを行う場合は、HTML文書への編集を行わなくとも、設定ファイルの編集のみでロジックを適用することができる。ロジックはHTML文書のほうに組み込むことも可能だ。

    テンプレートへのインジェクション id

    テンプレートへのインジェクション XPath

    テンプレートへのインジェクション情報の埋め込み

    取り上げるべきMayaの特徴はほかにもいくつかある。XML設定ファイルはそのままに、HTML文書の方を動的に切り替える機能なども便利だ。ブラウザの言語設定によって使用するHTML文書を変更したり、ブラウザの種類によって使用するHTML文書を変更したりといったことができる。携帯電話ごとにHTML文書を変更する場合などに重宝する機能だ。

    テンプレートの動的切り替え

    HTML文書のテンプレート化機能や、HTML文書の継承なども興味深い機能だ。どちらもHTML文書の再利用に役立つ。HTML文書のテンプレート化は、HTML文書をコンポーネントとして使い回すことができる機能で、継承機能はHTML文書を継承してヘッダとフッタはそのままに本文だけを書き換えるといった場合に使うことができる。

    HTML文書のコンポーネント化

    HTML文書の継承

    Mayaの効果

    Mayaを採用した場合のもっとも大きな効果は、HTMLの作成と、ビジネスロジックの作成を完全に分離担当できる点にある。HTML文書の作成はWebデザイナが担当し、ビジネスロジックはWebプログラマが担当する。両者のインジェクションをMaya技術者かWebプログラマが担当する。これまでの技術ではHTML文書にフックをいれるといった編集が必要だったが、Mayaではそこも分離することができる。


    Mayaと周辺技術の関係例

    そしてもう一点注目するべきは、Mayaはほかのテクノロジーのように設計思想やそういったものを背景として一辺倒のスタイルを提供しているものではなく、多くの手段を提供している点にある。idを指定して確実にインジェクションしたければそうできるし、HTML文書にロジックを埋め込みたければそれもできる。複数名で分散開発する用途にも採用できるし、一人ですべて開発するスタイルにも適用できる。この懐の広さがMayaの魅力だ。

    Mayaの開発スタイル

    そして注目するべきは、MayaではJavaを書く必要がないということだ。MayaはJavaテクノロジーをベースにして構築された技術だが、それを使うにあたってJavaを書く必要はない。表示はHTML文書であり、ロジックはJavaScriptを使う。どちらも既存の広く使われている技術だ。もちろんJavaを使うこともできる。

    しかもMayaはSeasar2プロダクトに依存したプロダクトではなく、それ単体でほかのテクノロジーと組み合わせて使うことができる。表示はMaya、ロジックはJavaScript、バックエンドはStrutsといった組合わせも可能だ。従来のシステムへの導入も行いやすい。

    栗原氏からは、StrutsをMayaに書き換えるにはどうすればよいかという指針の紹介もあった。まず、JSPの部分をHTML文書にする。JSPカスタムタグをXML設定ファイルに置き換える。次に、フォワードの指定をJSPファイルからHTMLファイルに変更する。もちろん、JSPとも混在が可能であるため、必要に応じて導入するといったことも可能だ。

    今後の展望

    Mayaは11月までに1.0.0のリリースが予定されている。設計や実装の大半はすでに目処がついており、あとは不足しているドキュメントや作成したドキュメントの英訳作業が残っているという。来年の3月には、Mayaの事業成果が最終的にリリースされる予定だ。

    栗原氏は、将来的にライセンスを現在のApache Lisence Version 1.1に類似したライセンスから、Apache Lisence Version 2.0のライセンスそのものや、BSDライセンスのような企業とタイアップしても扱いやすいライセンスに変更することを考えているということも紹介した。今後どのようなライセンスを採択するかはまだわからないが、APL2やBSD Licenseのようなライセンスになるだろうということだ。

    日本人技術者は英語が苦手な人も少なくないため、国内発技術は資料が日本語で手に入りやすいという点でも需要が多い。Mayaはそうした技術のひとつだ。JSPやVelocityが英語資料ゆえに難しいと感じている技術者はMayaの採用を検討してみるのもいいだろう。

    アプリケーションにせよフレームワークにせよ、日本は輸出入ベースで大きな格差を抱えている。ソフトウェアに関してはまったくの依存体質だといわれている。それはオープンソースソフトウェアにおいても同じで、日本発の技術は少なく、多くの重要なテクノロジーが海外で開発された技術に依存している状況だ。そうしたなか、Mayaのような国内発の技術は珍しい。今後も注目する価値があるといえるだろう。

    関連記事

    関連サイト

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン