Dies sind die archivierten Webseiten des Lehrstuhls für Programmierung und Softwaretechnik (PST).
Die Seiten des Software and Computational Systems Lab (SoSy) finden Sie auf https://www.sosy-lab.org/.

Helena - Handling massively distributed systems with ELaborate ENsemble Architectures

In the Helena approach [1], we propose a modeling technique centered around the notion of roles teaming up in ensembles. Ensembles are built on top of a component-based platform as goal-oriented communication groups of components. The functionality of each group is described in terms of roles which a component may dynamically adopt. Therefore, components can freely join and leave ensembles without breaking the overall functionality of the collaboration as long as another component takes over the abandoned role. Components also dynamically adapt to new situations by changing their roles or by concurrently playing several roles (maybe in different ensembles) at the same time. 

Helena allows rigorous ensemble modeling based on a solid formal foundation. We define the architecture of communication groups as ensemble structures composed of roles and role connectors and enhance them to ensemble specifications by adding role behaviors. The formal semantics of an ensemble specification introduces an execution model which is given by an ensemble automaton. The states of an ensemble automaton describe which role instances currently exist and which component instances currently adopt which roles. An ensemble evolves over time by message exchange between collaborating roles or by performing management operations like creating new role instance. 

jHelena Execution Framework

For the execution of ensemble-based systems, we provide the Java framework jHelena [2] which transfers the role concept to object-oriented programming and follows the rigorous semantics of Helena models. Its source code can be downloaded from here. This additional executable jar executes the peer-to-peer example from [1,2,4,5,6,7]. 

HelenaText and jHelena Generator

Helena models can be described either graphically in a UML-like notation or in a domain-specific language, HelenaText, fully integrated into the Eclipse Development Environment [4]. A code generator transforms those models to jHelena code for execution [4]. The grammar for HelenaText can be downloaded from here. To install the Eclipse plug-in, the following two jar-archives (part I, part II) need to be downloaded and included into the plugins folder of the Eclipse installation. After restart, the plug-in will be available (Xtext SDK 2.7.0, Xtend, and the MWE2 Runtime need to be installed in Eclipse). The source code of the plug-in is available from here. The Promela generator is found in the project eu.ascens.helenaText and there in the package eu.ascens.generator.jHelena. The peer-to-peer example from [1,2,4,5,6,7] implemented in HelenaText can be downloaded from here.

HelenaText and Promela Generator

Helena models can be verified for goal satisfaction [6,7]. Thereby, we rely on LTL formulae to express goals. We generate Promela code from ensemble specifications written in HelenaText which can be validated for the satisfaction of goals with the model-checker Spin. The code generator from HelenaText to Promela is also part of the aforementioned plug-in. Therefore, it is installed as mentioned before. To install the Eclipse plug-in, the following two jar-archives (part Ipart II) need to be downloaded and included into the plugins folder of the Eclipse installation. After restart, the plug-in will be available (Xtext SDK 2.7.0, Xtend, and the MWE2 Runtime need to be installed in Eclipse). The source code is also part of the zip-archive from before (zip-archive). The Promela generator is found in the project eu.ascens.helenaText and there in the package eu.ascens.generator.promela. The peer-to-peer example from [1,2,4,5,6,7] implemented in HelenaText can be downloaded from here. The generated Promela specification for the peer-to-peer example from [1,2,4,5,6,7] enhanced by initialization and LTL goals can be downloaded from here.

 

Contact:

 

Publications (all downloads are pre-versions of the published paper):

[0] A. Klarl, Helena: Handling massively distributed systems with ELaborate ENsemble Architectures. Doctoral Thesis, LMU Munich, 2016.

[1] R. Hennicker and A. Klarl, Foundations for Ensemble Modeling -The Helena Approach. In: S. Iida, J. Mesguer, K. Ogata (eds.) Specification, Algebra, and Software. Lecture Notes in Computer Science, vol. 8373, pp. 359-381. Springer, 2014.

[2] A. Klarl and R. Hennicker, Design and Implementation of Dynamically Evolving Ensembles with the Helena Framework. In: Australasian Software Engineering Conference, pp. 15-24. IEEE, 2014.

[3] A. Klarl, P. Mayer, and R. Hennicker, Helena@Work: Modeling the Science Cloud Platform. In:  International Symposium On Leveraging Applications of Formal Methods, Verification and Validation. Lecture Notes of Computer Science, vol. 8802, pp. 99-116. Springer, 2014.

[4] A. Klarl, L. Cichella, and R. Hennicker, From Helena Ensemble Specifications to Executable Code. In: International Symposium on Formal Aspects of Component Software. Lecture Notes in Computer Science, vol. 8997, pp. 183-190. Springer, 2014.

[5] A. Klarl, R. Hennicker, and L. Cichella, Implementation Framework and Code Generator for Helena Ensemble Specifications.

[6] R. Hennicker, A. Klarl, and M. Wirsing, Model-Checking Helena Ensembles with Spin. In: Logic, Rewriting, and Concurreny. Lecture Notes in Computer Science, vol. 9200, pp. 331-360. Springer, 2015. 

[7] A. Klarl, From Helena Ensemble Specifications to Promela Verification Models. In: Proceedings of SPIN2015, Lecture Notes in Computer Science, vol. 9232, pp. 39-45. Springer, 2015.

[8] A. Klarl, Engineering Self-Adaptive Systems with the Role-Based Architecture of Helena. In: International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises, pp. 3-8. IEEE, 2015.

[9] P. Mayer, A. Klarl. Toward a decentralized and resilient autonomic cloud, Awareness Magazine, 2013. online publication. (doi:10.2417/3201310.005190)

[10] P. Mayer, A. Klarl, R. Hennicker, M. Puviani, F. Tiezzi, R. Pugliese, J. Keznikl, and T. Bures. The Autonomic Cloud: A Vision of Voluntary, Peer-2-Peer Cloud Computing. In: Proceedings of 3rd Workshop on Challenges for Achieving Self-Awareness in Autonomic Systems, pp. 89-94. IEEE, 2013.

[11] P. Mayer, J. Velasco, A. Klarl, R. Hennicker, M. Puviani, F. Tiezzi, R. Pugliese, J. Keznikl, and T.  Bures. The Autonomic Cloud. In: M. Wirsing, M. Hölzl, N. Koch, P. Mayer (eds.) Software Engineering for Collective Autonomic Systems. Lecture Notes in Computer Science, vol. 8998, pp. 495-512. Springer, 2015.