本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。プロフィールで選択した情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

EclipseのAjax Toolkit FrameworkにAjaxをもたらす2つのツール

DojoとZimbra

Tim McIntire (tim949@gmail.com), Software Engineer and HPC Cluster Architect, Freelance Developer
Tim McIntireは、コンピューター・サイエンスの様々な分野のコンサルタントとして働いています。彼の研究はこれまで、Concurrency and ComputationやIEEE Transactions on Geoscience and Remote Sensingの中で発表されてきました。また彼は、Rocksクラスター統合とHPCコンサルティングのマーケット・リーダーである、Cluster Corp.の共同設立者でもあります。以前は、Scripps Institution of OceanographyのDigital Image Analysis Labにてコンピューター・サイエンスに関する作業に従事していました。またNASAの後援によるPIPE(Parallel Image Processing Environment)での彼の成果は、コンピューター・サイエンスの雑誌、EnVisionの、Rocksクラスター・ソフトウェアに関する記事の中で取り上げられています。

概要: IBMは、新しいOpen Ajax Initiativeの開始に貢献しています。その目的は、Eclipse Foundationによる強力なWebプログラミング手法を、より一層使いやすくすることです。この記事では、この新しいツールセットに対して開発者が準備できるように、2つの既存ランタイム・ツールであるDojoとZimbraを紹介します。これらは、ATF(Ajax Toolkit Framework)でサポートされるものです。

日付:  2006年 5月 09日
レベル:  中級 この記事の原文:  英語
アクティビティー: 2379 ビュー
お気軽にご意見・ご感想をお寄せください: 


Open Ajax Initiative(Ajax : Asynchronous JavaScript and XML)を支えるパートナー各社は、開発者が協力し合うためのオープンなプラットフォームを構築することによって、コミュニティーの強化を図っています。Open Ajax Initiativeを発足させたメンバー会社、つまりBEA Systems、Borland Software、the Dojo Foundation、the Eclipse Foundation、Google、IBM、Laszlo Systems、Mozilla、Novell、Openwave Systems、Oracle、Red Hat、Yahoo!、Zend Technologies、Zimbraの各社は、成長しつつあるAjax開発者のコミュニティーにとって、新しいツールを導入することが非常に重要であることを認識しています。これらの会社の努力により、新たな、あるいは既存の環境の中に応答性の高いUI(user interface)を構築しようとする開発者は、様々な種類のツールを利用できるようになりました。Eclipseの持つ、統一されたインターフェースと高度なデバッグ機能によって、エンタープライズ・クラスのコーディング環境が、このコミュニティーにもたらされたのです。そしてEclipseのATFによって、DojoとZimbraが提供するツールキットを手軽に利用できるようになります。

これらの各社は、「Webには、さらなる命がある」というメッセージを伝えるためには、Open Ajaxを強力に支持することが重要だと信じています。Open Ajax Initiativeは、Web全般の健全性に向けて前向きなことをするための運動なのです。

注意: Open Ajax Initiativeとは何かについては、参考文献に挙げた発表資料を見てください。

Eclipse ATF

Eclipse Foundationはオープンソース開発を導く役割を果たしており、また強力なアプリケーション・フレームワークでもあります。そしてEclipseはJava™ベースのオープンソース開発プラットフォームであり、非常に拡張性に富み、また任意の主要プラットフォームにデプロイすることができます。

Eclipse Foundationは、Open Ajax Initiativeの一部として、ATFを構築しています。ATFは、ランタイム環境(DojoやZimbraなど)に対する拡張可能なフレームワークです。またATFは、Open Ajax Initiativeの一部であるツールを統合する、中央コンポーネントとしても動作します。ATFの初期バージョンは、IBMのalphaWorksから入手することができます(参考文献を見てください)。

Eclipse Web Tools Projectに基づくATFは、IDE(independent development environment)を構築するためのツールを備えており、その機能には、実行時での構文チェックや、埋め込みのJavaScriptデバッガーやDOM(Document Object Model)ブラウザー、Mozilla Webブラウザーなどが含まれています。ATFによって、これまであまり機能の豊富でなかったオープンソース開発ツールに対して、多くの開発者が安心して作業できるエンタープライズ・スタイルの開発環境を整えることができます。このチュートリアルでは、利用可能なAjaxツールとして最も高機能で成熟した、DojoとZimbraに焦点を当てます。図1は、Open Ajax Initiativeを構成するコンポーネントと、そうしたコンポーネントとATFとの関係を示しています。


