您的位置: 网界网 > 周报全文 > 正文

[周报全文]架构的胜利

 ———SOA先行者的故事

2006年02月24日 14:08:06 | 作者:佚名 | 来源:$page.getBroMedia() | 查看本文手机版

摘要:尽管Con-Way公司的SOA行动在八年前就开始了,但面对许多挂着SOA标签的最新标准和最新技术

标签
SOA


        尽管Con-Way公司的SOA行动在八年前就开始了,但面对许多挂着SOA标签的最新标准和最新技术,Con-Way公司仍然持一种非常谨慎的态度,Con-Way坚持认为,如果企业在实施SOA时没有将注意力放在架构上,而是着眼于具体的技术,那么它就不能算是真正的SOA。

        在上世纪90年代,多数企业都在忙于开发或部署基于客户机/服务器的应用系统,Con-Way却决定在应用的开发和提供上采用一种更多基于组件的分布式方法。随着Con-Way公司SOA的不断发展,它非常有效地帮助这家公司适应商业变化,并避开了新技术带来的许多干扰效应,这主要是因为SOA的基本做法是将服务抽象化,使其更容易适应技术与商业的变化。

重写历史

        1997年,从物流管理企业CNF集团中独立出来运营的Con-Way公司,面临着重新改写应用系统以适应形势的转变。Con-Way公司最初的IT部门只有6名人员,目前,该公司的IT队伍已经发展到了约100人,Con-Way仍然会依靠CNF来提供Oracle Financials和PeopleSoft的应用,主要用于财务报告和人力资源管理,但是,Con-Way希望直接控制那些用于业务运营的应用,其中包括客户跟踪、计费、运输管理和其他一些核心功能。 

        根据IT人员的计算,如果采用传统的应用开发方法重写Cobol应用,并且使这些应用符合运输管理的需要,那么整个过程将耗去五年的时间,如果能够以组件的形式开发大型机应用,他们就可以实现分步开发,并不断提炼出新的组件,而不是坐等整个系统的完成。

        公司的IT小组为整个运输业务周期的服务流程建立了模型,即从装货请求到装货、中间转运和存储、交货,一直到最终的计费和支付。Con-Way公司负责企业架构的主管Praveen Sharabu 说:“通过编制商业逻辑和开发支持这一逻辑所需的软件组件,我们创造出自己的方法。而这种方法的精细程度,即所谓的粒度是非常重要的。我们得到的最宝贵的教训是,开发小组必须非常了解业务。他们必须清楚地知道整个业务流程,以及这些流程中所牵涉到的粒度。”

ccc

架构的重要性 

        在开始SOA的工作后不久,IT小组的成员们发现,他们低估了架构的重要性。其中的两位成员专门研究数据建模的工作,目的是确保各个组件中数据结构的连贯性。但他们很快就发现,光是数据建模本身还远远不够,还需要在架构设计和管理方面真正下一些功夫,只有这样才能避免重复工作,而且也不至于使组件间的依赖关系变得过于复杂。今天,每一项开发工作都必须经过架构小组的认可,而架构小组已经成为了规划和开发的权威部门。Sharabu说:“架构小组的任务就是负责控制实施过程的整体规划。” 

        当然,开发工作不仅仅是编写代码,更重要的是开发商业逻辑。该小组使用CA公司的COOL:Gen开发平台,而该平台后来演变成了用于制订商业逻辑的IEF平台,同时小组也依靠它来生成组件代码。大型机组件在输出时仍然采用Cobol代码的形式,由于大型机所具备的高交易性能,Con-Way仍然要使用IBM大型机来运行DB2数据库和CICS应用。

        Con-Way的应用基本上都是特定商业逻辑的包装和组合,而这些商业逻辑会调用自己所需的各种组件,将数据从一个组件传递到另外一个组件,从而完成例如查找上个月客户订单和生成相关发票等任务。 

        在某些情况下,组件会与Con-Way购买的打包应用通信。例如,虽然Con-Way公司主要采用IBM的系统,但它也使用BEA Systems的WebLogic服务器提供其他的一些服务。

适应不断发展的服务 

        在1999年,当七个大型机的应用开发已经完成了三个时,Con-Way发现他们的客户希望通过Internet访问订单和跟踪信息,而当时Internet才刚刚开始被看作是一种服务提供平台。因此,Con-Way开始创建一些充当Web图形界面与CICS绿屏显示界面之间的代理程序。Sharabu说:“我们所要做的只是将我们的组件开放给Web。”此后,Con-Way的开发小组利用COM和Visual Basic编写出这些最初的组件并且提供给客户,客户只须将这些组件安装在自己的PC机上就可使用,而且服务分配过程的管理是由Con-Way公司利用Microsoft IIS来实现的。

        此后不久,Con-Way转而采用Java,因为公司的IT人员认为,客户端使用Java的效果最好(+微信关注网络世界),因为它既可以提供图形用户界面,又可以实现瘦客户机的零部署优势。Sharabu说:“Java的功能多数都与用户界面和展现有关,而且它可以将各种商业组件结合在一起。即使到现在,我们仍然是这样做的。”客户通常使用基于浏览器的SSL连接至Con-Way的系统,也有一些客户使用SOAP和SSL直接集成到该公司的系统中。系统中的数据通常是通过XML展示出来的,也可以按照常用报告文件的格式展示,例如Microsoft Word和Excel。

        2003年,Con-Way公司扩展了自己的架构,使其可以与数据仓库协同工作。数据仓库可以将数据从母公司的Oracle系统中复制出来。公司部署了一台Tibco EAI服务器,并将其大型机应用与CNF的Oracle Financials和PeopleSoft应用连接起来。通过这种方式,两家公司的系统就可以实现互动。

实施经验:前卫+谨慎

        ■ 实施方法:以架构为基础,以业务流程为灵魂,以合适的技术支持服务组件的实现。

        ■ 实施效果:能够迅速地对商业需求做出反应,减少开发的时间和费用。

        ■ 实施诀窍:通过成立架构小组来加强执行力,IT人员深刻理解商业流程来保证最适当的组件粒度,灵活使用各种技术来实现SOA。

        尽管Con-Way公司的行动在八年前就开始了,但其基本架构到目前仍然保持稳定,这使得公司能够不断地改变技术,同时保留了商业逻辑,并根据市场需求的变化添加新的商业逻辑。SOA还使Con-Way能够维持多种类型的技术,且每一种都适用于某些特定的应用,而且也不会给公司带来太多集成方面的挑战。

        面对许多挂着SOA标签的最新标准和最新技术,Con-Way公司仍然持有一种非常谨慎的态度。Sharabu说:“我们并不急着采用每一种最新的技术、过程、标准。我们更愿意对这些技术进行测试和分析,拿它与我们的业务进行关联性对比,我们只会采用真正对我们有促进意义的东西。” 

        事实上,Sharabu坚持认为,如果某个SOA没有将注意力放在架构上,而是着眼于具体的技术,那么它就不能算是真正的SOA。他说:“很多企业都想拿到万能的技术。但我认为,最关键的是奠定一个坚实的基础。”

[责任编辑:程永来 cheng_yonglai@cnw.com.cn]