今天一位IT前辈考我:ESB和SOA和EAI之间异同。能提出这个问题的一定是我的知音。我一直专注于"企业应用"的架构设计。这个企业应用就是企业原有的OA、ERM、ERP、MES等的统合。而ESB和SOA和EAI的相同点就是集成企业各个应用的方法论。
http://hiyachen.cublog.cn
先说概念:
ESB:企业服务(ESB : Enterprise Service Bus):ESB 是一种开放的、基于标准的同步或异步信息传递中间件。通过 XML、Web Service接口以及标准化基于规则的文档等支持,ESB 为企业应用程序提供安全互用性。
SOA:面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、和编程语言。这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互。
EAI(Enterprise Application Integration),是 EAI是将基于各种不同平台、用不同方案建立的异构应用集成的一种方法和技术。EAI通过建立底层结构,来联系横贯整个企业的异构系统、应用、数据源等,完成在企业内部的 ERP、CRM、SCM、数据库、数据仓库,以及其他重要的内部系统之间无缝地共享和交换数据的需要。有了 EAI,企业就可以将企业核心应用和新的Internet解决方案结合在一起。
再说差异:
有了概念其实差异就出来了。
ESB使用的是消息中间件技术。把企业应用统合的方式是使用中间件技术,即承认差异、理顺差异。类似于媒介模式(Mediator Pattern)。
SOA使用的外观一致原则。即基础数据(元数据)是差异的。对外的出口是统一的,即交互的方式要求统一。类似于外观模式(Facade Pattern)SOA基于开放标准,新业务服务可在整个异构环境中重用和移植。
EAI使用的是底层一致原则。新建立底层(抽象层abstract或父层super或基盘层base),建立开放性的托盘以承载不同的企业应用。类似于工厂模式(Factory Pattern)、抽象模式(abstract Pattern)。
欢迎补充,欢迎拍砖。
阅读(6838) | 评论(0) | 转发(0) |