EEPlat MetaData-Driven Multi-Tenant Architecture
Metadata is the data about data. Each part of the business system is called data, including business data, business logic, business processes, and user interface in EEPlat. EEPlat also conducted a further abstraction based on metadata to be called metamodel. The metamodel improves the system's portability, usability and scalability. Based on these metamodel, in practice for many years, a number of projects in different industries gets a great success.
For multi-tenant applications, the needs of different tenants are almost always different, each tenant requires customized their application is quite natural. If the multi-tenant application is statically compiled binary file, then meet the challenge of these multi-tenant requirements and other personalized is almost impossible. However, a multi-tenant applications must be in its functionality, interfaces to meet the reasonable requirements of different tenants.
For these reasons, EEPlat application platform can be generated according to the different tenants of the definition of metadata corresponding to the application, rather than a compiled binary executable file. Model-driven development is EEPlat's core and foundation. Each tenant meta data, each tenant's business data, there is a clear separation. Between these are clearly the boundaries so that we can safely customize or modify the application of the tenants will not affect other tenants.
EEPlat can be divided into three parts: data storage, meta-model system, the runtime engine, the following figure is the overall architecture diagram:
Isolation techniques EEPlat data storage support in the following manner: Sparce Column, tenantId field isolation, each independent tenants database.
1，Sparce Column. Similar to Salesforce Appforce , primarily through a common table to store all custom, there are tenants' fields and a lot of unified data fields (such as 500).EEPlat tenants optimization of data partitioning technology by tenants.
Different Appforce, EEPlat provide a two-layer meta-data abstraction, independent between business metadata and tenant storage metadata. And EEPlat provides a more powerful model system.
2，TenantId field isolation. TenantId field isolation table for each business plus TenantID field, to distinguish the data of the tenants. In this mode, generally used for the initial operations of the system. Rather than the tenants of the custom business.
3，Independent database of tenants.For MySQL database, create a database overhead is relatively small. Independent tenants database can be obtained for maximum security and scalability. When tenants are activated, EEPlat can create their own independent database for each tenant, and initialize the table of their own business, and EEPlat interface for tenants to manage their own data. For MySQL, the independent tenants database is a database EEPlat recommended isolation method.
EEPlat metamodel system can be divided into background processing, and UI two parts.
In the background processing,BUSINESS OBJECT metamodel describes the static structure of the business functions ; the SERVICE metamodel is for business logic, is also responsible for the interaction between the BUSINESS OBJECT models; WORKFLOW metamodel is for collaboration of business processes; organization metamodel can achieve the flexible organizational structure.
EEPlat UI metamodel including menus, panes, grids, GRID ITEMS , data tree, and groundbreaking use HMVC model organization the user interface, and use the registry to unify the management controller. Simple and easy to extended complex interfaces.
EEPlat MetaModel System Architecture As shown below:
Background processing contains part of the server-side operations such as data processing, business logic and business processes, including the BUSINESS OBJECT , BUSINESS OBJECT ATTRIBUTE, SERVICE, PARAMETER, RULE, WORKFLOW .
The BUSINESS OBJECT is the abstraction of business data and logic. It usually corresponds to a table in the database on a common implementation, also can be expressed greater or smaller business scope, such as a separate business modules (Sales Module), a table can have more than one BUSINESS OBJECT, a BUSINESS OBJECT can also contain more than one table. BUSINESS OBJECT complete business logic by SERVICES and DATABUS.
The DATABUS is shared between the BUSINESS OBJECT data, the exchange of data media. The DATABUS is exclusive thread, thread-safe, a thread on the DATABUS, the change will not affect the use of other threads on the DATABUS, a copy of each thread is using the bus.
The BUSINESS OBJECT ATTRIBUTE refers to the property owned by the BUSINESS OBJECT. For type table, the property is basically the name of the corresponding column of the table. But the property does not correspond to the columns, the column does not correspond to the property. The property can be a collection, if a query SERVICE defined for the property attribute corresponds to the collection returned by the SERVICE execution. Generally used for processing the one-to-many or many to many circumstances in this case.
The SERVICE is to describe the behavior of BUSINESS OBJECT. When a data table is initialized to the BUSINESS OBJECT, the formation of basic SERVICE, including the common CRUD and other common data manipulation. The main body of the SERVICE is n CRUD SQL statement and parameters associated, EEPlat developers can modify these SQL statements and parameters associated with the purpose to achieve the personalized. For example, to change the status of the data, we can create a new SERVICE or modify the default SERVICE, only to change the status field value. SERVICE can refer one or more other SERVICES through the rule.
The RULE is in order to complete the complex business logic. The main body of the rules is an execution condition's SERVICE, that is, only when the conditions are met before the SERVICE execution. The execution priority rules, when the execution of multiple rules, the higher the priority order of execution is more front.
The PARAMETER main function is to obtain the corresponding value from the DATABUS. The PARAMETER generally associated attribute. GRID ITEM(UI concept,see below) generally also associated attributes. GRID ITEM are submitted and stored on FORM node of the DATABUS. PARAMETER get value from the DATABUS according to the associated property , if not associated with the property or associated property is not taken to the value, get value by the name of the PARAMETER .
The PARAMETER CHECKING means to check the parameters of the SERVICE corresponding to the SERVICE execution before is legitimate, if not legal is not performed. PARAMETER CHECKING can customize the calculation expressions, regular expressions, extended script. PARAMETER CHECKING is defined in the PARAMETER , multiple SERVICES can be multiplexed.
The WORKFLOW can automate business processes, consisting of nodes through the transfer. The WORKFLOW starts, the node task submission and rollback are SERVICES trigger the execution of the nodes can also be triggered SERVICES, these SERVICES can be a data table changes, the implementation of business logic, or send an EMAIL or SMS messages.
EEPlat UI groundbreaking use the HMVC to organize the user interface. The user interface can be divided into multiple parts, each part can be divided into multiple parts could have been divided down ... EEPlat abstract models of these parts of the interface PANE metamodel, GRID model, GRID ITEM model, the MENU metamodel, the DATA TREE metamodel and the external resources defined. The PANE UI container, can contain a pane, forms, menus, trees, resources. PANE can be nested pane, so it can form a complex interface layout.
The controller is core of EEPlat UI. EEPlat provides controller registry and provides commonly controller in the registry. EEPlat Developers can also provide custom controller. Custom controller and the default controller are interchangeable. The controller can be changed or replaced at run time. EEPlat UI are controlled through a variety of controller output. Traditional MVC pattern, an interface corresponds to a controller interface and controller is coarse-grained, which is the traditional MVC pattern reuse can not do a root cause of a finer deeper. EEPlat to adopt HMVC mode interface layer can be achieved from the coarse-grained to fine-grained and flexible reuse, which means that the interface elements can be relatively large interface area to the most fine-grained reuse support .
For example(shown below), a data query page contains the models and controllers are:
1, Panes:query main PANE (corresponding to a scrollable PANE controller), query PANE model (corresponding to the PANE controller), the query results PANE model (corresponding to the PANE controller);
2 Grids: query form model (corresponding to the query controller), the query results table model (corresponding to the query results controller);
3,GRID ITEMS : multiple GRID ITEMS like Input,button,toolbar,GRID columns(GRID ITEM controller, such as the input box, button, drop-down box, select the date and date display). EEPlat default more than 100 GRID ITEM controllers can also customize the extension, available online through the template (FreeMarker) innovative new controller interface personalization.
As shown below:
Detailed in the following UI metamodel:
The PANE is a major role for UI layout. The UI layout is the layout from top to bottom, left and right layout, and can be nested. The PANE is a container that can contain grid, data tree, menus, and resources. When a db table is initialized to the BUSINESS OBJECT, the formation of multiple basic Pane, the PANE corresponds to the data CRUD interface, the user interface can be easily extended.
The GRID generally divided into the form view (usually as a single data), the GRID view (usually as a display multiple records). The GRID is be composed of GRID ITEMS , populated with returned data of corresponding to the SERVICE execution .
The GRID ITEM is the smallest unit of the interface. The basic GRID ITEM, including the entry box, drop-down boxes, buttons, and so on. A GRID ITEM can contain one or more other GRID ITEMS . GRID ITEM can be expressed in a rich, complex interfaces. The binding of GRID ITEM and data to rely on the name of the GRID ITEM corresponding BUSINESS OBJECT ATTRIBUTE or GRID ITEM "Rename".
The DATA TREE is a tree display of the data. Shown by the general tree is a hierarchy of data, the tree nodes between the node and the node is parent-child relationship. General nodes need to define a SERVICE, the SERVICE corresponding to the BUSINESS OBJECT must define the primary key column and the eigenvalue column. Tree node is the returned value by the SERVICE execution.
The MENU is the index of the function. The MENU is normally connected to a Pane, when the MENU is clicked, the PANE will be displayed to the user. The system provides two kinds of default controller OutLook style and the Tree style, can be extended custom custom style.
EEPlat runtine engine uses the microkernel and the plug-in architecture. The micro-kernel is responsible for model relationship and message passing. Plug-in contains a store, query, UI, logic, processes, etc., plug-ins can be customized, but also can be replaced. The UI engine based HMVC and controller registry. Controller registry corresponds to the mapping relationship between the different devices, can easily support the PC Browse and smart mobile phone interface.
That is, one configuration, PC and Mobile two interfaces can be generated according to the same metadata. Such as the following, first screenshots of the PC interface, followed by three for the UI display in the Mobile interface engine results. Due to the different equipment the size of an interface in the PC corresponds to the 3 Mobile interface.
Similar is the most successful PaaS offerings for Salesforce's Force.com (Appforce), compared with Force.com, EEPlat provide a more powerful metamodel system, the separation between the business metadata and tenants storing metadata; the SERVICES can be more fine-grained business custom; provides a powerful HMVC controller registration mechanism, much easier to build a custom interface; model scalability enables better integration of custom code and metadata-driven technology together. The following is a list of the contrast between the contrast entry contains the the Appforce a number of core technologies: multi-tenant, metadata-driven, the AppExchange.
Force.com’s foundation is a metadata-driven software architecture that enables multitenant applications.
EEPlat’s foundation is also a metadata-driven software architecture that enables multitenant applications. And EEPlat can run other Multi-tenant environments.
Provides a metadata-driven development model.
More complete model system, the more powerful model-driven development. Model system is the great value of he eeplat.
Flexibility & extensibility
Because the MetaData System is not powerful, UI & Logic's extensibility is limited; Support the Apex language extensions for more complex UI & Logic.
The leading online marketing platform for cloud computing applications.
EEPlat App Share support share between cloud and traditional computing environment.
The Saleforce the infrastructure
Platform independence, support for cloud computing environments (such as EC2, GAE ,Window azure), as well as traditional computing environments.
Support for a variety of mobile platforms.
Support for a variety of mobile platforms. Smart phone System can be generated by the same MetaData Model of the PC.
Since 2003, after nine years of development, EEPlat already very mature, a number of companies as the basic platform for the development and implementation of projects.
EEPlat support system includes:
l MIS (Management Information System)
l OA (office automation)
l CRM (customer relationship management)
l HR (Human Resource Management)
l ERP (enterprise resource planning)
l Social applications
EEPlat product characteristics:
l Available: through many projects, the company's actual practical test.
l Practical: it is reflected in the project development process, greatly improve production efficiency, reduce development costs.
l Easy to use: configure instead of programming, lowering the threshold to achieve the business directly involved in the development.
Ø WORKFLOW configuration, flexible to changes in the traffic stream;
Ø SERVICE configuration, flexible to changes in the program logic and program flow;
Ø Using HMVC & Controller Registry, flexible changes in the appearance of the page;
Ø BUSINESS OBJECT configuration, flexible to changes in the business entity attributes;
In the cloud era, Hope more companies and individuals can benefit from EEPlat.