SlideShare uma empresa Scribd logo
1 de 36
&



jBPM & BPMN


jPrase


Vít Kotačka



24. 11. 2011
© Adastra Group
Agenda


     BPMN
       ̶   Overview
     jBPM
       ̶   JBoss Middleware & BRMS
       ̶   Core Engine API
       ̶   Process Nodes
       ̶   Human Tasks
       ̶   Testing & debugging




2
BPMN Overview




3
Business Process Model and Notation


     Graphical representation for specifying business processes.
     Providing a notation that is intuitive to business users :-)
     Maintained by OMG (Object Management Group).
     Similar to Activity Diagrams from UML.
     Provides a mapping between
      the graphics of the notation
      and the underlying constructs
      of execution languages (BPEL).
     Shows the flow of data (messages),
       but it is not a data flow diagram.




4
Example Diagram
Business Process BPMN




                                                   Activity2
    FirstLine




                                    Activity1

                 StartEvent1                                   EndEvent1


                                                   Activity3
    SecondLine




                                                   Activity4




                                   Use Case1



                                 (from Use Case)


5
Elements


     Flow objects
        ̶   Activity
        ̶   Event
        ̶   Gateway
     Connecting object
        ̶   Sequence flow
        ̶   Message flow
        ̶   Association
     Swim lanes
        ̶   Pool
        ̶   Lane
     Artifacts
        ̶   Data object
        ̶   Group
6
Activities




7
Events


     Start Event
     Stop Event
     Intermediate Event
       ̶   Interrupting
       ̶   Non-interrupting




8
Gateways




9
Swimlines




10
72 Implementations




11
JBoss Middleware & BRMS




12
JBoss Enterprise Middleware




13
JBoss Enterprise SOA




14
Drools/JBoss BRMS


      Drools Guvnor: A centralised repository for Drools
       Knowledge Bases. The repository component is
       where you can store versions of rules, models,
       functions, processes etc.
      Drools Expert: A forward chaining rule engine based
       on Rete algorithm.
      jBPM: A light-weight, extensible workflow engine
       written in pure Java that allows to execute business
       processes using the latest BPMN 2.0 specification.




15
Core Engine API




16
Core Engine




17
Knowledge Base


        Contains a reference to all the relevant process definitions.
        Can be shared across sessions.
        Usually is only created once (at the start of the application).
        Can be dynamically changed (add/remove process at runtime).

     KnowledgeBuilder kBuilder =
          KnowledgeBuilderFactory
                .newKnowledgeBuilder();
     kBuilder.add(ResourceFactory
                .newClassPathResource("hello.bpmn"),
                                 ResourceType.BPMN2);
     KnowledgeBase kBase =
          kBuilder.newKnowledgeBase();

18
Session


        Can be created based on a knowledge base.
        Are used to execute processes and interact with engine.
        Multiple sessions can be created (independency, scalability).
        Is relatively lightweight.

     StatefulKnowledgeSession session =
          kBase.newStatefulKnowledgeSession();
     ProcessInstance process =
          session.startProcess(
                     "com.adastracorp.jbpm.hello");




19
Events


      Session can register listeners.
      ProcessEventListener listens to process-related events.
      KnowledgeRuntimeLoggerFactory adds logger to session.
        ̶   console logger
        ̶   file logger




20
ProcessEventListener




21
Process Nodes




22
Process Node Types


      Events: They are used to model the occurrence of a particular
       event.
      Activities: These define the different actions that need to be
       performed during the execution of the process.
      Gateways: Can be used to define multiple paths in the
       process.




23
Events


      Start Event: The start of the process.
      End Events
         ̶   End Event: The end of the process.
         ̶   Throwing Error Event: Can be used to signal
             an exceptional condition in the process.
      Intermediate Events
         ̶   Catching Timer Event: A timer that can trigger
           one or multiple times after a given period of
           time.
         ̶ Catching Signal Event: Can be used to
           respond to internal or external events during
           the execution of the process.
24
Gateways


      Diverging Gateway
        ̶   AND (parallel)
        ̶   XOR (exclusive)
        ̶   OR (inclusive)


      Converging Gateway
        ̶   AND
        ̶   XOR




