CN100454285C - 用于改变网络拓扑的方法 - Google Patents
用于改变网络拓扑的方法 Download PDFInfo
- Publication number
- CN100454285C CN100454285C CNB038101475A CN03810147A CN100454285C CN 100454285 C CN100454285 C CN 100454285C CN B038101475 A CNB038101475 A CN B038101475A CN 03810147 A CN03810147 A CN 03810147A CN 100454285 C CN100454285 C CN 100454285C
- Authority
- CN
- China
- Prior art keywords
- vsm
- node
- service
- module
- stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Abstract
在此描述了用于处理改变第一节点的请求的方法,所述第一节点在网络环境中具有连接到第二节点的第一服务。在本发明的一个方面,一种典型的方法包括在第一节点动态启动第二服务(1151),将第二服务连接到第二节点(1152),将服务请求定向到第二服务(1153),并且终止第一服务(1157)。此外还描述了其它的方法。
Description
版权公告
本专利文档公开的一部分包含受版权保护的资料。由于其公开在专利和商标局的专利文件或者记录中,版权所有者不反对任何人对该软件引擎和模块的复制,但无论如何仍然保留所有版权权利。
技术领域
本发明一般地涉及网络系统,并尤其涉及一种动态改变网络系统拓扑结构而不中断正在处理的服务的方法。
背景技术
典型的标准网络系统执行单一功能和固定功能。第一代的虚拟化系统提供每用户(per-customer)的功能,但是该功能性仍然是固定的。这些限制导致若干缺陷。用户可能基于服务可用性来评判服务提供商。用户可能认为任何停机时间都是服务提供商的问题造成的而可能考虑更换服务商。服务提供商想要增添服务产品到他们的产品中以产生更多的收入并以更高价值的产品增加利润。现今的某些系统要求与升级相关的停机时间。出现这种情况是由于这些系统将所有的功能封装成单个运行时间映像。当所有的功能都以单个单元进行封装和发行时,对系统进行设计和测试更为简单。在某些情况下,服务提供商不得不通过构建冗余拓扑最小化停机时间,并且在后备系统处理服务时使原系统停止工作。这并不是最优的,因为这迫使服务提供商购买冗余硬件并设计复杂结构。为了实现规模缩减和更低的资金花费,服务提供商在单个系统上安装服务于多个用户的系统。服务提供商在很多用户上分摊该资金花费,而不是提供硬件给每个单独用户,从而降低平均成本。这些服务提供商典型地与其用户预定停机时间以进行例行维护。当多个用户配置为使用相同的系统时这种预定更加困难。
另外,典型的网络系统可能提供以固定方式组成的固定功能。例如,处理通常是第2层,之后紧跟第3层,或者加密套接字协议层(SSL)加速之后紧跟负荷平衡。典型地,网络系统以整体的软件版本实现固定的功能。那些提供虚拟负荷的系统典型地在启动时使用简单的链接期配置策略或者简单的虚拟负荷,但此后即不再使用。因此,你可能能够在启动时选择你需要启动何种功能,但是此后你就不能改变。典型地,现有系统具有缺陷,例如当其升级时它们需要重新启动。这会导致停机时间。因此,某些传统的系统缺乏使用任意拓扑以任意方式进行功能配置、向运行中的系统添加新的功能而不引起停机时间或者将部分功能升级至新的版本的能力。
而且,在数据中心,不时地需要对运行在数据包处理系统上的软件进行升级或者改变网络拓扑或者升级硬件。对软件或者硬件的任何升级会破坏服务可用性。这样的升级一般是在维护时段期间完成的,在此期间服务对于用户不可用。可替换地,服务网络是双重的,从而服务在其中一个网络上一直可用。在所述第一种方法中,服务被中断。在所述第二种方法中,必须构建冗余网络并小心维护。
因此,迫切需要一种更好的解决方法以便能够组成、管理、改变或者升级网络系统的拓扑。
发明内容
在此描述了一种用于改变在网络环境中具有连接到第二节点的第一服务的第一节点的方法和系统。在本发明的一个方面,一种典型的方法包括在所述第一节点动态地启动第二服务,将所述第二服务连接到第二节点,将服务请求定向到所述第二服务,并且终止所述第一服务。
在一个特定的典型实施例中,该方法包括确定所述服务请求是否来自新的数据交互,如果该服务请求来自新的数据交互则发送该服务请求至所述第二服务,并且如果该服务请求来自已有的数据交互则发送该服务请求至所述第一服务。而且,当预先指定的条件满足时所述第一服务被终止。在一个实施例中,所述预先指定的条件可能包括需要处理的一定数据量。可替换地,所述预先指定的条件可能包括一个时间段。在一个实施例中,在所述预先指定的条件被满足前的任何时间,所述第二服务可能被终止并回退(roll back)到第一服务。
本发明包括运行这些方法的系统,以及当在数据处理系统上执行时可以引起所述系统执行这些方法的机器可读的介质。本发明的其它特点可以通过下面的附图和详细描述而更加明白。
附图说明
本发明通过示例的方式而说明,并且不限于附图中的图示,其中类似的参考符号表示相似的元件。
图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模块和服务处理模块之间发送。在一个实施例中,跨度超过一个结构单元的数据包可能要求具有数据包尾部(packet trailer)。
图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处理器,例如摩托罗拉公司的PPC 7400。可以利用其它CPU。在一个实施例中,所述硬件加速设备414可以实现为ASIC。
所述GPC负责接收新的流的至少第一个数据包,并且确定该流应当如何处理。运行在所述GPC上的软件确定应该对所述新的流应用哪种服务,以及使用哪种快速路径操作(如果有的话)以处理属于该流的其他数据包。
所述硬件加速设备414包含结构接口,快速路径数据包处理,以及对GPC的低速路径接口。所述结构接口实现了在基于单元的交换结构上发送数据包所要求的分段和重组。所述快速路径实现了一系列基元指令,例如完全和不完全的网络地址转换(NAT),传输控制协议(TCP)连接接合,以及因特网协议(IP)校验和重新计算,这些基元指令为置于快速路径上的每个流而编程。所述低速路径接口是PPC总线管理器,允许对GPC DRAM完全访问。所述硬件加速设备还以基于令牌(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总线的另一个UART 455。所述UART 455提供数据给远程终端,例如主控制台456。
图6A显示了根据本发明一个实施例的典型管理模块的简化方框图。在一个实施例中,所述管理模块600包括通用CPU 601,基本外围设备602(包括存储器控制器、定时器、直接存储器访问(DMA)和中断),DRAM 603,以及交换结构接口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可以包括过滤器VSM 711,路由器VSM 712,端口共享VSM 713,虚拟专用网络(VPN)VSM 714,以及另一个路由器VSM 715。这些组件中的每一个可以服从于对应用户所指定的配置而动态加载或者卸载。在一个实施例中,对应用户可以通过管理虚拟服务器707的用户接口而指定或配置所述虚拟服务器706。VSM的多个实例可以同时被加载,例如路由器VSM 712和715。
另外,根据本发明一个实施例,所述VSM的多个实例可以包含不同版本。例如,路由器VSM 712可以具有与路由器VSM 715不同的版本。每个VSM可以独立地改变或者升级而不中断其它VSM的其它服务。所述虚拟服务器的拓扑可以在功能方面被改变而不中断正在提供的服务,这将在下面进一步详细描述。因此,当改变拓扑或者升级VSM时,终端用户不会察觉。
而且,每个虚拟服务器独立工作而不对其它服务器进行任何干扰。例如,如果虚拟服务器705崩溃,其它虚拟服务器704和706不会受到影响。因此,虚拟服务器704和706可以继续工作,同时虚拟服务器705可以自身重新启动以恢复。虚拟服务器之间的资源在硬件级别进行管理,从而确保每个虚拟服务器具有足够的资源进行工作。因此一个虚拟服务器的故障不会损害其它服务器的工作。
图8显示了根据本发明一个实施例的虚拟服务模块(VSM)的典型例。在一个实施例中,每个服务模块是独立完备的数据和相关处理软件的模块,所述处理软件具有同时包含可执行代码和元数据的档案文件,所述元数据将该服务模块集成到网络系统中。每个服务模块可以模拟分立的网络元件,例如防火墙、过滤器、负荷平衡器、路由器等等。
在一个实施例中,虚拟服务模块可能属于对象类,所述对象类中可以存在每个虚拟服务模块的一个或多个实例。对象是用面向对象编程语言编写的独立程序模块。对象是被组织为在运行期互相嵌入和协作而不进行任何成组的预链接或预编译的软件组件。可以创建特定类型的虚拟服务模块的一个或多个实例。例如,模拟表示防火墙的虚拟服务模块的类可以具有贯穿所述虚拟图嵌入多个用户的虚拟服务器的虚拟服务模块的多个实例。然而,每个VSM的一个或多个实例可以作为所述虚拟网络图的一部分存在。按层次创建类,并且继承使得在层次中更高层的类的知识可以向下传递给更低层次的其它类(子类)。
虚拟服务模块可以封装为单独的二进制镜像。所述镜像包含同时具有可执行代码和元数据的档案文件,所述元数据将该虚拟服务模块集成到系统中。所述元数据包括描述由虚拟服务模块所支持的各种配置参数的信息,以及所需要的用于通过命令行接口(CLI)配置所述模块的任何特定命令。使用所述信息,网络系统可以很容易集成所述虚拟服务模块而让用户不知道何种功能是底层系统内置以及何种功能是后来添加的。在一个实施例中,扩展标记语言(XML)可以用于格式化所述元数据。
参考图8,在一个实施例中,每个VSM实例包括多个互相协作的部分。VSM 800可以看作是多个子部分的高度抽象,所述子部分包括管理组件801,流设置组件802,以及数据包处理组件803。VSM实例800还具有描述其与其它组件关系的端口805。该端口同时被管理组件801和流设置组件802使用。
管理组件801负责连接所述虚拟网络系统公共的各种管理接口。该组件还维护任何所需的全局信息,并且通过与外部实体例如路由器和认证机构通信而收集信息。
流设置组件802是VSM的一部分,实际上存在于所述虚拟网络图内。它作为VSM的一部分,负责第一个数据包的处理,确定通过所述虚拟网络图的路径,并为流创建动作列表。
数据包处理组件803是VSM的抽象部件。数据包处理组件803可以包含被编程到硬件加速器(例如图4B中的硬件加速ASIC 414)内的动作列表。需要超出标准基元指令所能完成的处理的VSM会继续处理所述流设置组件中的数据包。将每个流按照所述的扩展流启动类型而启动的VSM可以在任何时候绑定动作列表,但是很常见的是某些VSM可以处理整个流而从来不需要切换到硬件协助(例如,硬件加速器)。在一个实施例中,即使VSM已经绑定了动作列表,该VSM仍可能处理由所述动作列表报告的异常状况,以应付不常见事件出现时所需的更复杂的处理。
每个所述VSM组件可以映射到系统中不同的物理电路板。在一个实施例中,管理模块(MM)可以包括交换结构硬件。服务处理模块(SPM)(也称为流处理模块)可以包含一个或多个服务处理引擎(SPE)。每个引擎可以由通用处理器和数据包处理硬件加速器(例如图4B中的硬件加速ASIC 414)组成。I/O模块(IOM)(例如图2中的I/O模块201)可以通过一个或多个I/O引擎(IOE)而支持一个或多个外部I/O端口。该引擎可以由通用处理器所控制的网络处理器所组成。在一个实施例中,所述网络处理器可以是Vitesse半导体公司的Vitesse网络处理器,并且所述通用处理器可以是摩托罗拉公司的PowerPC PPC7400CPU。还可以使用其它厂商的处理器。
在一个实施例中,VSM的管理组件运行在所述MM上。所述流设置组件运行在一个FPE上的GPP上。数据包处理在硬件加速ASIC(例如图4B中的ASIC 414)中进行处理,特殊情况下通过传递异常给所述GPP而处理。VSM不会知道IOE,取而代之的是与同时表示物理的和逻辑的I/O端口的所述FPE上的对象进行相互作用。VSM的各种组件通过由系统软件提供的应用程序编程接口(API)而进行通信。这些API对通信路径进行抽象,从而所述模块并不知道通信是如何实现的。
所述流设置组件进行初始数据包处理,确定通过虚拟网络图的数据包路径,并且为流建立动作列表。流可以是特定的相关联的数据包的流。例如,在特定的TCP连接上服务器发送给客户端的数据流就是流。
所述数据包处理组件是虚拟服务模块的抽象部件。对于可以利用由所述虚拟网络系统提供的标准处理基元指令的虚拟服务模块,所述数据包处理组件包含被编程到硬件加速器内的动作列表。需要超出数据包处理组件中的标准基元指令所能完成的数据包处理的虚拟服务模块会在流设置处理组件中继续处理数据包。将每个相关联的数据包流按照所述的扩展流设置类型进行启动的虚拟服务模块可以在任何时候绑定动作列表,但是很常见的是某些虚拟服务模块可以处理整个相关联的数据包流而从来不切换到硬件协助。
动作列表是虚拟服务模块想要对给定的相关联的数据包流中的每个数据包应用的处理基元指令列表。处理基元指令是单个的基本数据包转换操作。例如,缩减IP TTL域或者重新计算IP校验和域均是处理基元指令。组合动作列表是给定的顺序节点列表中所有节点的每个虚拟服务模块的动作列表的连接。公共动作列表是对所有到来的数据包应用的全局动作列表。最优化动作列表是最优化之后的组合动作列表。
即使虚拟服务模块已经绑定了动作列表,该虚拟服务模块的流设置组件可以处理由所述动作列表报告的异常状况,以应付不常见事件出现时所需的更复杂的处理。一个或多个虚拟服务模块实例还具有描述其与其它组件关系的端口以及具有与所述虚拟网络系统外部的组件进行通信的接口。所述端口同时被管理组件和流设置组件使用。
图9显示了根据本发明一个实施例的典型流设置处理图。在一个实施例中,系统900包括I/O模块901,服务处理模块(即流处理模块)902,以及另一个I/O模块903。所述SPM 902包括可以包含多个VSM 905的流设置容器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包括组成低速路径的GPP 1001以及组成快速路径的硬件加速器1002。每个数据包都尽可能由硬件加速器1002进行处理,但是一旦遇到一个未绑定VSM(例如VSM 1003),加速器1002将其转发给GPP 1001以进行进一步处理。一旦数据包被传递到GPP 1001,其处理即保留在此处,即使后续的VSM(例如VSM 1004)是绑定的。这使得系统可以避免将数据包在其仅仅被部分处理时向下移回到硬件层的复杂而开销很大的问题,并且还使得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通过路由器VSM 1104、防火墙VSM 1105、加密套接字协议层(SSL)VSM版本I 1106以及负荷平衡器VSM 1107处理数据流。当接收到SSL VSM的升级请求时(例如通过管理虚拟服务器的用户接口),SSL VSM版本II 1108的另一个实例被启动。一旦所述SSL VSM版本II 1108被启动,所述系统通过边1109将该SSL VSM1108连接到防火墙VSM 1105并且通过边1110将SSL VSM 1108连接到负荷平衡器VSM 1107。因此,SSL VSM版本II 1108和SSL VSM版本I 1106并行运行,如配置1102所示。
然后所述系统将任何新的流数据定向到所述新执行的SSL VSM版本II1108。该SSL VSM 1108处理新的数据流并且此后将数据发送给负荷平衡器VSM 1107。同时,系统继续将已有的数据流定向到SSL VSM版本I 1106。该并行处理继续进行直到某些条件满足。在一个实施例中,所述条件可以是预先指定的需要处理的已有的流的数据量。在可替换实施例中,所述条件可以是预先指定的时间段。
根据本发明一个实施例,在所述条件被满足前的任何时间,升级都可以被即时中止。在一个实施例中,该中止请求可以通过管理模块的用户接口(例如,管理虚拟服务器的接口)输入,例如上述的图6中的管理模块600。也可以使用其它通道以接收所述请求。
一旦所述条件被满足,所述系统将所有的通信定向到所述新的SSL VSM1108。一旦该SSL VSM 1108稳定后,系统分别断开SSL VSM 1106和防火墙VSM 1105以及负荷平衡器VSM 1107之间的边1111和边1112的连接。此后,SSL VSM 1106被终止并从所述图中删除,如配置1103所示。因此,SSL VSM服务被动态升级并且原先由SSL VSM 1106提供的服务没有被中断。该处理将所述图从配置1102转换到1103,也称为提交操作1130。
如上所述,在所述条件被满足前的任何时间,升级可以被即时中止。当升级被中止时,所述系统将所有的新的流数据定向到旧的服务,例如SSL服务1106。然后所述系统断开边1109和边1110的连接。因此,对应的虚拟服务器被返回到1120,回到其升级完成前的配置。该过程也成为回退过程。所有被启动通过SSL服务1108的流被系统终止。此前通过SSL服务1106的旧的流继续通过而没有任何变化。如果在所述条件满足前没有收到中止请求,所述新的SSL VSM会接管旧的SSL VSM 1106。因此,所述图的配置被提交操作1130从配置1102转换到1103。
图11B显示了说明根据本发明一个实施例的升级VSM的典型方法的流程图。在一个实施例中,该方法说明了对改变如下第一节点的请求的处理,所述第一节点具有在网络环境中连接到第二节点和第三节点的第一服务。所述方法1150包括在第一节点动态启动第二服务,将所述第二服务连接到第二节点和第三节点,将服务请求定向到第二服务,并且终止第一服务。在一个可替换实施例中,该方法进一步包括确定所述服务请求是否来自新的数据交互,如果所述服务请求来自新的数据交互则将该服务请求发送到第二服务,并且如果所述服务请求来自已有数据交互则将该服务请求发送到第一服务。
参考图11B,当接收到升级请求时,在方块1151,系统动态启动新的服务(例如,具有升级后版本的VSM实例),同时已有服务(例如需要升级的已有VSM)仍然处理从第一节点到第二节点的数据流。在方块1152,系统将所述新的VSM连接到第一和第二节点。在方块1153,系统将新的数据流定向到所述新的VSM,同时将已有的数据流定向到已有VSM以进行处理。因此新的和已有的数据流分别由所述新的和已有的VSM并行地处理。在方块1154,系统检查预先指定的条件是否满足。在一个实施例中,所述条件可以是剩下待处理的已有的数据流的量。在一个可替换实施例中,所述条件可以是剩下的时间段。可以利用其它的条件。所示并行处理继续进行直到所述条件被满足。一旦所述条件被满足,在方块1155,系统将所有的数据流定向到新的VSM并且在方块1156终止已有的VSM。
如上所述,在所述条件被满足前的任何时间,升级可以被即时中止。如果在方块1157接收到中止请求,在所述条件满足之前,所述图的配置回退到其原先的配置。在一个实施例中,在方块1158,系统将所有新的流定向到旧的服务(例如SSL VSM 1106),终止通过新的服务(例如SSL VSM 1108)的流,并且使通过旧的服务(例如SSL VSM 1106)的流继续通过。此后,在方块1159,系统终止所述新的服务(例如SSL VSM 1108)以完成回退操作。
传统改变服务器中设备的拓扑的方法会中断由该服务器提供的服务。根据本发明一个实施例,虚拟服务器的拓扑可以动态改变而不中断所述虚拟服务器中任何节点提供的服务。节点可以添加到或者从虚拟网络图删除。当一个节点被添加到虚拟网络图中时,它将一条边取代为一个节点和两条边。框架同时保留所述旧的边和新的节点,直到完成拓扑改变。框架将数据包发送到相同边,所述边处理该数据包所属的流。框架从为每个流保留的流路径获取该信息。它将新的流的第一个数据包发送给指向所述新的节点的边,并且相应地设置所述流路径。一旦完成拓扑改变,旧的边从所述图中删除。如果处理中指定的一个完成条件达到时,则认为拓扑改变完成。所述拓扑改变过程一直进行到通过所述旧的边的流的数量达到指定值或者直到满足一定的进行时间。
图12A显示了说明根据本发明一个实施例的改变虚拟网络系统拓扑的典型方框图。参考图12A,在一个实施例中,拓扑的初始配置1201通过路由器VSM 1204、防火墙VSM 1205、加密套接字协议层(SSL)VSM 1206以及负荷平衡器VSM 1207处理数据流。当接收到改变请求(例如添加VPNVSM到所述图)时(例如通过管理虚拟服务器的用户接口),启动VPN VSM1208的实例。一旦该VPN VSM 1208被启动,所述系统通过边1209将该VPN VSM 1208连接到防火墙VSM 1205并且通过边1210将该VPN VSM1208连接到负荷平衡器VSM 1207。因此,VPN VSM 1208和连接VSM 1206与VSM 1205的边1211是并行运行的,如配置1202所示。
然后所述系统将任何新的流数据定向到所述新执行的VPN VSM 1208。所述VPN VSM 1208处理该新数据流并且此后将数据发送到SSL VSM1206。同时,所述系统继续通过边1211将已有数据流定向到SSL VSM 1206。该并行处理继续进行直到某些条件满足。在一个实施例中,所述条件可以是需要处理的已有流的预先指定的数据量。在一个可替换实施例中,所述条件可以是预先指定的时间段。在所述提交(例如提交1230)条件满足前的任何时间,所述拓扑改变可以被中止。如果首先满足所述条件,则所述配置看起来与配置1203类似。如果所述条件满足前改变被中止,则所述系统将所述图从配置1202返回到(例如回退1220)原先的配置,例如配置1201。
一旦所述条件被满足,所述系统将所有的通信定向到所述新的VPNVSM 1208。一旦该VPN VSM 1208稳定后,系统断开SSL VSM 1206和防火墙VSM 1205之间的边1211的连接。因此,VPN VSM服务被动态添加到所述图中并且原先由边1211提供的服务没有被中断。
如果所述改变被中止,所述系统通过边1211将所有新的流数据定向到SSL VSM 1206。系统终止通过边1209、VPN VSM 1208以及边1210的任何流。系统继续通过边1211将已有数据流定向到SSLVSM 1206。系统断开边1209和1210以及VPN VSM 1208的连接。由此所述图被返回到(例如回退1220)原先的拓扑。
图12B显示了说明根据本发明一个实施例改变拓扑的典型方法的流程图。在一个实施例中,所述方法说明了对改变如下拓扑的请求的处理,所述拓扑在网络环境中具有第一节点和第二节点之间的直接连接。所述方法包括动态启动新的服务,所述服务需要添加在第一和第二节点之间,将所述新的服务节点连接到第一和第二节点之间,将对所述新的服务的服务请求从第一节点定向到所述新的节点,并且此后将该请求发送到第二节点,并且终止第一和第二节点之间的直接连接。在一个可替换实施例中,该方法进一步包括确定所述服务请求是否来自新的数据交互,如果所述服务请求来自新的数据交互则将该服务请求发送到所述新的服务,并且如果所述服务请求来自已有数据交互则将该服务请求发送到第一和第二节点之间的直接连接。
参考图12B,当在方块1251处接收到请求时,所述系统动态启动新的服务,所述新的服务需要添加在第一和第二节点之间,所述第一和第二节点通过一条边互相直接连接。当所述新的服务被启动后,在方块1252,系统将新的服务连接到第一和第二节点。然后系统将新的数据流从第一节点定向到所述新的服务,该新的服务处理新的数据流并将数据发送到第二节点。
同时,第一节点继续通过直接连接第一和第二节点的边将已有数据流发送到第二节点。这些并行处理继续进行直到某些条件满足,所述条件由系统在方块1254检查。如果所述条件满足,在方块1255,系统指示第一节点发送所有数据流到所述新的服务,该新的服务处理所述数据并且发送到第二节点。一旦新的服务准备好并运行,在方块1256,系统断开直接连接第一和第二节点的边。
如上所述,在所述条件被满足前的任何时间,所述改变可以被即时中止。如果在方块1257接收到中止请求,在所述条件满足之前,所述图的配置回退到其原先的配置。在一个实施例中,在方块1158,第一节点将所有数据发送到第二节点并且在方块1259处所述新的服务节点(例如VPN VSM 1208)从图中断开连接(例如边1209和1210)。此后,系统终止所述新的服务以完成回退操作。
图13A显示了说明根据本发明一个实施例的虚拟网络系统拓扑改变的典型方框图。参考图13A,在一个实施例中,拓扑的初始配置1301通过路由器VSM 1304、防火墙VSM 1305、VPN VSM 1306以及负荷平衡器VSM1307处理数据流。当接收(例如通过管理虚拟服务器的用户接口)到改变请求(例如从所述图中删除VPN VSM 1306)时,创建边1308以连接防火墙VSM 1305和负荷平衡器VSM 1307。
一旦所述边1308被创建和连接,所述系统指示防火墙VSM 1305直接通过边1308将任何新的数据流发送到负荷平衡器VSM 1307,同时已有的数据流由防火墙VSM 1305通过VPN VSM 1306发送到负荷平衡器VSM 1307。因此,边1308和VPNVSM 1306是并行运行的,如配置1202中所示。该并行处理继续进行直到某些条件满足。在一个实施例中,所述条件可以是需要处理的已有流的预先指定的数据量。在一个可替换实施例中,所述条件可以是预先指定的时间段。
类似地,根据本发明一个实施例,在所述条件被满足前的任何时间,所述改变可以被即时中止。在一个实施例中,所述中止请求可以通过管理模块的用户接口(例如管理虚拟服务器的接口)而输入,例如上述的图6中的管理模块600。
一旦所述条件被满足,所述系统通过边1308将所有的通信从防火墙VSM 1305直接定向到负荷平衡器VSM 1307。一旦所述边1308的数据处理稳定后,系统断开VPN VSM 1306和防火墙VSM 1305以及负荷平衡器VSM1307之间的边1309和1310的连接。此后,VPN VSM 1306被中止并且从所述图中删除。由此,VPN VSM服务从所述图中被动态删除,并且原先由虚拟服务器提供的服务没有被中断。
如果所述变化被中止,所述系统通过边1309和1310将所有新的流数据定向到VPN VSM 1306。系统中止通过边1308的任何流。系统继续通过边1309和1310将已有数据流定向到VPN VSM 1306。此后,系统断开边1308的连接。因此所述图返回到(例如回退1320)原先的拓扑。
图13B显示了说明根据本发明一个实施例改变拓扑的典型方法的流程图。在一个实施例中,所述方法说明了对改变如下拓扑的请求的处理,所述拓扑具有第一节点、第二节点和第三节点,第一节点直接连接到第二节点并且第二节点直接连接到第三节点。所述方法包括动态连接第一和第三节点,将服务请求从第一节点直接定向到第二节点,并且终止第二节点。在一个可替换实施例中,该方法进一步包括确定所述服务请求是否来自新的数据交互,如果所述服务请求来自新的数据交互则将该服务请求从第一节点直接发送到第三节点,并且如果所述服务请求来自已有数据交互则将该服务请求从第一节点发送到第二节点并从第二节点发送到第三节点。
参考图13B,当在方块1351处接收到请求时,所述系统动态连接第一节点和第三节点,其中所述第一和第三节点通过其间的第二节点连接。一旦第一和第三节点之间的连接被创建,在方块1352,系统将新的数据流定向到第一和第三节点之间的直接连接。同时,第二节点仍然处理从第一节点接收到的已有数据流,并且此后将所述数据发送到第三节点。该并行处理继续进行直到在方块1353一系列条件被满足。一旦满足,在方块1354,所述系统将所有数据流从第一节点直接定向到第三节点而不经过第二节点。在方块1355,第二节点由于不再需要而被终止并从所述图中删除。
如上所述,在所述条件被满足前的任何时间,所述改变可以被即时中止。如果在方块1356接收到中止请求,在所述条件满足之前,所述图的配置回退到其原先的配置。在一个实施例中,在方块1357,系统将所有新的数据从第一节点定向到第二节点,终止在第一和第二节点之间直接通过的任何剩下的流。此后,在方块1358,系统删除连接第一和第二节点的边,以完成回退操作。
图14显示了说明根据本发明一个实施例的虚拟网络系统拓扑改变的另一个典型方框图。参考图14,在一个实施例中,拓扑的初始配置1401通过路由器VSM 1404、防火墙VSM 1405、SSL VSM 1406以及负荷平衡器VSM1407处理数据流。当通过管理虚拟服务器的用户接口接收到改变请求时,例如,添加VPN VSM 1408并且将SSL VSM 1406从版本I升级到版本II 1409,系统分别启动对应的VPN VSM 1408和SSL VSM版本II 1409。然后所述系统将VPN VSM 1408和SSL VSM 1409连接到防火墙VSM 1405和负荷平衡器VSM 1407。
一旦VPN VSM 1408和SSL VSM 1409正在运行,所述系统指示防火墙VSM 1405将任何新的数据流发送到VPN VSM 1408和SSL VSM 1409分支,并且此后将所述数据发送到负荷平衡器VSM1407。同时已有的数据流由防火墙VSM 1405通过SSL VSM版本I 1406发送到负荷平衡器VSM 1407,如配置1402所示。该并行处理继续进行直到某些条件满足。在一个实施例中,所述条件可以是需要处理的已有流的预先指定的数据量。在一个可替换实施例中,所述条件可以是预先指定的时间段。
一旦所述条件被满足,所述系统将所有的通信从防火墙VSM 1405定向到VPN VSM 1408和SSL VSM 1409分支,并且此后发送到负荷平衡器1407。一旦VPN VSM 1408和SSL VSM 1409分支稳定后,系统终止SSL VSM版本I 1406并将其从所述图中移除,如配置1403所示。由此,VPN VSM 1408服务被添加到图中且所述SSL VSM被动态升级,并且整个处理过程中正在提供的服务没有被中断。类似于图11A、12A和13A中的操作,图14中的实施例包括回退操作1420(如果改变被中止)和提交操作1430(当所述对应条件满足)。
可以理解,更多或者更少的处理可以结合到附图说明的方法中而不背离本发明的范围,并且在此显示和描述的方块的排列并不包含特定顺序。进一步可以理解在此结合附图描述的处理可以被包含在机器执行的指令中,例如软件。所述指令可以引起以这些指令编程的通用处理器或者专用处理器执行所描述的操作。可替换地,所述操作可以由特定硬件组件进行,所述硬件组件包含硬件逻辑以用于执行所述操作,或者由编程计算机组件和定制硬件组件的任何组合执行。
所述方法可以提供为计算机程序产品,所述计算机程序产品可以包括机器可读介质,其上存储有可以用于为计算机(或其它电子设备)编程以进行所述方法的指令。对于本说明书意图,术语“机器可读的介质”应该认为是包括任何能够存储或者编码指令序列以由机器执行并且使得所述机器进行本发明的任何一种方法的介质。因此术语“机器可读的介质”应该认为是包括但不限于:固态存储器,光盘或磁盘,以及载波信号。而且,本领域中经常以一种或另外的形式(例如,程序、进程、过程、应用程序、模块、逻辑等等)提到软件进行动作或者引起结果。这种表达方式仅仅是一种简略方式,表示由计算机执行该软件引起该计算机的处理器进行动作或者产生结果。
在前述的说明书中,其中参考特定典型实施例描述了本发明。很显然可以对其进行各种修改而不背离在所附权利要求书中提出的本发明更广泛的精神和范围。因此,说明书和附图应被认为是具有示例意义而不是限制意义的。
Claims (17)
1、一种用于处理对第一节点的改变请求的方法,所述第一节点具有在网络环境中连接到第二节点的虚拟服务模块,该方法包括:
在第一节点动态启动新的虚拟服务模块;
将新的虚拟服务模块连接到第二节点;
将数据流定向到所述新的虚拟服务模块;以及
终止已有的虚拟服务模块。
2.根据权利要求1所述的方法,其中在将所述将数据流定向到所述新的虚拟服务模块的步骤之前,所述方法还包括:确定数据流是新的数据流。
3.根据权利要求1所述的方法,其中当预先指定的条件满足时所述已有的虚拟服务模块被终止。
4.根据权利要求3所述的方法,其中所述预先指定的条件包括需要处理的数据量。
5.根据权利要求3所述的方法,其中所述预先指定的条件包括经过的时间段。
6.根据权利要求1所述的方法,其中所述对第一节点的改变请求通过用户接口的输入被接收。
7.根据权利要求3所述的方法,其进一步包括:
检测在所述条件满足前所述请求是否被中止;以及
将所述第一节点的配置动态回退到其原先的配置。
8.根据权利要求7所述的方法,其中回退操作包括:
将所有的数据流定向到所述已有的虚拟服务模块;以及
终止所述新的虚拟服务模块的所有数据处理。
9.根据权利要求8所述的方法,其中终止所述新的虚拟服务模块的所有数据处理的步骤包括:
从所述网络断开新的虚拟服务模块的连接;以及
终止所述新的虚拟服务模块。
10.一种用于处理改变拓扑的请求的方法,所述拓扑在网络环境中具有第一节点和第二节点之间的直接连接,所述方法包括:
动态启动新的服务,所述服务准备被添加到第一节点和第二节点之间;
将新的服务节点与第一和第二节点连接;
将服务请求从第一节点定向到所述新的服务节点,并且此后将所述请求发送到第二节点;以及
终止第一和第二节点之间的直接连接。
11.根据权利要求10所述的方法,其中在将所述将服务请求从第一节点定向到所述新的服务节点并且此后将所述请求发送到第二节点的步骤之前,所述方法还包括:确定服务请求来自新的数据交互。
12.根据权利要求10所述的方法,其中当预先指定的条件满足时所述直接连接被终止。
13.根据权利要求12所述的方法,其中所述预先指定的条件包括需要处理的数据量。
14.根据权利要求12所述的方法,其中所述预先指定的条件包括经过的时间段。
15根据权利要求10所述的方法,其中在通过所述第一和第二节点之间的直接连接处理服务请求的同时,所述新的服务与第一和第二节点之间的连接被建立。
16.根据权利要求12所述的方法,其进一步包括:
检测在所述条件满足前所述请求是否被中止;以及
将所述第一和第二节点之间的配置动态回退到其原先的配置。
17.根据权利要求16所述的方法,其中回退操作包括:
将所有的服务请求从第一节点直接定向到第二节点;以及
终止所述新的服务。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/141,444 US7246178B2 (en) | 2002-05-07 | 2002-05-07 | Methods and systems for changing a topology of a network |
US10/141,444 | 2002-05-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1650287A CN1650287A (zh) | 2005-08-03 |
CN100454285C true CN100454285C (zh) | 2009-01-21 |
Family
ID=29399663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038101475A Expired - Lifetime CN100454285C (zh) | 2002-05-07 | 2003-04-11 | 用于改变网络拓扑的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7246178B2 (zh) |
EP (1) | EP1506494A1 (zh) |
JP (1) | JP2005524908A (zh) |
CN (1) | CN100454285C (zh) |
AU (1) | AU2003226371A1 (zh) |
CA (1) | CA2483292A1 (zh) |
WO (1) | WO2003096214A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345562A (zh) * | 2014-12-16 | 2018-07-31 | 华为技术有限公司 | 多路服务器及其信号处理方法 |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US7246178B2 (en) | 2002-05-07 | 2007-07-17 | Nortel Networks Limited | Methods and systems for changing a topology of a network |
US7240325B2 (en) * | 2002-09-11 | 2007-07-03 | International Business Machines Corporation | Methods and apparatus for topology discovery and representation of distributed applications and services |
US7336604B2 (en) * | 2003-02-13 | 2008-02-26 | Innomedia Pte | Network access module for supporting a stand alone multi-media terminal adapter |
WO2004107131A2 (en) | 2003-05-28 | 2004-12-09 | Caymas Systems, Inc. | Policy based network address translation |
JP4265326B2 (ja) * | 2003-08-12 | 2009-05-20 | 株式会社日立製作所 | サービス処理方法及びシステム並びにその処理プログラム |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
CA2574776A1 (en) | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
EP1771979B1 (en) | 2004-07-23 | 2011-11-23 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
JP2008510232A (ja) | 2004-08-13 | 2008-04-03 | サイトリックス システムズ, インコーポレイテッド | 多数のリモートアクセスサーバにわたる処理整合性を維持する方法 |
US7958208B2 (en) * | 2004-09-22 | 2011-06-07 | At&T Intellectual Property I, L.P. | System and method for designing a customized switched metro Ethernet data network |
US7748032B2 (en) | 2004-09-30 | 2010-06-29 | Citrix Systems, Inc. | Method and apparatus for associating tickets in a ticket hierarchy |
US8613048B2 (en) | 2004-09-30 | 2013-12-17 | Citrix Systems, Inc. | Method and apparatus for providing authorized remote access to application sessions |
US7711835B2 (en) | 2004-09-30 | 2010-05-04 | Citrix Systems, Inc. | Method and apparatus for reducing disclosure of proprietary data in a networked environment |
US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
CN102104632B (zh) | 2005-01-24 | 2012-08-22 | 茨特里克斯系统公司 | 在网络中对动态产生的对象执行缓存的系统和方法 |
US8024568B2 (en) | 2005-01-28 | 2011-09-20 | Citrix Systems, Inc. | Method and system for verification of an endpoint security scan |
EP1882220A2 (en) * | 2005-03-26 | 2008-01-30 | Privasys, Inc. | Electronic financial transaction cards and methods |
EP1938488B1 (en) | 2005-10-21 | 2015-09-09 | T-Mobile, USA, Inc | System and method for determining device location in an ip-based wireless telecommunications network |
KR100650741B1 (ko) * | 2005-12-02 | 2006-11-30 | 한국전자통신연구원 | 네트워크 프로세서의 이진코드와 가상 포워딩 컴포넌트의동적 바인딩 처리장치 및 방법 |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US7921184B2 (en) | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
WO2008049132A2 (en) | 2006-10-20 | 2008-04-24 | T-Mobile Usa, Inc. | System and method for determining a subscriber's zone information |
US8953567B2 (en) * | 2006-10-20 | 2015-02-10 | T—Mobile USA, Inc. | System and method for utilizing IP-based wireless telecommunications client location data |
US8533846B2 (en) | 2006-11-08 | 2013-09-10 | Citrix Systems, Inc. | Method and system for dynamically associating access rights with a resource |
US7738469B1 (en) * | 2007-06-04 | 2010-06-15 | Radware Ltd. | Multi-virtual service module pinhole or connection class offload |
US8553654B2 (en) * | 2007-06-27 | 2013-10-08 | Telefonaktiebolaget L M Ericsson (Publ) | Method for expression evaluation and network node implementing such a method |
US8320373B2 (en) | 2007-08-23 | 2012-11-27 | Qualcomm Incorporated | Packet-based processing system |
US20100174811A1 (en) * | 2009-01-05 | 2010-07-08 | Microsoft Corporation | Network isolation and identity management of cloned virtual machines |
CN104303088A (zh) * | 2012-03-14 | 2015-01-21 | 惠普发展公司,有限责任合伙企业 | 可替换模块化光学连接组件 |
JP6094051B2 (ja) * | 2012-04-13 | 2017-03-15 | 日本電気株式会社 | 表示装置、表示方法、及び、表示プログラム |
US10129182B2 (en) | 2012-06-29 | 2018-11-13 | Juniper Networks, Inc. | Methods and apparatus for providing services in distributed switch |
US10097481B2 (en) | 2012-06-29 | 2018-10-09 | Juniper Networks, Inc. | Methods and apparatus for providing services in distributed switch |
CN103905239A (zh) * | 2012-12-30 | 2014-07-02 | 青岛海尔软件有限公司 | 结合虚拟机技术为网站系统提供不停机热部署的方法 |
US9973375B2 (en) * | 2013-04-22 | 2018-05-15 | Cisco Technology, Inc. | App store portal providing point-and-click deployment of third-party virtualized network functions |
US10129207B1 (en) | 2015-07-20 | 2018-11-13 | Juniper Networks, Inc. | Network address translation within network device having multiple service units |
US10469446B1 (en) | 2016-09-27 | 2019-11-05 | Juniper Networks, Inc. | Subscriber-aware network address translation |
CN110087252B (zh) * | 2019-05-30 | 2022-08-30 | 深圳市中航比特通讯技术股份有限公司 | 一种通信网络业务动态变更技术 |
CN112720488A (zh) * | 2020-12-24 | 2021-04-30 | 珠海格力智能装备有限公司 | 基于机器人的第七轴控制方法及装置 |
CN113283925B (zh) * | 2021-04-13 | 2022-08-02 | 支付宝(杭州)信息技术有限公司 | 网络实验分流、节点关系预测方法、装置以及设备 |
CN113792008A (zh) * | 2021-08-31 | 2021-12-14 | 北京百度网讯科技有限公司 | 网络拓扑结构的获取方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5051987A (en) * | 1988-07-20 | 1991-09-24 | Racal-Milgo Limited | Information transmission network including a plurality of nodes interconnected by links and methods for the transmission of information through a network including a plurality of nodes interconnected by links |
US5764736A (en) * | 1995-07-20 | 1998-06-09 | National Semiconductor Corporation | Method for switching between a data communication session and a voice communication session |
US6108689A (en) * | 1996-10-11 | 2000-08-22 | International Business Machines Corporation | Method and system for processing messages in a distributed computing environment |
US6178183B1 (en) * | 1997-05-21 | 2001-01-23 | International Business Machines Corporation | Method and apparatus for receiving conventional telephone calls while connected to the internet |
CN1285671A (zh) * | 1999-08-24 | 2001-02-28 | 松下电器产业株式会社 | 网络拓扑改变、改变的系统和方法 |
Family Cites Families (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1108689A (en) * | 1913-04-12 | 1914-08-25 | Rail Joint Co | Sectional shears for metal bars. |
US5060150A (en) * | 1987-01-05 | 1991-10-22 | Motorola, Inc. | Process creation and termination monitors for use in a distributed message-based operating system |
US5109483A (en) * | 1987-06-15 | 1992-04-28 | International Business Machines Corp. | Node initiating xid exchanges over an activated link including an exchange of sets of binding signals between nodes for establishing sessions |
US5218680A (en) * | 1990-03-15 | 1993-06-08 | International Business Machines Corporation | Data link controller with autonomous in tandem pipeline circuit elements relative to network channels for transferring multitasking data in cyclically recurrent time slots |
US5577028A (en) | 1990-08-31 | 1996-11-19 | Fujitsu Limited | Routing system using a neural network |
IE920032A1 (en) * | 1991-01-11 | 1992-07-15 | Marconi Gec Ltd | Parallel processing apparatus |
US5481735A (en) | 1992-12-28 | 1996-01-02 | Apple Computer, Inc. | Method for modifying packets that meet a particular criteria as the packets pass between two layers in a network |
US5408465A (en) * | 1993-06-21 | 1995-04-18 | Hewlett-Packard Company | Flexible scheme for admission control of multimedia streams on integrated networks |
US5799151A (en) * | 1994-04-04 | 1998-08-25 | Hoffer; Steven M. | Interactive electronic trade network and user interface |
SE9402059D0 (sv) | 1994-06-13 | 1994-06-13 | Ellemtel Utvecklings Ab | Sätt och anordning vid telekommunikation |
US5596723A (en) * | 1994-06-23 | 1997-01-21 | Dell Usa, Lp | Method and apparatus for automatically detecting the available network services in a network system |
US5526414A (en) | 1994-10-26 | 1996-06-11 | Northern Telecom Limited | Dynamically controlled routing using virtual nodes |
US5550816A (en) | 1994-12-29 | 1996-08-27 | Storage Technology Corporation | Method and apparatus for virtual switching |
US5598410A (en) | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
US5583862A (en) | 1995-03-28 | 1996-12-10 | Bay Networks, Inc. | Method and apparatus for routing for virtual networks |
US5592622A (en) | 1995-05-10 | 1997-01-07 | 3Com Corporation | Network intermediate system with message passing architecture |
US5956489A (en) * | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
US5636371A (en) | 1995-06-07 | 1997-06-03 | Bull Hn Information Systems Inc. | Virtual network mechanism to access well known port application programs running on a single host system |
US6055618A (en) | 1995-10-31 | 2000-04-25 | Cray Research, Inc. | Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel |
US5684800A (en) | 1995-11-15 | 1997-11-04 | Cabletron Systems, Inc. | Method for establishing restricted broadcast groups in a switched network |
US5805587A (en) | 1995-11-27 | 1998-09-08 | At&T Corp. | Call notification feature for a telephone line connected to the internet |
JP3609562B2 (ja) | 1996-11-15 | 2005-01-12 | 株式会社日立製作所 | ネットワーク管理システム |
US5781624A (en) | 1996-02-16 | 1998-07-14 | Lucent Technologies Inc. | Method for sharing network resources by virtual partitioning |
US5809025A (en) | 1996-03-15 | 1998-09-15 | Motorola, Inc. | Virtual path-based static routing |
US6085238A (en) | 1996-04-23 | 2000-07-04 | Matsushita Electric Works, Ltd. | Virtual LAN system |
US5845081A (en) * | 1996-09-03 | 1998-12-01 | Sun Microsystems, Inc. | Using objects to discover network information about a remote network having a different network protocol |
US6802068B1 (en) * | 1996-10-16 | 2004-10-05 | International Business Machines Corporation | Addressless internetworking |
JP3688408B2 (ja) | 1996-10-29 | 2005-08-31 | 株式会社東芝 | パケット転送制御方法及びノード装置 |
US5917899A (en) | 1996-12-17 | 1999-06-29 | Ameritech Corporation | Method of connecting a plurality of virtual networks |
US6172990B1 (en) | 1997-06-19 | 2001-01-09 | Xaqti Corporation | Media access control micro-RISC stream processor and method for implementing the same |
US6178453B1 (en) | 1997-02-18 | 2001-01-23 | Netspeak Corporation | Virtual circuit switching architecture |
US5852607A (en) | 1997-02-26 | 1998-12-22 | Cisco Technology, Inc. | Addressing mechanism for multiple look-up tables |
US6072774A (en) * | 1997-05-05 | 2000-06-06 | Motorola | Communication network and method for managing internodal link topology |
US6112249A (en) * | 1997-05-30 | 2000-08-29 | International Business Machines Corporation | Non-disruptively rerouting network communications from a secondary network path to a primary path |
US5918074A (en) | 1997-07-25 | 1999-06-29 | Neonet Llc | System architecture for and method of dual path data processing and management of packets and/or cells and the like |
US6069895A (en) | 1997-08-29 | 2000-05-30 | Nortel Networks Corporation | Distributed route server |
US6041058A (en) | 1997-09-11 | 2000-03-21 | 3Com Corporation | Hardware filtering method and apparatus |
US6658480B2 (en) | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US6130875A (en) * | 1997-10-29 | 2000-10-10 | Lucent Technologies Inc. | Hybrid centralized/distributed precomputation of network signal paths |
US6085247A (en) * | 1998-06-08 | 2000-07-04 | Microsoft Corporation | Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers |
US6101181A (en) | 1997-11-17 | 2000-08-08 | Cray Research Inc. | Virtual channel assignment in large torus systems |
US6047330A (en) | 1998-01-20 | 2000-04-04 | Netscape Communications Corporation | Virtual router discovery system |
US6366947B1 (en) * | 1998-01-20 | 2002-04-02 | Redmond Venture, Inc. | System and method for accelerating network interaction |
US6104962A (en) | 1998-03-26 | 2000-08-15 | Rockwell Technologies, Llc | System for and method of allocating processing tasks of a control program configured to control a distributed control system |
US6324547B1 (en) * | 1998-04-02 | 2001-11-27 | Lucent Technologies Inc. | Method for creating and modifing similar and dissimilar databases for use in intelligent network configurations for telecommunication systems |
US6208623B1 (en) * | 1998-04-13 | 2001-03-27 | 3Com Corporation | Method of combining PNNI and E-IISP in an asynchronous transfer mode network |
US6898791B1 (en) * | 1998-04-21 | 2005-05-24 | California Institute Of Technology | Infospheres distributed object system |
US6377571B1 (en) | 1998-04-23 | 2002-04-23 | 3Com Corporation | Virtual modem for dialout clients in virtual private network |
US6046979A (en) | 1998-05-04 | 2000-04-04 | Cabletron Systems, Inc. | Method and apparatus for controlling the flow of variable-length packets through a multiport switch |
US6647111B1 (en) * | 1998-05-07 | 2003-11-11 | Mci Communications Corporation | System for executing advanced interactive voice response services using service-independent building blocks |
US6212560B1 (en) | 1998-05-08 | 2001-04-03 | Compaq Computer Corporation | Dynamic proxy server |
US7233978B2 (en) * | 1998-07-08 | 2007-06-19 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
US6463078B1 (en) * | 1998-07-22 | 2002-10-08 | Microsoft Corporation | Method for switching protocols transparently in multi-user applications |
US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
US6370381B1 (en) * | 1999-01-29 | 2002-04-09 | Siemens Transportation Systems, Inc. | Multiple channel communications system |
US6570872B1 (en) * | 1999-04-06 | 2003-05-27 | Nortel Networks Limited | Self-configuring distributed switch |
US6678264B1 (en) * | 1999-06-30 | 2004-01-13 | Nortel Networks Limited | Establishing connections with a pre-specified quality of service across a communication network |
US6549516B1 (en) * | 1999-07-02 | 2003-04-15 | Cisco Technology, Inc. | Sending instructions from a service manager to forwarding agents on a need to know basis |
US6760324B1 (en) * | 1999-09-10 | 2004-07-06 | Array Telecom Corporation | Method, system, and computer program product for providing voice over the internet communication |
US6606744B1 (en) * | 1999-11-22 | 2003-08-12 | Accenture, Llp | Providing collaborative installation management in a network-based supply chain environment |
EP1117220A1 (en) * | 2000-01-14 | 2001-07-18 | Sun Microsystems, Inc. | Method and system for protocol conversion |
US7003571B1 (en) * | 2000-01-31 | 2006-02-21 | Telecommunication Systems Corporation Of Maryland | System and method for re-directing requests from browsers for communication over non-IP based networks |
WO2001071525A1 (en) * | 2000-03-23 | 2001-09-27 | Tingo Inc. | System and method for managing user-specific data |
JP2004503011A (ja) | 2000-07-05 | 2004-01-29 | アーンスト & ヤング エルエルピー | コンピュータサービスを提供するための方法および装置 |
US6816500B1 (en) * | 2000-07-10 | 2004-11-09 | 3Com Corporation | Apparatus, method and system for multimedia access network channel management |
US7065573B2 (en) * | 2000-12-05 | 2006-06-20 | Philippe C. Byrnes | Automatic traffic and quality of service control system for communications networks |
WO2002048830A2 (en) * | 2000-12-11 | 2002-06-20 | Phlair, Inc. | System and method for detecting and reporting online activity using real-time content-based network monitoring |
US20020143965A1 (en) * | 2001-04-03 | 2002-10-03 | International Business Machines Corporation | Server application initiated affinity within networks performing workload balancing |
US7392541B2 (en) * | 2001-05-17 | 2008-06-24 | Vir2Us, Inc. | Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments |
US20050198379A1 (en) * | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US20030065738A1 (en) * | 2001-10-01 | 2003-04-03 | Thumb Logic, Inc. | Wireless information systems and methods |
US20030126234A1 (en) * | 2001-11-20 | 2003-07-03 | P-Cube Ltd. | Apparatus, method, and software for analyzing network traffic in a service aware network |
US7835933B2 (en) * | 2002-04-08 | 2010-11-16 | Hewlett-Packard Development Company, L.P. | Method and system for event management in business processes |
US7197553B2 (en) * | 2002-04-19 | 2007-03-27 | Nortel Networks Limited | Network system having a virtual-service-module |
US7246178B2 (en) | 2002-05-07 | 2007-07-17 | Nortel Networks Limited | Methods and systems for changing a topology of a network |
-
2002
- 2002-05-07 US US10/141,444 patent/US7246178B2/en active Active
-
2003
- 2003-04-11 AU AU2003226371A patent/AU2003226371A1/en not_active Abandoned
- 2003-04-11 JP JP2004504135A patent/JP2005524908A/ja active Pending
- 2003-04-11 WO PCT/US2003/011421 patent/WO2003096214A1/en active Application Filing
- 2003-04-11 EP EP03750034A patent/EP1506494A1/en not_active Withdrawn
- 2003-04-11 CA CA002483292A patent/CA2483292A1/en not_active Abandoned
- 2003-04-11 CN CNB038101475A patent/CN100454285C/zh not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5051987A (en) * | 1988-07-20 | 1991-09-24 | Racal-Milgo Limited | Information transmission network including a plurality of nodes interconnected by links and methods for the transmission of information through a network including a plurality of nodes interconnected by links |
US5764736A (en) * | 1995-07-20 | 1998-06-09 | National Semiconductor Corporation | Method for switching between a data communication session and a voice communication session |
US6108689A (en) * | 1996-10-11 | 2000-08-22 | International Business Machines Corporation | Method and system for processing messages in a distributed computing environment |
US6178183B1 (en) * | 1997-05-21 | 2001-01-23 | International Business Machines Corporation | Method and apparatus for receiving conventional telephone calls while connected to the internet |
CN1285671A (zh) * | 1999-08-24 | 2001-02-28 | 松下电器产业株式会社 | 网络拓扑改变、改变的系统和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345562A (zh) * | 2014-12-16 | 2018-07-31 | 华为技术有限公司 | 多路服务器及其信号处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1650287A (zh) | 2005-08-03 |
EP1506494A1 (en) | 2005-02-16 |
JP2005524908A (ja) | 2005-08-18 |
US7246178B2 (en) | 2007-07-17 |
AU2003226371A1 (en) | 2003-11-11 |
WO2003096214A1 (en) | 2003-11-20 |
CA2483292A1 (en) | 2003-11-20 |
US20030212776A1 (en) | 2003-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100454285C (zh) | 用于改变网络拓扑的方法 | |
CN100568216C (zh) | 一种具有虚拟服务模块的设备 | |
US7181746B2 (en) | Initialization, reconfiguration, and shut down of a module function | |
CN102334112B (zh) | 用于虚拟机网络的方法和系统 | |
US6691147B1 (en) | Method and apparatus supporting network communications | |
US7257817B2 (en) | Virtual network with adaptive dispatcher | |
Shiratori et al. | Flexible networks: Basic concepts and architecture | |
US20100058329A1 (en) | Method and apparatus for dynamically instantiating services using a service insertion architecture | |
CN112166579B (zh) | 提供虚拟化网络功能的多服务器架构集群 | |
CN111970249B (zh) | 一种基于DPDK的Modbus协议实现方法和装置 | |
CN112698838A (zh) | 多云容器部署系统及其容器部署方法 | |
US11500690B2 (en) | Dynamic load balancing in network centric process control systems | |
CN103677983A (zh) | 应用的调度方法及装置 | |
CN115827168A (zh) | 一种二进制仿真环境下虚拟机通信的优化方法 | |
US7209971B1 (en) | Architecture and run-time environment for network filter drivers | |
CN107332813A (zh) | 一种acl配置方法、acl配置设备及服务器 | |
US20180302496A1 (en) | Self-Driving Content Distribution | |
CN115167985A (zh) | 一种虚拟化的算力提供方法及系统 | |
US8214851B2 (en) | API interface to make dispatch tables to match API routines | |
EA006307B1 (ru) | Система, способы и устройства, предназначенные для интеграции распределенных приложений | |
US20240103945A1 (en) | Process image sharing across multiple programmable automation controllers | |
CN112348196A (zh) | 一种自适应rdma网络的分布式机器学习系统及方法 | |
CN116016679A (zh) | 一种云原生服务通信方法、装置、设备及存储介质 | |
CN117834704A (zh) | 一云多芯应用的通信方法、装置、计算机设备及存储介质 | |
Matthys et al. | Language and middleware support for dynamism in wireless sensor and actuator network applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20090121 |