|
Distributed Operations |
Top Previous Next |
|
AggreGate is one of a few device monitoring/management systems in the world that supports true distributed architecture. This architecture is designed to assure unlimited scalability by balancing all operations between AggreGate Server servers subdivided in multiple layers. Such common distributed architecture is expected to serve as a base for any modern and prospective management software. Unlike nodes of AggreGate failover cluster, servers participating the distributed architecture are completely independent. Each server has its own database, local user accounts and associated permissions, etc. Purpose of Distributed Operations The primary objectives of distributed architecture are:
Example: Smart City Management Here is an example of multi-tier AggreGate-based architecture for smart city management/monitoring:
Any particular AggreGate server in the above schema may, indeed, be a multi-node failover cluster. Distributed Architecture Concepts All AggreGate Servers have common model of their internal data: the context tree. Each context in this tree is responsible for managing certain device or system resource, be it alert or report. In the distributed architecture, each server can act as provider or consumer of data to/from other servers:
Once a consumer server has imported a context sub-tree from another server, the server's own contexts may interact with imported contexts. Here are several examples:
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:
The two-way communications eliminate any troubles may be caused by different network configurations and firewalls. Any AggreGate Server can be consumer and 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. Distributed Architecture Plugin The consumer/provider connectivity of AggreGate Server is enabled by Distributed Architecture plugin. The global configuration context of this plugin provides access to: Permissions In Distributed Environment Once connection between consumer server (CS) and provider server (PS) is established, the CS authenticates on the PS using certain PS user's credentials. Thus, CS gets the permissions of this user at the PS. All operations on the PS that are initiated by the CS (or human operators of the CS) are performed according these permissions. Simply speaking, at the side of provider the consumer is nothing more than a Client that has connected and logged in. However, if the operators of CS want to access contexts imported from PS, they must connect to the CS and authenticate as a certain CS user first. Let's resume the above. Imagine that server B (the consumer) imports context "context123" from server A (the provider). The local path of this context at server B is "mount.context123" (according the provider configuration). The server B authenticates at server A as user "userA" (defined on server A). Human operator connects to server B and wants to perform an operation with imported context. He authenticates at server B as user "userB" (or course, defined on server B). Here are the required permissions:
|