25
Activities


      Script Task: A script that should be executed in this
       process. Can access any variables and globals.
      Service Task: An (abstract) unit of work that should
       be executed in this process (work that is executed
       outside the process engine).
      User Task: An (atomic) task that need to be
       executed by human actors.
      Reusable Sub-process: An invocation of another
       process from within this process.
      Business Rule Task: A set of rules that need to be
       evaluated. Rules are defined in separate files using
       the Drools rule format.


26
Activities


      Embedded Sub-process: A Sub-
       Process is a node that can contain
       other nodes so that it acts as a node
       container. If you use a terminating
       event node inside a sub-process, you
       are terminating the top-level process
       instance, not just that sub-process.
      Mulit-instance Sub-process: Allows you
       to execute the contained process
       segment multiple times, once for each
       element in a collection.




27
Human Tasks




28
Human Tasks


      Based on the WS-HumanTask specification.
      An atomic task that needs to be executed by a human actor.
      Can be assigned to
         ̶   one specific user
         ̶   one or more groups
      Can be used in combination with swimlanes to assign multiple
       human tasks to the same actor.
      Human task service
         ̶   manages the life cycle of the tasks (creation, claiming, completion, etc.)
         ̶   stores the state of all the tasks
         ̶   supports features like internationalization, calendar integration, different
             types of assignments, delegation, deadlines, etc.



29
Human Task Model




30
Human Task Life-cycle




31
Testing & debugging




32
Debugging


      Process Instance(s) View shows the currently running process
       instances.



      Human Task View can connect to a running human task
       service and request the relevant tasks for a particular user.




      Audit View is a log of all events that were logged from the
       session.


33
What has been omitted


        Rule Tasks
        Persistence
        Transactions
        Domain-specific processes
        Process (Knowledge) repository
        Business Activity Monitoring
        Flexible Processes




34
Sources


      http://www.bpmn.org/
      http://www.bpmb.de/images/BPMN2_0_Poster_EN.pdf
      http://www.jboss.org/jbpm




35
36

Mais conteúdo relacionado

Mais procurados

Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Simplilearn
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring BatchAntoine Rey
 
Version Control History and Git Basics
Version Control History and Git BasicsVersion Control History and Git Basics
Version Control History and Git BasicsSreedath N S
 
BPMN Introduction
BPMN IntroductionBPMN Introduction
BPMN Introductionejlp12
 
Introduction to Business Process Model and Notation (BPMN) - OSSCamp 2014
 Introduction to Business Process Model and Notation (BPMN) - OSSCamp 2014 Introduction to Business Process Model and Notation (BPMN) - OSSCamp 2014
Introduction to Business Process Model and Notation (BPMN) - OSSCamp 2014OSSCube
 
Devoxx 2012 hibernate envers
Devoxx 2012   hibernate enversDevoxx 2012   hibernate envers
Devoxx 2012 hibernate enversRomain Linsolas
 
Implementing BPMN 2.0 with Microsoft Visio
Implementing BPMN 2.0 with Microsoft VisioImplementing BPMN 2.0 with Microsoft Visio
Implementing BPMN 2.0 with Microsoft VisioGoutama Bachtiar
 
D2 domain driven-design
D2 domain driven-designD2 domain driven-design
D2 domain driven-designArnaud Bouchez
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHubThibault Vlacich
 
Explain it to Me Like I’m 5: Oauth2 and OpenID
Explain it to Me Like I’m 5: Oauth2 and OpenIDExplain it to Me Like I’m 5: Oauth2 and OpenID
Explain it to Me Like I’m 5: Oauth2 and OpenIDVMware Tanzu
 
8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdfMikhail Andronov
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDDAmazon Web Services
 

Mais procurados (20)

Camunda BPM 7.2 - English
Camunda BPM 7.2 - EnglishCamunda BPM 7.2 - English
Camunda BPM 7.2 - English
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
 
BPMN 2.0 Fundamentals
BPMN 2.0 FundamentalsBPMN 2.0 Fundamentals
BPMN 2.0 Fundamentals
 
