Overview of Distributed Web Development Frameworks

 

 

Overview

Distributed Web Development Framework

SOFA MVC is a Web development framework that follows the MVC pattern. It is an independent Web development framework built and developed on the basis of Spring MVC. It is basically compatible with Spring MVC's programming interface (API, annotation), and naturally has Spring's native capabilities such as IoC, AOP, transaction, and security. But SOFA MVC is not Spring MVC (so individual annotations are not committed to support, and Spring MVC-specific <mvc:..>configuration is not supported).

SOFA MVC uses a "microkernel" + "plug-in" architecture to build various Web layer components. This design pattern enables it to provide a rich and comprehensive Web solution while keeping the core logic lightweight. Provides flexible and loosely coupled expansion capabilities.

SOFA MVC can use the SOFA Lite framework to introduce rich distributed middleware, such as RPC, DMS, DDS, etc. into the Web project. Conversely, SOFA MVC can also be regarded as a Web development solution of the SOFA Lite framework. They complement each other and are decoupled from each other in design. For the relationship between the two, you can also refer to the description of the  introduction of middleware in SOFA Lite  . SOFA Lite + SOFA MVC is a complete set of distributed web development framework.

Architecture Principles

The following figure shows the architecture hierarchy of the entire framework. The SOFA MVC framework (MVC Kernel) supports a plug-in extension mechanism, supports modular (Multi-CARS) development of Web projects, and also provides many custom standard implementation components and services to simplify development.

image

MVC-Kernel is the core of the whole framework and can run independently, mainly including RESTful development support module, modular support module, component extension system, plug-in system and plug-in life cycle management module and various core plug-ins. Plug-ins that exist around MVC-Kernel provide at runtime: request parameter validation, Web security, authentication and authorization, distributed Session and other enhancements. The following figure is an overview of the plugin system:
image

Core Features

  • Easy to use: Retain the development habits of Spring MVC (currently supports Spring MVC 3.x), naturally have various features of Spring, and support standard JavaEE engineering structure;

  • RESTful: Based on Spring MVC's related annotations and the default contract processing and content negotiation capabilities provided by the framework, RESTful development support can be easily realized and seamlessly integrated with other framework functions and components;

  • Convention development: You can use either the annotation-based development recommended by Spring Web, or the style and specifications that conform to SOFA MVC conventions;

  • Plug-in: The framework provides a set of plug-in standards to facilitate the project to quickly integrate standard-compliant second- or third-party SOFA MVC plug-ins.

  • Rich components: Provides rich extension components for web development (most of them exist in the form of flexible plug-ins), including distributed session, authentication and authorization, parameter verification, web security, reusable page fragments, etc., allowing developers to pay attention to Development of business logic.

  • Flexible expansion: While providing users with rich page components, it also opens the expansion capabilities of components to users, and users can easily override or extend the default component logic;

  • Modular development: Provide a unique CAR model (CAR stands for web Component Archive), which provides the ability to modularize on the basis of standard WAR. Based on SOFA MVC, CAR can be distributed and shared.

  • Page reuse: Provide a reusable page component model Tile, which facilitates page reuse between different modules in the same system, and also supports page fragment reuse across systems in a distributed environment.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326522552&siteId=291194637