The vast majority of today’s desktop applications are designed for users to perform certain operations: document creation, calculations, data analysis, and so on.
Often, these applications have built-in macro-language to create code that uses these services, for example in the case of repetitive operations sequences. In other words, applications of this kind are programmable.
The server automation can run in the client’s address space. In this case, it is called an internal (in-process) server and is implemented as a library (DLL).
In addition, the automation server can run in its own address space, different from the address space of the controller. In this case, it’s called an out-of-process server. It is about servers of this type that will be discussed.
If the automation server is performed on a computer other than the computer where the controller is running, it is called remote. Note that many local automation servers can be run remotely. How did it reach FANG?
FANG stands for the largest tech companies in the US, which are:
F – Facebook
A – Amazon
N – Netflix
G – Google
They have already managed to become one of the most prominent companies throughout the United States. Server automation is especially important for them because when we talk about automatizing the processes. Such large companies are the ones that need them the most.
It was the last decade that really determined server automation for FANG. Developers have been involved to introduce the system, which works great.
It should be mentioned that smaller non-tech companies are starting to use it as well, especially FX brokers that are now allowing the server automation to provide information to you the customer on which MT5 indicators you need for the perfect experience.
Fintech has slowly become a field where such technologies are really important and more and more companies are looking forward to this trend.
What is the concept behind server automation?
If the client and server are in different address spaces (whether on the same computer or on different ones), the client must refer to the methods of objects in different address spaces to manage the server. LRPC (Local Remote Procedure Calls) technology is used for this purpose.
As mentioned earlier, each SOM server (which is the server automation) and each class of SOM objects has a unique 128-bit GUID (Global Unique Identifier).
When you go to SOM-object classes, it is sometimes called CLSID (Class ID). When you create SOM servers (including automation servers), you can generate IT automatically with the help of the GUID and CLSID, although you can generate them if necessary by calling the standard Windows API coCreateGUID.
Information about all SOM servers and SOM-object classes is stored in the system registry, which allows the client “not to know” in which directory (or on which computer of the local network) is SOM server, and receive information about it from the registry.
In general, the SOM server is an application that creates a SOM object and makes it available to other programs. The automation server provides its customers with a special type object for access – dispatch object.
At the same time, in the address space of the application controller that controls the server, there is an optional variable containing the interface IDispatch, giving it access to this object on the SOM server.
The controller can control the server by initiating its execution, creating documents and other objects. It can also change the size, position, and visibility of the server window. The controller also operates by copying server objects into the clipboard, adding data to the document created by the server, and so on.
The availability of some kinds of server management capabilities depends on what objects, properties and methods of the server are provided by the developers of the server to the developers to automate with external applications.