CN109450663A - 网络功能的开发方法、系统、计算机设备及存储介质 - Google Patents
网络功能的开发方法、系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109450663A CN109450663A CN201811167339.5A CN201811167339A CN109450663A CN 109450663 A CN109450663 A CN 109450663A CN 201811167339 A CN201811167339 A CN 201811167339A CN 109450663 A CN109450663 A CN 109450663A
- Authority
- CN
- China
- Prior art keywords
- update
- network
- new
- network node
- program
- 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.)
- Pending
Links
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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种网络功能的开发方法、系统、计算机设备及存储介质。所述开发系统包括:存储模块,存储更新程序组件和待更新的网络节点;其中,所述更新程序组件包含将一次事务性更新操作划分而得的多种更新状态进行更新阶段操作的更新程序;编辑模块,用于依据所获取的编辑指令选择所述更新程序组件中的更新程序,以及基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序;保存模块,用于将所述更新事务源程序予以保存。本申请提供一种开发网络更新程序的开发系统,利用其生成的更新应用程序能有效解决因网络状态更新而产生的网络节点数据处理异常的问题,确保网络节点的更新具备ACID属性。
Description
技术领域
本申请涉及网络功能的软件开发的技术领域,特别是涉及一种网络功能的开发方法、系统、计算机设备及存储介质。
背景技术
SDN(Software Defined Network,软件定义网络)是网络虚拟化的一种实现方式,其通过将网络节点控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。这种方式在更新网络节点的网络功能时,易出现更新异常。例如,在更新链路上的多个网络节点的网络功能时,出现多个网络节点更新不一致,进而导致链路上的网络节点出现传递等问题。又如,在更新网络节点的网络功能时,误更新数据面业务的网络状态,从而导致丢包、错传等问题。
因此,在对网络节点中的网络功能进行更新时,需要保持链路上各网络节点的更新不影响网络节点的正常数据面业务。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种网络功能的开发方法、系统、计算机设备及存储介质,用于解决现有技术中网络节点更新时影响网络节点的正常数据面业务的问题。
为实现上述目的及其他相关目的,本申请的第一方面提供一种网络功能的开发系统,包括:存储模块,存储更新程序组件和待更新的网络节点;其中,所述更新程序组件包含将一次事务性更新操作划分而得的多种更新状态进行更新阶段操作的更新程序;编辑模块,用于依据所获取的编辑指令选择所述更新程序组件中的更新程序,以及基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序;保存模块,用于将所述更新事务源程序予以保存。
在所述第一方面的某些实施方式中,所述开发系统还包括编译模块,用于将所述更新事务源程序及所选择的各更新程序编译成可在预确定的运行环境下执行的更新应用程序。
在所述第一方面的某些实施方式中,所述编辑模块还用于导入一更新事务源程序文件。
在所述第一方面的某些实施方式中,所述更新程序组件包含至少一个更新程序,用于检查已备份的更新状态,并基于检查结果执行相应的更新阶段操作。
在所述第一方面的某些实施方式中,所述更新程序组件包含第一更新程序,用于检查已备份的更新状态,并基于检查结果执行相应网络节点的提交更新阶段操作。
在所述第一方面的某些实施方式中,所述更新程序组件包括:第二更新程序,用于在备份读的更新状态期间备份待更新网络节点的网络状态信息;所述第一更新程序还用于匹配预先备份的网络状态信息,以及基于所得到的匹配结果和检查结果执行相应网络节点的提交更新阶段操作;所述编辑模块基于所选择的第一更新程序和第二更新程序所描述的更新规则,生成用于更新相应网络节点的网络状态信息的更新事务源程序。
在所述第一方面的某些实施方式中,所述更新程序组件还包括:第三更新程序,用于将更新后的网络状态信息备份地写入相应网络节点;所述编辑模块基于所选择的第一更新程序和第三更新程序所描述的更新规则,生成用于更新相应网络节点的网络状态信息的更新事务源程序。
在所述第一方面的某些实施方式中,所述编辑模块还按照所选择的更新程序而制定的更新规则,生成用于更新多个网络节点的更新事务源程序。
在所述第一方面的某些实施方式中,所述更新程序组件中包含第四更新程序,用于为分段更新提供隔离操作及对应隔离阶段操作的更新状态;所述编辑模块基于所选择的第四更新程序所描述的更新规则,生成用于按照分段顺序更新所述多个网络节点的更新事务源程序。
在所述第一方面的某些实施方式中,所述编辑模块还用于基于所述更新程序组件而描述事务性更新操作中断后的更新规则,生成用于更新相应网络节点的更新事务源程序。
在所述第一方面的某些实施方式中,所述更新事务源程序用于基于检查中断前备份的更新状态的检查结果,执行以下任一步骤:继续执行所述网络节点的更新操作;取消所述网络节点的更新操作;重复执行所述备份、校验及更新操作,直至更新成功或重复次数满足预设的截止条件。
在所述第一方面的某些实施方式中,所述更新程序组件中的更新程序还用于将所述更新状态以日志、或变量中的任一种形式被记录。
本申请第二方面提供一种网络功能的开发方法,包括:预储更新程序组件和待更新的网络节点;其中,所述更新程序组件包含将一次事务性更新操作划分而得的多种更新状态进行更新阶段操作的更新程序;依据所获取的编辑指令选择所述更新程序组件中的更新程序,以及基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序;将所述更新事务源程序予以保存。
在所述第二方面的某些实施方式中,所述开发方法还包括将所述更新事务源程序及所选择的各更新程序编译成可在预确定的运行环境下执行的更新应用程序的步骤。
在所述第二方面的某些实施方式中,所述还发方法还包括导入一更新事务源程序的步骤。
在所述第二方面的某些实施方式中,所述更新程序组件包含至少一个更新程序,用于检查已备份的更新状态,并基于检查结果执行相应的更新阶段操作。
在所述第二方面的某些实施方式中,所述更新程序组件包含第一更新程序,用于检查已备份的更新状态,并基于检查结果执行相应网络节点的提交更新阶段操作。
在所述第二方面的某些实施方式中,所述更新程序组件包括:第二更新程序,用于在备份读的更新状态期间备份待更新网络节点的网络状态信息;所述第一更新程序还用于匹配预先备份的网络状态信息,以及基于所得到的匹配结果和检查结果执行相应网络节点的提交更新阶段操作;所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:基于所选择的第一更新程序和第二更新程序所描述的更新规则,生成用于更新相应网络节点的网络状态信息的更新事务源程序。
在所述第二方面的某些实施方式中,所述更新程序组件还包括:第三更新程序,用于将更新后的网络状态信息备份地写入相应网络节点;所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:基于所选择的第一更新程序和第三更新程序所描述的更新规则,生成用于更新相应网络节点的网络状态信息的更新事务源程序。
在所述第二方面的某些实施方式中,所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:按照所选择的更新程序而制定的更新规则,生成用于更新多个网络节点的更新事务源程序。
在所述第二方面的某些实施方式中,所述更新程序组件中包含第四更新程序,用于为分段更新提供隔离操作及对应隔离阶段操作的更新状态;所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:基于所选择的第四更新程序所描述的更新规则,生成用于按照分段顺序更新所述多个网络节点的更新事务源程序。
在所述第二方面的某些实施方式中,所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:基于所述更新程序组件而描述事务性更新操作中断后的更新规则,生成用于更新相应网络节点的更新事务源程序。
在所述第二方面的某些实施方式中,所述更新事务源程序用于基于检查中断前备份的更新状态的检查结果,执行以下任一步骤:继续执行所述网络节点的更新操作;取消所述网络节点的更新操作;重复执行所述备份、校验及更新操作,直至更新成功或重复次数满足预设的截止条件。
在所述第二方面的某些实施方式中,所述更新程序组件中的更新程序还用于将所述更新状态以日志、或变量中的任一种形式被记录。
本申请第三方面提供一种开发网络功能的计算机设备,包括:存储单元,存储用于向技术人员提供源程序编辑的开发应用程序;处理单元,用于运行所述开发应用程序以执行如第一方面中任一所述的开发方法。
本申请第四方面提供一种计算机可读存储介质,存储有用于向技术人员提供源程序编辑的开发应用程序;其中,所述开发应用程序在被调用并执行时实现如第一方面中任一所述的网络功能的开发方法。
如上所述,本申请的网络功能的开发方法、系统、计算机设备及存储介质,具有以下有益效果:通过提供在更新前执行备份网络状态的第一更新程序,以及更新时校验所备份网络状态的第二更新程序,有效解决因网络状态更新而产生的网络节点数据处理异常的问题,确保网络节点的更新具备ACID属性。
附图说明
图1显示为本申请开发系统的架构示意图。
图2显示为构成更新前的链路Path1各网络节点和待更新后的链路Path2上各网络节点的网络示意图。
图3显示为本申请开发系统所提供的一种编辑界面。
图4显示为本申请一种网络功能的开发方法的流程图。
图5显示为本申请提供的一种网络节点的更新方法在一实施方式中的流程图。
图6显示为本申请提供的更新方法在又一实施方式中的流程图。
图7显示为本申请更新方法中步骤S220在一实施方式中的流程图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一预设阈值可以被称作第二预设阈值,并且类似地,第二预设阈值可以被称作第一预设阈值,而不脱离各种所描述的实施例的范围。第一网络状态信息和第二网络状态信息均是在描述一个网络状态信息,但是除非上下文以其他方式明确指出,否则它们不是同一个网络状态信息。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
与用户终端、单点服务端的系统更新不同,网络节点的功能更新通常涉及以下四个方面:1)就单个网络节点的功能更新来说,需要具备原子性,即网络节点在执行更新操作时,或者更新成功,或者更新失败;2)链路上所有网络节点需具备一致性,即在一次更新时,所有网络节点的网络功能在更新后保持逻辑一致;3)在更新链路上多个网络节点时,需考虑网络节点的更新顺序,避免更新操作阻碍网络节点的正常运行;4)链路上的多个网络节点在更新后必须具备持久性,即所有网络节点更新后是能够持久地保存在网络节点中,即便在系统异常恢复后也不会被清除或回滚。
由于网络节点的更新具有牵一发而动全身的特点,在更新算法的开发上,技术人员需针对网络节点的更新需求进行设计。由于基于SDN架构而设置的各网络节点和所对应的网络控制器具有分离开来的数据面业务和控制面业务,技术人员利用控制面业务对网络节点的控制时机设计更新算法。这种方式易出现网络节点在控制面业务和数据面业务的冲突,从而导致更新失败。
在此,所述网络节点可以是专用的网络设备,如交换机、路由器等。所述网络节点也可以是虚拟化网络终端,如基于NFV(Network Functions Virtualization,网络功能虚拟化)的网络终端。所述网络终端可被配置在服务器中、基于云架构服务系统中等。所述网络控制器包括但不限于专用的服务器、基于SDN架构设置的软件控制层等。
为此,本申请提供一种网络功能的开发系统,其旨在帮助技术人员开发网络节点的更新算法和开发网络功能等,以确保所得到的更新算法在被执行时保证所更新的所有网络节点的网络状态具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),简称ACID特性。
所述开发系统被配置在技术人员所使用的计算机设备中,其中,所述计算机设备可以是个人电脑、服务器等。请参阅图1,其显示为所述开发系统的架构示意图。所述开发系统包含存储模块11、编辑模块12和保存模块13,各程序模块通过对计算机设备中的存储单元、处理单元等硬件单元的控制执行相应的程序功能。
其中,所述存储模块11存储更新程序组件和待更新的网络节点;其中,所述更新程序组件包含将一次事务性更新操作划分而得的多种更新状态进行更新阶段操作的更新程序;其中,所述更新程序组件包含至少一个更新程序,用于检查已备份的更新状态,并基于检查结果执行相应的更新阶段操作。
在此,所述事务性更新操作表示为实现一个网络功能更新目的而完整地更新一个或多个网络节点的过程。所述事务性更新操作包括但不限于基于线路径迁移、路径初始化、路径备份、单个网络节点的流规则而设置的更新操作等。例如,一次事务性更新操作是更新一条链路上各网络节点的网络状态。
为保证一次事务性更新操作的ACID属性,所述开发系统提供的更新程序组件作为所述开发系统中预设程序库(lib)中的一员,其提供了一组更新程序。其中,各更新程序一方面用于执行事务性更新操作的对应更新阶段,另一方面还备份对应更新阶段的更新状态。在此,按照实际更新需求,一次事务性更新操作可划分为以下多种组合的更新阶段:开始更新阶段、备份读阶段、备份写阶段、隔离阶段、校验和提交更新阶段、结束更新阶段等。每个阶段对应一个更新状态。技术人员按照实际更新需要,在开发事务性更新应用程序时,引入所述更新程序组件中更新程序,使得所设计的更新应用程序按照标准化的更新流程在网络控制器中被执行,以实现对网络控制器及其控制的网络节点的具备ACID属性的事务性更新操作。在此,各更新程序可在执行相应更新阶段操作开始时、或结束时备份相应的更新状态。
为了便于网络控制器进行更新状态的检查,所述更新程序组件还用于将所述更新状态以日志、或变量中的任一种形式被记录。例如,利用变量来描述更新状态,采用更改所述变量的方式记录当前的更新状态。又如,利用记录包含更新状态的日志的方式记录最新的更新状态。与之同备份的,还可以包含与事务性更新操作相关的信息。其中,所述与事务性更新操作相关的信息包括但不限于:待更新的网络节点、事务性更新操作的版本信息等。
在一些示例中,所备份的更新状态对应于事务性更新操作所涉及的更新阶段。例如,在针对事务性更新操作tx的各阶段,更新程序组件可对应各更新阶段而设置的更新状态如表1所示:
表1
其中,在备份读阶段的更新状态中,<tx,READ,Match,"ACTION"/"STAT">中的Match用于匹配流,即“读(READ)哪一个流”,“ACTION”/“STAT”用于区别读取的流是持久性状态(如,在交换机实际流表的action域中)还是易失性状态(如,在交换机实际流表的STAT域中)。
在备份写阶段的更新状态中,<tx,WRITE,Match,Action>表示写(WRITE)某一个流(如满足Match中的匹配规则),将对该流的行为写成Action中的描述(如丢弃、转发等)。
利用上述更新状态,网络控制器可在每个更新状态下,确保完成待更新的所有网络节点对应更新阶段操作,由此能有效确保事务性更新操作期间的原子性属性。
在又一些示例中,所备份的更新状态对应于事务性更新操作所涉及的网络节点的更新阶段。例如,在针对事务性更新操作tx所涉及的网络节点ID的各更新阶段,更新程序组件可对应各更新阶段而设置的更新状态如表2所示:
表2
更新阶段 | 更新状态 |
开始更新阶段 | <tx_ID,START> |
备份读阶段 | <tx_ID,READ,Match,"ACTION"/"STAT"> |
备份写阶段 | <tx_ID,WRITE,Match,Action> |
校验阶段 | <tx_ID,VALIDATION,VOLATILE> |
提交更新阶段 | <tx_ID,WRITE> |
完成更新阶段 | <tx_ID,INACTIVE> |
隔离阶段 | <tx_ID,BARRIER> |
其中,在网络节点ID的备份读阶段的更新状态中,<tx_ID,READ,Match,"ACTION"/"STAT">中的Match用于匹配流,即“读(READ)哪一个流”,“ACTION”/“STAT”用于区别读取的流是持久性状态(如,在交换机实际流表的action域中)还是易失性状态(如,在交换机实际流表的STAT域中)。
在网络节点ID的备份写阶段的更新状态中,<tx_ID,WRITE,Match,Action>表示写(WRITE)某一个流(如满足Match中的匹配规则),将对该流的行为写成Action中的描述(如丢弃、转发等)。
利用上述更新状态,网络控制器可在每个网络节点的更新状态下,确保完成待更新的所有网络节点对应更新阶段操作,由此也能有效确保事务性更新操作期间的原子性属性。
所述更新程序组件中至少包括所述第一更新程序,不仅如此,还可以包含第二更新程序、第三更新程序、第四更新程序等。
所述第一更新程序用于检查已备份的更新状态,并基于检查结果执行相应网络节点的提交更新阶段操作。在此,所述第一更新程序用于在校验阶段、提交更新阶段和完成更新阶段执行。具体地,所述第一更新程序在被执行时转入校验阶段操作并备份相应的更新状态(如<tx_ID,VALIDATION,VOLATILE>),当最新的更新状态的检查结果表示可以提交更新时,转入提交更新操作并备份相应的更新状态(如<tx_ID,WRITE>),在执行提交更新阶段操作后,转入完成更新阶段操作以及备份相应的更新状态(如<tx_ID,INACTIVE>)。
所述第二更新程序用于在备份读的更新状态期间备份待更新网络节点的网络状态信息。其中,所述第二更新程序可采用快照或文本复制等方式备份相应网络节点的网络状态信息,其中,所述网络状态信息包括但不限于:网络节点中的持久性状态信息和易失性状态信息。所述持久性状态信息是指可由控制面业务修改的网络状态信息,其举例包括流路由规则信息、负载处理规则信息、流过滤规则信息等。所述易失性状态信息是指可由数据面业务修改的网络状态信息,其举例包括流量统计信息等。在此,为便于后续方案描述,所述第一更新程序执行时所备份的网络状态信息被称为第一网络状态信息。
对应地,所述第一更新程序还用于校验预先备份的第一网络状态信息,以及基于所得到的校验结果和检查结果执行相应网络节点的提交更新阶段操作。在此,所述第一更新程序还在校验阶段操作的更新状态期间,基于技术人员根据网络节点更新需要而设置的更新条件,将当前的网络状态信息与所备份的第一网络状态信息进行匹配,并返回匹配结果。
为了防止网络控制器和网络节点之间的数据传输的时间差,导致在校验和更新阶段操作期间出现网络状态的变更,所述第三更新程序用于将更新后的网络状态信息备份地写入相应网络节点。技术人员可选取所述第三更新程序来优化事务性更新操作。
在一些基于链路的事务性更新操作中,链路上的各网络节点之间需要依次序执行更新过程。所述更新组件中还包括第四更新程序,其用于为分段更新提供隔离操作及对应隔离阶段操作的更新状态。请参阅图2,其显示为构成更新前的链路Path1各网络节点和待更新后的链路Path2上各网络节点的网络示意图,其中,链路Path1为从源地址所在设备src开始经由网络节点A、B、C、D至目的地址所在设备dst,链路Path2为从源地址所在设备src开始经由网络节点A、E、D至目的地址所在设备dst。。以图2为例,在批量处理多个网络节点的状态更新时,技术人员引入第一更新程序和第四更新程序,由此构建了网络节点A、E和D的分段更新顺序,所述第一更新程序在执行时依据第四更新程序所标记的更新状态,确定提交更新的顺序。
所述存储模块11将开发系统中所能提供的各程序文件存储在开发系统所在计算机设备中,所述程序文件不仅包含前述提及的更新程序组件,还包括技术人员预先确定的待更新的网络节点和对应的更新后的网络状态信息(后续被称为第二网络状态信息)。除此之外,所述程序文件还包括用于网络功能开发的其他标准程序等,在此不再一一举例。
所述编辑模块用于依据所获取的编辑指令选择所述更新程序组件中的更新程序,以及基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序。在此,所述编辑模块用于帮助技术人员进行更新算法的设计。
请参阅图3,其显示为编辑模块12所提供的一种编辑界面,其包括资源管理器和编辑器等。其中,所述资源管理器用于展示技术人员所构建的更新事务源程序文件,以及应用程序的源程序文件和包含更新程序组件的程序库中的至少一种。所述编辑器用于展示源程序的所有代码行,以供技术人员进行编辑操作。其中,所述编辑操作是指藉由技术人员操作计算机设备的人机交互装置而向编辑模块12发送的编辑指令,以及编辑模块12响应所述编辑指令在编辑器中记录相应具有可读性的、有助于技术人员加快开发速度的代码行的过程。其中,所述编辑指令包括但不限于以下至少一种:对代码行进行删除或修改,输入新的代码行,按照对象类型获取候选函数列表等。所述编辑模块12基于所输入的参数、函数、对象等的类型,在编辑器中展示对应各类型的字体、颜色等可读性高的代码行,以及对所述代码行进行如拼写错误等校验。所述编辑模块12还依据所获取的编辑指令从程序库中载入所述更新程序组件中相应的更新程序,以得到对网络节点的网络状态进行更新的更新规则。
例如,技术人员依据更新需求在编辑器中输入包含以下程序段的更新事务源程序:
所述编辑模块12对所接收的编辑指令进行解析,可按照参数、函数、逻辑运算符等设置不同颜色,以及根据更新对象tx,载入其属性和成员函数。以tx=Transaction()的函数对象为例,Transaction()表示为更新组件中的创建一次事务性更新操作的更新程序;Hops为链路PathB上的网络节点对象序列,其中,网络节点对象序列中的每个对象(即网络节点)包含更新后的网络状态属性、和/或用以更新相应网络节点的子程序;write(hop)为所述第三更新程序,其表示将网络节点hop更新后的网络状态信息写入网络节点hop以便为基于校验的更新做准备;commit()为所述第一更新程序,其可表示或包含所述第二更新程序以便将write(hop)所写入的信息予以提交并完成对网络节点hop的更新操作。所述编辑模块基于所选择的第一更新程序和第三更新程序所描述的更新规则,生成用于更新PathB链路上各网络节点的网络状态信息的更新事务源程序。
根据实际更新需求,所述编辑模块12可按照所载入的更新程序而设置的更新规则,生成用于更新单个网络节点的更新事务源程序,或者生成用于更新多个网络节点的更新事务源程序。
上述tx示例提供了一种基于异步的更新规则来更新链路上多个网络节点的更新事务源程序的开发过程。在一些示例中,链路上的各网络节点之间需要依次序执行更新过程。例如,如图2所示,在路径迁移时,为防止网络节点A更新出现丢包等现象,在批量处理多个网络节点的状态更新时,基于所述第四更新程序,网络节点A在网络节点E和D被更新后才执行更新操作。对应地,所述编辑模块12基于所选择的第四更新程序所描述的更新规则,生成用于按照分段顺序更新所述多个网络节点的更新事务源程序。
以下示出基于图2示例而设计的两段更新规则的更新事务源程序段:
其中,barrier()函数为所述第四更新程序。上述源程序段描述了更新链路PathB上各网络节点时,网络节点firstHop和网络节点序列otherHops的分段更新顺序,其中,transaction()描述了事务性更新的开始,其他网络节点序列otherHops先于网络节点firstHop进行更新准备,利用write()函数,网络控制器将其他网络节点序列otherHops中各网络节点更新后的网络状态信息予以写入,以及将更新状态更改为准备写状态,在确保其他网络节点序列otherHops中的各网络节点完成更新准备后,将网络节点firstHop更新后的网络状态信息予以写入,再执行递交操作,即tx.commit()。如此有效隔离更新时的并发冲突。
为确保一次事务性更新满足ACID属性,所述开发系统提供依据一次事务性更新操作而划分的多种状态设置的更新程序组件,使得技术人员所制定的更新规则在多种状态转换的保障机制下,执行符合ACID属性的更新操作。为了保障所述更新操作,所述编辑模块12还用于基于所述更新程序组件而描述事务性更新操作中断后的更新规则,生成用于更新相应网络节点的更新事务源程序。其中,所述中断包括但不限于:因网络通信线路阻塞等引起的中断、因网络节点或网络控制器硬件异常或系统负担过重等而引起中断等。
技术人员可利用所述更新组件在编辑模块12中设计当中断发生并恢复后对网络节点更新操作的更新事务源程序。
在此,所述更新事务源程序用以执行以下任一步骤:1)继续执行所述网络节点的更新操作。例如,检测到一事务性更新操作处于准备写状态,继续执行该事务性更新操作。2)取消所述网络节点的更新操作。例如,检测到一事务性更新操作处于读状态,取消该事务性更新操作。3)重复执行所述备份、校验及更新操作,直至更新成功或重复次数满足预设的截止条件。例如,检测到一事务性更新操作处于递交状态,更新该事务性更新操作失败次数并重新执行所述事务性更新操作,直至直至更新成功或重复次数满足预设的截止条件。
当技术人员保存所述编辑器中所记录的更新事务源程序时,所述编辑模块12启动保存模块13将所述更新事务源程序保存成源程序文件。例如,所述开发系统支持python语言,则所述保存模块13将编辑器中的更新事务源程序保存成.py文件。
需要说明的是,本领域技术人员应该理解,上述开发语言仅为示例,而非对本申请的限制。事实上,依据本申请所描述的更新程序组件的更新方式,可采用任何开发语言进行描述,在此不再穷举。
在一些实施方式中,所述编辑模块12还用于导入更新事务源程序文件。例如,所述编辑模块12的编辑界面还包括工具栏,技术人员可通过操作工具栏中的导入选项选择已保存的更新事务源程序文件,并导入编辑器中,便于技术人员利用上述更新程序组件中的更新程序对所导入的更新事务源程序进行修改。
在又一些实施方式中,所述开发系统还包括编译模块,其用于将所述更新事务源程序及所选择的各更新程序编译成可在预确定的运行环境下执行的更新应用程序。
在此,所述编译模块中包含对应于所述开发系统所提供的开发语言的编译器,其根据网络控制器所提供的运行环境,将所生成的更新事务源程序及所选择的各更新程序编译成更新应用程序。其中,所述更新应用程序中还打包有对应各网络节点更新后的网络状态信息。经所述编译模块编译后的更新应用程序通过应用发布系统发布到相应的网络控制器所在计算机设备上。由此通过执行所述更新应用程序更新网络控制器中对所管理的对应网络节点的网络状态信息,并藉由网络控制器与各网络节点基于控制面业务的数据交互,按照更新后的网络状态信息指示网络节点处理数据流。
本申请还提供一种开发方法。所述开发方法可由计算机设备来执行。其中,所述计算机设备为能够执行逻辑运算、数据处理和数学计算的电子设备,例如,所述计算机设备为个人电脑、或服务器等。其中,所述计算机设备至少包括存储单元和处理单元。
在此,所述存储单元包括高速随机存取存储器、非易失性存储器和存储器控制器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络(未示出)访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。所述存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。存储在存储单元中的软件组件包括操作系统、通信模块(或指令集)、接触/运动模块(或指令集)、图形模块(或指令集)、触觉反馈模块(或指令集)、文本输入模块(或指令集)、以及应用(或指令集)。
所述处理单元可操作地与存储单元耦接。更具体地,处理单元可执行在存储器和/或非易失性存储设备中存储的指令以在计算设备中执行操作,诸如生成程序文件和/或将程序文件中所描述的预测规则和操作规则传输到电子显示器。如此,处理器可包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个现场可编程逻辑阵列(FPGA)、或它们的任何组合。
所述处理单元还与接口单元和人机交互装置可操作地耦接,该接口单元可使得计算设备能够与各种其他电子设备进行交互,该人机交互装置可使得用户能够与计算设备进行交互,例如,所述接口单元包含I/O端口、和/或网络接口等。因此,人机交互装置可包括按钮、键盘、鼠标、触控板等。此外,显示单元可包括具有触摸部件的电子显示器,该触摸部件通过检测对象触摸其屏幕(例如,电子显示器的表面)的发生和/或位置来促进用户输入。
在此,所述存储单元预先存储有用于向技术人员提供源程序编辑的开发应用程序。其中,所述开发应用程序被处理单元运行时向技术人员提供一种开发系统,用于开发网络节点的功能应用(或源程序)、开发更新网络节点网络状态的更新应用程序(或源程序)等。其中,与所述开发应用程序一起存储在存储单元中,并且可被开发应用程序中的指令调用的还包括更新程序组件和待更新的网络节点;其中,所述更新程序组件包含将一次事务性更新操作划分而得的多种更新状态进行更新阶段操作的更新程序。
在此,所述事务性更新操作表示为实现一个网络功能更新目的而完整地更新一个或多个网络节点的过程。所述事务性更新操作包括但不限于基于线路径迁移、路径初始化、路径备份、单个网络节点的流规则而设置的更新操作等。例如,一次事务性更新操作是更新一条链路上各网络节点的网络状态。
为保证一次事务性更新操作的ACID属性,所述存储单元所预存储的更新程序组件作为所述开发系统中预设程序库(lib)中的一员,其提供了一组更新程序。其中,各更新程序一方面用于执行事务性更新操作的对应更新阶段,另一方面还备份对应更新阶段的更新状态。在此,按照实际更新需求,一次事务性更新操作可划分为以下多种组合的更新阶段:开始更新阶段、备份读阶段、备份写阶段、隔离阶段、校验和提交更新阶段、结束更新阶段等。每个阶段对应一个更新状态。技术人员按照实际更新需要,在开发事务性更新应用程序时,引入所述更新程序组件中更新程序,使得所设计的更新应用程序按照标准化的更新流程在网络控制器中被执行,以实现对网络控制器及其控制的网络节点的具备ACID属性的事务性更新操作。在此,各更新程序可在执行相应更新阶段操作开始时、或结束时备份相应的更新状态。
为了便于网络控制器进行更新状态的检查,所述更新程序组件还用于将所述更新状态以日志、或变量中的任一种形式被记录。例如,利用变量来描述更新状态,采用更改所述变量的方式记录当前的更新状态。又如,利用记录包含更新状态的日志的方式记录最新的更新状态。与之同备份的,还可以包含与事务性更新操作相关的信息。其中,所述与事务性更新操作相关的信息包括但不限于:待更新的网络节点、事务性更新操作的版本信息等。
在一些示例中,所备份的更新状态对应于事务性更新操作所涉及的更新阶段。例如,在针对事务性更新操作tx的各阶段,更新程序组件可对应各更新阶段而设置的更新状态如表1所示:
表1
更新阶段 | 更新状态 |
开始更新阶段 | <tx,START> |
备份读阶段 | <tx,READ,Match,"ACTION"/"STAT"> |
备份写阶段 | <tx,WRITE,Match,Action> |
校验阶段 | <tx,VALIDATION,VOLATILE> |
提交更新阶段 | <tx,WRITE> |
完成更新阶段 | <tx,INACTIVE> |
隔离阶段 | <tx,BARRIER> |
其中,在备份读阶段的更新状态中,<tx,READ,Match,"ACTION"/"STAT">中的Match用于匹配流,即“读(READ)哪一个流”,“ACTION”/“STAT”用于区别读取的流是持久性状态(如,在交换机实际流表的action域中)还是易失性状态(如,在交换机实际流表的STAT域中)。
在备份写阶段的更新状态中,<tx,WRITE,Match,Action>表示写(WRITE)某一个流(如满足Match中的匹配规则),将对该流的行为写成Action中的描述(如丢弃、转发等)。
利用上述更新状态,网络控制器可在每个更新状态下,确保完成待更新的所有网络节点对应更新阶段操作,由此能有效确保事务性更新操作期间的原子性属性。
在又一些示例中,所备份的更新状态对应于事务性更新操作所涉及的网络节点的更新阶段。例如,在针对事务性更新操作tx所涉及的网络节点ID的各更新阶段,更新程序组件可对应各更新阶段而设置的更新状态如表2所示:
表2
更新阶段 | 更新状态 |
开始更新阶段 | <tx_ID,START> |
备份读阶段 | <tx_ID,READ,Match,"ACTION"/"STAT"> |
备份写阶段 | <tx_ID,WRITE,Match,Action> |
校验阶段 | <tx_ID,VALIDATION,VOLATILE> |
提交更新阶段 | <tx_ID,WRITE> |
完成更新阶段 | <tx_ID,INACTIVE> |
隔离阶段 | <tx_ID,BARRIER> |
其中,在网络节点ID的备份读阶段的更新状态中,<tx_ID,READ,Match,"ACTION"/"STAT">中的Match用于匹配流,即“读(READ)哪一个流”,“ACTION”/“STAT”用于区别读取的流是持久性状态(如,在交换机实际流表的action域中)还是易失性状态(如,在交换机实际流表的STAT域中)。
在网络节点ID的备份写阶段的更新状态中,<tx_ID,WRITE,Match,Action>表示写(WRITE)某一个流(如满足Match中的匹配规则),将对该流的行为写成Action中的描述(如丢弃、转发等)。
利用上述更新状态,网络控制器可在每个网络节点的更新状态下,确保完成待更新的所有网络节点对应更新阶段操作,由此也能有效确保事务性更新操作期间的原子性属性。
所述更新程序组件中至少包括所述第一更新程序,不仅如此,还可以包含第二更新程序、第三更新程序、第四更新程序等。
所述第一更新程序用于检查已备份的更新状态,并基于检查结果执行相应网络节点的提交更新阶段操作。在此,所述第一更新程序用于在校验阶段、提交更新阶段和完成更新阶段执行。具体地,所述第一更新程序在被执行时转入校验阶段操作并备份相应的更新状态(如<tx_ID,VALIDATION,VOLATILE>),当最新的更新状态的检查结果表示可以提交更新时,转入提交更新操作并备份相应的更新状态(如<tx_ID,WRITE>),在执行提交更新阶段操作后,转入完成更新阶段操作以及备份相应的更新状态(如<tx_ID,INACTIVE>)。
所述第二更新程序用于在备份读的更新状态期间备份待更新网络节点的网络状态信息。其中,所述第二更新程序可采用快照或文本复制等方式备份相应网络节点的网络状态信息,其中,所述网络状态信息包括但不限于:网络节点中的持久性状态信息和易失性状态信息。所述持久性状态信息是指可由控制面业务修改的网络状态信息,其举例包括流路由规则信息、负载处理规则信息、流过滤规则信息等。所述易失性状态信息是指可由数据面业务修改的网络状态信息,其举例包括流量统计信息等。在此,为便于后续方案描述,所述第一更新程序执行时所备份的网络状态信息被称为第一网络状态信息。
对应地,所述第一更新程序还用于校验预先备份的第一网络状态信息,以及基于所得到的校验结果和检查结果执行相应网络节点的提交更新阶段操作。在此,所述第一更新程序还在校验阶段操作的更新状态期间,基于技术人员根据网络节点更新需要而设置的更新条件,将当前的网络状态信息与所备份的第一网络状态信息进行匹配,并返回匹配结果。
为了防止网络控制器和网络节点之间的数据传输的时间差,导致在校验和更新阶段操作期间出现网络状态的变更,所述第三更新程序用于将更新后的网络状态信息备份地写入相应网络节点。技术人员可选取所述第三更新程序来优化事务性更新操作。
在一些基于链路的事务性更新操作中,链路上的各网络节点之间需要依次序执行更新过程。所述更新组件中还包括第四更新程序,其用于为分段更新提供隔离操作及对应隔离阶段操作的更新状态。请参阅图2,其显示为构成更新前的链路Path1各网络节点和待更新后的链路Path2上各网络节点的网络示意图,其中,链路Path1为从源地址所在设备src开始经由网络节点A、B、C、D至目的地址所在设备dst,链路Path2为从源地址所在设备src开始经由网络节点A、E、D至目的地址所在设备dst。。以图2为例,在批量处理多个网络节点的状态更新时,技术人员引入第一更新程序和第四更新程序,由此构建了网络节点A、E和D的分段更新顺序,所述第一更新程序在执行时依据第四更新程序所标记的更新状态,确定提交更新的顺序。
所述存储单元将开发系统中所能提供的各程序文件存储在开发系统所在计算机设备中,所述程序文件不仅包含前述提及的更新程序组件,还包括技术人员预先确定的待更新的网络节点和对应的更新后的网络状态信息(后续被称为第二网络状态信息)。除此之外,所述程序文件还包括用于网络功能开发的其他标准程序等,在此不再一一举例。
请参阅图4,其显示为本申请开发方法在一实施方式中的流程图。在步骤S110中,依据所获取的编辑指令选择所述更新程序组件中的更新程序,以及基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序。在此,所述开发系统帮助技术人员进行更新算法的设计。
请参阅图3,其显示为开发系统所提供的一种编辑界面,其包括资源管理器和编辑器等。其中,所述资源管理器用于展示技术人员所构建的更新事务源程序文件,以及应用程序的源程序文件和包含更新程序组件的程序库中的至少一种。所述编辑器用于展示源程序的所有代码行,以供技术人员进行编辑操作。其中,所述编辑操作是指藉由技术人员操作计算机设备的人机交互装置而向处理单元发送的编辑指令,以及处理单元响应所述编辑指令在编辑器中记录相应具有可读性的、有助于技术人员加快开发速度的代码行的过程。其中,所述编辑指令包括但不限于以下至少一种:对代码行进行删除或修改,输入新的代码行,按照对象类型获取候选函数列表等。所述处理单元基于所输入的参数、函数、对象等的类型,在编辑器中展示对应各类型的字体、颜色等可读性高的代码行,以及对所述代码行进行如拼写错误等校验。所述处理单元还依据所获取的编辑指令从程序库中载入所述更新程序组件中相应的更新程序,以得到对网络节点的网络状态进行更新的更新规则。
例如,技术人员依据更新需求在编辑器中输入包含以下程序段的更新事务源程序:
所述处理单元对所接收的编辑指令进行解析,可按照参数、函数、逻辑运算符等设置不同颜色,以及根据更新对象tx,载入其属性和成员函数。以tx=Transaction()的函数对象为例,Transaction()表示为更新组件中的创建一次事务性更新操作的更新程序;Hops为链路PathB上的网络节点对象序列,其中,网络节点对象序列中的每个对象(即网络节点)包含更新后的网络状态属性、和/或用以更新相应网络节点的子程序;write(hop)为所述第三更新程序,其表示将网络节点hop更新后的网络状态信息写入网络节点hop以便为基于校验的更新做准备;commit()为所述第一更新程序,其可表示或包含所述第二更新程序以便将write(hop)所写入的信息予以提交并完成对网络节点hop的更新操作。所述编辑模块基于所选择的第一更新程序和第三更新程序所描述的更新规则,生成用于更新PathB链路上各网络节点的网络状态信息的更新事务源程序。
根据实际更新需求,所述处理单元可按照所载入的更新程序而设置的更新规则,生成用于更新单个网络节点的更新事务源程序,或者生成用于更新多个网络节点的更新事务源程序。
上述tx示例提供了一种基于异步的更新规则来更新链路上多个网络节点的更新事务源程序的开发过程。在一些示例中,链路上的各网络节点之间需要依次序执行更新过程。例如,如图2所示,在路径迁移时,为防止网络节点A更新出现丢包等现象,在批量处理多个网络节点的状态更新时,基于所述第四更新程序,网络节点A在网络节点E和D被更新后才执行更新操作。对应地,所述处理单元基于所选择的第四更新程序所描述的更新规则,生成用于按照分段顺序更新所述多个网络节点的更新事务源程序。
以下示出基于图2示例而设计的两段更新规则的更新事务源程序段:
其中,barrier()函数为所述第四更新程序。上述源程序段描述了更新链路PathB上各网络节点时,网络节点firstHop和网络节点序列otherHops的分段更新顺序,其中,transaction()描述了事务性更新的开始,其他网络节点序列otherHops先于网络节点firstHop进行更新准备,利用write()函数,网络控制器将其他网络节点序列otherHops中各网络节点更新后的网络状态信息予以写入,以及将更新状态更改为准备写状态,在确保其他网络节点序列otherHops中的各网络节点完成更新准备后,将网络节点firstHop更新后的网络状态信息予以写入,再执行递交操作,即tx.commit()。如此有效隔离更新时的并发冲突。
为确保一次事务性更新满足ACID属性,所述开发系统提供依据一次事务性更新操作而划分的多种状态设置的更新程序组件,使得技术人员所制定的更新规则在多种状态转换的保障机制下,执行符合ACID属性的更新操作。为了保障所述更新操作,所述处理单元还用于基于所述更新程序组件而描述事务性更新操作中断后的更新规则,生成用于更新相应网络节点的更新事务源程序。其中,所述中断包括但不限于:因网络通信线路阻塞等引起的中断、因网络节点或网络控制器硬件异常或系统负担过重等而引起中断等。
技术人员可利用所述更新组件在处理单元中设计当中断发生并恢复后对网络节点更新操作的更新事务源程序。
在此,所述更新事务源程序用以执行以下任一步骤:1)继续执行所述网络节点的更新操作。例如,检测到一事务性更新操作处于准备写状态,继续执行该事务性更新操作。2)取消所述网络节点的更新操作。例如,检测到一事务性更新操作处于读状态,取消该事务性更新操作。3)重复执行所述备份、校验及更新操作,直至更新成功或重复次数满足预设的截止条件。例如,检测到一事务性更新操作处于递交状态,更新该事务性更新操作失败次数并重新执行所述事务性更新操作,直至直至更新成功或重复次数满足预设的截止条件。
当技术人员保存所述编辑器中所记录的更新事务源程序时,所述处理单元执行步骤S120,即将所述更新事务源程序保存成源程序文件。例如,所述开发系统支持python语言,则所述处理单元将编辑器中的更新事务源程序保存成.py文件。
需要说明的是,本领域技术人员应该理解,上述开发语言仅为示例,而非对本申请的限制。事实上,依据本申请所描述的更新程序组件的更新方式,可采用任何开发语言进行描述,在此不再穷举。
在一些实施方式中,所述开发方法还包括导入更新事务源程序文件的步骤。例如,所述开发系统的编辑界面还包括工具栏,技术人员可通过操作工具栏中的导入选项选择已保存在存储单元中的更新事务源程序文件,并导入编辑器中,便于技术人员利用上述更新程序组件中的更新程序对所导入的更新事务源程序进行修改。
在又一些实施方式中,所述开发方法还包括将所述更新事务源程序及所选择的各更新程序编译成可在预确定的运行环境下执行的更新应用程序的步骤。
在此,所述开发系统中包含对应于所述开发系统所提供的开发语言的编译器,其根据网络控制器所提供的运行环境,将所生成的更新事务源程序及所选择的各更新程序编译成更新应用程序。在一些示例中,所述更新应用程序中还打包有对应各网络节点更新后的网络状态信息。所得到的更新应用程序通过应用发布系统发布到相应的网络控制器所在计算机设备上。由此通过执行所述更新应用程序更新网络控制器中对所管理的对应网络节点的网络状态信息,并藉由网络控制器与各网络节点基于控制面业务的数据交互,按照更新后的网络状态信息指示网络节点处理数据流。
由上述各示例中所提及的开发方法及开发系统而开发网络节点的更新算法,借助更新程序组件所提供的基于一次事务性更新操作而划分的多种状态的更新程序,所得到的更新应用程序在被运行时提供具备ACID属性的更新过程。
本申请再提供一种计算机可读写存储介质,其上存储有用于网络功能开发的计算机程序,所述存储有用于网络功能开发的计算机程序被处理器执行时实现上述网络功能开发方法的步骤,即图4中所述的步骤。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
本申请还提供一种网络节点的更新方法。所述更新方法主要由网络控制器来执行,也可以由网络控制器和网络节点共同执行。例如,在网络控制器的控制下,网络节点更新网络状态信息的配置文件等。所述更新方法用于更新网络控制器所管理的网络节点的网络状态信息。在此,与单台计算机设备的软件更新不同的是,按照网络传输的需要,网络状态的更新可能针对一个网络节点,更多时候网络状态的更新与至少一条链路上的多个网络节点息息相关。为此,我们称基于网络传输需求而设定的一次网络状态信息更新为一次事务性更新操作。例如,基于链路Path1上所有网络节点的网络状态更新操作为一次事务性更新操作。又如,针对所管理的网络节点A的网络更新操作为一次事务性更新操作。所述更新方法主要由网络控制器发起,并根据事务性更新操作所涉及的网络节点,控制相应网络节点来执行的过程。
请参阅图5,其显示为本申请网络节点的更新方法在一实施方式中的流程图。为维护各更新阶段操作,在步骤S210中,在执行一次事务性更新操作中的至少一个更新阶段操作期间,备份对应更新阶段操作的更新状态。
在此,为了便于网络控制器进行更新状态的检查,网络控制器在执行步骤S210时将所述更新状态以日志、或变量中的任一种形式被记录。例如,利用变量来描述更新状态,采用更改所述变量的方式记录当前的更新状态。又如,利用记录包含更新状态的日志的方式记录最新的更新状态。与之同备份的,还可以包含与事务性更新操作相关的信息。其中,所述与事务性更新操作相关的信息包括但不限于:待更新的网络节点、事务性更新操作的版本信息等。
在一些示例中,所备份的更新状态对应于事务性更新操作所涉及的更新阶段。例如,在针对事务性更新操作tx的各阶段,更新程序组件可对应各更新阶段而设置的更新状态如下表2-1所示:
表2-1
更新阶段 | 更新状态 |
开始更新阶段 | <tx,START> |
备份读阶段 | <tx,READ,Match,"ACTION"/"STAT"> |
备份写阶段 | <tx,WRITE,Match,Action> |
校验阶段 | <tx,VALIDATION,VOLATILE> |
提交更新阶段 | <tx,WRITE> |
结束更新阶段 | <tx,INACTIVE> |
隔离阶段 | <tx,BARRIER> |
其中,在备份读阶段的更新状态中,<tx,READ,Match,"ACTION"/"STAT">中的Match用于匹配流,即“读(READ)哪一个流”,“ACTION”/“STAT”用于区别读取的流是持久性状态(如,在交换机实际流表的action域中)还是易失性状态(如,在交换机实际流表的STAT域中)。
在备份写阶段的更新状态中,<tx,WRITE,Match,Action>表示写(WRITE)某一个流(如满足Match中的匹配规则),将对该流的行为写成Action中的描述(如丢弃、转发等)。
利用上述更新状态,网络控制器可在每个更新状态下,确保完成待更新的所有网络节点对应更新阶段操作,由此能有效确保事务性更新操作期间的原子性属性。
在又一些示例中,所备份的更新状态对应于事务性更新操作所涉及的网络节点的更新阶段。例如,在针对事务性更新操作tx所涉及的网络节点ID的各更新阶段,网络控制器可对应各更新阶段而设置的更新状态如表2-2所示:
表2-2
更新阶段 | 更新状态 |
开始更新阶段 | <tx_ID,START> |
备份读阶段 | <tx_ID,READ,Match,"ACTION"/"STAT"> |
备份写阶段 | <tx_ID,WRITE,Match,Action> |
校验阶段 | <tx_ID,VALIDATION,VOLATILE> |
提交更新阶段 | <tx_ID,WRITE> |
结束更新阶段 | <tx_ID,INACTIVE> |
隔离阶段 | <tx_ID,BARRIER> |
其中,在网络节点ID的备份读阶段的更新状态中,<tx_ID,READ,Match,"ACTION"/"STAT">中的Match用于匹配流,即“读(READ)哪一个流”,“ACTION”/“STAT”用于区别读取的流是持久性状态(如,在交换机实际流表的action域中)还是易失性状态(如,在交换机实际流表的STAT域中)。
在网络节点ID的备份写阶段的更新状态中,<tx_ID,WRITE,Match,Action>表示写(WRITE)某一个流(如满足Match中的匹配规则),将对该流的行为写成Action中的描述(如丢弃、转发等)。
利用上述更新状态,网络控制器可在每个网络节点的更新状态下,确保完成待更新的所有网络节点对应更新阶段操作,由此也能有效确保事务性更新操作期间的原子性属性。
在此,网络控制器可在每个更新阶段操作开始或结束时备份对应的更新状态,并在步骤S220中检查所备份的更新状态,并基于检查结果执行所述事务性更新操作,以更新相应的网络节点。
在此,在一些示例中,网络控制器在每个阶段开始或结束时检查所备份的更新状态,由此便对应确认前一阶段是否完成或当前阶段是否可以开始。当检查结果表示可以继续执行时,继续执行网络节点的更新,反之,则按照当次事务性更新操作失败,执行对应更新操作失败的操作,如提醒操作或重新更新操作等。在又一些示例中,网络控制器按照预设的关键阶段检查所备份的更新状态。其中,所述关键阶段举例包括以下任一种或多种:备份读阶段、备份写阶段、校验及提交阶段、结束更新阶段、隔离阶段等。
在实际网络控制器和网络节点的物理架构中,网络控制器与多个网络节点之间可能相距很近或很远,为尽量减少网络传输期间对网络状态更新所带来的不确定性。以一次事务性更新操作依次包括:开始更新阶段、备份写阶段、校验和提交阶段以及结束更新阶段为例,所述网络控制器在开始执行事务性更新操作时在日志中添加备份开始更新阶段的更新状态;进入备份写阶段,一方面在日志中添加备份写阶段的更新状态,另一方面将第二网络状态信息载入网络节点A1,待载入完成后,如网络控制器接收到网络节点A1反馈的下载完成的响应信息,网络控制器检查日志中所备份的更新状态,当检测到日志中记录了备份写阶段的更新状态时,指示网络节点A1执行提交更新操作,如将网络节点A1当前使用的配置文件中的内容替换成所载入的第二网络状态信息;网络控制器根据所接收的网络节点A1完成替换后反馈的响应信息,进入结束更新阶段并在日志中添加结束更新状态。
一些事务性更新操作需校验网络节点的网络状态。为此,请参阅图6,其显示为本申请的更新方法在又一实施方式中的流程图。所述更新方法还包括步骤S230、S240,对应地,所述步骤S220包括步骤S221和S222。
在步骤S230中,备份待更新的网络节点的第一网络状态信息。
在此,网络控制器在开始更新后,控制待更新的网络节点备份当前的网络状态信息,并将其作为第一网络状态信息。
例如,所述网络控制器向网络节点发送备份读指令,所述网络节点采用快照或文本复制等方式备份所使用的持久性状态信息和当前的易失性状体信息,并得到备份文件,如log文件、.txt文件、xml文件或图片格式等;所得到的备份文件(即为第一网络状态信息)可保存在网络节点本地或者由网络节点反馈给所述网络控制器。
与步骤S230同步或无必然执行顺序地,网络控制器还执行步骤S240,即向待更新的网络节点备份对应的第二网络状态信息。在实际网络控制器和网络节点的物理架构中,网络控制器与多个网络节点之间可能相距很近或很远。为尽量减少网络传输期间对网络状态更新所带来的不确定性,所述网络控制器可执行步骤S240。
当网络控制器执行到校验及提交阶段时,执行步骤S221和S222。
其中,在步骤S221中,将所述第一网络状态信息与当前网络状态信息进行匹配,并得到匹配结果。
在步骤S222中,基于所述检查结果和匹配结果,按照第二网络状态信息更新相应的网络节点的网络状态,以便所述网络节点按照所述第二网络状态信息对网络数据进行处理。
在此,由于网络节点的某些网络状态随数据面业务而发生变化,为防止网络状态的更新操作影响相应网络节点的数据传输,所述网络控制器在控制网络节点依第二网络状态信息对网络状态进行修改、增加、删除操作前,先执行匹配操作。
在一些示例中,在所述网络控制器的控制下,网络节点将所备份的第一网络状态信息与当前的网络状态信息进行匹配,并将匹配结果反馈给网络控制器。其中,根据预设的更新条件,若所得到的匹配结果满足更新条件、且更新状态符合进入提交阶段,则按照第二网络状态信息更新相应的网络节点的网络状态;反之,则该次事务性更新操作失败。其中,所述更新条件可视待更新的网络状态而预先设置。例如,该次事务性更新操作与易失性状态信息无关,则更新条件不予考虑易失性状态信息的匹配结果。通常情况下,所述更新条件包含满足持久性状态相匹配的限制。
例如,网络节点A将所备份的第一网络状态信息与当前的网络状态信息进行匹配,其中,持续性状态信息匹配一致,易失性状态信息中包含匹配不一致的状态信息,则网络控制器根据预设的更新条件确定所述网络节点A所反馈的匹配结果满足所述更新条件,并指示网络节点A按照所述第二网络状态信息更新网络状态,网络节点A更新其网络状态配置文件并按照第二网络状态信息进行网络数据处理。
又如,网络节点B将所备份的第一网络状态信息与当前的网络状态信息进行匹配,其中,持续性状态信息匹配不一致,易失性状态信息匹配一致的状态信息,则网络控制器根据预设的更新条件确定所述网络节点B所反馈的匹配结果不满足所述更新条件,并确定该次事务性更新操作失败。
当基于所述匹配结果确定更新失败时,将所述事务性更新操作所涉及的所有网络节点的网络状态恢复至更新前的网络状态。一种示例为,所述网络控制器可向上层应用反馈取消该次事务性更新,并删除在日志及网络节点中所备份的更新状态、第一网络状态信息和第二网络状态信息等以恢复至更新前的状态。例如,藉由上层应用向管理员发送取消该次事务性更新的邮件、短信等,并删除所备份的所有信息。另一种示例为,重复执行所述步骤S210、S230、S240、S221和S222,直至更新成功或重复次数满足预设的截止条件。例如,当基于所述匹配结果确定更新失败时,根据当前备份的更新状态,重复执行尚未执行的阶段操作,如重新备份网络节点的第一网络状态信息,以及根据匹配第一网络状态信息来确定是否按照第二网络状态信息执行修改、新增、删除等操作。又如,通过预设重复执行事务性更新的次数,即设置包含重复执行事务性更新操作的截止条件,所述网络控制器可通过计数方式计数事务性更新操作失败次数,当失败次数达到截止条件时,向上层应用反馈取消该次事务性更新。
与其他计算机设备的软件更新不同的是,一次事务性更新操作可能涉及多个网络节点。按照所更新的网络状态对网络节点所在链路的影响,在一些实施方式中,所述网络控制器可异步地执行所述更新方法各步骤以完成所述事务性更新操作。即,网络控制器基于一次事务性更新操作,对多个网络节点单独执行如图5或图6所示的各步骤,待链路上的全部网络节点更新后,完成该事务性更新操作。
在又一些实施方式中,所述网络控制器按照预先的分段更新顺序,至少执行步骤S220。请参阅图7,其显示为本申请更新方法中步骤S220在一实施方式中的流程图,其中,步骤S220包括:步骤S223、S224。
在步骤S223中,基于所述检查结果所指示的分段更新顺序,校验相应网络节点所备份的第一网络状态信息。
在步骤S224中,基于每个分段更新期间的匹配结果,分段地将各第二网络状态信息更新至相应的网络节点。
在一些示例中,网络控制器在备份了所有待更新的网络节点的第一网络状态信息后,按照预先的分段更新顺序分段匹配,并基于匹配结果,将按照各第二网络状态信息进行对应网络节点进行更新。例如,以图2所示的链路为例,其中,链路Path1为从源地址所在设备src开始经由网络节点A、B、C、D至目的地址所在设备dst,链路Path2为从源地址所在设备src开始经由网络节点A、E、D至目的地址所在设备dst。在路径迁移的事务性更新操作时,网络控制器先异步地控制网络节点A、E、D分别执行步骤S210、S230和S240,以备份所有待更新的网络节点的第一网络状态信息和备份写入第二网络状态信息;网络控制器按照备份的更新状态中隔离阶段的更新状态,确定先更新网络节点E和D、后更新网络接点A的分段更新顺序,并分别控制网络节点E和D异步地执行步骤S223和S224,待网络节点E和D的网络状态更新完毕后,控制网络节点A执行步骤S223和S224,如此,有效防止网络节点A更新出现丢包等现象。
其中,若任一网络节点的匹配结果不满足更新条件、或者检查任一网络节点的更新状态的检查结果不满足继续执行下一更新阶段操作,将所述事务性更新操作所涉及的所有网络节点的网络状态恢复至更新前的网络状态。
在此,网络控制器在出现基于校对结果确定无法完成所有网络节点的网络状态更新时,将已更新的、或者已为更新做好准备的各分段中的各网络节点的网络状态予以恢复。其中,所述恢复操作的方式包含但不限于:删除以备份写入的第二网络状态信息、回滚网络状态信息至更新前的网络状态等。
例如,所读取的对应事务性更新操作的最新更新状态为对应备份写阶段的更新状态,所述网络控制器控制各网络节点删除已备份写入的各第二网络状态信息。又如,所读取的对应事务性更新操作的最新更新状态为对应更新阶段的更新状态,所述网络控制器利用回滚操作控制各网络节点将相应网络状态恢复至更新前的状态,由此防止网络节点的网络操作异常。
需要说明的是,上述基于路径迁移而设置的事务性更新操作仅为举例,而非对本申请的限制。事实上,基于网络链路的事务性更新操作还可以包括为调整负载而产生的事务性更新操作、为创建路径而产生的事务性更新操作、为路径备份而产生的事务性更新操作等。在此不再一一举例。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (26)
1.一种网络功能的开发系统,其特征在于,包括:
存储模块,存储更新程序组件和待更新的网络节点;其中,所述更新程序组件包含将一次事务性更新操作划分而得的多种更新状态进行更新阶段操作的更新程序;
编辑模块,用于依据所获取的编辑指令选择所述更新程序组件中的更新程序,以及基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序;
保存模块,用于将所述更新事务源程序予以保存。
2.根据权利要求1所述的网络功能的开发系统,其特征在于,还包括编译模块,用于将所述更新事务源程序及所选择的各更新程序编译成可在预确定的运行环境下执行的更新应用程序。
3.根据权利要求1所述的网络功能的开发系统,其特征在于,所述编辑模块还用于导入一更新事务源程序文件。
4.根据权利要求1所述的网络功能的开发系统,其特征在于,所述更新程序组件包含至少一个更新程序,用于检查已备份的更新状态,并基于检查结果执行相应的更新阶段操作。
5.根据权利要求1所述的网络功能的开发系统,其特征在于,所述更新程序组件包含第一更新程序,用于检查已备份的更新状态,并基于检查结果执行相应网络节点的提交更新阶段操作。
6.根据权利要求5所述的网络功能的开发系统,其特征在于,所述更新程序组件包括:第二更新程序,用于在备份读的更新状态期间备份待更新网络节点的网络状态信息;所述第一更新程序还用于匹配预先备份的网络状态信息,以及基于所得到的匹配结果和检查结果执行相应网络节点的提交更新阶段操作;
所述编辑模块基于所选择的第一更新程序和第二更新程序所描述的更新规则,生成用于更新相应网络节点的网络状态信息的更新事务源程序。
7.根据权利要求5或6所述的网络功能的开发系统,其特征在于,所述更新程序组件还包括:第三更新程序,用于将更新后的网络状态信息备份地写入相应网络节点;所述编辑模块基于所选择的第一更新程序和第三更新程序所描述的更新规则,生成用于更新相应网络节点的网络状态信息的更新事务源程序。
8.根据权利要求1所述的网络功能的开发系统,其特征在于,所述编辑模块还按照所选择的更新程序而制定的更新规则,生成用于更新多个网络节点的更新事务源程序。
9.根据权利要求8所述的网络功能的开发系统,其特征在于,所述更新程序组件中包含第四更新程序,用于为分段更新提供隔离操作及对应隔离阶段操作的更新状态;所述编辑模块基于所选择的第四更新程序所描述的更新规则,生成用于按照分段顺序更新所述多个网络节点的更新事务源程序。
10.根据权利要求1所述的网络功能的开发系统,其特征在于,所述编辑模块还用于基于所述更新程序组件而描述事务性更新操作中断后的更新规则,生成用于更新相应网络节点的更新事务源程序。
11.根据权利要求10所述的网络功能的开发系统,其特征在于,所述更新事务源程序用于基于检查中断前备份的更新状态的检查结果,执行以下任一步骤:
继续执行所述网络节点的更新操作;
取消所述网络节点的更新操作;
重复执行所述备份、校验及更新操作,直至更新成功或重复次数满足预设的截止条件。
12.根据权利要求1所述的网络功能的开发系统,其特征在于,所述更新程序组件中的更新程序还用于将所述更新状态以日志、或变量中的任一种形式被记录。
13.一种网络功能的开发方法,其特征在于,包括:
预储更新程序组件和待更新的网络节点;其中,所述更新程序组件包含将一次事务性更新操作划分而得的多种更新状态进行更新阶段操作的更新程序;
依据所获取的编辑指令选择所述更新程序组件中的更新程序,以及基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序;
将所述更新事务源程序予以保存。
14.根据权利要求13所述的网络功能的开发方法,其特征在于,还包括将所述更新事务源程序及所选择的各更新程序编译成可在预确定的运行环境下执行的更新应用程序的步骤。
15.根据权利要求13所述的网络功能的开发方法,其特征在于,还包括导入一更新事务源程序的步骤。
16.根据权利要求13所述的网络功能的开发方法,其特征在于,所述更新程序组件包含至少一个更新程序,用于检查已备份的更新状态,并基于检查结果执行相应的更新阶段操作。
17.根据权利要求13所述的网络功能的开发方法,其特征在于,所述更新程序组件包含第一更新程序,用于检查已备份的更新状态,并基于检查结果执行相应网络节点的提交更新阶段操作。
18.根据权利要求17所述的网络功能的开发方法,其特征在于,所述更新程序组件包括:第二更新程序,用于在备份读的更新状态期间备份待更新网络节点的网络状态信息;所述第一更新程序还用于匹配预先备份的网络状态信息,以及基于所得到的匹配结果和检查结果执行相应网络节点的提交更新阶段操作;
所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:基于所选择的第一更新程序和第二更新程序所描述的更新规则,生成用于更新相应网络节点的网络状态信息的更新事务源程序。
19.根据权利要求13所述的网络功能的开发方法,其特征在于,所述更新程序组件还包括:第三更新程序,用于将更新后的网络状态信息备份地写入相应网络节点;
所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:基于所选择的第一更新程序和第三更新程序所描述的更新规则,生成用于更新相应网络节点的网络状态信息的更新事务源程序。
20.根据权利要求13所述的网络功能的开发方法,其特征在于,所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:按照所选择的更新程序而制定的更新规则,生成用于更新多个网络节点的更新事务源程序。
21.根据权利要求20所述的网络功能的开发方法,其特征在于,所述更新程序组件中包含第四更新程序,用于为分段更新提供隔离操作及对应隔离阶段操作的更新状态;
所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:基于所选择的第四更新程序所描述的更新规则,生成用于按照分段顺序更新所述多个网络节点的更新事务源程序。
22.根据权利要求13所述的网络功能的开发方法,其特征在于,所述基于所选择的更新程序所描述的更新规则生成用于更新相应网络节点的更新事务源程序的步骤包括:基于所述更新程序组件而描述事务性更新操作中断后的更新规则,生成用于更新相应网络节点的更新事务源程序。
23.根据权利要求22所述的网络功能的开发方法,其特征在于,所述更新事务源程序用于基于检查中断前备份的更新状态的检查结果,执行以下任一步骤:
继续执行所述网络节点的更新操作;
取消所述网络节点的更新操作;
重复执行所述备份、校验及更新操作,直至更新成功或重复次数满足预设的截止条件。
24.根据权利要求13所述的网络功能的开发方法,其特征在于,所述更新程序组件中的更新程序还用于将所述更新状态以日志、或变量中的任一种形式被记录。
25.一种开发网络功能的计算机设备,其特征在于,包括:
存储单元,存储用于向技术人员提供源程序编辑的开发应用程序;
处理单元,用于运行所述开发应用程序以执行如权利要求13-24中任一所述的开发方法。
26.一种计算机可读存储介质,其特征在于,存储有用于向技术人员提供源程序编辑的开发应用程序;其中,所述开发应用程序在被调用并执行时实现如权利要求13-24中任一所述的网络功能的开发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811167339.5A CN109450663A (zh) | 2018-10-08 | 2018-10-08 | 网络功能的开发方法、系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811167339.5A CN109450663A (zh) | 2018-10-08 | 2018-10-08 | 网络功能的开发方法、系统、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109450663A true CN109450663A (zh) | 2019-03-08 |
Family
ID=65544802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811167339.5A Pending CN109450663A (zh) | 2018-10-08 | 2018-10-08 | 网络功能的开发方法、系统、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109450663A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328432A (zh) * | 2020-11-09 | 2021-02-05 | 杭州安恒信息技术股份有限公司 | 文件事务管理方法、系统、存储介质及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120147733A1 (en) * | 2009-09-04 | 2012-06-14 | Zte Corporation | Processing Method after Configuration Update Failure and Network Element Device Thereof |
CN105282057A (zh) * | 2015-09-11 | 2016-01-27 | 华为技术有限公司 | 流表更新方法、控制器及流表分析设备 |
CN107995118A (zh) * | 2018-01-18 | 2018-05-04 | 电子科技大学 | 一种保证一般一致性的软件定义数据中心网络更新方法 |
-
2018
- 2018-10-08 CN CN201811167339.5A patent/CN109450663A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120147733A1 (en) * | 2009-09-04 | 2012-06-14 | Zte Corporation | Processing Method after Configuration Update Failure and Network Element Device Thereof |
CN105282057A (zh) * | 2015-09-11 | 2016-01-27 | 华为技术有限公司 | 流表更新方法、控制器及流表分析设备 |
CN107995118A (zh) * | 2018-01-18 | 2018-05-04 | 电子科技大学 | 一种保证一般一致性的软件定义数据中心网络更新方法 |
Non-Patent Citations (1)
Title |
---|
孙国友: ""云环境SDN/OpenFlow网络中安全可靠的网络控制方法研究"", 《中国优秀硕士学位论文全文数据库(电子期刊),信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328432A (zh) * | 2020-11-09 | 2021-02-05 | 杭州安恒信息技术股份有限公司 | 文件事务管理方法、系统、存储介质及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804306B (zh) | 用于自动测试系统的方法和系统 | |
CN108170612B (zh) | 一种自动化测试方法、装置及服务器 | |
US10185650B1 (en) | Testing service with control testing | |
US20200201911A1 (en) | Managing a distributed knowledge graph | |
US11055090B2 (en) | Component management platform | |
US20110209042A1 (en) | Information Technology Standard Inventory Utility | |
US9842178B2 (en) | Systems and methods for binding mismatched schematic and layout design hierarchy | |
US11481440B2 (en) | System and method for processing metadata to determine an object sequence | |
US20200104404A1 (en) | Seamless migration of distributed systems | |
CN113656227A (zh) | 一种芯片验证方法、装置、电子设备及存储介质 | |
US9201897B1 (en) | Global data storage combining multiple back-end storage devices | |
US11860892B2 (en) | Offline index builds for database tables | |
CN110059011A (zh) | 接口测试方法、装置、介质及电子设备 | |
CN115048254A (zh) | 数据分配策略的仿真测试方法、系统、设备和可读介质 | |
EP4145298A1 (en) | Method and apparatus for snapshotting metadata | |
CN109189778A (zh) | 一种在线修改数据库表结构的方法 | |
US11399071B2 (en) | Program operation system and program operation method | |
CN109450663A (zh) | 网络功能的开发方法、系统、计算机设备及存储介质 | |
CN113391767B (zh) | 数据一致性的校验方法、装置、电子设备及可读存储介质 | |
WO2024066995A1 (zh) | 一种文本代码的编辑方法及系统 | |
CN109218105A (zh) | 网络节点的更新方法、系统、服务器及存储介质 | |
CN116107867A (zh) | 数据测试链路确定方法、交互方法、测试数据方法及系统 | |
CN115203217A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
CN111881110B (zh) | 数据迁移方法及装置 | |
CN113806327A (zh) | 一种数据库设计方法、装置及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190308 |