企业级信息管理系统的高可扩展性和灵活性骆金松我一直在从事企业信息管理系统的开发,目前的产品拥有了数百个企业客户,作为企业管理信息系统,最大的挑战是如何满足不同企业通用需求的同时快速满足企业个性化需求,除了企业战略、组织架构、流程体系等紧密相关外,软件的平台化水平,可扩展性和灵活性至关重要
有一句话很经典:“最好的架构师是能够在软件开发所涉及的诸多内部因素和外部因素寻求最佳的平衡”
一个高度平台化的系统,对高可扩展性和灵活性是非常关注的,今天我想讨论如何满足企业信息管理系统的扩展性和灵活性
这个话题涉及的内容太多了,我只是在做产品和项目过程中谈谈我的体会,希望对大家有一些参考价值
(1)高可扩展性和灵活性的系统一般是分层架构的,这里说的分层是指将客户的需求按需求的通用性分层
根据自己平台所应用的目标客户群,分析客户的共性需求,将共性部分的需求放在平台的最底层实现,所有的客户共用,不要有分支版本,个性的需求放在高层实现,不同的客户可以完全定制
至于整个架构的层次数量没有绝对的标准,可参考的方法分为4层,“公共平台层”、“产品平台层”、“行业扩展层”、“个性扩展层”
这里的分层与软件架构中的表示层、中间层、持久层的分发属于不同的维度,是没有冲突的
(2)高可扩展性和灵活性的系统一般是模块化的
系统最好提供统一的主板插件体系,每一层都应该提供若干插槽,通过二次开发的手段供上层扩展,做项目多了一般都会形成组件库,应该对这些组件进行分类分级管理
一旦有了新的项目,一般从现有的组件库中挑选进行配置,部分不满足要求的可以进行修改后满足,其他个性化很强的完全定制
(3)高可扩展性和灵活的系统一般都支持数据建模
许多人理解系统可扩展就是指系统提供API,可以二次开发,其实这种理解不全面
数据结构是企业信息管理系统很重要的一部分,是否可以方便支持数据结构的扩展非常重要,我们的经验是提供图形化的数