本期的BIJ上面的一片文章阐述了SOA和ESB的区别,让我很感兴趣。原来看这两个技术的时候都是从技术层面上看,而没有从使用者的层面上看。
SOA和传统开发的最大区别:
传统的B/S或者C/S的开发是横向的,表现层,业务层,数据层是彼此独立,分开来开发,并且各自部署在各自的服务器上的。在这种横向架构中,一个项目不管有多少客户,必须由一个公司,或多个公司遵守相同的组件规则来完成开发。
而SOA提出的概念是纵向概念。每一个服务都是一个独立部署的单元,可以完全由独立单位开发。部署在独立服务器上,不管底层如何实现,只要最后使用WSDL的接口,可以被调用就行了。例如下订单服务,和信用检查服务,可以是完全独立的服务。由不同单位开发,并且在任何程序中可以公用。
所以SOA是抽象的服务,它是直接面对客户的。
ESB实际上更象是企业消息总线。它是面向开发者的,因为让客户理解总线很困难。
就像一个电脑,从客户的角度理解,它的功能有开机,运行操作系统。而内部的总线怎么传递,用户不需要知道,只有开发人员需要知道。
因此,使用SOA可以
1 直接用BPEL编织SOA,用户用自己的图形编辑器定义业务流程。客户更容易理解。
2 使用ESB,当所有服务都在总线上时候,服务调用实际上是一种消息调用。客户不易理解,是面向开发者统一消息服务接口的方法。
文章来源于领测软件测试网 https://www.ltesting.net/