SOA架构概述

这篇具有很好参考价值的文章主要介绍了SOA架构概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. SOA概述

SOA(Service-Oriented Architecture,面向服务的架构)是一种在计算机环境中设计、开发、部署和管理离散模型的方法。SOA不是一种新鲜事物,它是在企业内部IT系统重复构建以及效率低下的背景下提出的。在SOA模型中,所有的功能都被定义成了独立的服务,所有的服务通过服务总线(ESB)或流程管理器来连接。这种松散耦合的结构使得能够以最小的代价整合已经存在的各种异构系统,当然,由于需要实现对各种异构系统的适配(通常使用ESB来完成不同系统之间的协议转换及数据格式转换),因此,其本身也会引入更多的复杂性。

一个典型的SOA结构如下图所示:

SOA架构概述

其中,对于其中的单个服务而言,其内部结构一般如下:

SOA架构概述

2. SOA设计原则:

SOA架构概述

 SOA的设计原则包括:

    明确的接口定义:接口需满足稳定、明确、封装性等要求。
    自包含与模块化:实现服务的功能实体是完全独立自主的,独立进行部署、版本控制、自我管理和恢复。
    粗粒度:服务数量不应太多,依靠消息交互而不是远程过程调用。
    松耦合:减少各个服务间的相互依赖和影响,各个服务的位置、实现技术、当前状态以及私有数据,对服务请求者不可见。
    互操作性、兼容性和策略声明。

3. SOA实现方法

SOA作为一种架构设计的概念和思想,需要借助具体的技术和方法来实现。目前SOA的主流实现方法包括:Web Service、服务注册表和企业服务总线。

3.1 Web Service

SOA架构概述

3.2 服务注册表

服务注册表(Service registry)提供一个策略执行点,在这个点上,服务可以在SOA中注册,从而可以被发现和使用。大多数商用服务注册产品支持服务注册、服务位置和服务绑定功能。

3.3 企业服务总线ESB

SOA架构概述

ESB(Enterprise Service Bus)将企业中各个不同的服务连接在一起。因为各个服务是异构的,没有统一的标准,各个异构系统对外提供的接口是各式各样的,SOA使用ESB来屏蔽异构系统对外提供的不同接口,以此来达到服务间高效的互联互通。

企业服务总线,即ESB全称为Enterprise Service Bus,指的是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。

企业服务总线(EnterpriseServiceBus,ESB)是构建基于面向服务体系结构(SOA)解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持SOA的一组基础架构功能 。

 4. SOA关键技术

与SOA紧密相关的技术主要有UDDI、WSDL、SOAP和REST等,这些技术都是以XML为基础发展而来的。

4.1 UDDI

 UDDI(Universal Description Discovery and Integration,统一描述、发现和集成)提供了一种服务发布、查找和定位的方法,是服务的信息注册规范,以便该服务被发现和使用,同时它也定义了一种编程接口。该技术规范主要包括数据模型、API和注册服务三部分。

4.2 WSDL

WSDL(Web Service Description Language,Web服务发现语言)是基于XML语法对服务进行描述的语言,包括服务实现定义和服务接口定义。服务实现定义描述服务提供者如何实现特定的服务接口,包含服务和端口描述。服务接口定义是一种抽象的、可重用的定义,行业标准组织可以使用这种抽象的定义来规定一些标准的服务类型,服务实现者可以根据这些标准定义来实现具体的服务。

4.3 SOAP

SOAP(Simple Object Acess Protocol,简单对象访问协议)定义了服务请求者和服务提供者之间的消息传输规范,该协议通过HTTP承载XML格式化的消息。通过SOAP,应用程序可以在网络中进行数据交换和远程过程调用(RPC)。SOAP主要包括封装、编码规则、RPC表示和绑定四个部分。

4.4 REST

REST(Representational State Transfer,表达性状态转移)是一种针对Web服务的设计和开发方式,通常使用HTTP、XML、URI和HTML等流行协议或标准,可以有效降低开发的复杂性,提高系统的可伸缩性。REST对信息的操作基本只支持POST、GET、PUT和DELETE,这些操作基于如下的设计理念:文章来源地址https://www.toymoban.com/news/detail-458121.html

  •     网络上的所有事物都被抽象为资源;
  •     每个资源对应一个唯一的资源标识;
  •     通过通用的连接件接口对资源进行操作;
  •     对资源的各种操作不会改变资源标识;
  •     所有操作都是无状态的。

