掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法和装置

文献发布时间:2023-06-19 11:27:38


一种数据处理方法和装置

技术领域

本申请涉及智慧城市技术领域,具体涉及一种数据处理方法和装置。

背景技术

GB/T28181国标标准一般运用于安防监控行业,例如,安防监控系统中。在安防监控系统中,业务终端(如交警终端等)经常需要发送数据请求到对应的级联平台,以通过级联平台来获取安防监控系统中的各类设备(如监控行业里的目标相机,例如,高清网络摄像机、网络视频录像机(Network Video Recorde,NVR)等)中的数据。如此,级联平台中的服务器需要接收数据请求,同时还需要接收目标相机的应答消息。然而级联平台中的服务器每天需要接收大量的数据请求,在接收到大量的数据请求后如何确定接收到的数据请求,对应于接收到的哪个应答消息,以对该数据请求进行快速响应是亟需解决的问题。

发明内容

本申请实施例提供一种数据处理方法和装置,可在实现确定数据请求与应答消息之间的映射关系的同时,提高服务器的并发响应速度。

本申请实施例提供了一种数据处理方法,应用于第一服务器中,包括:

接收来自于业务终端的数据请求,并确定所述数据请求所对应的请求描述信息,所述数据请求用于请求目标相机的数据;

从预先设置的待使用配置列表中确定第一个配置单元作为目标配置单元,其中,所设置的每个配置单元所占用的内存地址保持不变;

更改所述目标配置单元对应的使用序列号,并利用所述目标配置单元保存所述数据请求所对应的请求描述信息和所述使用序列号;

将所述数据请求进行转码,以得到二进制格式的请求消息;

将所述目标配置单元的内存地址、所述使用序列号和所述请求消息进行封装,并发送封装后的请求消息,以使所述目标相机对所述请求消息进行响应;

当接收到响应请求消息返回的应答消息时,根据所述应答消息中的使用序列号、内存地址和所述配置单元中保存的使用序列号、内存地址,确定所述应答消息对应的数据请求;

根据所述数据请求的请求描述信息向所述业务终端发送所述应答消息,以响应所述数据请求。

本申请实施例还提供了一种数据处理方法,应用于第一服务器中,包括:

接收第一服务器发送的请求消息,所述请求消息是将来自于业务终端的数据请求进行封装后得到的,所述请求消息为二进制格式的消息,所述数据请求用于请求目标相机的数据;

将所述请求消息中的内存地址和使用序列号,作为所述请求消息的请求消息索引;

确定所述请求消息的抽象描述信息,所述抽象描述信息包括所述请求消息的来源信息;

将所述请求消息转换为SIP协议格式的SIP请求消息,并发送所述SIP请求消息,以使得所述目标相机根据所述SIP请求消息进行响应;

当所述第二服务器接收到所述目标相机返回的SIP应答消息时,将所述SIP应答消息转换为二进制格式的应答消息;

确定与所述应答消息的应答消息索引匹配的请求消息,并将所述应答消息和所述请求消息的请求消息索引进行封装,以得到封装后的应答消息;

根据所述请求消息的所述抽象描述信息向所述第一服务器发送封装后的所述应答消息,以使得所述第一服务器响应所述数据请求。

本申请实施例还提供了一种数据处理装置,应用于第一服务器中,包括:

第一接收模块,用于接收来自于业务终端的数据请求,并确定所述数据请求所对应的请求描述信息,所述数据请求用于请求目标相机的数据;

配置确定模块,用于从预先设置的待使用配置列表中确定第一个配置单元作为目标配置单元,其中,所设置的每个配置单元所占用的内存地址保持不变;

保存模块,用于更改所述目标配置单元对应的使用序列号,并利用所述目标配置单元保存所述数据请求所对应的请求描述信息和所述使用序列号;

第一转换模块,用于将所述数据请求进行转码,以得到二进制格式的请求消息;

第一封装模块,用于将所述目标配置单元的内存地址、所述使用序列号和所述请求消息进行封装;

第一发送模块,用于发送封装后的请求消息,以使所述目标相机对所述请求消息进行响应;

请求确定模块,用于当接收到响应请求消息返回的应答消息时,根据所述应答消息中的使用序列号、内存地址和所述配置单元中保存的使用序列号、内存地址,确定所述应答消息对应的数据请求;

第一发送模块,还用于根据所述数据请求的请求描述信息向所述业务终端发送所述应答消息,以响应所述数据请求。

本申请实施例还提供了一种数据处理装置,应用于第二服务器中,包括:

第二接收模块,用于接收第一服务器发送的请求消息,所述请求消息是将来自于业务终端的数据请求进行封装后得到的,所述请求消息为二进制格式的消息,所述数据请求用于请求目标相机的数据;

索引确定模块,用于将所述请求消息中的内存地址和使用序列号,作为所述请求消息的请求消息索引;

抽象确定模块,用于确定所述请求消息的抽象描述信息,所述抽象描述信息包括所述请求消息的来源信息;

第二转换模块,用于将所述请求消息转换为SIP协议格式的SIP请求消息;

第二发送模块,用于发送所述SIP请求消息,以使得所述目标相机根据所述SIP请求消息进行响应;

第二转换模块,还用于当所述第二服务器接收到所述目标相机返回的SIP应答消息时,将所述SIP应答消息转换为二进制格式的应答消息;

第二封装模块,用于确定与所述应答消息的应答消息索引匹配的请求消息,并将所述应答消息和所述请求消息的请求消息索引进行封装,以得到封装后的应答消息;

第二发送模块,还用于根据所述请求消息的所述抽象描述信息向所述第一服务器发送封装后的所述应答消息,以使得所述第一服务器响应所述数据请求。

本申请实施例还提供了一种第一服务器,所述第一服务器包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述处理器和所述存储器相连接,所述一个或多个计算机程序被存储于所述存储器中,并配置为由所述处理器执行上述所述的应用于第一服务器中的数据处理方法。

本申请实施例还提供了一种第二服务器,所述第二服务器包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述处理器和所述存储器相连接,所述一个或多个计算机程序被存储于所述存储器中,并配置为由所述处理器执行上述所述的应用于第二服务器中的数据处理方法。

本申请实施例还提供了一种数据处理系统,所述数据系统包括上述任一实施例所述的第一服务器和上述任一实施例所述的第二服务器。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一种应用于第一服务器中的数据处理方法中的步骤;或者实现上述任一种应用于第二服务器中的数据处理方法中的步骤。

本申请实施例在第一服务器接收到来自于业务终端的数据请求时,从预先设置的待使用配置列表中确定第一个未使用的配置单元作为目标配置单元,其中,配置单元为第一服务器的内存中用于存储的存储区域,配置单元的内存地址保存不变,通过目标配置单元来保存数据请求所对应的请求描述信息和配置单元的使用序列号,如此,通过预先设置多个配置单元,当接收到数据请求时,确定第一个未使用的目标配置单元来保存数据请求所对应的相关信息,不必在接收到数据请求时,临时创建新的配置单元,提高第一服务器的响应速度,尤其是在第一服务器并发数量较高时,快速地提高了第一服务器的响应速度;另外,当接收到来自于业务终端的数据请求时,确定数据请求所对应的请求描述信息,并利用目标配置单元来保存数据请求所对应的请求描述信息和配置单元的使用序列号,将目标配置单元的内存地址、使用序列号来对转码后的二进制格式的请求消息进行封装,并发送封装后的请求消息,以使得目标相机对请求消息进行响应,如此,以使得当接收到返回的应答消息时,可通过应答消息中的使用序列号、内存地址和配置单元中保存的使用序列号、内存地址来确定应答消息对应的数据请求,并根据数据请求对应的请求描述信息,向对应的业务终端发送应答消息,以实现响应该数据请求。即本申请实施例一方面实现了确定数据请求与应答消息之间的映射关系,以实现响应数据请求,另一方面,提高服务器的并发响应速度;同时将接收到的数据请求进行转码,以得到二进制格式的请求消息,使得第一服务器统一对二进制格式的请求消息进行封装处理,提高了兼容性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的数据处理系统的结构示意图;

