一、SOA是什么
 
SOA的全称是Service-Oriented Architecture,面向服务架构。是一种架构,不是一种具体的开发技术。
 
要真正理解什么是SOA需要从软件开发的技术发展史谈起。
 
真正的软件开发从开始到现在经历了四个阶段,也可以说成是四代:
1、汇编语言开发
2、面向过程的软件
3、面向对象的组件开发
4、面向服务的架构开发,也是今天要谈论的SOA架构
 
SOA与前面三代的软件开发技术对比,不同点是SOA超越了软件开发语言本身。是一种面向服务的架构,与软件开发语言无关。
 
但就软件开发本身来说,SOA是一种技术,又超越了所有具体的技术。
 
二、SOA的技术革命
 
SOA既然能成为第四代软件开发技术,究竟带来什么革命。
 
首先,SOA是一种开发思想。是一种松耦合的框架。可以让软件超越开发语言。
 
其次,SOA的开发需要SOA体系的支撑,就像J2EE应用一样,离不开应用服务器。SOA也一样,也有一个类似J2EE服务器的东西支持着整个SOA体系架构----ESB( 
Enterprise Service Bus),企业服务总线。通过这个总线,将多个系统连接起来。
 
其次,SOA是基于消息请求响应的一个系统,对请求类型有高度的兼容性。与一个Web应用容器相比,web应用容器只能处理HTTP请求,而 SOA的ESB可以接受HTTP、FTP、WebService、JMS...等请求。这就使得SOA架构具有高度的兼容性,可以将不同的平台集成到一 起,从而相互协调工作。
 
三、SOA火起来的真正原因
 
1、软件开发技术的不断提高。
 
2、硬件性能的提升,价格下降,投出SOA所消耗的成本为企业所能忍受。
 
3、SOA受到了IMB、Oracle、Sun、Microsoft等大公司的热力追捧,被捧红了,实际上,一直以来都是这些公司在引领软件应用的潮流。
 
4、SOA技术革命每年有上千亿美元的市场价值。软件要升级,这些服务提供商才可以买出更多的中间件服务器,卖出更多的硬件,赚取更多利润。
 
5、很多企业的软件应用系统已经满足不了信息高度集成化的要求,为了提高企业的核心竞争力,企业不惜重金,上SOA。
 
6、SOA的招牌很响亮,超越了一切,兼容了一切。它不摒弃旧系统,而是将很多旧系统继承起来,就可以实现。-----实际上,我个人认为这是一个骗局。
 
四、SOA最有前景的舞台
 
1、基于SOA是的思想和技术,SOA最适合最擅长的就是系统集成。而系统集成的关键就是提取公共的有价值的服务。各个系统通过暴露服务,经过ESB这条总线连接后,就将几个系统集成起来了。这在新一代软件开发中也许会得到应用。
 
2、SOA的架构注定SOA在中小企业内部没有多大价值。中小企业的摊子还不够大。
 
3、SOA系统集成难点在于抽取公共的服务。对于老的系统来说,抽取服务就是抽筋。很难很难,意味着要修改软件,要适合SOA的胃口。因此,对一些不同语言开发的系统来说,使用SOA进行系统实际上是扯淡。
 
五、SOA发展现状
 
对SOA口号叫的最响的是IBM,出书最多的也是IBM,成功的案例还没看到。所有的大公司都在忽悠,希望拿到第一笔大单。
 
SOA以来ESB,ESB本身也是一种中间件,或者说是一个增强了的企业应用服务器。目前开源的有几个,也没见过成功的案例。估计SOA技术从起步到成熟还有很长一段路要走。ESB的实现还需要一个发展过程。
 
相反与SOA有紧密联系WebService技术已经深入人心。现在用的比较多。

