分布式 Web 开发框架概述

概述

分布式 Web 开发框架

SOFA MVC 是遵循 MVC 模式的 Web 开发框架。它是以 Spring MVC 为基础构建发展而成的独立 Web 开发框架,基本兼容 Spring MVC 的编程界面(API、注解),同时天然拥有 IoC、AOP、事务、安全等 Spring 原生能力。但 SOFA MVC 不是 Spring MVC (因此个别注解不承诺支持,同时不支持Spring MVC 特有的<mvc:..>配置)。

SOFA MVC 采用了「微内核」+「插件化」的架构来构建各种 Web 层组件,这种设计模式使其能在提供丰富而全面的 Web 解决方案的同时保持核心逻辑的轻量,同时又提供灵活而松耦合的扩展能力。

SOFA MVC 可以借助 SOFA Lite 框架,在 Web 工程中引入丰富的分布式中间件,如 RPC、DMS、DDS等,反过来看,SOFA MVC 也可以视为 SOFA Lite 框架的一种 Web 开发解决方案,两者相辅相成,又在设计上相互解耦。关于两者的关系,也可参考 SOFA Lite 中 引入中间件 小节的说明。SOFA Lite + SOFA MVC 即为一套完整的分布式 Web 开发框架。

架构原理

下图为整个框架的架构层次图,SOFA MVC 框架(MVC Kernel)支持插件扩展机制,支持模块化(Multi-CARS)开发 Web 工程,同时还提供了很多自定义标准实现的组件和服务简化开发。

分布式 Web 开发框架概述

MVC-Kernel 是整个框架的核心,可独立运行,主要包含 RESTful 开发支持模块、模块化支持模块、组件扩展体系、插件体系和插件生命周期管理模块以及各种核心插件。围绕 MVC-Kernel 存在的插件在运行时提供:请求参数校验、Web 安全、认证和授权、分布式 Session 等增强功能。下图是插件体系的概览:
分布式 Web 开发框架概述

核心特性

  • 容易上手:保留Spring MVC 的开发习惯(目前支持 Spring MVC 3.x),天然具备 Spring 的各种特性,支持标准 JavaEE 工程结构;

  • RESTful:基于 Spring MVC 的相关注解和框架默认提供的约定处理和内容协商能力,可轻松实现 RESTful 的开发支持,并与框架其它功能和组件无缝整合;

  • 约定开发:既可以使用 Spring Web 推荐的基于注解的开发,也可以使用符合 SOFA MVC 约定的风格和规范进行开发;

  • 插件化:框架提供了一套插件化标准,方便项目快速集成符合标准的二方或三方的 SOFA MVC插件。

  • 丰富组件:为 Web 开发提供了丰富的扩展组件(大部分以灵活的插件形式存在),包括分布式 Session、认证与授权、参数校验、Web安全、可复用页面片段等,让开发者关注业务逻辑的开发。

  • 灵活扩展:在为用户提供丰富的页面组件同时也向用户开放组件的扩展能力,用户可轻松复写或者扩展默认组件逻辑;

  • 模块化开发:提供独有的 CAR 模型(CAR 表示 web Component Archive),在标准 WAR 的基础上提供了模块化划分的能力。基于 SOFA MVC 可以进行 CAR 分发共享。

  • 页面复用:提供可复用的页面组件模型 Tile,方便同一个系统中不同模块间的页面复用,也支持分布式环境下跨系统的页面片段复用。

相关推荐