SOA,不看你永远不知道的事
你买不来SOA,只能设计自己的SOA。
SOA不是新东西
SOA没有引入新概念,它是个把现有概念和实践放到一起,用于特定需求集的范式。你甚至可以说SOA别的什么都 不是,就是将实用主义和头脑风暴运用到分布式系统上而已。
SOA的基本组成
- 服务(递进关系)
基本服务(最底层)
组合服务,对基本服务的一个组合。
流程服务,对基本服务的一个配置。
- 互操作性(Web Services为其一个实现)
- 松耦合
对于松耦合,书中用了专门的一章来介绍松耦合,但是没有什么硬性规定和快速指南,我们必须根据特定的上下文环境和架构,作出适当的松耦合决策。
构建SOA需要考虑什么?
- 基础设施:ESB为其一个实现(正要开始研究。。。);
- 架构:用来加以限制;
- 流程
业务流程建模(BPM),感觉很像工作流,但文中介绍说是比工作流大一点
服务生命周期
模型驱动的软件开发(MDSD),对于介个吧,感觉平时用EA建模,然后生成代码是不是就是这个意思呢?
SOA与事务
之前一直认为很好很强大的二阶段提交被作者说:在大型项目中,你会惊讶于二阶段提交使用的是如此的少。。
2PC是中间件被最为爆炒的特性之一。只要是对中间件的评估,是否支持2PC的问题就会被提出。但是所有后端系统都必须支持它,所以它带来了一些编程工作量,并且绑住了一些资源。主要的问题在于所有的系统都必须在线,而且,直到更改在最后的系统上完成之前,所有的系统都必须提供资源。耦合度相对较大。
既保证总体一致性,同时耦合程度也更松的方法是补偿。对于补偿的使用还没有详细研究(已安排下去),这里只说一下它的优缺点。优点是,对系统的更新不必同步进行(当更新有的后端系统时,它们甚至可以不在线)。缺点是你必须显式的提供和调用服务,回滚之前调用的服务的影响,或者,你必须提供程序用于手动错误处理。(BPEL是Web Services 的流程执行语言,它直接支持补偿~)
SOA与安全
SOA需要的不只是点到点的安全,而是端到端的安全,对于安全,将安全当作服务进行引入,不失为一个上好的决策。
对于SOA的一些个人看法
SOA,不看你永远不知道的事的更多相关文章
- Java你可能不知道的事(3)HashMap
概述 HashMap对于做Java的小伙伴来说太熟悉了.估计你们每天都在使用它.它为什么叫做HashMap?它的内部是怎么实现的呢?为什么我们使用的时候很多情况都是用String作为它的key呢?带着 ...
- ES6 你可能不知道的事 – 基础篇
序 ES6,或许应该叫 ES2015(2015 年 6 月正式发布),对于大多数前端同学都不陌生. 首先这篇文章不是工具书,不会去过多谈概念,而是想聊聊关于每个特性 你可能不知道的事,希望能为各位同学 ...
- Spring中你可能不知道的事(一)
Spring作为Java的王牌开源项目,相信大家都用过,但是可能大家仅仅用到了Spring最常用的功能,Spring实在是庞大了,很多功能可能一辈子都不会用到,今天我就罗列下Spring中你可能不知道 ...
- java你可能不知道的事(2)--堆和栈
在java语言的学习和使用当中你可能已经了解或者知道堆和栈,但是你可能没有完全的理解它们.今天我们就一起来学习堆.栈的特点以及它们的区别.认识了这个之后,你可能对java有更深的理解. Java堆内存 ...
- overflow:hidden 你所不知道的事
overflow:hidden 你所不知道的事 overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解. ...
- java你可能不知道的事(2)--堆和栈<转>
在java语言的学习和使用当中你可能已经了解或者知道堆和栈,但是你可能没有完全的理解它们.今天我们就一起来学习堆.栈的特点以及它们的区别.认识了这个之后,你可能对java有更深的理解. Java堆内存 ...
- Java单例你所不知道的事,与Volatile关键字有染
版权声明:本文为博主原创文章,未经博主允许不得转载. 如果问一个码农最先接触到的设计模式是什么,单例设计模式一定最差也是“之一”. 单例,Singleton,保证内存中只有一份实例对象存在. 问:为什 ...
- Java你可能不知道的事系列1
概述 本类文章会不段更新分析学习到的经典面试题目,在此记录下来便于自己理解.如果有不对的地方还请各位观众拍砖. 今天主要分享一下常用的字符串的几个题目,相信学习java的小伙伴们对String类是再熟 ...
- C++学了这么多年,你仍不知道的事
C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中.它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能.什么东西又可以放在cpp文件中.如果 ...
随机推荐
- HDU 1000 A + B Problem
#include int main() { int a,b; while(scanf("%d%d",&a,&b)!=EOF) printf("%d\n&q ...
- CCPC L(水)
Huatuo's Medicine Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others ...
- JavaBean讲解 规范
一:JavaBean定义 JavaBean是一种可重复使用.跨平台的软件组件.JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean,例如NetBean中 ...
- 用Html5结合Qt制作一款本地化EXE游戏-太空大战(Space War)
本次来说一说如何利用lufylegend.js引擎制作一款html5游戏后将其通过Qt转换成EXE程序.步骤其实非常简单,接下来就一步步地做一下解释和说明. 首先我们来开发一个有点类似于太空大战的游戏 ...
- 阵列中条带(stripe)、stripe unit
摘抄:http://blog.sina.com.cn/s/blog_4a362d610100aed2.html 在磁盘阵列中,数据是以条带(stripe)的方式贯穿在磁盘阵列所有硬盘中的.这种数据的分 ...
- epoll相关
1) 能不能给一个使用epoll相关API进行IO监控的示例?在<<epoll学习笔记>>中有一个简单的示例说明epoll相关API的使用, 但是这个示例是非常简单的, 它仅仅 ...
- 使用Groovy进行依赖注入
为什么选择Groovy? 传统的依赖注入是XML,对我而言,可读性太差,太不美观,强烈地想换一个方式进行依赖注入,Groovy作为XML的替代方案,在Spring4之后被引入,是基于JVM的一门方言, ...
- Ubuntu 15.04 安装rmagick 2.15.4
apt-get install pkg-config, libmagick-dev,libmagickcore-dev, libmagickwand-dev, gem install rmagick
- linux下移动或者复制文件覆盖相同文件夹时,文件夹里面的每个文件都提示是否覆盖
链接地址:http://blog.chinaunix.net/uid-23683795-id-2391087.html # vi ~/.bashrc 如果你看到如下内容,以下命令都会用别名执行了, ...
- 我常用的iphone开发学习网站[原创]
引用地址:http://www.cnblogs.com/fuleying/archive/2011/08/13/2137032.html Google 翻译 Box2d 托德的Box2D的教程! Bo ...