jBPM, open source BPM
Upcoming SlideShare
Loading in...5

jBPM, open source BPM



jBPM & Drools Workshop, NY

jBPM & Drools Workshop, NY



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds


Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

jBPM, open source BPM jBPM, open source BPM Presentation Transcript

  • jBPM5: Bringing more Power jBPM, to your Business Open Source BPM Processes Kris Verlaenen jBPM Project Lead June, 2012 1
  • jBPM Overview• jBPM Project• jBPM walkthrough• Roadmap
  • What is BPM? Business Process Management A business process is a process that describesthe order in which a series of steps need to be executed, using a flow chart.
  • Why BPM?• Visibility • Continuous improvement• Monitoring • Speed of development• Higher-level • Increased agility
  • jBPM Project• (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
  • Life Cycle Business Analyst Model Developer SystemAdministrator Monitor BPM Deploy Execute End User
  • End User r ito on Your jBPM Console Application M e Core Services ut ec Your Core History Task Ex Services Engine Log Service Rules y lo ep Guvnor D Repository el Web-Based Eclipse Editor od DesignerM Developer Business Analyst
  • Key Characteristics• Open-source, lightweight• Native BPMN 2.0• High-level business processes• Business user & developer collaborate• Advanced, adaptive processes• Modularized, pluggable, standards
  • Advanced, adaptive processes• (One of the) most advanced open- source BPMN2 engine• Adaptive, ad-hoc, dynamic processes• Integration and unification with business rules and complex event processing
  • jBPM Walkthrough• Core engine• From Workflow to BPM• Extra features• Social, Cloud and Mobile
  • Core Engine• Core engine is a workflow engine in pure Java – state transitions – lightweight – embeddable – generic, extensible Core Engine
  • Core Engine StatefulKnowledge Knowledge Base SessionProcess ProcessDefinition Instance
  • Java InterfaceProcessRuntime interface• startProcess(processId)• startProcess(processId, parameters)• signalEvent(type, event)• signalEvent(type, event, instanceId)• abortProcessInstance(instanceId)• getProcessInstance(instanceId)• …
  • Java Example// (1) Create knowledge base and add process definitionKnowledgeBuilder kbuilder = ...kbuilder.add( ..., "sample.bpmn", ResourceType.BPMN2);KnowledgeBase kbase = kbuilder.newKnowledgeBase();// (2) Create new stateful knowledge sessionStatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();// (3) Start a new process instanceksession.startProcess(“com.sample.bpmn.hello”);
  • From Workflow to BPM
  • From Workflow to BPM XML Core Engine BPMN 2.0
  • BPMN 2.0<definitions ... > <process id="com.sample.bpmn.hello" name="Hello World" > <startEvent id="_1" name="StartProcess" /> <sequenceFlow sourceRef="_1" targetRef="_2" /> <scriptTask id="_2" name="Hello" > <script>System.out.println("Hello World");</script> </scriptTask> <sequenceFlow sourceRef="_2" targetRef="_3" /> <endEvent id="_3" name="EndProcess" /> </process> </definitions>
  • jBPM Eclipse Plugin• Developer-focused• Features: – Wizards, runtimes, perspective – Graphical editor – Testing and debugging – Service repository, generators – Guvnor integration
  • Web-based Designer• Business User-focused• Features – Graphical Editor – Visual validation – Service repository, generators – Guvnor integration• Based on Oryx Designer – JavaScript, JSON
  • From Workflow to BPM JPA Persistence XMLJTA Trans- actions Core Engine BPMN 2.0
  • Persistence and Transactions• Persistence (JPA, pluggable) – Runtime persistence – History logging – Services• Transactions (JTA, pluggable) – Command-scoped – User-defined
  • Persistence• Core engine no persistence• Macro transactions• Binary persistence of runtime data• Separation of history information• External services – using work items, async – independent task service
  • ProcessInstancestartProcess Process 1 active d/m/yy hh:mm ... Runtime Engine addTask Task 1 Task1 sales ... Service Tasks 2 Task2 HR ... Task Task
  • ProcessInstance Process 1 active d/m/yy hh:mm ... Runtime Enginecomplete Task 1 Task1 sales ... Service Tasks 2 Task2 HR ... Task Task complete
  • ProcessInstance Process 1 active d/m/yy hh:mm ... Runtime Enginecomplete Task 1 Task1 sales ... Service Tasks 2 Task2 HR ... Task Task complete
  • From Workflow to BPM Persistence XML Trans- actions Core Engine BPMN 2.0History Events Log Management Console BAM
  • Console• Web-based management• Business user• Features – Process instance management – User task lists / forms – Reporting
  • Console• GWT• Generic BPM console – jBPM integration code• REST API• One embedded session – Persistence, history logging• Eclipse BIRT reporting: custom reports
  • From Workflow to BPM Persistence XML Trans- actions Core Engine BPMN 2.0 Events Domain-specific Integration Processes Human Task ESB Service
  • Domain-specific Processes• Extend palette with domain-specific, declarative service nodes – define input / output parameters – runtime binding
  • Domain-specific Processes• Why? • Other examples – Domain-specific – Human task – Java method – Declarative – WS, Rest – High-level – Email, Twitter – Context-defined – FTP, RSS, Jabber – Finder, Exec, Archive – Google CalendarRepository ! – YOUR SERVICES !
  • Service Repository
  • Example: Notification[ [ "name" : "Notification", "parameters" : [ "Message" : new StringDataType(), "From" : new StringDataType(), "To" : new StringDataType(), "Priority" : new StringDataType(), ], "displayName" : "Notification", "icon" : "icons/notification.gif" ]]
  • Example: Notificationclass NotificationHandler implements WorkItemHandler { public void executeWorkItem(WorkItem wI, WorkItemManager manager) { String from = (String) wI.getParameter("From"); String to = (String) wI.getParameter("To"); String m = (String) wI.getParameter("Message"); // send email EmailService service = ...; service.sendEmail(from, to, "Notification", m); manager.completeWorkItem(wI.getId(), null); }}
  • Human task service• User task• Human task service (WS-HT) – Task lists – Task life cycle• Task clients – Task forms
  • Human Task Service• Independent, pure Java implementation• Different underlying technologies – Local – Apache Mina, HornetQ, JMS• I18N, calendar, deadlines, escalation• UserGroupCallback
  • SwitchYard Lightweight service delivery framework providing full lifecycle support for developing, deploying, and managingservice-oriented applications • SwitchYard BPM component
  • Extra Features
  • Extra features• Process instance migration• JUnit testing• Spring• OSGi• Migration from jBPM3(/4)
  • Installer• Out-of-the-box working environment• Sample process• Components – Eclipse (jBPM + Drools) – Guvnor + Designer – jbpm-console – Services • H2 DB, human task service, history log
  • Examples• Evaluation• Examples module – Looping – Multi-instances – Human tasks (including user / group assignment, delegation, forms, etc.) – Process + rules integration
  • Social, Cloud and Mobile
  • Ready for the future?Traditional BPM systems have problems with change, complexity, flexibility, data- intensive applications, etc. • Adaptive Case Management (ACM) • Unstructured, non-lineair or flexible processes • Event-driven BPM (edBPM)
  • MotivationA business solution usually involves the interaction between these technologies. Technology overlap Business overlap Attribute the same importance to the three complementary business modeling techniques
  • Processes Rules Events Business Logic
  • Example: Build Management Source: Hudson Execution and Scheduling Architecture
  • Example: Build Management Source: Hudson Execution and Scheduling Architecture
  • Logistic Company - Solution Vehicle Aircraft Traffic Flow Traffic Incident Weather Event Stream Event Stream Event Stream Event Stream Event Stream Knowledge Bases Shipment Event Stream New Inferred Facts Facts Stop Event Stream Reasoning Knowledge Based Reasoning CEP [Temporal Reasoning] Spatial Reasoning Source: E. Tirelli & A. Mollenkopf - ORF2009
  • VisionA knowledge-oriented platform for developers and business users
  • Exceptional Control Flow90%5%3%2%
  • Exceptional Control Flow90% Rule1 Rule2 Rule3 When When When ... ... ... Then Then Then ... ... ... 5% 3% 2%
  • Example: Clinical DSS
  • Combining Processes, Rules and Events• Integration – From loose coupling – To advanced integration• Unification – Processes and (event) rules are different types of business knowledge assets – Tooling (IDE, repository, management)
  • JBoss AS 7• Blazingly fast• Lightweight• Module core• jBPM5 on AS7: Lightning !
  • OpenShift• Based on Open Source• Innovation• Choice• Java, PHP, Ruby, Python, Perl & more• Express, Flex, Power• Amazon EC2
  • jBPM Everywhere • Run jBPM5 natively on Android
  • Roadmap Feb11 Jun11 Dec11 Apr12jBPM 5.0 5.2 5.1 Service repository 5.3 5.x 6.x Web Designer Examples Eclipse Designer Common Executable AS7 Documentation Form Builder Simulation JUnit test OpenShift As a service
  • JBoss Enterprise Product Delivery ModelExample: jBPM Community and Enterprise Product 3 3.2 JBoss SOA-P 5 Full Support (3yrs) Transition (1yr) Maintenance (1yr) Flow Enterprise versions provide long-term 4 support, regular releases including fixes, 5 new features, and new platforms certifications. JBoss BRMS 5.3 Full Support (3yrs) Transition (1yr) 6 New community features may be backported to Enterprise 7 versions While community projects continue to rapidly evolve, enterprise middleware products focus on long term stability.
  • Roadmap: jBPM 5.3Date: May 21st, 2012• Eclipse Designer• Form Builder• Web Designer• Test and form generators
  • Eclipse BPMN2 editorhttp://eclipse.org/projects/project.php?id=soa.bpmn2-modeler
  • Eclipse BPMN2 editor• eclipse.org project• Using Eclipse BPMN2 EMF model• Graphical editor for full BPMN2 specification (based on Graphiti)• Target engine + profiles• Custom jBPM editors / extensions
  • Form Builder• Generate form for process / task• Graphically design process (D&D)• Triggers, validation• Integrated into Guvnor
  • Roadmap: jBPM 5.x• Simulation and replay• BPM as a service – Expose as ... – Session mgmt and HA – Integrate with external services• Cloud
  • jBPM5: Bringing more Power jBPM, to your Business Open Source BPM Processes Kris Verlaenen jBPM Project Lead June, 2012 72