图2是本申请实施例提供的级联平台设备层级结构的示意图;

图3是本申请实施例提供的数据处理系统的另一结构示意图;

图4是本申请实施例提供的数据处理方法的流程示意图;

图5a是本申请实施例提供的初始化的配置列表的示意图;

图5b是本申请实施例提供的配置单元中保存的数据的简易示意图;

图5c是本申请实施例提供的配置列表的示意图;

图5d是本申请实施例提供的待封装的请求消息结构体的示意图;

图5e是本申请实施例提供的封装后的请求消息的示意图;

图5f是本申请实施例提供的配置列表的又一示意图;

图5g是本申请实施例提供的新增配置单元后的总配置列表的示意图;

图6是本申请实施例提供的数据处理方法的流程示意图;

图7a是本申请实施例提供的数据请求的请求消息索引和请求描述信息的示意图;

图7b是本申请实施例提供的待封装的应答消息结构体的示意图;

图8是本申请实施例提供的数据处理方法的又一流程示意图;

图9是本申请实施例提供的数据处理装置的结构示意图;

图10是本申请实施例提供的数据处理装置的另一结构示意图;

图11是本申请实施例提供的第一服务器的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有的安防监控系统中,将连接到该安防监控系统中的设备使用GB/T28181中的SIP协议(Session Initiation Protocol,会话发起协议)来进行相互通信。安防监控系统中的设备包括上下级联平台设备和各种相机(监控行业里的高清网络摄像机、网络视频录像机(Network Video Recorde,NVR)等)等,即现有的安防监控系统中上下级联平台设备之间的通信、上下级联平台设备与相机之间的通信等都使用了国标协议如SIP协议来进行SIP通信。因此,在对应设备中需要安装专门的SIP客户端/SIP服务器,以达到通过SIP客户端/SIP服务器来进行SIP通信的目的。例如,当有业务终端需要查看相机的数据的时候,需要在对应业务终端上安装专门的SIP客户端,才能查看相机的数据。如此,造成诸多不便。同时,结合背景技术中的相关技术问题,本申请实施例提供了一种数据处理方法,应用于数据处理系统的第一服务器和/或第二服务器中。

在本申请实施例中,所述相机是指智慧交通领域中安装于监控现场的用于信息采集、编码、处理、存储、传输、安全控制的各类摄像机和录像机等。

在本申请实施例中,所述业务终端,包括交警终端、开发人员业务终端等,业务终端经注册并授权的、对智慧交通领域中如安防监控系统内的数据和设备有操作需求的终端设备。终端设备包括但不限于智能手机、平板电脑、笔记本电脑、智能电视、智能机器人、个人计算机(PC,Personal Computer)等。

首先简单介绍数据处理系统中的数据流向。如图1所示,为数据处理系统中的数据流向的示意图,该数据处理系统中包括第一服务器和第二服务器。

业务终端利用互联网协议发送的数据请求通过对应的传输链路发送至第一服务器,第一服务器对数据请求进行处理(例如转码、封装等)后,得到数据请求对应的请求消息,并将请求消息通过对应的传输链路发送至第二服务器,第二服务器确定请求消息的请求消息索引和请求消息的抽象描述信息,将请求消息转换为SIP请求消息,并通过国标协议SIP协议来访问第三方SIP下联平台设备,并最终访问数据请求所请求的目标相机的数据,目标相机接收到SIP请求消息后,响应SIP请求消息得到SIP应答消息,并原路返回,以响应业务终端的数据请求。第三方SIP上联平台设备发送SIP请求至第二服务器,第二服务器进行一系列的处理(例如二次转码等)后,将SIP请求通过SIP链路发送至第三方SIP下联平台设备,并最终访问SIP请求所请求的相机的数据,相机接收到SIP请求后,响应SIP请求得到SIP应答消息,并原路返回,以响应第三方SIP上联平台设备的SIP请求。

其中,第三方SIP上联平台设备和第三方SIP下联平台设备是第三方平台中的设备,属于不可控的部分,全部采用标准的SIP协议进行通信。

其中,第二服务器中包括SIP下联平台设备和SIP上联平台设备。第三方SIP上联平台设备通过SIP链路与第二服务器中的SIP下联平台设备进行通信,第二服务器中的SIP下联平台设备与SIP上联平台设备通过管道传输进行通信。其中,SIP上联平台设备,可以理解为SIP服务器(SIP Server),等着SIP客户端(SIP Client)来主动连接,管理SIP客户端,一个SIP上联平台设备对应多个SIP下联平台设备。SIP下联平台设备,可以理解为SIP客户端,主动连接SIP服务器,一个SIP下联平台设备只能连接一个SIP上联平台设备。

如图2所示,为级联平台设备层级结构的示意图。在图2中,省级平台设备通过SIP链路访问市级平台设备,市级平台设备通过SIP链路访问县级平台设备,县级平台设备通过SIP链路访问区级平台设备,区级平台设备通过SIP链路访问具体设备点位对应的实际设备(如目标相机等)。其中,对于省级平台设备和市级平台设备来说,省级平台设备是市级平台设备的SIP上联平台设备,市级平台设备是省级平台设备的SIP下联平台设备;对于市级平台设备和县级平台设备来说,市级平台设备是县级平台设备的SIP上联平台设备,县级平台设备是市级平台设备的SIP下联平台设备;对于县级平台设备和区级平台设备,区级平台设备和具体设备点位对应的实际设备来说,也同样理解。在该图中,省级平台设备作为第三方上联平台设备,具体设备点位对应的实际设备对应第三下联平台设备。

本申请实施例中第一服务器提供转码服务,第二服务器提供信令调度服务。第一服务器和第二服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。

在一些情况下,转码服务和信令调度服务所实现的功能也可以是集成在一个服务器中,如此,转码服务和信令调度服务对应的是该服务器中的不同模块,不同模块之间相互进行通信,下文中对该种情况不做说明。但可以理解地,本申请也可以实现对应的方案。

下面将详细描述本申请实施例中的数据处理系统,请参阅图3,是本申请实施例提供的数据处理系统的示意图。该数据处理系统包括第一服务器和第二服务器,及其构成的两条主要的传输链路,一条是从业务终端开始到第三方SIP下联平台设备的传输链路,该条传输链路中涉及转码服务和信令调度服务,需要注意的是,该条传输链路中的转码服务和信令调度服务一起实现了链路传输等的功能。另一条是从第三方SIP上联平台设备开始到第三方SIP下联平台设备的传输链路。由于这两条传输链路的实现原理不相同,下面将对这两条传输链路分别进行说明。

业务终端可以是任一终端设备,在终端设备中无需安装SIP客户端,直接在网页上,基于WebSocket(图1、图3中简写为WS)协议,通过WS链路(长连接的双向传输链路,生命周期由业务终端控制,第一服务器不会主动关闭该链路)向第一服务器发送数据请求,该数据请求用于请求目标相机的数据,其中,目标相机是级联平台设备中的一个设备,目标相机的数据包括与目标相机相关的一些数据,例如目标相机的相机状态、目标相机的数据流等数据。其中,该数据请求可以是JSON(JavaScript Object Notation,JS对象简谱)格式的文本数据。

