SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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 Servicegiselly40
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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 AutomationSafe Software
 
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 productivityPrincipled Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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...Igalia
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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 WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Kürzlich hochgeladen (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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 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
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

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

Hinweis der Redaktion

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