1. ADP平台设计目标
l 在技术层面提供从需求、设计、开发、测试的一整套规约,采用统一的标准和方法论约束项目实施过程中的各个环节,以实现平滑衔接;
l 架构服务于管理,通过一系列架构规范为项目管理提供技术手段;
l 架构设计必须具备一定的前瞻性,通过架构师的经验和超前意识规避项目和产品在未来可能出现的技术风险;
l 架构不能仅停留在理论层次,必须在一致的设计理念指导下提供一系列通用组件,切实提高开发的效率和质量;
l 在架构基础上不断积累可组装、可重用、可定制的业务功能模块;
l 提供架构的辅助性工具,代码生成器、性能监控工具、打包部署工具、数据库兼容和迁移工具、应用服务器兼容和迁移工具等等;
注:以上各条按照重要程度进行排序!
2. ADP平台现状
基于spring/hibernate/struts等开源项目,并实现其完全、深度整合;在不丧失其功能的基础上有效屏蔽其技术复杂度,具有快速上手,易于调试等特点。
2.1. 基础组件
l 系统配置框架(Xml配置+平台参数+业务参数+Spring配置)
l 业务层组件管理框架(IOC、AOP),已实现Local、EJB两种容器模式;
l 统一的系统异常体系结构、异常转译、展现机制;
l 统一的资源文件与国际化处理(界面元素、异常消息);
l 可配置的事务模型、自动提交与回滚机制、编码事务支持;
l 数据持久层框架,已完成统一接口的Hibernate、JDBC、Hessian实现;
l 业务字典配置、加载、缓存、展现框架
l 一套自定义展现层标签(校验、格式化、鉴权、字典展现、分页)
l 灵活的菜单定制与菜单展现机制;
l 多功能树形展示组件;
l 缓存机制
l 基于规则的业务序列号生成组件
l 定时任务框架
l 基于模板技术的Excel导出组件;
l 各种图表的绘制、导出组件;
l 简易工作流驱动组件;
l 基于JPBM的工作流组件和设计器;
l 通用Socket服务组件;
l 各种辅助性代码:FTP、Date、Zip、File、JS等等;
2.2. 公用模块
l 部门、人员、权限管理、透明鉴权(需要扩展与完善)
l 参数配置管理
l 日志管理(登陆、操作、异常日志)
l 公告通知
l 版本管理
l 在线交流
l 培训考试
由于种种原因造成某些功能模块的实现质量不佳,给重用和扩展带来很大困难;
2.3. 辅助工具
l 基于ER设计的Hibernate基础代码生成器,已实现PowerDesigner、Erwin两种;动态表单的实现可以借鉴一下;
l 基于ASM字节码增强技术的运行期内嵌监控程序(JDBC调用、方法调用、Http调用监控);
l 统一的打包部署脚本,可以同时使用多种IDE开发;
2.4. 架构规范
l JAVA编码规范
l 多模块设计
l struts编码规范
l jsp编码规范
l hibernate编码规范
l 系统配置规范等
3. 存在的问题
对架构和研发的资源投入不足,目前基本上只有一个人在进行架构的设计和维护;架构是在前期多次研发的基础上进行的,当时的研发计划没有很好的执行和检验,存在很多遗留问题,而且是硬伤;在在向产品化转化前有必要进行一次大的梳理。
l 明确ADP的功能、目标;
l 如何进行ADP的管理和统一维护?
l 人员权限管理代码比较混乱、不够通用、分级管理功能不够完善、操作不友好;
l 通用功能模块的整理和功能完善(2.2节);
l 通用模块缺少对外接口;
l 代码生成器的完善;
l 基于开源软件的报表工具研发;
l 动态表单工具研发;