RE.VE.N.GE.: REliable and VErsatile News delivery support for aGEncies
Some distributed applications need strong guarantees on their availability and quality of service. In order to ensure the service interoperability between content servers and client devices across heterogeneous platforms, distributed middleware approaches offer promising concepts.
The purpose of this project is to develop a middleware to distribute news between heterogeneous clients guaranteeing quality of service, availability and reliability.
Project description
Project RE.VE.N.GE. has been developed using RTI DDS, a publish subscribe middleware. The publish-subscribe approach to distributed communications is a generic mechanism that can be employed by many different types of applications. The DCPS (Data Centric Publish Subscribe) model extends the publish-subscribe model to address the specific needs of real-time, data-critical applications. It provides several mechanisms that allow application developers to control how communications works and how the middleware handles resource limitations and error conditions.
The system architecture is based on three main roles:
- Heterogeneous news sources (entities that send news after joining the system)
- Heterogeneous news sinks (entities that receive news)
- Dispatch system: entity that manages news, receiving them from many different sources and delivering them to sinks. During the execution the delivering system also controls the news rate and the quality of service that was decided when the source/sink had joined the system
To support multi-domain deployment are provided additional optional entity called relay. Relay-based DDS infrastructure allows to overcome local domain limitations and enables scalable Internet-wide data dissemination.
The replication system is based on a virtual synchrony execution model. This computational model is used when a group of processes cooperate to replicate in-memory data or to coordinate actions. The model defines a new distributed entity called a process group. A process can join a group, but is also provided with a checkpoint containing the current state of the data replicated by group members (which in our case are sinks and sources that have already joined the system and the news that are currently being dispatched ). The main advantage of this approach is that if a process fails for any reason, at any time, it will be replaced by another process without losing any data.