软考架构-面向服务的架构风格

news/2024/9/18 15:12:50/ 标签: 架构

一、SOA

1、概念

面向服务开发,服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。多个服务挂载在ESB(企业服务总线)上进行通信。

2、特征

可从企业外部访问、随时可用(服务请求能被及时响应)、粗粒度接口(粗粒度提供一项特定的业务功能,细粒度服务代表技术构件的方法)、服务分级、松散耦合(服务提供者和服务使用者分离)、可重用的服务及接口设计管理、标准化的接口(WSDL/SOAP/XML是核心)、支持各种消息模式、精确定义的服务接口。

构件-可独立部署的功能单元(对象、接口、服务等),概念比较广

3、关键技术

功能协议
发现服务UDDI、DISCO
描述服务

WSDL、XML、Schema

消息格式层SOAP、REST
编码格式层XML(DOM、SAX)
传输协议层HTTP、TCP/IP、SMTP等

UDDI(Universal Description Discovery and Integration):是一套基于WEB的、分布式的、为WebService提供的、信息注册中心的实现标准规划。用于WEB服务注册统一描述、发现和集成。

WSDL(WebService描述语言):用户描述服务

SOAP(简单对象访问协议):用于交换XML编码信息的轻量级协议、用于传递信息、服务远程调用

XML:是WebService平台中表示数据的基本格式,用于数据交换

4、Web Service

服务提供者、服务注册中心、服务请求者。服务提供者将服务描述发布到服务注册中心,供服务请求者调用。

5、服务注册表

服务注册:服务提供者在注册中心发布服务

服务位置:服务在注册中心的位置

服务绑定:服务请求者利用检索到的服务接口编写代码,代码与注册的服务绑定,调用注册的服务,实现交互

6、企业服务总线ESB

集成不同协议的不同服务,ESB做了消息转化、解释以及路由的工作,以此来让不同服务互联互通

包括:客户端(服务请求者)、基础架构服务(中间件)、核心集成服务(提供服务)

特点:

总线作用,将各种服务进行连接与整合

服务元数据和服务注册管理

服务请求者和提供者之间传递数据,以及对这些数据进行转换

发现、路由、匹配和选择的能力


http://www.ppmy.cn/news/1524850.html

相关文章

【数据结构精讲】01绪论(基本概念介绍和时间复杂度计算)

绪论 在绪论这部分会介绍常用的一些基本概念,让同学们对这门课的整体有所了解! 数据结构以及相关概念 一、几个重要概念 1、数据:凡是能输入到计算机并能被计算机程序处理的符号的总称 2、数据元素:数据的基本单位&#xff0…

第二十一章 rust与动静态库的结合使用

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust与动静态库的结合使用 目录 注意一、前言二、库生成三、库使用四、总结一、前言 rust中多了很多类型的库,比如前面章节中我们提到基本的bin与lib这两种crate类型库。 如果你在命令行执行下列语句: rustc -…

redis:全局ID生成器实现

问题:订单id不能设置为自增长的原因 id的规律性太明显, 受订单的数据量限制:若数据量过大,需要多张表存储,若自增会导致id重复 全局ID生成器:在分布式系统中用来生成全局唯一ID的工具 ID的组成: 符号位…

h5页面使用antd-modal,怎么处理居中且自然

背景 老项目中h5和pc端采用同一个组件来处理前端布局适配的问题,所以用到media这个媒体查询方法, 先后需要针对不同端做一些样式处理。 问题出现的原因: 在处理modal组件的弹窗居中上,pc端通过transfrom【translate】加上top,left很快就解决…

git 合并分支并解决冲突

git 合并分支并解决冲突 切换分支 git checkout <branch-name> 首先切换到要合并的目标分支 合并分支 git merge <source-branch> //将源分支代码合并到当前分支中&#xff0c;源分支的各项新增的提交都会按时间点插入到当前分支的提交记录中 git merge …

使用Python读取PlantUML导出的XMI文件

使用Python读取PlantUML导出的XMI文件 说明&#xff1a; 首次发表日期&#xff1a;2024-09-08PlantUML官网&#xff1a; https://plantuml.com/zh/PlantUML命令行文档&#xff1a; https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml…

C与汇编之间的相互调用(29)

1 先来看一下 基本的调用规则。 注意&#xff1a; 程序通过 r1 -r4 来保存 传递的参数&#xff0c;如果 超过了 4个参数怎么办&#xff0c; 那就 放到栈里面。 注意&#xff1a; 堆栈是满递减&#xff0c; FD。 子程序的返回结果 会放到R0 里面。 2 然后是 c 语言调用 汇编语言…

音视频入门基础:WAV专题(11)——FFmpeg源码中计算WAV音频文件每个packet的pts_time、dts_time的实现

音视频入门基础&#xff1a;WAV专题系列文章&#xff1a; 音视频入门基础&#xff1a;WAV专题&#xff08;1&#xff09;——使用FFmpeg命令生成WAV音频文件 音视频入门基础&#xff1a;WAV专题&#xff08;2&#xff09;——WAV格式简介 音视频入门基础&#xff1a;WAV专题…

