2. About Vortex Opensplice — OpenSplice Getting Started Guide

### Navigation

- index
- next |
- previous |
- OpenSplice Getting Started Guide »

# 2. About Vortex Opensplice

## 2.1. Why Vortex OpenSplice

### 2.1.1. What is Vortex OpenSplice?

The purpose of Vortex OpenSplice is to provide an infrastructure and middleware layer for real-time distributed systems. This is a realisation of the OMG-DDS-DCPS Specification for a Data Distribution Service based upon a Data Centric Publish Subscribe architecture.

### 2.1.2. Why Use It?

Vortex OpenSplice provides an infrastructure for real-time data distribution and offers middleware services to applications. It provides a real-time data distribution service that aims at:

- reducing the complexity of the real-time distributed systems
- providing an infrastructure upon which fault-tolerant real-time systems can be built
- supporting incremental development and deployment of systems

### 2.1.3. Vortex OpenSplice Summary

Vortex OpenSplice is the leading (commercial and Open Source) implementation of the Object Management Group’s (OMG) Data Distribution Service (DDS) for Real-Time Systems datasharing middleware standard. Vortex OpenSplice is an advanced and proven data-centric solution that enables seamless, timely, scalable and dependable distributed data sharing. Vortex OpenSplice delivers the right data, in the right place, at the right time, every time–even in the largest-scale mission- and business-critical systems.

Key features and benefits are:

- Genuinely the fastest, most scalable and most reliable Open Source integration technology
- Deployed in the most challenging business- and mission-critical systems
- Genuine Open Source Apache 2.0 licensing for both the Community and Commercial editions
- Field-proven interoperability with other DDS implementations
- Largest ecosystem of plug-ins and tools for modeling, deployment and testing
- Richest set of QoS policies for controlling efficiency, determinism and fault-tolerance
- Supported by world-renowned professional services expertise from the developers of the DDS standard
- Unprecedented throughput of millions of samples/sec for typical ‘stream’ data

Please go to http://ist.adlinktech.com/ to obtain evaluation copies of Vortex OpenSplice, and http://ist.adlinktech.com/dds-community for free downloads of the DDS Community Edition.

## 2.2. Vortex OpenSplice Architecture

### 2.2.1. Overall

To ensure scalability, flexibility and extensibility, Vortex OpenSplice has an internal architecture that, when selected, uses shared memory to `interconnect’ not only all applications that reside within one computing node, but also `hosts’ a configurable and extensible set of services. These services provide `pluggable’ functionality such as networking (providing QoS driven real-time networking based on multiple reliable multicast `channels’), durability (providing fault tolerant storage for both real-time `state’ data as well as persistent `settings’), and remote control & monitoring `soap service’ (providing remote web based access using the SOAP protocol from the Vortex OpenSplice Tuner tools).

### 2.2.2. Scalability

Vortex OpenSplice is capable of using a shared-memory architecture where data is physically present only once on any machine, and where smart administration still provides each subscriber with his own private `view’ on this data. This allows a subscriber’s data cache to be perceived as an individual `database’ that can be content-filtered, queried, etc. (using the content-subscription profile as supported by Vortex OpenSplice). This shared-memory architecture results in an extremely small footprint, excellent scalability and optimal performance when compared to implementations where each reader/writer are `communication endpoints’ each with its own storage (in other words, historical data both at reader and writer) and where the data itself still has to be moved, even within the same physical node.

### 2.2.3. Configuration

Vortex OpenSplice is highly configurable, even allowing the architectural structure of the DDS middleware to be chosen by the user at deployment time. Vortex OpenSplice can be configured to run using a shared memory architecture, where both the DDS related administration (including the optional pluggable services) and DDS applications interface directly with shared memory. Alternatively, Vortex OpenSplice also supports a single process library architecture, where one or more DDS applications, together with the Vortex OpenSplice administration and services, can all be grouped into a single operating system process. Both deployment modes support a configurable and extensible set of services, providing functionality such as:

- networking - providing real-time networking options allowing for trade-offs between `interoperability’ (with other DDS vendors) and scalability (supporting ultra-large systems).
- durability - providing fault-tolerant storage for both real-time state data as well as persistent settings
- remote control and monitoring SOAP service - providing remote web-based access using the SOAP protocol from the Vortex OpenSplice Tuner tool
- dbms service - providing a connection between the real-time and the enterprise domain by bridging data from DDS to DBMS and vice versa

The Vortex OpenSplice middleware can be easily configured, on the fly, using its pluggable architecture: the services that are needed can be specified together with their optimum configuration for the particular application domain, including networking parameters, and durability levels for example).

There are advantages to both the single process and shared memory deployment architectures, so the most appropriate deployment choice depends on the user’s exact requirements and DDS scenario.

## 2.3. Single Process Library Architecture

This deployment allows the DDS applications and Vortex OpenSplice administration to be contained together within one single operating system process. This single process deployment option is most useful in environments where shared memory is unavailable or undesirable. As dynamic heap memory is utilized in the single process deployment environment, there is no need to pre-configure a shared memory segment which in some use cases is also seen as an advantage of this deployment option.

Each DDS application on a processing node is implemented as an individual, self-contained operating system process (i.e. all of the DDS administration and necessary services have been linked into the application process). This is known as a single process application. Communication between multiple single process applications co-located on the same machine node is done via the (loop-back) network, since there is no memory shared between them.

An extension to the single process architecture is the option to co-locate multiple DDS applications into a single process. This can be done be creating application libraries rather than application executables that can be `linked’ into the single process in a similar way to how the DDS middleware services are linked into the single process. This is known as a single process application cluster. Communication between clustered applications (that together form a single process) can still benefit from using the process’s heap memory, which typically is an order of magnitude faster than using a network, yet the lifecycle of these clustered applications will be tightly coupled.

