The Internet of Things (IoT) is defined as uniquely identifiable objects and their virtual representations in a connected, internet-like structure. The purpose for the existence of IoT is to ultimately have a fully connected world in which all objects are interoperable with one another regardless of manufacturer, specific device characteristics or functionality. This interoperability enables each object to exchange information amongst, affect the state of and augment behavior of itself or other objects in the ecosystem based on a certain set of criteria and configuration parameters.
As the amount of connected objects increases exponentially, so does the variation in their communication methods, configuration parameters and security implementations causing the inability of various objects to be compatible with one another and creating siloed networks of like objects. For a truly connected world, it is important to break down the barriers that inhibit unconstrained interoperability.
The objective of the Distributed Services Architecture is to unify the disparate devices, services and applications into a structured and adaptable real-time data model. The premise of the open-source DSA initiative is to build a community of manufacturers, makers and solution providers that will contribute to an ever-expanding library of Distributed Service Links which allow protocol translation and data integration to and from 3rd party data-sources.
Benefits of DSA
DSA allows for purpose-built products and services (i.e. DSLinks) to interact with one another in a decentralized manner. This architecture enables a network architect to distribute functionality between discrete computing resources. A network topology consisting of multiple DSLinks running on edge devices connected to a tiered hierarchy of brokers allows the system as a whole to be scalable, resilient to failure and take advantage of all computing resources available to it from the edge, the datacenter, the cloud and everything in between.
All DSA modules are lightweight, making it possible to couple the DSBroker, multiple DSLinks and client web-applications on the same low powered device such as a Raspberry PI, Beaglebone black or any other similar computing platform. The small footprint makes it possible to ship a full-stack appliance to customers, while the capability of DSBrokers connecting to other DSBrokers enables the interconnection of appliances with cloud services. This architecture creates multiple layers of tenancy on the network for different types of application enablement use-cases.
The DSA specification calls for upstream connections to be created by the initiating device; thus the connections are made in an outbound manner enabling full-duplex communication transparently traversing firewalls and proxies. All DSA components utilize the nodeAPI for the communication protocol and websockets with http fallback for transport. This HTTP standard compliant manner of communication benefits the users and network administrators by being compatible with all network routing, load balancing and proxying techniques existing in the market.
A properly provisioned DSA system allows to easily create value added applications on top of an easily configured directory of streaming data from devices and services.
Core Components of DSA
DSA has three core components; DSBroker, DSLink and nodeAPI. The DSBroker acts as a router for incoming and outgoing streams and the DSLinks that are connected to the DSBroker act as originators of the data streams. The Architecture allows for DSBrokers to connect to other DSBrokers to form a scalable and distributed event stream processing network that mimics neural connections in the human brain. The communication protocol between DSA nodes is facilitated by the nodeAPI which ensures node compatibility and bi-directional control and monitoring ability between connected components.
The DSA GitHub repositories contain various implementations of DSBroker and DSLink specifications in multiple programming languages ensuring simple integration of DSA capability into new and existing products regardless of any specific computing platform and/or programming language.
The DSA mission is to democratize data and our community strives to provide royalty free and open-source implementations of cross-industry protocols and application platforms. DSA community members provide open-source, freeware and commercial DSLinks to ensure that there is way to interconnect otherwise incompatible systems with each other and build value-added applications on top of them.