What's new in jBPM6

6,421 views
5,935 views

Published on

Overview of what's new in the upcoming jBPM 6 release.

Published in: Technology, Business
1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total views
6,421
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
224
Comments
1
Likes
6
Embeds 0
No embeds

No notes for slide

What's new in jBPM6

  1. 1. 1
  2. 2. 2Kris VerlaenenjBPM Project LeadWhat’s new in jBPM6June, 2013
  3. 3. 3● Intro● New User Interface● Building and deploying● Session and task service mgmt● BPM service● RoadmapOverview
  4. 4. 4Key Characteristics● (Executable) business processes– light-weight, native BPMN2 engine– from embedded to as a service● Entire life cycle● Both developers and business users● Advanced, adaptive processes
  5. 5. 5AuthoringDeploymentExecute& ManageDashboardsDeveloperBusinessUserEnd UserLife Cycle
  6. 6. 6AuthoringBusiness ProcessesBusiness RulesData ModelsFormsDeploymentDeployRepositoryManage ProcessesProcess ListInstance ManagerTasksTask ListTask CalendarDashboardsProcess Dashboards
  7. 7. 7Form Modeler
  8. 8. 8Authoring● Based on UberFire Workspace– GWT, Errai, etc.● Guvnor– Designer• Simulation– Data Modeler, Form Modeler, etc.– Various rule editors
  9. 9. 9Deployment● VFS: Git as backend● Mavenized: kjars– processes, rules– models / classes– forms, configs, etc.● DeploymentId– dependencies
  10. 10. 10Execute & ManageKieSessionTaskServiceRuntime ManagerPersistenceSingletonPer requestPer process instanceJPA2 (Hibernate)JTA / SpringPluggable
  11. 11. 11RuntimeManager manager =  RuntimeManagerFactory.Factory.get()    .newPerProcessInstanceRuntimeManager(environment);RuntimeEngine runtime =    manager.getRuntimeEngine(        ProcessInstanceIdContext.get());KieSession ksession = runtime.getKieSession();TaskService taskService = runtime.getTaskService();// do something here, e.g.ksession.startProcess(“org.jbpm.hello”);manager.disposeRuntimeEngine(engine);manager.close();Runtime Manager
  12. 12. 12Execute & ManageKieSessionTaskServiceRuntime ManagerPersistencejBPM ServicesTimerQuartzRestore SessionsCDIDeployment
  13. 13. 13@Inject@SingletonRuntimeManager singletonManager;@InjectTaskService taskService;public void myMethod(..) {  RuntimeEngine runtime =    singletonManager.getRuntimeEngine(EmptyContext.get());  KieSession ksession = runtime.getKieSession();  ksession.startProcess(..);  taskService.start(..);}jBPM Services
  14. 14. 14Execute & ManageKieSessionTaskServiceRuntime ManagerPersistencejBPM ServicesTimerKieSessionTaskServiceRuntime ManagerjBPM ServicesTimer
  15. 15. 15● KieSession and TaskService– uses jBPM Services and RuntimeManager– “execute”● Using REST or JMS● Remote client using existing interfacesRemote API
  16. 16. 16REST APIhttp://server.address:port/{application-id}/rest/runtime{id: [a-zA-Z0-9-]+} // deploymentIdprocess{id: [a-zA-Z0-9-]+}start * start process [POST]instance{id: d} * process instance details [GET]signal * signal event [POST]abort * abort process instance [POST]signal{id: [a-zA-Z0-9-]+} * signal event [POST]workitem{id: d}complete * complete work item [POST]abort * abort work item [POST]execute * execute the given command [POST]task{id: d+} * task details [GET]activate * activate taskclaim * claim task [POST]// etc..execute * execute the given command [POST]query * task query
  17. 17. 17RemoteRuntimeManagerjbpm-servicesTaskServiceKieSessionREST/JMSKieSession +TaskService APICommandOther RESTClient<command­message>  <deploymentId>test</deploymentId>  <ver>1</ver>  <start­task>    <taskId>1</taskId>    <userId>krisv</userId>  </start­task></command­message>
  18. 18. 18RuntimeManager runtimeManager =   new RemoteSessionFactory(    "http://localhost:8080/kie­wb", "test")      .newRuntimeManager();RuntimeEngine engine =   runtimeManager.getRuntimeEngine(    EmptyContext.get());engine.getKieSession()  .startProcess("org.jbpm.humantask");engine.getTaskService().start(1, "krisv");Remote REST Client
  19. 19. 19Cloud-enabled
  20. 20. 20● Exception and compensation management● Extended History Logging● BPSim 1.0● WS and REST integration● Eclipse BPMN2 ModelerWhat Else ?
  21. 21. 21Feb11 Nov12jBPM 5.05.4 6.0Unified Web UIDeploymentRuntime MgmtjBPM servicesRemote api + clientJun13jBPM Roadmap6.1 6.xImproved Web UIConnectorsDynamic / CasesCloud-enabledMobileCollaborationSocialRedHat JBoss BPMS 6
  22. 22. 22Example: Checklisthttps://github.com/droolsjbpm/jbpm/tree/master/jbpm-examples/src/main/java/org/jbpm/examples/checklist
  23. 23. 23Example: Dynamic● Process evolution / migration– WorkflowProcessInstanceUpgrader.upgradeProcessInstance(    ksession, processInstance.getId(), "ruleflow2", ...);● Ad-Hoc (Sub-)Processes– DynamicUtils.addDynamicWorkItem(processInstance,    ksession, "OtherTask", new HashMap<String, Object>());● Updating one process instance– insertNodeInBetween(process, 2, 3, node);processInstance.updateProcess(process);● Business Rules● Towards Case Management
  24. 24. 24● Day: Thursday, June 13th● Location:Hynes Convention Centre,Hynes Room 110● Time: 09.30 to 17.00Drools & jBPMWalk In Center
  25. 25. 25BackupSlides
  26. 26. 26
  27. 27. 27
  28. 28. 28
  29. 29. 29
  30. 30. 30
  31. 31. 31
  32. 32. 32
  33. 33. 33
  34. 34. 34
  35. 35. 35
  36. 36. 36
  37. 37. 37
  38. 38. 38

×