SOA和ESB的区别

来源:互联网 发布:商品交易软件 编辑:程序博客网 时间:2024/04/28 18:43

本期的BIJ上面的一片文章阐述了SOA和ESB的区别,让我很感兴趣。原来看这两个技术的时候都是从技术层面上看,而没有从使用者的层面上看。

SOA和传统开发的最大区别:

传统的B/S或者C/S的开发是横向的,表现层,业务层,数据层是彼此独立,分开来开发,并且各自部署在各自的服务器上的。在这种横向架构中,一个项目不管有多少客户,必须由一个公司,或多个公司遵守相同的组件规则来完成开发。

而SOA提出的概念是纵向概念。每一个服务都是一个独立部署的单元,可以完全由独立单位开发。部署在独立服务器上,不管底层如何实现,只要最后使用WSDL的接口,可以被调用就行了。例如下订单服务,和信用检查服务,可以是完全独立的服务。由不同单位开发,并且在任何程序中可以公用。

所以SOA是抽象的服务,它是直接面对客户的。

ESB实际上更象是企业消息总线。它是面向开发者的,因为让客户理解总线很困难。

就像一个电脑,从客户的角度理解,它的功能有开机,运行操作系统。而内部的总线怎么传递,用户不需要知道,只有开发人员需要知道。

因此,使用SOA可以

1 直接用BPEL编织SOA,用户用自己的图形编辑器定义业务流程。客户更容易理解。

2 使用ESB,当所有服务都在总线上时候,服务调用实际上是一种消息调用。客户不易理解,是面向开发者统一消息服务接口的方法。

 




原创粉丝点击