CN114143329B - 主备函数同步执行和参数传输的方法及装置 - Google Patents
主备函数同步执行和参数传输的方法及装置 Download PDFInfo
- Publication number
- CN114143329B CN114143329B CN202111416245.9A CN202111416245A CN114143329B CN 114143329 B CN114143329 B CN 114143329B CN 202111416245 A CN202111416245 A CN 202111416245A CN 114143329 B CN114143329 B CN 114143329B
- Authority
- CN
- China
- Prior art keywords
- local parameter
- paramsync
- syncfunc
- functions
- parameters
- 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.)
- Active
Links
- 230000006870 function Effects 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 22
- 230000005540 biological transmission Effects 0.000 title claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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/22—Parsing or analysis of headers
-
- 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/24—Negotiation of communication capabilities
Abstract
本发明公开了一种主备函数同步执行和参数传输的方法及装置,包括将SyncFunc()序列化发送给下端;在本地开始执行同步函数对象SyncFun();下端接收到序列化后的SyncFunc()后进行反序列化,构造同等函数对象SyncFun()并执行;局部参数lp通过同步函数ParamSync()返回;调用ParamSync中的lambda算子计算返回值;将返回值赋值给局部参数lp;将局部参数lp发送到下端;下端同时执行ParamSync(),ParamSync()判断当前网络是否连接,若连接则通过网络接受局部参数lp;本发明提供的主备函数同步执行和参数传输的方法及装置,可以编写更加自然易懂的代码逻辑,而使用者不用关心底层的同步逻辑而且还具备很好的扩展性。
Description
技术领域
本发明涉及计算机技术技术领域,具体涉及一种主备函数同步执行和参数传输的方法及装置。
背景技术
请参阅图1和图2,在局域网主备网络结构中,上机和下机往往要同步执行相同的函数代码。一般的设计是将要执行的函数封装成命令对象,在上端序列化后通过网络发送到下端,下端接收命令后进行反序列化,转换成命令对象并执行。
显然,下端程序为了做到真正的下份功能,所有的命令输出结果必须和上端完全一致,那么这就要求命令的输入也是一致的。换句话说,命令的输入数据也必须由上端和命令一起发送到下端。但是,命令在执行过程中还可能需要动态计算一些局部参数,譬如可能需要获取实时的CPU时,这些局部参数是无法事先计算出来并作为命令入参传给命令函数的,更加不可能传递给下端程序。
请参阅图3,为了解决这种局部参数同步问题,一般的做法是将SyncFun拆解成了SyncFunA和SyncFunB两个子命令,这样SyncFun中的局部参数lp_1和lp_2就可以在SyncFunA和SyncFuncB执行之前计算出来,并随着命令序列化数据传输到下端,从而完成主备参数的统一。
但是将命令进行拆解的方法破坏了业务逻辑代码的完整性和流畅性,使得代码编写和阅读比较困难。
综上,现有技术具有以下缺点:
1.业务函数逻辑被拆解得很零碎,不利于编写和理解;
2.不方便扩展业务功能。当需要修改已有业务逻辑时,往往会伴随着新的命令拆解,不仅增加了开发工作量,业务逻辑则会变得更加凌乱,增加了后期维护成本。
发明内容
为此,本发明实施例提供一种主备函数同步执行和参数传输的方法及装置,以解决现有技术存在的将命令进行拆解的方法破坏了业务逻辑代码的完整性和流畅性,使得代码编写和阅读比较困难且不方便扩展业务功能的问题。
为了实现上述目的,本发明实施例提供如下技术方案:
第一方面,一种主备函数同步执行和参数传输的方法,包括:
将SyncFunc()序列化发送给下端;
在本地开始执行同步函数对象SyncFun();所述下端接收到序列化后的所述SyncFunc()后进行反序列化,构造同等函数对象SyncFun()并执行;
局部参数lp通过同步函数ParamSync()返回;
调用ParamSync中的lambda算子计算返回值;
将所述返回值赋值给所述局部参数lp;
将所述局部参数lp发送到所述下端;所述下端同时执行ParamSync(),所述ParamSync()判断当前网络是否连接,若连接则通过网络接受所述局部参数lp。
进一步的,所述SyncFunc()被序列化成网络命令。
进一步的,上端和所述下端之间通过TCP/IP通信。
进一步的,所述SyncFunc()中至少包括两个ParamSync()。
进一步的,上端同时具有自己的进度表和所述下端的进度表。
进一步的,若所述下端与上端之间未建立网络,所述下端所有参数都在本地进行计算。
第二方面,一种主备函数同步执行和参数传输的装置,包括:
序列化模块,用于将SyncFunc()序列化成网络命令;
执行模块,用于在本地执行同步函数对象SyncFun();
返回模块,用于将局部参数lp通过同步函数ParamSync()返回;
计算模块,用于调用ParamSync中的lambda算子计算返回值;
赋值模块,用于将所述返回值赋值给所述局部参数lp;
发送模块,用于将所述网络命令和所述局部参数lp发送到下端。
进一步的,还包括:通信模块,用于建立与下端之间的TCP/IP通信。
第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述主备函数同步执行和参数传输的方法步骤。
第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述主备函数同步执行和参数传输的方法步骤。
本发明至少具有以下有益效果:提供一种主备函数同步执行和参数传输的方法及装置,包括将SyncFunc()序列化发送给下端;在本地开始执行同步函数对象SyncFun();下端接收到序列化后的SyncFunc()后进行反序列化,构造同等函数对象SyncFun()并执行;局部参数lp通过同步函数ParamSync()返回;调用ParamSync中的lambda算子计算返回值;将返回值赋值给局部参数lp;将局部参数lp发送到下端;下端同时执行ParamSync(),ParamSync()判断当前网络是否连接,若连接则通过网络接受局部参数lp;本发明提供的主备函数同步执行和参数传输的方法及装置,可以编写更加自然易懂的代码逻辑,而使用者不用关心底层的同步逻辑。一个函数就可以实现一个完整的业务逻辑,不用拆解封装成成零碎的网络命令来执行,而且还具备很好的扩展性。
附图说明
为了更清楚地说明现有技术以及本发明,下面将对现有技术以及本发明实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为现有技术中的第一种局域网主备网络结构示意图;
图2为现有技术中的第二种局域网主备网络结构示意图;
图3为现有技术中的命令拆解结构示意图;
图4为本发明实施例提供的主备函数同步执行和参数传输的方法流程图;
图5为本发明实施例提供的主备函数同步执行和参数传输的方法结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)旨在区别指代的对象。对于具有时序流程的方案,这种术语表述方式不必理解为描述特定的顺序或先后次序,对于装置结构的方案,这种术语表述方式也不存在对重要程度、位置关系的区分等。
此外,术语“包括”、“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设下不必限于已明确列出的那些步骤或单元,而是还可包含虽然并未明确列出的但对于这些过程、方法、产品或设下固有的其它步骤或单元,或者基于本发明构思进一步的优化方案所增加的步骤或单元。
请参阅图4,本发明的实施例提供一种主备函数同步执行和参数传输的方法,包括:
S1:将SyncFunc()序列化发送给下端;
具体的,上端将SyncFunc()序列化成网络命令发送给下端。
S2:在本地开始执行同步函数对象SyncFun();下端接收到序列化后的SyncFunc()后进行反序列化,构造同等函数对象SyncFun()并执行;
具体的,上端将SyncFunc()序列化成网络命令发送给下端后在本地开始执行同步函数对象SyncFun(),下端接收到上端发送的命令之后进行反序列化并构造出与上端同等的函数对象SyncFunc()并执行。
S3:局部参数lp通过同步函数ParamSync()返回;
S4:调用ParamSync中的lambda算子计算返回值;
S5:将所述返回值赋值给所述局部参数lp;
S6:将所述局部参数lp发送到所述下端;所述下端同时执行ParamSync(),所述ParamSync()判断当前网络是否连接,若连接则通过网络接受所述局部参数lp。
请参阅图5,具体的,局部参数lp通过一个同步函数ParamSync()返回,主端直接调用ParamSync中的lambda算子计算出一个返回值,然后计算出的返回值赋值给局部参数lp,并将此参数发送到下端;同时,下端执行ParamSync(),ParamSync()判断当前网络连接关系,发现自己被上端(主端)连接时,就不会像上端一样调用lambda算子计算参数,而是通过网络接受主端计算的值。
SyncFun()的整个函数体中可能会有多个ParamSync()调用,每个ParamSync()代表这SyncFun()不同的执行进度。各端都会维护一个进度表,并实时通报给上级。也就是说,上端在拥有自己的进度表时,也会拥有所有下端的进度表。这样,上端(主端)就能检测所有下端(备端)当前的执行进度。如果所有端都执行到了同样的进度,上端就执行lambda算子计算参数,并发送给其他端,其他端收到参数之后,这个进度就算同步达成,各端程序继续往下执行,直到遇到下一个ParamSync()的调用,然后重复上述同步逻辑。
需要说明的是,上端和下端代码在执行过程中通过TCP/IP通信,在代码执行的指定位置进行进度同步和必要的参数传输。
当多端之间没有建立网络连接时,各端执行逻辑和主端一样,所有参数都在本地进行计算。
本发明的实施例提供一种主备函数同步执行和参数传输的装置,包括:
序列化模块,用于将SyncFunc()序列化成网络命令;
执行模块,用于在本地执行同步函数对象SyncFun();
返回模块,用于将局部参数lp通过同步函数ParamSync()返回;
计算模块,用于调用ParamSync中的lambda算子计算返回值;
赋值模块,用于将所述返回值赋值给所述局部参数lp;
发送模块,用于将所述网络命令和所述局部参数lp发送到下端。
主备函数同步执行和参数传输的装置还包括:通信模块,用于建立与下端之间的TCP/IP通信。
关于主备函数同步执行和参数传输的装置的具体限定可以参见上文中对于主备函数同步执行和参数传输的方法的限定,在此不再赘述。上述主备函数同步执行和参数传输的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明的实施例提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现主备函数同步执行和参数传输的方法步骤。
本发明的实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现主备函数同步执行和参数传输的方法步骤。
以上几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
以上实施例的各技术特征可以进行任意的组合(只要这些技术特征的组合不存在矛盾),为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述;这些未明确写出的实施例,也都应当认为是本说明书记载的范围。
上文中通过一般性说明及具体实施例对本发明作了较为具体和详细的描述。应当指出的是,在不脱离本发明构思的前提下,显然还可以对这些具体实施例作出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种主备函数同步执行和参数传输的方法,其特征在于,包括:
将SyncFunc()序列化发送给下端;
在本地开始执行同步函数对象SyncFun();所述下端接收到序列化后的所述SyncFunc()后进行反序列化,构造同等函数对象SyncFun()并执行;
局部参数lp通过同步函数ParamSync()返回;
调用ParamSync中的lambda算子计算返回值;
将所述返回值赋值给所述局部参数lp;
将所述局部参数lp发送到所述下端;所述下端同时执行ParamSync(),所述ParamSync()判断当前网络是否连接,若连接则通过网络接受所述局部参数lp。
2.根据权利要求1所述的主备函数同步执行和参数传输的方法,其特征在于,所述SyncFunc()被序列化成网络命令。
3.根据权利要求1所述的主备函数同步执行和参数传输的方法,其特征在于,上端和所述下端之间通过TCP/IP通信。
4.根据权利要求1所述的主备函数同步执行和参数传输的方法,其特征在于,所述SyncFunc()中至少包括两个ParamSync()。
5.根据权利要求1所述的主备函数同步执行和参数传输的方法,其特征在于,上端同时具有自己的进度表和所述下端的进度表。
6.根据权利要求1所述的主备函数同步执行和参数传输的方法,其特征在于,若所述下端与上端之间未建立网络,所述下端所有参数都在本地进行计算。
7.一种主备函数同步执行和参数传输的装置,其特征在于,包括:
序列化模块,用于将SyncFunc()序列化成网络命令;
执行模块,用于在本地执行同步函数对象SyncFun();
返回模块,用于将局部参数lp通过同步函数ParamSync()返回;
计算模块,用于调用ParamSync中的lambda算子计算返回值;
赋值模块,用于将所述返回值赋值给所述局部参数lp;
发送模块,用于将所述网络命令和所述局部参数lp发送到下端。
8.根据权利要求7所述的主备函数同步执行和参数传输的装置,其特征在于,还包括:
通信模块,用于建立与下端之间的TCP/IP通信。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111416245.9A CN114143329B (zh) | 2021-11-25 | 2021-11-25 | 主备函数同步执行和参数传输的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111416245.9A CN114143329B (zh) | 2021-11-25 | 2021-11-25 | 主备函数同步执行和参数传输的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114143329A CN114143329A (zh) | 2022-03-04 |
CN114143329B true CN114143329B (zh) | 2023-10-27 |
Family
ID=80387751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111416245.9A Active CN114143329B (zh) | 2021-11-25 | 2021-11-25 | 主备函数同步执行和参数传输的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114143329B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159757A (zh) * | 2007-10-25 | 2008-04-09 | 中兴通讯股份有限公司 | 双归属同步数据传输方法 |
CN104301154A (zh) * | 2014-10-31 | 2015-01-21 | 上海斐讯数据通信技术有限公司 | 一种双主控系统主用与备用主控板间数据同步方法 |
CN104579960A (zh) * | 2013-10-29 | 2015-04-29 | 中兴通讯股份有限公司 | 接口参数同步方法和装置 |
CN109194720A (zh) * | 2018-08-15 | 2019-01-11 | 京信通信系统(中国)有限公司 | 主备机数据同步方法、装置和计算机设备 |
CN110807063A (zh) * | 2019-09-27 | 2020-02-18 | 国电南瑞科技股份有限公司 | 基于边缘计算的变电站实时数据快速分发同步系统及方法 |
-
2021
- 2021-11-25 CN CN202111416245.9A patent/CN114143329B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159757A (zh) * | 2007-10-25 | 2008-04-09 | 中兴通讯股份有限公司 | 双归属同步数据传输方法 |
CN104579960A (zh) * | 2013-10-29 | 2015-04-29 | 中兴通讯股份有限公司 | 接口参数同步方法和装置 |
CN104301154A (zh) * | 2014-10-31 | 2015-01-21 | 上海斐讯数据通信技术有限公司 | 一种双主控系统主用与备用主控板间数据同步方法 |
CN109194720A (zh) * | 2018-08-15 | 2019-01-11 | 京信通信系统(中国)有限公司 | 主备机数据同步方法、装置和计算机设备 |
CN110807063A (zh) * | 2019-09-27 | 2020-02-18 | 国电南瑞科技股份有限公司 | 基于边缘计算的变电站实时数据快速分发同步系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114143329A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176801B (zh) | 一种多进程管理方法、装置、设备及存储介质 | |
CN114285695B (zh) | 通信方法、装置、设备、系统和存储介质 | |
CN105656947A (zh) | 一种交易中间件与第三方系统交互的方法、装置和系统 | |
CN113467931B (zh) | 算力任务的处理方法、装置及系统 | |
CN114143329B (zh) | 主备函数同步执行和参数传输的方法及装置 | |
CN111198770B (zh) | Ros1消息的通信方法、装置和系统、转换方法和装置 | |
CN112231210A (zh) | 网络功能虚拟化环境下的测试方法、设备及存储介质 | |
CN114168252A (zh) | 信息处理系统及方法、网络方案推荐组件及方法 | |
CN110377476A (zh) | 终端测试方法、终端及可读存储介质 | |
CN104243172A (zh) | 一种分散控制系统的扩展输入输出装置和方法 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
CN109739666A (zh) | 单例方法的跨进程调用方法、装置、设备及存储介质 | |
CN115437647A (zh) | 适配多框架的微服务部署方法、装置、终端及存储介质 | |
CN105827567B (zh) | 服务管控方法及能力开放平台 | |
CN105302552A (zh) | 一种用户界面视图扩展方法和装置 | |
CN111385837A (zh) | 对无线公网通信单元进行测试的系统及方法 | |
CN108259527B (zh) | 基于代理的业务处理方法、装置及网元设备 | |
CN110390064A (zh) | 文件更新方法、装置和系统,存储介质及电子装置 | |
CN116911393B (zh) | 一种量子芯片设计系统、方法、电子设备和存储介质 | |
CN114124957B (zh) | 一种应用于机器人的分布式节点互联方法 | |
CN116360752B (zh) | 面向java的函数式编程方法、智能终端和存储介质 | |
CN117240651B (zh) | 查询设备上线的方法、遥测系统、电子设备和存储介质 | |
JP6878705B1 (ja) | 通信装置、通信システム、通信方法、およびプログラム | |
CN111581085B (zh) | 联调测试系统及方法 | |
Ghafari et al. | Partial scalability to ensure reliable dynamic reconfiguration |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |