掌桥专利:专业的专利平台
掌桥专利
首页

交易引擎

文献发布时间:2024-04-18 19:53:33


交易引擎

背景技术

在传统上,软件(包括用于管理商业企业的软件)是自包含的,并且在构成内部部署(on-premise)的计算系统的一个或多个本地机器上执行。期望使用软件工具的企业建立内部部署的计算系统,并且执行软件应用来在该计算系统上提供工具。云计算打破这种模式。云计算允许企业使用作为服务提供的云软件、平台、甚至计算基础设施来补充或替换内部部署的计算系统。

附图说明

在以下附图中,通过举例而非限制的方式来示出本公开。

图1是示出用于在混合计算环境中执行交易(transaction)的布置(arrangement)的一个示例的图。

图2是示出可使用图1的批量(volume)交易引擎执行的工作流程的一个示例的工作流程图。

图3是示出使用批量交易引擎执行交易的处理流程的一个示例的流程图。

图4是示出可由图1的批量交易引擎执行的处理流程的一个示例的流程图。

图5是示出可由图1的批量交易引擎执行的处理流程的一个示例的流程图。

图6是示出用于计算设备的软件架构的一个示例的框图。

图7是在计算机系统的示例形式下的机器的框图,其中,指令可以被执行,以使机器执行本文讨论的任何一种或多种方法。

具体实施方式

计算系统布置用于执行和管理交易,诸如例如在商业企业环境中的销售交易。例如,采购或供应商资源管理(SRM)系统可以管理与企业供应商的交易,以便采购原材料和库存。产品生命周期管理(PLM)系统可以管理与商品或服务的生命周期相关的交易和过程,包括例如原材料的获取和运输、制造任务的调度等。供应链管理(SCM)系统可以管理仓库操作,包括例如产品和原材料的移动。客户关系管理(CRM)系统可以存储和优化客户信息和互动的使用。销售系统可以管理商品或服务的销售的交易,例如,下订单、安排交货或装运、处理发票等。这些和各种其他的系统可以被访问或以其他方式用于管理企业的交易,包括销售交易。

在一些示例中,用于管理交易的一些或全部软件解决方案和系统作为内部部署的软件应用来执行。内部部署的软件应用通常由企业以现场或内部部署的方式建立的计算系统执行。内部部署的应用可以被实现为包括由驻留在内部部署的计算系统的一组(set)可执行文件、库等实现的一组一个或多个可执行文件、库等。与企业关联的用户从内部部署的计算系统访问软件应用。

当企业使用在内部部署的计算系统执行的内部部署的应用来维护和执行企业交易管理时,各种不同组件之间的协调和通信是可管理的。例如,内部部署的计算系统的管理员用户可以负责(并且可以直接访问)全部软件应用,以及用于执行软件应用和保存交易数据的硬件。

在一些示例中,期望将执行交易管理的一些或全部功能作为在云环境中执行的云应用来执行。云环境包括实现一个或多个虚拟和/或硬件服务器的一个或多个数据中心。例如,云应用的实例可以执行,以向用户组(group)(例如,与购买软件工具的访问的实体关联的用户组)提供软件工具。云应用的每个实例包括在云环境执行的一组一个或多个虚拟机和/或容器(container)。

云应用可以为企业提供各种优势。在一些示例中,云应用是根据软件即服务(SaaS)模式来实现的,其中,租用者企业从提供商企业购买云应用的使访问。这可以限制或有时消除租用者企业管理应用的实现细节的需要,诸如例如管理处理和数据存储硬件等。

商业企业越来越多地使用云应用,给交易管理带来复杂性。例如,企业可以在分布式或混合式计算环境中实现交易,其中,交易过程流的一些组件在一个位置(诸如在内部部署的计算系统)执行,并且交易过程流的其他组件在另一位置(诸如在云环境中实现的SaaS应用)执行。这可能导致各种内部部署和云上实现的应用之间的通信和协调增加。考虑这样的示例,其中,企业用内部部署的应用实现销售系统,并且使用云租赁来实现CRM系统。进行销售交易可能包括查询和/或更新CRM,以及例如使用内部部署的销售系统生成销售订单。

在一些示例中,也可能期望在多个不同的计算系统的位置实现销售平台应用。例如,第一企业可能期望有一个销售平台应用在内部部署的计算系统执行,并且另一销售平台应用在云上实现。此外,在一些示例中,期望企业支持期望销售企业的产品或服务的伙伴企业。例如,伙伴企业可以执行可启动和/或管理第一企业的销售交易的销售平台应用。

在分布式或混合式销售交易过程中,在处理交易的两个或更多个应用在不同的计算系统实现的情况下,可能难以设置和修改交易过程。例如,销售平台应用可能与多个内部部署和/或云上实现的组件协调,导致销售平台本身的复杂度增加。此外,在实现多个销售平台应用时,每个销售平台应用可能被编程为与多个不同和分布式的组件进行通信和协调。在期望修改交易流时,这可能产生具有挑战性的场景,因为对交易流进行改变可能包括修改多个不同的销售平台应用。

各种示例利用批量交易引擎来解决这些和其他挑战。批量交易引擎可以与一个或多个销售平台应用进行通信。销售平台应用可以经由应用编程接口(API)将交易请求发送到批量交易引擎。批量交易引擎可以执行实现交易的多个过程操作。执行过程操作可以包括与在不同的计算系统(诸如云环境和/或内部部署的计算系统)实现的各种不同的组件进行通信。

