EDMfatClients
Unlike EDMthinClients, the EDMfatClient maintains a stateful connection with the EDMsixServer. It performs its operations with a local partial working copy of the EDMsixServer EDMdatabase.
The figure to the left shows the main modules of the EDMfatClient. In the following, we will give a brief description of each module.
When drawing system diagrams for EDMsix, a simplified block is used to represent the EDMfatClient,
and when connected to the EDMsixServer
The EDMInterface API
The EDMInterface API is used for EDMfatClients. The API is written in C, and all the EDMInterface API function signatures are declared in the sdai.h header file. The EDMInterface API requires an EDMsdk license. Some of these EDMInterface API functions are only available when activated by your license key. E.g, you need to have the EDMsdk Advanced to compile EDMmethod schemas and the licensed extension module EDMmodelChecker is required to run global rule validations on data sets.
The EDMInterface Language Bindings are mainly using the EDMremoteInterface API and cannot be used for writing EDMfatClients. EDMfatClients must therefore be written with the EDMinterface C/C++ API.
EDMsix Core
This is the very core of the EDMsix platform of Express Data Manager. It contains the EDM Compilers and debuggers, The STEP and XML import/export modules, the EDMvirtualMachine with EDMmodelConverter, EDMmodelChecker and EDMqueryEngine, the memory manager, the access control system and virtually any other core feature in EDMsix. This is the component that is included in every EDMsix product.
Since the EDMsix core is part of the EDMfatClient, most data operations are performed on the client side against the local partial EDMdatabase.
EDMdatabase
EDMfatClients maintain a local partial copy of the EDMdatabase in its cache memory. The size of this DB cache can configured with the configuration parameter EDM_CLIENT_MEMORY_BLOCKS and may have great effect on the performance.