架构设计笔记-15-面向服务架构设计理论与实践

目录

知识要点

案例分析

1.微服务架构

2.微服务

3.微服务架构

4.SOA与微服务

5.基于微服务架构的系统/传统单体式系统

论文

1.论微服务架构及其应用


知识要点

服务组件体系结构(Service Component Architecture,SCA)是面向服务体系结构(SOA)中描述服务之间组合和协作的规范。SCA 定义了语言中立的服务组合方式,能够进行跨语言的服务调用;SCA 解决的主要问题是加强组件的接口与传输协议的关联;SCA 实现服务组件和其传输协议的绑定,这种绑定是可扩展的;SCA 主要是为了满足软件集成的需要而创建的架构

面向服务的体系结构(Service-oriented Architecture,SOA)是一种软件系统设计方法,通过已经发布的和可发现的接口为终端用户应用程序或其他服务提供服务。

企业服务总线(Enterprise Service Bus,ESB)是构建基于 SOA 解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持 SOA 的一组基础架构功能。ESB 支持异构环境中的服务、消息,以及基于事件的交互,并且具有适当的服务级别和可管理性。简而言之,ESB 提供了连接企业内部及跨企业间新的和现有软件应用程序的功能,以一组丰富的功能启用管理和监控应用程序之间的交互。 在 SOA 分层模型中,ESB 用于组件层以及服务层之间,它能够通过多种通信协议连接并集成不同平台上的组件,将其映射成服务层的服务。 

 与SOA相关的技术(协议和规范)

  • BPEL(Business Process Execution Language For Web Services):面向 Web 服务的业务流程执行语言,也有的文献简写成 BPEL4WS,它是一种使用 Web 服务定义和执行业务流程的语言。使用 BPEL,用户可以通过组合、编排和协调 Web 服务自上而下地实现面向服务的体系结构(SOA)。BPEL 提供了一种相对简单易懂的方法,可将多个 Web 服务组合到一个新的复合服务(称作业务流程)中。 
  • UDDI(Universal Description Discovery & Integration,统一描述、发现和集成):提供了一种web服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。
  • WSDL(Web Service Description Language,Web 服务描述语言):描述 Web 服务的接口和操作功能,它有一套基于 XML 的语法定义。WSDL 描述的重点是服务,它包含服务实现定义和服务接口定义。
  • SOAP(Simple Object Access Protocol,简单对象访问协议):定义了服务请求者和服务提供者之间的消息传输规范。SOAP 用 XML 来格式化消息,用 HTTP 来承载消息。通过 SOAP,应用程序可以在网络中进行数据交换和远程过程调用(Remote Procedure Call,RPC)。简单来说,WSDL 用来描述服务,UDDI 用来注册和查找服务,而 SOAP 作为传输层,用来在消费者和服务者之间传送消息。一个消费者可以在 UDDI 注册表查找服务,取得服务的 WSDL 描述,然后通过 SOAP 来调用该服务。
  • REST(Representational State Transfer,表述性状态转移):是一种只使用 HTTP 和 XML 进行基于 Web 通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。

逆向工程恢复信息的方法 

遗产系统可以由 JCA、JMS 和 Java IDL 构成。

JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

JCA 标准化连接子是由 J2EE 1.3 首先提出的,它位于 J2EE 应用服务器和企业信息系统(EIS)之间,比如数据库管理、企业资源规划(ERP)、企业资产管理(EAM)和客户关系管理(CRM)系统。不是用 Java 开发的企业应用或者在 J2EE 框架内的应用都可以通过 JCA 连接。JCA 是在 javax.resource 包和它的子包(cci,spi 和 spi.security)中定义的。(JCA 的缩写形式也用于 Java cryptography API 的缩写。)

JMS 是 Java 对消息系统的访问机制,但它本身并不实现消息。JMS 支持点对点分发的消息队列,也支持多个目标订阅的消息主题。当消息发布给一个主题的时候,消息就会发送给所有那个主题的订阅者。JMS 支持各种消息类型(二进制、流、名-值表、序列化的对象和文本)。通过声明与 SQL 的 WHERE 相近的句段,可以建立消息的过滤。

