アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 
 @IT > 多様化するリッチクライアントニーズを先取りするCurlリッチクライアントとは?
 
@IT Special

 

PR

多様化するリッチクライアントニーズを先取りする
Curlリッチクライアントとは?

Webクライアントの次の世代を担うクライアントとして注目を集めた「リッチクライアント」は、2006年になって本格的な普及期を迎えると言われている。ユーザーのニーズが多様化する中で、リッチクライアントは従来までのコスト性や操作性・生産性の向上というキーワードだけでは応えられなくなってきている。そこで注目されるのがCurlリッチクライアントだ。Curlリッチクライアントには、次世代のリッチクライアント像のヒントが多く含まれている。

Webのメリットを引き継ぎC/S以上の
機能と業務生産性を提供するのがリッチクライアント

 Web技術の普及とともに、クライアント/サーバ型システムはアプリケーションの配布・運用コストが課題視され、Webシステムへの移行が進んできた。しかし、期待の中で導入が進んだWebシステムは、コスト削減のメリットを提供する一方で、ユーザビリティや業務生産性の低下という課題を露呈させた。そこで、コスト性と操作性・生産性を両立する新しいクライアントアーキテクチャとして登場したのがリッチクライアントだ。

 登場以来、リッチクライアントは、ユーザーのニーズの多様化を受け進化してきた。初期のリッチクライアントへのニーズは、クライアントPCにWebブラウザがあれば、クライアントPCにアプリケーションをインストールすることなくC/S並みの操作性・生産性を実現するというものだった。しかし現在のリッチクライアントは、Webブラウザのウインドウに属さないクライアントの実現、より高度なGUI、柔軟性があり高精度な帳票システム、クライアント側でのSOA構築など、クライアント/サーバやWebでも容易には実現できなかったより高度な利用へと変わりつつある。このような動きがある中で、いま最も注目を集めているのがCurlリッチクライアントだ。

 CurlはMIT出身の技術者によって開発された新しい言語だ。インターネット/Webとの高い親和性を持ちながらC/C++に劣らない柔軟性の高いプログラミングを提供するのが特長である。ところで、Curlの開発会社である米Cur,Inc.社は、2004年、住商情報システムの傘下になり、東京に本社のある株式会社カールがマーケティングの拠点となった。国内のユーザーのニーズがCurlリッチクライアントにフィードバックされ、それが製品へと生かされる体制が作られている。国内ユーザーのリッチクライアントへの要求は米国などと比べて非常に高いと言われている。日本のユーザーの要望が製品に反映されるCurlリッチクライアントは、もはや国産のリッチクライアントといってもよいかもしれず、評価されるべきことだろう。

 では、次節以降でCurlリッチクライアントを技術的な視点から見ていこう。

クライアント開発の自由度は高い、
しかも開発の難易度は低い

 多くのリッチクライアント技術が、クライアント側にはプレゼンテーション層だけを置く考え方であるのに対し、Curlはプレゼンテーション層のみならず、アプリケーション層もクライアント側に置き、データ層のみをサーバ側に配置する。すなわち、従来のC/S型システムに近いアーキテクチャを持つ。このことはC/S型システムの開発に慣れる開発者にとっては大きなメリットになる。住商情報システム株式会社 Curl事業部 システム営業部 部長代理 田崎勝之氏はこう説明する。「CurlはC/S型システムと同様の設計手法を持ちます。クライアントとサーバの役割の切り分けが同じ考え方ですむので、多くの開発者にとってはWebよりも取り組みやすいものになるはずです。Webアプリケーションの開発では、C/S型システムの場合クライアント側で行っていた処理をサーバサイドに置いたためにフレームワークが登場しました。しかし、Curlの場合はそういったところも考えなくて良いのです。新しい考え方を取り入れる必要はなく、開発者にとって取り組みやすい手法だと思います。しかもノウハウが蓄積されてきていますので、開発手法で悩むことはないでしょう」。

