首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 数据库开发 | 移动开发 | 游戏开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  软件工程首页 | 软件工程 | 项目管理 | 软件测试 | 配置管理 | 项目文档 | UML | CMM 认证
  您现在的位置:天新网 > 软件开发 > 软件工程 > 软件工程
以ESB为导向建立SOA是有害的
http://dev.21tx.com 2007年09月05日 论坛整理

每日文章精萃
.Net:一个简单的.net remoting客户端例 Java:最简单的编写基于线程的代码的方法
ASP:ASP实用大全-实战ASP(8) PHP:基于PHP的聊天室(三)
JSP:编写线程安全的JSP程序(2) CGI:用Perl制作留言本实例之三
VB:.NET和VB编程创建SQL Server VC:动态改变鼠标指针形状

  Bobby Woolf是《EntERPrise Application Integration Patterns》的合作者,也在IBM任职WebSphere SOA与J2EE顾问,他写了一篇文章来质疑把ESB当作SOA的实现基础是否正当(参阅文后注释*)。

  客户常常希望单纯构建ESB,因为这样可以避开难搞的业务需求,专心解决技术上的挑战。单纯构建ESB是IT人员的梦想,这样他们可以先建立ESB,然后指望以后会有SOA跟上来利用它。这种以ESB为导向的架构丢掉了SOA的优势。这种架构没有产生业务价值。实际上,花费了成本却没有收获直接的利益。

  Bobby的文章写得很风趣。但引发的争论是严肃的,而且自Dave Chappell发明出“连接优先(Connectivity-First)”这个新词组,争论就愈演愈烈。跟契约优先(Contract-First)这个词组类似,部署ESB就像以“连接优先”的方式开始你的SOA。Bobby认为以ESB为导向的架构方式

  ……有其固有的缺陷,它建立的连接性可能根本就没有人打算去用……只有当你实际需要一样东西,才去实现它,决不要仅仅因为你预见到未来的需要。

  OASIS的《SOA Reference Model》并没有确切提到“连接性(connectivity)”,但它提出了通讯基础设施的概念:

  通讯基础设施的主要任务是促进信息以及意图的交换……特别是当交换的发生跨越了所有权边界的情况下,对数据的解释是一个关键问题。对数据的解释必须在服务交互的参与者当中保持一致。

  习惯上SOA架构参考,包括来自IBM的参考在内,总是把ESB放在一个显著的地位上。Dave Chappell解释了ESB在本质上是一个服务容器,附带有专门的通讯基础设施,用来连接同处在一个容器内的服务。

  服务容器是抽象的服务端点(endpoint)的具体表现,它实现了服务接口。服务容器是一个能让服务组件寄宿其中的远程进程。从这个角度来说,它跟应用服务器容器有几分相似,只不过它的专门目的是寄宿集成的服务。

  别让Bobby的幽默掩盖了他的观点。Bobby不同意Joe McKendrick和Dave Linthicum把他的观点解读成ESB完全无用。而我自己多年前也写过一系列文章,题为《跳下公共汽车(总线),打辆的》,我在其中质疑了对通用的通讯机制的需要。不过,带有专门的通讯基础设施(如Dave Chappell所描述)的服务容器仍然是非常有用的,JBI规范的领导Ron Ten-Hove解释说:

  ·服务容器常常把各种IT资产连接到ESB上,

  而ESB:

  ·具有可靠的消息系统,以供服务容器交互。

  ·提供消息转换服务。

  ·提供消息路由服务。

  ·为控制对服务的访问提供安全功能。

  ·可被集中管理,虽然它是一个分布式系统。

  ·允许对服务的渐进式改变,而不需要停机或者其他对系统可用性的干扰。

  这些功能(以及其他更多功能)对于很多类型的服务来说都是基本的要求。CBDIForum的D. Sprott就列举了一系列模式,如果没有ESB将很难实现它们。比如用ESB的路由机制来实现服务版本化(Service Versioning)的策略。

  当然,随着WS-*标准集逐渐完整(WS-TX已经完成,可靠消息通讯也接近完成**),会抢掉通讯基础设施的一点点风头,但一个高效的服务容器仍然是成功的企业级SOA的关键。如果厂商们开始大谈他们的“服务容器”而非“总线”,我也不会感到奇怪。毫无疑问,你会开始把各种功能装进服务容器。

  Bobby的文章幽默地表达了作为顾问的失落,当面对着一些对SOA一知半解的IT组织,为了跟上荒唐的进度要求,在压力驱使下试图表现出任何形式的进步。毫无疑问,最终完成的一堆毫无业务价值的东西,会被怪罪到顾问身上。我觉得Bobby给我们提了个醒,我总结如下:“不顾情况,一味使用ESB可能是有害的”。这句话可能对任何技术都成立。

  *Bobby对他的文章作了一些澄清:“ESB是好的;单纯的ESB项目是坏的。让架构围绕服务,而非总线。这样说够清楚了吧?!:-)”

  **如同pascal所指出,随着WS Reliable Messaging在2007年6月作为OASIS标准发布,全套标准已经完整。

  

