论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
数据库
›
Nosql
›
SOA架构
SOA架构
鼠扑
论坛元老
|
2024-7-14 04:02:31
|
显示全部楼层
|
阅读模式
楼主
主题
2131
|
帖子
2131
|
积分
6393
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
学习网站保举 IT-BLOG-CN
一、简介
面向服务的架构
(SOA)是一种软件开发方法,它使用称为服务的软件组件来创建业务应用程序。每项服务提供一种业务本领,并且服务也
可以跨平台和语言相互通讯
。开发职员使用SOA来
重用
差别体系中的服务,或者
组合几个独立的服务来实行复杂的任务
。
例如:用户登录体系,可以创建一项身份验证服务并在所有应用程序中重用,而不是为所有业务流程重写身份验证代码。
二、SOA架构基本原则
【1】
互利用性:
SOA中的每项服务都提供了形貌文档,这些文档具体说明确服务的功能以及相干的条款和条件。任何客户端体系(无论使用哪种基础平台和编程语言)都可以运行服务。例如,业务流程可以使用C#和Python编写的服务。由于没有直接交互,因此一项服务的更改不会影响使用该服务的其他组件。
【2】
松耦合:
SOA中的服务应该是松耦合的,尽可能少地依赖
数据模子或信息体系等外部资源。它们还应该是无状态的,不保留历史会话或事务的任何信息。
因此,在修改服务时,它不会显著影响使用该服务的客户端应用程序和其他服务。
【3】
抽象:
SOA中的客户端或服务用户无需相识服务的代码逻辑或实施详情。对他们而言,服务应该类似一个黑匣子。客户通过服务条约和其他服务形貌文档获取有关服务用途以及服务使用方法的须要信息。
【4】
粒度:
SOA中的服务应该具有适当的大小和范围,
最好为每个服务打包一个离散的业务功能
。然后,开发职员可以使用多个服务来创建一个用于实行复杂利用的复合服务。
三、SOA架构包含的重要组件
【1】
服务:
服务是构建SOA的基础数据块。服务可以是私有的(仅供构造内部用户访问),也可以是公开的(所有人都可以通过Internet访问)。
每个服务都分别具有三个重要功能。
● 服务实施:服务实施是一个代码,用于构建实行特定服务功能(例如用户身份验证或账单盘算)的逻辑。
● 服务条约:服务条约定义了服务的性子及其关联的条款和条件,例如使用服务的先决条件、服务成本以及所提供的服务质量。
● 服务接口:在SOA中,其他服务或体系通过服务接口与服务进行通讯。该接口定义了调用服务实行活动或交换数据的方式。它减少了服务和服务请求者之间的依赖关系。例如,即使对基础代码逻辑相识甚少或者完全不相识的用户也可以通过服务接口使用服务。
【2】
服务提供商:
服务提供商创建和维护一项或多项服务并提供给他人使用。构造可以创建本身的服务,也从第三方服务供应商处购买服务。
【3】
服务使用者:
服务使用者向服务提供商提出请求,要求运行特定的服务。可以是整个体系、应用程序,也可以是其他服务。服务条约规定了服务提供商和使用者在相互交互时必须遵守的规则。服务提供商和使用者可以隶属于差别的部分、构造甚至是行业。
【4】
服务注册表:
服务注册表(或服务存储库)是可用服务的网络可访问目录。它存储服务提供商提供的服务形貌文档。形貌文档中包含服务相干信息以及如何与之通讯的信息。服务使用者可以通过服务注册表轻松找到他们需要的服务。
四、SOA框架的工作原理
在面向服务的架构SOA中,服务独立运行并向其使用者提供功能或数据交换。消费者请求信息并将输入数据发送至服务。服务处置惩罚数据、实行任务并发回相应。例如,如果某个应用程序使用一项授权服务,它会为服务提供用户名和密码。服务验证用户名和密码并返回相应的相应。
通讯协议
服务使用确定网络数据传输的既定规则进行通讯。这些规则即称之为
通讯协议
。以下是实施SOA的部分尺度协议:
● 简单对象访问协议SOAP
● RESTful HTTP
● Apache Thrift
● Apache ActiveMQ
● Java Message Service(JMS)
可以在SOA实施中使用多个协议。
五、SOA架构的限制
【1】
可扩展性受限:
服务共享大量资源且需要和谐才能实行其功能时,体系可[color=Kaoliang red]
扩展性会受到显著影响。
【2】
增加相互依赖关系:
面向服务的架构SOA体系会随着时间的推移变得更加复杂,并在服务之间发展出多种相互依赖关系。如果多个服务在循环中相互调用,则可能很难对其进行修改或调试。会集式数据库等共享资源也会低落体系速度。
【3】
单点故障:
对于使用ESB的SOA实施,ESB会产生单点故障。ESB是一个会集式服务,与SOA提倡的分散化理念背道而驰。如果ESB出现故障,客户端和服务根本无法相互通讯。
企业服务总线ESB是在与具有多个服务的体系进行通讯时可以使用的软件。无论使用的是什么技术,它都可以在服务和服务使用者之间建立通讯。
ESB的优势:ESB通过可重用的服务接口提供通讯和转换功能。您可以将ESB`视作将服务请求路由至适当服务的会集式服务。它还会将请求转换为服务的基础平台和编程语言可接受的格式。
六、SOA与微服务的对比
微服务架构是由SOA架构风格演变而来的。微服务解决了SOA的缺陷问题,使软件与基于云的现代企业环境更加兼容。微服务非常精细,
支持数据复制(每个服务有本身的库),而非数据共享
。这使得它们完全独立于通过轻量级API访问的本身的通讯协议。使用者通过微服务的API使用微服务,从而消除了对会集式ESB的需求。一个垂直切分,一个水平切分。
什么是微服务:
微服务架构由非常小但完全独立的软件组件构成,我们将这些组件称之为微服务,它们仅专注一项任务。微服务通过 API进行通讯,API是开发职员为让其他软件体系与其微服务进行通讯而开发的规则。微服务架构风格最恰当现代云盘算环境。它们通常在容器中运行。容器是将代码及其所有依赖关系打包的独立软件单元。
微服务的优势:
微服务具有云原生特性,可独立扩展、速度快、可移植且不依赖于平台。别的,微服务是解耦的,也就是说它们不依赖于其他微服务。因此,微服务可以当地访问它们需要的所有数据,而不是远程访问其他体系也可以访问和使用的会集数据。这会产生数据重复,但其出色的性能和灵敏性弥补了这一不足。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
鼠扑
论坛元老
这个人很懒什么都没写!
楼主热帖
Java 基于Apache POI实现Excel读写操作 ...
Dapr 知多少 | 分布式应用运行时 ...
XAF新手入门 - 类型子系统(Types Info ...
springboot开启单元测试的方法分享 ...
5.15日 搭建青龙面板教程——狗东跑跑 ...
记录一次NoSuchMethodError问题的解决 ...
C#生成putty格式的ppk文件(支持passph ...
Python 封装SNMP调用接口
风险洞察之事件总线的探索与演进 ...
SQLSERVER大小写转换方法
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表