図1. Open Ajax Initiativeのコンポーネント
図1. Open Ajax Initiativeのコンポーネント


Dojo

Open Ajax Initiativeで使用されるツールを採用する準備として、ATFがサポートするツールキットに慣れておく必要があります。そうしたツールキットの一例がDojoとZimbraです。

Dojoは、JavaScriptコミュニティーとDHTML(Dynamic Hypertext Markup Language)コミュニティーによる努力を、標準のJavaScriptライブラリーを構築することで方向統一しようというコミュニティー・プロジェクトです。このコミュニティーでは、開発者が協力して作業しない限り充分なことができないことを認識し、それまでにあった3つの別々なツールキットを統一してDojo Foundationを設立しました(Dojo Foundationはコードを所有し、維持管理しています)。Dojoには、幾つかのオプション・パッケージがあります。例えばAjax版とI/O版の他、ツールキット全体を含んだ「Kitchen Sink(ごた混ぜ)」版もあります。

Dojoを使い始めるには、単純に下記の5つのパッケージの1つをダウンロードするだけです。

  • Ajax: Ajax版は、非同期I/O(XmlHttp)を行うアプリケーションを作成する場合、複雑な視覚効果を統合する場合、アスペクト指向のイベント・システムを使用する場合に使用します。
  • I/O(XmlHttp): I/O(XmlHttp)版はdojo.io.bindによって構築されているため、XmlHttpレイヤーを使って非同期I/Oを行うことができます。
  • Event + I/O: このパッケージには、Dojoのアスペクト指向イベント・システムとXmlHttpレイヤーが含まれています。
  • Widgets: このパッケージには、ウィジェット実装と疎結合された、HTML機能とCSS(Cascading Style Sheet)テンプレート機能が含まれており、スタイルと内容、ロジックを明確に分離することができます。
  • 「Kitchen Sink(ごた混ぜ)」: このビルドには、Dojoライブラリーがすべて含まれています。

Dojoをインストールする

適当なDojoパッケージを選択してダウンロードし、解凍します。下記のファイルを、ルートWebディレクトリーに移動します(サンプルの意味で、helloworld.htmlファイルを追加します)。

  • dojo.js
  • iframe_history.html
  • src (directory)
  • helloworld.html

Dojoファイルへのパスを記述した1ラインを .htmlファイルに追加します。


<script type="text/javascript" src="path/to/dojo/dojo.js"></script>

これで、DojoライブラリーとウィジェットをJavaScriptの中に自由にロードすることができます(詳細については参考文献を見てください)。

単純なDojoの例

では、ある1つのボタンを押す毎にデバッグ・プロセスによって「Hello World!」を出力する単純な例を試してみましょう。そのために、helloworld.htmlを編集します。リスト1に示す最初のコード部分がdojo.jsに対するパスを設定し、デバッグ・モードをオンにします。これで出力をテストすることができます。


リスト1. 「Hello World!」を出力する単純な例
                
<html>
<head>
<script type="text/javascript">
djConfig = { isDebug: true };
<script>

<script type="text/javascript" src="./dojo.js"></script>

Button2ウィジェットと「イベント」を使って、helloPressedファンクションをコールアウトします。


リスト2. Button2ウィジェットと「イベント」を使ってhelloPressedファンクションをコールアウトする
                
<!-- DOJO EXECUTION -->
<script type="text/javascript">
dojo.require("dojo.widget.Button2");
dojo.require("dojo.event.*");


helloPressedファンクションは単純にdojo.debugをコールし、「Hello World!」というメッセージを出力します。

function helloPressed()
{
dojo.debug('Hello World!');
}


下記はinitファンクションです。initファンクションは、helloButtonとDojoウィジェットを関連付けます。2ライン目の記述は、Press Meをクリックした時にhelloPressedファンクションを呼ぶように指示しています。

