Adobe
製品
Creative Suiteファミリー
Photoshopファミリー
Acrobatファミリー
Flash Platform
Digital Marketing Suite
Digital Enterprise Platform
Digital Publishing Suite
その他の製品一覧
ソリューション
コンテンツオーサリング
教育
金融機関
デジタルマーケティングソリューション
その他のソリューション
ラーニング サポート ダウンロード 会社情報
ご購入
アドビストア安心のサポート& サービス
アカデミック版のご購入学生、教職員、個人
ライセンスのご購入企業、教育機関、官公庁
販売パートナー
検索
 
情報 サインイン
ようこそ、 カート 注文状況 ユーザー登録
マイアカウント
サインアウト
サインインの目的 お客様のアカウントや体験版ダウンロード、製品の拡張機能、コミュニティエリアへのアクセスなどを管理するため
Adobe
製品 セクション   検索  
ソリューション 会社情報
サポート ラーニング
サインイン ようこそ、 注文状況 ユーザー登録
Qty:
Subtotal
Checkout
Adobe Developer Connection / Adobe AIRデベロッパーセンター /

コラボGTDツール「Colabolo」に見るAIRのSQLite活用事例

著者 スティルハウス 吉川和巳氏

小林聡史氏

作成日

27 February 2009

ページ ツール

Facebookでシェア
Twitterでツイート
LinkedInでシェア
ブックマーク
印刷

必要条件

ユーザーレベル

初級

不思議なエクスペリエンスのコラボGTDツール「Colabolo」

アドビシステムズのRIA(Rich Internet Application)実行環境である「Adobe AIR」が公開されてからおよそ1年が経過し、国内でも本格的な導入事例が増えつつあります。そのなかでも、AIRの特徴であるローカルDB(SQLite)やメッセージングをフルに活用したAIRクライアントの実装例が、イマヒマの「Colabolo(コラボロ)」です。

図1:コラボレーションGTDツール「Colabolo」
図1:コラボレーションGTDツール「Colabolo」

Colaboloは、イマヒマが2008年9月にベータ版の無償公開を開始したコラボレーションGTD(Get Things Done)ツールです。メール・クライアント風のリッチUIを備えており、Inboxやスマートフォルダ、ドラッグ&ドロップ操作などを利用して、個々の仕事を表す「課題」の作成や絞り込み、状態や優先度の設定、プロジェクトの各メンバーへの割り振りを行えます。その使い勝手は、おおよそiTunesを想像していただければよいでしょう。

図2:コラボGTDツール「Colabolo」
図2:コラボGTDツール「Colabolo」

このColaboloのひとつの特徴は、「デスクトップ・アプリのポータビリティと可用性」も備える点です。一般的なWebアプリケーションは、当然オンライン状態でなければ役に立ちません。しかしColaboloの場合は、唐突にLANケーブルを抜いたとしても表面上はまったく変わりなく利用でき、UIのフリーズやレスポンス低下は皆無です。もちろんメンバーとのリアルタイム連携は途絶えるものの、それ以外の機能やデータはすべて継続して利用でき、例えばネット環境のないミーティング・ルーム、または地下鉄の車内でさえ、GTDの収集や処理、分類、評価といった作業を進められます。つまりは“接続性フリー”なアプリケーションと言えます。

ローカルDB「SQLite」の活用がカギ

そもそもColaboloは、後述するように全機能がローカルDBで実装されているため、Webアプリのようにサーバやネットワークの調子もしくは混み具合によって反応が鈍くなったりダウンしたりすることはありません。このあたりの使い勝手は、WordやExcelといったデスクトップ・アプリそのものです。そしてネットワーク接続が復帰すれば、それまでの更新内容がほかのメンバーにも自動的に反映される仕組みです。

このColaboloをごく短く評するとすれば、「iTunes的なリッチUIとメッセンジャーのスピード感を持ち、Excel並にポータブルなタスク管理ツール」といったところ。この独特のエクスペリエンスを生み出すカギは、AIRのローカルDB「SQLite」の活用にあります。

SQLiteプログラミングは意外と簡単

ご存じのとおりAdobe AIRは、Flash Playerをベースとしたデスクトップ・アプリケーションの実行環境です。AIRがFlashやFlexといった既存のテクノロジーと大きく異なる点、そのひとつは、リレーショナル・データベース「SQLite」がAIRの実行環境そのものに組み込まれていることです。

