JBoss 系列七十二:jBPM 6 新功能/特性介绍(API 层面)
2013-12-23 17:55
477 查看
概述
jBPM 6.0 最终版已与上月底发布,与jBPM 5相比有很大变化,本文从API编程的角度去简单说说jBPM 6,本文涉及到内容包括:2个重要的接口
运行状态管理
jBPM 服务注入 (CDI)
2个重要的接口
jBPM 6最主要的两个接口指的是KieSession (ProcessRuntime)和TaskService。KieSession 是最常用与引擎交互的接口,一个KieSession允许应用与引擎建立一个iterative conversation,where the state of the session is kept across invocations. The reasoning process may be triggered multiple times for the same set of data. 当应用程序完成使用session,dispose()方法必须被调运,这样是为了free the
resources and used memory。
使用KieSession执行企业规则文件的例子:
KieServices kieServices = KieServices.Factory.get(); KieContainer kContainer = kieServices.getKieClasspathContainer(); KieSession kSession = kContainer.newKieSession(); for( Object fact : facts ) { kSession.insert( fact ); } kSession.fireAllRules(); kSession.dispose();
使用KieSession执行企业流程文件的例子:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("sample.bpmn"), ResourceType.BPMN2); KnowledgeBase kbase = kbuilder.newKnowledgeBase(); KieSession kSession = kbase.newStatefulKnowledgeSession(); kSession.startProcess("com.sample.processid"); kSession.signalEvent("SomeEvent", null); kSession.startProcess("com.sample.processid"); kSession.dispose();
ProcessRuntime 是最高层的抽象接口,用来启动流程,创建一个流程(不启动),激活信号,取消一个流程,获取所有流程实例已经获取session相关的WorkItemManager。
TaskService可以看作是对外提供的一个统一接入点,用来获取所有TaskService服务。(The Task Service Entry Point serves as facade of all the other services, providing a single entry point to access to all the services)
运行状态管理
jBPM 6运行状态管理(Runtime Manager)使用本地 KieSession, 本地 TaskService,与jBPM 5相比,隐藏了复杂的设定过程。Runtime Manager管理三种类型的session:
Singleton session
Session per request
Session per process instance
如下为一个session管理过程示例:
RuntimeManager manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment); RuntimeEngine runtime = manager.getRuntimeEngine(ProcessInstanceIdContext.get(id)); KieSession ksession = runtime.getKieSession(); // do something here, e.g. ksession.startProcess(“org.jbpm.hello”); manager.disposeRuntimeEngine(engine); manager.close();
jBPM 服务注入 (CDI)
jBPM 6默认安装到JEE6兼容的JBoss 7容器,CDI是JEE6的基本组件,jBPM 6也提供了 将jBPM相关的服务可以注入到CDI环境。如下注册RuntimeManager示例:
@Inject @Singleton RuntimeManager singletonManager;
如下为注册TaskService示例:
@Inject TaskService taskService;
相关文章推荐
- JBoss 系列七十一:jBPM 6 发布,快速安装,新功能介绍
- MSDN Webcast预告:.NET 4.0中的新特性系列课程(3):.NET 4.0 Beta1 Interop 新特性介绍 (Level 200)
- Trove系列(三)—Trove的功能管理功能介绍
- JBoss JBPM 实践系列(二)--- jbpm设计器的配置和使用
- Vue + Webpack + Vue-loader 系列教程(1)功能介绍篇
- Solarwinds 系列软件功能介绍(第二部分 配置和一致性管理)
- Jboss-jbpm介绍及简单例子
- JBoss 系列六十三:JBoss 7/WildFly 集群之 Java Persistence API (JPA) - II(Hibernate查询缓存和二级缓存示例)
- 淘宝API开发(一)简单介绍淘宝API功能接口作用
- Java SE 6 新特性系列 第 1 部分,Instrumentation 新功能
- SlidingMenu 详解系列(一)API介绍
- Android7.0新特性介绍(二)——通知增强功能
- FusionCharts-v3.1功能特性介绍
- 荷露叮咚wp建站系列视频课程.3WordPress功能菜单介绍
- 【2014 Esri开发者大会精彩看点】ArcGIS for JavaScript API实用功能及未来新特性(上)
- HTML5是什么?新特性和新功能介绍
- cPanel介绍系列――虚拟主机管理系统cPanel的主要功能
- WEB 开发技术系列之三--改善JBOSS的日志功能
- MSDN Webcast预告:.NET 4.0中的新特性系列课程(3):.NET 4.0 Beta1 Interop 新特性介绍 (Level 200)
- MSDN Webcast预告:.NET 4.0中的新特性系列课程(3):.NET 4.0 Beta1 Interop 新特性介绍 (Level 200)