图1是示出用于在混合计算环境中执行交易的布置100的一个示例的图。布置100包括经由API 104与各个销售平台应用106、108、110、112进行通信的批量交易引擎102。批量交易引擎102可以在任何合适的计算环境中实现,包括例如在云环境和/或在内部部署的计算系统中实现。在图1的示例中,批量交易引擎102包括各种服务,包括编排器服务126、调度器服务128、规则/过程协调器服务130、集成管理器服务132、监测和审计服务134和支持服务136。

批量交易引擎102还与各种后端系统114、116、118、120、122、124进行通信。后端系统包括云后端系统114、116、118以及内部部署的后端系统120、122、124。云后端系统114、116、118包括在云环境中实现的应用。在一些示例中,云后端系统114、116、118包括在与批量交易引擎102相同的云环境中和/或在不同的云环境中执行的应用。内部部署的后端系统120、122、124包括在一个或多个内部部署的计算系统执行的应用。在一些示例中,批量交易引擎102经由防火墙107与内部部署的后端系统120、122、124进行通信。例如,防火墙107可以由用于将云上实现的应用连接到内部执行的应用的适当云连接器应用实现。此外,虽然图1没有示出,但是在一些示例中,如果云后端系统114、116、118在与批量交易引擎102不同的环境执行,则批量交易引擎102也可以在与云后端系统114、116、118进行通信时,利用防火墙。

在图1的示例中,云后端系统114、116、118包括销售后端系统114、合同管理后端系统116和数据库后端系统118。然而,可以理解,各种其他云后端系统(未示出)可以用于交易处理。此外,在图1的示例中,内部部署的后端系统包括销售后端系统120、合同管理后端系统122和数据库后端系统124,尽管也可以使用各种其他内部部署的后端系统。

布置100还包括各个销售平台应用106、108、110、112。销售平台应用106、108、110、112可以由正在销售商品和服务的企业和/或由伙伴企业实现。销售平台应用106、108、110、112可以被配置为与客户用户146和/或销售员用户148互动,以启动销售或其他交易。尽管图1示出一个客户用户146和一个销售员用户148,但是可以理解,多个客户用户146和/或多个销售员用户148可以利用各个销售平台应用106、108、110、112中的一些或全部。客户用户146和销售员用户148可以利用用户计算设备150、152来访问销售平台应用106、108、110、112。用户计算设备150、152可以是或包括任何适当的计算设备,诸如例如桌面(table)计算机、移动电话计算设备、膝上型计算机、台式计算机等。

在一些示例中,销售平台应用106、108、110、112中的一个或多个(经由诸如用户计算设备150的用户计算设备)向一个或多个客户用户146提供客户用户界面。客户用户146可以提供关于销售交易的信息,该销售交易可能涉及例如向客户用户146或关联企业提供商品和/或服务。

此外,在一些示例中,销售平台应用106、108、110、112中的一些或全部向一个或多个销售员用户148提供用户界面。销售员用户148可以与实现批量交易引擎102的企业和/或其他实体关联。销售员用户148可以访问销售平台应用106、108、110、112中的一个或多个,并且向客户提供提议销售的商品和/或服务的细节。

销售平台应用106、108、110、112可以生成描述所请求的交易的交易请求数据。例如,销售平台应用106、108、110、112可以与客户用户146和/或销售员用户148互动,以接收所请求的销售交易的指示。例如,销售交易可以包括向客户(例如,客户用户146或其他客户)销售商品和/或服务。销售平台应用106、108、110、112可以基于与客户用户和/或销售员用户的互动来生成交易请求数据。

销售平台应用106、108、110、112可以向API 104提供交易请求数据。交易请求数据描述所请求的交易。在一些示例中,销售平台应用106、108、110被配置为用API 104可读的格式来格式化和/或调度交易请求数据。API104将交易请求数据转发到批量交易引擎102。

编排器(orchestrator)服务126可以接收交易请求数据,并且选择用于执行交易的交易描述数据。交易描述数据描述要执行以实现交易的一组过程操作。在一些示例中,交易描述数据被存储在后端系统114、116、118、120、122、124。编排器服务126可以被编程为选择适当的后端系统114、116、118、120、122、124,并且查询该后端系统以获得交易描述数据。

集成管理器服务132可以被编程为与各个后端系统114、116、118、120、122、124通过接口连接(interface)。例如,编排器服务126可以查询集成管理器服务132,以访问存储交易描述数据的后端系统114、116、118、120、122、124,提示集成管理器服务132检索交易描述数据。

集成管理器服务132可以被编程为具有各个后端系统114、116、118、120、122、124的实现位置和访问细节。例如,集成管理器服务132可以被编程为与防火墙107(和/或实现防火墙107的云连接器应用)通过接口连接,以访问内部部署的后端系统114、116、118、120、122、124。集成管理器服务132也可以被编程为与各个云上实现的后端系统114、116、118通过接口连接。

交易描述数据可以描述用于执行所请求的交易的多个过程操作。考虑示例销售交易。第一过程操作可以包括访问CRM后端系统应用,以查询描述所请求的交易的客户的客户数据。如果客户数据指示客户适合交易,则第二过程操作可能涉及访问会计后端系统来生成发票。其他过程操作可能涉及例如生成向客户提供信贷的票据(如果相关),与SCM后端系统通过接口连接来准备和/或调度货物或商品的制造和/或服务的提供,等等。编排器服务126可以协调过程操作的执行。

