This article is an architectural supplement to the introduction of the agileeas. NET application development platform and the agile parallel development method of agileeas. net. It is used to explain the architectural design ideas of the agileeas. NET platform.
Speaking of the system architecture, I cannot give a definite definition of the system architecture. My understanding may be just based on my own experience. I learned about the professional architecture, after learning about landscape architecture, maybe the earliest understanding of the Software Framework comes from the understanding of the building. We know that a good building must solve the load of the building and its accessories, as well as its beautiful and comfortable living, this must be supported by the skeleton of the building-the load-bearing system. The building is the first to carry out other load-bearing rest pouring.
The system architecture of software is like the skeleton of a building. Buildings of different scales, regions, and applications use different load-bearing structures. The design of the software system architecture is the same as the framework design of the building. Different applications should be applied to different architectures, that is, the customer's application determines the project architecture and technical options.
The system architecture proposed by agileeas. NET is suitable for management information systems with small and medium rules.
In the introduction to the agileeas. NET application development platform, I have drawn the basic architecture diagram of agileeas. net. In this article, I will discuss the horizontal scaling and vertical scaling of the system.
Horizontal scaling:
Agileeas. NET platform is an application platform supported by the idea of "parallel development". We have implemented this idea using Platform + plug-in DOTNET. Its core mechanism is to use plug-ins to horizontally expand the platform.
To use this idea to build and expand a business system, a unified mechanism is required to allow business plug-ins to be registered to the platform. Based on this idea, various business modules have become plug-ins that can be freely assembled and disassembled.
A plug-in running container is a group of applications that can call plug-in services.ProgramIt can be a winfrom-based desktop application or a Web-based website application, run the container to call the plug-in, and horizontally expand the running container function by the plug-in. As a result, the development of the application system becomes the Function Extension for running containers, that is, the focus of the project is transferred to the development module plug-in.
Developers of business plug-ins can choose to use agileeas. net, which relies on the basic components provided by the platform. You can also use the developer's own technology to implement module plug-ins, this will involve the vertical scaling of the system.
Vertical Scaling:
Don't mean the technical staff engaged in software, that is, the staff of some customer organizations, but also the three layers of the software that you want, I think this three doesn't refer to the specific three layers, it should generally refer to a three-or multi-layer structure.
Currently, the three-layer structure we refer to should be the so-called UI, business logic (BI), and data access (DA) layers of the system, multiple layers are the result of detailed decomposition of these three layers. industry experience has proved that this is indeed a mainstream mode to solve system complexity. However, it does not mean that a layer-3 architecture can solve the complexity of the system. It is not omnipotent. He provides us with an idea to solve complicated problems, that is, to layer based on the complexity of the application.
For this hierarchical design, we recommend that you choose a reasonable hierarchical design based on the actual situation of the project. If you choose a complex hierarchical design for a small project, it will evolve into a vortex of layering and layering.
Agileeas. net supports different levels of development. For simple projects, you can choose to put all interfaces, services, and data access in the module UI implementation. For complex projects, you can choose to use the module UI + data access layer to integrate the business logic into the UI implementation, for more complex projects, we can strictly break down the interfaces, services, and data, or even re-break the tasks in these three layers. For example, the data access layer can be divided into data access interface layer, data access implementation layer, and so on, agileeas. NET provides a message-based distributed Communication Service, and the application system can choose to implement distributed applications based on it.
In short, the system architecture depends on the customer's application, technical strength, and many other aspects. The outstanding architecture lies in the balance between system expansion, scalability, and the degree of system image extraction.