2024-05-28 blue-VH-driver-需求分析及问题分析

摘要:

2024-05-28 blue-VH-driver-需求分析,VH是个数据库,需要写一个driver,形态是dll/so动态库,调用VH的接口,然后给上层的标准数据服务去调用。

这个需求会涉及很多隐含的可能出问题的地方,需要详细分析下。

当前已知的标准服务的要求:

一. 功能上

  1. 枚举位号,拿出所有的信息
  2. 获取位号的变化消息
  3. 批量的读取位号, 可以翻页批量读取
  4. 实时订阅位号
  5. 历史数据查询
    1. 固定查询,统计查询
    2. 点查询
    3. 指定时间范围的聚合运算查询
  6. 实时数据相关查询

二. 从访问方式上

  1. 标准数据服务,提到了会使用使用单个线程去对外使用,但是不做保证
  2. 标准数据服务调用driver,两个线程去调用同一个接口,不能互相阻塞对方线程,不能互相影响
  3. 也就是说driver,必须要考虑并发访问

所要考虑的问题:

一. 架构设计相关

  1. 访问位号的时候,是先拿到位号的数量,然后再翻页的批量访问位号。
  2. 那么两个不同的客户端线程,如何做到互相不影响?
  3. 并发模型怎么设计?线程池怎么设计? 线程池又如何与task进行配合? 线程池又如何与客户端线程接口访问进行配合?
  4. driver内部的缓存要如何设计?缓存如何与特定的客户端会话绑定?
  5. 如果VH数据库断开连接,那么标准数据服务翻页批量访问位号的时候,断开连接,是否认为是已经出错了?是否要报错?还是不报错,只是将此前缓存的数据继续返回?也就是说,不同的客户端会话的位点缓存,生命周期如何控制?

二. 业务相关

  1. 组态是什么?位点是什么?为什么位点是位于组态里面?组态和工厂中的什么东西能进行关联来理解? 位点能和什么东西结合起来理解?
  2. 从组态中,能获取什么样的数据?获取方式是什么样的?组态中包含多少不同的数据结构? 每个数据结构的成员,又是代表了什么意思? 为什么要这么定义? 这种数据结构是在多高的层次上做了抽象?
  3. 订阅位点,获取位点的变化, 是否要和特定的客户端会话绑定? 还是说当作全局的?

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

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

相关文章

Session和JWT(JSON Web Token)的对比

Session和JWT(JSON Web Token)都是用于用户身份验证和授权的机制,但它们的工作原理、存储位置、可扩展性和安全性等方面有所不同。以下是两者之间的主要区别: 工作原理与存储位置: Session:Session机制依赖…

详细介绍R语言在数据分析中的应用

R语言在数据分析领域扮演着举足轻重的角色,其强大的数据处理能力、丰富的统计函数和绘图功能使得数据分析变得更加高效和直观。下面将结合几个具体的数据分析案例,详细介绍R语言在数据分析中的应用 ### 案例一:电商用户行为分析 **背景介绍…

SHELL编程(三)网络基础命令 Makefile

目标 一、网络基础及相关命令(一)网络相关命令(二)重启网络服务 二、Makefile(一)标签式语法(二)目标:依赖 式语法1. 格式2. 编译流程:预处理 编译 汇编 链接3. 目标和伪…

keep-alive 使用场景和原理

Vue keep-alive 使用场景 列表数据展示: 当列表数据展示较为复杂,渲染速度可能较慢时,可以使用 keep-alive 组件缓存列表组件,避免重复渲染,提高性能。通过将列表组件包裹在 keep-alive 组件中,当数据变化时…

Java入门基础学习笔记50——ATM系统

1、项目演示; 2、项目技术实现; 1)面向对象编程: 每个账户都是一个对象,所以要设计账户类Account,用于创建账户对象封装账户信息。ATM同样是一个对象,需要设计ATM类,代表ATM管理系…

windows tomcat服务注册和卸载

首页解压tomcat压缩包,然后进入tomcat bin目录,在此目录通过cmd进入窗口, 1:tomcat服务注册 执行命令:service.bat install tomcat8.5.100 命令执行成功后,会在注册服务列表出现这个服务,如果…

基于ssm+vue图书管理系统

基于ssmvue图书管理系统 ssm477图书管理系统 相关技术 javassmmysqlvueelementui

CentOS 7 安装 Minio

获取MinIO安装包 下载地址如下:下载地址通过以下命令可直接将安装包下载至服务器 wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm安装MinIO rpm -ivh minio-20230809233022.0.0.x86_64.rpm集成Systemd …

