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

文档序号:8412610阅读:来源:国知局
0237]在遇到原子操作未执行成功时,则预提交失败,此时对第二数据进行回滚,回滚时根据之前记录的原子操作的类型、原子操作所针对的资源对象的标识和同一个事务的事务标识三者的对应关系,进行回滚,即将第二数据恢复到执行第一操作请求中的至少一个操作之前的状态。
[0238]在对第二数据恢复时,可采用如下方式:
[0239]对于操作类型为读取的操作,由于不会修改数据,所以在回滚时忽略;
[0240]对于操作类型为新增的操作,回滚时删除对应的资源对象;
[0241]对于操作类型为修改的操作,回滚时将对应资源对象恢复为该资源对象的上一条记录;
[0242]对于操作类型为删除的操作,回滚时新增对应的资源对象,新增的资源对象的数据体中的内容与执行该删除操作前,该资源对象在第二数据中的最后一条记录一致。
[0243]若事务管理模块2022包括资源管理器2022b,则事务管理器2022c还用于:在逐条执行每一个原子操作之前,将资源管理器2022b输出的原子操作队列生成属于该同一个事务的事务对象实例;则事务管理器2022c在逐条执行每一个原子操作时,具体地,可将生成的该事务对象实例中的每一个原子操作逐条进行预提交。
[0244]这里,生成属于同一个事务的事务对象实例,是为了应对多个操作对一个资源对象进行处理的并发操作的情况,此时,需要对事物对象进行管理,而对事务对象进行管理就生成对应的事务对象实例。
[0245]前面,以应用服务器201提交符合RESTful格式的第一操作请求为例。在具体实现时,应用服务器201也可能发送符合特定网络通信协议格式的第一操作请求,此时,可在符合RESTful格式的接口 NBI2021与应用服务器201之间,增加接口转换器2024,该接口转换器2024用于将符合特定网络通信协议格式的第一操作请求,转换为符合RESTful格式的第一操作请求。
[0246]该接口转换器2024可位于应用服务器201上,也可位于第二数据服务器202上,如图6所示。
[0247]前面介绍了本发明实施例提供的网络,基于相同的发明构思,本发明实施例还提供了第二数据服务器、应用服务器,以及数据处理方法,由于它们解决问题的原理与本发明实施例提供的网络类似,其实施可参照该网络的实施,重复之处不再赘述。
[0248]图7为本发明实施例提供的第一种第二数据服务器的结构示意图。该第二数据服务器与第一数据服务器以及一个或多个应用服务器具有通信连接;一个或多个应用服务器用于提供应用服务;第一数据服务器用于提供第一持久层服务,第一数据服务器中包括第一数据;第二数据服务器用于提供第二持久层服务,第二数据服务器中包括第二数据,第二数据包括与第一数据相同的数据;第二数据服务器向一个或多个应用服务器提供第二应用程序接口 API,一个或多个应用服务器通过调用第二 API向第一数据服务器请求第一持久层服务;第一数据服务器向第二数据服务器提供第一 API,第二数据服务器通过调用第一API请求第一持久层服务。
[0249]如图7所示,该第二数据服务器包括:
[0250]第二接口 701,用于提供第二 API,并接收一个或多个应用服务器通过调用第二API发送的第一操作请求,第一操作请求用于请求执行至少一个操作,至少一个操作属于同一个事务;
[0251]事务管理模块702,用于在确定第一操作请求是用于请求第一持久层服务执行至少一个操作后,对第二数据执行至少一个操作;若每一个操作均执行成功,则生成第二操作请求,第二操作请求用于请求对第一数据执行至少一个操作;
[0252]第一接口 703,用于调用第一 API向第一数据服务器发送第二操作请求。
[0253]可选地,事务管理模块702在确定第一操作请求是用于请求第一持久层服务执行至少一个操作时,具体用于:
[0254]根据第一操作请求中第一持久层服务的标识信息,或用于指示应用服务请求第一持久层服务的用户协议信息,确定第一操作请求用于请求第一持久层服务执行至少一个操作。
[0255]可选地,事务管理模块702还用于:
[0256]若执行至少一个操作失败,则将第二数据回滚至执行至少一个操作之前的状态。
[0257]可选地,事务管理模块702在对第二数据执行至少一个操作中的每一个操作时,具体用于:
[0258]对至少一个操作进行拆解处理,拆解处理包括:将至少一个操作中针对多个资源对象的操作,分解为多个针对单个资源对象的原子操作,资源对象为第一持久层服务管理的资源对象,原子操作为对于第一持久层服务管理的资源对象不可再分的操作;以及
[0259]对拆解处理后得到的原子操作进行事务管理,事务管理包括:针对拆解处理得到的每一个原子操作,记录该原子操作的类型、该原子操作所针对的资源对象的标识和同一个事务的事务标识三者的对应关系;并执行拆解处理得到的每一个原子操作。
[0260]可选地,事务管理模块702在将第二数据回滚至执行至少一个操作中的每一个操作之前的状态时,具体用于:
[0261]根据事务处理中记录的对应关系,将第二数据回滚至执行至少一个操作中的每一个操作之前的状态。
[0262]可选地,第一操作请求中包括同一个事务的事务标识;
[0263]事务管理模块702在生成第二操作请求时,具体用于:去掉第一操作请求中的同一个事务的事务标识,以生成第二操作请求。
[0264]可选地,事务管理模块702还用于:若执行至少一个操作失败,则针对第一操作请求生成失败响应,失败响应用于指示至少一个操作执行失败;
[0265]第二接口 701还用于:向一个或多个应用服务器发送失败响应,。
[0266]可选地,失败响应中包括至少一个操作中未执行成功的操作的下列信息中的至少一种:
[0267]操作类型;
[0268]操作所针对的第一持久层服务的资源对象;
[0269]操作失败原因。
[0270]可选地,第二数据服务器与第一数据服务器为同一服务器;或
[0271]第二数据服务器与第一数据服务器为不同服务器;或
[0272]应用服务器与第二数据服务器为同一服务器。
[0273]可选地,第二数据服务器与第一数据服务器为不同服务器;
[0274]第一数据服务器和第二数据服务器为云服务器,且第一数据服务器和第二数据服务器承载在不同的虚拟机VM上。
[0275]该第一种第二数据服务器的其他实现细节,可参见前述的第二数据服务器202,重复之处不再赘述。
[0276]图8为本发明实施例提供的第二种第二数据服务器的结构示意图。
[0277]与本发明实施例提供的第一种第二数据服务器类似,第二种第二数据服务器与第一数据服务器以及一个或多个应用服务器具有通信连接;一个或多个应用服务器用于提供应用服务;第一数据服务器用于提供第一持久层服务,第一数据服务器中包括第一数据;第二数据服务器用于提供第二持久层服务,第二数据服务器中包括第二数据,第二数据包括与第一数据相同的数据;第二数据服务器向一个或多个应用服务器提供第二应用程序接口 API,一个或多个应用服务器通过调用第二 API向第一数据服务器请求第一持久层服务;第一数据服务器向第二数据服务器提供第一 API,第二数据服务器通过调用第一 API请求第一持久层服务。
[0278]如图8所示,该第二数据服务器包括:网络接口 801、处理器802和存储器803 ;
[0279]其中,存储器803用于存储事务管理程序,所述事务管理程序中包括用于实现所述第二 API的代码;
[0280]处理器802用于调用存储器803中存储的该事务管理程序,执行如下操作:
[0281]通过网络接口 801接收一个或多个应用服务器发送的第一操作请求,第一操作请求是一个或多个应用服务器通过调用第二 API发送的,用于请求执行至少一个操作,至少一个操作属于同一个事务;
[0282]在确定第一操作请求是用于请求第一持久层服务执行至少一个操作后,对第二数据执行至少一个操作;
[0283]若每一个操作均执行成功,则第二数据服务器生成第二操作请求,并通过网络接口 801调用第一 API向第一数据服务器发送第二操作请求,其中第二操作请求用于请求对第一数据执行至少一个操作。
[0284]其中,在图8中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器802代表的一个或多个处理器和存储器803代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供网络接口 801,用于与网络上的其他设备通信,比如第一数据服务器、一个或多个应用服务器等。针对不同的用户设备,用户接口 804还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
[0285]该第二种第二数据服务器的其他实现细节可参考前述的第二数据服务器202,重复之处不再赘述。
[0286]图9为本发明实施例提供的第一种应用服务器的结构示意图。
[0287]其中,第二数据服务器与第一数据服务器以及一个或多个该第一种应用服务器具有通信连接;该应用服务器用于提供应用服务;第一数据服务器用于提供第一持久层服务,第一数据服务器中包括第一数据;第二数据服务器向一个或多个应用服务器提供第二应用程序接口 API,一个或多个应用服务器通过调用第二 API向第一数据服务器请求第一持久层服务;第一数据服务器向第二数据服务器提供第一 API,第二数据服务器通过调用第一 API请求第一持久层服务。
[0288]如图9所示,该应用服务器包括:
[0289]操作请求生成模块901,用于生成第一操作请求,并指示第一操作请求用于请求第一持久层服务执行至少一个操作,至少一个操作属于同一个事务,第一操作请求中包括用于指示第一操作请求用于请求第一持久层服务的指示信息;
[0290]接口 902,用于调用第二 API,向第二数据服务器发送第一操作请求,指示第二数据服务器:对第二数据执行至少一个操作;若每一个操作均执行成功,则生成第二操作请求,并通过调用第一 API向第一数据服务器发送第二操作请求,第二操作请求用于请求对第一数据执行至少一个操作。
[0291]可选地,用于指示第一操作请求用于请求第一持久层服务的指示信息包括:
[0292]第一持久层服务的标识信息;或
[0293]用于指示应用服务请求第一持久层服务的用户协议信息。
[0294]可选地,第一操作请求还用于指示第二数据服务器:在执行至少一个操作失败时,将第二数据回滚至执行至少一个操作之前的状态。
[0295]可选地,第一操作请求中包括同一个事务的事务标识。
[0296]可选地,接口 902还用于:
[0297]接收第二数据服务器在执行至少一个操作失败后发送的失败响应;
[0298]失败响应用于指示至少一个操作执行失败。
[0299]可选地,失败响应中包括至少一个操作中未执行成功的操作的下列信息中的至少一种:
[0300]操作类型;
[0301]操作所针对的第一持久层服务的资源对象;
[0302]操作失败原因。
[0303]可选地,该应用服务器与第二数据服务器为同一服务器。
[0304]该应用服务器的其他实现细节可参考前述的应用服务器201,重复之处不再赘述。
[0305]图10为本发明实施例提供的第二种应用服务器的结构示意图。
[0306]其中,第二数据服务器与第一数据服务器以及一个或多个该第一种应用服务器具有通信连接;该应用服务器用于提供应用服务;第一数据服务器用于提供第一持久层服务,第一数据服务器中包括第一数据;第二数据服务器向一个或多个应用服务器提供第二应用程序接口 API,一个或多个应用服务器通过调用第二 API向第一数据服务器请求第一持久层服务;第一数据服务器向第二数据服务器提供第一 API,第二数据服务器通过调用第一 API请求第一持久层服务。
[0307]如图10所示,该应用服务器包括:
[0308]网络接口 1001、处理器1002和存储器1003 ;
[0309]其中,存储器1003用于操作请求处理程序;
[0310]处理器1002用于调用存储器1003中存储的该操作请求处理程序,执行如下操作:
[0311]生成第一操作请求,第一操作请求用于请求第一持久层服务执行至少一个操作,至少一个操作属于同一个事务,第一操作请求中包括用于指示第一操作请求用于请求第一持久层服务的指示信息;
[0312]调用第二 API,向第二数据服务器发送第一操作请求,以指示第二数据服务器:
[0313]对第二数据执行至少一个操作;若每一个操作均执行成功,则生成第二操作请求,并通过调用第一 API向第一数据服务器发送第二操作请求,第二操作请求用于请求对第一数据执行至少一个操作。
[0314]其中,在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1002代表的一个或多个处理器和存储器1003代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供网络接口1001,用于与网络上的其他设备通信,比如第二数据服务器等。针对不同的用户设备,用户接口 1004还可以是能够外接内接需要设备的接口,连接的设备包括但不
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1