.. _section-introduction: Introduction ============ What is |rti_me_h|? ------------------- |rti_me| 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. |me| uses the publish-subscribe communications model to make data distribution efficient and robust. |me| simplifies application development, deployment and maintenance and provides fast, predictable distribution of time-critical data over a variety of transport networks. With |me|, you can: - Perform complex one-to-many and many-to-many network communications. - Customize application operation to meet various real-time, reliability, and quality-of-service goals. - Provide application-transparent fault tolerance and application robustness. - Use a variety of transports. |me| 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 |me|, 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. |me| is highly configurable so programmers can adapt it to meet the application’s specific communication requirements. |rti_me_cert_h| versus |rti_me_h| ................................. |rti_me| and |rti_me_cert| originate from the same source base, but as of |me| 2.4.6 the two are maintained as two independent releases. The latest release with certification evidence is |me_cert| 2.4.5. However, features that exist in |me| and |me_cert| behave identically and the source code is written following identical guidelines. |me_cert| only supports a subset of the features found in |me|. In the API reference manuals, APIs that are supported by |me_cert| are clearly marked. Optional Certification Package .............................. An optional Certification Package is available for systems that require certification to DO-178C or other safety standards. This package includes the artifacts required by a certification authority. The Certification Package is licensed separately from Connext DDS Cert. To use an existing Certification Package, an application must be linked against the same libraries included in the Certification Package. Contact RTI Support, support@rti.com, for details. Publish-Subscribe Middleware ............................ |me| 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. Supported DDS Features ---------------------- |me| 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 the |api_ref_c_from_intro|_ and |api_ref_cpp_from_intro|_. DDS Entity Support .................. |me| supports the following DDS entities. Please refer to the documentation for details. * `DomainParticipantFactory <../api_c/html/group__DDSDomainParticipantFactoryModule.html>`_ * `DomainParticipant <../api_c/html/group__DDSDomainParticipantModule.html>`_ * `Topic <../api_c/html//group__DDSTopicEntityModule.html>`_ * `Publisher <../api_c/html/group__DDSPublisherModule.html>`_ * `Subscriber <../api_c/html/group__DDSSubscriberModule.html>`_ * `DataWriter <../api_c/html/group__DDSWriterModule.html>`_ * `DataReader <../api_c/html/group__DDSReaderModule.html>`_ DDS QoS Policy Support ...................... |me| supports the following DDS Qos Policies. Please refer to the documentation for details. * `DDS_DataReaderProtocolQosPolicy <../api_c/html/structDDS__DataReaderProtocolQosPolicy.html>`_ * `DDS_DataReaderResourceLimitsQosPolicy <../api_c/html/structDDS__DataReaderResourceLimitsQosPolicy.html>`_ * `DDS_DataWriterProtocolQosPolicy <../api_c/html/structDDS__DataWriterProtocolQosPolicy.html>`_ * `DDS_DataWriterResourceLimitsQosPolicy <../api_c/html/structDDS__DataWriterResourceLimitsQosPolicy.html>`_ * `DDS_DeadlineQosPolicy <../api_c/html/structDDS__DeadlineQosPolicy.html>`_ * `DDS_DiscoveryQosPolicy <../api_c/html/structDDS__DiscoveryQosPolicy.html>`_ * `DDS_DomainParticipantResourceLimitsQosPolicy <../api_c/html/structDDS__DomainParticipantResourceLimitsQosPolicy.html>`_ * `DDS_DurabilityQosPolicy <../api_c/html/structDDS__DurabilityQosPolicy.html>`_ * `DDS_DestinationOrderQosPolicy <../api_c/html/structDDS__DestinationOrderQosPolicy.html>`_ * `DDS_EntityFactoryQosPolicy <../api_c/html/structDDS__EntityFactoryQosPolicy.html>`_ * `DDS_HistoryQosPolicy <../api_c/html/structDDS__HistoryQosPolicy.html>`_ * `DDS_LivelinessQosPolicy <../api_c/html/structDDS__LivelinessQosPolicy.html>`_ * `DDS_OwnershipQosPolicy <../api_c/html/structDDS__OwnershipQosPolicy.html>`_ * `DDS_OwnershipStrengthQosPolicy <../api_c/html/structDDS__OwnershipStrengthQosPolicy.html>`_ * `DDS_ReliabilityQosPolicy <../api_c/html/structDDS__ReliabilityQosPolicy.html>`_ * `DDS_ResourceLimitsQosPolicy <../api_c/html/structDDS__ResourceLimitsQosPolicy.html>`_ * `DDS_RtpsReliableWriterProtocol_t <../api_c/html/structDDS__RtpsReliableWriterProtocol__t.html>`_ * `DDS_SystemResourceLimitsQosPolicy <../api_c/html/structDDS__SystemResourceLimitsQosPolicy.html>`_ * `DDS_TransportQosPolicy <../api_c/html/structDDS__TransportQosPolicy.html>`_ * `DDS_UserTrafficQosPolicy <../api_c/html/structDDS__UserTrafficQosPolicy.html>`_ * `DDS_WireProtocolQosPolicy <../api_c/html/structDDS__WireProtocolQosPolicy.html>`_ RTI Connext DDS Documentation ----------------------------- Throughout this document, we may suggest reading sections in other *RTI Connext DDS* documents. These documents are in your *RTI Connext DDS* installation directory under **rti-connext-dds-/doc/manuals**. A quick way to find them is from *RTI Launcher's* Help panel, select "Browse Connext Documentation". Since installation directories vary per user, links are not provided to these documents on your local machine. However, we do provide links to documents on the |rti_community_documentation|_ site for users with Internet access. New users can start by reading Parts 1 (Introduction) and 2 (Core Concepts) in the |rti_core_um|. These sections teach basic DDS concepts applicable to all RTI middleware, including |rti_core_pro| and |rti_me|. You can open the |rti_core_um| from *RTI Launcher's* Help panel. The |rti_community|_ provides many resources for users of DDS and the RTI Connext family of products. OMG DDS Specification --------------------- For the original DDS reference, the OMG DDS specification can be found in the `OMG Specifications `_ under "Data Distribution Service". Other Products -------------- |rti_me| is one of several products in the *RTI Connext* family of products: |rti_me_cert| is a subset of |rti_me|. |me_cert| does not include the following features because Certification Evidence is not yet available for them. If you require Certification Evidence for any of these features, please contact RTI. - C++ language API. - Multi-platform support. - Dynamic endpoint discovery. - delete() APIs (e.g. delete_datareader()) |rti_core_pro| addresses the sophisticated databus 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. |core_pro| is the dominant industry implementation with benefits including: - OMG-compliant DDS API - Advanced features to address complex systems - Advanced Quality of Service (QoS) support - Comprehensive platform and network transport support - Seamless interoperability with \rtime |rti_core_pro| includes rich integration capabilities: - Data transformation - Integration support for standards including JMS, SQL databases, file, socket, Excel, OPC, STANAG, LabVIEW, Web Services and more - Ability for users to create custom integration adapters - Optional integration with Oracle, MySQL and other relational databases - Tools for visualizing, debugging and managing all systems in real-time |rti_core_pro| also includes a rich set of tools to accelerate debugging and testing while easing management of deployed systems. These components include: - Administration Console - Distributed Logger - Monitor - Monitoring Library - Recording Service