Fork me on GitHub

The OperationalString is the unit of deployment in Rio. It contains definitions that provide context on how to provision, manage, monitor and instantiate services through the network. An OperationalString is created through the use of a Groovy DSL. This section will walk you through the details of the OperationalString.

Why the name OperationalString? The name comes from creating a string (collection) of services that execute in an operational context. The OperationalString is sometimes referred to as an opstring as well.

The image below depicts the sections of an OperationalString. We will drill into each of these sections and explain the elements that make them up.

The OperationalString contains service declarations. Each enclosing service declaration defines instantiation properties, associations (what other services this service is associated to), service SLA policies (scalability, etc ...), initialization parameters and configuration.

The spring element is a way to easily declare the deployment and activation of a Spring application using Rio. Using the Spring bean, a Spring application can be dynamically deployed and managed using Rio.

The serviceExec element provides the declarative support needed to encapsulate the control and monitoring of external services. Service control adapters represent applications/services, adding network wide visibility and control. Using this approach, we can attach monitoring, metering and SLA control to existing applications.

The OperationalString is also a reflexive entity. This means the OperationalString can include other OperationalStrings, creating a composite (nested) deployment. With this approach a single deployment can include multiple OperationalStrings.

It is generally a good idea to split your services along functional roles. Create an opstring that contains application specific services, and also an opstring includes infrastructure services. Link them together using the include declaration.

Each of the links below will illustrate the syntax diagrams for the sections of the OperationalString.

This link will display a context free grammar representation of the Rio DSL, using EBNF to document the Rio DSL syntax. The syntax diagrams below have been generated from the referenced EBNF.


Item Description
Non-terminals Are highlighted and displayed as plain text, as in service-header.
Terminals Are quoted and highlighted in green, for example 'deployment' is a Rio DSL element.
| Denotes alternatives.
( ) (parenthesis) are used to denote grouping.
? Denotes the optional appearance of a symbol or group of symbols.
* You can optionally append a list of one or more non-terminals.
; Is used to denote the end of each production.



Service Discovery

Service Instantiation




Service Associations


Service SLA Behavior



Service Rules Declaration

Service Configuration

Service Provisioning & Staged Data

Back to top

Version: 5.6.6. Last Published: 2018-10-25.