COMLAN (Composition Centered Architectural Pattern Language)
Introduction
COMLAN is a tool to design architectural patterns with the focus on documenting composition operations. It provides the following functionalities:
- Create architectural patterns
- Compose patterns using merging operators
- Refine the composed pattern
Demonstration
To demonstrate how our proposed tool function, we realized an example of design a pattern for the Vistrails application’s architecture [1]. Vistrails is a data exploitation, publishing and visualization application. The pattern for this type of application consists of 4 following patterns: Pipes and Filters, Client-Server, Repository and Layers.
The purpose of this demonstration is showing the two-step process of architectural pattern design. The first step consists of pattern composition description with merging operators. The second step consists of refining the composed pattern to concretize merging operators. The demonstration shows this two-step process first with the pattern Pipes and Filters and then repeats it with the Vistrails application pattern.
Each step of the demonstration can be viewed as follows:
Step by step:
- Acyclic pattern design:
This demonstration first introduces the pattern editor and then shows how to use it to design the Acyclic pattern.Acyclic pattern design – Click the image to start the video - Sequential pattern design:
This demonstration shows how to use the pattern editor to design the Sequential pattern.Sequential pattern design – Click the image to start the video - Pipes and Filters composition:
This demonstration shows how to compose the Pipes and Filters pattern by combining the Acyclic pattern and Sequential pattern.Pipes and Filters composed pattern – Click the image to start the video - Refine the Pipes and Filters composed pattern:
This demonstration shows how to concretize the merging operators in the composed pattern.Pipes and Filters composed pattern refinement – Click the image to start the video - Vistrails application’s constituent patterns:
This demonstration shows the design of patterns participating in the Vistrails application pattern.Constituent patterns of Vistrails application’s pattern – Click the image to start the video - Vistrails application pattern composition:
This demonstration shows how to compose the Vistrails application pattern by combining 4 patterns: Pipes and Filters, Client-Server, Repository and Layers.Compose the Vistrails application pattern – Click the image to start the video - Refine the Vistrails application composed pattern:
This demonstration shows how to concretize the merging operators in the Vistrails application composed pattern.Vistrails application composed pattern refinement – Click the image to start the video
Download and Installation
Download
COMLAN as an Eclipse plugin can be downloaded under the following link: COMLAN tool (Updated 06 February 2013). The Vistrails application pattern example source code can be downloaded here: Vistrails Example.
Installation
COMLAN is developed based on EMF (Eclipse Modelling Framework) and its supporting technologies. Thus, the following plug-ins and frameworks are required to successfully build COMLAN:
- Eclipse Modeling Framework SDK version 2.7.2(download details at http://www.eclipse.org/modeling/emf/?project=emf)
- Graphical Modeling Framework version 1.5.0 (download details at http://www.eclipse.org/modeling/gmp/)
- Kermeta version 1.4.0 (download details at http://www.kermeta.org/)
Experimental materials and results
A complete report about experimental results can be found here: Technical report.
References
[1] Amy Brown and Greg Wilson. The Architecture Of Open Source Applications. lulu.com, 2011.