多寄存器的制作方法

文档序号:6395040阅读:207来源:国知局
专利名称:多寄存器的制作方法
技术领域
本发明通常涉及计算机系统,尤其是涉及一种提供用于注册和管理互联网域的通用接口的系统和方法。
背景技术
互联网是互连计算机的大型网络。特殊的计算机或包括关于这种计算机的信息的文件可以通过″地址″被找到。该地址是一个很长的数字组合;例如,被连接到互联网的专用计算机的数字地址可以是192.168.255.1。该地址识别包括具有特殊信息或交互格式的文件的计算机,比如超级文本标志语言(“HTML”)。信息或交互部分被结合来形成目前通常所称的网页。
数字地址的别名称为域名,其通常更便于记忆。别名往往有固有意义,其用于简化特定计算机或万维网站点(“网站″)的标识。目前,公众可以有效使用的互联网域名包括二级域和顶级域(“TLD”),其相应于一个数字地址并且识别计算机的物理位置。TLD内的二级域当前可以被注册来供被称为ICAAN的实体(body)使用。
二级域名可以包括除某些诸如”i/”和″.″这类字符外的任何二十六个字符的组合,除此之外还有特殊的意义。公司普遍利用它们的公司名称或重要的商标,或者两者都用。这些域名中有许多都在.com这个顶级域之下。使用.comTLD的二级域名还由于另外的原因而普及。互联网用户可以使用这种二级域名来绕过诸如Yahoo、Excite和Lycos之类的搜索引擎而通过输入作为二级域的商号名称并加上一个.com扩展名来直接访问公司网址。互联网用户还使用这个捷径通过使用公司名称或产品名称来直观地找到公司或想要的信息。
在使用之前,一个被建议的域名必须用一个域名注册器注册(或获得)。通常地,域名映射通过诸如公共互联网域名服务器(DNS)系统这样的由注册器来保存的域名服务器系统和由被称为InterNJC的注册表数据库授权来执行。注册一般包括根域名的一些人工输入和顶级域名的选择。当执行过程时,注册服务一般就核对一个或多个数据库来确定域名是否可用于注册。如果注册是可用的,则服务会允许用户完成一种在线形式从而使注册完全。
DNS系统包括一组有关网络的协议和服务,其当在该网络上寻找其它主机(例如,计算机)时允许使用域名。通过使用名称的分布式数据库,DNS系统建立一个称作域名空间的逻辑树结构。域名空间中的每个节点或每个域都被命名并且可以包括子域。域和子域被集合成区域以允许域名空间的分配管理。
DNS提供了一种机理,因此备份数据库可以在第一个数据库变得不可用的情况下被识别。DNS数据库被自动更新,因而有关名称服务器的信息不会保持过时太久。DNS的客户机被称作解析器;解析器一般位于驻留在具有TCP/IP能力的机器上的网络软件的应用层。用户一般不会直接接触解析器。解析器通过直接查询名称服务器来查询DNS,名称服务器包括分布式数据库的一部分,该分布式数据库通过使用DNS协议把域名翻译成通过网络的信息传输所需的IP地址而被访问。

发明内容
以下为了提供本发明一些方面的基本了解而给出一个简要的发明摘要。此摘要不是本发明的广泛概述。它不用于标识本发明的关键或决定性元件,也不用于叙述本发明的范围。它的唯一目的是以简化形式给出本发明的一些概念,其作为将迟些给出的更详细说明的一个前奏。
本发明涉及提供用于注册和/或管理互联网域的通用接口和/或建议替换当前已注册或不可用的域名的系统和方法。特别地,根据本发明提供了包括方法和配置表的集合的域应用编程接口(API)。故障切换和重试逻辑可以在寄存器当中被执行来提供负载平衡和故障切换。可以根据每个访问者和/或每个域扩展而在配置表中配置寄存器和故障切换参数。
更具体地说,本发明提供作为一个或多个客户机和多个寄存器之间的接口的域API。域API可以包括一个故障切换元件,如果第一个寄存器故障、不响应或超负载,其允许域API与第二个寄存器交互作用。所以,本发明便于寄存器中的负载分配和域注册系统的总体性能改善。另外,因为域API可以与多个寄存器交互作用,所以一个新的寄存器可以在改变现有的系统结构之内被增加给现有的系统。
另外,本发明提供可用于在一个或多个客户机和多个寄存器之间接口的域API,其中,多个寄存器中的至少两个可以支持一个同样的顶级域。在常规域注册系统中,一个域API只能与每个顶级域的一个寄存器或一个提供者接口。从而,本发明提供一个更实用的系统,其中,如果支持相同顶级域的第一个寄存器满负载、不响应或不可用,则支持一个特定顶级域的第二个寄存器可以被选择。
以下描述和附图详细地阐述了本发明的某些说明性的方面。然而,这些方面不过代表了本发明的原理可以被使用于其中的几个不同的方法中,而且本发明包括了所有这些方面以及它们的等效物。本发明的其它优点和新颖的特性在连同附图考虑时会通过以下的本发明的详细描述而变得显而易见。
附图简述

