地址系统的制作方法

文档序号:7794323阅读:161来源:国知局
地址系统的制作方法
【专利摘要】用于通过网络将数据从设备路由到端点的设备、地址系统和计算机程序产品。设备执行用于路由数据的客户端的实例。用于请求端点的网络地址的地址查询依赖于客户端实例的类型而形成,并且所述地址查询被发送给地址系统。地址系统基于地址查询而确定端点地址,这样使得端点地址依赖于客户端实例的类型,并且地址系统将端点地址发送给设备。然后通过网络把数据从设备路由到端点地址。
【专利说明】
地址系统

【技术领域】
[0001]本发明涉及地址系统。特别地,本发明涉及使用地址系统将数据路由到网络的端点。

【背景技术】
[0002]通信系统允许设备的用户跨网络进行通信。例如,通信系统可以是基于分组的通信系统,其允许诸如个人计算机、移动电话、平板电脑和电视的设备的用户跨互联网进行通信。为了使能对通信系统的访问,通信客户端软件可以由软件提供者提供,并且被安装在用户的设备中。客户端软件允许用户向通信系统注册,并且通过通信系统进行通信。用户的设备可以与网络的其它端点(诸如通信系统的其它用户设备或者服务器)进行通信。可以在用户设备上安装不同类型的客户端实例。例如,不同类型的客户端实例可以被安装来用于在不同平台(例如,不同操作系统)上执行,平台可以在设备上实现。软件提供者可以对客户端软件进行更新,例如,以便在客户端软件的新版本中引入新的和/或改进的功能性。因此,不同类型的客户端实例可以具有不同的版本和/或构建号(build number)。客户端的构建号对于客户端软件的代码的每个改变而递增。当客户端的功能性改变时,客户端的版本号递增。相比于对于版本号的改变,对于构建号的改变一般表明对于客户端软件的较小改变。以这种方式,构建号可以被认为是版本号的细分。优选地,不同类型的客户端实例可以通过网络彼此通信。
[0003]为了让在设备中实现的客户端实例通过网络与端点(例如,网络的另一个设备或者服务器)进行通信,客户端实例首先确定端点的网络地址。作为示例,在网络是互联网的场合,网络地址可以是端点的IP地址。当客户端实例已经确定端点的网络地址时,其可以通过网络将数据路由给该端点。为了确定端点的网络地址,客户端实例可以将地址查询发送给网络的地址系统,并且作为响应,地址系统可以返回对于地址查询的应答,应答包括端点的网络地址。例如,地址系统可以是域名系统,并且地址查询可以是域名系统(DNS)查询。域名系统是用于连接到互联网或者私有网络的资源的分级分布式命名系统。DNS查询包括客户端实例打算连接到的端点的域名(例如,WWW, skype.com)。域名系统将DNS查询解析成对应于DNS查询中的域名的IP地址,并且将IP地址返回给设备处的客户端实例。对于用户而言,域名比IP地址更容易理解和记忆。


【发明内容】

[0004]本概要被提供来以简化的形式介绍概念的选择,这些概念还将在下面的详细说明中进行描述。本概要既不打算标识所要求保护的主题的关键特征或必要特征,也不打算被用来限制所要求保护的主题的范围。
[0005]不同类型的客户端实例可以被路由到不同的端点。这可以通过由客户端实例依赖于客户端实例的类型形成地址查询(例如,DNS查询)而达到。例如,平台ID、客户端版本和构建号可以被包括在地址查询中。在一个示例中,平台ID、客户端版本和构建号可以在DNS查询中按相反的次序放置,并且用点分隔。地址系统(例如,域名系统)可以存储用于将地址查询映射到网络地址的关系,其中所存储的关系在依赖于客户端实例的不同类型而形成的地址查询之间进行区分。例如,包括第一平台ID的第一 DNS查询可以被映射到与包括第二平台ID的第二 DNS查询被映射到的IP地址不同的IP地址。这允许地址系统确定依赖于在设备中执行的客户端实例的类型的端点地址。
[0006]因此,可以提供一种方法,用来通过所连接的客户端类型(例如,平台、版本或者构建号)而将它们路由到不同端点。端点可以是网络中的服务器端点或者用户设备端点。例如,端点地址可以涉及网络中的真实服务器。然而,端点地址可以不涉及网络中的真实实体(例如,真实服务器)。使用不涉及网络中真实实体的地址使得通信系统的控制者(例如,客户端软件提供者)能够阻止特定类型的客户端实例(例如,表现不好的客户端)与网络中特定的、真实的端点进行通信。此外,来自特定类型的客户端实例的数据可以被路由到不同的服务器端点,例如,来自试用版客户端的数据可以被路由到预演环境(stagingenvironment)用于测试。

