SOA和ESB的区别
2008-04-01 17:35
162 查看
本期的BIJ上面的一片文章阐述了SOA和ESB的区别,让我很感兴趣。原来看这两个技术的时候都是从技术层面上看,而没有从使用者的层面上看。
SOA和传统开发的最大区别:
传统的B/S或者C/S的开发是横向的,表现层,业务层,数据层是彼此独立,分开来开发,并且各自部署在各自的服务器上的。在这种横向架构中,一个项目不管有多少客户,必须由一个公司,或多个公司遵守相同的组件规则来完成开发。
而SOA提出的概念是纵向概念。每一个服务都是一个独立部署的单元,可以完全由独立单位开发。部署在独立服务器上,不管底层如何实现,只要最后使用WSDL的接口,可以被调用就行了。例如下订单服务,和信用检查服务,可以是完全独立的服务。由不同单位开发,并且在任何程序中可以公用。
所以SOA是抽象的服务,它是直接面对客户的。
ESB实际上更象是企业消息总线。它是面向开发者的,因为让客户理解总线很困难。
就像一个电脑,从客户的角度理解,它的功能有开机,运行操作系统。而内部的总线怎么传递,用户不需要知道,只有开发人员需要知道。
因此,使用SOA可以
1 直接用BPEL编织SOA,用户用自己的图形编辑器定义业务流程。客户更容易理解。
2 使用ESB,当所有服务都在总线上时候,服务调用实际上是一种消息调用。客户不易理解,是面向开发者统一消息服务接口的方法。
SOA和传统开发的最大区别:
传统的B/S或者C/S的开发是横向的,表现层,业务层,数据层是彼此独立,分开来开发,并且各自部署在各自的服务器上的。在这种横向架构中,一个项目不管有多少客户,必须由一个公司,或多个公司遵守相同的组件规则来完成开发。
而SOA提出的概念是纵向概念。每一个服务都是一个独立部署的单元,可以完全由独立单位开发。部署在独立服务器上,不管底层如何实现,只要最后使用WSDL的接口,可以被调用就行了。例如下订单服务,和信用检查服务,可以是完全独立的服务。由不同单位开发,并且在任何程序中可以公用。
所以SOA是抽象的服务,它是直接面对客户的。
ESB实际上更象是企业消息总线。它是面向开发者的,因为让客户理解总线很困难。
就像一个电脑,从客户的角度理解,它的功能有开机,运行操作系统。而内部的总线怎么传递,用户不需要知道,只有开发人员需要知道。
因此,使用SOA可以
1 直接用BPEL编织SOA,用户用自己的图形编辑器定义业务流程。客户更容易理解。
2 使用ESB,当所有服务都在总线上时候,服务调用实际上是一种消息调用。客户不易理解,是面向开发者统一消息服务接口的方法。
相关文章推荐
- Open-source ERP 公司 Compiere 任命新的CEO
- 世界上最简单的模板,比Smarty,Xtemplate还要强大
- IBM实验室对SWT, Swing 和 AWT 的特征比较
- 使用Spring JMS简化异步消息处理
- 项目管理入门
- 项目管理:如何造“英雄”
- GMM算法的个人理解
- 在FreeBSD下安装mysql+apache+php
- 写在Blog访问量超过15万次
- 使用os3grid做一个基于Web和Ajax的工资表录入界面
- 选取合适的dHtml Grid方案
- ITS-CMS 2.0 URL设计构想
- Apache在Windows下使用Mod_rewrite模块
- Java下将汉字转换为拼音的包pinyin4j
- 推荐一个UTF-8或者Unicode编辑的免费软件
- 异常处理的反模式
- eXo ESB 1.0 M1 发布
- 推荐一个基于Ajax的查询API网站
- 项目经理需知的Java技术问题
- 用Dede再次大战一个工资管理软件