Download presentation
Presentation is loading. Please wait.
Published byShea Braughton Modified over 10 years ago
1
Pitfalls of Complex Content Workflow Development
2
Short Intro Axel Faust Alfresco Architect Frankfurt, Germany Community Alfresco Forums (EN / DE) Challenged Jeff Potts (and won !?) Twitter: @ReluctantBird83 Blog: axel-faust.de (EN / DE) Summary 2011 – 2012: Level up
3
Definition / Scope Complex Workflow User perspective Number of tasks / collaborators Pattern of interaction Technical perspective System integrations Automation complexity Content Workflow Content-centric – not just peripheral Interaction with / manipulation of content items
4
Definition / Scope Not considered: unnecessary / excessive BPM Business + development agree on KISS Alternative approaches Dynamic BPM BPM + collaboration hybrid (e.g. with task data list) Pitfall categories Usability Development Cost of Ownership
5
Usability #1 – Long click-streams #2 – Unclear / ambigous context
6
Task-oriented Navigation Legend UD: User Dashboard MT: My Tasks TE: Task Edit WD: Workflow Details DD: Document Details FD: Folder Details DL: Document Library Explicit Navigation History / Back UD DD #3 DL #A DD #C FD #B DD #1 MT TE #1.1 WD #1 DD #2
7
Issues of End-Users Isolated overviews / filters Content in tasks assigned to Me ? (Assigned | Pooled) Tasks in Site X ? Limitation by lack of context Process information in Document Library Metadata / content in Forms Distribution of actions Simple editing Relevant business actions
8
Context in Document Library Simple customizations Virtual Metadata Indicators Custom filters Methods DocLib Customization Repo WebScript Override 4.0 / 4.1 Surf Extensibility 4.2
9
Context / Actions in Forms Related data Virtual fields via Forms API Customized controls Related actions Hook in association.ftl Reusing Alfresco modules Control configuration Start location Node resolver …
10
Other Improvements UI Mediator pattern Delayed page redirection Check for follow-up task Adapted notifications Specific templates with relevant metadata Optional: offline-package as attachment Additional views Task list for supervisors / process owners Recently updated tasks
11
Development #3 – Unknown BPM limits / features
12
Knowing whats possible Alfresco 4.0: Activiti 5.7 Incomplete BPMN 2.0 No asynch. continuations Alfresco 4.2: Activiti 5.10 Suspension of processes? Signals / messages? Potential issues Modelling effort wasted Unnecessary complexity Unstable process / solution
13
Process Relevance Task Compensation Undo handler Only completed tasks E.g. un-synch content Asynch. Continuation Decoupling tasks Error Event Explicit handling of business faults
14
Example: Complexity of Content Distribution Alfresco 4.0 / 4.1 + Activiti 5.7Alfresco 4.2 + Activiti 5.10 Message Bundle X Outgoing Message Queue Alfresco Node Store Alfresco Job (Quartz) Search & Acquire Process Remove QueueSignal 30m Asynch
15
Development #4 – Handling permissions / policies incorrectly
16
Issues with Permissions / Policies Large number of errors / questions in forums (>2,5 %) 447 / 1.190 topics: Access Denied / runAs 756 topics: Failed to signal transition (jBPM) Statistical assumption: ~75 % permissions / policies Limited control in process User-managed permissions and state Unrelated services and processes
17
UserTask Listener (JavaScript) ServiceTask (Java) Txn Start Listener (JavaScript) Txn Begin Commit Txn End Commit Policy B Policy C Policy D Commit Queue Commit Queue Policy D Public Service Service Impl. Policy B Public Service Service Impl. Public Service Policy A Service Impl. Public Service Service Impl. Common Constellations RunAs User X
18
Suggested Options Handle core aspects Explicit version management Detect locks / working copies and deal appropriately Decouple user and service tasks Asynch. continuations run as System Avoid habitual use of runAs in process Avoid overlap with policies / rules
19
Cost of Ownership #5 – Overloading process with implementation
20
Affected elements Overloading Non-trivial code in process Logic in 2nd tier handlers Issues BPM engine versioning Bugfixing in-flight? Minor changes? Redundant code Core process Web scripts + utils Limited debugging support
21
Externalizing Scripts Default import mechanism
22
Externalizing Scripts Default import mechanism (not debuggable) ALF-13631 Import API (debuggable)
23
Externalizing Scripts Default import mechanism (not debuggable) ALF-13631 Import API (debuggable, customizable) Process specific importer Version- and process- aware importer
24
Moving Logic into Services (Almost) A role model: Alfresco invitation workflow Highly advisable BPM-specific code only for mapping and delegation Auditable service interface Utilities for script access Room for improvement Conclusion handled by BPM helper instead of service => Audit incomplete Lack of service / process-specific permissions
25
Cost of Ownership #6 – Not considering backwards compatibility
26
Process Evolution Issues Conflicts / blockages in existing processes Confusion of users Support effort Causes Existing state in arbitrary combination Lack of uniform versioning concept Var. points of incom- patibility 1.0 1.1 2.0 2.1 Task model changed Process refactoring Java handler updates Form config change Process Instances
27
Approaches to Process Evolution Basic strategies Throw Away active processes Migrate process instances Parallel existence / operation Predominant: parallel operation Distinct artefacts after change Alt.: code handles old process instances explicitly
28
Handling Distinct Artefacts Explicit versions Java: package / class name JavaScript: path / import context Model / forms: namespaces / types Version handling support Reference update via filtering in build automation Import resolution based on version ranges Extension / import Not from scratch
29
Time is running out…
30
Conclusion Limited pitfall selection Analysis and design Training and business deployment Measuring process success / metrics Sufficient tooling to avoid dev pitfalls Strong and innovative platform Active community Thanks for your attention
31
Questions / Feedback
32
Unreliable Indicator of Complexity
33
Pitfall categories Usability Process acceptance / work effort of users Insufficient view and control of active processes Development Delays in realization / limited functionality Stability of execution Cost of Ownership Support and maintenance of active processes Process enhancements / evolution
34
Usability #1 – Excessive / unnecessary BPM
35
Excessive BPM Usages Attractive BPM Out-of-the-Box features User guideance Matters of scale Instance count Emails sent Common issues Task / email overload Unflexible workflows
36
Critical Consideration Key aspects Business criticality / relevance Level of formality / granularity Alternatives Unobtrusive DMS-solution Metadata, filtered views and policies / rules Audit log for history Abstraction: Dynamic BPM Loosely coupled workflows Complementary solutions (e.g. task data list)
37
Content-oriented Navigation (simplified) Legend UD: User Dashboard SD: Site Dashboard TE: Task Edit WD: Workflow Details DD: Document Details DL: Document Library UD TE #1.2 DD #4 DD #5 DL #E WD #1 SD
38
Building plan of The Place That Sends You Mad The Twelve Tasks of Asterix Les Productions René Goscinny / Dargaud Films / Studios Idefix
39
Indications Did this happen to you? Update jBPM / Activiti tables to … Bugfix embedded script Bugfix parameter mapping for Java handler Restart process to force use of embedded script update Similar code in embedded script, service and web scripts logger.log() in embedded script for debugging
40
Challenges of Process Evolution High effort of thorough tests Arbitrary process state / data Deployment history and runtime Weak (version) binding Primarily name-based Pure Java / JavaScript without version concept Differentiation of changes Immediate vs. delayed effect Development vs. quick fix / hack Layer 0 (Definition) Layer 1 (Model, Listener, Delegate) Layer 2 (Forms, Filters) Layer 3 (Services, Actions …) Time of deployment Model URI / arbitrary Implied model URI / arbitrary Arbitrary Versioning schemes
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.