===== Data-Centric Publish-Subscribe (DCPS) ===== [[dido:public:ra:xapend:xapend.a_glossary:start| Return to Glossary ]] **Data-Centric Publish-Subscribe (DCPS)** is the portion of the [[dido:public:ra:xapend:xapend.b_stds:tech:omg:dds | Data Distribution Service (DDS) Specification]] that addresses [[dido:public:ra:xapend:xapend.a_glossary:d:data_centric]] publish-subscribe communications. The [[dido:public:ra:xapend:xapend.a_glossary:d:dds]] standard defines a language-independent model of publish-subscribe communications that has standardized mappings into various implementation languages. Connext DDS offers C, Traditional C++, Modern C++, C++/CLI, C#, and Java versions of the DCPS [[dido:public:ra:xapend:xapend.a_glossary:a:api |API]]. The [[dido:public:ra:xapend:xapend.a_glossary:p:publish-subscribe|publish-subscribe]] approach to distributed communications is a generic mechanism that can be employed by many different types of [[dido:public:ra:xapend:xapend.a_glossary:a:application|applications]]. The DCPS model described in this chapter extends the publish-subscribe model to address the specific needs of real-time, data-critical applications. As you’ll see, it provides several mechanisms that allow application developers to control how communications works and how the [[dido:public:ra:xapend:xapend.a_glossary:m:midware|middleware]] handles resource limitations and error conditions. The “data-centric” portion of the term DCPS describes the fundamental concept supported by the design of the API. In data-centric communications, the focus is on the distribution of data between communicating applications. A data-centric system is comprised of data publishers and data subscribers. The communications are based on passing data of known types in named streams from publishers to subscribers. In contrast, in [[dido:public:ra:xapend:xapend.a_glossary:o:object|object]]-centric communications the fundamental concept is the [[dido:public:ra:xapend:xapend.a_glossary:i:interface|interface]] between the applications. An interface is comprised of a set of methods of known types (number and types of method arguments). An object-centric system is comprised of interface servers and interface clients, and communications are based on clients invoking methods on named interfaces that are serviced by the corresponding [[dido:public:ra:xapend:xapend.a_glossary:s:server|server]]. Data and object-centric communications are complementary paradigms in a [[dido:public:ra:xapend:xapend.a_glossary:d:distsystem|distributed system]]. Applications may require both. However, real-time communications often fit a data-centric model more naturally. Source: [[https://community.rti.com/static/documentation/connext-dds/5.2.0/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/Content/UsersManual/What_is_DCPS_.htm | Data-Centric Publish-Subscribe (DCPS) ]]