Representational State Transfer (REST) has emerged as the predominant Web API design model. REST is an architectural style rather than a standard. REST-style architectures conventionally consist of clients and servers. Clients initiate requests to servers; servers process requests and return appropriate responses. Requests and responses are built around the transfer of representations of resources. A resource can be essentially any coherent and meaningful concept that may be addressed. A representation of a resource is typically a document that captures the current or intended state of a resource.
REST provides a simple client-server (request/reply) style of communications that is useful for systems that need to communicate over the internet, but it cannot provide asynchronous loosely-coupled publish-subscribe message exchanges. The stateless model supported by HTTP can simplify server design, however the disadvantage of statelessness is that it may be necessary to include additional information in every request and this extra information will need to be interpreted by the server. This can be very inefficient in terms of request processing time and resources consumed (e.g. number of TCP/IP connections).
The Object Management Group's (OMG) Data Distribution Service for Real-Time Systems (DDS) is an open middleware standard that enables scalable, real-time, dependable, high performance and interoperable data exchanges between publishers and subscribers. It is based on a proven data-centric paradigm that emerged from Defense and Aerospace but which is now being rapidly adopted in sectors as diverse as Power Generation, large scale SCADA, Air Traffic Control and Management, Smart Cities, Smart Grids, Vehicles, Medical Devices, Modeling and Simulation, and Financial Trading.
DDS makes data a first class citizen in the system thanks to its extensive support for keys, lifecycle management etc. DDS is brokerless and provides the abstraction of a virtual Global Data Space, a ubiquitous, universal and fully distributed data cache. DDS also provides a standard API as well as an interoperable wire protocol.
Choosing REST for systems where a device needs to fan-out messages to perhaps thousands of other networked devices can result in poor performance and much complexity. Only DDS can provide the real-time, many-to-many, managed connectivity required by high-performance device-to-device applications.
A key component of the Vortex DDS product suite is Vortex OpenSplice, the leading (open source and commercial) implementation of the DDS standard.