架构师基本功:SOA
(以下内容为个人理解,可能不够全面和准确)
SOA (service-oriented architecture),面向服务的架构
啥是SOA?网上的解释,玄而又玄。俺说点人话,也许不准确,但现阶段我就是酱紫理解的:SOA就是搞一个独立的系统,对外提供服务。其他系统有相同的需求,无须再开发,就调用它的服务即可。
一、SOA的优点
1、显而易见,一些功能部署成公用服务,利于重用
2、由于其他系统与服务之间松散耦合,可提高伸缩性
3、公用服务,集中自成一系统,利于维护
4、服务集中部署,利于减轻其他系统压力,提高性能
二、SOA的缺点
1、安全性问题复杂
服务与调用系统不在同一系统,解决安全性问题较为复杂。可以使用单点登录,oAuth2,或者证书什么的,复杂得很。
2、使用复杂
如何调用这些服务?web api还好,webservice、wcf、或者rpc(远程过程调用)之类,我觉得很费周折。
3、性能问题
上面的优点说,服务集中部署,可提高性能,但这是对整个系统层面来说的;如果单就调用一次服务,我觉得横跨两个子系统,有网络,有接口,速度要比同一系统内打上折扣。比如说,webservice,又是soap,又是xml,传递大的数据,肯定慢死了。rpc还好一点。
4、稳定性问题
本来一个系统,硬是拆成了2个,这其中接口、路径就多了,风险点也增加了。一个环节出问题,系统就得瘫痪。
三、SOA适用场景
适用于不同且异构的系统,或分布式系统之间共用相同的服务。不同且异构的意思是,首先是两个系统,然后它们是不同语言开发,且没有共享数据库。
四、SOA不适用场景
如果是同构系统,比如相同语言开发,那么将服务编译成dll,分别调用即可。或者数据库是大家共用,一般也可以直接读取,无须搞什么服务。
五、SOA种类
1、以前的什么corba,dcom就不说了
2、webservice
(使用比较简便)
3、wcf
(麻烦得很)
4、rpc
5、web api(最好是符合Restful原则)
=========================================
六、SOA的衍生品:EDA(Event-Driven SOA, 事件驱动的SOA)。
参考资料:
EDA 和 SOA 的融合以及实践
架构师基本功:SOA的更多相关文章
- 每位架构师都应该熟知的 10 个 SOA 设计模式
这 10 个 SOA 设计模式是如此之重要,其应用是如此之广泛,以至于它们都有些显而易见了. 1. 服务无关 服务无关实现对多种业务通用的逻辑.将服务无关的逻辑分离成离散的服务以方便服务的重用和整合. ...
- 空中网招聘Java架构师、数据库开发等各类人才
爱好网络游戏吗?爱好网站开发技术吗? 有没有想过可以成为史诗级MMO RPG<激战2>运营团队中的一员? 如果下面的职位有合适你的,加入我们吧! http://gw2.kongzhong. ...
- [转]如何循序渐进向dotnet架构师发展
微软的DotNet开发绝对是属于那种入门容易提高难的技术.而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的.特别是在大 型软件项目中,架构师是项目核心成员,承上启下,因此RU ...
- 向架构师进军-->可重用架构资源
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 软件架构有三个主要来源:拿取.方法以及直觉.拿取也就是可重用资源.对于一个标准的系统 ...
- JAVA架构师要求
JAVA架构师要求专业素质要求:1.理解架构师的职责和架构设计的目标.原则及取舍:2.精通架构模式,Transaction.Security.Persistence等机制及实现,IOC.AOP.SOA ...
- 系统架构师JD
#################################################################################################### ...
- 架构师书单 2nd Edition--转载
作者:江南白衣,原文出处: http://blog.csdn.net/calvinxiu/archive/2007/03/06/1522032.aspx,转载请保留. 为了2007年的目标,列了下面待 ...
- SOA 新业务语言 新系统架构——什么是SOA
原文地址:http://blog.csdn.net/ichaos/archive/2008/01/20/2054377.aspx SOA的概念是Gartner在1996年提出来的,并于2002年12月 ...
- IBM Java架构师的技能
一天,群里飘过一个IBM招聘信息.我看过之后,也只是如此而已. 大家好!我是XXX,IBM招聘java架构师,如今还有38个名额 学历大专以上即可,英语能面试交流的.项目有非常多到时候依据您面试会详谈 ...
随机推荐
- django下的framework
可以创建个虚拟环境先,不过我没使用这个方式 virtualenv env source env/bin/activate ------ 退出: To exit the virtualenv envir ...
- tornado框架基础08-sqlalchemy表关系和简单登录注册
01 一对一表关系 Module 需要先创建对应的 Module ,这里采用之前建立好的 User 和 UserDetails relationship from sqlalchemy.orm imp ...
- Postfix telnet www.azengna.com 25 Connection Refused 但是localhost连接成功
修改配置文件 vi /etc/postfix/main.cf 原先配置信息 .... inet_interfaces = all #inet_interfaces = $myhostname,loca ...
- python基础——5(元组、字典、集合)
上节复习: # 数字类型 # int:py3|py2 long:py2 # float: 3.14 # complex(5, 4) => 5 + 4j num = 12345678901234 ...
- OpenSSH高级功能之端口转发(Port Forwarding)
在RedHat提供的系统管理员指南中提到OpenSSH不止是一个安全shell,它还具有X11转发(X11 Forwarding)和端口转发(Port Forwarding)的功能.X11功能一般用于 ...
- zoj 2818 Root of the Problem
Root of the Problem Time Limit: 2 Seconds Memory Limit: 65536 KB Given positive integers B and ...
- 【Ajax 2】封装Ajax的核心对象:XMLHttpRequest对象
导读:AJAX利用一个构建到所有现代浏览器内部的对象-XMLHttpRequest-来实现发送和接收HTTP请求与响应信息.那么,XMLHttpRequest对象是怎么创建和封装的呢? 一.简介 1. ...
- sql通配符+sql中查询条件包含下划线等通配符的写法
一.SQL 通配符 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符. SQL 通配符必须与 LIKE 运算符一起使用. 在 SQL 中,可使用以下通配符: 通配符 描述 % 替代一个或多 ...
- hexo干货系列:(五)hexo添加站内搜索
前言 本来想用百度站内搜索,但是没成功,所以改用swiftype,用起来还是很棒的,这里分享一下我的安装步骤 正文 注册 去swiftype官网注册个账号,然后登陆,对了不要去在意30天试用,30天过 ...
- 洛谷P1244 青蛙过河
P1244 青蛙过河 362通过 525提交 题目提供者该用户不存在 标签 难度普及- 时空限制1s / 128MB 提交 讨论 题解 最新讨论更多讨论 题目什么意思 题目看不懂啊 题目描述 有一条河 ...