面向服务的架构的基本原则是什么

首页 / 常见问题 / 低代码开发 / 面向服务的架构的基本原则是什么
作者:开发者 发布时间:12-07 14:25 浏览量:8330
logo
织信企业级低代码开发平台
提供表单、流程、仪表盘、API等功能,非IT用户可通过设计表单来收集数据,设计流程来进行业务协作,使用仪表盘来进行数据分析与展示,IT用户可通过API集成第三方系统平台数据。
免费试用

面向服务的架构的基本原则包括:1、互操作性;2、松耦合;3、抽象;4、粒度;相互操作性指的是,SOA 中的每项服务都提供了描述文档,这些文档详细说明了服务的功能以及相关的条款和条件。

一、面向服务的架构的基本原则是什么

对于实施面向服务的架构(SOA)并没有明确定义的标准指南。不过,一些基本原则在所有 SOA 实施中是通用的。

1、互操作性

SOA 中的每项服务都提供了描述文档,这些文档详细说明了服务的功能以及相关的条款和条件。任何客户端系统(无论使用哪种基础平台和编程语言)都可以运行服务。例如,业务流程可以使用 C# 和 Python 编写的服务。由于没有直接交互,因此一项服务的更改不会影响使用该服务的其他组件。

2、松耦合

SOA 中的服务应该是松耦合的,尽可能少地依赖数据模型或信息系统等外部资源。它们还应该是无状态的,不保留历史会话或事务的任何信息。因此,在修改服务时,它不会显著影响使用该服务的客户端应用程序和其他服务。

3、抽象

SOA 中的客户端或服务用户无需了解服务的代码逻辑或实施详情。对他们而言,服务应该类似一个黑匣子。客户通过服务合同和其他服务描述文档获取有关服务用途以及服务使用方法的必要信息。

4、粒度

SOA 中的服务应该具有适当的大小和范围,最好为每个服务打包一个离散的业务功能。然后,开发人员可以使用多个服务来创建一个用于执行复杂操作的复合服务。

二、面向服务的架构内包含哪些组件?

面向服务的架构(SOA)中包含四个主要组件。

服务

服务是构建 SOA 的基础数据块。服务可以是私有的(仅供组织内部用户访问),也可以是公开的(所有人都可以通过 Internet 访问)。每个服务都分别具有三个主要功能。

服务实施
服务实施是一个代码,用于构建执行特定服务功能(例如用户身份验证或账单计算)的逻辑。

服务合同

服务合同定义了服务的性质及其关联的条款和条件,例如使用服务的先决条件、服务成本以及所提供的服务质量。

服务接口

在 SOA 中,其他服务或系统通过服务接口与服务进行通信。该接口定义了调用服务执行活动或交换数据的方式。它减少了服务和服务请求者之间的依赖关系。例如,即使对基础代码逻辑了解甚少或者完全不了解的用户也可以通过服务接口使用服务。

服务提供商

服务提供商创建和维护一项或多项服务并提供给他人使用。组织可以创建自己的服务,也从第三方服务供应商处购买服务。

服务使用者

服务使用者向服务提供商提出请求,要求运行特定的服务。可以是整个系统、应用程序,也可以是其他服务。服务合同规定了服务提供商和使用者在相互交互时必须遵守的规则。服务提供商和使用者可以隶属于不同的部门、组织甚至是行业。

服务注册表

服务注册表(或服务存储库)是可用服务的网络可访问目录。它存储服务提供商提供的服务描述文档。描述文档中包含服务相关信息以及如何与之通信的信息。服务使用者可以通过服务注册表轻松找到他们需要的服务。

面向服务的架构的工作原理是什么?

在面向服务的架构(SOA)中,服务独立运行并向其使用者提供功能或数据交换。消费者请求信息并将输入数据发送至服务。服务处理数据、执行任务并发回响应。例如,如果某个应用程序使用一项授权服务,它会为服务提供用户名和密码。服务验证用户名和密码并返回相应的响应。

通信协议

服务使用确定网络数据传输的既定规则进行通信。这些规则即称之为通信协议。以下是实施 SOA 的部分标准协议:

• 简单对象访问协议(SOAP)
• RESTful HTTP
• Apache Thrift
• Apache ActiveMQ
• Java Message Service(JMS)

您甚至可以在 SOA 实施中使用多个协议。

最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。

最近更新

JavaScript 和 Elm 响应式的状态是什么样的
12-19 11:03
JavaScript 基础有什么
12-19 11:03
javascript 函数内部变量如何在函数外调用
12-19 11:03
JavaScript 内存管理技巧有哪些
12-19 11:03
JavaScript 进阶性学习该看哪些书
12-19 11:03
JavaScript 加载时为什么要阻塞
12-19 11:03
JavaScript 拷贝的深拷贝和浅拷贝有什么区别
12-19 11:03
JavaScript 和 Java 的区别有哪些
12-19 11:03
JavaScript 会被诸如 Go、Dart 等其他语言替代吗
12-19 11:03

立即开启你的数字化管理

用心为每一位用户提供专业的数字化解决方案及业务咨询

  • 深圳市基石协作科技有限公司
  • 地址:深圳市南山区科技中一路大族激光科技中心909室
  • 座机:400-185-5850
  • 手机:137-1379-6908
  • 邮箱:sales@cornerstone365.cn
  • 微信公众号二维码

© copyright 2019-2024. 织信INFORMAT 深圳市基石协作科技有限公司 版权所有 | 粤ICP备15078182号

前往Gitee仓库
微信公众号二维码
咨询织信数字化顾问获取最新资料
数字化咨询热线
400-185-5850
申请预约演示
立即与行业专家交流