SlideShare a Scribd company logo
1 of 38
Download to read offline
Activiti in Action
  Tom Baeyens & Joram Barrez
                     Alfresco

                      1
Last year…
• We talked about jBPM
• JBoss
• Things change
• BPMN 2.0
• Consolidating efforts
• Liberal license required
• Alfresco
• Warm heart

                             2
3
 ECM + BPM


              4
BPMN 2.0
• OMG standard
 – Shapes
 – Execution
   semantics
 – File format
• Membership
• First pure play BPM standard
• General endorsement


                                 5
Activiti In Evolution


                            DSLs




                        6
Activiti & Java
• Out-of-the-box
 – Control flow
 – Functional
   activity types
 – Everything you
   exect in a
   typical
   BPM System


• But…
 – Not limited to out of the box
                                   7
Activiti is an Embeddable Process Engine


   Any                             .jar
   Java
   Environment

                 Oracle || MySQL || PostgreSQL || Any DB…

                  Processes    Executions      History
                                                 8

                          Your Domain Tables
Activiti Embeds In Your App
• Embeds in
   • Your database
   • Your transaction
   • Your domain model
   • Your tests
   • Your Spring configuration

   Tomcat    Activiti Your
   JDK 5              App
   JBoss        Spring           Oracle, MySQL, PostgreSQL
   …

                                                   9
Community




            10
Community




            11
Last year…


jBPM 3




             jBPM 4




                      12
Today




        13
What do you get?
• World-class rock-solid BPM and workflow engine




                                                   14
Not only the engine?
      Activiti
       Activiti              Java Applications
                             Java Applications
      Modeler
      Modeler

       Activiti
       Activiti
      Designer
      Designer

       Activiti
       Activiti
                              Activiti
                              Activiti
       Probe
       Probe
                              Engine
                              Engine
       Activiti
       Activiti
      Explorer
      Explorer

       Activiti
       Activiti               REST interface
                              REST interface
       Cycle
        Cycle
                  iPhone
                   iPhone       Android
                                 Android
                  Explorer
                  Explorer      Explorer
                                Explorer

 15
Activiti Modeler
• Webbased BPMN 2.0 graphical editor




                                       16
Activiti Explorer
• Task management
• Process instance inspection, reporting




                                           17
Activiti Probe
• System admin functionality
• Status overview, stuck jobs, exception inspection, logs, etc




                                                    18
Th Drive
                                          eC    n
                                             om by

Activiti Cycle
                                               mu
                                                  nit
                                                     y!



• BPM collaboration … done right




                                   19
Activiti REST API
• Remote communication regarless of the technology




 20
Th Drive
                                                       eC     n
                                                         om b y
Activiti Eclipse designer                                   mu
                                                                nit
                                                                    y!



• Activiti extension support, BPMN 2.0 validation,
  hierarchical modeling




 21
Th Drive
                                 eC     n
                                   om b y
Activiti Eclipse designer             mu
                                          nit
                                              y!



• Pluggable activity support




 22
Th Drive
                                                    eC     n
                                                      om b y
Activiti & IPhone                                        mu
                                                             nit
                                                                 y!


• Mobile BPM == natural evolution of doing work
• Android client coming up!




 23
Th Drive
                                               eC     n
                                                 om by
Activiti Grails integration                         mu
                                                        nit
                                                            y!


• Grails convience capabilities
   • Typical configuration
   • Easy business archive deployment
   • Generate controllers/view/example app




  24
Hello World                                                            Activiti Modeler,
                                                                       MS Visio,
                                                                       Aris,
                                                                       (Oracle)




                       <process id=”helloWorldProcess" name=“My first process">

                        <startEvent id="theStart" />
                        <sequenceFlow id="flow1" sourceRef="theStart" targetRef="theTask" />
                        <userTask id="theTask" name="my task" />
                        <sequenceFlow id="flow2" sourceRef="theTask" targetRef="theEnd" />
                        <endEvent id="theEnd" />

                       </process>



  ProcessEngine engine= new ProcessEngineBuilder()
    .configureFromResource(“activiti.cfg.xml”)
    .buildProcessEngine();
  engine.getRuntimeService().startProcessInstanceByKey(“helloWorldProcess”);
  Task task = engine.getTaskService().createTaskQuery().singleResult();
  Engine.getTaskService().complete(task.getId());                     25
