CN117896375A - 业务状态更新方法以及相关设备 - Google Patents
业务状态更新方法以及相关设备 Download PDFInfo
- Publication number
- CN117896375A CN117896375A CN202211229831.7A CN202211229831A CN117896375A CN 117896375 A CN117896375 A CN 117896375A CN 202211229831 A CN202211229831 A CN 202211229831A CN 117896375 A CN117896375 A CN 117896375A
- Authority
- CN
- China
- Prior art keywords
- service
- state
- state information
- target
- module
- 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
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000004891 communication Methods 0.000 claims abstract description 400
- 238000004806 packaging method and process Methods 0.000 claims abstract description 29
- 230000001960 triggered effect Effects 0.000 claims abstract description 5
- 238000003860 storage Methods 0.000 claims description 60
- 238000012545 processing Methods 0.000 claims description 32
- 238000001514 detection method Methods 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 4
- 238000007906 compression Methods 0.000 claims description 4
- 238000012856 packing Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 17
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 64
- 230000008569 process Effects 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 3
- 238000012858 packaging process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1073—Registration or de-registration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种业务状态更新方法以及相关设备,相关实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景;适用于云服务器,可以当业务服务层的业务状态信息更新时,接收业务服务层发送的更新后的目标业务状态信息;当检测到状态更新触发模块为已注册状态时,将目标业务状态信息发送给状态更新触发模块;通过状态更新触发模块基于目标通信协议对目标业务状态信息进行组装打包,向通讯模块发送状态更新指令;当通讯模块接收到状态更新指令时,触发通讯模块基于目标通信协议向业务终端发送组装打包后的目标业务状态信息。本申请可以避免业务终端频繁向服务端查询更新,减少服务端的资源和性能消耗,且能够实现实时更新业务状态信息。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种业务状态更新方法以及相关设备。
背景技术
随着计算机技术的发展,很多业务都在线上处理。业务终端的业务状态信息需要经常更新,该业务状态信息可以是部署服务过程中的服务部署状态等。
在目前的相关技术中,通常是通用业务终端的前台页面定时轮询调用后台服务,来不断更新业务状态信息的。这种业务状态更新方式会产生大量无意义请求,且业务终端频繁向服务端查询,会增加服务端的资源和性能消耗,另外,获取到的业务状态信息可能不是实时的。
发明内容
本申请实施例提供一种业务状态更新方法以及相关设备,相关设备可以包括业务状态更新装置、电子设备、和计算机可读存储介质,可以避免业务终端频繁向服务端查询更新,减少服务端的资源和性能消耗,且能够实现实时更新业务状态信息。
本申请实施例提供一种业务状态更新方法,适用于云服务器,所述云服务器包括业务服务层、服务状态管理层和通讯服务层,所述服务状态管理层包括状态管理模块和状态更新触发模块,所述方法包括:
当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;
对所述状态更新触发模块的注册状态进行检测;
当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;
通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;
当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
相应的,本申请实施例提供一种业务状态更新装置,适用于云服务器,所述云服务器包括业务服务层、服务状态管理层和通讯服务层,所述服务状态管理层包括状态管理模块和状态更新触发模块,所述装置包括:
接收单元,用于当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;
检测单元,用于对所述状态更新触发模块的注册状态进行检测;
第一发送单元,用于当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;
组装单元,用于通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;
第二发送单元,用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述业务状态更新装置还可以包括注册单元,如下:
所述注册单元,用于通过所述状态管理模块接收所述状态更新触发模块发送的注册信息;基于所述注册信息,将所述状态更新触发模块的注册状态更新为已注册状态。
可选的,在本申请的一些实施例中,所述云服务器还包括存储层,所述存储层的存储模块存储所述业务服务层更新的业务状态信息;所述业务状态更新装置还可以包括业务状态获取单元,如下:
所述业务状态获取单元,用于基于所述通讯模块与所述业务终端之间建立的所述目标通信协议下的通讯连接,通过所述通讯模块接收所述业务终端发送的针对业务状态信息的获取请求;基于所述获取请求,调用所述状态更新触发模块从所述存储模块中获取业务状态信息;通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述业务状态信息。
可选的,在本申请的一些实施例中,所述第二发送单元可以包括路由地址获取子单元、判断子单元和第一发送子单元,如下:
所述路由地址获取子单元,用于当所述通讯模块接收到所述状态更新指令时,通过所述通讯模块获取业务终端当前访问页面的路由地址信息;
判断子单元,用于基于所述路由地址信息,判断所述业务终端是否需要展示业务状态信息;
第一发送子单元,用于当所述业务终端需要展示业务状态信息时,触发所述通讯模块基于目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述状态更新指令包括所述业务服务层历史更新的参考业务状态信息;所述第二发送单元可以包括对比子单元和第二发送子单元,如下:
所述对比子单元,用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比;
第二发送子单元,用于根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述对比子单元具体可以用于触发所述通讯模块对所述参考业务状态信息进行哈希运算,得到第一哈希值;对所述业务终端当前展示的业务状态信息进行哈希运算,得到第二哈希值;将所述第一哈希值和所述第二哈希值进行对比。
可选的,在本申请的一些实施例中,所述第二发送子单元具体可以用于当所述参考业务状态信息与业务终端当前展示的业务状态信息一致时,根据所述参考业务状态信息,从所述组装打包后的目标业务状态信息的至少一个子状态信息中确定所更新的目标子状态信息;基于所述目标通信协议向业务终端发送所述目标子状态信息;当所述参考业务状态信息与业务终端当前展示的业务状态信息不一致时,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述云服务器还包括存储层,所述存储层的存储模块存储所述业务服务层更新的业务状态信息;所述业务状态更新装置还可以包括第一重建连接单元,如下:
所述第一重建连接单元,用于当与所述业务终端断开通讯连接、且重新建立通讯连接时,通过所述通讯模块接收所述业务终端发送的针对业务状态信息的获取请求;基于所述获取请求,调用所述状态更新触发模块从所述存储模块中获取更新时间满足预设时间条件的业务状态信息;通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述更新时间满足预设时间条件的业务状态信息。
可选的,在本申请的一些实施例中,所述业务状态更新装置还可以包括第二重建连接单元,如下:
所述第二重建连接单元,用于当与所述业务终端断开通讯连接、并重新建立通讯连接,且检测到所述状态管理模块当前发送更新后的业务状态信息给所述状态更新触发模块时,触发所述状态更新触发模块基于所述目标通信协议对所述更新后的业务状态信息进行组装打包处理;向所述通讯模块发送目标状态更新指令,所述目标状态更新指令包括组装打包后的业务状态信息和历史更新的参考业务状态信息;当所述通讯模块接收到所述目标状态更新指令时,触发所述通讯模块将所述参考业务状态信息与所述业务终端当前展示的业务状态信息进行对比;根据所述对比结果,通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述组装打包后的业务状态信息。
可选的,在本申请的一些实施例中,所述通讯服务层包括至少两个分布部署的通讯模块,每个通讯模块与至少一个业务终端进行通讯连接;
所述组装单元具体可以用于通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并分别向所述通讯服务层的各个通讯模块发送状态更新指令;
所述第二发送单元具体可以用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向与所述通讯模块对应的各个业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述目标业务状态信息包括客户端页面的内容状态数据,所述接收单元具体可以用于当所述业务服务层中客户端页面的页面内容更新时,通过所述状态管理模块接收所述业务服务层发送的包含所述内容状态数据的页面更新指令,所述内容状态数据包含所述客户端页面的更新后页面内容数据;
所述第一发送单元具体可以用于当检测到所述状态更新触发模块为已注册状态时,向所述状态更新触发模块发送页面更新触发指令,所述页面更新触发指令包括所述内容状态数据;
所述组装单元具体可以用于通过所述状态更新触发模块响应于所述页面更新触发指令,基于目标通信协议对所述更新后页面内容数据进行组装,得到组装后页面内容数据;对所述组装后页面内容数据进行打包压缩处理,得到打包压缩后的页面内容数据。
可选的,在本申请的一些实施例中,所述状态更新指令包括所述业务服务层历史更新的参考业务状态信息;所述参考业务状态信息包括所述客户端页面的历史内容状态数据,所述历史内容状态数据包含所述客户端页面的历史页面内容数据;
所述第二发送单元具体可以用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块将所述历史页面内容数据与业务终端当前展示的页面内容数据进行对比;当所述历史页面内容数据与业务终端当前展示的页面内容数据不一致时,基于所述目标通信协议向业务终端发送全量的所述打包压缩后的页面内容数据。
本申请实施例提供的一种电子设备,包括处理器和存储器,所述存储器存储有多条指令,所述处理器加载所述指令,以执行本申请实施例提供的业务状态更新方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本申请实施例提供的业务状态更新方法中的步骤。
此外,本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现本申请实施例提供的业务状态更新方法中的步骤。
本申请实施例提供了一种业务状态更新方法以及相关设备,可以当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;对所述状态更新触发模块的注册状态进行检测;当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。本申请可以利用目标通信协议推送更新后的业务状态信息到业务终端,这样可以避免业务终端频繁向服务端查询更新,减少服务端的资源和性能消耗,且能够实现实时更新业务状态信息。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的业务状态更新方法的场景示意图;
图1b是本申请实施例提供的业务状态更新方法的流程图;
图1c是本申请实施例提供的业务状态更新方法的产品示意图;
图1d是本申请实施例提供的业务状态更新方法的页面示意图;
图1e是本申请实施例提供的业务状态更新方法的方案架构图;
图1f是本申请实施例提供的业务状态更新方法的另一流程图;
图1g是本申请实施例提供的业务状态更新方法的另一流程图;
图1h是本申请实施例提供的业务状态更新方法的另一流程图;
图1i是本申请实施例提供的业务状态更新方法的另一流程图;
图1j是本申请实施例提供的业务状态更新方法的另一流程图;
图1k是本申请实施例提供的业务状态更新方法的另一流程图;
图2是本申请实施例提供的业务状态更新方法的另一流程图;
图3是本申请实施例提供的业务状态更新装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种业务状态更新方法以及相关设备,相关设备可以包括业务状态更新装置、电子设备、和计算机可读存储介质。该业务状态更新装置具体可以集成在电子设备中,该电子设备可以是终端或服务器等设备。
可以理解的是,本实施例的业务状态更新方法可以由终端和服务器共同执行的。以上举例不应理解为对本申请的限制。
如图1a所示,以终端和服务器共同执行业务状态更新方法为例。本申请实施例提供的业务状态更新***包括终端10和服务器11等;终端10与服务器11之间通过网络连接,比如,通过有线或无线网络连接等,其中,业务状态更新装置可以集成在服务器中。
其中,服务器11具体可以为云服务器,所述云服务器包括业务服务层、服务状态管理层和通讯服务层,所述服务状态管理层包括状态管理模块和状态更新触发模块。
其中,服务器11,可以用于:当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;对所述状态更新触发模块的注册状态进行检测;当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向终端10发送所述组装打包后的目标业务状态信息。其中,服务器11可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。本申请所公开的业务状态更新方法或装置,其中多个服务器可组成为一区块链,而服务器为区块链上的节点。
其中,终端10,可以用于:接收所述通讯模块基于所述目标通信协议发送的所述组装打包后的目标业务状态信息,并在前台页面更新展示所述组装打包后的目标业务状态信息。其中,终端10可以包括手机、智能语音交互设备、智能家电、车载终端、飞行器、平板电脑、笔记本电脑、台式计算机、智能手表或个人计算机(PC,Personal Computer)等。终端10上还可以设置客户端,该客户端可以是应用程序客户端或浏览器客户端等等。
本申请实施例提供的业务状态更新方法涉及云技术领域中的私有云。
其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术具体是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
其中,私有云(Private Cloud)是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。创建私有云,除了硬件资源外,一般还有云设备(IaaS,Infrastructure as a Service,基础设施即服务)软件。私有云计算同样包含云硬件、云平台、云服务三个层次。不同的是,云硬件是用户自己的个人电脑或服务器,而非云计算厂商的数据中心。云计算厂商构建数据中心的目的是为千百万用户提供公共云服务,因此需要拥有几十上百万台服务器。私有云计算,对个人来说只服务于亲朋好友,对企业来说只服务于本企业员工以及本企业的客户和供应商,因此个人或企业自己的个人电脑或服务器已经足够用来提供云服务。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从业务状态更新装置的角度进行描述,该业务状态更新装置具体可以集成在电子设备中,该电子设备可以是服务器等设备。
本实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。
如图1b所示,该业务状态更新方法的具体流程可以如下:
101、当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息。
本实施例中,该业务状态更新方法适用于云服务器,所述云服务器包括业务服务层、服务状态管理层和通讯服务层,所述服务状态管理层包括状态管理模块和状态更新触发模块。
其中,业务服务层可以用于部署各个业务的服务,业务部署的过程可以包括至少一个环节,具体地,业务服务层会在部署过程中每一环节的开始和完毕时,调用状态管理模块(也即服务状态更新中心)同步当前业务服务所处状态,即将当前更新后的目标业务状态信息同步到状态管理模块。
服务状态管理层具体也是业务服务对应的底层服务,它可以用于对业务状态信息的更新进行管理;服务状态管理层可以包括状态管理模块和状态更新触发模块。其中,状态管理模块具体为服务状态更新中心,它主要负责收集服务更新状态数据,对更新后的业务状态信息进行存储,同时接收触发器(具体即状态更新触发模块)的注册,并负责通知已注册的触发器。状态更新触发模块具体为服务状态更新触发器,主要负责去服务状态更新中心注册自身,并接收服务更新数据,从数据库(DB,data base)中查询数据,缓存数据,调用WebSocket推送能力等。
通讯服务层具体为提供目标通信协议下的通信能力的服务端。一些实施例中,通信服务层可以提供HTTP服务,同时提供WebSocket通信能力,WebSocket通信能力可以自行实现,也可以使用一些成熟的库实现,比如Socket.IO。
其中,HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一个简单的请求-响应协议。Socket.IO是一个WebSocket库,包括了客户端的Js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。nodejs是一个开源和跨平台的JavaScript运行时环境。Js即JavaScript,它是是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。
本实施例中,业务状态信息为业务的后台服务数据,包括业务服务所处的状态,具体可以是检测服务状态数据,也可以是部署服务过程中的服务部署状态等;例如,该服务部署状态可以是开始部署、部署中、或者部署完成等,具体地,服务部署状态可以以部署进度条的方式呈现。目标业务状态信息具体为当前更新后的业务状态信息。
在具体场景中,业务终端的业务状态信息需要更新,本实施例可以私有云场景下利用目标通信协议实时获取或者推送后台服务数据到业务终端的web(World Wide Web,即全球广域网)页面或者其他前台页面展示。例如,参考图1c,前台页面实时展示服务的状态,示例为部署状态,Tcenter(基础平台)服务部署失败,OSP(运维平台)部署中,其他服务BSP(运营平台)和BMPPro(运营平台)等待部署。
在目前的相关技术中,通常是通用业务终端的前台页面定时轮询调用后台服务,来不断更新业务状态信息的。具体地,前台页面用Ajax或者fetch等前端通信技术去后台获取服务状态数据,后台服务通过去检查其他服务状态获取服务状态数据,或者从存储服务状态数据的数据库(如MySQL、Redis等存储)中获取服务状态数据,并返回给前台页面。前台页面展示服务状态数据。设置定时任务1分钟(或者其他时间,根据业务实时性要求和服务压力情况来决定时长)轮询如上过程,不断获取到新的服务状态呈现在前台页面。这种业务状态更新方式会产生大量无意义请求,且业务终端频繁向服务端查询,会增加服务端的资源和性能消耗,同时也会增加网络带宽消耗;而且获取到的业务状态信息可能不是实时的。另外,前台页面频繁的轮询查询,会导致页面其他一次性获取数据的请求,淹没在轮询查询的请求中,不利于页面功能开发调试。
本申请提供的业务状态更新方法中,业务终端具体可以通过WebSocket技术与后台服务器通信,连接建立后,当业务服务层的业务状态信息有变化时,后台可以主动推送更新后的业务状态信息到业务终端,业务终端的前台页面可以以最高的时效性展示服务状态变化信息,如图1d所示。
可选地,本实施例中,所述云服务器还包括存储层,所述存储层的存储模块存储所述业务服务层更新的业务状态信息;
该业务状态更新方法还可以包括:
基于所述通讯模块与所述业务终端之间建立的所述目标通信协议下的通讯连接,通过所述通讯模块接收所述业务终端发送的针对业务状态信息的获取请求;
基于所述获取请求,调用所述状态更新触发模块从所述存储模块中获取业务状态信息;
通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述业务状态信息。
其中,目标通信协议可以是实现业务终端和服务器全双工通信的协议,全双工通信指的是通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。例如,目标通信协议可以是WebSocket协议。
其中,存储层主要负责持久化存储服务更新状态信息,可以是MySQL、MongoDB等数据库,为了读取效率也可以考虑Redis等存储方案。具体地,存储模块可以存储业务服务层中最新更新的业务状态信息。
Redis是一种高性能的关键字-值(key-value)数据库,是一个内存存储***。它通常被称为数据结构服务器,支持存储的值(value)的类型较多,存储的值(value)可以是字符串、哈希、列表、集合和有序集等类型。
其中,具体地,业务终端可以向云服务器发起目标通信协议下的通讯连接,从而可以建立业务终端与云服务器的通讯服务层中的通讯模块之间在目标通信协议下的通讯连接。建立通讯连接后,业务终端再向通讯模块发送针对业务状态信息的获取请求。
其中,具体地,状态更新触发模块从存储模块中获取业务状态信息后,可以对业务状态信息进行组装打包处理,再向通讯模块发送组装打包后的业务状态信息,通讯模块基于目标通信协议将组装打包后的业务状态信息发送给业务终端。
102、对所述状态更新触发模块的注册状态进行检测。
其中,状态更新触发模块的注册状态可以包括已注册状态、以及未注册状态。本实施例可以检测状态更新触发模块是否处于已注册状态,若是,状态管理模块可以将目标业务状态信息发送给该状态更新触发模块。
103、当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块。
可选地,步骤“当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块”之前,该业务状态更新方法还可以包括:
通过所述状态管理模块接收所述状态更新触发模块发送的注册信息;
基于所述注册信息,将所述状态更新触发模块的注册状态更新为已注册状态。
其中,注册信息可以包括状态更新触发模块的模块标识信息。状态管理模块可以基于该注册信息,对状态更新触发模块进行认证,将状态更新触发模块从未注册状态更新为已注册状态。
104、通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息。
其中,目标通信协议是实现业务终端和服务器全双工通信的协议,例如,目标通信协议可以是WebSocket协议。
WebSocket是一种在单个传输控制协议(TCP,Transmission Control Protocol)连接上进行全双工通信的协议,WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API(Application ProgrammingInterface,应用程序编程接口)中,客户端和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
其中,状态更新指令主要用于指示通讯模块向业务终端发送更新后的目标业务状态信息,以实现对业务终端中展示的业务状态信息的更新。
105、当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
其中,业务终端可以是Web浏览器,也可以是移动端的应用程序(App,Application),也可以是桌面客户端等,本实施例对此不作限制。
在一具体实施例中,如图1e所示,为本申请的业务状态更新方法的方案架构图,具体说明如下:
其中,该业务状态更新方法适用于云服务器,云服务器包括业务服务层、存储层、服务状态管理层和通讯服务层,服务状态管理层包括服务状态更新中心(即上述实施例中的状态管理模块)和服务状态更新触发器(简称触发器,即上述实施例中的状态更新触发模块)。业务服务层可以部署各个业务的服务,如Tcenter(基础平台)服务、BSP(运营平台)服务、CSP(Cloud Storage on Private,私有云存储)服务、COS(存储平台)服务等。通讯服务层可以提供HTTP(HyperTextTransferProtocol,超文本传输协议)服务,以及websocket通信能力。业务终端可以为客户端,具体可以是浏览器客户端,也可以是应用客户端,本实施例对此不作限制。
其中,云服务器和业务终端之间具体的交互逻辑说明如下:
1.触发器在服务状态更新中心进行注册,具体可以是触发器发送注册信息给服务状态更新中心,服务状态更新中心基于该注册信息,对触发器进行注册,将其注册状态更新为已注册状态。
2.客户端发起目标通信协议下的通讯连接,如发起WebSocket连接;
3.后台服务的通讯服务层与客户端建立目标通信协议下的通讯连接,如WebSocket连接;
4.建立目标通信协议下的通讯连接后,客户端基于目标通信协议向通讯服务层发送针对服务状态数据(即上述实施例中的业务状态信息)的获取请求,该获取请求具体也即WebSocket消息;
5.当通讯服务层接收到该WebSocket消息时,通讯服务层调用触发器;
6.触发器从存储层的数据库中获取服务状态数据,并对该服务状态数据进行组装打包、缓存,并将组装打包后的服务状态数据返回给通讯服务层的WebSocket服务;
7.通讯服务层获取到组装打包后的服务状态数据,调用push(推送)能力,将组装打包后的服务状态数据推送到客户端;
8.客户端获取到组装打包后的服务状态数据,将服务状态数据展示在前台页面上;
9.当业务服务层中业务服务的部署环节发生变化,即服务状态发送变化时,业务服务层调用服务状态更新中心把更新后的目标服务状态数据(即上述实施例中的目标业务状态信息)同步到服务状态更新中心;
10.当服务状态更新中心接收到更新后的目标服务状态数据时,服务状态更新中心将更新后的目标服务状态数据更新到存储层的数据库;并触发在服务状态更新中心注册过的触发器,把更新后的目标服务状态数据同步给触发器;
11.触发器接收到更新后的目标服务状态数据,对更新后的目标服务状态数据进行数据组装打包,并缓存数据,调用通讯服务层中的WebSocket服务,将组装打包后的目标服务状态数据发送给WebSocket服务;
12.WebSocket服务获取到组装打包后的目标服务状态数据,调用push(推送)能力,将组装打包后的目标服务状态数据推送到客户端;
13.客户端获取到组装打包后的目标服务状态数据,对客户端的前台页面上服务状态数据进行更新。
可选地,本实施例中,步骤“当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息”,可以包括:
当所述通讯模块接收到所述状态更新指令时,通过所述通讯模块获取业务终端当前访问页面的路由地址信息;
基于所述路由地址信息,判断所述业务终端是否需要展示业务状态信息;
当所述业务终端需要展示业务状态信息时,触发所述通讯模块基于目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
其中,业务终端当前访问页面的路由地址信息可以是业务终端当前所展示页面的路由地址信息,该路由地址信息可以包括IP地址和端口号。基于路由地址信息,可以确定业务终端当前所展示的页面,进而可以判断该页面是否是展示业务状态信息的页面。若不是,则不需要向该业务终端发送组装打包后的目标业务状态信息。
可选地,本实施例中,所述状态更新指令包括所述业务服务层历史更新的参考业务状态信息;
步骤“当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息”,可以包括:
当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比;
根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
其中,参考业务状态信息具体可以是上一次更新时对应的业务状态信息。
其中,本实施例中,可以根据业务终端当前展示的业务状态信息是否和上一次更新时对应的业务状态信息一致,来确定对于本次更新,业务终端需要更新的内容。
若业务终端当前展示的业务状态信息和上一次更新时对应的业务状态信息一致,则可以将本次更新后的目标业务状态信息中,与上一次更新对应的参考业务状态信息不同的部分确定为业务终端本次更新所需要更新的内容,并只将这部分内容发送给业务终端,以便业务终端基于这部分内容,对当前展示的业务状态信息进行更新。
若业务终端当前展示的业务状态信息和上一次更新时对应的业务状态信息不一致,则可以将本次更新的目标业务状态信息的全量数据都发送给业务终端,以便业务终端将当前展示的业务状态信息更新为目标业务状态信息。
可选地,本实施例中,步骤“触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比”,可以包括:
触发所述通讯模块对所述参考业务状态信息进行哈希运算,得到第一哈希值;
对所述业务终端当前展示的业务状态信息进行哈希运算,得到第二哈希值;
将所述第一哈希值和所述第二哈希值进行对比。
其中,第一哈希值为参考业务状态信息对应的消息摘要,第二哈希值为业务终端当前展示的业务状态信息对应的消息摘要。
其中,哈希运算所采用的算法可以是安全散列算法(SHA,Secure HashAlgorithm)和消息摘要算法第五版(MD5,Message Digest Algorithm 5)等,本实施例对此不作限定。
哈希运算(Hash Function)是一种主要用于信息安全领域中的加密算法,哈希运算又称为散列函数,是一种通过散列算法,将任意长度的输入转化为固定长度输出的函数,其输出为固定长度的字符串,被称为哈希值。这种转化的本质是一种压缩映射,即哈希值的空间通常小于输入值的空间。哈希运算的一个重要属性是不可逆,即给定一个哈希值,想要计算出它所对应的消息是极其困难的。其中,不同输入值对应的输出值基本不同,不同输出值对应的输入值不同,所以不可能从散列值来确定唯一的输入值,也就是说,没有办法从输出的哈希值得到原来输入的数据。
其中,将第一哈希值和第二哈希值进行对比,即对比第一哈希值和第二哈希值是否相同。若第一哈希值和第二哈希值相同,则可以认为参考业务状态信息与业务终端当前展示的业务状态信息一致;若第一哈希值和第二哈希值不相同,则可以认为参考业务状态信息与业务终端当前展示的业务状态信息不一致。
可选地,本实施例中,步骤“根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息”,可以包括:
当所述参考业务状态信息与业务终端当前展示的业务状态信息一致时,根据所述参考业务状态信息,从所述组装打包后的目标业务状态信息的至少一个子状态信息中确定所更新的目标子状态信息;
基于所述目标通信协议向业务终端发送所述目标子状态信息;
当所述参考业务状态信息与业务终端当前展示的业务状态信息不一致时,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
其中,目标业务状态信息可以包括至少一个子状态信息,参考业务状态信息也包括至少一个子状态信息。
其中,可以将组装打包后的目标业务状态信息中不包含在参考业务状态信息的子状态信息确定为所更新的目标子状态信息,也就是说,目标子状态信息为本次所更新的内容,上一次更新对应的参考业务状态信息不包含目标子状态信息。
其中,当所述参考业务状态信息与业务终端当前展示的业务状态信息一致时,可以只对业务终端中的业务状态数据进行部分数据更新;当所述参考业务状态信息与业务终端当前展示的业务状态信息不一致时,需要对业务终端中的业务状态数据进行全量数据更新。
具体地,在不同场景中,触发器组装数据,WebSocket服务推送数据到客户端有不同的策略,如完全无差别推送策略和差异化推送策略。其中,触发器组装数据,WebSocket服务推送数据到客户端,具体包括:触发器接收到更新后的目标服务状态数据,对更新后的目标服务状态数据进行数据组装打包,并调用通讯服务层中的WebSocket服务,将组装打包后的目标服务状态数据推送到客户端,
一些实施例中,如图1f所示,展示的是完全无差别推送策略对应的流程图。具体地,在触发器接收到更新后的目标服务状态数据后,会对全量数据进行组装打包处理,即对本次更新后的目标服务状态数据全部进行组装打包,并调用通讯服务层中的WebSocket服务,无差别给WebSocket服务对应的所有客户端推送全量数据,即推送更新后的目标服务状态数据的全部内容。
对于完全无差别推送策略,其实现较为简单,但会给所有客户端发送全量数据,由于部分客户端可能不需要展示服务状态数据,并且实际上可能只有部分服务状态有更新,推送全量数据(即所有服务状态)会导致数据重复推送,这样会带来网络带宽资源的消耗。该种策略适合服务状态全量数据体积比较小的情况。
另一些实施例中,如图1g所示,展示的是差异化推送策略对应的流程图。具体地,在触发器接收到更新后的目标服务状态数据后,对全量数据、更新数据和上次全量数据进行组装处理,这里的全量数据指的是本次更新后的目标服务状态数据,上次全量数据指的是上一次更新对应的服务状态数据,更新数据指的是本次更新后的目标服务状态数据相较于上次更新对应的服务状态数据所更新的内容;然后,调用通讯服务层中的WebSocket服务,将组装后的全量数据、更新数据和上次全量数据发送给WebSocket服务;此外,客户端会发送当前所在页面的路由地址信息给WebSocket服务,WebSocket服务存储该客户端的路由地址信息;在WebSocket服务接收到组装后的全量数据、更新数据和上次全量数据时,说明服务状态数据有更新,首先可以根据客户端的路由地址信息,判断客户端是否需要更新服务状态数据,比如客户端切换到非服务状态显示页面,则不需要给该客户端推送更新后的服务状态数据。若根据客户端的路由地址信息,确定客户端当前处于服务状态显示页面,则客户端需要更新服务状态数据。
其中,具体地,触发器每次获取到服务状态数据,可以对获取到的服务状态数据进行哈希运算,并保存该份全量数据的哈希值;对于客户端需要更新服务状态数据的情况,可以判断客户端是否需要更新全量数据,具体过程如下:
WebSocket服务可以获取各个客户端当前展示的服务状态数据,并对每个客户端当前展示的服务状态数据进行哈希运算,保存每个客户端全量数据的哈希值;在服务状态更新时,触发器可以将上次更新对应的服务状态数据的全量数据的哈希值同步给WebSocket服务,WebSocket服务将逐个对比客户端当前展示的服务状态数据的哈希值与上次更新全量数据的哈希值是否一致,如果一致则只需要给该客户端推送新更新的服务状态数据,也即只需要给客户端推送上述所说的更新数据;如果不一致,则需要给该客户端推送本次更新对应的全量服务状态数据。
这种差异化推送策略不会多推送任何无用数据,具体地,在只有部分服务状态更新时,如果返回全量数据,会有很多重复数据,基于差异化推送策略,可以只返回更新部分的数据,减少网络传输带宽消耗,降低数据体积,也减少网络请求耗时,提高更新速度。该方式适合于服务状态数据量比较大的场景。
如上两个方案为完全无差别推送和差异化推送的两种策略,也可以根据具体业务情况选取其中部分差异对比的推送策略,本实施例对此不作限制。
可选地,本实施例中,所述通讯服务层包括至少两个分布部署的通讯模块,每个通讯模块与至少一个业务终端进行通讯连接;
步骤“通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令”,可以包括:
通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并分别向所述通讯服务层的各个通讯模块发送状态更新指令;
步骤“当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息”,可以包括:
当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向与所述通讯模块对应的各个业务终端发送所述组装打包后的目标业务状态信息。
其中,通讯服务层可以包括一个或多个通讯模块,也就是说,通讯服务层可以为通讯模块集群,具体可以为分布式的Websocket服务集群。
一些实施例中,如图1h所示,为分布式WebSocket服务集群方案,具体地,在触发器接收到更新后的目标服务状态数据后,会对全量数据进行组装打包处理,即对本次更新后的目标服务状态数据全部进行组装打包,并调用通讯服务层中所有WebSocket服务,并给WebSocket服务对应的所有客户端推送全量数据,即推送更新后的目标服务状态数据的全部内容。
一些实施例中,如图1i所示,为分布式WebSocket服务集群方案,具体地,在触发器接收到更新后的目标服务状态数据后,对全量数据、更新数据和上次全量数据进行组装处理,这里的全量数据指的是本次更新后的目标服务状态数据,上次全量数据指的是上一次更新对应的服务状态数据,更新数据指的是本次更新后的目标服务状态数据相较于上次更新对应的服务状态数据所更新的内容;然后,调用通讯服务层中所有的WebSocket服务,将组装后的全量数据、更新数据和上次全量数据发送给所有WebSocket服务;此外,客户端会发送当前所在页面的路由地址信息给对应的WebSocket服务,WebSocket服务存储该客户端的路由地址信息;在WebSocket服务接收到组装后的全量数据、更新数据和上次全量数据时,说明服务状态数据有更新,首先可以根据客户端的路由地址信息,判断客户端是否需要更新服务状态数据,比如客户端切换到非服务状态显示页面,则不需要给该客户端推送更新后的服务状态数据。若根据客户端的路由地址信息,确定客户端当前处于服务状态显示页面,则客户端需要更新服务状态数据。
其中,具体地,触发器每次获取到服务状态数据,可以对获取到的服务状态数据进行哈希运算,并保存该份全量数据的哈希值;对于客户端需要更新服务状态数据的情况,可以判断客户端是否需要更新全量数据,具体过程包括:
WebSocket服务可以获取对应的各个客户端当前展示的服务状态数据,并对每个客户端当前展示的服务状态数据进行哈希运算,保存每个客户端全量数据的哈希值;在服务状态更新时,触发器可以将上次更新对应的服务状态数据的全量数据的哈希值同步给所有WebSocket服务,各个WebSocket服务将逐个对比其对应的客户端当前展示的服务状态数据的哈希值与上次更新全量数据的哈希值是否一致,如果一致则只需要给该客户端推送新更新的服务状态数据,也即只需要给客户端推送上述所说的更新数据;如果不一致,则需要给该客户端推送本次更新对应的全量服务状态数据。
上述两种分布式方案都是基于WebSocket连接通过负载均衡连接到不同的WebSocket服务,触发器更新数据时可以调用所有的WebSocket服务,保证所有的客户端都可以获取到正确的服务状态数据。
可选地,本实施例中,所述目标业务状态信息包括客户端页面的内容状态数据,步骤“当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息”,可以包括:
当所述业务服务层中客户端页面的页面内容更新时,通过所述状态管理模块接收所述业务服务层发送的包含所述内容状态数据的页面更新指令,所述内容状态数据包含所述客户端页面的更新后页面内容数据;
步骤“当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块”,可以包括:
当检测到所述状态更新触发模块为已注册状态时,向所述状态更新触发模块发送页面更新触发指令,所述页面更新触发指令包括所述内容状态数据;
步骤“通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理”,可以包括:
通过所述状态更新触发模块响应于所述页面更新触发指令,基于目标通信协议对所述更新后页面内容数据进行组装,得到组装后页面内容数据;
对所述组装后页面内容数据进行打包压缩处理,得到打包压缩后的页面内容数据。
可选地,本实施例中,所述状态更新指令包括所述业务服务层历史更新的参考业务状态信息;所述参考业务状态信息包括所述客户端页面的历史内容状态数据,所述历史内容状态数据包含所述客户端页面的历史页面内容数据;
步骤“当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息”,可以包括:
当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块将所述历史页面内容数据与业务终端当前展示的页面内容数据进行对比;
当所述历史页面内容数据与业务终端当前展示的页面内容数据不一致时,基于所述目标通信协议向业务终端发送全量的所述打包压缩后的页面内容数据。
其中,参考业务状态信息具体可以是上一次更新时对应的业务状态信息;历史页面内容数据具体可以是客户端页面上一次更新时对应的页面内容数据。
其中,本实施例中,可以根据业务终端当前展示的页面内容数据是否和上一次更新时对应的页面内容数据一致,来确定对于本次更新,业务终端需要更新的内容。
若业务终端当前展示的页面内容数据和上一次更新时对应的页面内容数据一致,则可以将本次更新后的页面内容数据中,与上一次更新对应的参考业务状态信息中历史页面内容数据不同的部分确定为业务终端本次更新所需要更新的页面内容数据,并只将这部分页面内容数据发送给业务终端,以便业务终端基于这部分页面内容数据,对业务终端当前展示的页面内容数据进行更新。
若业务终端当前展示的页面内容数据和上一次更新时对应的页面内容数据不一致,则可以将本次更新后的页面内容数据的全量数据都发送给业务终端,以便业务终端将当前展示的页面内容数据更新为目标业务状态信息中更新后页面内容数据。
可选地,本实施例中,所述云服务器还包括存储层,所述存储层的存储模块存储所述业务服务层更新的业务状态信息;该业务状态更新方法还可以包括:
当与所述业务终端断开通讯连接、且重新建立通讯连接时,通过所述通讯模块接收所述业务终端发送的针对业务状态信息的获取请求;
基于所述获取请求,调用所述状态更新触发模块从所述存储模块中获取更新时间满足预设时间条件的业务状态信息;
通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述更新时间满足预设时间条件的业务状态信息。
其中,预设时间条件具体可以是更新时间距离当前时间最短,本实施例对此不作限制。
在一实施例中,如图1j所示,为业务终端与通讯模块之间断线重连的异常处理流程。具体地,客户端与服务端连接断开后,重新连接服务端,即重新连接通讯模块,然后,客户端可以向通讯模块发送针对全量数据的获取请求,通讯模块的WebSocket服务接收到获取请求后,调用触发器获取服务状态数据的全量数据,触发器从存储层的数据库获取最新更新后的全量数据,并返回给WebSocket服务,WebSocket服务接收到全量数据后,推送全量数据到客户端,以便客户端展示全量服务状态数据。
可选地,本实施例中,该业务状态更新方法还可以包括:
当与所述业务终端断开通讯连接、并重新建立通讯连接,且检测到所述状态管理模块当前发送更新后的业务状态信息给所述状态更新触发模块时,触发所述状态更新触发模块基于所述目标通信协议对所述更新后的业务状态信息进行组装打包处理;
向所述通讯模块发送目标状态更新指令,所述目标状态更新指令包括组装打包后的业务状态信息和历史更新的参考业务状态信息;
当所述通讯模块接收到所述目标状态更新指令时,触发所述通讯模块将所述参考业务状态信息与所述业务终端当前展示的业务状态信息进行对比;
根据所述对比结果,通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述组装打包后的业务状态信息。
其中,历史更新的参考业务状态信息可以是上一次更新对应的业务状态信息。
在一实施例中,如图1k所示,为业务终端与通讯模块之间断线重连的异常处理流程。具体地,客户端与服务端连接断开,重新连接服务端,即重新连接通讯模块后,恰巧触发器更新数据,WebSocket服务将获取的上一次更新对应的服务状态数据与客户端当前的服务状态数据的全量数据进行对比,从而确定二者的全量数据不匹配,进而WebSocket服务将最新更新得到的全量数据推送给客户端,以便客户端展示全量服务状态数据。
基于本申请提供的业务状态更新方法,可以更快地做到真正实时展示业务状态信息,提升了用户体验。在业务服务层的服务状态变化后,可以从服务端直接发送消息到前台页面,是服务状态变化后主动推送更新,相比之前的轮训,在时效性上做到了极致。
由上可知,本实施例可以当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;对所述状态更新触发模块的注册状态进行检测;当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。本申请可以利用目标通信协议推送更新后的业务状态信息到业务终端,这样可以避免业务终端频繁向服务端查询更新,减少服务端的资源和性能消耗,且能够实现实时更新业务状态信息。
根据前面实施例所描述的方法,以下将以该业务状态更新装置具体集成在服务器举例作进一步详细说明。
本申请实施例提供一种业务状态更新方法,如图2所示,该业务状态更新方法的具体流程可以如下:
201、当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息。
本实施例中,该业务状态更新方法适用于云服务器,所述云服务器包括业务服务层、服务状态管理层和通讯服务层,所述服务状态管理层包括状态管理模块和状态更新触发模块。
其中,业务服务层可以用于部署各个业务的服务,业务部署的过程可以包括至少一个环节,具体地,业务服务层会在部署过程中每一环节的开始和完毕时,调用状态管理模块(也即服务状态更新中心)同步当前业务服务所处状态,即将当前更新后的目标业务状态信息同步到状态管理模块。
服务状态管理层具体也是业务服务对应的底层服务,它可以用于对业务状态信息的更新进行管理;服务状态管理层可以包括状态管理模块和状态更新触发模块。其中,状态管理模块具体为服务状态更新中心,它主要负责收集服务更新状态数据,对更新后的业务状态信息进行存储,同时接收触发器(具体即状态更新触发模块)的注册,并负责通知已注册的触发器。状态更新触发模块具体为服务状态更新触发器,主要负责去服务状态更新中心注册自身,并接收服务更新数据,从数据库(DB,data base)中查询数据,缓存数据,调用WebSocket推送能力等。
通讯服务层具体为提供目标通信协议下的通信能力的服务端。一些实施例中,通信服务层可以提供HTTP服务,同时提供WebSocket通信能力,WebSocket通信能力可以自行实现,也可以使用一些成熟的库实现,比如Socket.IO。
本实施例中,业务状态信息为业务的后台服务数据,包括业务服务所处的状态,具体可以是检测服务状态数据,也可以是部署服务过程中的服务部署状态等;例如,该服务部署状态可以是开始部署、部署中、或者部署完成等,具体地,服务部署状态可以以部署进度条的方式呈现。目标业务状态信息具体为当前更新后的业务状态信息。
202、对所述状态更新触发模块的注册状态进行检测。
其中,状态更新触发模块的注册状态可以包括已注册状态、以及未注册状态。本实施例可以检测状态更新触发模块是否处于已注册状态,若是,状态管理模块可以将目标业务状态信息发送给该状态更新触发模块。
203、当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块。
可选地,步骤“当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块”之前,该业务状态更新方法还可以包括:
通过所述状态管理模块接收所述状态更新触发模块发送的注册信息;
基于所述注册信息,将所述状态更新触发模块的注册状态更新为已注册状态。
其中,注册信息可以包括状态更新触发模块的模块标识信息。状态管理模块可以基于该注册信息,对状态更新触发模块进行认证,将状态更新触发模块从未注册状态更新为已注册状态。
204、通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息、和所述业务服务层历史更新的参考业务状态信息。
其中,目标通信协议是实现业务终端和服务器全双工通信的协议,例如,目标通信协议可以是WebSocket协议。
WebSocket是一种在单个传输控制协议(TCP,Transmission Control Protocol)连接上进行全双工通信的协议,WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API(Application ProgrammingInterface,应用程序编程接口)中,客户端和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
其中,状态更新指令主要用于指示通讯模块向业务终端发送更新后的目标业务状态信息,以实现对业务终端中展示的业务状态信息的更新。
其中,参考业务状态信息具体可以是上一次更新时对应的业务状态信息。
205、当所述通讯模块接收到所述状态更新指令时,通过所述通讯模块获取业务终端当前访问页面的路由地址信息。
其中,业务终端可以是Web浏览器,也可以是移动端的应用程序(App,Application),也可以是桌面客户端等,本实施例对此不作限制。
206、基于所述路由地址信息,判断所述业务终端是否需要展示业务状态信息。
其中,业务终端当前访问页面的路由地址信息可以是业务终端当前所展示页面的路由地址信息,该路由地址信息可以包括IP地址和端口号。基于路由地址信息,可以确定业务终端当前所展示的页面,进而可以判断该页面是否是展示业务状态信息的页面。若不是,则不需要向该业务终端发送组装打包后的目标业务状态信息。
207、当所述业务终端需要展示业务状态信息时,触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比。
其中,本实施例中,可以根据业务终端当前展示的业务状态信息是否和上一次更新时对应的业务状态信息一致,来确定对于本次更新,业务终端需要更新的内容。
若业务终端当前展示的业务状态信息和上一次更新时对应的业务状态信息一致,则可以将本次更新后的目标业务状态信息中,与上一次更新对应的参考业务状态信息不同的部分确定为业务终端本次更新所需要更新的内容,并只将这部分内容发送给业务终端,以便业务终端基于这部分内容,对当前展示的业务状态信息进行更新。
若业务终端当前展示的业务状态信息和上一次更新时对应的业务状态信息不一致,则可以将本次更新的目标业务状态信息的全量数据都发送给业务终端,以便业务终端将当前展示的业务状态信息更新为目标业务状态信息。
可选地,本实施例中,步骤“触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比”,可以包括:
触发所述通讯模块对所述参考业务状态信息进行哈希运算,得到第一哈希值;
对所述业务终端当前展示的业务状态信息进行哈希运算,得到第二哈希值;
将所述第一哈希值和所述第二哈希值进行对比。
其中,第一哈希值为参考业务状态信息对应的消息摘要,第二哈希值为业务终端当前展示的业务状态信息对应的消息摘要。
其中,哈希运算所采用的算法可以是安全散列算法(SHA,Secure HashAlgorithm)和消息摘要算法第五版(MD5,Message Digest Algorithm 5)等,本实施例对此不作限定。
其中,将第一哈希值和第二哈希值进行对比,即对比第一哈希值和第二哈希值是否相同。若第一哈希值和第二哈希值相同,则可以认为参考业务状态信息与业务终端当前展示的业务状态信息一致;若第一哈希值和第二哈希值不相同,则可以认为参考业务状态信息与业务终端当前展示的业务状态信息不一致。
208、根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选地,本实施例中,步骤“根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息”,可以包括:
当所述参考业务状态信息与业务终端当前展示的业务状态信息一致时,根据所述参考业务状态信息,从所述组装打包后的目标业务状态信息的至少一个子状态信息中确定所更新的目标子状态信息;
基于所述目标通信协议向业务终端发送所述目标子状态信息;
当所述参考业务状态信息与业务终端当前展示的业务状态信息不一致时,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
其中,目标业务状态信息可以包括至少一个子状态信息,参考业务状态信息也包括至少一个子状态信息。
其中,可以将组装打包后的目标业务状态信息中不包含在参考业务状态信息的子状态信息确定为所更新的目标子状态信息,也就是说,目标子状态信息为本次所更新的内容,上一次更新对应的参考业务状态信息不包含目标子状态信息。
其中,当所述参考业务状态信息与业务终端当前展示的业务状态信息一致时,可以只对业务终端中的业务状态数据进行部分数据更新;当所述参考业务状态信息与业务终端当前展示的业务状态信息不一致时,需要对业务终端中的业务状态数据进行全量数据更新。
由上可知,本实施例可以当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;对所述状态更新触发模块的注册状态进行检测;当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息、和所述业务服务层历史更新的参考业务状态信息;当所述通讯模块接收到所述状态更新指令时,通过所述通讯模块获取业务终端当前访问页面的路由地址信息;基于所述路由地址信息,判断所述业务终端是否需要展示业务状态信息;当所述业务终端需要展示业务状态信息时,触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比;根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。本申请可以利用目标通信协议推送更新后的业务状态信息到业务终端,这样可以避免业务终端频繁向服务端查询更新,减少服务端的资源和性能消耗,且能够实现实时更新业务状态信息。
为了更好地实施以上方法,本申请实施例还提供一种业务状态更新装置,适用于云服务器,所述云服务器包括业务服务层、服务状态管理层和通讯服务层,所述服务状态管理层包括状态管理模块和状态更新触发模块,如图3所示,该业务状态更新装置可以包括接收单元301、检测单元302、第一发送单元303、组装单元304以及第二发送单元305,如下:
(1)接收单元301;
接收单元,用于当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息。
(2)检测单元302;
检测单元,用于对所述状态更新触发模块的注册状态进行检测。
可选的,在本申请的一些实施例中,所述业务状态更新装置还可以包括注册单元,如下:
所述注册单元,用于通过所述状态管理模块接收所述状态更新触发模块发送的注册信息;基于所述注册信息,将所述状态更新触发模块的注册状态更新为已注册状态。
(3)第一发送单元303;
第一发送单元,用于当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块。
(4)组装单元304;
组装单元,用于通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息。
(5)第二发送单元305;
第二发送单元,用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述云服务器还包括存储层,所述存储层的存储模块存储所述业务服务层更新的业务状态信息;所述业务状态更新装置还可以包括业务状态获取单元,如下:
所述业务状态获取单元,用于基于所述通讯模块与所述业务终端之间建立的所述目标通信协议下的通讯连接,通过所述通讯模块接收所述业务终端发送的针对业务状态信息的获取请求;基于所述获取请求,调用所述状态更新触发模块从所述存储模块中获取业务状态信息;通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述业务状态信息。
可选的,在本申请的一些实施例中,所述第二发送单元可以包括路由地址获取子单元、判断子单元和第一发送子单元,如下:
所述路由地址获取子单元,用于当所述通讯模块接收到所述状态更新指令时,通过所述通讯模块获取业务终端当前访问页面的路由地址信息;
判断子单元,用于基于所述路由地址信息,判断所述业务终端是否需要展示业务状态信息;
第一发送子单元,用于当所述业务终端需要展示业务状态信息时,触发所述通讯模块基于目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述状态更新指令包括所述业务服务层历史更新的参考业务状态信息;所述第二发送单元可以包括对比子单元和第二发送子单元,如下:
所述对比子单元,用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比;
第二发送子单元,用于根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述对比子单元具体可以用于触发所述通讯模块对所述参考业务状态信息进行哈希运算,得到第一哈希值;对所述业务终端当前展示的业务状态信息进行哈希运算,得到第二哈希值;将所述第一哈希值和所述第二哈希值进行对比。
可选的,在本申请的一些实施例中,所述第二发送子单元具体可以用于当所述参考业务状态信息与业务终端当前展示的业务状态信息一致时,根据所述参考业务状态信息,从所述组装打包后的目标业务状态信息的至少一个子状态信息中确定所更新的目标子状态信息;基于所述目标通信协议向业务终端发送所述目标子状态信息;当所述参考业务状态信息与业务终端当前展示的业务状态信息不一致时,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述云服务器还包括存储层,所述存储层的存储模块存储所述业务服务层更新的业务状态信息;所述业务状态更新装置还可以包括第一重建连接单元,如下:
所述第一重建连接单元,用于当与所述业务终端断开通讯连接、且重新建立通讯连接时,通过所述通讯模块接收所述业务终端发送的针对业务状态信息的获取请求;基于所述获取请求,调用所述状态更新触发模块从所述存储模块中获取更新时间满足预设时间条件的业务状态信息;通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述更新时间满足预设时间条件的业务状态信息。
可选的,在本申请的一些实施例中,所述业务状态更新装置还可以包括第二重建连接单元,如下:
所述第二重建连接单元,用于当与所述业务终端断开通讯连接、并重新建立通讯连接,且检测到所述状态管理模块当前发送更新后的业务状态信息给所述状态更新触发模块时,触发所述状态更新触发模块基于所述目标通信协议对所述更新后的业务状态信息进行组装打包处理;向所述通讯模块发送目标状态更新指令,所述目标状态更新指令包括组装打包后的业务状态信息和历史更新的参考业务状态信息;当所述通讯模块接收到所述目标状态更新指令时,触发所述通讯模块将所述参考业务状态信息与所述业务终端当前展示的业务状态信息进行对比;根据所述对比结果,通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述组装打包后的业务状态信息。
可选的,在本申请的一些实施例中,所述通讯服务层包括至少两个分布部署的通讯模块,每个通讯模块与至少一个业务终端进行通讯连接;
所述组装单元具体可以用于通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并分别向所述通讯服务层的各个通讯模块发送状态更新指令;
所述第二发送单元具体可以用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向与所述通讯模块对应的各个业务终端发送所述组装打包后的目标业务状态信息。
可选的,在本申请的一些实施例中,所述目标业务状态信息包括客户端页面的内容状态数据,所述接收单元具体可以用于当所述业务服务层中客户端页面的页面内容更新时,通过所述状态管理模块接收所述业务服务层发送的包含所述内容状态数据的页面更新指令,所述内容状态数据包含所述客户端页面的更新后页面内容数据;
所述第一发送单元具体可以用于当检测到所述状态更新触发模块为已注册状态时,向所述状态更新触发模块发送页面更新触发指令,所述页面更新触发指令包括所述内容状态数据;
所述组装单元具体可以用于通过所述状态更新触发模块响应于所述页面更新触发指令,基于目标通信协议对所述更新后页面内容数据进行组装,得到组装后页面内容数据;对所述组装后页面内容数据进行打包压缩处理,得到打包压缩后的页面内容数据。
可选的,在本申请的一些实施例中,所述状态更新指令包括所述业务服务层历史更新的参考业务状态信息;所述参考业务状态信息包括所述客户端页面的历史内容状态数据,所述历史内容状态数据包含所述客户端页面的历史页面内容数据;
所述第二发送单元具体可以用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块将所述历史页面内容数据与业务终端当前展示的页面内容数据进行对比;当所述历史页面内容数据与业务终端当前展示的页面内容数据不一致时,基于所述目标通信协议向业务终端发送全量的所述打包压缩后的页面内容数据。
由上可知,本实施例可以当所述业务服务层的业务状态信息更新时,由接收单元301通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;通过检测单元302对所述状态更新触发模块的注册状态进行检测;当检测到所述状态更新触发模块为已注册状态时,由第一发送单元303将所述目标业务状态信息发送给所述状态更新触发模块;由组装单元304通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;当所述通讯模块接收到所述状态更新指令时,通过第二发送单元305触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。本申请可以利用目标通信协议推送更新后的业务状态信息到业务终端,这样可以避免业务终端频繁向服务端查询更新,减少服务端的资源和性能消耗,且能够实现实时更新业务状态信息。
本申请实施例还提供一种电子设备,如图4所示,其示出了本申请实施例所涉及的电子设备的结构示意图,该电子设备可以是终端或者服务器等,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,该电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;对所述状态更新触发模块的注册状态进行检测;当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例可以当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;对所述状态更新触发模块的注册状态进行检测;当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。本申请可以利用目标通信协议推送更新后的业务状态信息到业务终端,这样可以避免业务终端频繁向服务端查询更新,减少服务端的资源和性能消耗,且能够实现实时更新业务状态信息。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种业务状态更新方法中的步骤。例如,该指令可以执行如下步骤:
当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;对所述状态更新触发模块的注册状态进行检测;当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种业务状态更新方法中的步骤,因此,可以实现本申请实施例所提供的任一种业务状态更新方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述业务状态更新方面的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种业务状态更新方法以及相关设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种业务状态更新方法,其特征在于,适用于云服务器,所述云服务器包括业务服务层、服务状态管理层和通讯服务层,所述服务状态管理层包括状态管理模块和状态更新触发模块,所述方法包括:
当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;
对所述状态更新触发模块的注册状态进行检测;
当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;
通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;
当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
2.根据权利要求1所述的方法,其特征在于,所述当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块之前,还包括:
通过所述状态管理模块接收所述状态更新触发模块发送的注册信息;
基于所述注册信息,将所述状态更新触发模块的注册状态更新为已注册状态。
3.根据权利要求1所述的方法,其特征在于,所述云服务器还包括存储层,所述存储层的存储模块存储所述业务服务层更新的业务状态信息;
所述方法还包括:
基于所述通讯模块与所述业务终端之间建立的所述目标通信协议下的通讯连接,通过所述通讯模块接收所述业务终端发送的针对业务状态信息的获取请求;
基于所述获取请求,调用所述状态更新触发模块从所述存储模块中获取业务状态信息;
通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述业务状态信息。
4.根据权利要求1所述的方法,其特征在于,所述当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息,包括:
当所述通讯模块接收到所述状态更新指令时,通过所述通讯模块获取业务终端当前访问页面的路由地址信息;
基于所述路由地址信息,判断所述业务终端是否需要展示业务状态信息;
当所述业务终端需要展示业务状态信息时,触发所述通讯模块基于目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
5.根据权利要求1所述的方法,其特征在于,所述状态更新指令包括所述业务服务层历史更新的参考业务状态信息;
所述当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息,包括:
当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比;
根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
6.根据权利要求5所述的方法,其特征在于,所述触发所述通讯模块将所述参考业务状态信息与业务终端当前展示的业务状态信息进行对比,包括:
触发所述通讯模块对所述参考业务状态信息进行哈希运算,得到第一哈希值;
对所述业务终端当前展示的业务状态信息进行哈希运算,得到第二哈希值;
将所述第一哈希值和所述第二哈希值进行对比。
7.根据权利要求5所述的方法,其特征在于,所述根据所述对比结果,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息,包括:
当所述参考业务状态信息与业务终端当前展示的业务状态信息一致时,根据所述参考业务状态信息,从所述组装打包后的目标业务状态信息的至少一个子状态信息中确定所更新的目标子状态信息;
基于所述目标通信协议向业务终端发送所述目标子状态信息;
当所述参考业务状态信息与业务终端当前展示的业务状态信息不一致时,基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
8.根据权利要求1所述的方法,其特征在于,所述目标业务状态信息包括客户端页面的内容状态数据,所述当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息,包括:
当所述业务服务层中客户端页面的页面内容更新时,通过所述状态管理模块接收所述业务服务层发送的包含所述内容状态数据的页面更新指令,所述内容状态数据包含所述客户端页面的更新后页面内容数据;
所述当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块,包括:
当检测到所述状态更新触发模块为已注册状态时,向所述状态更新触发模块发送页面更新触发指令,所述页面更新触发指令包括所述内容状态数据;
所述通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,包括:
通过所述状态更新触发模块响应于所述页面更新触发指令,基于目标通信协议对所述更新后页面内容数据进行组装,得到组装后页面内容数据;
对所述组装后页面内容数据进行打包压缩处理,得到打包压缩后的页面内容数据。
9.根据权利要求8所述的方法,其特征在于,所述状态更新指令包括所述业务服务层历史更新的参考业务状态信息;所述参考业务状态信息包括所述客户端页面的历史内容状态数据,所述历史内容状态数据包含所述客户端页面的历史页面内容数据;
所述当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息,包括:
当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块将所述历史页面内容数据与业务终端当前展示的页面内容数据进行对比;
当所述历史页面内容数据与业务终端当前展示的页面内容数据不一致时,基于所述目标通信协议向业务终端发送全量的所述打包压缩后的页面内容数据。
10.根据权利要求1所述的方法,其特征在于,所述云服务器还包括存储层,所述存储层的存储模块存储所述业务服务层更新的业务状态信息;所述方法还包括:
当与所述业务终端断开通讯连接、且重新建立通讯连接时,通过所述通讯模块接收所述业务终端发送的针对业务状态信息的获取请求;
基于所述获取请求,调用所述状态更新触发模块从所述存储模块中获取更新时间满足预设时间条件的业务状态信息;
通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述更新时间满足预设时间条件的业务状态信息。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当与所述业务终端断开通讯连接、并重新建立通讯连接,且检测到所述状态管理模块当前发送更新后的业务状态信息给所述状态更新触发模块时,触发所述状态更新触发模块基于所述目标通信协议对所述更新后的业务状态信息进行组装打包处理;
向所述通讯模块发送目标状态更新指令,所述目标状态更新指令包括组装打包后的业务状态信息和历史更新的参考业务状态信息;
当所述通讯模块接收到所述目标状态更新指令时,触发所述通讯模块将所述参考业务状态信息与所述业务终端当前展示的业务状态信息进行对比;
根据所述对比结果,通过所述通讯模块基于所述目标通信协议向所述业务终端发送所述组装打包后的业务状态信息。
12.根据权利要求1所述的方法,其特征在于,所述通讯服务层包括至少两个分布部署的通讯模块,每个通讯模块与至少一个业务终端进行通讯连接;
所述通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,包括:
通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并分别向所述通讯服务层的各个通讯模块发送状态更新指令;
所述当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息,包括:
当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向与所述通讯模块对应的各个业务终端发送所述组装打包后的目标业务状态信息。
13.一种业务状态更新装置,其特征在于,适用于云服务器,所述云服务器包括业务服务层、服务状态管理层和通讯服务层,所述服务状态管理层包括状态管理模块和状态更新触发模块,所述装置包括:
接收单元,用于当所述业务服务层的业务状态信息更新时,通过所述状态管理模块接收所述业务服务层发送的更新后的目标业务状态信息;
检测单元,用于对所述状态更新触发模块的注册状态进行检测;
第一发送单元,用于当检测到所述状态更新触发模块为已注册状态时,将所述目标业务状态信息发送给所述状态更新触发模块;
组装单元,用于通过所述状态更新触发模块基于目标通信协议对所述目标业务状态信息进行组装打包处理,并向所述通讯服务层的通讯模块发送状态更新指令,所述状态更新指令包括组装打包后的目标业务状态信息;
第二发送单元,用于当所述通讯模块接收到所述状态更新指令时,触发所述通讯模块基于所述目标通信协议向业务终端发送所述组装打包后的目标业务状态信息。
14.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至12任一项所述的业务状态更新方法中的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至12任一项所述的业务状态更新方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211229831.7A CN117896375A (zh) | 2022-10-08 | 2022-10-08 | 业务状态更新方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211229831.7A CN117896375A (zh) | 2022-10-08 | 2022-10-08 | 业务状态更新方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117896375A true CN117896375A (zh) | 2024-04-16 |
Family
ID=90641762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211229831.7A Pending CN117896375A (zh) | 2022-10-08 | 2022-10-08 | 业务状态更新方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117896375A (zh) |
-
2022
- 2022-10-08 CN CN202211229831.7A patent/CN117896375A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11556366B2 (en) | Container login method, apparatus, and storage medium | |
CN111447185B (zh) | 一种推送信息的处理方法及相关设备 | |
US20210021671A1 (en) | Fault handling method and device for gateway server | |
CN107911430A (zh) | 一种微服务基础设施装置 | |
CN112311774B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN108512821B (zh) | 数据传输方法、装置和***,网闸,交易数据存储方法 | |
KR20150013860A (ko) | 클라이언트 없는 클라우드 컴퓨팅 | |
CN111045833B (zh) | 接口调用的方法和装置 | |
CN109639782A (zh) | 消息发送平台、方法 | |
CN113259479B (zh) | 一种数据处理方法以及设备 | |
CN111917838B (zh) | 基于微服务的处理方法及装置、存储介质、电子装置 | |
CN111352716A (zh) | 一种基于大数据的任务请求方法、装置、***及存储介质 | |
CN115658348B (zh) | 微服务调用方法、相关装置及存储介质 | |
CN110650209A (zh) | 实现负载均衡的方法和装置 | |
US20160269335A1 (en) | Method and apparatus for identifying changed mailboxes in an internet message access protocol (imap) list | |
CN110351107B (zh) | 配置管理方法及装置 | |
US10958712B2 (en) | Enhanced reliability for information services | |
CN114221985A (zh) | 设备控制方法、装置、电子设备和计算机可读存储介质 | |
CN116996421A (zh) | 一种网络质量检测方法及相关设备 | |
CN109981778B (zh) | 内容分发网络的服务实现方法、装置、设备及存储介质 | |
CN117896375A (zh) | 业务状态更新方法以及相关设备 | |
CN112929453B (zh) | 一种共享session数据的方法和装置 | |
CN114884880A (zh) | 数据传输方法以及*** | |
CN110661857B (zh) | 一种数据同步方法和装置 | |
CN108733805B (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 |