第一服务器接收到业务终端基于WebSocket协议发送的数据请求时,通过转码服务实现如下功能:生成数据请求的请求描述信息,其中,请求描述信息可以看做是对数据请求的一个抽象描述,该请求描述信息包括数据请求的来源信息,该请求描述信息用于在第一服务器接收到基于数据请求的应答消息时,根据请求描述信息确定所对应的业务终端,向对应的业务终端发送应答消息,以响应数据请求;保存有待使用配置列表和已使用配置列表,从待使用配置列表中确定第一个未使用的配置单元作为目标配置单元,更改目标配置单元对应的使用序列号,并利用目标配置单元保存数据请求所对应的请求描述信息和使用序列号,以使地第一服务器在接收到返回的应答消息时,根据应答消息中的使用序列号、内存地址和配置单元中保存的使用序列号、内存地址,确定应答消息对应的数据请求;将基于WebSocket协议的发送JSON格式的数据请求转码为二进制格式的请求消息,将目标配置单元的内存地址、使用序列号和二进制格式的请求消息进行封装,并通过传输控制协议(Transmission Control Protocol,TCP)链路(属于双向传输链路)将二进制格式的请求消息发送至第二服务器,以使第二服务器(信令调度服务主进程)接收该请求消息。

第二服务器(信令调度服务的主进程)通过TCP链路接收到二进制格式的请求消息后,将请求消息所对应的目标配置单元的内存地址和使用序列号确定为请求消息的请求消息索引;并确定请求消息的抽象描述信息(下文中将会详细说明)。该抽象描述信息包括请求消息的来源信息和请求消息的应答相关信息,该抽象描述信息被配置为在第二服务器接收到基于请求信息的SIP应答消息时,根据SIP应答消息转换的二进制格式的应答消息对对应的抽象描述信息进行修改,并基于修改后的抽象描述信息,向业务终端发送应答消息,以响应数据请求。该抽象描述信息可以看做是对请求消息的一个抽象描述。请求消息索引用于标识该请求消息,以在对应的请求消息发送出去后,接收对对应的应答消息时,通过请求消息索引找到对应的请求消息,并把该请求消息的应答消息返回给第一服务器。

第二服务器(信令调度服务的主进程)将二进制格式的请求消息转换为SIP协议格式的SIP请求消息,并通过SIP链路(属于双向传输链路)发送该SIP请求消息,以使得目标相机根据SIP请求消息进行响应。可以理解地,如图2所示,第二服务器与SIP下联平台设备1、......、SIP下联平台设备m之间的传输链路为SIP链路,传输消息是通过用户数据报协议(User Datagram Protocol,UDP)数据包来传输。

第二服务器(信令调度服务的主进程)接收到SIP应答消息后,将SIP应答消息转换为二进制格式的应答消息,并根据应答消息的应答消息索引(应答消息中的内存地址和使用序列号)来确定针对哪个请求消息回复的应答消息。其中,相匹配的应答消息索引和请求消息索引相同。应答消息中会携带应答消息的应答消息索引,该应答消息索引在返回对应的SIP应答消息时生成。根据应答消息和请求消息索引修改对应的抽象描述信息;根据抽象描述信息,确定对应的第一服务器,通过TCP链路向第一服务器发送对应的二进制格式的应答消息。

第一服务器接收二进制格式的应答消息,根据应答消息中的内存地址快速地从已使用配置列表中的已使用的配置单元中确定目标配置单元,并将应答消息中的使用序列号与目标配置单元的使用序列号进行匹配,若匹配成功,则将应答消息作为目标配置单元对应的数据请求的应答消息;将二进制格式的应答消息转换为JSON格式的文本消息,并根据目标配置单元中保存的请求描述信息通过WS链路向对应的业务终端发送该应答消息,以响应对应的业务请求。

从业务终端开始到第三方SIP下联平台设备的传输链路中,其他的由业务终端生成的数据请求也按照同样的方式进行传输。后文中会介绍该传输链路中更为详细的部分。

下面将介绍从第三方SIP上联平台设备开始到第三方SIP下联平台设备的传输链路。

如图3所示,在第二服务器中,包括一个信令调度服务主进程和多个信令调度服务子进程。在信令调度服务子进程中,SIP下联平台设备(SIP下联平台设备1、......、SIP下联平台设备N)通过SIP链路接收第三方SIP上联平台设备发送的SIP协议格式的SIP请求,并将SIP请求转换为二进制格式的级联请求消息。通过管道传输链路,将级联请求消息发送至第二服务器的信令调度服务主进程中,信令调度服务主进程将级联请求消息从二进制格式转换为SIP请求,并通过SIP链路将SIP请求从信令调度服务主进程的SIP上联平台设备发送至对应的第三方SIP下联平台设备。当信令调度服务主进程中的SIP上联平台设备通过SIP链路接收到第三方SIP下联平台设备发送的SIP协议格式的SIP应答消息后,将SIP应答消息转换为二进制格式的应答消息,并通过管道传输链路将应答消息发送至信令调度服务子进程中。在信令调度服务子进程中,将二进制格式的应答消息转换为SIP协议格式的SIP应答消息,并通过SIP链路发送至第三方SIP上联平台设备。下文中还会详细介绍。

需要注意的是,本申请实施例中的业务终端的请求数据除了是JSON文本格式的请求之外,还可以是SIP格式的数据请求,对应的,业务终端为SIP客户端,本文中不介绍此种情况,但可以理解得,本申请实施例可以实现该种情况。

下面将结合上文中介绍的数据处理系统,来介绍本申请实施例提供的数据处理方法。

如图4所示,为本申请实施例提供的数据处理方法的流程示意图,该数据处理方法应用于第一服务器中。具体包括如下步骤。

101,接收来自于业务终端的数据请求,并确定数据请求所对应的请求描述信息,该数据请求用于请求目标相机的数据。

该数据请求由业务终端触发,例如,在业务终端的网页上显示有对应设备目录,设备目录中包括设备1、设备2、设备3等,基于对设备目录下的设备的选择操作确定目标设备(目标相机),如设备1,并生成对应的数据请求。通过WS链路,向第一服务器发送该数据请求。

该数据请求为基于互联网协议发送的数据请求。如此,利用互联网协议的业务终端,来访问利用国标协议如SIP协议进行通信的设备,如相机等,使得业务终端无需安装SIP客户端(安装SIP客户端之后需要通过SIP协议来进行通信),直接利用网页通过互联网协议等形式来请求相机的数据;实现互联网协议和国标协议之间的互通。且简化通讯方式,无需去理解复杂的国标协议,如若通过SIP客户端的方式进行通信,则需要理解复杂的国标协议,提高获取对应的利用国标协议进行通信的设备的数据的效率。

互联网协议以WebSocket协议为例进行说明。互联网协议优先选用WebSocket协议,至少包括如下原因:安卓系统、苹果系统等多种操作系统都支持WebSocket协议,因此,使用WebSocket协议可轻松实现跨平台;另外,由于WebSocket协议是长连接协议,在与目标相机进行数据流传输的过程中,避免随意断开导致数据流传输出现异常,可更好的实现传输链路的控制。

该数据请求可以是JSON格式的文本数据。可以理解地,网页上开发可使用JavaScript等开发语言开发,JavaScript等开发语言擅长处理JSON(JavaScript ObjectNotation,JS对象简谱)格式的文本数据,因此,数据请求中包括文本数据;同时,网页上使用文本数据,以方便用户来理解。需要注意的是,使用其他开发语言所对应的格式可能会存在不同,但实现原理相似,本申请实施例中以JSON格式的文本数据为例进行说明。

第一服务器接收来自于业务终端的数据请求,建立与业务终端之间的第一连接链路,将该第一连接链路作为数据请求所对应的请求描述信息,该第一连接链路为基于websocket协议建立的连接链路,建立的请求描述信息也可理解为WS句柄,通过WS句柄可确定与第一服务器连接的业务终端。

