Server/Cloud Client
|----------------------------------| View Bindings |--------------------------|
| Logical View |----------------------| Target Platforms |
|----------------------------------| | | |
| InstanceTypes/Instances | | |--------------------------|
| Modules (app logic) | API
|----------------------------------| |
| Persistence | |
| Cmobilecom JPA |-----
|----------------------------------|
A server consists of one or more instance types (system or non-system). For each instance type, one or many instances can be created except the singleton system instance. The server is multitenant, and instances are tenants with their own logical persistence units.
|--------------------------------------------------------------------------------------| | Server | | | | |---------------------| |-----------------------------| | | | | | InstanceType A | | | | InstanceType System | | (Separate DataSources) | | | | (singleton) | | | | | | | | Instance A1 | | | |---------------------| | Instance A2 | | | |-----------------------------| | | | | |----------------------| | | | InstanceType B | | | | (Shared DataSource) | | | | | | | | Instance B1 | | | | Instance B2 | | | |----------------------| | | | |--------------------------------------------------------------------------------------|
|-----------------------------------------------------------------------| | InstanceType | | | | |-----------------------| |-----------------------| | | | Module A | | Module B | | | | Data (entities) | | Data (entities) | | | | Application Logic | | Application Logic | | | | Logical View | | Logical View | | | |-----------------------| |-----------------------| | | | |-----------------------------------------------------------------------|
InstanceType System: (System_DataSource) | InstanceType A: (DataSource_Per_Instance) | InstanceType B: (Shared_DataSource) | |
Multiple instances | No. Singleton called "system instance". | Yes. e.g., Instance A1, Instance A2 | Yes. e.g., Instance B1, Instance B2 |
Multitenancy | One instance: one data source. | Instance type itself and each instance has its own data source. | Instance type itself and all its instances share one data source. Sharing tables using tenant discriminator column. If a discriminator column is null, the corresponding entity is associated with the instance type. |
Query Data Scope | One instance | InstanceType itself or one instance. Can not query data of all instances. | InstanceType itself, one instance or all instances. |
For system XML configuration of instance types, see System Configuration.
|-------------------------------------------------------------------------------| | ContainerBean | ------------| | | | DialogBean | | | |-------------| | | |--------------| | | | DialogBean | | | |--------------| | | | | |-----------------------------------| |--------------------| | | | Region N1 | | Region N2 | | | | | |--------------------| | | | |-------------------------| | | | | | Bean | | |--------------------| | | | | MenuBean | | | Region N3 | | | | | (MenuNodes) | | |--------------------| | | | | EntityBean | | | | | | (EntityProperties) | | |--------------------| | | | | EntityListBean | | | Region N4 | | | | | (EntityProperties) | | |--------------------| | | | | (PaginatorMenu) | | | | | | Nested Beans | | | | | | Partial Behaviors | | | | | |-------------------------| | | | |-----------------------------------| | | | |-------------------------------------------------------------------------------|
[cmobilecom.home] |-- dau/ |-- www/ <-- global sites | |-- main/ | |-- system/ <-- system instance rootDir (DataAccessUnit) | |-- www/ <-- system instance sites | | |-- main/ | | | |-- modules/ <-- module data of system instance | |-- InstanceType1/ <-- instanceType rootDir (DataAccessUnit) |-- www/ <-- instanceType sites | |-- main/ | |-- modules/ <-- module data of instanceType | |-- instances/ |-- www/ <-- instance parent sites | |-- main/ | |-- 00/00/00/18/ <-- instance rootDir (DataAccessUnit) |-- www/ <-- instance sites | |-- main/ | |-- modules/ <-- module data of instanceFor a DataAccessUnit, module large objects(e.g., images, videos) can be stored under its module directory. Site inheritance hierarchy can be created under various www directories. See Website module docs for details.