Pitfalls of Complex Content Workflow Development.

Slides:



Advertisements
Similar presentations
2011 NetIS Presentation The Complete ePublishing Platform Designed for the 21 st Century.
Advertisements

New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
Microsoft SharePoint 2010 technology for Developers
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
Software Quality Assurance Plan
SOFTWARE PRESENTATION ODMS (OPEN SOURCE DOCUMENT MANAGEMENT SYSTEM)
Tom Sheridan IT Director Gas Technology Institute (GTI)
SaxStore: a n aspect oriented persistence library for Java based on SAX events Riccardo Solmi University of Bologna May 2001.
SharePoint 2010 First Look: What's new for Developers in Microsoft SharePoint 2010 Matthew McDermott, MVP Aptillon, Able
27. to 28. March 2007 | Geneva, Switzerland. Fabrice Romelard ilem SA Level 200.
© 2004, The Trustees of Indiana University 1 OneStart Workflow Basics Brian McGough, Manager, Systems Integration, UITS Ryan Kirkendall, Lead Developer.
WebDynpro for ABAP Short introduction.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Using Microsoft SharePoint to Develop Workflow and Business Process Automation Ted Perrotte National Practice Manager, Quilogy, Microsoft Office SharePoint.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
UNIT-V The MVC architecture and Struts Framework.
Salesforce Change Management Best Practices
Introduction to SharePoint Development with VS2010 Paul Yuknewicz Lead Program Manager
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
SOA, BPM, BPEL, jBPM.
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
Jack Malloch Product Service Advisor Global Support Services.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
1 Thomas Lippert Senior Product Manager - Mobile What’s new in SMC 5.0.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
1 What’s the difference between DocuShare 3.1 and 4.0?
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Kuali Enterprise Workflow Ryan Kirkendall (Indiana University) Brian McGough (Indiana University)
Kuali Rice A basic overview…. Kuali Rice Mission First and foremost to provide a consistent development framework and common middleware layer for Kuali.
Office Business Applications Workshop Defining Business Process and Workflows.
What's New in Kinetic Calendar 2.0 Jack Boespflug Kinetic Data.
Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Module 12: Configuring and Managing Storage Technologies
Adxstudio Portals Training
Jan Hatje, DESY CSS – Control System Studio EPICS collaboration meeting CSS – Control System Studio Update EPICS collaboration meeting 2008 Shanghai.
Cognos 8 BI Configuration, Administration, and Upgrade Cognos 8 BI.
Shibboleth Working Group, Fall 2010 Scott Cantor, OSU Chad LaJoie, Itumi, LLC.
IHP Im Technologiepark Frankfurt (Oder) Germany IHP Im Technologiepark Frankfurt (Oder) Germany ©
Top 10 missing features (and ways to add them) Axel Faust / Oksana Kurysheva.
Developer Exam Preparation Thom Robbins Bryan Soltis
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
#SummitNow Enhanced Script API Nov 2013 Axel Faust, PRODYNA AG.
2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any.
Overview of Basic 3D Experience (Enovia V6) Concepts
Windows Workflow Foundation Guy Burstein Senior Consultant Advantech – Microsoft Division
Getting Started Telligent or SharePoint (or Hybrid)?
© Copyright 2011 Fujitsu Fujitsu America August 2012 Interstage BPM New Features Release
Thinking of Drupal 8? Get started with the resources.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Doron Orbach UCMDB Product Manager
Project Management: Messages
Axel Faust Senior IT-Consultant / Software Architect PRODYNA AG
Program Management Portal (PgMP): What’s New in R8 for the Client
CARA 3.10 Major New Features
Enterprise Library Overview
Michael Mast Senior Architect
Chapter 10: Process Implementation with Executable Models
Introduction to SharePoint Framework
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Execute your Processes
Guided Research: Intelligent Contextual Task Support for Mails
敦群數位科技有限公司(vanGene Digital Inc.) 游家德(Jade Yu.)
ONAP Architecture Principle Review
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

Pitfalls of Complex Content Workflow Development

Short Intro Axel Faust Alfresco Architect Frankfurt, Germany Community Alfresco Forums (EN / DE) Challenged Jeff Potts (and won !?) Blog: axel-faust.de (EN / DE) Summary 2011 – 2012: Level up

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

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

Usability #1 – Long click-streams #2 – Unclear / ambigous context

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

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

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

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 …

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

Development #3 – Unknown BPM limits / features

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

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

Example: Complexity of Content Distribution Alfresco 4.0 / Activiti 5.7Alfresco Activiti 5.10 Message Bundle X Outgoing Message Queue Alfresco Node Store Alfresco Job (Quartz) Search & Acquire Process Remove QueueSignal 30m Asynch

Development #4 – Handling permissions / policies incorrectly

Issues with Permissions / Policies Large number of errors / questions in forums (>2,5 %) 447 / 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

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

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

Cost of Ownership #5 – Overloading process with implementation

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

Externalizing Scripts Default import mechanism

Externalizing Scripts Default import mechanism (not debuggable) ALF Import API (debuggable)

Externalizing Scripts Default import mechanism (not debuggable) ALF Import API (debuggable, customizable) Process specific importer Version- and process- aware importer

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

Cost of Ownership #6 – Not considering backwards compatibility

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 Task model changed Process refactoring Java handler updates Form config change Process Instances

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

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

Time is running out…

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

Questions / Feedback

Unreliable Indicator of Complexity

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

Usability #1 – Excessive / unnecessary BPM

Excessive BPM Usages Attractive BPM Out-of-the-Box features User guideance Matters of scale Instance count s sent Common issues Task / overload Unflexible workflows

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)

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

Building plan of The Place That Sends You Mad The Twelve Tasks of Asterix Les Productions René Goscinny / Dargaud Films / Studios Idefix

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

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