一种服务器和数据处理方法技术

技术编号:11661544 阅读:64 留言:0更新日期:2015-06-29 15:48
本发明专利技术涉及计算机通信技术,尤其涉及服务器和数据处理方法,以在云服务场景下简单实现事务管理。本发明专利技术实施例提供的第二数据服务器与应用服务器和云端的第一数据服务器连接,接收应用服务器发送的用于请求第一数据服务器提供的第一持久层服务的第一操作请求,该请求中包括属于同一个事务的至少一个操作;第二数据服务器中的事务管理模块对自身中的第二数据执行上述至少一个操作;该第二数据与第一数据服务器中的第一数据相同;若操作均执行成功则生成第二操作请求,以请求对第一数据执行上述至少一个操作,并发给第一数据服务器。通过在应用服务和云服务之间提供具有事务管理功能的持久层服务,无需应用服务实现事务管理,降低应用服务的复杂度。

【技术实现步骤摘要】

本专利技术涉及计算机通信技术,尤其涉及。
技术介绍
在传统的数据库事务管理技术中,通常将数据操作的执行分为三个步骤:预提交、提交,以及数据操作失败时的回滚。其中“预提交”是指事务中的所有操作在缓存中执行,若所有操作均成功,则“提交”,否则“回滚”;“提交”是指将数据写入数据库;“回滚”是指清理缓存,恢复到预提交前的数据。持久层服务,用于屏蔽不同数据库部署形式、版本差异和/或数据库提供商,向应用提供统一的访问数据库的接口。图1示出了在云服务场景下,向应用服务提供持久层服务的典型架构。其中,应用服务(Applicat1n Service, App Service)向云端的持久层服务发送请求,持久层服务响应应用服务的请求向应用提供服务。在具体实现时,通常应用服务和持久层服务由不同的开发商实现,云服务开发商提供持久层服务,但提供的持久层服务通常不具有事务管理的功能。这是因为:持久层服务需要兼容不同类型的数据库,但是不同类型的数据库实现事务管理功能的机制不同,若持久层服务提供事务管理功能,则针对不同数据库的事务管理的实现机制,持久层服务均需要进行适配,并且某些数据库不具备事务管理功能,这更增加了持久层服务提供事务管理功能的难度。另一方面,目前,持久层服务常见的实现方式是:持久层服务自身通过非关系数据库,以及存储区域网络(Storage Area Network, SAN)或网络存储(Network AttachedStorage, NAS) 一起提供可扩展的数据存贮能力,而不使用传统的关系数据库来组织数据。此时,持久层服务若自身实现事务管理功能,则需要耗费额外的数据处理资源,当占用的数据处理资源较大时,若持久层服务可用的数据处理资源有限,则可能会对持久层服务自身造成影响。因此,目前的云服务场景中,不同应用服务的开发商通常需要自身提供事务管理功能,导致应用开发的复杂度高,同时不同应用的事务管理功能差异性较大,兼容性难以保证。
技术实现思路
本专利技术实施例提供,用于在云服务场景下,云服务开发商提供的持久层服务不具有事务管理的功能的情况下,提供一种简单的实现事务管理的方案,以降低应用服务实现的复杂度。第一方面,本专利技术实施例提供一种第二数据服务器,所述第二数据服务器与第一数据服务器以及一个或多个应用服务器具有通信连接;所述一个或多个应用服务器用于提供应用服务;所述第一数据服务器用于提供第一持久层服务,所述第一数据服务器中包括第一数据;所述第二数据服务器用于提供第二持久层服务,所述第二数据服务器中包括第二数据,所述第二数据包括与所述第一数据相同的数据;所述第二数据服务器向所述一个或多个应用服务器提供第二应用程序接口 API,所述一个或多个应用服务器通过调用所述第二 API向所述第一数据服务器请求所述第一持久层服务;所述第一数据服务器向所述第二数据服务器提供第一 API,所述第二数据服务器通过调用所述第一 API请求所述第一持久层服务;所述第二数据服务器包括:所述第二接口,用于提供所述第二 API,并接收所述一个或多个应用服务器通过调用所述第二 API发送的第一操作请求,所述第一操作请求用于请求执行至少一个操作,所述至少一个操作属于同一个事务;所述事务管理模块,用于在确定所述第一操作请求是用于请求所述第一持久层服务执行所述至少一个操作后,对所述第二数据执行所述至少一个操作;若每一个操作均执行成功,则生成第二操作请求,所述第二操作请求用于请求对所述第一数据执行所述至少一个操作;所述第一接口,用于调用所述第一 API向所述第一数据服务器发送所述第二操作请求。结合第一方面,在第一种可能的实现方式中,所述事务管理模块在确定所述第一操作请求是用于请求所述第一持久层服务执行所述至少一个操作时,具体用于:根据所述第一操作请求中所述第一持久层服务的标识信息,或用于指示所述应用服务请求所述第一持久层服务的用户协议信息,确定所述第一操作请求用于请求所述第一持久层服务执行所述至少一个操作。结合第一方面,或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述事务管理模块还用于:若执行所述至少一个操作失败,则将所述第二数据回滚至执行所述至少一个操作之前的状态。结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述事务管理模块在对所述第二数据执行所述至少一个操作中的每一个操作时,具体用于:对所述至少一个操作进行拆解处理,所述拆解处理包括:将所述至少一个操作中针对多个资源对象的操作,分解为多个针对单个资源对象的原子操作,所述资源对象为所述第一持久层服务管理的资源对象,所述原子操作为对于所述第一持久层服务管理的资源对象不可再分的操作;以及对所述拆解处理后得到的原子操作进行事务管理,所述事务管理包括:针对所述拆解处理得到的每一个原子操作,记录该原子操作的类型、该原子操作所针对的资源对象的标识和所述同一个事务的事务标识三者的对应关系;并执行所述拆解处理得到的每一个原子操作。结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述事务管理模块在将所述第二数据回滚至执行所述至少一个操作中的每一个操作之前的状态时,具体用于:根据所述事务处理中记录的所述对应关系,将所述第二数据回滚至执行所述至少一个操作中的每一个操作之前的状态。结合第一方面,或第一方面的第一种可能的实现方式至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,所述第一操作请求中包括所述同一个事务的事务标识;所述事务管理模块在生成所述第二操作请求时,具体用于:去掉所述第一操作请求中的所述同一个事务的事务标识,以生成所述第二操作请求。结合第一方面,或第一方面的第一种可能的实现方式至第五种可能的实现方式中的任一种,在第六种可能的实现方式中,所述事务管理模块还用于:若执行所述至少一个操作失败,则针对所述第一操作请求生成失败响应,所述失败响应用于指示所述至少一个操作执行失败;所述第二接口还用于:向所述一个或多个应用服务器发送所述失败响应,。结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述失败响应中包括所述至少一个操作中未执行成功的操作的下列信息中的至少一种:操作类型;操作所针对的所述第一持久层服务的资源对象;操作失败原因。结合第一方面,或第一方面的第一种可能的实现方式至第七种可能的实现方式中的任一种,在第八种可能的实现方式中,所述第二数据服务器与所述第一数据服务器为同一服务器;或所述第二数据服务器与所述第一数据服务器为不同服务器;或所述应用服务器与所述第二数据服务器为同一服务器。结合第一方面的第八种可能的实现方式,在第九种可能的实现方式中,所述第二数据服务器与所述第一数据服务器为不同服务器;所述第一数据服务器和第二数据服务器为云服务器,且所述第一数据服务器和所述第二数据服务器承载在不同的虚拟机VM上。第二方面,本专利技术实施例一种应用服务器,第二数据服务器与第一数据服务器以及一个或多个所述应用服务器具有通信连接;所述应用服务器用于提供应用服务;所述第一数据服务器用于提供第一持久层服务,所述第一数据服务器中包括第一数据;所述第二数据服务器向一个或多个所述应用服务器提供第二应用程序接口 API,一个或多个所述应用服务器通过调用所述第二 API向本文档来自技高网
...