住商情報システム株式会社 Curl事業部 システム営業部 部長代理 田崎勝之氏

 C/S型システムに近い開発スタイルは、サーバ側のコントローラーやビューに割いていた開発の手間を省けるだけでなく、その分GUIの開発にリソースを投入し、使いやすさの追求に集中できる点もメリットだ。

 一方、言語的側面からの開発生産性はどうだろうか。Curlリッチクライアントは独自のCurl言語でプログラムを記述するが、習得は非常に容易だといわれている。“手続き型言語”と“マークアップ言語”の両方の要素を持つが、マークアップ言語の側面はコードからGUIをイメージしやすいというメリットをもたらしている。手続き型言語としてはオブジェクト指向言語のJavaに似ており、高度な機能を実現するとともに、生産性の高さも実現している。実際にコードを見てみよう。もともとリッチなUIを容易に実現できることを意図して作られた言語であることが一目瞭然だ。

 たとえばグリッドは以下のようなシンプルなコードで実現できる。

{RecordGrid
    width=20cm, → 高さを設定
    height=8cm, → 横幅を設定
    alternate-row-background =“#ccccff”, → 1行置きに指定色で行の色を変えるオプション
    record-source = rs → 表示するデータのレコードセットを指定
}

 このRecordGridクラスは、Record-sourceにデータセット“rs”をセットするだけで、高機能なグリッドを実現する。その基本機能には(1)ドラッグアンドドロップによる列の移動、(2)列のサイズ変更、(3)レコードのソート、(4)レコードの選択、(5)スクロールバーとナビゲーションバーなどがある。この一例だけでも、Curlを使ったプログラミングは非常に敷居が低く、生産性が高いものであることを予想していただけるだろう。

高度なGUIを実現したCurlアプリケーションの一例。エクゼクティブ情報システム(EIS)の例。項目ごとにタブで区分けされた中に、ポータルレイアウトが表示されている。ウインドウの中に表示されているコンテンツは、地域、年度、期間という切り口を変更することができ、見栄えも、表形式、棒・線・積み上げ棒グラフとそれぞれ変更することが可能。各ウインドウはドラッグアンドドロップで入れ替えることもできる

 Curlはテキストエディタだけあれば開発できるが、もちろん、統合開発環境も用意されており、VBライクな開発が可能だ。

CurlのIDE。部品に対してプロパティとイベントハンドラを記述していくVisual Basicライクな開発を可能にしている

Column
株式会社カールはCurlリッチクライアントの特長を把握し、開発の実際を体験できる「{Curl}1日無料セミナー」を開催している。本節の内容を自ら確かめたい読者にお勧めできる。

従来のWebやC/Sを越えた“カバレッジ”の広さが
これからのリッチクライアントには求められる

 ユーザーインターフェイスのリッチさや操作性といった面では、各社のリッチクライアントはUI部品を増やすことで使いやすくなってきている。しかし、ユーザーが求めるニーズはそこだけにあるわけではない。ニーズは多種多様になってきており、今後のリッチクライアントに求められるのは、単にGUIのリッチさや操作性だけではではなくなりそうだ。

住商情報システム株式会社 Curl事業部 システム営業部 大谷卓弥氏

  この点について住商情報システム株式会社 Curl事業部 システム営業部 大谷卓弥氏は次のように説明する。「パッケージ製品に組み込む、自動車工場の製造マニュアルという使い方やEラーニングなど、さまざまな引き合いがあります。クライアントアプリケーションとして見えつつ、Webブラウザの上で提供でき、かつFlashのようなリッチでインタラクティブな要素がお客様に評価いただいているようです」。

 Curlリッチクライアントは、旧来のC/S型システムとまったく同様のスタイルで利用しているケースや、スタンドアロンでの利用ケースもある。また、最近ではWebブラウザを使わないアプリケーションとしての利用も増えてきた。いわば“カバレッジ”の広さが、Curlが評価される理由の1つになってきているようだ。

リッチクライアントが実現するクライアントSOAとは

 カバレッジの広さという観点からすると、Curlはクライアント主導型のサービス志向のアーキテクチャでシステムを構築できる点も興味深い特長だろう。

 CurlはWebサービス対応を容易に実現するWebサービスツールキット(WSDK:Web Service Development Kit)を用意している。これは、WSDLを読み込んでCurlのソースコードに変換、JIT(Just in Time)コンパイラで実行するまでを自動的に行うものだ。Webサービスを利用することで、クライアントはサーバ側のインフラやロジックを意識することなくクライアントとサーバを疎結合できる。Webサービスのインターフェイスをもったサービス同士をクライアントで束ねることが可能だ。