102,从预先设置的待使用配置列表中确定第一个配置单元作为目标配置单元,其中,所设置的每个配置单元所占用的内存地址保持不变。

预先在第一服务器中创建多个配置单元,配置单元为第一服务器的内存中用于存储的存储区域,每个配置单元所占用的内存地址保持不变,每个配置单元被配置为当有业务终端接入时,保存该业务终端的请求描述信息和配置单元的使用序列号,且在该业务终端断开连接时,更改配置单元的使用序列号,删除该配置单元中的请求描述信息。

创建的多个配置单元所占用的内存地址保持不变,即在内存中的位置不变。通过预先在内存中创建固定的多个配置单元,如此,当有业务终端接入时,即接收到数据请求时,不必再重新创建对应的用于保存请求描述信息的配置单元/信息表,直接使用预先创建的配置单元。节省了第一服务器在接收到数据请求时,创建对应的用于保存请求描述信息的配置单元/信息表的时间和资源,提高了第一服务器的响应速度,尤其是在第一服务器同时接收到的数据请求的数量比较大时,提高第一服务器的并发响应速度。

在第一服务器中,对应有三个列表:待使用配置列表、已使用配置列表、总配置列表,待使用配置列表和已使用配置列表相加即为总配置列表。可以理解地,待使用配置列表中的所有配置单元都是未使用的状态;已使用配置列表中的所有配置单元都是已使用的状态,即当前对应有业务终端连接,一个配置单元对应一个业务终端连接。需要注意的是,无论是待使用配置列表还是已使用配置列表中的每个配置单元所占用的内存地址都保存不变,可理解为,配置单元在内存中以常驻的形式存在。

在配置列表初始化时,没有业务终端连接第一服务器,默认所有创建的配置单元都在待使用配置列表中,已使用配置列表为空。

如图5a所示,为配置列表初始化时的示意图。此时,已使用配置列表为空,待使用配置列表中包括配置单元1、配置单元2、......、配置单元N。

当接收到数据请求时,从待使用配置列表中确定第一个配置单元,作为目标配置单元。如将待使用配置列表中的第一个配置单元,即配置单元1作为目标配置单元。直接获取待使用配置列表中的第一个配置单元作为目标配置单元,一方面,可以快速定位出目标配置单元,不必从内存中查找对应的目标配置单元;另一方面,可以按照配置单元的内存地址顺序对待使用配置列表中的配置单元进行分配和管理,提高分配和管理效率。可以理解地,任一时刻,待使用配置列表中的每个未使用的配置单元和已使用配置列表中的每个已使用的配置单元都是按照内存地址的顺序来进行排序的。

103,更改目标配置单元对应的使用序列号,并利用目标配置单元保存数据请求所对应的请求描述信息和使用序列号。

如图5b所示,为配置单元中保存的数据的简易示意图。每个配置单元用于保存当前接收到的数据请求所对应的WS句柄和配置单元的使用序列号。

其中,使用序列号是针对所有配置单元的,使用序列号是唯一的,可用正整数来表示。当配置列表初始化时,配置单元的使用序列号为0。当有业务终端通过WS链路连接上第一服务器时,确定目标配置单元后,更改目标配置单元所对应的使用序列号,其中,更改也可以理解为增加等,如将使用序列号加一。可以理解地,当有业务终端连接上第一服务器后更改对应配置单元的使用序列号,下文中还会提到当有业务终端断开与第一服务器的连接后,也会更改对应配置单元的使用序列号。

确定目标配置单元后,利用目标配置单元保存数据请求所对应的请求描述信息和使用序列号,如图5b所示。

在一情况下,利用目标配置单元保存数据请求所对应的请求描述信息和使用序列号之后,还包括:将目标配置单元加入至已使用配置列表中,表示对应有业务终端连接第一服务器,通过该目标配置单元中的WS句柄即可确定与第一服务器连接的业务终端。

如图5c所示,为本申请实施例提供的配置列表的示意图。从图5c中可看出,当前总配置列表不变,已使用配置列表中包括配置单元1、配置单元2、待使用配置列表包括配置单元3、配置单元4、......配置单元N。需要注意的是,上文中已提到,每个配置单元所对应的内存地址不变,从图5c也可以看出,虽然已使用配置列表和待使用配置列表都发出变化,然而对应的配置单元还是同一个配置单元,所对应的内存地址保持不变。

104,将数据请求进行转码,以得到二进制格式的请求消息。

将基于WebSocket协议的发送JSON格式的数据请求转码为二进制格式的请求消息。需要注意的是,数据请求中还包括请求标识,通过该请求标识可确定对应哪个请求,将数据请求转换为二进制格式的请求消息时,二进制格式的请求消息中也包括请求标识。将数据请求转换为二进制格式的请求消息,以使第二服务器接收到的请求消息都是二进制格式的,方便第二服务器进行统一处理。

105,将目标配置单元的内存地址、使用序列号和请求消息进行封装,并发送封装后的请求消息,以使目标相机对请求消息进行响应。

将目标配置单元的内存地址、使用序列号和二进制格式的请求消息一起封装,以得到封装后的请求消息。

如图5d所示,为本申请实施例提供的待封装的请求消息结构体的示意图,当前已使用配置列表中包括配置单元1、配置单元2、配置单元3、配置单元4,对应的配置单元的内存地址分别为0x10000000、0x10000001、0x10000010、0x10000011。待封装的结构体包括目标配置单元的内存地址、使用序列号和二进制格式的请求消息,即封装如图5d下部分所示的结构体,以得到封装后的请求消息。封装后的请求消息中包括目标配置单元的内存地址、使用序列号,还包括将数据请求进行转码得到的二进制格式的请求消息。

如图5e所示,为本申请实施例提供的封装后的请求消息的示意图。配置单元1所对应的内存地址为0x10000000、使用序列号为1;配置单元2所对应的内存地址为0x10000001、使用序列号为2;配置单元3所对应的内存地址为0x10000010、使用序列号为3;配置单元4所对应的内存地址为0x10000011、使用序列号为4。可以看出,每个配置单元的使用序列号都不一样,每个配置单元所对应的内存地址也不相同。

将封装后的请求消息通过TCP链路发送至第二服务器(信令调度服务主进程),以使地第二服务器将内存地址和使用序列号作为请求消息的请求消息索引,并确定请求消息的抽象描述信息,将请求消息的请求消息索引和抽象描述信息作为key-value值进行保存,并将请求消息发送至目标相机,使得目标相机对请求消息进行响应,并在第二服务器接收到目标相机返回的SIP应答消息后,将SIP应答消息转换为二进制格式的应答消息,并根据应答消息中的内存地址和使用序列号来确定对应的抽象描述信息;并确定与应答消息的应答消息索引匹配的请求消息;将应答消息和请求消息的请求消息索引进行封装,以得到封装后的应答消息;根据请求消息的抽象描述信息向第一服务器发送封装后的应答消息。

106,当接收到响应请求消息返回的应答消息时,根据应答消息中的使用序列号、内存地址和配置单元中保存的使用序列号、内存地址,确定应答消息对应的数据请求。

第一服务器接收响应请求消息返回的应答消息,该应答消息中包括配置单元的内存地址、使用序列号和二进制格式的应答消息。