Real-life demo
 • Use case: banks shouldn’t lend money to just anybody
 • Thorough analysis is needed
 • All steps needs to be recorded in official documents
 • Decisions are done based on Excel decision tables




 26
The mortgage process




27
The mortgage process




28
The mortgage process




  = CMIS call

                       29
The power of Java




      Out-of-the-box

      Custom Java



 30
The power of Java




public class CreateLoanApplicationDocument implements JavaDelegation {

 public void execute(DelegateExecution execution) {

  Session session = CmisUtil.createCmisSession("admin", "admin", Constants.ALFRESCO_URL);
  Folder folder = CmisUtil.getFolder(session, Constants.LOAN_APPLICATION_STORAGE_FOLDER

  Document document = createWordDocument(session, folder, execution);
  storeDocumentReferencesAsProcessVariables(execution, folder, document);

  session.save();
 }
    31
The cool stuff
• That didn’t make it in the demo
• But is just too cool not to show you
  • Unit test support
  • Query API
  • Spring integration
  • Method expressions
  • JPA integration




                                         32
Unit testing your processes
• With Activiti, business processes
  • Live and breath along your regular app code
  • Should be tested just the same!



• Typical BPM vendor & testing




• Activiti supports Junit 3 & 4 and offers lots of
  convience while testing
                                                     33
Query API
 • No need to learn the intern data model
 • Powerful and uniform query API
    • Deployments and process definitions
        repositoryService.createProcessDefinitionQuery.keyLike(“%mortgage%”).latest();
    • Process instances and executions
        runtimeService.createProcessInstanceQuery
             .processDefinitionKey(“mortgage-process)”.orderByProcessInstanceId().desc();
    • History
        historyService.createHistoricActivityQuery().processDefinitionId(procDefId)
                      .activityType(“userTask”).orderByDuration().asc();
    • Variables
        runtimeService.createProcessInstanceQuery()
         .variableValueGreaterThan(“amount”, 50000);

    • Tasks, jobs, users, groups, historic activities/process
      instances/variables, …
Spring integration
      • ProcessEngine as a Spring bean




      • Delegate to Spring beans



                                         <bean id=“printer” …




 35
Method expressions & JPA




                                   Decision based on
                                   JPA entity property
                 Spring bean




                           Process variables


 36
The Activiti Experience
      • Satisfy your Activiti itch

      • One-stop-shop download
         • http://activiti.org

      • Demo: “The Activiti Experience”
         • Do you have an excuse for
           not trying out Activiti tonight?




 37
Did you like what you saw?
      • We keep making Activiti better, every day.

      • Help us today and tweet your enthousiasm!



      • @johnpowell996 I saw #activiti on #devoxx and I like it!




                                              owell
                                        John P esco
                                             Alfr
                                        CEO
 38

More Related Content

What's hot

A new kind of BPM with Activiti
A new kind of BPM with ActivitiA new kind of BPM with Activiti
A new kind of BPM with ActivitiAlfresco Software
 
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...Alfresco Software
 
jBPM Migration - generating your process future
jBPM Migration - generating your process futurejBPM Migration - generating your process future
jBPM Migration - generating your process futureEric D. Schabell
 
Webinar get move_on_with_bpmsuite6
Webinar get move_on_with_bpmsuite6Webinar get move_on_with_bpmsuite6
Webinar get move_on_with_bpmsuite6Eric D. Schabell
 
Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)
Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)
Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)Serena Software
 
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017Daniel Meyer
 
Integrated Requirements Management with Serena Dimensions RM 02-2016
Integrated Requirements Management with Serena Dimensions RM 02-2016Integrated Requirements Management with Serena Dimensions RM 02-2016
Integrated Requirements Management with Serena Dimensions RM 02-2016Serena Software
 
Thorben Lindhauer: Live Coding: Zeebe - Camunda Day San Francisco
Thorben Lindhauer: Live Coding: Zeebe - Camunda Day San FranciscoThorben Lindhauer: Live Coding: Zeebe - Camunda Day San Francisco
Thorben Lindhauer: Live Coding: Zeebe - Camunda Day San Franciscocamunda services GmbH
 
Salesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best PracticesSalesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best Practicespanayaofficial
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesNoriaki Tatsumi
 
Simplify the complexity of your business processes
Simplify the complexity of your business processesSimplify the complexity of your business processes
Simplify the complexity of your business processesKris Verlaenen
 
Moving from app services to azure functions
Moving from app services to azure functionsMoving from app services to azure functions
Moving from app services to azure functionsMichelangelo van Dam
 
Evolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native WorldEvolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native WorldIain Hull
 
Zeebe 0.20.0 Release Webinar - July 22, 2019
Zeebe 0.20.0 Release Webinar - July 22, 2019Zeebe 0.20.0 Release Webinar - July 22, 2019
Zeebe 0.20.0 Release Webinar - July 22, 2019Zeebe
 
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...Imaginet
 
Sqlwatch presentation 2018-11
Sqlwatch presentation 2018-11Sqlwatch presentation 2018-11
Sqlwatch presentation 2018-11Marcin Gminski
 

What's hot (19)

A new kind of BPM with Activiti
A new kind of BPM with ActivitiA new kind of BPM with Activiti
A new kind of BPM with Activiti
 
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
Alfresco Day Warsaw 2016: Next-Generation Business Process Management with Al...
 
jBPM Migration - generating your process future
jBPM Migration - generating your process futurejBPM Migration - generating your process future
jBPM Migration - generating your process future
 
Webinar get move_on_with_bpmsuite6
Webinar get move_on_with_bpmsuite6Webinar get move_on_with_bpmsuite6
Webinar get move_on_with_bpmsuite6
 
From Heroku to Amazon AWS
From Heroku to Amazon AWSFrom Heroku to Amazon AWS
From Heroku to Amazon AWS
 
Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)
Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)
Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)
 
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
 
Integrated Requirements Management with Serena Dimensions RM 02-2016
Integrated Requirements Management with Serena Dimensions RM 02-2016Integrated Requirements Management with Serena Dimensions RM 02-2016
Integrated Requirements Management with Serena Dimensions RM 02-2016
 
Thorben Lindhauer: Live Coding: Zeebe - Camunda Day San Francisco
Thorben Lindhauer: Live Coding: Zeebe - Camunda Day San FranciscoThorben Lindhauer: Live Coding: Zeebe - Camunda Day San Francisco
Thorben Lindhauer: Live Coding: Zeebe - Camunda Day San Francisco
 
Salesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best PracticesSalesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best Practices
 
What's new in SBM 11.1
What's new in SBM 11.1What's new in SBM 11.1
What's new in SBM 11.1
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
 
Simplify the complexity of your business processes
Simplify the complexity of your business processesSimplify the complexity of your business processes
Simplify the complexity of your business processes
 
Moving from app services to azure functions
Moving from app services to azure functionsMoving from app services to azure functions
Moving from app services to azure functions
 
Evolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native WorldEvolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native World
 
jBPM Introduction - JudCon Brazil 2013
jBPM Introduction - JudCon Brazil 2013jBPM Introduction - JudCon Brazil 2013
jBPM Introduction - JudCon Brazil 2013
 
Zeebe 0.20.0 Release Webinar - July 22, 2019
Zeebe 0.20.0 Release Webinar - July 22, 2019Zeebe 0.20.0 Release Webinar - July 22, 2019
Zeebe 0.20.0 Release Webinar - July 22, 2019
 
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
 
Sqlwatch presentation 2018-11
Sqlwatch presentation 2018-11Sqlwatch presentation 2018-11
Sqlwatch presentation 2018-11
 

Similar to Activiti in Action (Devoxx 2010)

Alfresco day madrid jeff potts - activiti
Alfresco day madrid   jeff potts - activitiAlfresco day madrid   jeff potts - activiti
Alfresco day madrid jeff potts - activitiAlfresco Software
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiToni de la Fuente
 
Alfresco Devcon 2010: Introduction to Activiti BPM
Alfresco Devcon 2010: Introduction to Activiti BPMAlfresco Devcon 2010: Introduction to Activiti BPM
Alfresco Devcon 2010: Introduction to Activiti BPMJoram Barrez
 