图1是一个示意性框图,其根据本发明一个方面说明了具有多个寄存器的域注册系统的一个例子。
图2是一个示意性框图,其根据本发明的一个方面说明了与多个客户机和多个寄存器接口的域API的一个例子。
图3是一个示意性框图,其根据本发明的一个方面说明了与至少一个客户机和多个寄存器接口的域API的一个例子。
图4是一个示意性框图,其根据本发明的一个方面说明了域API的配置表的一个例子。
图5是一个示意性框图,其根据本发明的一个方面说明了域API的公共层的一个例子。
图6是一个流程图,其根据本发明说明了域申请方法的一个例子。
图7是一个流程图,其根据本发明的一个方面说明了域注册方法的一个例子。
图8是一个流程图,其根据本发明的一个方面说明了多寄存器查询方法的一个例子。
图9是一个示意性框图,其说明了用于执行本发明的不同方面的可仿效环境。
图10是一个示意性框图,其根据本发明的一个方面说明了一个适当的运行环境。
发明详述本发明涉及提供注册和/或管理互联网域的通用应用编程接口(API)和/或建议替换当前已注册或不可用的域名的系统和方法。根据本发明提供在结构化查询语言(SQL)中包括方法和配置表的集合的域API。SQL是用于访问数据库的ANSI标准语言,通过它可以控制API的状态。域API可以通过与多个寄存器协作来注册不同扩展名的域。故障切换和重试逻辑可以在寄存器当中被执行以提供负载平衡和故障切换。寄存器和故障切换参数可以根据每个访问者和/或每个域扩展而在SQL配置表中被配置。
此申请中用到的术语″元件″和″系统″被用来指代与计算机有关的实体,硬件、硬件和软件的结合、或者是软件或执行中的软件。例如,一个元件可以但不限于是处理器上运行的进程、处理器、对象、可执行的、执行线程、程序和计算机。用图解的方法,在服务器上执行的应用程序和服务器都可以是一个元件。一个或多个元件可以驻留在进程和/或运行的线程内,并且一个元件可以被定位在一个计算机上和/或在两个或更多的计算机之间被分配。
此外,在此使用的术语″推断″通常是指通过经由事件和/或数据被记录的一组观察结果来推出或推断系统状态、环境和/或用户的处理。推断可以用于识别一个特殊环境或反应,或者例如可以产生状态上的概率分布。推断可以是随机的,即基于数据和事件而在所关心的状态上的概率分布的计算。推断还可以指用于从一组事件和/或数据中组成高级事件的技术。这种推断从一组被观察到的事件和/或被存储的事件的数据中产生新的事件或反应的结构,不管这些事件在当时是否密切相关,以及这些事件和数据是否来自一个或几个事件和数据源。
因此,本发明(例如,关于注册域名的利用)可以利用基于不同方案的各种人工智能来实现本发明的各方面。例如,注册候选域名可以经由一个自动分类系统和进程而被简化。这种分类可以使用一个随机的和/或基于统计的分析(例如,分析实用性和成本的影响)来预测或推断一个用户希望被自动执行的动作。例如,一个支持向量机(SVM)分类器可以被使用。其它分类途径包括Bayesian网络、决策树和提供不同的独立模式的可被使用的随机分类模式。在此使用的分类还包括用于开发优先模式的统计回归。
从说明书中很容易理解,本发明可以使用被明白训练的分类器(例如经由一个普通的训练数据)以及被暗中训练(例如经由观察用户状态,接收外来信息)的分类器,因此分类器根据用户偏好自动注册至少一个候选域名。例如,对于很好被理解的支持向量机(SVM),应当理解其它分类器模式也可以被使用,比如Naive Bayes、Bayes Net、决策树及经由在分类器构造器和特征选择模块内的学习或训练步骤来被配置的其它学习SVM的模式。分类器是一个函数,其把输入属性矢量x=(x1、x2、x3、x4、xn)映射到属于级别f(x)=置信度(分类)的输入的一个置信度(confidence)。在基于文本的域名分类的情况下,例如属性是单词或字句或其他从单词导出的特殊域的属性(例如各种词类、关键术语的存在),并且种类是感兴趣的类别或区域(例如优先级)。
首先参考图1,域注册系统100的一个示意性框图被描述。域注册系统100包括域API 110,其注册域并且可以返回不可用域的候选。域API 110可以包括接收至少一个注册域名的申请的接口元件112和有多个寄存器或提供者的寄存元件114,从1201到120A,A是大于或等于1的整数。寄存器或提供者1201到120A可以一起相当于寄存器120。然而,应当理解接口元件和注册元件不局限于独立的元件而是可以包括具有两者功能的元件。故障切换元件(未示出)也可以被提供,如果第一个寄存器超负载、不响应、故障或不可用,则其允许域API110与第二个寄存器交互作用。所以,本发明便于寄存器中的负载分配和域注册系统的总体性能的改善。另外,因为域API可以与多个寄存器交互作用,所以一个新的寄存器可以在改变现有的系统结构之内被增加给现有的系统。
寄存器以考虑原有域名注册,转让或接触/域名系统修改的单位、组织或个人的名义起作用。寄存器用注册表数据库130来提交和保存域名。注册表数据库130是单位、组织或个人在其中提交新域名注册和更新现有信息、联系和DNS信息的数据库。使用中央注册表数据库130而不是多个寄存数据库来提供不允许域名冗余的域名寄存和管理(例如两个单位不能注册相同域名)。
然而应该理解,本发明可以执行超过一个注册表或备份数据库的功能来防止中央寄存不可用的情况。备份数据库可以被自动更新,因此位于备份数据库中的信息保持当前信息。
域注册系统100还包括一个或多个客户机140。客户机140可以由单位、组织、个人等等组成并且和发出一个或多个域申请150到域API 110。域API 110用于发射域申请信息到多个寄存器120中的至少一个。这类信息通常作为http申请被发射。所选择的寄存器120提交域申请信息到注册表130。如果被申请的域名是可用的,则注册表130发回一个域名可用的响应到寄存器。寄存器120随后发射一个响应(例如https响应)到域API 110。域API 110然后发射响应160到客户机的域申请。如果所申请的域名是不可用的或错误的信息,则响应160可以包括一个或多个域名、一个或多个候选域名。域注册服务可用于允许客户机140完成注册。因此,域API 110是一个中间设备层并且控制从客户机140到多个寄存器120的通道。
另外,在常规域注册系统中,一个域API对于每个顶级域只能与一个寄存器或提供者相连接。从而,如果用于特殊的顶级域的寄存器发生故障、停工或不可用,则客户机从那个特殊的顶级域会接收到错误信息或接受不到信息。因此,本发明还提供多个寄存器,其支持单一的顶级域来缓和这种缺陷并且在常规系统上提供更实用的域注册系统。
转到图2,多寄存器系统200的示意性框图被说明。多寄存器系统200包括用于多个客户机2201到220B之间的接口的域API 210和多个寄存器2301到230c。B和C是大于或等于一的整数。另外,B和C可以是彼此不同或相等的整数。客户机220可以通过域API 210用唯一的ID来识别。例如,客户机220可以通过作为两个32位整数PUIDHigh和PUIDLow被传递到域API 210的唯一的64位ID而被识别。域API 210可以在HTTP和加密套接字协议层(SSL)上与客户机220和寄存器230相连接。SSL是由Netscape开发来处理和保护电子商业交易(例如信用卡信息、社会保险号)的机密和/或敏感信息的协议。SSL地址通常地用′https′开始。
域API 210包括域API方法240的集合,其可以让多个客户机220查询。客户机凭据可以作为参数或HTTP报头被传递到方法240的集合中。另外,如果通信在SSL上被发射,则凭据被加密。因此,当客户机凭据得到证实时,域API 210可以基于方法240的集合中的方法的至少一种而响应客户机的查询。驻留在方法240的集合中的方法可以包括PDRESULT查询域(串域数据)查询域的方法向域API查询域的可用性。如果域是可用的,则SUCCESS通知被返回到申请的客户机。
PDRESULT保留域(int PU1DHigh、int PU1DLow、string strservicelnslanceld、stringDomainData、out siring TrackingGuid)保留域的方法以所提供的域和客户机提供的用户数据来创建一个域。跟踪GUJD被返回给客户机来跟踪域保留。GU1D是被分配给客户机web浏览器的匿名用户ID。保留域方法预定该域;从而,域仍然没有被购买。
PDRESULT得到定制域(int PU1DHigh、int PU1DLow)得到定制域的方法把已注册的域返回给用户。此方法通常被有系统管理级权限的用户使用。
PDRESULT停用域(int PU1DHigh、int PU1DLow、string Servicelnstanceld、int ReasonlD)停用域的方法标记一个域为被停用而不用寄存器来储备域。停用的域不被更新并且不提供对应的DNS记录服务。
PDRESULT预备域(int PUJDHigh、int PU1DLow、string servicelnstanceld、string domaindata)预备域的方法购买一个域,因此那个域是激活的并且提供对应的DNS记录服务。
PDRESULT转让域(int PU1DHigh、int PU1DLow、string Servicelnstanceld、string DomainData)转让域的方法开始域的转让。当域名所有权被转让给新的所有者时,域的转让发生。
PDRESULT落实转让域(string DomainName、string ParlnerProfile、siringstrRegistrar、siring OwnerKey、string OwnerPwd、DaleTime CreationDate、DaleTimeNextRenewalDate、int RegistralionPeriod、bool TransferSucceeded、boolbOverwrileDns、siring strFailureReason)因为转让域的方法不是即时过户,所以落实转让域的方法被使用。首先必须获得当前所有者的同意。因此,当从考虑转让未定域的寄存器接收成功/失败通告时,落实转让域的方法被用来落实域的状态。
PDRESULT启用域(int PU1DHigh、int PU1DLow、string Servicelnslanceld)启用域的方法再次启用被停用的域。然而,超过它的更新日期和按照ICANN规则不能更新的停用域不能被再次启用。
PDRESULT更新所有者(string DomainData)更新所有者的方法更新所有者和域的所有者的信息,例如所有者的名称、地址、帐单信息等等。
PDRESULT不预备域(string DomainName)不预备域的方法用寄存器储备域。
PDRESULT查找域(siring DomainData、out DomainlnfoStruct Domainlnfo)查找域的方法检索通过域服务注册的域的WHOIS数据。WHOIS数据可以包括诸如域名当前所有权、联络资料和名称有效性之类的信息。依靠寄存器,该方法可以获得部分或所有的WHOIS信息。
PDRESULT更新域(string strDomainName)因为域名注册根据一些计划时限被更新,所以更新域的方法用域更新寄存器。
PDRESULT得到候选(string DomainName、string PartnerProfile、stringCategory、string[]Keywords、out siring XmlResults、out siring TextResults)因为客户机申请的域名是不可用的,所以得到候选的方法获得候选的可用域名。
域API 210还包括配置信息250。配置信息250可以位于SQL的表中。配置信息250用于从多个寄存器230选择寄存器或提供者。配置信息250可以包括客户机偏好、合伙人名称等等。另外,作为一种选择,寄存器可以根据多个寄存器230中的一个或多个寄存器的负载而被选择。因此,多寄存器系统200可以供应负载分配和/或多个寄存器230间的平衡,其易于提高域注册和/或管理程序的性能。
图3说明根据本发明一个方面的多寄存器系统300的另一个例子。多寄存器系统300包括用于连接至少一个客户机320和多个寄存器3301到330D的域API310,D是大于或等于一的整数。域API 310可以包括外部API元件340、公共层元件350、配置表360和多个驱动器API元件3701到370E,E是大于或等于一的整数。外部API元件340可以是一个或多个处理由客户机320接收到的信息的方法。例如,API元件可以验证客户机信息和任何其它客户机320传递到域API 310的信息。基于从客户机320传递到域API 310的信息,外部API元件340可以用下列格式响应客户机320public struct PDRESULT{public uint hResult;//HRESULTpublic string strMessage;//对应的错误消息pubic siring strAdditionallnfo;//与返回代码有关的辅助信息}下列是可能的错误消息和可能由外部API元件返回的对应的错误字符串//错误代码uint DOMAINS-ERROR=0×80040200;uint EDNR SUCCESS=0;
uint E_DNR_ERROR-DOMAINS_ERROR+1;uint E_DNR_DOMAINUNAVA)LABLE=DOMAINS_ERROR+2;uint E_DNR_BADPROF1LEDATA=DOMAINS_ERROR+3uint E_DNR_BADCONF1GURAT1ON=DOMAINS_ERROR+4;uint E_DNR_BADCON1MECT10N-DOMAINS ERROR+5;uint E_DNR_ST1LLPROCESSING=DOMAFNS_ERROR+6;uint E_DNR_UNABLETOCANCEL=DOMAINS ERROR+7;uint E_DNR_INVALIDOWNERFIRSTNAME=DOMAINS_ERROR+8;uint E_DNR_INVALIDOWNERLASTNAME=DOMAINS_ERROR+9;uint E_DNR_INVALIDADDRESSLINE1=DOMAINS ERROR+10;uint E_DNR_INVALIDCITY=DOMAINNS_ERROR+11;uint E_DNR_INVALIDSTATE=DOMAINNS_ERROR+12;uint E_DNR_INVALIDZ1PCODE=DOMAINS_ERROR+13;uint E_DNR_INVALIDCOUNTRY=DOMAINS_ERROR+14;uint E_DNR_INVALJDEMAJL-DOMAINS_ERROR+15;uint E_DNR_INVALIDPHONE=DOMAINS_ERROR+16;uint E_DNR_INVALIDREGTERM=DOMAINS_ERROR+17;uint E_DNR_INVALIDPARTNER=DOMAINS_ERROR+18;uint E_DNR_INVALIDDOMAMNAME=DOMAINS_ERROR+19;uint EDNR_MISSINGFIELD=DOMAINS_ERROR+20;uint E_DNR_NVALIDOPERATIONTYPE=DOMAINS_ERROR+21;uint E_DNR_UNABLETORENEW=DOMAINS_ERROR+22;uint E_DNR_UNSUPPORTED=DOMAINS_ERROR+23uini E_DNR_UNAVA1LFORTRANSFER=DOMAINS_ERROR+24;uint E_DNR INVALJDHOST=DOMAINS_ERR OR+25;uint E_DNR_INVALIDADDRESSLINE2=DOMAINS_ERROR+26uint E_DNR_SQLERROR=DOMAINS_ERROR+27uint E_DNR_PARTNERQUER1ESBLOCKED=DOMAINS_ERROR+28;uint E_DNR_USERRESERVESBLOCKED=DOMAINS_ERROR+29;uint E_DNR_FARTNERRESERVESBLOCKED=DOMAINS_ERROR+30;
uint E DNR_INVALIDARGS=DOMAINS_ERROR+31;//无效参数uint E_DNR_INVALIDLOCALEJD=DOMAINS_ERROR+32uini E_DNR_INVALIDADDRESSL)NE3=DOMAINS_ERROR+33;uint E_DNR_INVALIDADDRESSLINE4=DOMAINS_ERROR+34;//对应的错误消息siringc E_DNR_SUCCESS=“成功″;stringc_E_DNR_ERROR=“未定义错误″;siringc E_DNR DOMAINUNAVAJLABLE=“域不可用″stringc E_DNRBADPROF1LEDATA=“用户配置文件错误″siringc_E_DNR_BADCONFIGURATION=“配置错误′;siringc_E_DNR_BADCONNECT1ON=“连接错误″;stringc_E_DNR_STILLPROCESSING=“正在处理申请″siringc_E_DNR_UNABLETOCANCEL=“取消失败″siringc_E_DNR_INVALJDARGS=“无效参数″;siring C_E_DNR_INVALIDOWNERF1RSTNAME=“用户名空缺或有无效字符或字符过长″;string c_E_DNR_INVALIDOWNERLASTNAME=“用户姓空缺或有无效字符或字符过长″string c_E_DNRJNVAL1DADDRESSLINE1=“地址行空缺或有无效字符或字符过长″;string C_E_DNR_INVALIDC1TY=“城市空缺或有无效字符或字符过长″;siring c_E_DNR_FNVALJDSTATE=“州空缺或有无效字符或字符过长″;string C_E_DNR_INVALIDZ1PCODE=“邮编空缺或有无效字符或字符过长″;siring c E DNR_INVALIDCOUNTRY=″国家空缺或有无效字符或字符过长″;siring C_E_DNR_INVALIDEMA1L=“电子邮件空缺或有无效字符或字符过长″;string c_E_DNR_FNVALIDPHONE=“电话空缺或有无效字符或字符过长″siring c_E_DNR_INVALJDREGTERM=“注册期限无效″;string c_E_DNR_INVALIDPARTNER=“合伙人姓名无效″;
sinngc_E_DNR_INVALJDDOMAfNNAME-”域名无效″;stringc E_DNR_MISSINGFIELD=“缺少所需字段″;siringc E_DNR_INVALIDOPERAT1ONTYPE=“操作类型无效″;siringc_E_DNR_UNABLETORENEW=“不能更新″stringc_E_DNR_UNSUPPORTED=“不支持″siringc E_DNR_UNAVAILFORTRANSFER=“域不可转让″;stringc_E_DNR_INVALIDHOST=“无效主机″;siringc_E_DNR_INVALIDADDRESSL!NE2=“地址第二行空缺或有无效字符或字符过长″;string c_E_DNR_SQLERROR=“SQL错误″;siring c_E_DNR_PARTNERQUERIESBLOCKED=“由于合伙人超过通信限制,域查询中断″;string c_EDNR USERRESERVESBLOCKED=“由于用户超过通信限制,域保留中断″;PARTMERRESERVESBLOCKED=“由于合伙人超过通信限制,域保留中断″siring c_E_DNR_NVALJDLOCALEID=“地区ID无效″;string c_E_DNR_INVALIDADDRESSLINE3=“地址第三行空缺或有无效字符或字符过长″;stringc_E_DNR_INVALIDADDRESSLINE4=“地址第四行空缺或有无效字符或字符过长″;以下将更加详细地讨论的是公共层元件350从SQL中的配置表360中访问配置信息。作为Web方法,公共层元件350也用于让外部API元件340接触客户机320。Web方法接受一个XmLElement数组作为参数,其允许客户机320提交用于公布的多XML内容项目(当做一个数组)。每个XML内容的项目被包装在一个母体XML标记中,但是可能包括任何详细的并且嵌套在母体元件内的级别。Web方法本身包括几行代码;验证内容和保存的工作由一个文档XML分类执行。
与多个寄存器330的通信经由多个驱动器370执行。至少有一个驱动器370对应每个寄存器330。驱动器370在一个公共驱动器API(未示出)上接受呼叫并且在一个寄存器/提供者的特殊API上呼叫寄存器330。因此,公共层元件350可以用大体上相同的通过呼叫每个驱动器370上的驱动器API的方法来和寄存器330通信。以下是在驱动器API中使用的方法的例子PDRESULT查询域(串域数据)PDRESULT ReserveDomain(string StrDomainName.stringSlrRegislralion Term,siring StrOwnerFirstName.string StrOwnerLastName,stringstrAddressLinel,siring strAddressLine2.string strAddressLine3,stringstrAddressLine4,string strcity.siring strstate,string strZipCode,stnng strcounlry,stringslrPhone.siring slrEmail,siring strNS1.string str1P1,string strNS2,siring str1P2.siringstrNS3?string slr1P3,string strNS4,string str1P4,out siring strOwnerKey.out stringstrOwnerPwd,oul bool bPendingFinalizalion)PDRESULT DeprovisionDomain(string SIrDomainName.string strOwnerKey,string strOwnerPwd)PDRESULT UpdateO\vner(string StrDomainName.string StrOwnerFirstName.siring StrOwnerLastName.siring slrAddressLinel.string s!rAddressLine2,stringstrAddressLine3,siring slrAddressLine4.string strCity.siring slrstate.stringslrZipCode.siring strcountry,string strPhone,string slrEmail.string strOwnerKey,string strOwnerPwd)PDRESULT TransferDomain(slring SIrDomainName.stringStrRegistrationTerm,string strOwnerFirstName.string StrOwnerLastName.stringstrAddressLinel,string slrAddressLine2,string strAddressLine3,stringslrAddressLine4,siring strCity.string strstate,string slrZipCode.string strCountry,siring strPhone,string slrEmail,string strNS1,string str1P1,string strNS2,string str1P2,string strNS3,string str!P3,string strNS4,string str1P4,string StrOverwriteDns,outstring strOwnerKey,out string strOwnerPwd)PDRESULT ChangeNameServers(string StrDomainName,string strOwnerKey,siring strOwnerPwd,string strNS1,string str1Pi,string strNS2,string str1P2,stringstrNS3,string str1P3,siring strNS4,string str!P4)string c-E-DNR-PDRESULT LookupDomain(string StrDomainName,string strOwnerKey,string strOwnerPwd,obt DomainlnfoStruct Domainlnfo)PDRESULT RenewDomain(string StrDomainName,stringstrRegistrationPeriod,siring strOwnerKey,string strOwnerPwd)现在转到图4,用于域API的配置表400的例子根据本发明的一个方面被描述。配置表400包括存储在SQL中的多个列表,其被使用来控制公共层元件的动作。特别地,配置表400可以包括候选提供者列表410、名称服务器列表420、客户机偏好列表430、域提供者列表440和域提供者优先权列表450。然而,应该理解,任何其它适当的列表还可以在配置表400中被提供。
有时客户机不能注册想要的域名的原因是另一个客户机已经用NIC注册了该域名。然后,客户机必须选择候选的域名,这往往使在互联网上查找那个单位的电子资源很麻烦。因此,因为想要的名称当前被注册给他人或不可用,所以外部提供者可以被使用来提供供应候选域名的功能。外部提供者可以利用不同的基于方案的人工智能来为客户机确定合意的候选名称。例如,候选名称可以根据建议域名的特殊客户机来被定制。候选提供者列表410保存这样的外部提供者的清单。外部提供者按照优先顺序被排列,当故障切换出现时,外部提供者按照该顺序被访问。每个外部提供者项目包括一列提供者支持的顶级域和一种默认′类别′。当客户机在得到候选()的呼叫中不指定类别时,默认种类被使用。′类别′是提供者指定的单词,其可以在产生一或多候选域名时被使用。
应该理解,虽然提供候选域名的外部提供者已经被描述,但是在被申请域不可用时,域API本身可以包括提供候选域名的功能。域API可以利用不同的基于方案的人工智能来提供自定制的候选域名。例如,被建议的候选域名可以以客户机的历史记录和/或一组观察到的事件为基准。
名称服务器列表420列出多个名称服务器。名称服务器用于映射域名到它们的IP地址(亦称DNS或主服务器和用于以提供者(寄存器)来注册域)。客户机偏好列表430包括一列客户机ID。在访问外部API时,这些ID由客户机指定。客户机偏好列表430还包括客户机偏好,比如优先选用的寄存器提供者。除非故障切换发生,否则优先选用的寄存器提供者将先于其它寄存器被访问。客户机偏好列表430还包括在用客户机和DNS记录(A和MX)注册域时和在为这个客户机所注册的域提供服务时所使用的名称服务器。
替换地,或另外地,客户机偏好列表430可以根据习得行为或在使用人工智能的自动化方式中接收客户机偏好。例如,当客户机被引入或与域注册系统接口时,域API可以观察事件或客户机反应来确定客户机的好恶。接着,不用要求用户的定值输入,域API就可以产生和/或获得客户机偏好,因而域API可以陈列习得行为(例如,至少部分基于上述由用户提供的输入,或明确以及内含的训练)。
域提供者列表440列出一个或多个寄存器提供者和每个寄存器支持的一个或多个顶级域。域提供者优先权列表450提供寄存器提供者的优先权排列。因此,优先权列表450保存一个寄存器被调用的默认顺序。然而,在域提供者优先权列表450中列出的优先化顺序可以由客户机的寄存器偏好而改变,其可以被存储在客户机偏好列表430中。在故障切换的情况下多寄存器通常被援引。然而,应该理解,多寄存器可以因为任何其它适当的理由被援引。
此外,域API可以识别每个寄存器携带的负载并且可以根据寄存器负载建立优先列表来便于寄存器当中的负载分配。此外,为了援引寄存器而被使用的优先列表可以基于客户机偏好(或默认优先列表)和寄存器负载的结合。优先列表对客户机来说是可见或不可见的。
图5说明根据本发明的一个方面的域注册系统500的例子。域注册系统500包括用于在一个或多个客户机510和多个寄存器520之间接口的域API。域API包括公共层530,其可以从SQL读取配置信息,向客户机510表明外部API接口,和/或执行寄存器520当中的故障切换。当方法被客户机调用时,公共层530获得用于域名的顶级域的寄存器520的默认优先列表。公共层530可以接着按照至少下列之一修改默认优先列表客户机偏好、域扩展名、寄存器520的当前负载。公共层530然后按照默认或新创的优先列表来调用寄存器520。然而,在调用第一个寄存器时故障切换可能发生。故障切换是一个备用运转模式,其中,当主元件由于故障或预定停机时间而变得不可用时,诸如处理器、服务器、网络、或数据库之类的系统元件的功能由辅助系统元件来假定。如果故障切换出现,则公共层530引用故障切换元件540,其协同公共层530的处理器550和关联存储器560一起工作。因此,如果调用第一个寄存器失败,则故障切换元件540故障切换到优先列表中的第二个寄存器。如果第二个寄存器返回SUCCESS消息,则公共层530把结果返回给客户机510。如果第二个寄存器返回FAILURE或者BUSY消息,则故障切换元件540故障切换到第三个寄存器,诸如此类。然而,如果优先列表上的寄存器全部故障,则故障信息由公共层530返回给客户机510。故障切换处理是客户机510不可见的。
公共层530还包括节流元件570。节流元件530连同处理器550和关联存储器560可以限制客户机510可能对域API提出的大量申请。申请可被限于一个在预定时间帧内的预定数量的调用。限制申请缓和了诸如由于可能已经用非法方式获得客户机凭据的用户所造成的API的滥用。公共层530经由与寄存器520关联的驱动器API(未示出)与寄存器520通信。
图6到8说明用于注册和管理域名的方法。然而为了简化说明,该方法被显示和描述为一系列动作,应该明白并理解本发明不被动作顺序限制,一些动作可以根据本发明以不同的顺序和/或与从这里示出和描述的其它动作同时出现。例如,本领域普通技术人员会明白和理解,方法可以替换地被表现成一系列相关状态或事件,比如在状态图中。此外,不是所有被说明的动作都可以被要求执行根据本发明的方法。
图6说明根据本发明的一个方面的用于申请域名的方法600。在610,至少一个客户机设法注册一个域。客户机可以输入一个或多个想要的域名给寄存器查找。如果有的话,客户机还可以在620进入优先选择。客户机偏好可以包括寄存器的优选目录、顶级域、域名关键字等等。想要的域名信息和客户机偏好被发射到域API。域API可以存储客户机偏好和域名申请的历史记录。因此,域API可以根据客户机历史记录在未来交易期间给客户机提供智能答复。客户机可以通过用户名、口令或其它客户机凭证被识别。在630,域API通过客户机输入的申请和偏好联系一个或多个寄存器或提供者。域可用状态消息通过一个或多个寄存器和/或注册表被返回到域API。状态信息在640通过域API被返回给客户机。域可用状态可能包括成功消息之一、错误消息和一个或多个候选域名。例如,被建议的候选域名可以基于客户机的历史记录和/或一组观察到的事件。
图7说明根据本发明一个方面的用于注册域名的方法700。在710,客户机(例如单位、组织、个人)可以提交域申请到域API。域API在720联系一个或多个寄存器来注册被申请的域。寄存器查询注册表数据库来确定是否被申请的域是可用的(730)。如果被申请的域是可用的(YES),则在740成功信息被提供给客户机;被申请的域在750被注册;然后结束本方法。然而,如果被申请的域是不可用的(NO),则在760一个或多个候选域名通过域API提供给客户机。客户机查阅由域API提供的候选域名并确定是否其中有候选是客户机可接受的(770)。如果客户机确定被提供的候选名称之一是可接受的(YES),则客户机选择该候选域名,然后在750该域被注册。然而,如果客户机确定被建议的候选名称中没有可接受的(NO),则方法返回710,其中客户机可以发出新的域申请给域API。
现在转到图8,用于与多个寄存器相连接的方法800被说明。在805,域API从一个或多个客户机接收域申请。在810,域API确定客户机是否达到了申请限制。限制可以基于在预定时期内所预定的申请数目。如果客户机已经达到申请限制(YES),则在815域API返回错误消息给客户机,然后结束本方法。错误消息可能是″由于对方已经超过通信量限制,域查询被中断”。因此,域API限制可能用非法方式已经获得客户机凭证并且对域API作出大量访问的用户。然而,如果客户机没有达到申请限制(NO),则方法进行到820。
在820,域API检索客户机寄存器优先列表。如有必要,则在825域API接着修改寄存器默认列表以匹配客户机优先列表。在830,域API联系在优先列表上的第一个寄存器。在835,域API确定第一个寄存器是否是可响应的。如果第一个寄存器响应(YES),则在840域API用从接收客户机到的域申请来查询第一个寄存器。在845查询结果被返回到客户机,然后本方法结束。然而,如果第一个寄存器不响应(NO),则在850域API确定是否域API已经完成对寄存器优先列表的查询。如果列表末尾已经达到(YES),则在855错误消息被返回到客户机。然而,如果域API还没有完成对寄存器优先列表(NO)的查询,则在860增加一个列表指针,并且域API返回到830以联系第二个寄存器。此方法一直延续到达到寄存器列表的末尾。
参考图9,用于执行本发明的不同方面的示范环境910包括计算机912。计算机912包括处理单元914、系统存储器916和系统总线918。系统总线918耦合包括但不限于系统存储器916在内的系统元件到处理单元914。处理单元914可以是任何种类的可用处理器。双微处理器及其它多处理器系统结构也可以象处理单元914一样被使用。
系统总线918可以是几种总线结构类型中的任意一种,其包括存储器总线或存储控制器、外围总线或外部总线、和/或使用任何种类的可用总线结构的局部总线,其包括但不限于11位总线、工业标准结构(ISA)、微通道结构(MSA)、扩展工业标准结构(EISA)、智能磁盘设备(IDE)、VESA局部总线(VLB)、外设部件互连(PCI)、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储器卡国际联合会总线(PCMCIA)、和小型计算机系统接口(SCSI)。
系统存储器916包括易失性存储器920和非易失存储器922。比如在启动期间,包括在计算机912内的元件之间传送信息的基本程序的基本输入/输出系统(BIOS)被存储在非易失存储器922中。经过说明,非易失存储器922可以但不限于包括只读存储器(ROM)、可编程只读存储器(PROM)、电可编程存储器(EPROM)、电可擦除只读存储器(EEPROM)或闪速存储器。易失性存储器920包括随机存储器(RAM),其起外部高速缓存存储器的作用。经过但不限于说明,许多诸如静态随机存储器(SRAM)、动态随机存储器(DRAM)、同步动态随机存储器SDRAM)、加倍数据速率同步动态随机存储器(DDR SDRAM)、增强型同步动态随机存储器(ESDRAM)、同步链接动态随机存储器(SLDRAM)和(DRRAM)直接总线式随机存储器RAM(DRRAM)之类的许多类型的RAM都可用。
计算机912还包括可移/不可移、易失/非易失计算机存储媒介。图9举例说明磁盘存储器924。磁盘存储器924包括但不限于磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、压缩驱动器、LS-100驱动器、快擦写存储卡或存储棒之类的装置。另外,磁盘存储器924可以分开地包括存储介质或结合其他存储介质,其中包括但不限于诸如只读光盘存储器驱动器(CD-ROM)、可写光盘存储器驱动器(CD-R Drive)、可重写光盘驱动器(CD-RW Drive)或数字化视频光盘只读存储器(DVD-ROM)之类的光盘驱动器。为了便于磁盘存储装置924到系统总线918的连接,一种比如接口926的可移动的或固定的接口一般被使用。
应该理解,图9描述在适当的运行环境910中描述的用户和基本计算机资源之间起中介作用的软件。这类软件包括操作系统928。可被存储在磁盘存储器924上的操作系统928起控制和分配计算机系统912的资源的作用。系统应用程序930利用靠操作系统928通过存储在系统存储器916或磁盘存储器924上的程序模块932和程序数据934所进行的资源管理。应该理解,本发明可以用不同的操作系统或是操作系统的结合来执行。
用户通过输入设备936把命令或信息输入到计算机912中。输入装置936包括但不限于诸如鼠标、轨迹球、触针、触垫、键盘、麦克风、操纵杆、游戏垫、卫星碟、扫描仪、电视调谐卡、数码相机、数字视频照相机、网络摄像机之类的定点设备。这些及其它输入装置通过系统总线918经由接口端口938连接到处理单元914。接口端口938包括比如串行端口、并行端口、游戏端口、和通用串行总线(USB)。输出装置940使用一些和输入设备936同型的端口。因此,举例来说,USB端口可以用来提供输入到计算机912和从计算机912提供输出信息到输出装置940。输出适配器942被提供来说明一些象监视器,扬声器、和打印机的输出装置940以及其它要求专用适配器的输出装置940。经过说明,输出适配器942包括但不限于在输出装置940和系统总线918之间提供连接方法的显卡和声卡。应该注意,诸如远程计算机944之类的其它装置和/或装置的系统提供输入和输出两种能力。
计算机912可以在使用与一个或多个诸如远程计算机944之类的远程计算机的逻辑连接的网络环境中运行。远程计算机944可能是个人电脑、服务器、路由器、网络电脑、工作站、使用微处理机的仪器、窥视装置或其它公共网络节点等等,并且一般包括被描述的涉及计算机912的许多或全部元件。为简短起见,只用远程计算机944来说明存储器946。远程计算机944逻辑上通过网络接口948被连接到计算机912,然后物理上经由通信连接950被连接。网络接口948拥有诸如局域网(LAN)和广域网(WAN)之类的通信网。局域网技术包括光纤分布数据接口(FDDI)、铜钱分布数据接口(CDDI)、以太网/IEEE 1102.3、令牌环/IEEE1102.5等等。广域网技术包括但不限于点到点链路、比如综合业务数字网(ISDN)和从中变动的线路交换网络、分组交换网、数字用户线路(DSL)。
通信连接950指的是用于连接网络接口948到总线918的硬件/软件。通信连接950为了清晰说明而被显示在计算机912的内部,它还可以位于在计算机912外部。连接到网络接口948所需的硬件/软件包括内部和外部技术,仅作示范,比如包括常规电话等级调制解调器、电缆调制解调器和DSL调制解调器的调制解调器、ISDN适配器和以太网卡。
图10是本发明能够相互作用的示范性计算环境1000示意性框图。系统1000包括一个或多个客户机1010。客户机1010可能是硬件和/或软件(例如线程、进程、计算设备)。系统1000还包括一个或多个服务器1030。服务器1030也可能是硬件和/或软件(例如线程、进程、计算机)。例如,服务器1030可以通过使用本发明来容纳执行变换的线程。在客户机1010和服务器1030之间的一个可能的通信可能是被适配以在两个或更多的计算机进程之间传输的数据分组的形式。系统1000包括通信构架1050,其可被用来便于客户机1010和服务器1030之间的通信。客户机1010可能被连接到一个或多个客户机数据存储器1060,其可用于将本地信息存储到客户机1010。同样地,服务器1030可能被连接到一个或多个服务器数据存储器1040,其可用于将本地信息存储到服务器1030。
以上所述包括本发明的例子。当然,为了说明本发明而描述每种想得到的元件或方法的组合是不可能的,然而本领域普通技术人员能认识到本发明的许多此外的组合和置换是可能的。因此,本发明意欲包括所有属于附加的权利要求的精神和范围内的此类变更、修改和变化。此外,术语″包括″的范围被用于详细的说明书或权利要求中,这种术语以类似于术语″包括”的方式意指被包括在内,如同在使用权利要求中的过渡单词″包括″时所解释的一样。
权利要求
1.一个便于域注册的系统,其中包括一个接口元件,其接收至少一个注册域名的申请;和一个注册元件,其与一组寄存器接口来注册域名,其中,多个寄存器中的第一个寄存器与此多个寄存器中的第二个寄存器支持同样的顶级域。
2.根据权利要求1的域注册系统,还包括一个故障切换元件,其执行一组寄存器当中的故障切换。
3.根据权利要求1的域注册系统,还包括一个节流元件,其限制在预定时期内可能产生的到那些寄存器的大量申请。
4.根据权利要求1的域注册系统,其中,如果被申请的域名不可用,则接口元件返回候选域名。
5.根据权利要求1的域注册系统,其中,接口元件使用配置信息来提供那些寄存器当中的负载分配。
6.根据权利要求1的域注册系统,还包括至少一个发出域名申请到接口元件的客户机。
7.根据权利要求1的域注册系统,其中,那些寄存器提交域申请信息到一个注册处。
8.根据权利要求1的域注册系统,其中,所有那些寄存器都支持同样的顶级域名。
9.根据权利要求1的域注册系统,其中,接口元件包括方法和配置表的集合。
10.根据权利要求9的域注册系统,其中,配置表包括列出外部提供者的候选提供者列表,外部提供者被用来在被申请的域名不可用时提供候选域名。
11.根据权利要求9的域注册系统,其中,配置表包括列出用于注册域的服务器名称的名称服务器列表。
12.根据权利要求9的域注册系统,其中,配置表包括列出客户机偏好的客户机偏好列表。
13.根据权利要求9的域注册系统,其中,配置表包括列出那些寄存器的域提供者列表。
14.根据权利要求9的域注册系统,其中,配置表包括列出那些寄存器将被援引的优先权的域提供者优先权列表。
15.根据权利要求1的域注册系统,其中,接口元件包括在至少一个客户机和域接口之间连接的外部应用编程接口元件。
16.根据权利要求1的域注册系统,其中,接口元件包括一个公共层元件。
17.根据权利要求16的域注册系统,其中,公共层元件从每个优先列表调用那些寄存器,优先列表是系统创建的默认列表。
18.根据权利要求16的域注册系统,其中,公共层元件从每个优先列表调用那些寄存器,优先列表是客户机创建的定制列表。
19.根据权利要求16的域注册系统,其中,公共层元件从每个优先列表调用那些寄存器,优先列表基于那些寄存器各自的运载负荷。
20.根据权利要求16的域注册系统,其中,公共层提供一个故障切换功能来从那些寄存器中选择一个寄存器。
21.根据权利要求16的域注册系统,其中,公共层提供一个节流功能来限制一个客户机可能给域接口制造的大量申请。
22.根据权利要求1的域注册系统,还包括一组用于提供在那些寄存器和接口元件之间的通信接口的驱动器。
23.域注册系统包括当被申请的域名不可用时,与一组寄存器和注册域相互作用的域接口返回候选域名;和一个故障切换元件,其与域接口相互作用来执行那些寄存器当中的故障切换。
24.根据权利要求23的域注册系统,还包括一个节流元件,其限制大量的可能被那些寄存器制造的申请。
25.根据权利要求23的域注册系统,其中,域接口使用人工智能来建议候选域名。
26.根据权利要求23的域注册系统,其中,域接口根据客户机的历史记录来建议候选域名。
27.根据权利要求23的域注册系统,其中,域接口根据一组观察到的事件来建议候选域名。
28.根据权利要求23的域注册系统,其中,至少那些寄存器中的两个支持同样的顶级域。
29.根据权利要求23的域注册系统,其中,域接口包括一个配置元件、一个外部应用编程接口、一个公共层、一个驱动器应用编程接口和一个到客户机的连接。
30.根据权利要求29的域注册系统,其中,配置元件包括一组存储在SQL中的列表。
31.根据权利要求23的域注册系统,其中,可以在每个访问者和每个域扩展二者中的至少一个的基础上来配置寄存器优先选择和故障切换优先选择至少其中之一。
32.通用接口包括方法的集合;以及一组配置表,其中,至少一个配置表存储一组寄存器的信息,其中,至少那些寄存器中的两个支持同样的项级域。
33.根据权利要求32的通用接口,还包括一个与至少一个客户机相连接的外部元件。
34.根据权利要求33的通用接口,还包括一个象Web方法一样把外部元件暴露给至少一个客户机的公共层。
35.根据权利要求32的通用接口,还包括一个在那些寄存器当中执行故障切换的公共层。
36.根据权利要求32的通用接口,还包括一个执行节流来限制被至少一个客户机制造的大量域申请的公共层。
37.根据权利要求32的通用接口,还包括一组用于与那些寄存器通信的驱动器。
38.根据权利要求32的通用接口,其中,配置表包括一个列出在被申请的域名不可用时用于提供候选域名的外部提供者的候选提供者列表。
39.根据权利要求32的通用接口,其中,配置表包括一个列出用于注册域的名称服务器的名称服务器列表。
40.根据权利要求32的通用接口,其中,配置表包括一个列出客户机偏好的客户机偏好列表。
41.根据权利要求32的通用接口,其中,配置表包括一个列出那些寄存器的域提供者列表。
42.根据权利要求32的通用接口,其中,配置表包括一个列出那些寄存器将被援引的优先权的域提供者优先权列表。
43.一个用于注册域名的方法,包括提交一个域申请;联系一组寄存器来注册域申请,其中,如果那些寄存器中的至少一个没有响应,则故障切换被执行;和根据域申请提供一个响应。
44.根据权利要求43的方法,其中,至少那些寄存器中的两个支持一个同样的顶级域。
45.根据权利要求43的方法,其中,如果被申请的域不可用,则响应包括对候选域名的建议。
46.根据权利要求43的方法,还包括输入客户机偏好,其包括那些寄存器的优先位置。
47.根据权利要求43的方法,还包括根据一组观察到的事件来推断客户机偏好。
48.根据权利要求43的方法,其中,应用编程接口被使用为一个申请域的客户机和那些寄存器之间的中间设备层。
49.根据权利要求43的方法,还包括限制大量可能在预定时期内提交的域申请。
50.在两个或更多便于域注册的计算机元件之间传输的数据分组,该数据分组包括用于一组寄存器的故障切换元件。
51.根据权利要求50的数据分组,其中,至少那些寄存器中的两个支持同样的顶级域。
52.一个存储远程系统的计算机可执行元件的计算机可读媒介包括一个在至少一个客户机和一组寄存器之间连接的接口元件;一个在那些寄存器当中执行故障切换的故障切换元件。
53.一个存储远程系统的计算机可执行元件的计算机可读媒介包括一个在至少一个客户机和一组寄存器之间相连接的接口元件,其中,至少那些寄存器中的两个支持一个同样的顶级域。
54.一个便于域注册的系统包括用于在至少一个客户机和一组寄存器之间相连接的装置;以及用于对那些寄存器执行故障切换的装置。
全文摘要
本发明提供用于域名注册的系统和方法。域应用编程接口(API)被当作在一个或多个客户机和多个寄存器或提供者之间的一个接口来使用。如果一个被申请的域名不可用,则域API可以返回候选域名。域API还可以在那些寄存器当中执行故障切换。使用一组寄存器来便于负载分配并且改善系绕性能。
文档编号G06F17/30GK1538710SQ20041003137
公开日2004年10月20日 申请日期2004年2月26日 优先权日2003年2月26日
发明者M·A·科恩, M A 科恩, Y·莫哈麦德, 蟮 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1