谈基于SOA的消费发布订阅

标签: IT咨询 | 发表时间:2013-09-03 19:58 | 作者:人月神话
出处:http://blog.sina.com.cn/cmmi
利用标准的消息中间件产品功能,结合SOA服务很容易实现一个简单的消息发布订阅功能。对于消息发布订阅模式下消息中间件的异步实时,临时存储,多点发布的功能可以很好的发挥出来。首先我们看一个最简单的业务场景,门户系统产生组织数据,需要分发到采购,物流,合同等多个业务系统,传统的做法可能是门户系统通过路由服务进行多次发送,而基于消息发布订阅模式下,门户系统只需要将消息发送到ESB即可,后续由ESB对订阅了该消息的各个接收方进行准实时的数据推送。

基于该场景来看一个最简单的实现方式,当然首先是需要一个标准的消息中间件能力。

对于组织数据的分发仍然需要定义为一个标准的web service服务,生成具体的服务接口和服务契约文件。各个数据的接收方需要根据该规范去实现该服务的接收端。

在ESB总线上新生成一个新的服务,该服务仍然需要实现所有的服务接口规范和契约。而该服务的具体实现内容为,首先是接收到具体的数据,在该数据进入到MQ后即返回给服务消费方具体的结果信息。这个时候消息在MQ中具体暂存。在MQ中消息的生成需要根据服务的订阅情况来分布生成,即一个服务有N个不同的订阅方最好方式是生成不同的待推送服务。服务实现只需要将生成的订阅服务推送到MQ即可。下一个步骤重点是MQ本身的能力和定制,即对于MQ中的消息进行解析,然后分别进行发送,对于发布出现异常的信息可以仍然保持在队列中支持后续重试。

在ESB上新生成了该服务后,需要再增加服务订阅功能,即针对某一个服务,在业务系统实现了该服务后,可以对该服务进行订阅,订阅成功后信息进入到服务订阅清单表。对于上面一步具体MQ消息的生成需要根据订阅清单进行生成。

再进一步,服务消费方应该还需要实现一个回写的服务,对于ESB进行逐个推送出现的异常或完整性校验信息可以回写到服务消费方,以方便进行后续的日志和异常监控。

基于消息中间件的异步模式可以完全实现业务系统或组件间的解耦,但是并不是所有的服务都能够通过异步的方式来解决。在消息发布订阅模式下可以进一步的实现服务的透明特性。

  青春就应该这样绽放   游戏测试:三国时期谁是你最好的兄弟!!   你不得不信的星座秘密

相关 [soa 消费] 推荐:

谈基于SOA的消费发布订阅

- - 人月神话的BLOG
利用标准的消息中间件产品功能,结合SOA服务很容易实现一个简单的消息发布订阅功能. 对于消息发布订阅模式下消息中间件的异步实时,临时存储,多点发布的功能可以很好的发挥出来. 首先我们看一个最简单的业务场景,门户系统产生组织数据,需要分发到采购,物流,合同等多个业务系统,传统的做法可能是门户系统通过路由服务进行多次发送,而基于消息发布订阅模式下,门户系统只需要将消息发送到ESB即可,后续由ESB对订阅了该消息的各个接收方进行准实时的数据推送.

SOA资料学习

- - 人月神话的BLOG
从对象到组件,首先可以把对象理解为更细粒度东西,而组件是更加粗粒度的模块,对象更多关注技术,而组件应该更加关注业务. 前面我们谈过技术组件和业务组件,在SOA思想下业务组件化的思想就更加重要. 组件本身而言很简单,南向接口和北向接口,或者再有底座平台支撑. 接口通过服务方式来实现,组件通过OSGI等技术实现高度的解耦和可热插拔性.

SOA架构咨询

- - 人月神话的BLOG
对于SOA架构咨询,其核心还是在于组件化和服务化,然后才是服务管控和治理,基于服务化思想对传统软件开发生命周期过程的改进. SOA架构大家刚接触时候很容易将其理解为一种单纯的技术架构,或者更多的人仅仅是将SOA理解为service服务接口,这些都是对SOA方法论很大的误解. SOA咨询一个重点就是业务驱动IT,而非单纯的IT架构咨询,SOA咨询一般都会结合企业架构和云的思想,结合组件化架构和领域服务的思想,高层结合BPM端到端流程整合目标,并对这些内容进行有效的融合.

从流水程序到SOA

- Allen - 阿朱=行业趋势+开发管理+架构
咱就从函数代码开始谈起,更史前的Goto和汇编代码咱就不谈了. 函数和变量写多了,自然也就发现有些函数和变量互相粘在一起很高耦合,而与其它的一些却没多达关系,于是为了显性化让其他的开发人员知道哪些函数和变量确实关联性很紧密,于是创造了类. 面向对象在80年代的国外代码开发界颇为流行. 但接口思想的风潮在90年代刮起了.

eBay开源SOA-Turmeric架构

- - 人月神话的BLOG
参考: https://www.ebayopensource.org/wiki/display/TURMERICDOC/Turmeric+Documentation+Overview. Turmeric是一个综合的、由策略驱动的SOA平台,提供了对SOA服务及其消费者的开发、部署、保护、运行和监控等方面的支持.

SOA面向服务架构

- - 人月神话的BLOG
今年在这点上谈的比较多,也逐步开始落地实施,将SOA咨询和实施方法论从系统间真正的引入到系统内,将面向对象的需求分析方法和SOA思想进一步融合,从业务建模到系统用例建模,从流程分析到服务识别和分析,从业务组件化到系统模块化,这些工作都逐步开始落地实施. 这样做的好处就是进一步的体现SOA可复用组件的价值,真正的做到业务组件化和组件能力化.

[SOA] Mule ESB Linux 部署

- - CSDN博客架构设计推荐文章
本文介绍如何在 Linux 上部署 Mule ESB. Mule 是一个以Java为核心的轻量级的消息框架和整合平台,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf编写的一本书)而实现的. Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑.

集成ESB实现SOA

- - 企业架构 - ITeye博客
  服务消费者,服务提供者, 服务注册中心(UDDI模型). 由于UDDI模型过于复杂,而服务提供者与消费者点对点的进行协作依赖性大大增强,因此产生演变.    服务代理 -- ESB.    基于ESB总线,使得服务请求者统一入口,而ESB管理服务,使得耦合降低,由ESB来应对提供者提供的服务的改变而服务请求者不需要进行任何的修改.

SOA实施收益分析

- - 人月神话的BLOG
远行科技自2007年开始即参加了中国移动集团SOA接口平台的建设和实施工作,在SOA规划咨询,建设实施方面有丰富的实践经验积累. 对于SOA实施收益,先以某客户的一个真正业务背景进行分析:. 业务场景:我们现在的工程项目管理,其规划,立项和工程实施计划在项目管理相关系统;工程物资采购在采购管理系统;审批在 OA系统,财务的信息又在ERP核心系统.

数据交换和SOA服务共享

- - 人月神话的BLOG
数据本身只是一种资源,而服务是一种能力;数据仅限于各种结构化和非结构化的数据资源,对于数据资源提供的能力可以使一种数据服务,而数据资源+业务规则形成的某种业务能力也可以作为一种服务提供,也就是说各种技术,数据,业务,平台,流程能力都可以做为服务提供. 交换本质是资源会从一个系统通过传输的方式进入到多个系统,资源在多个系统中形成多种拷贝.