SDDL Architecture

The Scalable Data Distribution Layer (SDDL) is ContextNet's communication layer that connects stationary DDS nodes in a wired “core” network to mobile nodes (MN) with an IP- based wireless data connection. Some of the stationary nodes are information and context data processing nodes, others are gateways for communication with the mobile nodes, and yet others are monitoring and control nodes operated by humans. SDDL employs two communication protocols: DDS’s Real-Time Publish-Subscribe RTPS Wire Protocol for the wired communication within the SDDL core network, and the Mobile Reliable UDP protocol (MR-UDP) for the inbound and outbound communication between the core network and the mobile nodes.

In SDDL's core network, there are four types of nodes with distinguished roles:

  1. A control node (a.k.a. Controller) is capable of displaying all the mobile node’s current position (or any other context information), and may be used to manage groups, as well as to send unicast, broadcast, or groupcast message to the mobile nodes (MN).
  2. The Gateway node (GW) defines a unique Point of Attachment (PoA), for connections with the mobile nodes. The Gateway is thus responsible for managing a separate MR-UDP connection with each of these nodes, forwarding any application-specific message or context information into the core network, and in the opposite direction, converting DDS messages to MR-UDP messages and delivering them reliably to the corresponding mobile node(s). As a handler of mobile connections, the Gateway is also responsible for notifying other SDDL core network nodes when a new MN becomes available, or when some MNs disconnect from it.
  3. A GroupDefiner node is responsible for evaluating group memberships of all mobile nodes. To do so, they subscribe to the DDS topic where any message or context update is disseminated, e.g. the ones sent by mobiles and forwarded by the corresponding Gateway, and map each node to one or more groups, according to some static attribute of the MN some application-specific group membership processing logic.
  4. The PoA-Manager is responsible for two things: to periodically distribute a list of Gateway addresses (a.k.a. Points of Attachments - PoA) to the MNs, and to eventually request some MNs to switch to a new Gateway/PoA. The PoA-List is always a subset of all available Gateways in SDDL, and the order in the list is relevant, i.e. the first element points to the preferred Gateway/PoA, and so forth. By having an updated PoA-List, a MN may always switch its Gateway if it detects a weak connection or a disconnection with the current Gateway.

On each mobile client, the ClientLib defines the basic API for implementing the client application. It hides all MR-UDP protocol details and handles several connectivity issues with the Gateways, such as reconnections, handovers. The ClientLib uses the MR-UDP to implement reliable and in-order delivery of message transfer to and from the SDDL core. All communication is asynchronous, i.e. the application is informed in a Listener when new messages have been received, or when any information could not be sent. For all communication, CNCLib uses a single abstract class Message that must be implemented by the application developer. For the Android framework, we make available an Android Service that implements the basic ClientLib functionality, and that may be used by other Android App components.

Figure 1 illustrates the SDDL architecture with its core network and mobile tiers, and the corresponding protocols and software layers.

  • architecture.txt
  • Last modified: 2018/06/04 19:13
  • by felipe