Virtualization And Simulation Language

Virtual services behavior is defined using Virtualization and Simulation Language (VSL). The syntax is based on JavaScript 6 with some added extensions.

VSL overview

Virtualization and Simulation Language (VSL) is a domain-specific language used to describe simulation models for the SV Lab. It is an ECMA6 with JSX and Flow extensions. It extends the ECMA6 language with constructs representing the SV Lab domain model in a human readable format. A specialized compiler creates an SV Lab domain model by injecting additional code into the VSL source, transpiling it into ECMA5, and running the resulting code in a Java environment. The resulting domain model is used by the SV Lab server as a base for the virtual service simulation.

There are 3 basic types of files in a SV Lab module, representing 3 different aspects of virtual service behavior:

  1. Service interface exposing one or multiple operations
  2. Service model comprised of one or more service scenarios
  3. Application model comprised of one or more application scenarios

Service interface

Each virtual service has a service interface describing a set of operations that it exposes. A service interface is used inside a service model class to define a sequence of incoming and outgoing virtual service messages.

You can use the generic built-in service interface (there is one per protocol), or create a custom one to include additional operations by extending one of the built-in generic service interface classes:

For details, see Service interfaces.

Service model

A service model file is associated with a single virtual service and describes its behavior (but not its interface or contract). Inside a service model file, you can define one or more service scenarios. Each service scenario defines a sequence of incoming and outgoing virtual service messages, as well as data relations between the calls. A virtual service is available from within a service model through a service interface.

For details, see Service models.

Application model

The application model is the highest level of abstraction. It contains application scenarios which are entry points for running the simulation usign the SV Lab server API.

Application scenarios make it possible to orchestrate multiple virtual services in a single test. If you do not need to run multiple services, your application scenario can follow the minimal application model.

For details, see Application models.