(57)【要約】【課題】  ドメイン名登録のための１つのレジストラへの負荷を低減させる。【解決手段】  ドメインアプリケーションプログラミングインターフェース（ＡＰＩ）が、１つまたは複数のクライアントと複数のレジストラまたはプロバイダの間のインターフェースとして使用される。ドメインＡＰＩは、要求されたドメイン名が利用できない場合、代替のドメイン名を戻す。また、ドメインＡＰＩは、レジストラの間でフェイルオーバを実施する。複数のレジストラを使用することにより、負荷分散、およびシステムパフォーマンスの向上が実施される。【選択図】  図２
2004260804.tif 000002
【特許請求の範囲】
【請求項１】
ドメイン登録を行うシステムであって、
ドメイン名を登録するための少なくとも１つの要求を受け取るインターフェース構成要素と、
複数のレジストラとインターフェースをとって前記ドメイン名を登録する登録構成要素であって、前記複数のレジストラの中の第１のレジストラが前記複数のレジストラの中の第２のレジストラと同じトップレベルドメインをサポートする登録構成要素
とを含むことを特徴とするシステム。
【請求項２】
前記複数のレジストラの間でフェイルオーバを実施するフェイルオーバ構成要素をさらに含むことを特徴とする請求項１に記載のドメイン登録システム。
【請求項３】
前記複数のレジストラに対して行われることが可能な要求の数をあらかじめ定めた期間内に制限するスロットル構成要素をさらに含むことを特徴とする請求項１に記載のドメイン登録システム。
【請求項４】
前記インターフェース構成要素は、要求されたドメイン名が利用できない場合、代替のドメイン名を戻すことを特徴とする請求項１に記載のドメイン登録システム。
【請求項５】
前記インターフェース構成要素は、構成情報を使用して前記複数のレジストラの間で負荷を分散することを特徴とする請求項１に記載のドメイン登録システム。
【請求項６】
前記インターフェース構成要素に対してドメイン名要求を発行する少なくとも１つのクライアントをさらに含むことを特徴とする請求項１に記載のドメイン登録システム。
【請求項７】
前記複数のレジストラは、ドメイン要求情報をレジストリに提供することを特徴とする請求項１に記載のドメイン登録システム。
【請求項８】
前記複数のレジストラのすべては、同一のトップレベルドメイン名をサポートすることを特徴とする請求項１に記載のドメイン登録システム。
【請求項９】
前記インターフェース構成要素は、メソッドの集合および構成テーブルを含むことを特徴とする請求項１に記載のドメイン登録システム。
【請求項１０】
前記構成テーブルは、外部プロバイダをリストする代替プロバイダテーブルを含み、前記外部プロバイダは要求されたドメイン名が利用できない場合に代替のドメイン名を供給するのに使用されることを特徴とする請求項９に記載のドメイン登録システム。
【請求項１１】
前記構成テーブルは、ドメインを登録するために使用されるネームサーバをリストするネームサーバテーブルを含むことを特徴とする請求項９に記載のドメイン登録システム。
【請求項１２】
前記構成テーブルは、クライアント選好をリストするクライアント選好テーブルを含むことを特徴とする請求項９に記載のドメイン登録システム。
【請求項１３】
前記構成テーブルは、前記複数のレジストラをリストするドメインプロバイダテーブルを含むことを特徴とする請求項９に記載のドメイン登録システム。
【請求項１４】
前記構成テーブルは、前記複数のレジストラが呼び出される優先順位をリストするドメインプロバイダ優先順位テーブルを含むことを特徴とする請求項９に記載のドメイン登録システム。
【請求項１５】
前記インターフェース構成要素は、少なくとも１つのクライアントと前記ドメインインターフェースの間でインターフェースをとる外部アプリケーションプログラミングインターフェース構成要素を含むことを特徴とする請求項１に記載のドメイン登録システム。
【請求項１６】
前記インターフェース構成要素は、共通層構成要素を含むことを特徴とする請求項１に記載のドメイン登録システム。
【請求項１７】
前記共通層構成要素は、システムによって生成されたデフォルトのリストである優先順位リストに従って前記複数のレジストラを呼び出すことを特徴とする請求項１６に記載のドメイン登録システム。
【請求項１８】
前記共通層構成要素は、クライアントによって生成されたカスタマイズされたリストである優先順位リストに従って前記複数のレジストラを呼び出すことを特徴とする請求項１６に記載のドメイン登録システム。
【請求項１９】
前記共通層構成要素は、前記複数のレジストラにかかるそれぞれの負荷に基づく優先順位リストに従って前記複数のレジストラを呼び出すことを特徴とする請求項１６に記載のドメイン登録システム。
【請求項２０】
前記共通層は、前記複数のレジストラからあるレジストラを選択するフェイルオーバ機能を提供することを特徴とする請求項１６に記載のドメイン登録システム。
【請求項２１】
前記共通層は、前記ドメインインターフェースに対してクライアントが行うことができる要求の数を制限するスロットル機能を提供することを特徴とする請求項１６に記載のドメイン登録システム。
【請求項２２】
前記複数のレジストラと前記インターフェース構成要素の間で通信インターフェースを提供するための複数のドライバをさらに含むことを特徴とする請求項１に記載のドメイン登録システム。
【請求項２３】
複数のレジストラと対話し、ドメインを登録し、要求されたドメイン名が利用できない場合に代替のドメイン名を戻すドメインインターフェースと、
前記ドメインインターフェースと対話して前記複数のレジストラの間でフェイルオーバを実施するフェイルオーバ構成要素と
を含むことを特徴とするドメイン登録システム。
【請求項２４】
前記複数のレジストラに対して行われることが可能な要求の数を制限するスロットル構成要素をさらに含むことを特徴とする請求項２３に記載のドメイン登録システム。
【請求項２５】
前記ドメインインターフェースは、人工知能を使用して前記代替のドメイン名を示唆することを特徴とする請求項２３に記載のドメイン登録システム。
【請求項２６】
前記ドメインインターフェースは、クライアントの履歴に基づいて前記代替のドメイン名を示唆することを特徴とする請求項２３に記載のドメイン登録システム。
【請求項２７】
前記ドメインインターフェースは、１組の観察されたイベントに基づいて前記代替のドメイン名を示唆することを特徴とする請求項２３に記載のドメイン登録システム。
【請求項２８】
前記複数のレジストラの少なくとも２つは、同じトップレベルドメインをサポートすることを特徴とする請求項２３に記載のドメイン登録システム。
【請求項２９】
前記ドメインインターフェースは、構成要素、外部アプリケーションプログラミングインターフェース、共通層、ドライバアプリケーションプログラミングインターフェース、およびクライアントに対する接続を含むことを特徴とする請求項２３に記載のドメイン登録システム。
【請求項３０】
前記構成要素は、ＳＱＬで記憶された複数のテーブルを含むことを特徴とする請求項２９に記載のドメイン登録システム。
【請求項３１】
レジストラ選好およびフェイルオーバ選好の少なくともいずれかが、呼出し元ごと、およびドメイン拡張子ごとのいずれかで構成されることが可能であることを特徴とする請求項２３に記載のドメイン登録システム。
【請求項３２】
メソッドの集合と、
少なくとも１つが複数のレジストラに関する情報を記憶し、少なくとも２つが同じトップレベルドメインをサポートする複数の構成テーブルと
を含むことを特徴とする汎用インターフェース。
【請求項３３】
少なくとも１つのクライアントとインターフェースをとる外部構成要素をさらに含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項３４】
前記外部構成要素をＷｅｂメソッドとして少なくとも１つのクライアントに公開する共通層をさらに含むことを特徴とする請求項３３に記載の汎用インターフェース。
【請求項３５】
前記複数のレジストラの間でフェイルオーバを実施する共通層をさらに含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項３６】
少なくとも１つのクライアントによって行われるドメイン要求の数を制限するスロットルを実施する共通層をさらに含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項３７】
前記複数のレジストラと通信するための複数のドライバをさらに含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項３８】
前記構成テーブルは、要求されたドメイン名が利用できない場合に代替のドメイン名を供給するための外部プロバイダをリストする代替プロバイダテーブルを含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項３９】
前記構成テーブルは、ドメインを登録するために使用されるネームサーバをリストするネームサーバテーブルを含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項４０】
前記構成テーブルは、クライアント選好をリストするクライアント選好テーブルを含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項４１】
前記構成テーブルは、前記複数のレジストラをリストするドメインプロバイダテーブルを含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項４２】
前記構成テーブルは、前記複数のレジストラが呼び出される優先順位をリストするドメインプロバイダ優先順位テーブルを含むことを特徴とする請求項３２に記載の汎用インターフェース。
【請求項４３】
ドメイン名を登録するための方法であって、
ドメイン要求を提供するステップと、
前記ドメイン要求を登録するように複数のレジストラに接触するステップであって、
前記複数のレジストラの少なくとも１つが応答しない場合、フェイルオーバが実施されるステップと、
前記ドメイン要求に基づいて応答を提供するステップとを含むことを特徴とする方法。
【請求項４４】
前記複数のレジストラの少なくとも２つは、同じトップレベルドメインをサポートすることを特徴とする請求項４３に記載の方法。
【請求項４５】
前記応答は、前記要求されたドメインが利用できない場合、代替のドメイン名に関する示唆を含むことを特徴とする請求項４３に記載の方法。
【請求項４６】
前記複数のレジストラの優先順位付けを含むクライアント選考を入力するステップをさらに含むことを特徴とする請求項４３に記載の方法。
【請求項４７】
１組の観察されたイベントに基づいてクライアント選好を推定するステップをさらに含むことを特徴とする請求項４３に記載の方法。
【請求項４８】
アプリケーションプログラミングインターフェースが、前記ドメインを要求するクライアントと前記複数のレジストラの間のミドルウェア層として使用されることを特徴とする請求項４３に記載の方法。
【請求項４９】
あらかじめ定めた期間内に提供することが可能なドメイン要求の量を制限するステップをさらに含むことを特徴とする請求項４３に記載の方法。
【請求項５０】
ドメイン登録を行う２つまたはそれより多くのコンピュータ構成要素の間で伝送されるデータパケットであって、
複数のレジストラに関するフェイルオーバ構成要素を含むことを特徴とするデータパケット。
【請求項５１】
前記複数のレジストラの少なくとも２つは、同一のトップレベルドメインをサポートすることを特徴とする請求項５０に記載のデータパケット。
【請求項５２】
遠隔システムのコンピュータ実行可能構成要素を記憶するコンピュータ可読媒体であって、
少なくとも１つのクライアントと複数のレジストラの間でインターフェースをとるインターフェース構成要素と、
前記複数のレジストラの間でフェイルオーバを実施するフェイルオーバ構成要素とを含むことを特徴とする媒体。
【請求項５３】
遠隔システムのコンピュータ実行可能構成要素を記憶するコンピュータ可読媒体であって、
少なくとも１つのクライアントと少なくとも２つが同じトップレベルドメインをサポートする複数のレジストラの間でインターフェースをとるインターフェース構成要素を含むことを特徴とする媒体。
【請求項５４】
ドメインの登録を行うシステムであって、
少なくとも１つのクライアントと複数のレジストラの間でインターフェースをとるための手段と、
前記複数のレジストラの間でフェイルオーバを実施するための手段と
を含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、コンピュータシステムに関し、より詳細には、インターネットドメインを登録し、管理する汎用インターフェースを提供するシステムおよび方法に関する。
【背景技術】
【０００２】
インターネットは、互いに接続された複数のコンピュータの大型ネットワークである。特定のコンピュータ、またはそのようなコンピュータ上の情報を含むファイルを「アドレス」を介して見つけることができる。アドレスは、数の長い組合せであり、インターネットに接続された特定のコンピュータの数値アドレスは、１９２．１６８．２５５．１とすることが可能である。アドレスは、ハイパーテキストマシン言語（「ＨＴＭＬ」）などの特定の情報形式または対話形式のファイルを含むコンピュータを特定する。情報部分または対話部分が組み合わされて、現在、Ｗｅｂページと一般に呼ばれる物が形成される。
【０００３】
ドメイン名と呼ばれる数値アドレスのエイリアスの方が、通常、憶えるのが容易である。エイリアスは、しばしば、特定のコンピュータまたは特定のＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂサイト（「Ｗｅｂサイト」）の識別を容易にする固有の（ｉｎｔｒｉｎｓｉｃ）意味を有する。現在、公衆による使用に供されているインターネットドメイン名は、数値アドレスに対応し、コンピュータの物理的な場所を特定する第２レベルドメインおよびトップレベルドメイン（「ＴＬＤ」）を含む。ＴＬＤ内の第２レベルドメインは、現在、ＩＣＡＡＮとして知られる団体に使用の登録を行うことができる。
【０００４】
第２レベルドメイン名は、特別な意味を有する、とりわけ「ｉ／」および「．」などのある文字を除き、２６文字の任意の組合せを含むことが可能である。会社が、自らの会社名または重要な商標、あるいはその両方を利用することが一般的である。これらのドメイン名の多くは、「．ｃｏｍ」トップドメインの下にある。「．ｃｏｍ」ＴＤＬを使用する第２レベルドメイン名が、さらなる理由で普及している。インターネットユーザは、そのような第２レベルドメイン名を使用して、Ｙａｈｏｏ、Ｅｘｃｉｔｅ、およびＬｙｃｏｓなどの探索エンジンを迂回し、ビジネス名を第２レベルドメインとして入力し、続いて．ｃｏｍ拡張子を入力することによって会社のＷｅｂサイトに直接にアクセスすることができる。また、インターネットユーザは、このショートカットを使用して、会社名または製品名を使用することによって会社または所望の情報を直感的に見つけることもする。
【０００５】
使用に先立ち、提案のドメイン名は、ドメイン名レジストラに登録され（または別の仕方で、獲得され）なければならない。一般に、ドメイン名のマッピングは、レジストラ（ｒｅｇｉｓｔｒａｒ）やＩｎｔｅｒＮＩＣとして知られる登録データベース機関によって維持される公共インターネットドメイン名サーバ（ＤＮＳ）システムなどのドメイン名サーバシステムによって行われる。登録には、通常、ルート名（ｒｏｏｔ  ｎａｍｅ）の何らかの類の手作業による入力、およびトップレベルドメイン名の選択が関与する。スクリプトを実行すると、登録サービスが、通常、１つまたは複数のデータベースを調べて、ドメイン名が登録のために用意されているかどうかを判定する。登録が用意されている場合、サービスは、ユーザがオンラインフォームを完成させて登録を完了するのを許す。
【０００６】
ＤＮＳシステムは、ネットワーク上で他のホスト（たとえば、コンピュータ）を探している際にドメイン名を利用することを可能にするネットワーク上の１組のプロトコルおよびサービスを含む。名前の分散データベースを使用して、ＤＮＳシステムは、ドメイン名空間と呼ばれる論理ツリー構造を確立する。ドメイン名空間内の各ノードまたは各ドメインに名前が付けられ、サブドメインを含むことが可能である。ドメインとサブドメインがゾーンにグループ化されて名前空間の分散管理が可能になる。
【０００７】
ＤＮＳは、第１のデータベースが利用できなくなった場合にバックアップデータベースを特定することができるようにある機構を提供する。ＤＮＳデータベースは、１つのネームサーバ上の情報が長期間、時代遅れのままであることがないように自動的に更新される。ＤＮＳのクライアントは、リゾルバ（ｒｅｓｏｌｖｅｒ）と呼ばれ、リゾルバは、通常、ＴＣＰ／ＩＰ対応マシン上に常駐するネットワーキングソフトウェアのアプリケーション層に配置されている。ユーザは、通常、リゾルバと直接に対話しない。リゾルバは、ネームサーバにクエリを向けることによってＤＮＳにクエリを行い、ネームサーバは、ネットワークを介する情報の伝送のために必要とされるＩＰアドレスにドメイン名を変換するＤＮＳプロトコルを使用することによってアクセスされる分散データベースの部分を含む。
【０００８】
以下に、本発明のいくつかの態様の基本的な理解を提供するために本発明の簡単な要約を提示する。この要約は、本発明の広範な概要ではない。この要約は、本発明の重要な要素またはクリティカルな要素を特定することも、本発明の範囲を画定することも意図していない。この要約の唯一の目的は、後に提示するより詳細な説明の前置きとして単純化した形で本発明のいくつかの概念を提示することである。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来のドメイン登録システムでは、ドメインＡＰＩは、各トップレベルドメインに関して、１つのレジストラとだけ、または１つのプロバイダとだけインターフェースをとることができる。したがって、そのレジストラに負荷がかかるとシステムのパフォーマンスが下がるという問題がある。
【００１０】
そこで本発明の目的は、１つのレジストラへの負荷を低減させることができるシステム等を提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、インターネットドメインを登録し、および／または管理し、および／または現在、登録されているか、またはそれ以外で利用できないドメイン名に対する代替を示唆する汎用インターフェースを提供するためのシステムおよび方法に関する。詳細には、メソッドおよび構成テーブルの集合を含むドメインアプリケーションプログラミングインターフェース（ＡＰＩ）が本発明に従って提供される。レジストラの間でフェイルオーバ論理および再試行論理を実施して、負荷バランシングおよびフェイルオーバを提供することができる。レジストラ選好およびフェイルオーバ選好を構成テーブルの中で呼出し元ごとに、および／またはドメイン拡張子ごとに構成することができる。
【００１２】
より具体的には、本発明は、ドメインＡＰＩを１つまたは複数のクライアントと複数のレジストラの間のインターフェースとして提供する。ドメインＡＰＩは、第１のレジストラに障害が生じた場合、ドメインＡＰＩが、第１のレジストラが応答しない場合、または第１のレジストラに重い負荷がかかっている場合に第２のレジストラと対話することを可能にするフェイルオーバ構成要素を含むことが可能である。したがって、本発明は、レジストラの間の負荷分散、およびドメイン登録システムの全体的により高いパフォーマンスを容易にする。さらに、ドメインＡＰＩは複数のレジストラと対話することができるため、既存のシステム構造を変更するなかで新しいレジストラを既存のシステムに追加することが可能である。
【００１３】
さらに、本発明は、１つまたは複数のクライアントと、少なくとも２つが同じトップレベルドメインをサポートすることができる複数のレジストラの間でインターフェースをとるのに使用することができるドメインＡＰＩを提供する。従来のドメイン登録システムでは、ドメインＡＰＩは、各トップレベルドメインに関して、１つのレジストラとだけ、または１つのプロバイダとだけインターフェースをとることができる。したがって、本発明は、特定のトップレベルドメインをサポートする第２のレジストラの選択を、同じトップレベルドメインをサポートする第１のレジストラにいっぱいまで負荷がかかっている場合、そのような第１のレジストラが応答しない場合、またはそのような第１のレジストラがそれ以外で利用できない場合に行うことができるより堅牢なシステムを提供する。
【００１４】
以下の説明および添付の図面が、本発明のいくつかの例示的な態様を詳細に示す。ただし、これらの態様は、本発明の原理を使用することができるさまざまなやり方のいくつかだけを示すものであり、本発明は、すべてのそのような態様および等価の態様を含むものとする。本発明の他の利点および斬新な特徴は、本発明の以下の詳細な説明を図面と併せて考慮することで明白となる。
【発明を実施するための最良の形態】
【００１５】
本発明は、インターネットドメインを登録し、および／または管理し、および／または現在、登録されている、またはそれ以外で利用できないドメイン名の代替を示唆する汎用アプリケーションプログラミングインターフェース（ＡＰＩ）を提供するためのシステムおよび方法に関する。構造化クエリ言語（ＳＱＬ）のメソッドおよび構成テーブルの集合を含むドメインＡＰＩが、本発明に従って提供される。ＳＱＬは、データベースにアクセスするためのＡＮＳＩ標準言語であり、この言語を介してＡＰＩの挙動を制御することができる。ドメインＡＰＩは、複数のレジストラと協働することによって異なる拡張子のドメインを登録することができる。レジストラの間でフェイルオーバ論理および再試行論理を実施して負荷バランシングおよびフェイルオーバを提供することができる。ＳＱＬ構成テーブルの中でレジストラ選好およびフェイルオーバ選好を呼出し元ごとに、および／またはドメイン拡張子ごとに構成することができる。
【００１６】
本出願で使用する「構成要素」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアであるコンピュータ関連エンティティを指すものとする。たとえば、構成要素は、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、およびコンピュータであることが可能であるが、以上には限定されない。例として、サーバ上で実行されているアプリケーションと、そのサーバがともに構成要素であることが可能である。プロセス内および／または実行のスレッド内に１つまたは複数の構成要素が存在することが可能であり、構成要素は、１つのコンピュータ上に局所化されていること、および／または２つまたはそれより多くのコンピュータの間で分散されていることが可能である。
【００１７】
また、本明細書で使用する「推定」という用語は、一般に、イベントおよび／またはデータを介して捕捉された１組の観察からシステム、環境、および／またはユーザの状態について推論する、または推定するプロセスを指す。推定は、たとえば、特定のコンテキストまたは動作を特定するのに使用することができ、状態に関する確率分布を生成することができる。推定は、確率論的であることが可能であり、つまり、データおよびイベントの考察に基づく関心対象の状態に関する確率分布の計算であることが可能である。また、推定は、１組のイベントおよび／またはデータからより高いレベルのイベントを構成するために使用される技術を指すことも可能である。そのような推定は、イベントが時間的に非常に近く相関しているか否か、イベントおよびデータが１つのイベントソースおよびデータソースから来るか、いくつかのイベントソースおよびデータソースから来るかに関わらず、１組の観察されたイベントおよび／または記憶されたイベントデータから新しいイベントまたは動作の構成をもたらす。
【００１８】
したがって、本発明は（たとえば、登録ドメイン名の使用に関連して）、本発明のさまざまな態様を実行するためのに、さまざまな人工知能ベースのスキームを使用することができる。たとえば、ドメイン名を登録することが、自動分類のシステムおよびプロセスを介して円滑にされることが可能である。そのような分類は、確率論的解析および／または統計ベースの解析を使用して（たとえば、有用性および費用を解析の考慮に入れて）、ユーザが自動的に行われることを所望する動作を診断する、または推定することができる。たとえば、サポートベクトルマシン（ＳＶＭ）クラシファイア（ｃｌａｓｓｉｆｉｅｒ）を使用することができる。他の分類手法には、ベイズネットワーク、決定ツリーが含まれ、異なる独立パターンを提供する確率論的分類モデルを使用することができる。本明細書で使用する分類には、優先順位のモデルを開発するのに利用される統計回帰も含まれる。
【００１９】
本明細書から容易に理解されるとおり、本発明は、明示的に訓練された（たとえば、一般的な訓練データを介して）クラシファイアも、暗黙に訓練された（たとえば、ユーザの挙動を観察すること、外部の情報を受け取ることを介して）クラシファイアも使用することができ、したがって、クラシファイアは、ユーザ選好に従って少なくとも１つの代替のドメイン名を自動的に登録する。たとえば、よく理解されているサポートベクトルマシン（ＳＶＭ）に関して（ナイーブベイズ（Ｎａｉｖｅ  Ｂａｙｅｓ）、ベイズネット、決定ツリー、および他の学習モデルなどの他のクラシファイアモデルも利用できることを理解されたい）、ＳＶＭは、クラシファイア構成−機能選択モジュール（ｃｌａｓｓｉｆｉｅｒ  ｃｏｎｓｔｒｕｃｔｏｒ  ａｎｄ  ｆｅａｔｕｒｅ  ｓｅｌｅｃｔｉｏｎ  ｍｏｄｕｌｅ）内で学習段階または訓練段階を介して構成される。クラシファイアは、入力属性ベクトル、ｘ＝（ｘ１，ｘ２，ｘ３，ｘ４，ｘｎ）を入力があるクラスに属する信頼度、つまり、ｆ（ｘ）＝信頼度（クラス）にマップするファンクションである。たとえば、テキストベースのドメイン名分類の場合、属性は、語または句、あるいは語から導出された他のドメイン特有の属性（たとえば、発話の部分、重要な用語の存在）であり、クラスは、関心対象のカテゴリまたは分野（たとえば、優先度のレベル）である。
【００２０】
最初に図１を参照すると、ドメイン登録システム１００の概略ブロック図が描かれている。ドメイン登録システム１００は、ドメインを登録し、利用可能でないドメインの代替を戻すことができるドメインＡＰＩ１１０を含む。ドメインＡＰＩ１１０は、ドメイン名を登録する少なくとも１つの要求を受け取るインターフェース構成要素１１２と、複数のレジストラまたはプロバイダ１２０１ないし１２０Ａを有する登録構成要素１１４とを含むことが可能であり、Ａは１以上の整数である。レジストラまたはプロバイダ１２０１ないし１２０Ａをまとめてレジストラ１２０と呼ぶことができる。ただし、インターフェース構成要素および登録構成要素は、個々の構成要素に限定されず、代わりに、両方の機能を組み込んだ１つの構成要素を成すことも可能であることを理解されたい。第１のレジストラに重い負荷がかかっている場合、第１のレジストラが応答しない場合、第１のレジストラに障害が生じた場合、または第１のレジストラがそれ以外で利用できない場合に、ドメインＡＰＩ１１０が第２のレジストラと対話することを可能にするフェイルオーバ構成要素（図示せず）も提供されることが可能である。したがって、本発明は、レジストラ間の負荷分散、およびドメイン登録システムの全体的により高いパフォーマンスを容易にする。さらに、ドメインＡＰＩ１１０は複数のレジストラと対話するため、既存のシステム構造を変更するなかで新しいレジストラを既存のシステムに追加することができる。
【００２１】
レジストラは、オリジナルドメイン名登録に関してエンティティ、組織、または個人のために動作し、ドメイン名サーバ（ＤＮＳ）システム変更を転送するか、またはそのシステム変更に接触する。レジストラは、レジストリデータベース１３０にドメイン名を提供し、保持する。レジストリデータベース１３０は、エンティティ、組織、または個人が新しいドメイン名登録を提供（サブミット）し、既存の情報、コンタクト情報、およびＤＮＳ情報を更新するデータベースである。複数のレジストリデータベースではなく、１つの中央レジストリデータベース１３０を使用することにより、ドメイン名の冗長性を許すことなく（たとえば、２つのエンティティが同一のドメイン名を登録できることはない）、ドメイン名の登録および管理が提供される。
【００２２】
ただし、本発明は、中央レジストリが利用できない場合、複数のレジストリ、つまりバックアップデータベースを使用して機能することが可能であることを理解されたい。バックアップデータベースは、バックアップデータベースの中にある情報が常に最新であるように自動的に更新されることが可能である。
【００２３】
ドメイン登録システム１００は、１つまたは複数のクライアント１４０をさらに含む。クライアント１４０は、エンティティ、組織、個人等を含むことが可能であり、ドメインＡＰＩ１１０に対して１つまたは複数のドメイン要求１５０を発行することができる。ドメインＡＰＩ１１０は、複数のレジストラ１２０の少なくとも１つにドメイン要求情報を伝送するのに使用される。そのような情報は、一般に、ｈｔｔｐｓ要求として伝送される。選択されたレジストラ１２０が、ドメイン要求情報をレジストリ１３０に提供する。要求されたドメイン名が利用可能である場合、レジストリ１３０は、そのドメイン名が利用可能であるという応答をレジストラに返送する。レジストラ１２０は、応答（たとえば、ｈｔｔｐｓ応答）をドメインＡＰＩ１１０に伝送する。次に、ドメインＡＰＩ１１０が、クライアントドメイン要求に対する応答１６０を伝送する。応答１６０は、１つまたは複数のドメイン名を含むことが可能であり、要求されたドメイン名が利用できない場合、１つまたは複数の代替のドメイン名、または誤りメッセージを含むことが可能である。ドメイン登録サービスを使用して、クライアント１４０が登録を完了できるようにすることができる。したがって、ドメインＡＰＩ１１０は、ミドルウェア層であり、クライアント１４０から複数のレジストラ１２０までのパスウェイ（ｐａｔｈｗａｙ）を制御する。
【００２４】
さらに、従来のドメイン登録システムでは、ドメインＡＰＩは、各トップレベルドメインに関して、１つのレジストラ、または１つのプロバイダとだけインターフェースをとることができる。したがって、特定のトップレベルドメインに関するレジストラに障害が生じた場合、停止時間にある場合、またはそれ以外で利用できない場合、クライアントは、誤りメッセージを受信するか、またはその特定のトップレベルドメインから全くメッセージを受信しない。したがって、本発明は、そのような欠点を軽減するため、および従来のシステムよりも堅牢なドメイン登録システムを提供するため、単一のトップレベルドメインをサポートする複数のレジストラも提供する。
【００２５】
次に図２を参照すると、多重レジストラシステム２００の概略ブロック図が示されている。多重レジストラシステム２００は、複数のクライアント２２０１ないし２２０Ｂと複数のレジストラ２３０１ないし２３０Ｃの間でインターフェースをとるためのドメインＡＰＩ２１０を含む。ＢおよびＣは、１以上の整数である。さらに、ＢとＣは、互いに異なる整数であることも、等しい整数であることも可能である。クライアント２２０は、固有ＩＤでドメインＡＰＩ２１０によって識別されることが可能である。たとえば、クライアント２２０は、２つの３２ビットの整数、ＰＵＩＤＨｉｇｈとＰＵＩＤＬｏｗとしてドメインＡＰＩ２１０に渡される固有の６４ビットＩＤで識別されることが可能である。ドメインＡＰＩ２１０は、ＨＴＴＰおよびセキュアソケット層（ＳＳＬ）を介してクライアント２２０およびレジストラ２３０とインターフェースをとることができる。ＳＳＬは、電子商取引トランザクションのために必要とされる秘密の情報および／またはセンシティブな情報（たとえば、クレジットカード情報、社会保障番号）を扱い、保護するためにネットスケープ（Ｎｅｔｓｃａｐｅ）によって開発されたプロトコルである。ＳＳＬアドレスは、一般に、「ｈｔｔｐｓ」で始まる。
【００２６】
ドメインＡＰＩ２１０は、複数のクライアント２２０によってクエリが行われることが可能なドメインＡＰＩメソッド２４０の集合を含む。クライアントの信用証明が、引数またはＨＴＴＰヘッダとしてメソッドの集合に２４０に送られることが可能である。さらに、信用証明は、通信がＳＳＬを介して伝送される場合、暗号化される。したがって、クライアントの信用証明が検証されると、ドメインＡＰＩ２１０は、メソッドの集合２４０のなかのメソッドの少なくとも１つに基づいてクライアントのクエリに応答することができる。メソッドの集合２４０のなかに存在するメソッドには、以下が含まれることが可能である。
【００２７】
PDRESULT QueryDomain(string DomainData)
ＱｕｅｒｙＤｏｍａｉｎメソッドは、ドメイン可用性に関してドメインＡＰＩにクエリを行う。ドメインが利用可能である場合、成功通知が要求側クライアントに戻される。
【００２８】
PDRESULT ReserveDomain(int PUIDHigh, int PUIDLow, string strserviceInstanceId, string DomainData, out string TrackingGuid)
ＲｅｓｅｒｖｅＤｏｍａｉｎメソッドは、供給されたドメイン、およびクライアントから供給されたユーザデータを使用してドメインを生成する。クライアントがドメイン予約を追跡するためにＴｒａｃｋｉｎｇ  ＧＵＩＤが戻される。ＧＵＩＤは、クライアントのＷｅｂブラウザに割り当てられた匿名ユーザＩＤである。ＲｅｓｅｒｖｅＤｏｍａｉｎメソッドは、ドメインを予約し、したがって、ドメインは、まだ購入されていない。
【００２９】
PDRESULT GetCustomerDomain(int PUIDHigh, intPUIDLow)
ＧｅｔＣｕｓｔｏｍｅｒＤｏｍａｉｎメソッドは、ユーザのために登録されたドメインを戻す。このメソッドは、一般に、システムに対する管理レベル権利を有するユーザによって使用される。
【００３０】
PDRESULT DisableDomain(int PUIDHigh, int PUIDLow, string ServiceInstanceId, int ReasonID)
ＤｉｓａｂｌｅＤｏｍａｉｎメソッドは、ドメインに使用不可のマークを付けるが、レジストラがそのドメインを備えていないようにする（ｄｅｐｒｏｖｉｓｉｏｎ）ことはない。使用不可にされたドメインは、更新されず、対応するＤＮＳレコードは供給されない。
【００３１】
PDRESULT ProvisionDomain(int PUIDHigh, int PUIDLow, string ServiceInstanceId, string DomainData)
ＰｒｏｖｉｓｉｏｎＤｏｍａｉｎメソッドは、ドメインがアクティブになり、対応するＤＮＳレコードが供給されるようにドメインを購入する。
【００３２】
PDRESULT TransferDomain(int PUIDHigh, int PUIDLow, string ServiceInstanceId, string DomainData)
ＴｒａｎｓｆｅｒＤｏｍａｉｎメソッドは、ドメインの転送を開始する。ドメイン転送は、ドメイン名の所有権が新しい所有者に移転された際に行われる。
【００３３】
PDRESULT FinalizeTransferDomain(string DomainName, sting PartnerProfile, sting strRegistrar, string OwnerKey, string OwnerPwd, DateTime CreationDate, DateTime NextRenewalDate, int RegistrationPeriod, bool TransferSucceeded, bool bOverwriteDns, string strFailureReason)
ＦｉｎａｌｉｚｅＴｒａｎｆｅｒＤｏｍａｉｎメソッドは、ＴｒａｎｆｅｒＤｏｍａｉｎメソッドが所有権を即時に移転しないために使用される。まず、現在の所有者の同意が得られなければならない。したがって、ＦｉｎａｌｉｚｅＴｒａｎｓｆｅｒＤｏｍａｉｎメソッドは、移転を待っているドメインに関してレジストラから成功／失敗通知が受信された際にドメインのステータスを確定するのに利用される。
【００３４】
PDRESULT EnableDomain(int PUIDHigh, int PUIDLow, string ServiceInstanceId)
ＥｎａｂｌｅＤｏｍａｉｎメソッドは、使用不可にされたドメインを再び使用可能にする。ただし、更新日を過ぎ、ＩＣＡＮＮ規則に従って更新することができない使用不可にされたドメインは、再び使用可能にすることができない。
【００３５】
PDRESULT UpdateOwner(string DomainData)
ＵｐｄａｔｅＯｗｎｅｒメソッドは、所有者、ならびに所有者の名前、アドレス、料金請求情報などのドメインの所有者情報を更新する。
【００３６】
PDRESULT DeprovisionDomain(string DomainName)
ＤｅｐｒｏｖｉｓｉｏｎＤｏｍａｉｎメソッドは、レジストラがドメインを備えていないようにする。
【００３７】
PDRESULT LookupDomain(string DomainData, out DomainInfoStruct DomainInfo)
ＬｏｏｋｕｐＤｏｍａｉｎメソッドは、ドメインサービスによって登録されたドメインのＷＨＯＩＳデータを検索する。ＷＨＯＩＳデータは、ドメイン名の現在の所有権、コンタクト情報、およびネーム可用性などの情報を含むことが可能である。レジストラに依存して、このメソッドは、ＷＨＯＩＳ情報の一部またはすべてを獲得することができる。
【００３８】
PDRESULT RenewDomain(string strDomainName)
ＲｅｎｅｗＤｏｍａｉｎメソッドは、いくらかのスケジュール設定された間隔に基づいてドメイン名の登録が更新される際、レジストラに対してドメインを更新する。
【００３９】
PDRESULT GetAlternates(string DomainName, string PartnerProfile, string Category, sting[]Keywords, out string XmlResults, out string TextResults)
ＧｅｔＡｌｔｅｒｎａｔｅｓメソッドは、クライアントによって要求された利用可能でないドメイン名の代替の可用なドメイン名を獲得する。
【００４０】
ドメインＡＰＩ２１０は、構成情報２５０も含むことが可能である。構成情報２５０は、ＳＱＬのテーブルの中にあることが可能である。構成情報２５０は、複数のレジストラ２３０からレジストラ、またはプロバイダを選択するのに使用される。構成情報２５０は、クライアント選好、パートナ名等を含むことが可能である。さらに、または代替として、レジストラは、複数のレジストラ２３０の１つまたは複数の負荷に基づいて選択されることが可能である。したがって、多重レジストラシステム２００は、複数のレジストラ２３０の間で負荷分散および／または負荷バランシングを提供することができ、これにより、ドメイン登録および／または管理プロセスのより高いパフォーマンスが容易になる。
【００４１】
図３は、本発明の態様による多重レジストラシステム３００の別の例を示している。多重レジストラシステム３００は、少なくとも１つのクライアント３２０および複数のレジストラ３３０１ないし３３０ＤとインターフェースをとるためのドメインＡＰＩ３１０を含み、Ｄは、１以上の整数である。ドメインＡＰＩ３１０は、外部ＡＰＩ構成要素３４０と、共通層構成要素３５０と、構成要素３６０と、複数のドライバＡＰＩ構成要素３７０１ないし３７０Ｅとを含むことが可能であり、Ｅは、１以上の整数である。外部ＡＰＩ構成要素３４０は、クライアント３２０によって受信された情報を処理するためのメソッド、または複数のメソッドであることが可能である。たとえば、ＡＰＩ構成要素は、クライアント情報、ならびにクライアント３２０からドメインＡＰＩ３１０に送られるあらゆる他の情報を検証することができる。クライアント３２０からドメインＡＰＩ３１０に送られた情報に基づき、外部ＡＰＩ構成要素３４０は、以下の形式でクライアント３２０に応答することができる。すなわち、
【００４２】
【表１】
2004260804.tif 000003
【００４３】
【表２】
2004260804.tif 000004
【００４４】
【表３】
2004260804.tif 000005
【００４５】
共通層構成要素３５０が、以下により詳細に説明するとおり、ＳＱＬの構成テーブル３６０の構成情報にアクセスする。共通層構成要素３５０は、外部ＡＰＩ構成要素３４０をクライアント３２０にＷｅｂメソッドとして公開するのにも使用される。Ｗｅｂメソッドは、ＸｍｌＥｌｅｍｅｎｔアレイを引数として受け入れ、これにより、クライアント３２０が、複数のＸＭＬコンテンツ項目（アレイなどの）を公開のために提供することが可能になる。各ＸＭＬコンテンツ項目は、親ＸＭＬタグで囲まれるが、その親要素内で任意のレベルの詳細およびネストを含むことが可能である。Ｗｅｂメソッド自体は、ほとんどコードを含まず、コンテンツを検証して保存する作業は、ＤｏｃｕｍｅｎｔＸＭＬクラスによって行われる。
【００４６】
複数のレジストラ３３０との通信は、複数のドライバ３７０を介して行われる。各レジストラ３３０に対応する少なくとも１つのドライバ３７０が存在する。ドライバ３７０は、共通ドライバＡＰＩ（図示せず）に対する呼出しを受け入れ、レジストラ／プロバイダ特有ＡＰＩ（図示せず）上のレジストラ３３０に呼出しを行う。したがって、共通層構成要素３５０は、ドライバ３７０のそれぞれの上のドライバＡＰＩを呼び出すことによって実質的に一様なやり方でレジストラ３３０と通信することができる。以下は、ドライバＡＰＩにおけるメソッドの例である。
【００４７】
【表４】
2004260804.tif 000006
【００４８】
次に図４を参照すると、本発明の態様によるドメインＡＰＩに関する構成テーブル４００の例が描かれている。構成テーブル４００は、ＳＱＬで記憶された複数のテーブルを含み、このテーブルは、共通層構成要素の挙動を制御するのに使用される。詳細には、構成テーブル４００は、代替プロバイダテーブル４１０、ネームサーバテーブル４２０、クライアント選好テーブル４３０、ドメインプロバイダテーブル４４０、およびドメインプロバイダ優先順位テーブル４５０を含むことが可能である。ただし、任意の他の適切なテーブルも構成テーブル４００の中で提供されることが可能であることを理解されたい。
【００４９】
ときとして、クライアントは、別のクライアントが既にそのドメイン名をＮＩＣに登録しているため、所望のドメイン名を登録することができない。クライアントは、代替のドメイン名を選択しなければならず、これにより、しばしば、そのエンティティの電子リソースをインターネット上で探し出すことの困難がもたらされる。したがって、外部プロバイダを使用して、他者に現在、登録されているか、またはそれ以外で利用できない所望の名前の代替のドメイン名を提供する機能を供与することができる。外部プロバイダは、さまざまな人工知能ベースのスキームを利用してクライアントのために望ましい代替の名前を決めることができる。たとえば、ドメイン名を示唆する特定のクライアントに基づいて代替の名前をカスタマイズすることができる。代替プロバイダテーブル４１０は、そのような外部プロバイダのインベントリを保持する。外部プロバイダは、フェイルオーバが生じた際に呼出しが行われる優先順位に従ってランク付けされる。各外部プロバイダエントリは、そのプロバイダによってサポートされるトップレベルドメインのリスト、およびデフォルトの「カテゴリ」を含む。デフォルトのカテゴリは、クライアントがＧｅｔＡｌｔｅｒｎａｔｅｓ（）に対する呼出しにおいてカテゴリを指定しない場合に利用される。「カテゴリ」は、１つまたは複数の代替のドメイン名を生成する際に使用されることが可能なプロバイダによって指定された語である。
【００５０】
外部プロバイダが代替のドメイン名を提供するものとして説明したが、ドメインＡＰＩ自体、要求されたドメインが利用できない場合に代替のドメイン名を提供する機能を含むことが可能であることを理解されたい。ドメインＡＰＩは、さまざまな人工知能ベースのスキーマを利用してカスタマイズされた代替のドメイン名を提供することができる。たとえば、示唆される代替のドメイン名は、クライアントの履歴、および／または１組の観察されたイベントに基づくことが可能である。
【００５１】
ネームサーバテーブル４２０は、複数のネームサーバをリストする。ネームサーバは、ドメイン名をドメイン名のＩＰアドレス（ＤＮＳまたはホストサーバとしても知られる）にマップするため、およびドメインをプロバイダ（レジストラ）に登録するために使用される。クライアント選好テーブル４３０は、クライアントＩＤのリストを含む。ＩＤは、外部ＡＰＩを呼び出す際にクライアントによって指定される。また、クライアント選好テーブル４３０は、好ましいレジストラプロバイダなどのクライアント選好も含む。好ましいレジストラプロバイダは、フェイルオーバが生じない限り、他のレジストラより先に呼び出される。クライアント選好テーブル４３０は、クライアントに関するドメインを登録する際に利用するためのネームサーバ、およびそのクライアントによって登録されたドメインを供与する（ｓｅｒｖｅ）際に利用するためのＤＮＳレコード（ＡおよびＭＸ）をさらに含む。
【００５２】
代替として、またはさらに、クライアント選好テーブル４３０は、学習された挙動に従って、または人工知能を使用する自動化された仕方でクライアント選好を受け取ることができる。たとえば、クライアントがドメイン登録システムに導入された場合、またはドメイン登録システムとインターフェースをとった場合、ドメインＡＰＩが、クライアントによるイベントまたは動作を観察して、クライアントの好き嫌い（ｌｉｋｅｓ  ａｎｄ  ｄｉｓｌｉｋｅｓ）を判別することができる。その後、ドメインＡＰＩは、ユーザからの絶え間ない入力を必要とすることなく、クライアント選好を生成し、および／または獲得することができる。したがって、ドメインＡＰＩは、学習された挙動（たとえば、少なくともある程度、明示的にも、暗黙的にも、ユーザ、または訓練によって提供された前の入力に基づく）を見せることが可能である。
【００５３】
ドメインプロバイダテーブル４４０は、１つまたは複数のレジストラプロバイダ、ならびに各レジストラがサポートする１つまたは複数のトップレベルドメインをリストする。ドメインプロバイダ優先順位テーブル４５０は、レジストラプロバイダに関する優先順位ランク付けを提供する。したがって、優先順位テーブル４５０は、レジストラに呼出しが行われるデフォルトの順序を保持する。ただし、ドメインプロバイダ優先順位テーブル４５０の中でリストされる優先順位は、クライアント選好テーブル４３０の中に記憶されることが可能であるクライアントのレジストラ選好によって変更されることが可能である。フェイルオーバが生じた場合、一般に複数のレジストラが呼び出される。ただし、任意の他の適切な理由で複数のレジストラが呼び出されることも可能であることを理解されたい。
【００５４】
さらに、ドメインＡＰＩは、各レジストラにかかっている負荷を認識することができ、レジストラの負荷に基づいて優先順位リストを生成してレジストラの間の負荷分散を行うことができる。さらに、レジストラを呼び出すために使用される優先順位リストは、クライアントの選好（またはデフォルトの優先順位リスト）およびレジストラの負荷に基づくことが可能である。優先順位リストは、クライアントに見えることも、見えないことも可能である。
【００５５】
図５は、本発明の態様によるドメイン登録システム５００の例を示している。ドメイン登録システム５００は、１つまたは複数のクライアント５１０と複数のレジストラ５２０の間でインターフェースをとるためのドメインＡＰＩを含む。ドメインＡＰＩは、ＳＱＬから構成情報を読み取ること、外部ＡＰＩをクライアント５１０に公開すること、および／またはレジストラ５２０の間でフェイルオーバを実施することができる共通層５３０を含む。メソッドがクライアントによって呼び出された際、共通層５３０が、ドメイン名のトップレベルドメインに関してレジストラ５２０のデフォルトの優先順位リストを獲得する。その後、共通層５３０は、クライアント選好、ドメイン拡張子、およびレジストラ５２０の現在の負荷の少なくとも１つに従ってデフォルトの優先順位リストを変更することができる。次に、共通層５３０は、デフォルト、または新たに生成された優先順位リストに従ってレジストラ５２０を呼び出す。ただし、第１のレジストラを呼び出す際にフェイルオーバが生じる可能性がある。フェイルオーバは、障害またはスケジュール設定されたダウン時間により１次構成要素が利用できなくなった場合、たとえば、プロセッサ、サーバ、ネットワーク、またはデータベースなどのシステム構成要素の機能が２次システム構成要素によって引き継がれるバックアップ動作モードである。フェイルオーバが生じた場合、共通層５３０は、共通層５３０のプロセッサ５５０および関連するメモリ５６０と連携して動作するフェイルオーバ構成要素５４０を呼び出す。したがって、第１のレジストラに対する呼出しが失敗した場合、フェイルオーバ構成要素５４０は、優先順位リストの中の第２のレジストラにフェイルオーバする。第２のレジストラが成功メッセージを戻した場合、共通層５３０は、その結果をクライアント５１０に戻す。第２のレジストラが失敗メッセージまたはビジーメッセージを戻した場合、フェイルオーバ構成要素５４０は、第３のレジストラにフェイルオーバし、以下同様である。ただし、優先順位リスト上のすべてのレジストラが失敗した場合、失敗メッセージが共通層５３０によってクライアント５１０に戻される。フェイルオーバプロセスは、クライアント５１０には見えない。
【００５６】
共通層５３０は、スロットル構成要素５７０も含む。スロットル構成要素５３０は、プロセッサ５５０、および関連するメモリ５６０と連携して、クライアント５１０がドメインＡＰＩに行うことができる要求の数を制限することができる。要求は、所定の時間枠内の所定の量の呼出しに制限されることが可能である。要求を制限することにより、たとえば、クライアントの信用証明を不正な仕方で獲得した可能性があるユーザによるドメインＡＰＩの乱用を抑えることができる。共通層５３０は、レジストラ５２０に関連するドライバＡＰＩ（図示せず）を介してレジストラ５２０と通信する。
【００５７】
図６〜８は、ドメイン名を登録し、管理するための方法を示している。説明を簡単にするため、方法を一続きの動作として図示し、説明しているが、その動作順序によって限定されないことを理解し、認識されたい。というのは、いくつかの動作は、本発明に従って、本明細書で図示し、説明するのとは異なる順序で、および／または他の動作と同時に行われることが可能であるからである。たとえば、本発明は、代替として、状態図におけるような一続きの互いに関連する状態またはイベントとして表現されることも可能であることが、当分野の技術者には理解され、認識されよう。さらに、例示したすべての動作が、本発明に従って方法を実施するのに必要とされるのではない可能性がある。
【００５８】
図６は、本発明の態様によるドメイン名を要求するための方法６００を示している。６１０で、少なくとも１つのクライアントがドメインを登録することを求める。クライアントは、レジストラが探索するように１つまたは複数の所望のドメイン名を入力することができる。クライアントは、６２０で、選好があれば、それを入力することもできる。クライアント選好は、レジストラの好ましいリスト、トップレベルドメイン、ドメイン名キーワード等を含むことが可能である。所望のドメイン名情報およびクライアント選好は、ドメインＡＰＩに伝送される。ドメインＡＰＩは、クライアント選好、およびドメイン名要求の履歴を記憶することができる。したがって、ドメインＡＰＩは、クライアント履歴に基づいて将来のトランザクション中にクライアントにインテリジェントな応答を提供することができる。クライアントは、ユーザ名、パスワード、または他のクライアント信用証明によって識別されることが可能である。６３０で、ドメインＡＰＩが、クライアントによって入力された要求および選好を使用して、１つまたは複数のレジストラ、またはプロバイダに接触する。ドメイン可用性ステータスメッセージが、１つまたは複数のレジストラおよび／またはレジストリによってドメインＡＰＩに戻される。６４０で、このステータスメッセージがドメインＡＰＩによってクライアントに戻される。ドメイン可用性ステータスは、成功メッセージ、誤りメッセージ、および１つまたは複数の代替のドメイン名のいずれかを含むことが可能である。代替のドメイン名は、クライアントの履歴に基づいて示唆されること、および／または１組の観察されたイベントに基づいて推定されることが可能である。
【００５９】
図７は、本発明の態様によるドメイン名を登録するための方法７００を示している。７１０で、クライアント（たとえば、エンティティ、組織、個人）が、ドメイン要求をドメインＡＰＩに提供することが可能である。７２０で、ドメインＡＰＩは、要求されたドメインを登録するために１つまたは複数のレジストラに接触する。レジストラは、レジストリデータベースにクエリを行い、要求されたドメインが利用可能であるかどうかを判定する（７３０）。要求されたドメインが利用可能である場合（はい）、７４０で、成功メッセージがクライアントに提供され、７５０で、要求されたドメインが登録され、方法は終了する。しかし、要求されたドメインが利用できない場合（いいえ）、７６０で、１つまたは複数の代替のドメイン名がドメインＡＰＩによってクライアントに提供される。クライアントは、ドメインＡＰＩによって提供された代替のドメイン名を検討し、代替のいずれかが受入れ可能であるかどうかを判断する（７７０）。クライアントは、代替の名前の１つが受入れ可能であると判断した場合（はい）、７５０で、その代替のドメイン名を選択し、そのドメインが登録される。しかし、クライアントが示唆された名前のいずれも受入れ可能でないと判断した場合（いいえ）、方法は７１０に戻り、クライアントが新しいドメイン要求をドメインＡＰＩに対して発行することが可能である。
【００６０】
次に、図８を参照すると、複数のレジストラとインターフェースをとるための方法８００が示されている。８０５で、ドメインＡＰＩが、１つまたは複数のクライアントからドメイン要求を受け取る。ドメインＡＰＩは、８１０で、クライアントが要求制限に達したかどうかを判定する。制限は、所定の期間中の所定の数の要求に基づくことが可能である。クライアントが要求制限（はい）に達した場合、８１５で、ドメインＡＰＩが誤りメッセージをクライアントに戻し、方法が終了する。誤りメッセージは、「パートナがトラフィック制限を超えているためにドメインクエリがブロックされている」であることが可能である。したがって、ドメインＡＰＩにより、クライアント信用証明を不正な仕方で獲得した可能性があり、ドメインＡＰＩに多数の呼出しを行っているユーザが制限される。しかし、クライアントが要求制限に達していない場合（いいえ）、方法は、８２０に進む。
【００６１】
８２０で、ドメインＡＰＩは、クライアントレジストラ優先順位リストを取り出す。次にドメインＡＰＩは、８２５で、必要な場合、クライアント優先順位リストにマッチするようにレジストラのデフォルトのリストを変更する。８３０で、ドメインＡＰＩは、優先順位リスト上の第１のレジストラに接触する。８３５で、ドメインＡＰＩは、第１のレジストラが応答するかどうかを判定する。第１のレジストラが応答する場合（はい）、８４０で、ドメインＡＰＩは、クライアントから受け取られたドメイン要求を使用して第１のレジストラにクエリを行う。８４５で、クエリの結果がクライアントに戻され、方法が終了する。しかし、第１のレジストラが応答しない場合（いいえ）、８５０で、ドメインＡＰＩは、レジストラ優先順位リストの終りに達したかどうかを判定する。リストの終りに達している場合（はい）、８５５で、誤りメッセージがクライアントに戻される。しかし、ドメインＡＰＩがレジストラ優先順位リストの終りに達していない場合（いいえ）、８６０で、リストポインタが増分され、ドメインＡＰＩが８３０に戻って第２のレジストラに接触する。レジストラリストの終りに達するまで、この方法が続けられる。
【００６２】
図９を参照すると、本発明のさまざまな態様を実施するための例示的な環境９１０が、コンピュータ９１２を含む。コンピュータ９１２は、処理ユニット９１４、システムメモリ９１６、およびシステムバス９１８を含む。システムバス９１８は、システムメモリ９１６から処理ユニット９１４までを含むが、これらには限定されないシステム構成要素を結合する。処理ユニット９１４は、さまざまな入手可能なプロセッサのいずれであることも可能である。また、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも処理ユニット９１４として使用することができる。
【００６３】
システムバス９１８は、１１ビットバス、インダストリスタンダードアーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（ＩＳＡ）、マイクロチャネルアーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（ＭＣＡ）、エクステンデッドＩＳＡ（Ｅｘｔｅｎｄｅｄ  ＩＳＡ）（ＥＩＳＡ）、インテリジェントドライブエレクトロニクス（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）（ＩＤＥ）、ＶＥＳＡローカルバス（ＶＬＢ）、ペリフェラルコンポーネントインターコネクツ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）（ＰＣＩ）、ユニバーサルシリアルバス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）（ＵＳＢ）、アドバンストグラフィックスポート（Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）（ＡＧＰ）、パーソナルコンピュータメモリカードインターナショナルアソシエーション（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）バス（ＰＣＭＣＩＡ）、およびスモールコンピュータシステムズインターフェース（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）（ＳＣＳＩ）を含むが、以上には限定されない任意のさまざまな入手可能なバスアーキテクチャを使用するメモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および／またはローカルバスを含むいくつかのタイプのバス構造のいずれであることも可能である。
【００６４】
システムメモリ９１６は、揮発性メモリ９２０および不揮発性メモリ９２２を含む。始動中などにコンピュータ９１２内部の要素間で情報を転送する基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）が、不揮発性メモリ９２２の中に記憶される。例として、限定としてではなく、不揮発性メモリ９２２には、読取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的にプログラミング可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なＲＯＭ（ＥＥＰＲＯＭ）、またはフラッシュメモリが含まれることが可能である。揮発性メモリ９２０には、外部キャッシュメモリとして動作するランダムアクセスメモリ（ＲＡＭ）が含まれる。例として、限定としてではなく、ＲＡＭは、シンクロナス（ｓｙｎｃｈｒｏｎｏｕｓ）ＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンスト（ｅｎｈａｎｃｅｄ）ＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンク（Ｓｙｎｃｈｌｉｎｋ）ＤＲＡＭ（ＳＬＤＲＡＭ）、およびダイレクトラムバス（ｄｉｒｅｃｔ  Ｒａｍｂｕｓ）ＲＡＭ（ＤＲＲＡＭ）などの多くの形態で入手可能である。
【００６５】
コンピュータ９１２は、取外し可能な／取外し不可能な、揮発性／不揮発性のコンピュータ記憶媒体も含む。図９は、たとえば、ディスクストレージ９２４を示している。ディスクストレージ９２４には、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、またはメモリスティックのようなデバイスが含まれるが、以上には限定されない。さらに、ディスクストレージ９２４には、コンパクトディスクＲＯＭデバイス（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ｒｅｃｏｒｄａｂｌｅ）ドライブ（ＣＤ−Ｒドライブ）、ＣＤリライタブル（ｒｅｗｒｉｔａｂｌｅ）ドライブ（ＣＤ−ＲＷドライブ）、またはデジタルバーサタイルディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）を含むが、以上には限定されない、他の記憶媒体とは独立の、または他の記憶媒体と組合せの記憶媒体も含まれることが可能である。システムバス９１８に対するディスク記憶デバイス９２４の接続を容易にするため、インターフェース９２６のような取外し可能なインターフェース、または取外し不可能なインターフェースが、通常、使用される。
【００６６】
図９は、ユーザと適切な動作環境９１０に描いた基本コンピュータリソースの間の仲介として動作するソフトウェアを描いていることが認められよう。そのようなソフトウェアには、オペレーティングシステム９２８が含まれる。ディスクストレージ９２４上に記憶されることが可能なオペレーティングシステム９２８は、コンピュータシステム９１２のリソースを制御し、割り振るように動作する。システムアプリケーション９３０は、システムメモリ９１６の中、またはディスクストレージ９２４上に記憶されたプログラムモジュール９３２およびプログラムデータ９３４を介してオペレーティングシステム９２８によるリソースの管理を活用する。本発明は、さまざまなオペレーティングシステム、またはオペレーティングシステムの組合せを使用して実施できることが認められよう。
【００６７】
ユーザは、入力デバイス９３６を介してコマンドまたは情報をコンピュータ９１２に入力する。入力デバイス９３６には、マウス、トラックボール、スタイラス、タッチパッドなどのポインティングデバイス、キーボード、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、ＴＶチューナカード、デジタルカメラ、デジタルビデオカメラ、Ｗｅｂカメラ等が含まれるが、以上には限定されない。以上の入力デバイス、およびその他の入力デバイスは、インターフェースポート９３８を介してシステムバス９１８を通じて処理ユニット９１４に接続される。インターフェースポート９３８には、たとえば、シリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス（ＵＳＢ）が含まれる。出力デバイス９４０は、同じタイプのポートのいくつかを入力デバイス９３６として使用する。したがって、たとえば、ＵＳＢポートを使用して入力をコンピュータ９１２に提供することができ、コンピュータ９１２から出力デバイス９４０に情報を出力することができる。特別なアダプタを必要とするモニタ、スピーカ、およびプリンタのようないくつかの出力デバイス９４０が存在することを、他にも出力デバイス９４０が存在するがとりわけ示すために、出力アダプタ９４２を提示している。出力アダプタ９４２には、例として、限定としてではなく、出力デバイス９４０とシステムバス９１８の間で接続の手段を提供するビデオカードおよびサウンドカードが含まれる。遠隔コンピュータ９４４のような他のデバイスおよび／またはデバイスのシステムは、入力機能と出力機能をともに提供することに留意されたい。
【００６８】
コンピュータ９１２は、遠隔コンピュータ９４４のような１つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境において動作することができる。遠隔コンピュータ９４４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピアデバイス、または他の一般的なネットワークノード等であることが可能であり、通常、コンピュータ９１２に関連して説明した要素の多く、またはすべてを含む。簡明にするため、メモリ記憶デバイス９４６だけを遠隔コンピュータ９４４とともに示している。遠隔コンピュータ９４４は、ネットワークインターフェース９４８を介してコンピュータ９１２に論理接続され、通信接続９５０を介して物理接続される。ネットワークインターフェース９４８は、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）などの通信網を包含する。ＬＡＮ技術には、ファイバ分散データインターフェース（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）（ＦＤＤＩ）、銅線分散データインターフェース（Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）（ＣＤＤＩ）、イーサネット（登録商標）／ＩＥＥＥ  １１０２．３、トークンリング／ＩＥＥＥ  １１０２．５等が含まれる。ＷＡＮ技術には、ポイントツーポイントリンク、デジタル総合サービス網（ＩＳＤＮ）やその変種のような回線交換網、パケット交換網、デジタル加入者線（ＤＳＬ）が含まれるが、以上には限定されない。
【００６９】
通信接続９５０とは、ネットワークインターフェース９４８をバス９１８に接続するのに使用されるハードウェア／ソフトウェアを指す。図面を明瞭にするためにコンピュータ９１２内部に通信接続９５０を示しているが、通信接続は、コンピュータ９１２外部にあることも可能である。ネットワークインターフェース９４８に接続するために必要なハードウェア／ソフトウェアには、単に例として、通常の電話等級の（ｔｅｌｅｐｈｏｎｅ  ｇｒａｄｅ）モデム、ケーブルモデルおよびＤＳＬモデム、ＩＳＤＮアダプタ、ならびにイーサネット（登録商標）カードを含むモデムなどの内部技術および外部技術が含まれる。
【００７０】
図１０は、本発明が相互作用することが可能なサンプルのコンピューティング環境１０００の概略ブロック図である。システム１０００は、１つまたは複数のクライアント１０１０を含む。クライアント１０１０は、ハードウェアおよび／またはソフトウェア（たとえば、スレッド、プロセス、コンピューティングデバイス）であることが可能である。システム１０００は、１つまたは複数のサーバ１０３０も含む。サーバ１０３０も、ハードウェアおよび／またはソフトウェア（たとえば、スレッド、プロセス、コンピューティングデバイス）であることが可能である。サーバ１０３０は、たとえば、本発明を使用することによって変換を行うスレッドを収容することができる。クライアント１０１０とサーバ１０３０の間の１つの可能な通信は、２つまたはそれより多くのコンピュータプロセスの間で伝送されるように適合されたデータパケットの形態であることが可能である。システム１０００は、クライアント１０１０とサーバ１０３０の間の通信を行うのに使用することができる通信フレームワーク１０５０を含む。クライアント１０１０は、クライアント１０１０にローカルな情報を記憶するのに使用することができる１つまたは複数のクライアントデータストア１０６０に動作上、接続される。同様に、サーバ１０３０は、サーバ１０３０にローカルな情報を記憶するのに使用することができる１つまたは複数のサーバデータストア１０４０に動作上、接続される。
【００７１】
以上に説明したことは、本発明の例を含む。もちろん、本発明を説明する目的で構成要素または方法の考えられるすべての組合せを説明することは不可能であるが、本発明の多くのさらなる組合せおよび置換が可能であることを当分野の技術者は認識できよう。したがって、本発明は、頭記の特許請求の趣旨と範囲に含まれるすべてのそのような改変形態、変更形態、および変形形態を包含するものとする。さらに、「含む（ｉｎｃｌｕｄｅ）」が詳細な説明、あるいは特許請求の範囲で使用される限りにおいて、この用語は、「含む（ｃｏｍｐｒｉｓｉｎｇ）」が、請求項において他動詞的な語（ｔｒａｎｓｉｔｉｏｎａｌ  ｗｏｒｄ）として使用される場合に解釈される「ｃｏｍｐｒｉｓｉｎｇ」という用語と同様に包含的（ｉｎｃｌｕｓｉｖｅ）であるものとする。
【図面の簡単な説明】
【００７２】
【図１】本発明の態様による複数のレジストラを有するドメイン登録システムの例を示す概略ブロック図である。
【図２】本発明の態様による複数のクライアントおよび複数のレジストラとインターフェースをとるドメインＡＰＩの例を示す概略ブロック図である。
【図３】本発明の態様による少なくとも１つのクライアントおよび複数のレジストラとインターフェースをとるドメインＡＰＩの例を示す概略ブロック図である。
【図４】本発明の態様によるドメインＡＰＩの構成テーブルの例を示す概略ブロック図である。
【図５】本発明の態様によるドメインＡＰＩの共通層の例を示す概略ブロック図である。
【図６】本発明によるドメイン要求方法の例を示す流れ図である。
【図７】本発明の態様によるドメイン登録方法の例を示す流れ図である。
【図８】本発明の態様による多重レジストラクエリ方法の例を示す流れ図である。
【図９】本発明のさまざまな態様を実施するための例示的な環境を示す概略ブロック図である。
【図１０】本発明の態様による適切な動作環境を示す概略ブロック図である。
【符号の説明】
【００７３】
１００  ドメイン登録システム
１１０  ドメインＡＰＩ
１１２  インターフェース構成要素
１１４  登録構成要素
１２０１、１２０２、１２０Ａ  レジストラ
１３０  レジストリ
１４０  クライアント
１５０  ドメイン要求
１６０  応答
【図１】
2004260804.tif 000007
【図２】
2004260804.tif 000008
【図３】
2004260804.tif 000009
【図４】
2004260804.tif 000010
【図５】
2004260804.tif 000011
【図６】
2004260804.tif 000012
【図７】
2004260804.tif 000013
【図８】
2004260804.tif 000014
【図９】
2004260804.tif 000015
【図１０】
2004260804.tif 000016