Welcome to Conductor, Link Labs' cloud-based data-services platform. Conductor exposes RESTful application program interfaces (APIs), which give account holders a simple interface to access their Symphony Link networks. The APIs make it easy to build web-based applications to monitor and control machine-to-machine (M2M) and internet-of-things (IoT) networks.
What is Conductor?
Conductor is a suite of cloud-based services with the purposes of managing the configuration of and data used by Symphony Link networks. The Conductor system is currently deployed inside Amazon Web Services ("the cloud"), though it could in principle be deployed in any server farm. The system has been developed using a multitude of tools, including:
- Spring Security
- Spring MVC
- Swagger (API documentation @ http://docs.conductor.link-labs.com)
Conductor contains several components, depicted in the following picture.
Components of Conductor
From the user's perspective, the most important component of Conductor is the ClientEdge. ClientEdge exposes an API to read data collected by a Symphony Link network and send data to Symphony Link modules. The components of Conductor perform the following jobs:
- Access -- Manages the permissions and accounts of users of Symphony Link networks.
- NetworkAsset -- Manages the groupings of entities (gateways, repeaters, modules) within Symphony Link networks. For example, NetworkAsset keeps track of which gateways are assigned to participate in a given Symphony Link network, and which modules can communicate with those gateways.
- NetworkEdge -- The entry point from a gateway to Conductor. NetworkEdge manages registration of new gateways and modules, manages uplink data flowing up from gateways, and manages downlink data flowing down to modules.
- DataBroker -- Manages dataflows within Conductor, and manages long-term storage and short-term caching of data.
- DataConsumer -- Manages data subscriptions.
- ClientEdge -- Provides and API to interact with Symphony Link networks. ClientEdge is used to query data collected by Symphony Link networks, create/issue commands to specific modules, and request subscriptions to monitor real-time dataflow.
How does Conductor talk to a Gateway?
The connection between a Symphony Link gateway and Conductor is made between the Gateway Management Applications (which runs locally on the gateway) and the NetworkEdge (which runs in Conductor). The gateway uses the NetworkEdge RESTful API to send uplink data and to poll for downlink data.
Dataflow inside Conductor
The dataflow within Conductor is pictured above. Users can implement the ClientEdge API to query/send data or to establish a subscription for "real-time" data exchange. Conductor uses Apache Kafka to broker publish-subscribe messaging.