上一篇: SOA中的数据之将数据转换成信息
下一篇: 微软架构师谈编程语言发展之五

编辑推荐
相关内容
·SOA从试点到普及还需要什么?
·SOA中的数据之将数据转换成信息
·以ESB为导向建立SOA是有害的
·SaaS获得iPhone意外助力
·开源是SOA的未来之路吗?
·“寻找圣杯的任务”——度量软件之美
·代码检测:Code Review与CheckStyle
·软件项目管理中的风险管理研究
·软件开发中项目需求管理简述
·需求调研分析中的项目干系人概念
·为什么要用UML建模之面向对象建模
·为什么要用UML建模之建模原理
·统一建模语言UML轻松入门之综合实例
·统一建模语言UML轻松入门之动态建模
·统一建模语言UML轻松入门之类和对象
·统一建模语言UML轻松入门之用例
·统一建模语言UML轻松入门之基本概念
·项目经理:做好项目开始阶段的九条经验
·测试工具的选择和使用
·几款开放源代码的软件测试工具介绍
最近更新
人气最热
·SOA中的数据之将数据转换成信息
·微软架构师谈编程语言发展之五
·SOA方法学和其他方法学的比较
·《程序员》:SOA与业务敏捷
·通过一个真实故事理解SOA监管
·微软架构师谈编程语言发展之三
·微软架构师谈编程语言发展之二
·微软架构师谈编程语言发展之一
·SaaS获得iPhone意外助力
·APP对决Web3S:探索RESTful协议之路
·商场荧屏导购展板系统软件需求说明书
·如何编写高质量“软件需求说明书”
·统一建模语言UML轻松入门之动态建模
·获取用户需求的沟通技巧之一
·管理信息系统需求调研分析指南
·关于软件原型方法若干问题的讨论
·代码检测:Code Review与CheckStyle
·客户关系管理的三大纪律
·APP对决Web3S:探索RESTful协议之路
·32位程序移植到64位平台前的准备工作

 
·[硬件]只限一个月,双核节能电源以旧换新马上
·[数码]MP3音频格式制作之四 WAV转换MP3Pro
·[汽车]金华青年汽车集团 顶级青年MAN卡即将上
·[开发]模仿OUTLOOK的菜单
·[资讯]一级代理商起诉IBM诱其购入滞销产品
·[游戏]《大话西游2》聊天频道和表情动画
·[本本]校园新风尚,移动一招鲜, 选本四大技巧
·[办公]原色耗材的蜕变 从行业品牌到消费品牌
·[手机]移动短信增长五成 我国通信业务平稳增
·[考试]社会政治与经济类英语热点词块翻译(4)
·[学院]天热了,要注意电源也怕热!
·[娱乐]美女躲
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net