Alfresco Devcon 2010: A new kind of BPM with Activiti
Alfresco Devcon 2010: A new kind of BPM with ActivitiAlfresco Devcon 2010: A new kind of BPM with Activiti
Alfresco Devcon 2010: A new kind of BPM with ActivitiJoram Barrez
 
Agileload - load testing tool for better web performance
Agileload - load testing tool for better web performanceAgileload - load testing tool for better web performance
Agileload - load testing tool for better web performanceAgileload testing
 
Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))dev2ops
 
OpenSpan - A Better Way to Work, A Better Way to Manage
OpenSpan - A Better Way to Work, A Better Way to ManageOpenSpan - A Better Way to Work, A Better Way to Manage
OpenSpan - A Better Way to Work, A Better Way to ManageFrank Wagman
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewWill Iverson
 
Orsyp presentation bnl_2013_def
Orsyp presentation bnl_2013_defOrsyp presentation bnl_2013_def
Orsyp presentation bnl_2013_defAnne Plancius
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale CloudOpen Stack
 
How to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
How to Build a SaaS App With Twitter-like Throughput on Just 9 ServersHow to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
How to Build a SaaS App With Twitter-like Throughput on Just 9 ServersNew Relic
 
Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!Julian Feinauer
 
Oslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringOslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringAlmudena Vivanco
 
Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented DesignRodrigo Campos
 

Similar to Activiti in Action (Devoxx 2010) (20)

Alfresco day madrid jeff potts - activiti
Alfresco day madrid   jeff potts - activitiAlfresco day madrid   jeff potts - activiti
Alfresco day madrid jeff potts - activiti
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - Activiti
 
Alfresco Devcon 2010: Introduction to Activiti BPM
Alfresco Devcon 2010: Introduction to Activiti BPMAlfresco Devcon 2010: Introduction to Activiti BPM
Alfresco Devcon 2010: Introduction to Activiti BPM
 
jBPM, open source BPM
jBPM, open source BPMjBPM, open source BPM
jBPM, open source BPM
 
Alfresco Devcon 2010: A new kind of BPM with Activiti
Alfresco Devcon 2010: A new kind of BPM with ActivitiAlfresco Devcon 2010: A new kind of BPM with Activiti
Alfresco Devcon 2010: A new kind of BPM with Activiti
 
Agileload - load testing tool for better web performance
Agileload - load testing tool for better web performanceAgileload - load testing tool for better web performance
Agileload - load testing tool for better web performance
 
Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))
 
Datastage Online Training
Datastage Online TrainingDatastage Online Training
Datastage Online Training
 
OpenSpan - A Better Way to Work, A Better Way to Manage
OpenSpan - A Better Way to Work, A Better Way to ManageOpenSpan - A Better Way to Work, A Better Way to Manage
OpenSpan - A Better Way to Work, A Better Way to Manage
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
JBUG.be jBPM4
JBUG.be jBPM4JBUG.be jBPM4
JBUG.be jBPM4
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
 
Orsyp presentation bnl_2013_def
Orsyp presentation bnl_2013_defOrsyp presentation bnl_2013_def
Orsyp presentation bnl_2013_def
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
 
How to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
How to Build a SaaS App With Twitter-like Throughput on Just 9 ServersHow to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
How to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
 
20111007 activiti
20111007 activiti20111007 activiti
20111007 activiti
 
Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!
 
Oslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringOslo Schibsted Performance Gathering
Oslo Schibsted Performance Gathering
 
Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented Design
 

More from Joram Barrez

Do and Don'ts of BPM - The Full Stack
Do and Don'ts of BPM - The Full StackDo and Don'ts of BPM - The Full Stack
Do and Don'ts of BPM - The Full StackJoram Barrez
 
Bejug - Activiti in Action (part 1)
Bejug - Activiti in Action (part 1)Bejug - Activiti in Action (part 1)
Bejug - Activiti in Action (part 1)Joram Barrez
 
JBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten LaureijsJBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten LaureijsJoram Barrez
 
Devoxx 2009 Conference session Jbpm4 In Action
Devoxx 2009 Conference session Jbpm4 In ActionDevoxx 2009 Conference session Jbpm4 In Action
Devoxx 2009 Conference session Jbpm4 In ActionJoram Barrez
 
