Sharing of Experiments through the Experiment Repository




Experiment Repository purpose

Quick shortcuts
ExperimentPlanning
ExperimentUsing

The purpose of the Experiment Repository within the ViroLab virtual laboratory is to store and provide experiment plans that are developed by experiment developers and that are used by experiment users. From this perspective the repository plays a meeting place for these two groups of users of the laboratory - they share among themselves the experiment plans.

Experiment plan is a recipe that describes the process of certain experiment execution in the environment of the virtual laboratory. Physically, it is a set of files that, combined together, contain enough information for experiment users and their tools to proceed with (hopefully successful) experiment execution. The division of the plan into distinct parts is meant mainly to keep it well structured and easier to maintain by experiment developers. The exact structure and contents of each experiment plan are described in the developer’s section of this manual (see ExperimentPlanning). An important aspect of the virtualization part inside the laboratory is the fact that experiment plans are subject to storing, versioning, exchange, collaborative design and use etc. Experiment plans are the central focus of the virtual experimental space of the laboratory.

Initial experiment plan development
Figure 1. Experiment plan being conceived, shared and developed.

Usually, a typical life cycle of an experiment plan involves:

  1. initial conception and establishment of a new experiment plan
  2. shared, cooperative development of the plan by developers
  3. first release of the plan
  4. first uses (executions) of the plan by users
  5. gathering feedback and identifying shortcomings
  6. further refinement, next version releases
  7. and so on and so forth...

Initial stages of experiment plan life

The Figure 1 shows us the first stages of this process. One developer gets a new idea about some exciting experiment that could be developed. She puts those initial thoughts in form of a sketch of an experiment script and shares that with fellow developers through the Experiment Repository. In terms of software engineering this activity of experiment sharing is referred to as initial import.

After that another experiment developer, interested in similar ideas, loads the experiment plan (in cooperative development this is usually called: checkout) to his development environment and contributes his effort to make the experiment better. The new changes and additions are shared with the community through a commit operation that essentially synchronizes the content of the repository with the latest form of experiment developed by the given developer.

At this early stage of experiment planning, the plan in its current form is only stored in so-called development section of the repository. At the moment no user is able to obtain and execute this experiment - as it is assumed to be not mature enough.

Releasing and using

First experiment plan release and use
Figure 2. The process of releasing and using experiment plan.

After a certain amount of time and some effort put in the experiment plan development, one of its developers may decide to release a version of the experiment plan (see Figure 2). Such publication yield a copy of the current state of the plan in a dedicated space of the Experiment Repository. The two important features of the releases space (in comparison to the development space) are: it is accessible by experiment users and the releases put there are frozen with respect to further changes.

The tool provided for the experiment user (please see ExperimentUse for detailed description of the tool) is now able to see the released versions of experiments and also, on request, is able to download a designated version of given experiment plan. The plan, using the functionality of the tool, could be now executed and the user may obtain results.

Of course, it is very likely that a version of an experiment plan may require further modifications and improvements. For detailed description of the process of collaborative experiment refinement please visit ExperimentRefinement page.