具体实施方式
图1是用于动态建模和执行数字内容分发处理的系统100的概念图。系统100可以被用于创建用于建立和/或分发数字媒体诸(如电影或视频游戏)的定制过程。处理编辑图形用户接口(GUI)102向用户提供添加、移动和/或修改分发处理108内的个体活动104和/或子活动106的能力。然后可以保存该分发处理108。
图形分发流水线模型110给出了定制分发处理108。当调用(即,加载、调用、运行或执行)该分发处理108时,以由分发处理108确定的方式来执行给出的活动104和/或子活动106。例如,活动104和/或子活动106可以由发起工作室(orginating studio)112、外部实体114(例如,图形编辑销售商、声轨修改销售商、专业评分和/或评论委员会)和/或终端用户116。
如处理编辑GUI 102中所示,编辑框118包含“客户服务处理A”120的部分(例如,分发处理108)。该“客户服务处理A”120代表“好莱坞航空公司”客户端122而被修改。分发处理108的一部分108a的模型(包括活动104和/或子活动106)在编辑框118中是可视的。每个活动104和/或子活动106表示可以在分发处理108过程中执行的离散任务。一般类别的活动104和/或子活动106可以包括通知、请求、信息传送、认证和/或数字媒体操作。下面描述活动类别的更清楚的示例。
模板菜单124包含用于编辑位于编辑框118内的活动104和/或子活动106的可选模板。模板菜单124包括编辑选项,例如但并不限于,用于添加、修改或重排活动、子活动、或者活动104和/或子活动106的组的选项。模板可以包括,例如,用于执行一般分发任务诸如获取对有官方许可数字内容进行修改的批准的活动的分组。
用户选择“其它”模板选项126。通过将“其它”模板选项126拖拽到编辑框118中,用户可以将活动组合104a拖放到分发处理108中。活动分组104e包括被连接到三个卫星子活动106b、106c、106d的子活动106a。例如,活动分组104e可以实现从三个独立实体(例如,内部部件、外部实体等)请求输入的分发处理任务。
在将活动分组104e引入分发处理108之后,用户可以保存对分发处理108的修改。现在,在图形分发流水线模型110内可以看到活动分组104e。图形分发流水线模型110可以给出完整的分发处理流程108。尽管在图形分发流水线模型110内仅给出了活动和子活动,但是还可以将其它流程控制器诸如判定分支、计时器或递归创建到分发处理108中。
并不是所有的活动104和/或子活动106都直接附加到分发处理108的流水线上。活动104c位于分发处理108的流水线之上。未连接的活动可涉及消息处理、异常处理或中断处理过程。例如,如果在摄取新的数字内容(例如,活动104a,104b)的过程中检测到异常,则可以调用该异常活动(例如104c)以便取消、重启或纠正该问题。
在调用分发处理108时,可以由工作室112、外部实体114和/或终端用户116执行活动104和/或子活动106。工作室112(例如,动画片电影制片厂、视频游戏设计者等)包括数字仓库128。数字仓库128(例如,一个或多个大容量存储设备,诸如硬盘驱动器等)存储正由分发处理108操作的数字媒体。例如,数字仓库128可以包含电影。为了向终端用户116分发该电影,可以首先从数字仓库中读取该电影。
可以与外部实体114共享该电影和/或其它信息,如双向箭头130所示。还可以与终端用户116一起共享该电影和/或其它信息,如双向箭头132所示。此外,终端用户116可以与外部实体114共享该电影和/或其它信息,如双向箭头134所示。按照分发处理108内所创建的活动和/或子活动的规定,箭头130、132和134可以进行任意次数并且以任意顺序执行。
图2是用于根据已存储的模板来创建数字内容分发处理的动态模型的用户接口200的概念图。用户接口200例如可以用于产生如图1所示的分发处理108。使用该用户接口200,用户可以得益于所存储的模板来加快设计定制的数字内容分发处理的过程。某些活动和/或活动组合在大多数客户端之间或者类似客户端的群组之间是共用的。通过将标准活动构件存储在模板内,当构造新的分发处理或者更新所存储的分发处理时,用户可以得益于已有的分发处理设计。
用户接口200包括模板菜单202和编辑框204。模板菜单202包含四个主题标题206:“航空公司”标题206a、“电缆提供商”标题206b、“市场”标题206c、以及“其它”标题206d。主题标题206可以用于根据客户端的类型(例如,“航空公司”206a、“电缆提供商”206b)、客户端的位置(例如,“市场”206c)以及标准分发任务(例如,“其它”206d)来对模板进行分组。也可以是其它主题标题。
每个主题标题206包括一个或多个已存储的模板208。“航空公司”标题206a包括涉及任意航空公司分发处理通用的一个或多个模板的“通用”模板208a。“航空公司”标题206a下的其余模板208涉及专用航空公司客户端(例如,“好莱坞”模板208b、“Riverdale”模板208c和“Canyon Run”模板208d)。“电缆提供商”标题206b包括专用于两个电缆提供商客户端的模板:“中央”模板208e和“山脉”模板208f。“市场”标题206c包括专用于“亚洲”市场208g、“欧洲”市场208h和“北美”市场208i(例如,电影工业市场等)的模板。“其它”标题206d包括用于电影格式标准的模板,诸如闭路字幕模板208j、配音模板208k、美国国家电视制式委员会(NTSC)格式模板208l、以及逐行倒相制式(PAL)格式模板208m。在模板菜单202下也有工作室批准模板208n。
在编辑窗口204内可以看到编辑会话。在编辑框204内以顺时针方式布置的分发处理210正被修改。编辑框204被分成六个单元204a至204f。编辑框204内的每个单元,例如,可以表示一个单独的模板类别。编辑框204内的每个单元包括一个或多个活动212和/或子活动214。第一单元204a包括服务活动212a和错误/完成检测活动212b。
用户选择通用模板208a并将其拖拽到第二单元204b中。如预览图像216所示,通用模板208a包括三个活动:“销售商1:屏幕大小编辑”活动212c、“销售商2:内容编辑”活动212d、以及“销售商2:时间编辑”活动212e。活动212c、212d、212e内的销售商标号可以属于将要执行相应活动212c、212d或212e的两个单独的外部实体(例如,图1中所描述的外部实体114)。通用模板208a内的这三个活动212c、212d、212e可以涉及大多数航空公司分发处理通用的活动。
第三单元204c包含包括四个子活动的活动212f,四个子活动为:“工作室批准”子活动214a、“会计批准”子活动214b、“法律部门批准”子活动214c、以及“创造性批准”子活动214d。这些批准可以涉及由活动212c、212d和212e在第二框204b内进行的修改。
接着,分发处理210输入第四单元204d,在此,取决于决策器218,“销售商3:航空公司水印”活动212g导致“销售商1:航空公司内容编辑”活动212h或“航空公司批准”活动212i。活动212g、212h和212i可以是专门隶属于特定航空公司客户端的。活动212g、212h和212i例如与“好莱坞”模板208b、“Riverdale”模板208c和“CanyonRun”模板208d有关。
第五单元204e包括与第三单元204c内相同的活动结构。将工作室批准活动212j从工作室批准模板208n中拖拽第五单元204e中。工作室批准活动212j可以涉及批准在第四单元204d内由活动212g、212h和212i所进行的修改。在第六单元204f中利用终端用户活动212k完成分发处理210。终端用户活动212k可以涉及将数字内容传送给航空公司客户端。
图3是示出了图2的系统200的外部接口的处理流程图300。该处理流程图300包括临时存储设备302,该临时存储设备302与工作室112(如图1中所述)、数字仓库128、第一销售商304、第二销售商306、第三销售商308、航空公司310以及飞机312进行通信。一组双向箭头示出了临时存储设备302以及内部和/或外部实体112、128、304、306、308、310和312之间的通信步骤314。双向箭头314可以表示通过通信介质诸如因特网、以太网、局域网(LAN)或广域网(WAN)等的安全的有线和/或无线通信链路。
在执行该分发处理210之前,可以从接收方(例如,航空公司310)接收包括关于所需数字内容的信息的请求。该请求可以包括关于所需数字内容的信息,诸如文件名和目的信息。启动该分发处理210以便实现来自该接收方的请求。
分发处理210开始于将来自安全的长期存储器的数字内容传送到临时存储位置以便进行处理。临时存储设备302(例如,一个或多个大容量存储设备,诸如硬盘驱动器等)在第一通信步骤314a接收来自数字仓库128的数字内容。服务活动212a(如图2中所示)将该数字内容的拷贝传送到临时存储设备302中。在此,术语“数字内容”可以指从该数字仓库128中传送来的所有或部分数字内容。临时存储设备302与实体112、304、306、308、310和312中的一个或多个之间的数字内容的共享可以包括临时存储设备302的内容的内部和/或远程访问和/或临时存储设备302与实体112、128、304、306、308、310和312中的一个或多个之间的数字媒体的传送。
在第二通信步骤314b中,与工作室112共享该数字内容,允许错误/完成检测活动212b来验证该内容传送。在第三通信步骤314c中,第一销售商304接收来自该临时存储器302的数字内容。第一销售商304将屏幕大小编辑活动212c应用于该数字内容。在完成之后,第一销售商304将修改过的数字内容返回到临时存储设备302。
在第四通信步骤314d中,第二销售商306接收来自临时存储器302的数字内容。第二销售商306对该数字内容执行内容编辑活动212d和时间编辑活动212e。在完成之后,第二销售商306将修改过的数字内容返回到临时存储设备302。
在第五通信步骤314e中,该工作室接收来自临时存储器302的数字内容。法律部门316应用法律部门批准子活动214c,会计部门318应用会计批准子活动214b,以及创造性部门320应用创造性批准子活动214d(不必按照这种操作顺序)。工作室112应用工作室批准子活动214a并将该数字内容返回到临时存储设备302。
在第六通信步骤314f中,临时存储设备302与第三销售商308共享该数字内容。第三销售商308执行航空公司水印活动212g,并将该数字内容返回到临时存储设备302。在第七通信步骤314g中,第一销售商304根据决策器218的结果有选择地接收来自临时存储设备302的数字内容。第一销售商304将该航空公司内容编辑活动212h应用到该数字内容,并将该数字内容返回到临时存储设备302。
在第八通信步骤314h中,航空公司310接收来自临时存储设备302的数字内容。航空公司310接收航空公司批准活动212i并将该数字内容返回给临时存储设备302。在第九通信步骤314i中,该工作室接收来自临时存储设备302的数字内容。法律部门316应用法律部门批准子活动214g,会计部门318应用会计批准子活动214f,以及创造性部门320应用创造性批准子活动214h(不必按照这种操作顺序)。
该工作室112应用工作室批准子活动214e,并将该数字内容返回到临时存储设备302。在第十通信步骤314j,临时存储设备302将该数字内容返回给航空公司312,在航空公司312,可以呈现该数字内容以供公众浏览。
图4是用于动态建模和执行数字内容分发处理的示例性架构400。架构400通常包括处理器402、用户接口404、提供存储器以用于数字仓库406的一个或多个数字大容量存储设备、存储介质408以及活动数据库410。
架构400还包括各种硬件或软件元件,诸如安全模块412、内容编辑器414、处理器模型器416以及规则引擎418。该结构400中的各个元件都通过通信链路422(例如,内部系统总线、内联网、有线和/或无线LAN等)连接。架构400通过外部接口420进行通信。
用户通过用户接口404(例如,GUI)与处理模型器应用程序416进行交互,以便图形化地将数字内容分发处理定义为一系列活动和子活动。当产生该分发处理时,该用户可以包括预定的被存储在活动数据库410内的活动模板。然后,用户可以将定制的分发处理保存到存储介质408。
当执行存储介质408内所保存的分发处理时,规则引擎418将包含在该图形的数字内容分发处理内的每个活动和子活动与一个或多个可执行任务进行匹配。该分发处理对其进行操作的数字内容被保存在数字仓库406内。数字仓库406为该数字内容提供安全长期存储手段。当调用分发处理时,可将该数字内容从数字仓库406传送到一个或多个临时存储位置诸如存储介质408。
可以对数字内容执行内部修改活动。响应于安全活动的执行,安全模块412将加密技术和/或其它安全措施应用到该数字内容。响应于编辑或格式化活动的执行,内容编辑器414将编辑和/或编码手段应用到该数字内容。
还可以对数字内容执行外部修改活动。外部接口420可以允许数字内容通过安全网络连接来被上传到外部实体(未示出)。也可以为外部实体提供对保存在架构400内的数字内容的安全访问。此外,也可以通过外部接口420与外部实体共享通知、请求以及其它信息。
所描述的模块、方法、过程等的每一个都可以被实现为各自对应的处理或应用、操作系统的一部分、插件、应用等。也可以通过通用或专用计算机将数字内容分发处理的动态建模和执行实现为在架构400上运行的一个或多个软件应用程序。此系统或方法可以被描述为能够在各种平台和/或网络(例如,客户端/服务器网络、无线网络、单机计算机等)上实现的框架或模型,和/或与一个或多个软件应用程序一起被嵌入或打包。
图5是示出了按照一个一般性实现的计算机实现方法500的流程图。总体上,使用基于活动的图形模型和预定义任务模板来建模数字内容分发处理。然后调用数字内容分发处理,从而执行所述一系列建模的活动和子活动。分发处理的执行结束于将所提供的数字内容的数字拷贝递送给接收方。
更详细地,当方法500开始(步骤502)时,用户动态建模定制的数字内容分发处理。该数字内容分发处理可以基于一系列离散活动和子活动。每个活动和/或子活动都具有单独的图形表示。定制的数字内容分发处理可以包括基于表示公共分发处理任务的已存储模板的部分,每个任务都包括一个或多个活动和/或子活动。公共分发任务可以包括公共格式化标准、公共安全标准、客户端专用安全或格式化、局部适用内容格式化等。除了流水化的内容分发活动之外,用户可以动态地建模一个或多个异步处理,诸如与该分发处理流水线分离的消息处理过程或异常处理过程。
在一个示例中,用户可以使用图2中所示的用户接口200来创建数字内容分发处理。该用户可以使用模板菜单202将任务添加到该分发处理。该用户也可以包括定制的活动、子活动和/或任务。该内容分发处理可以调用任意数量的活动和/或子活动。完整的内容分发处理模型可能看上去与图1中所示的图形分发流水线模型110相似。
一旦已经建模并保存了该内容分发处理,就可以执行该分发处理,以便创建数字内容并分发给接收方。可以从接收方接收针对数字内容的请求。该请求可以包括关于所需的数字内容的信息(例如,文件名(多个)等)和/或关于数字内容的目的地的信息。为了实现该请求,调用该数字内容分发处理(步骤504)。
该数字内容分发处理的执行可以包括:从外部源摄取该数字内容。例如,可以将所需的原始版本的数字内容的数字原件导入或上传到数字内容分发系统。该数字内容分发处理的一部分可以包括处理对数字原件摄取的监测和验证的活动。数字原件的摄取可以包括将该数字原件保存在安全数字仓库内。
该数字内容分发处理的执行可以包括提供所摄取的数字原件的数字拷贝。例如,图2中所示的提供活动212a可以将该数字原件的数字拷贝传送给临时存储器。然后,该内容分发处理可以对该数字拷贝进行修改。可以根据来自接收方的提供请求来调用该提供活动212a。
该数字内容分发处理的执行可以包括编辑该数字拷贝。如图4中所示,架构400中的内容编辑器414可以用于修改该数字拷贝的格式、长度、语言、配音、字幕等。安全模块412可以用于将加密技术、水印以及其它安全特征应用到该数字拷贝。诸如图3中所示的第一销售商304、第二销售商306、和/或第三销售商308等外部实体,也可以用于将内容和/或安全性修改提供给该数字拷贝。
接收方和任意外部实体可以通过安全外部接口(例如,图4中所示的外部接口420)接收对该数字拷贝的访问。该外部接口例如可以包括安全的有线和/或无线访问诸如虚拟个人网络(VPN)连接或类似的安全网络接口。在执行该内容分发处理的过程中,所述一系列活动和/或子活动可以在接收方、本地用户(例如,图1中所示的工作室112)与任意数量的外部实体之间传送数字拷贝的控制。
在执行该内容分发处理过程中,可能会出现异常。在每个活动和/或子活动的执行完成之后,该数字内容分发处理可以保存实例信息。如果检测到异常,该内容分发处理可以根据检测到的异常来执行补偿活动。该补偿活动可以包括使用被迭代保存的情况信息来重新执行一个或多个活动和/或子活动。例如,如果在完成该数字内容分发处理的摄取任务时该数字内容分发处理检测到该数字拷贝没有完成和/或被破坏,则异常处理过程就可以检测该被破坏的数字拷贝并且重新调用该摄取任务。
在完成该数字内容分发处理之后,所提供的数字原件的数字拷贝被提供给接收方(步骤506)。通过安全通信链路诸如图4中所述的外部接口420,该数字拷贝可以被传送给该接收方。此外,该数字拷贝可以从临时存储器中删除。
图6示出了用于动态建模数字内容分发处理的示例性用户接口600。该用户接口600包括模板菜单602、编辑框604以及模板图标条606。用户接口600可以用于部分地基于已存储的模板来创建定制的基于活动的数字内容分发处理模型。已存储的模板可以包括被用于执行公共任务的一个或多个活动和/或子活动。
模板菜单602由处理文件夹来组织。该处理文件夹例如可以属于公共分发处理类型,诸如内容编辑、安全性、异常处理、资产删除等。选择INGESTBUSINESSPROCESS文件夹608。该INGESTBUSINESSPROCESS文件夹608可以包括与从外部源中摄取的数字内容相关的任意数量的模板。该模板菜单602内所包含的模板可以包括采用正方形图标标记的活动模板、采用菱形图标标记的条件模板、以及采用圆形图标标记的流程起始模板。其它模板类型也是可能的。
除了使用该模板菜单,该模板图标条606还包括频繁使用的模板类型的图形表示(例如,活动、决策器、计时器、消息等)。当前,在模板图标条606内选择了选择图标610。该选择图标610例如可以向用户提供对编辑框604的内容的拖放型控制。
编辑框604包括处于第一状态的摄取业务处理流程的一部分的图形表示。该数字内容分发处理的可视部分包括摄取活动流水线612。
队列监测活动614被标为“查看摄取处理消息”,其布置在摄取活动流水线612之上并与之分离。监测活动614根据摄取活动流水线612内的活动(例如,作为背景任务)而异步地运行。在某些示例中,诸如队列监测活动614的监测活动可以监测来自用户接口、来自父处理和/或来自相关处理的消息。该消息可以包括通知、中断和/或取消。其它异步活动,诸如编辑框604的右下方内的包括运行交互活动子活动616a和发送给下一个活动子活动618b的异常活动,可以包括异常处理活动和/或调度活动。
开始活动620启动该摄取活动流水线612。在开始活动620之后是启动订单相关性活动622。接下来,从媒体仓库中查找元数据子活动624a与将元数据状态更新为“将被摄取”子活动624b协作。
倒回(rewind)符号626布置在连接从媒体仓库中查找元数据子活动624a和将元数据状态更新为“将被摄取”子活动624b的箭头628的旁边。倒回符号626表示补偿活动。补偿活动将业务处理流的运行情况(例如,所更新的变量、被移动的数据文件等)的状态恢复到启用该活动之前的状态。补偿活动例如可以在检测异常时进行调用。
从媒体仓库中查找元数据子活动624a之后是设置工作流程开始日期活动630。设置工作流程开始日期活动630之后是将工作流程状态更新为等待上传活动632。
将工作流程状态更新为等待上传活动632之后是上传文件子活动634a。上传文件子活动634a与通知摄取任务过期子活动634b协作。每日检查日历图标636被安排在将上传文件子活动634a连接到通知摄取任务过期子活动634b的一组有向箭头638旁边。该有向箭头638表明两个子活动634之间的循环连接。
每日检查日历图标636表示周期性监测活动。在此循环中,例如,周期性监测活动可以监测上传文件的过程。如果过了一段时间该文件仍未被完全上传,可以调用通知摄取任务过期634b。
摄取活动流水线612继续到编辑框604的范围之外。水平滚动条640向用户提供对相对于编辑框604内的视图的左边和右边的其余活动的访问。其它活动可以被安排在编辑框内所描绘出的那些活动的上面和下面。水平滚动条642向用户提供对被安排在编辑框604内的视图的上面和下面的活动的访问。
图7描绘了用户已经将附加预备动作活动700添加到用户接口600之后的图6用户接口600的状态。附加预备动作活动700被置于编辑框604内的摄取活动流水线612之上并且与其向分离。从模板菜单602的INGESTBUSINESSPROCESS文件夹608中选择一种附加预备动作活动模板702。该用户可能已经从模板菜单602内选择了附加预备动作活动模板702,将该附加预备动作活动700拖放到编辑框604中。
在根据模板包括了新元素之后,在一些实施方式中,用户可以选择定制该元件的特征。例如,在每日检查日历图标636的情况下,用户可以选择定制(例如,通过双击图标636,右键点击图标636等)用于定期超时的计时器长度。
在一些实施方式中,用户可以选择包括完整的定制活动,而不是根据模板菜单602或模板图标条606来添加特定活动模板。例如,可以从模板图标条606中选择空白活动模板704。在修改基于模板的活动或者创建定制活动之后,该活动可以被另外保存为新的活动模板类型(例如,被添加到模板菜单602)。
图8描绘了用户已经开始将该附加预备动作活动700链接到该数字内容分发处理之后的图7的用户接口600的状态。流水线分段804已经被添加在到了媒体仓库中查找元数据子活动624a与该附加预备动作活动700之间。已经删除了从媒体仓库中查找元数据子活动624a与设置工作流程开始日期活动630之间的摄取活动流水线612的分段。在模板菜单602中,设置工作流程开始日期连接器800被高亮显示。设置工作流程开始日期连接器800位于INGESTBUSINESSPROCESS文件夹608的从媒体仓库中查找元数据子活动802内(当前在模板菜单602内不可见)。用户正在将设置工作流程开始日期连接器800(例如,流水线段804)从设置工作流程开始日期活动630重新指向附加预备动作活动700。
图9描绘了用户已经完成将附加预备动作活动700链接到该数字内容分发处理中之后的图8的用户接口600的状态。继续该编辑处理,流水线段900已经被加在附加预备动作活动700与编辑框604内的设置工作流程开始日期活动630之间。流水线段900完成该活动700到摄取活动流水线612中的连接。在模板菜单602内,设置工作流程开始日期连接器904已经被加到INGESTBUSINESSPROCESS文件夹608内的附加预备动作目录902(当前在模板菜单602内不可见)。
图10描绘了用户重新安排了该数字内容分发处理之后的图6的用户接口600的状态。如图6中所示的启动订单相关性活动622已经被移除。用户已经另外将设置工作流程开始日期630活动从位于从媒体仓库中查找元数据子活动624a之后移动到开始活动620与从媒体仓库中查找元数据子活动624a之间。用户可能例如已经将该设置工作流程开始日期630拖放到了新的位置。现在,该摄取活动流水线612包括开始活动620,其后是设置工作流程开始日期活动630,接着是从媒体仓库中查找元数据子活动624a,接着是将工作流程状态更新为等待上传活动632。
在模板菜单602内,将工作流程状态更新为等待上传连接器1000现在被包含在从媒体仓库中查找元数据目录802之下。类似地,尽管没有描绘出来,从媒体仓库中查找元数据连接器也可以出现在设置工作流程开始日期目录中,并且设置工作流程开始日期连接器可以出现在开始目录中。尽管启动订单相关性活动622已经被移除了,但是在一些实施方式中,启动订单相关性活动模板(未示出)仍然可以出现在模板菜单602内。采用这种方式,启动订单相关性活动可以重新进入或用在不同的定制业务处理中。
图11A至图11D描绘了示出数字内容分发处理的摄取业务处理流程1100中的示例性活动的处理流程图。可以执行该摄取业务处理流程1100以便将数字原件摄取到安全的长期存储位置诸如图1中所示的数字仓库128中。例如可以基于由用户接口生成的、用于开始摄取数字内容的消息,来实例化摄取业务处理流程1100的摄取实例。该数字内容分发处理的摄取业务处理流程1100例如可以使用图6中所示的用户接口600来进行建模。该摄取业务处理流程1100包括建模各个活动和/或子活动之间的流程的摄取活动流水线1101。
给定输入的任务自变量,摄取业务处理流程1100负责摄取数字内容资产。任务自变量,例如,可以被包含在由用户接口生成的、用以开始摄取该内容的消息中。每个任务都具有与其相关联的元数据。当产生该任务(给出了顺序)时,与那个任务相关联的订单元数据被填充该任务。通过任务自变量来填充元数据。该任务可以通过该摄取业务处理流程1100的父流程之一来构造,并且包括此项工作所需的所有信息。
在元数据存储“元数据管理模块”中与查询关于任务的唯一材料标识符(UMID)所关联的信息。此处所使用的UMID被配置为数字资产标识符,并且由此可以被应用到DETE系统中所创建的每个数字资产。该UMID可以被保存为字符串值。此信息被提供给用户接口,从而编码操作者或管理员可以将该摄取业务处理流程1100的摄取实例与给出的订单进行关联。
编码操作者上传描述数字内容资产的文件,称为物理原件。将该文件从该编码操作者所工作的节点传送到数字仓库入站存储节点。一旦将该文件传送到了该入站存储目的地,就调用资产文件传送模块(Asset File Transfer Module)来将它们输入到数字仓库中。使用与被编码的数字内容资产有关的最新信息来更新该资产文件传送模块(Asset File Transfer Module)。
在处理摄取实例的处理期间,向用户接口提供关键变量,以便可以监测该摄取实例的过程。例如,开始时间关键变量包括启动该摄取实例时的系统时间,而结束时间关键变量会包括完成摄取实例时的系统时间。利用与当前正在执行的任务有关的值来更新工作流程状态关键变量。工作流程状态值的示例可以包括“等待上传”、“上传”、“摄取”、“已摄入(in)”、“取消”以及“错误”。
如图11A所示,摄取业务处理流程1100包括查看摄取处理消息活动1102。查看摄取处理消息活动1102位于摄取活动流水线1102之上并且与之断开。当调用查看摄取处理消息活动1102时,监测消息队列以获得属于摄取处理的消息。消息可以来自用户接口以便处理交互活动,或者来自外部网络接口服务(例如,通过图4中所示的外部接口420)以获得异步回叫。
此处所使用的队列可以用于接收正被发送到业务员处理(例如,摄取业务处理1100,图12A至12E中所示的服务业务处理1200等)的所有消息。在一些实施方式中,该消息可以作为可扩展标记语言(XML)对象而被接收,并且继而被转换为XML串。该队列可以将XML消息串传送给各自的业务处理。一旦接收了该消息,就可以将该XML串转换回合适的对象。
一旦创建了XML对象,该处理就可以处理这些对象所包含的信息并且继续进行。例如,如果在摄取队列接收到某消息,该注意摄取处理消息活动1102将会识别它,并且将它配置给其消息变量。此处所使用的消息变量描述了被用于保存将要通过通知的形式进行显示的任何消息的串的类型。该消息变量被保存为业务处理实例信息的一部分。该消息将其动作配置在标题中。
如果该消息表示输入操作已经完成,则将该消息解析到输入响应对象中以便从中读取相关数据。此处所使用的“响应对象”是从外部接口服务调用中返回的信息的通称。该响应对象包括用于找出将要被通知的摄取业务处理流程1100的专用实例的关联标识符。此处所使用的关联标识符被用于标识业务处理的特定运行实例。该关联标识符可以被格式化为包括事务标识符加上当前时间戳的串值。
此处所使用的事务标识符是指被用于按顺序跟踪的随机产生的唯一标识符。该事务标识符被存储为该业务处理实例信息的一部分。该事务标识符,例如,可以被存储为串。该关联标识符可以用于外部接口服务回调,例如,以确保该消息使它返回给调用处理。该关联标识符被存储为该业务处理实例信息的一部分。业务计划管理数据库系统找到该实例,并且向其传递响应对象传以便进一步处理。
如果由摄取处理消息活动1102接收到的消息表示已经发生了上传操作,则将该消息解析到上传请求对象中,以便可以从中读取相关数据。此处所使用的请求对象是去往外部接口服务调用的信息的通称。从该对象中解析出任务标识符,以便查找相关标识符。查看摄取业务消息活动助手方法可以用于通过该任务标识符从该业务计划管理数据库中检索相关标识符。此处所使用的任务标识符是给予订单处理所创建的每个任务的整数值。任务标识符对每个任务(例如,摄取任务,服务任务等)是唯一的。
通过数据库原序列来生成任务标识符。该任务标识符被保存在数字端到端(DETE)数据库中以及与其相关的业务处理实例上。该业务计划管理数据库系统根据该关联标识符找到该实例,并且向其传递请求对象以便进一步处理。从该请求中推出用户名和成员名,所以将它们配置给实例变量以便立即处理。如果该摄取处理消息活动1102不能识别与该消息相关联的操作,则记录关于该操作的消息。
摄取活动流水线1101开始于开始活动1103。摄取处理业务流程1100的开始活动1103将通用任务对象作为其输入来完成摄取。设置多个关键业务变量,从而将它们提供给用户接口并且写入该数据库。此处所使用的业务变量涉及面对外部的变量(例如,全局变量),可以用于业务计划管理数据库系统、米制仪表盘、计划级处理任务等。该业务变量被存储在内部业务计划管理引擎数据库上,而不是作为特殊实例的一部分。在执行开始活动1106的过程中,从该任务对象中推出各个值并且分配给业务变量。
开始活动1103之后是启动订单相关活动1104。启动订单相关活动1104设置订单相关性,使得在取消或纠错的情况下试图通知此业务处理的外部处理可以达到该业务处理。
通过采用当前时间戳并且将其附加到相关处理标识符来创建唯一的关联标识符。通过命名该关联标识符并且把它给到应被使用的值,可以使用该业务计划管理数据库系统中的相关能力。在这种情况下,“摄取相关性(IngestCorrelation)”例如可以用于表示它足够通用于整个处理。
此时设置实例标识符,以便之后在处理过程中将其写入档案表。如此处所使用的,实例标识符是分配给所创建的实例的内部唯一标识符。该实例标识符大多用于内部任务,诸如一个业务处理调用另一个业务处理。该实例标识符被保存在内部引擎数据库中。设置此实例标识符来帮助识别正在运行哪个版本的计划企业档案文件。为了向企业环境公开业务计划管理数据库系统计划,可以首先生成计划企业档案文件。当选择、扩大以及部署整个计划时,可以通过业务计划管理数据库系统处理管理员来生成该计划企业档案文件。
启动订单相关活动1104之后是从媒体仓库中查找元数据子活动1105a。从媒体仓库中查找元数据子活动1105a与将元数据状态更新为待摄取子活动1105d协作。从媒体仓库中查找元数据子活动1105a查询有关UMID的元数据,以填充该业务变量。此处所使用的业务变量是可以被显示在业务计划管理数据库系统用户接口上以及用于米制仪表盘的全局变量。
该业务变量也可以在计划级别上可用。该业务变量不是作为特殊实例的一部分来存储,而是被存储在该内部业务计划管理引擎数据库上。从媒体仓库中查找元数据子活动1105a将UMID的元数据内找到的值提供给该用户接口和数据库。出于工作流程监测的目的,当前实例信息被永久保存到该数据库。
从媒体仓库中查找元数据子活动助手方法接受用于读取资产信息的UMID。该从媒体仓库中查找元数据子活动助手方法可以用于实现业务变量填充活动。根据具有合适值的响应对象中来填充相关业务变量。接受该标题UMID的另一个助手方法可以用于获得与该资产有关的其他信息。
如果希望从媒体仓库中查找元数据子活动补偿1105c用于元数据更新请求,则执行将元数据状态更新到“将被摄取”子活动1105d,以便将该状态恢复到其初始值。将元数据状态更新到“将被摄取”子活动帮助方法可以用于更新给定UMID的元数据状态信息。
从媒体仓库中查找元数据子活动1105a之后是设置工作流程开始日期活动1106。该设置工作流程开始日期活动1106利用被用在工作流程监测页面中的当前系统时间来设置该开始时间业务变量。出于工作流程监测的目的,当前实例信息被永久保存到该数据库。该当前系统时间,例如,可以采用业务计划管理数据库系统关键字“现在(now)”来设置。结束时间被设置为空,以便确保在流程结束之前它没有值。
设置工作流程开始日期活动1106之后是将工作流程状态更新为等待上传活动1107。该将工作流程状态更新为等待上传活动1107将该工作流程状态业务变量设置为“等待上传”,其将在工作流程监测页面中使用。这个状态也向用户接口指示:存在未决摄取任务等待关注。出于工作流程监测的目的,该当前实例信息被永久保存到该数据库。设置标记来表示该交互活动尚未运行。
将工作流程状态更新为等待上传活动1107之后是上传文件子活动1108a。该上传文件子活动1108a与通知摄取任务过期子活动1108d协作。该上传文件子活动1108a允许该处理实例作为参与人类交互的一方出现。此时,通过DETE用户接口上传采用实际被编码的资产的元数据编码XML。
如果之前尚未执行过上传文件子活动1108a,该上传文件子活动1108a也可以由发送到下一个活动子活动111b来执行。将表示已经执行过该上传文件子活动1108a的标记设置为真,并且将该编码XML映射到实例变量以供其余处理使用。
调用上传文件检查每日转移1108c来检查该上传文件子活动1108a的进度。如果该实例在执行时仍然在该上传文件子活动1108a上,则该上传文件检查每日转移1108c可以将该处理从该上传文件子活动1108a转移到通知摄取任务过期子活动1108d。
如果订单已经过期,则通知摄取任务过期子活动1108d向请求者发送通知以及允许接收方了解哪个订单被延迟的数据。将当前时间与期满日相比较,并且如果已经过期,则利用实例数据来构造该通知消息。可以将助手方法用于相关通知,其接受每个变量作为参数。
上传文件子活动1108a之后是将工作流程状态更新为正在上传子活动1109a。该将工作流程状态更新为正在上传子活动1109a与将工作流程状态恢复到等待上传子活动1109b协作。该将工作流程状态更新为正在上传子活动1109a将工作流程状态业务变量设置为“上传”,以便在工作流程监测页面中使用。此状态允许用户查看文件传送是开始还是正在进行中。出于工作流程监测的目的,当前实例信息被永久保存到该数据库。
该将工作流程状态恢复到等待上传子活动1109b将工作流程状态业务变量设置为“等待上传”,以便在该工作流程监测页面中使用。此状态还可以向用户接口指示存在未决摄取任务等着关注。
将工作流程状态更新为正在上传子活动1109a之后是填充文件传送请求活动1110。在调用将文件传送到DETE入站存储子活动1112a(如图11B中所示)之前,利用能够成功传送文件的有关信息来填入用于将文件传送到DETE入站存储子活动1112a输入的自变量。填充文件传送请求活动1110聚集来自编码XML以及任务对象的信息以便实现填充。
在一些实施方式中,在任务标识符之后利用其适当的相应扩展名来命名目标文件名。这可以通过标准化该命名以及采用根据该特定文件术语哪个摄取业务处理流程1100的实例的装置来实现。可以从编码XML中解析出文件名和文件大小。采用编码器的成员名以及传送机制来查询源传递简档。此处所使用的编码器的成员名是指编码器(它编码了该数字资产)所属的组。
通过任务的成员名以及传送机制来查询目的地传递简档。此处所使用的任务的成员名是指将要接收订单的结果或者准备订单的接收方。此处所使用的任务传送机制描述了将要传送任务的结果的方法。例如,如果订单的接收方只通过特定文件传送协议(例如,由加拿大Emeryville的Aspera公司开发的Aspera Scp)接收该数字内容,那么这就是传送机制。然而,如果另一个接收方只通过另一种协议(例如,由法国巴黎的SmartJog开发的SmartJog)接收文件,那么该传送机制将表示相关的值。所有这些信息都与该摄取业务处理流程1100的编码器的用户名以及传送机制一起被分配给请求对象。此处所使用的编码器的用户名是已经对给定的数字内容资产进行过编码的实际用户的名称。
该摄取业务处理流程1100还可以包括与发送到下一个活动子活动1111b协作的运行交互活动子活动1111a。该运行可交互活动子活动1111a和该发送到下一个活动子活动1111b都位于摄取活动流水线1102的下方并且与其断开。通知中断允许在主流程的外部接收消息,从而有效地中断正在进行的处理。运行交互活动子活动1111a接收来自异常队列监测器的消息以便执行指定的交互活动。
该发送到下一个活动子活动1111b将实例发送回摄取业务处理流程1100的主流程以便继续处理。如果该运行交互活动子活动1111a内所指明的交互活动尚未运行,则运行它并且继续下一个活动。如果所指明的交互活动已经运行,则仅仅将该实例从它被中断的位置发送回摄取活动流水线1102的主流程。例如,可以采用允许中断和立即处理配置来设置该发送到下一个活动子活动1111b。
如图11B中所示,在摄取活动流水线1101中,填充文件传送请求活动1110(图11A中所示)之后是将文件传送到DETE入站存储子活动1112a。将文件传送到DETE入站存储子活动1112a与通知摄取任务过期子活动1108d以及将文件从DETE入站存储中删除子活动1112f协作。将文件传送到DETE入站存储子活动1112a按照文件传送请求对象将文件从源传送到目的地。可以使用请求对象中指定的传送机制将源文件从与源传递简档相关的节点传送到与目的地传递简档相关的节点。此处所使用的源传递简档是与发送该数字文件处相关联的简档。该简档被保存在DETE数据库中。
在摄取过程中,例如,该源简档可能涉及正在添加内容的不同销售商。在另一个示例中,当正在服务时,该源文件可以被设置为DETE,因为DETE是正在将文件发送给接收方。如果在检查时该实例仍在执行将文件传送到DETE入站存储子活动1112a,将文件传送到DETE入站存储检查每日转移1112c将执行转移到通知摄取任务过期子活动1108d。
返回到将文件传送到DETE入站存储子活动1112a,如果希望将文件传送到DETE入站存储补偿1112e,则调用将文件从DETE入站存储中删除子活动1112f。将文件从DETE入站存储中删除子活动1112f删除正位于该入站存储目标中的文件,以便使不想要的文件不占用宝贵空间并且不再存在于服务器上。
可以使用将文件从DETE入站存储中删除子活动助手方法从任意存储池中移除文件。用于入站存储目的地的统一资产定位符(URI)与文件名一起作为参数传送。
返回到将文件传送到DETE入站存储子活动1112a,如果该摄取处理所规定的订单相对于新的订单(例如,从异常程序中恢复)而言应当进行修复,那么就可以移除已经处于数字仓库中的数字内容。将文件传送到DETE入站存储修复订单子活动1112i根据条件状态将执行转移到删除资产子活动1113a。例如,由于识别到重复的资产,所以可以调用删除资产子活动1113a。该删除资产子活动1113a与通知摄取任务过期子活动1108d协作。该删除资产子活动1113a移除与由调用活动所提供的UMID相关联的资产。
如果在检查时删除资产子活动1113a仍然是活跃的,那么删除资产检查每日转移1113c就将执行从该删除资产子活动1113a转移到通知摄取任务过期子活动1108d。删除资产子活动1113a,或者将文件传送到DETE入站存储子活动1112a(如果不是修复订单1112i的话)将活动传送给获得资产参考活动1114。
该获得资产参考活动1114检索用于特定数字内容资产的文件参考,从而使工作流程可以知道从数字仓库中的哪里移除文件。该获得资产参考活动1114使用获得资产参考助手方法来根据数字原件标识符从数字媒体数据库中检索资产参考。
获得资产参考活动1114之后是将工作流程状态更新为正在摄取子活动1115a。该将工作流程状态更新为正在摄取子活动1115a与将工作流程状态恢复到正在上传子活动1115c协作。将工作流程状态更新为正在摄取子活动1115a将工作流程状态业务变量设置为“摄取”,以便在DETE用户接口的工作流程监测页面上使用。此状态允许用户查看该数字内容资产正在被输入到该数字仓库中。设置标记来标识摄取任务正在进行。在一些实施方式中,在此期间,任何取消企图都会被拒绝。出于工作流程监测的目的,当前实例信息被永久保存到数据库。
如果希望执行将工作流程状态更新为正在摄取补偿1115b,则将工作流程状态恢复到正在上传子活动1115c将工作流程状态业务变量设置为“上传”,以便在工作流程监测页面中使用。此状态允许用户查看文件传送是开始还是正在进行中。
将工作流程状态更新为正在摄取子活动1115a之后是将资产导入数字媒体子活动1116a。将资产导入数字媒体子活动1116a与删除资产子活动1116d协作。将资产导入数字媒体子活动1116a将正位于DETE入站存储目的地的数字内容文件输入到数字仓库中。
用于将资产导入数字媒体子活动1116a的超时被设置用于由业务参数所确定的延迟。对于该将资产导入数字媒体子活动1116a而言,可能会因为该输入仅接收到忙故障(busy fault)而希望增加超时。此处所使用的忙故障描述了另一个操作为活跃并且因此无法处理所传送的请求时发生的故障。通过调整业务参数,可以在抛出异常之前设置重试的次数。可以使用将资产输入到媒体仓库助手方法来实现该数字内容资产的输入。数字内容资产参考、任务对象信息、文件名以及一个或多个专用数字仓库URI可以作为参数被传递给将资产输入到媒体仓库助手方法。关联标识符也可以被传递给外部接口服务以便标识应当通知哪个实例。
如果希望执行将资产输入到媒体仓库补偿1116c,则调用删除资产子活动1116d。该删除资产子活动1116d,例如,可以因故障情况而删除资产。
将资产导入数字媒体子活动1116a之后是等待文件已导入消息子活动1117a。该等待文件已导入消息子活动1117a与通知摄取任务过期子活动1108d协作。该摄取业务处理流程1100的活跃实例将无限期地位于等待来自注意摄取处理消息活动1102的通知的等待文件已导入消息子活动1117a上。如果等待文件已导入消息子活动1117a接收到意在特定实例的消息,则该等待文件已导入消息子活动1117a将转移到下一个活动。该等待文件已导入消息子活动1117a接收输入响应对象以进行进一步的处理。
如果该等待文件已导入消息子活动1117a在检查时仍在进行,则等待文件导入消息检查每日转移1117c会将该摄取业务处理流程1100的运行实例的执行转移到通知摄取任务过期子活动1108d。
等待文件已导入消息子活动1117a之后是评估响应消息活动1118。该评估响应消息活动1118评估输入响应以便确定是否希望采取行动。从该响应对象中可以解析出工作状态、故障代码以及状态消息。如果该工作状态指示失败,那么由需要重导入决策器1119a进一步分析该故障代码以便确定发生了哪种类型的故障。
如果发生了检验和或者文件大小错误,则向编码器发送通知。使用通知助手方法来设置通知消息,以便利用对编码器和/或摄取者而言的关键信息通知他们这个错误。设置标记来指示应当设置通知以及希望重新上传。
如果发生了忙故障或者重复操作(duplicate operation)故障,则设置标记来表示在再次调用导入请求之前应当发生延迟。此处所使用的重复操作故障是指当在用于向或者从数字仓库移动数字内容的输入请求与移动到数字仓库内或者外部的过程中的数字内容匹配的时候发生的故障。如果发生了不同类型的故障,异常就会随关键信息一起被抛出到将要被发送给管理员的电子邮件中。
如果校验和/文件大小决策器1119b确定设置了故障校验和/文件大小标记,则该摄取业务处理流程1100会转移到重发通知活动1120。在调用该重发通知活动1120之前创建的通知对象作为自变量被传递给重发通知活动1120。该通知将被发送给指定的接收方。该重发通知活动1120转移到将工作流程状态更新到上传活动1107(如图11A中所示)。
返回到需要重导入决策器1119a,如果重复操作故障决策器1119c确定设置了重复操作标记,则摄取业务处理流程1100转移到重复操作延迟活动1121。该重复操作延迟活动1121在重新调用后续请求之前启动延迟。根据业务参数确定的延迟被用于设置预期转移。过了规定量的时间之后,该重复操作延迟活动1121就转移到将资产输入到数字媒体子活动1116a。
返回到需要重导入决策器1119a,如果忙故障决策器1119d确定设置了重复操作,则该实例将转移到导入延迟活动1122。该导入延迟活动1122在调用后续请求之前启动延迟。根据业务参数确定的延迟被用于设置预期转移。在指定的时间量之后,该导入延迟活动1122就转移到将资产输入到数字媒体子活动1116a。
返回到需要重导入决策器1119a,如果没有设置故障标记,则该摄取业务处理流程1100转移到更新本质元数据活动1125(如图11C中所示)。
该摄取业务处理流程1100还可以包括取消子活动1123a,其与发回活动子活动1123c以及抛出取消异常活动1123d协作。取消子活动1123a、发回活动子活动1123c以及抛出取消异常活动1123d都位于摄取活动流水线1101之下并且与断开。通知中断允许在该摄取业务处理流程1100的活跃实例的主流程的外部接收消息,从而有效地中断该摄取业务处理流程1100的活跃实例正在进行的处理。
取消子活动1123a接收来自资产管理摄取的消息。资产管理摄取,例如,可以处理从外部处理(诸如入口或外部程序)接收到的中断。取消订单可能已经实现了资产管理摄取,此时,取消子活动1123a通知摄取(Ingest)以便告知摄取(Ingest)停止处理。利用输入自变量来设置该取消子活动1123a以便满足相关性。由于取消可能在处理的任何时候发生,所以可以配置允许中断以及即时处理。
如果运行取消决策器1123b确定已经执行了取消,那么该摄取业务处理流程1100的活跃实例就被发送回其被该发回活动子活动1123c中断的主流程部分处。关键字ACTION,例如,可以用于指引摄取业务处理流程1100的活跃实例在业务计划管理数据库系统中的流动。在这种情况下,关键字值BACK可以用于将该摄取业务处理流程1100的活跃实例发送到摄取活动流水线1101的主流程的如下部分,摄取业务处理流程1100的活跃实例在该部分被中断。
如果尚未执行取消,则抛出取消异常子活动1123d抛出取消异常,从而可以执行取消流程(例如,图11D中所示的处理异常子流程1132)。由抛出取消异常子活动1123d抛出定制异常,使其可由进程级异常处理捕获,以便开始执行取消流程。
摄取业务处理流程1100还包括更新处理信息子活动1124a,其与更新父状态子活动1124b和向以前活动发送流子活动1124d协作。更新处理信息子活动1124a、更新父状态子活动1124b和向以前活动发送流子活动1124d位于在摄取活动流水线1101之下并且与之断开。通知中断允许从摄取业务处理流程1100的活跃实例的主流程之外接收消息,从而有效地中断摄取业务处理流程1100正在执行的活跃实例。
更新处理信息子活动1124a从诸如订单传播,文件传送或资产管理等其他业务处理流程处接收消息。订单传播更新在外部系统中创建订单时所生成的媒体订购数量,如果摄取业务处理流程1100的活跃实例存在任意问题,文件传送将实例状态更新为错误,并且资产管理利用父条形码来更新摄取业务处理流程1100的活跃实例。
对于每个将要调用更新处理信息子活动1124a的处理,利用三个输入参数来设置更新处理信息子活动1124a。由于信息可能在处理中的任意时间点变为可用,因此允许终端并且立即配置处理。如果调用中断来更新摄取业务处理流程1100的活跃实例中的信息,则向以前活动发送流子活动1124d立即将处理控制发送回中断点。关键字ACTION,例如,可用于指引摄取业务处理流程1100的活跃实例在业务项目管理数据库系统中的流动。在该情况下,BACK用于将摄取业务处理流程1100的活跃实例发送到摄取活动流水线1102的主流程的如下部分,摄取业务处理流程1100的活跃实例从该部分处被中断。
如果更新处理信息子活动1124a接收到的中断表示子过程恢复了正常处理,控制转移到更新父状态子活动1124b。如果子过程不再处于错误状态,其父过程的原始状态恢复其原始值。如果子状态不是“恢复”,这表示子过程不再处于错误状态,并且将恢复其原始值。子状态被重置回空串,从而仅当需要时才发生更新父状态子活动1124b的其它执行。如果子状态被设置为“恢复”,摄取业务处理流程1100的活跃实例的状态被设置回其原始内容。
如图11C所示,需要重导入决策器1119a(如图11B所示)之后是更新本质元数据活动1125。更新本质元数据活动1125利用资产的最新信息来更新元数据存储。此时还将增加在初始资产外壳创建过程中不可用的附加细节。在某些实现中,编码XML被解析为编码对象,以便传递到更新本质元数据助手方法。更新本质元数据助手方法接受该编码对象,以便解析相关数据,从而更新元数据管理模块。将要利用该数据来更新的UMID与文件名、状态和任务标识符一起传递。
更新本质元数据活动1125之后是将工作流状态更新为完成子活动1126a。将工作流状态更新为完成子活动1126a与工作流状态恢复摄取子活动1126c协作。将工作流状态更新为完成子活动1126a将工作流状态业务变量设置为“已摄入”,以便在工作流监测器页面中使用。该状态允许用户查看资产已被成功地摄取到数字仓库中。出于工作流监测目的,将当前实例信息持久化到数据库中。如果希望更新工作流状态到正在已摄入补偿1126b,则调用工作流状态恢复摄取子活动1126c。工作流状态恢复摄取子活动1126c将工作流状态业务变量设置为“摄取”,以便在工作流监测器页面中使用。该状态允许用户查看资产已被导入数字仓库。设置标记以便表示发生了摄取处理。
通知过程等待摄取活动将工作流状态更新为完成子活动1126a之后是通知过程等待摄取活动1127。通知过程等待摄取活动1127通知等待摄取的资产的服务处理业务流1200的任意活跃实例(如图12A到图12E所示)。在业务项目管理数据库中查询等待特定UMID的服务处理业务流1200的活跃实例。通知发现的每个活跃实例继续使用该关联标识符。
通知过程等待摄取活动1127之后是设置工作流结束日期活动1128。设置工作流结束日期活动1128以当前系统时间设置结束时间业务变量,以便在工作流监测器页面中使用。出于工作流监测的目的,将当前实例信息持久化到数据库中。例如,可以用业务项目管理数据库系统关键字“now(现在)”设置当前系统时间。
设置工作流结束日期活动1128之后是结束订单关联活动1129。由于任务已经完成,并且不再有中断它的可能,结束订单关联活动1129在处理的结尾去除订单关联。如果从未被达到过,则充满到期任务和其实例id的关联表也不必保持。在某些实现中,业务项目管理数据库系统提供了终止关联的方法。
摄取活动流水线1101以结束活动1130结束。摄取业务处理流程1100的结束活动1130结束流程1100的活跃实例。关键业务对象被传递回父对象,从而其可以完成其请求。现在将在处理中创建并且填充的业务对象传出到处理的调用者(如果有一个的话)。
以夺取(Grab)修改主要错误活动1131位于摄取活动流水线1101之外。如果存在实例应当继续,但是不能被通常的异常处理处理处理的情况,则以夺取修改主要错误活动1131允许它被移动到处理中的任意一点。以具有异常终止选择的来自所有/到所有(fromall/to all)配置来设置以夺取修改主要错误活动1131。如果曾使用过以夺取修改主要错误活动1131,可以进行仔细的分析,以便确定跳过了什么,以及各种数据的关联如何。
可以在业务处理定制应用中配置异常处理层级和业务处理(例如,使用图6所述的用户接口)。可以在整个业务处理流程中使用定制的异常,一般异常的所有扩展,以便向管理员给出有意义的信息。在捕捉块(block)中未捕获到的异常可以传播到进程级异常处理机。该路径将业务处理流程(例如,摄取业务处理流程1100)的活跃实例发送到异常处理业务进程,该异常处理业务进程分析包含在活跃实例中的信息,并且向传播方发送通知。用户交互活动可以与异常处理业务进程相关联,以便管理员有效地在抛出异常的位置重试该活跃实例。如果业务处理流程不具有异常处理路径,异常可被再次抛到进行调用的父进程(多个),可在父进程处捕捉异常。
某些异常需要不同的严重级别与其关联。例如,如果异常具有关键值FATAL(致命错误)或ERROR(错误),则日志类将它们记录为将触发给管理员的急件,并且创建通知单。
由于异常对象被抛出使得活跃实例沿着异常路径进行,因此可以将类似于异常来处理取消和其它中断。由此,异常处理过程可以识别出它是中断异常,并且对它进行适当的处理。任一情况可能需要补偿,回滚(rolling back)提交的数据或撤销执行的活动的动作。将从补偿获益的每个活动或子活动具有当给出该命令时执行的与其相关联的子活动。补偿子活动逻辑通常非常简单,并且在适当的情况下,它可被设置为“发射后不管(fire and forget)”。
如图11D所示,处理异常子流程1132通过取消异常分支1133来处理取消异常,并且通过其它异常分支1134来处理其它异常。
沿着取消异常分支1133,摄取活动决策器1135确定实例是否正在摄取并且因此不能被取消。对摄取标志的检查指示取消流程向哪个分支进行。如果实例没有进行摄取处理1136,则调用结束订单关联活动1129。
在结束订单关联活动1129之后是取消正在进行的文件传送活动1137。如果在文件传送中发送了取消(例如,在传送文件到DETE入站存储活动1112a过程中),取消正在进行的文件传送活动1137取消任意进行中的任务。查询业务处理管理数据库,以便查看是否存在任意未决文件传送处理,并且如果存在,收回相应的关联id。对于收回的每个关联标识符,向文件传送处理发送取消请求。
取消正在进行的文件传送活动1137之后是补偿活动1138。补偿活动1138执行与已被执行的活动相关联的所有补偿活动(例如,更新元数据状态为“将被摄取”子活动1105d,从DETE入站存储删除文件子活动1112f,删除资产子活动等)。在取消过程中,已被执行的任意活动被有效地取消。因此忽略执行读取的任意活动。在某些实现中,业务项目管理数据库系统可以在在后端追踪已经运行了什么的同时,提供补偿能力。
补偿活动1138之后是将工作流状态更新为已取消活动1139跟在。将工作流状态更新为已取消活动1139将工作流状态业务变量设置为“已取消”,以便在工作流监测器页面中使用。该状态允许用户查看处于取消状态的实例。
将工作流状态更新为已取消活动1139之后是准备通知活动1140。准备通知活动1140为媒体购买订单(MPO)创建者准备关于摄取业务处理流程1100的活跃实例的取消的通知。可以使用助手方法来发送正确的通知。可以作为参数发送与该实例相关联的有关数据,从而使MPO创建者知道取消了哪个摄取实例。
准备通知活动1140之后是发送取消通知活动1141。发送取消通知活动1141通过调用通知子流程来发送取消通知。在发送取消通知活动1141之前创建的通知对象被作为参数传递到发送取消通知活动1141。该通知将被发送到指定的接收方。
发送取消通知活动1141之后是放弃处理活动1142。放弃处理活动1142将摄取业务处理流程1100的活跃实例发送到结束活动1130(如图11C所示),从而有效地取消该实例。可以使用关键字ACTION来指引摄取业务处理流程1100的激活实例在业务项目管理数据库系统中的流动。在该情况下,可以使用关键字值ABORT将摄取业务处理流程1100的活跃实例的流程发送到结束活动。
返回到摄取活动决策器1135,如果实例正处于摄取处理中,则调用准备通知活动1143。准备通知活动1143为MPO创建者准备通知,以提示创建者该摄取任务不能被取消。可以使用帮助方法发送正确的通知。与摄取业务处理流程1100的活跃实例相关联的相关数据被作为参数发送,从而MPO创建者知道哪个摄取实例未被成功地取消。
准备通知活动1143之后之后是发送取消通知活动1141。“重启活动”活动1144跟在发送取消通知活动1141之后。“重启活动”活动1144将摄取业务处理流程1100的活跃实例发送回该活跃实例被从其中断的活动,从而摄取业务处理流程1100的活跃实例可以重试出现错误的步骤。可以使用关键字ACTION来指引摄取业务处理流程1100的活跃实例在业务项目管理数据库系统中的流动。在该情况下,例如,可以使用BACK的关键字值将摄取业务处理流程1100的活跃实例的流程发送到主流程的如下部分,该活跃实例从该部分处被中断。
返回到处理异常子流程1132,沿着其它异常分支1134,调用将工作流状态更新为错误活动1145。将工作流状态更新为错误活动1145将工作流状态业务变量设置为“错误”,以便在工作流监测器页面中使用。该状态允许用户查看实例处于错误状态。
将工作流状态更新为错误活动1145之后是“处理错误的活动”活动1146。“处理错误的活动”活动1146将该实例发送到异常子流程以便处理该异常。异常和上下文信息被发送到异常子流程。异常信息被发送给管理员,并且通过队列显示以便进一步处理。
恢复工作流状态子活动1147a将向错误的活动发送流程子活动1147c和向下一个活动发送流程子活动1147d相关联。恢复工作流状态子活动1147a将工作流状态业务变量从“错误”状态设置回其原始值。基于本质移动服务异常(ESSENCEMOVERSERVICEEXCEPTION)1147b,恢复工作流状态子活动1147a选择处理子活动。
如果本质移动服务异常1147b的值为假,调用向错误的活动发送流程子活动1147c。向错误的活动发送流程子活动1147c将摄取业务处理流程1100的活跃实例发送回该活跃实例被从其中断的活动,从而摄取业务处理流程1100的活跃实例可以重试错误的步骤。可以使用关键字ACTION来指引摄取业务处理流程1100的活跃实例在业务项目管理数据库系统中的流动。在该情况下,例如,可以使用BACK的关键字值将摄取业务处理流程1100的活跃实例的流程发送到主流程的如下部分,该活跃实例被从该部分被中断。
返回到恢复工作流状态子活动1147a,如果本质移动服务异常1147b的值为真,调用向下一个活动发送流程子活动1147d。向下一个活动发送流程子活动1147d将摄取业务处理流程1100的活跃实例发送回该活跃实例从其中断的活动,从而摄取业务处理流程1100的活跃实例可以重试错误的步骤。可以使用关键字ACTION来指引摄取业务处理流程1100的活跃实例在业务项目管理数据库系统中的流动。在该情况下,例如,可以使用SKIP的关键字值将摄取业务处理流程1100的活跃实例的流程发送到主流程的如下部分,在该部分之后该活跃实例被中断。
图12A到图12E描绘了示出数字内容分发处理的服务业务处理流程1200的流水线内的示例性活动的处理流程图。可以执行服务业务处理流程1200,以便如图1所示将数字仓库128中的数字内容提供给端用户116。例如,可以基于从接收方处接收的服务请求,调用服务业务处理流程1200。例如,可以使用图6所示的用户接口600建模数字内容分发处理的服务业务处理流程1200。服务业务处理流程1200包括建模单个活动和或子活动之间的流程的服务活动流水线1201。
给定作为输入参数被传递给服务业务处理流程1200的任务,服务业务处理流程1200负责提供数字内容资产服务。该任务由其父流程之一构造,并且包含所有必须的信息,以便向pMetadata管理模块查询与关于该任务的UMID相关联的信息。根据当前资产状态,服务任务在其可以开始基于数字原件处理数字拷贝之前,等待摄取其数字原件(例如,由摄取业务处理流程1100)。
使用资产文件传送模块,创建数字原件的拷贝,并且将其移动到可操作的存储设备(例如,图3所示的临时存储设备302)。此后,收集各种元数据,并且将其打包在被发送到媒体库调度器模块的请求中,在媒体库调度器模块在数字拷贝上进行内容处理。该请求概述了请求对数字拷贝进行什么类型的处理操作(例如,大小格式,水印,加密等)。来自内容处理的一个或多个输出文件被放置在出站存储位置以便向接收方传递(例如,使用如图4所示的外部接口420)。一旦状态被更新为“已传递”,可以删除位于出站存储位置中的数字拷贝文件。
在服务实例的处理期间,向用户接口提供关键变量,从而可以监测服务实例的进展。例如,开始时间关键变量包含服务实例被实例化的系统时间,而结束时间关键变量包含完成服务实例的系统时间。利用属于当前被执行任务的值来更新工作流状态关键变量。工作流状态值的示例可以包括“等待原件”,“源准备好”,“处理中”,“取消”和“错误”。
如图12A所示,服务业务处理流程1200包括查看服务处理消息活动1202。查看服务处理消息活动1202位于服务活动流水线1201之下,并且与服务活动流水线1201断开。当调用查看服务处理消息活动1202时,查看服务处理消息活动1202监测一个属于服务业务处理流程1200的活跃实例的消息的队列。所述消息可以来自用户接口或来自用于异步回调的外部接口服务(例如,如图1所述的外部实体114)。
如果在服务队列上收到一个消息,查看服务处理消息活动1202识别该消息,并且将其赋值给其消息变量。该消息在头部中指定了动作,并且该动作被用于确定将该消息发送到何处。
ESSENCEMOVER导出通知返回充满元数据的响应对象。ESSENCEMOVER导出通知提示服务业务处理流程1200的活跃实例:数字内容资产已被拷贝到本地存储区域(例如,如图3所示的临时存储302)。
<ser:notifyAFTMFileExport xmlns:ser=″http://com/genericstudio/dete/ws/servicing″><res:AFTMResponsexmlns:res=″http://dete.genericstudio.com/digitalvault/ems/webservices/2007/04/xsd/response/″><res:JobId>string</res:JobId><res:RequestorId>string</res:RequestorId><res:CorrelationId>string</res:CorrelationId><res:OperationType>string</res:OperationType><res:JobSubmitDateTime>2006-09-28T18:49:45</res:JobSubmitDateTime><res:JobStatus>SUCCESS</res:JobStatus><!--Optional:--><res:StatusMessage>string</res:StatusMessage><!--Optional:--><res:FaultCode>ASSET_OVERWRITE_FAULT</res:FaultCode><!--Optional:--><res:TapeIds><!--Zero or more repetitions:--><res:TapeId size=″200″>string</res:TapeId></res:TapeIds></res:AFTMResponse></ser:notifyAFTMFileExport> |
表1:ESSENCEMOVER导出通知的示例格式
关联标识符用于检查在该标识符下是否存在未决的服务处理。一旦被确认,整个响应被传递到主流程内。如果关联标识符不存在,查看服务处理消息活动1202向管理员发送详细的通知,并且抛出异常。
随同其它元数据,媒体库作业通知返回作业标识符,关联标识符和状态消息。
<ser:notify MediaVaultJobCompletexmlns:ser=″http://com/genericstudio/dete/ws/servicing″><xsd:JobNotificationResponse jobId=″string″createdOn=″2008-09-28T18:49:45″modifiedOn=″2006-09-18T16:18:33″xmlns:xsd=″http://mv.webservices.generic.com/cf/scheduler/2005/11/xsd/″><xsd:Template>string</xsd:Template><!--Optional:--><xsd:CorrelationId>string</xsd:CorrelationId><!--Optional:--><xsd:Priority>3</xsd:Priority><!--Optional:--><xsd:Status>Failed</xsd:Status><!--Optional:--><xsd:StatusInfo>string</xsd:StatusInfo><!--You may enter ANY elements at this point--><AnyElement/></xsd:JobNotificationResponse></ser:notifyMediaVaultJobComplete> |
表2:媒体库作业通知的示例格式
使用关联标识符,查看服务处理消息活动1202进行检查以便验证该关联标识符确实可用,并且在该活动处等待。如果情况不是如此,查看服务处理消息活动1202发送解释问题的通知,随同抛出异常。查看服务处理消息活动1202将状态消息传递回主服务流程。如果状态消息不具有“已完成”值,则将错误标志设置为真,并且还发送错误标志。
DMS通知返回绝对文件路径。
<ser:notityDMSAssetDownload xmlns:ser=″http://com/genericstudio/dete/ws/servicing″><del:DeliveryMonitorServiceResponsexmlns:del=″http://dete.genericstudio.com/servicing/deliverymonitor″><batchID>string</batchID><statusMessage>string</statusMessage></del:DeliveryMonitorServiceResponse></ser:notifyDMSAssetDownload> |
表3:DMS通知的示例格式
查看服务处理消息活动1202相对于数据库验证该文件路径。如果通过了验证,则找到与该文件名相关联的关联标识符,并且查看服务处理消息活动1202将实际文件名传递给主流程。如果文件路径验证失败,则查看服务处理消息活动1202发送声明验证失败的通知。然而,假如文件已经被下载,某些时候验证可能会失败。如果情况如此,查看服务处理消息活动1202记录一个消息,但是不发送通知。
取消数字原件请求返回一个任务标识符。
<ser:cancelEMasterDownload xmlns:ser=″http://com/genericstudio/dete/ws/servicing″><emas:EMasterCancellationRequestxmlns:emas=″http://dete.genericstudio.com/servicing/emaster″><deteTaskID>3</deteTaskID></emas:EMasterCancellationRequest></ser:eancelEMasterDownload> |
表4:取消数字原件请求的示例格式
查看服务处理消息活动1202使用该任务标识符作为关键字来查询引擎数据库,以便寻找其相应的关联标识符。如果找到了该关联标识符,查看服务处理消息活动1202发起取消请求,请注意,取消服务请求可能已经太晚了。如果未发现关联,查看服务处理消息活动1202发送详细通知,并且抛出异常。
初始化数字原件请求返回具有成功完成数字原件下载所需的所有元数据的复杂的对象。
<ser:initiateEMasterDownload xmlns:ser=″http://com/genericstudio/dete/ws/servicing″><emas:EMasterDownloadRequest xmlns:emas=″http://dete.genericstudio.com/servicing/emaster″><deteTaskID>3</deteTaskID><assetGID>string</assetGID><memberName>string</memberName><user name>string</user name><outputFormatName>string</outputFormatName><deliveryMechanism>string</deliveryMechanism><allowedState>ALL</allowedState><orderID>string</orderID><transactionID>string</transactionID></emas:EMasterDownloadRequest></ser:initiateEMasterDownload> |
表5:初始化数字原件请求的示例格式
随同唯一标识符和各种成员名称,输出格式名被假定为是默认的数字原件下载输出格式名。为每个任务指定输出格式。输出格式表示需要为该任务进行的服务工作的类型。给定的输出格式具有相关联的内容格式模板。例如,输出格式可被存储为名称(例如,串类型),而内容格式模板可被存储为文档(例如,XML)。输出格式是业务参数,所以它可被在任意时候更新。查看服务处理消息活动1202使用所有元数据来填充服务任务对象。查看服务处理消息活动1202然后使用该对象开始服务请求。
如果查看服务处理消息活动1202不能识别与该消息相关联的操作,查看服务处理消息活动1202记录一个与该操作相关联的消息。
服务业务处理流程1200包括调度DMP作业活动1203。调度DMP作业活动1203位于服务活动流水线1201之下,并且与服务活动流水线1201断开。当调用调度DMP作业活动1203时,调度DMP作业活动1203作为所有内容处理作业的排队机制。调度DMP作业活动1203以给定的时间间隔自动运行。调度DMP作业活动1203的目标是通过媒体库调度器服务调度最高优先级的作业。
当例如通过主流程中的内容处理子活动1220a增加作业时(如图12C所示),它们并不真地运行,直到调度DMP作业活动1203决定哪个作业应当首先被处理为止。首先,进行外部接口服务调用,以便检查媒体库调度器服务是否被激活,或是否存在任意其它未决作业。如果不存在未决作业,调度DMP作业活动1203在应用数据库中进行查询,以便从表中弹出最早到期的作业。弹出该作业,并且作为调度作业外部接口服务方法的参数发送其作业标识符。如果该作业已被调度,则调度DMP作业活动1203从数据库表中删除该作业的表项。
服务活动流水线以开始活动1204开始。服务业务处理流程1200的开始活动1204以通用任务对象作为其输入,以便完成服务请求。设置若干关键业务变量,从而可向用户接口提供它们并且将它们写到数据库。从任务对象中抽取各种值,并且将它们赋值给业务变量。
开始活动1204之后是启动订单相关活动1104。启动订单相关活动1104通过获取当前时间戳,并且将其附加到相关联的事务标识符上创建唯一关联标识符,例如,可以使用“ServicingCorrelation”,以便表示它足够通用以用于整个处理。
启动订单相关活动1104之后是从DMP查找元数据活动1105a。从DMP查找元数据活动1105a之后是设置工作流开始日期活动1106。设置工作流开始日期活动1106之后之后是获得资产状态子活动1205a。获得资产状态子活动1205a查询相关联的UMID的数字原件的元数据,从而可以抽取最后的状态信息。每个数字资产包含元数据。每个数字资产还具有唯一的UMID。使用该UMID抽取与给定资产相关联的元数据。从该查询抽取的元数据可以包括但不限于:内容持续时间,标题名称,屏幕高宽比,标准,掉帧,帧速率,格式,图像高宽比,源图像格式等。采用该信息,服务业务处理流程1200将知道是以主流程继续,还是等待直到数字原件准备好为止。
获得资产状态助手方法可以用来执行该活动,该方法接受UMID以便读取资产信息。该获得资产状态帮助方法抽取数字原件状态元数据,以便查看该值是否为“已摄入”。原件准备1205c确定该状态的值。
如果状态不具有“已摄入”值,调用将工作流状态更新为等待源子活动1205d。将工作流状态更新为等待源子活动1205d将业务变量“工作流状态”设置为“等待原件”,从而用户接口工作流监测器页面可以查询出该状态。“等待原件”状态意味着数字原件未准备好,并且服务业务处理流程1200等待来自摄取业务处理流程1100的通知消息,以便提示服务业务处理流程1200文件已被摄取。处于工作流监测的目的将当前实例信息持续化到数据库。
将工作流状态更新为等待源子活动1205d之后是等待原件活动1205e。等待原件子活动1205e等待来自摄取业务处理流程1100的通知。一旦已经从数字仓库摄取了数字原件,可以更新并且继续处理使用该数字原件作为源的服务业务处理流程1200的活跃实例。
在使用该数字原件的服务业务处理流程1200的活跃实例可以被处理之前,数字原件应当处于状态“已摄入”。使用关联id识别服务业务处理流程1200的哪个实例正在等待源成为“已摄入”,摄取业务处理流程1100的活跃实例回调服务业务处理流程1200的正确实例。
如果实例在检查时仍然在执行等待原件子活动1205e,等待原件每日检查转移1205f将执行转换到通知管理员任务过期子活动1205g。如果订单过期,随同允许接收方知道哪个订单被拖延的数据,通知管理员任务过期子活动1205g通知被发送给请求人。通知管理员任务过期子活动1205g对当前时间和订单的到期日期进行比较,并且如果订单被拖延了,以实例数据构造通知消息。可以为相关通知使用帮助方法,接受每个变量作为参数。
返回获得资产状态子活动1205a,如果数字原件状态元数据的值为“已摄入”,则调用将工作流状态更新为源准备好子活动1205h。将工作流状态更新为源准备好子活动1205h将工作流状态业务变量设置为“源准备好”,以便在工作流监测页面中使用。这个状态允许用户知道数字内容拷贝已被导出,并且可以开始内容处理。处于工作流监测的目的,当前实例信息被持续化到数据库。
将工作流状态更新为源准备好子活动1205h之后是获得发送方信息活动1206。获得发送方信息活动1206基于传入服务业务处理流程1200的信息产生发送方信息。获得发送方信息活动1206确定发送成员名称。对于给定的发送成员名称和传递机制,获得发送方信息活动1206a通过数据库确定发送方简档。如果未作为进入服务业务处理流程1200的进入任务对象的一部分设置用户名称,获得发送方信息活动1206a给当前任务分配默认的用户名称。这个用户名称也是业务参数。
跟在获得发送方信息活动1206之后是获得接收方信息活动1207。获得接收方信息活动1207基于传入服务业务处理流程1200的信息产生接收方信息。对于给定的传递到成员名称和传递机制,获得接收方信息活动1207通过数据库确定接收方简档。
如图12B所示,导出内容子活动1208a跟在获得接收方信息活动1207之后。导出内容子活动1208a与删除DETE操作存储设备中的文件子活动1208d协同操作。导出内容子活动1208a以数字内容拷贝的形式导出已被导入数字仓库的数字原件源。数字内容拷贝被使用资产文件传送模块传送到操作存储设备。可以使用导出内容帮助方法执行资产导出。作为参数传递资产引用,任务对象信息,文件名和特定存储URI。
还向外部接口服务传递关联标识符以便标识将通知哪个实例。针对由一个业务参数确定的延迟设置活动的超时。由于导出可能遇到忙故障,对于这个活动可能希望增加的超时。通过调整业务参数,可以设置抛出异常之前的重试次数。
返回1208c确定是否将补偿导出内容子活动。如果应当补偿服务任务,并且数字内容拷贝已被导出到操作存储设备,将从该存储设备删除该数字内容拷贝。调用从DETE操作存储中移除文件子活动1208d以便完成这个任务。在某些实现中,由于在补偿过程中,不能处理异常,以“发射后不管”方式调用从DETE操作存储中移除文件子活动1208d。从DETE操作存储中移除文件子活动1208d将数字内容拷贝源文件名传入外部接口服务方法,从而它们可被从存储设备中删除。
等待文件导出消息子活动1209a跟在导出内容子活动1208a之后。等待文件导出消息子活动1209a与通知管理员任务过期子活动1205g协同操作。服务业务处理流程1200的活跃实例无限期地停留在等待文件导出消息子活动1209a,等待来自查看服务处理消息活动1202的通知。如果通过等待文件导出消息子活动1209a收到了服务业务处理流程1200的特定实例的预期消息,等待文件导出消息子活动1209a将转换到下一个活动(例如,评估资产文件传送模块响应活动1210)。等待文件导出消息子活动1209a接受导出响应对象,以便进一步处理。
如果服务业务处理流程1200的活跃实例仍然处于等待文件导出消息子活动1209a,等待文件导出消息每日检查转移1209c将转换到通知管理员任务过期子活动1205g。
评估资产文件传送模块响应活动1210跟在等待文件导出消息子活动1209a之后。评估资产文件传送模块响应活动1210评估导出响应,以便确定是否希望进行任意活动。从响应对象中解析出作业状态,故障码和状态消息。如果作业状态指出故障,则进一步分析故障码,以便确定出现了何种类型的故障。如果出现了忙故障或复制操作故障,在导入请求可被再次访问之前,评估资产文件传送模块响应活动1210设置指示将出现延迟的标志。如果出现不同类型的故障,评估资产文件传送模块响应活动1210抛出异常,除此以外还将关键信息在电子邮件中发送给管理员。
如果设置了复制操作标志,沿着评估资产文件传送模块响应复制操作转换1210a执行,转换到复制操作延迟活动1121。如果设置了复制操作标志,沿着评估资产文件传送模块响应忙传真转换1210b执行,转换到导出延迟活动1211。如果以忙故障响应初始导出请求,在重新调用后续请求之前可能希望一个延迟。导出延迟活动1211使用以业务参数确定的延迟设置预定的转换。在复制操作延迟活动1121或导出延迟活动1211设置的指定的时间数量之后,服务业务处理流程1200的活跃实例转换到导出内容子活动1208a。
返回评估资产文件传送模块响应活动1210,服务业务处理流程1200的活跃实例转换到将工作流状态更新为进行中子活动1212a。将工作流状态更新为进行中子活动1212a与将工作流状态恢复到源准备好子活动1212c协同操作。将工作流状态更新为进行中子活动1212a将业务变量“工作流状态”设置为“进行中”,从而用户接口工作流监测器页面可以查询出该状态。这个状态允许用户知道内容处理或文件传送正在进行中。出于工作流监测的目的,将关于服务业务处理流程1200的活跃实例的当前信息持续化到数据库。
如果希望将工作流状态更新为进行中补偿1212b,则调用将工作流状态恢复到源准备好子活动1212c。将工作流状态恢复到源准备好子活动1212c将工作流状态业务变量设置为“源准备好”,以便在工作流监测器页面中使用。这个状态允许用户知道数字内容拷贝或多个拷贝已被导出,并且内容处理可以开始。出于工作流监测的目的,将工作流状态恢复到源准备好子活动1212c将关于服务业务处理流程1200的活跃实例的信息持续化到数据库。
产生加密密钥和文档活动1213跟在将工作流状态更新为进行中子活动1212a之后。如果终端接收方需要,产生加密密钥和文档活动1213产生加密密钥,并且出于归档目的将该密钥保存到数据库。给定传递到成员名称,产生加密密钥和文档活动1213可以在数据库中查询成员简档。查看该简档,产生加密密钥和文档活动1213可以确定终端接收方是否需要加密。如果需要加密,产生加密密钥和文档活动1213产生唯一的标识符,并且将其存在表项插入数据库的适当的表内。另外,对于加密输出文件的内容处理,产生加密密钥和文档活动1213可将加密密钥置于可被添加到媒体库作业请求的定制的xml文档内。
创建加水印的文档活动1214跟在产生加密密钥和文档活动1213之后。作为进入的任务对象的一部分,可以作为一种要求指示加水印。如果情况如此,创建加水印的文档活动1214基于为其进行准备成员名称检索水印有效负载,并且将加水印任务添加到内容处理请求中。在某些实现中,服务业务处理流程1200的活跃实例在订单级别知道加水印。如果希望加水印,例如,给定为其进行准备成员名称,创建加水印的文档活动1214可以查询,以便从成员简档中抽取水印有效负载。一旦获得了该有效负载,创建加水印的文档活动1214将该信息放置在可被添加到媒体库作业请求的另一个定制的xml文档内。
映射任务到媒体库活动1215跟在创建加水印的文档活动1214之后。为了发生内容处理,应当确定工作流名称,内容格式模板和转码简档。如此处使用的,转码简档指概述将在当前任务过程中发生的一组特定指令的文档(例如,XML)。所有订单任务与特定工作流类型相关联。如果任务不与任意可获得的工作流类型相关联,则可以不再继续处理订单。给定的值被收容在DETE数据库和项目的业务处理数据库系统目录两者内。如此处使用的,工作流名称是给定工作流类型的名称。
映射任务到媒体库活动1215产生这个以后将用作对内容处理的媒体库作业请求的一部分的信息。输出格式名称是传入服务业务处理流程1200的活跃实例的任务对象的一部分。采用输出格式名称,可以通过数据库查询和检索转码简档和内容格式化模板。一旦抽取了这些简档,例如,可以抽取和本地存储它们引用的XML文档以便以后处理。可由输出格式名称,加密标志和加水印标志确定工作流名称。
检查内容的状态活动1216跟在映射任务到媒体库活动1215之后。在可以使用输出格式,工作流,内容格式化模板,和转码简档之前,检查内容的状态活动1216检查以便验证这些简档全部是活跃。如果它们全部是活跃,则服务业务处理流程1200的活跃实例可以继续主流程。如果不是,在某些实现中,处理可以停止,并且跟着发生一个活动(例如,订单取消活动,给定简档的激活活动等)。
从转码简档获得元数据活动1217跟在检查内容的状态活动1216之后。从转码简档获得元数据活动1217确定特定数字内容拷贝信息,从而该元数据以后可被用于文件命名和通知目的。在某些实现中,位速率和分辨率,关于数字内容拷贝的特定元数据存储在数据库中(例如,在输出格式表中)。给定输出格式名称,可以抽取位速率和分辨率。一旦位速率和分辨率可用于业务层,分辨率信息可能被用作文件命名的一部分。可以作为某些通知的一部分包括位速率。
各个表中的每个简档具有“激活”列。如果使用的简档的激活列未被设置为“是”,则服务业务处理流程1200的活跃实例可能不能正常地继续。从转码简档获得元数据活动1217抛出异常,使得管理员采取活动(例如,取消订单或激活给定简档)。
创建目的地文件名活动1218跟在从转码简档获得元数据活动1217之后。每个接收方可能希望用于文件(例如,数字内容拷贝)的不同命名约定。使用它们所公用的元数据,例如,创建目的地文件名活动1218连接一个文件名,并且使用该文件名作为目的地文件名。给定传递到成员名称,可以确定用于该接收方的文件命名约定。一旦被确定,创建目的地文件名活动1218检查日落日期,日落日期是资产不需要加水印的日期(例如,可能已经上市)。例如,如果资产表示电影,日落日期可以表示在DVD上发行该电影的日期。
如果未传递日落日期,创建目的地文件名活动1218可将一个安全名称用作文件的标题。接着,创建目的地文件名活动1218基于可获得的命名标签创建文件名。如果接收方未选择命名约定,任务标识符可以作为文件的默认名称。然后创建目的地文件名活动1218对文件进行编码。
父取消或修复子活动1219a位于服务活动流水线1201之下,并且与服务活动流水线1201分离。父取消或修复子活动1219a与抛出取消/修复异常子活动1219c,发送取消故障通知子活动1219d和发送流程到前一个活动1124e协同操作。
通知中断允许在主流程之外接收消息,有效地中断实例正在进行的工作。父取消或修复子活动1219a从父处理(例如,资产管理服务)或另一个处理接收消息。取消或修复命令可能已经到达父处理,此时服务业务处理流程1200的活跃实例应被通知停止处理。以一个输入参数建立父取消或修复子活动1219a以便接受关联。由于取消可能出现在处理的任意位置,配置立刻允许中断和处理。
如果父取消或修复转换1219b确定由于取消请求在处理中服务业务处理流程1200的活跃实例不能被取消的位置之后到达,服务业务处理流程1200的活跃实例不能被取消,则通过转换到发送取消故障通知子活动1219d,服务业务处理流程1200的活跃实例返回最后的活动(中断之前)。发送取消故障通知子活动1219d向父处理(例如,资产管理服务)发送消息,以便创建并且输出一个通知。该通知使得MPO创建者知道不能取消服务请求。在某些实现中,可以使用内部的业务项目管理数据库系统方法向服务业务处理流程1200的活跃实例的父处理发送消息。发送取消故障通知子活动1219d作为参数发送与该活跃实例相关联的相关数据,从而当创建该通知时,MPO创建者知道不能取消哪个服务请求。
如果父取消或修复转换1219b确定可以取消服务业务处理流程1200的活跃实例,服务业务处理流程1200的活跃实例转换到抛出取消/修复异常子活动1219c。抛出取消/修复异常子活动1219c抛出定制的取消,从而可以执行取消流程。例如,抛出取消/修复异常子活动1219c可以抛出定制异常,从而处理级异常处理可以捕捉该异常,以便开始执行取消流程(在本说明书的范畴之外)。
返回服务活动流水线1201,如图12C所示,内容处理子活动1220a跟在创建目的地文件名活动1218之后。内容处理子活动1220a与取消已调度作业子活动1220d和移除DETE作业子活动1220e协同操作。内容处理子活动1220a获取数字原件的普通数字拷贝,并且按照终端接收方的请求处理它。在某些实现中,内容处理作业请求可由7个到8个主要数据片段组成。首先的两个是源名称。源名称可用于导出数字拷贝。工作流名称可以确定工作流的类型。转码简档与从数据库中抽取的简档相同。内容格式化模板经过输入聚集器的处理,输入聚集器还获取资产UMID,并且执行更多确认。例如,输入聚集器可以相对于被请求的输出确认源,并且产生将被传入调度器的变换指令。一旦通过确认,则形成唯一的内容格式化简档。这个简档是作业请求的另一个输入。下两个参数是加密和加水印文档。这些是可选择的(例如,根据它们是否被使用)。最后,目的地文件名(多个)是完成作业请求的最后的参数。
一旦内容处理子活动1220a已经添加了作业,内容处理子活动1220a在数据库中为该作业形成新的表项。基于到期日期元数据(例如,作为服务任务对象的一部分发送的),可以首先处理(调度)最紧迫的作业。
如果作业已被添加到/调度到调度DMP作业活动1203,但是内容处理补偿1220c确定补偿是希望调度DMP作业活动1203d,则调用取消已调度作业子活动1220d。由于在补偿期间不能处理异常,可以按照“发射后不管”方式调用取消已调度作业子活动1220d。取消已调度作业子活动1220d将服务任务的媒体库作业标识符传递到取消调度的作业外部接口服务方法,从而可以取消该作业。
删除DETE作业子活动1220e跟在取消已调度作业子活动1220d之后。如果作业已被添加到/调度到调度DMP作业活动1203,但是正被补偿,应当从DETE数据库中删除相应的作业表项。存在数据库中不再存在该表项的可能。如果表项不再存在,跳过删除DETE作业子活动1220e。删除DETE作业子活动1220e使用服务任务的媒体库作业标识符作为关键字,以便在数据库表中查询该表项。如果发现了表项,删除DETE作业子活动1220e从数据库表中删除该数据行(例如,使用关键字值BADJ_MV_JOBS)。
等待处理完成消息子活动1221a跟在内容处理子活动1220a之后。等待处理完成消息子活动1221a与通知管理员任务过期子活动1205g和评估内容处理(CP)响应子活动1221e协同操作。服务业务处理流程1200的活跃实例可以无限期地处于等待处理完成消息子活动1221a,等待来自查看服务处理消息活动1202的通知。如果等待处理完成消息子活动1221a收到了特定实例所预期的消息,等待处理完成消息子活动1221a将转换到下一个活动(例如,填充文件传送请求活动1222)。等待处理完成消息子活动1221a接受内容处理响应消息以便将来处理。
如果等待处理完成消息每日检查转移1221c发现服务业务处理流程1200的活跃实例仍然处于等待处理完成消息子活动1221a,该活跃实例转换到通知管理员任务过期子活动1205g。
如果等待处理完成消息子活动1221a收到具有错误值的内容处理响应消息,则内容处理错误转换1221d将活跃实例转换到评估CP响应子活动1221e。评估CP响应子活动1221e进一步评估内容处理响应消息,以便确定希望何种活动。如果例如作业状态消息具有值“运行中”,“已提交”或“未决”,则处理可以返回等待处理完成消息子活动1221a。评估CP响应子活动1221e向管理员发出通知,确保管理员得到这个响应。如果收到了“已完成”之外的任意状态,评估CP响应子活动1221e抛出具有详细通知的异常。
填充文件传送请求活动1222跟在等待处理完成消息子活动1221a之后。在调用文件传送子处理(例如,文件传送服务1224的一部分)之前,填充文件传送请求活动1222以相关信息填充文件传送输入自变量,以便能够成功地传送文件。从任务对象聚集信息以便完成这个活动。在某些实现中,目的地文件名基于特定于每个终端接收方的文件命名约定。
使用用于服务处理的任务标识符给源文件名命名。可以这样做从而源文件名是唯一的,假设它们表示唯一的数字内容拷贝而不是数字原件资产。填充文件传送请求活动1222随同用户名一起产生接收方和发送方简档(如果最初未给定)。可以从被从服务业务处理流程1200的父处理传入服务业务处理流程1200的活跃实例的任务对象中获得文件传送请求对象所需的所有其它信息。
传送文件子活动1223a跟在填充文件传送请求活动1222之后。传送文件子活动1223a与通知管理员任务过期子活动1205g协同操作。传送文件子活动1223a根据文件传送请求对象将来自源的文件传送到目的地。传送文件子活动1223a使用请求对象中指定的传送机制将来自与源传递简档相关联的节点的源文件发送到与目的地传递简档相关联的目的地。例如,传送文件子活动1223a可以使用传送服务1224传送一个或多个文件。
如果传送文件每日检查转移1223c发现服务业务处理流程1200的活跃实例仍然处于传送文件子活动1223a,该活跃实例转换到通知管理员任务过期子活动1205g。
指出无取消活动1225跟在传送文件子活动1223a之后。一旦服务业务处理流程1200的活跃实例到达了这个阶段,则不能接受任意取消或修复请求。因此,指出无取消活动1225标记一个标志,从而不能进行取消。在某些实现中,指出无取消活动1225将“无取消”布尔标志设置为真。
指出不能取消判断标记1226确定文件是否被传递到中间节点。如果文件被“登台”(例如,放置在仓库之外的服务器上,在该服务器处文件可被推或拉到目的地)或发送到外部文件传送节点,文件递送到中间节点转换1226a将活跃实例转换到将工作流状态更新为准备好下载子活动1227a。将工作流状态更新为准备好下载子活动1227a与恢复工作流状态为进行中子活动1227c协同操作。将工作流状态更新为准备好下载子活动1227a将工作流状态业务变量设置为“准备好下载”,以便在工作流监测器页面中使用。
“准备好下载”状态意味着文件位于中间节点,并且终端接收方可以开始下载该资产。出于工作流监测的目的,将工作流状态更新为准备好下载子活动1227a将关于服务业务处理流程1200的活跃实例的信息持续化到数据库。为了监测作为服务任务的一部分的文件的数目,以及将下载多少文件,将工作流状态更新为准备好下载子活动1227a可以设置一个或多个计数器。如果希望将工作流状态更新为准备好下载补偿1227b,活跃实例转换到恢复工作流状态为进行中子活动1227c。
恢复工作流状态为进行中子活动1227c将工作流状态业务变量设置为“进行中”,以便在工作流监测器页面中使用。这个状态允许用户明白内容处理或文件传送在进行中。出于工作流监测的目的,将当前示例信息持续化到数据库。
更新ODL状态活动1228跟在将工作流状态更新为准备好下载子活动1227a之后。更新ODL状态活动1228向父处理(例如,资产管理服务)发送处理通知消息,以便使得父处理知道文件已被“登台”。可异步地发送该通知消息,从而服务业务处理流程1200的活跃实例不等待父处理回调。而是,活跃实例继续处理。一个业务对象被作为参数传入,从而父处理具有足够的信息以便按照其要求继续。
如果更新ODL状态录出转换1228a确定工作流类型为“录出”,可以调度资产以便转录到物理介质(例如,磁带)并且被发货。在该情况下,不是电子地传递资产。更新ODL状态录出转换1228a将活跃实例转换到设置资产传递时间活动1233(如图12D所示)。
等待资产下载子活动1229a跟在更新ODL状态活动1228之后。等待资产下载子活动1229a与通知管理员任务过期子活动1205g协同操作。对于是“登台”而不是录出工作流的服务任务,等待资产下载子活动1229a等待作为请求的一部分的所有文件被下载。一旦被下载,活跃实例可以继续并且完结订单。使用查看服务处理消息活动1202,等待资产下载子活动1229a处理来自传递监测器服务(DMS)的消息。如果DMS请求中的文件是任意未完结服务任务的一部分,并且该请求文件的绝对路径与这些未完结任务之一的路径匹配,则发现了匹配。等待资产下载子活动1229a记录该文件已被下载,并且等待下载作为请求的一部分的所有文件。如果下载了所有文件,服务业务处理流程1200的活跃实例继续。
如果等待资产下载每日检查转移1229c确定活跃实例仍然处于等待资产下载子活动1229a,等待资产下载每日检查转移1229c将服务业务处理流程1200的活跃实例转换到通知管理员任务过期子活动1205g。
检查是否所有文件已下载活动1230跟在等待资产下载子活动1229a之后。可能存在作为“登台”的服务任务的一部分的多个文件。检查是否所有文件已下载活动1230检查以便查看是否已经下载了用于特定任务的所有文件。一旦DMS请求到来,并且已经进行了匹配,文件名被传入检查是否所有文件已下载活动1230。检查是否所有文件已下载活动1230检查该文件是否已被下载,并且如果它是要被下载的最后的文件,检查是否所有文件已下载活动1230将继续(例如,如图12D所示,继续进行设置资产传递时间活动1233)。
如果文件未被下载,检查是否所有文件已下载活动1230将活跃实例转换到等待资产下载子活动1229a,其中活跃实例等待另一个DMS请求到来。设置资产传递时间未完结下载转换1230a确定是否仍然存在一个或多个未完结的文件没有作为服务任务的一部分下载。
返回指出不能取消判断标记1226,如果服务任务没有“登台”,活跃实例转换到创建针对传递的消息活动1232。创建针对传递的消息活动1232为终端接收方准备通知,以便提醒接收方注意完成了数字原件下载。可以使用帮助方法发送适当的通知。作为自变量发送与该活跃实例相关的数据,从而接收方知道完成了哪个数字原件下载请求。在创建针对传递的消息活动1232完成之后,活跃实例转换到将工作流状态更新为已传递子活动1234a(如图12D所示)。
取消子活动1231a位于服务活动流水线1201之下,并且与服务活动流水线1201分离。取消子活动1231a与发送流程到前一个活动子活动1124d和抛出取消/修复异常活动1231c协同操作。通知中断允许从服务业务处理流程1200的活跃实例的主流程之外接收消息,有效地中断活跃实例正在进行的工作。取消子活动1231a从外部方法(例如,用户接口)接收消息。取消请求可能源自用户接口,在该时刻该请求到来,以便通知服务业务处理流程1200的活跃实例停止处理。在某些实现中,可以用接受关联的一个输入自变量建立取消子活动1231a。由于取消可能在处理中的任意时刻到来,可以配置立刻允许中断和处理。
如果,例如,由于取消请求在服务业务处理流程1200的活跃实例的不能被取消的时刻(例如,指出无取消活动1225等的时刻)之后到来,取消转换1231b确定处理不能被取消,取消转换1231b将活跃实例转换到发送流程到前一个活动子活动1124d,其中活跃实例返回最后的活动(例如,在中断前)。
如果取消转换1231b确定可以取消处理,活跃实例转换到抛出取消/修复异常活动1231c。抛出取消/修复异常活动1231c抛出定制的取消,从而可以执行取消流程。在某些实现中,抛出取消/修复异常活动1231c抛出定制的异常,从而处理级异常处理可以捕捉它,以便开始执行取消流程。
返回服务活动流水线1201,如图12D所示,设置资产传递时间活动1233跟在更新ODL状态活动1228或检查是否下载了所有文件活动1230之后。一旦已经下载了资产并且传递了文件,设置资产传递时间活动1233设置资产传递时间。传递时间,例如,可以是一段可实现的数据。可以用业务处理管理数据库系统关键字“现在”设置当前系统时间。
将工作流状态更新为已传递子活动1234a跟在设置资产传递时间活动1233或创建针对传递的消息1232之后。将工作流状态更新为已传递子活动1234a与恢复工作流状态子活动1234c协同操作。将工作流状态更新为已传递子活动1234a将工作流状态业务变量设置为“已传递”,以便在工作流监测器页面中使用。“已传递”状态意味着文件已被传递给终端接收方,并且DETE不再负责该文件。出于工作流监测的目的,将工作流状态更新为已传递子活动1234a将关于服务业务处理流程1200的活跃实例的信息持续化到数据库。
如果希望将工作流状态更新为已传递补偿1234b,活跃实例转换到恢复工作流状态子活动1234c。恢复工作流状态子活动1234c将工作流状态业务变量从“错误”状态设置回其原始值。出于工作流监测的目的,恢复工作流状态子活动1234c将关于服务业务处理流程1200的活跃实例的信息持续化到数据库。
记录内容处理操作(CPO)信息活动1235跟在将工作流状态更新为已传递子活动1234a之后。为被服务的每个数字内容拷贝发生唯一的内容处理操作。记录CPO信息活动1235为归档的目的记录这些操作。可以使用记录CPO信息帮助函数,例如以便,抽取对该示例的数字内容拷贝执行的所有操作。可以通过传入记录CPO信息帮助函数的媒体库作业标识符发现这些操作。一旦收到该信息,记录CPO信息帮助函数将该信息聚集到单个串中,并且将该信息输入DETE数据库中适当的表内。
从DETE出站存储中删除文件活动1236跟在记录CPO信息活动1235之后。如果将补偿服务任务,并且数字内容拷贝已被导出到操作存储,应当从该存储删除数字内容拷贝。调用从DETE出站存储中删除文件活动1236,以便完成这个任务。由于在补偿过程中不能处理异常,可以按照“发射后不管”调用从DETE出站存储中删除文件活动1236。从DETE出站存储中删除文件活动1236将数字内容拷贝源文件名传入外部接口服务方法,从而可从存储设备删除它们。
设置工作流结束日期活动1128跟在从DETE出站存储中删除文件活动1236之后。结束订单关联活动1129跟在设置工作流结束日期活动1128之后。结束活动1237跟在结束订单关联活动1129之后。结束活动1237结束服务业务处理流程1200的活跃实例。结束活动1237将关键业务对象传回父处理(例如,资产管理服务),从而父处理可以完成其需要。
如图12E所示,处理异常子流程1238通过取消/修复异常分支1239处理取消/修复异常,并且通过其它异常分支1240处理其它异常。例如,可由异常队列监测器调用处理异常子流程1238。
沿着取消/修复异常分支1239的路径,服务业务处理流程的活跃实例转换到取消进行中的文件传送1137。处理异常/补偿补偿1241跟在取消进行中的文件传送1137之后。处理异常/补偿补偿1241将执行与已经执行的活动相关联的所有补偿活动。在取消过程中,有效地撤销已经执行的任意活动。因此可以忽略执行读取的任意活动。在某些实现中,业务处理管理数据库系统在在后端追踪已经运行了什么的同时提供补偿能力。
服务取消活动判断标记1242跟在处理异常/补偿补偿1241之后。服务取消活动判断标记1242确定是否可以取消服务业务处理流程1200的活跃实例。
如果取消转换1242a确定不能取消服务业务处理流程1200的活跃实例,服务业务处理流程1200的活跃实例转换到发送取消故障通知子活动1219d。发送流程到前一个活动子活动1124d跟在发送取消故障通知子活动1219d之后。
如果取消转换1242a确定可以取消服务业务处理流程1200的活跃实例,服务业务处理流程1200的活跃实例转换到将工作流状态更新为已取消活动1140。将工作流状态更新为取消修复转换1243确定是否可以重新开始取消的工作流。
如果将工作流状态更新为取消修复转换1243确定可以修复工作流取消,服务业务处理流程1200的活跃实例转换到提交重新开始通知活动1244。提交重新开始通知活动1244为MPO创建者准备通知,以便提醒该创建者注意该服务请求已被临时停止。作为自变量发送与服务业务处理流程1200的活跃实例相关联的数据,从而MPO创建者知道停止了哪个服务请求。
放弃处理活动1142跟在提交重新开始通知活动1244之后。如果将工作流状态更新为取消修复转换1243确定不能修复工作流取消,则调用发送取消通知活动1141。放弃处理1142跟在发送取消通知活动1141之后。
返回处理异常流程1238,沿着其它异常分支1240的路径,调用将工作流状态更新为错误活动1145。创建通知活动1245跟在将工作流状态更新为错误活动1145之后。创建通知活动1245为管理员准备通知,提醒管理员注意已经抛出了各种异常。可以使用帮助方法发送适当的通知。作为自变量发送与服务业务计划的活跃实例相关联的数据,从而管理员知道哪个文件传送请求出现错误。
“处理错误活动”活动1146跟在创建通知活动1245之后。恢复工作流状态子活动1147a跟在处理错误活动”活动1146之后。恢复工作流状态子活动1147a与发送流程到错误活动子活动1147c和发送流程到内容处理活动1247协同操作。
如果已经发生了内容处理错误,则内容处理错误转移1246将服务业务处理流程1200的活跃实例转移到发送流程到内容处理子活动1247。该发送流程到内容处理子活动1247将服务业务处理流程1200的活跃实例发送回中断开始之处的活动以便该活动可以重试该发生错误的步骤。关键字ACTION,例如,可以用于指示业务处理管理数据库系统中的有效实例的流程。在这种情况下,关键字值SKIP可以用于将该有效实例发送到位于发生了中断之后的主流程的部分。
如果已经发生了错误而不是内容处理错误,则内容处理错误转移1246将该有效实例转移到发送流程到内容处理子活动1147c。
图13是示例计算机系统1300的示例的示意图。系统1300可用于结合根据一个实现的方法300描述的操作。例如,系统1300可被包括在如图3所示的工作室112,第一提供商304,第二提供商306,第三提供商308,航空公司310和航空公司312中的任意一个或全部中。
系统1300包括处理器1310,存储器1320存储设备1330,和输入/输出设备1340。使用系统总线1350互联每个组件1310、1320、1330和1340。处理器1310能够处理用于在系统1300内执行的指令。在一个实现中,处理器1310是单线程处理器。在另一个实现中,处理器1310是多线程处理器。处理器1310能够处理存储在存储器1320内或存储设备1330上的指令,以便在输入/输出设备1340上显示用户接口的图形信息。
存储器1320存储系统1300内的信息。在一个实现中,存储器1320是计算机可读的介质。在一个实现中,存储器1320是易失存储器单元。在另一个实现中,存储器1320是非易失存储器单元。
存储设备1330能够为系统1300提供海量存储。在一个实现中,存储设备1330是计算机可读介质。在各种不同的实现中,存储设备1330可以是软盘设备,硬盘设备,光盘设备,或带设备。
输入/输出设备1340为系统1300提供输入/输出操作。在一个实现中,输入/输出设备1340包括键盘和或指点设备。在另一个实现中,输入/输出设备1340包括用于显示图形用户接口的显示单元。
可以用数字电子电路,或计算机硬件,固件,软件或其组合实现描述的特征。该装置可被实现在确实地包含在信息载体内,例如,在机器可读的存储设备中的计算机程序产品内,以便由可编程的处理器执行;并且可由可编程处理器执行该方法的步骤,可编程处理器执行指令程序以便通过操作输入数据并且产生输出执行所描述的实现的功能。可以有利地在可以在可编程系统上执行的一个或多个计算机程序中实现描述的特征,所述可编程系统包括连接为从数据存储系统接收数据和指令和向数据存储系统传送数据和指令的至少一个可编程处理器,至少一个输入设备,和至少一个输出设备。计算机程序是一组指令,可在计算机中直接或间接使用所述指令,以便执行某个活动或带来某个效果。可以用任意形式的编程语言编写计算机程序,包括编译的或解释的语言,并且其可被以任意形式部署,包括独立的程序或作为模块,组件,子例程,或适合于在计算环境中使用的其它单元。
用于执行指令程序的适合的处理器包括,作为示例,通用和专用微处理器,以及任意种类的计算机的一个或多个处理器。一般地,处理器从只读存储器或随机访问存储器或这两者接收指令和数据。计算机的基本元件是用于执行指令的处理器,和用于存储指令和数据的一个或多个存储器。一般地,计算机还包括或操作地连接为与用于存储数据文件的一个或多个海量存储设备通信;这些设备包括磁盘,适合于确实地包含计算机程序指令和数据的存储设备,包括所有形式的非易失存储器,做为示例,包括半导体存储器设备,诸如EPROM,EEPROM和闪存设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;和CD-ROM和DVD-ROM盘。可由ASIC(专用集成电路)补充处理器和存储器,或可将处理器和存储器结合在ASIC内。
为了提供与用户的交互,这些特征可被实现在具有用于向用户显示信息的显示设备,诸如CRT(阴极射线管)或LCD(液晶显示器)监测器,键盘和用户通过其可以给计算机提供输入的指点设备,诸如鼠标或轨迹球的计算机上。
这些特征可被实现在包括后端组件诸如数据服务器,或包括中间件组件诸如应用服务器或互联网服务器,或包括前端组件诸如具有图形用户接口或互联网浏览器的客户计算机,或它们的任意组合的计算机系统内。可以用任意形式或介质的数字数据通信诸如通信网络连接系统的组件。通信网络的示例包括例如LAN,WAN和形成互联网的计算机和网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般地彼此远离,并且通常通过网络诸如所述的一种网络交互。由于计算机程序运行在各自的计算机上,并且彼此具有客户端-服务器关系,产生了客户端和服务器关系。
虽然上面已经详细描述了几种实现,其它的修改是可能的。另外,图中给出的逻辑流程不需要示出的特定顺序或连续的顺序以便实现所希望的结果。另外,可以提供其它步骤,或可以从描述的流程中消除其它步骤,并且可以给描述的系统增加其它组件,或从描述的系统中删除其它组件。因此,其它实现在下面的权利要求的范围内。
已经描述了若干实现。然而,应当理解,可以做出各种修改而不脱离本公开的范围。因此,其它实现在下面的权利要求的范围内。