到了这里,关于SOA架构概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 编程框架概述:MVC, MVP, MVVM, Flux/Redux, 和 Clean Architecture

            在软件开发中,选择合适的编程框架和架构模式对于构建可维护和可扩展的应用程序至关重要。初学者在面对多种架构选项时可能会感到困惑。本文将详细介绍五种流行的编程框架:MVC、MVP、MVVM、Flux/Redux和Clean Architecture。 MVC是一种将应用程序分为三个核心组件的架

    2024年01月20日
    浏览(45)
  • 单体架构 Monolithic Architecture

    单体架构是一种传统的软件架构模式,其中整个应用程序被构建为一个单一、完整的代码库和部署单元。 在单体架构中,所有的功能、模块和组件都打包在一起,通常使用同一种编程语言和技术栈。 优势 简单性: 单体架构相对来说比较简单,因为所有的功能都在一个代码库

    2024年02月12日
    浏览(31)
  • 详解分层架构 Layered Architecture

    作者:禅与计算机程序设计艺术 Layered Architecture(层次化架构)是一种软件设计方法,将系统分成多个层次或抽象级别,每个层都由一组相互协作的模块和服务构成。各层之间通过接口协议进行通信,并可通过向上层提供的服务或功能接口集调用下层的服务或功能。这种结构

    2024年02月08日
    浏览(31)
  • TOGAF—架构(Architecture)项目管理

    架构(Architecture)项目在本质上通常是复杂的。他们需要适当的项目管理来保持正轨并兑现承诺。本指南适用于负责规划和管理架构(Architecture)项目的人员。我们解释了如何用事实上的方法和标准(如PRINCE2®或PMBOK®)来补充TOGAF®架构开发方法(ADM),以加强项目管理并提

    2024年02月04日
    浏览(33)
  • 深入理解 Android 架构 Clean Architecture(补充篇)

    在前两篇的介绍篇和解析篇中,我们已经对 Clean Architecture 的核心思想和层次结构进行了初步了解。然而,我发现遗漏了部分知识点,本篇将逐一讲解补充,最后介绍项目实践。 在介绍篇中提到的关于 Clean Architecture 图解,其实每一层中都包含了一些我们不需要的东西,因为

    2024年02月03日
    浏览(39)
  • 【大数据架构(3)】Lambda vs. Kappa Architecture-选择你需要的架构

    比较总览 Lambda architecture uses separate batch and stream processing systems, making it scalable and fault-tolerant but complex to set up and maintain (as it duplicates processing logic). Kappa architecture simplifies the pipeline with a single stream processing system as it treats all data as streams, providing flexibility and ease of maintenance, but

    2024年04月10日
    浏览(30)
  • 微服务架构模式案例介绍 Practical Examples of Microservices Architecture Pattern

    作者:禅与计算机程序设计艺术 在云计算、容器技术、微服务架构的浪潮下,越来越多的人都开始关注并应用微服务架构设计模式。许多公司都把自己的服务部署在微服务架构中,比如亚马逊、Facebook等互联网巨头。微服务架构模式被认为是一种更合适云服务架构的解决方案

    2024年02月07日
    浏览(29)
  • LLM架构自注意力机制Transformers architecture Attention is all you need

    使用Transformers架构构建大型语言模型显著提高了自然语言任务的性能,超过了之前的RNNs,并导致了再生能力的爆炸。 Transformers架构的力量在于其学习句子中所有单词的相关性和上下文的能力。不仅仅是您在这里看到的,与它的邻居每个词相邻,而是与句子中的每个其他词。

    2024年02月12日
    浏览(30)
  • k8s服务发现之第一弹Service概述

    Kubernetes 中 Pod 是随时可以消亡的(节点故障、容器内应用程序错误等原因)。如果使用 Deployment 运行您的应用程序,Deployment 将会在 Pod 消亡后再创建一个新的 Pod 以维持所需要的副本数。每一个 Pod 有自己的 IP 地址,然而,对于 Deployment 而言,对应 Pod 集合是动态变化的。

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包