camunda for developer-friendly BPM
camunda for developer-friendly BPMcamunda for developer-friendly BPM
camunda for developer-friendly BPM
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
 
Git & GitHub for Beginners
Git & GitHub for BeginnersGit & GitHub for Beginners
Git & GitHub for Beginners
 
git flow
git flowgit flow
git flow
 
Version Control History and Git Basics
Version Control History and Git BasicsVersion Control History and Git Basics
Version Control History and Git Basics
 
Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
 
BPMN Introduction
BPMN IntroductionBPMN Introduction
BPMN Introduction
 
Introduction To Git
Introduction To GitIntroduction To Git
Introduction To Git
 
Introduction to Business Process Model and Notation (BPMN) - OSSCamp 2014
 Introduction to Business Process Model and Notation (BPMN) - OSSCamp 2014 Introduction to Business Process Model and Notation (BPMN) - OSSCamp 2014
Introduction to Business Process Model and Notation (BPMN) - OSSCamp 2014
 
Devoxx 2012 hibernate envers
Devoxx 2012   hibernate enversDevoxx 2012   hibernate envers
Devoxx 2012 hibernate envers
 
Implementing BPMN 2.0 with Microsoft Visio
Implementing BPMN 2.0 with Microsoft VisioImplementing BPMN 2.0 with Microsoft Visio
Implementing BPMN 2.0 with Microsoft Visio
 
D2 domain driven-design
D2 domain driven-designD2 domain driven-design
D2 domain driven-design
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Explain it to Me Like I’m 5: Oauth2 and OpenID
Explain it to Me Like I’m 5: Oauth2 and OpenIDExplain it to Me Like I’m 5: Oauth2 and OpenID
Explain it to Me Like I’m 5: Oauth2 and OpenID
 
8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDD
 

Destaque

Decision Management : M2DL@UPS Lecture
Decision Management : M2DL@UPS LectureDecision Management : M2DL@UPS Lecture
Decision Management : M2DL@UPS LectureEmmanuel Bonnet
 
Decision Service Architecture - Red Hat Forum Paris 2015
Decision Service Architecture - Red Hat Forum Paris 2015Decision Service Architecture - Red Hat Forum Paris 2015
Decision Service Architecture - Red Hat Forum Paris 2015Emmanuel Bonnet
 
Jboss jbpm and drools 1 introduction to drools architecture
Jboss jbpm and drools   1 introduction to drools architectureJboss jbpm and drools   1 introduction to drools architecture
Jboss jbpm and drools 1 introduction to drools architectureZoran Hristov
 
Intro to Drools - St Louis Gateway JUG
Intro to Drools - St Louis Gateway JUGIntro to Drools - St Louis Gateway JUG
Intro to Drools - St Louis Gateway JUGRay Ploski
 
JBoss BRMS sneak peak, the future is now for your Business Processes
JBoss BRMS sneak peak, the future is now for your Business ProcessesJBoss BRMS sneak peak, the future is now for your Business Processes
JBoss BRMS sneak peak, the future is now for your Business ProcessesEric D. Schabell
 
Red Hat JBoss BRMS Primer - JBoss Business Rules and BPM Solutions
Red Hat JBoss BRMS Primer - JBoss Business Rules and BPM SolutionsRed Hat JBoss BRMS Primer - JBoss Business Rules and BPM Solutions
Red Hat JBoss BRMS Primer - JBoss Business Rules and BPM SolutionsEric D. Schabell
 
Application Architecture -Data, Process, Rule-
Application Architecture -Data, Process, Rule-Application Architecture -Data, Process, Rule-
Application Architecture -Data, Process, Rule-Masahiko Umeno
 
Zero to Hero Using Red Hat JBoss BRMS
Zero to Hero Using Red Hat JBoss BRMSZero to Hero Using Red Hat JBoss BRMS
Zero to Hero Using Red Hat JBoss BRMSEric D. Schabell
 
