架构师基本功:SOA
2016-03-14 22:56
549 查看
(以下内容为个人理解,可能不够全面和准确)
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 (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
- 浅谈Javaweb经典三层架构和MVC框架模式
- Java内存模型及GC原理java内存模型 Java内存模型及GC原理 Java内存模型及GC原理 sun官方网站:sun java 虚拟机模型 Java内存模型及GC原理 JVM内存模型中分两
- android studio 特性--拆分--架构(增)
- 架构探险——从零开始写Java Web框架》第二章照作
- 【IT架构】浅谈Hadoop平台在某运营商的应用
- 电子商务网站测试经验总结
- 如何成为架构师
- 【1】-x86架构内核的配置和编译
- iOS 简单架构及运行流程
- Kafka学习(一):Kafka背景及架构介绍
- [国嵌攻略][142][LCD驱动程序架构]
- css写的手机网站页面如何使网页左右固定不动?
- [Android]一个干净的架构(翻译)
- 什么是架构即代码( Infrastructure As Code)
- 非常不错的文章,囊括啦高性能、高可用的分布式架构体系所有名词
- 商业级项目——基金客户端的架构设计与开发(下)(附源码)
- 商业级项目——基金客户端的架构设计与开发(下)(附源码)
- 商业级项目——基金客户端的架构设计与开发(下)(附源码)
- 在线查看、下载kernel、Android源码的网站