一种用于分布式系统的指令传输方法和系统的制作方法

文档序号:7802949阅读:177来源:国知局
一种用于分布式系统的指令传输方法和系统的制作方法
【专利摘要】本发明提供一种用于分布式系统的指令传输方法,包括:发送客户端向中枢端逐条发送指令,若未收到指令确认,重发原指令;对发出的每条指令进行编号,后一指令的编号相对于其前一指令的编号递增1,但重发的指令的编号维持不变;中枢端接收发送客户端发出的指令,再转发给接收客户端并返回指令确认;接收客户端接收中枢端发送的指令,返回指令确认,并记录已处理过的指令的最大编号,其只对编号大于已记录的最大编号的指令进行处理,丢弃小于或等于已记录的最大编号的指令。本发明还提供一种用于分布式系统的指令传输系统。通过本发明,中枢端不再需要校时系统,因而不会引入单点故障,降低了系统复杂度,系统可靠性、可扩展性能力进一步提高。
【专利说明】一种用于分布式系统的指令传输方法和系统
【技术领域】
[0001]本发明涉及分布式系统指令传输领域,具体涉及一种分布式系统的指令传输方法和系统。
【背景技术】
[0002]随着分布式架构相比于集中式架构,有以下特点:无中心,可水平扩展,因而没有单点故障问题。
[0003]文件交换平台是一个分布式系统,中枢端由多个通信单元组成,通信单元可以水平扩展,通信单元之间两两互联,每个通信单元都有收件箱功能。客户端与通信单元之间建立长连接,客户端可以选择任意通信单元进行连接,系统允许接收-客户端离线。发送一客户端在发送文件给接收-客户端时,发送-客户端与接收-客户端之间需要交换指令信息,而指令在传输过程中要求保证时序性、可靠性。
[0004]当通信系统采用分布式架构时,需要解决以下时序性和可靠性两个问题。
[0005]对于时序性,目前分布式系统大都通过一个统一的时钟源,对系统进行时钟同步,以达到系统内指令传输时序性的控制;对于可靠性,目前分布式系统大部分采用端到端确认方式,中间环节不再对指令进行确认,并且由于文件交换平台允许在线用户与离线用户进行通信,无法实现端到端确认,因而无法实现可靠传输。
[0006]为保证分布式系统传输指令时序性问题,需要一个统一的时钟源,而统一时间需要集中部署,容易形成单点,引入风险点,对于分布式系统,系统后期可以水平扩展,系统将会变得越来越庞大,对整个系统进行统一校时,难度递增,而且还会增加系统维护工作量。
[0007]而传输可靠性方面,一般系统使用端到端进行确认、重发等机制解决可靠传输问题,但由于文件交换平台允许接收端离线,即系统能够向离线接收端发送指令,仅通过端到端进行指令确认,无法解决接收端离线问题,需要采用点到点指令确认方式才能达到可靠传输要求。

【发明内容】

