Architecture

Horizontal Cluster comprises several sets of nodes (Iotellect servers), each serving a specific purpose in providing users with access to applications' resources.

The Cluster Coordinator nodes constitute the “brain” of Horizontal Cluster. It provides continuous monitoring of the nodes in the system, manages resource allocation, handles deployment of applications and is responsible for appropriately scaling the cluster.

The Primary Nodes are essentially running the applications, i.e. performing device communications, persistently storing their data, and ensuring the complete lifecycle of data management resources, such as alerts or models.

Application Server nodes maintain templates of resources that are applied to the primary nodes. Those templates are normally synchronized with app master copies published on a marketplace server or Git version control system.

Login Server nodes are servicing web users that work with applications spread across the cluster.

Finally, the cluster’s storage facility comprises a singular Cassandra database cluster that centrally stores configuration data, events, and binary blocks.

A glossary of some key terms used throughout:

  • Tenant: an organization or company that is developing, maintaining or operating applications deployed in a horizontal cluster.

  • Subtenant: a subsidiary, a division or a department of a tenant company.

  • Organizational Unit: a tenant or a subtenant. An organizational unit owns a specific set of cluster resources.

  • Realm: a set of primary nodes that operate resources used by a specific app (“app’s realm”) or a specific tenant (“tenant’s realm”).

  • Clustered Resources: Resources that have just a single instance located on a certain primary node, such as devices or model instances. For example, there’s obviously just one instance of every device account which matches to an actual hardware device or data source. This device account may migrate from one primary node to another, but it never gets replicated. Each clustered resource belongs to a single tenant. Clustered resources don’t normally have templates on applications servers, they are created by app users on demand during mundane operational activities.

  • Replicated Resources: Application’s resources that have a separate copy on each primary node that is a part of the application’s realm, such as alerts. Normally, those resources are based on a template stored on an application server and synchronized with this template. For example, an alert replicated from a template to every primary node within an app’s realm may check all devices that belong to this app. Replicated resources are commonly shared between different tenants of their app.

  • Session Resources: Resources that are used directly on an application server by connecting them to a user session’s virtual context tree of a login server, such as reports or dashboards. For example, a dashboard may just open in a browser as a part of app’s UI. As another example, a report running on an application server node can request and aggregate data from devices located on multiple primary nodes included into app’s realm.

Was this page helpful?