ではいよいよ、Cocomoを用いたプログラムの簡単な例を取り上げて、Cocomoが提供するものを具体的に探って行こう。
以下に示すのは、冒頭にも示したホワイトボードのサンプルだ。同じルームにログインしたユーザ内で共有できる。
このサンプルのソースコードを以下に示す。
リスト1: WhiteBoardExample.mxml
<?xml version="1.0" encoding="utf-8"?>
<!--
(1) 「xmlns:rtc」属性を指定し、Cocomoの名前空間を参照する
-->
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:rtc="CocomoNameSpace">
<!--
(2) Acrobat.comへの認証を行うオブジェクト
-->
<rtc:AdobeHSAuthenticator
id="auth"
userName="AdobeIDをここに記述"
password="パスワードをここに記述" />
<!--
(3) このタグに囲まれたコンポーネントは、ログインセッションに
関連付けられる。
-->
<rtc:ConnectSessionContainer
roomURL="http://connectnow.acrobat.com/shumpei/test"
id="cSession"
authenticator="{auth}">
<mx:Panel width="640" height="480">
<!--
(4) ホワイトボード
-->
<rtc:SharedWhiteBoard width="100%" height="100%"/>
</mx:Panel>
</rtc:ConnectSessionContainer>
</mx:Application>
以下に、コメント内に番号で示した箇所について、さらに詳しく解説を行う。
(1) 「xmlns:rtc="CocomoNameSpace"」と言う属性宣言をルートタグで行い、CocomoのコンポーネントをMXMLファイル内で参照可能にする。「RTC」とは、「Realtime Collaboration」の略。
(2) 「com.adobe.rtc.authentication.AdobeHSAuthenticator」を用いると、Adobe IDを用いた認証を行えるだけではなく、外部システムを用いた自前の認証メカニズムも使用できる。ここでは、userName属性とpassword属性にAdobe IDとパスワードを直接指定することにより認証を行う。パスワードを平文で記述することから、セキュリティの観点からは非常に問題のある方法だ。開発時以外には使用しない方がよい。
(3) 「com.adobe.rtc.session.ConnectSessionContainer」は、ルームのURLと認証用オブジェクトを指定することで、このタグに囲まれたすべてのコンポーネントをログインセッションに関連づけるためのコンテナだ。CocomoのUIコンポーネントはすべて、何らかの認証を必要とするので、このタグは非常に利用価値が高い。
(4) 実際にホワイトボードを表示しているのがこの部分だ。なんと、「com.adobe.rtc.pods.SharedWhiteBoard」をタグとして記述するだけでホワイトボードは完成だ。Cocomoの強力さを感じ取っていただけるのではないだろうか。SharedWhiteBoardは、Cocomoでは「Pod」と呼ばれる最も高レベルなコンポーネントのひとつ。Podにはほかにも、チャットやWebカメラ、ファイル共有フォーム、同時編集可能なノートなどが存在する。
このように、たった数十行のアプリケーションを書くだけで、複数ユーザが同時に作業を行えるような高度なアプリケーションを作成することができる。恐ろしいほどの生産能力だ。