【专利附图】

【附图说明】
[0007]为了更好地理解本发明,并且为了示出本发明如何得以实行,作为示例,现在将对以下附图进行参考,其中:
图1示出包括两个用户设备的通信系统;
图2示出用户设备的示意性视图;
图3示出域名系统服务器的示意性视图;并且图4是用于将数据路由到端点地址的过程的流程图。

【具体实施方式】
[0008]现在将仅作为示例对本发明的优选实施例进行描述。
[0009]图1不出了通信系统100,其包括与第一用户设备102相关联的第一用户104和与第二用户设备112相关联的第二用户114。在其它实施例中,通信系统100可以包括任意数量的用户和相关联的用户设备。用户设备102和112可以通过通信系统100中的网络106进行通信,从而允许用户104和114通过网络106彼此通信。通信系统100包括网络106中的服务器。图1示出网络106包括域名系统服务器108和两个其它的服务器IlOjP 110 2,但是在网络106中可存在比图1中所示出的那些更多或者更少的服务器。在图1中示出的通信系统100是基于分组的通信系统,但是也可以使用其它类型的通信系统。网络106可以例如是互联网。用户设备102和112的每一个可以是例如移动电话、平板电脑、膝上型计算机、个人计算机(“PC”)(包括例如Windows?、Mac OS?、和Linux? PC)、游戏设备、电视、个人数字助理(“PDA”)或者能够连接到网络106的其它嵌入式设备。用户设备102被安排用于接收来自用户设备102的用户104的信息,以及将信息输出给用户设备102的用户104。用户设备102包括输出装置,诸如显示器和扬声器。用户设备102也包括输入装置,诸如小键盘、触摸屏、用于接收音频信号的话筒和/或用于捕获视频信号的图像的相机。用户设备102被连接到网络106。
[0010]用户设备102执行通信客户端的实例,其由与通信网络100相关联的软件提供者所提供。通信客户端是在用户设备102中的本地处理器上执行的软件程序。客户端执行在用户设备102中所需要的处理,以便让用户设备102通过通信系统100传输和接收数据。
[0011]用户设备112对应于用户设备102,并且在本地处理器中执行对应于在用户设备102中所执行的通信客户端的通信客户端。用户设备112中的客户端以与在用户设备102中的客户端执行对于允许用户104通过网络106通信所需要的处理相同的方式,来执行对于允许用户114通过网络106通信所需要的处理。用户设备102和112是通信系统100中的端点。为了简明,图1仅示出两个用户(104和114)和两个用户设备(102和112),但是在通信系统100中可以包括更多的用户和用户设备,并且可以使用在相应的用户设备中执行的相应的通信客户端而通过通信系统100进行通信。服务器IlOjP 110 2也是通信系统100中的端点。
[0012]域名系统在网络106中实现,以便将域名映射到IP地址。域名系统是用于被连接到网络106的资源的分级分布式命名系统。域名系统包括若干服务器,诸如DNS服务器108,其实行对于将域名映射到IP地址所需要的处理。
[0013]图2图示用户设备102的详细视图,在用户设备102执行用于通过通信网络100进行通信的通信客户端实例。用户设备102包括中央处理单元(“CPU”)或者“处理模块”202,被连接到中央处理单元(“CPU”)或者“处理模块”202的有:输出设备,诸如显示器204,其可以被实现为触摸屏;输入设备,诸如小键盘206 ;用于存储数据的存储器208 ;和网络接口210,诸如用于与网络106进行通信的调制解调器。用户设备102可以包括除了在图2中所示出的那些之外的其它单元。显示器204、小键盘206、存储器208和网络接口 210可以集成在用户设备102中,如在图2中所示出的。在可替换的用户设备中,显示器204、小键盘206、存储器208和网络接口 210中的一个或者多个可以不集成在用户设备102中,并且可以经由相应的接口连接到CPU 202。这样的接口的一个示例是USB接口。如果用户设备102的经由网络接口 210到网络106的连接是无线连接的话,那么网络接口 210可以包括用于将信号无线地传输到网络106并且从网络106中无线地接收信号的天线。
[0014]图2还图示出在CPU 202中执行的操作系统(“OS”)214。在OS 214之上运行的是用于通信系统100的客户端实例的客户端软件的软件堆栈216。软件堆栈示出客户端协议层218、客户端引擎层220和客户端用户界面层(“Π”)222。每个层负责特定的功能。因为每个层通常与两个其它层进行通信,所以它们被视作是安排在如图2所示出的堆栈中。操作系统214管理计算机的硬件资源,并且操纵经由网络接口 210被传输到网络106和从网络106传输来的数据。客户端软件的客户端协议层218与操作系统214进行通信,并且管理通过通信系统的连接。需要更高等级处理的过程被传递给客户端引擎层220。客户端引擎220也与客户端用户界面层222进行通信。客户端引擎220可以被安排成控制客户端用户界面层222来经由客户端的用户界面向用户104呈现信息以及经由用户界面接收来自用户104的信息。
[0015]图3图示DNS服务器108的详细视图,DNS服务器108接收并且响应于来自通信系统100中的用户设备的DNS查询。为了简明,在本文描述的示例中,域名系统仅包括一个服务器,这就是DNS服务器108。然而,在可替换的实施例中,域名系统可以包括网络106中的多个DNS服务器,其可以分担操控DNS查询的负担。DNS服务器108包括中央处理单元(“CPU”)或者“处理模块”302,被连接到所述中央处理单元(“CPU”)或者“处理模块”302的有存储数据库304的存储器和诸如用于与网络106进行通信的调制解调器那样的网络接口306。DNS服务器108可以包括除了在图3中所示出的那些之外的其它单元。数据库304存储将DNS查询映射到IP地址的关系。DNS服务器108被配置成从设备102接收DNS查询,使用数据库304中存储的关系来确定对应于DNS查询中的域名的IP地址,并且将包括所确定的IP地址的应答发送给设备102。
[0016]参考图4中所示出的流程图,现在描述设备102用以将数据路由到网络106中的端点地址的方法。在下文所描述的示例中,数据被路由到的端点是服务器I11,其是通信系统100的后端服务器。然而,在其它示例中,端点可以是网络106中的另一个服务器,或者可以是不同的网络节点,诸如网络106中的用户设备。在设备102中执行的客户端实例使用域名系统来确定服务器11(^的IP地址。
[0017]在步骤S402,在设备102中执行的客户端形成用于从域名系统中请求服务器IlO1的IP地址的DNS查询。本文所描述的方法提供用于将不同类型的客户端实例(例如,带有不同的版本号)路由到不同服务器或者甚至路由到网络106中不存在的服务器的地址的功能性。为了达到这个目的,在步骤S402,依赖于在设备102处执行的客户端实例的类型而形成DNS查询。换言之,基于在设备102处执行的客户端实例的类型而在步骤S402中形成DNS查询。
[0018]客户端基于客户端实例形成版本串,并且使用版本串和地址后缀来形成DNS查询。以这种方式,客户端将版本串用作为用来计算将要被包括在DNS查询中的域名的一个分量。版本串包括设备102中客户端在其上执行的平台的平台ID,以及在设备102中执行的客户端实例的版本号和构建号。平台可以包括硬件架构和软件框架(包括应用框架),其允许客户端软件执行。平台可以定义计算机的架构、操作系统、编程语言和/或有关的用户界面(例如,运行时间系统库或者图形用户界面)。例如,当设备102是诸如移动电话(例如具有相对低的处理和显示能力)那样的移动设备时,可以使用一种平台,而当设备102是诸如PC (例如具有相对高的处理和显示能力)的固定设备时,可以使用另一种平台,并且当设备102是电视(例如具有相对低的处理能力但是相对高的显示能力)时,可以使用再一种平台。
[0019]在本文所描述的实施例中,版本串具有以下格式:
[platform_id]/[vers1n_number].[build_number],
其中platform_id是数值(诸如10021),其指示设备102中客户端实例在其上执行的平台,vers1r^number具有由点分隔的多个数字(诸如1.2.0),其指示客户端实例的版本,而build_number具有数值(诸如402),其指示客户端实例的具体构建。因此,在一个示例中,版本串将是1021/1.2.0.402。在其它实施例中,客户端实例的类型可以以不同的方式来指示,例如,使用具有不同格式的版本串。
[0020]为了计算用于DNS查询的DNS名称,在设备102中执行的客户端将版本串中以点(“.”)或者斜线(“/”)分隔的数字的顺序进行反转,并且形成以点分隔的数字的阵列。例如,如果客户端版本串是10021/1.2.0.402,则该步骤产生数字的阵列:402.0.2.1.10021。客户端然后将所配置的域后缀添加到数字的阵列中,从而形成DNS查询。例如,如果所配置的域后缀是“rst.skype.net”,那么最终得到的DNS查询可以是:402.0.2.1.10021.rst.skype.net 0
[0021]在步骤S404,在步骤S402所形成的DNS查询被发送给网络106中的域名系统。在这个示例中,DNS查询被发送给DNS服务器108。DNS查询通过网络106按照已知的协议被发送,由此当网络106是互联网时,DNS查询可以作为按照互联网协议而分组化的一个或者多个数据分组来发送。在步骤S404,使用设备102的网络接口 210和DNS服务器108的网络接口 306通过网络106发送和接收DNS查询。
[0022]在步骤S406,DNS服务器108使用CPU 302和数据库304来处理DNS查询,从而将所接收的DNS查询映射到端点的IP地址,即,服务器11(^的IP地址。如上文所描述的,依赖于在设备102上执行的客户端实例的类型而形成DNS查询。DNS服务器108使用存储在数据库304中的、在域名和IP地址之间的关系来确定对应于特定域名的IP地址。如果所存储的关系不在客户端实例的不同类型之间进行区分,那么带有相同域后缀的DNS查询将被映射到相同的IP地址,而不考虑形成DNS查询的客户端的类型。例如,在这种情况下,DNS数据库306中的“rst.skype.net”区域将存储以下记录:
rst.skype.net.1N A x.x.x.x。
[0023]*字符表示通配符,这样使得包括以rst.skype.net结束的域名的每个DNS查询都将被映射到IP地址X.X.X.X。
[0024]然而,按照本文描述的方法,所存储的关系在由不同类型的客户端实例所形成的DNS查询之间进行区分。因此,使用第一类型客户端实例形成的DNS查询可以被映射到与使用第二类型客户端实例形成的DNS查询不同的IP地址,即便在这两个DNS查询中的域后缀是相同的。
[0025]在一个示例中,在具有平台ID 10021的特定平台中执行的客户端将被路由到与在具有其它平台ID的平台中执行的客户端不同的服务器端点。在这种情况下,数据库304将附加的记录“*.10021.rst.skype.net”存储到“rst.skype.net”区域。所以,在数据库304中的“rst.skype.net”区域将具有以下记录:
rst.skype.net.1N A x.x.x.x 和
10021.rst.skype.net.1N A y.y.y.y。
[0026]在数据库304所存储的记录中,点被认为是域分隔符,而通配符字符被认为是匹配任何域基础(domain basis)的。对于每个DNS查询而言,确定数据库304中的记录的最佳匹配,以便将DNS查询映射到IP地址。因此,对于上文所示出的、存储在数据库304中的记录而言,以.10021.rst.skype.net结束的每个DNS查询将被映射到IP地址y.y.y.y,因为这是对于DNS查询而言的最佳匹配(即,与记录.10021.rst.skype.net的匹配同与记录*.rst.skype.net的匹配相比,是更好的匹配)。然而,以“.rst.skype.net”结束的每个其它DNS查询将被映射到IP地址X.X.X.Xo通配符字符是有用的,因为将每单个可能的版本串都配置到域名系统的(一个或多个)服务器的(一个或多个)数据库中可能是行不通的。
[0027]如果特定类型的客户端实例要被路由到网络中的可替换的服务器地址,则可以将记录添加到存储在数据库304中的rst.skype.net”区域,例如以下面的格式:
402.0.2.1.10021.rst.skype.net.1N A z.z.z.z。
[0028]由于在这个记录中不存在通配符字符,所以仅有准确询问402.0.2.1.10021.rst.skype.net的DNS查询将匹配该记录,并且将被映射到IP地址ζ.ζ.ζ.ζ。
[0029]在步骤S408,对于DNS查询的应答通过网络106从DNS服务器108发送到设备102。该应答包括在步骤S406确定的IP地址。
[0030]在步骤S410,在设备102上执行的客户端实例将数据路由到在步骤S408从DNS服务器108接收的应答中所包括的IP地址。如上文所描述的,IP地址可以是网络106中的真实地址,诸如服务器11(^的IP地址,这样使得客户端实例将数据路由到服务器110 10这允许设备102中的客户端实例与服务器IlO1进行通信。如果不同类型的客户端实例在设备102中执行,那么在步骤S408从DNS服务器108接收的应答中所包括的IP地址可能是不同的,并且可能例如是服务器1102的IP地址,这样使得客户端实例将数据路由到服务器I12而不是服务器110 —
[0031]如上文所描述的,在步骤S408从DNS服务器108所接收的应答中的IP地址可以是网络106中不存在的地址(即,不涉及网络106中的实体的地址)。在这种情况下,当客户端实例将数据(例如,连接建立请求)路由到不存在的IP地址时,可以将一消息从网络106(例如,来自网络106的服务器)返回给设备102上的客户端实例,从而通知客户端:该IP地址不涉及网络106中存在的实体。
[0032]可以意识到的是,由于基于DNS查询(其自身是基于在设备102上执行的客户端实例的类型而形成的)来确定IP地址,并且由于存储在数据库304中的关系在基于不同类型的客户端实例所形成的DNS查询之间进行区分,所以在步骤S408的应答中返回给设备102的IP地址依赖于在设备102上执行的客户端实例的类型。因此,本文所描述的方法提供了用来将不同类型的客户端实例(例如,在不同平台上执行或者具有不同版本或者构建号)路由到网络106中的不同服务器端点的简单方式。这是在不需要复杂目录服务或者维护额外开销的情况下而达到的。
[0033]用来将不同类型的客户端实例路由到不同端点地址的能力在许多情景中可以是有用的。例如,通信系统100可以包括不能实现特定功能性的较旧版本客户端,而被包括在通信系统100中的较新版本客户端可能能够实现特定功能性。在这种情况下,较旧版本客户端可以被路由到与较新客户端版本不同的服务器端点,以使得较旧版本不需要实现新的功能性。这是在不需要阻止较新版本实现新功能性的情况下而达到的。作为另一个示例,在一种类型的平台(例如,由移动电话实现的平台)中运行的客户端实例可以被路由到与运行另一种类型的平台的客户端实例(例如,由PC实现的平台)不同的服务器端点。可以为一些类型的客户端实例(例如,表现不好的客户端实例)提供网络106中不存在的实体的IP地址,以使得它们不将数据路由到网络106中的真实服务器。作为另一个示例,可以将试用版版本的客户端路由到实现测试环境(或者“预演环境”)的服务器,以使得可以在试用版版本的客户端被实施于真实通信系统环境中之前对其进行测试。
[0034]可以将不同的服务提供给不同类型的客户端实例。由于在网络106中可以存在许多不同类型的客户端实例,所以可能有用的是,将不同的服务提供给不同类型的客户端实例。这可以确保为通信系统100中的每种类型的客户端实例提供恰当的服务,例如,适合于与特定类型的客户端实例一同使用的服务。这可以例如促进通过通信系统100在不同类型的客户端实例之间的通信。这也可以允许通信系统的操作者更好地控制不同类型的客户端实例可以如何在通信系统100中交互。
[0035]本文所描述的在设备102上执行的操作可以由计算机程序产品来实现,计算机程序产品被包含在非瞬时性计算机可读介质中,并且被配置成使得当其由设备102的处理模块(例如,CPU 202)执行时实现客户端实例。本文所描述的在DNS服务器108上执行的操作可以由计算机程序产品来实现,计算机程序产品被包含在非瞬时性计算机可读介质中,并且被配置成由DNS服务器108的处理模块(例如,CPU 302)执行。
[0036]上文描述了涉及用于确定IP地址的DNS查询的方法。其它实施例可以涉及其它类型的地址查询和网络地址,例如如果网络106不是互联网的话。
[0037]虽然本主题是以特定于结构特征和/或方法动作的语言被描述的,但应当理解在所附权利要求中限定的主题不是必然地局限于上述的特定特征或动作。而是,上述的特定特征和动作是作为实现权利要求的示例性形式而公开的。
【权利要求】
1.一种设备,被配置为连接到网络,所述设备包含处理模块,其被配置为执行客户端的实例,从而通过以下方式将数据路由到网络的端点: 依赖于由处理模块所执行的客户端实例的类型而形成地址查询,所述地址查询用于请求端点的网络地址; 将该地址查询发送给地址系统; 接收来自地址系统的、响应于该地址查询的应答,其中该应答包括由地址系统基于该地址查询而确定的网络中的端点地址,这样使得端点地址依赖于由处理模块所执行的客户端实例的类型;并且 通过网络将数据路由到该端点地址。
2.如权利要求1的设备,其中所述地址查询是域名查询,而地址系统是域名系统。
3.如任一前述权利要求的设备,其中所述客户端实例的类型由下列至少一个给出: 在设备处客户端实例在其上执行的平台的平台标识符; 客户端实例的版本号;以及 客户端实例的构建号。
4.如任一前述权利要求的设备,其中所述形成地址查询包括基于客户端实例的类型形成版本串,并且使用所述版本串和地址后缀来形成所述地址查询。
5.如当从属于权利要求3时的权利要求4的设备,其中所述版本串包括平台标识符、版本号和构建号,其中版本串的平台标识符、版本号和构建号可选地是按相反的次序,并且在所述地址查询中以点分隔。
6.—种计算机程序产品,其被包含在非瞬时性计算机可读介质中,并且被配置成使得当其由设备的处理模块执行时实现客户端的实例,以通过如下方式将数据路由到网络的端占.依赖于客户端实例的类型而形成地址查询,所述地址查询用于请求端点的网络地址; 将该地址查询发送给地址系统; 接收来自地址系统的、响应于该地址查询的应答,其中该应答包括由地址系统基于该地址查询而确定的网络中的端点地址,这样使得端点地址依赖于客户端实例的类型;并且通过网络将数据路由到该端点地址。
7.—种地址系统,用于基于地址查询而确定网络中的端点地址,所述地址系统被配置成: 接收来自网络的设备的地址查询,所述地址查询依赖于在设备处执行的客户端实例的类型而形成,所述地址查询用于请求网络的端点的网络地址; 存储将地址查询映射到网络地址的关系,其中所存储的关系在依赖于客户端实例的不同类型所形成的地址查询之间进行区分; 使用所存储的关系基于该地址查询来确定网络中的端点地址,以使得所确定的端点地址依赖于在设备处执行的客户端实例的类型;并且 将响应于地址查询的应答发送给所述设备,所述应答包括所确定的端点地址。
8.如权利要求7的地址系统,其中所述地址查询使用版本串和地址后缀形成,所述版本串基于在设备处执行的客户端实例的类型而形成,其中所存储的关系将至少两个使用不同版本串形成的地址查询映射到不同的网络地址。
9.如权利要求8的地址系统,其中所存储的关系将至少两个使用不同版本串所形成的另外的地址查询映射到相同的网络地址。
10.如权利要求9的地址系统,其中所存储的关系的至少一个包括通配符,这样使得部分相同但不是完全一致的两个地址查询被映射到相同的网络地址。
【文档编号】H04L29/12GK104509075SQ201380041888
【公开日】2015年4月8日 申请日期:2013年5月29日 优先权日:2012年6月6日
【发明者】拉斯 V., 莫罗佐夫 I., 约翰森 R., 考拉基斯 J., 科斯梅 M. 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1