任何一种新事物的出现都是为了达到一定目的的,提供一定的价值,这也就是其产生和发展的意义所在。弄清楚了这点,也就弄清楚了其本质。
一、IT:英文的全称为Information Techology,中文翻译为信息技术。本质上包括两种使用方式:
(1)、创建信息:在企业的各种活动中,如接收订单、原料采购、等等活动,必然产生大量的信息,这就需要将各种信息收集起来,以备以后的进一步调用。
(2)、调用信息:如接收订单后,企业开始从事生产,产品生产出来后,需要发货。就需要找到原来的订单记录上面的客户地址用来发货,等等操作都是调用信息的实例,也就是IT帮助企业创建信息和调用信息的实例。
(3)、IT的进一步:集成信息,显然只有创建信息和调用信息是不够的,随着IT的进一步发展,信息集成已经显得格外重要,因为已经产生的IT格局虽然已经产生很大生产力,但这种生产力反作用IT,必然促进信息集成。 所以信息集成不仅仅是企业内部的事情,更关乎企业与企业之间。
二、IT程序语言的发展历史
观察过去可以更好的了解现在,因为现在是过去的延续。通过观察现在,可以更好的知道未来,因为未来是现在的延续。
(1) 面向过程的编程:C语言是典型的代表,是一种紧密耦合的软件语言技术,用C语言的应用程序完成了一大堆函数的编写,函数的可重用性很差。这种语言的特点必然造成了这种很紧密的耦合性。
(2) 现象对象的编程:以一种更接近人的思维的思想去解决程序设计中的问题,通过封装、继承、多态等形式实现松散耦合,达到一定程度的复用性。但是这些对象只能本地调用,不能远程调用。
(3) 面向组件的编程:其最初的动机就是实现远程分布式调用。它有接口类,另外有专门的实现方法类,客户端调用的是接口类,接口类和接口类之间实现了一定程度的解耦合,但是这种远程调用的组件却依赖于特殊的协议,比如J2EE采用RMI协议。
面向组件编程需要和特定的程序语言绑定,传输协议也是非标准化的,传输协议的不一致,导致各种组件之间不能互相调用,如J2EE和DCOM无法互相调用。
(4) 标准的Web Service的编程:采用标准的的SOAP传输协议,不同厂商实现的Web Servcie之间互相可以调用。
IT程序语言发展的过程实际是一个逐步降低耦合性的过程,也是一个接口和接口实现之间逐渐分离的过程。
    但是Web Service 的SOAP尽管是一种标准的传输协议,但是它毕竟是一种特殊的协议,一种特殊的技术,并不支持其它的传输协议,如RMI等,所以Web Service 还是和特定的SOAP技术绑定在一起的。
通过了解IT和程序语言的发展历史,可以得到这样的一个结果,SOA是为了信息集成,而出现的一种新事物,它显然是超越的现有的一切技术,但是它又包含了所有的技术。SOA达到的一个目的就是面向服务,而这种面向服务的结果就是忽略任何与技术有关的东西,最终提供的都是服务接口。
其实我们还应该搞清楚面向对象和面向组件之间的区别,面向组件和面向服务的区别,SOA和web service之间的区别?
面向对象和面向组件的区别在于面向组件需要和传输协议及应用服务器的端口绑定,面向服务就是要进一步对面向组件解耦,所谓解耦就是将将业务组件和传输协议的端口解耦,既各种业务组件可以自由的绑定各种传输协议。SOA和web service之间的区别是SOA是在web Service的基础上发展起来的,web service实现了松散耦合的服务和粗粒度的服务,但是web service本质上只是一个服务组件,它虽然采用的标准的协议,但是它是个应用服务器紧密相关的。
所以可以得出结论:SOA本身并非什么具体的技术,也不是什么架构,它是一种思想,它超越了现有的技术和架构,但是它又包含了现有技术和架构。运用这种思想要到达的目的就是做到业务和技术的完全分离,做到敏捷的、不受限制的信息集成。

其他网友的关于SOA的见解:

网友1:没用过不敢妄加评论,理解上SOA用在,
              1,应用中需要解决异构系统之间通信(比如:j2ee and .net) 
              2,需要把本应用作为一种功能提供给其他应用.(比如一个购物网站提供商品目录和价格的web service,这样能被供应商和广告商调用,无需关注应用的平台)

网友2:

很显然SOA能够解决异构系统之间通信问题,但是如果只需要解决异构系统之间通信问题,web service就可以实现了。
          web service使用标准的SOAP协议,可以实现异构系统通信,但是SOAP协议毕竟还是一种特殊协议,无法兼容其他的协议,这种协议相关性就阻碍了信息集成,这就是SOA要解决的最大问题,目前SOA的有两套标准,分别是SUN公司的JBI规范和IBM&BEA的SCA,但遗憾的是IBM&BEA的SCA并不支持SUN公司的JBI规范,但他们解决的问题都是集成问题,只是两者切入点不同,但显然IBM&BEA的SCA提供了另外一套编程模型,使用SCA,最终呈现的是一种面向服务的构件。。。。。。
