ProcessEngine可以对外提供四个服务:分别是ProcessService、TaskService、IdentityService和ManagementService。
这四个服务最终的执行行为都依赖于CommandExecutor这个命令执行器来完成。
CommandExecutor用来执行Command,Command是一个接口,定义了设置ProcessEngineConfiguration的setProcessEngineConfiguration()方法和执行命令的execute(Command<T> command)的方法。
由此可见,只要改变实现Command接口的类,就可以改变CommandExecutor的行为,也即改变了上述四个服务的行为。
而每次执行的Command是在执行的时候设置进去的(如果将来activiti引入Spring,同样也可以通过配置实现),因此扩展起来非常的灵活。
ProcessEngine对外暴露了4个服务,而ProcessEngineImpl除了实现ProcessEngine对外暴露的四个服务外,还增加了两个服务JobExecutor和PersistenceSessionFactory。在ProcessEngineImpl部分会详细说明。
而ProcessEngineConfiguration包含了18个服务,包括了上面提到的ProcessEngine用到的四个服务,在ProcessEngineConfiguration部分说明。