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. Sturts2几个常用内建拦截器的介绍

    Sturts2几个常用内建拦截器的介绍:1)conversation:这是一个处理类型转换错误的拦截器,它负责将类型转换错误从ActionContext中取出,并转换成Action的FieldErro ...

  2. java虚拟(一)--java内存区域和常量池概念

    一.java运行时数据区 也可以称为java内存区域,和java内存模型不是一回事,不要弄混,这里基于jdk1.8之前 1.1.方法区 线程共享,类装载过程中产生的java.lang.Class对象保 ...

  3. 12Java Bean

     Java Bean JavaBean是一种组件体系结构.实际上,JavaBean就是一个Java类,这个类可以重复地使用.我们可以把JavaBean看成是一个黑盒子,即只需要知道其功能而不必管其内部 ...

  4. 02网页<body></body>常用标记及属性

    网页<body></body>常用标记及属性 <body></body>标记表示的是在整个浏览器内容框架中显示的部分. text属性用于控制HTML文档 ...

  5. 小程序 textarea ios兼容解决

    今天遇到,在小程序里textarea会存在一定的兼容性问题,textarea有默认的内边距,在安卓和ios显示的时候,ios边距会比安卓的大很多. 解决办法: 通过 wx.getSystemInfoS ...

  6. 重置默认样式 css reset

    html { overflow-x:auto; overflow-y:scroll; } body, dl, dt, dd, ul, ol, li, pre, form, fieldset, inpu ...

  7. 洛谷 4364 [九省联考2018]IIIDX

    [题解] 一眼可以想到一个类似二叉树后序遍历的贪心做法,然而这个做法在有相同数字的情况下是错误的.最简单的反例就是n=4,d={1,1,1,2},正解是1,1,2,1,而贪心是1,1,1,2. 所以这 ...

  8. [bzoj1878][SDOI2009][HH的项链] (莫队算法)

    Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此, 他的项链变 ...

  9. Spring Security核心类关系图

    以有限的脑力记忆无限的Knowledge,多画图,多画图,多画图. 核心类Authentication 和 GrantedAuthority AbstractAuthenticationToken 由 ...

  10. RequestMapping_请求方式

    [映射请求参数.请求方法或请求头] 1.@RequestMapping 除了可以使用请求URL 映射请求外,还可以使用请求方法.请求参数及请求头映射请求. 2.@RequestMapping 的val ...