【IT专家网独家】对于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的服务之间的信息传输变得非常复杂,也增加了很多的麻烦。
IT专家网原创文章,未经许可,严禁转载!

