Managing Variability in Workflow

We propose an implementation of a set of tools dedicated to the management of variability in workflow-based systems. We rely on the Kermeta workbench, the Kompose tool and Xtext.

NEW The paper “Managing Variability in Workflow with Feature Model Composition Operators” has been accepted (see References).

At the moment, we provide:

  • an Ecore metamodel of workflow
  • an Ecore metamodel of service
  • an Ecore metamodel of joinpoint
  • a DSL (Domain-Specific Language) to specify where the variable concerns are attached to specific joinpoint into a workflow model
  • a DSL to design variable concerns and feature models

and the implementation (written in Kermeta language) allows users to:

  • load models and check the conformity with the metamodels
  • achieve the weaving of the variable concerns in the models
  • analyze interactions between variable concerns (compatibility checking, variability propagation, etc.)
  • merge feature models and reason on variable concerns (the merge operators are implemented in Kompose)
  • use and reason on various constructions of workflows (sequence/pipeline, concurrency, if-then-else condition)
  • save the resulting models

Demonstration and screencasts:

The folder MVWproject of the demonstrations can be downloaded. The content is as follows:

  • outputconcurrency
  • outputpipelineAOSD10
  • outputpipelineIO
  • outputsimpleexample
  • outputsimpleexample2
for each output folder, (i.e., location where files are generated):
* to trace the analysis of the workflow, feature models are serialized in corresponding service subfolders (e.g. FService1) and in the MERGED subfolder
* end-result feature models are serialized in subfolder workflow
  • unit
simplexample.mvw (see D1, D2 and D3), concurrency.mvw (see D6), pipeline.mvw (see D4 and D5)
and other examples of mvw projects
  • weaver
simplexample.weaver (see D1, D2 and D3), concurrency.weaver (see D6), pipeline.weaver (see D4 and D5)
and other examples of weaving instructions
  • workflows
workflow models used in the demonstrations:
simpleexample.xmi (see D1, D2 and D3), purepipelineAOSD10.xmi (see D4 and D5), concurrencyAOSD10.xmi (see D6)

References

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Managing Variability in Workflow with Feature Model Composition Operators. In 9th International Conference on Software Composition AR=28%, volume LNCS, page 16. Springer, June 2010. [ bib ]

In grid-based scientific applications, building a workflow essentially involves composing parameterized services describing families of services and then configuring the resulting workflow product line. In domains (e.g., medical imaging) in which many different kinds of highly parameterized services exist, there is a strong need to manage variabilities so that scientists can more easily configure and compose services with consistency guarantees. In this paper, we propose an approach in which variable points in services are described with several separate feature models, so that families of workflow can be defined as compositions of feature models. A compositional technique then allows reasoning about the compatibility between connected services to ensure consistency of an entire workflow, while supporting automatic propagation of variability choices when configuring services.

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Composing Feature Models. In 2nd International Conference on Software Language Engineering (SLE'09), LNCS, page 20. LNCS, October 2009. [ bib | .pdf ]

Feature modeling is a widely used technique in Software Product Line development. Feature models allow stakeholders to describe domain concepts in terms of commonalities and differences within a family of software systems. Developing a complex monolithic feature model can require significant effort and restrict the reusability of a set of features already modeled. We advocate using modeling techniques that support separating and composing concerns to better manage the complexity of developing large feature models. In this paper, we propose a set of composition operators dedicated to feature models. These composition operators enable the development of large feature models by composing smaller feature models which address well-defined concerns. The operators are notably distinguished by their documented capabilities to preserve some significant properties.

Mathieu Acher, Philippe Collet, Philippe Lahire, and Johan Montagnat. Imaging Services on the Grid as a Product Line: Requirements and Architecture. In Service-Oriented Architectures and Software Product Lines - Putting Both Together (SOAPL'08). (associated workshop issue of SPLC 2008), IEEE Computer Society, September 2008. [ bib | .pdf ]

SOA is now the reference architecture for medical imaging processing on the grid. Imaging services must be composed in workflows to implement the processing chains, but the need to handle end-to-end qualities of service hampered both the provision of services and their composition. This paper analyses the variability of functional and non functional aspects of this domain and proposes a first architecture in which services are organized within a product line architecture and metamodels help in structuring necessary information.

Mathieu Acher, Philippe Collet, and Philippe Lahire. Issues in Managing Variability of Medical Imaging Grid Services. In Olabarriaga Silvia, Lingrand Diane, and Montagnat Johan, editors, MICCAI-Grid Workshop (MICCAI-Grid), New York, NY, USA, September 2008. [ bib | .pdf ]

In medical image analysis, there exist multifold applications to grids and service-oriented architectures are more and more used to implement such imaging applications. In this context, workflow and service architects have to face an important variability problem related both to the functional description of services, and to the numerous quality of service (QoS) dimensions that are to be considered. In this paper, we analyze such variability issues and establish the requirements of a service product line, which objective is to facilitate variability handling in the image processing chain.