在一实施例中,在接收基于请求消息返回的应答消息的过程中,还包括:当检测到业务终端断开与第一服务器的第一连接链路时,更改目标配置单元中的使用序列号;删除目标配置单元中的请求描述信息(此处的删除仅是删除,与销毁不同,具体请参看下文中的描述);将目标配置单元加入至待使用配置列表中。该处直接体现出配置单元中的使用序列号的作用。当业务终端在线时,使用序列号假设是7,同样返回的应答消息中,使用序列号也为7,而配置单元的内存地址相同,因此,通过使用序列号和内存地址即可确定对应的是哪个业务终端所发出的数据请求。在上文中提到,本申请实施例中的业务终端与第一服务器的连接链路为WS链路,为长连接链路。但会存在异常情况,如业务终端掉线的情况,例如业务终端所对应的用户关闭了对应的网页等,按照本申请实施例中的方案,当检测到业务终端断开与第一服务器的第一连接链路时,更改目标配置单元的使用序列号。如此,第一服务器中的该目标配置单元的使用序列号变更为8,与接收到的应答消息的使用序列号不同。

在一情况下,根据应答消息中的使用序列号、内存地址和配置单元中保存的使用序列号、内存地址,确定应答消息对应的数据请求的步骤,包括:将应答消息中的使用序列号、内存地址和已使用配置列表中的配置单元的使用序列号、内存地址进行匹配;若匹配成功,则将匹配成功的目标配置单元对应的数据请求作为应答消息对应的数据请求;并执行步骤107;若匹配不成功,则丢弃应答消息。若匹配成功,则意味着该应答消息即为对应的请求消息所对应的应答消息,若匹配不成功,则意味着当前该应答消息不存在对应的请求消息,因此将该应答消息丢弃。

本申请实施例中通过配置单元的内存地址和使用序列号来确定数据请求与应答消息之间的映射关系,以实现响应数据请求;且可以理解地,每个配置单元中只需保存WS句柄和使用序列号,假设WS句柄(用字符串来表示)和使用序列号分别占用两个字节,那么一个配置单元占用4个字节,即使得对应的映射关系占用的空间教小,如此,第一服务器可以保存很多个配置单元,可以轻松处理百万级仍至千万级的并发数据请求。即一方面可以实现数据请求与应答消息之间的映射关系,另一方面,实现数据请求与应答消息之间的映射关系时,可以使用较少的存储空间即可实现,如对于一个数据请求来说,只需占用4个字节而已;此外,根据预先设置的配置单元可以实现高并发。

107,根据数据请求的请求描述信息向业务终端发送应答消息,以响应数据请求。

若匹配成功,将二进制格式的应答消息转换为JSON格式的文本消息,并发送至业务终端,使得业务终端显示对应的文本消息,并不是显示对应的SIP消息(SIP消息需要对应的SIP专业知识才可以看懂),如此,提高理解效率。

具体地,根据数据请求的请求描述信息向业务终端发送应答消息,因为数据请求的请求描述信息中包括WS句柄,因此,通过WS句柄就可确定数据请求来自于哪个业务终端,通过应答消息中的请求标识即可确定是该业务终端中的哪个数据请求,如此,以响应数据请求。

在一实施例中,若该数据请求的所有应答消息都已经接收到,如通过第二服务器告知第一服务器,该请求消息的消息结束标记已经设置为预设结束标记,其中,消息结束标记用于当接收到请求消息的应答消息后,确定应答消息是否为请求消息的最后一个应答消息,若是,则删除该请求消息所对应的目标配置单元中的请求抽象消息和使用序列号;将该目标配置单元加入至待使用配置列表中。如此,结束业务终端的该数据请求的响应。需要注意的是,此处是删除该请求消息所对应的目标配置单元中的请求抽象消息和使用序列号,而不是销毁该目标配置单元。可以理解地,若每次结束业务终端的数据请求的响应时,都将对应的配置单元/信息表进行销毁,则会增加第一服务器的处理资源,则降低对数据请求的响应速度,尤其是降低了第一服务器的并发响应速度。

在一实施例中,由于预先创建的多个配置单元的数量有限,例如,配置单元的数量为1万,当同时并发接收到1万的数据请求时,该配置单元将会全部使用完毕,此时,待使用配置列表为空。如图5f所示,已使用配置列表中包括配置单元1、配置单元2、......、配置单元N;待使用配置列表为空。此时,当接收到新的数据请求时,在从预先创建的待使用配置列表中确定第一个未使用的配置单元作为目标配置单元的步骤之前,所述数据处理方法还包括:确定待使用配置列表是否为空;当待使用配置列表为空时,根据配置单元所占用的存储区域大小创建预设数量的新的配置单元;并从新的配置单元中确定第一个配置单元作为目标配置单元;将未使用的新的配置单元加入至待使用配置列表中。

其中,假设一个配置单元所占用的存储区域大小为4字节,则根据配置单元所占用的存储区域大小创建预设数量的新的配置单元。其中,预设数量可以是任意大于1的正整数的数量。或者在一实施例中,获取第一服务器中剩余可用内存大小,根据剩余可用内存大小和配置单元所占用的存储区域大小创建预设数量的新的配置单元。

从新的配置单元中确定第一个配置单元作为目标配置单元,将未使用的新的配置单元加入至待使用配置列表中。

如图5g所述,为本申请实施例新增配置单元之后的总配置列表的示意图。图5g中,已使用配置列表中包括配置单元1、配置单元2、......、配置单元N,新的配置单元1;待使用配置列表中包括新的配置单元2、新的配置单元3、......、新的配置单元n。

在一实施例中,新的配置单元的预设数量可根据历史数据来进行确定。例如,获取同一时期往年所需的最大配置单元的数量来确定,将最大配置单元的数量减去初始化时对应的配置单元的数量即为新的配置单元的数量。

在一实施例中,当新增了太多的配置单元后,发现第一服务器无需这么多的配置单元,则可将一部分的配置单元进行集中一次性销毁,以节约第一服务器的存储资源。如将创建时间离当前时间最近/最远的配置单元进行销毁。其中,销毁的数量可根据历史数据来进行确定。

上述方法实施例在第一服务器接收到来自于业务终端的数据请求时,从预先设置的待使用配置列表中确定第一个未使用的配置单元作为目标配置单元,其中,配置单元为第一服务器的内存中用于存储的存储区域,配置单元的内存地址保存不变,通过目标配置单元来保存数据请求所对应的请求描述信息和配置单元的使用序列号,如此,通过预先设置多个配置单元,当接收到数据请求时,确定第一个未使用的目标配置单元来保存数据请求所对应的相关信息,不必在接收到数据请求时,临时创建新的配置单元,提高第一服务器的响应速度,尤其是在第一服务器并发数量较高时,快速地提高了第一服务器的响应速度;另外,当接收到来自于业务终端的数据请求时,确定数据请求所对应的请求描述信息,并利用目标配置单元来保存数据请求所对应的请求描述信息和配置单元的使用序列号,将目标配置单元的内存地址、使用序列号来对转码后的二进制格式的请求消息进行封装,并发送封装后的请求消息,以使得目标相机对请求消息进行响应,如此,以使得当接收到返回的应答消息时,可通过应答消息中的使用序列号、内存地址和配置单元中保存的使用序列号、内存地址来确定应答消息对应的数据请求,并根据数据请求对应的请求描述信息,向对应的业务终端发送应答消息,以实现响应该数据请求;此外,对于一个据请求来说,只需要利用目标配置单元来保存数据请求所对应的请求描述信息和使用序列号即可,通过上文中的描述,如可通过4个字节即可,使得每个数据请求所需要保存的数据量很少,降低了存储空间的使用,便于维护。即本申请实施例一方面实现了确定数据请求与应答消息之间的映射关系,以实现响应数据请求;另一方面,实现数据请求与应答消息之间的映射关系时,可以使用较少的存储空间即可实现,如对于一个数据请求来说,只需占用4个字节而已,降低了存储空间的使用,便于维护;而且,根据预先设置的配置单元提高服务器的并发响应速度;此外,将接收到的数据请求进行转码,以得到二进制格式的请求消息,使得第一服务器统一对二进制格式的请求消息进行封装处理,提高了兼容性。

