Added the ability for plugins to interact over the network

Tags:

Starting from V7Preview5, using the method CallExternalOperation, a plugin can invoke an operation implemented by another plugin on a different terminal.

Previously, interaction between plugins was only available within a single terminal (details). Now, the CallExternalOperation method has an optional terminal argument that allows specifying which terminal the operation should be executed on. If this argument is left null, the operation will be executed on the local terminal. In any case, the terminal where the operation is expected to be executed must have a plugin that registered this external operation using RegisterExternalOperation.

The ability to remotely execute external operations will simplify the development of plugins that require data exchange between centroids installed on different terminals. Previously, such plugins had to find each other on the network, execute and process network requests, and accordingly, permissions for opening/listening to ports had to be configured during installation, etc. Additionally, auxiliary plugins that provide other plugins access to data from external systems now only need to be installed once on the main terminal.

To allow specifying the terminal on which the operation should be executed, a reference to terminals has been added to the API. Accompanying changes: