【系统架构师】-第15章-面向服务架构设计

面向服务的体系结构 (Service-Oriented Architecture,SOA)

1、应用角度:它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服务

2、软件基本原理:一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。

1、萌芽阶段

以XML技术为标准

2、标准化阶段

简单对象访问协议 (SOAP)

Web服务描述语言 (WSDL)

通用服务发现和集成协议 (UDDI)

3、成熟阶段

三个重量级规范SCA、SDO、WS-Policy

1、与微服务的区别

  • (1)微服务相比于 SOA更加精细,微服务更多地以独立的进程的方式存在,互相之间并无影响;
  • (2)微服务提供的接口方式更加通用化,例如HTTP RESTful方式,各种终端都可以调用, 无关语言、平台限制;
  • (3)微服务更倾向于分布式去中心化的部署方式,在互联网业务场景下更适合。

微服务是SOA的进一步优化,移除了ESB,减低服务间耦合、服务的异构。

微服务架构是 SOA架构思想的一种扩展,更加强调服务个体的独立性、拆分粒 度更小。

2、SOA参考架构

(1)业务逻辑服务:

1)整合已有应用——应用和信息访问服务

  • 可接入服务:通过各种消息通信模式(单向、请求/应答和轮询)将业务逻辑和业务数据包装成企业服务总线可以访问的功能
  • 事件发现服务:提供事件通知服务将已有应用和数据中的变化通过事件框架发布到企业服务总线上

2)整合新开发的应用——业务应用服务

  • 组件服务:为可重用的组件提供应用的运行时容器管理服务,如对象持久化、组件安全管理和事务管理等
  • 核心服务:提供运行时的服务,包括内存管理、对象实例化和对象池、性能管理和负载均衡、可用性管理等
  • 接口服务:提供和其他企业系统集成的接口,如其他企业应用,数据库、消息系统和管理框架。

3)整合客户和业务伙伴 (B2C/B2B)——伙伴服务

  • 社区服务:用于管理和企业贸易的业务伙伴,支持以交易中心 (Trade Hub) 为主的集中式管理和以伙伴为中心的自我管理。
  • 文档服务:用于支持和业务伙伴交换的文档格式,以及交互的流 程和状态管理,支持主流的 RosettaNet、EDI 和 AS1/AS2等
  • 协议服务:为文档的交互提供传输层的支持,包括认证和路由等

(2)控制服务

包括实现人、 流 程和信息集成的服务,以及执行这些集成逻辑的能力。

1)数据整合——信息服务

  • 联邦服务:提供将各种类型的数据聚合的能力,它既支持关系型 数据,也支持像XML 数据、文本数据和内容数据等非关系型数据。
  • 复制服务:提供远程数据的本地访问能力,它通过自动的实时复制和数据转换,在本地维护一个数据源的副本
  • 转换服务:用于数据源格式到目标格式的转换,可以是批量的或者是基于记录的。
  • 搜索服务:提供对企业数据的查询和检索服务

2)流程整合——流程服务

服务编排、十五服务、人工服务(将人工的活动集成到流程中)

3)用户访问整合——交互服务

交付、体验、资源

(3)连接服务

通过提供企业服务总线ESB提供分布在各种架构元素中 服务间的连接性。

ESB特征

描述服务的元数据和服务注册管理;

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

发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供者。

对安全的支持、服务质量保证、可管理性和负载平衡等。

ESB的核心功能

(1)提供位置透明性的消息路由和寻址服务。

(2)提供服务注册和命名的管理功能。

(3)支持多种消息传递范型(如请求/响应、发布/订阅等)。

(4)支持多种可以广泛使用的传输协议。

(5)支持多种数据格式及其相互转换。

(6)提供日志和监控功能。

(4)业务创新和优化服务

用于监控业务系 统运行时服务的业务性能,并通过及时了解到的业务性能和变化,采取措施适应变化的市场。

(1)公共事件框架服务:通过一个公共事件框架提 供IT和业务事件的激发、存储和分类等。

(2)采集服务:过基于策略的过滤和相关性分析检测感兴趣的服务。

(3)监控服务:通过事件与监控上下文间的映射,计算和管理业务流 程的关键性能指标 (Key Performance Indicators,KPI)。

(5)开发服务

贯彻整个软件开发生命周期的开发平台,从需求分 析,到建模、设计、开发、测试和维护等全面的工具支持。

(6)IT服务管理

支持业务系统运行的各种基础设施管理能力或 服务,如安全服务、目录服务、系统管理和资源虚拟化。

  •  (1)安全和目录服务: 企业范围的用户、认证和授权管理, 如单点登录 (SSO)。
  • (2)系统管理和虚拟化服务: 用于管理服务 器、存储、网络和其他IT 资源。

3、主要协议和规范

UDDI (统一描述发现和集成协议)

WSDL 文档以接口集合的形式来描述Web服务, 包含对一组操作和 消息的一个抽象定义

SOAP 在分散或分布式的环境中交换信息的简单的协议,是一个基于XML 的协议

 

REST规范

1、资源:以资源为中心构建,资源可以是一个订单,也可以是一幅图片

2、表述:描述资源在 Web 中某一个时间的状态

3、状态转移:

应用状态是对某个时间内用户请求会话相关信息的快照,保存在客户端,由客户端自身维护,可以和缓存配合降低服务端并发请求压力。