Devoxx 2009 University session Jbpm4 In Action
Devoxx 2009 University session Jbpm4 In ActionDevoxx 2009 University session Jbpm4 In Action
Devoxx 2009 University session Jbpm4 In ActionJoram Barrez
 
Presentation jBPM Community Day 2009 - First steps with jBPM4
Presentation jBPM Community Day 2009 - First steps with jBPM4Presentation jBPM Community Day 2009 - First steps with jBPM4
Presentation jBPM Community Day 2009 - First steps with jBPM4Joram Barrez
 
Presentation Bejug March 2009
Presentation Bejug March 2009Presentation Bejug March 2009
Presentation Bejug March 2009Joram Barrez
 

More from Joram Barrez (7)

Do and Don'ts of BPM - The Full Stack
Do and Don'ts of BPM - The Full StackDo and Don'ts of BPM - The Full Stack
Do and Don'ts of BPM - The Full Stack
 
Bejug - Activiti in Action (part 1)
Bejug - Activiti in Action (part 1)Bejug - Activiti in Action (part 1)
Bejug - Activiti in Action (part 1)
 
JBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten LaureijsJBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten Laureijs
 
Devoxx 2009 Conference session Jbpm4 In Action
Devoxx 2009 Conference session Jbpm4 In ActionDevoxx 2009 Conference session Jbpm4 In Action
Devoxx 2009 Conference session Jbpm4 In Action
 
Devoxx 2009 University session Jbpm4 In Action
Devoxx 2009 University session Jbpm4 In ActionDevoxx 2009 University session Jbpm4 In Action
Devoxx 2009 University session Jbpm4 In Action
 
Presentation jBPM Community Day 2009 - First steps with jBPM4
Presentation jBPM Community Day 2009 - First steps with jBPM4Presentation jBPM Community Day 2009 - First steps with jBPM4
Presentation jBPM Community Day 2009 - First steps with jBPM4
 
Presentation Bejug March 2009
Presentation Bejug March 2009Presentation Bejug March 2009
Presentation Bejug March 2009
 

Recently uploaded

Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 

Recently uploaded (20)

Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 

