Skip to main content

Getting Started with ACE, TAO, and OpenDDS on VxWorks 7

·995 words·5 mins
VxWorks OpenDDS ACE TAO DDS Embedded Systems Real-Time-Systems Wind River Middleware
Table of Contents

Getting Started with ACE, TAO, and OpenDDS on VxWorks 7

Building distributed real-time applications on VxWorks often requires a reliable middleware stack that provides portability, deterministic behavior, and standards-based communication. Object Computing, Inc. (OCI), a Wind River partner, provides pre-built packages for ACE, TAO, and OpenDDS, making it significantly easier to integrate these technologies into VxWorks 7 development environments.

This guide covers installation methods, VxWorks Source Build (VSB) configuration, optional DDS Security dependencies, Xerces-C++ integration, and application build workflows using MPC.

🚀 Overview
#

OCI distributes free Marketplace packages for the following components:

  • ACE (ADAPTIVE Communication Environment) — A mature C++ framework that provides cross-platform networking, concurrency, and operating system abstractions.
  • TAO (The ACE ORB) — A CORBA implementation built on top of ACE for high-performance distributed applications.
  • OpenDDS — An open-source implementation of the OMG Data Distribution Service (DDS) standard for real-time publish-subscribe communication.

OpenDDS leverages ACE for portability while delivering enterprise-grade DDS functionality, including:

  • Strongly typed publish-subscribe communication
  • Comprehensive DDS Quality of Service (QoS)
  • RTPS (Real-Time Publish-Subscribe) interoperability
  • DDS Security support
  • High-performance middleware for embedded and distributed systems

OCI also offers professional consulting, training, and commercial support for these technologies.

📦 Additional Dependencies
#

Depending on your host operating system and required features, additional software may be necessary.

Windows Hosts
#

Install ActiveState Perl, which is required by several build scripts.

DDS Security Support
#

DDS Security requires the following components:

  • Wind River Cryptography Libraries
  • Apache Xerces-C++ 3.2.1 (this exact version)
  • CMake

Later versions of Xerces are not officially supported for this workflow.

🛒 Installing Through the VxWorks Marketplace
#

ACE, TAO, and OpenDDS are distributed as independent Marketplace packages. Always ensure the installed package versions match the versions documented for your project.

Package Dependencies
#

Understanding the package hierarchy helps avoid unnecessary installations:

  • TAO already includes ACE.
  • OpenDDS includes both ACE and TAO.

For most projects, installing only the OpenDDS package is sufficient.

RPM Package Overview
#

RPM Package Version Included with ACE Included with TAO Included with OpenDDS
oci_ace 6.2.15.0
oci_tao_host_linux 2.2.15.0
oci_tao_host_windows 2.2.15.0
oci_tao 2.2.15.0
oci_opendds_host_linux 3.13.0.0
oci_opendds_host_windows 3.13.0.0
oci_opendds 3.13.0.0

When using the Marketplace installer, all required package dependencies are resolved automatically.

⚙️ Manual RPM Installation
#

If Marketplace is unavailable, packages can be installed manually using the command-line package manager described in the Wind River Product Installation and Licensing Developer’s Guide.

To prevent dependency issues, install all related RPM packages together rather than individually.

🏗️ Configuring the VxWorks Source Build (VSB)
#

After installing the required packages, configure your VSB to include the OCI middleware layers.

Required Configuration Steps
#

  1. Create a new VSB or modify an existing one.
  2. Disable:
LANG_LIB_CPLUSPLUS_USER_2011

This layer should be disabled because GCC 4.8.x shipped with VxWorks 7 does not fully implement the required C++11 features.

  1. Enable the following networking layers:
  • OCI_ACE
  • OCI_TAO
  • OCI_OPENDDS

Using Add with Dependencies is recommended because enabling OpenDDS automatically selects the required ACE and TAO layers.

ACE Configuration Options
#

The ACE layer exposes several build options that also affect TAO and OpenDDS:

  • Kernel configuration
  • POSIX thread support
  • Static or shared libraries
  • Debug builds
  • Optimization levels
  • Xerces integration

Configure these options according to your project’s deployment requirements.

🔐 Enabling DDS Security
#

DDS Security requires additional middleware and runtime components.

Required Components
#

Enable the following before building OpenDDS Security:

  • UNIX compatibility layer
  • OpenSSL layer
  • Xerces-C++ 3.2.1

The recommended workflow is:

  1. Build a minimal VSB without ACE, TAO, or OpenDDS.
  2. Build and install Xerces.
  3. Enable:
OCI_ACE_RTP_XERCES
  1. Specify the Xerces installation directory.
  2. Enable DDS Security inside the OpenDDS configuration menu.

