首先Spring的应用上下文被创建,然后流程定义会在应用的上下文中获得。
所有的Services服务是没有国界的。这就意味着你可以很轻松的在一个集群的多个节点中运行Activiti,每一个都用到相同的数据库,并且在以前的调用中,哪一个机器实际上被执行不会出现错误。任何服务的调用都是同等的,不管它在哪里被执行。
当用流程引擎工作的时候,第一个被需要的服务大概就是 RepositoryService。这个服务为管理、多个部署和流程定义都提供了操作。这里不作详细介绍,一个流程定义是BPMN 2.0的一个java相关。它是一个流程每一步的结构和行为的表现。一个部署包是Activiti引擎下的包的单元。一个部署包能包含多个BPMN 2.0 xml文件和其他的一些资源。一个部署包里面包含什么由开发者决定。这些包括从单一的流程BPMN 2.0文件到一个整个的流程包和相关的资源。RepositoryService允许去部署这样的包。部署一个部署包意味着这是上传到引擎中,引擎中的所有的流程在被存到数据库之前都会被检查和解析。从这点来看,这个部署包被系统能识别,并且任何流程都被包含进这个部署包中,这样的部署包现在才能被启动。
进一步说,这样的服务允许去:
为引擎在部署包和流程定义中提供查询
终止或者激活部署包作为整个或者特别的流程定义。终止意味着不能再在部署包和流程定义中进行操作,当然,激活意味着相反的操作。
取回各种各样的资源,比如包含部署包或者流程程序的文件。然后这些资源被引擎自动发布。
取回一个流程定义的pojo版本,这个版本能被用于用java比xml反省流程。