SlideShare une entreprise Scribd logo
1  sur  18
BPM for developers:
improve agility of
implementations –
“Extended”
A. Samarin
More about slides 32, 33 and 34 of the
http://fr.slideshare.net/samarin/bpm-for-
developers
• After a few discussions linked to “BPM for developers”
presentation http://fr.slideshare.net/samarin/bpm-for-
developers I found that some slides (namely 32, 33 and
34) are too “condensed” thus difficult to understand
• This presentation gives more details about those slides
• The topics discussed are only about the automation
© A. Samarin 2013 BPM for developers "extended", v1 2
WHY this second presentation
• Speed of developing automation is the primary factor of
agility of a process-centric solution
• Automation and process template have different speed of
changes – keep automation outside the process template
• Automation may be long-running and resource-consuming
• Automation may and will fail
• Failures maybe because of technical (no access to a web
service) or business (missing important data) reasons
• Recovery after failure should be easy
• Automation’s problems (failures, resource consuming)
must not undermine the performance of process engine
© A. Samarin 2013 BPM for developers "extended", v1 3
Concerns about automation
• Why:
– Process template is a composition of many other artefacts
(events, data, documents, KPIs, services, etc.)
– Those artefacts have their own evolution speed
– Some changes are not under your control
• Process templates, XSD, WSDL, services, namespaces,
documents, etc. must be explicitly versioned
• Many versions of the “same” should easily co-exist
• Use the simplest version schema – just sequential
numbering: 1, 2, 3, …
• At the same time, keep the possibility to refer to the
“current” version
© A. Samarin 2013 BPM for developers "extended", v1 4
Explicit versioning of everything (1)
• A typical use (which is often a compliance requirement):
– Since 1st of April all new process instances will use process
template v2
– Already running process instances must remain at process
template v1
• Another typical use (from the real life):
– Since 1st of April all new process instances will use process
template v2
– Some already running process instances will remain at process
template v1 (if those instances are close to the completion)
– Some already running process instances may be migrated to
process template v2 (if those instances are far from the
completion)
© A. Samarin 2013 BPM for developers "extended", v1 5
Explicit versioning of everything (2)
• There are two major patterns for mixing human and
automation activities
• Pre Do Post pattern in which each human activity (DO) is
surrounded by automated activities (PRE and POST)
• The rationale:
– to reduce human’s non-productive work, data, documents,
information must be prepared in advance
– the results of human’s
work should be placed in
different repositories
– pre- and post- for the whole
process
© A. Samarin 2013 BPM for developers "extended", v1 6
Mixing human and automated activities (1)
PRE
POST
DO
• Error Recovery Loop is the other pattern which mandates
a human intervention for the recovery of a failed
automated activity
• The rationale:
– explicit catch of exceptions
– ability to assign “recovery” human activity
to different roles depending the nature of
exception (bypass the service desk)
– maybe implemented as a container without
exposure to the process
• Relates to other techniques:
– dynamic (interpretive) language
– idempotency
© A. Samarin 2013 BPM for developers "extended", v1 7
Mixing human and automated activities (2)
Recover
Work
• At the same time, small fragments of automation may be
used to react on different events related to a particular
human activity (as in Bonita); those fragments are event
handlers (and not the automation per se):
– ready (available to be claimed)
– claim (assign yourself to a human activity which is ready)
– unclaim (opposite to claim)
– suspend (stop temporary)
– resume (after suspending)
– delegate (reassign somebody for your human activity)
– send for review (delegate and ask to return the activity to you)
– done (or complete; maybe with some qualifiers or dispositions)
– terminate (or cancel; some kind of exception)
– exception (escalate, timeout, etc.)
© A. Samarin 2013 BPM for developers "extended", v1 8
Mixing human and automated activities (3)
• Automated activities are usually built on existing APIs to
access different enterprise systems and repositories
• Automation looks like scripting
• Interpretive language (no need to recompile) are good for
scripting
• Combine dynamic and static programming languages, for
example, Jython and Java, Groovy and Java, etc.
• Use the strong typing to secure interfaces, enjoy
introspection, and avoid exotic features
• Automation scripts must be kept outside process
templates to allow modifications even within a process
instance
© A. Samarin 2013 BPM for developers "extended", v1 9
Use dynamic (interpretive) language
• Use “robot” (an external to the process engine) program
to execute scripts
• Universal robots and specialised robots may co-exist
• Robots must be clonable (for scalability, load-balancing
and fault-tolerance)
• Integration patterns between the process engine and
robots (scripts are passed by reference):
1. Human activity is assigned to a robot or group of robots; each
robot is systematically checking its inbox (poor-man solution)
2. Process engine queues (via a WS) work for robots; the queue
manager dispatches work requests to robots (ideal solution)
• A crash of a robot will not disturb the process engine (last
an activity will be “late” or “overdue”)
© A. Samarin 2013 BPM for developers "extended", v1 10
Execution of automation scripts
• Typical sequence
1. Exception is raised in an automation script of an automated
activity
2. The process instance is routed to the recovery human activity
3. A responsible person makes necessary corrections (up to
modifying the automation script) and completes this human
activity
4. The process instance is routed to the automated activity
5. The automation script is executed again
• Idempotency of automated scripts is a must
© A. Samarin 2013 BPM for developers "extended", v1 11
Error recovery loop
• Idempotence (pron.: /ˌaɪdɨmˌpoʊtəns/ EYE-dəm-POH-
təns) is the property of certain operations, that can be
applied multiple times without changing the result beyond
the initial application
• This an automation script is a collection of idempotent
invocations of some services; a typical execution
sequence for services A, and B:
1. Start of the automation script
2. Invocation of service A – OK
3. Invocation of service B – exception
4. Re-start of the automation script (due to error recovery loop)
5. Invocation of service A – OK (due to idempotency)
6. Invocation of service B – OK
7. End of the automation script
© A. Samarin 2013 BPM for developers "extended", v1 12
Idempotence
• Automation script are actually executed by “system”
account
• But, in some case, they have to pretend to be as one of
the participants in the process instance; for example, a
submitted document should be owned by the submitter
• Automation script must have reach access to process
instance (BPM API) and be able to impersonate (change
account)
© A. Samarin 2013 BPM for developers "extended", v1 13
Impersonating
• Ruthless monitoring of all services (including robots, other
systems and repositories)
• Not just checking that a port is bound, but asking to do a
real work; for example, echo-test
• Service should be developed in the way to facilitate such
a monitoring
• System should be developed in a way to facilitate such a
monitoring
• Also, robots proactively (before executing automation
scripts) must check (via monitoring) the availability of
services to be used in a particular automation script
• It is better to wait a little than recover from an error
© A. Samarin 2013 BPM for developers "extended", v1 14
Monitoring
© A. Samarin 2013 BPM for developers "extended", v1 15
Thanks
• Mixing human and automated activities
• Each human activity may be surrounded by two
automated activities (pre-processing and post-processing)
© A. Samarin 2013 BPM for developers, v1 16
Look at automation within processes
• Explicit versioning of everything (another topic for
developers)
• Keep automation outside the process template (as they
have different speed of changes)
• Use an interpretive language for automation scripting (no
need to recompile)
• Use recovery loops (preserve
instance, carry out quick corrections in
“this” instance)
• Smart error handling (bypass some
levels of support)
© A. Samarin 2013 BPM for developers "extended", v1 17
Speed of developing automation is the
primary factor of agility
• Combine static and dynamic programming languages
• Use the strong typing, introspection, no exotic features
• Use external (to process engine) universal program
(robot) to execute automation scripts (scalability)
• Assign automated activities to robots (potential use of
specialised robots)
• Multiple robots (load balancing)
• Process engine queues jobs for robots
• Proactive monitoring of resource availability (better to
wait a little than recover from an error)
• Idempotency
© A. Samarin 2013 BPM for developers "extended", v1 18
More tricks