例えばAIRクライアントでは、以下のようなActionScriptコードを記述することで、簡単にデータベースをオープンすることができます。

var conn:SQLConnection = new SQLConnection(); var dbFile:File = File.applicationStorageDirectory.resolvePath("foo.db"); conn.addEventListener(SQLEvent.OPEN, onDbOpened); conn.addEventListener(SQLErrorEvent.ERROR, errorHandler); conn.open(dbFile);

ここでは、ローカルPC上に保存されたデータベース・ファイルfoo.dbをオープンし、オープン処理が完了したら関数onDbOpenedを呼び出すことが記述されています。つづいて、例えば関数onDbOpenedには以下のようなコードを記述します。

var ss:SQLStatement = new SQLStatement(); ss.sqlConnection = conn; ss.text = "SELECT id, name, email, address FROM employees"; ss.execute(); for each (var record:Object in result.data) { trace(record.id, record.name); }

ここに示したように、SQL文を表すSQLStatementオブジェクトにデータベース接続とSQL文を渡したのち、executeメソッドを呼び出すだけで、SQLiteによるDB検索を実行できます。検索結果の個々のレコードはオブジェクトのかたちで取り出せるという流れです。

SQLiteのパワーをいかに引き出すか

このようにSQLiteは、1つのファイルに全データを格納するというAccessライクな軽量RDBであり、AIRクライアント内部でActionScriptコードを記述することで、比較的手軽に利用できます。その一方で、ひととおりのSQL構文やトランザクション管理をサポートし、性能的にもMySQLにそれほど引けを取りません。すなわちAIRは、クライアント単独でも動作する業務アプリケーションを、上述のような比較的シンプルなコーディングで構築できる能力を備えています。

そしてColaboloのミソは、個々のクライアントが内蔵するSQLite間を同期するレプリケーション機能と、同期のタイミングをリアルタイムに通知し合うメッセージング機能を組み合わせた「リアルタイムDB同期」にあります。これにより、それぞれのAIRクライアントは「個別のデスクトップ・アプリケーション」として完全に独立しつつも、オンライン状態では密接に連携し合って「プロジェクト単位のコラボレーション・ツール」として振る舞うのです。

ColaboloのリアルタイムDB同期は、以下の2種類のサーバによって実現されています。

  • DB同期サーバ
  • メッセージング・サーバ

このうち「DB同期サーバ」は、各メンバーのColaboloクライアントに内蔵されたSQLiteの内容を相互に同期する役割を担います。Colaboloクライアント上のユーザ操作によって何らかのデータが更新されると、DB同期サーバに対して更新データが送信される仕組みです。この同期処理はColaboloクライアントのバックグラウンドで実行されるため、サーバのレスポンス時間がUIのレスポンス性を律することはありません。

このリアルタイムDB同期のメリットはほかにもあります。例えば、DB同期サーバが「デスクトップ・アプリのバックアップ・サーバ」としても機能する点。すべてのデータがサーバ側にも保存されているため、もしクライアントPCがクラッシュした場合でも、Colaboloを再インストールするだけですべてのデータをクライアントへダウンロード可能です。すなわち可用性の面では、単純なWordやExcelのファイルよりも高いのです。また、AIR 1.5以降ではSQLiteのデータベース・ファイルは暗号化されており、かつデータ同期やメッセージングの内容も暗号化することで、WordやExcelのファイルに比べても高度なセキュリティを確保できます。こうした特徴は、Webアプリケーション譲りのメリットと言えるでしょう。

以上、本稿ではイマヒマのコラボGTDツールColaboloを軸に、AIR+SQLiteによって生み出された新しいユーザ・エクスペリエンスとそのメカニズムを紹介しました。ローカルDBが持つポテンシャルの高さを実感していただけたらなら幸いです。

コラム:イマヒマのコラボGTDツール「Colabolo」

