一种发送数据的方法、数据服务器以及服务器
技术领域
本发明实施例涉及物流业的技术领域,尤其涉及一种发送数据的方法、数据服务器以及中间层服务器。
背景技术
随着物流业的快速发展,使得货物流转速度大大加快。集装箱码头作为全球物流运转的枢纽,对信息技术依赖度高,普遍利用了先进的动态实时码头操作系统(Terminal operation system,TOS),反映系统中箱信息,为码头计划和控制作业等提供最优方案。
TOS系统性能优化已成为港口建设的重要组成部分,性能优劣直接影响港口效率及竞争力的提升。现有的TOS系统,客户端直接通过中间层服务器访问数据库,使得数据库访问量过大,导致客户端的业务操作响应慢,严重制约了TOS系统的性能提升。随着港口业务的快速发展,需要处理的业务量也会越来越大,码头现有TOS系统性能已无法满足需求。
如图1所示,参考图1中,在现有的TOS系统中,多采用非缓存机制进行数据库访问,具体步骤如下:
1)、基于港口业务需要,客户端向中间层服务器发起相关业务请求;
2)、根据业务请求,判断业务类型(业务调用或者查询业务)。如果是业务调用,则执行如下步骤:
A、中间层服务器对数据库中对应的数据进行更新;
B、中间层服务器把更新后的业务对象数据发送到TOS系统的实时服务器;
C、实时服务器将更新后的业务对象数据分别发送各个客户终端。
否则,执行如下步骤:
A、中间层服务器将根据查询业务请求,从数据库中获取相关数据;
B、中间层服务器将获取的数据反馈给客户端。
在现有技术中,港口所有业务均通过中间层直接进行数据库访问,极大的增加了数据库的访问压力,提高了对港口服务器性能的要求,而且极易造成服务器崩溃;面对港口客户端大规模访问数据库时,磁盘I/O往往成为性能瓶颈,导致客户端的业务响应延迟过高,降低了客户端的效率。
发明内容
本发明实施例的目的在于提出一种发送数据的方法、数据服务器及中间层服务器,旨在解决减少对数据库的访问压力且提高客户端访问效率的问题。
为达此目的,本发明实施例采用以下技术方案:
第一方面,一种发送数据的方法,所述方法包括:
获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;
若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;
若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。
优选地,所述若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给中间层服务器,包括:
若确定所述业务请求为所述操作业务请求,则获取所述操作业务请求中包括的所述客户端的信息,所述客户端的信息包括所述客户端的身份标识信息以及待更新的表对象的信息;
将所述客户端的信息发送给所述中间层服务器。
第二方面,一种发送数据的方法,所述方法包括:
接收数据服务器发送的操作业务请求;
根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;
将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给客户端。
优选地,所述将所述业务数据发送给客户端,包括:
获取所述操作业务请求中携带的客户端的身份标识信息;
将所述业务数据发送给与所述身份标识信息对应的所述客户端。
优选地,所述方法还包括:
初始化所述数据服务器中存储的表对象和业务对象。
第三方面,一种数据服务器,所述数据服务器包括:
第一获取模块,用于获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;
第二获取模块,用于若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;
发送模块,用于若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。
优选地,所述发送模块,包括:
获取单元,用于若确定所述业务请求为所述操作业务请求,则获取所述操作业务请求中包括的所述客户端的信息,所述客户端的信息包括所述客户端的身份标识信息以及待更新的表对象的信息;
发送单元,用于将所述客户端的信息发送给所述中间层服务器。
第四方面,一种中间层服务器,所述中间层服务器包括:
接收模块,用于接收数据服务器发送的操作业务请求;
第一发送模块,用于根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;
第二发送模块,用于将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给客户端。
优选地,所述第二发送模块,用于:
获取单元,用于获取所述操作业务请求中携带的客户端的身份标识信息;
发送单元,用于将所述业务数据发送给与所述身份标识信息对应的所述客户端。
优选地,所述中间层服务器还包括:
初始化模块,用于初始化所述数据服务器中存储的表对象和业务对象。
本发明实施例通过获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。本发明不同于传统港口TOS操作系统,引入一种改进的内存数据缓存技术,该技术不同于传统缓存机制即数据发生变化导致缓存数据整个需要更新,而是针对港口客户端频繁操作的数据进行部分更新,速度更快;系统进行业务操作时,通过将缓存的数据对象化,使得数据集中的单个数据更新时,仅更新该单条数据,提高缓存的命中率,减轻业务操作对数据库的访问压力,特别是可以有效解决高频度访问模式业务系统的应用压力;同时,根据不同的业务应用场景可调整内存数据缓存策略,将内存数据分为2部分,表对象和业务对象,其中表对象的更新需要触发那类业务对象的更新,都是基于数据库中设置的缓存策略可配置的,提高缓存命中率,显著提高了客户端业务操作的响应速度。
附图说明
图1是现有技术提供的一种发送数据的系统架构图;
图2是本发明实施例发送数据的方法第一实施例的流程示意图;
图3是本发明实施例发送数据的方法第二实施例的流程示意图;
图4是本发明实施例发送数据的方法第三实施例的流程示意图;
图5是本发明实施例数据服务器的功能模块示意图;
图6是本发明实施例发送模块的功能模块示意图;
图7是本发明实施例中间层服务器的功能模块示意图;
图8是本发明实施例第二发送模块的功能模块示意图;
图9是本发明实施例中间层服务器的另一功能模块示意图;
图10是本发明实施例提供的一种发送数据的系统架构图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
实施例一
参考图2,图2是本发明实施例发送数据的方法第一实施例的流程示意图。
在实施例一中,所述发送数据的方法包括:
步骤201,获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;
具体的,本发明将原来仅具有广播式发送功能的实时服务器改为数据服务器,数据服务器内存设了数据缓存,包括表对象的数据缓存和业务对象的数据缓存两部分。
步骤202,若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;
具体的,数据服务器根据港口活动数据和数据库,初始化缓存中的表对象;凭借TOS系统的基础调用,初始化业务对象;基于港口业务需求,客户端提交业务请求;判断业务类型,决定处理方式。如果是查询业务,数据服务器查看缓存业务对象是否已存在,如果存在直接发回客户端,否则进行如下步骤:
A、根据查询业务及数据库,缓存中的表对象进行数据组装;
B、将组装的数据进行数据转换,从而获取相应的业务对象;
C、反馈数据给客户端。
步骤203,若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给中间层服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。
优选地,所述若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给中间层服务器,包括:
若确定所述业务请求为所述操作业务请求,则获取所述操作业务请求中包括的所述客户端的信息,所述客户端的信息包括所述客户端的身份标识信息以及待更新的表对象的信息;
将所述客户端的信息发送给所述中间层服务器。
具体的,如果是业务调用,则需要中层服务器修改相应的数据库数据,然后修改数据缓存中的对应部分(不是全部仅是部分),将修改数据发回客户端。
本发明实施例通过获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。本发明不同于传统港口TOS操作系统,引入一种改进的内存数据缓存技术,该技术不同于传统缓存机制即数据发生变化导致缓存数据整个需要更新,而是针对港口客户端频繁操作的数据进行部分更新,速度更快;系统进行业务操作时,经过内存数据缓存命中过滤,减轻业务操作对数据库的访问压力,特别是可以有效解决高频度访问模式业务系统的应用压力;同时,根据不同的业务应用场景,可调整内存数据缓存策略,提高缓存命中率,显著提高了客户端业务操作的响应速度。
实施例二
参考图3,图3是本发明实施例发送数据的方法第二实施例的流程示意图。
在实施例二中,所述发送数据的方法包括:
步骤301,接收数据服务器发送的操作业务请求;
步骤302,根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;
步骤303,将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给客户端。
优选地,所述将所述业务数据发送给客户端,包括:
获取所述操作业务请求中携带的客户端的身份标识信息;
将所述业务数据发送给与所述身份标识信息对应的所述客户端。
具体的,如果是业务调用,则需要中层服务器修改相应的数据库数据,然后修改数据缓存中的对应部分(不是全部仅是部分),将修改数据发回客户端。
本发明实施例通过获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。本发明不同于传统港口TOS操作系统,引入一种改进的内存数据缓存技术,该技术不同于传统缓存机制即数据发生变化导致缓存数据整个需要更新,而是针对港口客户端频繁操作的数据进行部分更新,速度更快;系统进行业务操作时,经过内存数据缓存命中过滤,减轻业务操作对数据库的访问压力,特别是可以有效解决高频度访问模式业务系统的应用压力;同时,根据不同的业务应用场景,可调整内存数据缓存策略,提高缓存命中率,显著提高了客户端业务操作的响应速度。
实施例三
参考图4,图4是本发明实施例发送数据的方法第三实施例的流程示意图。
在实施例二的基础上,所述方法还包括:
步骤304,初始化所述数据服务器中存储的表对象和业务对象。
实施例四
参考图5,图5是本发明实施例数据服务器的功能模块示意图。
在实施例四中,所述数据服务器包括:
第一获取模块501,用于获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;
第一发送模块502,用于若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;
第二发送模块503,用于若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给中间层服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。
优选地,参考图6,图6是本发明实施例发送模块的功能模块示意图。
所述第二发送模块503,包括:
获取单元601,用于若确定所述业务请求为所述操作业务请求,则获取所述操作业务请求中包括的所述客户端的信息,所述客户端的信息包括所述客户端的身份标识信息以及待更新的表对象的信息;
发送单元602,用于将所述客户端的信息发送给所述中间层服务器。
本发明实施例通过获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。本发明不同于传统港口TOS操作系统,引入一种改进的内存数据缓存技术,该技术不同于传统缓存机制即数据发生变化导致缓存数据整个需要更新,而是针对港口客户端频繁操作的数据进行部分更新,速度更快;系统进行业务操作时,经过内存数据缓存命中过滤,减轻业务操作对数据库的访问压力,特别是可以有效解决高频度访问模式业务系统的应用压力;同时,根据不同的业务应用场景,可调整内存数据缓存策略,提高缓存命中率,显著提高了客户端业务操作的响应速度。
实施例五
参考图7,图7是本发明实施例中间层服务器的功能模块示意图。
在实施例五中,所述中间层服务器包括:
接收模块701,用于接收数据服务器发送的操作业务请求;
第一发送模块702,用于根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;
第二发送模块703,用于将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给客户端。
优选地,参考图8,图8是本发明实施例第二发送模块的功能模块示意图。
所述第二发送模块703,用于:
获取单元801,用于获取所述操作业务请求中携带的客户端的身份标识信息;
发送单元802,用于将所述业务数据发送给与所述身份标识信息对应的所述客户端。
本发明实施例通过获取客户端发送的业务请求,所述业务请求包括查询业务请求或者操作业务请求;若确定所述业务请求为所述查询业务请求,则将从数据库中获取预先存储的表对象,将所述表对象组装为与所述查询业务请求对应的业务数据,并将所述业务数据发送给所述客户端;若确定所述业务请求为所述操作业务请求,则将所述操作业务请求发送给服务器,使得所述中间层服务器根据所述操作业务请求更新预先存储的表对象的数据,将更新后的表对象发送给所述数据库进行存储;将所述更新后的表对象组装为与所述操作业务请求对应的业务数据,并将所述业务数据发送给所述客户端。本发明不同于传统港口TOS操作系统,引入一种改进的内存数据缓存技术,该技术不同于传统缓存机制即数据发生变化导致缓存数据整个需要更新,而是针对港口客户端频繁操作的数据进行部分更新,速度更快;系统进行业务操作时,经过内存数据缓存命中过滤,减轻业务操作对数据库的访问压力,特别是可以有效解决高频度访问模式业务系统的应用压力;同时,根据不同的业务应用场景,可调整内存数据缓存策略,提高缓存命中率,显著提高了客户端业务操作的响应速度。
实施例六
参考图9,图9是本发明实施例中间层服务器的另一功能模块示意图。
在实施例五的基础上,所述中间层服务器还包括:
初始化模块704,用于初始化所述数据服务器中存储的表对象和业务对象。
实施例七
参考图10,图10是本发明实施例提供的一种发送数据的系统架构图。
在实施例七中,基于内存数据缓存机制,本发明提出了一种TOS操作系统性能优化方法。本技术方案的基本思想为:将原来仅具有广播式发送功能的实时服务器改为数据服务器,数据服务器内存设了数据缓存(包括表对象和业务对象两部分)。不同于传统缓存机制,港口客户端业务大多频繁涉及数据的某个或若干属性,为提升处理速度且减少工作量,对缓存中数据修改部分进行更新且精确投递给相关客户端,减少了数据库访问压力,提升了客户端的响应速度。具体步骤如下:
1)、根据港口活动数据和数据库,初始化缓存中的表对象;
2)、凭借TOS系统的基础调用,初始化业务对象;
3)、基于港口业务需求,客户端提交业务请求;
4)、判断业务类型,决定处理方式。如果是查询业务,数据服务器查看缓存业务对象是否已存在,如果存在直接发回客户端,否则进行如下步骤:
A、根据查询业务及数据库,缓存中的表对象进行数据组装;
B、将组装的数据进行数据转换,从而获取相应的业务对象;
C、反馈数据给客户端。
如果是业务调用,则需要中层服务器修改相应的数据库数据,然后修改数据缓存中的对应部分(不是全部仅是部分),将修改数据发回客户端。
以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明实施例的其它具体实施方式,这些方式都将落入本发明实施例的保护范围之内。