Curlリッチクライアントは、インターネットや企業エンタープライズシステムの区別なく、Webサービスインターフェイスを利用して自在にサービスを束ねて利用することが可能だ (クリックすると拡大表示します)

 これは例えば、既存システムのサーバにWebサービスのインターフェイスを持たせれば、サーバから提供されるサービスをクライアント側で統合・連携できることを意味する。現在のSOA(Service Oriented Architecture)はサーバ側でサービスを束ねる考え方だが、いわば“クライアント主導のSOA”といえるだろう。

 「購買部門と工場の両方の倉庫を一元管理しようとすると、従来はバッチなどで1個所のセンターに集中させて皆で参照する手段を採用していました。しかし、Curlリッチクライアントを使った場合は、購買部門と倉庫それぞれのインターフェイスが分かっていれば、クライアント側で一元管理することが可能になります。データの二重管理やそれにかかる投資コストといった問題が解決できます」(大谷氏)。

住商情報システム株式会社 Curl事業部 システム営業部 三野凡希氏

 購買や生産、在庫といったそれぞれのシステムのデータを1個所に集めるのではなく、情報があるところに残しておく。既存システムはそのままで、クライアントSOAで情報を束ねる。そして、見たいかたちにデータを加工しビジュアライズする。無駄な投資を省く効率的なかたちではないだろうか。

 クライアント主導型のSOAについて、住商情報システム株式会社 Curl事業部 システム営業部 三野凡希氏はこうコメントする。「Webサービスを活用したSOAはサーバ主導型だが、リッチクライアントが提供するクライアント主導型のSOAは、サービスを受けたい人が自在にサービスを選択できるという点でSOAのニーズにマッチしているのではないだろうか」。

 WSDKは無償で試すことができる。http://www.curlap.com/download/tool/index.htmlからダウンロードして評価してみてはどうだろうか。


随時接続コンピューティングやセキュリティなど
多様なニーズにも応えている

 最近の顕著な傾向として、ネットワークインフラに濃淡のある環境でも、それを意識することなくクライアントを利用できることへのニーズが高まっている。クライアントがネットワークから切り離されていても、あたかもネットワークに接続しているかのように利用できる機能を「随時接続コンピューティング(OCC)」と呼ぶ。CurlリッチクライアントはこOCCに対応している。

 ネットワークから切断された状態でもローカルキャッシュに格納されたアプレットを使用し、業務アプリケーションを継続して使用できるのだ。また一方で、 OCCにはネットワークトラフィックを低減させる効果もある。いちど、クライアントPCにファイルがコピーされれば、ユーザーが再度アクセスするときには、クライアント側に存在するアプレットを使用することができる。

 使用するWebアプリケーションや過去データを、ローカルPCから起動し、更新された最新データのみをサーバ経由で取得するという構成が実現可能なため、とくにネットワークの増強や再編成を検討しているユーザにとっては、即効性のあるソリューションといえるだろう。

 また、CurlはOCCへの対応のほかに、高まるセキュリティのニーズにも応える。Curlは、セキュアな状態を保った上で、ローカルリソースへのアクセスが可能になっている。これを生かし、指紋認証装置などのセキュリティデバイスと連携させるケースは非常に増えているという。Web化したのだけれども、やはりそういったデバイスを扱いたいのというユーザーは、今後増えてくるだろう。

 さらには、モバイルでリッチクライアントを使いたいケースや、常時接続でない環境では、アプリケーションをオフラインで利用し、データをローカルに保存したいケースもあるだろう。Curlリッチクライアントはサーバと通信することなくオフラインで利用できるのはもちろんのこと、データの暗号化/複号化が可能なのでローカルマシンにデータを暗号化して保存することが可能だ。従来のWebシステムのセキュリティ対策よりもより安全性や信頼性を高めることができる。選択できるアルゴリズムは現在、3DES、RC2、RC4の3種類がある。

 そのほかには、帳票でも特長あるソリューションを提供している。C/S型システムやWebシステムにおいて帳票を実現する場合、アプリケーションとは別にパッケージを用意したり、独自に作りこむ必要があった。Curlの場合は、Curlアプリケーションを作る環境のみで、オンラインの帳票が実現できる。多くのWebベースの帳票が、帳票作成・指示画面と帳票印刷・プレビュー画面の2画面を必要としていたのに対し、Curlでは出力されるイメージそのままに帳票イメージを作成・閲覧することが可能だ。紙の帳票にペンで文字を書き込むのと同様のことが、オンライン上で可能になる。

 Curlで実現される帳票にはいくつか優位性があるが、自動収縮機能(エラステック)は他のリッチクライアントや帳票ソリューションにはない特長だ。これは表示領域の大きさと内容をダイナミックに調整する機能である。この機能によって、クライアントの画面環境やプリンタ環境に左右されず、ユーザーが指定した印刷サイズに忠実にレイアウトを動的に生成し、印刷することが可能だ(ちなみにエラステック機能はCurlの特許技術である)。

 また、帳票の開発生産性も高そうだ。Curlはオブジェクト指向言語なのでさまざまな業務に共通する帳票の機能を共通部品として開発することが可能だ。例えば入力フィールドのTextFieldクラス、表形式を実現するTableクラスなどを継承し、実装することによって、工数の少ない開発が実現できる。また、より細かなところでは印刷ダイアログを省略したり、プログラム内部で印刷用紙の向きを設定するなど、細かな帳票機能の要件に合わせた印刷機能を実現することもできる。

