jbpm introduction - judcon brazil 2013
TRANSCRIPT
Intro tojBPMJudCon Brazil - 2013Mauricio "Salaboy" SalatinoRed Hat/JBoss Senior Software Engineerhttp://salaboy.com
1
AGENDA•What is BPM?
•Business Process
•BPMS
• Technical Perspective - jBPM
•Architecture / Components
•How jBPM fits in our infrastructure?
•Why jBPM? and How to?
2
3
WHAT IS BPM?•Business Process Management is a Discipline
• It's not a technology
•Main Goals:
• Formalize and Expose the business activities
• Continuously improve the company efficiency to achieve business goals
• Iteratively recognize and fix issues to improve how the work is being done
4
HOW DOES BPM WORK?•BPM propose a set of Stages
•Discover • Formalize (Model)•Monitor• Improve
• Iterative and Incremental• The stages work on top of the Business Process concept
5
BUSINESS PROCESS
• Sequence of Steps•Human and/or System Interactions•Main Purpose: Achieve a Business Goal
6
HIRING EXAMPLE
7
BPM Benefits (Company)•Processes definitions formalize the Company's activities
•Processes can be understood and validated by everyone in the company
•Knowing our Processes helps us in:
•Helps towards standardization
• Very useful for training new people
•Remove unnecessary/duplicated tasks
• Find bottlenecks 8
BPM Suite • Set of tools to assist the BPM Discipline• Each tool is targeted to a Stage•Active approach: • Execute/Automate the business processes
9
BPMS Stages
10
BPMS Benefits (Company)• The tools will guide the company processes
• The processes executions gives us a lot of useful information:
• Traceability: we will know at all times where a process is, in which activity is and who is responsible for it
•Measurements: we can track how much time does it takes to execute a process, a task, a system interaction and then compare with the company SLAs
11
BPMS Benefits (Technical)•Helps us to decouple the technical aspects of the
development from the business aspects
• It help us to define a standard integration platform and architecture to automate and guide the business' activities
•Decouple the Technical release cycle from the Business release cycle, allowing us to react faster to business changes
12
One last thing•A BPMS is not about throwing what we already have to
the trash and start again
•Adopting a BPMS is about improving what we already have by adding a business layer
13
jBPM• Is a (Flexible) Business Process Management Suite
•Provides a set of Tools and Components to implement the BPM Discipline
• Flexibility is key aspect of the platform, you can use what you need in the way you need it
• 6.0.Beta1 Released two weeks ago (Community)
14
jBPM Overview
15
Process Engine• Flexible Process Execution Engine• Language Independent• Lightweight• Extensible
16
BPMN2• The de-facto standard notation to model Business
Processes today
•Defined by the OMG (2012)
• Standard representation & execution semantic
17
jBPM +• The Process Engine doesn't come alone•Drools Expert (Rule Engine) •Drools Fusion (Complex Event Processing Features)
18
Human Task Service•Deals with Human Interactions•Based on an Oasis Standard called WS-HT•Defines• The Task Lifecycle•A Standard Interface for the service
19
Persistence & Transactions• Long Running processes requires to be stored in order to
free resources
• The concept of Safe Point is used to determine when the process can be passivated to the database
• In order to guarantee coherence between several systems a transaction mechanism is required
20
Audit/History Log•We can externalize the information that is being
generated by the Engines and other components • This is: •Process Execution Data•Rules Execution Data•Human Tasks Interaction Data• System Interactions Data
•We can define how and where this information is stored21
User Interfaces•Authoring & Governance•Process & Task Management•Business Activity Monitoring
22
Authoring & Governance•Process Designer•Rule Editor•Knowledge Repository • Versioning• Tags/Branches•Deployment • Staging
•Project Configurations23
Authoring
24
Process & TaskManagement• jBPM Console NG•Process Management•Process Definition List•Process Instance Creation•Process Instance Inspection
• Task Management•Personal & Group Task List• Calendar View
•Pluggable Task Forms (6.x)25
Task List
26
BAM•Dashboard like User Interface to analyze how the
company is working in Real Time•Key Performance Indicators can be defined for each
widget inside the dashboard• Can be fed by multiple data sources, including the
History Logs
27
but.. How does it fit? • Standalone / Embedded•Mobile
•As a Service•Mix
• Cloud
28
Standalone•Pros: • In memory access to the Process/Rule Engine• Simple Architecture
• Cons:•Our app will have all the jBPM libs inside it•Our app will be running the process engine inside it
29
Mobile•Pros:• Its cool!
• Cons:• Limited capabilities•No Persistence/Tx mechanism•Usually short (in memory) processes
30
As a service•Pros:
• The Engines will run in an isolated environment
• Tuning and managing these services will be completely about jBPM/Drools and not related with any application
• Cons:
•A transport need to be included to contact the service (RPC, Web Services, JMS, etc)
•A more complicated architecture from the transactional point of view
31
Mix•Pros:•We hide the engine behind a business interface• Each service can configure the engine in a different
way• Cons: • Each service will include the overhead of the runtime• The runtimes cannot be shared between different
services
32
Cloud•Pros:
•Multiple runtimes can serve different customers with different needs
• Each customer will have a different provisions of runtimes
• Cons:
•We need a more complicated infrastructure
• You will need to define the policies to create new runtimes and what is allowed to each user
33
Why jBPM?•Because companies are complex, and process engines
are not enough.•Once we dominate the Process Modeling and Execution
we can:•Use the Rule Engine to improve the range of scenarios
that we can cover•Use Complex Event Processing to influence our
business processes• If you are not using any these technologies, jBPM is a
very good start point
34
jBPM - How to?•What do I need?
• You need a process
• You need a runtime
• Then what?
• Start the process instances
• Enable the users associated with the process to interact
35
jBPM - How to?•Process
•Runtime
36
jBPM - How to?• Start a Process Instance• Enable the users to work on it
37
jBPM - How to?•Get the example
• git clone http://github.com/salaboy/jbpm6-cdi-examples
• Look at the Hiring Process example
• Compile and test: mvn clean install
•Have fun!
38
Questions?JudCon Brazil - 2013@Salaboy
39