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.
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.
Each of the links below will illustrate the syntax diagrams for the sections of the OperationalString.
- Service Discovery
- Service Instantiation
- Service Associations
- Service SLA Behavior
- Service Rules Declaration
- Service Configuration
- Service Provisioning & Staged Data
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.
|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.|
|( )||(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 SLA Behavior
Service Rules Declaration
Service Provisioning & Staged Data