[置顶] 漫谈SOA(面向服务架构)
面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西。我简单的认为服务化是模块化的延伸,所以服务化有着和模块化类似的优点和缺点。这里不再讨论这些服务定义服务与服务之间的通信协议(像WSDL等等),我并不认为这是服务化的本质所在。即使Java语言用RMI进行服务与服务之间的通信也仍然不违背服务化的宗旨。
一.为什么需要面向服务架构
1.我觉得面向服务的根本好处是便于管理,也是应用大到一定时候的必然产物。这往往和组织架构之间相契合。其实不合理的服务划分也会带来服务之间的混乱。
2.面向服务是一个解耦的过程,松耦合降低了服务之间的依赖,也意味着服务一个服务出现故障的时候不容易引起连锁反应,也能更好的控制服务与服务之间的关系与优先级。
3.不同语言之间的通信。
二.面向服务架构的好处
在为什么要面向服务架构里面已经讲到了这样的好处。这里再举一些简单的例子来阐述。比如说一个应用部署在一台机器上,然而不管如何优化单机是无法撑起整个应用。这时候有两种思路。
水平扩展,即整个应用作为一个整体,然后水平扩展到多台机器上。
图A
服务拆分,这是解耦的过程,也符合软件工程中“高内聚,低耦合”的思想。往往第一步会进行模块化。这样做可能还不够,我们需要让它们能够独立生存。这样一个大的服务“分裂”成一个一个比较小能够独立生成的服务,这里的关键是可以独立生存,意味着它们可以部署在不同的机器上,一定程度上达到了“分布式”的效果。
图B
总结
上面从两个维度讲到了机器扩展。这两者在系统的拆分中会同时存在。从纯性能的角度讲应该采用第一种方案。两第二种方案并不当作解决性能的总体方案。而主要从软件管理的角度来讲进行拆分。这种拆分使得整个业务的粒度越来越细,也会越来越好控制,保证每个服务的高内聚,有清晰的边界。
面向服务架构是一种思想,当然对于大系统而言其利必大于弊,而系统比较小的时候盲目的拆分和服务化其实会导致整个维护成本上升。系统架构并没有一层不变的套路,也不必完全遵循某种模式。一切都在实际应用中结合具体的应用场景。应该说是“方法论”的具体产物。
[置顶] 漫谈SOA(面向服务架构)的更多相关文章
- (转)漫谈SOA(面向服务架构)
http://blog.csdn.net/luohuacanyue/article/details/12521699 面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西.我简单的认为服务化是模 ...
- SOA面向服务架构
SOA面向服务架构 风尘浪子 只要肯努力,梦想总有一天会实现 随笔分类 - SOA面向服务架构 结合领域驱动设计的SOA分布式软件架构 摘要: 领域驱动设计DDD的总体结构,Repository层使用 ...
- SOA(面向服务架构)——踩坑后反思:这样值得吗?
SOA(面向服务架构)——踩坑后反思:这样值得吗?
- SOA面向服务架构简述
在上篇中我们简单谈了下架构设计中服务层的简单理解,在这里我们将继续服务层的架构,在本节我们将重点在于分布式服务.在分布式系统中表现层和业务逻辑层 并不处于同一物理部署,所以我们必须存在分布式服务,以契 ...
- SOA 面向服务架构 阅读笔记(一)
Service Oriented Architecture 面向服务架构 学习笔记(一) 1.业务自由 1.1 在很多企业中,业务和IT技术是各自独立的,无法使用通用的统一语言进行管理. 1.2 ...
- 聊聊SOA面向服务架构
什么是SOA SOA(Service-Oriented Architecture),即面向服务的架构.SOA是一种粗粒度.松耦合服务架构,服务之间通过简单.精确定义接口进行通讯,不涉及底层编程接口和通 ...
- SOA面向服务架构——SOA的概念
SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”. 一.SOA的定义 SOA分为广义的SOA和狭义的SOA,广义的SOA是 ...
- SOA 面向服务架构 阅读笔记(五)
14 SOA 服务管理器 契约:契约中必须明确定义双方的责任,否则就会产生混乱. SOA可以管理端到端的流程. IT技术一直是与业务对齐的. 14.1.1 分解IT层 业务服务层 管道层 硬件层 管道 ...
- SOA 面向服务架构 阅读笔记(四)
15 SOA管理 15.1 管理指的是实现一个制约和平衡的一致过程,以确保得到期望的结果. 15.2 管理被广泛应用于人工流程和软件流程中,一旦管理失败,后果会非常严重. 15.3 SOA管理的首要 ...
随机推荐
- 洛谷 P1064 金明的预算方案
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今 ...
- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]:刘耀先-11061183,罗凡-11061174
本次为我们两个人的第一次结对编程.从总体而言,我们对结对编程比单人编程略显不适应.但是经过一段时间的磨合,我们逐渐的习惯了这种编程方式. 1. 结对编程的优缺点 结对编程的优点: (1) ...
- Servlet实现文件上传
一.Servlet实现文件上传,需要添加第三方提供的jar包 下载地址: 1) commons-fileupload-1.2.2-bin.zip : 点击打开链接 2) commons- ...
- Hadoop集群系类文章
http://www.cnblogs.com/xia520pi/archive/2012/04/08/2437875.html 后续文章地址:http://www.xiapistudio.com/ta ...
- CF192div2-C - Purification
题意: 从给定的图中找出某些点,这些点能够消除同一行和同一列的“怪物”.求使得最少的点的位置. 关键:要想消除整张的图的妖怪,必须选中n个点(对于n行n列来说)!!!!!!!!!!! 做法:对于每一行 ...
- 第六章Audio设备
6.1 Audio设备介绍 USB协议制定时,为了方便不同设备的开发商基于USB进行设计,定义了不同的设备类来支持不同类型的设备.虽然在USB标准中定义了USB_DEVICE_CLASS_AUDIO- ...
- !!Python字典增删操作技巧简述+Python字典嵌套字典与排序
http://developer.51cto.com/art/201003/186006.htm Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些 ...
- Form 重置记录编号(app_record.for_all_record)
A block lines has item line_number. When a record is deleted, line_number must be renumbered. step 1 ...
- poj2229Sumsets
http://poj.org/problem?id=2229 挺好的一公式.. #include <iostream> #include<cstdio> #include< ...
- poj2411Mondriaan's Dream(状压)
http://poj.org/problem?id=2411 下次还是去学习下dfs的写法吧 自己乱写的好像有点乱 乱七八糟改了一通过了 以1 1 表示横着的 1 0 表示竖着的 枚举每一行的状态 再 ...