Google TalkのAPIとソースコードのリリース

Google Talkソフトウェアの心臓部であるlibjingleライブラリがBSDスタイルのライセンスの下にリリースされた。この動きがオープンソースのインスタント・メッセージング・クライアントにとって追い風となることは間違いない。

» 2006年01月18日 09時30分 公開
[Nathan-Willis,japan.linux.com]

 先月、Jabber Software Foundation(JSF)は、Jabber(XMPP)プロトコルの2つのエクステンション、Jingle SignalingとJingle Audioのドキュメントをリリースした。同じ日、この2つのエクステンションの共同開発元であるGoogleは、libjingleというライブラリをBSDスタイルのライセンスの下にリリースした。エクステンションの実装であるlibjingleは、Google Talkソフトウェアの心臓部である。Google Talk本体で使用されるAPIがオープンにされたことと併せて、この2つの動きは、オープンソースのインスタント・メッセージング・クライアントにとっては追い風となり、おそらくSkypeのようなクローズシステムにとっては大きな逆風となるだろう。

 Jingle Signalingは、Jabber Extension Proposal 0166として提案中の技術であり、これをJabberに追加することによってXMPPクライアントからのピアツーピアセッションの開始や管理が可能になり、 SIPサービスやH.323サービスに対するインタフェースが提供される。Jingleは、従来のTransport for Initiating and Negotiating Sessions(TINS)プロトコルのセッション管理機能に代わるものであり(JEP-0111)、Network Address Translation(NAT)トラバーサル機能を備えている。

 JingleのNATトラバーサルモードの動作は、現在IETFのドラフト段階にあるInteractive Connectivity Establishment(ICE)プロトコルに厳密に準拠する。ICEでは、ピア間の最良の接続をネゴシエートするために、使用できるすべての組み合わせを試してどれが最高のパフォーマンスを示すか計測する。試行錯誤にしか聞こえないかもしれないが、この方法の効果は非常に大きい。また、Jingleでは、従来のSimple Traversal of User Datagram Protocol(UDP)Through NAT(STUN)プロトコル(RFC 3489)との接続についてもネゴシエートを試みる。

 Jingle Signalingプロトコルには、あらゆる種類のセッションとネゴシエートできる能力があり、そのリリースには音声チャットセッションフォーマットのJingle Audio(JEP 0167)が含まれる。Jingle Audioセッションは、本来はRTPトランスポートによる通信のために設計されたが(それが最も普及しているプロトコルだからだが)、あらゆる種類のオーディオ・エンコーディング・ストリームがサポートされている。

 事実、Jingle SignalingとJingle Audioの前身は、無料のGoogle Talkチャット・サービスのために設計されたGoogleの社内プロトコルである。JSFはTINSの代わりとなるプロトコルを開発していたが、その初期段階で、Google Talkが同じような機能を持つことに気づいたのである。Jingleは、両者の共同作業の成果だ。

Google化

 JSFからJingle仕様が公開されると同時に、GoogleからはJingle仕様に基づいたGoogle Talk APIがリリースされた。また、ほかのプロプライエタリ製品(Googleの所有するものも含む)のAPI公開は停止されたが、Google Talkの基盤APIのライブラリ実装はオープンソースライセンスの下にリリースされた。Libjingleパッケージには、libjingle(Jingle SignalingとJingle Audioの実装)と、低レベルのコンポーネント群(ピアツーピア接続、ソケットおよびスレッドの作成、XMPP、ストリーミングメディアなどの実装)が含まれる。

 JingleはXMPPを基盤とするので、ほかのXMPP対応アプリケーションでのサポートが期待される。Psiは、緊急の告知を出して、クライアントにJingleサポートを追加すると発表した。また、Gaimの開発者Sean Eganは、Googleの社員だ。libjingleの名前こそ挙げていないが、EganはGaimニュースページにメッセージを投稿し、次のリビジョンでGoogle Talk機能を(音声チャット機能を含め)サポートすることを明らかにした。ほかのIMプロジェクトから公式の発表はないが、推測は盛んに飛び交っている(特にXMPPを既にサポートしているアプリケーションの反応について)。

競争

 プロプライエタリIMクライアントでも、libjingleを利用できる。Berkeleyスタイルのライセンスでリリースされたライブラリだからだ。もちろん、XMPPやそのほかの標準と同様に、AOLやSkypeのような大規模ネットワークがこの新しいプロトコルを採用する見込みは少ない。だが、 Googleがコードを公開したことで、彼らに大きなプレッシャーがかかることは間違いない。

 Googleの方向転換は、SkypeのAPIプログラムとは対照的だ。libjingleの場合、開発者は Google Talkと相互に運用できる独自のソフトウェアを作成できるが、SkypeのAPIを使ってできるのはSkypeアプリケーションの機能を拡張することに限られる。Googleは、従来のXMPPメッセージングに関しては、ほかのXMPPクライアントがGoogle Talkネットワークに接続することを既に認めていた。こういったクライアントは、今後は音声チャットでもGoogle Talkネットワークに接続できるわけだ。

 マルチメディア・チャットやテキストベース・チャットのセットアップ、ネゴシエート、管理のインフラストラクチャは大同小異なので、1つのことはできるがそれ以外はできない、といったアプリケーションは急速に過去のものとなりつつある。

 既に、Google Talkは1つのプロプライエタリIMクライアントにXMPPへの道を開いた(AppleのiChatのことだ)。次は、Jingleが同じ影響を音声チャットに与える番である。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