(57)【要約】【課題】同一ユーザの複数のユーザエージェントから一意のユーザエージェントインスタンスを識別するためのキーとして一意の識別子を生成して使用するためのファシリティを提供すること。【解決手段】このファシリティは、１つのアプリケーションインスタンス内における１人のユーザの１つのインスタンスである第１のユーザエージェントインスタンス用の識別子を生成する。このファシリティは、第１のユーザエージェントインスタンスを論理サーバに登録するためにこの識別子を使用し、この識別子を第１のユーザエージェントインスタンスと論理サーバへの登録のペアに関連付ける。次いでこのファシリティは、第１のユーザエージェントインスタンスを論理サーバにその後登録するために、この識別子を使用する。【選択図】図４
2006120139.tif 000002
【特許請求の範囲】
【請求項１】
論理サーバへの登録のペアに対するユーザエージェントインスタンスの永続性を識別するための、コンピューティングシステムにおける方法であって、
第１のユーザエージェントインスタンス用の第１の識別子を生成するステップと、
前記第１のユーザエージェントインスタンスを論理サーバに登録するために前記識別子を使用するステップと、
前記識別子を前記論理サーバへの登録セッションに対する前記第１のユーザエージェントインスタンスに関連付けるステップと、
前記第１のユーザエージェントインスタンスを前記論理サーバにその後登録するために前記識別子を使用するステップであって、前記登録およびその後の登録は、１つのアプリケーションインスタンス内の前記第１のユーザエージェントインスタンスの登録であり、前記識別子は、前記第１のユーザエージェントインスタンスの前記論理サーバへの前記登録およびその後の登録を一意に識別するステップとを備えることを特徴とする方法。
【請求項２】
前記識別子は、Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌのエンドポイント識別子であることを特徴とする請求項１に記載の方法。
【請求項３】
前記識別子は、前記第１のユーザエージェントインスタンスに関連付けられたユーザのユーザ情報を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記識別子は、前記ユーザエージェントインスタンスのライフタイムにわたって保持されることを特徴とする請求項１に記載の方法。
【請求項５】
前記識別子は、暗号乱数発生器によって生成されることを特徴とする請求項１に記載の方法。
【請求項６】
前記識別子はユーザのＵＲＩの表示を含み、前記ユーザは前記第１のユーザエージェントインスタンスに関連付けられていることを特徴とする請求項１に記載の方法。
【請求項７】
第２のユーザエージェントインスタンス用の第２の識別子を生成するステップであって、前記第２のユーザエージェントインスタンスおよび前記第１のユーザエージェントインスタンスは、同一ユーザの１つのインスタンスであるステップと、
前記第２のユーザエージェントインスタンスを前記論理サーバに登録するために前記第２の識別子を使用するステップと、
前記第２の識別子を前記論理サーバへの登録セッションに対する前記第２のユーザエージェントインスタンスに関連付けるステップであって、前記第２の識別子は、前記論理サーバへの登録セッションに対する前記第２のユーザエージェントインスタンスを一意に識別するステップとをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記第２の識別子は、前記第２のユーザエージェントインスタンスの前記論理サーバへの複数の論理登録セッションにわたって再利用されることを特徴とする請求項７に記載の方法。
【請求項９】
そのコンテンツが、
ユーザの第１のユーザエージェントインスタンス用に識別子を生成するステップと、
前記識別子を使用して前記第１のユーザエージェントインスタンスをサーバに登録するステップと、
前記識別子を前記サーバへの登録セッションに対する前記第１のユーザエージェントインスタンスに関連付けるステップと、
前記識別子を使用して前記第１のユーザエージェントインスタンスを前記サーバに再登録するステップであって、前記登録および前記再登録は、１つのアプリケーションインスタンス内の前記第１のユーザエージェントインスタンスの登録であり、前記識別子は、前記第１のユーザエージェントインスタンスの前記サーバへの前記登録および再登録の双方を一意に識別するステップとをコンピュータに実行させることを特徴とするコンピュータ読取可能記録媒体。
【請求項１０】
前記アプリケーションインスタンス内で前記ユーザの第２のユーザエージェントインスタンス用に、前記識別子とは異なる第２の識別子を生成するステップと、
前記第２の識別子を使用して前記第２のユーザエージェントインスタンスを前記サーバに登録するステップと、
前記第２の識別子を前記サーバへの登録セッションに対する前記第２のユーザエージェントインスタンスに関連付けるステップとをコンピュータに実行させるコンテンツをさらに備えることを特徴とする請求項９に記載のコンピュータ読取可能記録媒体。
【請求項１１】
前記第２の識別子は、前記第２のユーザエージェントインスタンスの前記サーバへの複数の論理登録セッションにわたって再利用されることを特徴とする請求項１０に記載のコンピュータ読取可能記録媒体。
【請求項１２】
前記第１のユーザエージェントインスタンスは、同一ユーザの複数のユーザエージェントインスタンスのうちの１つのインスタンスであることを特徴とする請求項９に記載のコンピュータ読取可能記録媒体。
【請求項１３】
前記識別子を使用して、前記第１のユーザエージェントインスタンスを一意に識別するためのキーを作成することを特徴とする請求項９に記載のコンピュータ読取可能記録媒体。
【請求項１４】
前記キーは、前記識別子および前記ユーザのＵＲＩから作成されることを特徴とする請求項１３に記載のコンピュータ読取可能記録媒体。
【請求項１５】
論理サーバへの登録セッションのペアを有する第１のユーザエージェントインスタンスを一意に識別する識別子を共同で備える１つまたは複数のコンピュータメモリであって、前記第１のユーザエージェントインスタンスは、１つのアプリケーションインスタンス内における１人のユーザの１つのインスタンスであり、これによって前記識別子は、前記ユーザエージェントインスタンスのライフタイムにわたって保持され、前記第１のユーザエージェントインスタンスの前記論理サーバへの複数の論理登録セッションにわたって再利用されることを特徴とするコンピュータメモリ。
【請求項１６】
前記識別子は、前記論理サーバへの通信内に含まれることを特徴とする請求項１５に記載のコンピュータメモリ。
【請求項１７】
前記識別子は、前記論理サーバ上に保存されることを特徴とする請求項１５に記載のコンピュータメモリ。
【請求項１８】
前記識別子は、前記ユーザに関連付けられた情報を含むことを特徴とする請求項１５に記載のコンピュータメモリ。
【請求項１９】
前記識別子は、乱数発生器によって生成されることを特徴とする請求項１５に記載のコンピュータメモリ。
【請求項２０】
前記識別子は、前記ユーザのＵＲＩの表示を含むことを特徴とする請求項１５に記載のコンピュータメモリ。
【請求項２１】
前記論理サーバへの登録セッションのペアを有する第２のユーザエージェントインスタンスを一意に識別する第２の識別子をさらに備え、前記第２のユーザエージェントインスタンスは、前記アプリケーションインスタンス内の同一ユーザの１つのインスタンスであることを特徴とする請求項１５に記載のコンピュータメモリ。
【請求項２２】
論理サーバへの登録のペアに対するユーザエージェントインスタンスの永続性を識別するためシステムであって、
ユーザのインスタンスである第１のユーザエージェントインスタンス用の識別子を生成するための手段と、
前記第１のユーザエージェントインスタンスを論理サーバに登録するための手段と、
前記識別子を前記論理サーバへの登録セッションに対する前記第１のユーザエージェントインスタンスに関連付けるための手段とを備え、
これによって前記識別子は、前記第１のユーザエージェントインスタンスの前記論理サーバへの複数の論理登録セッションにわたって再利用され、前記識別子は、前記論理サーバへの登録セッションに対する前記第１のユーザエージェントインスタンスを一意に識別することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
ここで説明する技術は、一般にコンピュータネットワーク上のデバイス間における通信を対象とし、より具体的には、ユーザエージェントインスタンスのライフタイムにわたって識別子を保持することを対象とする。
【背景技術】
【０００２】
ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）は、コンピューティングデバイスが、別のデバイスとコンピュータネットワークを介して通信すること、および通信セッションを確立することを希望する場合に、その別のデバイスの位置を特定するためのメカニズムを提供する信号伝達プロトコルである。具体的には、ＳＩＰは、複数のシナリオにおいて対話型のユーザセッションを開始するためのＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）による標準的なプロトコルである。例えばＳＩＰは、インターネットによる会議、電話、ゲーム、バーチャルリアリティ、イベント通知、およびインスタントメッセージ用に使用される。ＳＩＰプロトコルによって、ＩＰドメイン内のエンドポイントに対するコールセットアップの開始、ルーティング、認証、および他の機能のメッセージが可能となる。
【０００３】
【特許文献１】米国特許第１０／３８７，２３８号明細書
【非特許文献１】ＩＥＴＦ  ＲＦＣ  ２５４３
【非特許文献２】ＳＩＰ  ｐｒｏｔｏｃｏｌ  ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＲＦＣ  ３２６１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＨＴＴＰやＳＭＴＰと同様に、ＳＩＰは、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）通信モデルのアプリケーション層で機能する。そのようなものとして、ＳＩＰは、マルチメディアセッションやインターネット電話の通話を確立し、それらを変更または終了することができる。ＳＩＰプロトコルは、必ずしもイニシエータを含むわけではないユニキャストセッションまたはマルチキャストセッションへと参加者を導くこともできる。ＳＩＰは、ネームマッピングおよびリダイレクションサービスをサポートするため、ユーザは、任意の場所から通信とサービスを開始および受信し、ネットワークは、そのネットワーク内のユーザを識別することができる。
【０００５】
ＳＩＰは、様々な用途で幅広く実施されているが、現在のＳＩＰプロトコルには、ＳＩＰ信号内で搬送されるデバイス用の一意の識別子がないという欠陥がある。標準的なＳＩＰの解決策は、デバイスのＩＰアドレスを使用することだが、多くの状況では、デバイス自体は変わらなくとも、リブートの場合のようにデバイスのＩＰアドレスは変わるため、これは適切な解決策ではない。
【０００６】
さらに、１台のサーバに対する１台のクライアントの同一インスタンスの別々の登録セッションまたはログオンセッションに対して別々の識別子を使用すると、サーバ上では陳腐化した登録／サブスクリプションレコードが生じることになる。例えばクライアントコンピュータ上で実行中のアプリケーションのインスタンスを使用して、ユーザは、識別子を用いてサーバに登録を行うことができる。サーバに登録を行うために使用される識別子は、サーバに対するユーザの登録セッションを適切に識別する。その後、登録セッション中に、ネットワーク内の異常によって登録セッションが失われることがある。失われた登録セッションを検出すると、ユーザは再びサーバに登録を行うが、今度は、以前にサーバへ登録した際に使用した識別子とは異なる識別子を使用する。これによって、前回の登録セッションに対応するサーバ上のすべてのレコード、例えばユーザとサーバの間における前回の登録セッション用の登録データおよび情報は、陳腐化することになる。
【０００７】
したがって１台のサーバに対する複数の登録／ログインセッションにわたって１つのユーザエージェントインスタンスを一意に識別する際に使用するための識別子は、非常に有用であろう。
【課題を解決するための手段】
【０００８】
同一ユーザの複数のユーザエージェントから一意のユーザエージェントインスタンスを識別するキーとして一意の識別子を作成して使用するためのソフトウェアファシリティ（「ファシリティ」）について説明する。それぞれの識別子は、登録／ログインサーバの特定のクラスタに対するその対応するユーザエージェントインスタンスを表す。この識別子は、ユーザエージェントインスタンスのライフタイムにわたって保持され、複数の論理登録／ログインセッションにわたって再利用される。一部の実施形態では、この識別子は、ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）の下での受信要求メッセージ内に含まれる。
【０００９】
例えばアプリケーションプログラムのインスタンスは、クライアントコンピュータ上で実行することができる。このアプリケーションインスタンスを使用して、ユーザは、ネットワークを介してクライアントコンピュータに結合されているリモートサーバに登録／ログオンするよう要求することができる。これに応答して、クライアントコンピュータ上で実行されているファシリティは、エンドポイント用の一意の識別子を作成し、これは、アプリケーションインスタンス内のユーザエージェントインスタンス、例えば登録を要求しているユーザのインスタンスである。この作成された識別子を使用して、ファシリティはサーバへの登録の処理へと進む。ユーザエージェントインスタンスをサーバに首尾よく登録すると、ファシリティは、識別子をユーザエージェントインスタンスと論理サーバのペアに関連付け、その識別子を永続的に保存する。ユーザエージェントインスタンスが、例えば前回のログオン／登録をログオフまたは終了した後、同一のアプリケーションインスタンス内で同一のサーバに再登録／再ログインするよう要求すると、ファシリティは、ユーザエージェントインスタンスと論理サーバのペアに関連付けられている保存された識別子を検索し、この識別子を使用して、ユーザエージェントインスタンスをサーバに再登録する。
【００１０】
ファシリティの様々な実施形態およびその利点は、図面の図１〜６を参照することによって、最もよく理解することができる。図面の要素は必ずしも正しい縮尺ではなく、むしろ本発明の原理を明確に示すことに重点が置かれている。図面を通じて、様々な図面の同様の部分および対応する部分を表すために同様の数字が使用されている。
【発明を実施するための最良の形態】
【００１１】
図１は、ファシリティが実行されるコンピュータシステムの少なくともいくつかに一般的に組み込まれる選択されたコンポーネントを示すブロック図である。これらのコンピュータシステム１００は、コンピュータプログラムを実行するための１つまたは複数の中央処理装置（「ＣＰＵ」）１０２と、プログラム、およびプログラムが使用されている間は「データを含むデータ構造」を格納するためのコンピュータメモリ１０４と、プログラムおよびデータを永続的に格納するための、ハードドライブなどの永続ストレージデバイス１０６と、コンピュータ可読メディア上に格納されているプログラムおよびデータを読み取るための、ＣＤ−ＲＯＭドライブなどのコンピュータ可読メディアドライブ１０８と、プログラムおよび／または「データを含むデータ構造」をやり取りするためにインターネットなどを介してコンピュータシステムを他のコンピュータシステムに接続するためのネットワーク接続１１０とを含むことができる。
【００１２】
このファシリティは、コンピュータシステム１００または他のデバイスによって実行される、プログラムモジュールなどのコンピュータ可読命令という一般的なコンテキストにおいて説明することができる。一般にプログラムモジュールは、特定のタスクを実行したり特定の抽象データ型を実装したりするルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。メモリ１０４および永続ストレージデバイス１０６は、ファシリティを実施する命令を含むことができるコンピュータ可読メディアである。メモリ１０４および永続ストレージ１０６は、ファシリティを実施する命令に加えて様々な他のコンテンツを有することができることを理解できるであろう。
【００１３】
コンピュータシステム１００は、ビデオモニタやＬＣＤパネルなど、プログラムの出力を表示するための１つまたは複数のディスプレイデバイスと、キーボード、マイクロフォン、あるいはマウス等のポインティングデバイスなど、ユーザの入力を受け取るための１つまたは複数の入力デバイスとを含むことができることを理解できるであろう。通常は、上記のように構成されたコンピュータシステム１００を使用して、ファシリティのオペレーションをサポートするが、ファシリティは、様々なコンポーネントを有する様々なタイプおよび構成のデバイスを使用して実施できることを理解できるであろう。
【００１４】
以降の考察では、様々な具体例と併せてファシリティの実施形態について説明する。ファシリティの実施形態は、様々な点でこれらの例とは大きく異なる環境でも使用できることを理解できるであろう。
【００１５】
図２は、ファシリティの実施形態の態様を組み込むことができるＳＩＰシステムを示す概略図である。具体的には、図２は、例えばＳＩＰホームサーバ１６０ａ〜ｃが、同一ユーザの複数のユーザエージェントから一意のユーザエージェントインスタンスを一意に識別できるようにするために、「ｅｐｉｄ」または「エンドポイントＩＤ」とも呼ばれる一意のエンドポイント識別子をＳＩＰの下で受信要求メッセージに統合するためのメカニズムを示している。ＳＩＰホームサーバ（以降、「ホームサーバ」と呼ぶ）１６０ａ〜ｃは、それぞれＳＩＰレジストラのインスタンスであり、これは論理登録／ログインサーバとすることができる。ｅｐｉｄは通常、ＳＩＰ信号のヘッダ内に含めて搬送され、ＳＩＰデバイスを一意に識別するためのスキームを提供する。一実施形態では、ｅｐｉｄは、２００３年３月１２日に出願された「Ｅｎｄ−Ｐｏｉｎｔ  Ｉｄｅｎｔｉｆｉｅｒｓ  ｉｎ  ＳＩＰ」という名称の特許文献１において説明されているものと同様であり、その全体を参照によって本明細書に組み込む。非特許文献１も、Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌについて教示しており、これも、その全体を参照によって本明細書に組み込む。
【００１６】
例えば図２のトポロジによって示されているように、セッション開始オペレーションでは、ＳＩＰホームサーバ１６０ａ〜ｃに登録を行う（カスタマ１のネットワーク１１０内の）クライアント（Ｃ１）１１２は、受信要求メッセージ（例えばＳＵＢＳＣＲＩＢＥメッセージ）をＳＩＰホームサーバ１６０ａ〜ｃへ送信する。この受信要求メッセージは、ロードバランサ１４０ａ〜ｃおよびロードディストリビュータ１５０ａ〜ｃなどの複数のコンポーネントを含むコンピュータネットワークを介して伝達される。本明細書では、ＲＥＧＩＳＴＥＲメソッドおよびＳＵＢＳＣＲＩＢＥメソッドを例として使用することがあるが、説明する実施形態は、ＮＯＴＩＦＹ、ＢＹＥ、ＡＣＫ、ＣＡＮＣＥＬ、ＩＮＶＩＴＥ、ＲＥＦＥＲ、ＭＥＳＳＡＧＥ、ＩＮＦＯ、ＯＰＴＩＯＮＳ、ＰＲＡＣＫ、ＵＰＤＡＴＥ、およびＰＵＢＬＩＳＨなどを含むが、それらに限定されない他の任意のＳＩＰメソッドにも適用できることに留意されたい。
【００１７】
ロードバランサ１４０ａ〜ｃは、通常はＩＰレベルのロードバランサであり、その一方でロードディストリビュータ１５０ａ〜ｃは、通常はアプリケーションレベルのエンティティである。本明細書で論じるロードディストリビュータ１５０ａ〜ｃは、非特許文献２に記載されているような「ロケーションサービス」を具体化することが好ましい。一般的な展開は、クライアント（Ｃ１）１１２にＨＴＴＰプロキシサーバ（ＨＰ１）１１５を使用させて、ファイアウォール１３０を通過してＩＰベースのロードバランサ１４０ａ〜ｃの１つに対して外向きのＨＴＴＰＳ接続を設けることである。図２に示されているように、ロードバランサ（ＬＢ２）１４０ｂに対して接続を設ける。次いでロードバランサ（ＬＢ２）１４０ｂは、ＳＩＰベースのロードディストリビュータ１５０ａ〜ｃの１つに対してＨＴＴＰＳ接続を設ける。図２に示されているように、ロードバランサ（ＬＢ２）１４０ｂとロードディストリビュータ（ＬＤ３）１５０ｃの間に接続を設ける。次にロードディストリビュータ（ＬＤ３）１５０ｃは、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．の製品であるＡＣＴＩＶＥ  ＤＩＲＥＣＴＯＲＹ（登録商標）等のディレクトリサービスなどを介して、クライアント（Ｃ１）１１２用のホームサーバを検索する。あるいはロードディストリビュータ（ＬＤ３）１５０ｃは、ＬＤＡＰ、外部データベース、インメモリデータベース、または他の何らかの外部データソースを使用して、この情報を入手することもできる。その後、ロードディストリビュータ（ＬＤ３）１５０ｃは、ＳＩＰホームサーバ（ＨＳ１）１６０ａに対してＴＣＰ接続を設け、受信要求メッセージを転送する。
【００１８】
一部の実施形態では、クライアント（Ｃ１）１１２上で実行されるファシリティは、クライアント（Ｃ１）１１２上のユーザのそれぞれのエンドポイントごとに一意のｅｐｉｄを作成する。このｅｐｉｄは、空間および時間にわたって一意であり、任意の従来の利用可能な暗号乱数発生器または適切なアルゴリズムを使用して作成することができる。ファシリティは、初めてユーザエージェントが初期化された際に、ユーザのエンドポイント用のｅｐｉｄパラメータ、例えばユーザエージェントインスタンスとアプリケーションインスタンスの組合せを作成し、このｅｐｉｄは、次に使用するためにユーザのエンドポイントによって永続的に保存される。
【００１９】
一部の実施形態では、所与のユーザのエンドポイントは、ｅｐｉｄおよびユーザの記録されているアドレス（ＵＲＩ）からキーを作成することによって、一意に識別することができる。これらの実施形態では、ｅｐｉｄは単独では意味を有することはできず、通常その一意性は、ユーザＵＲＩと組み合わせて初めて確かなものとなる。
【００２０】
効果的であるためには、ｅｐｉｄの値は、ユーザ用のそれぞれのエンドポイントごとに一意であることが好ましい。したがってｅｐｉｄパラメータは、「トークン」のシンタックスに従うコード化された任意の文字列または実質的に無作為な値（すなわち無作為な値か、または通常は近い間隔で配置された値がある場合にそうした値が繰り返される確率が低くなるように保証するハッシュ法などの技術によって生成された値）とすることができる。十分に無作為な値を使用すれば、２つのエンドポイントが同一のエンドポイント値を選択する衝突の可能性は低くなる。一部の実施形態では、ｅｐｉｄパラメータは、符号のない３２ビットの無作為な値の８文字の１６進法でコード化された文字列である。一部の実施形態では、ｅｐｉｄパラメータは、デバイス（例えばクライアント（Ｃ１）１１２）の４８ビットのＭＡＣアドレスの１６進法によるコード化である。ＭＡＣアドレスの永続性および実質的な一意性によって、関連付けられた１６進法でコード化された文字列は、特定のデバイスに永続的に関連付けられ、実質的に一意であることが保証される。
【００２１】
ファシリティは、ＳＩＰヘッダのパラメータとしてｅｐｉｄを生成して使用する。一部の実施形態では、ｅｐｉｄは、ＳＩＰのＦｒｏｍ：またはＴｏ：ヘッダのパラメータとして使用される。ファシリティは、ｅｐｉｄを作成／選択／生成し、そのｅｐｉｄパラメータをＲＥＧＩＳＴＥＲ要求などの生成される各要求のＦｒｏｍ：ヘッダに挿入する。ＳＩＰの仕様によって、ｅｐｉｄパラメータは、必ず要求に対する応答メッセージのＦｒｏｍ：ヘッダにコピーされる。ｅｐｉｄパラメータをコピーすることによって、オリジネータのｅｐｉｄパラメータを信号伝達パスに沿って双方向に端から端まで利用可能にすることができる。
【００２２】
ｅｐｉｄパラメータのこの使用法の一例は、次のとおりである。
【００２３】
【表１】
2006120139.tif 000003
【００２４】
この例では、ｅｐｉｄパラメータは＜＞の外側にある。このｅｐｉｄパラメータは、ｅｐｉｄがいずれのヘッダ内にあるかに応じてＦｒｏｍ：またはＴｏ：のＵＲＩ内におけるユーザのエンドポイント用の一意の識別子となることを意図している。一部の実施形態では、たとえそれぞれのＳＩＰセッションごとにタグパラメータが異なっていても、ｅｐｉｄパラメータは、このエンドポイント用のすべてのＳＩＰセッションにわたって同一である。さらにｅｐｉｄパラメータは、受信側当事者によって不透明なトークンとして取り扱われる。あるいはｅｐｉｄパラメータは、大文字と小文字を区別しない。
【００２５】
ＳＩＰレジストラは、要求をクライアントへ転送しているときに、登録時にＦｒｏｍ：内で提供されたｅｐｉｄパラメータをそのクライアントのためにＴｏ：ヘッダ内に挿入する。一般に、要求のオリジネータは、その要求の送信先のエンドポイント用のｅｐｉｄを知らないであろう。ＳＩＰレジストラは、要求を送信先へ転送する際にパラメータを挿入し、ダウンストリームのプロキシがこの情報を利用できるようにする。一例では、ＩＮＶＩＴＥメソッドを使用して確立されるユーザ対ユーザのセッションにおいて、レジストラは、意図する受信者のｅｐｉｄをＴｏヘッダへコピーし、セキュリティの関連付けを識別する際、および他のクライアント固有の機能を実行する際に、ルート沿いのルータを補助する。
【００２６】
図３は、一部の実施形態による、時間の経過と共に登録サーバに登録された複数のユーザエージェントインスタンスを示す概略図である。示されているように、アプリケーションインスタンス３０２は、ユーザＡ（１）３０４ａ、ユーザＡ（２）３０４ｂ、およびユーザＡ（３）３０４ｃという３つのユーザエージェントインスタンスを含む。アプリケーションインスタンス３０２は、クライアント（Ｃ１）１１２上で実行することができ、ユーザエージェントインスタンス３０４ａ〜ｃは、それぞれユーザＡという同一ユーザのユーザエージェントインスタンスである。
【００２７】
時間ｔ０では、ユーザエージェントインスタンス３０４ａ〜ｃのそれぞれが、ＳＩＰホームサーバ（ＨＳ１）１６０ａに登録される。例えばユーザＡ（１）３０４ａは、ＳＩＰホームサーバ１６０ａ〜ｃの論理インスタンスに登録を行う要求を送信する。これに応答して、クライアント（Ｃ１）１１２上で実行されているファシリティは、同一ユーザの他のインスタンスからユーザＡ（１）３０４ａを一意に識別するために、ｅｐｉｄを生成し、そのｅｐｉｄをＲＥＧＩＳＴＥＲ要求メッセージのＦｒｏｍフィールドに挿入する。ファシリティは、生成したｅｐｉｄをこのユーザのインスタンスであるユーザエージェントインスタンス３０４ａに関連付け、この生成したｅｐｉｄをユーザエージェントインスタンス３０４ａのライフタイムにわたって永続的に保存する。これによって、論理ＳＩＰホームサーバ１６０ａ〜ｃに対するユーザエージェントインスタンス３０４ａの複数の論理登録セッションにわたってこのｅｐｉｄを再利用できるようになる。
【００２８】
例えば図２に示されているように、クライアント（Ｃ１）１１２からの受信要求メッセージは、パスを介してプロキシサーバ（ＨＰ１）１１５を経由し、このプロキシサーバ（ＨＰ１）１１５は、その受信要求メッセージをロードバランシングサーバ１４０ａ〜ｃの１つ、具体的にはロードバランサ（ＬＢ２）１４０ｂへ転送する。次いでロードバランサ（ＬＢ２）１４０ｂは、この受信要求メッセージをロードディストリビュータサーバ１５０ａ〜ｃの１つ、具体的にはロードディストリビュータ（ＬＤ３）１５０ｃへ転送する。ロードディストリビュータ（ＬＤ３）１５０ｃは、クライアント（Ｃ１）１１２用にホームサーバの情報を検索し、ホームサーバ１６０ａ〜ｃの論理インスタンスであるクライアントＣ１のホームサーバ（ＨＳ１）１６０ａに対して、その要求を代理する。
【００２９】
一部の実施形態では、ロードディストリビュータ（ＬＤ３）１５０ｃは、Ｒｅｃｏｒｄ−Ｒｏｕｔｅを有効にし、これによって、自分自身を受信要求メッセージに追加する。そのようなものとして、ＩＰ層における登録用のルートは、Ｃ１−ＨＰ１−ＬＢ２−ＬＤ３−ＨＳ１であり、その一方でＳＩＰ層における登録用のルートは、プロキシサーバ（ＨＰ１）およびロードバランサ（ＬＢ２）がＳＩＰサーバではないため、Ｃ１−ＬＤ３−ＨＳ１である。
【００３０】
クライアント（Ｃ１）１１２からロードディストリビュータ（ＬＤ３）１５０ｃへ送信されるＲＥＧＩＳＴＥＲ要求メッセージ内でのｅｐｉｄパラメータの使用法の一例は、次のとおりである。
【００３１】
【表２】
2006120139.tif 000004
【００３２】
この例から見て取れるように、生成されてヘッダに追加されるｅｐｉｄパラメータは、２ａｆ５ｃ３２ｂである。ロードディストリビュータ（ＬＤ３）１５０ｃは、Ｒｅｃｏｒｄ−Ｒｏｕｔｅを有効にした受信要求メッセージを受信すると、Ｒｅｃｏｒｄ−ＲｏｕｔｅヘッダをＲＥＧＩＳＴＥＲ要求メッセージに追加し、そのメッセージをホームサーバ（ＨＳ１）１６０ａへ送信する。ホームサーバ（ＨＳ１）１６０ａは、この登録を処理し、応答メッセージをクライアント（Ｃ１）１１２へ送信する。
【００３３】
前述のように、ｅｐｉｄによって、ＳＩＰホームサーバ１６０ａ〜ｃの論理インスタンス、この例ではホームサーバ（ＨＳ１）１６０ａは、ＳＩＰホームサーバ１６０ａ〜ｃに登録を行うユーザの各インスタンスを一意に識別することができる。さらにＳＩＰホームサーバ１６０ａ〜ｃは、ｅｐｉｄを使用して、登録されたユーザインスタンスに関連付けられたレコードを識別する。これらのレコードは、例えばユーザインスタンスのプロファイルに関する情報、ユーザインスタンスの好みに関する情報、ユーザインスタンスのカスタマイズに関する情報、ユーザインスタンスのセキュリティに関する情報、および登録されたユーザエージェントインスタンスに関する他の情報などの情報を含むことができる。
【００３４】
同様にファシリティは、それぞれユーザＡ（２）３０４ｂおよびユーザＡ（３）３０４ｃ用に一意のｅｐｉｄを生成し、その生成したｅｐｉｄを使用して、ユーザのこれらのインスタンスをＳＩＰホームサーバ１６０ａ〜ｃの論理インスタンスに登録する。ユーザＡ（２）３０４ｂおよびユーザＡ（３）３０４ｃ用に生成された識別子は、互いに異なるものであり、上記のユーザＡ（１）３０４ａ用に生成された識別子とも異なる。
【００３５】
時間ｔ１では、ユーザＡ（１）３０４ａとホームサーバ（ＨＳ１）１６０ａの間の通信に中断があり、ホームサーバ（ＨＳ１）１６０ａに対するユーザＡ（１）３０４ａの登録が失われている。例えばネットワーク通信における異常によって、図３の点線または破線によって示されているように、ユーザＡ（１）３０４ａとホームサーバ（ＨＳ１）１６０ａの間の通信に中断が生じる可能性がある。
【００３６】
時間ｔ２では、ファシリティは、ユーザＡ（１）３０４ａとホームサーバ（ＨＳ１）１６０ａのペアに関連付けられて保存されているｅｐｉｄを検索し、前述のように、そのｅｐｉｄをＲＥＧＩＳＴＥＲ要求のＦｒｏｍフィールド内に挿入することによって、ユーザＡ（１）３０４ａをＳＩＰホームサーバ１６０ａ〜ｃの論理インスタンスに登録する。例えばファシリティは、ネットワークの通信リンクをモニタしていた可能性があり、ユーザＡ（１）３０４ａとホームサーバ（ＨＳ１）１６０ａの間の通信が回復したこと、例えば修復されたことを検出した可能性がある。ユーザＡ（１）３０４ａとＳＩＰホームサーバ１６０ａ〜ｃの間の通信リンクの回復を検出すると、ファシリティは、ｅｐｉｄパラメータ２ａｆ５ｃ３２ｂを検索し、この検索したｅｐｉｄパラメータを使用して、ユーザＡ（１）３０４ａをＳＩＰホームサーバ１６０ａ〜ｃに再登録する。
【００３７】
このようにファシリティは、論理ＳＩＰホームサーバ１６０ａ〜ｃに対するユーザエージェントインスタンスの複数の論理登録／ログインセッションにわたって、識別子すなわちｅｐｉｄを再利用する。サーバに対するユーザエージェントインスタンスの複数の論理登録の結果、サーバ上のユーザエージェントインスタンスの登録はせいぜい１回だけ生じ、識別子は、論理サーバへの登録のペアに対してユーザエージェントインスタンスを一意に識別する。さらにｅｐｉｄを再利用することによって、ＳＩＰホームサーバ１６０ａ〜ｃは迅速に登録処理を実行することができ、これは、ＳＩＰホームサーバ１６０ａ〜ｃによって保持されている登録されたユーザインスタンスに関連付けられたレコード、例えば登録レコードが陳腐化するのを防止する上で役立つ。これとは対照的に、登録レコードが陳腐化したまま放置される場合、例えば登録レコードが陳腐化したデータを含む場合、論理サーバは陳腐化した登録レコードを失効させることがあり、これは、陳腐化したレコード用の高価なクリーンアップオペレーションを含むことがある。
【００３８】
上記の例では、ユーザエージェントインスタンスを識別するためにＳＩＰプロトコル内でｅｐｉｄパラメータを使用することについて説明したが、識別子はｅｐｉｄに限定されるものではなく、ユーザエージェントインスタンスを識別すること、および登録処理中に１つのノードから別のノードへ伝達することに適した任意の識別子とすることができることを理解できるであろう。さらに登録プロトコルはＳＩＰに限定されるものではなく、あるノードを別のノードに登録すること、および識別子を移送することに適した任意の通信プロトコルとすることができることも理解できるであろう。
【００３９】
図４は、一部の実施形態による、１つのユーザエージェントインスタンスの複数の登録セッションにわたって１つの識別子を再利用する方法４００を示すフローチャートである。例えばアプリケーションプログラムのインスタンスが、クライアント（Ｃ１）１１２上で実行されており、ユーザは、そのアプリケーションインスタンスを使用して、サーバへの登録を開始する。スタートステップから開始すると、クライアント（Ｃ１）１１２上で実行されているファシリティは、ユーザによるサーバへの登録要求を受信し、ステップ４０２において一意の識別子を生成する。具体的には、ファシリティは、この一意の識別子を使用して、アプリケーションインスタンスを用いてサーバへの登録を要求しているユーザのインスタンスに対応するユーザエージェントインスタンスを識別する。
【００４０】
ステップ４０４では、ファシリティは、一意の識別子を使用してユーザエージェントインスタンスをサーバの論理インスタンスに登録する。例えばファシリティは、この一意の識別子を、サーバへ送信されたメッセージの登録要求内に含めることができる。ステップ４０６では、ファシリティは、サーバへの登録が成功したかどうかを判定する。
【００４１】
サーバへの登録が成功した場合、ステップ４０８において、ファシリティは、一意の識別子をユーザエージェントインスタンスと論理サーバのペアに関連付け、その一意の識別子を永続的に保存する。論理サーバは、ユーザが登録を要求した先のサーバのインスタンスである。ファシリティは、ユーザエージェントインスタンスに登録の成功を通知することができる。あるいはサーバへの登録が成功しなかった場合、ファシリティは、ユーザエージェントインスタンスに登録の失敗を通知することができ、処理を継続する。
【００４２】
次いでステップ４１０において、ファシリティは、同一のユーザエージェントインスタンスを同一のサーバに再登録する必要があるかどうかを判断する。例えばサーバへの登録を取り消した（例えばログオフした）ために、ユーザエージェントインスタンスは、再登録を要求していた可能性がある。ファシリティは、ユーザエージェントインスタンスをサーバに再登録する必要があると判断した場合、ステップ４１２において、ユーザエージェントインスタンスと論理サーバのペア用に保存された一意の識別子を検索する。ステップ４１４では、ファシリティは、検索した一意の識別子を使用して、同一のユーザエージェントインスタンスをサーバに再登録する。同一の識別子を再利用して、ユーザエージェントインスタンスをサーバに再登録することによって、ファシリティは、論理サーバへの登録のペアに対するユーザエージェントインスタンスの永続性を識別および保持する。ユーザエージェントインスタンスをサーバに再登録した後、またはステップ４１０においてユーザエージェントインスタンスを同一のサーバに再登録する必要はないと判断した後、ファシリティは処理を継続する。
【００４３】
本明細書に開示されたこのプロセスおよび方法ならびに他のプロセスおよび方法にとって、プロセスおよび方法内で実行される機能は、異なる順序でも実施できることを当業者なら理解するであろう。さらに、概説したステップは代表的なものにすぎず、本発明の本質を損なうことなく、ステップのいくつかを任意選択としたり、より少ない数のステップと組み合わせたり、さらなるステップへと拡張したりすることができる。
【００４４】
図５は、一部の実施形態による、サーバがユーザエージェントインスタンスの登録を処理する方法５００のフローチャートを示している。上記の例を続けると、論理サーバはクライアント（Ｃ１）１１２から登録要求メッセージを受信し、これには一意の識別子が含まれている。ステップ５０２において、論理サーバは、クライアント（Ｃ１）１１２上のユーザエージェントインスタンスの登録を処理する。ステップ５０４では、論理サーバは、このユーザエージェントインスタンスと論理サーバへの登録のペア用のレコードが存在するかどうかを判定するためにチェックを行う。
【００４５】
例えば同一のユーザエージェントインスタンスが、以前に論理サーバへ登録されていた可能性があり、論理サーバは、前回の登録に関する情報を保存するためにレコードを作成していた可能性がある。例えば論理サーバは、ユーザエージェントインスタンスの好みに関する情報やカスタマイズに関する情報などをレコード内に保存していた可能性があり、例えばそのユーザエージェントインスタンスからの登録要求メッセージの一部として受信した識別子を使用して、そのレコードをユーザエージェントインスタンスと論理サーバへの登録のペアに関連付けられているものとして識別していた可能性がある。ユーザエージェントインスタンスを今回登録するにあたって、論理サーバは、受信した識別子を使用して、このユーザエージェントインスタンスの前回の登録から同一のユーザエージェントインスタンス用のレコードが存在しているかどうかを判定することができる。
【００４６】
このユーザエージェントインスタンスに関する前回の登録からのレコードが存在する場合、ステップ５０６において、論理サーバは、レコード内の情報／データをユーザエージェントインスタンスにダウンロードする。例えば論理サーバは、ユーザエージェントインスタンスが常駐するクライアント（Ｃ１）１１２に、この情報／データをダウンロードすることができる。（ステップ５０６で）情報／データをダウンロードした後、またはユーザエージェントインスタンスに関する前回の登録からのレコードが存在しないと判定された後、論理サーバは処理を継続する。
【００４７】
図６は、一部の実施形態による、ユーザエージェントインスタンスを一意に識別するためにＳＩＰを介してｅｐｉｄを使用するのに適したホームサーバの選択されたコンポーネントのアーキテクチャ６００を示す概略図である。図示されているように、アーキテクチャ６００は複数のコンポーネントから構成されている。アーキテクチャ６００の１つの主要なコンポーネントが、ＳＩＰプロキシ６０１である。ＳＩＰプロキシ６０１は、ｅｐｉｄパラメータを使用して、デバイスのエンドポイントとプロキシの間におけるセキュリティの関連付けを識別する。このセキュリティの関連付けを使用して、送信メッセージに署名し、適切な場合は受信メッセージの署名を検証することができる。
【００４８】
プロキシ層６０１の上には、アプリケーションであるレジストラ６０３があり、これもｅｐｉｄパラメータを利用する。ｅｐｉｄパラメータは所与のユーザ用のエンドポイントを一意に識別するため、レジストラ６０３は、このパラメータを調べて、所与の要求が、以前に見たことのあるエンドポイントから来たものかどうかを容易に判定する。これによって、レジストラ６０３は、エンドポイントの迅速な署名シーケンスを提供し、ホームサーバ上でのレコードの失効化、例えば以前に作成されたレコードが陳腐化することを回避することができる。例えば要求が許可された場合、レジストラ６０３は、ｅｐｉｄを使用して、エンドポイント用のログオンレコードおよび他のレコード、例えばユーザの好みに関する情報やユーザのカスタマイズに関するデータなどを識別し、その情報をエンドポイントに供給することができる。これらのレコードが存在するならば、レジストラ６０３はサーバ上で新しいレコードを作成する必要はなく、ひいてはレコードの失効化を回避することになる。その上、レジストラ６０３は、ｅｐｉｄを使用して、要求を許可するかどうかに関する方針決定を行うことができる。さらにレジストラ６０３は、ｅｐｉｄを使用して、所与のユーザに宛てられた要求を転送するために使用すべき適切な信号伝達パス（接続）を決定することができる。これは、不安定なネットワーク状況やその他の要因で接続がめまぐるしく変更されている可能性のある状況において特に重要である。したがってｅｐｉｄの情報は、ＮＡＴ、ファイアウォール、およびＤＨＣＰを利用する環境内での接続管理にとって重要である。
【００４９】
プロキシ６０１および／またはレジストラ６０３は、接続管理における補助となるテーブルのセットを保持することができる。具体的には、一部の実施形態では、このテーブルは、接続テーブル６０５、セキュリティ関連付けテーブル６０７、およびエンドポイントデータテーブル６０９を含む。それぞれのテーブルには、ユーザＵＲＩおよびｅｐｉｄによってインデックスを付ける。これらのテーブルによって、プロキシ６０１およびレジストラ６０３は、それぞれのユーザに関連付けられたデバイスの多数性、性能、および存在を考慮して、そのオペレーションを修正することができる。最後に、最も下のレベルにおいて、プロキシ６０１およびレジストラ６０３は、ＳＩＰプロトコルスタック６１１とインターフェースで接続され、このＳＩＰプロトコルスタック６１１は、受信メッセージ６１３の受信および送信メッセージ６１５の送信を提供する。
【００５０】
前述のことから、本明細書では例示を目的として本発明の実施形態について説明したが、本発明の趣旨および範囲から逸脱することなく様々な修正を実施できることが理解できるであろう。したがって本発明は、添付の特許請求の範囲において明確に列挙されている要素以外のものに限定されることはない。
【図面の簡単な説明】
【００５１】
【図１】ファシリティが実行されるコンピュータシステムの少なくともいくつかに一般的に組み込まれる選択されたコンポーネントを示すブロック図である。
【図２】ファシリティの実施形態の態様を組み込むことができるＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）システムを示す概略図である。
【図３】一部の実施形態による、時間の経過と共に登録サーバに登録された複数のユーザエージェントインスタンスを示す概略図である。
【図４】一部の実施形態による、１つのユーザエージェントインスタンスの複数の登録セッションにわたって１つの識別子を再利用する方法を示すフローチャートである。
【図５】一部の実施形態による、サーバがユーザエージェントインスタンスの登録を処理する方法を示すフローチャートである。
【図６】一部の実施形態による、ユーザエージェントインスタンスを一意に識別するためにＳＩＰを介してｅｐｉｄを使用するのに適したホームサーバの選択されたコンポーネントのアーキテクチャを示す概略図である。
【符号の説明】
【００５２】
１００  コンピュータシステム
１０２  ＣＰＵ
１０４  メモリ
１０６  永続ストレージ
１０８  コンピュータ読取可能メディアドライブ
１１０  ネットワーク接続
１１２  クライアント（Ｃ１）
１１５  ＨＴＴＰプロキシサーバ（ＨＰ１）
１３０  ファイアウォール
１４０ａ  ロードバランサ１
１４０ｂ  ロードバランサ２
１４０ｃ  ロードバランサ３
１５０ａ  ロードディストリビュータ１
１５０ｂ  ロードディストリビュータ２
１５０ｃ  ロードディストリビュータ３
１６０ａ  ＳＩＰホームサーバ（ＨＳ１）
１６０ｂ  ＳＩＰホームサーバ（ＨＳ２）
１６０ｃ  ＳＩＰホームサーバ（ＨＳ３）
３０２  アプリケーションインスタンス
３０４ａ  ユーザＡ１
３０４ｂ  ユーザＡ２
３０４ｃ  ユーザＡ３
６００  アーキテクチャ
６０１  ＳＩＰプロキシ
６０３  ＳＩＰレジストラ
６０５  接続テーブル
６０７  セキュリティ関連付けテーブル
６０９  エンドポイントデータテーブル
６１１  ＳＩＰプロトコルスタック
６１３  受信メッセージ
６１５  送信メッセージ
【図１】
2006120139.tif 000005
【図２】
2006120139.tif 000006
【図３】
2006120139.tif 000007
【図４】
2006120139.tif 000008
【図５】
2006120139.tif 000009
【図６】
2006120139.tif 000010