世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

文章目录

  • 软件架构设计
    • 面向服务的架构(SOA)

软件架构设计

面向服务的架构(SOA)

  • SOA特点

    • 粗粒度
    • 低耦合
    • 标准化接口
  • 服务构件架构(SCA)
    • 描述用于使用SOA构建应用程序和系统的模型
  • SOA关键技术
    • 这些技术都是基于XML的
    • UDDI(统一描述、发现和集成)
      • 服务注册
    • WSDL(Web服务描述语言)
      • 服务接口定义
      • 服务实现定义
    • SOAP(简单对象访问协议)
      • 消息传输规范
      • 包括
        • 封装
        • 编码规则
        • RPC表示
        • 绑定
      • 消息内容
        • 封装 - Envelope
        • SOAP头 - Header
        • SOAP体 - Body
    • REST(表述性状态转移)
      • 支持的操作

        • GET
        • POST
        • PUT
        • DELETE
      • 准则
        • 网络上的所有事物都被抽象为资源
        • 每个资源对应一个唯一的资源标识
        • 通过通用的连接件接口对资源进行操作
        • 对资源的各种操作不会改变资源标识
        • 所有的操作都是无状态的
  • SOA的实现方法
    • 本地化设计,分布式工作
    • 标准
      • CORBA
      • DCOM
      • EJB
    • Web Service
      • 角色

        • 服务提供者

          • 定义并实现服务
          • 将服务以WSDL的形式发布到服务注册中心
        • 服务请求者
          • 查找、绑定并调用服务
        • 服务注册中心(可选)
          • 连接服务提供者和服务请求者的纽带
      • 操作
        • 发布

          • 服务提供者发布服务
        • 查找
          • 服务请求者查询服务
        • 绑定
          • 动态绑定

            • 通过服务注册中心绑定
          • 静态绑定
            • 通过本地文件直接绑定
      • 应用系统分层
        • 底层传输层

          • HTTP、JMS、SMTP
        • 服务通信协议层
          • SOAP、REST
        • 服务描述层
          • WSDL
        • 服务层
          • 遗留系统包装
        • 业务流程层
          • 服务发现和调用
        • 服务注册层
          • UDDI
    • 服务注册表
      • 功能

        • 服务注册

          • 服务提供者向服务注册表发布服务,包括服务身份、位置、方法、绑定、配置、方案和策略等描述性属性。
        • 服务位置
          • 指帮助服务提供者查询需要的服务
        • 服务绑定
          • 服务使用者根据合约开发代码,调用服务
    • 企业服务总线
      • 一个标准化的通信基础结构
      • 使服务请求者和服务提供者进一步解耦
      • 功能
        • 消息传输、消息转换、消息路由
        • 支持异构服务交互
        • 支持多种协议
        • 提供安全认证
        • 数据格式转换
        • 日志和监控等
  • 微服务
    • 是SOA的一种
    • 特点
      • 职责单一
      • 轻量级通信(RESTFul API)
      • 松耦合
      • 独立部署
    • 优势
      • 技术异构

        • 每个服务可以使用不同的技术开发
      • 弹性
        • 服务降级
      • 扩展
        • 可以针对单个服务扩展
      • 简化部署
        • 每个服务单独部署,不影响整个系统
      • 与组织结构相匹配
        • 可将服务与团队相对应
      • 可组合性
        • 标准化接口,可组合
      • 可替代性
        • 单个服务随时可以被替代
    • 挑战
      • 分布式系统的复杂性

        • 性能,网络通信
        • 可靠性
        • 数据一致性
      • 运维成本
        • 每个服务都需要独立的配置、部署、监控、日志收集等
      • 部署自动化
      • DevOps与组织结构
        • 构建全功能的团队
      • 服务间依赖测试
      • 服务间依赖管理
  • 微服务与SOA
    微服务 SOA
    团队级,自底向上开展实施 企业级,自顶向下开展实施
    细粒度 粗粒度
    松散的服务架构 集中式服务架构
    集成方式简单(HTTP/REST/JSON) 集成方式复杂(ESB/WS/SOAP)
    服务能独立部署 单块架构系统,相互依赖,部署复杂