[0008]为解决现有分布式系统的指令传输方法难以保证指令时序性的技术问题,本发明提出一种用于分布式系统的指令传输方法,所述分布式系统包括发送客户端、中枢端和接收客户端;所述指令传输方法包括如下步骤:
步骤S1:所述发送客户端向所述中枢端发送一条指令,如果收到所述中枢端返回的指令确认,则所述发送客户端向所述中枢端发送下一条指令,如果未收到所述中枢端返回的指令确认,则所述发送客户端重发原指令;所述发送客户端对发出的每条指令进行编号,后一条指令的编号相对于其前一条指令的编号递增1,但重发的指令的编号维持不变;
步骤s2:所述中枢端接收所述发送客户端发出的指令,再转发给所述接收客户端;所述中枢端接收指令后向所述发送客户端返回指令确认,或者,所述中枢端在收到所述接收客户端返回的指令确认后,向所述发送客户端返回指令确认; 步骤s3:所述接收客户端接收所述中枢端发送的指令,向所述中枢端返回指令确认,并记录已处理过的指令的最大编号,其只对编号大于已记录的最大编号的指令进行处理,丢弃小于或等于已记录的最大编号的指令。
[0009]作为本发明的进一步改进,为了解决现有分布式系统的指令传输方法可靠性差的技术问题,所述指令传输方法中:
步骤 s2 包括子步骤 s20、s21、s22-a、s23_a、s22_b、s23_b 和 s24_b,步骤 s3 包括子步骤 s3-ab 和 s31_b ;
子步骤s20:所述中枢端接收所述发送客户端发来的指令;
子步骤s21:所述中枢端判断所述接收客户端在线还是离线;
子步骤s22-a:如果判断所述接收客户端在线,所述中枢端直接向所述接收客户端发送指令,再执行子步骤s3_ab;
子步骤s3_ab:所述接收客户端接收所述中枢端发送的指令,并向所述中枢端返回指令确认,再执行子步骤s23_a ;
子步骤s23_a:所述中枢端接收指令确认并转发给所述发送客户端;
子步骤s22_b:如果判断所述接收客户端离线,所述中枢端将指令缓存到中枢端收件箱,然后向所述发送客户端返回指令确认,再执行子步骤s31-b ;
子步骤s31-b:当所述接收客户端再次上线时,所述接收客户端向所述中枢端发送指令查询请求,再执行子步骤s23-b ;
子步骤s23-b:所述中枢端响应指令查询请求,向所述接收客户端发送中枢端收件箱中缓存的指令,再执行子步骤s3_ab ;
子步骤s3_ab:所述接收客户端接收所述中枢端发送的指令,并向所述中枢端返回指令确认,再执行子步骤s24_b ;
子步骤s24-b:所述中枢端接收所述接收客户端发送的指令确认,将中枢端收件箱中对应的已确认指令删除。
[0010]作为本发明的进一步改进,所述指令传输方法中:
步骤Si包括子步骤Sll:所述发送客户端判断整个所述中枢端出现故障时,所述发送客户端重连所述中枢端,重连成功后再次发送原指令。
[0011]本发明提供一种用于分布式系统的指令传输系统,包括:
发送客户端:用于向中枢端发送一条指令,如果收到所述中枢端返回的指令确认,则向所述中枢端发送下一条指令,如果未收到所述中枢端返回的指令确认,则重发原指令;并对发出的每条指令进行编号,后一条指令的编号相对于其前一条指令的编号递增I,但重发的指令的编号维持不变;
中枢端:用于接收所述发送客户端发出的指令,再转发给接收客户端;还用于接收指令后向所述发送客户端返回指令确认,或者,在收到所述接收客户端返回的指令确认后,向所述发送客户端返回指令确认;
接收客户端:用于接收所述中枢端发送的指令,向所述中枢端返回指令确认,并记录已处理过的指令的最大编号;其只对编号大于已记录的最大编号的指令进行处理,丢弃小于或等于已记录的最大编号的指令。
[0012]作为本发明的进一步改进,所述指令传输系统中: 所述中枢端包括指令接收单元、状态判断单元、指令直接发送单元、指令确认中转单兀、缓存和指令确认返回单兀、缓存指令发送单兀和指令确认接收和指令删除单兀,所述接收客户端包括指令接收和指令确认发送单元和指令查询请求单元;
指令接收单元:用于接收所述发送客户端发来的指令;
状态判断单元:用于判断所述接收客户端在线还是离线;
指令直接发送单元:用于如果判断所述接收客户端在线时直接向所述接收客户端发送指令;
指令接收和指令确认发送单元:用于接收所述中枢端发送的指令、并向所述中枢端返回指令确认;
指令确认中转单元:用于接收所述指令接收和指令确认发送单元发送的指令确认并转发给所述发送客户端;
缓存和指令确认返回单元:用于如果判断接收客户端离线,将指令缓存到所述中枢端收件箱,然后向所述发送客户端返回指令确认;
指令查询请求单元:用于当所述接收客户端再次上线时,向所述中枢端发送指令查询请求;
缓存指令发送单元:用于响应指令查询请求、向所述接收客户端发送所述中枢端收件箱中缓存的指令;
指令接收和指令确认发送单元:用于接收所述中枢端发送的指令、并向所述中枢端返回指令确认;
指令确认接收和指令删除单元:用于接收所述接收客户端发送的指令确认、并将所述中枢端收件箱中对应的已确认指令删除。
[0013]作为本发明的进一步改进,所述指令传输系统中,所述发送客户端包括故障判断和重连单元:用于判断整个所述中枢端出现故障时,重连所述中枢端,重连成功后再次发送原指令。
[0014]本发明具有以下有益效果:通过本发明,文件交换平台较好解决了分布式系统离线指令可靠传输问题,其优点在于:首先,中枢端不再需要校时系统,因而不会引入单点故障,降低了系统复杂度,系统可靠性、可扩展性能力进一步提高;其次,系统保证时序性、可靠性传输方案都是基于软件实现,不再依赖硬件设备,整个解决方案成本很低。
【专利附图】