资源状态在服务端保存,是对某个时间资源请求表述的快照,保证在服务端。

借助HTTP方法来实现,如GET方法、 POST方法、 DELETE方法等。

4、超链接:是通过在页面中嵌入链接和其他资源建立联系,这里的资源可以是文本、图片、文件等

4、设计标准

1、文档标准化

2、通信协议标准化 XML

3、应用程序同一登记与集成

4、服务质量QoS:可靠性、安全性、策略、控制、管理

5、设计原则

1、无状态

2、单一实例:避免功能冗余

3、明确定义的接口:服务的接口由WSDL定义

4、自包含和模块化

5、粗粒度

6、服务间的松耦合

7、重用功能

8、互操作性、兼容和策略声明

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/577967.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钉钉服务端API报错 43008 参数需要multipart类型

钉钉服务端API报错 43008 参数需要multipart类型 problem 使用媒体文件上传接口,按照文档输入参数,结果返回报错 # 参数 {"access_token": "xxx""type": "image","media": "/Users/xxx/xxx/s…

Vscode 常用插件和快捷键 2024版笔记

1. 常用插件2.常用快捷键 1. 常用插件 1.1 Chinese vscode 转成中文(更新版后有进要重装) 1.2 Live Server 浏览成网页 1.3 Material Icon Theme 文件目录和文件图标样式(没有自定义) 1.4 vscode 主题 1.5 代码截图 1.6 代码补…

桌面/WEB端3D开发工具HOOPS SDK简介

Tech Soft 3D在长达25年的时间内,一直通过卓越的3D技术帮助全球超过600家客户推动创新,这些客户包括HEXAGON、SolidWorks、SIEMENS、Aras、ANSYS、AVEVA等各个行业的领军者。 Tech Soft 3D旗下拥有4款原生产品,分别是:HOOPS Excha…

虚拟现实(VR)项目的开发工具

虚拟现实(VR)项目的开发涉及到多种工具,这些工具可以帮助开发者从建模、编程到最终内容的发布。以下是一些被广泛认可的VR开发工具,它们覆盖了从3D建模到交互设计等多个方面。北京木奇移动技术有限公司,专业的软件外包…

机器视觉学习(十)—— 轮廓检测

目录 一、轮廓的检测与绘制 1.1 cv2.findContours()函数 1.2 cv2.drawContours()函数 1.3 轮廓检测示例代码 二、显示边界框 2.1 cv2.boundingRect()函数 2.2 cv2.rectangle()函数 2.3 显示绘制边界框 2.4 个人笔记和进阶版显示边框 2.4.1 个人笔记 2.4.2 进阶版显示…

GT收发器第五篇_TXUSRCLK和TXUSRCLK2

文章目录 概述:一、TXUSRCLK和TXUSRCLK2作用和关系总结 二、TXUSRCLK和TXUSRCLK2产生1、TXOUTCLK在2字节或4字节模式下驱动GTX/GTH收发器TX2、TXOUTCLK 在 4 字节或 8 字节模式下驱动 GTX/GTH 收发器 TX 总结: 概述: 功能描述: F…

[机器学习]练习-KNN算法

1.𝑘近邻法是基本且简单的分类与回归方法。𝑘近邻法的基本做法是:对给定的训练实例点和输入实例点,首先确定输入实例点的𝑘个最近邻训练实例点,然后利用这𝑘个训练实例点的类的多数来…

真机 ARM64 架构转模拟器 ARM64 架构

本文字数:2051字 预计阅读时间:15分钟 01 需要转换架构的原因 老版 Mac 使用 Intel 芯片,是x86_64架构,相应地在老版 Mac 上运行的模拟器使用的也就是 x86_64架构。 由于模拟器的 x86_64 架构与真机的 arm64、armv7 等架构不冲突&…

C#手麻系统源码,医院手术麻醉信息系统源码,前端框架:Vue,Ant-Design,后端框架:百小僧开源框架

手术麻醉管理系统覆盖了从患者入院,经过术前、术中、术后,直至出院的全过程。医院手术麻醉系统能够规范麻醉科和手术室的工作流程、实现麻醉手术过程中的信息数字化和网络化、自动生成麻醉手术中的各种医疗文书、完整共享HIS、LIS和PACS等手术患者信息&a…

使用hexo框架快速在github上搭建静态博客

今天来说一下使用hexo框架搭建静态博客,玩玩还不错。 我的操作系统 文章目录 一、部署到本地二、新建博客三、更换主题四、部署到github五、其他 一、部署到本地 首先下载好nodejs和git工具,建议直接去清华镜像源下载 node.js git 这中间环境变量的配置…

Word、Excel、PPT文件转PDF文件(C#)

一、添加依赖 为wpf项目引用Microsoft.Office.Interop.Excel、Microsoft.Office.Interop.PowerPoint、Microsoft.Office.Interop.Word、Office,依赖文件已经打到源代码包里了。 二、先定义一些命名空间 using Word Microsoft.Office.Interop.Word;using Excel M…

首个基于SSM-Transformer混合架构,开源商业大模型Jamba

3月29日,知名AI研究实验室AI21在官网开源了,首个基于SSM-Transformer混合架构的商业大模型——Jamba。 目前,ChatGPT、Stable Difusion 、Lyria等产品使用的皆是Transformer架构,虽然在捕捉序列内长距离依赖关系、泛化能力、特征…