调度器服务128可以生成用于执行交易的过程操作的调度(schedule)。调度可以在执行过程操作之前生成,并且可以具有一些或全部过程操作的调度时间。在一些示例中,调度操作在一个过程操作完成后执行,以确定下一过程操作的调度时间。

在一些示例中,监测和审计服务134监测交易的过程操作的执行。例如,在过程操作完成后,监测和审计服务134可以生成描述已完成的过程操作的对象标识符数据。集成管理器服务132可以将对象标识符数据写入与批量交易引擎102关联的持久性存储(persistence)。持久性存储可以是在实现批量交易引擎102的云或其他环境的本地持久性存储,和/或可以位于后端系统114、116、118、120、122、124中的一个或多个中。在一些示例中,监测和审计服务134还生成描述(例如,由于错误或其他异常情况)未完成的过程操作的对象标识符数据。描述未完成的过程操作的对象标识符数据还可以被写入与批量交易引擎102关联的持久性存储。

规则/过程协调器服务130可以经由用户计算设备142与管理员用户144进行通信。用户计算设备142可以类似于用户计算设备150、152。管理员用户144可以提供过程操作数据140,其提供新交易的过程操作的描述和/或修改现有交易的过程操作。在一些示例中,规则/过程协调器服务130还向管理员用户144提供一个或多个通知138。通知138可以指示交易的状态,包括例如交易是成功还是失败。

图2是示出可使用图1的批量交易引擎102执行的工作流程200的一个示例的工作流程图。在该示例中,批量交易引擎102执行包括N个过程操作的交易。批量交易引擎102(例如,经由集成管理器服务132的编排器服务126)检索交易描述数据202。交易描述数据202描述由批量交易引擎102执行的过程操作1-N,以执行交易。在该示例中,交易描述数据202还描述通知204、206。通知204、206可以由批量交易引擎102在过程操作完成时和/或如本文描述地发送到一个或多个管理员用户144。例如,交易描述数据202可以描述在过程操作M完成时要发送给一个或多个管理员用户144的通知204,以及在过程操作N完成时要发送给一个或多个管理员用户144的通知206。

在图2的示例中,过程操作1、2、M、N被划分为各个子操作。例如,过程操作1包括子操作1.1至1.n。过程操作2包括子操作2.1至2.n。过程操作M包括子操作M.1至M.n。过程操作N包括子操作N.1至N.n。

在图2的示例中,各个过程操作涉及从后端系统114、116、118、120、122、124中的一个或多个(在图2中一般显示为216)读取和/或向其写入。例如,一些过程操作可以从后端系统114、116、118、120、122、124读取数据。考虑涉及检查后端CRM系统以确定客户是否适合销售交易的示例过程操作或子操作。批量交易引擎可以查询CRM系统来接收客户的过去的销售和/或付款记录,以确定客户是否适合所请求的销售交易。过程操作或子操作的对象标识符数据可以包括从CRM系统读取的记录。

在一些示例中,过程操作或子操作生成要写入后端系统114、116、118、120的过程操作结果数据。考虑要生成销售的销售订单的另一示例过程操作或子操作。该过程操作或子操作可以生成描述期望的销售订单的数据,并且将销售订单数据提供给适当的后端系统,该后端系统可以生成销售订单。

在一些示例中,对于每个过程操作和/或子操作,交易描述数据202还可以描述哪个或哪些后端系统将与过程操作关联地通过接口连接。在完成与后端系统的通过接口连接后,批量交易引擎102可以生成对象标识符数据208、210、212、214。对象标识符数据208、210、212、214可以描述后端系统的访问。集成管理器服务132可以将对象标识符数据208、210、212、214写入与批量交易引擎102关联的持久性存储216,持久性存储216可以例如位于后端系统114、116、118、120中的一个或多个。

如果在过程操作1-N中的一个或多个期间发生异常,则批量交易引擎102可以生成异常票证数据218。异常票证数据218可以描述异常,包括例如发生异常的过程操作和/或子操作。在一些示例中,异常票证数据218可以指示由作为异常主体的过程操作和/或子操作访问或将访问的一个或多个后端系统。异常票证数据218也可以被写入持久性存储216。

图3是示出用于使用批量交易引擎102执行交易的过程流300的一个示例的流程图。在操作302中,云环境执行批量交易引擎102。在一些示例中,批量交易引擎102根据微服务架构来配置。例如,批量交易引擎102由在云环境中执行的松散耦合的微服务的集合实现。每个微服务还可以包括在由云环境实现的单独的虚拟机(VM)或容器中执行的单个可执行文件。单个微服务可以被编程以执行定义的任务或小的任务集,并且以定义的方式(例如,根据应用编程接口(API))与其他微服务互动。在一些示例中,批量交易引擎102的各个服务126、128、130、132、134、136被实现为微服务。执行批量交易引擎102可以包括启动(spin up)一个或多个容器,以执行一个或多个微服务或构成批量交易引擎102的其他组件。

