2007年6月は,私にとってやや特別な意味があります。
ちょうど10年前の1997年6月,初めて,NTTドコモさんに携帯電話向けのブラウザソフトの提案を携えて訪問しました。その後,話は進み1999年2月にi-modeサービスが始まり,そして今では,ほぼすべての日本の携帯電話が,インターネット接続機能を持つようになりました。
現在,いつでもどこでも必要な情報を最も身近な端末「ケータイ」を通してネットから引き出せるようになっています。各種サービスベンダーも,従来はパソコン向けだけにサービスを提供していましたが,今では,むしろケータイをメインのターゲットにするものも増えてきています。
インターネットもユビキタス環境の新時代に入り,Web 2.0と呼ばれる次世代Webサービス,これらを支える技術としてRSSやAjax,Widgetといった新技術が出てきています。実は,こうした流れは,組み込みブラウザでは以前より先取りして取り入れられていた部分もあります。2つの進化の方向が,ちょうどケータイを始めとする組込み機器で合流して,興味深い流れになっています。
ケータイにもミニアプリ「Widget」
5月16日-18日のESEC(第10回組込みシステム開発技術展)でも展示しましたが,ACCESSとしては,組み込みブラウザでもいよいよWidget対応したものを提供していきます(写真1-2,図1)。
Widgetとは,ネットから情報を読み込んだり,情報を更新したりして何らかの画面表示を行う小さなクライアント側のアプリケーション(Small Client-Side Application)で,Web技術(HTML,CSS,Javascript,…)をベースに構成しようというものです。W3Cでも,Widget は,仕様作成が現在進行中で,working draft 1.0 が公開されています。(http://www.w3.org/TR/widgets/)
こうした流れは,今後ますます進んで行くものと思われます。
10年前からローカルでもブラウザをUIに
NetFront Browserでは,もともとメモリのきびしいハードウエア環境で,端末上のローカルなユーザー・インタフェースやアプリケーションを構築するのに,ブラウザ描画エンジンを利用して,構築する方法(NetFront Client-Side Extension)を提案してきました。実際,設定画面やメール画面をHTMLベースに開発した製品例が数多くあります。
この場合,ブラウザはHTTPで通信する訳ではなく,linkは,ローカルなHTMLファイル,もしくは動的に生成されるHTMLを順に表示していく方式です。さらに,端末のいろいろな機能を呼び出すための拡張を用意し,いろいろな応用に対応してきました。この CSE 機能は,10年前以上からかなり有効でした。1つはHTMLベースなので,C言語でネイティブコーディングするよりも簡単という点と,コードサイズを小さくできる点です。画面を差し替えるのも容易です。
一方でAjaxによりWebアプリも進化
Ajax (Asynchronous Javascript and XML)は,従来のHTMLの単純なページリンクのモデルを,より使いやすい形に改良したものと言えるでしょう。HTMLのリンクをたどる階層モデルは,非常にシンプルで分かりやすいが,ページ内の一部の情報だけを書き換える場合でも(例えば,株価がリアルタイムで更新されるなど),すべての画面をHTTPで取り直して,再描画するということになって,速度の点で不利でした。
Ajax では,端末上のローカルな操作は,Javascript処理系がローカルに処理し,ネットから情報を引き出して必要な箇所だけを,部分的に書き換えることが可能です。図2にAjax のサーバーとクライアントの処理のフローを示します。
このAjax は,通信環境が,ブロードバンドよりも遅い携帯電話では,非常に有効な手法です。通信の回数やデータ量を減らせるので,ユーザビリティの向上が期待できます。ただし,もともと AjaxはPC向けのリッチなコンテンツの作成をターゲットとしており,組み込みやモバイル向けの設計を意識している訳ではありません。ACCESSでは,組み込み向けの応用を考慮し,「Embedded Ajax」と呼ぶ仕様を提案しています。
ブラウザが組込みアプリケーションの基盤に
ブラウザソフトは,何らかの情報を読み込んで,画面にレイアウトして表示し,ユーザの入力を処理できる,といった非常にGeneric な機能を持っており,いわゆるWeb閲覧だけに使うのではなく,応用を広げようというのは,極めて自然な発想です。また,各種マルチメディアプレーヤも,プラグインという形で,ブラウザの中から呼び出す仕組みも既に一般的です。
ということで,Ajax,Widget といった技術を応用して,組み込みやモバイル向けのWebアプリケーションを構築するのは,今後の1つの方向でしょう。図3に示したように,Widget から,ブラウザにシームレスに移動するような機能も可能です。Widget をケータイの待ち受け画面にするなど,いろいろな応用が考えられます(図1)。
一方で,端末上のローカルなアプリケーションも,上で述べたように,HTML,Javascript で構築するというのも進みつつあります。これに AjaxやWidgetの技術も利用可能という訳です。また,RSSやSync といった技術とも相性が良く,クライアントとサーバーの間のデータの交換も,こうした標準プロトコルを利用すれば,特別なサーバーを開発する必要はないでしょう。
今後,ブラウザエンジンはむしろ,Platformの中に入り,アプリケーションを構築するための1つの基盤になるでしょう。これにより,アプリケーションをネットワークで入れ替えたり,更新したりする(FOTA=Firmware Over-The-Air)こともやりやすくなります。
端末上にマイクロサーバー
さらに,端末上でhttpサーバーを動かし,実際に端末のローカル環境で,クライアント・サーバー方式でWebアプリケーションを動かすといったことも,将来はありえそうです。Linuxなら,既にこうしたことを実現する道具立てはそろっています。端末が,オフラインかオンラインかで,接続する先のサーバーをローカルサーバーか,リモートサーバーかを切り変えるといったこともスムーズになります。サーバー同士(ローカル,リモート)は,Syncでネット接続時に裏でデータの同期を取っておけば良いのです。
Embedded Web2.0
1997年6月にW3Cのイベントで,「Embedded WWW」という話をして,Compact HML(http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/)の構想を紹介しました(写真3)。
それから10年,今度は「Embedded Web2.0」とでも呼ぶべき新しい組み込み器機でのブラウザおよび,その周辺技術の応用が始まろうとしています。ACCESS としては,この方向もどんどん開拓して行きたいと考えています。