用于改变网络拓扑的方法和系统的制作方法

文档序号:7851721阅读:173来源:国知局

专利名称::用于改变网络拓扑的方法和系统的制作方法
技术领域
:本发明一般地涉及网络系统,并尤其涉及一种动态改变网络系统拓扑结构而不中断正在处理的服务的方法。
背景技术
:典型的标准网络系统执行单一功能和固定功能。第一代的虚拟化系统提供每用户(per-customer)的功能,但是该功能性仍然是固定的。这些限制导致若干缺陷。用户可能基于服务可用性来评判服务提供商。用户可能认为任何停机时间都是服务提供商的问题造成的而可能考虑更换服务商。服务提供商想要增添服务产品到他们的产品中以产生更多的收入并以更高价值的产品增加利润。现今的某些系统要求与升级相关的停机时间。出现这种情况是由于这些系统将所有的功能封装成单个运行时间映像。当所有的功能都以单个单元进行封装和发行时,对系统进行设计和测试更为简单。在某些情况下,服务提供商不得不通过构建冗余拓扑最小化停机时间,并且在后备系统处理服务时使原系统停止工作。这并不是最优的,因为这迫使服务提供商购买冗余硬件并设计复杂结构。为了实现规模缩减和更低的资金花费,服务提供商在单个系统上安装服务于多个用户的系统。服务提供商在很多用户上分摊该资金花费,而不是提供硬件给每个单独用户,从而降低平均成本。这些服务提供商典型地与其用户预定停机时间以进行例行维护。当多个用户配置为使用相同的系统时这种预定更加困难。另外,典型的网络系统可能提供以固定方式组成的固定功能。例如,处理通常是第2层,之后紧跟第3层,或者加密套接字协议层(SSL)加速之后紧跟负荷平衡。典型地,网络系统以整体的软件版本实现固定的功能。那些提供虚拟负荷的系统典型地在启动时使用简单的链接期配置策略或者简单的虚拟负荷,但此后即不再使用。因此,你可能能够在启动时选择你需要启动何种功能,但是此后你就不能改变。典型地,现有系统具有缺陷,例如当其升级时它们需要重新启动。这会导致停机时间。因此,某些传统的系统缺乏使用任意拓扑以任意方式进行功能配置、向运行中的系统添加新的功能而不引起停机时间或者将部分功能升级至新的版本的能力。而且,在数据中心,不时地需要对运行在数据包处理系统上的软件进行升级或者改变网络拓扑或者升级硬件。对软件或者硬件的任何升级会破坏服务可用性。这样的升级一般是在维护时段期间完成的,在此期间服务对于用户不可用。可替换地,服务网络是双重的,从而服务在其中一个网络上一直可用。在所述第一种方法中,服务被中断。在所述第二种方法中,必须构建冗余网络并小心维护。因此,迫切需要一种更好的解决方法以便能够组成、管理、改变或者升级网络系统的拓扑。
发明内容在此描述了一种用于改变在网络环境中具有连接到第二节点的第一服务的第一节点的方法和系统。在本发明的一个方面,一种典型的方法包括在所述第一节点动态地启动第二服务,将所述第二服务连接到第二节点,将服务请求定向到所述第二服务,并且终止所述第一服务。在一个特定的典型实施例中,该方法包括确定所述服务请求是否来自新的数据交互,如果该服务请求来自新的数据交互则发送该服务请求至所述第二服务,并且如果该服务请求来自已有的数据交互则发送该服务请求至所述第一服务。而且,当预先指定的条件满足时所述第一服务被终止。在一个实施例中,所述预先指定的条件可能包括需要处理的一定数据量。可替换地,所述预先指定的条件可能包括一个时间段。在一个实施例中,在所述预先指定的条件被满足前的任何时间,所述第二服务可能被终止并回退(rollback)到第一服务。本发明包括运行这些方法的系统,以及当在数据处理系统上执行时可以引起所述系统执行这些方法的机器可读的介质。本发明的其它特点可以通过下面的附图和详细描述而更加明白。本发明通过示例的方式而说明,并且不限于附图中的图示,其中类似的参考符号表示相似的元件。图1显示了可以以本发明使用的网络系统的示例方框图;图2显示了本发明一个实施例的典型构架的方框图;图3显示了根据本发明一个实施例的输入/输出(I/O)模块的简化方框图;图4A显示了根据本发明一个实施例的典型服务处理模块的方框图;图4B显示了根据本发明一个可替换实施例的典型服务处理模块的方框图;图4C显示了根据本发明另一个可替换实施例的典型服务处理模块的方框图;图5显示了根据本发明一个实施例的典型管理模块的方框图;图6显示了根据本发明一个可替换实施例的典型管理模块的方框图;图7显示了根据本发明一个实施例的典型虚拟网络系统;图8显示了根据本发明一个实施例的典型虚拟服务模块(VSM);图9显示了根据本发明一个实施例的典型流设置处理图;图10显示了根据本发明一个实施例的典型动作列表处理图;图11A显示了根据本发明一个实施例的在虚拟网络系统中动态改变/升级拓扑的方框图;图11B显示了说明根据本发明一个实施例的在虚拟网络系统中动态改变/升级拓扑的典型处理的流程图;图12A显示了根据本发明一个替换实施例的在虚拟网络系统中动态改变/升级拓扑的方框图;图12B显示了说明根据本发明一个可替换实施例的在虚拟网络系统中动态改变/升级拓扑的典型处理的流程图;图13A显示了根据本发明另一个可替换实施例的在虚拟网络系统中动态改变/升级拓扑的方框图;图13B显示了说明根据本发明另一个可替换实施例的在虚拟网络系统中动态改变/升级拓扑的典型处理的流程图;以及图14显示了根据本发明又一个可替换实施例的在虚拟网络系统中动态改变/升级拓扑的方框图。具体实施例方式下面的描述和附图用于说明本发明,并且不应理解为限制本发明。描述了大量细节以提供对本发明的彻底的理解。然而,在某些情况下,公知的或者传统的细节未作描述,以避免不必要地在细节上模糊本发明。图1显示了可以以本发明使用的网络系统。该网络系统100包括外部网络例如因特网101,网络设备102,以及多个网络服务器103。所述网络设备102在因特网101上接收来自另一个网络系统的数据包。该数据可以从客户端例如个人计算机接收。可替换地,该数据可以从另一个网络环境例如企业内部互联网接收。该数据可以以TCP/IP协议封装。所述网络设备102接收该数据;网络设备102识别来源和目标服务器的目标地址。该网络设备102处理所述数据并且分配该数据流给所述服务器103中的适当服务器。作为回应,服务器103中的一个或更多服务器处理所述数据包并且作出相应地响应。该响应从对应的服务器发送到网络设备102,网络设备102会解析客户端目标地址并且在因特网101上将该数据发送回适当的客户端。多个服务器103可能共享一个物理端口或者IP地址;然而服务器103的每个服务器可以通过相应的由网络设备102确定的逻辑ID而被识别。网络设备102负责解析这些资源,这将在下面进一步详细描述。图2显示了本发明一个实施例的典型架构。系统200包括输入/输出(I/O)模块201,管理模块202和204,交换结构模块203,以及服务处理模块205。服务处理模块(SPM)也称作流处理模块(FPM)。当来自外部网络例如图1中的因特网101的数据流到来时,所述I/O模块201接收该数据并对所有收到的数据包进行分类以确定与已有的流的成员关系。所述管理处理模块202控制所有的管理处理。该管理处理模块202初始化所述系统,实现各种管理接口包括命令行接口(CLI)、简单网络管理协议(SNMP)、网络管理,并且响应配置和重新配置请求。所述服务处理模块205处理所有到来的数据并将该数据分配给图1中服务器103中的适当服务器。备用管理模块204是主管理模块202的补充。当主管理模块202发生故障时,该备用管理模块204会主动的继续所有的管理功能职责。所述的所有模块连接到交换结构203,该交换结构203协调所述模块之间的所有通信流量。图3A显示了根据本发明一个实施例的I/O模块的典型方框图。该I/O模块300包括I/O端口301,流分类器302,结构接口逻辑303,以及流表(flowtable)随机访问存储器(RAM)304。存在几种类型的I/O模块,每种具有不同的端口数量,端口速度以及介质类型。在一个实施例中,该I/O模块可以是以太网的变体(例如,10/100,千兆,10千兆,光纤,铜缆等等)。该I/O模块可以共享基础抽象架构。所述I/O端口301同时表示媒介访问控制(MAC)和物理(PHY)层。典型地,这是100Mbps、1Gbps或者10Gbps以太网MAC/PHY。在100Mbps以太网端口的情况下,该结构可以高度集成,具有集成多个物理端口的一块芯片。所述流分类器302负责将到来的数据包映射到适当的流。根据可用的带宽,流分类器302可以服务多于一个的物理端口。流分类器302可以通过实现流分类算法的标准网络处理器或是特定用途集成电路(ASIC)而实现。所述I/O模块300还负责解析到来的数据包,以确定哪个SPE应该处理该数据包。根据本发明一个实施例,所述I/O模块300创建长度域和格式域,所述长度域和格式域将随该数据包一起发送到SPE,而不是在每个SPE处复制该解析。这些域可以实现快速路径(这将在下面进一步详细描述)以建立预解析数据包的内部缓冲区而不必重复所述I/O模块的所有工作。结构消息段具有显示消息头的表,该消息头在所述I/O模块和服务处理模块之间发送。在一个实施例中,跨度超过一个结构单元的数据包可能要求具有数据包尾部(packettrailer)。图4A显示了根据本发明一个实施例的服务处理模块(SPM)的典型方框图。该SPM实现系统的数据包处理。参考图4A,SPM包含一个或多个服务处理元件(SPE)401。所有的SPE通过结构接口402连接到结构交换机(未显示),所述结构交换机可能连接到系统的其它组件。每个SPE可以由通用处理器计算机(GPC),例如PowerPC,硬件加速设备,例如ASIC,以及可选择的加密加速设备而组成。所述数据包处理分为两个主要的种类通过硬件加速设备实现的快速路径,以及通过通用处理器计算机(例如PowerPC)实现的低速路径。数据包处理的快速路径设计为简单而快速,并且已识别的流中的要求简单处理的数据包应该不使用所述通用处理器计算机(例如,PowerPC)而处理。对于低速路径数据包,所述硬件加速设备(例如ASIC)可以通过对多数数据包执行数据包解析和其它低级基元指令(primitives)而协助所述GPC。所述数据包头和数据可以置于GPC的存储器中。IML消息会不经改动地置于所述GPC的存储器中。图4B显示了根据本发明一个可替换实施例的SPM的典型方框图。该SPM包括通用中央处理单元(CPU)411,基本外围设备412例如北桥(例如存储器控制器),硬件加速设备414,可选择的协处理器,例如加密设备410,以及其它存储器,例如静态随机访问存储器(SRAM)415和动态随机访问存储器(DRAM)413和416。在一个实施例中,所述通用CPU是PowerPC处理器,例如摩托罗拉公司的PPC7400。可以利用其它CPU。在一个实施例中,所述硬件加速设备414可以实现为ASIC。所述GPC负责接收新的流的至少第一个数据包,并且确定该流应当如何处理。运行在所述GPC上的软件确定应该对所述新的流应用哪种服务,以及使用哪种快速路径操作(如果有的话)以处理属于该流的其他数据包。所述硬件加速设备414包含结构接口,快速路径数据包处理,以及对GPC的低速路径接口。所述结构接口实现了在基于单元的交换结构上发送数据包所要求的分段和重组。所述快速路径实现了一系列基元指令,例如完全和不完全的网络地址转换(NAT),传输控制协议(TCP)连接接合,以及因特网协议(IP)校验和重新计算,这些基元指令为置于快速路径上的每个流而编程。所述低速路径接口是PPC总线管理器,允许对GPCDRAM完全访问。所述硬件加速设备还以基于令牌(token-based)的速率控制进行每客户的数据包排队。所述GPC使用所述交换结构(例如图2中的交换结构203)和消息传递协议以与I/O模块、管理模块以及其它SPE进行通信。图4C显示了根据本发明另一个可替换实施例的SPM的典型方框图。除了图4B中显示的系统420之外,系统430还包括连接到外围组件接口(PCI)总线457的缓冲器450。该缓冲器450可以在启动时被只读存储器(ROM)451使用以进行初始化,被通用异步收发机(UART)452使用以进行调试,或者被通用输入/输出(GPIO)453使用。而且,所述SPM可以包括通过PCI桥路454连接到PCI总线的另一个UART455。所述UART455提供数据给远程终端,例如主控制台456。图6A显示了根据本发明一个实施例的典型管理模块的简化方框图。在一个实施例中,所述管理模块600包括通用CPU601,基本外围设备602(包括存储器控制器、定时器、直接存储器访问(DMA)和中断),DRAM603,以及交换结构接口604。所述管理模块通过交换结构接口604连接到交换结构605。在一个实施例中,管理模块600和交换结构605可以置于同一块物理电路板上。所述管理模块600负责系统总体处理管理。当外部实体正在“与盒子对话”时,它是正在与管理模块对话。所述管理模块具有系统IP协议栈和系统IP地址。管理模块运行例如简单网络管理协议(SNMP)和超文本传输协议(HTTP)等等与盒子内其它模块通信的协议模块,从而为管理应用程序提供完整的系统视角。所述管理模块是简单的处理器—存储器子系统。它通过结构605和通道外(out-of-band)连接与系统内其它模块相连接。当任何时候另一块卡插入或者移出系统,该管理模块也接收硬件中断。该硬件通知用于驱动系统内所有的重新配置事件,包括动态改变拓扑的功能,或者动态软件升级(例如,即时对传(on-the-fly)),这将在下面进一步详细描述。所述管理模块是系统中的中心资源,因此具有热备用冗余模块,例如图2中的备用管理模块204。运行模块(例如图2中的运行管理模块202)和冗余模块互相不间断监视对方,以确定系统另一个设备(peer)是否存在并正常运行。如果由备用模块204检测到运行管理模块202有任何的异常,备用模块204接管系统的控制权并成为运行模块。所述交换结构模块605控制系统中所有的数据交换。其主要目的是封装结构的集成电路实现(例如,结构606)。所述系统包含一个或多个交换结构模块。所述交换结构通过系统背板连接到系统中其它模块。在一个实施例中,到系统中每个其它模块至少有一个连接。可替换地,取决于所述交换结构如何配置以及其它模块的带宽需求,可能有超过一个的连接。所述交换结构模块还连接到系统总线。通过该系统总线,所述管理模块和其它处理模块可以改变所述交换结构的行为。在多数系统操作期间,并不太需要重新配置交换结构。所述交换结构自身使用来自标准集成电路供应商的目前已有的结构而实现,这是本领域所公知的。典型的目前已有的结构实现了共享内存或是纵横式交换矩阵结构。图6B描绘了根据本发明一个可替换实施例的管理模块的另一个简化方框图。本发明在某些实施例中还引入了虚拟网络拓扑模型。在该模型中,根据本发明一个实施例,系统中的全部数据包处理功能被模拟为互相连接的虚拟服务模块(VSM)节点的抽象图。虚拟服务模块也称为动态服务模块(DSM)。系统中每个VSM被模拟为大致与真实世界中的各个网络元件的行为方式一致。例如,VSM可以大致实现独立IP路由器、以太网交换机、防火墙或者负荷平衡器的功能。然后这些元件以类似于其在真实世界中的方式在任意图中组构。所述虚拟网络系统上的物理端口在各个点连接到所述图中,从而使得内部的虚拟系统对外部世界是“挂钩”的。所述图可能变得非常大。该内部表示可能会代替多数或者全部的典型网络数据中心。所述图的尺寸仅仅受RAM和处理能力的限制。图7显示了根据本发明一个实施例的典型虚拟网络系统。虚拟网络系统700的行为仅仅是标准网络元件的集合体的等同行为。所述系统700模拟虚拟网络拓扑以产生期望的外部行为。在效果上,所述虚拟网络系统的行为仅仅是标准网络元件的集合体的等同行为。所述虚拟网络系统模拟虚拟网络拓扑以产生期望的外部行为。根据本发明一个实施例,所述系统的行为很容易可视化。由于所述外部行为等同于由真实组件构建的相同系统,当前的网络管理员和技术人员头脑中具有现成的的模型并以此进行工作。这使得用户不需经历困难的学习曲线即可上手本产品。另外,由于该系统所有组件可以动态配置和管理,配置更加灵活。并且消除了诸如位置、电源和布线等物理考虑。而且,所述虚拟网络不需要以太网或者任何其它计算机到计算机的链路层协议。取而代之,使用框架(Framework)以提供虚拟节点之间的专用数据链路层。所述框架提供通过所述盒子的数据包动作,从而虚拟服务模块(VSM)可以忽略数据链路层甚至IP层,除非所述模块正在提供的特性依赖于处理或者获取来自这些层的信息。而且,所述系统可以更容易地进行优化。对所述虚拟网络系统内的所有各种网络元件的简化和虚拟化使得用户可以通过结合所有单独组件的动作而优化对单独组件数据包的处理。只要从外部看到的所述虚拟网络系统的处理行为是等价的,对系统的任何并且所有的优化都是可能的。虚拟网络组件可以是非常轻易实现的。在某些情况下,它们完全可以是任意的,达到真实世界不存在对应物的程度。例如,要构建和销售一种具有两个如下端口的网络设备的现实部件是不可能的,所述端口仅转发来源和目的地址均为质数的数据包。在虚拟组件存在于虚拟网络拓扑图内的情况下,就会很容易地实现该功能。组件可以根据需要而轻易实现。可以随意创建感兴趣和新奇的行为以满足多方面的需求。所述虚拟网络拓扑模型将所述系统中的全部数据包处理功能模拟为互相连接的虚拟服务模块节点的抽象图。系统中每个VSM被模拟为大致与真实世界中的各个网络元件的行为方式一致。例如,VSM可能大致实现孤立IP路由器、以太网交换机、防火墙或者负荷平衡器等的功能。然后这些元件以类似于其在真实世界中的方式在虚拟图中组构。所述模型网络元件的组构和拓扑可以基于特定的用户需求而任意装配。NSE系统上的物理端口在各个点附加到所述虚拟图中,从而使得内部的虚拟系统与外部世界相联系。在一个实施例中,虚拟服务器(rack)是对多个网络常驻的应用服务的逻辑容器,并且模拟网络应用的物理服务器。其中的可变功能表示各个“服务”的网络系统被组构为任意拓扑,其中数据包处理由配置后的网络服务的虚拟图进行管理。虚拟图包括贯穿所述盒子的VSM互相之间的配置后的关系。当各个关联的数据包流被引入系统时,支撑软件框架访问(walk)该VSM图以创建该流的顺序节点列表。网络系统中的虚拟图中的节点与给定的网络用户相关联,并且根据用户指示对系统中各个节点的资源进行管理。不同的用户具有保留的资源,一个用户的资源消耗并不影响另一个用户所看到的服务水平。用户可以在虚拟服务器(rack)中驻留特定服务拓扑中的一个或多个服务实例,并且在系统中将它们作为单个单元进行管理。最重要的是,所述虚拟服务器构成围绕所述服务的基础资源管理界限。对系统资源进行管理以确保每个虚拟服务器接收到其在系统中的合理份额,并且发生在一个虚拟服务器中的破坏性事件并不影响相同系统中的其它虚拟服务器。参考图7,虚拟网络系统700包括对于各个用户的多个虚拟服务器(rack),例如用户A虚拟服务器704,用户B虚拟服务器705,以及用户C虚拟服务器706。虚拟服务器是用于集合若干虚拟服务模块(VSM)以模拟网络系统的物理服务器的软件容器(container)。VSM表示真实的物理网络系统中的功能块或者插在背板的支架上的子板。在一个实施例中,VSM是包含执行代码、安装信息、版本信息以及依赖关系信息的二进制文件。VSM通过管理接口安装在系统上。VSM可以采用Java文档(例如“jar文件”)的形式,包含一个或多个Java类文件以及对于管理系统正确安装该VSM所需的其它信息。而且,VSM由运行在系统管理模块上的多个模块组成,例如管理模块202,以及服务处理模块(如图2中的服务处理模块205)。例如,根据本发明一个实施例,虚拟服务器706表示插在背板的插槽中的网络系统中的物理服务器。虚拟服务器706可以包括过滤器VSM711,路由器VSM712,端口共享VSM713,虚拟专用网络(VPN)VSM714,以及另一个路由器VSM715。这些组件中的每一个可以服从于对应用户所指定的配置而动态加载或者卸载。在一个实施例中,对应用户可以通过管理虚拟服务器707的用户接口而指定或配置所述虚拟服务器706。VSM的多个实例可以同时被加载,例如路由器VSM712和715。另外,根据本发明一个实施例,所述VSM的多个实例可以包含不同版本。例如,路由器VSM712可以具有与路由器VSM715不同的版本。每个VSM可以独立地改变或者升级而不中断其它VSM的其它服务。所述虚拟服务器的拓扑可以在功能方面被改变而不中断正在提供的服务,这将在下面进一步详细描述。因此,当改变拓扑或者升级VSM时,终端用户不会察觉。而且,每个虚拟服务器独立工作而不对其它服务器进行任何干扰。例如,如果虚拟服务器705崩溃,其它虚拟服务器704和706不会受到影响。因此,虚拟服务器704和706可以继续工作,同时虚拟服务器705可以自身重新启动以恢复。虚拟服务器之间的资源在硬件级别进行管理,从而确保每个虚拟服务器具有足够的资源进行工作。因此一个虚拟服务器的故障不会损害其它服务器的工作。图8显示了根据本发明一个实施例的虚拟服务模块(VSM)的典型例。在一个实施例中,每个服务模块是独立完备的数据和相关处理软件的模块,所述处理软件具有同时包含可执行代码和元数据的档案文件,所述元数据将该服务模块集成到网络系统中。每个服务模块可以模拟分立的网络元件,例如防火墙、过滤器、负荷平衡器、路由器等等。在一个实施例中,虚拟服务模块可能属于对象类,所述对象类中可以存在每个虚拟服务模块的一个或多个实例。对象是用面向对象编程语言编写的独立程序模块。对象是被组织为在运行期互相嵌入和协作而不进行任何成组的预链接或预编译的软件组件。可以创建特定类型的虚拟服务模块的一个或多个实例。例如,模拟表示防火墙的虚拟服务模块的类可以具有贯穿所述虚拟图嵌入多个用户的虚拟服务器的虚拟服务模块的多个实例。然而,每个VSM的一个或多个实例可以作为所述虚拟网络图的一部分存在。按层次创建类,并且继承使得在层次中更高层的类的知识可以向下传递给更低层次的其它类(子类)。虚拟服务模块可以封装为单独的二进制镜像。所述镜像包含同时具有可执行代码和元数据的档案文件,所述元数据将该虚拟服务模块集成到系统中。所述元数据包括描述由虚拟服务模块所支持的各种配置参数的信息,以及所需要的用于通过命令行接口(CLI)配置所述模块的任何特定命令。使用所述信息,网络系统可以很容易集成所述虚拟服务模块而让用户不知道何种功能是底层系统内置以及何种功能是后来添加的。在一个实施例中,扩展标记语言(XML)可以用于格式化所述元数据。参考图8,在一个实施例中,每个VSM实例包括多个互相协作的部分。VSM800可以看作是多个子部分的高度抽象,所述子部分包括管理组件801,流设置组件802,以及数据包处理组件803。VSM实例800还具有描述其与其它组件关系的端口805。该端口同时被管理组件801和流设置组件802使用。管理组件801负责连接所述虚拟网络系统公共的各种管理接口。该组件还维护任何所需的全局信息,并且通过与外部实体例如路由器和认证机构通信而收集信息。流设置组件802是VSM的一部分,实际上存在于所述虚拟网络图内。它作为VSM的一部分,负责第一个数据包的处理,确定通过所述虚拟网络图的路径,并为流创建动作列表。数据包处理组件803是VSM的抽象部件。数据包处理组件803可以包含被编程到硬件加速器(例如图4B中的硬件加速ASIC414)内的动作列表。需要超出标准基元指令所能完成的处理的VSM会继续处理所述流设置组件中的数据包。将每个流按照所述的扩展流启动类型而启动的VSM可以在任何时候绑定动作列表,但是很常见的是某些VSM可以处理整个流而从来不需要切换到硬件协助(例如,硬件加速器)。在一个实施例中,即使VSM已经绑定了动作列表,该VSM仍可能处理由所述动作列表报告的异常状况,以应付不常见事件出现时所需的更复杂的处理。每个所述VSM组件可以映射到系统中不同的物理电路板。在一个实施例中,管理模块(MM)可以包括交换结构硬件。服务处理模块(SPM)(也称为流处理模块)可以包含一个或多个服务处理引擎(SPE)。每个引擎可以由通用处理器和数据包处理硬件加速器(例如图4B中的硬件加速ASIC414)组成。I/O模块(IOM)(例如图2中的I/O模块201)可以通过一个或多个I/O引擎(IOE)而支持一个或多个外部I/O端口。该引擎可以由通用处理器所控制的网络处理器所组成。在一个实施例中,所述网络处理器可以是Vitesse半导体公司的Vitesse网络处理器,并且所述通用处理器可以是摩托罗拉公司的PowerPCPPC7400CPU。还可以使用其它厂商的处理器。在一个实施例中,VSM的管理组件运行在所述MM上。所述流设置组件运行在一个FPE上的GPP上。数据包处理在硬件加速ASIC(例如图4B中的ASIC414)中进行处理,特殊情况下通过传递异常给所述GPP而处理。VSM不会知道IOE,取而代之的是与同时表示物理的和逻辑的I/O端口的所述FPE上的对象进行相互作用。VSM的各种组件通过由系统软件提供的应用程序编程接口(API)而进行通信。这些API对通信路径进行抽象,从而所述模块并不知道通信是如何实现的。所述流设置组件进行初始数据包处理,确定通过虚拟网络图的数据包路径,并且为流建立动作列表。流可以是特定的相关联的数据包的流。例如,在特定的TCP连接上服务器发送给客户端的数据流就是流。所述数据包处理组件是虚拟服务模块的抽象部件。对于可以利用由所述虚拟网络系统提供的标准处理基元指令的虚拟服务模块,所述数据包处理组件包含被编程到硬件加速器内的动作列表。需要超出数据包处理组件中的标准基元指令所能完成的数据包处理的虚拟服务模块会在流设置处理组件中继续处理数据包。将每个相关联的数据包流按照所述的扩展流设置类型进行启动的虚拟服务模块可以在任何时候绑定动作列表,但是很常见的是某些虚拟服务模块可以处理整个相关联的数据包流而从来不切换到硬件协助。动作列表是虚拟服务模块想要对给定的相关联的数据包流中的每个数据包应用的处理基元指令列表。处理基元指令是单个的基本数据包转换操作。例如,缩减IPTTL域或者重新计算IP校验和域均是处理基元指令。组合动作列表是给定的顺序节点列表中所有节点的每个虚拟服务模块的动作列表的连接。公共动作列表是对所有到来的数据包应用的全局动作列表。最优化动作列表是最优化之后的组合动作列表。即使虚拟服务模块已经绑定了动作列表,该虚拟服务模块的流设置组件可以处理由所述动作列表报告的异常状况,以应付不常见事件出现时所需的更复杂的处理。一个或多个虚拟服务模块实例还具有描述其与其它组件关系的端口以及具有与所述虚拟网络系统外部的组件进行通信的接口。所述端口同时被管理组件和流设置组件使用。图9显示了根据本发明一个实施例的典型流设置处理图。在一个实施例中,系统900包括I/O模块901,服务处理模块(即流处理模块)902,以及另一个I/O模块903。所述SPM902包括可以包含多个VSM905的流设置容器904,数据包处理硬件906,以及结构接口907。所述I/O模块901包括I/O端口908,特定流标识器909,以及服务处理元件选择器910。所述I/O模块903包括特定流分类器911和I/O端口912。参考图9,在一个实施例中,数据包到达所述I/O模块901的输入端口(例如I/O端口908)。该数据包被传递给所述特定流标识器909,该特定流标识器909被指定为处理该特定端口的通信。典型地,I/O模块901不知道特定流并且不会在其表中找到匹配,但是当流标识器909找到特定流时,它将该数据包直接转发给指示的SPE。如果没有找到特定流,该数据包被移交给SPE选择器910以进行SPE选择。SPE选择器910通过对数据包的寻址信息应用算法而选择SPE,从而它均匀地在系统中的SPE之间分配流。所述算法对相同的流选择相同的SPE。然后所述I/O模块901通过系统的交换结构907将该数据包发送给选定的SPE。所述SPE的结构接口907将数据包发送给数据包处理硬件906,在此处公共动作列表被应用到该数据包。对于新的流或者没有完全绑定的流,所述数据包处理硬件906进行其操作并且然后将该数据包传递给流设置封装904。对于前面没有识别出的流,流设置容器904确定通过虚拟网络图的数据包路径。当流路径上的VSM绑定时(即产生动作列表),流设置容器904指示本地数据包处理硬件906如何处理所述流的后续数据包。流设置容器904将绑定的部分所述流的组合动作列表发送给数据包处理硬件。一旦所有的VSM绑定后,流设置会优化最终的组合动作列表,此后所述流会由硬件加速硬件906完全处理。然而并不是所有的流可以使所有的VSM绑定,这意味着至少某些部分的数据包处理必须由更复杂但是更慢的流设置软件来处理。一旦数据包被处理,不管是通过硬件(例如快速路径)或者软件(例如低速路径)或者两者的结合,所述数据包处理硬件906将其传递回SPE结构接口907。结构接口907在所述结构上将该数据包发送给通往外部的I/O模块903上的正确的I/O端口,例如I/O端口912。所述特定流分类器911监视通往外部的数据包并且识别如下特定情形,即返回的数据包不会自动被发送到处理该流的SPE。在该情形下,它将该流和目标SPE添加到它的特定流列表上。当反向流上的数据包到来时,该数据包会被转发到处理前向流的SPE。在出口I/O端口,所述I/O模块剥落所有关联的内部结构路由信息并且向外发送所述数据包到线路上。在某些情况下,为了做出服务决定,VSM可能需要在流的第一个数据包中不存在的信息。在这些情况下,直到解析了高级别的依赖关系,VSM才能创建由快速路径执行的低级处理功能。该过程被称为“后期绑定”,因为通过VSM链路图的流路径不能被解析或者绑定,直到所述流的生命周期的后期。在其它情况下,任何提供所述特性的流不会被完全绑定,并且所述流的一部分会由所述特性的VSM的流设置组件进行处理。不同的VSM可以在流的生命周期的不同时刻做出绑定决定。例如,进行简单的端口级过滤的防火墙VSM可以做出很早的绑定决定。它在第一个数据包的TCP端口号的基础上决定是否接纳该流。在一个实施例中,为了实现硬件加速,即使是在后期绑定的情况下,每个流的每个数据包尽可能多的由顺序节点列表中的主要VSM所绑定的任何动作列表来处理。数据包至少会被由硬件加速器应用到所有数据包的默认动作列表处理。当位于所述顺序节点列表开头的VSM绑定动作列表时,硬件加速器会进行越来越多的处理。当初始绑定动作列表处理完成后,数据包会被传递到通用处理器(GPP)以进行进一步处理,所述进一步处理从顺序节点列表中的第一个未绑定VSM开始。可替换地,运行在GPP上的软件可以执行由紧跟在第一个未绑定VSM之后的VSM所绑定的动作列表。这使得VSM可以在任何时候绑定,但是它的动作列表会以软件模拟,直到所有更早的VSM也都绑定了。图10显示了根据本发明一个实施例的典型动作列表处理图。在一个实施例中,系统1000包括组成低速路径的GPP1001以及组成快速路径的硬件加速器1002。每个数据包都尽可能由硬件加速器1002进行处理,但是一旦遇到一个未绑定VSM(例如VSM1003),加速器1002将其转发给GPP1001以进行进一步处理。一旦数据包被传递到GPP1001,其处理即保留在此处,即使后续的VSM(例如VSM1004)是绑定的。这使得系统可以避免将数据包在其仅仅被部分处理时向下移回到硬件层的复杂而开销很大的问题,并且还使得VSM可以在任何需要的时候绑定而不需要知道其动作正在由硬件执行还是以软件模拟。所述动作列表一旦被链接在一起即可被组合和优化。如上讨论的,虚拟服务模块(VSM)可以动态地改变或者升级而不中断正在提供的服务。根据本发明一个实施例,使用了一种称为虚拟服务交换的多板系统。该系统具有由通常使用的交换结构连接的管理处理器,若干个流处理器以及IO处理器,如图2所示。在高利用率模式下,该系统可以具有两个管理处理器和两个交换结构。在该系统中,数据中心中的服务器表示为虚拟服务器。每个虚拟服务器具有虚拟网络图。服务器中的设备表示为虚拟网络上的节点。一个节点具有与服务器上设备的端口数目相同的端口。连接设备的线路表示为所述图中的边。该系统支持多个由系统节点和IO端口连接的虚拟服务器。具有相互连接的虚拟服务器、系统节点以及IO端口的大图在管理和流处理器中被创建和复制。每个节点以与物理服务器上设备相同的方式运行提供如负荷平衡、防火墙等服务的虚拟服务模块(VSM)。每个VSM具有运行在管理处理器上的管理组件和运行在流处理器上的流处理组件。VSM的管理组件获取配置并且实现设备管理部分。VSM的流处理组件处理交给它的数据包。节点中的每个VSM在框架中运行,所述框架提供若干系统服务,例如所述VSM的管理和流处理组件之间的通信。当框架从IO端口接收到数据包时,它还递送数据包到与所述图中IO端口连接的VSM。数据包通过边而流过所述图。VSM决定哪条边发送所述数据包。框架将所述数据包传递给图中下一个节点。虚拟服务器中的VSM可以被升级而不中断正在由该VSM提供的服务。当节点中的VSM升级时,该VSM的另一个实例被创建。框架将数据包发送给VSM的相同实例,该VSM处理该数据包所属的流。框架从为每个流保留的上下文(context)中获取所述VSM实例。它将新的流的第一个数据包发送给所述VSM的新的实例,并相应地设置所述流的上下文。所述VSM的旧的和新的实例可以同时共存直到升级完成。一旦升级完成,旧的实例被终止并从节点中删除。如果升级操作中指定的一个完成条件达到时,就认为该升级完成。升级一直进行到通过旧实例的流的数目达到指定值或者直到一定的进行时间。VSM可以通过所描述的类似过程而降级。升级可以在达到完成条件前被中止。图11A显示了说明根据本发明一个实施例的VSM升级的典型方框图。参考图11A,在一个实施例中,拓扑的初始配置1101通过路由器VSM1104、防火墙VSM1105、加密套接字协议层(SSL)VSM版本I1106以及负荷平衡器VSM1107处理数据流。当接收到SSLVSM的升级请求时(例如通过管理虚拟服务器的用户接口),SSLVSM版本II1108的另一个实例被启动。一旦所述SSLVSM版本II1108被启动,所述系统通过边1109将该SSLVSM1108连接到防火墙VSM1105并且通过边1110将SSLVSM1108连接到负荷平衡器VSM1107。因此,SSLVSM版本II1108和SSLVSM版本I1106并行运行,如配置1102所示。然后所述系统将任何新的流数据定向到所述新执行的SSLVSM版本II1108。该SSLVSM1108处理新的数据流并且此后将数据发送给负荷平衡器VSM1107。同时,系统继续将已有的数据流定向到SSLVSM版本I1106。该并行处理继续进行直到某些条件满足。在一个实施例中,所述条件可以是预先指定的需要处理的已有的流的数据量。在可替换实施例中,所述条件可以是预先指定的时间段。根据本发明一个实施例,在所述条件被满足前的任何时间,升级都可以被即时中止。在一个实施例中,该中止请求可以通过管理模块的用户接口(例如,管理虚拟服务器的接口)输入,例如上述的图6中的管理模块600。也可以使用其它通道以接收所述请求。一旦所述条件被满足,所述系统将所有的通信定向到所述新的SSLVSM1108。一旦该SSLVSM1108稳定后,系统分别断开SSLVSM1106和防火墙VSM1105以及负荷平衡器VSM1107之间的边1111和边1112的连接。此后,SSLVSM1106被终止并从所述图中删除,如配置1103所示。因此,SSLVSM服务被动态升级并且原先由SSLVSM1106提供的服务没有被中断。该处理将所述图从配置1102转换到1103,也称为提交操作1130。如上所述,在所述条件被满足前的任何时间,升级可以被即时中止。当升级被中止时,所述系统将所有的新的流数据定向到旧的服务,例如SSL服务1106。然后所述系统断开边1109和边1110的连接。因此,对应的虚拟服务器被返回到1120,回到其升级完成前的配置。该过程也成为回退过程。所有被启动通过SSL服务1108的流被系统终止。此前通过SSL服务1106的旧的流继续通过而没有任何变化。如果在所述条件满足前没有收到中止请求,所述新的SSLVSM会接管旧的SSLVSM1106。因此,所述图的配置被提交操作1130从配置1102转换到1103。图11B显示了说明根据本发明一个实施例的升级VSM的典型方法的流程图。在一个实施例中,该方法说明了对改变如下第一节点的请求的处理,所述第一节点具有在网络环境中连接到第二节点和第三节点的第一服务。所述方法1150包括在第一节点动态启动第二服务,将所述第二服务连接到第二节点和第三节点,将服务请求定向到第二服务,并且终止第一服务。在一个可替换实施例中,该方法进一步包括确定所述服务请求是否来自新的数据交互,如果所述服务请求来自新的数据交互则将该服务请求发送到第二服务,并且如果所述服务请求来自已有数据交互则将该服务请求发送到第一服务。参考图11B,当接收到升级请求时,在方块1151,系统动态启动新的服务(例如,具有升级后版本的VSM实例),同时已有服务(例如需要升级的已有VSM)仍然处理从第一节点到第二节点的数据流。在方块1152,系统将所述新的VSM连接到第一和第二节点。在方块1153,系统将新的数据流定向到所述新的VSM,同时将已有的数据流定向到已有VSM以进行处理。因此新的和已有的数据流分别由所述新的和已有的VSM并行地处理。在方块1154,系统检查预先指定的条件是否满足。在一个实施例中,所述条件可以是剩下待处理的已有的数据流的量。在一个可替换实施例中,所述条件可以是剩下的时间段。可以利用其它的条件。所示并行处理继续进行直到所述条件被满足。一旦所述条件被满足,在方块1155,系统将所有的数据流定向到新的VSM并且在方块1156终止已有的VSM。如上所述,在所述条件被满足前的任何时间,升级可以被即时中止。如果在方块1157接收到中止请求,在所述条件满足之前,所述图的配置回退到其原先的配置。在一个实施例中,在方块1158,系统将所有新的流定向到旧的服务(例如SSLVSM1106),终止通过新的服务(例如SSLVSM1108)的流,并且使通过旧的服务(例如SSLVSM1106)的流继续通过。此后,在方块1159,系统终止所述新的服务(例如SSLVSM1108)以完成回退操作。传统改变服务器中设备的拓扑的方法会中断由该服务器提供的服务。根据本发明一个实施例,虚拟服务器的拓扑可以动态改变而不中断所述虚拟服务器中任何节点提供的服务。节点可以添加到或者从虚拟网络图删除。当一个节点被添加到虚拟网络图中时,它将一条边取代为一个节点和两条边。框架同时保留所述旧的边和新的节点,直到完成拓扑改变。框架将数据包发送到相同边,所述边处理该数据包所属的流。框架从为每个流保留的流路径获取该信息。它将新的流的第一个数据包发送给指向所述新的节点的边,并且相应地设置所述流路径。一旦完成拓扑改变,旧的边从所述图中删除。如果处理中指定的一个完成条件达到时,则认为拓扑改变完成。所述拓扑改变过程一直进行到通过所述旧的边的流的数量达到指定值或者直到满足一定的进行时间。图12A显示了说明根据本发明一个实施例的改变虚拟网络系统拓扑的典型方框图。参考图12A,在一个实施例中,拓扑的初始配置1201通过路由器VSM1204、防火墙VSM1205、加密套接字协议层(SSL)VSM1206以及负荷平衡器VSM1207处理数据流。当接收到改变请求(例如添加VPNVSM到所述图)时(例如通过管理虚拟服务器的用户接口),启动VPNVSM1208的实例。一旦该VPNVSM1208被启动,所述系统通过边1209将该VPNVSM1208连接到防火墙VSM1205并且通过边1210将该VPNVSM1208连接到负荷平衡器VSM1207。因此,VPNVSM1208和连接VSM1206与VSM1205的边1211是并行运行的,如配置1202所示。然后所述系统将任何新的流数据定向到所述新执行的VPNVSM1208。所述VPNVSM1208处理该新数据流并且此后将数据发送到SSLVSM1206。同时,所述系统继续通过边1211将已有数据流定向到SSLVSM1206。该并行处理继续进行直到某些条件满足。在一个实施例中,所述条件可以是需要处理的已有流的预先指定的数据量。在一个可替换实施例中,所述条件可以是预先指定的时间段。在所述提交(例如提交1230)条件满足前的任何时间,所述拓扑改变可以被中止。如果首先满足所述条件,则所述配置看起来与配置1203类似。如果所述条件满足前改变被中止,则所述系统将所述图从配置1202返回到(例如回退1220)原先的配置,例如配置1201。一旦所述条件被满足,所述系统将所有的通信定向到所述新的VPNVSM1208。一旦该VPNVSM1208稳定后,系统断开SSLVSM1206和防火墙VSM1205之间的边1211的连接。因此,VPNVSM服务被动态添加到所述图中并且原先由边1211提供的服务没有被中断。如果所述改变被中止,所述系统通过边1211将所有新的流数据定向到SSLVSM1206。系统终止通过边1209、VPNVSM1208以及边1210的任何流。系统继续通过边1211将已有数据流定向到SSLVSM1206。系统断开边1209和1210以及VPNVSM1208的连接。由此所述图被返回到(例如回退1220)原先的拓扑。图12B显示了说明根据本发明一个实施例改变拓扑的典型方法的流程图。在一个实施例中,所述方法说明了对改变如下拓扑的请求的处理,所述拓扑在网络环境中具有第一节点和第二节点之间的直接连接。所述方法包括动态启动新的服务,所述服务需要添加在第一和第二节点之间,将所述新的服务节点连接到第一和第二节点之间,将对所述新的服务的服务请求从第一节点定向到所述新的节点,并且此后将该请求发送到第二节点,并且终止第一和第二节点之间的直接连接。在一个可替换实施例中,该方法进一步包括确定所述服务请求是否来自新的数据交互,如果所述服务请求来自新的数据交互则将该服务请求发送到所述新的服务,并且如果所述服务请求来自已有数据交互则将该服务请求发送到第一和第二节点之间的直接连接。参考图12B,当在方块1251处接收到请求时,所述系统动态启动新的服务,所述新的服务需要添加在第一和第二节点之间,所述第一和第二节点通过一条边互相直接连接。当所述新的服务被启动后,在方块1252,系统将新的服务连接到第一和第二节点。然后系统将新的数据流从第一节点定向到所述新的服务,该新的服务处理新的数据流并将数据发送到第二节点。同时,第一节点继续通过直接连接第一和第二节点的边将已有数据流发送到第二节点。这些并行处理继续进行直到某些条件满足,所述条件由系统在方块1254检查。如果所述条件满足,在方块1255,系统指示第一节点发送所有数据流到所述新的服务,该新的服务处理所述数据并且发送到第二节点。一旦新的服务准备好并运行,在方块1256,系统断开直接连接第一和第二节点的边。如上所述,在所述条件被满足前的任何时间,所述改变可以被即时中止。如果在方块1257接收到中止请求,在所述条件满足之前,所述图的配置回退到其原先的配置。在一个实施例中,在方块1158,第一节点将所有数据发送到第二节点并且在方块1259处所述新的服务节点(例如VPNVSM1208)从图中断开连接(例如边1209和1210)。此后,系统终止所述新的服务以完成回退操作。图13A显示了说明根据本发明一个实施例的虚拟网络系统拓扑改变的典型方框图。参考图13A,在一个实施例中,拓扑的初始配置1301通过路由器VSM1304、防火墙VSM1305、VPNVSM1306以及负荷平衡器VSM1307处理数据流。当接收(例如通过管理虚拟服务器的用户接口)到改变请求(例如从所述图中删除VPNVSM1306)时,创建边1308以连接防火墙VSM1305和负荷平衡器VSM1307。一旦所述边1308被创建和连接,所述系统指示防火墙VSM1305直接通过边1308将任何新的数据流发送到负荷平衡器VSM1307,同时已有的数据流由防火墙VSM1305通过VPNVSM1306发送到负荷平衡器VSM1307。因此,边1308和VPNVSM1306是并行运行的,如配置1202中所示。该并行处理继续进行直到某些条件满足。在一个实施例中,所述条件可以是需要处理的已有流的预先指定的数据量。在一个可替换实施例中,所述条件可以是预先指定的时间段。类似地,根据本发明一个实施例,在所述条件被满足前的任何时间,所述改变可以被即时中止。在一个实施例中,所述中止请求可以通过管理模块的用户接口(例如管理虚拟服务器的接口)而输入,例如上述的图6中的管理模块600。一旦所述条件被满足,所述系统通过边1308将所有的通信从防火墙VSM1305直接定向到负荷平衡器VSM1307。一旦所述边1308的数据处理稳定后,系统断开VPNVSM1306和防火墙VSM1305以及负荷平衡器VSM1307之间的边1309和1310的连接。此后,VPNVSM1306被中止并且从所述图中删除。由此,VPNVSM服务从所述图中被动态删除,并且原先由虚拟服务器提供的服务没有被中断。如果所述变化被中止,所述系统通过边1309和1310将所有新的流数据定向到VPNVSM1306。系统中止通过边1308的任何流。系统继续通过边1309和1310将已有数据流定向到VPNVSM1306。此后,系统断开边1308的连接。因此所述图返回到(例如回退1320)原先的拓扑。图13B显示了说明根据本发明一个实施例改变拓扑的典型方法的流程图。在一个实施例中,所述方法说明了对改变如下拓扑的请求的处理,所述拓扑具有第一节点、第二节点和第三节点,第一节点直接连接到第二节点并且第二节点直接连接到第三节点。所述方法包括动态连接第一和第三节点,将服务请求从第一节点直接定向到第二节点,并且终止第二节点。在一个可替换实施例中,该方法进一步包括确定所述服务请求是否来自新的数据交互,如果所述服务请求来自新的数据交互则将该服务请求从第一节点直接发送到第三节点,并且如果所述服务请求来自已有数据交互则将该服务请求从第一节点发送到第二节点并从第二节点发送到第三节点。参考图13B,当在方块1351处接收到请求时,所述系统动态连接第一节点和第三节点,其中所述第一和第三节点通过其间的第二节点连接。一旦第一和第三节点之间的连接被创建,在方块1352,系统将新的数据流定向到第一和第三节点之间的直接连接。同时,第二节点仍然处理从第一节点接收到的已有数据流,并且此后将所述数据发送到第三节点。该并行处理继续进行直到在方块1353一系列条件被满足。一旦满足,在方块1354,所述系统将所有数据流从第一节点直接定向到第三节点而不经过第二节点。在方块1355,第二节点由于不再需要而被终止并从所述图中删除。如上所述,在所述条件被满足前的任何时间,所述改变可以被即时中止。如果在方块1356接收到中止请求,在所述条件满足之前,所述图的配置回退到其原先的配置。在一个实施例中,在方块1357,系统将所有新的数据从第一节点定向到第二节点,终止在第一和第二节点之间直接通过的任何剩下的流。此后,在方块1358,系统删除连接第一和第二节点的边,以完成回退操作。图14显示了说明根据本发明一个实施例的虚拟网络系统拓扑改变的另一个典型方框图。参考图14,在一个实施例中,拓扑的初始配置1401通过路由器VSM1404、防火墙VSM1405、SSLVSM1406以及负荷平衡器VSM1407处理数据流。当通过管理虚拟服务器的用户接口接收到改变请求时,例如,添加VPNVSM1408并且将SSLVSM1406从版本I升级到版本II1409,系统分别启动对应的VPNVSM1408和SSLVSM版本II1409。然后所述系统将VPNVSM1408和SSLVSM1409连接到防火墙VSM1405和负荷平衡器VSM1407。一旦VPNVSM1408和SSLVSM1409正在运行,所述系统指示防火墙VSM1405将任何新的数据流发送到VPNVSM1408和SSLVSM1409分支,并且此后将所述数据发送到负荷平衡器VSM1407。同时已有的数据流由防火墙VSM1405通过SSLVSM版本I1406发送到负荷平衡器VSM1407,如配置1402所示。该并行处理继续进行直到某些条件满足。在一个实施例中,所述条件可以是需要处理的已有流的预先指定的数据量。在一个可替换实施例中,所述条件可以是预先指定的时间段。一旦所述条件被满足,所述系统将所有的通信从防火墙VSM1405定向到VPNVSM1408和SSLVSM1409分支,并且此后发送到负荷平衡器1407。一旦VPNVSM1408和SSLVSM1409分支稳定后,系统终止SSLVSM版本I1406并将其从所述图中移除,如配置1403所示。由此,VPNVSM1408服务被添加到图中且所述SSLVSM被动态升级,并且整个处理过程中正在提供的服务没有被中断。类似于图11A、12A和13A中的操作,图14中的实施例包括回退操作1420(如果改变被中止)和提交操作1430(当所述对应条件满足)。可以理解,更多或者更少的处理可以结合到的方法中而不背离本发明的范围,并且在此显示和描述的方块的排列并不包含特定顺序。进一步可以理解在此结合附图描述的处理可以被包含在机器执行的指令中,例如软件。所述指令可以引起以这些指令编程的通用处理器或者专用处理器执行所描述的操作。可替换地,所述操作可以由特定硬件组件进行,所述硬件组件包含硬件逻辑以用于执行所述操作,或者由编程计算机组件和定制硬件组件的任何组合执行。所述方法可以提供为计算机程序产品,所述计算机程序产品可以包括机器可读介质,其上存储有可以用于为计算机(或其它电子设备)编程以进行所述方法的指令。对于本说明书意图,术语“机器可读的介质”应该认为是包括任何能够存储或者编码指令序列以由机器执行并且使得所述机器进行本发明的任何一种方法的介质。因此术语“机器可读的介质”应该认为是包括但不限于固态存储器,光盘或磁盘,以及载波信号。而且,本领域中经常以一种或另外的形式(例如,程序、进程、过程、应用程序、模块、逻辑等等)提到软件进行动作或者引起结果。这种表达方式仅仅是一种简略方式,表示由计算机执行该软件引起该计算机的处理器进行动作或者产生结果。在前述的说明书中,其中参考特定典型实施例描述了本发明。很显然可以对其进行各种修改而不背离在所附权利要求书中提出的本发明更广泛的精神和范围。因此,说明书和附图应被认为是具有示例意义而不是限制意义的。权利要求1.一种用于处理对第一节点的改变请求的方法,所述第一节点具有在网络环境中连接到第二节点的第一服务,所述方法包括在第一节点动态启动第二服务;将所述第二服务连接到第二节点;将服务请求定向到所述第二服务;以及中止所述第一服务。2.根据权利要求1所述的方法,其进一步包括确定所述服务请求是否来自新的数据交互;如果所述服务请求来自新的数据交互,则将该服务请求发送到所述第二服务;以及如果所述服务请求来已有的数据交互,则将该服务请求发送到所述第一服务。3.根据权利要求1所述的方法,其中当预先指定的条件满足时所述第一服务被终止。4.根据权利要求3所述的方法,其中所述预先指定的条件包括需要处理的数据量。5.根据权利要求3所述的方法,其中所述预先指定的条件包括经过的时间段。6.根据权利要求1所述的方法,其中在所述第一服务处理服务请求的同时,所述第二服务和第二节点之间的连接被建立。7.根据权利要求1所述的方法,其中所述对第一节点的改变请求通过用户接口的输入被接收。8.根据权利要求3所述的方法,其进一步包括检测在所述条件满足前所述请求是否被中止;以及将所述第一节点的配置动态回退到其原先的配置。9.根据权利要求8所述的方法,其中回退操作包括将所有的服务请求定向通过所述第一服务;以及终止所述第二服务的所有数据处理。10.根据权利要求9所述的方法,其进一步包括从所述网络断开第二服务的连接;以及终止所述第二服务。11.一种用于处理改变拓扑的请求的方法,所述拓扑在网络环境中具有第一节点和第二节点之间的直接连接,所述方法包括动态启动新的服务,所述服务准备被添加到第一节点和第二节点之间;将所述新的服务与第一和第二节点连接;将服务请求从第一节点定向到所述新的服务,并且此后将所述请求发送到第二节点;以及终止第一和第二节点之间的直接连接。12.根据权利要求11所述的方法,其进一步包括确定所述服务请求是否来自新的数据交互;如果所述服务请求来自新的数据交互,则将该服务请求发送到所述新的服务;以及如果所述服务请求来自已有的数据交互,则将该服务请求发送到第一和第二节点之间的直接连接。13.根据权利要求11所述的方法,其中当预先指定的条件满足时所述直接连接被终止。14.根据权利要求13所述的方法,其中所述预先指定的条件包括需要处理的数据量。15.根据权利要求13所述的方法,其中所述预先指定的条件包括经过的时间段。16.根据权利要求11所述的方法,其中在通过所述第一和第二节点之间的直接连接处理服务请求的同时,所述新的服务与第一和第二节点之间的连接被建立。17.根据权利要求13所述的方法,其进一步包括检测在所述条件满足前所述请求是否被中止;以及将所述第一和第二节点之间的配置动态回退到其原先的配置。18.根据权利要求17所述的方法,其中回退操作包括将所有的服务请求从第一节点直接定向到第二节点;以及终止所述新的服务。19.一种网络环境中的方法,用于处理改变具有第一节点、第二节点以及第三节点的拓扑的请求的方法,所述第一节点直接连接到第二节点并且所述第二节点直接连接到第三节点,所述方法包括动态连接所述第一和第三节点;将服务请求从第一节点直接定向到第三节点;以及终止第二节点。20.根据权利要求19所述的方法,其进一步包括确定所述服务请求是否来自新的数据交互;如果所述服务请求来自新的数据交互,则将该服务请求从第一节点直接发送到第三节点;以及如果所述服务请求来自已有的数据交互,则将该服务请求从第一节点发送到第二节点,并且从第二节点发送到第三节点。21.根据权利要求19所述的方法,其中当预先指定的条件满足时所述第二节点被终止。22.根据权利要求21所述的方法,其中所述预先指定的条件包括需要处理的数据量。23.根据权利要求21所述的方法,其中所述预先指定的条件包括经过的时间段。24.根据权利要求19所述的方法,其中在通过所述第一、第二和第三节点处理服务请求的同时,第一节点和第三节点之间的连接被建立。25.根据权利要求21所述的方法,其进一步包括检测在所述条件满足前所述请求是否被中止;以及将所述第一和第三节点之间的配置动态回退到其原先的配置。26.根据权利要求25所述的方法,其中回退操作包括将所有的服务请求从第一节点定向到第二节点;终止第一和第三节点之间正在处理的剩下的服务请求;以及断开第一和第三节点之间的直接连接。27.一种用于改变在网络环境中具有第一服务的节点的系统,所述系统包括在所述节点处动态启动的第二服务,所述第二服务与第一服务并行工作,其中第一服务处理已有的数据流,同时第二服务处理新的数据流;以及当预先指定的条件满足时,所述第二服务处理所有的数据流并且第一服务被终止。28.根据权利要求27所述的系统,其中所述预先指定的条件包括需要处理的数据量。29.根据权利要求27所述的系统,其中所述预先指定的条件包括一定时间段。30.根据权利要求27所述的系统,其进一步包括一个中止请求,在所述条件满足前接收到中止请求时,所述节点的配置动态回退到其原先的配置。31.根据权利要求30所述的系统,其中所述回退操作包括将所有的数据流定向到所述第一服务以进行处理;以及终止所述第二服务。32.一种用于改变在网络环境中具有第一节点和第二节点之间直接连接的拓扑的系统,所述系统包括至少一种被动态启动的新服务,所述至少一种新的服务连接所述第一和第二节点,其中所述至少一种新服务处理新的数据流,同时已有的数据流从第一节点直接发送到第二节点;以及当预先指定的条件满足时,所述至少一种新的服务处理所有的数据流,并且所述第一和第二节点之间的直接连接被终止。33.根据权利要求32所述的系统,其中所述预先指定的条件包括需要处理的数据量。34.根据权利要求32所述的系统,其中所述预先指定的条件包括一定时间段。35.根据权利要求32所述的系统,其进一步包括终止请求,当所述条件满足前接收到终止请求时,所述拓扑的配置动态回退到其原先的配置。36.根据权利要求35所述的系统,其中所述回退操作包括将所有的数据流从第一节点直接定向到第二节点;以及终止所述至少一种新的服务。37.一种具有使机器执行一种方法的可执行代码的机器可读介质,所述方法用于处理改变第一节点的请求,所述第一节点在网络环境中具有连接到第二节点的第一服务,所述方法包括在第一节点处动态启动第二服务;将第二服务连接到第二节点;将服务请求定向到第二服务;以及终止第一服务。38.根据权利要求37所述的机器可读的介质,其中所述方法进一步包括确定所述服务请求是否来自新的数据交互;如果所述服务请求来自新的数据交互,则将该服务请求发送到第二服务;以及如果所述服务请求来自已有的数据交互,则将该服务请求发送到第一服务。39.根据权利要求37所述的机器可读的介质,其中所述方法进一步包括检测所述请求是否被中止;以及如果所述请求被中止,将所述第一节点的配置动态回退到其原先的配置。40.一种具有使机器执行一种方法的可执行代码的机器可读介质,所述方法用于处理改变拓扑的请求,所述拓扑在网络环境中具有第一节点和第二节点之间的直接连接,所述方法包括动态启动新的服务,所述服务准备被添加到第一节点和第二节点之间;将所述新的服务与第一和第二节点连接;将服务请求从第一节点定向到所述新的服务,并且此后将所述请求发送到第二节点;以及终止第一和第二节点之间的直接连接。41.根据权利要求40所述的机器可读介质,其中所述方法进一步包括确定所述服务请求是否来自新的数据交互;如果所述服务请求来自新的数据交互,则将该服务请求发送到所述新的服务;以及如果所述服务请求来自已有的数据交互,则将该服务请求发送到第一节点和第二节点之间的直接连接。42.根据权利要求40所述的机器可读介质,其中所述方法进一步包括检测所述请求是否被中止;以及如果所述请求被中止,将所述第一和第二节点之间的配置动态回退到其原先的配置。43.一种具有使机器执行一种方法的可执行代码的机器可读介质,所述方法用于处理改变具有第一节点、第二节点以及第三节点的拓扑的请求,所述第一节点直接连接到第二节点,所述第二节点直接连接到第三节点,所述方法包括动态连接第一和第三节点;将服务请求从第一节点直接定向到第三节点;以及终止第二节点。44.根据权利要求43所述的机器可读介质,其中所述方法进一步包括确定所述服务请求是否来自新的数据交互;如果所述服务请求来自新的数据交互,则将该服务请求从第一节点直接发送到第三节点;以及如果所述服务请求来自已有的数据交互,则将该服务请求从第一节点发送到第二节点,并且从第二节点发送到第三节点。45.根据权利要求43所述的机器可读的介质,其中所述方法进一步包括检测所述请求是否被中止;以及如果所述请求被中止,将所述第一和第二节点之间的配置动态回退到其原先的配置。全文摘要在此描述了用于处理改变第一节点的请求的方法和系统,所述第一节点在网络环境中具有连接到第二节点的第一服务。在本发明的一个方面,一种典型的方法包括在第一节点动态启动第二服务(1151),将第二服务连接到第二节点(1152),将服务请求定向到第二服务(1153),并且终止第一服务(1157)。此外还描述了其它的方法和系统。文档编号H04L12/24GK1650287SQ03810147公开日2005年8月3日申请日期2003年4月11日优先权日2002年5月7日发明者D·G·罗伯茨,J·S·汉塞尔,M·库马尔申请人:因卡网络工程公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1