在操作304中,批量交易引擎102接收描述第一交易的交易请求数据。交易请求数据可以例如从销售平台应用(诸如图1的销售平台应用106、108、110、112之一)接收。在操作306中,批量交易引擎102(例如,其编排器服务126)使用交易请求数据来选择交易的交易描述数据。

在操作308中,批量交易引擎102执行(例如,如由交易描述数据描述的)交易的第一过程操作。执行过程操作可以包括(例如,使用集成管理器服务132)与一个或多个后端系统309互动。在操作310中,批量交易引擎102(例如,集成管理器服务132)将对象标识符数据写入与批量交易引擎102关联的持久性存储。对象标识符数据描述在过程操作的执行期间批量交易引擎102和相关的后端系统309之间的互动。如本文描述的,与后端系统的互动可以包括一个或多个读取操作和/或一个或多个写入操作。此外,在一些示例中,执行过程操作可以包括与一个以上的后端系统309的交互。在这些示例中,集成管理器服务132可以生成和存储对象标识符数据的多个实例,和/或可以生成和存储描述与一个以上的后端系统309的交互的对象标识符数据。

在操作312中,批量交易引擎102确定交易描述数据是否包括额外的过程操作。如果是,则在操作308中,批量交易引擎102可以执行下一过程操作。如果交易中没有更多的过程操作,则在操作314中,批量交易引擎102可以等待下一交易。

图4是示出可由图1的批量交易引擎102(例如,其监测和审计服务134)执行以监测交易的过程操作的过程流400的一个示例的流程图。在操作402中,批量交易引擎102(例如,其监测和审计服务134)确定至少一个交易过程操作的调度时间。调度时间指示,例如,过程操作被期望或调度完成的时间。在一些示例中,确定过程操作的调度时间包括过程操作的一个或多个子操作的生成调度时间。

在一些示例中,操作402是针对单个过程操作和/或多个过程操作而执行的。在一些示例中,在批量交易引擎102开始执行交易的时间之前或附近,批量交易引擎102可以生成交易的每个过程操作的调度时间。在一些示例中,在先前过程操作完成后,批量交易引擎102生成过程操作的调度时间。

在操作404中,批量交易引擎102(例如,其监测和审计服务134)确定交易的第一过程操作是否按调度计划完成。如果第一过程操作按调度计划完成,则在操作408中,批量交易引擎102可以考虑下一操作。在一些示例中,批量交易引擎102(例如,其监测和审计服务134)可以返回到操作402,并且确定下一过程操作的调度时间。如果在一些示例中,批量交易引擎102已经生成下一过程操作的调度时间,则在操作404中,批量交易引擎102可以确定交易的下一过程操作是否按调度计划完成。

如果在操作404中,批量交易引擎102(例如,其监测和审计服务134)确定交易的过程操作没有按调度计划完成,则在操作406中,批量交易引擎102可以生成和写入异常票证数据。异常票证数据可以被写入如本文所述的与批量交易引擎102关联的持久性存储。

在各种示例中,批量交易引擎102利用在失败交易期间生成的审计数据来重新执行失败交易。审计数据可以包括异常票证数据和/或对象标识符数据。图5是示出可由图1的批量交易引擎102执行以重新执行先前失败的交易的过程流500的一个示例的流程图。

在操作502中,批量交易引擎102接收重新执行失败交易的指令。指令可以由最初请求交易的销售平台应用106、108、110、112生成,和/或可以响应于失败交易的失败而自动生成。在操作504中,批量交易引擎102访问描述失败交易的审计数据。审计数据可以包括,例如,在成功完成交易的过程操作和/或子操作之后写入的对象标识符数据和/或描述一个或多个失败的过程操作或子操作的异常票证数据。

通过使用审计数据,在操作506中,批量交易引擎102可以选择要执行的过程操作。例如,批量交易引擎102可以不重新执行(例如,如由对象标识符数据指示的)先前成功执行的交易的一些或全部过程操作。在一些示例中,批量交易引擎102可以选择(如由对象标识符数据和异常票证数据指示的)先前未成功执行的第一过程操作。在一些示例中,批量交易引擎102可以选择先前失败的操作的子操作,其中,子操作是在交易的先前执行中未成功完成的第一子操作。

在操作508中,批量交易引擎102执行在操作506中选择的过程操作。这可以包括与一个或多个后端系统509交互。在操作510中,批量交易引擎102(例如,集成管理器服务132)将对象标识符数据写入与批量交易引擎102关联的持久性存储。对象标识符数据描述在过程操作的执行期间批量交易引擎102和相关的后端系统509之间的互动。

在操作512中,批量交易引擎102确定交易描述数据是否包括额外的过程操作。如果是,则在操作508中,批量交易引擎102可以执行下一过程操作。如果交易中没有更多的过程操作,则在操作514中,批量交易引擎102可以等待下一交易。

鉴于上述公开内容,下面列出各种示例。应当注意,无论孤立或组合看待的示例的一个或多个特征应当被认为在本申请的公开范围内。

示例:

示例1是系统,包括:一种编程为执行批量交易引擎以执行操作的云平台部署,所述操作包括:从第一交易平台应用接收第一交易请求数据,第一交易请求数据描述第一交易;选择描述用于执行第一交易的多个过程操作的交易描述数据,交易描述数据描述第一过程操作和第二过程操作;执行第一过程操作,第一过程操作的执行包括访问在云平台部署执行的第一后端系统;将第一对象标识符数据写入与批量交易引擎关联的持久性存储,第一对象标识符数据描述对第一后端系统的访问;执行第二过程操作,第二过程操作的执行包括访问由内部部署的计算系统执行的第二后端系统;以及,将第二对象标识符数据写入与批量交易引擎关联的持久性存储,第二对象标识符数据描述对第一后端系统的访问。

