一、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. Oracle XE修改默认HTTP端口8080

    打开SQL*Plus控制台.用sys或者system登陆.然后运行: begin dbms_xdb.sethttpport('9999'); end; / 搞定.

  2. DataGrid点击上下一页loading效果

    js添加显示loading和取消loading方法 function showtbloading() { var target = $("#GridView1"); if (tar ...

  3. Gabor变换

    Gabor变换 Gabor变换属于加窗傅立叶变换,Gabor函数可以在频域不同尺度.不同方向上提取相关的特征.另外Gabor函数与人眼的生物作用相仿,所以经常用作纹理识别上,并取得了较好的效果.Gab ...

  4. 【技术帖】解决 Hudson jenkins 连接等待中 - Waiting for next av

    今天构建项目发现如下问题: jenkins 连接等待中 - Waiting for next available executor 左下角那块一直不运行构建,一直在连接等待. 于是,进入一级页面, 右 ...

  5. 快速搭建Web服务器软件PHP+Apache+MySQL

    搭建网站或者博客,需要一个合适的 Web 服务器.除了如下能在购买的虚拟空间上进行操作外,我们也可以在自己的电脑上搞定,因为可以用来方便快捷地测试网站或者博客主题,无论是 Wordpress.Joom ...

  6. CAS单点登录配置[1]:准备工作

    关于CAS是什么这里就不在赘述,网友将它比喻成旅游景点的套票,买了一个套票就可以观看所有景点,不需要一个景点买一次票...我们重点介绍CAS单点登录的配置. 工具/原料 1.配置好JDK环境,否则不方 ...

  7. Android Service 详解

    一个Service也是一种应用程序组件,它运行在后台以提供某种服务,通常不具有可见的用户界面.其它的应用程序组件可以启动一个 Service,即使在用户切换到另外一个应用程序后,这个Service还是 ...

  8. 17.2.2 Replication Relay and Status Logs 复制Relay 和状态日志;

    17.2.2 Replication Relay and Status Logs 复制Relay 和状态日志: 17.2.2.1 The Slave Relay Log 17.2.2.2 Slave ...

  9. 【HDOJ】1180 诡异的楼梯

    bfs+优先队列.wa了N次,才发现可以停留等待楼梯变换方向. #include <iostream> #include <queue> #include <cstdio ...

  10. WCF - net.pipe vs. net.tcp vs. http Bindings

    WCF - net.pipe vs. net.tcp vs. http Bindings 问题: I'm new to WCF and would like to know the differenc ...