次世代クライアントの可能性を探る(前編)
すべては開発者の自由度を高めるために、Curl


宮下知起
2005/4/9




  Curl(カール)はリッチクライアント技術の中でも古い歴史をもっている。Curlは、MIT(マサチューセッツ工科大学)のお膝元であるマサチューセッツ州にある新興企業Curl Corporationによって開発された。Webの生みの親として知られるティム・バーナーズリーやMITの優秀な人材も多く参画しており、非常にアカデミック色が強いテクノロジだ。

 誕生当初、リッチクライアント技術というより新しいインターネット言語としての認知度が高く、スキルフルなプログラマの興味の対象となっていたCurlは、昨年日本の住商情報システムの関連会社として体制を整え、本格的にビジネス市場に乗り出した。大手システムインテグレータ傘下となることにより、MIT仕込みのテクノロジと企業システム構築のプラクティスとを融合させ、本格的なリッチクライアントベンダとしての新たなスタートを切ったといえる。

■Curlのコンセプトはあらゆるコンテンツを束ねること

米Curl, Inc. バイスプレジデント チーフアーキテクト ロバート・ホルステッド氏。HTMLに近い記述形式でテキストコンテンツからリッチなユーザーインターフェイス、高度ロジックまでを表現するのがCurlの目標だったと語る

 データエントリを効率化するため専用クライアント、あるいは、リッチなユーザーインターフェイスを実現するためのプレゼンテーション層技術という色彩が強いリッチクライアント技術がある中で、Curlは完成された言語体系を持つ点が特長的だ。すなわちC/C++やJavaなどの言語と同様に高い自由度をもつ。この特長に加えて、Curlを理解する上で知らなければならないポイントは「Curlのコンセプトは、あらゆるコンテンツを束ねて扱えること」(米Curl, Inc. バイスプレジデント チーフアーキテクト ロバート・ホルステッド氏)だという。

 Curlでは、HTMLやスタイルシートで定義される静的コンテンツ、ユーザーインターフェイス、プロシージャの3点は、すべてが1つのコンテンツ・タイプとして扱われる。Curl言語によるシンプルな表記で、テキストコンテンツや3Dグラフィックス、ビジネスロジックをも提供するわけだ。この特長はCurlで書かれたコンテンツの1例を見れば明瞭だ。

 以下は、a+1の平方根を求めてその解を表示するプログラムの1例である。Curlでは、テキストを表示する場合、表示したいテキストコンテンツをそのまま記述すればよい。そして、プロシージャの部分を「{}(curly brackets)」で囲む(「Curl」の名称はここに由来する)。以下のリストは実行結果である。

The square root of a+1 is 2.

 上記の結果を実現するコードは以下のとおりだ。「sqrt a+1」が、a(=3)+1の平方根を求める式である。「italic」は「a+1」をイタリック体で表示するためのスタイル定義である。

{let a:int = 3}
The square root of {italic a+1} is {sqrt a+1}

 このように、1つのソースにさまざまなコンテンツを束ねられるのが他の高級言語にはない特長である。JSP(JavaServer Pages)のソースコードもテキストとロジックが混在するが、Curlはあらゆるコンテンツをタイプの違いとして捉えて、よりシンプルなコード表記が可能になっている。

 ところで、静的コンテンツとプロシージャが混在することによるコードのメンテナンス性の低下が心配されるが、それ以上に「開発者の自由度が高まる」(デイビット・クランズ氏)のがメリットであるという。さらに、JavaやC/C++などの高級言語以上に高機能なAPIが用意されているためコードは非常に短くシンプルなものになるという。

■Curlアプリケーションは非常に高速

