Telepathy(
テレパシー)は、インスタントメッセージング(IM)、Voice over IP(
VoIP)、
ビデオ会議といったリアルタイムコミュニケーション機能を持つソフトウェアを開発するための
アプリケーションフレームワークです。このフレームワークの主な目的は、異なるアプリケーションとネットワークプロトコル間の境界を明確にし、コミュニケーションソフトウェアの開発を容易にすること、そしてオープンソース開発者によるコードの再利用を促進することです。
Telepathyは、
D-Busプロセス間通信メカニズムを利用して、コンポーネントベースのコミュニケーションソフトウェアを構築します。これにより、開発者は特定のプロトコルや実装の詳細に捉われることなく、高レベルの機能に集中できます。Telepathyのアーキテクチャでは、各ネットワークプロトコルを独立したプラグインとして扱うことが可能で、柔軟で拡張性の高いシステムが構築できます。
Telepathyのプロトコル実装例
Telepathyのインターフェースを提供する様々なプロトコルが、自由ソフトウェアとして実装されています。以下はその例です。
Gabble: XMPP(Extensible Messaging and Presence Protocol)のオープンソース実装で、インスタントメッセージングサーバーとして利用されます。JingleというXMPPの拡張機能もサポートしています。
Butterfly: かつて広く利用されていたMSN Messengerプロトコルに対応しています。
Idle: Internet Relay Chat(IRC)プロトコルに対応し、チャット機能を提供します。
Salut: リンクローカルなXMPPプロトコルに対応しています。
Haze: Pidginで使用されるlibpurpleライブラリを介して様々なプロトコルにアクセスするためのインターフェースを提供します。このプロジェクトは、2007年のGoogle Summer of Codeの一環として開発されました。
Telepathy-SofiaSIP: NokiaのオープンソースライブラリであるSofia-SIPを利用して、セッション確立プロトコルをサポートします。
ミッション・コントロール
Telepathyでは、接続マネージャなどの低レベルコンポーネントの詳細をアプリケーションに提示するためのコンポーネントとして、ミッション・コントロールがあります。これにより、アプリケーションはネットワーク接続やプロトコルの詳細を抽象化し、より使いやすいインターフェースを提供できます。
Telepathyの活用例
Telepathyを利用した基本的な
インスタントメッセンジャーとビデオ通話ソフトウェアは、Nokia 770、N800、N810などのNokia製携帯電話に搭載されています。また、
MaemoやOpenMokoといった
スマートフォンプラットフォームの一部としても採用されています。
プロトコルの実装と接続
Telepathyでは、各プロトコルは「接続マネージャ」と呼ばれる
D-Busサービスとして実装されます。Telepathyクライアントは、この実装されたプロトコルを使用してサービスに接続し、その後のコミュニケーションは、接続によって要求される「チャンネル」と呼ばれるオブジェクトを介して行われます。チャンネルには、テキストメッセージの送受信、コンタクトリストの表示、IP電話などが含まれます。
関連アプリケーション
Telepathyフレームワークを利用したアプリケーションには、以下のようなものがあります。
Landell
Tapioca
Empathy
Decibel
外部リンク
Telepathyプロジェクトのウェブサイト
Telepathyの開発代表者Robert McQueenによるスピーチ
脚注
これらの情報を参考に、Telepathyの理解を深めていただければ幸いです。Telepathyは、コミュニケーションソフトウェア開発を容易にする強力なツールであり、今後も多くのプロジェクトで活用されることが期待されます。