软件开发常用名词科普

通用类

  • OLPT(On-Line Transaction Processing(联机事务处理过程)):普通关系型数据库搭建的系统,主要做日常的事务CRUD处理,例如转账
  • OLAP(On-Line Analytic Processing(联机分析处理过程)):复杂分析操作,提供简单的查询结果, 例如抽取历史订单分析后找到用户最喜欢的商品
  • OT和IT:简单来说OT是工业技术、IT是信息技术

单点登录类

名词介绍

  • SP:Service Provider,具体的业务系统,如OA系统
  • SLO:Single Logout,用户通过单一操作注销身份服务系统(IDaaS平台)会话功能。
  • IDP:Identity Provider,统一身份服务的软件系统(也称IDaaS平台)
  • UD:User Directory,用户目录相关,一般是组织机构、账户、组
  • Connector:IDP提供的用于SP和IDS交互数据的统一连接器

主流单点登录方案

  • JWT:json web token, 安全可靠简洁,主流
  • CAS
  • Auth2.0
  • SAML:xml方式,不够简洁

单点登录方式

  • IDP发起:一般政企都有自己门户,希望登录门户后再通过门户跳转到想去的SP应用,流程如下
    • 用户登录IDP登录页面(门户系统),输入账号密码登录
    • 登录成功,IDP返回应用列表
    • 点击应用列表中SP应用图标,系统会携带应用id发请求,IDP返回子token
    • 带子token跳转登录到SP,SP解析成功后登录成功。
  • SP发起:一般政企有自己的应用,希望跳转到这个应用某个页面后,再跳转回IDP,登录成功后再回到SP跳转前的页面
    • 访问SP某个资源,SP应用发现未登录,携带该资源URL并重定向到IDP登录页面
    • 输入账号密码登录IDP,IDP认证通过后,携带子token重定向到SP的SSO登录页面
    • 浏览器再携带子token和之前访问的url重定向到SP
    • SP校验通过,向浏览器返回之前访问的url
  • 接口后置:严格来说不算SSO,一般政企有自己应用,希望应用登录后能把帐号密码传给IDP做个对比,成功后再打开这个应用页面,这个更多的是算一个统一密码过程
    • 用户访问SP登录页面并输入账号密码请求登录
    • SP收到请求后,再携带账号密码去IDP认证,这一步是再后台操作
    • IDP认证成功后返回Token、用户信息、应用列表等
    • SP收到IDP成功报文后给用户登录

数据类

参考链接

https://xie.infoq.cn/article/720113a0535aa46ff21ee5cc4

  • ETL:Extract(抽取)、Transform(转换)、Load(加载)
  • 宽表:业务主题相关的指标、维度、属性关联在一起的一张数据库表,把不同的内容都放在同一张表存储。
  • 数据仓库(Data Warehouse):用于存储、分析、报告的数据系统,构建面向分析的集成化数据环境,数据汇聚在一起、数据经过有效组织
    • ODS层(Operational Data Store 数据运营层):直接从源表拉过来的数据,数据引入,临时存储
      • 库名:imp_ods_{源系统库}_{源表名}
      • 表名:ods_{源系统库}_{源表名}
    • DW层(Data Warehouse):数据仓库层,即主体,从ODS层获得的数据按照主题在这建立各种数据模型
      • DWD(Detail):数据明细层,清洗转换,保证数据质量
      • DWM(Middle):数据中间层,维度关联,形成宽表,保留一定时间内数据
      • DWS(Service):数据服务层,轻度汇总,按主题划分,按日统计宽表
    • DM层 (Data Market):数据集市层,按主题划分,年、月、周累计统计宽表
    • DIM层(dimension):公共维度层,主要存放公共的信息数据,如国家代码和国家名,地理位置等信息就存在DIM层表中,对外开放,用于DWD,DWS和APP层的数据维度关联。
    • RPT报表应用层:裁剪拼接,输出报表
  • 数据湖:数据汇聚在一起
  • 数据中台:数据汇聚在一起、经过有效组织、提供通用数据服务

性能类

  • RT(响应时间):系统对请求做出响应的时间
  • TPS(吞吐量):每秒事务数,标识客户端发请求大服务端最终响应的过程,这是一个TPS
  • QPS(每秒查询率):每秒钟请求量,一个TPS可能包含多个QPS

高可靠类

  • HA(高可用):高可用性集群

其他

  • 服务:将共同的业务逻辑拆分,拆分为一个独立的项目进行部署

  • RPC:远程调用技术,一般实现有HttpClient、SpringCloud、Dubbo、GRPC、WebService等,核心底层都是socket或netty。以下简单介绍下其中的

    • WebService:比较老了,一般只有银行用,底层是SOAP(Http协议+XML)
  • SOA:Service-Oriented Architecture,面向服务架构,也是基于分布式架构演变过来的。可以理解为面向于业务逻辑层,即面向接口开发。将共同的业务代码抽取出来,提供给其他接口调用,服务和服务之间通信就是RPC通信。

    # 举个简单例子,会员项目包括前台和后台,前台给用户使用,后台给管理员使用
    # 前台和后台都只有controller
    # dao和service是一个抽出来的层,这就叫SOA架构层,上面两个controller都通过RPC调用SOA层
    • SOA架构特点:底层基于SOAP或ESB(消息总线)实现,底层使用Http或Https+重量级XML数据交换格式进行通信。
  • ESB:企业服务总线,是SOA的中心化实现,Http+XML,目的是为了解决异构系统之间的连通信。

  • 微服务:基于SOA架构演变,是SOA的分布式实现,目的是扩展性,以JSON格式替代XML。一般的微服务框架有dubbox、SpringCloud

    • 微服务架构相对于SOA优势:SOA使用XML,重量级占带宽,微服务用轻量级JSON;SOA服务管理混乱没有服务管理和治理设施;微服务架构比SOA架构粒度上更精细,更小更专,使用restful风格提供API,即HTTP+JSON,更适合敏捷开发和快速迭代产品;
    • 微服务和SOA的区别
      • 基于SOA演变,去掉了ESB服务总线,用http+json(restful)进行传输
      • 粒度小
      • 微服务独立数据存储,互相不影响
      • 开发速度快,敏捷开发 快速迭代
  • 消息总线:配置变动马上通知注册的服务