Build Recommendation
#

Disable parallel builds during VSB generation because layer dependencies can produce inconsistent build results.

🛠️ Building Xerces-C++ 3.2.1
#

DDS Security depends on Apache Xerces-C++ 3.2.1.

Build Procedure
#

  1. Download and extract Xerces-C++ 3.2.1.
  2. Install CMake and ensure it is available on your system PATH.
  3. Create a CMake Shared User Library project in Wind River Workbench.
  4. Associate the project with your VSB.
  5. Remove the Diab compiler build specification and retain only the GNU build specification.
  6. Configure the installation directory:
-DCMAKE_INSTALL_PREFIX=/path/to/installed/xerces
  1. (Optional) Build a static library by duplicating the build specification and adding:
-DBUILD_SHARED_LIBS=OFF
  1. Run the OCI preparation script.

Windows

cd xerces_rtp
perl %WIND_BASE%\pkgs\net\oci_ace-6.2.15.0\misc\xerces_vxworks.pl

Linux

cd xerces_rtp
perl $WIND_BASE/pkgs/net/oci_ace-6.2.15.0/misc/xerces_vxworks.pl
  1. Build the project using the install target.

🧩 Building Applications
#

After the middleware has been integrated into the VSB, applications can be compiled using the generated libraries.

Include Directories
#

Kernel applications:

{VSB_DIR}/krnl/h/public

RTP applications:

{VSB_DIR}/usr/h/public

Library Directories
#

Kernel:

{VSB_DIR}/krnl/{CPU}/gnu

RTP:

{VSB_DIR}/usr/lib/gnu

Host Tools
#

IDL compilers and other code-generation tools are located in:

{WIND_HOME}/partners/oci_tao-{VERSION}/{HOST_OS}/bin

and the equivalent OpenDDS host tools directory.

⚡ Generating Build Files with MPC
#

MPC (Makefile, Project, and Workspace Creator) is included with the ACE distribution and generates project files for supported build systems.

Required Environment Variables
#

Typical Linux configuration:

  • VSB_DIR
  • MPC_ROOT
  • ACE_ROOT
  • TAO_ROOT
  • DDS_ROOT
  • TAO_HOST_TOOLS
  • OPENDDS_HOST_TOOLS
  • XERCESCROOT (DDS Security only)

Sample MPC Project
#

project: dcps_exe, dcps_rtps_udp {
    TypeSupport_Files {
        Messenger.idl
    }

    // RTP:
    // libpaths += $(VSB_DIR)/usr/lib/gnu

    // Kernel:
    // libpaths += $(VSB_DIR)/krnl/$(CPU)/gnu
}

Generate GNU makefiles with:

$ACE_ROOT/bin/mwc.pl -type gnuace

Building with DDS Security
#

Generate projects with DDS Security enabled:

$ACE_ROOT/bin/mwc.pl \
    -type gnuace \
    -features no_opendds_security=0 \
    -features openssl=0,no_vxworks_openssl=0

⚙️ Build Variables
#

The following variables should match your VSB configuration.

Configuration Variable Value Notes
Kernel build rtp 0 Kernel application
Kernel pthread support pthread 1 Enable POSIX threads
Static libraries staticlibs_only 1 Required for static builds
Debug disabled debug 0 Default is 1
Optimization disabled optimize 0 Default is 1
Compiler TOOL gnu GNU toolchain

For DDS Security builds, also specify:

OPENDDS_SECURITY_MACRO=OPENDDS_SECURITY
no_opendds_security=0

📚 Resources
#

The following documentation provides additional implementation details and reference material:

  • OCI ACE documentation
  • OCI TAO documentation and Developer’s Guide
  • OpenDDS project website
  • OpenDDS Developer’s Guide
  • DDS Security for OpenDDS documentation
  • MPC project repository
  • OCI professional support and training resources

These references cover advanced configuration topics, middleware architecture, deployment strategies, and API documentation for production VxWorks environments.

Related

Integrating Secure OpenDDS in VxWorks 7 With VSB Layers
·1427 words·7 mins
VxWorks OpenDDS DDS Security RTOS Embedded Systems IIoT Middleware Real-Time-Systems
Embedded Software Design with VxWorks: Architecture and Practical Development
·1619 words·8 mins
Embedded Systems VxWorks RTOS Embedded Software Wind River Tornado IDE Device Drivers Real-Time-Systems
Running ROS 2 on VxWorks 7 for Deterministic Robotics
·1099 words·6 mins
VxWorks ROS2 RTOS Robotics Embedded Systems Edge AI DDS Real-Time-Systems Autonomous Systems Industrial Automation