FAQ: What is the difference between MainWin Professional and Enterprise runtime configurations?
What is the difference between MainWin Professional and Enterprise runtime configurations?
The answer to this question requires some background for context. The ArcGIS Engine Developers Guide states:
"ArcObjects is a set of platform-independent software components, written in C++, that provide services to support GIS applications on the desktop, in the form of thick and thin clients, and on the server.
As stated, the language chosen to develop ArcObjects was C++; in addition to this language, ArcObjects makes use of the Microsoft Component Object Model (COM). COM is often thought of as simply specifying how objects are implemented and built in memory and how these objects communicate with one another. While this is true, COM also provides a solid infrastructure at the operating system level to support any system built using COM. On Microsoft Windows operating systems, the COM infrastructure is built directly into the operating system. For operating systems other than Microsoft Windows, this infrastructure must be provided for the ArcObjects system to function."
Mainsoft's MainWin product provides the infrastructure necessary to utilize COM on a Unix platform. MainWin provides two runtime configurations that manage the MainWin System Core (MSC): Enterprise and Professional. The MSC is a collection of system services (daemons) that run separately from the MainWin-ported applications. The MSC services implement central Windows system functionality such as Registry access and COM/DCOM invocation (RPCSS).
The Enterprise runtime configuration is a fully-featured mode that provides the optimized configuration for enterprise applications requiring high scalability and robustness. This mode requires setting up the MSC as the superuser (root) on each UNIX host (machine). Under this mode, the MSC starts automatically at boot time, making itself readily available to any application that runs under this mode.
The Professional runtime configuration is a slightly limited, yet flexible mode that does not require setting up the MSC on each UNIX host. In this mode, the MSC is started automatically by the first application that runs, and shuts down after the last application exits.
While COM provides the interfaces between objects, Distributed COM (DCOM) allows them to run remotely. The two versions of MainWin, Professional and Enterprise, are different in how they permit the use of COM servers (objects) and DCOM. MainWin Professional Runtime mode supports the use of COM servers with the following limitations:
* Distributed COM is not supported - both the client and the COM server must
reside on the same UNIX host.
* No support for multiple users - the COM server can only be launched under the
identity of the launching user.
The Professional mode can be considered a private environment and can be installed multiple times on the same system. The Enterprise mode is public, installed once per system, and available for all applications on the system. Selecting one or the other should be based on how ArcObjects will be utilized.
In most cases, the Enterprise runtime configuration is recommended. ArcGIS Server requires the use of Enterprise mode.
Advantages of the Enterprise runtime configuration
1) Availability of services
Under the Enterprise runtime configuration, the MSC services are always up and running and are available to serve all MainWin applications.
2) Multi-user support
The Enterprise runtime configuration supports multiple users. This is similar to the idea of different users having access to the same Registry on Windows. For example, COM servers registered by one user can be used by others. Likewise, printers set up on a machine by one user are available to all users.
3) DCOM support
Due to its support for multiple users, the Enterprise runtime configuration is the only configuration that provides support for secured DCOM interaction with other DCOM hosts (UNIX and Windows alike).
Advantages of Professional runtime configuration
1) Root access is not required
2) No local setup
A Unix host does not need to be set up for a single, system-wide MSC.
3) User isolation
Each user can maintain their own private MSC.
Situations where using Enterprise mode may be difficult or not possible
* ArcObjects developers that share the same Unix host for building and debugging their application may find themselves overwriting each other's settings of Registry keys stored under the HKEY_LOCAL_MACHINE. This is possible because under the Enterprise runtime configuration, the developers all have access to the one system Registry on this machine. This situation rarely happens when developing on Windows since each developer uses a personal computer, and therefore uses a private system Registry.
* Setting up the Enterprise runtime configuration can only be done by the superuser (root). In cases where it is impossible to obtain root access, applications need an alternative way to launch and use the MSC services.
MainWin is installed and configured during the ArcGIS installation setup. Refer to the ArcGIS installation documentation for additional information on this process.