Webブラウザの限界を超える独立型アプレット

 最後にご紹介するCurlの特長は、WebブラウザやJava Web Startのようなアプレットロードツールを必要とせず、Curlはリッチクライアントを実現できることだ。ショートカットをマウスでクリックするだけで、Webブラウザからは切り離されたアプリケーションを起動できる。これを「独立型アプレット(Detached Applet)」と呼ぶ。

 Webブラウザには本来のアプリケーションとは関係のない[戻る]ボタンをはじめとするさまざまなボタンやメニューがある。それらを排除し、誤操作を防ぐことができるのが最も大きなメリットだ。

ニュース閲覧アプリケーションを独立型アプレットで作成した例。ニュース配信フォーマットであるNews MLを解析し、複数のニュースを検索・閲覧しやすいようにレイアウトして表示するアプリケーション。http://www.curlap.com/products/demo/index.htmlで試すことができる

 ここまで駆け足でCurlリッチクライアントを眺めてきたが、Curlリッチクライアントは、手続き型言語とマークアップ言語のよいとこ取りをした開発自由度が非常に高いCurl言語を用い、バージョン管理や配布をサーバに集約できるクライアントアプリケーションであると表現することもできるだろう。また、HTTP/SOAPで通信可能なため、Webサービスで提供されるあらゆるインターフェイスと自在につなぎ、クライアントをハブとしたSOA型のアプリケーションが構築できるのも大きな特長だ。リッチクライアントというよりも、造語するならあらゆるニーズに応える“マルチクライアント”という呼び方もできるのではないだろうか。

 Curlのより詳しい情報はhttp://www.curlap.com/で読むことができる。また、IDE自体に豊富なドキュメントが用意されており、60日間無償で利用できる。興味を持った読者はぜひダウンロードして評価してみてほしい。


提供:株式会社カール
企画:アイティメディア 営業局
制作:@IT 編集部
掲載内容有効期限:2006年3月19日
 
{Curl} 1日無料セミナーのご案内
Curlソリューションの正しい理解と、高度かつ開発生産性の向上を実現するCurl開発エディタを用いてサンプルプログラムを作成し、Curlによるシステム開発を疑似体験できます。

イベント・セミナー紹介ページへ
(カールのWebサイトへジャンプします)
スケジュール
10:00 受付開始
10:30 Curlソリューションセミナー
11:30 休憩(昼食)
12:30 Curlアプリケーション構築セミナー
・Curl開発エディタの使用方法を学習
・サンプルを元にCurlアプリケーションの開発手順・手法、APIの動作を学習
・表、グラフ、入力画面のダイナミックな連携を学習
16:30 Q&A
17:00 セミナー終了

関連リンク

Webサービス開発キット(WSDK:Web Service Development Kit)ダウンロード

Curlアプリケーション体験(デモプログラム集)

株式会社カール


@ITニュース/関連記事


 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