JBoss BRMS - The enterprise platform for business logic
JBoss BRMS - The enterprise platform for business logicJBoss BRMS - The enterprise platform for business logic
JBoss BRMS - The enterprise platform for business logicJBug Italy
 
JBoss Business Rules Management System (BRMS) Primer
JBoss Business Rules Management System (BRMS) PrimerJBoss Business Rules Management System (BRMS) Primer
JBoss Business Rules Management System (BRMS) PrimerEric D. Schabell
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep diveMario Fusco
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Mark Proctor
 
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEJBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEtsurdilovic
 

Destaque (14)

Decision Management : M2DL@UPS Lecture
Decision Management : M2DL@UPS LectureDecision Management : M2DL@UPS Lecture
Decision Management : M2DL@UPS Lecture
 
Decision Service Architecture - Red Hat Forum Paris 2015
Decision Service Architecture - Red Hat Forum Paris 2015Decision Service Architecture - Red Hat Forum Paris 2015
Decision Service Architecture - Red Hat Forum Paris 2015
 
DecisionsFrst Modeler and Red Hat JBoss BRMS
DecisionsFrst Modeler and Red Hat JBoss BRMSDecisionsFrst Modeler and Red Hat JBoss BRMS
DecisionsFrst Modeler and Red Hat JBoss BRMS
 
Jboss jbpm and drools 1 introduction to drools architecture
Jboss jbpm and drools   1 introduction to drools architectureJboss jbpm and drools   1 introduction to drools architecture
Jboss jbpm and drools 1 introduction to drools architecture
 
Intro to Drools - St Louis Gateway JUG
Intro to Drools - St Louis Gateway JUGIntro to Drools - St Louis Gateway JUG
Intro to Drools - St Louis Gateway JUG
 
JBoss BRMS sneak peak, the future is now for your Business Processes
JBoss BRMS sneak peak, the future is now for your Business ProcessesJBoss BRMS sneak peak, the future is now for your Business Processes
JBoss BRMS sneak peak, the future is now for your Business Processes
 
Red Hat JBoss BRMS Primer - JBoss Business Rules and BPM Solutions
Red Hat JBoss BRMS Primer - JBoss Business Rules and BPM SolutionsRed Hat JBoss BRMS Primer - JBoss Business Rules and BPM Solutions
Red Hat JBoss BRMS Primer - JBoss Business Rules and BPM Solutions
 
Application Architecture -Data, Process, Rule-
Application Architecture -Data, Process, Rule-Application Architecture -Data, Process, Rule-
Application Architecture -Data, Process, Rule-
 
Zero to Hero Using Red Hat JBoss BRMS
Zero to Hero Using Red Hat JBoss BRMSZero to Hero Using Red Hat JBoss BRMS
Zero to Hero Using Red Hat JBoss BRMS
 
JBoss BRMS - The enterprise platform for business logic
JBoss BRMS - The enterprise platform for business logicJBoss BRMS - The enterprise platform for business logic
JBoss BRMS - The enterprise platform for business logic
 
JBoss Business Rules Management System (BRMS) Primer
JBoss Business Rules Management System (BRMS) PrimerJBoss Business Rules Management System (BRMS) Primer
JBoss Business Rules Management System (BRMS) Primer
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep dive
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEJBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
 

Semelhante a jBPM

Cross Language Process Model Reuse Po Em2009
Cross Language Process Model Reuse Po Em2009Cross Language Process Model Reuse Po Em2009
Cross Language Process Model Reuse Po Em2009mturi
 
2005 10-11 mm (seoul, korea - bpm korea forum) xpdl2 tutorial
2005 10-11 mm (seoul, korea - bpm korea forum) xpdl2 tutorial2005 10-11 mm (seoul, korea - bpm korea forum) xpdl2 tutorial
2005 10-11 mm (seoul, korea - bpm korea forum) xpdl2 tutorialMike Marin
 
CS101- Introduction to Computing- Lecture 32
CS101- Introduction to Computing- Lecture 32CS101- Introduction to Computing- Lecture 32
CS101- Introduction to Computing- Lecture 32Bilal Ahmed
 