Java IDL 即 idltojava 编译器就是一个 ORB,可用来在 Java 语言中定义、实现和访问 CORBA 对象。Java IDL 支持的是一个瞬间的 CORBA 对象,即在对象服务器处理过程中有效。实际上,Java IDL 的 ORB 是一个类库而已,并不是一个完整的平台软件,但它对 Java IDL 应用系统和其他 CORBA 应用系统之间提供了很好的底层通信支持,实现了 OMG 定义的 ORB 基本功能。 

微服务与SOA的区别

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

SOA 架构是一个面向服务的架构,可将其视为组件模型,其将系统整体拆分为多个独立的功能模块,模块之间通过调用接口进行交互,有效整合了应用系统的各项业务功能,系统各个模块之间是松耦合的。SOA 架构以企业服务总线链接各个子系统,是集中式的技术架构,应用服务间相互依赖导致部署复杂,应用间交互使用远程通信,降低了响应速度。 微服务架构是 SOA 架构的进一步优化,去除了 ESB 企业服务总线,是一个真正意义上去中心化的分布式架构。其降低了微服务之间的耦合程度,不同的微服务采用不同的数据库技术,服务独立,数据源唯一,应用极易扩展和维护,同时降低了系统复杂性。 

 

案例分析

1.微服务架构

2.微服务

3.微服务架构

4.SOA与微服务

 

5.基于微服务架构的系统/传统单体式系统

论文

1.论微服务架构及其应用

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

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

相关文章

重头开始嵌入式第四十九天(Linux内核驱动 内核编译 向内核添加新文件)

目录 内核编译: 什么是uImage? 一、产生背景 二、主要特点 三、使用方式 uImage与zImage与Image的区别? 向内核添加新驱动文件: 内核编译: 什么是uImage? uImage 是一种用于嵌入式系统的 Linux 内核…

windows安装deepspeed setup.py 207行找不到文件

一直报莫名奇妙的错误,查了半天也没查到 去看了一下源码,需要安装git,我没有安装 git命令获得信息也没啥用 直接注释掉 成功运行

高效管理知识资产:十大内部知识库软件一览

在当今竞争激烈的市场环境中,知识资产已成为企业核心竞争力的重要组成部分。为了更好地管理和利用这些宝贵的知识资源,选择合适的内部知识库工具至关重要。本文将为您介绍十款高效、实用的内部知识库工具,帮助您实现知识资产的精准管理。 1.…

【argparse】 菜鸟实用教程指南

文章目录 0. 引言1. argparse简介2. argparse的使用3. 实例操作4. 代码运行4.1 命令行执行4.1 IDE执行 5. 总结 0. 引言 在深度学习的过程中,我们常常需要操作和调参大量的参数。如果采用硬编码(直接在代码中赋值)的方式来设置这些参数&…

补充面试知识点

jwt鉴权 实现登录流程 jwt鉴权登录实现步骤(JWT工具类拦截器前端配置)——前后端鉴权方案和使用_jwtsigner-CSDN博客 就是前端每一次刷新页面的时候 都判断一下发来的请求头里边的token信息 通过token识别用户信息和登录状态也就是id 线程池的执行流程 …

【安当产品应用案例100集】022-阿里云、腾讯云、华为云等公有云上ECS服务器中数据加密保护方案

企业业务上云后,在云上进行数据加密保护的必要性主要体现在以下几个方面: 一、保护敏感数据 企业存储在云上的数据可能包含客户信息、财务数据、知识产权等敏感信息。这些数据一旦泄露或被滥用,将对企业造成严重的法律和道德责任问题。通过…

pico+Unity交互开发——触碰抓取

一、VR交互的类型 Hover(悬停) 定义:发起交互的对象停留在可交互对象的交互区域。例如,当手触摸到物品表面(可交互区域)时,视为触发了Hover。 Grab(抓取) 概念&#xff…

SQLServer-ASYNC_NETWORK_IO等待事件

文章目录 客户端应用程序出现问题网络问题 ASYNC_NETWORK_IO 是一种经常被DBA看到的等待类型,当其数值过高时可能会让人担忧,因为这是最难解决的等待类型之一。 需要知道的是,从 SQL Server 2005 开始,这种等待类型被命名为 ASYNC…

