Avnet的SOA环境有利可图

早在1999年,Avnet公司的高级管理人员就意识到事情必须改变。一系列的收购使得这家电子元器件分销商拥有大量的应用程序和系统,而这些应用程序和系统缺乏互操作性,使得运营变得更加复杂。这一问题直接阻碍了该公司向客户提供电子商务服务,并超越传统订单管理和交付的新目标。兑现电子商务承诺需要客户始终如一的结果,无论他们可能在哪里或使用什么渠道。

新上任的IT副总裁Bill Chapman认为,实现这一转变的唯一方法是采用基于组件的软件体系结构,尽可能使用通用功能,而不是点对点集成的老鼠窝。”这个概念是在所有重要的应用程序和连接(包括外部应用程序和连接)中创建通用的互连性,”查普曼说,他现在是Avnet的首席技术官。另一个关键要求是:尽可能使用现有系统以降低成本。”分销是一项精益业务,因此我们希望一次又一次地利用我们的解决方案,”他说。

集成不同的系统需要一种模块化的、灵活的方法,对于这种方法,基于服务的体系结构(稍后称为面向服务的体系结构或SOA)是一种自然的选择。但在Avnet开发公共服务之前,它需要一个一致的操作数据模型,以确保在执行事务时得到一致的结果,而不管客户是谁,也不管Avnet系统在做什么工作。

构建公共数据模型

“我们对数据的处理是SOA核心所在的地方,”企业集成主管SeanValcamp说。在查普曼之后不久,Valcamp和他的五个数据架构师团队设计了基本的组件架构,定义了一个独立的操作数据层,作为Avnet的SOA环境的基础。

他们使用规范模型为数据层次结构中的每个域创建服务定义,以及它们之间的结构和关系。然后,团队将数据模型实现到一个操作数据存储中,以扩充应用程序知识库和业务事务。

例如,Avnet创建了一个模型来表示人员、组织和业务单位——以及公司和公司与人员之间的关系——以补充轻量级目录访问协议概要文件。这是至关重要的,因为它让Avnet跟踪供应商和客户之间的关系,因此,例如,一个只转售惠普公司产品的客户看不到IBM的产品定价。

内外联动

Avnet最初专注于简化许多内部系统的集成。由于成本太高,不可能再进行拆卸和更换。但查普曼也希望降低维护现有点对点连接的成本和复杂性。

答案是利用Avnet在webMethods中间件上的投资,用通用服务取代点对点连接器,从而确保对流程或数据模型的任何更改都能一致地应用于全球所有系统。”我们的目标是在不同的供应商之间表现出共同的业务流程,”查普曼说。架构(architecture)团队制定了所有遗留系统中的功能,以确定功能、不一致性和差距。然后,开发人员开始创建服务来处理翻译,填补缺失的部分,并以其他方式确保所有系统的通用功能。本质上,Avnet通过服务实现系统集成。

查普曼一直设想将同样的方法扩展到外部客户,因为他希望他们在电子商务产品上线时使用多种渠道与Avnet进行交互。但这一天来得比预期的要早,2000年初,主要客户惠普(HP)表示,希望Avnet支持RosettaNet电子商务协议查普曼回忆说:“这暴露了改变我们内部系统基础设施的必要性。”。该公司仍然依赖与客户之间的直接连接,每个客户都有单独的应用程序编程接口(API)。要想把RosettaNet做好,这需要改变。

解决方案是将客户交互与内部系统分开,这样客户就可以选择他们首选的连接方式,使用外部网门户而不影响Avnet内部系统的操作。”我们现在可以创建一个定制层来适应我们的客户需求:B2B你的方式,而不是B2B我们的方式,”查普曼说。这些选择包括直接链接到客户ERP系统以及使客户能够手动输入订单的网页。

与内部系统一样,Avnet在关键的遗留应用程序周围部署了包装器,并为缺失的功能创建了新的服务,所有这些都是通过门户的通用api访问的。在某些情况下,这意味着提供适配器供客户使用;在另一些情况下,这意味着将数据转换为客户喜欢的任何格式,从IDoc到EDI再到RosettaNet。

并购挑战

在RosettaNet努力之后不久,Avnet面临着一个新的集成挑战:该公司于2000年夏天收购了IBM的分销商Savoir技术集团。随着业务的发展,Avnet希望为惠普及其存储产品客户提供新的应用程序。