DMDPC单副本集群安装

1. 环境描述 2. 部署步骤 2.1. 安装DM数据库软件启动DMAP [dmdbalei1 ~]$ DmAPService status DmAPService (pid 1269) is running.2.2. 初始化数据库实例 [dmdbalei1 data]$ dminit path/dmdba/data/sp1 instance_nameSP1 port_num5236 ap_port_num6000 dpc_modeSP initdb …

如何确定kafka与zookeeper版本的对应关系

一、kafka与zookeeper版本对应关系 网上可以查到的基本都是这个样子(清一色kafka2.4.0版本一下的)!! Kafka版本 Zookeeper版本 kafka_2.12-2.7.2 zookeeper-3.5.9.jar … … kafka_2.12-2.4.0 zookeeper-3.5.6.jar kafka_2.12-2.3.1 zookeeper-3.4.14.jar …

Java JUC(一) 线程概念与常用方法

Java JUC&#xff08;一&#xff09; 线程概念与常用方法 一. JUC 基本概念 Java JUC&#xff08;Java Util Concurrent&#xff09; 是Java平台提供的一个并发编程工具包&#xff08;java.util.concurrent&#xff09;&#xff0c;全称为Java Concurrency Utilities。这个工具…

网络运维故障处理案例

在当今依赖互联网的时代&#xff0c;网络的稳定运行对企业业务的持续性至关重要。然而&#xff0c;即便是最完善的网络系统也会不时出现故障。今天&#xff0c;我们将通过一个具体的案例&#xff0c;结合实际操作&#xff0c;来探讨网络运维中常见的故障处理方法和经验。更多内…

ChatGPT+Simple Mind Map生成思维导图:快速提升学习效率

一、告别杂乱笔记&#xff0c;一键生成清晰思维导图&#xff01; 最近开始学习网络安全&#xff0c;一头扎进了各种协议、漏洞、防御机制的海洋中。信息量巨大&#xff0c;知识点零散&#xff0c;让我很快便陷入了“知识焦虑”——笔记越记越多&#xff0c;却越来越混乱&#…

Java 入门指南:JVM(Java虚拟机)—— Java 类文件结构

文章目录 字节码JVM 与字节码字节码的生成过程 Class 文件结构魔数&#xff08;Magic Number&#xff09;Class 文件版本号&#xff08;Minor&Major Version&#xff09;常量池&#xff08;Constant Pool&#xff09;访问标志(Access Flags)前类&#xff08;This Class&…

数据处理与统计分析篇-day02-Linux进阶

day02-Linux进阶 补充昨日内容 Linux基础 文件编辑 命令模式 编辑模式 esc回到命令模式 正常编辑 底行(底线)模式 查看Linux命令帮助文档 # --help 可以查看命令的详细信息 命令名 --help ​ # 例如: ls --help ​ # man 可以查看命令的主要(简单)信息 man 命令名…

3个WebSocket的.Net开源项目

推荐3个有关Websocket的.Net开源项目。 一、FreeIM 一个使用Websocket协议实现的、高性能即时聊天组件&#xff0c;可用于群聊、好友聊天、游戏直播等场景。 1、跨平台&#xff1a;基于.NetCore开发&#xff0c;支持Windows、Mono、Liunx、Windows Azure、Docker。 2、支持…

Uni-app 开发鸿蒙 App 全攻略

一、开发前的准备工作 开发鸿蒙 App 之前&#xff0c;我们需要做好充分的准备工作。首先是工具的安装与配置。 Node.js 的安装&#xff1a;推荐使用 LTS 版本的 Node.js。可以前往 Node.js 的官方网站下载适合自己操作系统的安装包&#xff0c;如 Windows 用户根据自己的系统版…

DL/T645-2007 通信库(C#版本)

DL/T645-2007 通信库&#xff08;C#版本&#xff09; 文章目录 DL/T645-2007 通信库&#xff08;C#版本&#xff09;DL/T645-2007 介绍主要内容介绍&#xff1a;应用场景&#xff1a;标准的意义&#xff1a; DL/T645-2007 通信库&#xff08;C#版本&#xff09;接口展示测试用例…

jest需要mock自定义hook导出的数据,同一个测试文件不同的用例需要不同的数据,该怎么mock

当在同一个测试文件中针对不同的测试用例需要mock自定义Hook导出不同的数据时&#xff0c;你可以使用Jest的动态mock功能或者利用Jest的beforeEach、beforeAll等钩子函数来设置不同的mock行为。 这里是一个使用Jest的beforeEach钩子函数来为每个测试用例设置不同mock数据的示例…

JavaWeb使用web.xml配置Servlet路径映射的相关操作以及易错问题分析与解决

前言 我们在使用Servlet创建JavaWeb项目时&#xff0c;想要绑定url路径和Servlet的映射关系&#xff0c;需要在web.xml中配置映射关系。Servlet从2.5版本开始支持注解。具体来说&#xff0c;Servlet 2.5引入了注解配置方式&#xff0c;使得Servlet应用程序的配置更加简单、灵活…