RTI Connext Micro
Version 2.4.4.0
|
RTI Connext Micro is network middleware for distributed real-time applications. It provides the communications service programmers need to distribute time-critical data between embedded and/or enterprise devices or nodes. RTI Connext Micro uses the publish-subscribe communications model to make data distribution efficient and robust. RTI Connext Micro simplifies application development, deployment and maintenance and provides fast, predictable distribution of time-critical data over a variety of transport networks. With RTI Connext Micro, you can:
RTI Connext Micro implements the Data-Centric Publish-Subscribe (DCPS) API within the OMG’s Data Distribution Service (DDS) for Real-Time Systems. DDS is the first standard developed for the needs of real-time systems. DCPS provides an efficient way to transfer data in a distributed system.
With RTI Connext Micro, systems designers and programmers start with a fault-tolerant and flexible communications infrastructure that will work over a wide variety of computer hardware, operating systems, languages, and networking transport protocols. RTI Connext Micro is highly configurable so programmers can adapt it to meet the application’s specific communication requirements.
RTI Connext Micro is based on a publish-subscribe communications model. Publish-subscribe (PS) middleware provides a simple and intuitive way to distribute data. It decouples the software that creates and sends data—the data publishers—from the software that receives and uses the data—the data subscribers. Publishers simply declare their intent to send and then publish the data. Subscribers declare their intent to receive, then the data is automatically delivered by the middleware. Despite the simplicity of the model, PS middleware can handle complex patterns of information flow. The use of PS middleware results in simpler, more modular distributed applications. Perhaps most importantly, PS middleware can automatically handle all network chores, including connections, failures, and network changes, eliminating the need for user applications to program of all those special cases. What experienced network middleware developers know is that handling special cases accounts for over 80% of the effort and code.
RTI Connext Micro supports mechanisms that go beyond the basic publish-subscribe model. The key benefit is that applications that use RTI Connext Micro for their communications are entirely decoupled. Very little of their design time has to be spent on how to handle their mutual interactions. In particular, the applications never need information about the other participating applications, including their existence or locations. RTI Connext Micro automatically handles all aspects of message delivery, without requiring any intervention from the user applications, including:
This is made possible by how RTI Connext Micro allows the user to specify Quality of Service (QoS) parameters as a way to configure automatic-discovery mechanisms and specify the behavior used when sending and receiving messages. The mechanisms are configured up-front and require no further effort on the user's part. By exchanging messages in a completely anonymous manner, RTI Connext Micro greatly simplifies distributed application design and encourages modular, well-structured programs. Furthermore, RTI Connext Micro includes the following features, which are designed to meet the needs of distributed real-time applications:
Under the hood, Connext goes beyond basic publish-subscribe communication to target the needs of applications with high-performance, real-time, and/or low-overhead requirements. It features:
RTI Connext Micro is one of several products in the RTI Connex family of products:
RTI Connext DDS addresses the sophisticated data bus requirements in complex systems including an API compliant with the Object Management Group (OMG) Data Distribution Service (DDS) specification. DDS is the leading data-centric publish/subscribe (DCPS) messaging standard for integrating distributed real-time applications. Connext DDS is the dominant industry implemen- tation with benefits including:
RTI Connext Integrator is a flexible integration infrastructure for OT systems, legacy systems and bridging to IT applications while requiring little or no modification. Connext Integrator is based on a proven foundation of technology and tools used in highly diverse systems, often with extreme real-time performance requirements. Connext Integrator benefits include:
RTI Connext Tools includes a rich set of components to accelerate debugging and testing while easing management of deployed systems. These components include:
RTI Connext Micro supports a subset of the DDS DCPS standard. A brief overview of the supported features are listed here. For a detailed list, please refer to Reference Manuals.
RTI Connext Micro supports the following DDS entities. Please refer to the documentation for details.
RTI Connext Micro supports the following DDS Qos Policies. Please refer to the documentation for details.
RTI Connext Micro supports language bindings for the following languages:
RTI Connext Micro is available as pre-built binaries for the following platforms.
Note that RTI only tests on a subset of the possible combinations of OS and CPU. Please refer to the following tables for a list of specific platforms and the specific configurations that are tested by RTI.
Operating System | CPU | Compiler | RTI Architecture Abbreviation |
---|---|---|---|
Red Hat Enterprise Linux 6.0, 6.1 (2.6 kernel) | x86 | gcc 4.4.5 | i86Linux2.6gcc4.4.5 |
Linux Build Instructions
RTI Architecture | Required System Libraries | Required Compiler Flags |
---|---|---|
i86Linux2.6gcc4.4.5 (Release) | -ldl -lnsl -lm- lpthread -lrt | -fPIC -DLINUX -DRTI_GCC4 -DRTI_LINUX26 -DRTI_LINUX -DRTI_POSIX_THREADS -DRTI_POSIX_SEMAPHORES -DRTI_CPU_AFFINITY -O -Wall -Wno-unknown-pragmas -DRTI_UNIX -DRTS_UNIX -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DRTI_ENDIAN_LITTLE -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 -DNDEBUG |
i86Linux2.6gcc4.4.5 (Debug) | -ldl -lnsl -lm- lpthread -lrt | -fPIC -DLINUX -DRTI_GCC4 -DRTI_LINUX26 -DRTI_LINUX -DRTI_POSIX_THREADS -DRTI_POSIX_SEMAPHORES -DRTI_CPU_AFFINITY -g -DRTI_PRECONDITION_TEST -Wall -Wno-unknown-pragmas -DRTI_UNIX -DRTS_UNIX -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DRTI_ENDIAN_LITTLE -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 |
Operating System | CPU | Compiler | RTI Architecture Abbreviation |
---|---|---|---|
Windows 7 | x86 | Visual Studio 2010 | i86Win32VS2010 |
Windows Build Instructions
RTI Architecture | Required System Libraries | Required Compiler Flags |
---|---|---|
i86Win32VS2010 | netapi32.lib advapi32.lib user32.lib WS2_32.lib Iphlpapi.lib winmm.lib | /D “RTI_WIN32” /D “WIN32”/Gd /MT (Static Release) /MTd (Static Debug) /MD (Dynamic Release) /MDd (Dynamic Debug) /D “NDDS_DLL_VARIABLE (Dynamic) /D “NDEBUG” (Release) |
Operating System | CPU | Compiler | RTI Architecture Abbreviation |
---|---|---|---|
VxWorks 6.9 | Pentium 32-bit | gcc 4.3.3 | For Kernel Modules: pentiumVx6.9gcc4.3.3 For Real Time Processes: pentiumVx6.9gcc4.3.3_rtp |
VxWorks 6.9 | PPC32 | gcc 4.3.3 | For Kernel Modules: ppc604Vx6.9gcc4.3.3 For Real Time Processes: ppc604Vx6.9gcc4.3.3_rtp |
VxWorks Cert 6.6.4.1 | PPC32 e500v2 | gcc 4.1.2 | ppce500v2VxCert6.6.4.1gcc4.1.2 |
VxWorks Build Instructions
RTI Architecture | Required Compiler Flags |
---|---|
pentiumVx6.9gcc4.3.3 (Release) | -march=pentium -m32 -fno-builtin -ansi - DCPU=PENTIUM -DTOOL_FAMILY=gnu -DTOOL=gnu -DRTI_GCC4 -D_WRS_KERNEL -D__PROTOTYPE_5_0 -DVXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=9 -O -Wall -Wno-unknown-pragmas -DRTI_VXWORKS -DRTS_VXWORKS -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=PENTIUM -DRTI_ENDIAN_LITTLE -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 -DNDEBUG |
pentiumVx6.9gcc4.3.3 (Debug) | -march=pentium -m32 -fno-builtin -ansi -DCPU=PENTIUM -DTOOL_FAMILY=gnu -DTOOL=gnu -DRTI_GCC4 -D_WRS_KERNEL -D__PROTOTYPE_5_0 -g -DRTI_PRECONDITION_TEST -DVXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=9 -Wall -Wno-unknown-pragmas -DRTI_VXWORKS -DRTS_VXWORKS -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=PENTIUM -DRTI_ENDIAN_LITTLE -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 |
pentiumVx6.9gcc4.3.3_rtp (Release) | -march=pentium -m32 -ansi -DCPU=PENTIUM -DTOOL_FAMILY=gnu -DTOOL=gnu -DRTI_GCC4 -mrtp -D__PROTOTYPE_5_0 -O -Wall -Wno-unknown-pragmas -DRTI_VXWORKS -DRTS_VXWORKS -DRTI_RTP -DVXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=9 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=PENTIUM -DRTI_ENDIAN_LITTLE -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 -DNDEBUG |
pentiumVx6.9gcc4.3.3_rtp (Debug) | -march=pentium -m32 -ansi -DCPU=PENTIUM -DTOOL_FAMILY=gnu -DTOOL=gnu -DRTI_GCC4 -mrtp -fPIC -D__PROTOTYPE_5_0 -g -DRTI_PRECONDITION_TEST -Wall -Wno-unknown-pragmas -DRTI_VXWORKS -DRTS_VXWORKS -DRTI_RTP -DVXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=9 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=PENTIUM -DRTI_ENDIAN_LITTLE -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 |
ppc604Vx6.9gcc4.3.3 (Release) | -m32 -mstrict-align -ansi -fno-builtin -mlongcall -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -DRTI_USE_MUNCH -DRTI_GCC4 -D_WRS_KERNEL -D__PROTOTYPE_5_0 -DVXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=9 -O2 -fno-strict-aliasing -Wall -Wno-unknown-pragmas -DRTI_VXWORKS -DRTS_VXWORKS -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=PPC32 -DRTI_ENDIAN_BIG -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 -DNDEBUG |
ppc604Vx6.9gcc4.3.3 (Debug) | -m32 -mstrict-align -ansi -fno-builtin -mlongcall -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -DRTI_USE_MUNCH -DRTI_GCC4 -D_WRS_KERNEL -D__PROTOTYPE_5_0 -g -DRTI_PRECONDITION_TEST -DVXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=9 -Wall -Wno-unknown-pragmas -DRTI_VXWORKS -DRTS_VXWORKS -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=PPC32 -DRTI_ENDIAN_BIG -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 |
ppc604Vx6.9gcc4.3.3_rtp (Release) | -mhard-float -mstrict-align -m32 -mregnames -ansi -mlongcall -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -DRTI_USE_MUNCH -DRTI_GCC4 -DRTI_RTP -mrtp -D__PROTOTYPE_5_0 -O2 -fno-strict-aliasing -Wall -Wno-unknown-pragmas -DRTI_VXWORKS -DRTS_VXWORKS -DRTI_RTP -DVXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=9 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=PPC32 -DRTI_ENDIAN_BIG -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 -DNDEBUG |
ppc604Vx6.9gcc4.3.3_rtp (Debug) | -mhard-float -mstrict-align -m32 -mregnames -ansi -mlongcall -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -DRTI_USE_MUNCH -DRTI_GCC4 -DRTI_RTP -mrtp -fPIC -D__PROTOTYPE_5_0 -g -DRTI_PRECONDITION_TEST -Wall -Wno-unknown-pragmas -DRTI_VXWORKS -DRTS_VXWORKS -DRTI_RTP -DVXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=9 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=PPC32 -DRTI_ENDIAN_BIG -DRTI_THREADS -DRTI_MULTICAST -DRTI_SHARED_MEMORY -DRTI_IPV6 |
ppce500v2VxCert6.6.4.1gcc4.1.2 (Release) | -m32 -mstrict-align -mcpu=8548 -mfloat-gprs=double -mspe=yes -mabi=spe -ansi -fno-exceptions -fno-builtin -Wall -msdata=eabi -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=e500v2gnu -VXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=6 -DCERT -DRTI_CERT -DRTI_ENDIAN_BIG -DRTI_VXWORKS -DOSAPI_PLATFORM=4 -O -DNDEBUG |
ppce500v2VxCert6.6.4.1gcc4.1.2 (Debug) | -m32 -mstrict-align -mcpu=8548 -mfloat-gprs=double -mspe=yes -mabi=spe -ansi -fno-exceptions -fno-builtin -Wall -msdata=eabi -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=e500v2gnu -VXWORKS_MAJOR_VERSION=6 -DVXWORKS_MINOR_VERSION=6 -DCERT -DRTI_CERT -DRTI_ENDIAN_BIG -DRTI_VXWORKS -DOSAPI_PLATFORM=4 -O -g |
Operating System | CPU | Compiler | RTI Architecture Abbreviation |
---|---|---|---|
Android NDK, Revision 8d | ARMv7 | gcc 4.7 | armv7leAndroidR8Dgcc4.7 |
Android Build Instructions
RTI Architecture | Required Compiler Flags |
---|---|
armv7leAndroidR8Dgcc4.7 | -march=armv7-a -mfpu=neon -msoft-float -mlong-calls |
To be able to use the RTI Connext Micro libraries, the Android manifest should have the following permissions:
RTI Connext Micro has been built for iOS 8.2 and tested on and iPad target with A8 and iOS 8.1. Note that the bundles only contain static libraries.
Operating System | CPU | Compiler | RTI Architecture Abbreviation |
---|---|---|---|
iOS 8.2 | armv7 | Xcode 6.2/clang 6.0 | armv7iOS8clang6.2 |
iOS 8.2 | armv7s | Xcode 6.2/clang 6.0 | armv7siOS8clang6.2 |
iOS 8.2 | arm64 | Xcode 6.2/clang 6.0 | arm64iOS8clang6.2 |
iOS Build Instructions
RTI Architecture | Required Compiler Flags | Required System Libraries |
---|---|---|
armv7iOS8clang6.2 | -DRTI_IOS -arch armv7 -Wno-trigraphs -fpascal-strings -fasm-blocks -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wpointer-sign -Wno-newline-eof | -isysroot /iPhoneOS.platform/Developer/SDKs/iPhoneOS8.2.sdk |
armv7siOS8clang6.2 | -DRTI_IOS -arch armv7s -Wno-trigraphs -fpascal-strings -fasm-blocks -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wpointer-sign -Wno-newline-eof | -isysroot /iPhoneOS.platform/Developer/SDKs/iPhoneOS8.2.sdk |
arm64iOS8clang6.2 | -DRTI_IOS -arch arm64 -Wno-trigraphs -fpascal-strings -fasm-blocks -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wpointer-sign -Wno-newline-eof | -isysroot /iPhoneOS.platform/Developer/SDKs/iPhoneOS8.2.sdk |
RTI Connext Micro is available as a buildable source. You can build the source yourself, in your own development environment, and port RTI Connext Micro to your own platforms. With the open-source build tool cmake, you can generate native makefiles and workspaces for any of the cmake-supported platforms. For building embedded platforms such as VxWorks, consult cmake documentation or contact RTI Support to create the necessary cross-compilation toolchain files.
RTI Connext Micro is known to run on the following 32 bit CPU's:
RTI Connext Micro is known to run on the following OSs:
RTI Connext Micro is known to run with the following network stacks:
Buildable source is available in a separate downloadable bundle. Contact sales to request access. @rti .com
RTI Connext Micro is the foundation for RTI Connext DDS Cert, a certifiable configuration for safety-critical systems.
A further subset of RTI Connext Micro's APIs constitute the available APIs for RTI Connext DDS Cert. Of note, APIs that reclaim allocated memory, such as delete or finalize APIs, are unecessary and thus unavailable in Cert.
RTI Connext Micro implements the Object Management Group (OMG) Data Distribution Service (DDS) standard (version 1.2), and the Real-Time Publish-Subscribe (RTPS) wire interoperabilty protocol standard (version 2.1).
RTI Connext Micro supports a subset of the submessages defined by the Real-Time Publish-Subscribe (RTPS) interoperability specification. Data fragment submessages are not supported. The messages are compatible with Wireshark and its RTPS packet dissector.
Interoperability between RTI Connext Micro and both RTI Data Distribution Service 4.5d and RTI Connext 5.1.0 has been verified between example HelloWorld applications and with the rtiddsspy utility.
Compatibility with the following RTI tools and services has not been verified: Routing Service, Federation Service, Analyzer, Spreadsheet Add-In, Real-Time Connect, and Recording Service. Nevertheless, they may currently be compatible, assuming that the RTI Connext Micro application is using the dynamic endpoint discovery plugin. Monitor and Limited Bandwidth Plug-Ins are not compatible with RTI Connext Micro.