需要注意的是,上述第一服务器是在数据处理系统中新增的服务器,以使得第一服务器和第二服务器都各司其职,降低业务的耦合性。

图6是本申请实施例提供的数据处理方法的流程示意图,该数据处理方法应用于第二服务器中。具体包括如下步骤。

201,接收第一服务器发送的请求消息,该请求消息是将来自于业务终端的数据请求进行封装后得到的,该请求消息为二进制格式的消息,该数据请求用于请求目标相机的数据。

具体地,请求消息是如何得到的,请参看上文中的第一服务器对应的描述。具体地,第二服务器(信令调度服务主进程)接收第一服务器发送的请求消息。

202,将请求消息中的内存地址和使用序列号,作为请求消息的请求消息索引。

203,确定请求消息的抽象描述信息,该抽象描述信息包括请求消息的来源信息和请求消息的应答相关信息。

第二服务器(信令调度服务主进程)生成请求消息的抽象描述信息。其中,抽象描述信息包括连接句柄、消息结束标记、超时事件和请求消息的请求标识。连接句柄表示第一服务器与第二服务器之间的第二连接链路,消息结束标记用于当接收到请求消息的应答消息后,确定应答消息是否为请求消息的最后一个应答消息,超时事件用于确定请求消息的应答是否超时,请求消息的请求标识与数据请求的请求标识一致(相同),都由业务终端生成,且每个请求标识都是唯一的,数据请求的请求标识携带于数据请求中,将数据请求转换为二进制格式的请求消息后,二进制格式的请求消息中同样也携带有请求标识,可获取二进制格式的请求消息中的请求标识。

可以理解地,当第二服务器(信令调度服务主进程)将接收到的SIP应答消息转换为对应的二进制格式的应答消息后,需要确定要通过哪个第一服务器来转发和处理该应答消息,因此,设置了连接句柄,通过连接句柄即可知道要将应答消息发送至哪个第一服务器。同时还需要知道请求消息的请求标识,以确定该应答消息是针对哪个数据请求的应答。消息结束标记用于确定该次数据请求是否可结束。对于超时事件,可以理解地,级联设备之间通过SIP协议进行传输,会存在对方下联平台设备掉线的情况,那么会导致该条请求消息永远得不到应答,从而导致该请求消息所对应的请求消息索引和抽象描述信息一直都在,多个请求消息索引和抽象描述信息最终导致内存泄露,因此设置超时事件,在预设时间内未收到应答,确定超时,从而进行其他处理,以避免造成内存泄露。

其中,将连接句柄和请求消息的请求标识,作为请求消息的来源信息,将消息结束标记和超时事件作为请求消息的应答相关信息。

在该种情况下,确定请求消息的抽象描述信息的步骤,包括:根据请求消息建立第二服务器与第一服务器之间的第一连接链路,将第一连接链路作为请求消息的连接句柄;设置目标相机的消息结束标记和请求消息对应的超时事件,并对消息结束标记和超时事件进行初始化;将连接句柄、请求消息中的请求标识、消息结束标记和超时事件作为请求消息的抽象描述信息。其中,对消息结束标记和超时事件进行初始化,可理解为将消息结束标记设置为一个初始值,启动超时事件以记录时间等。其中,记录时间的时刻可以是发送请求消息的时刻,也可以是发送请求消息一段时间之后再开始记录对应的时间。

在一实施例中,请求消息的抽象描述信息中还包括状态码。其中,状态码指的是现有的SIP响应状态码。例如,状态码404,表示未发现对应的目标相机/目标相机不存在;状态码200表示目标相机在线;状态码408表示请求超时等。其中,将状态码设置在第二服务器中,一方面,是可以实现将状态码跟超时事件进行结合,例如,若超时事件记录的时间超时,则将对应的状态码直接更新为超时所对应的状态码;另一方面,第一服务器端接收到该应答消息后,解析得到应答消息中目标相机返回的状态码,将状态码所对应的原因通过二进制格式返回至第一服务器中,第一服务器通过文本方式返回,以使得业务终端了解此次数据请求的情况,且通过文本方式,以避免返回对应的状态码,需要技术人员查询国标协议才能理解,提高目标相机状态的理解效率。

当请求消息的抽象描述信息中还包括状态码时,对应地,生成请求消息的抽象描述信息的步骤,还包括:设置请求消息对应的状态码并对状态码进行初始化。如将状态码设置为一个初始值。对应地,将消息结束标记、状态码和超时事件作为请求消息的应答相关信息。

上述得到请求消息的请求消息索引和抽象描述信息后,将请求消息的请求消息索引作为请求消息的key值,将请求消息的抽象描述信息作为请求消息的value值,以key-value的方式保存该请求消息对应的请求标识和请求描述信息。其中,请求标识用Session-uid表示。

如图7a所示,在第二服务器(信令调度服务主进程)中,保存每个请求消息对应的请求消息索引和抽象描述信息,例如,请求消息1所对应的请求消息索引为请求消息索引1(配置单元1的内存地址1、使用序列号1),抽象描述信息为连接句柄1、Session-uid1、消息结束标记、超时事件;请求消息2所对应的请求消息索引为请求消息索引2(配置单元2的内存地址2、使用序列号2),抽象描述信息为连接句柄2、Session-uid2、消息结束标记、超时事件;请求消息3所对应的请求消息索引为请求消息索引3(配置单元3的内存地址3、使用序列号3),抽象描述信息为连接句柄2、Session-uid3、消息结束标记、超时事件;请求消息4所对应的请求消息索引为请求消息索引4(配置单元4的内存地址4、使用序列号4),抽象描述信息为连接句柄3、Session-uid4、消息结束标记、超时事件......。其中,每个请求消息所对应的key值都不同,表示每个数据请求所对应的请求消息索引不同;请求消息2和请求消息3所对应的连接句柄相同,意味着请求消息2和请求消息3来自于同一个第一服务器。

可以理解地,通过key值(即请求消息的请求标识索引,也即请求消息所对应的配置单元的内存地址和配置单元的使用序列号)来建立第二服务器中的请求消息和应答消息的映射关系。

204,将请求消息转换为SIP协议格式的SIP请求消息,并发送SIP请求消息,以使得目标相机根据SIP请求消息进行响应。

205,当第二服务器接收到目标相机返回的SIP应答消息时,将SIP应答消息转换为二进制格式的应答消息。

当第二服务器的信令调度服务主进程接收到SIP应答消息后,将SIP应答消息转换为二进制格式的应答消息,并根据应答消息的应答消息索引来确定针对哪个请求消息回复的应答消息。

206,确定与应答消息的应答消息索引匹配的请求消息。

其中,应答消息中携带会应答消息的应答消息索引。在一些情况下,由于相匹配的应答消息索引和请求消息索引生成的规则完全相同,因此,应答消息索引与请求消息索引相同;或者可简单理解为应答消息索引,即为请求消息索引。通过应答消息索引确定请求消息索引,通过请求消息索引来确定对应的请求消息,将该对应的请求消息确定为匹配的请求消息。

在一实施例中,在确定与应答消息的应答消息索引匹配的请求消息的步骤之后,还包括:根据应答消息修改请求消息的抽象描述信息。

其中,根据应答消息的应答消息索引确定匹配的请求消息,并根据应答消息确定所匹配的请求消息的抽象描述信息。

