将SOA与EDA结合
对于SOA最为明智的理解是对于处理散乱的信息处理功能,能够将业务流程作为整体指导并分成若干的不同的组件,发展成型的独立应用服务,并根据不同的业务应用需求将这些组件有选择性的匹配起来。在SOA的基础上,这些不同的功能模块组件能够像积木一样组合,同时也可以几乎无限的分散成各个块。
当然,并不是所有的业务都是那么的具有可分散性,而且对于业务的进展也是很难去估计的,相反,他们更多的依赖于具体的序列事件。航空公司是一个典型的事件驱动型流程例子,因此他们通常都有一套EDA来处理事件。美国联合航空中间件工程经理Ramnath CidamBI说:“EDA非常以流程为导向,而SOA则是负责离散黑盒子。”两者各司其职。他还指出毕竟,航空公司也有自己的交易系统,如订票、座位安排等等,并不仅仅是限于飞机着陆调度燃料卡车或航班到达后更新航班状态之类的事件驱动系统。
联合航空一直以来使用IBM Websphere作为其消息总线投资其EDA系统,长达七年。在过去的几年中,它开始投入SOA来操作在联合航空网站上使用的现代化Web服务。CidamBI表示:但是,这两种环境是截然不同的,因此他们应该是并行存在的。然而,这一切都在改变,因为公司开始其内部操作中加入交易服务,如以短信通知客服代表(使用Web服务)他们当天的行程,通过HR系统得知值班、病假人员等等来向各个机场登机口安排人员。这使Web服务与事件驱动流程处于同一环境中,使得航空公司在UnITed.com程式外开始发展SOA。
联合航空的挑战在于在存在并需要两种架构的行业中如何建设和实施服务。虽然航空公司内部运转需要两个架构,它不能将之完全区分对待。毕竟,航班的取消(一个事件)也会影响到交易系统(如重新安排航班,更新以网络为基础的航班信息查询工具或是开立信用凭证)。许多流程都同时具有事件与交易的成分:当客服代表从交易系统拿到他们当天的行程,由于航班取消、天气关系的延误等都会很快会使该时间表颇负争议。事件驱动系统可以追踪航班状态和调度交易系统,而后通过定期检测该状态更新员工分配。(飞行显示器使用相同的程序)。
最大的挑战还在于解决信息系统。CidamBI指出“ESB在Web服务标准之外并无标准可言,因此如何操作事件驱动服务并不很明确”。Cidambi运用ESB同时针对SOA和EDA,因为这两者在处理信息传输,数据转换和更重要的数据流程的时候有着杰出的效果.
就目前的应用看来,美国联合航空公司同时拥有两个ESB系统,其中一个是针对于EDA的服务组件,而另一个则是针对于SOA的服务组件。他们使用IBM的WebSphere用以整合,针对EDA的服务组件提供一个类似于出版和订阅的通讯平台,各项服务之间的传输,事件的传输变得有必要并且易操作,这也就是很容易理解的EDA ESB。至于传输方面,现有的J2EE平台应用对于信息的导向非常有利,所以他们使用JMS(Java 消息服务)作为消息传输标准而不是Web服务。
针对SOA的服务组件,美国联合航空公司采用的是BEA的AquaLogic ESB产品,CidamBI对此的解释是BEA的这款产品是一个更新的平台同时也是以SOA最新理念为导向的,同时它也更适合公司内部所使用的WebLogic应用服务器环境和Eclipse发展环境。“AquaLogic是最适合WebLogic的,也最能够在这个应用服务器之上发挥作用。” Cidambi说道,使用AquaLogic将不会再需要进行更多的整合工作。
对于EDA的服务组件之所以没有采用AquaLogic也是出于减少不必要的工作这一目的:美国联合航空公司已经连续7年使用WebSphere了,在这个平台上进行了最优的调整甚至是总结出了一套完整的工作指南,并且,WebSphere在这7年的使用中表现的非常出色,如果一旦涉及到要将其移植到一个别的ESB,比如说AquaLogic,必定会使之前的工作出现中断和破坏,一些无法意料的差错也会是在所难免的,同时,对于新的ESB来说也意味着很大一部分工作得重头再来一遍。
对于SOA和EDA之间的传输CidamBI仍旧面临着一个很大的问题,而这个问题也是困扰已久的问题,两者之间缺乏严谨标准的XML模式,让EDA与SOA的服务之间的信息传输变得非常复杂,也增加了很多的麻烦。
金融的服务顺从性自动化
大部门的公司之所以对SOA理念情有独钟是因为清楚的认识到SOA能够大幅度缩短应用程序开发周期。但是,一些以SOA为指导的开发人员发现实际上有一些关键的服务治理如果处理不当将会严重降低开发速度,而不会带来理想中的开发速度。来自财经出版和信息服务公司,Thomson金融的产品核心服务管理副总裁Vladimir Mitevski说道,这是他们公司在开始SOA征途初期的时候所发现的一个令人惊讶的事实。
Mitevski指出:“如果要真的成为一个对企业产品具有指导意义的资产,一个服务需要有着许多极其严格的要求和实现策略。”很多要求看起来是非常苛刻的,比如说一些基本的XML元素名称不能用缩写,必须是字典里真正有的字,举例来说,在某些系统里的登陆程序,用户名称和密码必须是有规范要求的。之所以会有这样苛刻的要求必定是有着充足的理由。它他补充道,当你只是有着很少的一些服务时,企业的架构团队能够很容易的理解这些问题并作出正确及时的处理,但是,一旦服务开始达到一个量的时候,如果没有这些苛刻的要求,架构团队肯定则会出现种种的疏漏,工作量和工作压力都无法缓解,更严重的是如何处理服务的瓶颈将无法很好的解决。
Thomson金融有着无数的服务组件,但是相对的他们的架构团队成员则并不是很多,这正式缘于他们对这些服务组件有着极其标准的统一与要求,所以才能够很快的解决服务组件的一些相关问题。“我们不用担心每个服务组件的粒度问题,不用担心他们是如何在整个流程中怎样进行的。” Mitevski说道。只有当服务组件能够达到这样的一个要求时才会被允许进入到库中。同样,新的服务组件在得到应用之前也必须要经过这样的评估才会允许注册入库,然后再可供产品使用。Mitevski还说道:“因为得考虑让库中的服务组件能够有一个大的规模,但是基于这样的评估标准,这对于架构方面的工作人员而言确实是个难度不小的瓶颈问题。”
降低这些服务组件的顺从性并不是一个好的解决方法,这都是由所需要面对的关键应用的性质所决定的,诸如单点服务登陆,对于分析师和交易人员的基于金融市场信息的Web服务,基于网络的财务分析和服务……这些都是服务组件严谨性的苛刻前提。
Thomson公司对于遵从工作量问题的解决方案是求助于自动化、使用WebLavers的政策评估工具。Mitevski说:“这些工具是很有效的,不会错过任何一个违反案例。”为这些工具标准的遵从性制定政策是需要时间的,更关键的是架构师需要评估工具分析来确定特定的事件是否重复出现,这是否意味着开发人员对于关键政策的理解不够或者架构中的模糊点存在。尽管Mitevski发现许多违反政策案例都有由于开发人员走捷径而造成的,他还是指出:这能帮助我们看到应该怎么做更好,而一些政策的确需要调整。除少数发生的违反规定的情况外,架构师还将决定甚么时候给与开发人员例外的权限,而这些额外权限将被写上注册表以告知其他用户。
让服务组件顺从性自动化给Thomson金融带来的最大好处则是服务组件开始变得更加灵动。Mitevski说:“曾经需要20个人参与的大的流程项目,在自动化实现了之后仅仅只是需要一个人就能顺利完成。”
让客户整合简单化
一家侧重于制造服务的公司需要容纳范围广泛的客户整合,如不同系统间帐单、预测和订单系统。然而随着你的客户系统的增长和演变,你将很难管理这些点对点的沟通。这是许多制造商转向交易枢纽-VANs(增值网络)第三方供应商的原因,这样一来对于每一组消费供货关系,双方只需要担心VAN的连接一个方面。
VANs就不太适合应用于定制程序,当你与客户涉及到此时,这种方法就会失败。Jabil是一家电子产品制造商,面临着其两难的抉择:手工维护所有定制应用程序和界面。Jabil拥有5000多家贸易伙伴,虽然大多数都能通过VAN方案来处理,但是有50家客户是需要特殊的沟通机制或业务流程的,因此Sterling Commerce VAN应运而生。该公司电子商务经理Lowel Gilvin回忆说:通常来说每一个客户都会有好几个这样的特制连接组合。这种情况需要改变,因此Jabil按照SOA原则用以服务为基础的连接替代了绝大多数的定制连接,并使得常见功能可以被再利用。
第一步就是分将如订单到付款管理,预测和库存发送等等的业务流程从沟通流程中分散出来。Jabil目前已经为多数沟通机制制定了服务标准,例如AS1 (适用性声明1),AS2(适用性声明2)和FTP,以及为XML、平面文件,Excel和SAP的iDocs格式都有各自的数据处理服务。它为每一个客户将适当的沟通服务、数据处理服务和业务服务组合到一起。在大多数情况中,这些操作都是通过表格和元数据自动进行的。Gilvin指出:在某些情况下,客户也许是基于分工要使用一个以上的机制,那么这些表格就要处理这些不同的机制。
Gilvin还说:SOA原则下提取、模块性和服务组合通常是管用的。但在一些情况下,特殊要求不能仅仅通过组合服务得到满足,因此Jabil仍然使用一次性整合去维护。但即使在这里,Jabil往往可以将SOA方案用在部分的整合当中。举例来说,XML和SSL证书验证不能通过标准化服务来处理,因为证书都是少有的,但Jabil可以使用一种硬布线数据处理服务将适当的通信和业务服务组合起来,在三分之二的整合中保持了SOA的重组和一致性的益处。
Jabil Sterling Commerce公司的Gentran Integration Suite来实现信息、服务注册和进行服务的管理和开发,而不是用ESB管理信息,注册表来管理服务注册,或是面向SOA发展环境开发服务。该套装是专为供应链的互动而设计的,这是jabil所要管理的一切了。这个有限的范围让Jabil能依赖于工具嵌入式架构。Gilvin指出:我们的标准化业务流程是很小的。