在示例2中,示例1的主题可选地包括:其中,批量交易引擎还包括调度器服务,以及其中,交易描述数据还描述第三过程操作和第四过程操作,所述操作还包括:由调度器服务确定第三过程操作的调度时间和第四过程操作的调度时间;由批量交易引擎执行第三过程操作;由调度器服务确定第三过程操作无法在第四过程操作的调度时间之前完成;以及,将异常票证数据写入与批量交易引擎关联的持久性存储,异常票证数据描述第三过程操作和第四过程操作。

在示例3中,示例2的主题可选地包括:所述操作还包括:由批量交易引擎接收重新执行第一交易的请求;由批量交易引擎访问第一对象标识符数据、第二对象标识符数据和异常票证数据;由批量交易引擎使用第一对象标识符数据、第二对象标识符数据和异常票证数据来选择用于执行的第三过程操作;以及,由批量交易引擎执行第三过程操作。

在示例4中,示例1至3中的任何一个或多个的主题可选地包括:第一交易请求数据由批量交易引擎经由交易引擎的应用编程接口(API)接收。

在示例5中,示例1至4中的任何一个或多个的主题可选地包括:所述操作还包括:由批量交易引擎从第二交易平台应用接收第二交易请求数据,第二交易请求数据描述第二交易。

在示例6中,示例1至5中的任何一个或多个的主题可选地包括:所述操作还包括过程协调器服务,所述操作还包括:由过程协调器服务从管理员用户接收输入数据;以及,由过程协调器服务至少部分地基于输入数据来生成交易数据。

在示例7中,示例1至6中的任何一个或多个的主题可选地包括:所述操作还包括:由过程协调器服务从管理员用户接收更新数据,更新数据描述对第一过程操作或第二过程操作中的至少一个的改变;以及,由过程协调器服务至少部分地基于更新数据来修改交易数据。

在示例8中,示例1至7中的任何一个或多个的主题可选地包括:第一过程操作的执行产生第一过程操作结果数据,以及,对第一后端系统的访问包括将第一过程操作结果数据写入第一后端系统。

在示例9中,示例1至8中的任何一个或多个的主题可选地包括:对第二后端系统的访问包括从第二后端系统读取操作数据。

示例10是一种用于在混合计算环境中执行交易的方法,所述方法包括:在云平台部署中执行批量交易引擎,批量交易引擎包括编排器服务和集成管理器服务;由批量交易引擎从第一交易平台应用接收第一交易请求数据,第一交易请求数据描述第一交易;由编排器服务选择描述用于执行第一交易的多个过程操作的交易描述数据,交易描述数据描述第一过程操作和第二过程操作;由批量交易引擎执行第一过程操作,第一过程操作的执行包括访问在云平台部署执行的第一后端系统;由集成管理器服务将第一对象标识符数据写入与批量交易引擎关联的持久性存储,第一对象标识符数据描述对第一后端系统的访问;由批量交易引擎执行第二过程操作,第二过程操作的执行包括访问由内部部署的计算系统执行的第二后端系统;以及,由集成管理器服务将第二对象标识符数据写入与批量交易引擎关联的持久性存储,第二对象标识符数据描述对第一后端系统的访问。

在示例11中,示例10的主题可选地包括:其中,批量交易引擎还包括调度器服务,并且其中,交易描述数据还描述第三过程操作和第四过程操作,所述方法还包括:由调度器服务确定第三过程操作的调度时间和第四过程操作的调度时间;由批量交易引擎执行第三过程操作;由调度器服务确定第三过程操作无法在第四过程操作的调度时间之前完成;以及,将异常票证数据写入与批量交易引擎关联的持久性存储,异常票证数据描述第三过程操作和第四过程操作。

在示例12中,示例11的主题可选地包括:由批量交易引擎接收重新执行第一交易的请求;由编排器服务访问第一对象标识符数据、第二对象标识符数据和异常票证数据;由编排器服务使用第一对象标识符数据、第二对象标识符数据和异常票证数据来选择用于执行的第三过程操作;以及,由批量交易引擎执行第三过程操作。

在示例13中,示例10至12中的任何一个或多个的主题可选地包括:第一交易请求数据由编排器服务经由交易引擎的应用编程接口(API)接收。

在示例14中,示例10至13中的任何一个或多个的主题可选地包括:由批量交易引擎从第二交易平台应用接收第二交易请求数据,第二交易请求数据描述第二交易。

在示例15中,示例10至14中的任何一个或多个的主题可选地包括:批量交易引擎还包括过程协调器服务,所述方法还包括:由过程协调器服务从管理员用户接收输入数据;以及,由过程协调器服务至少部分地基于输入数据来生成交易描述数据。

在示例16中,示例10至15中的任何一个或多个的主题可选地包括:由过程协调器服务从管理员用户接收更新数据,更新数据描述对第一过程操作或第二过程操作中的至少一个的改变;以及,由过程协调器服务至少部分地基于更新数据来修改交易描述数据。

