验布机通信方法、装置、电子设备及存储介质转让专利

申请号 : CN202010164017.6

文献号 : CN111385361B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张发恩滕安琪陈锐桐

申请人 : 创新奇智(广州)科技有限公司

摘要 :

本申请提供一种验布机通信方法、装置、电子设备及存储介质,属于硬件通信技术领域。所述方法包括:通过消息中心接收服务请求消息,所述服务请求消息包括来源服务,一个或多个目标服务,以及每个目标服务的服务内容;通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址;在所述消息中心接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心向所述来源服务发送返回服务成功信息。所述方法通过消息中心进行消息收发执行和监控,并保证了验布机通讯的一致性,从而提高了验布机通信效率。

权利要求 :

1.一种验布机通信方法,其特征在于,所述方法包括:

通过消息中心接收服务请求消息,所述服务请求消息包括来源服务,一个或多个目标服务,以及每个目标服务的服务内容;

通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址;

在所述消息中心接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心向所述来源服务发送返回服务成功信息;

所述在通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址之前,所述方法还包括:通过所述消息中心基于预设格式解析出所述服务请求消息中的所述来源服务,所述一个或多个目标服务,以及每个目标服务的服务内容;

通过所述消息中心确定每个目标服务对应的文件地址;

所述一个或多个目标服务包括控制服务、算法服务、采集服务、图片存储服务和/或硬件控制服务,在目标服务为硬件控制服务时,所述通过消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址,包括:通过所述消息中心将所述硬件控制服务的服务内容修改为硬件服务类型,并发送至所述硬件控制服务对应的文件地址;

所述通过所述消息中心接收每个目标服务发送的服务结果,包括:

对于所述一个或多个目标服务中的硬件控制服务,通过所述消息中心从所述硬件控制服务接收的所述硬件控制服务对应的服务结果,所述硬件控制服务对应的服务结果是所述硬件控制服务在接收到所述硬件服务类型的服务内容时,通过串口向所述硬件服务类型的服务内容对应的验布机的可编程逻辑控制器发送硬件检测信号,以使所述可编程逻辑控制器通过所述串口将硬件检测结果信号发送至所述硬件控制服务的,所述硬件检测结果为所述硬件控制服务对应的服务结果。

2.根据权利要求1所述的方法,其特征在于,所述通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址,包括:通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址,以使每个目标服务通过UNIX Domain Socket监听对应的文件地址,以从所述对应的文件地址获取服务内容;

在所述通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址之后,所述方法还包括:通过所述消息中心接收每个目标服务发送的服务结果,每个目标服务发送的服务结果是与每个目标服务获取到的服务内容对应的服务结果,所述服务结果包括返回成功消息和返回失败消息。

3.根据权利要求1所述的方法,其特征在于,所述服务请求消息还包括消息标识,所述消息中心通过以下步骤判断是否接收到所述一个或多个目标服务中的所有目标服务的返回成功消息:所述消息中心通过所述消息标识查询已返回的返回成功消息;

在所述一个或多个目标服务中的所有目标服务对应的返回成功消息均存在时,确定接收到所述一个或多个目标服务中的所有目标服务的返回成功消息。

4.根据权利要求1所述的方法,其特征在于,在所述消息中心接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心向所述来源服务发送返回服务成功信息,包括:通过所述消息中心在接收到所述一个或多个目标服务中的所有目标服务的返回成功消息,且所述一个或多个目标服务中存在目标硬件服务时,向所述目标硬件服务发送确认信息;

在所述消息中心接收到所述目标硬件服务发送的所述确认信息对应的确认返回信息后,通过所述消息中心向所述来源服务发送返回服务成功信息。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

当所述消息中心在预设时间内未接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心将未发送返回成功信息的目标服务的服务内容发送至所述未发送返回成功信息的目标服务对应的文件地址,或向所述来源服务发送返回服务失败信息。

6.一种验布机通信装置,其特征在于,所述装置包括:

请求接收模块,用于通过消息中心接收服务请求消息,所述服务请求消息包括来源服务,一个或多个目标服务,以及每个目标服务的服务内容;

内容发送模块,用于通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址;

服务响应模块,用于在所述消息中心接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心向所述来源服务发送返回服务成功信息;

文件地址确定模块,用于通过所述消息中心基于预设格式解析出所述服务请求消息中的所述来源服务,所述一个或多个目标服务,以及每个目标服务的服务内容;通过所述消息中心确定每个目标服务对应的文件地址;

所述一个或多个目标服务包括控制服务、算法服务、采集服务、图片存储服务和/或硬件控制服务;在目标服务为硬件控制服务时,所述通过消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址的过程中,所述内容发送模块具体用于:通过所述消息中心将所述硬件控制服务的服务内容修改为硬件服务类型,并发送至所述硬件控制服务对应的文件地址;

所述验布机通信装置还包括结果接收模块,用于:对于所述一个或多个目标服务中的硬件控制服务,通过所述消息中心从所述硬件控制服务接收的所述硬件控制服务对应的服务结果,所述硬件控制服务对应的服务结果是所述硬件控制服务在接收到所述硬件服务类型的服务内容时,通过串口向所述硬件服务类型的服务内容对应的验布机的可编程逻辑控制器发送硬件检测信号,以使所述可编程逻辑控制器通过所述串口将硬件检测结果信号发送至所述硬件控制服务的,所述硬件检测结果为所述硬件控制服务对应的服务结果。

7.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1‑5中任一项所述方法中的步骤。

8.一种存储介质,其特征在于,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1‑5任一项所述方法中的步骤。

说明书 :

验布机通信方法、装置、电子设备及存储介质

技术领域

[0001] 本申请涉及硬件通信技术领域,具体而言,涉及一种验布机通信方法、装置、电子设备及存储介质。

背景技术

[0002] 验布机是服装行业生产前对棉、毛、麻、丝绸、化纤等特大幅面、双幅和单幅布进行检测的一套必备的专用设备。验布机自动完成记长和卷装整理工作,带有电子检疵装置,由计算机统计分析,协助验布操作并且打印输出。随着软硬件的发展,已经出现通过视觉识别技术或其他识别技术代替人工验布,并通过多模块进行通信以执行动作的自动化的智能验布机。
[0003] 但是在目前智能验布机控制系统中,一般有两种架构模式,一种是直接搭建大型单体应用,一种是将单体应用拆分几个独立的微服务,包括前端界面、控制系统、算法系统、硬件控制系统等模块,但由于服务间存在大量互相通讯的关系,一个服务需要跟几个别的服务建立网络socket(套接字)通讯,通讯效率低,管理混乱,一旦失败需要多次通讯通知各服务回滚,系统复杂度高,容易崩溃,导致智能验布机存在通讯一致性差、效率低的问题。

发明内容