function init()
{
  var helloButton = dojo.widget.byId('helloButton');
  dojo.event.connect(helloButton, 'onClick', 'helloPressed');
}


下記のラインは、最初のページをロードする際にinitファンクションを実行します。

dojo.addOnLoad(init);


最後に、このHTMLのボディーは実際のボタンを含んでいます。このボタンには、上記のJavaScriptと関連付けるためのtypeとIdが与えられています。


リスト3. 上記のJavaScriptとIDを関連付ける
                
</script>
</head>

<body>
<button dojoType="Button2" widgetId="helloButton">Press Me</button>
</body>
</html>


図2は、Press Meをクリックすると「Hello World!」Dojoアプリケーションが出力する様子を示しています。


図2.「Hello World!」Dojoアプリケーションの出力
図2.「Hello World!」Dojoアプリケーションの出力

HelloWorldの例の詳細は、Dojoのwikiに説明されています(参考文献を見てください)。

Dojoでは、強力で、しかも増大しつつあるウィジェット・セットが提供されています。そのため、既存のWebページに小さなAjaxコード断片を容易に統合することができ、またデスクトップ環境に見られるようなUI効果を容易に追加することもできます。また上級ユーザーに対しては、他のツールでは見られないような機能が提供されています。例えば、デプロイ用にプロジェクトを素早く最適化できるように、パッケージングやビルドのシステムが含まれています。Dojoは、どのようなレベルの開発者にとっても、素晴らしいソリューションと言うことができます。

DojoをEclipseに統合するATFが導入されることによって、グラフィカルなコーディング環境が提供され、また他のEclipseプラグインも利用できるようになるため、こうした機能はエンタープライズ・クラスにまで高められます。EclipseでのDojoの初期デモに関しては、参考文献を見てください。



Zimbra Ajax Toolkit

Zimbraは、Zimbra AjaxTK(Ajax Toolkit)にオープン・アクセスできるようにすることでOpen Ajax Initiativeに貢献しています。ZimbraはAjaxTKを使うことによって、私達がWebページとして考えるものの限界を押し広げています。つまりエンタープライズ・クラスのeメールやカレンダー、連絡先管理などを含む、完全なZimbra Collaboration Suiteを開発しているのです。AjaxTKによって、Webベースのアプリケーションと標準のデスクトップ・ベース・アプリケーションとの応答性のギャップは、ほとんどゼロになります。図3は、ZimbraのCollaboration Suiteに含まれているメール・アプリケーションを示しています。これはAjaxTKを使って開発されたものです。


図3. Zimbraのメール・アプリケーション
図3. Zimbraのメール・アプリケーション

図4は、Zimbraのカレンダー・アプリケーションを示しています。これもAjaxTKを使って開発されたものです。


図4. Zimbraのカレンダー・アプリケーション
図4. Zimbraのカレンダー・アプリケーション

この素晴らしいCollaboration Suiteを開発するためにZimbraが内部的に使用したものと同じAjaxツールが、公開されて利用できるようになっています。Ajax開発のために、オープンで非独自環境の持つ強みを生かすという信念から、この強力なツールが公開されているのです。

AjaxTKは、下記のソース・パッケージの上に構築されています。

  • config: コンフィギュレーション情報と、メッセージをローカライズするためのファイル
  • core: ベースとなる例外クラスと環境情報
  • debug: ランタイム・アプリケーション・デバッグのためのデバッグ・クラス
  • dwt: DHTML Widget Toolkitであり、下記を含んでいます。
    • config: CSSルールや画像、ローカライズされたテキスト
    • core: 例外処理と、下位レベルのDOMユーティリティー・ファンクション
    • dnd: ドラッグ・アンド・ドロップのサポート
    • events: ツールキットが使用し、また汎用のAjaxTKイベント・サポートに対して構築された、様々なイベント
    • graphics: 点や四角、CSSユーティリティーなど
    • widgets: DWTウィジェット・セットとサポート・クラス
    • xforms: 複雑なフォームを作成するためのXForms実装を提供します
  • events: ベース・イベントとイベント・リスナー・クラス、そしてイベントの登録とディスパッチに責任を持つイベント・マネージャー・クラス
  • net: ネットワーク・コミュニケーション
  • soap: SOAP文書処理
  • util: ストリング操作やクッキー管理、データ操作、据え置き(deferred)アクション・サポート、コールバック・サポートなどのタスクのためのユーティリティー・クラス
  • xml: XML文書処理