软考必过 - 系统架构师 - 软件架构设计 - SOA与微服务相关推荐

  1. 软考必过 - 系统架构师 - 系统架构设计

    世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程. 系统架构设计 4+1视图 逻辑视图 用户 开发视图 程序员 进程视图 并发 物理视图 软硬件映射关系 特定场景 ...

  2. 软考必过 - 系统架构师 - 企业信息化与战略规划

    世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程. 企业信息化与战略规划 信息 概念 不确定性的减少 信息化 概念 工业社会 -> 信息社会 意义 组织结构创 ...

  3. 复习七天通过软考高级「系统架构师」,我是如何做到的

    前言 软考复习的方式可以分为两种:报班和自学.当然也有加QQ要求共同分摊网课费用的,当然被我义正言辞地无情拒绝.原因很简单:没钱.于是前前后后自学了七天,最终考过了系统架构师.或许我的学习模式不适合你 ...

  4. 软考高级-系统架构师-软件架构设计

    本章节主要内容如下( 上午综合题可以考到20~26分,其中案例题和论问题都有涉及 ): 目录: 一.软件架构的概念 1.软件架构概念 2.软件架构发展史 3.软件架构的建模 4.4+1模型 二.软件架 ...

  5. 软考高项-系统架构师考试心得

    报考初衷 2020年的系统架构师考试成绩和分数线已经出了,侥幸一次通过. 我是做测试的,2019年,2020年,在而立之年经历了内心迷茫的痛苦思考,关于当前和以后的事业抉择. 在不满当下,看不到未来的 ...

  6. 软考高项-系统架构师(论文)-架构风格

    关于架构师论文: 备考架构师写论文的时候,发现网上可参考的范文很少,初写的时候很是浪费时间. 现在把自己学习的时候,写的论文分享出来,希望能对备考的同学有点帮助 架构风格: 摘要 2019年2月,本人 ...

  7. 系统架构师—软件架构设计(二)CS/BS/SOA/DSSA/ABSD

    1.层次架构风格 1.1.两层C/S架构 客户端和服务器都有处理功能,相比较于传统的集中式软件架构,还是有不少优点的,但是现在已经不常用,原因有:开发成本较高.客户端程序设计复杂.信息内容和形式单一. ...

  8. 系统架构师—软件架构设计(一)概述、构建、视图、基本架构风格

    1.软件架构概述 从需求分析到软件设计之间的过渡过程称为软件架构.只要软件架构设计好了,整个软件就不会出现坍塌性的错误,即不会崩溃. 架构设计就是需求分配,将满足需求的职责分配到组件上. 软件架构为软 ...

  9. 软考高级-系统架构师-软件架构设计练习题

    目录: 1.第一部分习题 2.第二部分习题 1.第一部分习题 例1: 答案:C 例2: 答案:C A:选项 B:选项这里的测试并不是真正的在代码中运行而是使用实例进行验证 C:选项,架构复审人员需要外 ...

最新文章

  1. 报名 | DeeCamp2019:实战AI 铸造定雨神针
  2. Android应用资源---布局资源类型(Layout)
  3. php的filter input,记一个php://filter和php://input的CTF题
  4. 2018-2019-1 20189218《Linux内核原理与分析》第五周作业
  5. halcon知识:对空图像的系列操作
  6. 您好GroovyFX
  7. [CEOI2008] order
  8. VMware Workstation虚拟机窗口小,无法显示内部系统全部桌面
  9. 【数据结构与算法】顺序表V3.0的Java实现
  10. python 数据库查询系统_python查询数据库操作系统
  11. PHP 代码简洁之道 ( PHP Clean Code)(第二部分)
  12. MySQL:由USE DB堵塞故障引发的思考
  13. DC.SetMapMode()的用法记录
  14. 虚拟机里面主要涉及哪些功能,虚拟机管理需要哪些功能
  15. latex-符号和长度
  16. 华为手机图标怎么变小_华为手机字太小看不清?那是你不会设置!四种方法让手机显示变大...
  17. SLAM十四讲ch5 joinMap错误解决
  18. Day644.Spring框架开发双刃剑 -Java业务开发常见错误
  19. 电脑登录密码和outlook密码不一致。密码正确却提示密码或用户不正确。
  20. springboot毕设项目蔬菜种植水肥一体化管理系统70ro1(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. SOPA对CIO来说是好是坏?
  2. 第一章 Redis基础
  3. 绝地求生信号服务器崩溃,绝地求生游戏崩溃怎么办?更新显示servers are too busy解决方法...
  4. virtualbox内部连不上问题
  5. [Python]通过温州大学内网门户登录教务系统
  6. 安防监控实现之A9主框架的搭建
  7. Java 文件基本技术 文件概述
  8. 视差特效的原理和实现方法
  9. vCenter账号权限问题
  10. 【学习笔记】--mooc--教学研究的数据处理与工具应用(问卷+问卷星的使用+SPSS的下载、安装、使用、入门)--华南师范大学