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

文档序号:8412610阅读:来源:国知局
限于小键盘、显示器、扬声器、麦克风、操纵杆等。
[0315]该第二种应用服务器的其他实现细节可参考前述的应用服务器201,重复之处不再赘述。
[0316]图11为本发明实施例提供的第一种数据处理方法的流程图。
[0317]该第一种数据处理方法可应用于第二数据服务器上,第二数据服务器与第一数据服务器以及一个或多个应用服务器具有通信连接;应用服务器用于提供应用服务;第一数据服务器用于提供第一持久层服务,第一数据服务器中包括第一数据;第二数据服务器用于提供第二持久层服务,第二数据服务器中包括第二数据,第二数据包括与第一数据相同的数据;第二数据服务器向应用服务器提供第二应用程序接口 API,应用服务器通过调用第二 API向第一数据服务器请求第一持久层服务;第一数据服务器向第二数据服务器提供第一 API,第二数据服务器通过调用第一 API请求第一持久层服务。
[0318]如图11所示,该方法包括:
[0319]SllOl:第二数据服务器接收一个或多个应用服务器发送的第一操作请求,第一操作请求是一个或多个应用服务器通过调用第二 API发送的,用于请求执行至少一个操作,至少一个操作属于同一个事务;
[0320]S1102:第二数据服务器在确定第一操作请求是用于请求第一持久层服务执行至少一个操作后,对第二数据执行至少一个操作;
[0321]S1103:若每一个操作均执行成功,则第二数据服务器生成第二操作请求,并通过调用第一 API向第一数据服务器发送第二操作请求,其中第二操作请求用于请求对第一数据执行至少一个操作。
[0322]可选地,第二数据服务器确定第一操作请求用于请求第一持久层服务执行至少一个操作,包括:
[0323]第二数据服务器根据第一操作请求中第一持久层服务的标识信息,或用于指示应用服务请求第一持久层服务的用户协议信息,确定第一操作请求用于请求第一持久层服务。
[0324]可选地,该方法还包括:
[0325]若执行至少一个操作失败,则第二数据服务器将第二数据回滚至执行至少一个操作之前的状态。
[0326]可选地,第二数据服务器对第二数据执行至少一个操作中的每一个操作,包括:
[0327]第二数据服务器对至少一个操作进行拆解处理,拆解处理包括:将至少一个操作中针对多个资源对象的操作,分解为多个针对单个资源对象的原子操作,资源对象为第一持久层服务管理的资源对象,原子操作为对于第一持久层服务管理的资源对象不可再分的操作;以及
[0328]第二数据服务器对拆解处理后得到的原子操作进行事务管理,事务管理包括:针对拆解处理得到的每一个原子操作,记录该原子操作的类型、该原子操作所针对的资源对象的标识和同一个事务的事务标识三者的对应关系;并执行拆解处理得到的每一个原子操作。
[0329]可选地,第二数据服务器将第二数据回滚至执行至少一个操作中的每一个操作之前的状态,包括:
[0330]第二数据服务器根据事务处理中记录的对应关系,将第二数据回滚至执行至少一个操作中的每一个操作之前的状态。
[0331]可选地,第一操作请求中包括同一个事务的事务标识;
[0332]第二数据服务器生成第二操作请求包括:第二数据服务器去掉第一操作请求中的同一个事务的事务标识,以生成第二操作请求。
[0333]可选地,该方法还包括:若执行至少一个操作失败,则第二数据服务器针对第一操作请求,向一个或多个应用服务器发送失败响应,失败响应用于指示至少一个操作执行失败。
[0334]可选地,失败响应中包括至少一个操作中未执行成功的操作的下列信息中的至少一种:
[0335]操作类型;
[0336]操作所针对的第一持久层服务的资源对象;
[0337]操作失败原因。
[0338]可选地,第一服务器和第二数据服务器为云服务器,且第一数据服务器和第二数据服务器承载在不同的虚拟机VM上。
[0339]该方法的其他实现细节可参考前述的第二数据服务器202的具体实现,重复之处不再赘述。
[0340]图12为本发明实施例提供的第二种数据处理方法的流程图。
[0341]该方法可应用于一个或多个应用服务器上,第二数据服务器与第一数据服务器以及一个或多个应用服务器具有通信连接;一个或多个应用服务器用于提供应用服务;第一数据服务器用于提供第一持久层服务,第一数据服务器中包括第一数据;第二数据服务器向应用服务器提供第二应用程序接口 API,一个或多个应用服务器通过调用第二 API向第一数据服务器请求第一持久层服务;第一数据服务器向第二数据服务器提供第一 API,第二数据服务器通过调用第一 API请求第一持久层服务。
[0342]如图12所示,该方法包括:
[0343]S1201: 一个或多个应用服务器生成第一操作请求,第一操作请求用于请求第一持久层服务执行至少一个操作,至少一个操作属于同一个事务,第一操作请求中包括用于指示第一操作请求用于请求第一持久层服务的指示信息;
[0344]S1202:该一个或多个应用服务器通过调用第二 API,向第二数据服务器发送第一操作请求,以指示第二数据服务器:
[0345]对第二数据执行至少一个操作;若每一个操作均执行成功,则生成第二操作请求,并通过调用第一 API向第一数据服务器发送第二操作请求,第二操作请求用于请求对第一数据执行至少一个操作。
[0346]可选地,用于指示第一操作请求用于请求第一持久层服务的指示信息包括:
[0347]第一持久层服务的标识信息;或
[0348]用于指示应用服务请求第一持久层服务的用户协议信息。
[0349]可选地,该方法还包括:
[0350]第一操作请求还用于指示第二数据服务器:在执行至少一个操作失败时,将第二数据回滚至执行至少一个操作之前的状态。
[0351]可选地,第一操作请求中包括同一个事务的事务标识。
[0352]可选地,该方法还包括:
[0353]一个或多个应用服务器接收第二数据服务器在执行至少一个操作失败后通过第二 API发送的失败响应;
[0354]失败响应用于指示至少一个操作执行失败。
[0355]可选地,失败响应中包括至少一个操作中未执行成功的操作的下列信息中的至少一种:
[0356]操作类型;
[0357]操作所针对的第一持久层服务的资源对象;
[0358]操作失败原因。
[0359]可选地,第一数据服务器和第二数据服务器为云服务器,且第一数据服务器和第二数据服务器承载在不同的虚拟机VM上。
[0360]该方法的其他实现细节可参考前述的应用服务器201的具体实现,重复之处不再赘述。
[0361]以上,介绍了本发明实施例的各种可能的实现方式。下面,通过图13所示的网络架构,对本发明实施例提供的持久层服务进一步说明。
[0362]如图13所示,其中,最终用户,即浏览器建立会话(Sess1n),调用应用服务器201提供的应用服务,该应用服务通过符合RESTful格式的NBI接口使用本发明实施例提供的第二数据服务器202提供的第二持久层服务。
[0363]第二数据服务器202针对自身的第二数据(这里以数据库为例,称为“历史库”)提供事务服务,若事务完成,则向第一数据服务器203发送符合RESTful格式的SBI接口消息,其中的操作类型为RESTful标准规定的CRUD操作。
[0364]第一数据服务器203再根据收到的操作请求,对第一数据(这里以数据库)为例,称为“当前库”进行处理,
[0365]如图14为基于图13所示的网络架构,在云服务场景下第二数据服务器202中提供的第二持久层服务的架构组件图。其中,第二数据服务器202包括图14中的NBI2021、SBI2023和即事务管理模块2022,应用服务器201提供应用服务,第二数据服务器202提供第二持久层服务,即事务服务,第一数据服务器203提供原有的云端的持久层服务。
[0366]其中,应用服务在原有的云端的持久层服务的符合RESTFuI格式的北向接口 NBI中增加事务标识(Transact1nID)字段。即可将有相同Transact1nID的操作绑成事务。操作类型按RESTful标准可划分为CRUD操作。
[0367]事务服务对应用服务下发的CRUD操作接口进行拆解,拆解成多个原子操作,将其中具有相同Transact1n ID的原子操作绑定成一个事务对象实例,并且,对于每一个原子操作,将该原子操作的操作类型、该原子操作所针对的资源对象的标识ObjectID所属的Transact1n的Transact1nId对应关系,作为一条记录保存至历史库,用于操作失败时的数据回滚。
[0368]图15为图14中的事务服务的内部结构图。如图15所示,事务服务包括:拆解器(Parser)、资源管理器(ResourceMgr)、事务管理器(Transact1nMgr)和历史库(Database-HIS)。
[0369]由应用服务按RESTful格式下发第一操作请求,经由NBI接口,进入事务服务后,首先由拆解器将第一操作请求中包括的具有相同Transact1nId的多个操作拆解成原子操作;
[0370]然后,资源管理器将拆解器拆解得到的多个原子操作生成原子操作队列,发给事务管理器;
[0371]事务管理器将原子操作队列生成一个事务对象实例,将其中的原子操作逐条进行预提交;
[0372]若所有原子操作均执行成功,则生成第二操作请求,该第二操作请求中包括第一操作请求中的所有操作,发给第一数据服务器203 ;
[0373]若在逐条执行原子操作过程中,遇到执行失败的原子操作,则将历史库回滚到执行各原子操作之前的状态。
[0374]图16示出了第二数据服务器202处理的过程。如图16所示,第二数据服务器202的处理包括如下步骤:
[0375]S1601:接收应用服务器201发送的第一操作请求;
[0376]S1602:拆解器拆解该第一操作请求,生成多个原子操作;
[0377]S1603:资源管理器生成原子操作队列;
[0378]S1604:事务管理器生成事务对象实例,进行预提交;
[0379]S1605:判断是否所有原子操作均执行成功;若是,则执行步骤S1606 ;否则执行步骤 S1607 ;
[0380]S1606:事务执行成功,生成第二操作请求,发给第一数据服务器203 ;
[0381]S1607:数据回滚,回到初始状态。
[0382]综上,本发明实施例提供了一种服务器和数据处理方法,通过在应用服务和云端的持久层服务之间提供具有事务管理功能的持久层服务,实现了应用服务对事务的管理,无需应用服务自身实现事务管理,降低了应用服务实现的复杂度。
[0383]并且,具有事务管理功能的持久层服务实现了事务管理,多个应用服务可通过该持久层服务实现事务管理功能,避免了事务管理功能在各个应用服务上重复实现造成的冗余开发和配置。
[0384]并且,也避免了应用服务直接向云端的持久层服务发送操作请求,在部分操作执行失败的情况下,由于云服务不具备事务管理功能,导致数据无法恢复到这些操作执行之前的状态的问题。
[0385]进一步地,具有事务管理功能的持久层服务在事务管理失败时,进行数据回滚,保证了具有事务管理功能的持久层服务与云端的持久层服务之间数据的一致性。
[0386]进一步地,具有事务管理功能的持久层服务也位于云端,包括该持久层服务的云服务器,与包括原有的云端的持久层服务的云服务器承载在不同的虚拟机(VirtualMachine, VM)上。一方面,由云端的VM实现具有事务管理功能的持久层服务,可实现按需分配数据资源;另一方面,由于包括具有事务管理功能的持久层服务的云服务器,与原有的云端的持久层服务的云服务器承载在不同的VM上,这样避免了实现该具有事务管理功能的持久层服务占用原有的持久层服务的数据处理资源,避免了对原有的持久层服务的影响。
[0387]本发明实施例提供的具有事务管理功能的持久层服务,可作为基于面向服务的体系结构(Service-Oriented Architecture,SOA)架构设计的松親合组件,被其他服务集成从而提供具有事务管理功能的服务,从而更灵活地实现持久层服务的事务管理功能。
[0388]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0389]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0390]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1