IT Proの読者なら,Webブラウザがひところもてはやされたような「万能クライアント」でなかったことはご承知だろう。すでにあちこちで指摘されている通り,素のままのWebブラウザをシステムのクライアントとして利用したシステムは,使い勝手の悪いユーザー・インタフェースに悩まされることが多い。

 この問題はさほど目新しいものではない。Webブラウザの次にくるであろうクライアントの形が見え始め,実際にそのようなシステムが作られるようにもなってきている。それは「リッチ・クライアント」という考え方である。

 HTML(Hypertext Markup Language)でユーザー・インタフェースを作っている限り,利用者の手になじむ操作性を作り込むことは難しい。そこで,HTMLの代わりに,もっとユーザー・インタフェース構築機能に優れた仕組みを使って,より高機能なクライアントを作る。これは様々なリッチ・クライアント技術に共通して見られる考え方だ。

 例えば,アクシスソフトの「Biz/Browser」は,HTMLの代わりにCRS(Chain Reflection Script)と呼ぶ独自の言語を使ってユーザー・インタフェースを構築する。HTMLでは使えないような様々なユーザー・インタフェース部品を備え,クライアント/サーバー・システムのような操作性をWebアプリケーションに持たせることができる(関連記事)。

 米CurlのSurgeもこれと似たアプローチを採っている(関連記事)。curlと呼ぶ言語を用いてリッチ・クライアントを記述し,ブラウザのプラグインとして動作する実行環境でそのcurlプログラムを解釈,実行する。curl言語はグラフィックスやアニメーションなどの機能を備え,先のBiz/BrowserのCRSに比べ,守備範囲が広い。同様に,米MacromediaのFlashもスクリプト処理系を搭載するなどリッチ・クライアント機能を強化してきている。

 HTMLを使わないのなら,いっそ独立したアプリケーションをまるごと配ってしまおう,という考え方もある。米Microsoftが推進する「スマート・クライアント」が代表例だ。OSのネイティブ・アプリケーションをネットワークからダウンロードして実行するという形態は,以前ならセキュリティの観点から到底考えられないことだった。.NET Frameworkによってアプリケーションのバージョン管理機構やセキュリティ機構が強化されたために現実味を帯びてきた形態だ。同様に,米Sun Microsystemsの「Java Web Start」もJavaをリッチ・クライアントのプラットフォームとして使うことを意識したソフトウエア配布技術である。

独特の開発スタイルがプログラマ向けでなかった

 ただ,これらのリッチ・クライアント技術はどれも一長一短あり,ポストHTMLといえるほどの決定打になるものがないと筆者は考えていた。HTMLほどの手軽さがないのが決定的な理由だ。業務システムのクライアントならば,追加ソフトの導入が前提でも,それに見合う効果があれば問題ない。Biz/BrowserやSurge(curl)の活用は企業の情報システムを中心にこれからもどんどん進んでいくに違いない。

 しかしポストHTMLとなるからには,コンシューマの手を直接わずらわすことなく実行環境が行き渡る必要がある。それを踏まえて考えると,どのコンピュータにもあらかじめ実行環境が入っていて,なおかつビデオや画像などの様々なデータを組み合わせたユーザー・インタフェースを簡単に構築できるのは今のところHTMLとFlashくらいしかない。

 ところが,そのFlashは開発スタイルがプログラマの観点からすると独特である。Flashの機能を駆使した素晴らしいコンテンツを持ったWebサイトは数多い。しかし,それはプログラマというよりはクリエータの仕事の結果に見えるものがほとんどだ。Flashコンテンツの開発ツールはMacromediaのFlash MX以外にもサード・パーティ製品が出ているが,クリエータ向けに作られたものがほとんどだ。そのようなツールをプログラマが使うのには,油絵の具で出納帳を作るような居心地の悪さがある。

 「Flash MX」の最新版には,プログラマが使うことを想定した「Flash MX Professional 2004」というバージョンがある。このバージョンはVisual Basic風の開発スタイルを取り入れたことで,ハードルがだいぶ下がった(関連記事)。しかし,テキスト形式のソースコードをいじれる他のプログラミング言語からすれば,ツール上の設計画面からいきなりバイナリ・データを生成する現行のFlash開発ツールはまだまだ取っつきにくい。

