首页 / 专利库 / 电脑编程 / 计算机虚拟化 / 带有适应性调度程序的虚拟网络

带有适应性调度程序的虚拟网络

阅读:337发布:2022-02-10

专利汇可以提供带有适应性调度程序的虚拟网络专利检索,专利查询,专利分析的服务。并且揭示了用于提供虚拟网络的各种方法和系统。通过在网络中的每台机器上的应用程序与网络传输服务之间插入一个适应性调度程序,可以在网络服务应用程序与传统的网络协议之间创建至少一层抽象。虚拟网络中的消息协议是可扩展的,允许应用程序按需要在任何消息内创建新的标题。适应性调度程序包含一些处理程序,这些处理程序根据每个消息内的任意内容(包括标题和/或数据内容的任何组合)来路由发送和调度虚拟网络内的消息。虚拟网络上的每个设备都具有消息被路由发送到的一个虚拟地址,这允许设备在网络内移动,而无须重新配置路由发送表格。当事件符合预定的标准(包括不发生某个条件)时,可以自动创建处理程序,这使虚拟网络能够进行自我复原并适应重新配置。,下面是带有适应性调度程序的虚拟网络专利的具体信息内容。

1.一种装置,其特征在于,包括:
路由发送和调度消息的一个消息调度程序,其中,根据消息内容的一个 任意部分来路由发送每个消息;以及,
一个界面,应用程序通过该界面与消息调度程序进行通信,以定义消息 内容的该任意部分。
2.如权利要求1所述的装置,其特征在于,消息调度程序包括一个传 输独立的消息调度程序,该消息调度程序使用传输独立协议进行通信。
3.如权利要求1所述的装置,其特征在于,消息调度程序根据所述第 一个网络消息的第一个属性来路由发送第一个网络消息,并根据所述第二个 网络消息的、不同于所述第一个属性的第二个属性来路由发送第二个网络消 息。
4.如权利要求1所述的装置,其特征在于,消息调度程序将第一个网 络消息路由发送给第一个服务器,第一个网络消息从第一个路由发送者被寻 址到接收者;以及
消息调度程序将第二个网络消息路由发送给第二个服务器,第二个网络 消息从第二个路由发送者被寻址到接收者。
5.如权利要求1所述的装置,其特征在于,消息调度程序使用传输层 协议上的虚拟网络协议来路由发送消息。
6.如权利要求1所述的装置,其特征在于,还包括一个传输适配器, 用于在传输层协议与虚拟网络协议之间转换消息。
7.如权利要求1所述的装置,其特征在于,消息内容的任意部分包括 一个应用程序层次标题。
8.一种数据处理装置,其特征在于包括:
一个消息调度程序模
一个传输适配器,用于将消息调度程序与传输协议接合;
一个界面,应用程序通过该界面与消息调度程序进行通信;
被存储的规则,这些规则指示消息调度程序根据所述第一个网络消息的 第一个属性来路由发送第一个网络消息,并根据所述第二个网络消息的、不 同于所述第一个属性的第二个属性来路由发送第二个网络消息;其中,从每 个网络消息中所包含的一套标题和数据中选择第一个和第二个属性。
9.如权利要求8所述的数据处理装置,其特征在于,第一个属性包括 一个应用程序创建标题。
10.如权利要求8所述的数据处理装置,其特征在于,每个消息规则被 存储在消息处理程序中。
11.如权利要求10所述的数据处理装置,其特征在于,包括第一个消 息处理程序;一旦出现预定的条件,该消息处理程序就改变第二个消息处理 程序。
12.如权利要求10所述的数据处理装置,其特征在于,包括第一个消 息处理程序;一旦出现预定的条件,该消息处理程序就改变第一个消息。
13.如权利要求11所述的数据处理装置,其特征在于,预定的条件包 括不发生事件。
14.如权利要求13所述的数据处理装置,其特征在于,消息调度程序 模块包括计算机可执行指令;当被执行时,这些计算机可执行指令使数据处 理装置执行以下各个步骤:
(i)按第一预定时间间隔来轮询第二个装置;以及
(ii)从第二个装置接收轮询响应;
其中,预定的条件包括在预定数量的时间内不发生步骤(ii)。
15.如权利要求14所述的数据处理装置,其特征在于,当符合预定的 条件时,消息调度程序改变第二个消息处理程序,以便使消息改道到第三个 装置,消息原来被寻址到第二个装置。
16.如权利要求15所述的数据处理装置,其特征在于,计算机可执行 指令进一步使数据处理装置执行将路由信息路由发送给第二个消息调度程序 的步骤,指出对应于第二个和第三个装置的路由发送信息的变化。
17.一种用于路由发送网络消息的方法,其特征在于,包括以下各个步 骤:
(i)根据第一个网络消息的第一个属性来路由发送第一个网络消息;
(ii)根据所述第二个网络消息的、不同于所述第一个属性的第二个属 性来路由发送第二个网络消息;
其中,第一个和第二个属性可以是选自每个网络消息的一套标题和数据 的任何字段。
18.如权利要求17所述的方法,其特征在于,还包括以下各个步骤:
(iii)接收包括一个消息字段和一个字段条件的指令;
(iv)根据所接收的指令来修改消息处理程序。
19.如权利要求18所述的方法,其特征在于,在步骤(iii)中,从网 络应用程序接收指令。
20.如权利要求18所述的方法,其特征在于,在步骤(iii)中,指令 建立在用户输入的基础上。
21.如权利要求17所述的方法,其特征在于,在步骤(i)和(ii)中, 每个消息被输出到传输适配器,传输适配器将消息从虚拟网络协议转换到传 输协议。
22.如权利要求17所述的方法,其特征在于,在步骤(i)中,第一个 属性包括一个应用程序创建标题。
23.如权利要求17所述的方法,其特征在于:还包括将路由指令存储在 消息处理程序中的步骤;并且
步骤(i)和(ii)根据被存储的消息处理程序来加以执行。
24.如权利要求23所述的方法,其特征在于:还包括当发生预定条件时 改变第一个消息处理程序的步骤。
25.如权利要求23所述的方法,其特征在于:还包括当消息符合被存储 在消息处理程序中的预定条件时改变网络消息的步骤。
26.如权利要求24所述的方法,其特征在于,预定条件包括不发生事件。
27.如权利要求17所述的方法,其特征在于,还包括以下各个步骤:
(iii)按预定时间间隔轮询第一个数据处理设备;
(iv)从第一个数据处理设备接收轮询响应;以及
(v)当在预定数量的时间内没有发生步骤(iv)时,改变消息处理程 序,将原来被寻址到第一个数据处理设备的消息指引到第二个数据处理设备。
28.如权利要求27所述的方法,其特征在于:还包括将路由信息路由发 送给消息调度程序的步骤,指出对应于第一个和第二个数据处理设备的路由 发送信息的变化。
29.一种包括计算机可执行指令的网络路由器,其特征在于:当被路由 器执行时,这些计算机可执行指令执行以下各个步骤:
(i)存储从网络应用程序接收的路由发送信息,其中路由发送信息包 括一个消息字段、一个字段条件和一个路由发送指令;
(ii)接收网络消息;
(iii)通过将网络消息与被存储的路由发送信息进行比较,来处理网 络消息;
(iv)当所接收的消息的消息字段符合字段条件时,执行路由发送指 令。
30.如权利要求29所述的网络路由器,其特征在于,在步骤(iv)中, 路由发送指令包括改变消息。
31.如权利要求29所述的网络路由器,其特征在于,在步骤(iv)中, 路由发送指令包括根据应用程序层次标题来路由发送消息。
32.一种计算机网络,其特征在于包括:
多台计算机,每台计算机包括:
至少一个传输适配器,它在传输层协议与网络协议之间转换消息;以及
一个消息调度程序,它根据消息内容的一个任意部分来路由发送和调度 消息,并且每台计算机中的消息调度程序使用至少一个传输适配器路由发送 传输层协议上的虚拟网络协议中的消息。
33.如权利要求32所述的计算机网络,其特征在于,通过增加在新的传 输层协议与网络协议之间转换消息的一个新的传输适配器,可以配置第一台 计算机中的第一个消息调度程序用于新的传输协议,而不会要求重新配置网 络应用程序以用于新的传输协议。
34.一种虚拟网络,其特征在于:包括被插入在OSI协议堆栈的层7与 层6之间的至少一个虚拟化部件。
35.如权利要求34所述的虚拟网络,其特征在于,至少一个虚拟化部件 包括一个虚拟网络消息调度程序。
36.如权利要求34所述的虚拟网络,其特征在于,至少一个虚拟化部件 包括一个同步模块。
37.如权利要求34所述的虚拟网络,其特征在于,至少一个虚拟化部件 包括一个事件综合模块。
38.如权利要求34所述的虚拟网络,其特征在于,至少一个虚拟化部件 包括一个名称模块。
39.如权利要求34所述的虚拟网络,其特征在于,至少一个虚拟化部件 包括一个组群模块。
40.如权利要求34所述的虚拟网络,其特征在于,至少一个虚拟化部件 包括一个寻址模块。
41.如权利要求34所述的虚拟网络,其特征在于,至少一个虚拟化部件 包括一个安全模块。
42.如权利要求34所述的虚拟网络,其特征在于,至少一个虚拟化部件 包括一个管理模块。

