(57)【要約】      （修正有）【課題】  リアルタイムのマルチメディア情報を効率的にルーティングするシステムを提供する。【解決手段】  メッセージのルーティングのために最適化された特殊目的コンポーネントであるマルチコントロールユニットコネクタを設定および使用することにより、リアルタイムのマルチメディア情報を含んだメッセージを効率的にルーティングする。コンピューティングデバイスは、複数のコネクタを使用して、そのコンピューティングデバイスのリソースまたは他のコンピューティングデバイスとの接続を同時に動的に作成することができる。コネクタは、ミキサ、リフレクタ、またはセレクタなど、動作のモードも有することができる。これら各種のモードと役割を使用することにより、このシステムを使用して、異種のコンピューティングデバイスのユーザに意味をなす提示をするためにマルチメディア情報を組み合わせ、効率的にルーティングすることができる。【選択図】  図４
2006018809.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイムのマルチメディア情報のルーティングに関連するアプリケーションプログラムインタフェースを実施する命令を有するコンピュータ読み取り可能な記録媒体であって、前記命令は、
入力と出力との間のルートを表す接続を作成するために、他のソフトウェアコンポーネントに接続することが可能なソフトウェアコンポーネントと、
モードを設定するコンポーネントと、
入力でデータを受け取るコンポーネントと、
設定された前記モードに基づいて、受け取った前記データの処理を行うコンポーネントと、
処理された前記データを、前記データが受け取られた前記入力に指示された出力に転送するコンポーネントと
を備えたことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２】
前記モードがミキサに設定された時、前記処理は、指示された前記出力に転送するために複数の入力を混合することを含むことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項３】
前記出力に対して複数の入力が指示されることを特徴とする請求項２に記載のコンピュータ読み取り可能な記録媒体。
【請求項４】
受け取られた前記データがオーディオである時、前記混合は、オーディオ情報を組み合わせることを含むことを特徴とする請求項２に記載のコンピュータ読み取り可能な記録媒体。
【請求項５】
前記組み合わせることは、前記データが生成された時間の指示を分析することを含むことを特徴とする請求項４に記載のコンピュータ読み取り可能な記録媒体。
【請求項６】
受け取られた前記データがビデオである時、前記混合は、ビデオ情報を組み合わせることを含むことを特徴とする請求項２に記載のコンピュータ読み取り可能な記録媒体。
【請求項７】
前記組み合わせることは、入力でデータとして受け取られたビデオ情報を、別の入力でデータとして受け取られたビデオ情報の内側に表示されるウィンドウ内に配置することを含むことを特徴とする請求項６に記載のコンピュータ読み取り可能な記録媒体。
【請求項８】
前記組み合わせることは、入力でデータとして受け取られたビデオ情報を、別の入力でデータとして受け取られたビデオ情報に隣接して配置することを含むことを特徴とする請求項６に記載のコンピュータ読み取り可能な記録媒体。
【請求項９】
前記モードがリフレクタに設定された時、前記処理は、受け取った前記データを指示される前記出力に転送することを含むことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記モードがセレクタに設定された時、前記処理は、１つの入力で受け取られるデータを転送し、他の入力で受け取られるデータを無視することを含むことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項１１】
リアルタイムのマルチメディア情報をルーティングするコンピュータシステムによって行われる方法であって、前記コンピュータシステムは、ソフトウェアコンポーネントに接続することが可能なソフトウェアとして実施されるコネクタを有し、前記方法は、
入力と出力を指定するルーティング情報を受け取るステップと、
モードの指示を受け取るステップと、
前記ルーティング情報と前記モードに基づいて前記コネクタを設定するステップと、
前記設定に基づいて前記コネクタの入力で受け取られるデータを前記コネクタの出力に転送するステップと
を備えることを特徴とする方法。
【請求項１２】
指示された前記モードに基づいて、受け取られた前記データを処理するステップを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記モードがミキサである時、前記処理するステップは、受け取られた前記データを混合するステップを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
オーディオ情報を混合するステップを含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
同時に話をする複数の参加者のオーディオ情報を含むデータが受信された時、話者のコンピューティングデバイスに転送されるデータは、前記話者を除くすべての参加者のオーディオ情報を含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
同時に話をする複数の参加者のオーディオ情報を含むデータが受信された時、１人の参加者のコンピューティングデバイスに転送されるデータは、すべての話者のオーディオ情報を含むことを特徴とする請求項１４に記載の方法。
【請求項１７】
前記参加者は現在話をしていないことを特徴とする請求項１６に記載の方法。
【請求項１８】
ビデオ情報を混合するステップを含むことを特徴とする請求項１３に記載の方法。
【請求項１９】
話者のコンピューティングデバイスに転送されるビデオ情報は、以前の話者のコンピューティングデバイスから受け取られるビデオ情報を含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記モードは指示されないことを特徴とする請求項１１に記載の方法。
【請求項２１】
役割の指示を受け取るステップを含むことを特徴とする請求項１１に記載の方法。
【請求項２２】
デフォルトのルーティング情報は、指示された前記役割に基づいて設定されることを特徴とする請求項２１に記載の方法。
【請求項２３】
無音を含むデータは転送されないことを特徴とする請求項１１に記載の方法。
【請求項２４】
リアルタイムのマルチメディア情報をルーティングするシステムであって、前記システムは、ソフトウェアコンポーネントに接続することが可能なソフトウェアとして実施されたコネクタを有し、
入力と出力を指定するルーティング情報を受け取るコンポーネントと、
モードの指示を受け取るコンポーネントと、
前記ルーティング情報と前記モードとに基づいて前記コネクタを設定するコンポーネントと、
前記設定に基づいて、前記コネクタの入力で受け取られるデータを前記コネクタの出力に転送するコンポーネントと
を備えたことを特徴とするシステム。
【請求項２５】
ビデオコネクタとオーディオコネクタを有することを特徴とする請求項２４に記載のシステム。
【請求項２６】
前記ビデオコネクタとオーディオコネクタに異なるモードの指示が受け取られることを特徴とする請求項２５に記載のシステム。
【請求項２７】
前記オーディオコネクタに指示される前記モードはミキサであり、前記ビデオコネクタに指示される前記モードはセレクタであることを特徴とする請求項２６に記載のシステム。
【請求項２８】
参加者のオーディオ情報を混合することを含むことを特徴とする請求項２７に記載のシステム。
【請求項２９】
話者のコンピューティングデバイスに転送されるオーディオ情報を含むデータは、前記話者を以外のすべての参加者のオーディオ情報を含んだデータを含むことを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記話者以外のすべての参加者のために、前記話者のビデオ情報を選択し、転送することを含むことを特徴とする請求項２７に記載のシステム。
【請求項３１】
最後の話者のビデオ情報が、前記話者に転送するために選択されることを特徴とする請求項３０に記載のシステム。
【請求項３２】
ＴＣＰ／ＩＰプロトコルを用いてデータを受信および転送することを特徴とする請求項２４に記載のシステム。
【請求項３３】
ユーザデータグラムプロトコルを使用してデータを受信および転送することを特徴とする請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはデータ通信ネットワークに関し、より詳細には、データ通信ネットワーク中でリアルタイムのマルチメディア情報を効率的にルーティングするための統一されたアーキテクチャを提供し、使用することに関する。
【背景技術】
【０００２】
リアルタイム通信を可能にするためにコンピューティングデバイスが使用されることが増えている。一例として、ユーザは、コンピューティングデバイスを使用して、１人または複数の他のユーザとの会話に参加することができる。会話への参加は、オーディオ、ビデオ、またはその両方などの電子情報の送信または受信を伴う場合がある。そのような会話の参加者は、文書、プレゼンテーション用スライド、あるいは他の形態の電子情報などの他の媒体形式を送信または受信する場合もある。このマルチメディアの電子情報と、特にオーディオおよびビデオ情報は、ＲＴＰ（リアルタイムトランスポートプロトコル）などのプロトコルを使用して送信することができる。ＲＴＰは、インターネットで提案される標準プロトコルであり、その仕様「ＲＦＣ３５５０」は、<www.ietf.org/rfc/rfc3550.txt>で入手することができる。複数参加者の会議に関連する、インターネットで提案される標準の仕様である「ＲＦＣ３５５１」は、<www.ietf.org/rfc/rfc3551.txt>で得ることができる。これらの仕様は、参照によりその全体が本明細書に組み込まれる。ＲＴＰは、ＳＩＰ（セッション開始プロトコル）やＲＴＳＰ（リアルタイムストリーミングプロトコル）などの他のプロトコルとともに使用することができる。ＳＩＰは、コンピューティングデバイス間のセッションを管理するために必要なシグナリングと他の機能を提供するために使用することができる。ＲＴＰとＲＴＳＰは、オーディオ情報やビデオ情報などの情報を搬送するために使用することができる。
【０００３】
オーディオ情報およびビデオ情報は、ユニキャスト、マルチキャスト、ブロードキャスト、およびフラッディング（ｆｌｏｏｄｉｎｇ）通信モデルを含む各種のネットワーク通信モデルで、上記（および他の）プロトコルを使用して、コンピューティングデバイスから他のコンピューティングデバイスに送信することができる。
【０００４】
ユニキャストの通信モデルは、２地点間通信とも称され、コンピューティングデバイスから別のコンピューティングデバイスにメッセージを送信するために使用することができる。ユニキャストの通信モデルでは、送信者と受信者の間に一対一の関連付けがあることができる。従来のユニキャスト通信モデルでは、本質的に、２つのみのコンピューティングデバイスがメッセージの交換をするので、複数の参加者が同時に会話に参加することができない場合がある。しかし、コンピューティングデバイス同士をつないで、ユニキャスト通信モデルで接続された２つのコンピューティングデバイスの１つが、第３のコンピューティングデバイスにメッセージを転送し、それにより２つの別個のユニキャスト接続を確立することが可能な場合がある。そのような場合、第３の参加者のコンピューティングデバイスは、２つの他の参加者のコンピューティングデバイスから別々にオーディオ情報を受信することになるので、同時に話をしている会話の２人の参加者は、第３の参加者には異なる時に話しているように聞こえる場合がある。一例として、ＡがＢとの会話に参加しており、そのためＡのコンピューティングデバイスとＢのコンピューティングデバイスが接続されているとする。Ｃも会話に参加できるように、ＢのコンピューティングデバイスとＣのコンピューティングデバイスの間に第２の接続を追加することができる。ユニキャストの通信モデルでは、ＡとＢが同時に話すと、Ｃには、まずＢの声が聞こえ、その後Ａの声が聞こえる。これが生じるのは、Ａからのオーディオ情報を含んだメッセージがＢのコンピューティングデバイスに送信され、Ｂのコンピューティングデバイスが、そのメッセージを処理せずにＣのコンピューティングデバイスに転送するためである。しかし、コンピューティングデバイスを同時に接続することが可能な他のコンピューティングデバイスの数が、コンピューティングリソースのために限られる場合がある。さらに、コンピューティングデバイス同士が接続されて長いチェーンを形成している場合には、ネットワーク遅延のために、チェーンの一端からもう一端に移動する情報のタイミングがずれる場合がある。
【０００５】
マルチキャストの通信モデルは、１つのコンピューティングデバイスから複数の他のコンピューティングデバイスに同時にメッセージを送信するために使用することができる。この通信モデルは、送信元のコンピューティングデバイスからメッセージを受信し、そのメッセージをすべての接続された受信側コンピューティングデバイスに転送する、転送役のコンピューティングデバイスを含む。したがって、転送コンピューティングデバイスと複数の受信側コンピューティングデバイスの間に一対多の関連付けがある。転送役のコンピューティングデバイスが受信側のコンピューティングデバイスとの間でメッセージを受信し、送信するので、マルチキャストの通信モデルでは、ユニキャストの通信モデルについて上記で指摘したのと同様の理由で、多数のユーザに同時にサービスすることができない場合がある。具体的には、転送役のコンピューティングデバイスに、多数のメッセージに送れずに対応していくだけの処理能力や他のコンピューティングリソースが十分にない場合がある。
【０００６】
ブロードキャストの通信モデルも、ブロードキャストを行う１つの通信デバイスから受信側の複数のコンピューティングデバイスに同時に情報を送信するために使用することができる。ブロードキャストの通信モデルでは、ブロードキャストを行うコンピューティングデバイスは、受信側のコンピューティングデバイスを認識する必要すらない。実際、送信元のコンピューティングデバイスは、受信側のコンピューティングデバイスを知らないか、または、どのコンピューティングデバイスがそのメッセージを受信し、処理するのかを問題としないので、ブロードキャストの通信モデルを使用して送信元のコンピューティングデバイスから送信されるメッセージは、受信側のコンピューティングデバイスの宛先アドレスを含まなくてさえよい。メッセージをブロードキャストするには、ブロードキャストコンピューティングデバイスは、そのメッセージが最終的に受信されるかどうかに関係なく、単にそのデバイスが接続されたネットワークにメッセージを送信すればよい。ネットワークに接続された他のコンピューティングデバイスは、ブロードキャスト元のコンピューティングデバイスから送信されたメッセージを処理することを選択しても、無視することを選択してもよい。一例として、コンピューティングデバイスＡが、接続されたネットワーク内でメッセージをブロードキャストした場合、同じくそのネットワークに接続されたコンピューティングデバイスＢは、そのメッセージを処理することを選択することができる。それに対し、同じネットワークに接続されたコンピューティングデバイスＣは、コンピューティングデバイスＡからブロードキャストされたメッセージを無視することを選択することができる。ブロードキャストの通信モデルでは、コンピューティングデバイスから送信されたメッセージは、ネットワークに接続されたすべてのデバイスを横断するとは限らない。例として、プロキシサーバ、ネットワークアドレス変換器、ルータ、ゲートウェイ、および、ネットワークトラフィックをルーティングするか、ネットワークを相互接続する他のデバイスは、宛先アドレスを含まないメッセージは処理しなくてよい。その結果、ブロードキャストを行うコンピューティングデバイスから送信されたメッセージは、意図されるすべての受信者に到達するとは限らない。
【０００７】
フラッディング通信モデルは、送信元のコンピューティングデバイスから、その送信元コンピューティングデバイスに知られているすべての他のコンピューティングデバイスに情報を送信するために使用することができる。そのような接続されたコンピューティングデバイスはそれぞれ、ユニキャストの通信モデルを使用して相互とメッセージを交換することができる。フラッディングモデルに伴う問題は、複数のデバイスから同じ情報がコンピューティングデバイスに到達する可能性があり、また、予防策を取らない場合には、同じ情報がシステム中を複数回、あるいは無限に移動する可能性があることである。一例として、コンピューティングデバイスＡがコンピューティングデバイスＢとＣにメッセージを転送し、コンピューティングデバイスＢがコンピューティングデバイスＣとＡにメッセージを転送し、コンピューティングデバイスＣがコンピューティングデバイスＡおよびＢにメッセージを転送する場合、コンピューティングデバイスＡから送信されたメッセージは、コンピューティングデバイスＢに二度到達することになる。すなわち、コンピューティングデバイスＡから一度直接到達し、コンピューティングデバイスＡから受信したメッセージを転送するコンピューティングデバイスＣからもう一度到達する。これは、非効率的なネットワークリソースの使用法である。
【０００８】
上記の通信モデルは、通例、統一されたアーキテクチャを持たない。統一されたアーキテクチャとは、コンピューティングデバイスの役割があらかじめクライアントまたはサーバとして選択されるアーキテクチャである。統一されていないアーキテクチャを使用するコンピューティングデバイスは、一般に、メッセージを効率的にルーティングするために各自の役割を動的に変更することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記で挙げた通信モデルは、多数の参加者が接続した時には、メッセージのルーティングが非効率的になる可能性があり、あるいは、例えばコンピューティングリソースの制約のために多数の参加者に対応することができない場合がある。このため、ネットワークリソースを効率的に使用して、異種のコンピューティングデバイスのユーザに対して意味をなす提示をするためにマルチメディア情報を操作し、ルーティングする効果的な手法があれば、非常に有用であると思われる。
【００１０】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、リアルタイムマルチメディア情報の効率的なルーティングを実現するシステムを提供することにある。
【課題を解決するための手段】
【００１１】
リアルタイムのマルチメディア情報を効率的にルーティングするシステムが提供される。このシステムは、マルチメディア情報を含んだメッセージなどのメッセージをルーティングするために最適化されたコンピューティングシステムの特殊目的コンポーネントであるマルチコントロールユニット（「ＭＣＵ」）コネクタを設定および使用することにより、リアルタイムのマルチメディア情報を含むメッセージを効率的にルーティングする。コンピューティングデバイスは、複数のＭＣＵコネクタを使用して、そのコンピューティングデバイスのリソース（カメラ、マイクロフォン、スピーカなど）または他のコンピューティングデバイスとの接続を同時に動的に作成することができる。ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）、ストリーミングマルチメディアプレーヤ、あるいはメッセージのルーティングを必要とするアプリケーションなど、コンピューティングデバイスのＭＣＵコネクタを使用するアプリケーションは、ＭＣＵコネクタの役割を設定することができる。アプリケーションは、ＭＣＵコネクタのアプリケーションプログラムインタフェースを使用して、クライアント、サーバ、またはクライアント／サーバとして動作するようにＭＣＵコネクタの役割を設定することができる。役割を指定することにより、コンピューティングデバイスは、例えば１つのコンピューティングデバイスが同時に多数の接続に対応する必要がないように、メッセージを効率的にルーティングすることができる。ＭＣＵコネクタは、ミキサ、リフレクタ、セレクタなど、動作のモードも有することができる。これらのモードは、コネクタが、受信したメッセージを転送する前に処理する方式を定義することができる。これら各種のモードと役割を使用することにより、このシステムを使用して、異種のコンピューティングデバイスのユーザに対して意味をなすように提示するためにマルチメディア情報を組み合わせ、効率的にルーティングすることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。一実施形態では、リアルタイムのマルチメディア情報の効率的なルーティングのシステムが提供される。このシステムは、マルチコントロールユニット（「ＭＣＵ」）コネクタを設定および使用することにより、リアルタイムのマルチメディア情報を含むメッセージを効率的にルーティングする。マルチコントロールユニット（「ＭＣＵ」）コネクタは、マルチメディア情報を含んだメッセージなどのメッセージをルーティングするために最適化されたコンピューティングシステムの特殊目的コンポーネントである。コンピューティングデバイスは、複数のＭＣＵコネクタを使用して、そのコンピューティングデバイスのリソース（カメラ、マイクロフォン、スピーカなど）、または他のコンピューティングデバイスとの複数の接続を同時に生成する。したがって、ＭＣＵコネクタは、物理的なクロスバーに似た方式で論理接続を動的に作成することを可能にする。ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）、ストリーミングマルチメディアプレーヤ、あるいはメッセージのルーティングを必要とするアプリケーションなど、コンピューティングデバイスのＭＣＵコネクタを使用するアプリケーションは、ＭＣＵコネクタの役割を設定することができる。ＭＣＵコネクタの役割は、そのＭＣＵコネクタがどのように動作するかを定義することができる。アプリケーションは、ＭＣＵコネクタのアプリケーションプログラムインタフェース（「ＡＰＩ」）を使用して、ＭＣＵコネクタの役割をクライアント、サーバ、またはクライアント／サーバに設定することができる。
【００１３】
メッセージを作成または消費するアプリケーションは、ＭＣＵコネクタの役割をクライアントに設定することができる。メッセージを作成または消費するアプリケーションの例には、一般には、例えばＭＩＣＲＯＳＯＦＴ  ＭＥＳＳＥＮＧＥＲ、ＶｏＩＰクライアント、ＳＩＰクライアントが含まれる。従来サーバアプリケーションと呼ばれる一部のアプリケーションも、それらのアプリケーションがメッセージの作成または消費を要求する際には、クライアントとして動作するようにＭＣＵコネクタを設定することができる。一例として、ゲートウェイまたはプロキシサーバは、クライアントからのメッセージを消費し、サーバに送信するメッセージを作成するので、クライアントとして動作するようにＭＣＵコネクタを設定することができる。ゲートウェイは、一般には、１つのネットワークから別のネットワークへの情報を橋渡し、または変換し、そのため、１つのネットワークに対してはクライアントとなり、別のネットワークに対してはサーバとなる。同様に、プロキシサーバは、一般に、サーバに対してはクライアントとして機能し、クライアントに対してはサーバとして機能する。クライアントとして動作するＭＣＵコネクタは、自身のアクティブなすべての入力を、自身のアクティブな各出力にルーティングすることができる。アクティブな入力または出力とは、メッセージを作成または消費している別のコネクタまたはコンピューティングデバイスに接続された入力または出力である。一例として、ＶｏＩＰアプリケーションは、スピーカあるいはヘッドセットのアクティブな入力で受信されるすべての到着メッセージを再生し、マイクロフォンやオーディオファイルなどからのすべてのオーディオ入力を含んだメッセージをアクティブな出力に送信することができる。別の例は、従来の電話システムとＶｏＩＰシステムの間でオーディオを変換するゲートウェイである。ゲートウェイは、電話システムまたはＶｏＩＰシステムからオーディオ情報を受信し、その情報を、他のシステムに許容されるメッセージ（または信号）に変換するので、ＭＣＵコネクタをクライアントとして動作するように設定することができる。ＭＣＵコネクタがクライアントとして動作している時、そのコネクタは、着信するメッセージの内容に関連する処理は一切行わなくてよい。
【００１４】
アプリケーションは、メッセージ内容を処理し、他のコンピューティングデバイスにルーティングする際には、ＭＣＵコネクタの役割をサーバに設定することができる。一例として、アプリケーションが会話への複数の参加者からオーディオおよびビデオ情報を受信する場合、アプリケーションは、受信したオーディオを処理し、適切なビデオソースを選択し、受信したオーディオとビデオを他のコンピューティングデバイスにルーティングする必要がある場合がある。オーディオの処理には、例えば、同時に話している参加者のオーディオが、連続した発話ではなく、同時の発話として聞こえるようにオーディオを「混合」することが含まれる。したがって、２つのコンピューティングデバイスで実行されるアプリケーションは、３者による会話への２人の参加者からのそれぞれのオーディオ情報およびビデオ情報を、ＭＣＵコネクタがサーバとして動作している第３のコンピューティングデバイスに送信することができる。そのＭＣＵコネクタは、そのＭＣＵコネクタに関連付けられたコンピューティングデバイスを使用する第３の参加者に対して混合されたオーディオを再生する前、またオーディオ情報を別のコンピューティングデバイスに転送する前にオーディオ情報を混合するか、または、最後の話者に関連するビデオ情報を選択することもできる。一例として、Ａ、Ｂ、Ｃが会話に参加しており、Ａが最初に話し、その後ＢとＣが同時に話した場合、Ａには、ＢとＣからの混合されたオーディオが聞こえ、Ｂには、Ａのオーディオが聞こえた後にＣの音声が聞こえ、Ｃには、Ａの音声が聞こえた後にＢのオーディオが聞こえることになる。また、Ａは、ＢまたはＣのビデオ情報（またはその両方）を受信し、Ｂは、Ａのビデオ情報を受信した後にＣのビデオ情報を受信し、Ｃは、Ａのビデオ情報を受信した後にＢのビデオ情報を受信する。このように、サーバとして動作している時、ＭＣＵコネクタは、メッセージをルーティングする際にマルチメディア情報を処理または選択する。
【００１５】
アプリケーションは、メッセージを作成または消費する必要があり、それと同時に、クライアントとして動作している他のＭＣＵコネクタにメッセージをルーティングする必要がある時に、ＭＣＵコネクタの役割をクライアント／サーバに設定することができる。一例として、ＶｏＩＰを利用した電話機を会話に招待するＶｏＩＰアプリケーションは、ＶｏＩＰアプリケーションに対してはクライアントとして動作し、ＶｏＩＰを利用した電話機に対してはサーバとして動作することができる。したがって、クライアント／サーバとして動作するＭＣＵコネクタは、クライアント様の動作とサーバ様の動作の両方を行う。
【００１６】
ＭＣＵコネクタは、追加的に、ミキサモード、リフレクタモード、またはセレクタモードで動作することができる。ミキサモードでは、ＭＣＵコネクタは、上記でサーバとして動作するＭＣＵコネクタの例との関連で述べたように、オーディオを混合し、ビデオを選択することにより、オーディオ情報を処理することができる。ビデオは、例えば、大きなウィンドウの上に重ねた小さなウィンドウで相互と並べて画像を配置する、画像をタイル表示する、あるいは、画像を重ね合わせることにより、混合することができる。リフレクタモードでは、ＭＣＵコネクタは、オーディオを混合せずに、受信したメッセージを直接転送することができる。一例として、Ａ、Ｂ、Ｃが会話に参加しており、Ａが初めに話し、その後ＢとＣが同時に話した場合、Ａは、ＭＣＵコネクタがメッセージを転送した通りの順序でＢのオーディオとＣのオーディオを受信する。セレクタモードでは、ＭＣＵコネクタは、入力の１つを選択し、その他の入力は無視することができる。一例として、Ａ、Ｂ、Ｃが会話に参加しており、Ａが最初に話し、その後ＢとＣが同時に話した場合、Ａは、ＢまたはＣからのメッセージのみを受信し、その他のメッセージは受信しないことができる。セレクタモードは、ビデオに、より一般的に用いられることができる。
【００１７】
一実施形態では、セレクタは、情報の特性に基づいてオーディオ情報またはビデオ情報を選択するように設定することができる。一例として、一番大きな声で話している参加者のオーディオとビデオを選択することができる。
【００１８】
一実施形態では、混合と選択を併せて行うことができる。一例として、大規模な会話または電子教室の状況で、司会者（例えば教師）と質問をしている参加者（例えば生徒）のオーディオ情報とビデオ情報を混合するようにＭＣＵコネクタを設定することができる。
【００１９】
アプリケーションは、ＭＣＵコネクタコンポーネントを使用してメッセージをルーティングすることにより、コンピューティングデバイスをクライアント、サーバ、またはその両方に設定して、１つのコンピューティングデバイスまたはあらかじめ選択された複数のコンピューティングデバイスがメッセージのルーティングに必要とされないようにすることにより、マルチメディアメッセージのルートを動的に選択することができる。したがって、複数のコンピューティングデバイスをクライアント、サーバ、またはその両方として使用することができ、会話または他のアプリケーションセッションの進行中にその役割とモードを動的に選択することができるので、マルチメディアメッセージを効率的にルーティングすることができる。
【００２０】
次いで図を参照すると、図１は、リアルタイムのマルチメディア情報を効率的にルーティングするシステムの一実施形態を表すブロック図である。システムは、複数のコンピューティングデバイス１０２と、ネットワーク１０４を備える。ネットワーク１０４は、例えばイントラネット、インターネット、あるいは他の形態のネットワークである。コンピューティングデバイスは、ネットワークに接続されることができる。コンピューティングデバイスは、私設接続１０８などを介して独自に相互に接続することもできる。このシステムは、ゲートウェイ１０９と、接続１１２を介してゲートウェイに接続されたデバイス１１０も備えることができる。ゲートウェイは、例えば、ＶｏＩＰ電話デバイスと、ネットワークに接続されたコンピューティングデバイス間でメッセージまたは信号をブリッジまたは変換するデバイスである。ゲートウェイは、接続１１１を介してネットワークに接続することができる。このシステムの各種のネットワーク接続は、有線、無線、またはその組み合わせとすることができる。各種のネットワーク接続は、ＴＣＰ／ＩＰ（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）やＵＤＰ（ユーザデータグラムプロトコル）などの各種プロトコルを使用することができる。
【００２１】
図２は、図１のコンピューティングデバイスの一実施形態を表すブロック図である。コンピューティングデバイス２０２は、オーディオコンポーネント２０４、ビデオコンポーネント２０６、ドキュメントコンポーネント２０８、およびＭＣＵコネクタ（「コネクタ」）コンポーネント２１０を備える。オーディオコンポーネントは、オーディオ情報を処理することができる。一例として、オーディオコンポーネントは、マイクロフォンからオーディオ信号を受け取り、スピーカでオーディオ信号を再生することができる。オーディオコンポーネントは、コネクタコンポーネントの指示に従って、オーディオ信号を混合することもできる。一例として、オーディオコンポーネントは、マイクロフォンから受け取ったオーディオ信号を、コネクタが接続された他のコンピューティングデバイスから受信したメッセージに含まれるオーディオ情報と混合することができる。
【００２２】
ビデオコンポーネントは、ビデオ信号を処理することができる。一例として、ビデオコンポーネントは、ビデオカメラからビデオを受け取り、画面にビデオを再生することができる。ビデオコンポーネントは、複数のソースからのビデオ画像を重ね合わせる、あるいは、ビデオ画像の中にビデオ画像を埋め込むことによりビデオを混合するなどの他の機能も行ってよい。
【００２３】
ドキュメントコンポーネントは、他の形態の電子情報を処理することができる。一例として、ドキュメントコンポーネントは、参加者によるワードプロセッシング文書の操作を記録し、ネットワークを通じてその操作を他の参加者に転送することができる。同様に、ドキュメントコンポーネントは、他のユーザが文書に行う操作を受け取り、その操作を、コンピューティングデバイスに接続されたスクリーンに表示することができる。
【００２４】
コネクタコンポーネントは、オーディオ接続やビデオ接続など、各種形態の接続を作成および設定することができる。コンピューティングデバイスは、複数のコネクタコンポーネント（図示せず）を備えてよい。コネクタコンポーネントは、例えばオーディオ情報やビデオ情報を混合する他のコンポーネントを使用することができる。コネクタコンポーネントについては、図３との関連で下記でさらに説明する。
【００２５】
図３は、図２のコネクタコンポーネントの一実施形態を表すブロック図である。コネクタコンポーネントは、入力３０４、３０５、３０６、３０７など複数の入力を備える。コネクタは、出力３０８、３０９、３１０、３１１など複数の出力も備える。これらの入力および出力を使用して、コンピューティングデバイスを含む他のデバイスに接続して情報を送受信する。コネクタコンポーネントは、複数の方式で設定することができる。一例として、入力３０４を、すべての入力信号を出力３０８、３０９、３１０、３１１に転送するように設定することができる。入力３０７も同様に設定することができる。入力３０５は、入力を一切転送しないように設定することができる。入力３０６は、適切な方式（図示せず）で入力を転送するように、情報の処理中などに動的に設定することができる。一例として、入力３０６は、受信されるビデオ情報の送り手も現在の話者である場合だけ、受信したビデオ情報を、コネクタコンポーネントの出力に接続されたデバイスに転送するように構成することができる。
【００２６】
コネクタコンポーネントは、複数のメソッドとプロパティを公開するＡＰＩを有し、アプリケーションが、コネクタコンポーネントが生成するイベント通知を受け取るために自身を登録できるようにする。「プラットフォーム」機能のセット（メソッド、プロパティ、およびイベント）が、デバイスのメディアスタックを使用することに関連する。メディアスタックは、オーディオとビデオの入力と出力を提供する。一例として、スタックは、マイクロフォンあるいはカメラからの入力と、スピーカおよびビデオスクリーンへの出力を提供することができる。サーバおよびクライアント、また実際には、参加者に使用されるコンピューティングデバイスはいずれも、互換性のある同様のメディアスタックを使用することができる。このプラットフォーム機能は、アプリケーションがコネクタに問い合わせて、そのデバイスで利用することができる入力または出力を判定することも可能にすることができる。このプラットフォーム機能を使用することにより、アプリケーションは、例えば、そのデバイスを使用する参加者からオーディオおよびビデオ入力を受け取り、他の参加者から受け取ったオーディオとビデオをデバイス上で再生することができる。コネクタはこれらの機能のためのＡＰＩを有するので、アプリケーション開発者は、複数のベンダによって製造されるそうした入力装置または出力装置をどのように制御するかを知る必要がない。
【００２７】
アプリケーションは、コネクタコンポーネントのＡＰＩを使用して、接続を動的に追加または削除することができる。一例として、アプリケーションプログラムは、追加的な参加者が会話に加わると接続を追加し、参加者が会話を離れると接続を削除することができる。
【００２８】
コネクタコンポーネントのＡＰＩは、メッセージのルーティングとモード選択に関連する機能も有する。ルートは、コネクタに指定された役割（クライアント、サーバ、またはクライアント／サーバ）に基づいて、または指定されたルートに基づいて、オーディオおよびビデオについてアプリケーションによって構成することができる。ＡＰＩを使用して、コネクタコンポーネントのモードをミキサ、リフレクタ、またはセレクタモードに選択することができる。
【００２９】
図４は、複数のコネクタを使用するシステムの一実施形態を表すブロック図である。このシステムは、コンピューティングデバイスＡ４０２、コンピューティングデバイスＢ４０４、およびコンピューティングデバイスＣ４０６の３つのコンピューティングデバイスを備える。これらのコンピューティングデバイスは、通信リンク４１０を介してインターネット４０８などのネットワークに接続することができる。各コンピューティングデバイスは、１つまたは複数のコネクタを備える。図の実施形態では、コンピューティングデバイスＡ、Ｂ、およびＣは、それぞれコネクタ４１６、４１８、４２０を有する。図の実施形態では、コンピューティングデバイスＡとＢはクライアントに設定され、コンピューティングデバイスＣは、サーバとして設定されている。サーバのコネクタは、ミキサモードで動作するように設定されている。コネクタ４１６と４１８は、クライアントとして動作しており、それぞれ２つの入力と出力を有するものと図示される。その２つのコネクタそれぞれの入力の１つは、そのコネクタのコンピューティングデバイスに結合されたマイクロフォンからの入力である。ＣＤプレーヤ、ジュークボックス、ＭＰ３プレーヤ、および実際には任意のオーディオソースなど、オーディオ入力の他のソースも可能である。この２つのコネクタそれぞれの第２の入力は、例えばネットワークを通じて受け取られる他のコンピューティングデバイスからの入力である（「ネットワーク入力」）。２つのコネクタそれぞれの出力の１つは、そのコネクタのコンピューティングデバイスのスピーカに結合される。受信機、増幅器、ヘッドフォン、オーディオレコーダなどを含む、任意のオーディオ出力をスピーカの代わりに使用することができる。２つのコネクタそれぞれの第２の出力は、コネクタからの出力を、そのコネクタのコンピューティングデバイスが接続された他のコンピューティングデバイスに送信する（「ネットワーク出力」）。コンピューティングデバイスＣのコネクタは、ミキサモードで動作するサーバとして設定されており、３つの入力と３つの出力を有する。このコネクタの３つの入力は、それぞれマイクロフォン、コンピューティングデバイスＡ（「ネットワーク入力Ａ」）、およびコンピューティングデバイスＢ（「ネットワーク入力Ｂ」）から情報を受け取る。このコネクタの３つの出力は、それぞれスピーカ、コンピューティングデバイスＡ（「ネットワーク出力Ａ」）、およびコンピューティングデバイスＢ（「ネットワーク出力Ｂ」）に情報を送信する。図のコンピューティングデバイスＣのコネクタは、この他の入力および出力（図示せず）も有することができる。コンピューティングデバイスは、さらに追加的なコネクタ（これも図示せず）を有することができる。
【００３０】
図の構成は、図の３つのコンピューティングデバイスそれぞれを使用する参加者間の３者会話で使用することができる。参加者Ａ、Ｂ、Ｃが、それぞれコンピューティングデバイスＡ、Ｂ、Ｃを使用して、共にオンライン会話に参加しているとする。コネクタＡは、参加者Ａから受け取った音声情報をネットワーク出力にルーティングし、ネットワーク入力を介して他のコンピューティングデバイスから受け取った情報は、スピーカにルーティングすることができる。同様に、コネクタＢは、マイクロフォン入力を介して参加者Ｂから受け取る情報をそのネットワーク出力にルーティングし、ネットワーク入力を介して他のコンピューティングデバイスから受け取る情報をスピーカ出力にルーティングすることができる。コネクタＣは、ミキサモードでサーバとして動作しており、そのマイクロフォン入力から受け取る情報と、２つのネットワーク入力それぞれから受け取る情報を混合してからネットワーク出力に転送する。一例として、このコネクタは、マイクロフォン入力を介して参加者Ｃから受け取った情報と、ネットワーク入力Ａを介して参加者Ａから受け取った情報を混合し、混合した情報を、ネットワーク出力Ｂを介して参加者Ｂのコンピューティングデバイスに転送する。同様に、このコネクタは、参加者Ｃから受け取る情報と、ネットワーク入力Ｂを介して参加者Ｂから受け取る情報を混合して、混合した情報をネットワーク出力Ａを介して参加者Ａに転送する。コネクタＣは、また、ネットワーク入力ＡおよびＢを介して参加者ＡおよびＢから受け取る情報を混合し、混合した情報をスピーカ出力に転送する。この際、３人の参加者はそれぞれ、他の２人の参加者から混合されたオーディオ情報を受信する。
【００３１】
このシステムは、同じように構成されたビデオコネクタ（図示せず）も有することができる。そのような場合、コンピューティングデバイスＣのビデオコネクタは、セレクタモードに設定することができ、話をしている参加者のビデオ情報を他の２人の参加者それぞれのために選択し、最後に話をした者のビデオ情報を、現在話している参加者のために選択することができる。ビデオコネクタは、マイクロフォン入力の代わりに（またはマイクロフォン入力に加えて）カメラ入力を有することができ、スピーカ出力ではなく、さらにモニタ出力を有することができる。システムは、ミキサモードなど他のビデオモードに設定することもできる。
【００３２】
適切に設定されたビデオコネクタおよびオーディオコネクタを使用することにより、システムは、参加者の必要性に適合して、リアルタイムのマルチメディア情報を効率的にルーティングすることができる。一例として、コンピューティングデバイスＡを使用している参加者Ａが、コンピューティングデバイスＣを使用している参加者Ｃと会話をしている場合、コンピューティングデバイスＡおよびＣのコネクタは、クライアントモードで動作することができる。参加者Ｃが参加者Ｂを会話に招待すると、コンピューティングデバイスＣのコネクタは、動的に役割とモードを変えてミキサモードでサーバとして動作することができる。したがって、コンピューティングデバイスＡ、Ｂ、Ｃはいずれも、３人のユーザ全員に情報をルーティングすることが可能な第４のコンピューティングデバイスに接続する必要はない。
【００３３】
図５は、接続作成ルーチンの一実施形態を説明する流れ図である。このルーチンは、コネクタコンポーネントによって行われ、ルートを設定する。コネクタのルートは、どの入力がどの出力に接続され、したがってコネクタの入力と出力の間に接続を形成しているかを表す。ルーチンはブロック５０２で開始し、ここで、役割（role）、オーディオのルート（audio_route）、およびビデオのルート（video_route）の指示を、パラメータとして受け取る。ルートは、ルーチンのパラメータで指定される役割とルートに基づいて設定することができる。ブロック５０４で、ルーチンは、指示された役割に基づいてコネクタを設定する。一例として、指示された役割がクライアントである場合、ルーチンは、受信されるすべての入力をすべての出力に転送するようにコネクタを設定することができる。ブロック５０６で、ルーチンは、受け取られたパラメータの指示に従って、すべてのオーディオ接続を作成する。ブロック５０８で、ルーチンは、受け取られたパラメータの指示に従って、すべてのビデオ接続を作成する。ルーチンは、例えばルーチンのパラメータでルートが指定された時に、オーディオ接続とビデオ接続を作成する必要がある場合がある。コネクタを使用するアプリケーションは、マルチメディア情報の特殊化された扱いが望ましい場合に、オーディオのルートとビデオのルートを指定することができる。一例として、複数の参加者を有する電話会議アプリケーションは、参加者の数がより少ないＶｏＩＰアプリケーションとは異なる形で情報をルーティングすることを求める場合がある。さらなる例として、それらのアプリケーションは、一部の参加者に対してはテレビ会議を可能にしたいが、他の参加者には可能にしたくない場合がある（例えば参加者のコンピューティングデバイスの能力に応じて）。オーディオのルートは、例えば、（コンピュータデバイスに直接関連付けられたマイクロフォンではなく）接続されたビデオカメラに関連付けられたマイクロフォンを使用し、そのビデオカメラをコネクタのネットワーク出力に接続することを指定することができる。ビデオルートは、ビデオカメラの出力をコネクタの出力にも接続することを指定することができる。ブロック５１０で、ルーチンは呼び出し元に戻る。
【００３４】
図６は、オーディオミキサモードとビデオセレクタモードで動作するコネクタによって行われるルートルーチンの一実施形態を説明する流れ図である。このルーチンは、コネクタがオーディオのミキサモードで動作している時と、ビデオのセレクタモードで動作している時にどのようにオーディオメッセージとビデオメッセージをルーティングするかを判定する。ルーチンは、ブロック６０２で開始する。ブロック６０４で、ルーチンは、会話の第１の参加者を選択する。ブロック６０６で、ルーチンは、選択された参加者以外のすべての参加者からのすべてのオーディオ入力を混合する。一例として、ＡがＢおよびＣと会話をしており、Ａが選択された参加者である場合、ルーチンは、ＢおよびＣからのオーディオ入力を混合する。ＡにはＡのオーディオ情報が分かるので、Ａのオーディオは、混合する必要はない。さらに、Ａのオーディオが混合され、Ａに戻されると、ネットワーク遅延のために、Ａは、送信してから短い時間の後に送信されたオーディオ情報Ａを受信する可能性があり、それがＡの側の混乱につながる可能性がある。ブロック６０８で、ルーチンは、ブロック５０６で混合されたオーディオを選択された参加者に送信する。上記の例を続けると、ルーチンは、ＢとＣの混合されたオーディオをＡに送信する。
【００３５】
ブロック６１０で、ルーチンは、選択された参加者以外で一番最後に話をした参加者のビデオ信号を、選択された参加者に送信することができる。一例として、ＡがＢおよびＣと会話をしており、ＢがＡの前に話をし、Ａが現在話をしている場合、Ａは、オーディオ信号を受信せず（Ａが話しているため）、Ｂのビデオ信号（ＢがＡの前に話したため）を受信する。これに対し、Ａが現在話をしているので、ＢおよびＣは、Ａのオーディオ信号およびビデオ信号を受信する。一実施形態では、ブロック６１０で、参加者のビデオ情報を混合することができる。一例として、すべての話者のビデオ情報をタイル表示することができる。ビデオ情報のタイル表示には、参加者からのビデオ情報を隣接するウィンドウに配置することが含まれる。
【００３６】
ブロック６１２で、ルーチンは、現在話者でない次の参加者を選択する。ブロック６１４で、ルーチンは、それ以上参加者がいないかどうかを判定する。いない場合、ルーチンはブロック６１６に進む。いる場合、ルーチンは、ブロック６０６に進む。ブロック６１６で、ルーチンは、呼び出し元に戻る。
【００３７】
図７は、リフレクタモードで動作するコネクタによって行われるルートルーチンの一実施形態を説明する流れ図である。このルーチンは、コネクタがリフレクタモードで動作している際にどのようにオーディオメッセージおよびビデオメッセージをルーティングするかを判定する。ルーチンは、ブロック７０２で開始する。ブロック７０４で、ルーチンは、現在話している参加者でない、会話の第１の参加者を選択する。ブロック７０６で、ルーチンは、話者のオーディオメッセージを選択された参加者に送信する。ブロック７０８で、ルーチンは、話者のビデオメッセージを選択された参加者に送信する。複数の話者がいる場合、それら話者からのオーディオおよびビデオは、順次送信することができる。一例として、参加者Ａ、Ｂ、Ｃが会話をしており、ＢとＣが同時に話している場合、Ａは、Ｃのオーディオおよびビデオより前にＢのオーディオおよびビデオを受信することができる。ブロック７１０で、ルーチンは、現在の話者でない次の参加者を選択する。ブロック７１２で、ルーチンは、それ以上選択する参加者がいないかどうかを判定する。いない場合、ルーチンはブロック７１４に進む。いる場合、ルーチンは、ブロック７０６に進む。ブロック７１４で、ルーチンは、その呼び出し元に戻る。
【００３８】
図８は、セレクタモードで動作するコネクタによって行われるルートルーチンの一実施形態を説明する流れ図である。このルーチンは、コネクタがセレクタモードで動作している時のオーディオメッセージとビデオメッセージのルーティング方式を判定する。ルーチンはブロック８０２で開始する。ブロック８０４で、ルーチンは、現在話をしている参加者でない第１の参加者を選択する。ブロック８０６で、ルーチンは、話者からのオーディオメッセージを選択された参加者に送信する。ブロック８０８で、ルーチンは、話者からのビデオメッセージを選択された参加者に送信する。セレクタモードでは、１人の参加者からのオーディオまたはビデオ情報のみを送信および受信することができる。一例として、参加者Ａ、Ｂ、Ｃが会話をしており、ＢとＣが同時に話している場合に、Ａは、Ｂのオーディオ情報とビデオ情報だけを受け取ることができる。ブロック８１０で、ルーチンは、現在の話者でない次の参加者を選択する。ブロック８１２で、ルーチンは、それ以上参加者がいないかどうかを判定する。それ以上いない場合、ルーチンは、ブロック８１４に進む。いる場合、ルーチンは、ブロック８０６に進む。ブロック８１４で、ルーチンは、呼び出し元に戻る。
【００３９】
一実施形態では、ビデオ情報を選択するためにセレクタモードを使用することができる。そのような場合は、ビデオ情報を選択することができる一方で、オーディオ情報を混合することができる。したがって、ブロック８０６で、すべての参加者からのオーディオを混合し、転送することができる。
【００４０】
会話の参加者は、各種形態のコンピューティングデバイスを使用することができる。例として、ビデオ会議の参加者の一人は、パーソナルコンピュータを使用し、第２の参加者は、携帯電話を使用し、第３の参加者は、オーディオ情報とビデオ情報の送受信が可能な何らかの他の形態のコンピューティングデバイスを使用することができる。パーソナルコンピュータを使用する参加者は、会話中にオーディオ情報とビデオ情報を送受信することを望む可能性がある。これに対し、携帯電話を使用する参加者は、オーディオ情報の受信のみを希望する場合がある。そして、オーディオ情報とビデオ情報の送受信が可能なコンピューティングデバイス（ビデオ電話など）を使用する参加者も、オーディオ情報とビデオ情報の送受信を希望する可能性がある。
【００４１】
リアルタイムのマルチメディア情報を効率的にルーティングするシステムが実装されるコンピューティングデバイスは、中央演算処理装置、メモリ、入力装置（キーボードやポインティングデバイスなど）、出力装置（表示装置）、および記憶装置（ディスクドライブなど）を含むことができる。メモリと記憶装置は、セキュリティシステムを実施する命令を保持することが可能なコンピュータ可読媒体である。また、データ構造およびメッセージ構造は、記憶することも、通信リンク上の信号などデータ送信媒体を介して送信することもできる。インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、２地点間ダイヤルアップ接続など、各種の通信リンクを使用してよい。
【００４２】
図１に、リアルタイムのマルチメディア情報を効率的にルーティングするシステムを実施することが可能な適切な動作環境の例を示す。この動作環境は、適切な動作環境の一例に過ぎず、システムの使用または機能の範囲について限定を示唆するものではない。使用に適する可能性がある他のよく知られるコンピューティングシステム、環境、および構成には、パーソナルコンピュータ、サーバコンピュータ、「スマート」携帯電話を含むハンドヘルドあるいはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサを利用したシステム、設定可能な家庭電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスを含む分散コンピューティング環境などがある。
【００４３】
リアルタイムのマルチメディア情報を効率的にルーティングするシステムは、１つまたは複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールには、特定のタスクを行うか、特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通例、プログラムモジュールの機能は、各種の実施形態で必要に応じて組み合わせることも分散することもできる。
【００４４】
前述から、例示の目的で本発明の具体的な実施形態を説明したが、本発明の主旨および範囲から逸脱せずに、各種の変更を加えてよいことは理解されよう。したがって、本発明は、頭記の特許請求の範囲以外によっては限定されない。
【図面の簡単な説明】
【００４５】
【図１】リアルタイムのマルチメディア情報を効率的にルーティングするシステムの実施形態を示すブロック図である。
【図２】図１のコンピューティングデバイスの実施形態を表すブロック図である。
【図３】図２のコネクタの実施形態を示すブロック図である。
【図４】複数のコネクタを使用するシステムの実施形態を示すブロック図である。
【図５】接続作成の実施形態を示す流れ図である。
【図６】ミキサモードで動作するコネクタによって行われるルートルーチンの実施形態を説明する流れ図である。
【図７】リフレクタモードで動作するコネクタによって行われるルートルーチンの実施形態を説明する流れ図である。
【図８】セレクタモードで動作するコネクタによって行われるルートルーチンの実施形態を説明する流れ図である。
【符号の説明】
【００４６】
４０２  コンピューティングデバイスＡ
４０４  コンピューティングデバイスＢ
４０６  コンピューティングデバイスＣ
４０８  インターネット
４１０  通信リンク
４１６、４１８、４２０  コネクタ
【図１】
2006018809.tif 000003
【図２】
2006018809.tif 000004
【図３】
2006018809.tif 000005
【図４】
2006018809.tif 000006
【図５】
2006018809.tif 000007
【図６】
2006018809.tif 000008
【図７】
2006018809.tif 000009
【図８】
2006018809.tif 000010
【外国語明細書】
2006018809000001.pdf