【附图说明】
[0015]图1为本发明所应用于的分布式系统的结构框图;
图2为本发明实施例的指令传输方法在接收客户端在线时,指令、指令确认传输示意
图;
图3为本发明实施例的指令传输方法在接收客户端离线时,指令、指令确认传输示意
图;
图4为本发明实施例的指令传输方法保证时序性传输的流程示意图;
图5为本发明实施例的指令传输方法保证可靠性传输的流程示意图;
图6为本发明实施例的指令传输方法对应的指令传输系统。【具体实施方式】
[0016]下面结合附图和【具体实施方式】对本发明作进一步说明。
[0017]本实施例的用于分布式系统的指令传输方法,如图1所示,所述分布式系统包括发送客户端1、中枢端2和接收客户端3 ;如图4所示,所述指令传输方法包括如下步骤:
步骤S1:所述发送客户端I向所述中枢端2发送一条指令,如果收到所述中枢端2返回的指令确认,则所述发送客户端I向所述中枢端2发送下一条指令,如果未收到所述中枢端2返回的指令确认,则所述发送客户端I重发原指令;所述发送客户端I对发出的每条指令进行编号,后一条指令的编号相对于其前一条指令的编号递增1,但重发的指令的编号维持不变;
步骤s2:所述中枢端2接收所述发送客户端I发出的指令,再转发给所述接收客户端3 ;所述中枢端2接收指令后向所述发送客户端I返回指令确认,或者,所述中枢端2在收到所述接收客户端3返回的指令确认后,向所述发送客户端2返回指令确认;
步骤s3:所述接收客户端3接收所述中枢端2发送的指令,向所述中枢端2返回指令确认,并记录已处理过的指令的最大编号,其只对编号大于已记录的最大编号的指令进行处理,丢弃小于或等于已记录的最大编号的指令。
[0018]采用上述的指令编号可以解决发送客户端多次重发相同指令、或因指令沿着不同中枢路径传输到接收客户端导致乱序问题,因而可以保证指令时序性。
[0019]而对于指令传输的可靠性,发送客户端每次发出一条指令,都会等待确认,如果收不到指令确认,发送客户端会重复发送指令,直到收到指令确认为止。发送客户端将指令发送到中枢端通信单元,通信单元会判断接收客户端是否在线,如果在线,如图2所示,直接将指令发送给接收客户端,再由接收客户端经中枢端向发送客户端返回指令确认;如果不在线,如图3所示,中枢端会将指令缓存到中枢单收件箱,然后向发送客户端返回指令确认,当接收客户端再次上线时,会发送查询请求到所有通信单元,请求收取离线时中枢端收集到的未确认指令,再对每条指令进行确认,此时通信单元再删除已确认指令。
[0020]具体的,如图5所示,步骤s2包括子步骤s20、s21、s22-a、s23-a、s22-b、s23_b和s24_b,步骤s3包括子步骤s3_ab和s31_b。
[0021]子步骤s20:所述中枢端2接收所述发送客户端I发来的指令;
子步骤s21:所述中枢端2判断所述接收客户端3在线还是离线;
子步骤s22-a:如果判断所述接收客户端3在线,所述中枢端2直接向所述接收客户端3发送指令,再执行子步骤s3-ab ;
子步骤s3-ab:所述接收客户端3接收所述中枢端2发送的指令,并向所述中枢端2返回指令确认,再执行子步骤s23_a ;
子步骤s23-a:所述中枢端2接收指令确认并转发给所述发送客户端I。
[0022]子步骤s22_b:如果判断所述接收客户端3离线,所述中枢端2将指令缓存到中枢端收件箱,然后向所述发送客户端I返回指令确认,再执行子步骤s31-b ;
子步骤s31-b:当所述接收客户端3再次上线时,所述接收客户端3向所述中枢端2发送指令查询请求,再执行子步骤s23-b ;
子步骤s23-b:所述中枢端2响应指令查询请求,向所述接收客户端3发送中枢端收件箱中缓存的指令,再执行子步骤s3-ab ; 子步骤s3-ab:所述接收客户端3接收所述中枢端2发送的指令,并向所述中枢端2返回指令确认,再执行子步骤s24-b ;
子步骤s24-b:所述中枢端2接收所述接收客户端3发送的指令确认,将中枢端收件箱中对应的已确认指令删除。
[0023]优选的,步骤Si还包括子步骤sll:所述发送客户端I判断整个所述中枢端2出现故障时,所述发送客户端I重连所述中枢端2,重连成功后再次发送原指令。
[0024]通过以上机制,可以解决指令可靠传输的问题。
[0025]对应于上述实施例的指令传输方法的指令传输系统,如图6所示,包括:
发送客户端1:用于向中枢端2逐条发送一条指令,如果收到所述中枢端2返回的指令确认,则向所述中枢端2发送下一条指令,如果未收到所述中枢端2返回的指令确认,则重发原指令;并对发出的每条指令进行编号,后一条指令的编号相对于其前条一指令的编号递增1,但重发的指令的编号维持不变;
中枢端2:用于接收所述发送客户端I发出的指令,再转发给接收客户端3 ;还用于接收指令后向所述发送客户端I返回指令确认,或者,在收到所述接收客户端3返回的指令确认后,向所述发送客户端2返回指令确认;
接收客户端3:用于接收所述中枢端2发送的指令,向所述中枢端2返回指令确认,并记录已处理过的指令的最大编号;其只对编号大于已记录的最大编号的指令进行处理,丢弃小于或等于已记录的最大编号的指令。
[0026]所述中枢端2包括指令接收单元20、状态判断单元21、指令直接发送单元22-a、指令确认中转单兀23-a、缓存和指令确认返回单兀22-b、缓存指令发送单兀23-b和指令确认接收和指令删除单兀24-b,缓存和指令确认返回单兀22-b包括中枢纟而收件箱,所述接收客户端3包括指令接收和指令确认发送单元3-ab和指令查询请求单元31-b ;
指令接收单元20:所述接收所述发送客户端I发来的指令;
状态判断单元21:用于判断所述接收客户端3在线还是离线;
指令直接发送单元22-a:用于如果判断所述接收客户端3在线时直接向所述接收客户端3发送指令;
指令接收和指令确认发送单元3-ab:用于接收所述中枢端2发送的指令、并向所述中枢端2返回指令确认;
指令确认中转单元23-a:用于接收所述指令接收和指令确认发送单元31-a发送的指令确认并转发给所述发送客户端I。
[0027]缓存和指令确认返回单元22-b:用于如果判断接收客户端3离线,将指令缓存到所述中枢端收件箱,然后向所述发送客户端I返回指令确认;
指令查询请求单元31-b:用于当所述接收客户端3再次上线时,向所述中枢端2发送指令查询请求;
缓存指令发送单元23-b:用于响应指令查询请求、向所述接收客户端3发送所述中枢端收件箱中缓存的指令;
指令接收和指令确认发送单元3-ab:用于接收所述中枢端2发送的指令、并向所述中枢端2返回指令确认;
指令确认接收和指令删除单元24-b:用于接收所述接收客户端3发送的指令确认、并将所述中枢端收件箱中对应的已确认指令删除。
[0028]优选的,如图6所示,所述接收客户端I包括故障判断和重连单元11:用于判断整个所述中枢端2出现故障时,重连所述中枢端2,重连成功后再次发送原指令。
[0029]如上所述是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属【技术领域】的普通技术人员来说,在不脱离本发明构思前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
【权利要求】
1.一种用于分布式系统的指令传输方法,所述分布式系统包括发送客户端(1)、中枢端(2)和接收客户端(3);所述指令传输方法的特征在于包括如下步骤: 步骤S1:所述发送客户端(1)向所述中枢端(2)发送一条指令,如果收到所述中枢端(2)返回的指令确认,则所述发送客户端(1)向所述中枢端(2)发送下一条指令,如果未收到所述中枢端(2)返回的指令确认,则所述发送客户端(1)重发原指令;所述发送客户端(1)对发出的每条指令进行编号,后一条指令的编号相对于其前一条指令的编号递增1,但重发的指令的编号维持不变; 步骤s2:所述中枢端(2)接收所述发送客户端(1)发出的指令,再转发给所述接收客户端(3);所述中枢端(2)接收指令后向所述发送客户端(1)返回指令确认,或者,所述中枢端(2)在收到所述接收客户端(3)返回的指令确认后,向所述发送客户端(2)返回指令确认;步骤s3:所述接收客户端(3)接收所述中枢端(2)发送的指令,向所述中枢端(2)返回指令确认,并记录已处理过的指令的最大编号,其只对编号大于已记录的最大编号的指令进行处理,丢弃小于或等于已记录的最大编号的指令。
2.根据权利要求1所述的指令传输方法,其特征在于: 步骤s2包括子步骤s20、s21、s22-a和s23_a,步骤s3包括子步骤s3_ab ; 子步骤s20:所述中枢端(2)接收所述发送客户端(1)发来的指令; 子步骤s21:所述中枢端(2)判断所述接收客户端(3)在线还是离线; 子步骤s22-a:如果判断所述接收客户端(3)在线,所述中枢端(2)直接向所述接收客户端(3)发送指令,再执行子步骤s3-ab ; 子步骤s3-ab:所述接收客户端(3)接收所述中枢端(2)发送的指令,并向所述中枢端(2)返回指令确认,再执行子步骤s23-a ; 子步骤s23-a:所述中枢端(2)接收指令确认并转发给所述发送客户端(I)。
3.根据权利要求1所述的指令传输方法,其特征在于: 步骤s2包括子步骤s20、s21、s22-b、s23_b和s24_b,步骤s3包括子步骤s31_b和s3_ab ; 子步骤s20:所述中枢端(2)接收所述发送客户端(1)发来的指令; 子步骤s21:所述中枢端(2)判断所述接收客户端(3)在线还是离线; 子步骤s22-b:如果判断所述接收客户端(3)离线,所述中枢端(2)将指令缓存到中枢端收件箱,然后向所述发送客户端(I)返回指令确认,再执行子步骤s31-b ; 子步骤s31-b:当所述接收客户端(3)再次上线时,所述接收客户端(3)向所述中枢端(2)发送指令查询请求,再执行子步骤s23-b ; 子步骤s23-b:所述中枢端(2)响应指令查询请求,向所述接收客户端(3)发送中枢端收件箱中缓存的指令,再执行子步骤s3-ab ; 子步骤s3-ab:所述接收客户端(3)接收所述中枢端(2)发送的指令,并向所述中枢端(2)返回指令确认,再执行子步骤s24-b ; 子步骤s24-b:所述中枢端(2)接收所述接收客户端(3)发送的指令确认,将中枢端收件箱中对应的已确认指令删除。
4.根据权利要求1所述的指令传输方法,其特征在于: 步骤si包括子步骤sll ;子步骤sll:所述发送客户端(I)判断整个所述中枢端(2)出现故障时,所述发送客户端(I)重连所述中枢端(2),重连成功后再次发送原指令。
5.一种用于分布式系统的指令传输系统,其特征在于包括: 发送客户端(I):用于向中枢端(2)发送一条指令,如果收到所述中枢端(2)返回的指令确认,则向所述中枢端(2)发送下一条指令,如果未收到所述中枢端(2)返回的指令确认,则重发原指令;并对发出的每条指令进行编号,后一条指令的编号相对于其前一条指令的编号递增1,但重发的指令的编号 维持不变; 中枢端(2):用于接收所述发送客户端(I)发出的指令,再转发给接收客户端(3);还用于接收指令后向所述发送客户端(I)返回指令确认,或者,在收到所述接收客户端(3)返回的指令确认后,向所述发送客户端(I)返回指令确认; 接收客户端(3):用于接收所述中枢端(2)发送的指令,向所述中枢端(2)返回指令确认,并记录已处理过的指令的最大编号;其只对编号大于已记录的最大编号的指令进行处理,丢弃小于或等于已记录的最大编号的指令。
6.根据权利要求5所述的指令传输系统,其特征在于: 所述中枢端(2)包括指令接收单元(20)、状态判断单元(21)、指令直接发送单元(22~a)和指令确认中转单兀(23-a),所述接收客户纟而(3)包括指令接收和指令确认发送单元(3-ab); 指令接收单元(20):用于接收所述发送客户端(I)发来的指令; 状态判断单元(21):用于判断所述接收客户端(3)在线还是离线; 指令直接发送单元(22-a):用于如果判断所述接收客户端(3)在线时直接向所述接收客户端(3)发送指令; 指令接收和指令确认发送单元(3-ab):用于接收所述中枢端(2)发送的指令、并向所述中枢端(2)返回指令确认; 指令确认中转单元(23-a):用于接收所述指令接收和指令确认发送单元(31-a)发送的指令确认并转发给所述发送客户端(I )。
7.根据权利要求5所述的指令传输系统,其特征在于: 所述中枢端(2)包括指令接收单元(20)、状态判断单元(21)、缓存和指令确认返回单元(22-b)、缓存指令发送单元(23-b)和指令确认接收和指令删除单元(24-b),缓存和指令确认返回单元(22-b)包括中枢端收件箱,所述接收客户端(3)包括指令查询请求单元(31-b)和指令接收和指令确认发送单元(3-ab); 指令接收单元(20):用于接收所述发送客户端(I)发来的指令; 状态判断单元(21):用于判断所述接收客户端(3)在线还是离线; 缓存和指令确认返回单元(22-b):用于如果判断接收客户端(3)离线,将指令缓存到所述中枢端收件箱,然后向所述发送客户端(I)返回指令确认; 指令查询请求单元(31-b):用于当所述接收客户端(3)再次上线时,向所述中枢端(2)发送指令查询请求; 缓存指令发送单元(23-b):用于响应指令查询请求、向所述接收客户端(3)发送所述中枢端收件箱中缓存的指令; 指令接收和指令确认发送单元(3-ab):用于接收所述中枢端(2)发送的指令、并向所述中枢端(2)返回指令确认; 指令确认接收和指令删除单元(24-b):用于接收所述接收客户端(3)发送的指令确认、并将所述中枢纟而收件箱中对应的已确认指令删除。
8.根据权利要求5所述的指令传输系统,其特征在于: 所述发送客户端(I)包括故障判断和重连单元(11):用于判断整个所述中枢端(2)出现故障时,重连所述中枢端(2),重连成功后再次发送原指令。
【文档编号】H04L1/16GK103957081SQ201410184947
【公开日】2014年7月30日 申请日期:2014年5月5日 优先权日:2014年5月5日
【发明者】林国彪, 张鹏, 利驿飞 申请人:深圳证券通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1