索引下推详情-简单入手

一.概念 索引下推(Index Pushdown)MySQL5.6添加的,是一种优化技术,用于在查询执行时将部分计算移动到存储引擎层,从而减少数据传输和计算的开销(减少回表查询次数),提高查询性能。 …

14、类与对象(采用图解方式分析内存结构)①

在idea中创建一个新文件,名称为Hello.java 其中,Hello就是一个类,main是这个类里面的方法,这意味着我们在学习的时候已经在使用类了。 对象和类 一、概念二、⭐内存分配机制分析Ⅰ、基本内存结构⭐⭐Ⅱ、调用类方法的内存分析&am…

使用 Django 显示表中的数据

1、问题背景 当我们使用 Django 进行 Web 开发时,经常需要在 Web 页面上显示数据库中的数据。例如,我们可能需要在一个页面上显示所有用户的信息,或者在一个页面上显示所有文章的标题和作者。那么,如何使用 Django 来显示表中的数…

打包软件注意

1.建个文件夹D:333 /Dalsa_Cameras /cam1 cam2 2. 3.缺的包 4.自动启动.exe exe快捷方式放一起

编程零基础,如何学习Python?

初学者选择Python入手着实是一个不错的方向,入手简单且广泛的运用是它最显著的特色了。 那有几个问题,我想是开始学习Python之前应该了解的, python能做什么? 发展前景与工作机会有哪些? 需要学习哪些内容&#xf…

英国金融时报:波场TRON出席康奈尔大学区块链会议

近日,康奈尔区块链大会的白金赞助商波场TRON在罗斯福岛的康奈尔大学科技校区(Cornell Tech)举办多项活动,消息得到英国金融时报,费加罗报和Benzinga等权威外媒报道,这全面彰显了波场TRON的领导力。大会吸引了包括学生、学者和行业领袖等在内的 800 多名参与者,凸显了波场TRON致…

迅为RK3562开发板专为3562编写10大分类2900+页文档

iTOP-3562开发板采用瑞芯微RK3562处理器,内部集成了四核A53Mali G52架构,主频2GHZ,内置1TOPSNPU算力,RK809动态调频。支持OpenGLES1.1/2.0/3.2、0penCL2.0、Vulkan 1.1内嵌高性能2D加速硬件。 内置独立NPU, 算力达 1TOPS,可用于轻…

MySQL--SQL编程、触发器、存储过程、存储函数、事务

今日目标 SQL编程 触发器 存储过程 存储函数 事务 数据库优化 SQL编程 SQL语法,结构化查询语言,主要用在关系型数据库操作上,但是要注意,SQL语句,是一种编程语言。 是否存在变量 存在程序控制流程(三…

Geotools--生成等值线

好久没用geotools去写东西了&#xff0c;因为近几年一直在接触所谓数字孪生和可视化相关项目&#xff0c;个人的重心也往前端可视化去倾斜&#xff0c;在后端的开发上到变得停滞下来。 这次用的是geotools 28.4版本&#xff0c;生成等值线的方法在 <dependency><group…

【CTF Web】NSSCTF 3868 [LitCTF 2023]这是什么?SQL !注一下 !Writeup(SQL注入+报错注入+括号闭合+DIOS)

[LitCTF 2023]这是什么&#xff1f;SQL &#xff01;注一下 &#xff01; 为了安全起见多带了几个套罢了o(▽)q 出题人 探姬 解法 先试试这个&#xff1a; )))))) or 11 -- 有结果了&#xff0c;但是这个 flag 是假的。 flag 可能在其他表里。用 hackbar 上 DIOS payload。 …

汇编-16位汇编程序基本框架

16位汇编程序是一种直接控制计算机硬件的低级编程语言&#xff0c;通常用于微控制器和早期的个人计算机。编写16位汇编程序需要理解计算机的体系结构、汇编语言的指令集和内存模型。以下是16位汇编程序的一般结构和常见部分&#xff1a; 1. 程序头部 程序头部通常包括一些伪指…

Sass(Syntactically Awesome Stylesheets)详解

Sass&#xff08;Syntactically Awesome Stylesheets&#xff09;详解&#xff1a;提升你的CSS编写效率 在网页设计和开发中&#xff0c;CSS是不可或缺的一部分&#xff0c;它负责网页的样式和布局。然而&#xff0c;随着项目规模的增长和需求的复杂化&#xff0c;原始的CSS编…