在一种情况下,根据应答消息修改请求消息的抽象描述信息的步骤,包括:根据应答消息的应答消息索引确定所匹配的请求消息的抽象描述信息;确定接收到目标相机返回的应答消息的接收次数;当接收次数小于应答消息中的总次数时,将抽象描述信息中的消息结束标记的值设置为接收次数,并重置抽象描述信息中的超时事件;当接收次数等于应答消息中的总次数时,将消息结束标记设置为预设结束标记。该种情况可适用于历史记录查询的情况。可以理解地,历史记录通常很多,而通过上文中的描述可知,SIP传输链路是通过UDP数据包来传输,UDP数据包是无序的,会出现收到的UDP数据包的顺序与发出去的UDP数据包的顺序不一致的情况。因此,当接收到目标相机返回的应答消息时,统计接收到目标相机返回的应答消息的接收次数,当接收次数小于应答消息中的总次数时,将该接收次数作为消息结束标记的值,并重置超时事件,如将超时事件的时间置为从0开始等,以免出现误判超时的情况;当接收次数等于应答消息中的总次数时,将消息结束标记设置为预设结束标记。可以理解地,需要在应答消息全部接收完毕后才将消息结束标记设置为预设结束标记。

在一情况下,根据应答消息修改请求消息的抽象描述信息的步骤,包括:根据应答消息的应答消息索引确定所匹配的请求消息的抽象描述信息;解析应答消息,以确定应答消息中的目标状态码;根据目标状态码来更新对应的抽象描述信息中的状态码,并重置抽象描述信息中的超时事件。该种情况下可适用于当应答消息中包括状态码的情况。解析应答消息中的状态码,将该状态码作为目标状态码,以更新对应的抽象描述信息中的状态码。同时,确定目标状态码对应的原因(文本形式);将对应的原因转换为二进制格式,以发送至第一服务器,使得最后在业务终端上显示该原因,以实现不同的文本提示。相对于SIP客户端来说,只返回对应的目标状态码难以理解,该种方式提高了对目标相机的相机状态的理解,即简化通讯方式,不用去理解复杂的国标协议,直接通过文本的方式告诉业务终端当前目标相机的情况。

207,将应答消息和请求消息的请求消息索引进行封装,以得到封装后的应答消息。

需要注意的是,该处封装的是请求消息的请求消息索引(配置单元的内存地址和使用序列号)是因为第一服务器中保存的是配置单元的内存地址和使用序列号,第一服务器需要通过配置单元的内存地址和使用序列号来确定对应于哪个数据请求。将二进制格式的应答消息和配置单元的内存地址和使用序列号进行封装,以得到封装后的应答消息。

如图7b所示,为本申请实施例提供的待封装的应答消息结构体的示意图。待封装的应答消息结构体包括配置单元的内存地址1、使用序列号1和二进制格式的应答消息。如配置单元1的内存地址2、使用序列号2和二进制格式的应答消息;配置单元2的内存地址3、使用序列号3和二进制格式的应答消息;配置单元4的内存地址4、使用序列号4和二进制格式的应答消息等。封装后的应答消息中包括配置单元的内存地址、使用序列号,还包括将SIP应答消息进行转码得到的二进制格式的应答消息。需要注意的是,每个二进制格式的应答消息都不相同。

208,根据请求消息的抽象描述信息向第一服务器发送封装后的应答消息,以使得第一服务器响应数据请求。

其中,步骤208,包括:根据抽象描述信息中的连接句柄,确定目标第一服务器;向目标第一服务器发送封装后的应答消息,以使得目标第一服务器接收到应答消息后,将应答消息发送至业务终端,以响应数据请求。其中,目标第一服务器接收到应答消息后,根据应答消息中的配置单元的内存地址和使用序列号,确定对应的WS句柄,通过WS句柄将应答消息发送至对应的业务终端,并根据请求标识,确定业务终端的哪个数据请求,以响应该数据请求。

上述实施例中,对应的请求消息的key-value值在超时事件超时或者消息结束标记为预设结束标记时,将会进行删除。具体地,通过协议栈的方式来进行删除,在此不做详细说明。

本申请实施例一方面通过key值(即请求消息的请求标识索引,也即请求消息所对应的配置单元的内存地址和配置单元的使用序列号)来建立第二服务器中的请求消息和应答消息的映射关系;而且,通过第一服务器和第二服务器、抽象描述信息等的设计,提供一种全新的实现思路,实现业务终端无需安装SIP客户端,直接通过互联网协议提供的网页等形式来请求目标相机的数据;实现互联网协议和国标协议(SIP协议)之间的互通;且简化通讯方式,无需去理解复杂的国标协议,如若通过SIP客户端的方式进行通信,则需要理解复杂的国标协议,提高获取目标相机设备的数据的效率;也可实现跨平台。

图8是本申请实施例提供的数据处理方法的流程示意图,该数据处理方法应用于第二服务器中。具体包括如下步骤。

301,第二服务器中的信令调度服务子进程接收来自于上联平台设备的SIP请求,并将SIP请求转换为二进制格式的级联请求消息。

302,将级联请求消息发送至第二服务器中的信令调度服务主进程。

303,信令调度服务主进程将级联请求消息从二进制格式转换为SIP请求,并将SIP请求从当前级联平台设备发送至下联平台设备。

其中,当前级联平台设备指的是图1、图3中的第二服务器中的SIP上联平台设备,下联平台设备指的是当前级联平台设备的下级平台设备,上联平台设备指的是当前级联平台设备的上级平台设备。可以理解地,通过第二服务器实现将SIP请求进行转发。

第二服务器的信令调度服务子进程将SIP请求转换为二进制格式的级联请求消息,第二服务器的信令调度服务主进程将二进制的级联请求消息转换为SIP请求。中间将SIP请求转换为二进制格式的目的是因为信令调度服务主进程和信令调度服务子进程之间需要通过二进制格式的数据进行通信,而不能直接通过SIP协议来进行通信;另一方面,从业务终端开始的那条传输链路中,第二服务器接收到的也是二进制格式的请求消息,因此,在从第三方SIP上联平台设备开始的传输链路中,将SIP请求转换为二进制格式的级联请求消息,使得第二服务器统一处理二进制格式的请求消息。即对于第二服务器的信令调度服务主进程来说,压根就无需知道是管道传递的还是网页传递的请求消息,因为对信令调度服务的主进程来说,都是二进制格式的请求消息而已。如此设计,保证了业务的独立性,实现了低耦合的设计。

需要注意的是,将信令调度服务分为信令调度服务主进程和信令调度服务子进程的理由至少如下:(1)若将信令调度服务主进程和信令调度服务子进程中实现的功能放在一个进程中实现的话,那么其中的某一个SIP设备,如某一个SIP上联平台设备损坏/不可用/被攻击时,会导致该进程中的所有相关的功能都不可用/无法实现;而如果采用信令调度服务子进程和信令调度服务主进程的方式,当其中一个信令调度服务子进程实现的功能不可用时,其他信令调度服务子进程的功能实现不受影响,提高了安全性。(2)若将信令调度服务主进程和信令调度服务子进程中实现的功能放在一个进程中实现的话,代码混杂,对应实现的功能不独立,耦合性较高,不容易对代码进行扩展。

需要注意的是,从第三方SIP上联平台设备开始的传输链路中,由于一个SIP下联平台设备对应一个唯一的SIP上联平台设备,也就是实现的是1对1的消息传递,因此接收的应答消息肯定是唯一的SIP上联平台设备请求的。因此,无需向另外一条传输链路一样需要保存请求消息的key-value值,即在从第三方SIP上联平台设备开始的传输链路中,无需保存请求消息的key-value值。

根据上述实施例所描述的方法,本实施例将从数据处理装置的角度进一步进行描述,该数据处理装置具体可以作为独立的实体来实现,也可以集成在第一服务器或者第二服务器中来实现。