The Single Process deployment is the default architecture provided within Vortex OpenSplice and allows for easy deployment with minimal configuration required for a running DDS system.

The figure The Vortex OpenSplice Single Process Architecture shows an overview of the single process architecture of Vortex OpenSplice.

The Vortex OpenSplice Single Process Architecture

## 2.4. Shared Memory architecture

In the shared memory architecture data is physically present only once on any machine but smart administration still provides each subscriber with his own private view on this data. Both the DDS applications and Vortex OpenSplice administration interface directly with the shared memory which is created by the Vortex OpenSplice daemon on start up. This architecture enables a subscriber’s data cache to be seen as an individual database and the content can be filtered, queried, etc. by using the Vortex OpenSplice content subscription profile.

Typically for advanced DDS users, the shared memory architecture is a more powerful mode of operation and results in extremely low footprint, excellent scalability and optimal performance when compared to the implementation where each reader/writer are communication end points each with its own storage (i.e. historical data both at reader and writer) and where the data itself still has to be moved, even within the same platform.

The figure The Vortex OpenSplice Shared Memory Architecture shows an overview of the shared memory architecture of Vortex OpenSplice on one computing node. Typically, there are many nodes within a system.

The Vortex OpenSplice Shared Memory Architecture

## 2.5. Vortex OpenSplice Features and Benefits

The table below shows the following aspects of Vortex OpenSplice, where:

> Features are significant characteristics of Vortex OpenSplice

> Advantages shows why a feature is important

> Benefits describes how users of Vortex OpenSplice can exploit the advantages

Features | Advantages | Benefits | =+!
--- | --- | --- | ---
GENERAL
Information- centric | Enable dynamic, loosely-coupled system | Simplified and better scalable architectures | =
Open standard | ‘Off-the-shelf’ solutions | Lower cost, no vendor lock-in | =
Built on proven technology | Intended for the most demanding situations | Assured quality and applicability | ++
TNN/PT ‘inheritance’ | Decade of ‘DDS’ experience | Proven suitability in mission-critical domain | !!!
Open Source model | Strong and large user community | Security of supply of most widely-used DDS | !!!
FUNCTIONAL
Real-time pub/sub | Dynamic/asynchronous data communication | Autonomous decoupled applications | =
Persistence profile | Fault-tolerant data persistence | Application fault tolerance and data high availability | !!!
Content-sub. Profile | Reduced complexity and higher performance | Easier application design and scalable systems | !!!
PERFORMANCE
Shared memory | Small footprint, instant data availability | Processor scalability | ++
Smart networking | Efficient data transport | Network scalability | ++
Extensive IDL support | Includes unbounded strings and sequences | Data scalability | ++
USABILITY
Multiple languages | Any (mix) of C, C++, Java, C# | Supports legacy code, allows hybrid systems | ++
Multiple platforms | Any (mix) of Enterprise and RTE OSs | Intercons, Enterprise and embedded systems | =
INTEROPERABILITY
DDSI/RTPS | Interoperability between DDS vendors | Smooth integration with non-OpenSplice (legacy) DDS systems | !!!
TOOLING AND EASE OF USE
All metadata at runtime | Dynamic discovery of all ‘entity info’ | Guaranteed data integrity | =
Powerful tooling | Support for complete system lifecycle | Enhanced productivity and System Integration | !!!
Remote connect | Web-based remote access and control | Remote diagnostics using standard protocols | !!!
Legend: | Equal to the competition Better than the competition Far superior to the competition | = ++ !!!

## 2.6. Conclusion

ADLINK’s Vortex OpenSplice product complemented by its tool support together encompass the industry’s most profound expertise on the OMG’s DDS standard and products.

The result is unrivalled functional DDS coverage and performance in large-scale mission-critical systems, fault tolerance in information availability, and total lifecycle support including round-trip engineering. A complete DDS solution to ensure a customer’s successful adoption of this exciting new technology and to support delivery of the highest-quality applications with the shortest time to market in the demanding real-time world.

### Navigation

- index
- next |
- previous |
- OpenSplice Getting Started Guide »