[0004] 有鉴于此,本申请实施例的目的在于提供一种验布机通信方法、装置、电子设备及存储介质,以改善现有技术中存在的通讯一致性差、效率低的问题。
[0005] 本申请实施例提供了一种验布机通信方法,所述方法包括:通过消息中心接收服务请求消息,所述服务请求消息包括来源服务,一个或多个目标服务,以及每个目标服务的服务内容;通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址;在所述消息中心接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心向所述来源服务发送返回服务成功信息。
[0006] 在上述实现方式中,通过消息中心统一进行来源服务和目标服务之间的通信,提高了验布机软硬件通信效率,并且消息中心在来源服务请求的所有目标服务均返回成功消息时确定该来源服务已完成,再向来源服务返回服务成功信息结束当前来源服务的通信及执行流程,从而提高了验布机通信的一致性。
[0007] 可选地,在通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址之前,所述方法还包括:通过所述消息中心基于预设格式解析出所述服务请求消息中的所述来源服务,所述一个或多个目标服务,以及每个目标服务的服务内容;通过所述消息中心确定每个目标服务对应的文件地址。
[0008] 在上述实现方式中,通过消息中心进行来源服务、目标服务以及服务内容的确定,并通过消息中心将服务内容发送至其目标服务的对应的文件地址,不需要每个来源服务和目标服务之间分别进行文件传输对接,从而提高了验布机通讯效率和一致性。
[0009] 可选地,所述通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址,包括:通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址,以使每个目标服务通过UNIX Domain Socket监听对应的文件地址,以从所述对应的文件地址获取服务内容;在所述通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址之后,所述方法还包括:通过所述消息中心接收每个目标服务发送的服务结果,每个目标服务发送的服务结果是与每个目标服务获取到的服务内容对应的服务结果,所述服务结果包括返回成功消息和返回失败消息。
[0010] 在上述实现方式中,目标服务通过UNIX Domain Socket监听对应的文件地址来获取服务内容,不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程,提高了验布机通信效率。
[0011] 可选地,所述服务请求消息还包括消息标识,所述消息中心通过以下步骤判断是否接收到所述一个或多个目标服务中的所有目标服务的返回成功消息:所述消息中心通过所述消息标识查询已返回的返回成功消息;在所述一个或多个目标服务中的所有目标服务对应的返回成功消息均存在时,确定接收到所述一个或多个目标服务中的所有目标服务的返回成功消息。
[0012] 在上述实现方式中,消息中心通过消息标识进行目标服务的返回成功消息的确认,提高了消息确认准确性。
[0013] 可选地,所述一个或多个目标服务包括控制服务、算法服务、采集服务、图片存储服务和/或硬件控制服务,在目标服务为硬件控制服务时,所述通过消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址,包括:通过所述消息中心将所述硬件控制服务的服务内容修改为硬件服务类型,并发送至所述硬件控制服务对应的文件地址;所述通过所述消息中心接收每个目标服务发送的服务结果,包括:对于所述一个或多个目标服务中的硬件控制服务,通过所述消息中心从所述硬件控制服务接收的所述硬件控制服务对应的服务结果,所述硬件控制服务对应的服务结果是所述硬件控制服务在接收到所述硬件服务类型的服务内容时,通过串口向所述硬件服务类型的服务内容对应的验布机的可编程逻辑控制器发送硬件检测信号,以使所述可编程逻辑控制器通过所述串口将硬件检测结果信号发送至所述硬件控制服务的,所述硬件检测结果为所述硬件控制服务对应的服务结果。
[0014] 在上述实现方式中,在来源服务请求的目标服务为硬件控制服务时,硬件控制服务通过可编程逻辑控制器与验布机的对应硬件设备进行通讯和控制,实现了硬件服务的通信。
[0015] 可选地,在所述消息中心接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心向所述来源服务发送返回服务成功信息,包括:通过所述消息中心在接收到所述一个或多个目标服务中的所有目标服务的返回成功消息,且所述一个或多个目标服务中存在目标硬件服务时,向所述目标硬件服务发送确认信息;在所述消息中心接收到所述目标硬件服务发送的所述确认信息对应的确认返回信息后,通过所述消息中心向所述来源服务发送返回服务成功信息。
[0016] 在上述实现方式中,通过目标硬件服务与目标硬件的通信对目标硬件服务进行二次确认,提高了硬件服务的通信准确性和消息一致性。
[0017] 可选地,所述方法还包括:当所述消息中心在预设时间内未接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心将未发送返回成功信息的目标服务的服务内容发送至所述未发送返回成功信息的目标服务对应的文件地址,或向所述来源服务发送返回服务失败信息。
[0018] 在上述实现方式中,对请求服务失败的目标服务进行预设时间的服务失败判定,避免在服务通信未接收到成功返回信息时卡死,提高了通信效率。
[0019] 本申请实施例还提供了一种验布机通信装置,所述装置包括:请求接收模块,用于通过消息中心接收服务请求消息,所述服务请求消息包括来源服务,一个或多个目标服务,以及每个目标服务的服务内容;内容发送模块,用于通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址;服务响应模块,用于在所述消息中心接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心向所述来源服务发送返回服务成功信息。
[0020] 在上述实现方式中,通过消息中心统一进行来源服务和目标服务之间的通信,提高了验布机软硬件通信效率,并且消息中心在来源服务请求的所有目标服务均返回成功消息时确定该来源服务已完成,再向来源服务返回服务成功信息结束当前来源服务的通信及执行流程,从而提高了验布机通信的一致性。
[0021] 可选地,所述验布机通信装置还包括:文件地址确定模块,用于通过所述消息中心基于预设格式解析出所述服务请求消息中的所述来源服务,所述一个或多个目标服务,以及每个目标服务的服务内容;通过所述消息中心确定每个目标服务对应的文件地址。
[0022] 在上述实现方式中,通过消息中心进行来源服务、目标服务以及服务内容的确定,并通过消息中心将服务内容发送至其目标服务的对应的文件地址,不需要每个来源服务和目标服务之间分别进行文件传输对接,从而提高了验布机通讯效率和一致性。
[0023] 可选地,所述内容发送模块具体用于:通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址,以使每个目标服务通过UNIX Domain Socket监听对应的文件地址,以从所述对应的文件地址获取服务内容;所述验布机通信装置还包括:结果接收模块,用于通过所述消息中心接收每个目标服务发送的服务结果,每个目标服务发送的服务结果是与每个目标服务获取到的服务内容对应的服务结果,所述服务结果包括返回成功消息和返回失败消息。
[0024] 在上述实现方式中,目标服务通过UNIX Domain Socket监听对应的文件地址来获取服务内容,不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程,提高了验布机通信效率。
[0025] 可选地,所述结果接收模块具体用于:所述消息中心通过所述消息标识查询已返回的返回成功消息;在所述一个或多个目标服务中的所有目标服务对应的返回成功消息均存在时,确定接收到所述一个或多个目标服务中的所有目标服务的返回成功消息。
[0026] 在上述实现方式中,消息中心通过消息标识进行目标服务的返回成功消息的确认,提高了消息确认准确性。
[0027] 可选地,所述内容发送模块具体用于:通过所述消息中心将所述硬件控制服务的服务内容修改为硬件服务类型,并发送至所述硬件控制服务对应的文件地址;所述结果接收模块,具体用于:对于所述一个或多个目标服务中的硬件控制服务,通过所述消息中心从所述硬件控制服务接收的所述硬件控制服务对应的服务结果,所述硬件控制服务对应的服务结果是所述硬件控制服务在接收到所述硬件服务类型的服务内容时,通过串口向所述硬件服务类型的服务内容对应的验布机的可编程逻辑控制器发送硬件检测信号,以使所述可编程逻辑控制器通过所述串口将硬件检测结果信号发送至所述硬件控制服务的,所述硬件检测结果为所述硬件控制服务对应的服务结果。
[0028] 在上述实现方式中,在来源服务请求的目标服务为硬件控制服务时,硬件控制服务通过可编程逻辑控制器与验布机的对应硬件设备进行通讯和控制,实现了硬件服务的通信。
[0029] 可选地,所述服务响应模块具体用于:通过所述消息中心在接收到所述一个或多个目标服务中的所有目标服务的返回成功消息,且所述一个或多个目标服务中存在目标硬件服务时,向所述目标硬件服务发送确认信息;在所述消息中心接收到所述目标硬件服务发送的所述确认信息对应的确认返回信息后,通过所述消息中心向所述来源服务发送返回服务成功信息。
[0030] 在上述实现方式中,通过目标硬件服务与目标硬件的通信对目标硬件服务进行二次确认,提高了硬件服务的通信准确性和消息一致性。
[0031] 可选地,所述结果接收模块具体用于:当所述消息中心在预设时间内未接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心将未发送返回成功信息的目标服务的服务内容发送至所述未发送返回成功信息的目标服务对应的文件地址,或向所述来源服务发送返回服务失败信息。
[0032] 在上述实现方式中,对请求服务失败的目标服务进行预设时间的服务失败判定,避免在服务通信未接收到成功返回信息时卡死,提高了通信效率。
[0033] 本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
[0034] 本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。