如图9所示,是本申请实施例提供的数据处理装置的结构示意图,该数据处理装置,应用于第一服务器中,该数据处理装置包括第一接收模块401、配置确定模块402、保存模块403、第一转换模块404、第一封装模块405、第一发送模块406以及请求确定模块407。

第一接收模块401,用于接收来自于业务终端的数据请求,并确定该数据请求所对应的请求描述信息,该数据请求用于请求目标相机的数据。

配置确定模块402,用于从预先设置的待使用配置列表中确定第一个配置单元作为目标配置单元,其中,所设置的每个配置单元所占用的内存地址保持不变。

保存模块403,用于更改目标配置单元对应的使用序列号,并利用目标配置单元保存数据请求所对应的请求描述信息和使用序列号。

第一转换模块404,用于将数据请求进行转码,以得到二进制格式的请求消息。

第一封装模块405,用于将目标配置单元的内存地址、使用序列号和请求消息进行封装。

第一发送模块406,用于发送封装后的请求消息,以使目标相机对请求消息进行响应。

请求确定模块407,用于当接收到响应请求消息返回的应答消息时,根据应答消息中的使用序列号、内存地址和配置单元中保存的使用序列号、内存地址,确定应答消息对应的数据请求。

在一情况下,请求确定模块407,具体用于将应答消息中的使用序列号、内存地址和已使用配置列表中的配置单元的使用序列号、内存地址进行匹配;若匹配成功,则将匹配成功的目标配置单元对应的数据请求作为应答消息对应的数据请求;并触发第一发送模块406;若匹配不成功,则丢弃应答消息。

第一发送模块406,还用于根据数据请求的请求描述信息向业务终端发送应答消息,以响应数据请求。

在一实施例中,数据处理装置还包括加入模块。加入模块,用于在利用目标配置单元保存数据请求所对应的请求描述信息和使用序列号之后,将目标配置单元加入至已使用配置列表中。

在一实施例中,数据处理装置还包括断开模块。断开模块,用于在接收基于请求消息返回的应答消息的过程中,当检测到业务终端断开与第一服务器的第一连接链路时,更改目标配置单元中的使用序列号;删除目标配置单元中的请求描述信息;将目标配置单元加入至待使用配置列表中。

在一实施例中,数据处理装置还包括新增模块。新增模块,用于确定待使用配置列表是否为空;当待使用配置列表为空时,根据配置单元所占用的存储区域大小创建预设数量的新的配置单元;并从新的配置单元中确定第一个配置单元作为目标配置单元;将未使用的新的配置单元加入至待使用配置列表中。

在一实施例中,数据处理装置还包括销毁模块。销毁模块,用于当第一服务器无需这么多的配置单元时,则可将一部分的配置单元进行集中一次性销毁。

如图10所示,是本申请实施例提供的数据处理装置的另一结构示意图,该数据处理装置,应用于第二服务器中,该数据处理装置包括第二接收模块501、索引确定模块502、抽象确定模块503、第二转换模块504、第二发送模块505以及第二封装模块506。

第二接收模块501,用于接收第一服务器发送的请求消息,该请求消息是将来自于业务终端的数据请求进行封装后得到的,该请求消息为二进制格式的消息,该数据请求用于请求目标相机的数据。

索引确定模块502,用于将请求消息中的内存地址和使用序列号,作为请求消息的请求消息索引。

抽象确定模块503,用于确定请求消息的抽象描述信息,抽象描述信息包括请求消息的来源信息。

第二转换模块504,用于将请求消息转换为SIP协议格式的SIP请求消息。

第二发送模块505,用于发送SIP请求消息,以使得目标相机根据SIP请求消息进行响应。

第二转换模块504,还用于当第二服务器接收到目标相机返回的SIP应答消息时,将SIP应答消息转换为二进制格式的应答消息。

第二封装模块506,用于确定与应答消息的应答消息索引匹配的请求消息,并将应答消息和请求消息的请求消息索引进行封装,以得到封装后的应答消息。

第二发送模块505,还用于根据请求消息的抽象描述信息向第一服务器发送封装后的应答消息,以使得第一服务器响应数据请求。

具体实施时,以上各个模块/单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现。以上装置和各模块/单元的具体实现过程,以及所达到的有益效果,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

本申请实施例还提供一种第一服务器,如图11所示,其示出了本申请实施例所涉及的第一服务器的结构示意图。具体来讲:

该第一服务器可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、射频(Radio Frequency,RF)电路903、电源904、输入单元905、以及显示单元906等部件。本领域技术人员可以理解,图中示出的第一服务器结构并不构成对第一服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器901是该第一服务器的控制中心,其中,处理器利用各种接口和线路连接整个第一服务器的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行第一服务器的各种功能和处理数据,从而对第一服务器进行整体监控。可选的,处理器可包括一个或多个处理核心;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地是,上述调制解调处理器也可以不集成到处理器中。

存储器902可用于存储软件程序(计算机程序)以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据第一服务器的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。

RF电路903可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器901处理;另外,将涉及上行的数据发送给基站。通常,RF电路903包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路903还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。

第一服务器还包括给各个部件供电的电源904(比如电池),优选的,电源904可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源904还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该第一服务器还可包括输入单元905,该输入单元905可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体地实施例中,输入单元905可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器901,并能接收处理器901发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元905还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

该第一服务器还可包括显示单元906,该显示单元906可用于显示由用户输入的信息或提供给用户的信息以及第一服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元906可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器901以确定触摸事件的类型,随后处理器901根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。

尽管未示出,第一服务器还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,第一服务器和第二服务器中的处理器901会按照如下的指令,将一个或一个以上的应用程序(计算机程序)的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:

接收来自于业务终端的数据请求,并确定所述数据请求所对应的请求描述信息,所述数据请求用于请求目标相机的数据;从预先设置的待使用配置列表中确定第一个配置单元作为目标配置单元,其中,所设置的每个配置单元所占用的内存地址保持不变;更改所述目标配置单元对应的使用序列号,并利用所述目标配置单元保存所述数据请求所对应的请求描述信息和所述使用序列号;将所述数据请求进行转码,以得到二进制格式的请求消息;将所述目标配置单元的内存地址、所述使用序列号和所述请求消息进行封装,并发送封装后的请求消息,以使所述目标相机对所述请求消息进行响应;当接收到响应请求消息返回的应答消息时,根据所述应答消息中的使用序列号、内存地址和所述配置单元中保存的使用序列号、内存地址,确定所述应答消息对应的数据请求;根据所述数据请求的请求描述信息向所述业务终端发送所述应答消息,以响应所述数据请求。

该第一服务器可以实现本申请实施例所提供的应用于第一服务器中的数据处理方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的应用于第一服务器中的任一数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

同理,本申请还提供了第二服务器,其中,第二服务器的结构可参看上述第一服务器的结构,在此不再赘述。其中,第二服务器可以实现本申请实施例所提供的应用于第二服务器中的数据处理方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的应用于第二服务器中的任一数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令(计算机程序)来完成,或通过指令(计算机程序)控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的应用于第一服务器中的数据处理方法中任一实施例的步骤;或者执行本发明实施例所提供的应用于第二服务器中的数据处理方法中任一实施例的步骤。

其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该存储介质中所存储的指令,可以执行本发明实施例所提供的应用于第一服务器/第二服务器中的任一数据处理方法实施例中的步骤,因此,可以实现本发明实施例所提供的应用于第一服务器/第二服务器中的任一数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种数据处理方法、装置、系统、第一服务器、第二服务器以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 图像数据处理方法、用于图像数据处理方法的程序、记录有用于图像数据处理方法的程序的记录介质和图像数据处理装置
  • 药箱的数据处理方法、装置、数据处理方法和装置
技术分类

06120112935310