javascript Event Handling and introduction to event.ppt
javascript Event Handling and introduction to event.pptjavascript Event Handling and introduction to event.ppt
javascript Event Handling and introduction to event.pptLalith86
 
Business processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss wayBusiness processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss wayKris Verlaenen
 
jBPM5 Community Training Module 4: jBPM5 APIs Overview + Hands On
jBPM5 Community Training Module 4: jBPM5 APIs Overview + Hands OnjBPM5 Community Training Module 4: jBPM5 APIs Overview + Hands On
jBPM5 Community Training Module 4: jBPM5 APIs Overview + Hands OnMauricio (Salaboy) Salatino
 
20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui softwareWill Shen
 
JBPM5 Community Training Course - Module #1 Introduction
JBPM5 Community Training Course - Module #1 IntroductionJBPM5 Community Training Course - Module #1 Introduction
JBPM5 Community Training Course - Module #1 IntroductionMauricio (Salaboy) Salatino
 
Devops presentation
Devops presentationDevops presentation
Devops presentationk9ert
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkbanq jdon
 
A Practical Event Driven Model
A Practical Event Driven ModelA Practical Event Driven Model
A Practical Event Driven ModelXi Wu
 
Serverless London 2019 FaaS composition using Kafka and CloudEvents
Serverless London 2019   FaaS composition using Kafka and CloudEventsServerless London 2019   FaaS composition using Kafka and CloudEvents
Serverless London 2019 FaaS composition using Kafka and CloudEventsNeil Avery
 
Tk2323 lecture 11 process and thread
Tk2323 lecture 11   process and threadTk2323 lecture 11   process and thread
Tk2323 lecture 11 process and threadMengChun Lam
 
Week 11Linux InternalsProcesses, schedulingLecture o.docx
Week 11Linux InternalsProcesses, schedulingLecture o.docxWeek 11Linux InternalsProcesses, schedulingLecture o.docx
Week 11Linux InternalsProcesses, schedulingLecture o.docxmelbruce90096
 
20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPMcamunda services GmbH
 
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"Fwdays
 
Drools & jBPM Info Sheet
Drools & jBPM Info SheetDrools & jBPM Info Sheet
Drools & jBPM Info SheetMark Proctor
 

Semelhante a jBPM (20)

Cross Language Process Model Reuse Po Em2009
Cross Language Process Model Reuse Po Em2009Cross Language Process Model Reuse Po Em2009
Cross Language Process Model Reuse Po Em2009
 
2005 10-11 mm (seoul, korea - bpm korea forum) xpdl2 tutorial
2005 10-11 mm (seoul, korea - bpm korea forum) xpdl2 tutorial2005 10-11 mm (seoul, korea - bpm korea forum) xpdl2 tutorial
2005 10-11 mm (seoul, korea - bpm korea forum) xpdl2 tutorial
 
Pdf mbs workflow
Pdf mbs workflowPdf mbs workflow
Pdf mbs workflow
 
CS101- Introduction to Computing- Lecture 32
CS101- Introduction to Computing- Lecture 32CS101- Introduction to Computing- Lecture 32
CS101- Introduction to Computing- Lecture 32
 
javascript Event Handling and introduction to event.ppt
javascript Event Handling and introduction to event.pptjavascript Event Handling and introduction to event.ppt
javascript Event Handling and introduction to event.ppt
 
Event Programming JavaScript
Event Programming JavaScriptEvent Programming JavaScript
Event Programming JavaScript
 
Business processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss wayBusiness processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss way
 
jBPM5 Community Training Module 4: jBPM5 APIs Overview + Hands On
jBPM5 Community Training Module 4: jBPM5 APIs Overview + Hands OnjBPM5 Community Training Module 4: jBPM5 APIs Overview + Hands On
jBPM5 Community Training Module 4: jBPM5 APIs Overview + Hands On
 
20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software
 
JBPM5 Community Training Course - Module #1 Introduction
JBPM5 Community Training Course - Module #1 IntroductionJBPM5 Community Training Course - Module #1 Introduction
JBPM5 Community Training Course - Module #1 Introduction
 