Curlの高速性を説明する、米Curl, Inc. バイスプレジデント エンジニアリング 最高技術責任者 デイビット・クランズ氏

 Curlのもう1つの特長は、動作が非常に高速であり、かつダウンロードサイズが小さいことだ。CurlはWebブラウザ用のプラグインが提供されることで、Webブラウザ内でアプリケーションが動作する。インターネットからダウンロードされたコードはリアルタイムにコンパイルされて実行されるため、ダウンロードサイズは重要なポイントだ。米国ではJavaアプレットで500KBもあるプログラムが100KB以下に収まったというケースが多くあるという。サイズが小さく、かつ高速に動作する理由はランタイムエンジンそのものの高速性とアーキテクチャにある。

 Curlコードはインターネットからダウンロードされる際、pCurl(preprocessed Curl)と呼ばれるコードに圧縮される。これでサイズは1/7〜1/10程度に小さくなる。ダウンロードされたpCurlは、圧縮を解凍することなく、そのままJITコンパイラによって解釈される。実は、Curlのコードは内部的にはC言語として処理されている。ランタイム側ですでに多くのコードがプリコンパイルを用意しているため、コンパイルは非常に高速に行われる。そして、実行速度はC言語で開発したクライアントアプリケーションとほぼ同等の速度を得られる。

■Curlリッチクライアントはオールマイティなメリットを提供する

 Curlは3Dなどのグラフィカルなインターフェイスに強く、日本国内で需要の高いデータ入力クライアントの実現にはミスマッチな点があるのではという認識が一部にある。しかし、米国ではデータ入力クライアントのニーズを十分に満たしているという。「リッチクライアントへのニーズの内容は米国も日本も大差ない」(米Curl,Inc. バイスプレジデント プロフェッショナルサービス スティーブン・アダムス氏)。

米Curl,Inc. バイスプレジデント プロフェッショナルサービス スティーブン・アダムス氏。エンタープライズに精通し、多方面にわたるソリューション展開のプランをもつ

 Curlの現仕様で、データ入力系の需要に応えられる。そのため、データ入力系や帳票系の強化のために、他のベンダと協業したり、データ入力系専用のアドオンを作る予定も製品ロードマップ上にないという。「実際、データ入力系に強いと言われるリッチクライアント製品とコンペになるケースが多いが、最近ではCurlが選ばれるケースが増えている」(株式会社カール 営業推進グループ アシスタントマネージャー 栗林亘氏)

 一方、Curlはクライアント側での高速な処理性能と、データを表現するために用意された豊富なAPIを生かし、サーバサイドでデータを処理するのではなく、クライアント側で大量のデータを分析、表示できる。そのため、CurlをOLAPキューブの分析システムに用いたいというニーズも高まっているという。スティーブン・アダムス氏はMITではなく通信キャリアや企業のエンタープライズシステムのコンサルティングを長年経験してきたエンジニアだ。独シーメンス社内の経営分析システムを設計した経験をもち、そのノウハウを継承したOLAPキューブ分析システムのフレームワークを開発した。このフレームワークはまだ製品として表に出ていないが、今後のユーザーのニーズを図りながら今後の製品戦略に反映することも考えているという。

 Curlの最近の国内事例を見ると、東京三菱銀行の「資産分析ツール」や奈良文化財研究所の「資料館案内システム」など、コンシューマに向けたサービスも登場している。従来の、クライアントに課金されるライセンス体系がサーバライセンスに変更されたため、コンシューマに向けたサービスに採用しやすくなったといえよう。また、東京三菱銀行の例では、他のリッチクライアント技術も比較検討されたが、顧客が資産のシミュレーションを自在に行える仕組みを作り込みやすい点が評価されたという。さらに、プラグインを顧客が導入する必要がある点については、高い付加価値を提供するためなので受け入れられやすく、東京三菱銀行の例でも問題無く運用されているという。


 クライアント側でのビジネスデータの分析と、その多様な表現を実現するCurlクライアントは、Webサービスクライアントとしても大きな可能性をもつという。後編では、WebサービスクライアントとしてのCurlの可能性と、近未来のWebコンピューティングのあり方について触れる。

関連リンク

 



HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日 月間