SOA是什么的更多相关文章

  1. 服务治理要先于SOA

      讲在前面的话: 若企业缺乏对服务变更的控制和规则,那么一个服务在经过几个项目之后,就很有可能被随意更改成多个版本,将来变成什么样更是无法预测.久而久之,降低了服务重用的可能性,提高了服务利用的成本 ...

  2. 简述我的SOA服务治理

    SOA服务治理 1.解决业务部门服务冲突和纠纷2.版本定义与版本管理3.服务备案与服务管理4.业务监督与服务监控 SOA的战略目的 一.业务价值胜过技术策略 二.战略目标胜过具体项目的效益 三.内置的 ...

  3. 浅谈SOA

    概念 wiki对于SOA定义如下: A service-oriented architecture (SOA) is a design pattern in which application com ...

  4. 我所理解的SOA和微服务

    本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上 ...

  5. 我的架构设计~用层关系图说说mvc,mvvm,soa,ddd

    下面是按着我所接触的架构模式,开始一个一个的说一下 第一 标准架构 三层结构

  6. Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结

    Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结 1.1. 软件体系架构是沿着单机到 CS 架构,再到 BS 的三层架构甚至多层架构逐步发展过来的,关于 ...

  7. 说说面向服务的体系架构SOA

    序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...

  8. 微服务和SOA服务

    微服务和SOA都被认为是基于服务的架构,这意味着这两种架构模式都非常强调将“服务”作为其架构中的首要组件,用于实现各种功能(包括业务层面和非业务层面).微服务和SOA是两种差异很大的架构模式,但是他们 ...

  9. 基于SOA分布式架构的dubbo框架基础学习篇

    以需求用例为基,抽象接口,Case&Coding两条线并行,服务(M)&消费(VC)分离,单元.接口.功能.集成四层质量管理,自动化集成.测试.交付全程支持. 3个大阶段(需求分析阶段 ...

  10. 架构从最简单的数据访问框架(ORM)到资源调度和治理中心(SOA)说起

    随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构当网站流量很小时,只需一个应用,将 ...

随机推荐

  1. 关于 jquery.showLoading 中 出现的 图标不在页面中间的问题

    很多人喜欢 showLoading   因为 这个实在是太简单了直接 showLoading() hideLoading() 就可以解决这个问题. 今天我们就来看一下  这个插件里面的一个错误 或者说 ...

  2. PS仿制图章

    颜色总不对,和周围不太搭配,这时候把流量调小点,然后用渐变工具.自己实践所得.

  3. RTP

    RTP学习(三)RTP/RTCP/RTSP数据包格式 h264RTP打包描述的较为详细(含SDP中sps等信息的描述) UDP.TCP.RTP三种协议的总结 http://super-and-star ...

  4. Delphi XML-RPC 中文乱码解决方法

    http://download.csdn.net/user/csm2432/uploads/2

  5. SharedPreference.Editor的apply跟commit方法的異同

    相同点: 1.二者都可提交preference的修改数据 2.二者都是原子操作 区别: 1.apply没有返回值而commit返回boolean表明修改是否提交成功 2.apply是将修改数据原子提交 ...

  6. m2e使用问题——发布web项目时lib目录下的jar包未发布

    解决过程如下: 在项目上点右键查看properties—>Deployment Assembly,看Deploy Path这项上是否缺少WEB-INF/lib这一项. 相关操作截图如下:

  7. pcDuino汉化方法

    1,打开终端:2,在终端输入命令 sudo apt-get update 更新一下软件源3, 输入命令下载中文支持包 sudo apt-get install language-pack-gnome- ...

  8. Codevs_1690_开关灯_(线段树)

    描述 http://codevs.cn/problem/1690/ 一排共 n 个灯,起初都是关着的,现在有 m 次操作. 0 开头的操作代表将 l ~ r 的开关按一遍,1 开头的操作代表询问 l ...

  9. Android4.0 -- UI控件之 Menu 菜单的的使用(四)

    2.  PopupMenu 菜单的使用 1) PopupMenu 介绍   创建弹出菜单,它一般会在view的上边或者下边弹出菜单[具体看是否有空间],注意弹出菜单是api在11或者更高版本中使用   ...

  10. (转载)Flash Builder和flashdevelop 常用快捷键

    (转载)http://www.fantxi.com/blog/archives/fb-fd-shortcut/ =========flashdevelopCtrl+B - snippetsctrl+s ...