Zimbra Ajax Toolkitは、実世界にデプロイされている大規模で堅牢なアプリケーションに使われてきています。それを知れば、エンタープライズ開発者も安心できるでしょう。ZimbraのCollaboration Suiteには、13万ライン以上ものJavaScriptが含まれています。AjaxTKは、デスクトップ・アプリケーションの完全な置き換えを構築しようとする開発者を対象としています。もし皆さんが、Ajaxを使って既存のWebページを機能強化したいのであれば、恐らくDojoの方が適切でしょう。皆さんが何をしようとしているのかによって、その選択肢も変わってきます。

EclipseにAjaxTKをプラグインすると、表現力豊かなUIを開発するために一般的に必要となるコンポーネント(ツリーやボタン、リストなど)の実装は、ずっと容易に、迅速にできるようになります。またEclipseと統合することによって、強力なデバッグ・ツールやドラッグ・アンド・ドロップの合成などを含め、テーブル機能を強化することができます。Zimbraは、Open Ajax Initiativeのメンバー各社と協力しつつ、そしてオープンで非独自の技術をサポートしつつ、今後もAjaxを推進して行きます。



Open Ajax Initiativeの前進

Ajaxを採用することによって、Webの対話性や応答性は新しいレベルに到達します。またエンタープライズ・クラスの開発ツールの重要性は、今後もますます高まります。こうした進歩にとって、ATFとDojo、そしてZimbraは、鍵となるコンポーネントです。Webの利用者は、より良質な、より高速な、よりスムーズなWebアプリケーションを要求し続けます。そのため、UIの進歩やクロス・プラットフォームの互換性向上を促進するための、協力作業を行いやすい環境を維持するための負荷は、ツールキット開発者とブラウザー・メーカーにかかってきます。Open Ajax Initiativeそれ自体が、正にそうした目的のために構築されたフレームワークなのです。

Open Ajax Initiativeの進歩に合わせ、またATFの実現に対応するため、このシリーズも継続する予定です。そして、EclipseでAjaxアプリケーションを構築するための技術的な詳細とチュートリアルを紹介して行きます。


謝辞

この記事のために、Open Ajax Initiativeに関してコメントくださったAlex Russell(Dojo Foundationの設立者であり社長)と、Ross Dargahi(Zimbraの共同設立者であり、エンジニアリングの副社長)、そしてJohn Robb(Zimbraのマーケティングと製品管理の副社長)に深く感謝致します。



参考文献

学ぶために

製品や技術を入手するために

  • IBMのalphaWorksからAjax Toolkit Frameworkのアルファ版を入手してください。

  • AjaxTKである、Zimbra Ajax Toolkitをダウンロードしてください。

  • 皆さんの次期オープンソース開発プロジェクトを、IBM trial softwareを使って構築してください。ダウンロード、あるいはDVDで入手することができます。

議論するために

著者について

Tim McIntire

Tim McIntireは、コンピューター・サイエンスの様々な分野のコンサルタントとして働いています。彼の研究はこれまで、Concurrency and ComputationやIEEE Transactions on Geoscience and Remote Sensingの中で発表されてきました。また彼は、Rocksクラスター統合とHPCコンサルティングのマーケット・リーダーである、Cluster Corp.の共同設立者でもあります。以前は、Scripps Institution of OceanographyのDigital Image Analysis Labにてコンピューター・サイエンスに関する作業に従事していました。またNASAの後援によるPIPE(Parallel Image Processing Environment)での彼の成果は、コンピューター・サイエンスの雑誌、EnVisionの、Rocksクラスター・ソフトウェアに関する記事の中で取り上げられています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=236399
ArticleTitle=EclipseのAjax Toolkit FrameworkにAjaxをもたらす2つのツール
publish-date=05092006
author1-email=tim949@gmail.com
author1-email-cc=