还是最终要做到业务和技术的完全分离,做到敏捷的、不受限制的信息集成。
网友3:

有人说英语,有人说汉语,还有人说法语...
           Web Service说, 这不利于集成..大家都来说"世界语"--SOAP
           SOA说, 世界语还是语言, 和特定表达方式绑定了; 我们最终要做到, 大家都使用脑电波交流, 最终要做到语言和表达完全分离, 做到敏捷的、不受限制的信息集成.

什么是SOA?为什么要SOA?相关推荐

  1. 干货丨什么是SOA架构?SOA架构有什么作用?

    针对传统的单体架构存在的问题,后来出现了一种SOA架构. SOA架构是一个面向服务的架构,它是一个组件模型.SOA架构将应用程序的不同功能单元(称为服务)进行拆分,并通过在这些服务之间定义良好的接口和 ...

  2. 什么是SOA架构?SOA架构有什么作用?

    什么是SOA架构?SOA架构有什么作用? 参考链接:https://www.itcast.cn/news/20201023/18252534188.shtml 针对传统的单体架构存在的问题,后来出现了 ...

  3. [SOA征文]SOA如何起步?

    SOA有多好,似乎已经无数的人说过了,但是怎么做,却是大家各执一词. 技术厂商自然是推广自己的产品,根据自己的产品提出不同的路线图,EAI也好,ESB也好,莫衷一是. 实际上,就技术层面而言,我认为具 ...

  4. MOS管安全工作区SOA及根据SOA选择MOS管

    本文介绍了MOS管的安全工作区(SOA)的定义以及如何使用SOA选择MOS管,最终给出常用的热插拔场景下的MOS管. MOS管选型过程中有一个非常关键的指标需要考虑,即安全工作区(SOA).一般的MO ...

  5. (浅谈SOA架构)------SOA架构演变由来

    SOA架构演变由来 一:了解市场上系统架构 1.1:市面上有那些架构? (1):单体架构 (2):垂直架构 (3):分布式服务架构 (4):SOA架构 (5):微服务架构 1.2:各自架构的优缺点 1 ...

  6. 论SOA架构的几种主要开发方式

    论SOA架构的几种主要开发方式 面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调 ...

  7. [WCF编程]2.SOA概述

    一.SOA简介 1. SOA(面向服务架构)既是一种编程方式,也是软件开发的一种架构方法.根据这种架构方法,应用程序是由具有一定行为(称为服务)的功能单元组成的. 2. SOA的基本思想是构建一个粗粒 ...

  8. 【电信业务】【原则与规范】SOA 面向服务架构

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

  9. SOA 案例研究:SOA 设计

    本文是面向服务的体系结构 (SOA) 系列之一,主要通过名为 JKHL Enterprises (JKHLE) 的虚构公司阐述一个案例研究.本文的案例研究重点是与 SOA 设计(更具体地说是服务和流的 ...

最新文章

  1. phpmyadmin底部出现提示“The configuration file now needs a secret passphrase (blowfish_secret). ”...
  2. linux mysql8.0.16 下载_Linux CentOS上安装 MySQL 8.0.16
  3. ActiveMQ broker 集群, 静态发现和动态发现
  4. Redis工作笔记-Sorted-Sets类型
  5. MobileFormer-在目标检测任务上怒涨8.6 AP,微软新作MobileFormer
  6. 1、深入理解 Laravel Eloquent(一)——基本概念及用法
  7. Linux下禁止ping最简单的方法
  8. 【Android】12.0 第12章 Intent及其过滤器—本章示例主界面
  9. VS C++ 字符串分割 strtok
  10. webpack项目使用eslint建立代码规范
  11. 安全浏览器版本过低?该升级浏览器内核了
  12. java飞机订票系统课程设计_基于Java+SSH的飞机票订票售票系统
  13. 猜词游戏(类似于Hang子手)
  14. 更改MyEclipse/Eclipse的工作空间名字(workspace)
  15. python 爬取整部漫画(简单的图片爬取)
  16. 小重山·斯卡波罗集市
  17. AD637原理图PCB电路设计,使用经验和建议——【电路模块经验10】
  18. Waymo二次裁员/特斯拉召回,自动驾驶赛道「新」变化
  19. 身份证照片扫描后调整使其不发黑
  20. 3500套公司常用表格

热门文章

  1. SpringBoot+Vue项目毕业论文管理系统
  2. Google翻译API的使用
  3. MySQL索引数据结构二叉树、红黑树、B-Tree、B+Tree、Hash
  4. 如何将英文的PDF文档翻译成中文简体?
  5. 学java用哪个翻译器好_英语翻译器软件哪个好?用这两款就对了
  6. Solving environment: failed ResolvePackageNotFound: - ld_impl_linux-64==2.34=h53a641e_4
  7. 保护你的 Flutter 应用程序
  8. VLC Plugin JS 方法
  9. [Swift]UIButton文本添加下划线
  10. cnpm不是内部命令的解决方案:配置环境变量【推荐】