附图说明

[0035] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0036] 图1为本申请实施例提供的一种验布机通信方法的流程示意图;
[0037] 图2为本申请实施例提供的一种硬件控制服务通信的流程示意图;
[0038] 图3为本申请实施例提供的一种硬件控制服务的软硬件通信流程示意图;
[0039] 图4为本申请实施例提供的一种验布机通信装置的模块示意图。
[0040] 图标:30‑验布机通信装置;31‑请求接收模块;32‑内容发送模块;33‑服务响应模块。

具体实施方式

[0041] 下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
[0042] 请参考图1,图1为本申请实施例提供的一种验布机通信方法的流程示意图。该验布机通信方法具体步骤可以如下:
[0043] 步骤S12:通过消息中心接收服务请求消息,服务请求消息包括来源服务,一个或多个目标服务,以及每个目标服务的服务内容。
[0044] 通常,智能验布机系统以微服务架构搭建,主要包括控制服务、算法服务、采集服务、图片存储服务、硬件控制服务等,通过消息中心进行统一的消息管理。其中,消息中心可以为软件、进程服务,可以是Kafka、RabbitMQ、RocketMQ等消息队列,以提升验布机通信协调性和效率。
[0045] 其中,来源服务、目标服务可以是智能验布机中用于完成某一特定功能的软件进程,服务内容可以是请求进行控制、计算、采集图像、存储图像、硬件控制等。
[0046] 应当理解的是,消息中心接收到的服务请求信息包括来源服务、目标服务、服务内容等多种类型的文件,因此通过消息中心将每个目标服务的服务内容发送至对应的文件地址之前,还需要通过消息中心基于预设格式解析出服务请求消息中的来源服务,一个或多个目标服务,以及每个目标服务的服务内容,从而确定每个目标服务对应的文件地址。
[0047] 步骤S14:通过消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址。
[0048] 可选地,在通过消息中心进行服务间通信前,来源服务、目标服务需要在消息中心完成注册,并获得一个唯一的文件地址,各目标服务通过监听该文件地址接收消息。
[0049] 可选地,本实施例中的服务间通信可以采用UNIX Domain Socket方式进行,Unix Domain Socket又叫IPC(Inter‑Process Communication,进程间通信)Socket,用于实现同一主机上的进程间通信。Socket原本是为网络通讯设计的,但后来在Socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络Socket也可用于同一台主机的进程间通讯(通过loopback地址),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain Socket是全双工的,API(Application Programming Interface,应用程序接口)语义丰富,相比其它IPC机制有明显的优越性,目前已成为使用最广泛的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的,因此本实施例采用UNIX Domain Socket实现智能验布机的服务间通信,从而提高了智能验布机的通信效率和一致性。
[0050] 应当理解的是,在通过消息中心将来源服务的各个服务内容均传输至目标服务后,还需要通过消息中心接收每个目标服务返回的服务结果,每个目标服务发送的服务结果是与每个目标服务获取到的服务内容对应的服务结果,具体地,服务结果包括返回成功消息和返回失败消息。
[0051] 步骤S16:在消息中心接收到一个或多个目标服务中的所有目标服务的返回成功消息时,通过消息中心向来源服务发送返回服务成功信息。
[0052] 可选地,服务间传输的消息都带有消息标识,例如来源服务A发出的来源请求服务中的服务内容均带有该来源请求服务的唯一的消息标识,该消息标识可以是数字、字母等任意字符组合。则步骤S16进行返回成功消息的判定具体步骤可以如下:消息中心通过消息标识查询已返回的返回成功消息;在一个或多个目标服务中的所有目标服务对应的返回成功消息均存在时,确定接收到一个或多个目标服务中的所有目标服务的返回成功消息。
[0053] 通过上述判定步骤,本智能验布机通信方法可以通过消息标识确定某个来源服务请求的服务中的所有服务内容是否已经全部执行完毕,从而提高智能验布机的通信一致性。
[0054] 消息中心接收到的目标服务可以是控制服务、算法服务、采集服务、图片存储服务和/或硬件控制服务,在目标服务为硬件服务时,还需要对智能验布机的相关硬件进行控制和通信,请参考图2,图2为本申请实施例提供的一种硬件控制服务通信的流程示意图,其中,硬件目标服务通过串口与验布机连接的可编程逻辑控制器进行通讯,硬件目标服务通过监听Unix Domain Socket文件,获得信号后,通过RS232或其他串口以Modbus协议传递电平信号到可编程逻辑控制器,可编程逻辑控制器将其转化为的数字量信号、脉冲信号等以控制验布机相关功能。该硬件控制服务通信的具体步骤可以如下:
[0055] 步骤S22:在目标服务为硬件控制服务时,通过消息中心将硬件控制服务的服务内容修改为硬件服务类型,并发送至硬件控制服务对应的文件地址。
[0056] 可选地,本实施中硬件服务类型可以采用“prepare”类型。
[0057] 步骤S24:通过硬件目标服务基于UNIX Domain Socket在文件地址获取对应的硬件控制服务内容,通过硬件目标服务采用串口向硬件控制服务内容对应的验布机的可编程逻辑控制器发送硬件检测信号。
[0058] 请参考图3,图3为本申请实施例提供的一种硬件控制服务的软硬件通信流程示意图。智能验布机的可编程逻辑控制器将硬件检测信号发送至对应的智能验布机的硬件设备后,完成该硬件设备的通讯检测,在该硬件设备的通讯正常时向硬件目标服务返回表示该硬件设备通讯正常的电平信号,以使硬件目标服务将服务结果发送至消息中心。
[0059] 其中,智能验布机的硬件设备通常可以包括传动模块、摄像模块等。
[0060] 应当理解的是,硬件目标服务等目标服务向消息中心发送消息时,也可以将消息发送至消息中心的监听的文件地址,基于UNIX Domain Socket完成目标服务的消息反馈。
[0061] 步骤S26:通过消息中心在接收到一个或多个目标服务中的所有目标服务的返回成功消息,且一个或多个目标服务中存在目标硬件服务时,向目标硬件服务发送确认信息。
[0062] 可选地,本实施例中的确认信息可以是“confirm”信息。
[0063] 步骤S28:在消息中心接收到目标硬件服务发送的确认信息对应的确认返回信息后,通过消息中心向来源服务发送返回服务成功信息。
[0064] 可选地,本实施例在消息中心接收到目标硬件服务发送的确认信息对应的确认返回信息后,还可以记录消息日志。
[0065] 在一般微服务的软件系统中,事务最终一致性的处理通常使用重试、回滚方式。但在验布机系统中不一样的是,一旦发生异常情况,对于硬件控制服务中,已经开始的验布机是无法做到自动回滚已经卷起的布匹的。因此,消息中心必须保证硬件服务不会发生启动后回滚,通过上述步骤S22‑S28对硬件服务进行二阶段提交,在保证其他软件服务成功后,再确认硬件服务完成启动。
[0066] 进一步地,当消息中心在预设时间内未接收到一个或多个目标服务中的所有目标服务的返回成功消息时,通过消息中心将未发送返回成功信息的目标服务的服务内容发送至未发送返回成功信息的目标服务对应的文件地址,或向来源服务发送返回服务失败信息。
[0067] 可选地,消息中心可以对目标服务的返回信息进行轮询。
[0068] 此外,管理人员还可以通过管理后台获得消息中心的消息日志,分析日志以监控系统服务运行健康情况。
[0069] 为了配合上述验布机通信方法,本申请实施例还提供了一种验布机通信装置30。
[0070] 请参考图4,图4为本申请实施例提供的一种验布机通信装置的模块示意图。
[0071] 验布机通信装置30包括:
[0072] 请求接收模块31,用于通过消息中心接收服务请求消息,服务请求消息包括来源服务,一个或多个目标服务,以及每个目标服务的服务内容;
[0073] 内容发送模块32,用于通过消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址;
[0074] 服务响应模块33,用于在消息中心接收到一个或多个目标服务中的所有目标服务的返回成功消息时,通过消息中心向来源服务发送返回服务成功信息。
[0075] 可选地,验布机通信装置30还包括:文件地址确定模块,用于通过消息中心基于预设格式解析出服务请求消息中的来源服务,一个或多个目标服务,以及每个目标服务的服务内容;通过消息中心确定每个目标服务对应的文件地址。
[0076] 可选地,内容发送模块32具体用于:通过消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址,以使每个目标服务通过UNIX Domain Socket监听对应的文件地址,以从对应的文件地址获取服务内容;验布机通信装置还包括:结果接收模块,用于通过消息中心接收每个目标服务发送的服务结果,每个目标服务发送的服务结果是与每个目标服务获取到的服务内容对应的服务结果,服务结果包括返回成功消息和返回失败消息。
[0077] 可选地,结果接收模块具体用于:消息中心通过消息标识查询已返回的返回成功消息;在一个或多个目标服务中的所有目标服务对应的返回成功消息均存在时,确定接收到一个或多个目标服务中的所有目标服务的返回成功消息。
[0078] 可选地,内容发送模块32具体用于:通过消息中心将硬件控制服务的服务内容修改为硬件服务类型,并发送至硬件控制服务对应的文件地址;结果接收模块,具体用于:对于一个或多个目标服务中的硬件控制服务,通过消息中心从硬件控制服务接收的硬件控制服务对应的服务结果,硬件控制服务对应的服务结果是硬件控制服务在接收到硬件服务类型的服务内容时,通过串口向硬件服务类型的服务内容对应的验布机的可编程逻辑控制器发送硬件检测信号,以使可编程逻辑控制器通过串口将硬件检测结果信号发送至硬件控制服务的,硬件检测结果为硬件控制服务对应的服务结果。
[0079] 可选地,服务响应模块33具体用于:通过消息中心在接收到一个或多个目标服务中的所有目标服务的返回成功消息,且一个或多个目标服务中存在目标硬件服务时,向目标硬件服务发送确认信息;在消息中心接收到目标硬件服务发送的确认信息对应的确认返回信息后,通过消息中心向来源服务发送返回服务成功信息。
[0080] 可选地,结果接收模块具体用于:当消息中心在预设时间内未接收到一个或多个目标服务中的所有目标服务的返回成功消息时,通过消息中心将未发送返回成功信息的目标服务的服务内容发送至未发送返回成功信息的目标服务对应的文件地址,或向来源服务发送返回服务失败信息。
[0081] 本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供的验布机通信方法中任一项所述方法中的步骤。
[0082] 应当理解是,该电子设备可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等具有逻辑计算功能的电子设备。
[0083] 本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行验布机通信方法中的步骤。
[0084] 综上所述,本申请实施例提供了一种验布机通信方法、装置、电子设备及存储介质,所述方法包括:通过消息中心接收服务请求消息,所述服务请求消息包括来源服务,一个或多个目标服务,以及每个目标服务的服务内容;通过所述消息中心将每个目标服务的服务内容发送至每个目标服务对应的文件地址;在所述消息中心接收到所述一个或多个目标服务中的所有目标服务的返回成功消息时,通过所述消息中心向所述来源服务发送所述返回服务成功信息。
[0085] 在上述实现方式中,通过消息中心统一进行来源服务和目标服务之间的通信,提高了验布机软硬件通信效率,并且消息中心在来源服务请求的所有目标服务均返回成功消息时确定该来源服务已完成,再向来源服务返回服务成功信息结束当前来源服务的通信及执行流程,从而提高了验布机通信的一致性。
[0086] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0087] 另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0088] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,RanDom Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0089] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0090] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
[0091] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。