Activiti in Action (Devoxx 2010)

  • 1. Activiti in Action Tom Baeyens & Joram Barrez Alfresco 1
  • 2. Last year… • We talked about jBPM • JBoss • Things change • BPMN 2.0 • Consolidating efforts • Liberal license required • Alfresco • Warm heart 2
  • 3. 3
  • 4.  ECM + BPM 4
  • 5. BPMN 2.0 • OMG standard – Shapes – Execution semantics – File format • Membership • First pure play BPM standard • General endorsement 5
  • 7. Activiti & Java • Out-of-the-box – Control flow – Functional activity types – Everything you exect in a typical BPM System • But… – Not limited to out of the box 7
  • 8. Activiti is an Embeddable Process Engine Any .jar Java Environment Oracle || MySQL || PostgreSQL || Any DB… Processes Executions History 8 Your Domain Tables
  • 9. Activiti Embeds In Your App • Embeds in • Your database • Your transaction • Your domain model • Your tests • Your Spring configuration Tomcat Activiti Your JDK 5 App JBoss Spring Oracle, MySQL, PostgreSQL … 9
  • 10. Community 10
  • 11. Community 11
  • 12. Last year… jBPM 3 jBPM 4 12
  • 13. Today 13
  • 14. What do you get? • World-class rock-solid BPM and workflow engine 14
  • 15. Not only the engine? Activiti Activiti Java Applications Java Applications Modeler Modeler Activiti Activiti Designer Designer Activiti Activiti Activiti Activiti Probe Probe Engine Engine Activiti Activiti Explorer Explorer Activiti Activiti REST interface REST interface Cycle Cycle iPhone iPhone Android Android Explorer Explorer Explorer Explorer 15
  • 16. Activiti Modeler • Webbased BPMN 2.0 graphical editor 16
  • 17. Activiti Explorer • Task management • Process instance inspection, reporting 17
  • 18. Activiti Probe • System admin functionality • Status overview, stuck jobs, exception inspection, logs, etc 18
  • 19. Th Drive eC n om by Activiti Cycle mu nit y! • BPM collaboration … done right 19
  • 20. Activiti REST API • Remote communication regarless of the technology 20
  • 21. Th Drive eC n om b y Activiti Eclipse designer mu nit y! • Activiti extension support, BPMN 2.0 validation, hierarchical modeling 21
  • 22. Th Drive eC n om b y Activiti Eclipse designer mu nit y! • Pluggable activity support 22
  • 23. Th Drive eC n om b y Activiti & IPhone mu nit y! • Mobile BPM == natural evolution of doing work • Android client coming up! 23
  • 24. Th Drive eC n om by Activiti Grails integration mu nit y! • Grails convience capabilities • Typical configuration • Easy business archive deployment • Generate controllers/view/example app 24
  • 25. Hello World Activiti Modeler, MS Visio, Aris, (Oracle) <process id=”helloWorldProcess" name=“My first process"> <startEvent id="theStart" /> <sequenceFlow id="flow1" sourceRef="theStart" targetRef="theTask" /> <userTask id="theTask" name="my task" /> <sequenceFlow id="flow2" sourceRef="theTask" targetRef="theEnd" /> <endEvent id="theEnd" /> </process> ProcessEngine engine= new ProcessEngineBuilder() .configureFromResource(“activiti.cfg.xml”) .buildProcessEngine(); engine.getRuntimeService().startProcessInstanceByKey(“helloWorldProcess”); Task task = engine.getTaskService().createTaskQuery().singleResult(); Engine.getTaskService().complete(task.getId()); 25
  • 26. Real-life demo • Use case: banks shouldn’t lend money to just anybody • Thorough analysis is needed • All steps needs to be recorded in official documents • Decisions are done based on Excel decision tables 26
  • 29. The mortgage process = CMIS call 29
  • 30. The power of Java Out-of-the-box Custom Java 30
  • 31. The power of Java public class CreateLoanApplicationDocument implements JavaDelegation { public void execute(DelegateExecution execution) { Session session = CmisUtil.createCmisSession("admin", "admin", Constants.ALFRESCO_URL); Folder folder = CmisUtil.getFolder(session, Constants.LOAN_APPLICATION_STORAGE_FOLDER Document document = createWordDocument(session, folder, execution); storeDocumentReferencesAsProcessVariables(execution, folder, document); session.save(); } 31
  • 32. The cool stuff • That didn’t make it in the demo • But is just too cool not to show you • Unit test support • Query API • Spring integration • Method expressions • JPA integration 32
  • 33. Unit testing your processes • With Activiti, business processes • Live and breath along your regular app code • Should be tested just the same! • Typical BPM vendor & testing • Activiti supports Junit 3 & 4 and offers lots of convience while testing 33
  • 34. Query API • No need to learn the intern data model • Powerful and uniform query API • Deployments and process definitions repositoryService.createProcessDefinitionQuery.keyLike(“%mortgage%”).latest(); • Process instances and executions runtimeService.createProcessInstanceQuery .processDefinitionKey(“mortgage-process)”.orderByProcessInstanceId().desc(); • History historyService.createHistoricActivityQuery().processDefinitionId(procDefId) .activityType(“userTask”).orderByDuration().asc(); • Variables runtimeService.createProcessInstanceQuery() .variableValueGreaterThan(“amount”, 50000); • Tasks, jobs, users, groups, historic activities/process instances/variables, …
  • 35. Spring integration • ProcessEngine as a Spring bean • Delegate to Spring beans <bean id=“printer” … 35
  • 36. Method expressions & JPA Decision based on JPA entity property Spring bean Process variables 36
  • 37. The Activiti Experience • Satisfy your Activiti itch • One-stop-shop download • http://activiti.org • Demo: “The Activiti Experience” • Do you have an excuse for not trying out Activiti tonight? 37
  • 38. Did you like what you saw? • We keep making Activiti better, every day. • Help us today and tweet your enthousiasm! • @johnpowell996 I saw #activiti on #devoxx and I like it! owell John P esco Alfr CEO 38

Editor's Notes

  1. We came from JBoss jBPM Joined Alfresco to build new process engine