SOA(Service-Oriented Architecture),中文全称:面向服务的架构。

SOA让把系统分离成不同的服务,使用接口来进行数据交互,终于达到整合系统的目的。

专业的词总是让人懵懵懂懂,看起来高大上。但就是不知道在BB什么.... 我们换种讲法。

非常多开发者,做系统的时候是这样合作的:

小明负责【考勤】,小王负责【薪资】。

小王说: 小明,我要用【考勤】数据,你做好了没?

小明说: 早做好了,表名叫Attenance, 字段A代表员工ID。字段B代表....自己去数据库查。

相信非常多人看到这样的情景非常熟悉。 数据交互全然通过数据库,模块件没有全然分离,错综复杂!

用不了多久,你的系统就成了一碗美味的“意大利面”

要说明一下。这样的开发方式不符合SOA的理念,那么SOA是怎样处理的呢?

1.考勤作为单独模块,成为一个考勤服务。公布了一个考勤数据接口(WebServices)

2.小王须要使用考勤数据,调用考勤服务的接口就可以

SOA是模块分离,模块间要进行数据交互。通过接口来完毕。

非常多程序猿看了预计会不屑一顾,我们从不SOA,也过了这么多年,并没有什么问题!看起来SOA并没有什么卵用!

假设你这样想。我们来看看接下来这些需求,要怎样应付。

1. 平台越来越庞大,有10几个开发者都要用你负责模块的数据。

假设没有统一接口,你要同全部人讲你的数据库结构。一旦变更。你还要通知全部人

2. 系统执行越来越慢,老板说分离【考勤】和【薪资】使用不同的数据库和server

因为功能间没有严格分离。数据交互也是直接通过数据库。分拆系统基本不可能,所以也就无从谈论分开部署

wx_fmt=jpeg" alt="" style="max-width:100%; height:auto!important">

3. 客户的其它系统须要调用平台的数据进行计算。你还要开放数据库结构吗?

功能没有严格分离,当系统发展到一定层次。开发就会感觉越来越吃力。往往牵一发而动全身。也不符合软件设计原则!

可是假设你的系统本身就非常小,一周就搞定了!要实行SOA,搭建个架构花费了一个月。这就得不偿失了!

是否实行SOA,是要依据平台的定位去调整的!假设你的平台定位不高,强制实行SOA,就好比高射炮打蚊子,不仅浪费炮,还TMD打不到蚊子!所以不要“过度设计”,“恰如其分”非常重要。

wx_fmt=jpeg" alt="" style="max-width:100%; height:auto!important">

到这里,大家都已经懂得SOA的主要思想:严格分离模块。通过接口来链接。那么,怎样链接呢?

上面我讲的WebServices是一种经常使用的链接方式。

除了WebServices还有。ESB,JMS,以及近期几年大热的REST方式。

详细的链接方式,我们就不多讲了。有兴趣能够去查百度百科。

wxfmt=jpeg" alt="" style="max-width:100%; height:auto!important">

SOA究竟是个啥的更多相关文章

  1. java学习笔记-基础篇

    Java基础篇 1—12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28—31异常 1—12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...

  2. 由面试引发的思考:B/S与C/S究竟是何物

    一.现状说明: 就在这金三银四的求职黄金时期,我有幸作为公司的独立技术面试官,拥有最终决定录用权,在倍受上级领导的充分信任下,我也向上级保证,一定要为公司找到合适的人才,就在我满怀信心的情况下面试了一 ...

  3. SOA 面向服务的体系结构

    SOA:面向服务的体系结构(service-oriented architecture) 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 接口是采 ...

  4. WebService究竟是什么?

    一.序言 大家或多或少都听过WebService(Web服务),有一段时间非常多计算机期刊.书籍和站点都大肆的提及和宣传WebService技术,当中不乏非常多吹嘘和做广告的成分.可是不得不承认的是W ...

  5. SOA是什么

    一.SOA是什么   SOA的全称是Service-Oriented Architecture,面向服务架构.是一种架构,不是一种具体的开发技术.   要真正理解什么是SOA需要从软件开发的技术发展史 ...

  6. 了解SOA是什么!

    面向服务架构 面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来 ...

  7. 深入解读ESB与SOA的关系

    时至今日,SOA的概念渐渐清晰了.   有关ESB的概念,已经吵了好多年了,还是没有定论. 我个人认为,ESB本来就是抽象的概念,而且内涵丰富,在不同的场合含义不同.因此应该从不同的角度来认识.   ...

  8. ESB与SOA的关系

    ESB与SOA的关系 一.SOA和ESB一直是没有明确概念的两个缩略词 SOA----面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种通过服 ...

  9. 透析SOA、RPC、SOAP、REST、ICE、ESB模型发展史

    最初的程序全是单机程序,没有网络,没有RPC,更没有RESTful.程序猿写的东西孤独运行在单机上. 那时的程序猿们语言相通,参与开发同一套系统的团队可以面对面沟通. 网络出现了.网络,也带来变乱.网 ...

随机推荐

  1. angular 琐碎

    1.controller 只要在一个地方引用就可以了,路由的时候不用指定controller了,在HTML中指定就可以了,否则会初始化两次 2.angular 模块间的服务无层级关系,相互可见.本质是 ...

  2. CNN结构:场景分割与Relation Network

    参考第一个回答:如何评价DeepMind最新提出的RelationNetWork 参考链接:Relation Network笔记  ,暂时还没有应用到场景中 LiFeifei阿姨的课程:CV与ML课程 ...

  3. MySql(四)Select条件查询

    select条件查询的格式如下: SELECT 查询列表FROM 表名WHERE 筛选条件:123456根据筛选条件可以分为以下几类: 按照条件按表达式进行筛选 常用条件运算符如下:> .< ...

  4. java学习_5_23

    Collection接口中定义的方法如下,所有继承自Collection接口的接口(List,Set)的实现类均实现了这些方法. List容器是有序.可重复的,常用的实现类:ArrayList,Lin ...

  5. 15Microsoft SQL Server 数据库维护

    Microsoft SQL Server 数据库维护 2.6.1数据库联机与脱机 --联机:该状态为数据库正常状态,也就是我们常看到的数据库的状态,该状态下的数据库处于可操作状态,可以对数据库进行任何 ...

  6. TWaver矢量小试——Android演进路线图

    还有半个多月就到春节了,年底相信很多公司都会进行年度总结以及公司发展状况总结,在这过程中难免会用到RoadMap,在这我们也使用TWaver的矢量部分绘制一个Android系统的发展历程.先看效果:什 ...

  7. HDU - 2050 - 折线分割平面(数学 + dp)

    题意: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分 思路: 记住结论.. ...

  8. poj3061 Subsequence【尺取法】

    Description A sequence of N positive integers (10 < N < 100 000), each of them less than or eq ...

  9. 透彻分析C/C++中memset函数

    在C语言中,经常需要对内存进行操作,里面涉及很多函数,但是memset函数的使用有一点需要大家格外注意,这也是我在做项目时遇到过的一个问题,调试了很久才找出来错误. 函数原型是:void *memse ...

  10. UVA - 1620 Lazy Susan(逆序数)

    题目: 把1~n(n≤500)放到一个圆盘里,每个数恰好出现一次.每次可以选4个连续的数字翻转顺序.问能不能变成1.2.3....n的顺序. 思路: 这样的题的规律真的是一点都不好推,看了网上的博客知 ...