在示例17中,示例10至16中的任何一个或多个的主题可选地包括:第一过程操作的执行产生第一过程操作结果数据,以及,对第一后端系统的访问包括将第一过程操作结果数据写入第一后端系统。

在示例18中,示例10至17中的任何一个或多个的主题可选地包括:对第二后端系统的访问包括从第二后端系统读取操作数据。

示例19是一种在其上包括指令的非暂时性机器可读介质,指令在由至少一个处理器执行时,使至少一个处理器执行操作,所述操作包括:在云平台部署中执行批量交易引擎,批量交易引擎包括编排器服务和集成管理器服务;从第一交易平台应用接收第一交易请求数据,第一交易请求数据描述第一交易;选择描述用于执行第一交易的多个过程操作的交易描述数据,交易描述数据描述第一过程操作和第二过程操作;执行第一过程操作,第一过程操作的执行包括访问在云平台部署执行的第一后端系统;将第一对象标识符数据写入与批量交易引擎关联的持久性存储,第一对象标识符数据描述对第一后端系统的访问;执行第二过程操作,第二过程操作的执行包括访问由内部部署的计算系统执行的第二后端系统;以及,将第二对象标识符数据写入与批量交易引擎关联的持久性存储,第二对象标识符数据描述对第一后端系统的访问。

在示例20中,示例19的主题可选地包括:其中,批量交易引擎还包括调度器服务,并且其中,交易描述数据还描述第三过程操作和第四过程操作,所述操作还包括:由调度器服务确定第三过程操作的调度时间和第四过程操作的调度时间;由批量交易引擎执行第三过程操作;由调度器服务确定第三过程操作无法在第四过程操作的调度时间之前完成;以及,将异常票证数据写入与批量交易引擎关联的持久性存储,异常票证数据描述第三过程操作和第四过程操作。

图6是示出用于计算设备的软件架构602的一个示例的框图600。架构602可以与(例如,如本文所述的)各个硬件架构结合使用。图6仅为软件架构的非限制性示例,并且许多其他架构可以被实现为促进本文描述的功能。示出了有代表性的硬件层604,并且其可以表示例如上述的计算设备中的任何一个。在一些示例中,硬件层604可以根据图6的计算机系统的架构来实现。

有代表性的硬件层604包括具有关联的可执行指令608的一个或多个处理单元606。可执行指令608表示软件架构602的可执行指令(包括本文描述的方法、模块、子系统和组件等的实现),并且还可以包括存储器和/或存储模块610,其还具有可执行指令608。硬件层604还可以包括由其他硬件612指示的其他硬件,其他硬件612表示硬件层604的任何其他硬件,诸如示为架构602的部分的其他硬件。

在图6的示例架构中,软件架构602可以被概念化为层的堆叠,其中,每个层提供特定功能。例如,软件架构602可以包括诸如操作系统614、库616、框架/中间件618、应用620和演示层644的层。在操作上,应用620和/或各个层内的其他组件可以通过软件栈唤出(invoke)API调用624,并且响应于API调用624,访问示为消息626的响应、返回值等。所示的层在本质上是有代表性的,并且不是全部的软件架构具有全部的层。例如,一些移动或专用的操作系统可能不提供框架/中间件层618,而其他操作系统可以提供这种层。其他软件架构可能包括额外或不同的层。

操作系统614可以管理硬件资源,并且提供公共服务。操作系统614可以包括,例如,内核628、服务630和驱动632。内核628可以作为硬件和其他软件层之间的抽象层。例如,内核628可以负责内存管理、处理器管理(例如,调度)、组件管理、网络、安全设置等。服务630可以提供其他软件层的其他公共服务。在一些示例中,服务630包括中断服务。中断服务可以检测中断的接收,并且作为响应,使架构602暂停其当前处理,并在访问中断时执行中断服务例程(ISR)。

驱动632可以负责控制底层硬件或与其通过接口连接。例如,驱动632可以包括显示驱动、相机驱动、

库616可以提供可由应用620和/或其他组件和/或层利用的公共基础设施。库616通常提供允许其他软件模块以比与底层的操作系统614功能(例如,内核628、服务630和/或驱动632)直接通过接口连接更容易的方式执行任务的功能。库616可以包括可提供诸如存储器分配功能、字符串操作功能、数学函数等的功能的系统库634(例如,C标准库)。此外,库616可以包括API库636,诸如媒体库(例如,支持呈现和操作各种媒体格式(诸如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG)的库)、图形库(例如,可用于在显示器上渲染图形内容的2D和3D的OpenGL框架)、数据库库(例如,可提供各种关系型数据库功能的SQLite)、网络库(例如,可提供网络浏览功能的WebKit)等。库616还可以包括向应用620和其他软件组件/模块提供许多其他API的各种各样的其他库638。

框架618(有时也称为中间件)可以提供可由应用620和/或其他软件组件/模块利用的更高级的公共基础设施。例如,框架618可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架618可以提供可由应用620和/或其他软件组件/模块利用的各种其他API,其中一些API可能特定于特定的操作系统或平台。

