什么是SOA架构?

什么是SOA架构?一.SOA的概念1.1.SOA(Service-OrientedArchitecture)面向服务的架构:Gartnet把它定义为一种软件的设计方法 百度百科把它定义为一个组件模型 W3C把它定义为一种应用程序架构(https://www.w3school.com.cn/w3c/w3c_china.asp) 专家Davis说它是一种设计思想 总之,SOA不是具体的技术实现SOA的实现SOA实现层面包含两个最重要的概念:面向服务的通信(SOCService-Oriented…

大家好,又见面了,我是你们的朋友全栈君。

一. SOA的概念

1.1. SOAService-Oriented Architecture)面向服务的架构:

  • Gartnet把它定义为一种软件的设计方法
  • 百度百科把它定义为一个组件模型
  • W3C把它定义为一种应用程序架构(https://www.w3school.com.cn/w3c/w3c_china.asp)
  • 专家Davis说它是一种设计思想
  • 总之,SOA不是具体的技术实现

SOA的实现

SOA实现层面包含两个最重要的概念:

  • 面向服务的通信SOC Service-Oriented Communicaiton)
  • 面向服务的软件架构SOSA Service-Oriented Software Architecture)

服务(Service)是实现某种功能的函数或方法,离散的功能单元,可以被远程访问并且能够独立运行和更新。

SOC的简介

SOCService-Oriented Communicaiton)面向服务的通信:

  • 谁和谁进行通信:服务提供者和服务接受者,即:服务端和客户端
  • 怎么通信:服务端实现服务接口并提供服务功能,客户端使用服务接口并调研服务功能
  • 服务太多怎么处理:服务端在服务代理里面进行注册,声明它能够提供哪些服务;客户端在需要服务的时候进行查找,找到后进行调用

什么是SOA架构?

SOC的实现方式

  1. SOME/IP(Service-Oriented MiddlewarE Over IP) 面向服务的IP中间件
  2. DDS(Data Distribution Service)数据分发服务
  3. RESTful(Representational State Transfer)

SOSA的实现方式

  1. AUTOSAR Adaptive Platform

为什么用SOA架构?

SOAService-Oriented Architecture)的特点:

  • 易于扩展
  • 灵活的平台
  • 服务通信标准化
  • 服务间:松耦合,无状态,无依赖
  • 服务内:高内聚,完整,可复用,可灵活重组

通过对比传统静态交互和SOA动态交互,可以看出SOA架构的优势:

  1. 传统静态交互及其缺陷

    域控制器之间通过静态配置进行交互:

    • 实线箭头 表示 信号流
    • 虚线箭头 表示 新增/变更的信号
    • 紫色框 表示 新增/变更的功能
    • 黑色框 表示 新增/变更的控制 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148646.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c hexdump「建议收藏」

    c hexdump「建议收藏」记录下,有时要打日志用#ifndefhexdump_h#definehexdump_h#ifdef__cpluscplusextern”C”{#endif  voidhexDump(char*desc,void*addr,intlen);   #ifdef__cplusplus}#endif

    2022年9月15日
    1
  • latex中如何正确输入 双引号「建议收藏」

    latex中如何正确输入 双引号「建议收藏」latex中输入双引号时,如果都直接用键盘上的双引号键,打出的是一顺撇的。左面引号的正确输入法是:按两次“Tab上面,数字1左面那个键”。至于后边的引号,与老方法是一样的,即按两次单引号键(或一次SHIFT+单引号键—也就是一次双引号键啦怎么输入左单引号、左双引号、右单引号、有双引号?左单引号:`(键盘上1旁边的那个);左双引号:“;右单引号:'(键盘分号的右边那个);右双引号:”或”。在

    2022年4月19日
    931
  • Python之os.path

    os.path常用函数示例参考:https://www.cnblogs.com/wuxie1989/p/5623435.html

    2021年12月19日
    55
  • 架设私有的Git服务器[通俗易懂]

    架设私有的Git服务器[通俗易懂]Git是一个版本控制系统,现如今正在被全世界大量开发者使用。许多公司喜欢使用基于Git版本控制的GitHub代码托管。根据报道,GitHub是现如今全世界最大的代码托管网站。GitHub宣称已经有920万用户和2180万个仓库。许多大型公司现如今也将代码迁移到GitHub上。甚至于谷歌,一家搜索引擎公司,也正将代码迁移到GitHub上。GitHub能提供极佳的服务,但却有一些限制,尤其是你是单人或是一名coding爱好者。GitHub其中之一的限制就是其中免费的服务没有提

    2022年9月26日
    2
  • idea2019激活码【最新永久激活】

    (idea2019激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~09LV…

    2022年3月28日
    5.0K
  • java calendar计算时间差_Java Calendar 计算时间差

    java calendar计算时间差_Java Calendar 计算时间差publicstaticvoidmain(String[]args){Calendarc=Calendar.getInstance();inty=2016;//年intM=1;//月intd=1;//日intH=0;//时intm=0;//分ints=0;//秒c.set(Calendar.YEAR,y);c.set(Calendar.MONTH,M-1);c.set(…

    2022年6月5日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号