Devops presentation
Devops presentationDevops presentation
Devops presentation
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
A Practical Event Driven Model
A Practical Event Driven ModelA Practical Event Driven Model
A Practical Event Driven Model
 
Serverless London 2019 FaaS composition using Kafka and CloudEvents
Serverless London 2019   FaaS composition using Kafka and CloudEventsServerless London 2019   FaaS composition using Kafka and CloudEvents
Serverless London 2019 FaaS composition using Kafka and CloudEvents
 
Tk2323 lecture 11 process and thread
Tk2323 lecture 11   process and threadTk2323 lecture 11   process and thread
Tk2323 lecture 11 process and thread
 
Week 11Linux InternalsProcesses, schedulingLecture o.docx
Week 11Linux InternalsProcesses, schedulingLecture o.docxWeek 11Linux InternalsProcesses, schedulingLecture o.docx
Week 11Linux InternalsProcesses, schedulingLecture o.docx
 
20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM
 
Chapter 3 chapter reading task
Chapter 3 chapter reading taskChapter 3 chapter reading task
Chapter 3 chapter reading task
 
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
 
Drools & jBPM Info Sheet
Drools & jBPM Info SheetDrools & jBPM Info Sheet
Drools & jBPM Info Sheet
 

Mais de Vít Kotačka

Použití JUnit a Mock frameworků pro testování Java EE architektury
Použití JUnit a Mock frameworků pro testování Java EE architekturyPoužití JUnit a Mock frameworků pro testování Java EE architektury
Použití JUnit a Mock frameworků pro testování Java EE architekturyVít Kotačka
 
Enterprise Systems Integration
Enterprise Systems IntegrationEnterprise Systems Integration
Enterprise Systems IntegrationVít Kotačka
 
Prototypování v Groovy a Grails
Prototypování v Groovy a GrailsPrototypování v Groovy a Grails
Prototypování v Groovy a GrailsVít Kotačka
 

Mais de Vít Kotačka (8)

Kanban Overview
Kanban OverviewKanban Overview
Kanban Overview
 
Gradle
GradleGradle
Gradle
 
Použití JUnit a Mock frameworků pro testování Java EE architektury
Použití JUnit a Mock frameworků pro testování Java EE architekturyPoužití JUnit a Mock frameworků pro testování Java EE architektury
Použití JUnit a Mock frameworků pro testování Java EE architektury
 
WMQ, WMB and EIP
WMQ, WMB and EIPWMQ, WMB and EIP
WMQ, WMB and EIP
 
Enterprise Systems Integration
Enterprise Systems IntegrationEnterprise Systems Integration
Enterprise Systems Integration
 
Prototypování v Groovy a Grails
Prototypování v Groovy a GrailsPrototypování v Groovy a Grails
Prototypování v Groovy a Grails
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Apache Wicket
Apache WicketApache Wicket
Apache Wicket
 