Android Compose使用LinearProgressIndicator绘制显示异常

使用依赖版本 androidx.compose.material3:material3:1.3.0-beta05 对应代码 LinearProgressIndicator(progress { 0.7f })直接使用上述代码绘制进度条时,最终显示效果如下: 问题原因 LinearProgressIndicator中gapSize属性表示进度和背景之前的空…

00 springboot项目创建

我们创建SpringBoot项目有两种方式: Spring Initializr spring initerzie 方式创建: 启动类, 依赖 生成,但是需要网络maven的方式 maven方式创建: 启动类, 依赖, 这些都需要手动编写,但是不需要网络 springboot系列,最近持续更新中,如需要请关注 如果…

RTSP RTP RTCP SDP基础知识

理论 流(Streaming ) 是近年在 Internet 上出现的新概念,其定义非常广泛,主要是指通过网络传输多媒体数据的技术总称。 流式传输分为两种 顺序流式传输 (Progressive Streaming) 实时流式传输 (Real time Streaming) ​​​​​…

Mybatis全局配置介绍

【mybatis全局配置介绍】 mybatis-config.xml,是MyBatis的全局配置文件,包含全局配置信息,如数据库连接参数、插件等。整个框架中只需要一个即可。 1、mybatis全局配置文件是mybatis框架的核心配置,整个框架只需一个&#xff1b…

Go 项目如何集成类似mybatisPlus插件呢?GORM走起!!

导读: 在 Go 项目中,虽然没有像 MyBatis Plus 这样特定的 ORM 插件,但可以使用功能相似的 Go ORM 框架,比如 GORM,它支持链式查询、自动迁移、预加载等功能,与 MyBatis Plus 有相似之处。通过一些插件或扩…

【JavaEE】——TCP应答报文机制,超时重传机制

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:TCP协议(面试重点重点) 1:报头长度 2:…

Linux学习网络编程学习(TCP和UDP)

文章目录 网络编程主要函数介绍1、socket函数2、bind函数转换端口和IP形式的函数 3、listen函数4、accept函数网络模式(TCP&UDP)1、面向连接的TCP流模式2、UDP用户数据包模式 编写一个简单服务端编程5、connect函数编写一个简单客户端编程 超级客户端…

国产单片机及其特点

国产单片机在近年来取得了显著的发展,不仅在技术上不断突破,还在市场上占据了越来越重要的位置。 主要国产单片机品牌及特点 兆易创新(GD) 主要系列:GD32系列,基于ARM Cortex-M内核。特点:高性能…

PDT 数据集:首个基于无人机的高精密度树木病虫害目标检测数据集

2024-09-24,由中国山东计算机科学中心、北京大学等机构联合创建了Pests and Diseases Tree(PDT)数据集,目的解决农业领域中病虫害检测模型开发中专业数据集缺失的问题。通过集成公共数据和网络数据,进一步推出了Common…

前端笔记(二):svg图标;git

一、svg图标 原视频 注意:图片是使用的png但是图标是使用的svg; (1)配置svg ①main.js里引入icons目录 ②调用函数遍历使用svg ③配置symbolId前都加了icon-,所以引用时应该加icon- ④但是使用时没有加因为组件里…

2024.10.15 sql

刷题网站&#xff1a; 牛客网 select device_id as user_infos_example from user_profile where id < 2 select device_id, university from user_profile where university"北京大学" select device_id, gender, age, university from user_profile where ag…

计算机毕业设计Django+Vue.js豆瓣图书推荐系统 图书评论情感分析 豆瓣图书可视化大屏 豆瓣图书爬虫 数据分析 图书大数据 大数据毕业设计 机器学习

《DjangoVue.js豆瓣图书推荐系统》开题报告 一、研究背景与意义 1. 研究背景 随着数字化时代的来临&#xff0c;图书资源日益丰富&#xff0c;用户面临着信息过载的问题。如何在海量图书中快速找到符合个人兴趣和需求的书籍成为了亟待解决的问题。传统的图书检索方式往往基于…