Contenu connexe

Tendances

Migration to Flows – Getting it Right!
Migration to Flows – Getting it Right!Migration to Flows – Getting it Right!
Migration to Flows – Getting it Right!
panayaofficial
 

Tendances (20)

Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)
 
Importance of executable processes and BPMN
Importance of executable processes and BPMNImportance of executable processes and BPMN
Importance of executable processes and BPMN
 
Architecting digital transformation v1
Architecting digital transformation v1Architecting digital transformation v1
Architecting digital transformation v1
 
Achieving synergy between BPM, SOA and EA
Achieving synergy between BPM, SOA and EAAchieving synergy between BPM, SOA and EA
Achieving synergy between BPM, SOA and EA
 
InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...
InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...
InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...
 
IBM BPM Updates - BPM 8.5.7 and BPM 8.6
IBM BPM Updates - BPM 8.5.7 and BPM 8.6IBM BPM Updates - BPM 8.5.7 and BPM 8.6
IBM BPM Updates - BPM 8.5.7 and BPM 8.6
 
IBM Cloud University 2017-IDPA009-IBM BPM Upgrade and Migration Made Easy
IBM Cloud University 2017-IDPA009-IBM BPM Upgrade and Migration Made EasyIBM Cloud University 2017-IDPA009-IBM BPM Upgrade and Migration Made Easy
IBM Cloud University 2017-IDPA009-IBM BPM Upgrade and Migration Made Easy
 