Último

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Último (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

jBPM

  • 1. & jBPM & BPMN jPrase Vít Kotačka 24. 11. 2011 © Adastra Group
  • 2. Agenda  BPMN ̶ Overview  jBPM ̶ JBoss Middleware & BRMS ̶ Core Engine API ̶ Process Nodes ̶ Human Tasks ̶ Testing & debugging 2
  • 4. Business Process Model and Notation  Graphical representation for specifying business processes.  Providing a notation that is intuitive to business users :-)  Maintained by OMG (Object Management Group).  Similar to Activity Diagrams from UML.  Provides a mapping between the graphics of the notation and the underlying constructs of execution languages (BPEL).  Shows the flow of data (messages), but it is not a data flow diagram. 4
  • 5. Example Diagram Business Process BPMN Activity2 FirstLine Activity1 StartEvent1 EndEvent1 Activity3 SecondLine Activity4 Use Case1 (from Use Case) 5
  • 6. Elements  Flow objects ̶ Activity ̶ Event ̶ Gateway  Connecting object ̶ Sequence flow ̶ Message flow ̶ Association  Swim lanes ̶ Pool ̶ Lane  Artifacts ̶ Data object ̶ Group 6
  • 8. Events  Start Event  Stop Event  Intermediate Event ̶ Interrupting ̶ Non-interrupting 8
  • 15. Drools/JBoss BRMS  Drools Guvnor: A centralised repository for Drools Knowledge Bases. The repository component is where you can store versions of rules, models, functions, processes etc.  Drools Expert: A forward chaining rule engine based on Rete algorithm.  jBPM: A light-weight, extensible workflow engine written in pure Java that allows to execute business processes using the latest BPMN 2.0 specification. 15
  • 18. Knowledge Base  Contains a reference to all the relevant process definitions.  Can be shared across sessions.  Usually is only created once (at the start of the application).  Can be dynamically changed (add/remove process at runtime). KnowledgeBuilder kBuilder = KnowledgeBuilderFactory .newKnowledgeBuilder(); kBuilder.add(ResourceFactory .newClassPathResource("hello.bpmn"), ResourceType.BPMN2); KnowledgeBase kBase = kBuilder.newKnowledgeBase(); 18
  • 19. Session  Can be created based on a knowledge base.  Are used to execute processes and interact with engine.  Multiple sessions can be created (independency, scalability).  Is relatively lightweight. StatefulKnowledgeSession session = kBase.newStatefulKnowledgeSession(); ProcessInstance process = session.startProcess( "com.adastracorp.jbpm.hello"); 19
  • 20. Events  Session can register listeners.  ProcessEventListener listens to process-related events.  KnowledgeRuntimeLoggerFactory adds logger to session. ̶ console logger ̶ file logger 20
  • 23. Process Node Types  Events: They are used to model the occurrence of a particular event.  Activities: These define the different actions that need to be performed during the execution of the process.  Gateways: Can be used to define multiple paths in the process. 23
  • 24. Events  Start Event: The start of the process.  End Events ̶ End Event: The end of the process. ̶ Throwing Error Event: Can be used to signal an exceptional condition in the process.  Intermediate Events ̶ Catching Timer Event: A timer that can trigger one or multiple times after a given period of time. ̶ Catching Signal Event: Can be used to respond to internal or external events during the execution of the process. 24
  • 25. Gateways  Diverging Gateway ̶ AND (parallel) ̶ XOR (exclusive) ̶ OR (inclusive)  Converging Gateway ̶ AND ̶ XOR 25
  • 26. Activities  Script Task: A script that should be executed in this process. Can access any variables and globals.  Service Task: An (abstract) unit of work that should be executed in this process (work that is executed outside the process engine).  User Task: An (atomic) task that need to be executed by human actors.  Reusable Sub-process: An invocation of another process from within this process.  Business Rule Task: A set of rules that need to be evaluated. Rules are defined in separate files using the Drools rule format. 26
  • 27. Activities  Embedded Sub-process: A Sub- Process is a node that can contain other nodes so that it acts as a node container. If you use a terminating event node inside a sub-process, you are terminating the top-level process instance, not just that sub-process.  Mulit-instance Sub-process: Allows you to execute the contained process segment multiple times, once for each element in a collection. 27
  • 29. Human Tasks  Based on the WS-HumanTask specification.  An atomic task that needs to be executed by a human actor.  Can be assigned to ̶ one specific user ̶ one or more groups  Can be used in combination with swimlanes to assign multiple human tasks to the same actor.  Human task service ̶ manages the life cycle of the tasks (creation, claiming, completion, etc.) ̶ stores the state of all the tasks ̶ supports features like internationalization, calendar integration, different types of assignments, delegation, deadlines, etc. 29
  • 33. Debugging  Process Instance(s) View shows the currently running process instances.  Human Task View can connect to a running human task service and request the relevant tasks for a particular user.  Audit View is a log of all events that were logged from the session. 33
  • 34. What has been omitted  Rule Tasks  Persistence  Transactions  Domain-specific processes  Process (Knowledge) repository  Business Activity Monitoring  Flexible Processes 34
  • 35. Sources  http://www.bpmn.org/  http://www.bpmb.de/images/BPMN2_0_Poster_EN.pdf  http://www.jboss.org/jbpm 35
  • 36. 36