Curlは次世代Webプラットフォームとして標榜し、その生い立ちは、米国マサチューセッツ工科大学(MIT)の研究室からになります。1995年に米国の国防総省(DARPA)は、将来のインターネット社会で標準となるリッチクライアント言語の研究にMITへ補助金を出資しました。その後、1998年にMITの研究員12名が米国Curl社を設立し、現在のCurlがあります。
Curlは大きく分けて「Curl言語」、「開発環境」、「実行エンジン」、「開発ライブラリ」を提供しております。
デスクトップアプリケーション、クライアント・サーバシステム以上の複雑な操作性を実現できます。
エンタープライズシステムを進化させるためには、従来型のレガシーシステムやクライアント・サーバシステムと同等もしくはそれ以上の「ユーザの操作性及び生産性」が必須となります。Curlなら既存システムの操作性を継続したまま、さらに高い生産性を実現するユーザインターフェイスを追求することができます。

Curlは高度なGUIシステムを持ち合わせ、オーディオや、2D、3Dのグラフィックをサポートし、より豊かなグラフィックと、いっそう魅力的なコンテンツを提供することができます。また、各キー(ファンクションキーやTabキーなど)の設定やポータルレイアウトの作成にも柔軟に対応できます。単純なインターフェイスのデザイン性の向上に留まらず、クライアント・サーバ型同様複雑なユーザビリティを維持し、ユーザの業務効率を向上させることが可能です。
またサービスとして提供されている「V2C」を使用すれば、画面レイアウトへのマイグレーションはほぼ100%となり開発者はビジネスロジックを実装することに集中できます。
既存のクライアントアプリケーションやハードウエアデバイスと連携できます。
エンタープライズシステムでは様々なデバイスやアプリケーションと連携する必要があります。例えば、指紋認証デバイスとの連携によるセキュリティの確保や、RFIDやバーコードリーダーとの連携などの必要性もあるでしょう。しかし、一般的なWebアプリケーション環境ではそれが不可能です。Curlならクライアント資源との連携が、Curlだけで実現することが可能です。

Curlは、SharedLibraryやWindowsAPIをコールできる標準APIを提供しております。これにより、多くのユーザが使用するMs-ExcelやWordなどのアプリケーションデータとも連携を可能にし、また細かな制御が必要なプリンタやデバイスと連携できるようになっています。
デスクトップアプリケーション、レガシーシステム、クライアント・サーバシステム同様の膨大なデータ量を操作できます。
エンタープライズシステムのほとんど全てが「データドリブンアプリケーション」です。エンタープライズシステムでは高い膨大なデータを効率的に処理、表示、編集する必要があります。Curlは大量のデータを扱うために、実行エンジンやJITコンパイラを最適なものに構築されております。

CurlはPCのCPU、メモリを最大限生かし、大量のデータをデータセット領域に一時的に格納することによって、あたかも「ローカルデータベース」かのように大量データを扱うことができます。それらはデータベースにあるような「insert」「update」から「rollback」などにいたるまで様々な機能が付いており、例えばマスターデータハンドリングなどにおいては毎回、サービスから取得する必要もなくなります。
またプレゼンテーションにおいても、大量のデータを表示編集できる「レコードグリッド」というスプレッドやチャートといったものもあります。Excelでは最大表示数が65000行で256カラムなのに対し、Curlの場合には制限はございません。10万レコードのデータを表示・編集するアプリケーションを構築することも可能です。
クライアントサイドで複雑な帳票レイアウト生成から印刷まで行うことができます。
日本の商業文化において重要なものに帳票があります。帳票の種類は様々ですが、帳票設計・構築において問題となる点は帳票サーバの負荷や帳票開発技術における統一性の無さです。CurlはCurl言語だけでオンライン帳票のレイアウトが構築でき、印刷することができます。

Curlで実現される帳票レイアウトは全てCurl言語で開発することができます。また印刷についても標準APIでプリンタの制御まで含めて実現することができるようになっています。これはオフライン時においても有効です。オフラインであってもクライアント側で帳票を構築・印刷ができるため障害時に強い帳票システムを構築することが可能となります。
また、帳票システムは一般的に非常にサーバコストが高くなりますが、Curlで帳票システムを構築すればサーバコストの削減に大きく貢献できます。
最小のソースコード量で、最大のパフォーマンスをあらゆるプラットフォームで実現されます。
企業のIT環境というものは様々です。例えば通信環境が不安定であったり、回線速度が遅かったり、また、PCのスペックやOSのバージョンが様々であったり色々です。また、アプリケーションユーザの増加に伴い、アプリケーションサーバの増強を強いられるケースも多くあるかと思います。