【技术保护点】
一种数据处理方法,应用于第二数据服务器上,其特征在于,所述第二数据服务器与第一数据服务器以及一个或多个应用服务器具有通信连接;所述应用服务器用于提供应用服务;所述第一数据服务器用于提供第一持久层服务,所述第一数据服务器中包括第一数据;所述第二数据服务器用于提供第二持久层服务,所述第二数据服务器中包括第二数据,所述第二数据包括与所述第一数据相同的数据;所述第二数据服务器向所述应用服务器提供第二应用程序接口API,所述应用服务器通过调用所述第二API向所述第一数据服务器请求所述第一持久层服务;所述第一数据服务器向所述第二数据服务器提供第一API,所述第二数据服务器通过调用所述第一API请求所述第一持久层服务;所述方法包括:所述第二数据服务器接收所述一个或多个应用服务器发送的第一操作请求,所述第一操作请求是所述一个或多个应用服务器通过调用所述第二API发送的,用于请求执行至少一个操作,所述至少一个操作属于同一个事务;所述第二数据服务器在确定所述第一操作请求是用于请求所述第一持久层服务执行所述至少一个操作后,对所述第二数据执行所述至少一个操作;若每一个操作均执行成功,则所述第二数据服务器生成第二操作请求,并通过调用所述第一API向所述第一数据服务器发送所述第二操作请求,其中所述第二操作请求用于请求对所述第一数据执行所述至少一个操作。...

【技术特征摘要】

【专利技术属性】
技术研发人员:曾建国秦翼
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1