ウィジェット 1.0 展望

提供: STUDIO DDT ONLINE
移動先: 案内検索

この文書はW3CがW3C草案として公開している仕様書"Widgets 1.0: Landscape"をSTUDIO DDT ONLINEが学習目的で日本語に翻訳したものです。正式な仕様書は英語版のみであり、この日本語訳は参考にすぎません

この文書には翻訳上の誤りが含まれるかもしれません。STUDIO DDT ONLINEは翻訳の正確性を保証しません。

この文書のレイアウトはMediaWikiの記法に依存するため、オリジナルの文書とは文書構成、HTMLのセマンティクス、見栄え等が異なります。

現段階は編者による草案段階のため、この翻訳もリンク・日付・内容の全てが不安定なものとなっています。この翻訳では草案の日付を明示しません。従ってこの翻訳では各節毎に元となった草案の版が異なる場合があります。

W3C草案2008年x月x日

このバージョン
--
最新のバージョン(草案)
http://dev.w3.org/2006/waf/widgets-land/
以前のバージョン
--
編者
Marcos Caceres, Invited Expert

著作権© 2009 W3C®マサチューセッツ工科大学欧州情報科学数学研究コンソーシアム慶應義塾大学)により、全ての権利が留保される。W3Cの免責商標文書利用規定が適用される。

この翻訳文の著作権はSTUDIO DDT ONLINEおよびサイト管理者が保持しています。この翻訳文の利用などについては免責事項を参照してください。ただし、原文のライセンス内容によっては免責事項よりも原文のライセンスが優先されます。

概要
この文書は、ウィジェット 1.0 要求事項仕様書に求められる情報を得る目的を持って、市場を牽引する一連のウィジェットユーザエージェントを調査するものである。この調査では、ウィジェットユーザエージェント一般の共通点と異なる点を明らかにし、ウィジェットの一般への影響の相違、他の共通点、オーサリング、セキュリティ、配布と展開、国際化と機器非依存について検討する。この文書は、ウィジェットの最終的なクロスプラットフォーム・ウィジェットソリューションを標準化するための相違を少なくするために、必要とする勧告文書一式を作成することで完結する。
この文書の位置づけ
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This is the W3C First Public Working Draft of the Widgets 1.0: Landscape. Once all the comments about this document will have been addressed, the Working Group intends to publish a final version of this document as a W3C Working Group Note.
The W3C Membership and other interested parties are invited to send comments to public-appformats@w3.org, the W3C's public email list for issues related to Web Application Formats. Archives of the list are available.
This document is produced by the Web Application Formats WG, part of the Rich Web Clients Activity in the W3C Interaction Domain. It is expected that this document will become a Working Group Note. Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

勧告案発行までこの節の翻訳は省略します。

導入

この文書では、市場を牽引するウィジェットユーザエージェントが次のような周辺問題をどのように解決するかを試験することで、ウィジェットの展望を調査する。すなわち、

  • 配布と展開
  • メタデータと設定
  • ユーザインターフェースとアクセシビリティ
  • オーサリング
  • 国際化対応とローカライズ
  • 機器非依存
  • 初期化
  • 自動更新
  • セキュリティ

調査する市場を牽引するウィジェットユーザエージェント(market-leading widget user agents)は以下に一覧されている。ウィジェットユーザエージェントは、市場で普及がしているものが主観的に選択された。この調査は、明示的にこの調査に盛り込みたいと要請のあったベンダや、要請のなかったベンダとは無関係に決定した。

市場を牽引するウィジェットユーザエージェント
ウィジェットユーザエージェント ベンダ バージョン プラットフォーム
Konfabulator Yahoo! 4.5 Windows XP, Windows Vista, MacOS
Windows Sidebar Microsoft 1.0 Windows Vista
Google Desktop Gadgets Google 1.x Windows XP, Windows Vista
Opera Widgets Opera 9.5 Beta Mac OS 10.5, Windows XP, Windows Vista
Dashboard Apple 1.1 Mac OS 10.5
Web-Runtime Nokia 1.0 Beta S60 3rd Edition, Feature Pack 2 (エミュレータ)
Joost Widgets Joost 1.0 Beta Mac OS 10.5, Windows XP, Windows Vista

