ユーザーの挑戦
フリーAPサーバで音楽ダウンロードサイトを構築
羽生章洋
有限会社エア・ビート
取締役兼CEO
2001/1/24
後編 バーチャル組織で成功した理由と「Enhydra」の優位性
|
開発の手順はどうなる? |
では、今度は実際にKelpによってJBuilderを活用してEnhydraアプリケーションを作成する場合の手順について簡単に説明しましょう。
(1)Enhydraアプリケーションの作成
- JBuilderを起動します。
- Enhydraアプリケーション格納用のフォルダを1つ作成します。
- [ファイル|新規プロジェクト]でJBuilderプロジェクトを、そのフォルダ内に保存します。
- [ファイル|新規]を選択します。オブジェクトギャラリーが表示されるので、Enhydraタグをクリックし「Enhydra Application」を選択します(図1)。
図1 |
これで、Enhydraアプリケーションが作成されました。プロジェクトペインを見ると、いくつかのフォルダやファイルが追加されたことが分かります。まずは、Enhydraアプリケーションのサンプルプログラム(Welcome)を利用して、簡単なPOの作成方法について、説明していきます。
(2)ID属性の埋め込み
Presentationフォルダの中から、Welcome.htmlを選択します。内容ペインには、Welcome.htmlのプレビューイメージが表示されます。ファイルビュータブの「ソース」を選択すると、今度は内容ペインにHTMLコードが表示されます(リスト1)。ID属性を作成してみましょう。ID属性の記述は以下のように行います。
<SPAN ID= "SubTitle">A
Simple Enhydra Application</SPAN> |
リスト1 Welcome.html
<HTML> <CENTER><TABLE
SUMMARY="Welcome.html"><TR> |
(3) XMLCコンパイル
[ウィザード|XMLC Compiler]を選択して、XMLC Compilerを表示します。Available Pages in Project よりコンパイルするページ(Welcome.html)を選択し、Selected Pages to Compileに加え、Compileボタンをクリックします。Outputにコンパイルメッセージが表示されます(図2)。HTMLのタグ構造にエラーがなければ、Javaファイル(WelcomeHTML.java) が生成されます。これが元となったHTMLファイルと同じものを生成するためのクラスになります。
図2 |
(4) POの作成
プロジェクトペインより、Welcome.javaファイルをダブルクリックし、コードを内容ペインに表示します。ID属性の部分を置き換えるコードを記述します。
welcome.setTextSubTitle("かんたんなEnhydraアプリケーション"); |
Welcome.javaは、プレゼンテーションオブジェクト(PO)です。URLで、http://localhost:9000/Welcome.poが要求されたときに、Welcome.javaが実行されます。
それでは、プログラムを順に見ていきましょう(リスト2)。
リスト2 Welcome.javapackage Welcome.presentation;
|
まず、POはrunメソッドで開始します(A)。Welcome.htmlよりXMLCコンパイルの際に生成された、WelcomeHTMLオブジェクトのインスタンスを取得しています(B)。(C)では、SPANタグの内容を置き換えています。HTMLをクライアントに返します(D)。
メニューより[実行|プロジェクトの実行]を選択し、プログラムを実行します。ビルド後、Enhydra maltiserverが起動します(メッセージペインに「All rightreserved」と表示されたら、maltiserver起動完了です)。ブラウザで、URLにhttp://localhost:9000/Welcome.poを指定します。ID属性の内容が「かんたんなEnhydraアプリケーション」に書き換わっていることが分かります(図3)。
図3 |
テストを行う場合には、JBuilderのデバッガを利用してプログラムをデバッグモードで実行することもできます。
このように、非常に簡単にまるでJBuilderの標準機能であるかのようにEnhydraを扱うことができるので、プロジェクト全体のソースコードの見通しも良くなります。すでに書いたとおりこれらの内容はすべてJBuilderのFoundation版、つまり無償配布されているもので実現できます。ですから、アプリケーションサーバに興味はあるがいきなり購入するのは躊躇してしまうような場合でも、気軽にお試しいただけると思います。
なお、私たちはID属性を操作するためのメソッドをカプセル化して、例えばデータベースの検索結果の配列を引数に渡してやれば、そのままHTMLテーブルにしてくれるなどの汎用的なクラスを最初の段階で作成しました。ですから例えば楽曲一覧のような画面もHTMLファイルにはID属性が1つあるだけで、列や行などの定義はすべて汎用クラスのメソッド内で行うようにしてあります。これは非常に生産性を向上させることができました。このあたりにJavaのオブジェクト指向プログラミングによる生産性向上の恩恵を感じることができます。そして同じようなことはやはりだれもが考えるわけで、enhydra.orgでもすでにBARRACUDA(旧称ROCKS)と呼ばれるサブプロジェクトが、こういった汎用クラスやWebアプリケーションイベントモデルの実装を進めています。私どもも現在BARRACUDAのPR1を評価中で、今後積極的に利用していく予定です。
遠隔地に離れたメンバー同士で開発 |
|
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|