什么是软件设计中的上游和下游?



文章目录

    • 前言
    • 总结
      • 河流理论
        • 组件
        • 服务
      • 终点理论
      • 总结收尾

前言

在我们日常工作当中,经常会听到这些词汇,与上游xx对接、升级要保证下游xx兼容性,据我了解啊,很多人还搞不起什么是上游、什么是下游,或者脑袋里很模糊,不会去判断这些。那么搞清楚这些概念,对于我们的软件设计还是很有必要的,为了搞清楚,那么下面我先举几个例子来介绍下:
例如

  • 我们的上游的xx系统今天down掉了,导致我们一部分业务没有闭环,需要晚些时候去补偿。

  • 我们提供的接口被调用频率过高,爆掉了,导致下游的几个厂商业务阻断1小时。

在自然界中,上游下游一般是指我们生活中的河流流向,如下图所示:

组件C依赖于组件B,而组件B又依赖于组件A。

按照河流理论

  • 去掉B,C无法工作,故B是C的上游。
  • 去掉A,B无法工作,故A是B的上游。

服务

数据从起点数据库【上游】,经过数据处理层、数据传递层、数据应用层到终端下游】用户。

总结收尾

  • 一般情况下,我们把系统或者组件间数据流依赖流河流,从数据流源头到终点,即河流的上游到下游。
  • 其他场景,如果不太好判断的话,可以用终点理论面向终点的就是下游,例如web系统中的越靠近用户的越是下游数据处理分析系统中的越靠近处理结果 表的越是下游

参考:

  • https://ask.zkbhj.com/question/386
  • https://reflectoring.io/upstream-downstream/
  • https://softwareengineering.stackexchange.com/questions/71080/what-does-downstream-upstream-design-mean/83686
  • https://softwareengineering.stackexchange.com/questions/312401/which-way-are-downstream-and-upstream-services

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树使用JDBC操作数据库数据库操作91960 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月24日
下一篇 2020年11月24日

相关推荐