CN117519707A - 数据处理的方法、装置、电子设备及存储介质 - Google Patents
数据处理的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117519707A CN117519707A CN202210887550.4A CN202210887550A CN117519707A CN 117519707 A CN117519707 A CN 117519707A CN 202210887550 A CN202210887550 A CN 202210887550A CN 117519707 A CN117519707 A CN 117519707A
- Authority
- CN
- China
- Prior art keywords
- table item
- variable
- entry
- item
- updated
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000003672 processing method Methods 0.000 title abstract description 8
- 230000009471 action Effects 0.000 claims description 170
- 238000000034 method Methods 0.000 claims description 88
- 230000004048 modification Effects 0.000 claims description 78
- 238000012986 modification Methods 0.000 claims description 78
- 230000000875 corresponding effect Effects 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 51
- 238000004590 computer program Methods 0.000 claims description 18
- 230000000051 modifying effect Effects 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 abstract description 20
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 30
- 230000006870 function Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 15
- 230000006978 adaptation Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000008030 elimination Effects 0.000 description 6
- 238000003379 elimination reaction Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- -1 E=01 Chemical compound 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- 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
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- 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
- G06F8/47—Retargetable compilers
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理的方法、装置、设备以及存储介质,涉及云技术领域。该数据处理方法包括:获取可编程交换机的第一项目程序;对该第一项目程序进行分析,获取第一表项、第二表项和第三表项,其中,该第一表项和第二表项具有写后写依赖关系,第二表项和第三表项具有写后读依赖关系;获取该第一表项的第一更新表项和第三表项的第二更新表项;根据该第一更新表项、第二表项和第二更新表项,生成该可编程交换机的第二项目程序。其中,第二更新表项和第二表项之间不具有写后读的依赖关系。本申请实施例通过消除表项之间的写后读的依赖关系,能够降低表项的资源占用情况,进而提高交换机的芯片资源的利用率和数据面的转发性能。
Description
技术领域
本申请涉及云技术领域,并且具体的,涉及一种数据处理的方法、装置、电子设备及存储介质。
背景技术
软件定义网络(SoftwareDefinedNetworking,SDN)技术中,控制器通过SDN协议定义的表项对交换机在数据转发平面的数据转发进行控制。表项包括匹配域和动作域。随着SDN技术的发展,传统SDN的协议,比如OpenFlow在逐渐的演化完善过程中,匹配域和动作域不断增加,表项的扩展变得越来越困难。可编程交换机通过可编程的表项,能够使得交换机在数据转发平面具有可编程能力,让数据包的解析和转发流程也能够通过编程控制,打破了硬件设备对数据转发平面的限制,成为新一代SDN技术发展的趋势。
相关技术中,开发人员在开发可编程交换机程序时,一般更为注重完整呈现网关的逻辑,较少注意到表项资源的占用情况。当编写的交换机程序占用了较多资源时,可能导致对交换机程序的编译不通过。为了降低交换机程序占用的资源,通常会采用减少表项资源大小的操作。减少表项资源大小的方式,虽然能够在一定程度上减少交换机程序对资源的占用,但这同时也降低了网关能够支持的最大表项,降低了网关的转发性能。
发明内容
本申请实施例提供了一种数据处理的方法、装置、设备以及存储介质,通过消除具有写后读依赖关系的表项,能够有助于降低表项的资源占用情况,进而提高交换机的芯片资源的利用率和数据面的转发性能。
第一方面,本申请实施例提供了一种数据处理的方法,应用于服务器,包括:
获取可编程交换机的第一项目程序;
对所述第一项目程序进行分析,获取第一表项、第二表项和第三表项,其中,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项读取所述第二表项对所述第一变量的修改结果;
获取所述第一表项的第一更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;
获取所述第三表项的第二更新表项,其中,所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
根据所述第一更新表项、所述第二表项和所述第二更新表项,生成所述可编程交换机的第二项目程序。
第二方面,本申请实施例提供了一种数据处理的方法,应用于控制器,包括:
获取可编程交换机的第一项目程序对应第一表项、第二表项和第三表项,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项为读取所述第二表项对所述第一变量的修改结果的表项;
从服务器获取第一更新表项、所述第二表项和第二更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量进行的操作相同;所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
根据所述第二表项和所述第三表项分别对应的控制面程序,得到所述第二更新表项的控制面程序;
根据所述第二更新表项的控制面程序,向所述可编程交换机下发所述第二更新表项。
第三方面,本申请实施例提供了一种数据处理的装置,包括:
获取单元,用于获取可编程交换机的第一项目程序;
分析单元,用于对所述第一项目程序进行分析,获取第一表项、第二表项和第三表项,其中,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项读取所述第二表项对所述第一变量的修改结果;
所述获取单元,还用于获取所述第一表项的第一更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;
所述获取单元还用于获取所述第三表项的第二更新表项,其中,所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
生成单元,用于根据所述第一更新表项、所述第二表项和所述第二更新表项,生成所述可编程交换机的第二项目程序。
第四方面,本申请实施例提供了一种数据处理的装置,包括:
获取单元,用于获取可编程交换机的第一项目程序对应第一表项、第二表项和第三表项,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项为读取所述第二表项对所述第一变量的修改结果的表项;
所述获取单元,还用于从服务器获取第一更新表项、所述第二表项和第二更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
处理单元,用于根据所述第二表项和所述第三表项分别对应的控制面程序,得到所述第二更新表项的控制面程序;
发送单元,用于根据所述第二更新表项的控制面程序,向所述可编程交换机下发所述第二更新表项。
第五方面,本申请实施例本申请提供了一种电子设备,包括:
处理器,适于实现计算机指令;以及,
存储器,存储有计算机指令,计算机指令适于由处理器加载并执行上述第一方面或第二方面的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上述第一方面或第二方面的方法。
第七方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面或第二方面的方法。
通过上述技术方案,能够对表项之间的写后读依赖关系的消除,在对可编程交换机的项目程序进行编译时,有利于将多个表项融合到一个阶段中并行执行,从而有助于提高项目程序编译时的各阶段的资源的利用率,降低表项的资源占用情况。基于此,本申请实施例能够有助于提高交换机的芯片资源的利用率和数据面的转发性能。另外,云端控制器能够根据更新表项对控制面程序进行优化,有助于降低控制面程序的适配开销,提升可编程网关的部署效率。
附图说明
图1为本申请实施例涉及的网络架构的一个可选的示意图;
图2为本申请实施例提供的一种数据处理的方法的示意性流程图;
图3为本申请实施例提供的第一表项、第二表项和第三表项的具体例子;
图4为本申请实施例提供的另一种数据处理的方法的示意性流程图;
图5为本申请实施例提供的第一更新表项、第二表项和第二更新表项的具体例子;
图6为本申请实施例提供的另一种数据处理的方法的示意性流程图;
图7为本申请实施例提供的另一种数据处理的方法的示意性流程图;
图8为本申请实施例提供的另一种数据处理的方法的示意性流程图;
图9为本申请实施例的一种数据处理的装置的示意性框图;
图10为本申请实施例的另一种数据处理的装置的示意性框图;
图11为本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请提供的方案可涉及云技术。云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,可以通过云计算来实现。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
以下,对本申请实时涉及的相关术语进行简单介绍。
表项:针对特定数据包的查找和转发策略,用于控制数据包。针对一个数据包,或特定流的数据包,可以包括一系列的表项。表项可以包括匹配(match)域和动作(action)域。
匹配域可以包括多个匹配项,可以用于与数据包进行匹配以查找数据包。匹配域也可以称为匹配部分,匹配条件,或关键字(key)部分,不做限定。其中,匹配项例如可以包括入端口、源媒体接入控制(media access control,MAC)地址、目的MAC地址、指虚拟局域网(Virtual Local Area Network,VLAN)标签、VLAN优先级、源网际互连协议(InternetProtocol,IP)地址、目的IP地址、IP协议字段、IP服务类型、传输控制协议/用户数据报协议(Transmission Control Protocol/User Datagram Protocol,TCP/UDP源端口号)、TCP/UDP目的端口号等中的至少一种。其中,入端口可以表示消息进入交换机时通过的端口。
示例性的,匹配域可以读取匹配项对应的变量,并判断该变量的值是否满足该匹配项的匹配条件。如果满足,那么可以执行表项的动作域指示的处理动作;如果不满足,则不需要执行表项的动作域指示的处理动作。
动作域用于指示交换机在收到匹配的数据包后,对该数据包进行处理。动作域可以包括对匹配数据包的处理信息,比如,转发、排队、修改和丢弃等。每个表项可以对应零到多个动作。本申请实施例中,动作域也可以称为动作。
其中,转发可以指交换机将数据包转发给物理端口或虚拟端口;排队可以指交换机将数据包转发到某个出端口对应的转发序列当中;修改可以指交换机修改匹配部分的具体字段,如设置VLANID、VLAN优先级、修改源MAC地址、修改目的MAC地址、修改源IP地址、修改目标IP地址等;丢弃可以指交换机对数据包的丢弃操作。
在一些实施例中,修改动作也可以称为写操作,本申请对此不做限定。
需要说明的是,本申请实施例中,表项可以指采用SDN技术中的OpenFlow协议的表项或者符合其他协议的表项,不做限定。另外,表项中的动作域可以包含OpenFlow协议支持的任意动作,或者符合其他协议的任意动作,不做限定。
表项之间的依赖关系:包括写后写依赖关系和写后读依赖关系。如果两个表项中的前序表项的动作对一个数据包的变量进行了修改操作,后序表项的动作对该数据包的该变量进一步进行修改操作,则该两个表项之间具有写后写依赖关系。如果两个表项中的前序表项的动作对一个数据包的变量进行了修改操作,后序表项的匹配域读取该数据包的该变量,则该两个表项之间具有写后读依赖关系。
本申请实施例中,交换机可访问的表项集合包含至少两个表项,交换机可以根据表项集合中的表项对数据包进行处理。具体的,一个数据包可能与多个表项关联,交换机在接收到数据包后,可以查询与该数据包关联(即匹配)的多个表项,并根据该多个表项依次对该数据包进行处理。
例如,交换机首先查找到数据包1满足表项1的匹配域,并根据表项1的动作对该数据包1进行处理操作得到数据包2。然后再查找数据包2满足表项2的匹配域,根据表项2的动作对该数据包2进行处理操作得到数据包3。然后再查找数据包3满足表项3的匹配域,并根据表项3的动作对数据包3进行处理操作。其中,表项1、表项2和表项3都是与数据包1关联的数据包,其中,表项1和表项2之间具有写后写的依赖关系,表项2和表项3之间具有写后读的依赖关系。
另外,当数据包2不满足表项2的匹配域时,不根据表项2的动作对该数据包2进行处理操作。之后,还可以查找数据包2是否满足表项3的匹配域,并根据匹配的结果确定是否根据表项3的动作对数据包3进行处理操作。
通常,可编程交换机的交换机程序在编写完成后,需要通过交换机编译器对其进行编译。当编写的交换机程序占用了较多资源时,可能导致对交换机的编译不通过,因此需要减小交换机程序占用的资源。另外,对于有依赖关系的表项,编译器会将其分配在不同的阶段(stage)执行。然而,交换机的资源是平均分配在每个阶段的,因此将具有依赖关系的表项分配在不同的阶段执行,将导致某些阶段的资源并未被充分利用,即表项占用的资源未被充分利用,进而降低交换机的芯片资源的利用率以及数据面的转发性能。
有鉴于此,本申请实施例提供了一种数据处理的方法,通过消除具有写后读依赖关系的表项,能够有助于降低表项的资源占用情况,进而提高交换机的芯片资源的利用率和数据面的转发性能。
具体而言,本申请实施例提供了一种数据处理的方法,服务器在获取可编程交换机的第一项目程序后,对该第一项目程序进行分析,获取第一表项、第二表项和第三表项,其中,该第一表项和第二表项依次对该第一项目程序中的第一变量进行修改操作,该第三表项读取该第二表项对所述第一变量的修改结果。然后,获取该第一表项的第一更新表项和第三表项的第二更新表项。进一步可以根据该第一更新表项、第二表项和第二更新表项,生成该可编程交换机的第二项目程序。
本申请实施例中,服务器还可以将上述第二项目程序烧录到可编程交换机的芯片上。
本申请实施例中,服务器还可以将上述第一更新表项、第二表项和第二更新表项发送给控制器。对应的,控制器接收该第一更新表项、第二表项和第二更新表项。
本申请实施例还提供了一种数据处理的方法,控制器可以获取可编程交换机的第一项目程序对应的第一表项、第二表项和第三表项,其中该第一表项和第二表项依次对该第一项目程序中的第一变量进行修改操作,该第三表项为读取第二表项对该第一变量的修改结果的表项。控制器还从服务器获取第一更新表项、第二表项和第二更新表项,进一步可以根据该第二表项和第三表项分别对应的控制面程序,得到第二更新表项的控制面程序,并根据第二更新表项的控制面程序,向可编程交换机下发该第二更新表项。
其中,上述第一更新表项的动作域包括对第一变量的修改操作和对第二变量的修改操作,该第二变量是对第一变量进行复制得到的,在该第一更新表项的动作域中对该第二变量的修改操作与对第一变量进行修改操作相同。上述第二更新表项的匹配域是根据该第二变量和第二表项的匹配域得到的,该第二更新表项的动作域是根据第三表项的动作域得到的。
可选的,控制器可以根据第一表项对应的控制面程序,向可编程交换机下发该第一表项,以及根据第二表项对应的控制面程序,向可编程交换机下发该第二表项。
对应的,可编程交换机可以在其芯片上烧录了第二项目程序后,接收控制器下发的第二更新表项。
上述第二表项和第三表项之间具有写后读的依赖关系。本申请实施例获取第一更新表项和第二更新表项,使得第二更新表项(即第三表项的更新表项)与第二表项之间不存在依赖关系,能够实现该第二表项和第三表项之间的写后读依赖关系的消除。具体而言,通过根据第一变量进行复制得到的第二变量和第二表项的匹配域,得到的第二更新表项的匹配域不需要读取第一变量,能够实现第二更新表项与第二表项之间写后读依赖关系的消除。
因此,本申请实施例通过对表项之间的写后读依赖关系的消除,在对可编程交换机的项目程序进行编译时,能够有利于将多个表项融合到一个阶段中并行执行,从而有助于提高项目程序编译时的各阶段的资源的利用率,降低表项的资源占用情况。基于此,本申请实施例能够有助于提高交换机的芯片资源的利用率和数据面的转发性能。另外,云端控制器能够根据更新表项对控制面程序进行优化,有助于降低控制面程序的适配开销,提升可编程网关的部署效率。
可以理解的是,通过消除表项之间的写后读的依赖关系,能够实现在降低整体表项的资源占用情况的同时保持网关维持的表项数量不变,从而维持较高的表项数量,提升网关功能的售卖能力。换言之,本申请实施例能够在给定相同交换机资源时,能够提升网关支持的表项数量,进而提升网关功能的售卖能力。
图1为本申请实施例涉及的网络架构10的一个可选的示意图。该网络架构10可以应用于云计算、边缘计算等场景。如图1所示,网络架构10包括后台服务器11、云端控制器12和可编程交换机13。
后台服务器11可以对可编程交换机的原始项目程序(第一项目程序的一个示例)的源代码进行分析,得到对原始项目程序中的第一变量依次进行修改操作的第一表项和第二表项,以及得到读取第二表项对该第一变量的修改结果的第三表项,然后获取该第一表项的第一更新表项,以及获取第三表项的第二更新表项,进而根据该第一更新表项、第二表项和第二更新表项,生成优化项目程序(第二项目程序的一个示例)。后台服务器11还可以向云端控制器12发送表项,比如第一更新表项、第二表项和第二更新表项,以及对可编程交换机13进行程序烧写,比如将优化项目程序烧写到可编程交换机13的芯片上。
云端控制器12中可以保存原始项目程序对应的控制面,以及根据后台服务器11发送的表项进行控制面的应用程序接口(Application Programming Interface,API)适配,比如生成优化项目程序对应的控制面适配层(即控制面适配程序),从而根据原始项目程序对应的控制面和优化项目程序对应的控制面适配层,向可编程交换机13下发表项,比如第二更新表项。可选的,云端控制器12还可以根据原始项目程序对应的控制面,向可编程交换机13下发第一表项和第二表项。
相应的,可编程交换机13在烧写优化项目程序后,可以接收云端控制器12下发的第二更新表项,并根据该第二更新表项,对数据包进行查找和处理。可编程交换机13还可以接收云端控制器12下发的第一表项和第二表项,以对数据包进行查找和处理。
示例性的,可编程交换机13运行在数据转发的数据面,可以为商业的交换机设备,比如InterTofino,其上可以烧写自定义的交换机流水线,以及转发功能。云端控制器12运行在数据转发的控制面,可以部署在中心云的虚拟机中,可以与可编程交换机13进行通信。
例如,可编程交换机13与云端控制器12之间可以具备内网互通能力,以使得云端控制器12能够进行表项的下发,可编程交换机13可以进行下发消息(包含下发表项)成功与否的反馈,便于云端控制器13及时根据数据面的情况作出调整,比如如果下发消息失败,则重新下发一次消息。
后台服务器11可以为一般的服务器,能够对可编程交换机的项目程序执行分析和处理功能。后台服务器11需要具备一定的运行性能,以执行可编程交换机的项目程序的分析和处理功能。
在一些实施例中,后台服务器10与云端控制器12可以设置在同一服务器上,或者设置在不同服务器上,本申请对此不做限定。
服务器可以是一台或多台。服务器是多台时,存在至少两台服务器用于提供不同的服务,和/或,存在至少两台服务器用于提供相同的服务,比如以负载均衡方式提供同一种服务,本申请实施例对此不加以限定。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器也可以成为区块链的节点。
以下结合附图对本申请实施例提供的方案进行描述。
图2为本申请实施例提供的一种数据处理的方法200的示意性流程图。方法200可以由任何具有数据处理能力的电子设备执行。例如,该电子设备可实施为图1中的后台服务器11,本申请对此不做限定。如图2所示,方法200可以包括步骤210至250。
210,获取可编程交换机的第一项目程序。
示例性的,后台服务器可以获取可编程交换机的第一项目程序。比如,在后台服务器端,可以给定一个可编程交换机的第一项目程序。该第一项目程序可以为可编程交换机的原始项目程序,即待优化项目程序。
在一些实施例中,该第一项目程序包括主程序代码和所述主程序代码引用的程序代码。
具体而言,该第一项目程序可以包含一系列可编程交换机的源代码,其中可以包含一个主程序代码文件(如可以命名为main.p4)和该主程序代码文件引用的项目中其他的.p4类型的文件。示例性的,可以以该主程序代码文件为核心,迭代分析其中引用的项目中的其他的.p4类型的文件,汇总成一个大的可编程交换机源代码文件AM,即第一项目程序AM。
220,对该第一项目程序进行分析,获取第一表项、第二表项和第三表项,其中,该第一表项和第二表项依次对该第一项目程序中的第一变量进行修改操作,该第三表项读取该第二表项对所述第一变量的修改结果。
示例性的,后台服务器可以对第一项目程序执行源代码分析功能,获取该第一表项、第二表项和第三表项。
该第一表项和第二表项依次对该第一项目程序中的第一变量进行了修改操作,即该第一表项和第二表项之间具有写后写的依赖关系。该第三表项读取第二表项对该第一变量的修改结果,即该第三表项在第二表项对该第一变量进行修改操作之后读取该第一变量,那么该第二表项和第三表项之间具有写后读的依赖关系。具体的,写后写的依赖关系和写后读的依赖关系可以参见上文中的描述,这里不再赘述。
在一些实施例中,由于第一表项的动作、第二表项的动作和第三表项的匹配域中均包含该第一变量,因此该第一变量也可以称为共享变量。
图3是本申请实施例的第一表项、第二表项和第三表项的具体例子,其中表项1为第一表项的一个示例,表项2为第二表项的一个示例,表项3为第三表项的一个示例。
如图3所示,首先可以查找到数据包1的变量A满足表项1的匹配域,并根据表项1的动作对该数据包1进行处理操作,即赋值变量B=99得到数据包2。然后再查找数据包2的变量E、F满足表项2的匹配域,根据表项2的动作对该数据包2进行处理操作,即赋值变量B=D+3,变量G=E+1得到数据包3。然后再查找数据包3的变量B(此时B=D+3)满足表项3的匹配域,并根据表项3的动作对数据包3进行处理操作,即赋值变量H=D+9。其中,表项1和表项2之间具有写后写的依赖关系,表项2和表项3之间具有写后读的依赖关系。
其中,变量B即为第一变量的一个示例,在该示例中表项1的动作对变量B赋值为99(即B=99),表项2对变量B赋值为D+3(即B=D+3)。在表项3的匹配域中进一步读取表项2修改后的变量B。
另外,当数据包2的变量E、F不满足表项2的匹配域时,不根据表项2的动作域记录的信息对数据包2进行处理操作。之后,还可以查找数据包2的变量B(此时B=99)是否满足表项3的匹配域,并根据匹配的结果确定是否根据表项3的动作域记录的信息对数据包3进行处理操作。
在一些实施例中,参见图4,后台服务器可以通过以下步骤221至224获取上述第一表项、第二表项和第三表项。
221,获取第一变量,并存储到变量数组。
示例性的,后台服务器可以对第一项目程序执行源代码分析功能,得到第一项目程序中的第一变量,并存储到变量数组V[L]中,其中L为正整数,表示分析得到的变量的数量。可选的,后台服务器可以得到第一项目程序中个的所有变量,并按照得到变量的先后顺序依次将变量存储到变量数组V[L]中。第一变量可以为该变量数组V[L]中的第i个变量,i为小于或等于L的正整数。
222,获取第一项目程序中的表项,并存储到表项数组。
示例性的,后台服务器可以对第一项目程序执行源代码分析功能,得到第一项目程序中的所有表项,并按照得到表项的先后顺序依次将表项存储到表项数组T[Lt]中,其中Lt为正整数,表示分析得到的表项的数量。也就是说,各表项在表项数组T[Lt]中的排序可以与各表项在第一项目程序中被执行的先后顺序相同。可选的,表项数组T[Lt]可以包括每个表项的匹配域。
223,获取该表项数组中的每个表项对应的动作,并存储到每个表项的动作数组。
示例性的,后台服务器可以对第一项目程序执行源代码分析功能,得到表项数组T[Lt]中的每个表项对应的动作。另外,对于表项数组T[Lt]中的每个表项,其中包含的所有动作操作,可以按照被执行的先后顺序依次存储到对应的动作数组T[j]A[Laj]中,其中,Laj为正整数,表示表项数组T[Lt]中第j个表项T[j]中包含的动作的数量,j≤Lt。也就是说,表项T[j]的各动作在动作数组T[j]A[Laj]中的排序与表项T[j]的各动作的执行的先后顺序相同。
224,对变量数组中的第一变量,遍历表项数组和每个表项的动作数组,获取上述第一表项、第二表项、第三表项、依次对该第一变量进行修改的第一表项的第一动作和第二表项的第二动作,以及第三表项的动作。
示例性的,对于变量数组V[L]中的第i个变量V[i],可以分析其在第一项目程序中的使用关系,从表项数组T[Lt]中的各表项的动作数组T[j]A[Laj]中获取依次修改了该变量V[i]的第一表项的第一动作和第二表项的第二动作,以及从表项数组T[Lt]获取读取该第二表项对第一变量的修改结果的第三表项。进一步的,还可以从表项数组T[Lt]中获取该第一表项和第二表项,从各表项的动作数组T[j]A[Laj]中获取第三表项的动作。
作为一个示例,对该变量V[i]进行修改,可以指修改该变量V[i]的数值,本申请对此不做限定。
作为一种可能的实现方式,对于变量V[i],表项T[j]和动作T[j]A[k],设定迭代变量i=0,j=0,k=0。此时可以执行以下步骤a)至d)。
a)对于变量V[i],确定表项T[j]的动作T[j]A[k]对变量V[i]的数值是否进行了修改,或者确定表项T[j]的匹配域是否读取了变量V[i]的数值。
b)令k=k+1,此时如果k>Laj,则跳转到步骤c);如果反之,即k≤Laj,则跳转到步骤a);
c)令j=j+1,此时如果j>Lt-1,则跳转到步骤d);如果反之,即j≤Lt-1,则跳转到步骤a);
作为一个具体的例子,如果确定表项T[j1]的动作T[j1]A[k1]对变量V[i]的数值进行了修改,表项T[j2]的动作T[j2]A[k2]在动作T[j1]A[k1]对变量V[i]的修改结果上进一步修改了变量V[i]的数值,且表T[j3]的匹配域读取了动作T[j2]A[k2]对变量V[i]修改后的数值,则可以获取表T[j1]、功能T[j1]A[k1]、表T[j2]、功能T[j2]A[k2]、表T[j3]、功能T[j3]A[k3]。其中,j1<j2<j3。
d)令i=i+1,此时如果i>L,则对表项数组T[Lt]中的各表项的动作数组T[j]A[Laj]遍历结束;如果反之,即i≤L,则跳转到步骤a)。
通过上述步骤a)至d),可以实现对变量数组V[L]中的每个变量V[i],遍历表项数组T[Lt]中的每个表项的动作数组T[j]A[Laj],获取依次对每个变量V[i]进行修改的表项T[j1]的动作T[j1]A[k1]和表项T[j2]的动作T[j2]A[k2],以及获取读取表项T[j2]对该变量V[i]的修改结果的表项T[j3],并从表项数组T[Lt]中获取该表项T[j1]、表项T[j2],以及从动作数组中T[j]A[Laj]获取T[j3]的动作T[j3]A[k3]。
在一些实施例中,还可以将上述第一变量、第一表项、第二表项、第三表项、第一动作、第二动作、第三表项的动作作为元素,保存至依赖关系数组。这里,依赖关系数组也可以称为写后读关系数组,不做限定。
作为示例,可以将上述每个变量V[i],以及每个变量V[i]对应的表项T[j1]、功能T[j1]A[k1]、表项T[j2]、功能T[j2]A[k2]、表项T[j3]、功能T[j3]A[k3]作为一个元素,存储到依赖关系数组W[Lw]。此时,依赖关系数组W[Lw]的每个元素为七元组,即包含变量、3个表项,以及3个表项分别对应的动作。
230,获取第一表项的第一更新表项,其中,该第一更新表项的动作域包括对第一变量的修改操作和对第二变量的修改操作,该第二变量是对第一变量进行复制得到的,在该第一更新表项的动作域中对第二变量的修改操作与对第一变量的修改操作相同。
示例性的,后台服务器可以对上述第一变量进行复制,得到第二变量。同时,还可以将第一表项的动作中对第一变量的赋值语句也复制一份,作为第二变量的赋值,实现在该第一更新表项的动作域中对第二变量的修改操作与对第一变量进行修改操作相同,即使得第二变量的赋值与第一表项对该第一变量进行修改后的值相同。也就是说,第一更新表项的动作域可以包括对第一变量进行赋值的动作,以及对第二变量进行赋值的动作。第一更新表项也可以称为第一表项的更新表项,不做限定。
参见图5,其中表项1为对图4中的表项1的更新表项,其动作包括B=99,Bt=99,其中B为第一变量的一个示例,Bt为第二变量的第一个示例。
应理解,本申请实施例通过获取第一更新变量,即对第一变量进行复制,得到第二变量,能够实现当第二表项的动作对第一变量进行修改时,第二变量的数值不会发生改变。
240,获取第三表项的第二更新表项,其中,该第二更新表项的匹配域是根据第二变量和第二表项的匹配域得到的,该第二更新表项的动作域是根据第三表项的动作域得到的。
第二更新表项也可以称为第三表项的更新表项,不做限定。
在一些实施例中,参见图6,可以通过步骤241至242,得到第二更新表项。
241,根据该第二变量和第二表项的匹配域,得到第二更新表项的匹配域。
继续参见图5,更新的表项3为第二更新表项的一个示例,更新的表项3的匹配域可以包括第二变量(比如变量Bt)和第二表项的匹配域中的变量(比如变量E、F)。
由于第二表项的动作对第一变量进行修改时,第二变量的数值不会发生改变,因此当根据第二变量和第二表项的匹配域得到第二更新表项的匹配域时,能够使得第二更新表项的匹配域与第一更新表项的对第一变量赋值的动作关联,但却不依赖于第一变量的赋值。因此,该第二更新表项的匹配域不依赖于第二表项对第一变量的修改操作,即第二更新表项的匹配域不需要读取第二表项的动作域对第一变量的修改结果,从而第二更新表项与第二表项之间没有写后读的依赖关系。
242,根据该第三表项的动作域,得到该第二更新表项的动作域。
具体的,可以将该第三表项的动作域,确定为该第二更新表项的动作域。继续参见图5,更新的表项3的动作域与图4中表项3的动作域相同,均为H=D+9。
在一些实施例中,可以根据具体业务对应数据包中的变量值,对第二更新表项的匹配域中的变量进行赋值。以下示出了本申请实施例提供的两种的确定第二更新表项的匹配域中变量的数值的方式,在具体的业务场景中,可以根据业务需求选择其中一个执行。
方式一,如果第二表项的匹配域读取的第三变量不满足该第二表项的匹配域,则根据该第二变量和第三变量满足的条件,确定第二更新表项的匹配域变量的赋值。
示例性的,继续参见图5,如果表项2的匹配域读取的变量E、F(第三变量的一个示例)不满足表项2的匹配域的匹配条件,例如表项2的匹配域读取的E=01,F=02,但是表项2的匹配条件为E=01,F=03,则可以确定更新的表项3的匹配域变量的赋值为Bt=99,E为其取值范围内的除01之外的数值或F为其取值范围内的除03之外的数值(如E=01,F=02)。
在图4和图5中,当业务对应的数据包的变量B被表项1赋值为99,该数据包的变量E=01,F=02,不满足表项2的匹配条件E=01,F=03,表项2不对该数据包进行修改。进一步的,对于图4中未进行写后读依赖关系消除的表项3,读取变量B(此时B=99),对表项1修改后的数据包执行动作:H=D+9。而对于图5中进行了写后读依赖关系消除的更新的表项3,读取Bt=99,E=01,F=02,满足更新的表3的执行条件,对表项1修改后的数据包执行动作:H=D+9。
在图4中,表项1、表项2和表项3对业务数据包进行处理之后,可得业务数据包中变量B=99,H=D+9。在图5中,更新的表项1、表项2和更新的表项3对业务数据包进行处理之后,也可得业务数据包中变量B=99,H=D+9。
方式二,如果该第三变量满足第二表项的匹配域,则根据该第二变量和第二表项的匹配域变量的赋值,确定该第二更新表项的匹配域变量的赋值。
示例性的,继续参见图5,如果表项2的匹配域读取的变量E、F(第三变量的一个示例)满足表项2的匹配域的匹配条件,例如表项2的匹配域读取的E=01,F=03,并且表项2的匹配条件为E=01,F=03,则可以确定更新的表项3的匹配域为Bt=99,E=01,F=03。
在图4和图5中,当业务对应的数据包的变量B被表项1赋值为99,该数据包的变量E=01,F=03,满足表项2的匹配条件E=01,F=03,表项2对该数据包执行动作:B=D+3,G=E+1。进一步的,对于图4中未进行写后读依赖关系消除的表项3,读取B(此时B=D+3),对表项1修改后的数据包执行动作:H=D+9。而对于图5中进行了写后读依赖关系消除的更新的表项3,读取Bt=99,E=01,F=02,满足更新的表3的执行条件,对表项1修改后的数据包执行动作:H=D+9。
在图4中,表项1、表项2和表项3对业务数据包进行处理之后,可得业务数据包中变量B=D+3,G=E+1,H=D+9。在图5中,更新的表项1、表项2和更新的表项3对业务数据包进行处理之后,也可得业务数据包中变量B=D+3,G=E+1,H=D+9。
在一些实施例中,对上述依赖关系数组中的每个元素,可以获取该每个元素中的第一表项的第一更新表项,以及每个元素的第三表项的第二更新表项。例如,对依赖关系数组W[Lw]中的每个元素对应的七元组{变量V[i],表项T[j1],功能T[j1]A[k1],表项T[j2],功能T[j2]A[k2],表项T[j3],功能T[j3]A[k3]},确定表项T[j1]和表项T[j3]的更新表项。作为一种可能的实现方式,对于依赖关系数组W[Lw]中的每个元素W[r],设定迭代变量r为0。此时,可以执行以下步骤a)至d)。
a)对于元素W[r],将元素W[r]中各表项进行更新,比如可以将元素W[r]中的表项T[r0]的功能T[r0]A[0]中的共享变量复制一份,例如将变量V复制为变量V′,且将T[r0]A[0]中的赋值语句也复制一份,以对V′进行赋值。
其中,依赖关系数组W[Lw]中元素W[r]中的表项T[r0]为第一表项的一个示例。通过步骤a),可以得到更新后的表项T[r0]′(第一更新表项的一个示例)。作为一个具体的例子,图5中的表项1可以为表项T[r0]′的一个示例。
b)将元素W[r]中的表项T[r2]的匹配域中读取变量V修改为读取变量V′,且将表项T[r2]的匹配域和表项T[r1]的匹配域进行合并。
其中,依赖关系数组W[Lw]中元素W[r]中的表项T[r2]为第三表项的一个示例,依赖关系数组W[Lw]中元素W[r]中的表项T[r1]为第二表项的一个示例。
通过上述步骤b),可以得到更新后的表项T[r2]′(第二更新表项的一个示例),以及没有改变的表项T[r1],其中更新后的表项T[r2]′的动作域相对表项T[r2]的动作域没有改变。作为一个具体的例子,图5中的更新后的表项3可以为表项T[r2]′的一个示例,图5中的表项2可以为表项T[r1]的一个示例。
作为一种可能的实现方式,可以将更新后的表项T[r0]′、没有改变的表项T[r1]和更新后的表项T[r2]′存储到更新后的表项数组M[Lm]。
c)令r=r+1,如果r>Lw,则对依赖关系数组W[Lw]中的所有元素对应的表项更新完成;如果反之,即r≤Lw,则跳转到步骤a)。
250,根据该第一更新表项、第二表项和第二更新表项,生成可编程交换机的第二项目程序。
示例性的,后台服务器可以根据第一更新表项、第二表项和第二更新表项,生成新的优化项目程序AMm,即第二项目程序AMm。
由于第二更新表项与第二表项之间不具有依赖关系,因此第二项目程序在编译时能够将第二更新的表项和第二表项分配在同一stage中,有利于将多个表项融合到一个stage中并行执行,实现对stage的多路复用,基于此第二项目程序在编译时各阶段的资源的利用率高于第一项目程序在编译时各阶段的资源的利用率。
例如,第二更新表项和第二表项之间不具有依赖关系,因此在第二项目程序编译时,第二更新表项和第二表项可以分配在同一个阶段,从而有利于提高编译时各阶段的资源的利用率。
因此,本申请实施例通过对表项之间的写后读依赖关系的消除,在对可编程交换机的项目程序进行编译时,能够有利于将多个表项融合到一个阶段中并行执行,从而有助于提高项目程序编译时的各阶段的资源的利用率,降低表项的资源占用情况。基于此,本申请实施例能够有助于提高交换机的芯片资源的利用率和数据面的转发性能。
可以理解的是,通过消除表项之间的写后读的依赖关系,能够实现在降低整体表项的资源占用情况的同时保持网关维持的表项数量不变,从而维持较高的表项数量,提升网关功能的售卖能力。换言之,本申请实施例能够在给定相同交换机资源时,能够提升网关支持的表项数量,进而提升网关功能的售卖能力。
在一些实施例中,后台服务器还可以将上述第二项目程序烧写到可编程交换机的芯片上。这样,可以有助于可编程交换机根据该第二项目程序对应的表项对数据包进行匹配和处理。
在一些实施例中,后台服务器还可以向控制器发送上述第一更新表项、第二表项和第二更新表项。对应的,控制器可以接收该第一更新表项、第二表项和第二更新表项,并根据该第一更新表项、第二表项和第二更新表项对控制面的API进行适配,生成第二项目程序对应的控制面适配层,从而可以根据保存的第一项目程序对应的控制面和该控制面适配层,向可编程交换机下发第二更新表项。
图7为本申请实施例提供的一种数据处理的方法300的示意性流程图。方法300可以由任何具有数据处理能力的电子设备执行。例如,该电子设备可实施为图1中的云端控制器12,本申请对此不做限定。如图7所示,方法300可以包括步骤310至340。
310,获取可编程交换机的第一项目程序对应的第一表项、第二表项和第三表项,该第一表项和第二表项依次对该第一项目程序中的第一变量进行修改操作,该第三表项为读取所述第二表项对所述第一变量的修改结果的表项。
示例性的,云端控制器中预先保存可编程交换机的第一项目程序对应的所有表项,以及每个表项对应的控制面程序。其中,第一项目程序对应的所有表项包括上述第一表项、第二表项和第三表项。
示例性的,对于第一项目程序对应的表项数组T[Lt],云端控制器中保存的对应的控制面程序数组O[Lo],其中O[Lo]中每个元素O[i]包含针对表项T[i]的匹配域赋予的数值,以及该数值对应的动作A[k]。
作为示例,元素O[i]包含T[i]{Match[0],Match[1],...,Match[u]},A[i]{Param[0],Param[1],...,Param[n]},其中,Match[u]为表项T[i]的第u个匹配条件赋予的数值,Param[n]为动作A[i]中的第n个参数的数值。
320,从服务器获取第一更新表项、第二表项和第二更新表项。
该第一更新表项的动作域包括对第一变量的修改操作和对第二变量的修改操作,该第二变量是对第一变量进行复制得到的,在该第一更新表项的动作域中对第二变量的修改操作与对第一变量进行修改操作相同;该第二更新表项的匹配域是根据第二变量和第二表项的匹配域得到的,第二更新表项的动作域是根据所述第三表项的动作域得到的。
作为一个示例,云端控制器可以获取服务器发送的更新后的表项数组M[Lm],其中可以包括针对第一项目程序中的表项对应的更新后的表项。
具体的,该第一更新表项、第二更新表项可以参见上文中方法200中的描述,这里不再赘述。
在一些实施例中,云端控制器可以通过对第一更新表项、第二表项和第二更新表项和第一项目程序中的所有表项进行对比,从第一项目程序对应的所有表项中确定原始的第一表项、第二表项和第三表项。例如,可以通过对第一更新表项、第二表项和第二更新表项的匹配域和动作域分别对与第一项目程序中的所有表项的匹配域和动作域进行对比,确定该第一表项、第二表项和第三表项。
330,根据第二表项和第三表项分别对应的控制面程序,得到所述第二更新表项的控制面程序。
示例性的,可以在第一表项、第二表项和第三表项分别对应的控制面程序的基础上,通过控制面适配层得到第二更新表项的控制面程序。
在一些实施例中,参见图8,可以通过步骤331至334得到第二更新表项的控制面程序。
331,对第二表项和第三表项分别对应的控制面程序中的匹配域的变量进行合并,得到所述第二更新表项的匹配域变量。
作为示例,控制面程序具体可以为上述控制面程序数组O[Lo],其中第一表项例如为T[e0],第二表项例如为T[e1],第三表项例如为T[e2]。第二表项对应的匹配域变量可以为T[e1]{Match0,Match1,...,Matchu1},第三表项对应的匹配域变量可以为T[e2]{Match0,Match1,...,Matchu2},对第二表项匹配域变量和第三表项的匹配域变量进行合并后可得到第二更新表项的匹配域变量,比如为mT[e]{Match0,Match1,...,Match(u1+u2)}。这里,第二表项匹配域变量和第三表项的匹配域变量进行合并,可以指对第二表项的匹配域变量和第三表项的匹配域变量进行与操作。
作为一个具体例子,对图5中的更新的表项3的匹配域变量,可以为表项2匹配域变量(包括变量E、F)和表项3的匹配域变量(包括变量B)的并集,即包括变量B、E和F。
332,如果第二表项的匹配域读取的第三变量不满足第二表项的匹配域,则根据第一变量和第三变量满足的条件,确定第二更新表项的匹配域变量的赋值。
具体的,当第二表项的匹配域读取的第三变量不满足第二表项的匹配域时,第二表项不执行对修改第一变量的操作,此时可以根据该第一变量和第三变量满足的条件,确定第二更新表项的匹配域变量的赋值。具体的,根据第一变量和第三变量满足的条件,确定第二更新表项的匹配域变量的赋值与上文中方式一对应。例如,对图5中的更新的表项3的匹配域变量,有B=99,E=01,F=02。
333,如果上述第三变量满足第二表项的匹配域,则根据第一变量和第二表项的匹配条件赋值,确定第二更新表项的匹配域变量的赋值。
具体的,当第二表项的匹配域读取的第三变量满足第二表项的匹配域时,第二表项执行对修改第一变量的操作,此时可以根据该第一变量和第三变量满足的条件,确定第二更新表项的匹配域变量的赋值。具体的,根据第一变量和第三变量满足的条件,确定第二更新表项的匹配域变量的赋值与上文中方式二对应。例如,对图5中的更新的表项3的匹配域变量,有B=D+3,E=01,F=03。
示例性的,第二更新表项的匹配域变量mT[e]{Match0,Match1,...,Match(u1+u2)}在赋值后,可以得到第二更新表项的匹配域变量赋值mT[e]{Match[0],Match[1],...,Match[u1+u2]。
334,根据第二更新表项的匹配域变量的赋值和第三表项的动作参数值,得到该第二更新表项的控制面程序。
示例性的,上述至第三表项T[e2],对应的动作参数值为T[e2]A[i]{Param[0],Param[1],...,Param[n]},相应的第二更新表项的动作参数值为mT[e]A[i]{Param[0],Param[1],...,Param[n]}。
示例性的,可以将第二更新表项的匹配域变量赋值mT[e]{Match[0],Match[1],...,Match[u1+u2]和动作参数值mT[e]A[i]{Param[0],Param[1],...,Param[n]}存储到更新后的控制面程序数组mO[Lo]中。根据该更新后的控制面程序数组mO[Lo],可以得到第二更新表项的控制面程序。
340,根据第二更新表项的控制面程序,向可编程交换机下发所述第二更新表项。
示例性的,控制面适配层在得到第二更新表项的控制面程序后,可以根据该控制面程序向可编程交换机下发第二更新表项。
在一些实施例中,云端控制器还可以根据第一表项对应的控制面程序,向可编程交换机下发该第一表项,以及根据第二表项对应的控制面程序,向可编程交换机下发该第二表项。
示例性的,对于更新后的表项数组M[Lm]中的每个元素M[e],设定迭代变量e为0。此时,可以执行上述步骤331至334,其中当e≥Lm时,停止迭代,此时可以获取表项数组M[Lm]中的元素M[e]中的T[e2]的更新表项的控制面程序。可选的,对于元素M[e]中的T[e0]和T[e1],云端控制器下发的指令不需要改变,即可以根据表项T[e0]原始对应的控制面程序,向可编程交换机下发T[e0],以及根据表项T[e1]原始对应的控制面程序,向可编程交换机下发T[e1]。其中,T[e0]为第一更新表项的一个示例,T[e2]为第二更新表项的一个示例,T[e1]为没有改变的第二表项的一个示例。
因此,本申请实施例在后台服务器消除了项程序中表项之间的写后读依赖关系的同时,云端控制器能够根据更新的表项,对控制面程序进行优化,有助于降低控制面程序的适配开销,提升可编程网关的部署效率。
以上结合附图详细描述了本申请的具体实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。应理解这些序号在适当情况下可以互换,以便描述的本申请的实施例能够以除了在图示或描述的那些以外的顺序实施。
上文结合图1至图8,详细描述了本申请的方法实施例,下文结合图9至图11,详细描述本申请的装置实施例。
图9是本申请实施例的一种数据处理的装置900的示意性框图。如图9所示,装置900可包括获取单元910、分析单元920和生成单元930。
获取单元910,用于获取可编程交换机的第一项目程序;
分析单元920,用于对所述第一项目程序进行分析,获取第一表项、第二表项和第三表项,其中,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项读取所述第二表项对所述第一变量的修改结果;
获取单元910,还用于获取所述第一表项的第一更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;
获取单元920还用于获取所述第三表项的第二更新表项,其中,所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
生成单元930,用于根据所述第一更新表项、所述第二表项和所述第二更新表项,生成所述可编程交换机的第二项目程序。
在一些实施例中,所述获取单元910具体用于:
如果所述第二表项的匹配域读取的第三变量不满足所述第二表项的匹配域,则根据所述第二变量和所述第三变量满足的条件,确定所述第二更新表项的匹配域变量的赋值;
如果所述第三变量满足所述第二表项的匹配域,则根据所述第二变量和所述第二表项的匹配域变量的赋值,确定所述第二更新表项的匹配域变量的赋值;
根据所述第三表项的动作域,得到所述第二更新表项的动作域。
在一些实施例中,分析单元920具体用于:
获取所述第一变量,并存储到变量数组;
获取所述第一项目程序中的表项,并存储到表项数组;
获取所述表项数组中的每个表项对应动作,并存储到所述每个表项的动作数组;
对所述变量数组中的所述第一变量,遍历所述表项数组和所述每个表项的动作数组,获取所述第一表项、所述第二表项、所述第三表项、依次对所述第一变量进行修改的所述第一表项的第一动作和所述第二表项的第二动作,以及所述第三表项的动作。
在一些实施例中,获取单元910还用于:
将所述第一变量、所述第一表项、所述第二表项、所述第三表项、所述第一动作、所述第二动作、所述第三表项的动作作为元素,保存至依赖关系数组;
获取所述依赖关系数组中的每个元素的所述第一表项的所述第一更新表项,以及所述第三表项的第二更新表项。
在一些实施例中,还包括烧写单元,用于:
将所述第二项目程序烧写到所述可编程交换机的芯片上。
在一些实施例中,还包括发送单元,用于:
向控制器发送所述第一更新表项、所述第二表项和所述第二更新表项。
在一些实施例中,所述第一项目程序包括主程序代码和所述主程序代码引用的程序代码。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,当在该实施例中数据处理的装置900可以对应于执行本申请实施例的方法200的执行主体时,装置900中的各个模块的前述和其它操作和/或功能分别为了实现图2中的各个方法相应流程,为了简洁,在此不再赘述。
图10是本申请实施例的另一种数据处理的装置1000的示意性框图。如图10所示,装置900可包括获取单元1010、处理单元1020和发送单元1030。
获取单元1010,用于获取可编程交换机的第一项目程序对应第一表项、第二表项和第三表项,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项为读取所述第二表项对所述第一变量的修改结果的表项;
获取单元1010,还用于从服务器获取第一更新表项、所述第二表项和第二更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
处理单元1020,用于根据所述第二表项和所述第三表项分别对应的控制面程序,得到所述第二更新表项的控制面程序;
发送单元1030,用于根据所述第二更新表项的控制面程序,向所述可编程交换机下发所述第二更新表项。
在一些实施例中,处理单元1020具体用于:
对所述第二表项和所述第三表项分别对应的控制面程序中的匹配域的变量进行合并,得到所述第二更新表项的匹配域变量;
如果所述第二表项的匹配域读取的第三变量不满足所述第二表项的匹配域,则根据所述第一变量和所述第三变量满足的条件,确定所述第二更新表项的匹配域变量的赋值;
如果所述第三变量满足所述第二表项的匹配域,则根据所述第一变量和所述第二表项的匹配域变量的赋值,确定所述第二更新表项的匹配域变量的赋值;
根据所述第二更新表项的匹配域变量的赋值和所述第三表项的动作参数值,得到所述第二更新表项的控制面程序。
在一些实施例中,发送单元1030还用于:
根据所述第一表项对应的控制面程序,向所述可编程交换机下发所述第一表项;以及
根据所述第二表项对应的控制面程序,向所述可编程交换机下发所述第二表项。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,当在该实施例中数据处理的装置1000可以对应于执行本申请实施例的方法300的执行主体时,装置1000中的各个模块的前述和其它操作和/或功能分别为了实现图7中的各个方法相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置和系统。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
如图11是本申请实施例提供的电子设备1100的示意性框图。
如图11所示,该电子设备1100可包括:
存储器1110和处理器1120,该存储器1110用于存储计算机程序,并将该程序代码传输给该处理器1120。换言之,该处理器1120可以从存储器1110中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该处理器1120可用于根据该计算机程序中的指令执行上述方法200或方法300中各执行主体的步骤。
在本申请的一些实施例中,该处理器1120可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器1110包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器1110中,并由该处理器1120执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该电子设备1100中的执行过程。
可选的,该电子设备1100还可包括:
通信接口1130,该通信接口1130可连接至该处理器1120或存储器1110。
其中,处理器1120可以控制该通信接口1130与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。示例性的,通信接口1130可以包括发射机和接收机。通信接口1130还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备1100中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种通信装置,包括处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行所述存储器中存储的计算机程序,使得所述编码器执行上述方法实施例的方法。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
应理解,在本申请实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
还应理解,本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
还应理解,说明书中与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,在本申请的具体实施方式中,可能涉及到用户信息等相关的数据。当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (13)
1.一种数据处理的方法,其特征在于,所述方法应用于服务器,包括:
获取可编程交换机的第一项目程序;
对所述第一项目程序进行分析,获取第一表项、第二表项和第三表项,其中,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项读取所述第二表项对所述第一变量的修改结果;
获取所述第一表项的第一更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;
获取所述第三表项的第二更新表项,其中,所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
根据所述第一更新表项、所述第二表项和所述第二更新表项,生成所述可编程交换机的第二项目程序。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第三表项的第二更新表项,包括:
如果所述第二表项的匹配域读取的第三变量不满足所述第二表项的匹配域,则根据所述第二变量和所述第三变量满足的条件,确定所述第二更新表项的匹配域变量的赋值;
如果所述第三变量满足所述第二表项的匹配域,则根据所述第二变量和所述第二表项的匹配域变量的赋值,确定所述第二更新表项的匹配域变量的赋值;
根据所述第三表项的动作域,得到所述第二更新表项的动作域。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一项目程序进行分析,获取第一表项、第二表项和第三表项,包括:
获取所述第一变量,并存储到变量数组;
获取所述第一项目程序中的表项,并存储到表项数组;
获取所述表项数组中的每个表项对应动作,并存储到所述每个表项的动作数组;
对所述变量数组中的所述第一变量,遍历所述表项数组和所述每个表项的动作数组,获取所述第一表项、所述第二表项、所述第三表项、依次对所述第一变量进行修改的所述第一表项的第一动作和所述第二表项的第二动作,以及所述第三表项的动作。
4.根据权利要求3所述的方法,其特征在于,还包括:
将所述第一变量、所述第一表项、所述第二表项、所述第三表项、所述第一动作、所述第二动作、所述第三表项的动作作为元素,保存至依赖关系数组;
获取所述依赖关系数组中的每个元素的所述第一表项的所述第一更新表项,以及所述第三表项的第二更新表项。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一项目程序包括主程序代码和所述主程序代码引用的程序代码。
6.一种数据处理的方法,其特征在于,所述方法应用于控制器,包括:
获取可编程交换机的第一项目程序对应的第一表项、第二表项和第三表项,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项为读取所述第二表项对所述第一变量的修改结果的表项;
从服务器获取第一更新表项、所述第二表项和第二更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
根据所述第二表项和所述第三表项分别对应的控制面程序,得到所述第二更新表项的控制面程序;
根据所述第二更新表项的控制面程序,向所述可编程交换机下发所述第二更新表项。
7.根据权利要求6所述的方法,其特征在于,根据所述第二表项和所述第三表项分部对应的控制面程序,得到所述第二更新表项的控制面程序,包括:
对所述第二表项和所述第三表项分别对应的控制面程序中的匹配域的变量进行合并,得到所述第二更新表项的匹配域变量;
如果所述第二表项的匹配域读取的第三变量不满足所述第二表项的匹配域,则根据所述第一变量和所述第三变量满足的条件,确定所述第二更新表项的匹配域变量的赋值;
如果所述第三变量满足所述第二表项的匹配域,则根据所述第一变量和所述第二表项的匹配域变量的赋值,确定所述第二更新表项的匹配域变量的赋值;
根据所述第二更新表项的匹配域变量的赋值和所述第三表项的动作参数值,得到所述第二更新表项的控制面程序。
8.根据权利要求6所述的方法,其特征在于,还包括:
根据所述第一表项对应的控制面程序,向所述可编程交换机下发所述第一表项;以及
根据所述第二表项对应的控制面程序,向所述可编程交换机下发所述第二表项。
9.一种数据处理的装置,其特征在于,包括:
获取单元,用于获取可编程交换机的第一项目程序;
分析单元,用于对所述第一项目程序进行分析,获取第一表项、第二表项和第三表项,其中,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项读取所述第二表项对所述第一变量的修改结果;
所述获取单元,还用于获取所述第一表项的第一更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;
所述获取单元还用于获取所述第三表项的第二更新表项,其中,所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
生成单元,用于根据所述第一更新表项、所述第二表项和所述第二更新表项,生成所述可编程交换机的第二项目程序。
10.一种数据处理的装置,其特征在于,包括:
获取单元,用于获取可编程交换机的第一项目程序对应的第一表项、第二表项和第三表项,所述第一表项和所述第二表项依次对所述第一项目程序中的第一变量进行修改操作,所述第三表项为读取所述第二表项对所述第一变量的修改结果的表项;
所述获取单元,还用于从服务器获取第一更新表项、所述第二表项和第二更新表项,其中,所述第一更新表项的动作域包括对所述第一变量的修改操作和对第二变量的修改操作,所述第二变量是对所述第一变量进行复制得到的,在所述第一更新表项的动作域中对所述第二变量的修改操作与对所述第一变量的修改操作相同;所述第二更新表项的匹配域是根据所述第二变量和所述第二表项的匹配域得到的,所述第二更新表项的动作域是根据所述第三表项的动作域得到的;
处理单元,用于根据所述第二表项和所述第三表项分别对应的控制面程序,得到所述第二更新表项的控制面程序;
发送单元,用于根据所述第二更新表项的控制面程序,向所述可编程交换机下发所述第二更新表项。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有指令,所述处理器运行所述指令时,使得所述处理器执行权利要求1-8任一项所述的方法。
12.一种计算机存储介质,其特征在于,包括指令,当其在计算机上运行时,使得所述计算机执行权利要求1-8中任一项所述的方法。
13.一种计算机程序产品,其特征在于,包括计算机程序代码,当所述计算机程序代码被电子设备运行时,使得所述电子设备执行权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210887550.4A CN117519707A (zh) | 2022-07-26 | 2022-07-26 | 数据处理的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210887550.4A CN117519707A (zh) | 2022-07-26 | 2022-07-26 | 数据处理的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117519707A true CN117519707A (zh) | 2024-02-06 |
Family
ID=89757144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210887550.4A Pending CN117519707A (zh) | 2022-07-26 | 2022-07-26 | 数据处理的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519707A (zh) |
-
2022
- 2022-07-26 CN CN202210887550.4A patent/CN117519707A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3593503B1 (en) | Packet processor in virtual filtering platform | |
Immorlica et al. | Coordination mechanisms for selfish scheduling | |
US11122008B2 (en) | Service chains for inter-cloud traffic | |
US10104187B2 (en) | System, computer program, and method for dividing services into subsets based on interdependencies | |
US10931559B2 (en) | Distribution of network-policy configuration, management, and control using model-driven and information-centric networking | |
US11729026B2 (en) | Customer activation on edge computing environment | |
Bremler-Barr et al. | Openbox: Enabling innovation in middlebox applications | |
Dräxler et al. | Specification, composition, and placement of network services with flexible structures | |
Sharma et al. | VNF-AAPC: Accelerator-aware VNF placement and chaining | |
Khan et al. | Secure transactions management using blockchain as a service software for the internet of things | |
Bordel et al. | Service management in virtualization-based architectures for 5G systems with network slicing | |
Scherb et al. | Execution plans for serverless computing in information centric networking | |
Gadre et al. | Centralized approaches for virtual network function placement in SDN-enabled networks | |
US20180139121A1 (en) | Determining shortcut rules for bypassing waypoint network device(s) | |
Allahvirdi et al. | Placement of dynamic service function chains in partially VNF-enabled networks | |
Spinnewyn et al. | Delay-constrained NFV orchestration for heterogeneous cloud networks | |
CN117519707A (zh) | 数据处理的方法、装置、电子设备及存储介质 | |
Huang et al. | Parallel Placement of Virtualized Network Functions via Federated Deep Reinforcement Learning | |
CN117435202A (zh) | 数据处理的方法、装置、电子设备及存储介质 | |
US20080019366A1 (en) | Process data for a data packet | |
CN117632129A (zh) | 数据处理方法、装置、设备及存储介质 | |
De Nicola et al. | A basic calculus for modelling service level agreements | |
EP4104393A1 (en) | High-resolution contract-based wireless network virtualization | |
CN117519664A (zh) | 流表处理方法、装置、介质及程序产品 | |
CN115277586B (zh) | Pod流量处理方法、系统、设备及存储介质 |
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 |