Distributed Architecture Concepts

All Iotellect Servers have a common model of their internal data: the context tree. Each context in this tree is responsible for managing a certain device or system resource, be it an alert or a report.

distributed_architecture_concepts

In the distributed architecture, each server can act as a provider or consumer of data to/from other servers:

  • Consumer gets a certain sub-tree of other server's context tree and connects to its own context tree (i.e. imports contexts from other servers)

  • Provider allows other servers to use its contexts (i.e. exports its contexts to other servers)

The consumer's context that acts as a base for attaching the provider's context sub-tree is called Mount Point. Each provider may have multiple mount points, i.e., connect multiple sub-trees to the consumer server's context tree.

Once a consumer server has imported a context sub-tree from another server, the server's own contexts may interact with the imported contexts. Here are several examples:

  • If server B imports a device context from server A, it may declare an alert that checks certain metric of this device and fire an alert if threshold is exceeded. In this case, the physical device will be polled by server A, but the alert will be processed by server B.

  • If server B imports a user account context from server A, the system operators may fully control all devices and resources of this user by connecting to server B. However, all modifications will be redirected to server A and saved in its database. This may be useful if operators have no direct access to the server A, e.g. if it's installed in the private LAN.

  • Finally, server B may import the whole context tree from server A. In this case, any resource from server B may access all resources of server A, allowing any type of interaction.

Communications Between Providers and Consumers

All communications between consumer and provider servers are performed via IP networks using SSL-secured connections. The communications are truly bidirectional:

  • Consumers can connect to providers and accept incoming provider connections.

  • Similarly, providers can connect to consumers themselves and accept incoming consumer connections.

The two-way communications eliminate any troubles that may be caused by different network configurations and firewalls.

Any Iotellect Server can be both a consumer and a provider simultaneously. Moreover, it can have multiple links, i.e., import contexts from several servers and export its own contexts to several other (or even the same) servers.

Was this page helpful?