SlideShare una empresa de Scribd logo
1 de 38
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

Más contenido relacionado

La actualidad más candente

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
Iain Hull
 

La actualidad más candente (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 a 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 - activiti
Alfresco Software
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - Activiti
Toni 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 BPM
Joram 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 Activiti
Joram Barrez
 
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
Frank Wagman
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
Open Stack
 
Oslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringOslo Schibsted Performance Gathering
Oslo Schibsted Performance Gathering
Almudena Vivanco
 

Similar a 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
 

Más de Joram Barrez

Más de 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
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

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

Notas del editor

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