CodeZine(コードジン)

特集ページ一覧

企業システムでも使われるウィジェット技術
第2回 「OpenAjax Hub 2.0 による安全なマッシュアップ」

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/11/24 14:00

目次

OpenAjax Metadata仕様におけるマッシュアップ可能なウィジェット(Mashable Widget)

 OpenAjax Metadataとは、Ajaxツールキットの互換性を確保するためにAjaxのウィジェットやAPIのためのメタデータをXMLで表現する形式を定義した仕様で、現在バージョン1.0のドラフト版が公開されています。

 OpenAjax Metadata仕様の対象とするウィジェットは、コンボボックスやメニューバーのようないわゆるUIコンポーネントと、前節で述べたような独立した機能を提供するウィジェットの両方を含みます。この仕様中では、特に他のウィジェットと連携してマッシュアップを可能とするようなウィジェットを mashable widgetと呼んでいます。ウィジェットを他のウィジェットと連携させ、マッシュアップ可能にするためには次のようなメタデータを定義する必要があります。

  • <widget> 要素の jsClass属性: <widget> はウィジェットのメタデータ定義のルート要素です。<widget> 要素のjsClass属性にはウィジェットの振る舞いを実装したJavaScriptクラス名を指定します。この属性を指定することで、そのウィジェットが mashable widgetであることを宣言することになります。同時に、そのウィジェットはOpenAjax Metadata仕様に定義されたWidget APIをサポートする必要があります。
  • <property> 要素の sharedAs 属性 :デフォルトではウィジェットのプロパティは他のウィジェットから参照することができませんが、sharedAs属性を指定することでパブリック・プロパティとしてウィジェット間で参照することができるようになります。
  • <topic> 要素: ウィジェットが発行 (publish) したり購読 (subscribe) したりするメッセージ・トピックを指定します。ウィジェットは、OpenAjax Hub 2.0 HubClient クラスのpublish関数とsubscribe関数を使ってメッセージを発行したり購読したりできます。

 また、 mashable widgetを実装した JavaScript クラスの中で、以下のようなWidget APIを実装する必要があります。

  • ウィジェットのロードやアンロードなどのライフサイクルイベント処理
  • ウィジェットのプロパティの読み書きや、プロパティ変更時のイベント処理
  • topicへのメッセージの発行・購読などのイベント処理
  • ウィジェットのサイズ制御
  • モード(view, edit, help)
  • ドメインをまたがったHTTPリクエストをプロキシ経由でアクセスためのURL書き換え処理

 その他に、マッシュアップを円滑に行うために、以下のような属性を使用可能です。

  • <widget> 要素の sandbox 属性により、ウィジェットを iframeによるサンドボックスに閉じ込めるべきかどうかのヒントを指定する
  • <widget> 要素の scrolling 属性により、ウィジェットにスクロールバーを表示するかどうかを指定する
  • <widget> 要素の singleton 属性により、そのウィジェットがWebページ内に一つ以上存在してもよいかどうかを指定する
  • <content> 要素の mode 属性により、そのウィジェットが閲覧 (view) モードか編集 (edit) モードか、などを指定する

まとめ

 今回は、ブラウザ上でマッシュアップ可能なウィジェットを扱うための標準仕様であるOpenAjax Hub 2.0仕様 と OpenAjax Metadata 1.0仕様についてサンプルコードを交えてご紹介しました。

 今回ご紹介したコードについては、OpenAjax Allianceにより公開されているOpenAjax Hub 2.0 のリファレンス実装により動作確認を行いました。OpenAjax Hub やOpenAjax Metadataの詳細については、 OpenAjax Allianceにより公開されている仕様をご覧ください。

参考文献



  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • 吉濱 佐知子(ヨシハマ サチコ)

    IBM 東京基礎研究所 専任研究員 日本アイ・ビー・エム(株)東京基礎研究所で、情報セキュリティ関係の研究に従事しています。特にWeb 2.0/SaaSのセキュリティ、情報フロー制御や情報漏えい対策技術に興味を持っています。

バックナンバー

連載:developerWorks Liaison

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5