Curlとは

■Curl カールとは?
その生い立ちは1995年に来るべきインターネット社会を予測して米国マサチューセッツ工科大学(MIT)にて米国国防総省(DARPA)との共同プロジェクトにより、インターネットの次世代標準となるべく本格的リッチクライアント言語の研究開発が始まりです。

HTMLでは実現できないユーザビリティに優れた高度なWebベースコンテンツを作成する為に誕生した新しい言語です。その為に当初はブラウザー上で動作するアプレットとしての実行のみでしたが2005年リリースされた新バージョン「Curl Ver.4.0(日本語版)」よりDetached Applet(独立型アプレット)として独立したウィンドウでの実行も可能になりました。これによりクライアント上で動作するリッチクライアントとしての可能性が広まりました。

詳しくはメーカーのホームページもご覧ください。>>  株式会社カール

■Curlの優位性
近年まで生産性や配布が容易な事もありクライアント/サーバー型のシステムはJSPやServletなどサーバーサイドのテクノロジーを使用してエンドユーザーのオペレーション環境が提供されてきました。 やがて求められる情報はリアルタイム性のあるよりクリティカルな内容となり画面を構成する膨大な情報はネットワーク基盤を圧迫しレスポンスにも影響を与えてきました。
問題の山積はサーバーやネットワークなどのハードウェアインフラの初期投資やランニングコストを上げることで対応せざるえずシステム開発に要求される高い生産性やクライアント資源の活用は急務となっています。
また操作性の問題などからSwingや独自プラットフォームによるブラウザーベースのリッチクライアント・ソフトウェアが市場に登場してきましたが開発言語、ツール特有の開発/実行環境などは習得に時間を要して期待していたほどの生産性は発揮されていませんでした。 Curlではどの様な点が優位なのか

 最先端のオブジェクト指向言語

Curlはスクリプト言語ではなくコンテンツ生成、2次元/3次元グラフィック処理、Webサービスなど多くの機能を備えた完全なオブジェクト指向に基づいた言語です。非常に多くのプリミティブ型を始め数量や単位を表すSI 標準単位系のデータセット、多重継承をサポートするクラスやインスタンス化が不要なプロシージャなど言語としての生産性が高く習得にも時間が掛かりません。
また全て言語で機能を実装しているのでツール特有のブラックボックス化による制約などがなくフロンサイドのIT基盤としては最適です。

 統合開発環境

Curlはクライアント上に動作させるランタイムエンジンとして Surge RTE が必要になります。開発環境としてはSurge Lab IDEが提供され画面やコンポーネントを作成するビジュアルレイアウトエディタ(以下VLE)、コーディング、デバック、実行中のオブジェクト状態を確認するインスペクタなどのテキストエディタで構成されています。開発からデバック、実行が1つの環境で実現します。



 ドキュメンテーションの充実

初めてCurlを導入し実際に挙動を確認できるドキュメンテーションをご覧になると驚かれるかもしれません。以下はSurge Lab IDEに付属しているドキュメント画面の例となりますが大半の説明にはドキュメント上で実際にサンプルコードが実行されています。ソースを修正して実行ボタンを押下すると画面にその結果を表示できます。これは文章を読んだ記憶のみでは無く実際に動作させながら体験する事で望んでいる機能やパラメータの違いによる反応を確認する事が可能です。



 SOAPクライアント

Curlは4.0よりWeb Service Development Kit(以下WSDK)と呼ばれるツールが提供されています。これはアプリケーションサーバー等に配置されたWebサービスとのインターフェースを生成する機能が実装されています。利用可能もしくは新しく作成したWebサービスから生成されたWSDLファイルを読み込みクライアント画面などから簡単に呼び出し結果を得る事が出来ます。これによりエンタープライズ基盤上など既存のIT基盤を無駄にする事が無く最利用する事で低コストのユーザービリティに優れたオペレーティング環境が実現できます。

【WSDLファイルからCurlプログラムを自動生成】
・WEBサービスを定義するWSDLファイルを元にそのWEBサービスと通信を行うためのCURLクラスを自動的に生成する
・通信用(同期/非同期の両方)と、データクラスなどを生成
・XmethodsやPocketSOAPのWSDLに対応

【XMLドキュメントモデルパッケージ】
・XMLをドキュメントモデルとして容易にハンドリングが可能
・XMLSchemaをサポートし、RSS(1.0,2.0)などXMLの拡張フォーマットに対応
・Xpathに対応し、モデル内の捜査、変更が容易
・Curlコントロールへのバインディング機能を実装
・Curlオブジェクト(RecordSetなど)へのエラボレート(変換)が可能

【XHTMLコンバータ】
・XHTML で作成されたファイルを動的にCurlのコードに自動コンバートし、その場でCurlのコンテンツとして表示


 コストパフォーマンス

通常はサーバライセンス(EPS1)URL(ホスト名)単位にライセンス・キーが発行されます。ここで重要なのが使用するユーザ数、端末数、配置されるアプリケーションの数には依存していない点です。ロードバランサー(負荷分散機)の下に複数のサーバを配置する場合にも、URLが1本に集約されていれば、追加ライセンスは発生しません。これはライセンスの管理をCurlモジュールを配布するサーバーのホスト名(ドメイン)単位となっている為です。

このサーバーライセンスはクライアントにキャッシュされたモジュールが最新なのかを管理する為に必要で配布を前提としない場合には必要ありません。.Netなどのスマートクライアントホストとして利用する際に利用するものです。

市場に出回っている多くの製品はクライアントもしくはサーバーCPU単位の課金が発生するのに対し中規模もしくは大規模なシステムでもイニシャルコストが抑えられる事を意味しています。 年間使用料については初年度より発生します。ライセンスの使用期間はご購入いただいた月の翌月1日起算日とし1年間とします。価格体系につきましては最新の情報をメーカーに問い合わせてください。

詳しくはメーカーのホームページもご覧ください。>>  Curl実行ライセンスについて

■無料のWEBトレーニングを公開しています

無償のCurlトレーニングを公開しています。リッチクライアントの導入をご検討されているソリューションベンダーが必要とされる情報を随時に掲載していきますので是非ご利用ください。

詳しくはこちらをご覧ください。>>  Curlテクノロジー

■コラム1 WebLogic8.1で作成したEJBをWebサービス化するには

WebLogicなどで作成したEJBコンポーネントやインスタンス化する事で実行可能なクラスはビルド時に自動でWebサービス化する事が可能です。これはBeaより提供されているWebLogicのAntタスクから呼び出す事ができ同時にWSDLファイルの出力も行えます。

以下はWebLogic8.1以降のAntで実行するbuild.xmlファイルの一部を掲載しました。実際にどの様に実現するのか見てみましょう。
上記の例ではpackage-webservice-warターゲットよりservicegen タスクが実行されています。 serviceName属性にて指定したCustomerServiceというWebサービスが生成されます。この時点でWebサービス用のWARファイルが作成され中には実行と配置に必要なClassファイルの他にweb-services.xmlが格納されます。

またwsdlターゲットではwsdlgen タスクが実行されています。serviceName属性に指定されたサービスの内容を検査してwsdlFile属性で指定したファイル名にてWSDLファイルが出力されます。



次回のコラムでは生成したWSDLファイルからWSDKを使用する例をご覧頂きます。