运用现代化新方法帮助CIO改造遗留应用

在几年前我到某公司任职CIO的第一天,第一个会议就是和公司的CFO和CEO一起讨论对企业信息系统的看法。该公司当时的业务应用大概都有25年的历史了,已经无法有效地承担相应工作。

作为这些遗留应用的架构师,CFO向我详细阐述了相应的业务规则以及处理复杂事务的方法。就在CFO滔滔不绝时,CEO打‘断了他的溢美之词,他承认这套系统长久以来为公司发展做出了巨大的贡献,但是,现在这些应用已经成为了阻碍业务发展的瓶颈。

“尽量物尽其用吧,”CEO建议说:“但是不要把保留这套系统作为主要目标。我们必须拥有关于客户、渠道和产品的更好的信息;我认为当前的系统无法完成这个使命,或者说无法很好地完成。”

根据这些要求,我开始着手调查企业的需求、短期及长远所能达到的目标。首先,我要得到一系列问题的答案:替代遗留功能所需的投入?是否值得这样做?哪些部分可以改进和重用?哪些遗留特性是我们未来发展的基础?

在寻找答案的过程中,我发现了很多关于遗留应用现代化改造的方法,下面就是其中的一些收获:

寻求外部力量的协助。我改造遗留应用的第一步就是寻找相应的厂商来承担升级工作。几年前我曾经遇到过一个应用,既不能访问互联网也不能和移动设备协同工作。我和厂商进行了沟通,向其阐述了互联网和无线访问即将普及的理由。这些理由中最重要的一点就是:互联网和无线功能能够延长企业的寿命。我甚至为更新的系统提供了一份采购合同。厂商最终同意更新系统,而我也就得到了满足当前及未来业务需求的应用。

在改造前去掉那些非标准化的东西。幸运的是,我们未曾定制过应用,这使得改造过程变得相对容易。如果有定制过的应用,那么我不得不为下列问题找到答案:其中有多少定制的内容可以实现标准化?对于这种以定制方式去实现标准化的努力,是否有充足的理由?定制化的内容是否有涵盖那些极少会遇到的情况?

无论需要哪些工作,改造都应该从这几个方面的精简和标准化做起:交易事务、业务规则、流程、特性和职能。如果要对遗留系统的升级投入时间和资源,我会首先关注那些作为未来成功基石的部分。在此基础上,我才会适当考虑对自建的应用进行标准化,使其能完成市场上现有系统的功用。

改造之前的标准化和精简化工作需要有一定的魄力才行,但是有些专门为独有的业务规则而定制的东西使得这一步必须进行。我一般从信用和收款、采购支付、财务报告生成以及其他的水平流程入手,调查为什么我们在这些方面要有自己独有的方式。是否有用采购支付流程在获取市场份额?我们的销售简报是否有通过发货单来显示企业的市场地位?如果答案是否定的,那么就没有足够的理由对相关业务规则或应用进行定制。

找到应用部署的最佳方法。如今,我们很幸运地拥有很多途径来进行应用部署。比如,你可以用较新的东西来取代遗留应用(取决于相应的精简工作是否成功);自行创建一个新应用;或者采用Web服务架构,以此让那些可以重用并能与其他应用连接的遗留模块发挥作用。

曾经有个CIO告诉我说他通过将代码分为两类实现了遗留应用的改造。一类是应用的独有功能部分,通过重构来适应SOA(面向服务架构)标准。另一类则是可以从其他地方获得的应用特性。在改造之后,通过基于Web的服务集合,遗留应用实现了与内部SOA兼容模块的连接。这种方法既避免了大量的工作,又达到了应用完全更新的效果。

在学习他人经验的基础上进行创新。因为应用改造工作风险极高,所以在吸取他人经验的同时要注意独立地思考。通过对他人改造经验的充分学习,能够尽量避免让项目走进死胡同。

遗留应用的现代化改造是充满艰难和痛苦的。但是,通过精简化以及对实施思路的梳理,困难总是能克服的。