面向服务的体系结构(SOA)——(2)ESB介绍及职责
企业服务总线(Enterprise Service Bus)是SOA的基础设施,之所以这么说是因为要达到SOA的目标(增强灵活性)就必须有调用服务的方法,ESB的存在有效的保证了消费者能够调用供应者提供的服务。网上有很多对ESB不同的理解,其实这取决于实现ESB方式。对于ESB来说具体的实现方式不是固定的,但是核心思想(主要的作用)是一致的。下面将从如下几个方面阐述笔者对ESB的理解
数据格式转换
ESB的存在就是为了解决SOA当中互操作的问题,由于SOA是支持异质的所以对于ESB来说主要的作用就是处理不同平台不同语言之间的相互调用。那么首先要做的就是数据格式的转换。在异质的环境中如果只解决一对一的转换是饮鸩止渴,必须要为以后新加入的异质系统着想,所以人们尽可能的使得目标数据格式脱离已有的平台及语言,引入一个中间格式然后将不同平台中的API都映射到这种格式上来。对于大多数情况人们选择的是和平台无关的WebServices技术,于是SOAP也就成为了这种中间格式。对于各大厂商来说谁都不愿意被众人忽略,所以才有了目前大多数技术对WebServices的广泛支持。
(智能)路由
这里主要研究的对象是存在ESB当中的消息内容。就像现实生活中的路由一样,大家都通过但是大家各自的数据不会被发送到他人手中。在ESB中也是同样的道理,不同优先级的消息,不同类型的消息是需要给予不同处理的。从这个角度说ESB就不单单是一个传递消息的通道了,还需要有一套自己的能识别其他服务提供数据方法。至少应该可以区分不同消息的消息头,只有这样才能保证消息准确无误的被传递、处理。关于智能路由的另一个作用就是负载均衡,根据消费者的要求调用资源空闲的服务,这不单单需要上面所说的ESB提供可识别消息的功能,还需要ESB可以判断提供者的资源占用情况。
其他任务(篇幅所限后面的文章会详细叙述下面涉及到ESB的各个职责)
下面要叙述的ESB的各个职责都是“提供互操作性”这个核心任务的扩展。很明显异质系统通过ESB“连接”到了一起,并且支持“互操作”那么原有系统的安全是一个很大的问题。还需要注意的是不同协议提供不同形式的可靠性,例如WebServices中的HTTP协议无法保证消息传递的成功(周所周知HTTP协议是无连接、无状态的)。随着SOA的范围增大,连接到ESB上的系统增多时高效的管理服务将成为ESB最棘手的问题。作为整个环境的心脏ESB有责任检测及记录哪个消费者调用了哪个服务,以及一个具体的服务调用进行了多长时间。这些对于保证整个环境的良好运转是非常重要的。
面向服务的体系结构(SOA)——(2)ESB介绍及职责的更多相关文章
- 面向服务的体系结构(SOA)——(1)目标与核心概念
什么是SOA? 常常听到人们拿OOP和SOA一起来说事,诸如SOA是否可以代替面向对象(OOP)或者两者比哪个更加有优势?直接回答有难度举个例子可能显得答案更容易理解.小孩子问你该认真写作业呢?还是高 ...
- 面向服务的体系结构(SOA)——(5)关于MEP(Message Exchange Patterns)
SOA中的MEP和JavaEE中的JMS类似,当然了就应该是类似的,因为都是关于消息方面的.一个是对系统架构当中消息的解决思路,一个是针对Java平台中的消息的具体解决办法(严格说不是具体的,只是提供 ...
- 面向服务的体系结构(SOA)——(4)对于服务的理解
在接触SOA之前对"服务"这个词没有太多的感触,无非就是为别人做事情么.当然在SOA中这个词也脱离不了这层基本的涵义,但是具体到实际的架构中对这个词的理解就更加深刻了.本文就以&q ...
- 面向服务的体系结构(SOA)——(3)关于BPM
什么是BPM 很多情况下企业当中所提供的服务不是由一个分布式业务流程就可以完成的,整个服务的提供需要多个分布式流程有机的组合,于是BPM就应运而生了.要将现有的服务通过配置.编排(关于配置与编排的区别 ...
- 面向服务架构(SOA)和企业服务总线(ESB)
http://www.cnblogs.com/shanyou/archive/2008/04/19/1161452.html 学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB,重点 ...
- SOA(面向服务的体系结构)
SOA(面向服务的体系结构) 面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务 ...
- SOA 面向服务的体系结构
SOA:面向服务的体系结构(service-oriented architecture) 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 接口是采 ...
- SOA (面向服务的体系结构)
面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言 ...
- 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训
[编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了 ...
随机推荐
- 实现SVN与WEB同步解决方案(转)
实现SVN与WEB同步解决方案 1)设置WEB服务器根目录为/www/default 2)checkout一份SVN svn co svn://localhost/oplinux /www/defau ...
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
- msmms (一) sms与mms区别
sms与mms区别 SMS,Short Messaging Service短信业务,可以通过手机等移动设备发送文本型短信.SMS这个术语最早在80年代初期出现,但一直到了90年代初才开始进入商用市场, ...
- linux下ping的C语言实现(转)
#include <stdio.h> #include <signal.h> #include <arpa/inet.h> #include <sys/typ ...
- JavaScript的Eval与JSON.parse的区别
JavaScript的Eval与JSON.parse的区别 json的定义以及用法: JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格 ...
- 小白科普之JavaScript的BOM模型
一.什么是BOM 1. BOM是browser object model的缩写,简称浏览器对象模型: 2. BOM提供了独立于内容而与浏览器窗口进行交互的对象,描述了与浏览器进行交互的方法和接口: 3 ...
- Eclipse的模板设置代码
Eclipse Java注释模板设置详解 设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后 ...
- Linux守护进程的启动方法
导读 “守护进程”(daemon)就是一直在后台运行的进程(daemon),通常在系统启动时一同把守护进程启动起来,本文介绍如何将一个 Web 应用,启动为守护进程. 一.问题的由来 Web应用写好后 ...
- iphone/ipad图标尺寸
http://www.yixieshi.com/ucd/13759.html APP界面设计规范指导APP设计过程中的设计标准,根据统一的设计标准,使得整个APP在视觉上统一.提高用户对APP的产品认 ...
- delphi 2007 远程调试
Remote debugging lets you debug a RAD Studio application running on a remote computer. Once the remo ...