【愚公系列】软考高级-架构设计师 099-面向服务的架构风格
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
面向服务的架构(Service-Oriented Architecture,SOA)是一种软件架构设计风格,它通过将系统划分为各个相互独立的服务来实现系统的构建。在面向服务的架构中,服务是系统中的基本构建单元,每个服务都是一个独立的功能单元,可以通过网络进行通信和交互。
🚀一、面向服务的架构风格
🔎1.概念
SOA(Service-Oriented Architecture)是一种通过逻辑组合操作和规则来满足业务需求的架构,提供了支持用户目标的一系列有序活动。它强调服务的粗粒度和松耦合,服务之间通过定义清晰的接口进行通信,而不涉及底层编程接口和通信模型。
🦋1.1 主要特点
-
服务
- 为满足某项业务需求的操作、规则等的逻辑组合。
- 包含一系列有序活动的交互,为实现用户目标提供支持。
-
粗粒度、松耦合
- 服务之间具有较高的独立性,松散耦合,方便维护和扩展。
- 粗粒度意味着服务具有较大的独立单元,减少了依赖性。
-
接口通信
- 通过简单、精确定义的接口进行通信,不涉及底层编程接口和通信模型。
- 提高了系统的灵活性和可扩展性。
🦋1.2 企业服务总线(ESB)
- 角色:充当服务请求的中介,协调和管理服务之间的通信和交互。
- 功能:
- 确保各个服务之间的互操作性和可靠性。
- 管理服务的调用、转换、路由和消息传递。
- 提供集成和服务组合的能力。
🦋1.3 管理优势
-
统一服务管理
- 管理员可以直接管理开发人员构建的相同服务。
- 提供一致的服务管理机制,提升管理效率。
-
企业服务总线
- 协调和管理服务之间的通信和交互,确保系统的整体协调性。
🔎2.实施
🦋2.1 实施SOA的关键目标与特征
实施SOA(面向服务的架构)的关键目标是实现企业IT资产重用的最大化。在实施SOA过程中,需要牢记以下特征:
-
可从企业外部访问
- 服务可以被企业外部的系统或用户访问。
-
随时可用
- 服务请求能被及时响应,保证服务的可用性。
-
粗粒度接口
- 粗粒度服务提供特定的业务功能,而细粒度服务代表技术组件方法。
-
服务分级
- 服务根据重要性和使用频率进行分级管理。
-
松散耦合
- 服务提供者和服务使用者分离,减少依赖,提高灵活性。
-
可重用的服务及服务接口设计管理
- 设计和管理可重用的服务及其接口。
-
标准化的接口
- 使用WSDL、SOAP、XML作为核心标准。
-
支持各种消息模式
- 支持不同类型的消息传递模式。
-
精确定义的服务接口
- 服务接口定义明确,确保通信的准确性。
🦋2.2 架构演变
- 从基于对象到基于构件再到基于服务:架构越来越松散耦合,粒度越来越粗,接口越来越标准。
🦋2.3 基于服务的构件与传统构件的区别
-
粒度
- 服务构件:粗粒度。
- 传统构件:细粒度居多。
-
接口标准
- 服务构件:标准化接口,主要是WSDL接口。
- 传统构件:常以具体API形式出现。
-
实现与语言无关
- 服务构件:实现与语言无关。
- 传统构件:常绑定于某种特定的语言。
-
QoS服务
- 服务构件:可以通过构件容器提供QoS(质量保证)的服务。
- 传统构件:完全由程序代码直接控制。
🔎3.关键技术
技术 | 描述 |
---|---|
UDDI | UDDI(Universal Description, Discovery, and Integration)是一套基于WEB的、分布式的、为WebService提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以便其他企业能够发现和访问的协议实现标准。它用于Web服务的统一描述、发现及集成。 |
WSDL | WSDL(Web Services Description Language,Web服务描述语言)将Web服务描述定义为一组服务访问点。客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问,类似于远程调用。WSDL用于描述服务。 |
SOAP | SOAP(Simple Object Access Protocol,简单对象访问协议)是用于交换XML编码信息的轻量级协议,用于在分布式环境中传递信息。 |
XML | XML(Extensible Markup Language,可扩展标记语言)是WebService平台中表示数据的基本格式,用于数据交换。 |
🔎4.主要的实现方式
在SOA(面向服务的架构)中,有三种主要的实现方式:Web Service、服务注册表和企业服务总线(ESB)。
🦋4.1 Web Service
Web Service的实现包括服务提供者、服务注册中心和服务请求者。其流程如下:
- 服务提供者:将服务描述发布到服务注册中心。
- 服务注册中心:作为中介,提供交易平台,供服务请求者查找服务(可有可无)。
- 服务请求者:查找到服务后,将查找结果绑定,调用服务。
如图所示:
服务提供者 ——> 服务注册中心 ——> 服务请求者
🦋4.2 服务注册表
服务注册表的主要功能包括:
- 服务注册:应用开发者(服务提供者)在注册表中公布服务的功能。
- 服务位置:服务使用者(服务应用开发者)查询注册服务,寻找符合自身要求的服务。
- 服务绑定:服务使用者利用检索到的服务接口编写代码,将代码与注册的服务绑定,并调用注册的服务,实现互动。
🦋4.3 企业服务总线(ESB)
企业服务总线(ESB)是用于连接各个服务节点的管道。它集成了基于不同协议的不同服务,通过消息的转化、解释和路由,使不同的服务互联互通。ESB的主要特点包括:
- 总线作用:将各种服务进行连接与整合。
- 描述服务的元数据和服务注册管理。
- 数据传递和转换:在服务请求者和提供者之间传递数据,并对数据进行转换,支持同步模式和异步模式等。
- 动态交互:具备发现、路由、匹配和选择的能力,支持服务之间的动态交互,解耦服务请求者和服务提供者。
- 高级功能:包括对安全的支持、服务质量保证、可管理性和负载平衡等。
ESB在SOA中的位置如下:
客户端(服务请求者) ——> 基础架构服务(中间件) ——> 核心集成服务(提供服务)
🔎5.题目
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)