GENESIS -

Generating SOA Testbed Instrastructures

 

Motivation

GENESIS has been developed to solve a major problem in the current state of the art of software development for Service-oriented Architecture (SOA). So far, software testing in the SOA domain has been mostly concentrated on checking individual Web services regarding their performance, stability, fault tolerance, and other quality attributes. In our opinion not enough effort has been invested into supporting the testing of complex SOA components which operate on (possibly large-scale) service-based environments. Examples of such components are workflow engines which invoke remote services, registries that monitor their services (e.g., VReSCo), governance systems, and many more. To verify the quality, engineers must test these components intensively at runtime and for this they need proper testbed infrastructures. Our motivation was to support the generation of such testbeds, which, so far, had to be done manually by the engineers. We have developed the GENESIS framework that aims at this issue and provides convenient means for engineers to set up customizable testbeds for testing SOA-based systems and/or evaluating SOA concepts at runtime.

Idea & Concepts

For the new version of GENESIS high priority has been assigned to a seamless extensibility of the framework in order to emulate arbitrarily structured testbeds composed of diverse SOA components, and to program their behavior. As depicted in the figure below, GENESIS comprises a front-end, from where testbeds are modeled and controlled, and a distributed back-end at which the models are transformed into real testbed instances. To ensure extensibility, GENESIS follows a modular approach and uses composable plugins that augment the testbed’s functionality. The plugins enhance the schema of the testbed model, providing model types for controlling their extensions, and transform the models into deployable components of a testbed. For an intuitive usage, we are applying Groovy as a compact scripting language for modeling testbeds and for programming their behavior. In a nutshell, engineers specify the testbed at the front-end, defining what shall be generated where, with which customizations, and the framework takes care of distributing the model to the back-end hosts where the emulated testbed is being generated and deployed. At runtime GENESIS maintains a virtual view on the testbed, allows users to manipulate it on-the-fly, and propagates changes to the back-end in order to adapt the running testbed.

For more information about GENESIS and the applications of our framework we recommend to read the papers listed below.

Download

The Genesis2 (G2) prototype can be downloaded from here.

Contact

Lukasz Juszczyk

Old Version

The predecessor, Genesis (1), is still available at its prototype page.

Publications about GENESIS

Publications related to GENESIS

  • Psaier H., Skopik F., Schall D., Juszczyk L., Treiber M., Dustdar S. (2010). A Programming Model for Self-Adaptive Open Enterprise Systems.
    5th Workshop on Middleware for Service Oriented Computing (MW4SOC). 11th ACM/IFIP/USENIX Middleware Conference, 29. November - 3. December 2010, Bangalore, India.
  • Psaier H., Juszczyk L., Skopik F., Schall D., Dustdar S. (2010). Runtime Behavior Monitoring and Self-Adaptation in Service-Oriented Systems. 4th IEEE International Conference on Self-Adaptive and Self-Organizing Systems (SASO'10), 27. September - 01. October 2010, Budapest, Hungary.
  • Treiber M., Juszczyk L., Schall D., Dustdar S. (2010). Programming Evolveable Web Services. 2nd International Workshop on Principles of Engineering Service-Oriented Systems (PESOS). 32nd ACM/IEEE International Conference on Software Engineering (ICSE'10), 2. - 8. May 2010, Cape Town, South Africa.