SOA、ESB、NServiceBus、云计算
SOA、ESB、NServiceBus、云计算 总结
SOA
SOA 是通过功能组件化、服务化,来实现系统集成、解决信息孤岛,这是其主要目标。而更进一步则是实现更快响应业务的变化、更快推出新的应用系统。与此同时,SOA 还实现了整合资源,资源复用。
SOA 服务的设计标准是粗粒度、高重用、灵活、标准。性能则并非首要考虑因素。
SOA 的两大功能是集成、服务编排(BPEL、BPM)。WF 在 SOA 架构中,扮演服务编排的功能。
参考架构:

相关资源:
ESB
ESB 是 SOA 的重要实现手段。ESB 实现 SOA 时,它作为中心、媒介,集成的系统将只与它进行交互。而 ESB 实现与各种系统间的协议转换、数据转换、透明的动态路由功能(基于内容)。
在设计 ESB 时,集中的分发模块会影响性能、可伸缩性、容错能力,所以 ESB 要有良好的可伸缩性,支持集群。
IBM 总结了 ESB 的功能,较完整的功能如下:
|
通信 |
服务交互 |
|
|
|
集成 |
服务质量 |
|
|
|
安全性 |
服务级别 |
|
|
|
消息处理 |
管理和自治 |
|
|
|
建模 |
基础架构智能 |
|
|
而最低要求的 ESB 需要具有的功能:
|
通信 |
集成 |
|
|
|
服务交互 |
|
|
相关资源:
NServiceBus
NServiceBus 是 .NET 平台上最受欢迎的一个开源 ESB 框架。有较完善的文档及示例代码。
目前,.NET 平台上开源的 ESB 框架,大多基于消息队列来实现。NServiceBus 同样也使用消息队列机制来实现消息的传递,例如可以使用 MSMQ。由于消息队列天生就是异步传输的,所以 NSB 也同样只支持异步消息,是一种‘发送即忘却’的模式。(As a general purpose communications technology, WCF does not enforce the queued messaging paradigm. NServiceBus does, and the architectural implications are profound.)。
NServiceBus 相对于 WCF 的优势在于:事件驱动的架构(发布、订阅)、更好地支持长时间运行的工作流。
缺点一:只支持异步的消息机制的问题是,无法进行传统的的数据查询。(To allow clients to perform queries, it is best not to use NServiceBus. Messaging is designed for non-blocking operations, and queries are (for the most part) operations for which the user wishes to wait.)
如果一定要使用 NSB 来实现数据查询,那么只能通过 CQRS 来进行系统的设计:

