Connecting the Pieces: Integrating FACE-Conformant Portable Component with a Simulation Environment

It all started a few years ago when the Future Airborne Capability Environment (FACE™) Integration Workshop Standing Committee released the Basic Avionics Lightweight Source Archetype (BALSA) example of a FACE Reference Implementation Architecture. BALSA is a software application containing Units of Conformance (UoCs) aligned to the FACE Technical Standard. Its purpose is to provide a working example to potential FACE Software Suppliers and FACE Software Integrators. It is also used as a teaching mechanism of how Units of Portability (UoPs), UoCs and FACE Application Programming Interfaces (APIs) can be realized on a potential system.

Read More

Can DDS Help Solve the Distributed Simulation Integration Challenge?

Training warfighters to the point that their reaction time and skills become muscle memory, reflexive and honed happens through consistent repetition. Effective training requires a system that provides true, high-fidelity simulations with response times closely matched to real-world scenarios. Truest fidelity is found by using the same technology that is used in systems deployed in the real world. After all, you do not get more realistic training than training with actual real-world systems. But what if you are trying to simulate a real-world scenario with several distributed components, each with its own set of disparate technologies?

Historically, most distributed simulations have been homogeneous. Integrators have typically put together simulation exercises where everyone uses the common wire-protocol found in Distributed Interactive Simulation (DIS) or a particular Run-Time Interface (RTI) for High Level Architecture (HLA). The Simulation would either need to agree on the Protocol Data Units (PDU) for DIS or the RTI and the Federation Object Model for HLA. In those cases where both DIS and different HLA RTI Federations needed to coexist for a simulation, a DIS/HLA Gateway was used. Simulations that involved using different HLA RTI implementations, or needed to have interaction with real-world systems that run over Data Distribution Service (DDS), or needed to use more protocols than just HLA and DIS, have been rare.

That is about to change. Both the Army and the Air Force are now in early procurements for all encompassing systems that will integrate multiple distributed simulations. The Army is currently evaluating first round demonstrations for a new system that will, "...provide a cognitive, collective, multi-echelon training and mission rehearsal capability for the Operational, Institutional and Self-Development training domains. To converge the virtual, constructive and gaming training environments into a single Synthetic Training Environment (STE) for Active and Reserve Components as well as civilians..." Similar to the Army's STE, the Air Force has a new initiative called the Simulator Common Architecture Requirements and Standards (SCARS). SCARS describes a desire for a common open architecture to facilitate rapid development and avoid the pitfalls of being ‘locked’ into the use of proprietary technology. SCARS plans on being able to integrate over 40 different simulators into one common architecture.

As Live, Virtual, Constructive simulation technologies, C4ISR components, and operational combat systems all merge into the same technology base, training and simulation system integrators are now faced with requirements for bridging multiple technologies into one seamless solution. Adding to that already arduous task, these integrators also have enhanced cybersecurity requirements. Figure 1 shows an example architecture of how systems can integrate today using the DDS Layered Databus Architecture Pattern with gateways to gain security.

Read More

Frameworks and Transports: Choosing the Best IIoT Connectivity Solution

Building out a distributed system infrastructure in today’s emerging Industrial Internet of Things (IIoT) landscape can be a daunting task, to say the least. If you are a developer or system architect, you know that there are many tools and protocols available to use to move data around in your distributed application. Not to mention the possibility of building out your own custom solution directly on TCP or UDP sockets. Wouldn’t it be great if a lot of the work that needed to be done before you could make a decision on your next infrastructure was already done for you?

Read More

Implementing Simple Introspection with Connext DDS in C++14

When I was first introduced to RTI Connext® DDS, it wasn't very long (after seeing the powerful tools) before I wanted to know how difficult it would be to implement domain introspection in its most basic form. Obviously tools, such as the Admin Console, are complex but that doesn’t mean that the basic principle on which they’re based – domain introspection – has to be. So I set about trying my hand at creating the simplest example of domain introspection that would have some demonstrable utility. This blog post covers my journey into this effort.

Read More

Profiling Distributed Applications with Perf

I, like many developers, have been in situations where I needed to take an existing application and make it faster–basically by removing slow code and replacing it with fast code. I know now to follow one simple rule when it comes to optimizing code:

Read More

How to Build and Run RTI Connext DDS Micro on a Microcontroller

As you might know, we ship a buildable source for RTI Connext DDS Micro so you can build it for your own architecture. In the past few months, we have noticed that customers are interested in building our product for microcontrollers without a Memory Management Unit (MMU), and they’re using a uClibc-based OS. The purpose of this post is to support this expressed need and illustrate how to port RTI Connext DDS Micro to uCLinux with relatively few changes. The development board that we will use in this practical example is STM32F769I-DISCO. You should be able to extrapolate it to any other board by knowing your toolchain. You can even extrapolate it to any other OS that uses uClibc!

Let’s get started.

Read More