The Advanced Grid Environment (AGE) allows you to connect multiple nodes and to make them work together on different devices and on different locations behind NAT and firewalls. By design, the gird technology collects and manages heterogeneous resources and functionality within one infrastructure. In terms of BINETIXĀ® AGEā¢, these resources are provided by a special kind of software as a service (SaaS), called AGE Service. For better clarity in this documentation we shall refer to these SaaS solutions just as Services. Each node within BINETIXĀ® AGEā¢ has two dedicated controllers to secure the inter-connectivity and the Service processing: ❖Agent Controller - This is the "Brain" of the Node where all requests and decisions regarding the Services and their resources are processed. The Agents are responsible also to intelligently route the requests to particular Service published by any node on the Grid, and to calculate the best course of actions based on information exchanged between other Agents (from other Nodes) about the Services utilization, nodes connectivity, the overall resource availability in Grid, and more. Read more how to Request Tasks. ❖Service Controller - This is the "Heart" of the Node. The heart is responsible to keep alive the Services of the Node and to "pump" all requested incoming and outgoing data managed by the Agent of the Node from and to one or a set of Services. The AGE Service has a name and could be duplicated between the nodes within the Grid, however, only one instance of the Service can work per node. The Service controller is managing, publishing and executing standard Erlang functions that can be access and controlled locally or over the Grid by the Agent controllers. Each AGE Service has one Service controller and one Agent controller. Your application is interacting with the Grid via the Agent controller using different APIs: •age - General-purpose toolkit for controlling resources and functions published in the Grid, for invoking and handling Notifications, and more. •age_agent - Low-level API for requesting, responding and commencing tasks with Node's Agent. |
The current version of AGE (BINETIXĀ® AGEā¢ 2019) supports only native implementations on Erlang/OTP modules that work as Service. Actually, we are referring particularly to OTP behaviors gen_server and gen_supervisor. In our road-map we're planning to support JavaScript implementations but this functionality is still under development and therefore it is not included in the scope of the this documentation. In other words, you can create or exploit an existing Erlang/OTP server or supervisor and you can extend your implementations to work as AGE Service. Perhaps here is the right place to say, that you do not need a dedicated Erlang application to make your servers or supervisors to work - you already have the "Brain" and the "Heart" on your side to handle this job for you, remember? Just deploy your compiled modules as explained below. First steps to construct your next Service:
|
Example of a Service extended with Erlang/OTP gen_server behavior