Software and Systems Engineering Seminar Winter 2011 Domain-specific languages in model-driven software engineering Speaker: Valentin ROBERT 1 Research work Industry use Tools and standards evaluations DSL point of view 2 3 The business process is a series of activities occurring within a company that lead to a specific end. (wisegeek.com) A workflow consists of a sequence of connected steps. It is a depiction of a sequence of operations, declared as work of a person, a group of persons, an organization of staff, or one or more simple or complex mechanisms. (wikipedia.com) 4 Identify generic, recurring business process modelling patterns Unify existing patterns and focus on their expressive power Language-independent formalism (Coloured Petri-Net) 5 Formal description of a (business) process Executable by a workflow management system In practice: directed bipartite graph of tasks and transitions 6 Healthcare/Pharmaceuticals Prescriptions fulfillment, administrative tasks, … Finance/Banking/Accounting Error-free accounting, financial accuracy, … Education Government/Public Services/Human Resource Multi-level approval processes Manufacturing Six Sigma method Energy/Utilities Legal Services/Insurances IT Customer Relationship Management 7 8 1999: Foundation of the Workflow Pattern Initiative ▪ Profesor Wil van der Aalst (Eindhoven University of Technology) ▪ Profesor Arthur ter Hofstede (Queensland University of Technology) 20 first control-flow patterns Van Der Aalst et al. 2003 [WP] Revision of the 20 first + 23 new control-flow patterns Russell et al. 2006 [WCFP] 9 Control-flow patterns Describes complex workflows (sequence, parallel, multi-threading, mutual exclusion, division and merging, synchronization, …) Data patterns Adds data manipulation, internal/external data interaction, data transfer and transformation, data-based routing Resource patterns Tasks creation and allocation schemes, detours of a resource in the middle of a task execution, and others… Exception handling patterns Work Item Failure, Deadline Expiry, Resource Unavailability, External Trigger, Constraint Violation 10 Diagram-based DSL Source: van der Aalst et al., 2003 [WP] 11 Control-flow Basic ▪ Sequence, Parallel, Synchronization, Exclusive Choice, Simple Merge Advanced branching/synchronization ▪ Multi-choice, Multi-merge, Threads, Discriminators, Partial Joins Multiple instantiation of activities on triggers State-based ▪ Deferred Choice, Interleaved Routing, Milestone, Critical Sections Cancellation, Force Completion, Iteration, Termination, Triggers 12 Resource Task creation ▪ Direct, role-based, deferred, capability-based, history-based, … « Push » task distribution ▪ By offer, random, round-robin, shortest queue, … « Pull » task distribution Detour ▪ Delegation, escalation, deallocation, stateful/stateless reallocation, suspension, resumption, skip, redo, pre-do Auto-start … 13 Data Visibility ▪ Task, block, scope, multiple instance, folder, workflow, environment Interaction (inside components) ▪ Task to task, to multiple tasks (by reference, by value), from multiple tasks External Interaction ▪ From environment, to environment Transfer (between components) ▪ By value, by reference (locked, unlocked) Data-based routing/triggers 14 Exceptions Work Item Failure Deadline Expiry Resource Unavailability External Trigger Constraint Violation 15 16 XML Process Definition Language (2002) XPDL Business Process Modelling Notation (2004) BPMN (2.1 - WfMC) (1.2 – BMI DTF) WSBPEL BPMI? (2.0 - OASIS) Business Process Execution Language (2002) (BMI DTF?) Interface (mapping) between XPDL and BPMN (????) 17 18 XML file <Activities> <Activity Id="153189" Name="Start Event"> Goal: exchange format for <Implementation><No/></Implementation> models of workflow products <Performer>Manager</Performer> <Priority/> <Documentation/> <TransitionRestrictions> <TransitionRestriction> <Join Type="XOR"/> <Split Type="XOR"> <TransitionRefs><TransitionRef Id="153204"/></TransitionRefs> </Split> Also contains </TransitionRestriction> </TransitionRestrictions> meta-data <NodeGraphicsInfos> <NodeGraphicsInfo LaneId="1" ToolId="Interstage BPM » IsVisible="true" Page="1"> <Coordinates XCoordinate="317.0" YCoordinate="83.0"/>[…] Reference: [XPDLEx] 19 <process xmlns[…]> <import […]/> <partnerLinks> <partnerLink Programming logic - BPEL Data types - XSD Input/Output (I/O) - WSDL name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> </partnerLinks> <variables> <variable name="hello_world" messageType="print:PrintMessage" /> </variables> <assign> <copy> <from><literal>Hello World</literal></from> <to>$hello_world.value</to> </copy> </assign> <invoke partnerLink="printService" operation="print" inputVariable="hello_world" /> </process> Reference: [BPELEx] 20 Partner Links / Endpoints Identifies parties you interact with Variables Data container (XSD value or WSDL message) Assignments Invocations Invokes a web-service endpoint 21 22 STRENGHTS Designed to be flexible Seems to support much of the Workflow Patterns The new version should add semantics and interoperability (via a standard meta-model) WEAKNESSES Providing flexibility implies no formal execution semantics (?) 23 STRENGHTS Current mainstream interchange standard Supports human workflows WEAKNESSES Lacks formal execution semantics (transactions, faults, …) Not flexible enough to successfully cover BPMN (and BPMN vendor-specific extensions) Ambiguous interpretations of the standard Only partial mapping to BPEL (missing contructs + ambiguities) 24 STRENGHTS Industry-accepted standard for SOA (Oracle, IBM, Microsoft, SAP, BEA, Fuego, Lombardi, …) Designed specifically for business processes (interacting through webservices) WEAKNESSES Does not support human workflows and user interactions (in a standard way) -> BPEL4People and WS-HumanTask (rolebased human tasks) No standard modeling notation (BPMN bindings) 25 Much debate around their unification BPMN is more businessperson-friendly, BPEL requires more knowledge, someone would lose something. Keeping the same model during the whole process (modeling + execution) would be good, but… … separating them allows the model to evolve while it is being executed with no issue (hot process migration?). The same BPMN model will produce different BPEL behaviors depending on the vendor interpretation. 26 Reference: [Interop] 27 + direct support +/- partial support Reference: Wohed et al. 2006 [BPM2BPMN] - lack of support 28 Reference: Wohed et al. 2006 [BPM2BPMN] 29 Reference: Wohed et al. 2006 [BPM2BPMN] 30 Tool BPMN support XPDL support WS-BPEL Commercial support Adobe LiveCycle X X X X Appian Enterprise X X X X Bonita & Orchestra X X X X Enhydra Shark X X X X Fujitsu Interstage BPM X X X X Global 360 BOS X X ? X IBM FileNet BPM X X X X Intalio X Oracle BEA X X X X Lombardi BluePrint X X X X ProcessMaker X X - X Open Source X X 31 XPDL implementations: ADVANTYS WorkflowGen, Amazonas Workflow, Arachnea EverSuite, Appian Enterprise, Ascentn AgilePoint Server, Aspose'sAspose.Workflow, Assetlink Corporation, BOC ADONIS, BEA Systems, Brein VB's InProces, Bonita, ProEd Workflow Editor, Canto CanFlow, CapeVisions, CHALEX BPM Framework, ComActivity, Cordys BPMS, COSA Designer, Cubetto Toolset, Eclaire Group LynxFlow Designer, EMC Documentum ApplicationXtender Workflow, EMC Documentum Process Suite, Enhydra Shark, Enhydra JaWE, First Trace’s Kinnosa Workflow, FinantixStudio FXS, Fujitsu Interstage BPM (i-Flow), FileNet Business Process Manager, Global 360 Business Optimzation Server (BOS), HOGA.PL'S intraDok, IBM FileNet Business Process Manager, IDS Scheer Business Architect, iGrafx, Interwoven WorkRoute MP, Infinity Process Engine, Infor (formerly SSA Global), ITP-Commerce Design, jawFlow, Jenz & Partner's BPEdit, KAISHA-Tec's ActiveModeler Avantage, Lombardi's Blueprint, Metoda S.p.A OpenMet BPMF, Mono-sys's Tigris BPM, Nautica, Open Business Engine, OpenPages Governance Platform, Openwork, Oracle 9i Warehouse Builder, Pentaho's B1 Platform, Projekty Bankowe Polsoft's BPB Workflow, proLOGIT BPR Business Process Reporter, QualiWare, R-Data's E-SOD, Rodan Systems OfficeObjects Workflow, Savvion, Simprocess from CACI, Software AG's Crossvision BPM, SpeechCycle's LevelOne virtual CSR platform, TIBCO iProcess Suite, Together Workflow Editor, Transware Ambassador, Unisys, Vignette Process Workflow Modeler, W4's W4 BPM Suite, WfMOpen, Workflow::Wfmc, Zynium's Byzio BPEL engines: ActiveVOS, Apache ODE, BizTalk Server, iBolt Server, jBPM, Open ESB, Oracle BPEL Process Manager, OW2 Orchestra, Parasoft BPEL Maestro, Petals BEPL Engine, SAP Exchange Infrastructure, Virtuoso Universal Server, Websphere Process Server 32 Yet Another Workflow Language By the « Workflow Patterns » team YAWL vs. (WS-)BEPL BPEL is an industry standard, YAWL has only one implementation. Both have static analysis tools (based on Petri nets, Process Algebra, Finite State Machine). YAWL provides support for human tasks. YAWL supports all Workflow Patterns. (BEPL 2.0 reduces the gap) 33 34 Three DSLs maintained by three organisms, with three goals (sometimes overlapping) Serialization and interoperability issues Expressiveness issues (vendors extend the standards, impossibility of full interoperability) Domain Specific Meta-Language for domain concepts? (Business Process Definition Metamodel, by the OMG) Target issues (businessperson-friendly WYSIWYG solutions vs. IT savvy flexibility) 35 36 [BPELEx] Antony Miguel. WS-BPEL 2.0 Tutorial. Tutorial – Basic BPEL. 2005. http://www.eclipse.org/tptp/platform/documents/design/choreography_html/tutorials/wsbpel_tut.html [BPM2BPMN] P. Wohed, W. M. P. van der Aalst, M. Dumas, A.H.M. ter Hofstede, and N. Russell. On the Suitability of BPMN for Business Process Modelling. In Proceedings 4th International Conference on Business Process Management (BPM 2006), LNCS [BPMN2BPEL] Chun Ouyang, Marlon Dumas, Arthur H. M. ter Hofstede, and Wil M. P. van der Aalst. 2006. From BPMN Process Models to BPEL Web Services. In Proceedings of the IEEE International Conference on Web Services (ICWS '06). IEEE Computer Society, Washington, DC, USA, 285-292. DOI=10.1109/ICWS.2006.67 http://dx.doi.org/10.1109/ICWS.2006.67 [Interop] Keith Swenson. Collaborative Planning & Social Business. The BPMN-XPDL-BPEL value chain. 2006. http://social-biz.org/2006/05/26/bpmn-xpdl-and-bpel/ [WCFP] N. Russell, A.H.M. ter Hofstede, W.M.P. van der Aalst, and N. Mulyar. Workflow Control-Flow Patterns: A Revised View. BPM Center Report BPM-06-22, BPMcenter.org, 2006. 37 [WDP] N. Russell, A.H.M. ter Hofstede, D. Edmond, and W.M.P. van der Aalst. Workflow Data Patterns. QUT Technical report, FIT-TR-2004-01, Queensland University of Technology, Brisbane, 2004. [WP] W. M. P. van der Aalst, A. H. M. ter Hofstede, B. Kiepuszewski, and A. P. Barros. 2003. Workflow Patterns. Distrib. Parallel Databases 14, 1 (July 2003), 5-51. DOI=10.1023/A:1022883727209 http://dx.doi.org/10.1023/A:1022883727209 [WRP] N. Russell, A.H.M. ter Hofstede, D. Edmond, and W.M.P. van der Aalst. Workflow Resource Patterns. BETA Working Paper Series, WP 127, Eindhoven University of Technology, Eindhoven, 2004. [XPDLEx] Keith Swenson. XPDL.org. XPDL BPMN Example 1. 2008. http://www.xpdl.org/nugen/p/xpdlbpmnexample1/ [YAWL] W. M. P. van der Aalst and A. H. M. ter Hofstede. 2005. YAWL: yet another workflow language.Inf. Syst. 30, 4 (June 2005), 245-275. DOI=10.1016/j.is.2004.02.002 http://dx.doi.org/10.1016/j.is.2004.02.002 38