SourceForge.JP: Open Source Software

LoginCreate AccountAdd BookmarkHelp

OpenSource Downloads

(7,965) Cabos
(3,068) 7-Zip
(2,483) Tera Term
(2,009) CrystalDiskInfo
(1,669) HandBrake Japanese Language Version
(1,252) CrystalDiskMark
(921) ffdshow
(669) Tween
(667) Boookends
10  (569) Amateras
11  (563) ギコナビ
12  (502) MergeDoc
13  (436) VirtualDubMod-jp
14  (422) えこでこツール
15  (375) SMPlayer
More >>

最近ブックマークされた記事

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

2006年01月16日 11:23
  • スラッシュドットにタレコむ
  • あとで読む
先月、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が同じ影響を音声チャットに与える番である。

原文

Nathan-Willis(2006年1月12日(火))
2007年07月01日 19:05 更新