应用620包括内置应用640和/或第三方应用642。有代表性的内置应用640的示例可以包括但不限于联系人应用、浏览器应用、图书阅读器应用、位置应用、中间应用(medianapplication)、消息应用和/或游戏应用。第三方应用642可以包括任何内置应用640以及范围广泛的其他应用。在具体示例中,第三方应用642(例如,由特定平台的供应商以外的实体使用Android

应用620可以利用内置的操作系统功能(例如,内核628、服务630和/或驱动632)、库(例如,系统库634、API库636和其他库638)和框架/中间件618来创建用户界面,以与系统的用户交互。可替换或附加地,在一些系统中,与用户的交互可以通过演示层(presentation layer)发生,诸如演示层644。在这些系统中,应用/模块的“逻辑”可以从与用户交互的应用/模块的各方面分离。

一些软件架构利用虚拟机。在图6的示例中,这是通过虚拟机648来说明的。虚拟机创建软件环境,其中,应用/模块可以像它们在硬件计算设备上执行一样执行。虚拟机由主机操作系统(操作系统614)托管,并且通常(尽管不总是)具有虚拟机监视器646,其管理虚拟机648的操作以及与主机操作系统(即,操作系统614)通过接口连接。软件架构在虚拟机648(诸如操作系统650、库652、框架/中间件654、应用656和/或演示层658)内执行。在虚拟机648内执行的软件架构的这些层可以与先前描述的对应层相同,或可以不同。

模块、组件和逻辑

在本文中,特定实施例被描述为包括逻辑或若干个组件、模块或机制。模块可以构成软件模块(例如,包含(1)在非暂时性机器可读介质上或(2)在传输信号中的代码)或由硬件实现的模块。由硬件实现的模块是能够执行特定操作的有形单元,并且可以以特定方式进行配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立、客户端或服务器计算机系统)或者一个或多个硬件处理器可以由软件(例如,应用或应用部分)配置为由硬件实现的模块,其操作以执行本文描述的特定操作。

在各实施例中,由硬件实现的模块可以通过机械或电子方式实现。例如,由硬件实现的模块可以包括永久配置以执行特定操作(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))的专用电路或逻辑。由硬件实现的模块还可以包括由软件临时配置以执行特定操作的(例如,包含在通用处理器或另一可编程处理器内的)可编程逻辑或电路。应当理解,在专用和永久配置的电路中,或在临时配置的(例如,由软件配置的)电路中,以机械方式实现由硬件实现的模块的决定可能由成本和时间考虑驱动。

因此,术语“由硬件实现的模块”应被理解为包括有形实体,无论是物理构造、永久配置(例如,硬接线)、还是临时或过渡配置(例如,编程)以用特定方式操作和/或执行本文描述的特定操作的实体。考虑到由硬件实现的模块被临时配置(例如,编程)的实施例,由硬件实现的模块中的每一个不需要在任何一个时刻被配置或实例化。例如,在由硬件实现的模块包括使用软件配置的通用处理器的情况下,通用处理器可以在不同时间被配置为各自不同的由硬件实现的模块。软件可以相应地配置处理器,例如,以在一个时刻构成特定的由硬件实现的模块,并且在不同的时刻构成不同的由硬件实现的模块。

由硬件实现的模块可以向其他由硬件实现的模块提供信息,并且从其接收信息。因此,所描述的由硬件实现的模块可以被视为是通信耦合的。在多个这种由硬件实现的模块同时存在的情况下,可以通过信号传输(例如,在连接由硬件实现的模块的适当的电路和总线上)实现通信。在多个由硬件实现的模块在不同时间被配置或实例化的实施例中,这些由硬件实现的模块之间的通信可以例如通过在多个由硬件实现的模块能访问的存储器结构中的信息的存储和检索来实现。例如,一个由硬件实现的模块可以执行操作,并且将该操作的输出存储在与其通信耦合的存储器设备中。然后,另一由硬件实现的模块可以在稍后的时间访问存储器设备,以检索和处理所存储的输出。由硬件实现的模块也可以启动与输入或输出设备的通信,并且可以对资源(例如,信息的集合)操作。

本文描述的示例方法的各种操作可以至少部分地由(例如,由软件)临时配置或永久配置以执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,这些处理器可以构成操作以执行一个或多个操作或功能的由处理器实现的模块。在一些示例实施例中,本文提到的模块可以包括由处理器实现的模块。

类似地,本文描述的方法可以至少部分地由处理器实现。例如,方法的至少一些操作可以由一个或多个处理器或由处理器实现的模块执行。特定操作的执行可以散布于在一个或多个处理器之间,不仅驻留在单个机器内,而且部署在若干个机器上。在一些示例实施例中,一个或多个处理器可以位于单个位置(例如,在家庭环境、办公环境或服务器场内),而在其他实施例中,处理器可以分布于多个位置。

一个或多个处理器还可以在“云计算”环境中或作为“软件即服务”(SaaS)操作,以支持相关操作的执行。例如,至少一些操作可以由(作为包括处理器的机器的示例的)计算机组执行,这些操作可经由网络(例如,互联网)和经由一个或多个适当的接口(例如,API)访问。

电子装置和系统

示例实施例可以用数字电子电路来实现,或用计算机硬件、固件或软件来实现,或用它们的组合来实现。示例实施例可以使用计算机程序产品(例如,有形包含在信息载体中的计算机程序)来实现,例如,在用于由数据处理装置(例如,可编程处理器、计算机或多个计算机)执行或控制其操作的机器可读介质中实现。

