技术是难点,说服员工是难上之难
SOA项目主管必须清楚一点:对于SOA项目的实施,不能一次将所有的功能都加以实现,不能一口吃个胖子。在SOA项目中将风险最小化的一个方法是先将一些小的或有利于业务流程使用SOA模式构建相应的服务模块,这样可以让员工先适应这种新的服务模块,不至于使整个公司因为引入了新的IT系统而陷入混乱。ProCard的CIO Guido Sacchi表示,之所以引入SOA来构建新的IT系统,是出于几方面考虑的:首先,新的架构可以降低IT系统结构的复杂度;其次,可以减少系统的运营成本,同时,增加系统的灵活性。
为了减少整个项目的风险,他决定先对呼叫中心中的两个功能进行服务模块化——站内客户服务和离站信息收集,并将它们作为SOA的测试项目。之所以选择这两个功能是因为它们具有相对固定的项目预算,并且其运营成本相对较高。同时,如果这两个功能服务能够成功实现的话,那可以增加新的利润来源,并且提供新的SOA项目可以成功的证据。
原有的系统的复杂度很高,为完成系统功能,定义了很多复杂的接口,并且代码相当复杂。“如果我们想更改或增加系统的某些功能,我们必须为新的功能目标重写大量的代码。”Sacchhi说道,“比如,要想完成数据的抽取转换装载功能,我们必须针对不同的需求,重构这一功能模块。”但是,在SOA架构上,通过建立柔性的服务模块,就可以方便的利用已经建立的服务模块实现相应的系统功能,而不必为每个需求建立一个独立的功能模块。同时,利用SOA架构,也能节省大量的开发时间。并且,基于SOA架构更为便利的一点是,所实现的服务模块可以为不同的需求所用,就像砖块一样,为完成相应的功能,只需调用重组相应的服务模块即可。
Sacchi表示,基于SOA架构实现的站内客户服务和离站信息收集这两个功能模块,可以大大减少系统的响应时间。同时,SOA架构允许用户将不同的功能集成在一个统一的用户界面下,这样还可以免除用户在不同系统中切换操作之苦。使用SOA架构,开发人员还不必为每个系统构建不同的功能模块,不同系统中可以共享一些服务模块。
PorCard的COO Hill对SOA有着不同的体会,他说,当开发小组很快的掌握了SOA技术,并开发出相应的服务之后,迫使ProCard从原来的软件产品供应商转变成了服务供应商。这一转变也使得ProCard重新考虑原有的质量控制体系。原来,他们的质量控制包括从开发、测试直至最终的产品交付的全过程,但是,现在的情况不同了,很多环节是不可控的,也是不必去控制的,比如,可以使用Visa提供的相应功能模块作为中间件,在此基础上开发出具体的服务模块,同时,对后台的数据库系统也不必去过多的考虑,只要开发的服务模块能够调用数据库中的数据,完成相应的功能就可以了。这样就大大简化了整个开发的工作流程,时间上缩短了,效率自然得到了提高。
基于SOA的折中方案
实践告诉我们,一个成功的SOA项目的实施,依靠的不是热情和勇气,而是细致周密的论证部署。1-800-Flowers.com的CIO Enzo Micali说道,“很多SOA技术的坚定支持者希望我们对我们所持有的7种不同品牌提供一个共同的服务平台。但是,我们的本意是为每个品牌提供一套独立的服务体系。”
Micali表示,他领导了一个架构设计小组和两个开发小组,其中一个开发小组主要开发面向客户的应用服务,另一个主要开发核心系统服务,起初,他们的工作都是鉴定哪些项目是可以基于SOA架构进行重构的。“经过一段时间的工作,我们发现那些在业务流程中最基本最通用的功能是可以抽取出来,使用SOA架构进行重构。”同时,常识性的知识在平衡客户需求和软件功能方面起到了极大的作用。并且,他还强调了一点,整个系统的开发部署时间以及系统的性能是检验系统是否成功的关键标准,不必通盘考虑所有的服务功能,相反,独立实现某一部分的功能却是一个比较不错的系统开发模式,
Micali也同意SOA支持者,也认为SOA技术是先进的,但是,他表示,如果所有的用户能够有足够的耐心等待的话,他也会将所有的系统功能转移到SOA架构上来,但是,实际情况并不允许我们去这么做。同时,他还表示,即便是所开发的系统并不是急需的,只要认定系统可以转移到SOA架构的平台上来,一定要提前试着去实现。
实现SOA架构系统的好处
尽管我们在上面一再告诫要慎重实施SOA项目,但是实施SOA项目所带来的好处还是很多。比如,我们成功构建了一个通用的服务功能模块,那我们在下一次开发时可以直接调用这一功能模块。“从这个意义上讲,第二次开发时的开发成本为零。”Sacchi说道。他还强调,利用共同的服务模块,还可以大大减少系统的处理时间,减少在多个环节中浪费掉的不必要时间,从而使整个系统的运行更为快速便捷。
SOA项目能够带来的另一个好处是管理上的统一。对于SOA系统而言,要想成功实施一个系统,必须从企业整体来通盘考虑,成立专门的架构设计小组,确定整个企业业务流程运作的最佳路径。这样整个业务流程及信息系统的管理将会实现统一管理,改变过去各部门、各业务环节脱节的现象。
同时,这些SOA项目实施的先行者也提醒SOA项目主管,“不要希望能将大海的水煮开”,要想成功实施SOA系统,必须根据业务流程仔细分析其服务功能,有所侧重的逐一实现,最终使整个系统达到它最佳的性能。
文章来源于领测软件测试网 https://www.ltesting.net/