今回調査するウィジェットユーザエージェントは、希望したベンダによって標準化処理を是認するものではない(言い換えると、このリストに現れているウィジェットユーザエージェントが、ウィジェット 1.0仕様のいずれかの部分が実装されているかは参考にならない)。

目的

この仕様書の目的はウィジェットというもの(widget space)の全体的な概要を提供することと、ウェブアプリケーション形式ワーキンググループによるウィジェットの標準化プロセスに役立つ情報を提供することにある。この仕様書は次のようなものを提供する。すなわち、

  • 標準化プロセスの至る所で用いられる、一貫性を持った用語集がこの仕様書に含まれる。
  • 標準化の目的として、ウィジェットとウィジェットユーザエージェントを構成するもの(しないもの)を定義する。
  • ウィジェットのライフサイクルにおいて、様々な技術が果たす役割を議論する。
  • ウィジェットの展望を通して、相互運用性と相違点を明確に実証する比較基盤とする。
  • ウィジェット全体を標準化できるリスト。

用語

今節では、ウィジェットに関連するいくつかの重要語を定義する。

ウィジェット(widget
この標準化プロセスの趣旨において、ウィジェットとは、ユーザ機器やモバイル機器上で一度にダウンロードとインストール可能なようにパッケージされた、ローカルデータやウェブ上のデータを更新および表示するための、インタラクティブな単一用途アプリケーションのエンドユーザによる概念化をいう。ウィジェットはスタンドアロン・アプリケーション(これはウェブブラウザの外側で動作できることを意味する)として動作してもよいし、あるいはウェブ文書の内部に埋め込まれてもよい。この仕様書では、ウィジェットが動作するランタイム環境ではウィジェットユーザエージェントと呼称されるものが動作し、動作中のウィジェットはインスタンスされたウィジェットと呼称される。インスタンス化されるより前に、ウィジェットはウィジェットリソースとして存在する。
ウィジェットユーザエージェント(widget user agent
(ソフトウェアアプリケーションである)ユーザエージェントとは、インスタンスされたウィジェットをホストするものである。一般的には、ウィジェットユーザエージェントはウェブブラウザと同様の機能性を与えられているか、ウェブブラウザ上に直接構築されたものである。実際にウェブブラウザの最上層に構築されているのでHTML文書を処理・表示可能であるものが増えている一方、その他のものはECMAScriptインタプリタのようなウェブブラウザコンポーネントを組み込んでいる。ウィジェットユーザエージェントは、マイクロソフトのWindowsやAppleのMacOS、Symbian、Linuxなど、多数の異なるソフトウェアプラットフォームや機器向けに構築されており、KonfabulatorやOperaウィジェットのように複数のプラットフォーム上で動作するものがある。
インスタンスされたウィジェット(Instantiated widget
インスタンスされたウィジェットとは、復元されたウィジェットリソースの動作中の発露であり、起動ファイルはウィジェットユーザエージェント上にインスタンスされている。インスタンスされたウィジェットは構成文書で設定されていてもよい。インスタンスされたウィジェットをプログラムしたりインタラクティブに動作させるための能力は、ウィジェットAPIによって提供される。
アイコン(Icon
アイコンとは、インスタンスされたウィジェットの画像あるいはシンボル表現である。アイコンは主に、メニューやドックのような非動作時のコンテクストの中でウィジェットの代理として用いられ、作者は動作時にアイコンを動的に変更できる。例えば、天気や日時が変わると天気ウィジェットは自身のアイコンを更新することができる。
ウィジェットリソース(Widget resource
ウィジェットリソースとは、配布と展開を目的としてウィジェットの素材をカプセル化したパッケージング形式から作成されたリソースである。通信時、ウィジェットリソースは、任意のウィジェットメディア型によって識別される。
メディア型(Media type):
メディア型とは、いくつかのプロプライエタリなウィジェットユーザエージェントで、ウィジェットリソースを形式的に紐付けるものである。例えば、Joostウィジェットエンジンでは、ウィジェットはHTTPでapplication/vnd.joost.joda-archiveメディア型を出さねばならない。
パッケージング形式(Packaging format
パッケージング形式とは、ウィジェットリソースを作成するために用いられる物理的なデータ形式である。例えば、Konfabulatorのリファレンスでは平坦なファイルフォーマットで記述されるが、OperaウィジェットとマイクロソフトのVistaサイドバーではZipファイル形式がサポートされている。
リソース(Resource
リソースとは、ウィジェットリソースの内部やHTTP上でアクセスできるところに存在し、インスタンスされたウィジェットによって利用されるファイルやディレクトリである。ウィジェットリソースにおいて、リソースはディレクトリ中に体系化されて良いし、ローカライズにあわせてディレクトリ分けしても良い。リソースの例としては、画像、テキスト、マークアップ、スタイルシート、実行可能スクリプトや音声がある。
起動ファイル(Start file
起動ファイルとは、インスタンスされた瞬間のウィジェットに相当する、ウェブ上あるいはウィジェットリソース内のリソースである。インスタンスされたウィジェットが構成文書を持つなら、ウィジェットユーザエージェントは構成文書を用いて起動ファイルを設定して良い。
構成文書(Configuration document
構成文書とは、設計者がウィジェット用のメタデータ、あるいは設定値を定めた特定のリソースである。ウィジェットユーザエージェントは、ウィジェットのインストール時の設定に構成文書を用いる。構成文書は主にXMLファイル形式が用いられ、例えば、Operaウィジェットではconfig.xmlというリソースが付属する。
メタデータ(Metadata
メタデータとは、ウィジェットに関連する制作者や分類について、構成文書内に記されたデータであるが、(例えば制作者の名前やメールアドレスなどは)動作時のウィジェットの振る舞いに影響しない。
設定値(Configuration parameter
設定値とは、基本となる振る舞いにないウィジェットの機能を利用可能にする構成文書でのあらゆる宣言事項である。(例えば、ウィジェットがネットワークアクセスを要求するという指定のような)
ブートストラップ(Bootstrap
ブートストラップとは、ウィジェットをインスタンスする時に起動ファイルを宣言的または自動的に検索する機構をいう。
ウィジェットAPI(Widget API
ウィジェットAPIとは、インスタンスされたウィジェットに特有の機能性を提供する、プログラミングインターフェース群である。現状のAPIは、制作者が提供するAPIの機能性レベルで広範に渡っている。マイクロソフトのサイドバーリファレンスにおけるオペレーティングシステムアクセスAPIの例を見よ。

ウィジェットとウィジェットユーザエージェント

2003年以降、比較的新しい種類のアプリケーションがデスクトップコンピュータ上に、そして最近では携帯電話のようなウェブアクセス可能なポータブル機器上にかなりの勢いで見られるようになって来た。この種のアプリケーションは一般にデベロッパにウィジェットエンジンと呼ばれ、その一部として、ウィジェットあるいはガジェットとして知られる、より小さなアプリケーションが動作させることができる。ユーザのデスクトップ上において、ウィジェットはよくある単一目的のアプリケーションの居場所を徐々に占めるようになる。ウィジェットの典型例としては、単純な時計、CPUゲージ、付箋メモ、ゲーム、バッテリー残量インジケータから、より洗練されたウェブを利用するウィジェット、ニュースリーダ、電子メールチェッカ、フォトアルバム、通貨換算にまで及ぶ。

実に1000ものユニークなウィジェットがウェブからダウンロードでき、そのユーザは個人的なウィジェットインベントリ(widget inventries)を作成して集約する。これらのウィジェットインベントリは、ユーザがいつも利用するオンラインサービスへのアクセスを提供する。これは、多くの事例において、ユーザがウェブブラウザを起動する必要なしに、欲しい情報(例えば、天気予報の確認)を入手することを意味する。現状、多くのユーザにとってウェブページダウンロード料金は懸案であり、これはモバイル機器の魅力を増させるウィジェットのひとつの側面である。

デベロッパにとっては、あるウィジェットは既存のバイナリアプリケーションとは違い、ウェブページを作成するのに用いられるオープンな技術と同じものを使って作成される。いろいろな意味で、ウィジェットエンジンはウェブブラウザの振る舞いを模倣する。すなわち、実際にウェブブラウザの最上層に直接構築されているのでウェブページを描画可能であるものが増えている一方、その他のものはECMAScriptインタプリタのようなウェブブラウザコンポーネントを組み込んでいる。これは、デベロッパやベンダにとって、ウィジェットはJavaやC#のような低レベル(lower-level)のプログラミング言語で開発されるアプリケーションよりも簡単であることを意味する。ウィジェットとウィジェットエンジンが一般に広がる中で、ユーザ、デベロッパ、既存のベンダ、新規参入を目指すベンダのそれぞれに対して多くの課題が発生している。ウィジェットユーザエージェントに関する多方面からの調査によって、この仕様書でこれらの問題を検討するので、W3C標準化プロセスを通して解決されるだろう。

図1にあるように、ウィジェットはウィジェットユーザエージェント上にインスタンスされており、異なった役割(例えば配布と展開など)を果たすいくつもの技術を活用することが可能である。しかし、(アスタリスクで記された)これらの技術のいくつかはいまだ正式に標準化されておらず、ウィジェット全般において分裂を助長している。

原文では画像による説明が示されていますが、ライセンス上の齟齬をきたすため元画像を表示できません。リンク先を参照してください。

図1 標準化が求められる典型的なウィジェット技術階層と側面。この技術階層は参考として意図されており、特定のユーザエージェントの技術階層を表したものでないことに留意してください。

ウェブウィジェットとの違い

(モジュール、あるいはバッジとしても知られる)ウェブウィジェットとは、宣言的、あるいは動的にウェブ文書に取り込まれたHTMLCSSECMAScript(もしくはAdobe Flash)の一部分である。ウェブウィジェットの一般例として、写真共有ウェブサイトからアイコンサイズの画像群をダウンロードし、ユーザが選んだもの(例えば「イタリア旅行」とタグ付けされた画像群)をスライドショーとして表示するものがあり、そのようなウェブウィジェットが埋め込まれたソーシャルネットワーキングサイトやブログが散見される。ウェブウィジェットのプロバイダとして有名なものに以下のようなものがある。

ウィジェットと異なり、ウェブウィジェットはサーバ側にホストされ、クライアントで動作するより前にHTML文書に埋め込まれている。ウェブウィジェットの製作では通常、製作者がウィジェットやそのウェブウィジェットが依存するAPIを、XMLや(PHPのような)その他の形式で明示することが不可欠である。その文書はサーバにアップロードされていて、クライアントで動作するときに、HTML、CSS、ECMAScriptに変換される。例えば、以下の表の入力欄には典型的なiGoogleガジェットがある。

iGoogleガジェット変換例
入力 出力
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="hello world example" />
<Content type="html"><![CDATA[
<h1>Hello, world!</h1>
]]></Content>
</Module>
Hello World!
入力 出力

MediaWikiの記法上の都合で、表内で使用している要素や見栄えが適切でありません。原文を参照してください。

サーバ側で処理された後に、入力欄のコードはHTML、CSS、ECMAScriptに変換され、iframかHTML要素のどちらかとして出力文書に挿入される(上記の出力欄を参照)。Googleがこの例で出力する実際のコードは、この仕様書に挿入するには長すぎる。

機能的な違い

ウェブウィジェットとウィジェットはほとんど同じような機能性のウェブ技術に依存しているが、下記のような差異がある。

  • パッケージング形式
  • セキュリティモデル
  • API群

パッケージング形式に関して、ウェブウィジェットは一般にパッケージングされないか単一ファイルとしてダウンロードされる(Adobe Flashを除いて)。その代わり、一般にウェブウィジェットはECMAScriptHTML要素、CSSを織り交ぜたものを介して動的にインスタンスされる。この仕様書で説明するウィジェットに似て、いくつかのウェブウィジェットはRSSファイルを動的に読み込んで利用したり、構成文書としてJSONを用いる。

セキュリティモデルに関してはウィジェットと異なり、ウェブウィジェットは一般にHTML文書のDOMの一部であり、ウェブブラウザに強制されたセキュリティ制約がすべてである。これは、ウェブウィジェットがドメイン間リクエストを実行できず、エンドユーザ機器上のリソース、スタイルやCPU利用率のようなシステムレベルの属性に独立してアクセスできず、ファイルの作成・削除のようなシステムレベルのコマンドを実行できないが、一方でほとんどの市場を牽引するウィジェットユーザエージェント上で動作するウィジェットでは、一般にそれが可能であるということを意味する。言い換えると、いくつかのウィジェットユーザエージェントでは、ウェブブラウザによってウェブウィジェットに与えられるものより寛大なセキュリティモデルを提供する。

ウェブウィジェットのセキュリティ範囲を超えて動作するためのウィジェットの能力は、ウィジェットが規定したAPI群によって部分的に提供される。例えばWindows Vistaサイドバーでは、「System.Shel.Folder.newFolder(strNewFolderName)」を呼び出すことで、ウィジェットがエンドユーザのハードディスク上に新たなフォルダを作成するためのスクリプトを記述できる。ウェブウィジェットの範囲を超えたAPI機能の追加例はMicrosoftのサイドバーリファレンスKonfabulatorリファレンスを参照せよ。

ウェブウィジェット(ウェブブラウザ)と比べたときのそのほかの違いは、どのようにしてウィジェットユーザエージェントが国際化対応を制御するかということにある。ウェブでは、国際化対応はHTTPのAccept-Languageヘッダによって適宜制御され、これは、ウェブブラウザがエンドユーザの推奨する言語(例えば、Accept-Language: en-us)をサーバに送信することを許諾することで機能する。サーバにユーザが選択した言語のリソースがあるなら、ローカライズされたリソースがエンドユーザに返される。一方ウィジェットでは、ウィジェットリソース中の一般的な言語地域パターンを用いて名前付けられたフォルダ(例えば、/en-us/)内にすべてのローカライズされたりソースを適宜内包する。ウィジェットがインスタンスされたとき、ウィジェットユーザエージェントはこれらの特別名フォルダをユーザの優先言語に適合するように努める。追加の情報として国際化対応とローカライズの節を参照せよ。

JAVAアプレットとの違い

ウィジェットとJAVAアプレットには多くの共通点がある。例を挙げると、ウィジェットもアプレットも実行のために事前にインストールされたランタイムエンジンに依存し、JAVAアプレットはJAVAランタイム環境(JRE)の存在に依る一方で、ウィジェットは対象となるウィジェットエンジンの存在に依る。非同期HTTPリクエストを実施することでウェブからリソースをダウンロードできるように、ウィジェットとJAVAアプレットはとてもよく似た機能的側面を持つ。

ウィジェットとアプレットのもっとも有名な違いとして、ウィジェットは製作者にとってJAVAアプレットより作成が容易であるという論争がある。ウィジェットはHTML、CSS、ECMAScriptで作られているのでそのような話題になるが、JAVAに比べて習得期間が短く、エラー制御がとても容易である。そのほかの違いとして、JAVAアプレットはウェブページの内側で動作するよう意図されている一方、この仕様書で説明されているウィジェットは、一般にウェブブラウザの外側で動作するスタンドアロンアプリケーションであることを目的にしている。

配布と展開のためのパッケージング

配布と展開のために、単一のファイルへと必要なリソースとウィジェットに必須のメタデータのすべてをカプセル化することを、パッケージングという。できる限り簡易にユーザ機器上で動作させるために、ウェブからウィジェットを入手することを、配布と展開という。

パッケージング形式、拡張子、メディア型

ウィジェットをパッケージングするためのデファクトスタンダードはZIPファイル形式であるが、ウィジェットをパッケージングするときに、デベロッパは(.zipではなく.widgetや.gadgetのような)ベンダ独自の拡張子を用いることを求められる。

一旦、配布のためにパッケージされたウィジェットは、ウェブサーバ上に配置され、適切なメディア型で出力される。メディア型の用途は、例えば、適切なウィジェットユーザエージェントとウィジェットリソースを自動的に関連づけるためにブラウザが受け入れるものである。例を挙げると、Operaウィジェットエンジン向けに出力されたウィジェットはapplication/x-opera-widgetsメディア型で出力され、Operaブラウザに関連づけられる。オペレーティングシステムがメディア型あるいは拡張子を処理するプログラムの選択を行えるように、ウィジェットが自身をを適切に登録できるならば、エンドユーザがウィジェットリソースを手動で選ばずとも、ウェブブラウザは自動でウィジェットをウィジェットエンジンに送り込むべきである。

エンドユーザは一般に、ユーザがウィジェットを検索可能で、デベロッパが作成したウィジェットを登録・更新できるような、よくベンダ自身(例えばAppleやYahoo)がホスティングしているオンラインギャラリからウィジェットリソースを直接に入手するしかし、制作者には自身のウェブサイトからウィジェットを配布する自由がある。

パッケージング形式
ウィジェットユーザエージェントが対応するパッケージング形式
圧縮方法
ウィジェットユーザエージェントが対応する圧縮アルゴリズム
拡張子
ウィジェットユーザエージェントとウィジェットを関連づける拡張子
メディア型
ウィジェットは一般にウェブで配布されるので、通常はベンダが適当なMIME型をウィジェットに割り当てている。普段は拡張子と一緒に利用されるMIME型は、ウィジェットと適切なウィジェットユーザエージェントとを関連づけやすくする。
パッケージング形式、拡張子、メディア型
ウィジェットユーザエージェント パッケージング形式 圧縮方法 拡張子 メディア型
Konfabulator プロプライエタリなフラットファイル、Zip Deflate(Zip) .widget(強制でない) application/vnd.yahoo.widget
Windowsサイドバー Zip、Cab、ディレクトリ Deflate .gadget application/x-windows-gadget
Googleデスクトップ Zip Deflate .gg app/gg
Operaブラウザ Zip Deflate .zip application/x-opera-widgets
Appleダッシュボード Zip Deflate .wdgtあるいは.zip application/x-macbinary
Nokiaウェブランタイム Zip Deflate .wgz application/x-nokia-widgets
Joostウィジェット Zip Deflate .joda(強制でない) application/vnd.joost.joda-archive
ウィジェットユーザエージェント パッケージング形式 圧縮方法 拡張子 メディア型

Although care has been take to ensure the accuracy of the information contained in this table, there is no guarantee that the information is complete, correct, or up-to-date. To obtain authoritative information about any particular widget user agent, please visit the vendor's web site.

相互運用面
  • Zip形式
  • Deflate圧縮
非互換問題
  • There is no consistent file extension for widgets; each vendor uses their own unique file extension.
  • Nowhere is it defined exactly which parts of the Zip specification should be supported by a widget user agent. Zip is a large specification that is constantly evolving. Zip supports multiple compression algorithms and features. If a widget is packaged using the wrong compression algorithm, it might not be interoperable with another widget engine or device. Although the issue of compression is not currently a major issue, it has the potential to become one as widgets become more prevalent on mobile devices and computers start to work natively in 64-bit.
  • There is no standardized Media Type, which results in widgets served over HTTP being associated with only one kind of widget engine. One media type per widget engine results in vendor lock-in.