(57)【要約】【課題】通信をルーティングする。【解決手段】電話通信またはデータ通信等の通信が、発信者（１）と受信者（５）との間で、発信者の嗜好または発信者および受信者の双方の嗜好に基づいてルーティングされる。仮想エンドポイント（６１、６６）が各ユーザ（１、５）に割り当てられる。各仮想エンドポイント（６１、６６）は、各ユーザに対する１つ以上のエンドポイントを、典型的には、ユーザの通信装置のアドレスを表すアドレス／プロトコルの対として記憶する。仮想エンドポイント（６１、６６）は、発信者および受信者の通信装置（２、６）が通信を行う１つまたは複数のネットワーク（８０、８５）と通信を行うゲートウェイ（１００）によってアクセス可能なデータ記憶機構（６０）に記憶される。嗜好は、各仮想エンドポイントに対応付けられ、その仮想エンドポイントのエンドポイントが属するプロトコルのカテゴリを特定する。ある基準に合致した場合に各仮想エンドポイントのエンドポイントの内のいずれを通信ルーティングパスに用いるかは、嗜好によって特定されることができる。ゲートウェイ（１００）のルーティングエンジン（３０）は、発信者エンドポイント（８２）と受信者エンドポイント（８６）との間のルーティングパスを、例えば、ルールに基づく処理を用いて、発信者および受信者に対する仮想エンドポイントに対応付けられた嗜好に応じて決定する。要求に応じて、ゲートウェイ（１００）は、通信のプロトコルまたはフォーマットを、発信者のエンドポイントのものから受信者のエンドポイントのものへと変換する。【選択図】図１
2008502233.tif 000002
【特許請求の範囲】
【請求項１】
発信者と受信者との間の電話通信またはデータ通信等の通信を、前記発信者および前記受信者の嗜好に基づいてルーティングする方法であって、
ユーザに対する複数のエンドポイントを、そのユーザに対する仮想エンドポイントとして記憶する記憶ステップであって、前記ユーザは前記通信の発信者または受信者であり、各エンドポイントはそれぞれのユーザ間の通信の発信元および／または送信先を表す記憶ステップと、
ある基準に合致した場合に前記各仮想エンドポイントの前記複数のエンドポイントの内のどのエンドポイントを通信のルーティングパスに用いるかを特定する嗜好を、前記仮想エンドポイントに対応付けるステップと、
発信者エンドポイントと受信者エンドポイントとの間のルーティングパスを、前記受信者および前記発信者に対する前記仮想エンドポイントに対応付けられた前記嗜好に応じて決定するステップと、を含む方法。
【請求項２】
前記通信は、１つ以上の受信者エンドポイントを有し、ルーティングパスは、前記発信者エンドポイントと各受信者エンドポイントとの間で、前記発信者および前記各受信者に対する前記仮想エンドポイントに対応付けられた前記嗜好に応じて決定される、請求項１に記載の方法。
【請求項３】
前記通信から少なくとも１つの付加的な通信を引き出すステップと、
前記発信者エンドポイントと各付加的な通信に対する各受信者エンドポイントとの間のルーティングパスを決定するステップと、
をさらに含む請求項１に記載の方法。
【請求項４】
発信者と受信者との間の電話通信またはデータ通信等の通信を、前記発信者の嗜好に基づいてルーティングする方法であって、
前記発信者に対する複数のエンドポイントを、その発信者に対する仮想エンドポイントとして記憶する記憶ステップであって、各エンドポイントは発信者との間の通信の発信元および／または送信先を表す記憶ステップと、
ある基準に合致した場合に前記発信者の仮想エンドポイントの前記複数のエンドポイントの内のどのエンドポイントを通信のルーティングパスに用いるかを特定する嗜好を、前記発信者の仮想エンドポイントに対応付けるステップと、
発信者エンドポイントと受信者エンドポイントとの間のルーティングパスを、前記受信者に対する前記仮想エンドポイントに対応付けられた前記嗜好に応じて決定するステップと、を含む方法。
【請求項５】
前記受信者は多数のエンドポイントを有し、
前記ルーティングパスを決定するステップは、前記発信者に対する前記仮想エンドポイントに対応付けられた前記嗜好に応じて、受信者エンドポイントを選択することを含む、請求項４に記載の方法。
【請求項６】
仮想エンドポイントに対する前記嗜好は、その仮想エンドポイントの前記エンドポイントが属するカテゴリを特定し、
前記ルーティングパスを決定するステップは、カテゴリを参照することにより最も合致するエンドポイントを決定することを含む、請求項１〜４のいずれかに記載の方法。
【請求項７】
前記決定されたルーティングパスを介して、前記発信者エンドポイントと前記受信者エンドポイントとの間の通信を可能とするステップをさらに含む、請求項１〜６のいずれかに記載の方法。
【請求項８】
前記受信者エンドポイントは、前記発信者エンドポイントとは異なる通信プロトコルおよび／またはフォーマットを有し、
前記通信の前記プロトコルおよび／またはフォーマットを、前記発信者のエンドポイントのものから前記受信者のエンドポイントのものへと変換するステップをさらに含む、請求項１〜８のいずれかに記載の方法。
【請求項９】
前記プロトコルおよび／またはフォーマットを変換するステップは、前記通信の前記プロトコルおよび／またはフォーマットを、前記発信者のエンドポイントのものから、中間プロトコルへ、さらに前記受信者のエンドポイントのものへと変換することを含む、請求項８に記載の方法。
【請求項１０】
前記ルーティングパスは、ルールに基づく処理を用いて決定される、請求項１〜９のいずれかに記載の方法。
【請求項１１】
前記決定されたルーティングパスは、キャッシュメモリに記憶される、請求項１〜１０のいずれかに記載の方法。
【請求項１２】
仮想エンドポイントにおける各エンドポイントは、アドレス／プロトコルの対である、請求項１〜１１のいずれかに記載の方法。
【請求項１３】
各仮想エンドポイントに対する前記嗜好は、
（i）他の仮想エンドポイントおよび／またはエンドポイントに関する基準、
（ii）プロトコルおよびフォーマットを含む通信の種類に関する基準、
（iii）前記エンドポイントのカテゴリに関する基準、ならびに
（iv）動的データに関する基準の１つ以上、
を含む、請求項１〜１２のいずれかに記載の方法。
【請求項１４】
発信者と受信者との間の電話通信またはデータ通信等の通信を、前記発信者および前記受信者の嗜好に基づいてルーティングする装置であって、
ユーザに対する複数のエンドポイントを、そのユーザに対する仮想エンドポイントとして記憶し、かつ各仮想エンドポイントに対応付けられた嗜好に関するデータを記憶する記憶手段であって、前記ユーザは前記通信の発信者または受信者であり、各エンドポイントはそれぞれのユーザ間の通信の発信元および／または送信先を表す記憶手段と、
発信者エンドポイントと受信者エンドポイントとの間のルーティングパスを、前記受信者および前記発信者に対する前記仮想エンドポイントに対応付けられた前記嗜好に応じて決定する手段と、を含む装置。
【請求項１５】
発信者と受信者との間の電話通信またはデータ通信等の通信を、前記発信者の嗜好に基づいてルーティングする装置であって、
前記発信者に対する複数のエンドポイントをその発信者に対する仮想エンドポイントとして記憶し、かつ前記仮想エンドポイントに対応付けられた嗜好に関するデータを記憶し、各エンドポイントは発信者との間の通信の発信元および／または送信先を表す記憶手段と、
発信者エンドポイントと受信者エンドポイントとの間のルーティングパスを、前記受信者に対する前記仮想エンドポイントに対応付けられた前記嗜好に応じて決定する手段と、を含む装置。
【請求項１６】
前記装置は、１つ以上の通信ネットワークに接続され、前記ネットワークを介して前記発信者エンドポイントおよび前記受信者エンドポイントと通信を行うように構成されている、請求項１４または１５に記載の装置。
【請求項１７】
前記決定されたルーティングパスを介し、前記発信者エンドポイントと前記受信者エンドポイントとの間の通信を確立する手段をさらに含む、請求項１４〜１６のいずれかに記載の装置。
【請求項１８】
前記受信者エンドポイントは、前記発信者エンドポイントとは異なる通信プロトコルおよび／またはフォーマットを有し、
前記通信の前記プロトコルおよび／またはフォーマットを、前記発信者のエンドポイントのものから前記受信者のエンドポイントのものへと変換する手段をさらに含む、請求項１４〜１７のいずれかに記載の装置。
【請求項１９】
前記変換手段は、前記通信の前記プロトコルおよび／またはフォーマットを、前記発信者のエンドポイントのものから、中間プロトコルへ、さらに前記受信者のエンドポイントのものへと変換する、請求項１８に記載の装置。
【請求項２０】
前記ルーティングパスを決定する手段は、ルールに基づく処理が可能なルールエンジンを含む、請求項１４〜１９のいずれかに記載の装置。
【請求項２１】
前記決定されたルーティングパスを記憶するキャッシュメモリをさらに含む、請求項１４〜２０のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発信者および／または受信者が複数の可能なエンドポイントを有し、発信者および受信者に対するプロトコルが異なりうる場合の、通信、特に電話通信およびデータ通信をルーティングする方法および装置に関する。
【背景技術】
【０００２】
電話ネットワークおよびデータネットワーク等の通信ネットワークにより、様々な種類の電話通信およびデータ通信が行われてきている。通信ネットワークは、他の通信ネットワークと相互接続される場合もある。これらのネットワークでの通信には、種々の異なったプロトコルが用いられており、それぞれ、通信のエンドポイントを記述しその場所を特定する方法、および両者が許容でき理解できるような通信の形態を定義している。例えば、Ｅメールプロトコルは、Ｅメールアドレスがどのようにトレイ中の実際のＥメールにリゾルブするのか、どのようにＥメールメッセージをパッケージ化し、伝送し、配信するのかを定義している。また、電話プロトコルは、電話番号がどのように実際の電話にリゾルブするのか、どのように電話接続を確立し音声情報を伝送するのかを定義している。（当該分野において用いられる「リゾルブ」という語は、アドレスとの関連において、アドレスを解釈して実際の配信先を決定することを意味する。）
【０００３】
あるプロトコルに対して、各エンドポイントはアドレス／プロトコルの対として定義される。そのため、ユーザは、プロトコルが分からない場合、エンドポイントを宛先指定できず、似ていても異なるプロトコルを用いて他のユーザと通信することも通常不可能である。異なるプロトコルを接続する手段がない場合、通信を望む２者のユーザは、同一の通信ネットワークまたは相互接続されたネットワークを既に利用していたとしても、通信を行うために共通に有しているプロトコルを選択しなくてはならない。しばしば起こることであるが、選択されたプロトコルが特定の装置の利用を要求する場合、各ユーザは、その種類の装置にアクセスでき、かつその装置を利用可能である必要がある。従って、通信の選択が制限される。通信が不可能となること、または利用可能なプロトコルおよび装置のために、好適なプロトコルの選択に関して妥協を行うことがしばしばある。
【０００４】
用いられているプロトコルが多様であるということは以下のことを意味する。すなわち、ユーザは、一般的に、通信を望む相手ユーザそれぞれに数多くの連絡先アドレスを記憶している必要があり、他のユーザとの通信を望むユーザは、その時点においてどのアドレス／プロトコルの対が適切であるかを推定し、アドレス／プロトコルの対を順次試してみるという処理を行わなくてはならない。
【０００５】
異なるプロトコルを接続する公知の方法および装置がある。１つの方法においては、特定のプロトコル対を接続する特製（受注生産）アダプタが用いられる。特許文献１および特許文献２にこのアダプタの例が記載されている。これらのアダプタによって、他のプロトコルの対応する機能にマップ可能なプロトコルの機能が抽出され、対応する機能間に有効な経路を生成する機構が提供される。
【特許文献１】米国特許第６０２０９８０号
【特許文献２】米国特許第６６２５６４２号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特製アダプタの不利な点の１つとして、接続されている２つのプロトコルによってアダプタが定義され、アドレスがプロトコルに特定のものであるため、受信者に対する出力プロトコルおよびその出力プロトコルにおけるアドレスは、変換前に特定されなくてはならないという点がある。変換前に出力アドレス／プロトコルの対を確実に特定するためには、通信の発信者が出力アドレス／プロトコルの対を特定して与えなければならないか、またはその情報を受信者のアドレスに何らかの方法で構築することが必要であった。
【０００７】
発信者がその情報を特定して与える例として、ショートメッセージサービス（ＳＭＳ）からＥメールへのアダプタは、受信者のＥメールアドレスを、アダプタへと送信されるＳＭＳメッセージの最初の部分としてタイプ入力することを発信者に要求し、アダプタがこのＥメールアドレスにＳＭＳメッセージの残りをＥメールとして配信することを可能とする。受信者のアドレスに情報を構築する例として、ＳＭＳアダプタへのＥメールでは、特別なＥメールアドレスの携帯電話ユーザへの割り当てが要求され、この特別なＥメールアドレスにＥメールとして送信されたテキストをアダプタへと配信して、処理を施し、１つ以上のＳＭＳメッセージの形態で受信者の携帯電話へと転送する（特定のルールの適用に依存する可能性が高い）。
【０００８】
公知の特製アダプタの他の不利な点として、共通の機能をマップし、両者に共通ではない機能を用いないために、典型的には性能が下がってしまう点がある。例えば、長いメッセージまたは添付ファイルに出力プロトコルが対応していないのに対して入力プロトコルが対応している場合、通信の問題および情報の消失が起こる。情報の消失を避けるために、情報消失なしに変換することが不可能な受信した通信を記憶し、目的の受信者に、受信者が第３のプロトコルを用いると完全な通信の受け取りが可能となることを受信者のプロトコルを用いて通知するアダプタもある。
【０００９】
この手法の一例として、マルチメディアメッセージサービス（ＭＭＳ）に対応している携帯電話のユーザは、ＭＭＳに対応していないがＳＭＳには対応している他の携帯電話に、写真データを含むＭＭＳメッセージを送信することができる。受信者へのメッセージ配信を担当するＭＭＳセンターは、ウェブサイトにＭＭＳメッセージを記憶し、目的の受信者に、受信者がインターネットに接続し、（ＨＴＴＰプロトコルを利用する）ウェブブラウザを用いてこのウェブサイトにアクセスするとＭＭＳメッセージの閲覧が可能となることを通知するＳＭＳテキストメッセージを送信してもよい。この手法では、情報は実際に消失しないものの、配信されるのは配信エラー通知のみである。通信が受信者に受け取られないこともあり、完全な通信の配信そのものは不明である。
【００１０】
異なるプロトコルを接続する他の公知の方法においては、共通の中間プロトコルが用いられる。この方法によって、接続しようとするプロトコル対それぞれに新しい特製アダプタを製造する必要なしに数多くのプロトコルを接続することが可能となる（これは、資源集約的な処理である）。しかしながら、受信者に対する出力プロトコルおよびその出力プロトコルにおけるアドレスは、やはり変換前に特定されなくてはならない。
【００１１】
受信したメッセージとは異なるプロトコルを用いた通信メッセージの検索を可能とするユニファイドメッセージングの公知の方法がある。米国特許第６７１１１５４号にこのユニファイドメッセージング装置の例が記載されている。これらの共通の中間プロトコルおよびユニファイドメッセージングの方法では、通信の動的ルーティングおよびプロトコル変換を実行することができない。
【００１２】
通信のルーティングに対する受信者の嗜好および／または受信者用通信装置の利用可能性に基づいて、通信における制限的な動的ルーティングおよびプロトコル変換を実行する方法もある。典型的には、これらの方法は、通常の固定された通信装置の場所に居るとは限らない受信者に、通信をルーティングすることを目的にしている。米国特許第６６０６６４７号および同５７４２９０５号にその例が記載されている。これらの方法の不利な点は、受信者の嗜好のみが考慮される点にある。これの方法には、典型的には、動的ルーティングを実現可能とするために、特別な受信者アドレスの利用が要求され、かつ／または特定のクライアントソフトウェアを実行し中央サーバと通信を行うパーソナルコンピュータまたは無線ＰＤＡ（ｐｅｒｓｏｎａｌ ｄｉｇｉｔａｌ ａｓｓｉｓｔａｎｔ）等のクライアント装置の利用が要求されるという他の制限もある。
【００１３】
これら公知の方法全てに共通する不利な点は、発信者および受信者の双方の必要性に最も合致する通信プロトコルについて交渉する機会がない点にある。
本発明の目的は、予め決定された出力プロトコルおよびそのプロトコルにおけるアドレスに関する上記の問題、ならびに異なるプロトコルを接続する公知の方法に内在する他の制限の少なくともいくつかを実質的に解決または改善する、通信をルーティングする方法および装置を提供することにあり、ひいてはユーザにとってより有効な通信システムを提供することにある。
【課題を解決するための手段】
【００１４】
広義において、本発明は、発信者と受信者との間の電話通信またはデータ通信等の通信を、前記発信者および前記受信者の嗜好に基づいてルーティングする方法であって、
ユーザに対する複数のエンドポイントを、そのユーザに対する仮想エンドポイントとして記憶する記憶ステップであって、前記ユーザは前記通信の発信者または受信者であり、各エンドポイントはそれぞれのユーザ間の通信の発信元および／または送信先を表す記憶ステップと、
ある基準に合致した場合に前記各仮想エンドポイントの前記複数のエンドポイントの内のどのエンドポイントを通信のルーティングパスに用いるかを特定する嗜好を、前記仮想エンドポイントに対応付けるステップと、
発信者エンドポイントと受信者エンドポイントとの間のルーティングパスを、前記受信者および前記発信者に対する前記仮想エンドポイントに対応付けられた前記嗜好に応じて決定するステップと、を含む方法を提供する。
【００１５】
さらに、本発明は、発信者と受信者との間の電話通信またはデータ通信等の通信を、前記発信者および前記受信者の嗜好に基づいてルーティングする装置であって、
ユーザに対する複数のエンドポイントを、そのユーザに対する仮想エンドポイントとして記憶し、かつ各仮想エンドポイントに対応付けられた嗜好に関するデータを記憶する記憶手段であって、前記ユーザは前記通信の発信者または受信者であり、各エンドポイントはそれぞれのユーザ間の通信の発信元および／または送信先を表す記憶手段と、
発信者エンドポイントと受信者エンドポイントとの間のルーティングパスを、前記受信者および前記発信者に対する前記仮想エンドポイントに対応付けられた前記嗜好に応じて決定する手段とを含む装置を提供する。
【００１６】
ルーティングパスが一旦決定されると、決定されたルーティングパスを介して、発信者（または発信側）エンドポイントと受信者（または受信側）エンドポイントとの間に通信が確立可能である。
受信者エンドポイントが、発信者エンドポイントとは異なる通信プロトコルおよび／またはフォーマットを有している場合、通信のプロトコルおよび／またはフォーマットは、発信者のエンドポイントのものから受信者のエンドポイントのものへと変換される。これには、発信者のエンドポイントのプロトコルおよび／またはフォーマットを、まず中間プロトコルへ、次いで受信者のエンドポイントのものへと変換することが含まれてもよい。
【００１７】
本発明に係る好適な実施形態においては、交渉用ゲートウェイが１つ以上の通信ネットワークに接続される。交渉用ゲートウェイは、データ記憶機構を用いてデータの対応を記憶する手段を含む。エンドポイントの対応は、仮想エンドポイントとしてデータ記憶機構に記憶される。各仮想エンドポイントは、通信の発信者または受信者であるユーザに対するエンドポイントの集合体である。エンドポイントは、通信の発信元および／または送信先を表し、典型的には電話番号またはＥメールアドレス等のアドレス／プロトコルの対である。各仮想エンドポイントは、ある基準に合致した場合にエンドポイントの対応の内のどのエンドポイントをルーティングパスに用いるかを特定する嗜好に対応付けられる。
【００１８】
ゲートウェイは、通信を受信および送信する手段を有する。受信された通信はゲートウェイに宛先指定されてもよく（行為要求等）、そうでない場合、ゲートウェイによって配信される通信となる。ゲートウェイへの要求は、ルーティングパスの要求であっても、他の何らかの要求であってもよい。要求の結果は、任意には受信した要求の発信元であるエンドポイントへと戻されてもよい。
【００１９】
通信がゲートウェイに受信されると、ゲートウェイは、１つ以上の発信側エンドポイント（示唆されることもある）、および１つ以上の受信側エンドポイントを識別する（「識別された」エンドポイント）。エンドポイントは、通信によって定義されてもよく（すなわち、エンドポイントは通信の「発信元」および「送信先」アドレスとなる）、通信内に（メタデータ等として）指定されてもよい。エンドポイントは、仮想エンドポイントの識別子を含んでいてもよい。
【００２０】
受信された通信は、１つ以上のプロトコルに従って１つ以上のフォーマットに符号化された任意の種類のテキスト、画像、音声、映像、デジタルデータ、またはこれらの組合せを含んでいてもよい。受信された各通信は共通の中間プロトコルへと変換される。
受信された通信がゲートウェイに宛先指定されない場合、またはルーティングパス要求である場合、ゲートウェイはルーティングパスの決定に移行する。続いて、ゲートウェイは、識別された各エンドポイントに対して０または１つの仮想エンドポイントを識別する。見つからない場合、または（例えば、エンドポイントがルーティングパスに無関係であるために）特定のエンドポイントに対して仮想エンドポイントが要求されていないとゲートウェイが判断した場合、仮想エンドポイントはそのエンドポイントに対して識別されなくてもよい。識別された各仮想エンドポイントに対して、ゲートウェイは対応付けられた嗜好を検索する。
【００２１】
検索された嗜好は、他の仮想エンドポイントおよび／またはエンドポイント、プロトコルおよびフォーマットを含む通信の種類、ならびに動的データに関する基準を含むことが可能である。嗜好は、エンドポイントのカテゴリの構造化された順位を含む。動的データは、各仮想エンドポイントまたはエンドポイントに対して検索されてもよく、典型的には、通信ネットワークからのエンドポイントの状態等の、ルーティングパスの決定に関係する情報を含む。
【００２２】
ルーティングパスは、検索された嗜好、検索された動的データ、および識別されたエンドポイントの関数として決定される。識別された嗜好における最も合致するカテゴリを有するエンドポイントが、ルーティングパスに含まれるものとして選択される。（このエンドポイントは、カテゴリについて最も合致したものでもよく、最も合致するカテゴリ内で最も合致したものでもよく、または最も合致するカテゴリ内で最も合致するエンドポイントであってもよい。）
ルーティングパスは、ルールに基づく処理を用いてルールエンジンによって決定されることが好ましい。
【００２３】
受信された通信がルーティングパス要求である場合、ルーティングパスは、典型的には、受信した要求の発信元であるエンドポイントへと戻される。通信がゲートウェイによって配信される場合、通信はルーティングパスにおける送信先エンドポイントのプロトコルへ変換され、その送信先エンドポイントと対応付けられた通信ネットワークへと送信される。
【００２４】
決定されたルーティングパスはキャッシュされることが好適である。既存のキャッシュエントリに合致する後続の通信は、データのさらなる検索または処理を要求されることなしに、そのキャッシュエントリのデータに応じて直接的にルーティングされる。
受信された通信は、多数の受信者エンドポイントを含んでいてもよく、この場合、発信側エンドポイントと受信側エンドポイントとの各組合せに対して１つずつ、多数のルーティングパスが決定される（すなわち、通信が「マルチキャスト」である）。
【００２５】
多数のルーティングパスは、単一の受信側仮想エンドポイントに対して決定されてもよく、検索された嗜好に依存する通信の全体または一部は、決定されたルーティングパスのそれぞれによって配信されてもよい。
受信された通信は、ゲートウェイによる行為の実行を求める、ユーザからの要求を含んでいてもよい。例えば、要求は、ユーザの記憶された仮想エンドポイントまたは嗜好を変更する要求であってもよい。
【００２６】
別の実施形態においては、データ交換が可能なように、適切な通信ネットワークによって２つ以上のゲートウェイが相互接続される。嗜好およびデータを検索するステップは、データのプライバシーを保護する適切な処理を含むことが好ましい。
別の実施形態においては、ゲートウェイが単一のプロトコルにおける通信に対するルーティングパスを決定する。
【００２７】
本発明の変形例においては、発信者エンドポイントと受信者エンドポイントとの間のルーティングパスは、発信者のみに対する仮想エンドポイントに対応付けられた嗜好に応じて決定される。例えば、受信者は多数のエンドポイントを有していてもよく、受信者エンドポイントは、発信者に対する仮想エンドポイントに対応付けられた嗜好に応じて選択される。
【００２８】
本発明は、発信者、または発信者および受信者に対応付けられた嗜好の関数としてルーティングパスを動的に決定する方法を提供する。よって、プロトコル変換を実行可能とするために、受信者の出力プロトコルおよびその出力プロトコルにおけるアドレスを（例えば、発信者がメッセージの一部に含めること、または受信者のアドレスに構築することによって）特定する必要はない。従来技術と比較して、発信者が記憶していなくてはならない連絡先アドレスの数、およびアドレス／プロトコルの対を推定し試してみる処理を実行する必要性の両方が実質的に減少可能である一方、発信者にとって利用可能な通信プロトコル、ひいては装置の選択が実質的に増加可能である。
【００２９】
本発明のさらなる有利な点を以下に列挙する。
ａ    発信者および受信者の双方の嗜好により合致し、よりよく、より一貫した通信制御をユーザに提供するルーティングの決定が可能となる。例えば、いずれかのユーザからのメッセージは受信者の携帯電話へとルーティングされ、他のユーザからのメッセージはＥメールへとルーティングされ、さらに他のユーザからのメッセージは消去されるように受信されたテキストメッセージを処理することを、受信者の嗜好によって特定してもよい。嗜好はユーザに応じて決定可能であるため、例えば特定のユーザからの通信が配信されないように受信者が特定を行うことも可能である。
【００３０】
ｂ    発信者による送信先アドレス／プロトコルの対の特定が必要ではないため、アドレス／プロトコルの対の他のユーザに対する提供に関して受信者がより柔軟であるために、プライバシーをより制御することができる。
ｃ    実際の通信の配信から独立した形態でルーティングパスが動的に決定可能であるため、これまで対応不可能であったシステム間において、動的に決定されたルーティングパスを実現可能とする。例えば、本発明に係る好適な実施形態においては、電話、郵便、または配達システムが、ボイスメールのＥメールとしての配信、電子メッセージの印刷および郵便による配達、または小包の動的に決定されたルーティングパスに応じた配達を可能とするシステムに含まれてもよい。これは、ルーティングパスを決定するシステムが通常その通信を実行しなくてはならない従来の方法よりも向上した点である。
【００３１】
ｄ    通信が動的にルーティングされるために、ルーティングパスがキャッシュされた場合、ユーザの嗜好における変更は直ちに有効となる。これは、接続を切断することなしにエンドポイントの詳細が変更可能であるということを意味する。例えば、ユーザは、交信途中で通信装置またはプロトコルを切替可能である。
ｅ    ルーティングロジック内でルールに基づく処理が用いられる場合、発信者および／または受信者に対する嗜好およびルールに基づいて、ユーザに特定の行為が実行されてもよい。
【００３２】
ｆ    共通の中間プロトコルが用いられる場合、データの暗号化、圧縮、または監視等の処理を、処理された通信全てに均一に適用してもよい。これは、このようなロジックを中央に備えることなく、プロトコルを別々に取扱い、各プロトコル対の変換を別々に取扱う従来の方法よりも向上した点である。
ｇ    通信を、別々のエンドポイントへと配信されるいくつかの部分に分割してもよい。これは、通信の全体または一部を記憶して受け取ること、あるいは一部の配信を全く行わないことに比して、向上した点である。例えば、ユーザは、２つに分割可能な添付文書付きの緊急Ｅメールを送信し、受信者の嗜好において特定された通りに、Ｅメールのテキストを受信者の緊急テキスト用装置（携帯電話等）へと配信し、添付を受信者の仕事用Ｅメールアドレスへと配信することができる。
【００３３】
本発明の理解及び実施を補助するために、同じ参照番号が同じ要素を指す添付の図面を参照しながら本発明の実施形態を例示する。
【発明の効果】
【００３４】
本発明は、異なるプロトコルを用いる異なる通信ユーザに、相手のユーザに用いられる装置またはプロトコルの詳細を気にすることなく円滑な接続及び通信を行うこと可能とする。
【発明を実施するための最良の形態】
【００３５】
図１を参照して、ユーザ１および５は、人間、コンピュータプログラム、コンピュータロジックの実行部、または情報を送信および／または受信可能な他の作用者（物）を指す。ユーザ１および５は、それぞれ装置２および６を含む複数の通信装置を利用可能である。装置２および６は、それぞれネットワーク８０および８５に接続され、電話、携帯電話、またはポケットベル等の有形デバイス、あるいはＥメールまたはインスタントメッセンジャーのクライアントまたはサーバ等のソフトウェアを含む無形デバイスであってもよい。
【００３６】
ネットワーク８０および８５はゲートウェイ１００に接続され、電子的手段によってインターフェースをとり、電話ネットワーク（ＰＳＴＮまたは携帯電話ネットワーク等）ならびにデータネットワーク（ＬＡＮ、ＷＡＮ、およびインターネット等）等の１つ以上のプロトコルに従って通信の伝送を行うことが可能な任意の種類のネットワークであってもよい。破線で示すように、ユーザ１および５の装置は、異なるネットワークに接続されてもよく、ネットワーク８０および８５は相互接続されていてもいなくてもよい。
【００３７】
ネットワーク上の装置への通信チャネルは、そのネットワークにおけるエンドポイントとして表される。エンドポイント８２および８６は、それぞれ装置２および６へのチャネルを表し、電話番号、ポケットベル番号、およびＥメールアドレス等の通信アドレス／プロトコルの対によってそれぞれ識別される。なお、単一の装置は多数のエンドポイントによって表されてもよく、これらのエンドポイントは異なるネットワーク上にあってもよい（例えば、携帯電話を電話番号およびＥメールアドレスによって表してもよい）。
【００３８】
要素間のデータの流れを矢印で示す。ゲートウェイ１００と、エンドポイント８２および８６との間の通信は、それぞれプロトコル９０および９５にフォーマットされる。ゲートウェイ１００と、ネットワーク８０および８５上の他のエンドポイントとの間の通信は、プロトコル９０および９５以外のプロトコルにフォーマットされてもよい。
ゲートウェイ１００は、通信ポート２０と、データインターフェース５０と、キャッシュ７０（任意）と、ルーティングエンジン３０とを含む。
【００３９】
通信ポート２０は、ゲートウェイ１００をネットワーク８０および８５等の外部装置、外部システム３００（任意）、ならびにデータ記憶機構６０に接続するために用いられる。本明細書において、これらのような外部装置と通信を行っているゲートウェイ１００への言及は、それらの通信に通信ポート２０が用いられていることを非明示的に意味する。通信ポートは、当該分野において公知であり、イーサネット（登録商標）ポート、ＵＳＢポート、およびシリアルポート等がある。
【００４０】
ルーティングエンジン３０およびデータインターフェース５０は、１つ以上のコンピュータプログラム、プログラム可能なマイクロプロセッサに対する機械コード、または１つ以上の集積回路等の電子回路（以上は全て当該分野において公知である）において具現化されうるロジックを実現する。新しい定義およびロジックをプラグインモジュールの形態で追加して、新しいプロトコルまたは外部システム３００に対応させることが好適である。全ての場合において、ロジックは単一の実行部において実行されてもよく、多数の実行部において同時に実行されてもよい。さらに、多数のゲートウェイ装置を１つにまとめて単一の並行処理ゲートウェイ１００にしてもよい。
【００４１】
データインターフェース５０は、データ記憶機構６０および０以上の外部システム３００等の他の構成要素との間で情報の送信および検索を行うために用いられる。データインターフェース５０のロジックは、要求される情報の源（データ記憶機構６０または外部システム３００の１つ等）を識別し、要求をその源に合ったプロトコルへとフォーマットし、次いで応答をその要求元（ルーティングエンジン３０または外部システム３００の１つ等）に合ったプロトコルへとフォーマットすることで、情報要求に応答する。
【００４２】
本発明に係る好適な実施形態において、データインターフェース５０のロジックが、ハッシュテーブルまたは辞書索引等の、当該分野において公知の機構を用いて要求に対する情報源およびプロトコル変換器を識別する。
データ記憶機構６０は、仮想エンドポイント６１および６６を含むデータを記憶し、対応付けられた識別子を用いて仮想エンドポイントを検索することが可能である。このような識別子は、仮想エンドポイント「アドレス」と見做すことができる。
【００４３】
データ記憶機構６０は、インデックスファイルまたはデータベース等の当該分野において公知のソフトウェアを用いて、あるいは他のコンピュータプログラム、機械コード、または１つ以上の集積回路等の電子回路を用いて実現され、ランダムアクセスメモリ、ディスク、またはテープ等の不揮発性電子記憶装置を管理してもよい。データ記憶機構６０の全体または一部がゲートウェイ１００に含まれる実施形態もある。
【００４４】
仮想エンドポイント６１および６６は、それぞれユーザに対する通信アドレス（携帯電話番号、ポケットベル番号、および／またはＥメールアドレス等）の対応等の、エンドポイントの対応が記憶されたものを表す。仮想エンドポイント６１は、ユーザ１に対する、知られている全てのエンドポイントを表すデータを含む。仮想エンドポイント６６は、ユーザ５に対する、知られている全てのエンドポイントを表すデータを含む。
【００４５】
外部システム３００は、要求に基づいて情報を提供する。外部システムの一例として、エンドポイントの現在状況に関する動的データを提供するネットワークがある。各外部システムは、要求を受信する１つまたは複数のプロトコルを定義する。
キャッシュ７０は、キャッシュ７０内に記憶され、ルーティングエンジン３０によって検索される、仮想接続７１等の一時エントリを含む。キャッシュ７０は、１つ以上の集積回路等の電子回路、またはランダムアクセスメモリ（ＲＡＭ）等のコンピュータメモリを含む、当該分野において公知の技術を用いて実現されてもよい。キャッシュ７０を管理するロジックのいくつかまたは全ては、ルーティングエンジン３０のロジックにおいて実現されてもよい。バッテリーバックアップを用いて、電源に異常が発生した場合にもキャッシュ７０の内容を保存することが好適である。
【００４６】
ルーティングエンジン３０は、以下に示すように、エンドポイントに対応付けられた嗜好の関数としてエンドポイント間のルーティングパスを決定するロジックを実現する。
通信がゲートウェイ１００に受信されると、通信の処理を完了するために、ルーティングエンジン３０が通信から情報を検索する。一般的に、ルーティングエンジン３０は、通信を処理するために要求される情報の検索が不可能である場合はその通信をいずれも無視する。よって、ゲートウェイ１００は、ゲートウェイが構成されていないプロトコルにおける通信をいずれも無視することとなる。ゲートウェイ１００は、プラグイン・ロジック・モジュールを用いて、個々のプロトコルに対して構成可能であることが好適である。
【００４７】
通信はゲートウェイ１００に宛先指定されてもよい。この場合、通信は行為要求として処理され、その結果は、任意には受信した要求の発信元であるエンドポイントへと戻される。要求は、ルーティングパス決定要求、および／または通信の送信要求であってもよい。受信した通信が他の何らかの行為要求（仮想エンドポイントを変更する要求等）である場合、ゲートウェイはその行為を本明細書には記載していない方法で実行する。受信した通信がゲートウェイ１００に宛先指定されない場合、またはルーティングパスの決定要求を含んでいる場合、ゲートウェイは図２に示すロジックを用いてルーティングパスを決定する。
【００４８】
さらに、好適な実施形態においては、決定されたルーティングパスに応じて通信を動的に変換および配信することが可能である。これら好適な実施形態においては、ルーティングエンジン３０は１つ以上のプロトコル変換器を用いて、通信をあるプロトコルから他のプロトコルへと変換する。プロトコル変換器は、当該分野において公知であり、好適な実施形態においてはプラグイン・ロジック・モジュールとして実現される。各プロトコル変換器は、１つ以上の外部プロトコルと共通の中間プロトコルとの間で変換を行うことが好適である。
【００４９】
一実施例においては、ユーザ１によって装置２を用いてユーザ５に宛てて発信された通信は、ネットワーク８０を介して送信され、ネットワーク８０によってゲートウェイ１００へと転送される。ルーティングエンジン３０は、以下に詳説するようにエンドポイント８２からエンドポイント８６へのルーティングパスを動的に決定し、通信をエンドポイント８６へと転送する。よって、ネットワーク８５が通信を装置６すなわちユーザ５へと配信することとなる。
【００５０】
ユーザ１によって装置２を用いてユーザ５に宛てて発信される通信に関する他の実施例として、以下のものがある。通信に応答して、ネットワーク８０は、ユーザ１と５との間に適切なルーティングパスを要求するさらなる通信をゲートウェイ１００に発信する。ルーティングエンジン３０は、エンドポイント８２と８６との間のルーティングパスを動的に決定し、これがネットワーク８０へと戻される。続いて、ネットワーク８０は、このルーティングパスに応じて、自らが接続されているネットワーク８５へと通信を転送し、ネットワーク８５が通信を装置６すなわちユーザ５へと配信する。ネットワーク８０は、ゲートウェイ１００によって決定されたルーティングパスに基づいてネットワーク８５への接続を確立し、この接続に対応付けられたさらなる通信が自動的にこの接続に応じてネットワーク間で伝送されてもよいことが理解されるであろう。
【００５１】
ネットワーク８０および８５がゲートウェイ１００へのインターフェースをとることが可能であれば、電子ネットワークである必要がないことも理解されるであろう。例えば、郵便ネットワークまたは配達ネットワークは、１つ以上の電子装置（コンピュータ、コンピュータ端末、バーコードリーダ、またはプリンタ等）を用いてゲートウェイ１００へのインターフェースをとり、ルーティングパスの決定を要求して手紙や小包などの電子化されていない通信を配信することもできる。
【００５２】
図２は、通信用ルーティングパスを決定するために、ルーティングエンジン３０において実行されるロジックを説明するフローチャートである。一例として、通信用ルーティングパスの動的決定、ならびに通信の変換および配信を説明する。プロトコル変換および／または配信が要求されていない通信に対しても同様のロジックを用いてもよいことが理解されるであろう。ロジックは、ブロック２０１０で開始される。ブロック２０１０においては、ルーティングエンジンが通信１０を受信し、通信１０のプロトコルを共通の中間プロトコルへと変換し、通信１１を作成する。ルーティングエンジンは、通信１１におけるメタデータとして発信側および受信側エンドポイントに関する全てのデータを含む。このデータは、ルーティングパスを決定するために用いられる、メッセージ１０において指定されるいかなる仮想エンドポイントアドレスおよびエンドポイントのみならず、通信１０において非明示の発信側および受信側エンドポイントをも含む。仮想エンドポイントアドレスは、仮想エンドポイントの識別子であり、本発明に係る実施形態において用いられる際に定義されているように、典型的には番号または文字列を含む。
【００５３】
ルーティングエンジン３０が、通信１０に対するいずれの受信側エンドポイントをも識別（ブロック２０２０）できない場合、配信不可能と判定され、ルーティングエンジンはブロック２０８０へと進む。本発明に係る好適な実施形態においては、ルーティングエンジンは、発信者が作成する通信１９のプロトコルへと変換される（ブロック２０９０）エラーメッセージ１７を作成し（ブロック２０８０）、次いでこれが発信者へと配信される。他の好適な実施形態においては、ルーティングエンジン３０が発信側エンドポイントを識別できない場合、通信１０は配信不可能と判定され、破棄される。
【００５４】
ルーティングエンジン３０は、通信１１のメタデータにおいて発信側および受信側仮想エンドポイントアドレスを探す（ブロック２０３０）。見つからなかった各仮想エンドポイントアドレスに対して、ルーティングエンジン３０は、対応する指定されたエンドポイント、それができない場合は、通信１０の対応する非明示のエンドポイントをデータインターフェース５０に提供し、仮想エンドポイントアドレスを要求する。データインターフェース５０は、要求された情報をデータ記憶機構６０から検索してもよい。０、１つ、または２つの仮想エンドポイントアドレスが検索され、検索される仮想エンドポイントアドレスがない場合には、本方法は単に２つのエンドポイント間のルーティングとなることが理解されるであろう。
【００５５】
ルーティングエンジン３０は、外部データインターフェース５０に照会を行い、外部データインターフェース５０がデータ記憶機構６０および／または１つ以上の外部システム３００から情報を検索することによって、ルーティングパスを決定するためのデータを検索する（ブロック２０４０）。要求されるデータには最初から、他のエンドポイントまたは仮想エンドポイントに係る通信に対して適用される、各仮想エンドポイントに対する嗜好が少なくとも含まれている。また、さらなる嗜好、ならびに種々のエンドポイントの状態および時刻等の動的データを含む情報が要求されてもよい。
【００５６】
続いて、ルーティングエンジン３０は、ブロック２０４０で検索したデータに応じて通信１１に対するルーティングパスを決定する（ブロック２０５０）。決定されたルーティングパスは、少なくとも１つの送信先エンドポイントを含むエンドポイントのベクトルから構成される。ルーティングパスのエンドポイントは、図３を参照して説明されるように、最も合致する基準を有する嗜好においてエンドポイントを見つけることにより決定される。
【００５７】
ルーティングエンジン３０が、最適な合致を決定するためにさらなるデータを要求（ブロック２０６０）する場合、ロジックはブロック２０４０へと戻る。例えば、ルーティングエンジンは、ブロック２０４０へと進み、現在「利用可能」である送信先エンドポイントが、可能なルーティングパスリスト内のどのルーティングパスに含まれているかという情報を検索することによって、このリストからの選択を行うことも可能である。
【００５８】
さらなるデータが要求されない場合、ルーティングエンジン３０は、そのルーティングパスにより通信１１が配信可能かどうか（ブロック２０７０）を判断する。通信が配信不可能となる際に考えられる理由の１つとして、検索した嗜好が配信を行うべきではないと示しており、ルーティングパスが同内容を示すように設定されている場合がある。配信が不可能な場合、ロジックは、ブロック２０８０へと進む。
【００５９】
配信が不可能な場合、ルーティングエンジン３０は、通信１１をそのルーティングパスの送信先エンドポイントに対応付けられたプロトコルへと変換して（ブロック２０９０）、通信１２を作成し、次いでこれが配信される。
ルーティングエンジン３０は、多数の受信側エンドポイントおよび／または受信側仮想エンドポイントを検索してもよい（ブロック２０３０）（すなわち、通信が「マルチキャスト」である）。この場合、発信側エンドポイントまたは仮想エンドポイントと受信側エンドポイントまたは仮想エンドポイントとの各組合せに対して１つずつ、多数のルーティングパスが決定される。
【００６０】
ルーティングエンジン３０は、多数のルーティングパスを単一の受信側仮想エンドポイントに対して決定してもよい（ブロック２０５０）。この場合、通信１１の全体または一部は、多数のルーティングパスのそれぞれによって配信される。例えば、ユーザの嗜好により、任意のファクシミリ・エンドポイント宛てに受信したファクシミリを、多数のファクシミリ・エンドポイントへと配信することができる。メッセージと添付ファイルとの間またはメッセージとヘッダーとの間等の容易に識別可能な境界、あるいはテキスト１０行毎または音声３０秒毎等の任意の境界に沿って、通信を多数の部分に分割してもよい。例えば、添付ファイル付きのＥメールを、メッセージは携帯電話へと配信され、添付ファイルは１つのＥメールアドレスへと配信され、Ｅメール全体は異なるＥメールアドレスへと配信されるように、多数のエンドポイントへと配信してもよい。
【００６１】
一実施形態においては、ルーティングエンジン３０が、完了通知１５を作成し、通信１０のプロトコルへと変換（ブロック２０９０）して、通信１６を作成し、これが通信１０の発信者へと配信されることによって、完了通知が発信者へと送信されてもよい。
別の実施例においては、通信１０がルーティングパスの決定要求である。この場合、通信１０はゲートウェイ１００に宛先指定され、要求したルーティングパスに対して指定されたエンドポイントまたは仮想エンドポイント識別子を含む。ルーティングエンジン３０は、指定されたエンドポイントまたは仮想エンドポイントに対するルーティングパスを決定し、決定されたルーティングパスを通信１０の発信者へと配信する。ルーティングエンジン３０は、ルーティングパスの発信側エンドポイントを動的に決定してもよい。例えば、ユーザ１は、特定のプロトコル（ＳＭＴＰ等）の代わりにプロトコルのカテゴリ（テキスト等）を特定して、ユーザ５へのルーティングパスを要求することができる。続いて、ルーティングエンジン３０は、そのプロトコルのカテゴリに関して、ユーザ双方の嗜好に最も合致するルーティングパスのエンドポイントを決定する。別の実施形態においては、発信者のみに対する仮想エンドポイントが含まれ、発信者に対する仮想エンドポイントに対応付けられた嗜好の関数としてルーティングパスが決定されてもよいことが理解されるであろう。
【００６２】
ゲートウェイ１００による他の何らかの行為の実行を求める、ユーザからの要求等の他の種類の要求も可能である。、例えば、ユーザは、本明細書には記載していない方法でゲートウェイによって処理されるユーザの仮想エンドポイントの変更を要求してもよい。
ゲートウェイ１００への要求は、ゲートウェイ１００によって理解されるいかなるプロトコルでもよく、よって、ユーザは、ＳＭＳ、Ｅメール、インスタントメッセージ、およびＨＴＴＰ等を用いて要求を送信できることが理解されるであろう。
【００６３】
図３は、ユーザ１（人物Ａ）およびユーザ５（人物Ｂ）それぞれに対する２つの仮想エンドポイント６１および６６の例を示す。各仮想エンドポイントにおける情報の列により、構造リストが形成される。左余白から同一の距離にインデントされた２つの列はいずれも構造の同一レベルにある。１列目が２列目よりも上にあり、２列目よりもインデント幅が小さく、かつ１列目と同等またはそれよりも小さい幅でインデントされる列が両者の間にない場合、１列目は２列目を包括すると考えられる。例えば、列３０１２は列３０１１よりも内側にあり、列３０１１が列３０１２を含む、より大まかなカテゴリであることを示している。このように、エンドポイントはプロトコルのグループにカテゴリ化され、ここで、より大まかなカテゴリ（列３０１１、３０２１、３０２３等）は、事実上仮想プロトコルを表す。従って、発信者および受信者の嗜好は、物理的なプロトコルレベル（alice@home.net等）のみというよりは、仮想プロトコルレベル（人物Ａ／テキスト等）で合致させることが可能である。
【００６４】
本発明の適用例において、人物Ａは、ＳＭＳプロトコルを用いてテキストメッセージを人物Ｂへと送信する。本実施例において、人物Ａは、テキストを処理可能な人物Ｂの装置のアドレスを全く知らないため、メッセージを人物Ｂの自宅電話番号に宛先指定する。図２のロジックフローチャートに示したように、ルーティングエンジン３０は、メッセージを共通の中間プロトコルへと変換し、人物Ａおよび人物Ｂに対する仮想エンドポイントを決定し、人物Ａからの通信に関する人物Ｂの嗜好および人物Ｂへの通信に関する人物Ａの嗜好を検索する。本実施例において、検索された嗜好は図３に示されるようなものであるが、人物Ａおよび人物Ｂに関する特定のルールとデフォルト値との組合せでもよい。
【００６５】
ルーティングパスを決定するために、ルーティングエンジン３０は、まず発信側エンドポイント（列３０１２によって表される）と受信側エンドポイント（列３０２２によって表される）との間の合致を探す。列３０１２のカテゴリ（ＳＭＳ、テキスト）が列３０２２のカテゴリ（自宅、電話、音声）のいずれにも合致しないため、これらの列（ひいては、これらのエンドポイント）はプロトコルが対応しない。従って、ルーティングエンジン３０は、人物Ｂの嗜好の最も特定されたカテゴリに合致する、列３０１２の最も特定されたカテゴリを見つける。ここでは、列３０１２と３０２４とがそれに該当する。続いて、ルーティングエンジンは、データインターフェース５０から情報を検索して、列３０２４のエンドポイントが現在利用可能かどうかを判断する。そのエンドポイントが現在利用可能ではない場合、その次に大まかな合致を検討する。この場合、列３０１２と３０２５、次に列３０１２と３０２６、列３０１２と３０２７、次に列３０１２と３０２８となる。これらの合致の内、現在利用可能なエンドポイントに対応付けられた最初の合致が、ルーティングパスにおいて選択される。
【００６６】
プロトコル９０および９５は同様のものである必要はないことが理解されるであろう。例えば、ＳＭＳが列３０２８へとルーティングされる場合、テキストを音声へと変換する変換器を用いて、通信１１を音声に符号化された通信１２へと変換することができる。人物Ａのおよび人物Ｂの嗜好では列３０１２と３０２８とのプロトコルが対応可能であるため、人物Ａが人物Ｂの職場電話番号へとＳＭＳを送信する場合、直ちに変換され配信されることも理解されるであろう。
【００６７】
カテゴリについての発信者および受信者の双方の嗜好の合致では、カテゴリについて合致する、それぞれの仮想エンドポイントにおけるエンドポイントの数の積に該当する数の可能なルーティングパスの組が生成されることが理解されるであろう。従って、単一の仮想エンドポイントを用いた場合、または物理的なプロトコルのみを用いた場合よりも多い数の、可能なルーティングパスの組が得られることとなる。本実施例において、テキストカテゴリに対する可能なルーティングパスの組は全部で１０組（人物Ａの選択肢２つに人物Ｂの選択肢５つを乗算する）となる。これに対して、２つの仮想エンドポイント（列３０１２と３０２４）間には単一のＳＭＳ合致しかなく、ＳＭＳに対応可能であると従来考えられてきた物理的な受信者エンドポイントは４つ（列３０２４、３０２５、３０２６、および３０２７）しかない。
【００６８】
本発明に係る好適な実施形態は、ここに記載したロジックの変形例を実現する。例えば、利用可能なエンドポイントを用いて第１のルーティングパスを選択する代わりに、カテゴリ合致がよく、記憶／転送機能を有する利用不可能なエンドポイントを用いたパスを、カテゴリ合致がよくない利用可能なエンドポイントを用いるパスよりも優先して選択するという重み付けされた決定を行ってもよい。別の好適な実施形態においては、ルールに基づく処理を用いて、ロジックを実現または改良する。例えば、勤務時間およびその時間内に配信される通信に関して、人物Ｂに対する嗜好にルールを追加することができる。ルールに基づく処理においては、ある基準を行為の契機としてもよい。例えば、ルールによって、あるユーザから大容量の添付ファイル付きＥメールを受信した場合は必ずＳＭＳアラートを生成するようにしてもよい。ルールに基づく処理は当該分野において公知であり、説明された嗜好がルールに変換可能であることが理解されるであろう。
【００６９】
確実に、仮想エンドポイント等のユーザのデータの機密保護を行い、許可されたユーザ、装置、またはエンドポイントに対して特定の行為を制限するのに適したロジックまたはソフトウェアを提供することが可能である。
本発明に係る別の実施形態においては、以下に示すようなさらなる種類の嗜好を可能にするために、外部システム３００からのさらなるデータを含む決定処理のロジックを実現してもよいことが理解されるであろう。
【００７０】
・この通信にいずれかのユーザがいくら支払う用意があるか
・ユーザらが共に要求された通りに通信を完了させることを望むか、または通信を他の方法で完了させることをより望むかどうか（例えば、リアルタイム接続要求を、メッセージキュー接続要求へと変更する）
・ユーザらが共に通信を完了させることを望むかどうか（例えば、ユーザが多忙である、不在である、応対不可である）
・通信を記憶および請求の目的で分類する（例えば、仕事用接続か私用接続か）
このロジックにより、ユーザの仮想エンドポイント内のいずれのアドレスを用いても、利用可能ないずれかのプロトコルにおいてユーザの宛先指定が可能となることが理解されるであろう。さらに、仮想エンドポイントのアドレスは、グローバルプロトコルから独立したアドレスとして用いることが可能である。これは、既存のプロトコルにおけるアドレスを仮想エンドポイントアドレスにマップすること、または仮想エンドポイントを直接的に宛先指定するように通信装置を変更することによって実現されてもよい。また、さらなる仮想アドレスを仮想エンドポイントに含めることも可能である。例えば、sales-person@company.comまたはsecretary@club.org等の役割に基づく１つ以上のアイデンティティを仮想エンドポイントに含めて、役割に基づくルーティングを可能としてもよい。従って、連絡先アドレスを他のユーザに渡す場合に、適切に制御されたアドレスを選択することによって、コンタクトを受付可能とする度合いを制御できることとなる。
【００７１】
一実施形態においては、ルーティングされている通信に関して、請求、ログインまたは監視等の取引情報が送信および／または受信されるように、ルーティングエンジン３０がデータインターフェース５０を用いてさらなる外部システム３００へ接続されてもよいことも理解されるであろう。従って、ルーティングエンジン３０で作成される情報が、外部システム３００と共有可能となる。
【００７２】
共通の中間プロトコルにおける通信の処理にさらなる機能を追加してもよい。例えば、ルーティングエンジン３０のロジックを改良して、機密保護チェック、圧縮、または暗号化等を実行可能である。このような処理はいずれも、その行為がその種類の通信に合理的に適用可能である限りにおいては、受信された通信のプロトコルまたは送信された通信のプロトコルに関わらず、ルーティングエンジン３０に取扱われるいずれの通信に対しても利用可能となる。
【００７３】
図４は、ルーティングエンジン３０が、以前に決定されたルーティングパスのキャッシュを保持している付加的なロジックを示している。本実施例では、通信に対するルーティングパスの動的な決定、ならびに通信の変換および配信を説明する。到着した通信１０のプロトコルは、ブロック２０１０において共通の中間プロトコルへと変換され、通信１１が作成される。続いて、ルーティングエンジン３０は、送信側および受信側エンドポイント等の通信１１内の情報を索引基準として用いて、キャッシュ７０のエントリを探す（ブロック２０１５）。ルーティングエンジンが通信１１に合致するエントリを見つけると、ロジックはブロック２０７７へと進む。
【００７４】
キャッシュ中に合致するエントリが見つからない場合、ロジックはブロック２０２０へと進み、図２に示すようにブロック２０７０までを実行する。ルーティングエンジン３０が、通信１１が配信可能であると判断（ブロック２０７０）した場合、ルーティングエンジンは通信１１に対するルーティングパスを記憶するキャッシュ７０にエントリを追加する（図４のブロック２０７５）。このキャッシュされたルーティングパスは、エンドポイント間の仮想接続（図１に仮想接続７１として示す）を表している。
【００７５】
ルーティングエンジン３０が、送信先プロトコルが通信１０のものと同一であると判断（ブロック２０７７）した場合、通信１０は直接配信される。プロトコルが異なる場合、ルーティングエンジンは、通信１１のプロトコルを送信先プロトコルへと変換して（ブロック２０９０）、通信１２を作成し、次いでこれが配信される。
仮想接続７１が一旦確立されると、通信がエンドポイント８２と８６との間にルーティング可能であり、ルーティングパスは仮想接続７１に記憶された情報を用いて決定され、よって処理時間が短縮されることが理解されるであろう。
【００７６】
いずれの構成要素、エンドポイント８２、エンドポイント８６、プロトコル９０、またはプロトコル９５も、仮想接続７１によって独立的に定義されるそれらの間の接続を遮断することなしに変更可能であることも理解されるであろう。例えば、エンドポイントの変更要求を、エンドポイント８２またはユーザ１に許可された他のいずれかのエンドポイントからルーティングエンジン３０へと送信してもよい。ルーティングエンジン３０は、図４に示したものを含むロジックを用いてこの要求を処理し、その結果、仮想エンドポイント６１に対する嗜好において特定される通りに仮想接続７１を変更することができる。ルーティングエンジン３０に受信され、仮想接続７１に対応付けられる後続の通信は、変更したルーティングパスに応じて配信される。行為要求に応じて、キャッシュ７０から仮想接続７１を消去してもよい。例えば、動的に決定されたルーティングパスに応じて確立された接続が切断された場合、その接続を担当しているネットワークは、キャッシュ７０の対応する仮想接続を消去するように要求してもよい。
【００７７】
図５は、本発明に係る別の実施形態による、別々かつ相互接続された２つのゲートウェイ１００および１０５を示す。ユーザ１は、エンドポイント８２によって表され、ネットワーク８０を介してゲートウェイ１００に接続される装置２を用いる。ユーザ５は、エンドポイント８６によって表され、ネットワーク８５を介してゲートウェイ１０５に接続される装置６を用いる。ゲートウェイ１００の構成要素は図１に示した通りである。ルーティングエンジン３５、データインターフェース５５、データ記憶機構６５、および外部システム３０５は、ゲートウェイ１０５においてそれぞれ対応するルーティングエンジン、データインターフェース、データ記憶機構、および外部システムである。ゲートウェイ１０５にも通信ポート２０が含まれる。仮想エンドポイント６１はユーザ１を表し、仮想エンドポイント６６はユーザ５を表し、仮想エンドポイント６７はルーティングエンジン３５を表す。プロトコル９９は共通の中間プロトコルである。
【００７８】
一実施例においては、ユーザ１は、通信１０の形態をとるルーティングパス要求を、エンドポイント８２を用いてユーザ５に対応付けられたエンドポイントへと送信する。本実施例において、通信１０は、インスタントメッセージ（「チャット」）セッション要求等の接続要求であり、配信されるべきメッセージおよびルーティングパス要求の両方を含む。図２および図４のルーティングロジックを参照して説明したように、ルーティングエンジン３０は、通信１０を通信１１へと変換する（ブロック２０１０）。ルーティングエンジン３０は、データインターフェース５０を用いて、発信者および受信者に対する仮想エンドポイントアドレスを識別する（ブロック２０３０）。本実施例においては、データインターフェース５０は、ユーザ1に対する仮想エンドポイント６１をデータ記憶機構６０から検索するが、ユーザ５に対する情報をデータ記憶機構６０から見つけることはない。続いて、データインターフェース５０は、外部システム３００の１つであるユーザからシステムへのグローバルサーバに照会を行い、ルーティングエンジン３５のアドレスを得る。データインターフェース５０は、このアドレスを、通信１１に対する受信側仮想エンドポイントとしてルーティングエンジン３０に戻す。（ユーザからシステムへのグローバルサーバは、ＤＮＳまたはＬＤＡＰサーバのロジック等の当該分野において公知のロジックを用いて実現されることが好ましい。）
【００７９】
ルーティングエンジン３０は、各仮想エンドポイントに関連するデータを検索する（ブロック２０４０）。データインターフェース５０は、データ記憶機構６０から仮想エンドポイント６１のデータを検索し、データインターフェース５５を介して仮想エンドポイント６７のデータを検索する。仮想エンドポイント６７に対して検索されたデータから、ルーティングエンジン３０は、ルーティングパスの送信先エンドポイントがルーティングエンジン３５となり、プロトコル９９が用いられると判断する（ブロック２０５０）。ルーティングエンジン３０は、このルーティングパスを仮想接続７１に記憶する（ブロック２０７５）。
【００８０】
ルーティングエンジン３０は、共通の中間プロトコル９９を用いて通信１１をルーティングエンジン３５へと配信する（ブロック２０９０）。この配信プロトコルは通信１１のものと同一であるため、変換を実際に行う必要はない。
ルーティングエンジン３５も、図２および図４に示すロジックを実行する。通常、ルーティングエンジン３５は、通信を共通の中間プロトコルへと変換して（ブロック２０１０）、通信１１を作成する。しかしながら、ルーティングエンジン３０は通信を共通の中間プロトコルで送信するため、変換を実際に行う必要はない。
【００８１】
ルーティングエンジン３５は、データ記憶機構６５に仮想エンドポイント６６を見つけるデータインターフェース５５を用いて、通信１１の発信者および受信者双方に対する指定された仮想エンドポイントアドレスを識別する（ブロック２０３０）。ルーティングエンジン３０は、仮想エンドポイント６１のアドレスを、通信１１におけるメタデータとして含むことが好ましい。しかしながら、ルーティングエンジン３５は、データインターフェース５５および外部システム３０５を用いても発信者の仮想エンドポイントを識別可能であることが理解されるであろう。
【００８２】
ルーティングエンジン３５は、データインターフェース５５に照会を行うことによって、仮想エンドポイント６１および６６に関連するデータを検索する（ブロック２０４０）。データインターフェース５５は、データインターフェース５０を介して仮想エンドポイント６１に対する嗜好を検索し、データ記憶機構６５から仮想エンドポイントに対する嗜好を検索する。
【００８３】
ルーティングエンジン３５も、検索された嗜好から、ユーザ５への接続に関するユーザ１の嗜好およびユーザ１からの接続要求に関するユーザ５の嗜好を決定し、送信先エンドポイントはプロトコル９５によるエンドポイント８６であると判断する（ブロック２０５０）。
ルーティングエンジン３５は、プロトコル９５における仮想接続７１とエンドポイント８６との間のルーティングパスを含めるように仮想接続７６を確立または変更し（ブロック２０７５）、ルーティングエンジン３０に接続が完了した旨を通知する。ルーティングエンジン３０は、仮想接続７６へと向かうように仮想接続７１を更新する。ルーティングエンジン３５は、通信１１をプロトコル９５へと変換して（ブロック２０９０）、エンドポイント８６へと配信される通信１２を作成する。
【００８４】
この段階で仮想接続７１および７６が、エンドポイント８２と８６との間のルーティングパスを定義するマップされた仮想接続１１１を定義していること、およびエンドポイント８２、プロトコル９０、エンドポイント８６、またはプロトコル９５の詳細は接続を遮断することなしに変更可能であることが理解されるであろう。
しかしながら、ルーティングエンジン３０および３５は、仮想接続７１および７６を確立することなしにエンドポイント８２と８６との間の通信を動的にルーティング可能である。
【００８５】
本発明に係る変形された実施形態においては、ゲートウェイ１００および１０５が、単一のゲートウェイ上に任意に置かれる単一の仮想接続（７１または７６）を共有する。
本発明に係るさらに変形された実施形態においては、ルーティングエンジン３５が、通信１１をさらなる交渉用ゲートウェイへと配信する（すなわち、本発明に係る実施形態において、エンドポイント８６がルーティングエンジンとなる）。実施にあたっては、任意の数のゲートウェイを連接して発信者と受信者との間のパスを定義してもよい。
【００８６】
本発明は、異なるプロトコルを用いる異なる通信ユーザに、相手のユーザに用いられる装置またはプロトコルの詳細を気にすることなく円滑な接続及び通信を行うこと可能とする。さらに、ユーザにとっては以下のような利点がある。
・各ユーザの嗜好に応じた接続についての交渉により、制御がさらに可能となる。
・交信の途中で装置またはプロトコルを変更する能力が得られる。
【００８７】
・全てのプロトコルおよび装置に自動的に適用可能な追加機能が得られる。
上記においては、本発明に係る実施形態のいくつかのみを説明した。当業者にとって明白な変更及び追加は、発明の範囲から逸脱することなく実施することができる。
例えば、受信した通信を共通の中間プロトコルへと変換する代わりに、ルーティングパスが決定するまでバッファに保存し、（発信側エンドポイントのプロトコルと送信先エンドポイントのプロトコルとが異なる場合は）送信先エンドポイントのプロトコルに直接変換することも可能である。
【００８８】
本発明は、通信エンドポイント間のルーティングパスの決定に特に言及して説明されたが、エンドポイント間の通信は他の情報を組み込むことも可能であることが理解されるであろう。例えば、金銭取引等の金融取引を、銀行口座等の動的に決定された金融エンドポイント間でルーティング可能である。
【図面の簡単な説明】
【００８９】
【図１】本発明に係る一実施形態による、２者の通信ユーザに用いられる２つの通信ネットワークに接続されるゲートウェイのブロック図である。
【図２】図１のゲートウェイがルーティングパスを決定するために実行するロジックを説明するフローチャートである。
【図３】図２に示すロジックを説明するために用いられる２つの仮想エンドポイントの例である。
【図４】図１のゲートウェイが、動的に決定されたルーティングパスの詳細を含むキャッシュエントリを記憶および検索するために実行するロジックを説明するフローチャートである。
【図５】本発明に係る別の実施形態による、図２、図３、および図４に示すロジックを実行し、２つの通信ネットワークにそれぞれ１つずつ接続され、２者のユーザにそれぞれ１つずつ用いられる、相互接続された２つのゲートウェイのブロック図である。
【図１】
2008502233.tif 000003
【図２】
2008502233.tif 000004
【図３】
2008502233.tif 000005
【図４】
2008502233.tif 000006
【図５】
2008502233.tif 000007
【国際調査報告】
2008502233.tif 000008
2008502233.tif 000009
2008502233.tif 000010