当前位置: 首页 > news >正文

百日筑基第三天-SOA初步了解

百日筑基第三天-SOA初步了解

SOA(Service-Oriented Architecture,面向服务的架构)是一种软件设计原则,它倡导将应用程序分解为独立的服务单元,这些服务通过定义良好的接口相互通信,以实现业务功能。而RPC(Remote Procedure Call,远程过程调用)和Dubbo则是实现SOA架构中服务间通信的具体技术或框架。SOA是一种高层次的架构设计理念,强调服务的松耦合、可重用和标准化接口;RPC和Dubbo则是实现这一理念的技术和框架,其中RPC是一种更底层的技术,关注于如何实现远程服务调用,而Dubbo则是在SOA理念指导下,提供了更为全面的微服务治理体系,特别适用于分布式和微服务架构的场景。

与 SOA 紧密相关的技术主要有 UDDI、WSDL、SOAP 和 REST 等。

1.UDDI(Universal DescriptionDiscovery and Integration,统一描述、发现和集成)提供了一种服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。UDDI 规范描述了服务的概念,同时也定义了一种编程接口。通过 UDDI 提供的标准接口,企业可以发布自己的服务供其他企业查询和调用,也可以查询特定服务的描述信息,并动态绑定到该服务上。

在 UDDI 技术规范中,主要包含以下三个部分的内容:

(1)数据模型。UDDI 数据模型是一个用于描述业务组织和服务的 XML Schema。

(2)API。UDDI API 是一组用于查找或发布 UDDI 数据的方法,UDDI API 基于 SOAP。

(3)注册服务。UDDI 注册服务是 SOA 中的一种基础设施,对应着服务注册中心的角色。

2.WSDL(Web ServiceDescription Language,Web 服务描述语言)是对服务进行描述的语言,它有一套基于 XML 的语法定义。WSDL 描述的重点是服务,它包含服务实现定义和服务接口定义,采用抽象接口定义对于提高系统的扩展性很有帮助。服务接口定义就是一种抽象的、可重用的定义,行业标准组织可以使用这种抽象的定义来规定一些标准的服务类型,服务实现者可以根据这些标准定义来实现具体的服务。

服务实现定义描述了给定服务提供者如何实现特定的服务接口。服务实现定义中包含服务和端口描述。一个服务往往会包含多个服务访问入口,而每个访问入口都会使用一个端口元素来描述,端口描述的是一个服务访问入口的部署细节,例如,通过哪个地址来访问,应当使用怎样的消息调用模式来访问等。

3.SOAP(Simple ObjectAccess Protocol,简单对象访问协议)定义了服务请求者和服务提供者之间的消息传输规范。SOAP 用 XML 来格式化消息,用 HTTP 来承载消息。通过 SOAP,应用程序可以在网络中进行数据交换和远程过程调用(Remote Procedure Call, RPC)。

4.REST(RepresentationalState Transfer,表述性状态转移)是一种只使用 HTTP 和 XML 进行基于 Web 通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。它的简单性和缺少严格配置文件的特性,使它与 SOAP 很好地隔离开来,REST 从根本上来说只支持几个操作(POST、GET、PUT 和 DELETE),这些操作适用于所有的消息。REST 提出了如下一些设计概念和准则:

(1)网络上的所有事物都被抽象为资源。

(2)每个资源对应一个唯一的资源标识。

(3)通过通用的连接件接口对资源进行操作。

(4)对资源的各种操作不会改变资源标识。

(5)所有的操作都是无状态的。

http://www.lryc.cn/news/384223.html

相关文章:

  • 「2024中国数据要素产业图谱1.0版」重磅发布,景联文科技凭借高质量数据采集服务入选!
  • 条码二维码读取设备在医疗设备自助服务的重要性
  • centos 7.8 安装sql server 2019
  • Android焦点机制结合WMS
  • Hive分区和分桶
  • GPT-5的到来~
  • 责任链模式(设计模式)
  • 计算机图形学入门20:加速光线追踪
  • sys.stdin对象——实现标准输入
  • 嵌入式项目分享| 终极智能手表,全过程+全开源分享
  • 【Linux详解】进程的状态 | 运行 阻塞 挂起 | 僵尸和孤儿状态
  • MySQL添加外键约束经典案例
  • vue3监听器watch以及watchEffect的使用
  • modelsim做后仿真的一点思路
  • 如何获取特定 HIVE 库的元数据信息如其所有分区表和所有分区
  • 如何在 qmake(QtCreator)中指定 Mac 平台
  • day39动态规划part02| 62.不同路径 63. 不同路径 II 343. 整数拆分 (可跳过)96..不同的二叉搜索树 (可跳过)
  • 声场合成新方法:基于声波传播的框架
  • 鸿蒙文件操作事前准备
  • AI智能时代:ChatGPT如何在金融市场发挥策略分析与预测能力?
  • C#面:C#属性能在接口中声明吗?
  • 区块链的历史和发展:从比特币到以太坊
  • input()函数——输入
  • CST 时间格式减去八小时
  • 植物大战僵尸杂交版技巧大全(附下载攻略)
  • HTTPS 代理的优点和缺点是什么?
  • Mac安装多版本node
  • HTML静态网页成品作业(HTML+CSS)——动漫猪猪侠网页(4个页面)
  • 【机器学习300问】125、什么是双向循环神经网络(BRNN)?什么是深度循环神经网络(DRNN)?
  • 办公软件汇总