关于SOA (Service-Oriented Architecture),最近多次听到这概念,有点懵,网上找了些资料,一起来看看。

SOA的概念

SOA是由Garnter1996年提出的概念(架构如图1所示),将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,目的是为了让软件变的有弹性,能够快速响应业务的需求,使开发人员以最小的软件变更应对迭代多变的需求。图1 SOA架构

SOA的核心要素

SOA的目标是实现灵活可变的软件系统,其核心要素为标准化封装、软件复用、松耦合等。

标准化封装

传统架构的软件互操作方面,中间件只是实现了访问互操作,即通过标准化API实现对同类系统的调用互操作,而连接互操作还是依赖于特定的访问协议,如JAVA使用的RMI。而SOA通过标准的、支持Internet、与操作系统无关的SOAP协议实现了连接互操作。而且服务的封装是采用XML协议,具有自解析和自定义的特性,因此基于SOA的中间件还可以实现语义互操作。

软件复用

软件复用指的是同一软件不做修改或者稍作修改就可重复使用,类似于将软件做成标准件。从软件发展的来看,就是不断提高其抽象等级,提高复用等级。

传统架构的核心是组件对象的管理,由于构件实现和运行支撑技术之间存在着较大的异构性,不同技术设计和实现的构件之间无法直接组装式复用。

而SOA的重要特征就是以服务为核心。通过服务,或服务组件来实现更高层次的复用、解耦和互操作,即SOA架构中间件。因为服务是通过标准封装,服务组件之间的组装、编排和重组,来实现服务的复用。而且这种复用,可以在不同企业之间,全球复用,达到复用的最高级别,并且是动态可配置的复用。

松耦合

传统软件将软件核心三部分网络连接、数据转换、业务逻辑全部耦合在一起,导致软件升级或修改“牵一发而动全身”,难以快速适应变化,而SOA架构,通过服务的封装,实现了业务逻辑与网络连接、数据转换等进行完全的解耦。

为什么需要SOA

SOA本质是由业务需求、技术更新推动,业务需求的拉动,希望快速解决业务应用的问题;技术发展的推动,使得SOA具备了技术上的可行性,软件技术的发展推动了IT创新的商业价值。

对于汽车行业而言,由于智能网联汽车的发展,需要大量的控制器协调工作来实现,当前ECU是基于信号的点对点通信,微小的交互变更带来多节点的软件变动,不具备灵活性和扩展性,

参考:1、http://blog.vsharing.com/fengjicheng/A1059842.html

2、联电公众号内容。

java soa是什么_什么是SOA呢相关推荐

  1. Java Review - 并发编程_ 回环屏障CyclicBarrier原理源码剖析

    文章目录 Pre 小Demo 类图结构 CyclicBarrier核心方法源码解读 int await() int await(long timeout, TimeUnit unit) int dow ...

  2. Java Review - 并发编程_读写锁ReentrantReadWriteLock的原理源码剖析

    文章目录 ReentrantLock VS ReentrantReadWriteLock 类图结构 非公平的读写锁实现 写锁的获取与释放 void lock() void lockInterrupti ...

  3. Java Review - 并发编程_原子操作类LongAdder LongAccumulator剖析

    文章目录 概述 小Demo 源码分析 重要的方法 long sum() reset sumThenReset longValue() add(long x) longAccumulate(long x ...

  4. Java web小项目_个人主页(2)—— 边缘加速原理与实现

    摘自:Java web小项目_个人主页(2)-- 边缘加速原理与实现 作者:丶PURSUING 发布时间: 2021-03-27 14:44:40 网址:https://blog.csdn.net/w ...

  5. Java web小项目_个人主页(1)—— 云环境搭建与项目部署

    摘自:Java web小项目_个人主页(1)-- 云环境搭建与项目部署 作者:丶PURSUING 发布时间: 2021-03-26 23:59:39 网址:https://blog.csdn.net/ ...

  6. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  7. java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at

    [http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...

  8. java基于OpenCv图像处理_读取_保存图片

    java基于openCv图像处理_读取_保存图片 本文使用javaCV封装后的OpenCv <dependency><groupId>org.bytedeco</grou ...

  9. 李兴华java视频在线观看_李兴华Java开发实战经典视频教程_IT教程网

    资源名称:李兴华Java开发实战经典视频教程 资源目录: [IT教程网]010201_[第2章:简单Java程序]_简单Java程序 [IT教程网]010301_[第3章:Java基础程序设计]_Ja ...

最新文章

  1. 再度冲刺“农村电商第一股”,汇通达还有什么法宝?
  2. MySQL给用户设置密码(修改密码)、创建用户,grant为某个IP、某个网段或所有IP地址创建访问用户并授权
  3. oracle rman 用户,对Oracle数据库进行RMAN备份的Oracle数据库用户权限
  4. Puppet 之 模板和模块
  5. 作者:吴甘沙,男,现任英特尔中国研究院院长。
  6. 下次激活策略10_(好文重读)低风险之可转债4大卖出策略
  7. 第二章 Java浮点数精确计算
  8. C++ 命名空间三种用法
  9. php 内网全部ip,如何ping局域网内所有IP
  10. docker ssh连接
  11. Linux Lite下打印机驱动安装及针式打印机校准
  12. 软件测试面试题之自动化测试题大合集(下)
  13. 浏览器的语音识别功能
  14. CentOS 6.4 电信ADSL拨号上网网络配置
  15. 超级账本执行董事:区块链将削弱谷歌、亚马逊和Facebook的市场力量
  16. 读优美博文了解低风险套利策略
  17. API to UPDATE Oracle FND User
  18. 在mysql中更新数据sql语句怎么写_在MySQL中,更新数据库表记录的SQL语句,包括______语句...
  19. APISpace 的 星座配对API
  20. 网站安全防护该怎么做?有什么具体措施?

热门文章

  1. 达•芬奇唯一雕塑作品被发现
  2. Camera DVP协议讲解
  3. java+mysql基于ssm企业进销存管理系统【计算机毕业设计】
  4. 我转行数据自学的这几本统计学,内含视频教程
  5. 公众号生成微信渠道二维码的方法?
  6. MATLAB画图——用数字表示颜色以及删除矩阵行
  7. 云计算+大数据+深度学习+人工智能+量子计算=?
  8. 【分布式架构的原理】淘宝的演进过程
  9. matlab中常微分方程数值计算的方法
  10. Qt5包含头文件error: C1083: 无法打开包括文件