说明书全文

发明领域

本发明一般涉及计算机网络。尤其是,本发明涉及根据消息内容来适应 地路由发送消息的虚拟网络。

发明背景

计算机结构内存在各种层次的抽象——从1和0的物理表达式到高层次 的应用程序。最初开发计算机时,通常被称作“机器语言”的低层次编程语 言一般用于控制计算机的操作。但是,为了给具有不同机器语言的两个不同 的计算机平台创建相同的程序,程序设计员必须编写程序两次——用每个平 台的机器语言编写一次。
计算机程序设计员了解到,可以通过创建较高层次的编程语言(例如,C 和Pascal)来使机器语言抽象化,然后为将在其上使用该程序的每个平台提 供编辑器。当用这些较高层次的编程语言中的一种语言编写程序时,可以对 程序进行编辑,使其在每台特殊的机器上运行,而无须为每台机器重写源程 序。这方面的抽象继续进行,从而使虚拟机器有了更进一步的发展。
虚拟机器的概念在计算机科学的技术领域中众所周知。虚拟机器是一种 中间表示,它并不局限于特定计算机硬件结构的特殊细节。通常,虚拟机器 将保证特定的语义学,不管使用什么硬件来执行它,该语义学都保持相同。 所以,可以在不同的硬件系统上执行已为这种机器编写的程序,而无须修改。 这样,虚拟机器的一个优点是:不管任何一个计算机程序的起源或操作要求 如何,操作语义学从一个计算机程序到下一个计算机程序都保持不变。
计算机网络取决于在其上建立网络的基础物理硬件与网络协议。这些协 议又取决于它们在其上被执行的基础网络结构。结果,必须为将在其上使用 网络程序的每个网络重写这些网络程序。此外,为使两台机器在网络上通信, 每台机器必须理解如何在特殊的网络上进行通信,即,每台机器必须具有用 于通信的合适的网络驱动器
已在计算机网络中被执行的一个层次的抽象是使用TCP/IP协议堆栈,它 根据OSI 7层网络模型来加以执行。TCP/IP使网络协议的一些概念抽象化, 允许都理解TCP/IP协议的两台机器相互进行有效的通信。但是,即使使用 TCP/IP,在某个层次上,每台机器也必须能够理解网络路由发送,以及拓扑 学、联编和DNS分解。也就是说,网络上的每台计算机仍然必须安装实质的 网络支持公用程序,以便在网络上进行有效的通信,因为OSI模型只是使各 台机器之间的物理电线虚拟化,而不是使各台机器通过其进行通信的网络虚 拟化。
例如,TCP/IP要求应用程序理解端口和IP地址的概念。端口和IP地址 又要求应用程序理解DNS名称分解、网络拓扑学、传输带宽和终端对终端路 由发送。这样,虽然简化了用于按可靠的方式来交换规则序列的字节的模型, 但应用程序仍然必须直接处理许多网络层次的概念和细节。OSI模型不按网络 应用程序的需要来对较高层次的构造进行寻址(例如,命名、路由发送和服 务质量)。
传统网络的另一个缺点是:在发生消息错误或网络故障之后,无法适应 和修复。当增加、移动或移走机器时,目前的网络不能容易地进行自动适应。 也就是说,用户通常必须编辑路由发送表格,以便将变化通知给网络。
此外,除了通过保养执行相同功能的多余的机器以外,无法容易地修理 好网络故障。也就是说,如果第一台机器发生故障,那么,第二台(备用) 机器接管第一台机器的功能。但是,如果第二台机器随后又发生故障,并且 没有执行相同功能的第三台机器,则网络将会因此而遭受损失。已知的网络 不具备自我复原的功用。因此,需要一种能够克服这些问题的高级网络。
传统网络的另一个缺点是:无法根据消息内容来动态地路由发送网络消 息。Cisco系统公司的已知路由器能够根据预先定义的标准来路由发送消息, 但不可进行动态编程以根据消息内容来支持用户可扩展的路由发送。除了传 统的路由发送和QoS要求以外,这个缺点使它们不适用于应用程序在其中可 以控制消息转换和处理的系统。
提供解决部分或所有以上被识别的问题的一种方法和系统,这将会是一 大进步。
发明概述
本发明的各个方面可以被用来使网络虚拟化,以允许程序设计员编写平 台独立的网络计算机应用程序。通过在提供网络服务的应用程序与执行那个 代码的系统的基础网络之间(例如,在OSI网络模型中的层6与层7之间) 增加一个抽象层(软件或硬件),可以创建虚拟网络。可以插入一个或多个 虚拟化部件,包括同步、事件综合(eventing)、通信联系、命名、组群、 寻址和路由发送部件。
通过使联网系统抽象化,网络可以更有效、更安全地将各种服务本能地 提供给建立在其顶部的应用程序和服务。例如,可以容易地提供各种服务(例 如,可靠性、安全、平台独立、按比例增加(scale-out)、边缘联网和位置 独立)。系统也可以适应物理拓扑变化并自动从故障“复原”。虚拟网络负 责将代码映射到网络的物理拓扑上,并负责显然地适应该映射。此外,开发 者可以从隔离其各种服务中得益。
通过将虚拟网络与虚拟机器结合起来,可以创建一种分布式可划分虚拟 网络,其中,应用程序可以被编写一次,并可以在任何机器上运行。也就是 说,在运行虚拟机器的计算机上的、为用于虚拟网络而编写的网络应用程序 不需要被加以重写,因为它能够在操作相同的虚拟机器的任何机器上运行并 被连接到虚拟网络。
虚拟网络也提供适应的重新配置性能。假设机器A在网络上将一个消息 路由发送给机器B,则B回复给机器A。但是,在机器A能够将第二个消息路 由发送给机器B之前,机器B移动(例如,到另一个IP地址)。根据一个实 施例,虚拟网络可以分辨自己并适应改变的位置,以便仍然将消息传递给B 的新位置。地址的变化可能会很明显,以便在网络上运行的应用程序永远不 知道(或不需要知道)B的位置曾发生过变化。不对每台机器可能会移动到的 那套位置进行限制,因为抽象是从机器层次移动到网络层次。在移动设备之 后,一旦它识别出自己到新位置处的网络,虚拟网络就能够更新自己,以便 到机器的路由发送可以继续进行操作,而不会发生中断。该能可扩展当前 从单个管理领域到多个管理领域内的内容,使位置活动性能够跨组织进行扩 展。
本发明的第一个实施例提供了一种装置,该装置包括路由发送并调度消 息的一个消息调度程序。每个消息根据该消息的内容的任意部分来被路由发 送。也有一种界面,网络应用程序通过该界面与消息调度程序进行通信,以 定义在其上路由发送消息的消息的内容的任意部分。
在本发明的另一个实施例中,有一种数据处理装置,该装置包括一个消 息调度程序模、用于将消息调度程序与传输协议接合的一个传输适配器、 应用程序通过其与消息调度程序进行通信的一个界面,以及被存储的规则,这 些被存储的规则指示消息调度程序根据所述第一个网络消息的第一个属性来 路由发送第一个网络消息,并根据第二个网络消息的第二个属性(不同于第 一个属性)来路由发送第二个网络消息。从每个网络消息中所包含的一套标 题和数据中选择第一个和第二个属性。
另一个实施例提供了用于路由发送网络消息的一种方法。消息调度程序 根据第一个网络消息的第一个属性来路由发送第一个网络消息。消息调度程 序根据第二个网络消息的第二个属性(不同于第一个属性)来路由发送第二 个网络消息。第一个和第二个属性可以是从每个网络消息的一套标题和数据 中选择的任何字段。
在另一个实施例中,有一种存储计算机可执行指令的网络路由器。当被 路由器执行时,这些指令执行一套步骤。网络路由器存储从网络应用程序接 收的路由发送信息。路由发送信息包括一个消息字段、一个字段条件和一个 消息指令。通过将网络消息与被存储的路由发送信息进行比较,网络路由器 接收并处理网络消息。当所接收消息的消息字段符合字段条件时,网络路由 器执行消息指令。
本发明的另一个实施例提供了虚拟计算机网络。该计算网络包括多台计 算机,每台计算机配置有在传输层协议与网络协议之间转换消息的至少一个 传输适配器,以及根据消息的内容的一个任意部分来路由发送并调度消息的 一个消息调度程序。每台计算机中的消息调度程序路由发送使用传输适配器 的传输层协议上的虚拟网络协议中的消息。
在本发明的另一个实施例中,有一种虚拟网络,它包括被插入在OSI协 议堆栈的层6与层7之间的至少一个虚拟部件。
附图简述
图1展示了根据本发明的一个实施例的虚拟网络中的两个节点的方框图
图2展示了根据本发明的一个实施例的虚拟网络调度程序的方框图。
图3展示了根据本发明的一个实施例的可编写消息协议。
图4展示了根据本发明的一个实施例的虚拟网络的方框图。
图5展示了根据本发明的另一个实施例的虚拟网络的方框图。
图6展示了根据本发明的一个实施例的、存储计算机软件的计算机可读 介质的方框图。
图7展示了根据本发明的一个实施例的、由虚拟网络提供的一套服务。
图8展示了根据本发明的一个实施例的、执行消息传递的流程图
图9展示了根据本发明的一个实施例的、被修改的OSI 7层网络协议堆 栈。
图10展示了根据本发明的一个实施例的、通过虚拟网络调度程序的数据 流。
图11展示了根据本发明的一个实施例的网络结构。
图12展示了一张样品虚拟映射表格。
图13展示了在系统已适应机器故障之后图12的样品虚拟映射表格。
发明的详细描述
通过结合通用使能部件来使用虚拟位置,可以实现虚拟网络中的消息分 解,它被称作“虚拟网络调度程序(VND)”,并被包括在加入虚拟网络的每 种资源中。资源可以被定义为“任何消息端点”。参考图1,为虚拟网络113 上的每个设备101-102提供一个虚拟地址,它的实际地址(例如,IP地址、MAC 地址、URL或其他位置标识符)可以被映射到该虚拟地址。VND 103可以包括 被并入每个设备的一个路由器模块,不管其上安装路由器的设备如何,每个 设备都使用硬件或软件来以相同的方式响应于消息。也就是说,路由器模块 是独立的设备。VND 103包括消息处理程序109,下文将进一步加以描述。
消息处理程序109可以随机器而变化,或者,它们可能跨越各台机器而 保持一致。每个消息处理程序可以为特殊类型的机器而加以明确的配置,也 可以被配置成明确地操作或不操作任何给定的机器。一些消息处理程序可以 被广泛地部署(例如,消息标题处理程序和加密处理程序),而其他的消息 处理程序只可以被部署在单台机器上。
每个VND负责执行路由发送功能和调度功能。路由发送是将消息发到其 目标设备的过程。调度是当接收到消息时响应于消息的接收而执行适当的处 理程序(例如,软件模块、功能、应用程序、例行程序等)或其他可执行软 件的过程。VND执行的处理程序可能是确定VND应该如何处理和路由消息的路 由发送处理程序,也可能是可将消息路由发送给在设备上运行的应用程序的 处理程序。
在一个实施例中,VND可以路由发送和调度开放的、可扩展的通信联系协 议中的基于XML的消息,不管每个特定的应用程序使用的操作系统、目标模 型或语言如何,该协议都允许分布式分散应用程序交换信息。可以采用支持 虚拟网络所用的传输的任何协议。可以结合网络传输协议107(例如,TCP、IP、 UDP、HTTP、SMTP、SOAP-RP等)来使用VND。当经由任何传输协议在一个位 置处接收消息时,消息内容由传输适配器105提取并被输入VND 103。每个传 输适配器将根据一个预先定义的传输协议而被格式化的消息作为输入来接 收,并转换(或除去)消息标题,以便遵守虚拟网络协议。如图1所示,每 个VND 103可以被连接到多个传输适配器TA1-TAn,用于多个传输协议T1-Tn。 这允许每个VND可以跨越多次传输来被使用,而无须将虚拟网络与单个传输 协议联系在一起。
通过使用多个传输协议和协议适配器,将VND 103放置在每个设备上可 提供一个平台。通过该平台并使用虚拟网络协议,任何应用程序可以显然地 与独立于传输层协议的另一个应用程序进行通信。在该技术领域中已知一些 特殊的应用程序,这些应用程序已经被配置成在多个协议上进行通信。但是, 每个这样的应用程序必须被加以明确的配置。通过使用这里所描述的虚拟网 络,应用程序可以在多个协议上进行通信,而无须任何特殊的配置,甚至不 会发现正在多个协议上进行通信传输。路由发送每个消息的每个特殊设备中 的VND 103作出有关在其上路由发送消息的协议的决定。关于每个消息,VND 可以根据一个或多个预先定义的协议政策来确定使用哪个协议。换句话说, 根据应用程序或网络服务的需要和/或要求,所使用的协议可能取决于驱动特 定消息的VND的应用程序或网络服务。
当虚拟网络研制或需要一个新的传输协议时,可以创建和安装新的传输 适配器,用于每个VND。通过这种方法,虚拟网络可以利用新的传输协议,而 不要求对将被置入虚拟网络的每个应用程序的每个传输协议进行支持。而是 为每个VND提供对新的传输协议的支持,它包含指示何时与如何结合新的传 输适配器来使用新的传输协议的逻辑。
VND统一单台机器上的局部调度和远程调度。与其中只有规定的机器或专 用机器用作路由器的传统网络不同,每个设备通常用作虚拟网络中的路由器。 例如,设备可能会接收一个消息,只是用于确定该消息实际上应该在网络中 的其他某个地方被传递。当发生这种情况时,机器将该消息发给正确的接收 者,或发给机器根据其目前的路由发送表格和规则而认为是正确的那个接收 者,而不是(随意地)将错误消息返回给消息路由发送者。
图10展示了根据本发明的一个实施例的一个消息路由发送例子。VND 1001 经由传输适配器1005a接收引入的消息1003,FROM字段被填充1.2.3.4。VND 1001可以包括多个传输适配器1005a、1005b和1005c,用于多个传输协议。 VND 1001使用处理程序1007-1013来处理所接收的消息1003,这些处理程序 中的每个处理程序指示VND 1003根据预先定义的标准来路由发送和/或调度 消息。VND 1001根据处理程序1007将消息的TO字段修改为7.7.4.4,并通 过传输适配器1005c来输出所路由发送的消息1015。根据指出1.2.3.4的引 入的消息1003的FROM字段,所路由发送的消息1015包括被填充有目的地地 址7.7.4.4的一个TO字段。
由于每个设备都用作路由器,因此,可以执行自我复原系统。当一台机 器发生故障时,其他机器将会自动补偿并找到通过其路由发送消息的其他路 径,从而使虚拟网络故障可以被容忍。在一个实施例中,可以将机器放在冗 余组群中。冗余组群中的每台机器都能够检测到组群中任何其他的机器已发 生故障并离开组群。然后,剩余的机器可以更新路由发送消息的一个或多个 消息处理程序中的信息,以避免使用已知发生故障的机器。这样,机器可以 根据其路由发送与逻辑表格中被编码的指令来补偿网络故障和错误,这将在 下文进一步加以描述。在另一个实施例中,一个或多个机器子系统可能正在 对网络实行监控,以确定最佳路径和失败的路径。
参考图2,处理程序109包含指示VND 103如何处理消息(即,如何处理 引入的消息、如何对消息作出响应,以及如何路由发送消息)的逻辑。例如, 第一个处理程序109a可以执行病毒检查,第二个处理程序109b可以执行安全 功能,第三个处理程序109c可以执行可靠性功能等。如图2所示,109n可以 使用无限数量的处理程序109。通过在任何给定的时间增加一个新的处理程序 109,可以把新的功能性和性能加到虚拟网络,而无须修改每台机器上的网络 应用程序。所处理的消息通过逻辑接收者端口111被输出。逻辑端点可以被 映射到设备(消息正从那里被路由发送)上的任何物理端口。
可以创建VND处理程序109,以便在虚拟网络中,应用程序网络为每个应 用程序呈现一套逻辑端点(即设备)。应用程序可以经由使用非统一的语义 规则的消息来与端点进行通信。例如,第一个应用程序可以根据第一种消息 格式(例如,标题和数据)在网络上将消息路由发送给第二个应用程序。一 个或多个处理程序可以修改消息句法,以便在第二个应用程序接收该消息之 前对其进行修改,并且该消息出现在一个不同的消息句法中。端点可以被映 射到在每个端点处可能有不同的实施的物理网络上(即,一旦公开具备规格, 不同的卖主就可以提供操作虚拟网络的软件和硬件),并可以使用各个端点 之间的非统一的传输协议来进行通信。
通过使用以上描述的网络平台,可以将虚拟网络配置成能进行自我组织。 也就是说,可以将虚拟网络配置成响应于网络上的规定事件而进行自我恢复、 适应或改组。事件会是引发网络自我适应的任何预先定义的条件,包括不发 生某个条件。例如,当网络检测到它的一个节点已发生故障时,可以将网络 配置成进行改组。当发生这种情况时,一个或多个处理程序可以指示VND将 信息包路由发送到一个新的位置。在另一个例子中,当网络路径上的负荷很 高时,VNDs可以在通信量较少的网络路径上路由发送消息。或者,用户可以 经由图解用户界面或其他配置界面改组虚拟网络。
可以提供应用程序编程界面(API)115,通过API 115,应用程序可以与 VND 103接合。可以为计算机的执行引擎(例如,操作系统或虚拟机器)编写 应用程序,计算机的执行引擎使用API 115进行连接,以便根据消息内容和/ 或根据曾在其上接收每个消息的传输协议来配置VND,以响应于每个消息。VND 调停协议与基础的执行引擎之间的相互作用。
图3展示了本发明的一个实施例中所使用的一种可编写消息格式。每个 消息301包括一个标题部分303和一个数据部分305。标题包括与数据部分中 所包含的信息有关的信息。也就是说,标题是属于消息301的数据部分305 的一种元数据。不要求标题部分和数据部分有固定的长度。标题可以包括路 由发送标题307、可靠性标题309、安全标题311和应用程序标题313。路由 发送标题307可以包括(例如)一个路由发送者的地址、一个接收者的地址, 以及针对路由发送过程的任何其他的信息。地址字段可以被填充有地址所指 的实体或设备的虚拟地址。虚拟地址是物理地址或其他逻辑地址可以被映射 到那里的逻辑地址。可靠性标题309可以包括确保信息包到达其预定目的地 的任何标题。安全标题311可以包括确保消息内容不泄露给非预定的接收者 的任何标题。根据特定应用程序的需要,完整标题可以与安全标题或可靠性 标题包括在一起。如网络应用程序所定义的,应用程序标题313可以包括以 前不加以说明的任何标题。
在一个实施例中,消息协议是可编写协议,体现为:应用程序可以按需 要增加各个新的功能方面,而不会中断对先前存在的消息功能性的处理。在 一个实施例中,标题被用来提供新的功能方面。可以将新的功能属性存储在 一个或多个消息标题中。也就是说,新标题可以被加到现存的消息中,而不 会打扰对前面消息的处理,这与传统的消息协议组套不同,通过传统的消息 协议组套,一个消息协议封装另一个消息协议,以便包括一个新的标题(或 功能属性)。这样,消息协议是可扩展的,体现为:应用程序可以按需要来 增加或除去额外的标题字段,以提供新的功能性。这使网络应用程序能够定 义新的标题字段并将其并入消息格式,而不要求对每个网络应用程序重新编 程以理解每个新的消息标题。每个应用程序只使用配置那个特殊的应用程序 来理解的那些标题。可以忽略它不理解或无法进行适当解释的那些标题。
可编写协议可以是被修改的、基于XML的协议,也可以是被修改的TCP 协议(由此,额外的标题被插入每个TCP消息的数据部分)。当应用程序将 一个新标题加到消息中时,应用程序可以将消息路由发送给一个或多个VNDs, 它指示每个VND根据新标题来创建一个或多个处理程序,以进行路由发送和/ 或调度。
每个VND 103可以根据每个消息内的任何标题和/或数据字段,或根据每 个消息内的标题和/或数据字段的任何组合,来作出路由发送决定。可以使用 额外类型或较少类型的标题。每个VND 103中的每个处理程序提供关于根据 消息内容来进行路由发送的指令。
例如,应用程序可以定义并包括每个消息中的一个“动作”标题,以指 出用户要求接收者采取的动作。如果网络用户规定动作预订并将消息数据305 设置为“棒球分数”,则该消息可以向第一个服务器指出:路由发送用户想 订阅棒球分数电子邮件清单。此外,动作字段可以由虚拟功能名称来填充, 映射到在其上接收它的每台机器处的一项特殊的功能。如果网络用户规定动 作预订并将消息数据305设置为“MSDN”,则该消息可以向第二个服务器指 出:路由发送用户想订阅标题为“MSDN杂志”的物理杂志。这样,如两个应 用程序各自的预订功能所定义的,两个应用程序都可以使用动作预订——每 个应用程序采用一种不同的方式。
在另一个例子中,参考图11,假设应用程序服务供应商(ASP)为顾客提 供三个等级的服务。根据顾客已预订的一个等级的服务,ASP可以将消息路由 发送给三个不同的服务器和/或应用程序之一。ASP可以定义和使用被称为“服 务_等级”的一个新的应用程序标题或类似物,以便为每个顾客指明一个等级 的服务。客户应用程序可以用金、之一来填充服务等级字段,以指明 特殊顾客已支付和/或预订的服务等级。主服务器1105可以经由网络1103从 顾客1101那里接收所有引入的消息。然后,主服务器调度程序(例如,VND 103) 可以根据服务等级来路由发送引入的顾客消息。定购金服务的顾客可以被路 由发送到快速响应服务器1107(支持一整套服务的一种服务器)或其他高级 等级服务器。定购银服务的顾客可以被路由发送到中速响应服务器1109(除 了基本服务以外还支持所选服务的一种服务器)或其他中等服务等级的服务 器。定购铜服务的顾客可以被路由发送到缓慢响应服务器1111(只支持基本 服务的一种服务器)或其他低服务等级的服务器。
在另一个例子中,应用程序可以包括被命名为“地理区域”的、与路由 发送用户的地理位置有关的一个标题字段。然后,可以根据路由发送者的物 理位置来作出路由发送决定,以便将消息路由给离路由发送用户最近的服务 器。例如,在维持两个服务器的系统中,当地理位置标题字段指出路由发送 用户位于俄勒冈州的波特兰时,设备可以将消息路由发送给位于华盛顿州的 西雅图的第一个服务器;当地理位置标题字段指出路由发送用户位于密歇根 州的底特律时,设备可以将消息路由发送给位于伊利诺斯州的芝加哥的第二 个服务器。这避免了当附近有相同的服务器时将消息路由发送给远处的服务 器。
在另一个例子中,当已对一台或多台机器发起拒绝服务攻击时,可以创 建一个处理程序,该处理程序根据每个消息的“证书”字段来拒绝所有消息。 “证书”字段可能等同于、也可能不等同于消息的“来自”字段。例如,“证 书”字段可以包括路由发送用户的姓名,以及证明路由发送者是指名道姓的 人的鉴定;而“来自”字段可以只包括路由发送者的IP地址或逻辑名称。当 消息的“证书”字段包含有关路由发送机器的适当的证书时,处理程序可以 被配置成接受该消息。当拒绝消息时,可以完全忽略它,释放资源以响应于 合法的消息。
在另一个例子中,参考图4,可以将虚拟网络配置成自我复原。位于防火 墙403后面的机器401可以接收网络连接404上的引入的消息。机器401可 以经由虚拟网络(即,如这里所讨论的,配置有适应性调度程序和传输适配 器的物理网络)被连接到其他机器407、409和411。每台机器401、407、409 和411包括VND 405。每台机器401、407、409和411可以存储一个或多个虚 拟位置。也就是说,机器1可以存储并执行被称作“alpha”的服务器。机器 2可以收容并存储被称作“bravo”的服务器。机器3可以收容并存储被称作 “charlie”、“delta”和“echo”的服务器。机器4可以收容并存储被称 作“foxtrot”和“golf”的服务器。虚拟网络中的每个VND配置有处理程序, 这些处理程序将每个虚拟位置映射到其各自的物理机器。例如,当设备401 接收朝向虚拟位置bravo的消息时,设备401的VND中的虚拟位置映射处理 程序指示VND将该消息路由发送给机器2。但是,由于设备401是防火墙处的 引入来源,因此,机器1中的VND 405可以配置有额外的处理程序,来首先 检查所有引入的消息是否有病毒,再执行其他的安全措施。
为了使虚拟网络能够自我复原,可以创建处理程序,来定期轮询另一台 机器或服务器,以确定其网络状况。也就是说,在服务器“golf”是“echo” 的备用服务器的情况下,可以将机器4配置成按定期时间间隔来轮询机器3, 以便确认机器3(明确地说是服务器“echo”)在发挥作用。当机器4没有在 规定数量的时间(例如,10秒)内从机器3(或“echo”)接收到确认时, 机器4可以启动一个故障(failover)序列,由此,机器4开始将消息路由 发送给每台机器的VND,向每个VND指出:当为机器3上的“echo”接收到消 息时,该消息应该被路由发送给机器4上的“golf”。
也通过使用图4中所描述的结构,当服务器从一台机器移动到另一台机 器(例如,从一个IP地址到另一个IP地址)时,可以在每个VND中更新虚 拟映射,而不会要求重新配置操作网络的每个应用程序。当应用程序将消息 路由发送给服务器时,每个VND自动将消息重新路由发送到服务器的新位置。 可以手工更新虚拟映射(例如,作为将新的服务器加到系统的结果),也可 以自动更新映射(例如,作为如上所述的自动复原或适应事件的结果)。图12 展示了一张样品虚拟映射表格。图13展示了在主办www.foo.com网站的第一 台机器发生故障且系统适应上述的故障(将消息重新路由发送给冗余组群内 的另一台机器)之后的相同的表格。
参考图5,虚拟映射也有助于容易地设置和测试新的服务器和网络应用程 序。例如,机器2上的服务器bravo可以是生产电子邮件服务器(即,目前 在虚拟网络中使用的电子邮件服务器)。虚拟网络的拥有者可能想要用新的 或不同的特点来测试被更新的电子邮件服务器。通常,为了测试新的服务器, 用户将必须指引他的电子邮件客户到新的服务器。这对于单个用户而言可能 不会不方便,但是,当新的服务器实况运行时,这可能会给改变庞大组织内 每个用户的服务器名称带来诸多不便。通过使用发明的系统,测试服务器可 以被安装在机器3(也被命名为“bravo”,被称作“bravo’”)上。每个VND 可以配置有一个处理程序,该处理程序指示它将bravo的消息路由发送给机 器2。但是,当路由发送者是预定的用户(例如,正在测试新服务器(bravo’) 的网络的管理人)时,相同或不同的处理程序被配置成将bravo的消息路由 发送给机器3。这样,不要求重新配置测试用户的机器。此外,当新的服务器 bravo’准备好投入生产时,可以通过将所有bravo消息指引到机器3,来改变 网络映射,而不会中断任何用户的电子邮件服务。由于虚拟映射已经改变, 因此,每个用户将显然开始使用新的电子邮件服务器。
参考图7,可以提供一套虚拟网络服务,以确保虚拟网络中的通信和服务 是安全的、可适应的、可靠的、可自我复原的和不依靠平台的。虚拟网络同 步服务703确保网络内的分布式数据保持同步。虚拟网络事件综合服务705 根据事件的发生或不发生来创建新的路由发送和/或调度规则。虚拟网络通信 联系服务707根据虚拟的名称和位置来路由发送消息。虚拟网络名称服务709 根据虚拟名称的任何子串来提供名称分解服务。虚拟网络组群服务711管理 名称映射表格。虚拟网络寻址服务713为长度固定的地址名称(例如,IPv6 地址)执行命名和路由发送服务。但是,虚拟网络寻址服务可用于尺寸固定 的地址的任何平坦的地址空间。虚拟网络路由发送服务715根据动态规则并 结合使用可编写消息协议的动态标题来进行路由发送和调度。可以跨越网络 的所有层次来提供虚拟网络安全服务717,以确保消息内容安全、可信。虚拟 网络管理719可以跨越所有层次来加以执行(例如,管理名称、路由发送/调 度处理程序、事件综合等)。目前在该技术领域中已知,虚拟网络监控服务721 允许网络管理人对网络使用、带宽、瓶颈点和类似内容进行监控。
如图9所示,本发明的一个实施例可以建立在7层开放系统互连(OSI) 网络模型的一个修改版本的基础上。可用于OSI模型的一个协议堆栈是TCP/IP 协议堆栈。通过将一个层插入在应用程序顶层与紧接在应用程序顶层下面的 层之间,本发明可以将一个额外层次的抽象插入OSI网络模型或任何其他的 网络模型中。被称作“虚拟网络(VN)层”的新层应该跨越所有应用程序而 保持一致,以便各个应用程序可以按如VN层所定义的统一的方法协同操作。 VN层已被并入其中的网络被称作“虚拟网络”。在一个实施例中,VN层包括 一个虚拟网络调度程序和任何必要的传输适配器,它们根据消息处理程序和 虚拟地址映射表格来路由发送和调度消息。
通过使用以上描述的结构,在单独消息的基础上,网络可以根据不同的 消息内容来路由发送和调度消息。本发明提供了一种网络协议,程序设计员 可以使用API并按需要来改编和配置该网络协议。程序设计员和使用API的 程序可以指示VNDs如何路由发送和调度引入的消息。也就是说,程序设计员 将元消息(meta-messages)路由发送给VNDs,其中,每个元消息根据API来 构制并提供一个或多个路由发送和/或调度指令。
图8展示了根据本发明的一个实施例的一般路由发送程序的流程图。在 步骤801中,用户决定将消息路由发送给被称作“foo”的服务。在步骤803 中,机器创建消息到服务“foo”。在步骤805中,服务名称“foo”根据虚 拟地址映射表格而被映射到一个虚拟地址。在步骤807中,必须保护消息。 在一个实施例中,使用SOAP扩展名(例如,“网络服务安全语言”(WS-安 全)和/或“网络服务许可证语言”(WS-许可证)所定义的扩展名)来执行 安全。在另一个实施例中,对消息执行转换,以选择有关的部分。摘要在所 选择的部分上被加以计算,并由路由发送者进行加密/签名。消息的各个部分 可能是机密的。在这种情况下,使用共享密匙或新密匙(又为接收者而被加 密)来对它们进行加密。在步骤809中,当可应用时,虚拟地址被映射到组 群地址(GADDR)。在步骤811中,适应性调度程序(即VND)确定最佳目标; 在步骤813中,它将GADDR映射到虚拟地址。在步骤815中,虚拟地址被映 射到物理地址;在步骤817中,消息被路由发送到物理地址。接收机器在步 骤819中接收消息,并在步骤821中确认安全性。
各种发明的方法可以被具体表现为被存储在计算机可读介质(例如,软 盘、CD-ROM、可移动的存储设备、硬盘、系统存储器或其他的数据存储介质) 上的计算机可读指令。换句话说,各种发明的方法可以在硬件和软件的组合 中或只在硬件中得到具体表现。图6展示了可以根据上述实施例中的一个或 多个实施例来加以运用的计算机可读介质601的方框图。计算机可读介质601 存储计算机可执行部件或软件模块603-613。或者,可以使用或多或少的软件 模块。每个部件可以是可执行程序、数据链接库、配置文件、数据库、图解 图像、二进制数据文件、文本数据文件、目标文件、源代码文件或类似物。 当一个或多个计算机处理器执行软件模块中的一个或多个软件模块时,这些 软件模块相互作用,使一个或多个计算机系统根据本发明的教导加以执行。
已就一些特殊的例子(包括目前执行本发明的各种较佳模式)描述了本 发明,但精通该技术领域的人将会认识到,可以对如所附权利要求中所阐明 的本发明的精神和范围内的上述各种系统和技术进行许多修改和变更。
交叉参考相关申请
该申请涉及于2001年10月16日提交的美国临时申请(序列号为 60/329,796)和于2001年10月19日提交的美国临时申请(序列号为 60/346,370),并声明了它们的优先权。这些申请都被包括于此,用作参考。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