Curlはこのような様々なIT環境において、最も最適なプラットフォームです。
Curlの実行の仕組みはソースコードをWedサーバに配置しダウンロードし、クライアントサイドでJIT(Just in time)コンパイルすることにより実行されます。
これは、他の技術がコンパイル済みのバイナリ形式やHTMLなどの数メガバイトをダウンロードし実行するのに対し、数バイトのダウンロードサイズで済むのでINS64のような低速回線においてもユーザを待たせることはありません。
また、Curlのアプリケーションはコンパイル後にクライアントのCPU、Memoryを最大限に生かし動作するため、デスクトップアプリケーションと同等以上のパフォーマンスを提供することができます。このことは通常のWebアプリケーションがアプリケーションサーバで集中処理を行うため、ユーザの増加が原因でパフォーマンスが低下するのに対し、処理をクライアントに分散できることもメリットといえます。
既存の異種システムやWebサービスを統合することができます。
現在の企業のシステム環境は、様々なプラットフォームで作られたシステムやまた取引先業者のシステムと連携する必要が多くあります。しかし一般的なサーバ主導のSOAのように、巨額の投資を行ってサーバ側のメッセージインフラを整備するアーキテクチャは初期投資の大きさに対するROI(投資対効果)が不透明であり一向に普及しないでいます。
Curlはエンタープライズアプリケーションの重要な要素であるユーザインターフェイスを構築できるツールであると同時に、部門ごとに分断されたシステムやサービス・アプリケーションを統合するクライアントSOAを実現します。

Curlはクライアント側でサービスの統合及びオーケストレーションを実現するライトウェイトなSOAを実現します。これによりユーザインターフェイスの向上のみならず、サーバ主導のSOAよりもTCOを格段に削減することができます。
Curlはさまざまなサービス、業務システムをWebAPIやRSS、XML、SOAP、RESTなどの業界標準のインターフェースでエンタープライズマッシュアップすることができます。
さらにオープンソースの開発環境として提供しているWebServiceSDKのWebサービスインタフェースの自動ジェネレイト機能を使用してエンタープライズシステムのサービスに対し簡単にクライアント結合することができます。
これを使用すればサービスを結合するためのインタフェース開発は不要になり、業務プロセスの統廃合などに迅速に対応することができるようになります。
ユーザ端末からの情報漏えい防止やセキュリティを確保するとともに高い操作性を保持できます。
CIOが現在最も重視するセキュリティ・情報漏えい対策においても、Curlであれば堅牢なセキュリティを実現することができます。
例えば通信データの暗号化やメッセージダイジェスト、圧縮といったことはもちろん、それ以上に問題となっているアプリケーションに表示されたデータなどをハードディスクに保存、あるいは印刷できてしまうことにも容易に対応することができます。

従来のデスクトップアプリケーションやブラウザベースのアプリケーションでは、コンテンツの保存やハードコピー、印刷を制御することはできませんでしたが、Curlなら制御することができます。もちろんコピーアンドペーストなどによって生じるローカルディスクへの情報出力も制御できます。ただし、このセキュリティ機能によって操作性が落ちてしまっては生産性が下がるのは目に見えています。その場合はCurlアプリケーション内においてはコピー・貼り付けを可能としCurl外では全て制御することで解決できます。また、暗号アルゴリズムにはRC2、RC4、3DESを、メッセージダイジェストにはMD5、SHA-1を標準APIとして用意しております。
障害による業務完全停止の防止や、不安定なネットワーク環境下においてもアプリケーションを継続することができます。
Webシステムの場合、ネットワークの障害やサーバアクセス集中のためのSessionタイムアウトでアプリケーションを再起動し再度ログイン、再入力などするケースがWebアプリケーションにはあります。これはエンタープライズアプリケーションの場合、多大な損失が発生することがあり、多くのWebシステム開発者が頭を悩ませています。またOSの変更やブラウザのアップデート、また実行エンジンのアップデートによりシステムが稼動しなくなるといった危険性もあります。Curlを使用すればこのような状況を解決することができます。

