ArchitecturePlatform Architecture Overview
The system architecture implemented an increase in the level of abstraction when developing an applied business solution. This made it possible to move from low-level concepts to more meaningful and high-level ones.
Ultimately, this significantly speeds up and unifies the development of an applied solution and its maintenance.
At the same time, the framework also solves traditional tasks related to performance, ergonomics, and functionality.
applied solutions
The system has a clear division into a platform and an application solution. The platform is a framework in which the applied solution functions:
- The platform serves as the foundation for building application solutions
- The platform is a component environment for their execution
- The platform contains the tools necessary for the development, administration and support of applied solutions
At the same time, the applied solution is an independent entity and can act as a separate software product. But it relies entirely on platform technology.
metadata
Metadata is a way to describe an applied solution.
An applied solution is not written in the literal sense in a programming language. The programming language is used only where it is really needed.
At the heart of the applied solution are metadata. They represent a structured declarative description of it.
Metadata describes data structures, composition of types, relationships between objects, features of their behavior and visual representation, access rights differentiation system, user interface. Metadata contains information not only about “what to store in the database”, but also about “why” this or that information is stored, what is its role in the system, and how information arrays are interconnected.
The use of a programming language is limited to solving those problems that really require an algorithmic description, for example, calculating taxes, checking the correctness of entered data, writing reports, etc.
Building an applied solution based on the model.
The platform is focused on building an applied solution based on a specific model. The model is understood as the whole ideology of building an applied solution. This includes ways to build classes and data structures, types of relationships between data, principles of data manipulation, business logic description forms, ways to link data with interface objects, separation of functionality by system levels, and much more.
It is important that all applied solutions follow the accepted model and this ensures the uniformity and predictability of their behavior.
Base classes of applied objects.
In the development model, the entire application solution is described by metadata as a set of application objects (classes) inherited from a certain set of base classes. Each such base class is responsible for reflecting in the applied solution a certain set of objects or processes of the subject area that have similar behavioral characteristics and a similar role in the overall picture of the solution.
Examples of such classes are “Reference books”, “Documents”, “Registers of accumulation”, etc.
Each base class has a certain base implementation that defines the features of the functioning of the applied classes created on the basis of this base class: the structure of stored entities along with some predefined fields, a set of programming language types, methods, properties and events, as well as typical operations for the task being solved , display and editing methods, access rights regulation methods, etc.
Thus, the entire application solution, in fact, consists of objects that are clearly separated according to the roles they play in the application solution and are a data model. This approach significantly enhances the effect of both describing the system in terms of metadata and building an application based on the model.
Consistency of technologies and tools.
The key quality of the platform is the sufficiency of its means for solving the problems facing applied solutions. This allows for very good consistency across all technologies and tools used by the developer.
multi-tier work architecture
Application solutions running on the platform use a multi-tier architecture:
- client application – local database
- client application – database server
- client application – server farm – database server
On the one hand, this allows the system to be scaled from personal use options to work in large, geographically distributed holding companies.
An important advantage of working in a server farm is the provision of a secure connection between clients and servers using WCF technology with a secure channel, so that clients can work over the Internet from anywhere in the world with a guarantee against unauthorized access to data.
.
failover farm with load balancing
The server farm provides system fault tolerance to such events as the failure of the server computer, the physical disconnection of the user’s connection with the server of the farm and its subsequent reconnection to other servers.
The farm automatically load balances between its production servers based on an up-to-date analysis of their available performance. At the same time, the system administrator can adjust the load on individual working servers. Both by physically limiting the served infobases or connections, and by reassigning part of the farm’s functionality to other working servers.
high-level interface model
The main idea of building an interface is to maximize the use of information from metadata, as well as data manipulation objects, so that the entire design does not require detailed configuration by the developer and functions mostly automatically.
It is enough for a developer to associate such an object with a form element or with the form itself, and the interface mechanism will completely take over the organization of viewing and modifying data. The platform will automatically include extensions that take into account the type of data that the control or form is associated with.