SOA的概念现在已经很普遍了,或者说被业界倏忽的有些“烂”了。有说,SOA是架构;有说,SOA是方法论;有说,SOA是EAI;有说,SOA是框架;有说,SOA从面向构件开始。很有意思,单从这么多不同的SOA理解来看,从另一角度体现了SOA的核心价值,就是其灵活多变性。每个厂商或集成商,基于不同的看问题视角,不同的知识和经验积累,不同的产品和服务,导致了这些概念的泛滥。
不过,这些概念从不同的角度来说都是正确的,只是解决的问题不同。就拿“SOA是EAI”来说,那是因为目前看到或讨论的众多SOA应用案例,做的就是企业应用之间集成这码事。借助于SOA技术(特别是ESB组件,辅助以BPEL流程引擎),企业可以实现不同应用系统之间基于标准的集成,实现信息共享,服务重用,流程集成。
EAI是上世纪90年代兴起的一个概念。企业的IT环境越来越复杂,形成诸多的“信息孤岛”,与此同时,为解决信息互通的问题,使得点对点的集成技术广泛应用,企业IT环境逐渐变成了类似“意大利面”的困境。如何从这堆杂乱无章的面团中获取有价值的信息,成为企业迫切希望解决的新问题,在这种情况下,EAI技术开始兴起,希望通过搭建企业集成骨干(Integration Backbone),通过消息代理(Message Broker)机制,实现从点对点技术到星状结构(Hub-and-spoken) 到消息总线技术(Message Bus)的技术飞跃,实现企业内部的各类资源(人员、业务和IT系统)之间的完美结合。EAI的覆盖面极其宽泛,在企业内部的技术实施范畴涵盖平台集成、数据集成、应用集成、流程集成等领域,同时,为解决企业之间的信息沟通,也提出了B2Bi(Business to Business Integration)技术。
SOA技术的兴起始于本世纪初。由于Web、XML等技术、规范和工具的不断成熟,在现实商业环境进一步趋向于全球融合、业务创新、超级竞争的情势下,如何更有效的打造敏捷企业成为了业界共识。能否从IT战略和架构层面使得IT系统建设可以快速的响应业务变化,支撑和驱动业务随需应变能力,这样的思考导致了SOA理念的复活和兴起。
大家可以先理解一下EAI和SOA的定义,会有一些有趣的发现。
l EAI定义:持续不断的进程,作用于基础架构,实现一个逻辑的业务操作环境,允许业务人员借助于IT手段轻易的部署新的或改变现有的业务流程。
l SOA定义:SOA 是一种架构面的方法论,用来产生松耦合、互通的业务服务,这些服务可轻易地在企业内和跨企业间共享并重复利用。
对比两者的定义,大家可以发现,EAI和SOA在某些方面是非常相似的,譬如都有打造敏捷企业的企图,也有协同业务域与IT域之间知识交流的想法。简单的说,两者之间最大的差异在于,EAI是被动的进行IT架构调整和重构去适应业务变化,而SOA则是主动的从业务服务(业务功能契约)的角度规划和设计IT系统,并通过灵活的IT架构去快速适应业务变化和进行业务创新。
下面的图示比较好的描述了两者之间的差异性。
http://space.itpub.net/batch.download.php?aid=9679
图一、软件架构演变史之EAI和SOA定位
软件基础架构的演变史就是一个不断向开放、标准、成熟、增值的发展史。从这个角度来看,EAI和SOA是两个时代的产物,就目前的IT架构来看,SOA已成为不二的选择。
http://space.itpub.net/batch.download.php?aid=9680
图二、不同集成路线的价值曲线
以上的集成价值曲线清晰显示,SOA Integration是当前最佳的企业应用集成手段,尽管在客户化方面需要相对大的投入,但在维护和变化调整方面,以离散服务为载体的业务呈现方式将极大的降低其更新和调整费用。
综上所述,SOA技术完全可以作用于EAI应用场景,并使之成为名副其实的面向业务的集成,完成从IT域到业务域的知识跨越,最大化业务价值创造;也使得企业IT架构变得开放、标准、灵活、扩展,更易于未来的集成和调整。
友情提示:本博客是我另一博客(http://space.itpub.net/16179196/ )的姊妹博客,如您关注最新的博客内容,请访问该链接。