イマヒマが2008年9月にベータ版の無償公開を開始した「Colabolo」は、メッセンジャー感覚でリアルタイムに課題(仕事)を共有できるコラボレーションGTD(Get Things Done)ツールです。ビジネス・チームの課題管理、ヘルプデスク、ソフトウェア開発、案件管理、文書のレビューや承認などのさまざまな「チームワーク」に対応し、GTDのアプローチで「さくさくお仕事」を進めるための基盤を提供します。Adobe AIRで実装されたメール・クライアント・ライクなリッチUIを備え、GTDの「処理」や「整理」での振り分け作業をInboxやスマートフォルダ、ドラッグ&ドロップを利用して手早く行えます。

図1.5:ColaboloによるコラボレーションGTDの流れ
図1.5:ColaboloによるコラボレーションGTDの流れ

更新内容はColaboloサーバを通じて瞬時にプロジェクト・メンバーに伝わるため、メッセンジャーや電話と同じスピード感覚でメンバー間の課題のキャッチボールを進められます。またGTDの「収集」のプロセスを支援する機能として、メールと課題を相互に自動変換する「メールto課題」機能や、アップロード時間ゼロ・容量無制限でドラッグ&ドロップによるファイル共有が可能な「ファイル四次元ポケット」機能を備えます。なお、商用版では1ユーザあたり月額3,600円前後での提供を検討しているとのことです。

イマヒマは、日本を拠点としてグローバルに活動するインタラクティブ・メディア・テクノロジーカンパニーです。決済ゲートウェイ「PayMe」や企業用のナレッジワーカー向けソフトウェア「JIRA/Confluence」などのビジネスを国内で展開します。これまでにはiモード版AOLインスタントメッセンジャー、Habboホテル、ハリーポッター公式モバイルサイトの立ち上げや運営の実績を持ちます。

Tutorials and samples

Tutorials

  • Introducing Adobe AIR Launchpad
  • Licensing Adobe AIR applications on Android
  • Developing native extensions for Adobe AIR
  • Uploading images from CameraRoll and CameraUI

Samples

  • Licensing Adobe AIR applications on Android
  • Using web fonts with Adobe AIR 2.5
  • Using Badger for Adobe AIR applications

AIR blogs

More
02/02/2012 AIRKinect Extension is a Native Extension for use with Adobe AIR...
02/01/2012 Microsoft Kinect and Adobe AIR
02/01/2012 New Adobe Flash Player 11.2 beta for Desktops and Adobe AIR 3.2 beta
01/30/2012 Using charts inside Mobile Applications with Adobe AIR

AIR Cookbooks

More
01/20/2012 Skinnable Transform Tool
01/18/2012 Recording webcam video & audio in a flv file on local drive
12/12/2011 Date calculations using 'out-of-the-box' functions
11/29/2011 Button compatibility with NativeComboBox

製品

  • Creative Suiteファミリー
  • Photoshopファミリー
  • Acrobatファミリー
  • Flashプラットフォーム
  • Digital Marketing Suite
  • Digital Enterprise Suite
  • Digital Publishing Suite
  • モバイルアプリ

ソリューション

  • カスタマーエクスペリエンスマネジメント
  • コンテンツオーサリング
  • デジタルマーケティング

業種別ソリューション

  • 教育
  • 金融機関

サポート

  • ヘルプ&サポート
  • 注文と返品
  • ダウンロードに関するヘルプ
  • ユーザー登録に関するヘルプ

ラーニング

  • ADC: Adobe Developer Center
  • Adobe TV
  • Design Magazine
  • Photoshop Magazine
  • Focus In

ご購入方法

  • アドビストア
  • アカデミック版のご購入
  • ライセンスのご購入

ダウンロード

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

会社情報

  • プレスルーム
  • パートナープログラム
  • 企業の社会的責任(英語)
  • 採用情報
  • 投資家の皆様へ(英語)
  • イベント&セミナー
  • Legal(英語)
  • お問い合わせ
国・地域および言語の選択 日本(変更)
国・地域および言語の選択 閉じる

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • España
  • France
  • Deutschland
  • Hrvatska
  • Ireland
  • Israel - English
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • Magyarország
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Österreich - Deutsch
  • Polska
  • Portugal
  • România
  • Россия
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Slovenija
  • Slovensko
  • Srbija
  • Suomi
  • Sverige
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • Pacific - English
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2011年9月30日更新)にご同意いただいたものとみなされます。

Reviewed by TRUSTe: site privacy statement