背景

  • 随着业务的发展,遗留系统的软件功能不足支撑现有的业务发展,但是系统勉强能用,用起来越来越不方便。
  • 遗留系统使用过时的技术开发,市场上相关的开发人员越来越少,维护成本和升级成本越来越高。
  • 系统原有的开发,维护团队已经解散,或者不再跟进维护系统。

基于以上原因,遗留系统功能需要升级改造,软件架构需要重新设计,以适应新的业务发展,软件代码需要重新编写。在这种情况下,除了要重新设计软件架构,重新实现遗留系统部分功能,并加上新的软件功能特性,同时往往还肩负着对旧系统性能上的提升,同时在系统还面临着旧有系统的数据迁移问题。在这些问题前,我们希望找到一种开发方式可以有以下特点:

  • 小批量功能交付,新旧系统同时运行处理业务,当新的功能模块上线时,同时下线旧系统对应部分功能模块。
  • 短时间内(以三到六个月之内作为一个周期)交付新的功能模块,快速的得到反馈结果,灵活的做出相应的调整。
  • 持续的不断地交付新系统的功能,直到整个系统的功能都迁移动新系统后旧系统才下线。

软件架构

基于以上背景原因,我们的方案是,新系统的开发工作是基于旧系统的数据库模型,但是旧的数据库结构在现有的业务发展情况下,肯定是存在不合理的情况,如果完成基于旧的数据库模型开发,必然给新的系统架构设计带来很大的历史包袱,带来很大的限制。为了解决这个问题,在旧的数据库模型与新设计的软件之间引入一个新的中间件,这个中间件负责新旧两个数据模型之间的映射。