AOSuite 是我在 2006 - 2016 年间开发和维护的一节开源项目。那还是一个 jQuery UI 和 ExtJS 横行的年代。现在想来还满满都是回忆。随着前端技术的发展和后端微服务技术的流行,AOSuite 到了该退场的时候了。撰写此文仅做备忘和回忆往年往事了。
简介
AOSuite 开发套件基于 JavaEE 技术体系,以“标准功能可复用、通用模块可配置、行业需求快速开发、异构系统无缝集成”为目标, 帮助企业落实IT策略、屏蔽技术壁垒,快速实现可水平扩展的高性能高可用业务愿景。 为传统软件企业和互联网企业研发团队提供高效可控、随需应变、快速实现业务需求的全栈式技术解决方案,以最低成本和最低风险获得更高质量、更快交付业务和运维支持的核心技术竞争力。项目封印归档地址:https://gitee.com/pulanos/AOSuite。
适用场景
AOSuite 以开发传统应用系统为主并一定程度兼顾了互联网应用场景的需求,适合构建和开发中大型企业应用管理系统、各级政务信息化系统、银行保险医疗等传统行业管理系统;也具备构建基于(移动)互联网面向C端的各类电商、P2P 网贷、理财、小贷、社交等 APP 后端接口服务、面向B端的商户管理系统、 面向运营企业的后台管理系统。
技术特点
- ExtJS without JS。平台缺省主题主要依赖 ExtJS 库,但经过了深度封装和 JSP 自定义标签化,可使得开发人员脱离繁琐的 Html、CSS、JS 编程也能开发出标准化的风格界面、使用统一的组件事件响应模型。
- 原生支持集群部署模式。抛弃 Servlet 容器会话依赖,使用 Redis 集中模式的请求状态管理使得平台对集群部署结构非常友好,达到单体应用的高性能和高可用集群部署方案的最佳实践。
- 核心依赖主流经典正统。核心依赖使用 SpringMVC-MyBatis 的组合,主流、经典、正统,开发人员积累储备的经验技能可以得到最大化的复用和升值。
- 大量模版代码自动生成。
- 完善的权限管理系统。平台内置完善的权限管理系统,涵盖用户、部门、资源、监控等系统管理模块开箱即用,大大节约开发成本,让开发人员专心于具体业务实现。
- 长期实践,久经考验。平台已在各行业各类型项目经过大量的实战检验。虽已久经考验,规避了大小坑无数。但,我相信总有一个还属于你......
历史局限性
-
关于前端。目前基于 ExtJS 的 AOSUI 标签库所带来一致的界面风格和交互体验以及容易上手快速开发的特点一直是我们的优势,加之多年来我们在这套前端 UI 体系上已经有了大量的经验和积累。但其劣势也是明显的,比如视觉体验相对传统古板,不善于开发一些脱离标准模版而随意定制的复杂或非标准界面等。
-
关于后端。AOSuite目前后端结构为集中式单体应用的开发模式,对于分布式的支持可以使用反向代理软负载机制部署多个单体集群节点实现一定程度的高性能和高可用。这种模式在服务治理如服务模块化、服务注册、服务发现、服务管理监控、弹性容量规划、灵活扩展性等方面并非很友好。
发展方向
鉴于上述局限性,加之近年来,各种前端技术琳琅满目层出不穷;后端微服务技术趋于成熟,dubbo 之类的分布式服务治理框架得到广泛使用,spring cloud 也开始流行;云计算深入人心,云端技术得到普遍认可和接受。正所谓这是一个最坏的时代,技术的发展和革新,不得不随时要刷新我们的技术栈、系统架构、开发方法、部署运维方式等;但换一个角度看,这也是一个最好的时代。在苦于变化的同时,也让我们具备了更多的技术手段、方法来解决更多的问题,扩展我们的想象空间。因此,我决定结束 AOSuite 生命周期,于现在主流前后端技术栈重构一个新的开源项目 —— 盘古开发框架,欢迎大家围观。