不过,Avnet首先必须让Savoir前端与Avnet后端协同工作。”查普曼说:“我们把他们所有的前端应用程序都带到我们的系统上运行了三个月。”。该公司通过创建新的服务将Savoir的数据和基本功能转换为Avnet的通用模型来实现这一目的。

有了后端支持,Avnet可以将Savoir前端扩展到所有客户。它将Savoir的31个应用程序(包括订单状态、退货管理、发票管理、客户安全管理、潜在客户管理、信用报告和发票)重构为与Avnet系统并行运行的服务,而不是强迫所有系统依赖于单一的Savoir平台。

今天,信息以各种形式从不同的客户机传递到一组服务中,这些服务根据操作数据层的标准进行转换,同时标记沿途的异常情况。然后,这些服务将数据以所需的格式移动到Avnet的各种ERP和事务处理系统,并确保流程的一致性,无论特定Avnet部门使用什么应用程序。

最终的结果是一个内外松散耦合的框架。”这种体系结构允许Avnet环境中的任何应用程序通过任何一种或多种通信工具(如XML、objects、JMS(Java消息服务)、FTP、RosettaNet、EDI和电子邮件)随时向其他应用程序或贸易伙伴提供服务。

积木积木

随着Avnet建立其服务,它建立了常识标准,以确保一个成功的结果。首先,每个服务都需要在其他地方重用,因此其开发成本可以分摊。其次,服务抽象必须能够容纳可能频繁更改的数据表示。第三,数据源本身的位置必须能够经常更改。正如Valcamp所指出的,“您所关心的只是调用一个接口,而不是调用接口所在的位置。”

与此同时,Avnet希望尽可能重用其现有的技术和人类技能。例如,该公司在1999年开始使用webMethods作为消息传递中间件。当时没有商业企业服务总线(ESB)。因此,Avnet使用该中间件作为其公共网关,在服务、门户和应用程序之间路由数据和函数调用,并提供其服务策略,例如安全策略。

在webMethods没有提供所需的ESB功能的地方,Avnet添加了它,比如用于将电子数据交换(EDI)映射到XML的增强翻译服务。随着webMethods逐渐增加了更多面向服务的功能(如服务目录、通用SOAP实现和SOA治理功能),Avnet使用了现成的webMethods特性,而不是继续支持其自行开发的代码。到2002年底,Avnet已经部署了一个升级的webMethods作为其ESB。

同样,由于Web服务标准和JMS仍在不断发展,Avnet必须使用webMethods或SAP专有接口、AS/400应用程序和基于IMS的翻译、路由和通用通信标准系统构建自己的消息传递挂钩。”我们的需求领先于产品套件的位置,”瓦尔坎普说。

利用现有技术的另一个例子是Avnet继续使用多个ERP系统,随着公司进行全球收购,ERP系统的数量不断增长。例如,欧洲的技术解决方案业务部门使用Command Frida ERP系统。查普曼说,尽管这个系统已经存在了十多年,“但通过SOA,我们可以对它进行扩充,使之成为最先进的系统,而不是让它退役。现在,我们可以根据IT问题而不是业务流程需求来决定退休路线图。”

他说,当公司最终用SAP系统取代Frida时,SOA方法意味着流程、数据流和数据模型不会改变,因此业务将能够按原样运行,而不是适应SAP的方法,或者需要花费昂贵的集成努力才能使SAP以Avnet方式工作。

同样,Avnet可以继续让编程人员使用他们最熟悉的开发环境,比如Java和Microsoft.Net。Valcamp说:“只要服务具有相同的接口和数据模型,它们就可以一致地交换数据和结果。”我们不会为了Java而放弃.Net,反之亦然。查普曼说,成功实现异构的关键在于服务的设计。开发人员需要花时间来确保它们是真正抽象的,没有基于技术风格的依赖关系。

计算收益

Chapman说,SOA方法还为应用程序开发提供了可衡量的好处,例如报价到订单流程的效率提高了30%,订单管理的周期从一天多缩短到几分钟。与那些没有使用SOA的IT项目相比,Avnet的开发时间减少了45%。

有些好处很难量化,因为它们来自于业务活动的增加,这可能是由于公司能够更快、更有效地执行任务。