缺点二:NSB 的服务可以轻易集成到 WCF 中使用 MSMQ 实现,但是反之则不行。也就是说,已经使用 WCF 开发的服务,是无法使用 NSB 来完成简单的迁移的。(原因也主要是因为 NSB 的异步机制。)
相关资源:
infoq 官方采访介绍:NServiceBus——让创建企业级.NET系统更加容易
NServiceBus---最流行的开源企业服务总线 for .Net
云计算,及与 SOA 的关系
云计算是一种部署体系结构,而 SOA 则是企业 IT 的体系结构。
SOA与云整合既带来应用和业务流程灵活的虚拟化和节省的费用(云),又带来原有应用的集成应用及业务流程的敏捷重构(SOA)。
上层基于 SOA 进行应用服务的开发,底层基于云计算进行资源整合,包括存储,网络,数据库,服务器等。
目前业界比较多的观点赞同:SOA 与云计算将整合发展。
它们的关系:
- 从产生的背景和原因看,SOA产生的原因是为解决企业存在的信息孤岛和遗留系统这两大问题。云计算产生的原因是企业的信息系统数据量的高速增长与数据处理能力的相对不足,还有计算资源的利用率处于不平衡的状态。
- 从关键的技术和属性看,通过产生背景和原因的分析,SOA和云计算是不同的概念,但是它们却互相联系,又有一定的相似性。从服务角度来看,SOA实现了可以从多个服务提供商得到多个服务(一个服务便是一个功能模块),并通过不同的组合机制形成自己所需的一个服务;云计算实现了所有的资源都是服务,可以从云计算提供商购买硬件服务、平台服务、软件服务等,把购买的资源作为云计算提供商提供的一种服务。
- 从关键技术来看,SOA需要实现业务组件的可重用性、敏捷性、适应改变、松耦合、基于标准;云计算则需要虚拟化技术、按需动态扩展、资源即服务的支撑。
- 从应用场景来看,当企业的业务需求经常改变的时候可以考虑使用SOA;当企业对IT设施的需求经常改变或者无法提前预知的时候可以考虑使用云计算,当有大量的批处理计算的时候也可以考虑使用云计算。
- 从应用的侧重点来看,SOA侧重于采用服务的架构进行系统的设计,关注如何处理服务;云计算侧重于服务的提供和使用,关注如何提供服务。
- 从商业模式来看,SOA可能会降低软件的开发及维护的成本,商业模式是间接的,需要落地;云计算根据使用的时间(硬件)或流量(带宽)进行收费,具有明确的商业模式。
下面列出最近看的与本文相关的一些 pdf 书籍,东西太多,不上传了,列下书名:
《中国SOA最佳应用及云计算融合实践》、《SOA in the Real World》、《SOA应用案例分析及设计》、《A Developer’s Guide to the Microsoft .NET Service Bus》、《IBM ESB概要设计说明书@CBOD》、《Mule+ESB+Studio+v3.3安装使用手册》、《软通动力 兰州ESB平台项目详细设计说明书》、《SOA实践者指南》、《基于.NET+Framework+WCF的面向服务SOA中间件设计》、《基于WCF的SOA框架设计》、《IBM-ESB 在 SOA 内的工作角色》、《WSSF(服务工厂)架构剖析》、《开源SOA快速入门指南》、《Composite Software Construction》、《Enterprise Integration Patterns - Designing Building and Deploying Messaging Solutions》、《Enterprise SOA Adoption Strategies》、《Prentice.Hall.SOA.with.NET.and.Windows.Azure.May.2010》。
其它:
SOA、ESB、NServiceBus、云计算的更多相关文章
- SOA,ESB,WebService的关系
1. 什么是SOA SOA(Service-Oriented Architecture)既服务导向架构,是指为了解决在inernet环境下业务集成的需要,通过连接能完成特定任务的独立功能实现的一种软件 ...
- SOA、ESB、NServiceBus、云计算 总结
SOA SOA 是通过功能组件化.服务化,来实现系统集成.解决信息孤岛,这是其主要目标.而更进一步则是实现更快响应业务的变化.更快推出新的应用系统.与此同时,SOA 还实现了整合资源,资源复用. SO ...
- 各种ESB产品比较(转)
介绍了主流商业和开源ESB的发展趋势.可借鉴的地方和其缺点: 主要介绍: Oracle Service Bus WebSphere Message Broker ...
- 朱晔的互联网架构实践心得S2E4:小议微服务的各种玩法(古典、SOA、传统、K8S、ServiceMesh)
十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud的大火把微服务的实践推到了高潮,而近两年K8S在容器 ...
- 古典、SOA、传统、K8S、ServiceMesh
古典.SOA.传统.K8S.ServiceMesh 十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud ...
- Jboss ESB简介及开发实例
一.Jboss ESB的简介 1. 什么是ESB. ESB的全称是Enterprise Service Bus,即企业服务总线.ESB是过去消息中间件的发展,ESB采用了“总线”这样一 ...
- 大数据时代,Wyn Enterprise和您一起探讨CIO的困境和出路 ZT
这是一篇知识分享帖,如果您致力于成为一名CIO,希望您能够阅读完,信息虽然简略,但我们依然希望可以帮到您. CIO:首席信息官 CIO是干什么的 一.经典的CIO主要负责什么 1.IT战略规划.IT预 ...
- BizTalk开发系列(八) BizTalk Server 常识整理
1.什么是BizTalk Server? BizTalk 是业务流程管理服务器,用于连接人员,流程,有效管理和提升业务所需的信息.在原有版本业务 流程管理和SOA/ESB 的基础上,第5 个版 ...
- Spring+iBatis+Atomikos实现JTA事务
Atomikos是一个公司名字,旗下最著名的莫过于其Atomikos的事务管理器产品. 产品分两个:一个是开源的TransactionEssentials,一个是商业的ExtremeTransacti ...
随机推荐
- Python于*args 和**kwargs使用
1,*args 当量list名单 def fun_args(farg, *args): print "arg:", farg for value in args: print & ...
- hdu 亲和串(kmp)
Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现 ...
- PHP课程十大 PHP图像处理功能和实现的验证码
假如你喜欢这个博客,访问这个博客地址:http://blog.csdn.net/junzaivip 总结: gd绘图库: 数学函数 PHP图片处理函数 图片处理函数使用场景 1.验证码 2.缩放 3. ...
- bigdata_hive_Issue of Vectorization on Parquet table
When Vectorization is turned on in Hive:set hive.vectorized.execution.enabled=true;If the involved t ...
- Asp.Net MVC 2.0 Filter基本用法
在这一节里,大家一同学习下mvc 2.0中的filter,简单的说,filter就是标记在action上的一些属性,来实现对action的控制. mvc2.0中主要包括以下filter 1. Auth ...
- mysql_navicat-permium 在Mac下破解方法
首先下载符合当前系统支持的navicat-permium版本,我自己下载的是11.0.16 然后我们开始破解旅程,先要安装上navicat-permium,记住千万不要打开(如果你打开了不好意思,卸了 ...
- sgu 194 被动散热器具有最大流量的上限和下限(最大流量模板dinic加上优化)
模板类型的题详细參考国家集训队论文:http://wenku.baidu.com/view/0f3b691c59eef8c75fbfb35c.html 參考博客:http://blog.csdn.ne ...
- java_maven_linux_windows下项目运行jar
我才用的是eclipse自带的export功能,暂时没把maven的打包插件研究清楚 导出jar包后,需要用解压缩打开,把配置文件copy到压缩包的内的顶级目录 保存 写 bat 脚本 @author ...
- 《java系统性能调优》--1.发现瓶颈
性能啊!性能! 之所以想写写性能调优,也是有感于我们的项目,我们採用一些手段使得系统性能上升了一个台阶,总是须要把这点经验沉淀一下.随着工作的深入,关于系统性能的事肯定还有非常多,也算是通过这个系列文 ...
- E: 无法获取锁 /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)解决方法
/********************************************************************* * Author : Samson * Date ...