ユーザーの挑戦

フリーAPサーバで音楽ダウンロードサイトを構築


羽生章洋
有限会社エア・ビート
取締役兼CEO
2001/1/24

後編 バーチャル組織で成功した理由と「Enhydra」の優位性


 

開発の手順はどうなる?

 では、今度は実際にKelpによってJBuilderを活用してEnhydraアプリケーションを作成する場合の手順について簡単に説明しましょう。

(1)Enhydraアプリケーションの作成

  1. JBuilderを起動します。
  2. Enhydraアプリケーション格納用のフォルダを1つ作成します。
  3. [ファイル|新規プロジェクト]でJBuilderプロジェクトを、そのフォルダ内に保存します。
  4. [ファイル|新規]を選択します。オブジェクトギャラリーが表示されるので、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>
<HEAD>
<TITLE>Welcome to project!</TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">>
<CENTER><TABLE SUMMARY="Welcome.html"><TR>
<TD><A HREF=http://www.enhydra.org/><IMG SRC=media/Enhydra.gif WIDTH=200 BORDER=0
ALT="Enhydra.gif"></A></TD>
<TD><H1>Welcome to project2!</H1>

<BR><H3><SPAN ID= “SubTitle”>A Simple Enhydra Application</SPAN> </H3></TD></TR> 
<TR><TD COLSPAN=2><CENTER>The current time is <span id="Time">
1/1/00 00:00:00 Oh no!</span>.</CENTER></TD></TR>
<TR><TD COLSPAN=2><CENTER><A HREF=Redirect.po>Sample redirect back to here</A>
</CENTER>.</TD></TR>
</TABLE>

</CENTER>


</BODY>
</HTML>

(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.java
package Welcome.presentation;

import java.util.Date;
import com.lutris.xml.xmlc.*;
import com.lutris.appserver.server.httpPresentation.*;


public class Welcome implements HttpPresentation {


public void run(HttpPresentationComms comms)  ……A
throws HttpPresentationException {


String now = new Date().toString();
WelcomeHTML welcome = (WelcomeHTML)comms.xmlcFactory.create(WelcomeHTML.class); ……B
welcome.setTextTime(now); ……C
welcome.setTextSubTitle("かんたんなEnhydraアプリケーション"); ……C
comms.response.writeHTML(welcome); ……D
}
}

 まず、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を評価中で、今後積極的に利用していく予定です。

遠隔地に離れたメンバー同士で開発

Index
フリーAPサーバで音楽ダウンロードサイトを構築(後編)
  「Enhydra」の開発スタイル
 
PCとは何か?
 XMLC、その利便性
 Javaで作られているメリット 
開発の手順はどうなる?
 (1)Enhydraアプリケーションの作成
 (2)ID属性の埋め込み
 (3)XMLCコンパイル
 (4)POの作成
  遠隔地に離れたメンバー同士で開発
 デザイナーとプログラマの完全分業
 わずか3ヶ月間で構築を終了
フリーAPサーバで音楽ダウンロードサイトを構築
(前編 アプリケーションサーバ「Enhydra」で挑戦)



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間