Process Driven Customer Interaction
Process Driven Customer InteractionProcess Driven Customer Interaction
Process Driven Customer Interaction
 
IBM BPM On Cloud demo Sept 4 2015
IBM BPM On Cloud demo Sept 4 2015IBM BPM On Cloud demo Sept 4 2015
IBM BPM On Cloud demo Sept 4 2015
 
Kovair ALM application on model based process improvement
Kovair ALM application on model based process improvementKovair ALM application on model based process improvement
Kovair ALM application on model based process improvement
 
BPM Benefits
BPM BenefitsBPM Benefits
BPM Benefits
 
PTC Windchill ESI 9.x Architecture
PTC Windchill ESI 9.x ArchitecturePTC Windchill ESI 9.x Architecture
PTC Windchill ESI 9.x Architecture
 
Impact 2011 2667 - Developing effective services for use in critical business...
Impact 2011 2667 - Developing effective services for use in critical business...Impact 2011 2667 - Developing effective services for use in critical business...
Impact 2011 2667 - Developing effective services for use in critical business...
 
Kovair Omnibus Integration with Multi Vendor Tools
Kovair Omnibus Integration with Multi Vendor ToolsKovair Omnibus Integration with Multi Vendor Tools
Kovair Omnibus Integration with Multi Vendor Tools
 
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03
 
Think2018 2314-Microservices and BPM-can they coexist?
Think2018 2314-Microservices and BPM-can they coexist?Think2018 2314-Microservices and BPM-can they coexist?
Think2018 2314-Microservices and BPM-can they coexist?
 
Migration to Flows – Getting it Right!
Migration to Flows – Getting it Right!Migration to Flows – Getting it Right!
Migration to Flows – Getting it Right!
 
Launching Activiti v6 (Activiti Community Day Paris 2015)
Launching Activiti v6 (Activiti Community Day Paris 2015) Launching Activiti v6 (Activiti Community Day Paris 2015)
Launching Activiti v6 (Activiti Community Day Paris 2015)
 
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
 
IBM Business Process Management 8.5
IBM Business Process Management 8.5IBM Business Process Management 8.5
IBM Business Process Management 8.5
 

Similaire à BPM for developers, extended

Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012
Mike Willbanks
 
VCS_QAPerformanceSlides
VCS_QAPerformanceSlidesVCS_QAPerformanceSlides
VCS_QAPerformanceSlides
Michael Cowan
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
ShivareddyGangam
 

Similaire à BPM for developers, extended (20)

Automic Banner Lessons from the Field
Automic Banner Lessons from the FieldAutomic Banner Lessons from the Field
Automic Banner Lessons from the Field
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing Tools
 
High Volume Payments using Mule
High Volume Payments using MuleHigh Volume Payments using Mule
High Volume Payments using Mule
 
Keeping Pace with Product Evolution - UI Automation Framework Guidelines
Keeping Pace with Product Evolution - UI Automation Framework GuidelinesKeeping Pace with Product Evolution - UI Automation Framework Guidelines
Keeping Pace with Product Evolution - UI Automation Framework Guidelines
 
Next-gen Automation Framework
Next-gen Automation FrameworkNext-gen Automation Framework
Next-gen Automation Framework
 
Good vs power automation frameworks
Good vs power automation frameworksGood vs power automation frameworks
Good vs power automation frameworks
 
Mainframe vug july 30 2015
Mainframe vug july 30 2015Mainframe vug july 30 2015
Mainframe vug july 30 2015
 
M. Holovaty, Концепции автоматизированного тестирования
M. Holovaty, Концепции автоматизированного тестированияM. Holovaty, Концепции автоматизированного тестирования
M. Holovaty, Концепции автоматизированного тестирования
 
SCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemSCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome Them
 
Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
VCS_QAPerformanceSlides
VCS_QAPerformanceSlidesVCS_QAPerformanceSlides
VCS_QAPerformanceSlides
 
DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software Engineering
 
Application of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC projectApplication of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC project
 
Agile testing approach
Agile testing approachAgile testing approach
Agile testing approach
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
MuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_CharlotteMuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_Charlotte
 
OOW15 - Getting Optimal Performance from Oracle E-Business Suite
OOW15 - Getting Optimal Performance from Oracle E-Business SuiteOOW15 - Getting Optimal Performance from Oracle E-Business Suite
OOW15 - Getting Optimal Performance from Oracle E-Business Suite
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
 
TEST EXECUTION.ppt
TEST EXECUTION.pptTEST EXECUTION.ppt
TEST EXECUTION.ppt
 

Plus de Alexander SAMARIN

Towards software-defined organisations
Towards software-defined organisationsTowards software-defined organisations
Towards software-defined organisations
Alexander SAMARIN
 
Smart-city implementation reference model
Smart-city implementation reference modelSmart-city implementation reference model
Smart-city implementation reference model
Alexander SAMARIN
 

Plus de Alexander SAMARIN (20)

Digital Architecture Methodology for Systemic Digital Transformation (Smart C...
Digital Architecture Methodology for Systemic Digital Transformation (Smart C...Digital Architecture Methodology for Systemic Digital Transformation (Smart C...
Digital Architecture Methodology for Systemic Digital Transformation (Smart C...
 
Building large-scale digital repeatable systems
Building large-scale digital repeatable systemsBuilding large-scale digital repeatable systems
Building large-scale digital repeatable systems
 
Smart Cities Reference Architecture
Smart Cities Reference ArchitectureSmart Cities Reference Architecture
Smart Cities Reference Architecture
 
Building large-scale digital repeatable systems e.g Smart Cities
Building large-scale digital repeatable systems e.g Smart CitiesBuilding large-scale digital repeatable systems e.g Smart Cities
Building large-scale digital repeatable systems e.g Smart Cities
 
Mini-course at VFU - Architecting modern digital systems - 0
Mini-course at VFU - Architecting modern digital systems - 0Mini-course at VFU - Architecting modern digital systems - 0
Mini-course at VFU - Architecting modern digital systems - 0
 
Mini-course at VFU - Architecting modern digital systems - 5
Mini-course at VFU - Architecting modern digital systems - 5Mini-course at VFU - Architecting modern digital systems - 5
Mini-course at VFU - Architecting modern digital systems - 5
 
Mini-course at VFU - Architecting modern digital systems - 4
Mini-course at VFU - Architecting modern digital systems - 4Mini-course at VFU - Architecting modern digital systems - 4
Mini-course at VFU - Architecting modern digital systems - 4
 
Mini-course at VFU - Architecting modern digital systems - 3
Mini-course at VFU - Architecting modern digital systems - 3Mini-course at VFU - Architecting modern digital systems - 3
Mini-course at VFU - Architecting modern digital systems - 3
 
Mini-course at VFU - Architecting modern digital systems - 2
Mini-course at VFU - Architecting modern digital systems - 2Mini-course at VFU - Architecting modern digital systems - 2
Mini-course at VFU - Architecting modern digital systems - 2
 
Mini-course at VFU - Architecting modern digital systems - 1
Mini-course at VFU - Architecting modern digital systems - 1Mini-course at VFU - Architecting modern digital systems - 1
Mini-course at VFU - Architecting modern digital systems - 1
 
Towards software-defined organisations
Towards software-defined organisationsTowards software-defined organisations
Towards software-defined organisations
 
Smart Cities from the systems point of view
Smart Cities from the systems point of viewSmart Cities from the systems point of view
Smart Cities from the systems point of view
 
Systems architecting experience
Systems architecting experienceSystems architecting experience
Systems architecting experience
 
Enterprise Architecture (#EntArch) as a #systemsapproach applied management d...
Enterprise Architecture (#EntArch) as a #systemsapproach applied management d...Enterprise Architecture (#EntArch) as a #systemsapproach applied management d...
Enterprise Architecture (#EntArch) as a #systemsapproach applied management d...
 
#bizarch from the #entarch point of view
#bizarch from the #entarch point of view#bizarch from the #entarch point of view
#bizarch from the #entarch point of view
 
Help #SME becoming #digital
Help #SME becoming #digitalHelp #SME becoming #digital
Help #SME becoming #digital
 
Technology-enabled healthcare transformation: concept paper
Technology-enabled healthcare transformation: concept paperTechnology-enabled healthcare transformation: concept paper
Technology-enabled healthcare transformation: concept paper
 
Smart-city implementation reference model
Smart-city implementation reference modelSmart-city implementation reference model
Smart-city implementation reference model
 
E-government reference model
E-government reference modelE-government reference model
E-government reference model
 
Эталонная модель электронного правительства
Эталонная модель электронного правительстваЭталонная модель электронного правительства
Эталонная модель электронного правительства
 

Dernier

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
 
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
vu2urc
 

Dernier (20)

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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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...
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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?
 
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
 

BPM for developers, extended

  • 1. BPM for developers: improve agility of implementations – “Extended” A. Samarin More about slides 32, 33 and 34 of the http://fr.slideshare.net/samarin/bpm-for- developers
  • 2. • After a few discussions linked to “BPM for developers” presentation http://fr.slideshare.net/samarin/bpm-for- developers I found that some slides (namely 32, 33 and 34) are too “condensed” thus difficult to understand • This presentation gives more details about those slides • The topics discussed are only about the automation © A. Samarin 2013 BPM for developers "extended", v1 2 WHY this second presentation
  • 3. • Speed of developing automation is the primary factor of agility of a process-centric solution • Automation and process template have different speed of changes – keep automation outside the process template • Automation may be long-running and resource-consuming • Automation may and will fail • Failures maybe because of technical (no access to a web service) or business (missing important data) reasons • Recovery after failure should be easy • Automation’s problems (failures, resource consuming) must not undermine the performance of process engine © A. Samarin 2013 BPM for developers "extended", v1 3 Concerns about automation
  • 4. • Why: – Process template is a composition of many other artefacts (events, data, documents, KPIs, services, etc.) – Those artefacts have their own evolution speed – Some changes are not under your control • Process templates, XSD, WSDL, services, namespaces, documents, etc. must be explicitly versioned • Many versions of the “same” should easily co-exist • Use the simplest version schema – just sequential numbering: 1, 2, 3, … • At the same time, keep the possibility to refer to the “current” version © A. Samarin 2013 BPM for developers "extended", v1 4 Explicit versioning of everything (1)
  • 5. • A typical use (which is often a compliance requirement): – Since 1st of April all new process instances will use process template v2 – Already running process instances must remain at process template v1 • Another typical use (from the real life): – Since 1st of April all new process instances will use process template v2 – Some already running process instances will remain at process template v1 (if those instances are close to the completion) – Some already running process instances may be migrated to process template v2 (if those instances are far from the completion) © A. Samarin 2013 BPM for developers "extended", v1 5 Explicit versioning of everything (2)
  • 6. • There are two major patterns for mixing human and automation activities • Pre Do Post pattern in which each human activity (DO) is surrounded by automated activities (PRE and POST) • The rationale: – to reduce human’s non-productive work, data, documents, information must be prepared in advance – the results of human’s work should be placed in different repositories – pre- and post- for the whole process © A. Samarin 2013 BPM for developers "extended", v1 6 Mixing human and automated activities (1) PRE POST DO
  • 7. • Error Recovery Loop is the other pattern which mandates a human intervention for the recovery of a failed automated activity • The rationale: – explicit catch of exceptions – ability to assign “recovery” human activity to different roles depending the nature of exception (bypass the service desk) – maybe implemented as a container without exposure to the process • Relates to other techniques: – dynamic (interpretive) language – idempotency © A. Samarin 2013 BPM for developers "extended", v1 7 Mixing human and automated activities (2) Recover Work
  • 8. • At the same time, small fragments of automation may be used to react on different events related to a particular human activity (as in Bonita); those fragments are event handlers (and not the automation per se): – ready (available to be claimed) – claim (assign yourself to a human activity which is ready) – unclaim (opposite to claim) – suspend (stop temporary) – resume (after suspending) – delegate (reassign somebody for your human activity) – send for review (delegate and ask to return the activity to you) – done (or complete; maybe with some qualifiers or dispositions) – terminate (or cancel; some kind of exception) – exception (escalate, timeout, etc.) © A. Samarin 2013 BPM for developers "extended", v1 8 Mixing human and automated activities (3)
  • 9. • Automated activities are usually built on existing APIs to access different enterprise systems and repositories • Automation looks like scripting • Interpretive language (no need to recompile) are good for scripting • Combine dynamic and static programming languages, for example, Jython and Java, Groovy and Java, etc. • Use the strong typing to secure interfaces, enjoy introspection, and avoid exotic features • Automation scripts must be kept outside process templates to allow modifications even within a process instance © A. Samarin 2013 BPM for developers "extended", v1 9 Use dynamic (interpretive) language
  • 10. • Use “robot” (an external to the process engine) program to execute scripts • Universal robots and specialised robots may co-exist • Robots must be clonable (for scalability, load-balancing and fault-tolerance) • Integration patterns between the process engine and robots (scripts are passed by reference): 1. Human activity is assigned to a robot or group of robots; each robot is systematically checking its inbox (poor-man solution) 2. Process engine queues (via a WS) work for robots; the queue manager dispatches work requests to robots (ideal solution) • A crash of a robot will not disturb the process engine (last an activity will be “late” or “overdue”) © A. Samarin 2013 BPM for developers "extended", v1 10 Execution of automation scripts
  • 11. • Typical sequence 1. Exception is raised in an automation script of an automated activity 2. The process instance is routed to the recovery human activity 3. A responsible person makes necessary corrections (up to modifying the automation script) and completes this human activity 4. The process instance is routed to the automated activity 5. The automation script is executed again • Idempotency of automated scripts is a must © A. Samarin 2013 BPM for developers "extended", v1 11 Error recovery loop
  • 12. • Idempotence (pron.: /ˌaɪdɨmˌpoʊtəns/ EYE-dəm-POH- təns) is the property of certain operations, that can be applied multiple times without changing the result beyond the initial application • This an automation script is a collection of idempotent invocations of some services; a typical execution sequence for services A, and B: 1. Start of the automation script 2. Invocation of service A – OK 3. Invocation of service B – exception 4. Re-start of the automation script (due to error recovery loop) 5. Invocation of service A – OK (due to idempotency) 6. Invocation of service B – OK 7. End of the automation script © A. Samarin 2013 BPM for developers "extended", v1 12 Idempotence
  • 13. • Automation script are actually executed by “system” account • But, in some case, they have to pretend to be as one of the participants in the process instance; for example, a submitted document should be owned by the submitter • Automation script must have reach access to process instance (BPM API) and be able to impersonate (change account) © A. Samarin 2013 BPM for developers "extended", v1 13 Impersonating
  • 14. • Ruthless monitoring of all services (including robots, other systems and repositories) • Not just checking that a port is bound, but asking to do a real work; for example, echo-test • Service should be developed in the way to facilitate such a monitoring • System should be developed in a way to facilitate such a monitoring • Also, robots proactively (before executing automation scripts) must check (via monitoring) the availability of services to be used in a particular automation script • It is better to wait a little than recover from an error © A. Samarin 2013 BPM for developers "extended", v1 14 Monitoring
  • 15. © A. Samarin 2013 BPM for developers "extended", v1 15 Thanks
  • 16. • Mixing human and automated activities • Each human activity may be surrounded by two automated activities (pre-processing and post-processing) © A. Samarin 2013 BPM for developers, v1 16 Look at automation within processes
  • 17. • Explicit versioning of everything (another topic for developers) • Keep automation outside the process template (as they have different speed of changes) • Use an interpretive language for automation scripting (no need to recompile) • Use recovery loops (preserve instance, carry out quick corrections in “this” instance) • Smart error handling (bypass some levels of support) © A. Samarin 2013 BPM for developers "extended", v1 17 Speed of developing automation is the primary factor of agility
  • 18. • Combine static and dynamic programming languages • Use the strong typing, introspection, no exotic features • Use external (to process engine) universal program (robot) to execute automation scripts (scalability) • Assign automated activities to robots (potential use of specialised robots) • Multiple robots (load balancing) • Process engine queues jobs for robots • Proactive monitoring of resource availability (better to wait a little than recover from an error) • Idempotency © A. Samarin 2013 BPM for developers "extended", v1 18 More tricks