1、(10)申请公布号 CN 103136041 A(43)申请公布日 2013.06.05CN103136041A*CN103136041A*(21)申请号 201210510211.0(22)申请日 2012.12.0313/309,252 2011.12.01 USG06F 9/46(2006.01)(71)申请人 SAP股份公司地址德国瓦尔多夫(72)发明人 F.布伦斯威格 F.詹特施 B.赛德(74)专利代理机构北京市柳沈律师事务所 11105代理人邵亚丽(54) 发明名称业务对象的批处理(57) 摘要服务消费者可以定义批作业(批容器),在其中可以对业务对象实例调取业务对象方法。所述调取
2、可以被记录。服务消费者可以触发批运行以导致业务对象实例根据所记录的调取被修改。批作业可以作为单个过程中的单个事务来运行。批作业可以被划分为多个事务并且由相应的多个过程来处理。(30)优先权数据(51)Int.Cl.权利要求书3页 说明书7页 附图4页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书7页 附图4页(10)申请公布号 CN 103136041 ACN 103136041 A1/3页21.一种用于处理多个业务对象的方法包含操作计算机以执行以下步骤:从客户端系统接收标识多个业务对象的信息;从客户端系统接收指示将要对所述多个业务对象执行的一个或更多个操作的信
3、息;存储关于所述多个业务对象以及关于所述一个或更多个操作的信息;从所述客户端系统接收触发;以及响应于接收触发,操作计算机以执行以下步骤:(i)根据所述一个或更多个操作更改所述多个业务对象当中的一个或更多个业务对象;(ii)对在所述更改期间产生的任何错误执行第一错误处理;(iii)保存在步骤(i)中成功更改的业务对象;以及(iv)对在所述保存期间产生的任何错误执行第二错误处理;2.如权利要求1所述的方法,在不执行对所述多个业务对象的所述一个或更多个操作的情况下执行所述存储。3.如权利要求1所述的方法,进一步包含:操作计算机以便对于第二多个业务对象重复步骤(i)、(ii)、(iii)以及(iv)。
4、4.如权利要求1所述的方法,其中错误处理步骤包括从多个预定错误当中识别错误并且执行与识别出的预定错误相关联的动作。5.如权利要求4所述的方法,其中如果该错误不在所述多个预定错误当中,则将该错误记录在错误日志中。6.如权利要求1所述的方法,其中更改步骤包括调取用于每个业务对象的一个或更多个核心服务以及调取特定于每个业务对象的一个或更多个动作方法,其中执行第一错误处理的步骤包括对在调取所述一个或更多个核心服务期间产生的任何错误执行第三错误处理以及对在调取所述一个或更多个方法期间产生的任何错误执行第四错误处理。7.如权利要求1所述的方法,进一步包含:操作计算机执行以下步骤:将用于业务对象的第一集合的
5、第一过程实例化以执行下列步骤:对业务对象的第一集合进行更改、执行第一错误处理、保存以及执行第二错误处理;以及将用于业务对象的第二集合的第二过程实例化以执行下列步骤:对业务对象的第二集合进行更改、执行第一错误处理、保存以及执行第二错误处理。8.一种计算机系统,其包含:数据处理器;数据存储器,在其上存储有计算机可执行程序代码,其中该计算机可执行程序代码被配置为将数据处理器编程以执行下列步骤:从客户端系统接收标识多个业务对象的信息;从客户端系统接收指示将要对所述多个业务对象执行的一个或更多个操作的信息;存储关于所述多个业务对象以及关于所述一个或更多个操作的信息;以及从客户端系统接收触发,并且响应于该
6、触发:(i)根据所述一个或更多个操作更改所述多个业务对象当中的一个或更多个业务对象;(ii)对在所述更改期间产生的任何错误执行第一错误处理;权 利 要 求 书CN 103136041 A2/3页3(iii)保存在步骤(i)中成功更改的业务对象;以及(iv)对在所述保存期间产生的任何错误执行第二错误处理。9.如权利要求8所述的计算机系统,其中该数据处理器在不对所述多个业务对象执行所述一个或更多个操作的情况下存储关于所述多个业务对象以及关于所述一个或更多个操作的信息。10.如权利要求8所述的计算机系统,其中该计算机可执行程序代码进一步配置为将所述数据处理器编程为对于第二多个业务对象重复步骤(i)、
7、(ii)、(iii)以及(iv)。11.如权利要求8所述的计算机系统,其中第一和第二错误处理包括从多个预定错误当中识别错误并且执行与识别出的预定错误相关联的动作。12.如权利要求8所述的计算机系统,其中更改一个或更多个业务对象包括调取用于每个业务对象的一个或更多个核心服务以及调取特定于每个业务对象的一个或更多个动作方法,其中执行第一错误处理包括对在调取所述一个或更多个核心服务期间产生的任何错误执行第三错误处理以及对在调取所述一个或更多个方法期间产生的任何错误执行第四错误处理。13.如权利要求8所述的计算机系统,其中所述数据处理器:将用于业务对象的第一集合的第一过程实例化以对业务对象的第一集合进
8、行更改、执行第一错误处理、保存以及执行第二错误处理;以及将用于业务对象的第二集合的第二过程实例化以对业务对象的第二集合进行更改、执行第一错误处理、保存以及执行第二错误处理。14.一种计算机程序产品,包含非瞬时的计算机可读存储介质,其上存储有可执行程序代码,该可执行程序代码配置为导致计算机系统执行以下步骤:从客户端系统接收标识多个业务对象的信息;从客户端系统接收指示将要对所述多个业务对象执行的一个或更多个操作的信息;存储关于所述多个业务对象以及关于所述一个或更多个操作的信息;从所述客户端系统接收触发;以及响应于接收触发,操作计算机以执行以下步骤:(i)根据所述一个或更多个操作更改所述多个业务对象
9、当中的一个或更多个业务对象;(ii)对在所述更改期间产生的任何错误执行第一错误处理;(iii)保存在步骤(i)中成功更改的业务对象;以及(iv)对在所述保存期间产生的任何错误执行第二错误处理;15.如权利要求14所述的计算机程序产品,其中在不对所述多个业务对象执行所述一个或更多个操作的情况下执行所述存储。16.如权利要求14所述的计算机程序产品,还包含可执行程序代码被配置为导致计算机系统执行这样的步骤:操作计算机以对第二多个业务对象重复步骤(i),(ii),(iii)和(iv)。17.如权利要求14所述的计算机程序产品,其中错误处理步骤包括从多个预定错误当中识别错误并且执行与识别出的预定错误相
10、关联的动作。18.如权利要求14所述的计算机程序产品,其中更改步骤包括调取用于每个业务对象权 利 要 求 书CN 103136041 A3/3页4的一个或更多个核心服务以及调取特定于每个业务对象的一个或更多个动作方法,其中执行第一错误处理的步骤包括对在调取所述一个或更多个核心服务期间产生的任何错误执行第三错误处理以及对在调取所述一个或更多个方法期间产生的任何错误执行第四错误处理。19.如权利要求14所述的计算机程序产品,进一步包含:可执行的程序被配置为导致计算机系统执行下列步骤:将用于业务对象的第一集合的第一过程实例化以执行下列步骤:对业务对象的第一集合进行更改、执行第一错误处理、保存以及执行
11、第二错误处理;以及将用于业务对象的第二集合的第二过程实例化以执行下列步骤:对业务对象的第二集合进行更改、执行第一错误处理、保存以及执行第二错误处理。权 利 要 求 书CN 103136041 A1/7页5业务对象的批处理0001 相关专利的交叉引用0002 本公开涉及美国专利第7,536,673号和美国专利第7,801,996号,通过引用将它们的全部内容合并于此,用于所有目的。背景技术0003 本发明涉及业务软件,具体来说涉及业务对象的处理。0004 除非这里另外指出,本部分描述的方法不是本申请中的权利要求的现有技术,并且不承认本部分描述的方法由于包括在本部分中而成为现有技术。0005 商业企
12、业一般地采用若干业务应用以便管理企业中的大量数据。业务应用通常被设计为操控企业的特定方面;例如,客户关系管理(CRM)业务应用可以支持销售部门的活动,产品生产系统(PPS)可以用来管理生产,等等。业务对象表示业务应用可以管理的数据的各个类别。举例来说,在汽车出租系统中,可以创建以下业务对象:0006 汽车-具有这样的属性,例如,车牌号(license plate number)、汽车型号、座位数目、最大速度、里程、颜色,0007 客户-具有这样的属性,例如,名(first name)、姓(last name)、信用卡号、地址、电话、传真、电子邮件、注册日期,0008 定单-具有这样的属性,例如
13、,日期、发票号、价格。0009 业务对象(BO)是一个基本实体,其封装业务数据和用于操纵所述数据的业务逻辑,并且保证业务对象数据的一致性和完整性。接口层描述业务对象的实现和结构,并且定义业务对象到外界的接口。0010 服务提供者是经由所述接口提供对业务对象数据的外部访问的访问层的一部分。服务提供者提供对业务对象的关于功能的方法的访问,所述功能例如业务对象的公共实例操控(handle)、事件操控、错误操控、状态管理、等等。例如,所有业务对象提供核心服务的公共集合,以便创建、读取、更新和删除业务对象实例(业务对象节点实例);例如,修改(MODIFY)可以是所有业务对象用于创建、更新和删除的公共的核
14、心服务。此外,业务对象可以提供特定于业务对象的服务(在这里称为动作(ACTIONS)。0011 服务提供者也可以提供附属(auxiliary)服务,比如性能分析、追踪、等等。因为许多业务用户(例如,销售经理、销售员、等等)可能需要在任何一个的时间访问业务对象,所以可以理解用户未被赋予对业务对象乃至对服务提供者的直接访问。0012 反而,对服务提供者的访问以及由此对业务对象本身的访问是经由服务管理者来提供的。服务管理者负责事务控制,比如对业务对象的多个访问请求。服务管理者可以提供安全性和数据完整性功能以防止不一致和错误的运行时行为。服务管理者一般来说提供客户端代理服务器(client proxy
15、)(例如,使用Web服务代理(Web Services agent),业务用户可以在应用层内与该客户端代理服务器接口。客户端代理服务器一般能够提供业务对象的批处理。例如,业务对象标识符的表格连同将对每个业务对象执行的一个或更多个动作(例如,检索(RETRIEVE)一起可以被提供给客户端代理服务器。说 明 书CN 103136041 A2/7页60013 图1A示出由服务管理者104进行中介的业务应用(服务消费者)102和服务提供者106之间的工作流程。图1A中示出的顺序表示多个业务对象的批处理。在交互阶段中,服务消费者102向服务管理者104发布或者以其它方式提供对于一个或更多个业务对象的一系
16、列修改操作。例如,在一天的结尾,销售员可以启动(例如,经由业务应用的用户接口、UI)这天的销售记录向CRM系统的上传。业务应用102可以启动批作业(batch job)以处理表示所述销售记录的业务对象。0014 服务管理者104将从服务消费者102接收的修改操作传送给服务提供者106以进行修改。服务消费者102通过例如调用服务管理者104中的保存方法来触发保存阶段。服务管理者104进而调用服务提供者106中的检查方法以触发“检查”处理,从而验证对业务对象做出的修改。如果服务提供者106未发布错误,则服务管理者104调用服务提供者中的保存方法以开始“保存”处理。图1A示出成功的批处理工作流。00
17、15 图1B示出在服务提供者106中执行的对经修改的业务对象的检查处理期间发现一个或更多个错误时的处理流程情景。可以看到,将错误通知服务管理者104,并且由于该(多个)错误而不调用服务提供者106中的保存方法。该批作业未被保存,而且副作用是那些经修改但没有错误的业务对象也未被保存。因此,服务消费者102需要在改正错误的(多个)原因之后重新提交全部作业。发明内容0016 一种用于处理业务对象的方法包括:从标识多个业务对象和将对所述业务对象执行的一个或更多个操作的客户端系统接收批作业信息。在实施例中,所述操作可以包括业务对象提供的核心服务以及特定于所述业务对象的服务(动作)。操作被记录,而不被执行
18、。0017 响应于从所述客户端系统接收到触发,根据所记录的操作来更改业务对象。在更改业务对象之后执行错误检查。继续对更改成功的业务对象进行保存。更改失败的业务对象可以被重新处理,包括执行(多个)改正动作以及根据它们关联的记录的操作进行更改。附图说明0018 图1A示出没有出现错误的传统的批处理。0019 图1B示出在保存阶段期间发生错误的传统的批处理。0020 图2示出根据本发明的实施例的工作流。0021 图3示出根据本发明的实施例的另一个工作流。0022 图4描绘根据本发明的硬件配置。具体实施方式0023 在下面的描述中,出于解释的目的,阐述了很多示例和特定细节,以便提供对本发明的透彻理解。
19、然而,对于本领域技术人员来说显而易见的是,权利要求所限定的本发明可以单独地包括这些示例中的一些或全部特征,或者与下面描述的其它特征组合地包括这些示例中的一些或全部特征,并且还可以包括这里描述的特征和构思的修改和等效物。0024 在实施例中,诸如图2中的顺序图所图示的工作流可以包含按照服务消费者202、服务管理者204、批处理协调者206以及服务提供者208之间的通信的顺序启动的动作。在说 明 书CN 103136041 A3/7页7实施例中,服务消费者202可以是与服务管理者204接口(例如,经由Web服务接口)的业务应用。该工作流可以划分为两个主要的步骤:批接收步骤210(处理块A)和批处理
20、步骤220(处理块B)。0025 在批接收步骤210中,服务消费者202提交用于处理业务对象实例的集合的“批容器”(批作业)。批容器在逻辑上表示业务对象实例的数目N以及将对每个业务对象实例执行的一个或更多个操作。例如,假设在商业周的结尾,可能需要在业务的主数据中更新来自业务的零售地点的客户记录业务对象。服务消费者202可以是与服务管理者204接口(例如,经由Web服务接口)以向服务管理者提交批容器的业务应用。对业务对象实例执行的操作的集合可以从一个业务对象实例到另一个业务对象实例而变化。0026 在步骤212中,服务消费者202向服务管理者204发布批开始(BeginBatch)命令以处理批作
21、业。批开始命令以信号告知服务管理者204打开或者创建新的批容器。服务管理者204可以向服务消费者202发出响应(例如,OK)以指示批开始命令已经被成功处理。批作业可以通过任何适当的方式被传送到服务管理者204。例如,服务消费者202可以生成批文件(batch file),该批文件然后可以被告知服务管理者204(例如,该文件被发给服务管理者,该文件的位置被告知服务管理者等等)。批文件可以列出业务对象实例和相应的操作。该操作可以包括每个业务对象提供的核心服务(例如,修改、检索、等等)并且可以包括对每个业务对象独特的特定服务(例如,动作)。服务消费者202可以将批作业传送到服务管理者204,一次传送
22、一个业务对象实例以及将对该业务对象实例执行的期望的操作。0027 根据本发明,服务管理者204记录每个修改操作(步骤214),而不对该业务对象实例进行修改。同样,服务管理者204记录关于期望的动作的信息(步骤216),而不对该业务对象实例进行修改。可以在美国专利第7,536,673号中找到本发明的这方面的更多细节。0028 在步骤218中,服务消费者202向服务管理者204发布批结束(EndBatch)命令。批结束命令以信号告知服务管理者204关闭批容器。服务管理者204可以向服务消费者202发出响应(例如,OK)以指示批容器已经被成功创建。0029 然后,服务消费者202可以对于另一个批容器
23、重复步骤212-218。例如,业务应用可以提交一个批作业用于更新客户记录以及另一个批作业用于更新库存记录。重复步骤212-218将在服务管理者204中创建用于处理另一个批作业的另一个批容器。在实施例中,当服务消费者202已经提交其所有的批作业时,它然后可以向服务管理者204发布批运行(ExecuteBatch)命令。批运行命令将触发批处理步骤220。0030 在批处理步骤220中,服务管理者204在批协调者206和服务提供者208之间进行协调以便处理服务消费者202提交的一个或更多个批容器。在实施例中,对于在批接收步骤210中创建的每个批容器执行批处理步骤220。具体来说,可以对于每个批处理容
24、器执行步骤222-238。如下面将要解释的,根据本发明的对批容器中的业务对象实例的实际处理被划分成具有对于每个处理阶段的错误检查和错误处理的特定处理阶段。0031 在实施例中,一个处理阶段是对批容器中的业务对象实例进行核心服务的处理,在修改步骤222中执行该处理。在以上的步骤214中记录的对于每个业务对象实例的核心服务操作通过对服务提供者208做出适当的调用来执行。具体来说,服务管理者204与服务提供者208通信以调用业务对象的核心服务方法,从而对业务对象实例执行操作。服务提供者208可以用指示是否对业务对象实例成功地执行了核心服务的结果代码对服务管说 明 书CN 103136041 A4/7
25、页8理者204作出响应。0032 在步骤232中,服务管理者204可以调取(invoke)批协调者206中的错误检查方法。来自修改步骤222中的批处理的结果(例如,业务对象名称、节点标识符、错误消息、等等)可以被传递给批协调者206。在一些实施例中,服务管理者204可以向批协调者206调取回调(callback)方法(例如,批检查(CHECKBATCH)方法)。批协调者206然后可以决定如何进行操作。例如,批协调者206可以识别在步骤222中被处理时失败的那些业务对象实例,并且将失败的业务对象实例的列表提供给服务管理者204。例如,在实施例中,来自修改步骤222的结果可以使用对于每个业务对象实
26、例执行的每个核心服务操作的结果代码来表达。对于每个这样的结果代码,批协调者206可以被编程(例如,使用开关(SWITCH)语句)为将该业务对象实例标记为通过(PASS)、失败(FAIL)或者被编程为采取一些改正动作。如果未识别到结果代码,则批协调者206可以将业务对象实例(例如,其ID)、结果代码和任何有关的信息记入错误日志(例如,图3中示出的数据存储器314)。批协调者206将失败的业务对象实例的列表发送给服务管理者204。在一些实施例中,批协调者206可以从批容器中去除失败的业务对象实例,同时允许对其他业务对象实例的进一步的处理。0033 在接下来处理阶段,在步骤224中对该业务对象实例执
27、行动作。服务管理者204接收步骤232的错误检查的结果。如果全部业务对象实例在步骤222中都已被处理并且没有错误,则对该批容器的处理继续进行对特定于业务对象实例的动作的处理。在以上的步骤216中记录的特定于业务对象实例的动作通过对服务提供者208做出适当的调用来执行。具体来说,服务管理者204向服务提供者208做出调用(例如,动作调用),以调取业务对象的特定方法以执行该动作。服务提供者208可以用指示是否对业务对象实例成功地执行了动作的结果代码对服务管理者204作出响应。0034 另一方面,如果在步骤222中一些业务对象实例失败,则那些业务对象实例不会前进到步骤224。反而,服务管理者204可
28、以对失败的业务对象实例执行“事务清理”,并且重复步骤222和步骤232。例如,假设对业务对象作出了若干修改。在一些实施例中,该修改可以存储在事务缓冲区(例如,与业务对象相关联的一个或更多个内部数据表格)中,以便在后面的步骤(例如,步骤228)中进行保存。如果后面出现了失败(例如,在动作调用中),则事务缓冲区可以被清空(例如,因为该数据可以被视为无效)。这是事务清理的示例。0035 可以理解,通过滤除失败的业务对象实例,服务管理者204可以将在步骤222中成功处理的业务对象实例转送到下一个处理阶段,即,步骤224,由此避免由于出现一个或更多个失败的业务对象实例而不得不异常中断(abort)全部批
29、处理作业。同时,如果事务清理可以被执行,则服务管理者204可以重新处理失败的业务对象实例。否则,服务管理者204可以将该业务对象实例记入错误日志而不执行进一步处理。0036 在步骤234中,服务管理者204可以调取批协调者206中的错误检查方法(例如,在步骤232中描述的批检查方法),以处理执行动作步骤224的结果。来自服务提供者208在执行动作步骤224中的批处理的结果可以传递到批协调者206。批协调者206识别那些失败的业务对象实例并且将列表提供给服务管理者204。例如,在实施例中,来自执行动作步骤224的结果可以经由对于每个业务对象实例执行的每个方法的结果代码来表达。对于每个这样的结果代
30、码,批协调者206可以被编程(例如,使用开关语句)为将该业务对象实例标记为通过、失败或者被编程为采取一些其它动作。如果未识别到结果代码,则批协调者说 明 书CN 103136041 A5/7页9206可以将业务对象实例(例如,其ID)、结果代码和任何有关的信息记入错误日志。批协调者206将失败的业务对象实例的列表发送给服务管理者204。0037 在下一个处理阶段中,对批容器中的经修改业务对象实例的最后的检查在步骤226中进行,例如,通过调取业务对象的检查方法来进行。服务管理者204接收步骤234的错误检查结果。如果全部业务对象实例都已被处理并且没有错误,则检查经修改的业务对象实例。具体来说,服
31、务管理者204可以调取服务提供者208以调用用于每个业务对象实例的适当的检查方法。服务提供者208可以用指示业务对象实例是否通过检查处理步骤的结果代码对服务管理者204作出响应。0038 例如,检查方法可以由服务管理者在业务对象服务提供者208上调取以触发“一致性”检查。这意谓着业务对象检查他们的事务状态/缓冲区以确定是否有可能并且被允许将它们的数据存储在数据库中。如果业务对象状态/缓冲区中存在任何的不一致,则BO服务提供者208可以指示拒绝(例如,经由检查方法的返回值)并且该事务不会被服务管理者204保存。一般地,错误消息可以被生成并且然后这些错误消息可以被显示在用户接口中,如果消费者是用户
32、接口的话。在实施例中,错误消息可以存储在错误日志(例如图3中示出的数据存储器314)中。0039 另一方面,如果在步骤224中一些业务对象实例失败,则那些业务对象实例不会前进到步骤226。反而,服务管理者204可以对失败的业务对象实例执行事务清理,并且重复步骤224和步骤234。可以理解,通过滤除失败的业务对象实例,服务管理者204可以将在执行动作步骤224中成功处理的业务对象实例转送到下一个处理阶段,即,步骤226。同时,如果事务清理可以被执行,则服务管理者204可以重新处理失败的业务对象实例。否则,服务管理者204可以将该业务对象实例记入错误日志而不执行进一步处理。0040 在步骤236中
33、,服务管理者204可以调取批协调者206中的错误检查方法以处理检查步骤226的结果。检查步骤226的结果可以传递到批协调者206。批协调者206识别那些失败的业务对象实例并且将列表提供给服务管理者204。例如,在实施例中,检查步骤226的结果可以经由对于每个业务对象实例执行的每个方法的结果代码来表达。对于每个这样的结果代码,批协调者206可以被编程(例如,使用开关语句)为将该业务对象实例标记为通过、失败或者被编程为采取一些其它动作。如果未识别到结果代码,则批协调者206可以将业务对象实例(例如,其ID)、结果代码和任何有关的信息记入错误日志。批协调者206将失败的业务对象实例的列表发送给服务管
34、理者204。0041 在下一个处理阶段中,批容器中的经修改和验证的业务对象实例在步骤228中进行保存(例如,写出到数据存储器)。服务管理者204接收步骤236的错误检查结果。如果所有业务对象实例在步骤226中都已被检查为没有错误,则可以保存所有经修改的业务对象实例。具体来说,服务管理者204可以调取服务提供者208以调用用于每个业务对象实例的适当的保存方法;例如,将经修改的业务对象实例写到数据库。服务提供者208可以用指示业务对象是否被验证的的结果代码对服务管理者204作出响应。0042 另一方面,如果在步骤226中一些业务对象实例未被检查(即,失败的检查处理),则那些业务对象实例不会前进到保
35、存步骤228。反而,服务管理者204可以对失败的业务对象实例执行事务清理,并且重复步骤226和步骤236。通过滤除失败的业务对象实例,服务管理者204可以将在检查步骤226中成功处理的业务对象实例转送到下一个处理阶段。说 明 书CN 103136041 A6/7页10同时,如果事务清理可以被执行,则服务管理者204可以重新处理失败的业务对象实例。否则,服务管理者204可以将该业务对象实例记入错误日志而不执行进一步处理。0043 在步骤238中,服务管理者204可以调取批协调者206中的错误检查方法以处理保存步骤228的结果。该结果可以传递给批协调者206中的错误检查方法。批协调者206识别那些
36、失败的业务对象实例并且将列表提供给服务管理者204。例如,在实施例中,来自保存步骤228的结果可以经由对于每个业务对象实例执行的每个方法的结果代码来表达。对于每个这样的结果代码,批协调者206可以被编程(例如,使用开关语句)为将该业务对象实例标记为通过、失败或者被编程为采取一些其它动作。如果未识别到结果代码,则批协调者206可以将业务对象实例(例如,其ID)、结果代码和任何有关的信息记入错误日志。批协调者206将失败的业务对象实例的列表发送给服务管理者204。0044 服务管理者204可以用结果代码对服务消费者202作出响应。在实施例中,该代码可以指示所有业务对象实例都已被成功地更新和保存,或
37、者指示一些业务对象实例已被成功地更新和保存,或者指示业务对象实例中的任何一个都没有被成功地更新和保存。此外,可以提供列出失败的业务对象实例以及失败发生在哪个处理阶段的报告。该报告可以包括关于重试的信息及其他附加信息。如果存在将要由服务管理者204处理的另一个批容器,则可以重复上述步骤222-238。0045 返回参考步骤220,当服务消费者202向服务管理者204发布批运行命令时,服务消费者可以指示服务管理者204在单个事务中处理批作业(批容器)。这是图2中示出的情景。在实施例中,服务管理者204可以在多个事务中处理批容器。例如,假设批作业包含1000个业务对象实例。可能期望将批容器作为十个单
38、独的事务来处理,每个事务对应100个业务对象实例。服务管理者204可以将每个事务的过程实例化,以并行处理这十个事务。在实施例中,服务管理者204可以将批容器中的每个业务对象实例的过程实例化。举例来说,如果批容器包含20个业务对象实例,则实际上可以将20个过程实例化,其中每个业务对象实例对应于一个过程。服务管理者204可以自己确定是否将批容器划分成多个事务(过程)。在实施例中,服务消费者202可以指示服务管理者204是否以及如何将批作业划分为多个事务。0046 图3示出实施例中的用于将批作业(批容器)划分成多个事务的工作流。服务管理者包含服务管理者前端304a和服务管理者后端304b。服务管理者
39、前端304a与服务消费者202通信。服务管理者前端304a与任务操控器前端302a通信。如下面将要解释的,任务管理者前端332a将过程312a、312b-312n实例化。每个过程312a包括任务操控器后端332b、服务管理者后端304b、批协调者206和服务提供者208的实例化。0047 图2中示出的批接收步骤210被表示为图3中的处理块A,并且在服务消费者202和服务管理者前端304a之间进行,如以上结合步骤212-218所解释的。当服务消费者202已经提交其所有批作业时,其然后可以向服务管理者前端304a发布批运行命令以执行(多个)批作业(步骤320)。0048 在步骤322中,服务管理者前端304a与任务操控器前端332a通信以将一个或更多个过程312a-312n实例化。如以上所解释的,服务消费者202可以指令如何将每个批作业划分成两个或更多个事务。可替换地,服务管理者前端304a可以独立于服务消费者202做出该确定。在实施例中,任务操控器前端332a可以通过被称为串行化的过程将批容器划说 明 书CN 103136041 A10
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1