SOA 是一种程序设计思想,其实早在远古时代(计算机史)它就已经出现了。无非就是把系统分解,将数据和业务逻辑部分尽量独立出来,然后以服务形式提供给另外的系统共用。

那时也有一些可以实现 SOA 的工具,比如 DCOM、CORBA 等,不过前者仅限于 Windows,后者又太复杂,而且也仅对 C/C++、Delphi、Java 这等语言有较好支持,而且也都是商业开发软件中才会包含,对于开源的脚本类语言来说支持很差甚至没有支持(因为太复杂了,不是什么人都可以实现的了的,能够把整个 CORBA 规范完整读下来,都需要很好的耐心,还不一定都能够完全理解)。之后互联网发展了,XML-RPC 出现了,XML-RPC 很简单,但是也太过简单(因为它只是一个 SOAP 的实验原型而已),简单的数据可以传输,复杂点的就没办法了,所以后来就发展成了 SOAP 这个名字简单实际却很复杂的怪物,尽管 SOAP 已经够复杂了,但它也不过仅仅是定义了数据格式,于是后来就又有了一堆 WS-* 的补充。这样就变得跟 CORBA 一样了,不再是什么人都能理解,什么人都能实现了,或者说除了大公司和大组织有这个能力外,其他人基本上没有这个能力介入。再之后人们突然想发现了宝一样,发现了几年前就被提出来的 REST,于是一堆号称 REST 的服务又出现了,这东西看上去简单,可是实际上却是把数据转换、传输等等问题全都扔给使用者来自行解决了。最后 REST 教父都把这些号称 REST 的服务给否定了。除了这些以外,当然还有其它的方案,比如 Hessian、ICE、Adobe 的基于 AMF3 的通信方案等等,这些不能不说是好的技术,但不是局限于某几种语言,就是局限于某个特定的应用范围。所以要搞 SOA 就需要在这些不同的协议和解决方案之间进行转换,这就出来了 ESB,到这里之后已经看上去很好很强大了。可是它真的可以解决问题吗?真的不是在制造新问题吗?当然它解决了一定的问题,可是同样也制造了更多新问题。能够在各种技术之间转换固然很好,可是本来要掌握这些很复杂的技术中的一种就已经是一件很困难的事了,还要几种都学,几种都要用,这是多大的挑战啊!还有一个问题就是这些协议中本来就有慢的要命的(比如基于 SOAP 的 Web Service),还要再加个转换的过程,那还有什么效率可言。所以,ESB 最后就变成了“哦,傻逼”!SOA 也就变成了听上去很美,做起来很难的东西。

SOA,一个仍在进化的技术。。。。。。

SOA技术的进化史的更多相关文章

  1. SOA相关资料整理分享

    昨@幸福框架同学问能否推荐SOA一些资,.想想之前看过不少资料文档,就整理分享下,有需要的可以参考下. 文章链接 理解面向服务的体系结构中企业服务总线场景和解决方案,第 1 部分 SOA 和 web ...

  2. [转载]《民航科技》2012年4月专家论坛:程延松《关于中国民航SWIM框架及技术实现探讨》

    专家介绍:程延松,现任成都民航空管发展有限公司总经理,理学博士,高级工程师,长期从事空管技术研究和产品研发工作,作为课题负责人,参与了国家863计划.国家科技支撑计划.国家空管委重点课题.民航局重点课 ...

  3. SOA 架构中的ESB是更好的应用于异构系统集成整合还是用于统一服务调用/基础服务实施

    一.讨论主题与观点 写一篇文章.发现一次自觉得有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论. 大家的讨论观点 ...

  4. 使用 XML 实现 REST 式的 SOA

    什么是 SOA? 如果公司有大量应用程序,这些程序供不同部门的承担不同责任的职员使用,那么就适合使用面向服务体系结构(Service Oriented Architecture,SOA).这些应用程序 ...

  5. SOA 的基本概念及设计原则浅议

    SOA是英文词语"Service Oriented Architecture"的缩写,中文有多种翻译,如"面向服务的体系结构"."以服务为中心的体系结 ...

  6. SOA是什么

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

  7. 浅析深究什么是SOA?(转)

    http://blog.vsharing.com/fengjicheng/A1059842.html 阅读提示: 本文探讨SOA概念背后的核心内涵,如何将SOA落地的实务方法. 金蝶中间件作为全球领先 ...

  8. SOA一些资料

    SOA相关资料整理分享 2015-03-26 16:16 by 蘑菇先生, 693 阅读, 9 评论, 收藏, 编辑 昨@幸福框架同学问能否推荐SOA一些资料.想想之前看过不少资料文档,就整理分享下. ...

  9. 浅析深究什么是SOA?

    浅析深究什么是SOA? http://blog.vsharing.com/fengjicheng/A1059842.html 金蝶中间件有限公司总经理 奉继承 博士 阅读提示: 本文探讨SOA概念背后 ...

随机推荐

  1. 《JavaScript高级程序设计》笔记(1):<script>元素

    使用<script>元素内部的JavaScript代码将从上至下依此解释.在使用<script>嵌入的JavasCript代码时,代码任何地方不能出现"</sc ...

  2. WordPress D8 主题当中截取文章首图并显示的函数

    取自 WordPress D8 主题; 路径 theme\d8\modules ; if ( ! function_exists( 'deel_thumbnail' ) ) : function de ...

  3. 【javascript 函数基础知识】

    函数实际上是对象,每个函数都是 Function 类型的实例,而且都会与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定. [概念标签] ...

  4. IntelliJ IDEA 使用随笔

    注册的地址:http://idea.iteblog.com/key.php

  5. iOS - 打电话, 发短信

    电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...

  6. JavaScript高级之函数的四种调用形式

    主要内容 分析函数的四种调用形式 弄清楚函数中this的意义 明确构造函对象的过程 学会使用上下文调用函数 了解函数的调用过程有助于深入学习与分析JavaScript代码. 本文是JavaScript ...

  7. [BZOJ 2721] [Violet 5] 樱花 【线性筛】

    题目链接:BZOJ - 2721 题目分析 题目大意:求出 1 / x + 1 / y = 1 / n! 的正整数解 (x, y) 的个数. 显然,要求出正整数解 (x, y) 的个数,只要求出使 y ...

  8. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  9. 教你如何监控 Apache?

    什么是 Apache? Apache 是一款 HTTP 服务器软件,现在更名为 "http",而 Apache 则成了一个(包含httpd的项目)巨大的基金组织,根据习惯后文都用 ...

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

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