计算机程序可以用任何形式的编程语言(包括编译或解释语言)来编写,并且它可以以任何形式部署,包括作为独立程序或作为模块、子例程或适合在计算环境中使用的其他单元。计算机程序可以被部署为在一个计算机上或在位于一个站点的,或散布于多个站点上并通过通信网络相互连接的多个计算机上执行。

在示例实施例中,操作可以由一个或多个可编程处理器执行,一个或多个可编程处理器执行计算机程序,以通过对输入数据操作并生成输出来执行功能。方法操作还可以由专用的逻辑电路(例如,FPGA或ASIC)来执行,并且示例实施例的装置可以被实现为专用逻辑电路。

计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行互动。客户端和服务器的关系是由于计算机程序在各自的计算机上运行且彼此之间具有客户端服务器关系而产生的。在部署可编程计算系统的实施例中,应当理解,硬件和软件架构都值得考虑。具体而言,应当理解,是在永久配置的硬件(例如,ASIC)中、还是在临时配置的硬件(例如,软件和可编程处理器的组合)中、还是在永久和临时配置的硬件的组合中实现特定功能的选择可以是设计选择。下面列出在各种示例实施例中可部署的硬件(例如,机器)和软件架构。

示例机器架构和机器可读介质

图7是在计算机系统700的示例形式下的机器的框图,在计算机系统700中,指令724可以被执行,以使机器执行本文讨论的任何一种或多种方法。在替代实施例中,机器作为独立设备操作,或者可以连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器客户端网络环境中以服务器或客户端机器的身份操作,或在对等(或分布式)网络环境中作为对等机器操作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络设备(appliance)、网络路由器、交换机或网桥、或能够执行指定要由机器采取的动作的(依次或其他的)指令的任何机器。此外,虽然仅示出单个机器,但是术语“机器”也应被视为包括单独或联合执行一组(或多组)指令以执行本文讨论的任何一种或多种方法的机器的任何集合。

示例计算机系统700包括经由总线708彼此通信的处理器702(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)、主存储器704和静态存储器706。计算机系统700还可以包括视频显示单元710(例如,液晶显示器(LCD)或阴极射线管(CRT))。计算机系统700还包括字母数字输入设备712(例如,键盘或触感显示屏幕)、用户界面(UI)导航(或光标控制)设备714(例如,鼠标)、磁盘驱动单元716、信号生成设备718(例如,扬声器)和网络接口设备720。

机器可读介质

磁盘驱动单元716包括在其上存储有一组或多组数据结构和指令724(例如,软件)的机器可读介质722,一组或多组数据结构和指令724包含本文描述的任何一个或多个方法或功能,或者被其利用。在主存储器704和处理器702还构成机器可读介质722的情况下,指令724还可以完全或至少部分地驻留在主存储器704内,和/或在其被计算机系统700执行期间,完全或至少部分地驻留在处理器702内。

虽然机器可读介质722在示例实施例中被示为单个介质,但是术语“机器可读介质”可以包括存储一个或多个指令724或数据结构的单个介质或多个介质(media)(例如,集中式或分布式数据库、和/或关联的缓存和服务器)。术语“机器可读介质”也应被视为包括能够存储、编码或携带指令724以供机器执行并使机器执行本公开的任何一个或多个方法的任何有形介质、或者能够存储、编码或携带由这种指令724利用或与这种指令724关联的数据结构的任何有形介质。术语“机器可读介质”应当相应地包括但不限于固态存储器以及光学和磁性介质。机器可读介质722的具体示例包括非易失性存储器,举例来说,包括:半导体存储器设备,例如,可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存存储器设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及,CD-ROM和DVD-ROM盘。

传输介质

此外,指令724可以使用传输介质来在通信网络726上传输或接收。指令724可以使用网络接口设备720和若干个公知的传输协议中的任何一个(例如,HTTP)来传输。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、移动电话网络、普通老式电话(POTS)网络和无线数据网络(例如,WiFi和WiMax网络)。术语“传输介质”应被视为包括能够存储、编码或携带用于由机器执行的指令724的任何无形介质,并且包括数字或模拟通信信号或其他无形介质,以促进这种软件的通信。

尽管已经参考具体的示例实施例来描述实施例,但是可以看到,在不脱离本公开的更广泛的精神和范围的情况下,可以对这些实施例进行各种修改和改变。因此,本说明书和附图应以说明性而非限制性的意义来考虑。构成本文的部分的附图以说明的方式而非限制的方式示出可实施本主题的具体实施例。所示的实施例被描述得足够详细,以使本领域技术人员能够实施本文公开的教导。其他实施例可以被利用,并且从中得出,使得在不脱离本公开范围的情况下,可以进行结构和逻辑上的替换和改变。因此,本详细说明不应被理解为限制性的意义,并且各种实施例的范围仅由所附的权利要求以及这些权利要求所赋予的全部等同物来限定。

为了方便,本发明主题的这些实施例在本文中可以单独和/或集体地被称为术语“发明”,如果事实上公开一个以上的发明或发明构思,这不意味着自愿将该申请的范围限制于任何单个发明或发明构思。因此,尽管本文已经示出和描述具体实施例,但是应当理解,旨在实现相同目的的布置可以替代所示的具体实施例。本公开旨在涵盖各种实施例的任何和全部改编或变体。对于本领域技术人员来说,在查阅上面的描述后,可以看出上述实施例的组合和本文未具体描述的其他实施例。

技术分类

06120116337538