-サーバ連携方法、オープンソースの使い方など様々なCurlの実際のソースコードの記述方法が集約されています。2011その5:Curlの凄いところ!「地下鉄でも新幹線でも大丈夫!Curlオフライン機能」こんばんは!マーケティングの三野です。「表現力!ユーザーインタフェースのアニメーションと2D、3D表現」についてについて説明させてもらいましたが今回はCurlの凄いところの第三弾としてCurlの「オフライン機能」についてお話させていただきます。1.地下鉄や新幹線でよく見かける悲しい光景CurlはWebを前提としたRIAアプリケーションやモバイルアプリケーションを構築するための技術ですが、Webを前提としたアプリケーションは運用面でのメリットやどこでも使えることなど多くのメリッ​トがある一方でネットワークやサーバーにつながっていなければ使えないということを皆さんご承知でしょうか?あたりまえといわれそうですが(笑)私は今会社まで地下鉄一本で通っていますが、周りを見渡すとこんな面白い光景を目にします。電車が移動中は手にスマートフォンを持っているがなにもしてない。駅に止まると同時にみんなが一斉にスマートフォンをいじりまくる(笑)これは僕もなんですが、移動中は地下なのでネットワークにつながらないのでブラウジングやモバイルアプリが操作できないんですよね。あるアプリなんかでは画面がグルグルしたまんまでなにもできない。PCでも同じことがあります。出張ではよく新幹線を使うのですが、たとえば携帯型Wifi端末などでは移動中は途切れ途切れ。新幹線内の無線LANも非常に遅いですよね。業務系のアプリケーションなどはこのような問題に対して、出張先ではExcelで入力し、帰社したら再度転記することや、障害時にはファックスなどによる運用のみにするなどで対応しているケースや、そもそ​もWebシステムにしないなど様々あるかと思います。Computing)と呼んでいるオフライン機能を提供しています。提供してから早9年が経ちました。CurlのRIAアプリケーションにおけるオフライン機能(OCC機能)は他ベンダーから提供されているインストール型のデスクトップアプリではなく、オンライン/オフラインが同じアプリケーションで実現できる機能を​提供しております。管理の面でもそのために二重管理になりません。簡単に機能を説明しますとWebサーバーにあるCurlコンテンツのコピーをPCのサンドボックス内におき、オフラインの場合はそれを起動する仕組みです。RTEにオンラインかオフラインかの判定をするぐらいの違いで、OCCアプリケーションは必ずクライアントから起動するわけではなくオンラインのときはWebサーバーから​起動するので通常のCurlアプリケーションと同じなのです!この点が他のインストール型のRIAデスクトップアプリと違う点です。4.アーキテクチャの違い-データの取り扱いOCC機能ではコンテンツをローカルにコピーし、オンライン/オフラインによって起動されるアプリケーションを切り換えるものですが、実際のアプリケーションではアーキテ​クチャとして通常のオンラインを前提としたRIAの場合とオフライン機能を使ったRIAの場合では違いがあります。上の図の左右の図を比べてもらえばお分かりのように大きな違いは「データ」に関する取り扱いの部分です。通常RIAアプリケーションでも、またWebアプリケーションでもデータはサーバーで一括管理されております。オフラインの場合はその「データ」にアクセスができないわけですからローカルになにかしらのDBやデータを保持しておかなくてはなりません。その場合、つねに普遍的なデータであれば問題なく運用できますが、常に追加される明細データのようなものや、マスターデータはどのように運用したらよいのでしょうか?そこ​で必要となるのが「データの同期」です。CurlのオフラインアーキテクチャではDB同期にリアルタイム方式やポーリング方式、またイベントによる同期と様々なアーキテクチャを選択できるようになっています。ローカルにデータベースを配置することでクライアント側のビジネスロジックも容易に構築できるようになっており、SQLiteやのMS-AccessなどのようなADO接続が可能なDBにアクセスすることができるようになっています。5.モバイルアプリケーション-Caedeの場合Caedeを使用したモバイルアプリケーションの場合では通常インストール型アプリケーションになるため、若干RIAの場合と違いがありますが、オフラインでももちろん動かせますし、またローカルDBへのアクセスやデバイスのアクセスもできるので、基本的なアーキテクチャは同じ設計ができます。正式リリースを期待しててください!余談もしかすると今年度中にオフラインモデルをさらに進化させたソリューションを発表するかもしれません!今はまだ語れませんがそちらについても期待しててください!ではまたまた。