Curlなら営業先あるいは出張先で営業情報を入力したい、あるいは一時的に保存しておきたいなどの場合オフライン機能(随時接続コンピューティング:OCC)とパーシステントストレージという一時データ領域を使用することで実現できます。デスクトップアプリーションと違うのは、アプリケーションはサーバ一括管理されておりデータもサービス経由でデータベースにあることです。Curlのオフライン機能は自動的にオンライン/オフラインを判別しキャッシュから起動します。
Curlはユーザ環境への安全確保とともに柔軟性を兼ね備えております。
RIAやWebテクノロジーベースのデスクトップアプリケーションにより、様々なアプリケーションが利用できるようになりました。しかし、セッションハイジャックやクロスサイトスクリプティングやローカルアクセスなどユーザ情報を取得するなどの攻撃に対策を講じるのに非常にコストがかかります。しかしCurl RTEプラットフォーム上で操作するRIAアプリケーションはユーザに高い信頼性とセキュリティを提供することができます。
Curl RTEにはセキュリティに関する制限があり、これによってCurlアプレットがユーザのシステムに害を与えたり、個人情報に立ち入るのを阻止します。これらの制限は、Curlアプレットによる障害の発生を防ぎつつ最大限の柔軟性を開発者に与えるように慎重に設計されています。
例えば、ファイルの読み込み/書き込みなど、一般的に必要とされるが安全でない可能性のある操作については、それを行う前にCurl RTEによってユーザに許可(ポップアップメッセージ)が求められます。これは、常に許可したり、逆に常に禁止したりするよりも良い方法です。ただし企業内システムのように信頼しても問題ないCurlアプレットについては、毎回同じ作業(例えばファイル読み込みなど)でユーザ許可が求められると業務効率から見て不都合が生じてきます。その場合はそのCurlアプレットに対しセキュリティ解除、あるいはレベルを下げる「特権」というものをユーザによって与えることが可能です。

「特権」とは字の通り「特別な権利を与える」という意味で、対象となるCurlアプレットに対しこの「特権」を与えると、CurlアプレットはローカルファイルへのアクセスやActiveXの制御なども行うことができるようになります。これによりデスクトップアプリケーションと同等の振る舞いが可能になります。
Curlはこのように高いセキュリティを保ちつつ、最大限の柔軟性や操作性を実現することができるように設計されています。
Curlの実行エンジンはバージョンアップしてもアプリケーションが動作しなくなることはありません。
一般的に、アプリケーションを動作させるエンジンやプラットフォームのバージョンアップは、多くの問題を引き起こします。
例えば、ブラウザのバージョンやセキュリティパッチも既存アプリケーションが正常に動作しなくなる原因となるケースもあり、またプラグインなどのバージョンアップ(上書き・更新)によっても、アプリケーションの動作に影響を及ぼすケースは少なくありません。

Curlの実行エンジンCurl RTEは、マルチOS(Windows、Mac、Linux)をサポートするだけでなく、新しいバージョンをアッド(差分追加)する仕組みとなっています。
これによりCurlは、クライアント環境に複数のCurl RTEを混在させることが可能であり、これが長期的な運用を考慮した際に非常に有効となります。
初期に開発したバージョンと、新規に作成するアプリケーションで利用するバージョンが異なる場合でも、問題なく動作することができます。
これは、パッケージベンダー様やASPベンダー様にとっても、お客様環境に入っているCurlの環境を気にすることなく、最新のバージョンを利用することが可能であることを意味します。
数千種類の標準APIと強力なオブジェクト指向言語のCurlだけで高い開発生産性を実現できます。
現在のWebアプリケーションは複数のWeb言語を組み合わせて構築されており、それらを統合することは大きな手間とコストが発生します。CurlはHTMLやJavaScript、C++、Flash、帳票作成ツールのようなそれぞれが持つ機能を、Curl言語ひとつだけで実現することができます。

Curl言語の持つ機能は、テキスト記述やスクリプト言語としての特性、また2D/3D、アニメーションまでも実現する次世代Web開発言語です。またCurl言語はJavaのようにオブジェクト指向言語となっており高い生産性・再利用性を誇っています。

それに加えて開発環境のCurl Pro/IDEやユーザインターフェイス開発ツールのVisual Layout Editorを使用すれば、さらに効率的に開発を進めることができます。
特にVisual Layout Editorを使用した場合は、ドラッグ&ドロップベースのノンコーティング開発スタイルとなり、標準コントロールを拡張した独自コントロールや独自テンプレートレイアウトを登録することにより、さらに生産性の向上が見込まれます。
また、Curlは開発用ライブラリも充実しております。SOAには欠かせないWebサービスとのインフェースコードを自動生成するWSDKやローカルデータベースとの連携をシームレスに行えるCDK、さらにサーバアプリケーションとの連携をシームレスにするORBなど開発生産性を向上させるツールを提供しております。