Flashコンテンツをタグ言語で開発できる

 もっともMacromediaもそんなことは先刻承知だったようで,面白い製品の開発を進めていた。Royaleという開発コードで呼ばれていた「Macromedia Flex」である。HTMLのようなマークアップ言語でFlashコンテンツを作れるようになる。

 Flexの実体は,Webサーバー上で動作するサーバー・サイド・スクリプト処理環境だ。MXMLと呼ぶプログラミング言語でソースコードを記述する。近ごろの○○MLという言語の例に漏れず,MXMLはXML(Extensible Markup Language)をベースとした言語だ。クライアントから要求を受けると,Flexはスクリプトに従ってページを動的に生成し,クライアントに送り返す。

 米MicrosoftのASP(Active Server Pages)や米Sun MicrosystemsのJSP(JavaServer Pages)と似た仕組みで動いていると考えてよいが,FlexにはASPやJSPと大きく異なる点がある。FlexがMXMLから生成するのはHTMLではなく,Flash形式のデータなのだ。つまり,Flexで処理されたサーバーからの返信は,クライアントにインストールされているFlash Playerで再生されることになる。

 MXMLをFlashコンテンツに「コンパイル」するために,ユーザー・インタフェース部品などを集めたクラス・ライブラリが付属する。例えばMXMLで“<mx:Button label="Click">”などと記述すれば,Flexはライブラリからボタンを生成し,Clickと書かれたボタンが張り付いたFlashコンテンツを生成する。この手順は,HTMLで“<INPUT>”と書けばブラウザにボタンが表示されたのと見かけ上はほとんど変わらない。

 MXMLプログラムはXML形式のテキスト・データなので,テキスト・エディタで編集できる。HTMLオーサリング・ソフトのノウハウを流用すれば,ビジュアル開発にも対応できる。事実,Macromediaは自社のHTMLオーサリング・ソフト「Dreamweaver」をベースとしたMXML開発ツール「Brady(開発コード)」を提供予定だ。オープンソースの開発環境「Eclipse」をMXML開発に対応させるプラグイン「Partridge(開発コード)」の開発も米IBMと共同で進めている。

 と,これを書いている3月29日にMacromediaからFlexの出荷開始の発表があった(関連記事)。開発者ライセンスとして無期限で利用できるトライアル版を8.99ドルで提供するというところにFlashテクノロジにかけるMacromediaの意気込みを見て取れる。OSの壁をやすやすと超えられるFlashテクノロジが標準のクライアント・プラットフォームになる日が,近く訪れるかもしれない。

「ポスト・ポストHTML」でFlash対Longhornが激突か

 ただ,Windowsで現在の標準クライアントの座を占めるMicrosoftも座して待っているわけではない。Microsoftは次世代版のWindows「Longhorn(開発コード)」でスマート・クライアントをFlashに代わるリッチ・クライアントのプラットフォームにしたい意向だ。

 すでに報じられているように,Longhornは「Avalon(同)」というベクトル・グラフィックス描画機構を搭載する。MicrosoftのLonghornのサイトには,不動産会社の業務アプリケーションを想定したAvalonアプリケーションのデモがある(該当サイト)。これがFlashで作ったのかと思えるような内容なのだ。XMLベースのマークアップ言語でユーザー・インタフェースを構築し,バックエンドにあるコードと結びつけることなど,技術的な類似点も多い。

 すでにクライアントが十分に普及したFlashと,リリース時期すらはっきりしないLonghornでは「ポストHTML」の座をかけた争いではまともな勝負になりようがない。しかし何年か後の「ポスト・ポストHTML」の座をめぐる両者の激突が見られるかもしれない。

(斉藤 国博=日経ソフトウエア)