几乎每一企业或多或少都有各种各样的旧的IT应用系统,为了保证企业的长久竞争力,这些企业必须及时升级或改造旧的系统,让它们和新技术兼容,或者建立起基于Web的应用。完全摒弃这些旧系统,用全新的系统来取代它们要么是不现实要么代价太大。/如何确保新旧系统的成功更迭?//
培训原系统的开发人员来开发新的系统需要花时间和金钱,因此,在建立新系统时,重用原系统中的逻辑结构就变得非常重要。尽管一些公司表示它们有这个能力,但很少有公司真正有这个实力。为此,确保这种迁移的成功,仔细规划和理解大量的旧系统的迁移就非常重要。
当我们面对一个需要对旧系统进行升级和改造时,这些问题必须考虑:
1.这是一个严格意义上的迁移项目,还是只是对原来的系统进行修补,增加一些新的特征?
2.原系统中有多少东西可以被利用?
3.如何将整个项目划分成几个阶段,同时既可以以满足业务
目标又可以降低项目风险?
4.我们是否已经掌握了所需的专门技术?如果没有,我们如何掌握?
5.是否存在标准的工具和平台,如果没有,我们应该如何选择?
这篇文章提供了一些对上述问题做出回答的方法,这些方法可以降低项目的风险,增加集成或旧系统迁移项目的成功机会。
迁移策略
有几个方面的因素会影响迁移的决定,包括是否需要与企业中的其他系统的接口,是否需要其他的功能和业务逻辑,是否有IT
厂商能长期提供对现有系统的技术支持。
迁移项目经常会因为原本可以避免的原因失败,如对问题的错误解决和过高的估计对当前系统的了解。要确保项目迁移的成功,第一步是要仔细了解应用系统目前的状况和成功的关键因素。在项目开始之初,我们需要考虑这些问题:
1.是需要对现有应用系统进行升级,还是需要对现有系统的业务逻辑和功能做些修改?如果现有的系统能满足需求,那么这个项目就仅仅是技术驱动。很有可能,我们能利用原有系统中那些复杂的业务逻辑。
2.现有的系统是否能支持需要它支持用户数?计划中的并发数会大大增加吗?如果现有系统没有扩展方面的问题或者用户数比较稳定,可以考虑采用渐进的迁移方法,如图形用户接口(GUI)扩展。
3.这个应用的复杂性如何?企业的业务流程有多详细?一个界面看起来很简单的应用可能背后隐藏了很多复杂性。定价算法就是这样一个例子,这个算法已经用了20多年了。完全抛弃这些已有功能模块,从头开始进行新系统是充满风险和错误的。
4.对系统需求的理解和系统的文档化如何?即使一个系统我们每天都在使用,我们仍然未必能完整了解真正的用户需求。有关系统的知识有可能分布在不同的用户组中;一些不常用的功能,我们也许会忘记。最后将需求汇集起来必须包括代码审查和与用户交流两个过程。
5.对旧系统的了解如何?大多数旧系统将表现层和业务逻辑层以及数据访问层混合在一起,现在的很多技术人员认为要梳理用这种方式写出的代码是很困难的。有一些工具可以用来找出其中的依赖关系,并帮助我们把表现层、业务逻辑层和数据访问层代码分开。
6.建设新系统,我们手中有哪些资源?现有的员工是否使用者所需要的新技术?如何在现有
团队掌握的专门技术和掌握新技术之间找到平衡。培训和指导都是需要付出代价的。
7.新系统上线的截止日期是什么时候?如果时间很紧,就要采取分阶段、逐步完成的办法。确定新系统实现中的关键因素有助于你制定一个分阶段实现的计划。
迁移方法
系统的迁移方法可以分为三类:用一个现存的软件包取代现有系统、新旧系统混合使用、重新开发一个新系统,每种方法各有优缺点。
用新的软件包 用新的软件包取代现有的系统不是一个可以轻易做出的决定。某些系统,如一个自己开发的数据系统、工作编排表或者消息队列系统,很明显可以用一个现存的商业软件取代。但是,大多数系统不是这么容易做出这种决定的。选择现存的软件包,需要仔细分析业务流程以及这个软件支持那些业务流程。在IT厂商的
推销过程中,很容易被诱惑购买他们的产品,最终需要很大的投入来修改以满足你的业务的需求,或者更糟糕,需要让你的业务使用这个软件包。
组合使用新旧系统 重建一个新系统是一个相当有诱惑力的建议。现在的商业系统至少有1800亿行代码在运行,其中不少还是COBOL语言编制的。深入这些应用内容,我们非常自信因为其中大多数代码都是我们自己写出来的。那么,我们为什么不重新开发一个新的系统,原因有两个:
成本和风险。现在的市场是由需求驱动的,对IT项目需要考虑
投资回报率(ROI)。
一个需要大笔预算、而在一到几年看不到任何结果的项目很可能不会被同意的。同时,这样的项目风险也是很高的。现有的系统是多年来随着业务流程的变化形成的,在短时间内重新开发一个同样复杂的系统很容易失败,而且经常需要更大的工作量。
重建新系统 通常,混合使用新旧系统是一个不错办法,但是,有些系统实在修修补补太多,也太零碎了,就可以考虑重新上一个全新的系统。不过,无论如何,那些特别复杂的业务逻辑还是值得重新加以利用的。有许多工具可以帮助我们完成这个工作。
迁移工具
下面我们按照迁移层次的顺序来介绍一些迁移工程中有用的工具。
GUI扩展工具
这些工具可以产生一个新的、通常是基于Web的前端,用来访问原有系统。如果促使我们迁移的旧系统的原因是需要用户从标准PC平台(或者远程访问),这些使用这些工具生成一个前端是一种有效的过渡方法。如果满足下面两个条件,这甚至有可能成为一个长期的解决办法:
1.应用的功能和业务逻辑完全满足当前和可预见的将来的需要。
2.应用支持所需的用户数没有任何问题。
这些工具大多依赖于屏幕抓取技术,很容易受到原有系统的扩展性和功能方面的限制。所以,最可能的情况是作为整个系统迁移过程中的第一步。
软件包裹器(Softwore wr......More↓↓↓