SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

developerWorks Liaison(AD)

Web系開発のトレンドを牽引する
「IBM ソフトウェア・テクノロジー情報」(中編)

  • X ポスト
  • このエントリーをはてなブックマークに追加

豊富な機能でリッチなWebアプリの開発をサポートする「Dojoツールキット」

 オープンソースのJavaScriptライブラリ『Dojoツールキット』の情報を発信している野口氏は「RIA(Rich Internet Applications)と言うと、これまでFlashなどのようにプラグインを追加して実現していましたが、Ajaxが定着し、ブラウザの標準機能も向上している現在では、ピュアなブラウザの機能だけで実現できます。核となるのはJavaScriptですが、ブラウザごとの仕様の違いを吸収しながらコードをゼロから自前で書くのは大変ですので、ライブラリを活用してWebのフロントエンド開発の生産性を向上させます」と背景を語る。Dojoツールキットはメジャーなブラウザに対応し、iPhoneのSafari上で動作するWebアプリケーションも作れるという。

ソフトウェア開発研究所 WPLC開発&サービス 野口雅人 氏
野口氏:Dojoツールキット

 Dojoツールキットは、IBMが当初から持っていたコードをオープン化したEclipseとは違って、もともとあったプロジェクトにIBMが賛同したものだ。JavaScriptライブラリはほかにも『jQuery』や『prototype.js』などがあるが、IBMがDojoツールキットを選んだ理由は、大規模なアプリケーション開発を想定した豊富な機能を持っているからだという。JavaScriptの記述は、関数の集まりで、C言語に近い。Dojoツールキットはクラスを定義するフレームワークもあり、さらにそれを拡張したり多重継承したりと、C++やJavaに近いような一貫性のある言語機能を提供していると野口氏は説明した。

 ある程度規模の大きいアプリケーションの場合、複数のJavaScriptファイルを読み込んで各ファイルをお互いリンクさせるようなやり方では実現が難しくなり、機能のモジュール化が必要になる場面もある。Dojoツールキットの場合はモジュールごとの依存性を記述でき、その依存性に基づいた処理が可能だ。例えばあるモジュールを使いたい場合、それが中でほかのモジュールを使っているかどうかについて意識しなくていい。機能が豊富なため、ほかのライブラリと比較してコード量は多い。しかし、一部のモジュールしか利用しないのに大量のコードがロードされる必要はなく、スタートアップに必要なモジュールをパッケージ化して読み込んだり、遅延読み込みができたりするなど、パフォーマンス面での配慮もある。

 開発においての恩恵もみられる。これまで、JSPなどのサーバーサイドの技術を使う場合、フロントエンドのデザイナーと、実際にロジックを入れていくデベロッパーで同じファイルを扱う場合、デザインを変更する際、JSPのタグをデザイナーが壊してしまうケースなどは、非常に頭の痛い問題であった。しかし、標準的なHTMLとJavaScript、CSSというオープンな構成となっているため、デザイナーとデベロッパーがある程度切り分けて作業が可能になった。

 Dojoツールキットに対して、IBMのエンジニアが大きく寄与したのは、国際化とアクセシビリティだ。IBMの製品として出荷するには、10の言語をサポートしなければならないというルールがある。先日出荷したJazzのツールでは、Dojoツールキットの文字列部分(メッセージのラベルなど)を別ファイルにしてバンドルできる国際化の機能が役に立ったという。アクセシビリティについては、例えば、政府に納品するアプリケーションの場合は、すべての人が使えるようになっていないと不適格となる。以前は「JavaScriptがなくても動作する」といったこともアクセシビリティの条件となっていたが、現在では現実的ではなくなっており、W3CでもARIA(Accessible Rich Internet Applications)という仕様が登場して、Dojoツールキットはいち早く実装した。

 ほかに注目すべき点は、Widgetセットで、タブやアコーディオン形式、ツリー形式などのナビゲーション表示やデータグリッドやコンボボックス、テキスト入力時のサジェスト機能、円グラフ・棒グラフ・折れ線グラフなどのチャート機能といった基本的なツールはすべて揃っている。それらのツールをWidgetと組み合わせることで、例えば、クライアント側の操作でデータが変更された場合に、サーバと通信しないでブラウザ側の計算だけでグラフを変化できる。データグリッドがサーバ側のCSVやXMLのデータを読み込んで表示するAPIもあるので、データグリッドのWidgetを用意しておけば、データの読込先を変えることでいくつものデータを扱うこともできるという。

 表現力に関しては、線や矩形を書くといった二次元の描画やフェードインやフェードアウトなどPowerPointの書類に見られるような基本的なアニメーションも実装可能だ。ほかにもドラッグ&ドロップのモジュールを使った、デスクトップアプリケーションに近いようなWebアプリケーションも作れるといい、これらの機能を使ったアプリケーションを披露してくれた。

二次元グラフィックスやドラッグ&ドロップを使ったアプリケーション
保険業界向けに作られたアプリケーション

 以前のバージョンでは、動作が重いという問題もあったが、現在はほかのライブラリと遜色のないパフォーマンスになっている。Dojoツールキットが使われているサイトとしては、「Apple Store」の一部や「任天堂Games」「シャッフルカードじゃらん」などがあり、IBM製品で言うと、『IBM Mashup Center』『WebSphere sMash』やJazzのツールでも使われている。また『WebSphere Application Server』のユーザーには、Feature Pack for Web 2.0という形でDojoツールキットを無償提供している。

 非常に多彩な機能でアジャイルな開発を実現するDojoツールキットだが、死角はないのだろうか。野口氏は「まだまだ若い技術なので、技術情報はまだ足りていません。それが課題です。今年になって英語の本は4冊出ていますが、それらの翻訳含めた、日本語の技術情報の発信にも取り組んでいきたいと考えています。また今後期待したいのは、開発ツールです。今のところFirefoxにFirebugを入れて地道にやっている形ですので、統合的な開発環境は不足しています。『Rational Application Developer Version 7.5』では、Dojoのサポートが入ってきました、今後それが発展してよい開発環境ができてくると裾野が広がってくると思います。それから、Web 2.0のよいところを活かしたうえで、セキュリティやスケーラビリティを強化していくことも課題です」と、課題と展望について語った(聞き手/森)。


 最終回の後編では、須江信洋氏による、Java言語をベースに構築されたスクリプト言語「Groovy」の解説と、米持幸寿氏が語る、IBMソフトウェア・テクノロジーのポリシーや今後の活動についてレポートする。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
developerWorks Liaison連載記事一覧

もっと読む

この記事の著者

吉澤 亨史(ヨシザワ コウジ)

元自動車整備士。整備工場やガソリンスタンド所長などを経て、1996年にフリーランスライターとして独立。以後、雑誌やWebを中心に執筆活動を行う。パソコン、周辺機器、ソフトウェア、携帯電話、セキュリティ、エンタープライズ系など幅広い分野に対応。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3318 2008/11/27 10:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング