一种基于b/s架构的统一仪器控制系统
技术领域
1.本发明涉及仪器控制软件框架,具体是一种基于b/s架构的统一仪器控制系统。
背景技术:2.仪器控制软件用于对仪表控制和状态展示,是现代测控技术、通信技术、计算机与相关业务技术有机结合的产物,随着仪器领域的不断拓展,测试设备的不断更新、应用场景的日趋复杂,仪器控制软件设计、开发与维护的难度较大。现代用户对软件易用性的要求越来越高,并且有着越来越多的需求:实现pc、平板和手机的跨平台程控;多用户对多仪表灵活程控;如何灵活部署软件,兼容各种控制接口的仪器;降低控制软件的维护和升级成本。市场上各仪表厂家拥有各类控制软件,但是基于上述目标无法兼顾。
3.因此,如何来统一控制不同的仪表,是当下行业研究人员需要解决的问题。
技术实现要素:4.本发明的目的在于克服现有技术的不足,提供一种基于b/s架构的统一仪器控制系统,包括: web服务模块、仪表驱动模块、仪表管理模块、数据服务模块、客户端模块、分布式数据节点模块;所述的客户端模块与所述的分布式数据节点模块连接,所述的web服务模块、仪表驱动模块、分布式数据节点模块分别与所述的数据服务模块连接,所述的仪表管理模块与所述的仪表驱动模块连接;所述的客户端模块包括浏览器模块;其中,所述的浏览器模块用于接受分布式数据节点模块传输的客户端请求数据,并将请求数据发送到web服务模块,并返回web服务模块回传的请求结果;所述的web服务模块用于浏览器模块访问api的解析、web页面的绘制和请求数据的包装、对数据服务模块进行访问并将数据服务模块返回的请求结果数据返回给浏览器模块;所述的仪表驱动模块用于存储仪表驱动,并运行仪表驱动来控制对应的仪表;所述的仪表管理模块用于提供仪表数据接口,连接所需的仪表;所述的数据服务模块用于处理web服务模块上传的请求数据,并根据请求数据调用对应仪表的驱动,控制对应的仪表;所述的客户端模块用于将请求数据发送到与客户端模块匹配的分布式数据节点模块中的分布式数据节点;所述的分布式数据节点模块用于提供分布式数据服务。
5.优选的,所述的与客户端模块匹配的分布式数据节点模块中的分布式数据节点,通过如下过程得到:获取分布式数据节点模块中各分布式数据节点的获取任务的权重,根据分布式数据节点获取任务的权重对分布式数据节点进行排序,得到初始分布式数据节点序列;根据初始分布式数据节点序列,获取客户端模块与初始分布式数据节点序列中各分布式数据节点的访问延迟,根据访问延迟进行排序得到对应客户端模块的分布式数据节
点序列;分别计算对应客户端模块的分布式数据节点序列中各分布式数据节点对客户端模块上传数据的处理速率,根据分布式数据节点对客户端模块上传数据的处理速率以及该分布式数据节点获取任务的权重,得到对应客户端模块的分布式数据节点获取任务的权重,对应客户端模块的分布式数据节点获取任务的权重最大的分布式数据节点,为与客户端模块匹配的分布式数据节点模块中的分布式数据节点。
6.优选的,所述的数据服务模块用于处理web服务模块上传的请求数据,并根据请求数据调用对应仪表的驱动,控制对应的仪表,包括:数据服务模块根据web服务模块上传的请求数据,判断请求数据请求控制的仪表的状态,若为本地仪表,则将仪表控制数据发送给web服务模块,web服务模块根据仪表控制数据调用仪表驱动来驱动仪表运行,通过请求数据控制仪表,并将请求结果数据返回给浏览器模块;若为非本地仪表,数据服务模块根据web服务模块上传的请求数据,并根据请求数据调用对应的仪表驱动来驱动仪表运行,通过请求数据控制仪表,并将请求结果数据返回给web服务模块。
7.优选的,所述的分布式数据节点模块用于提供分布式数据服务,包括:客户端模块将请求数据上传到匹配的分布式数据节点,同时分布式数据节点根据客户端请求数据中请求控制的仪表,生成对应仪表的请求控制序列,序号为n;若在客户端对仪表进行请求控制,则根据请求数据的内容,生成序号加一的请求数据,同时序号加一的请求数据更新到对应仪表的请求控制序列;客户端根据对应仪表的请求控制序列查看仪表控制过程。
8.优选的,所述的仪表驱动模块用于存储和运行仪表驱动,控制对应的仪表,包括:仪表驱动模块根据数据服务模块的仪表驱动调用数据,得到待控制的仪表信息,判断仪表管理模块是否连接有待控制的仪表,若无,则返回无待控制仪表信息到数据服务模块;若有,则调用仪表驱动来控制仪表运行,并返回仪表的工作状态数据到数据服务模块本发明的有益效果是:通过本发明所提供的技术方案,可以实现对同一系统下的本地和非本地不同仪器的实时控制,兼容各种控制接口的仪器,降低控制软件的维护和升级成本;采用分布式去中心化控制的方式,支持多用户对多台仪表同时控制。
附图说明
9.图1为一种基于b/s架构的统一仪器控制系统的原理示意图。
10.图2为客户端模块与分布式数据节点模块匹配的流程示意图。
具体实施方式
11.下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
12.为了使本发明的目的,技术方案及优点更加清楚明白,结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在
此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
13.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
14.而且,术语“包括”,“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程,方法,物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程,方法,物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程,方法,物品或者设备中还存在另外的相同要素。
15.以下结合实施例对本发明的特征和性能作进一步的详细描述。
16.如图1所示,一种基于b/s架构的统一仪器控制系统,包括: web服务模块、仪表驱动模块、仪表管理模块、数据服务模块、客户端模块、分布式数据节点模块;所述的客户端模块与所述的分布式数据节点模块连接,所述的web服务模块、仪表驱动模块、分布式数据节点模块分别与所述的数据服务模块连接,所述的仪表管理模块与所述的仪表驱动模块连接;所述的客户端模块包括浏览器模块;其中,所述的浏览器模块用于接受分布式数据节点模块传输的客户端请求数据,并将请求数据发送到web服务模块,并返回web服务模块回传的请求结果;所述的web服务模块用于浏览器模块访问api的解析、web页面的绘制和请求数据的包装、对数据服务模块进行访问并将数据服务模块返回的请求结果数据返回给浏览器模块;所述的仪表驱动模块用于存储仪表驱动,并运行仪表驱动来控制对应的仪表;所述的仪表管理模块用于提供仪表数据接口,连接所需的仪表;所述的数据服务模块用于处理web服务模块上传的请求数据,并根据请求数据调用对应仪表的驱动,控制对应的仪表;所述的客户端模块用于将请求数据发送到与客户端模块匹配的分布式数据节点模块中的分布式数据节点;所述的分布式数据节点模块用于提供分布式数据服务。
17.所述的与客户端模块匹配的分布式数据节点模块中的分布式数据节点,通过如下过程得到:获取分布式数据节点模块中各分布式数据节点的获取任务的权重,根据分布式数据节点获取任务的权重对分布式数据节点进行排序,得到初始分布式数据节点序列;根据初始分布式数据节点序列,获取客户端模块与初始分布式数据节点序列中各分布式数据节点的访问延迟,根据访问延迟进行排序得到对应客户端模块的分布式数据节点序列;分别计算对应客户端模块的分布式数据节点序列中各分布式数据节点对客户端模块上传数据的处理速率,根据分布式数据节点对客户端模块上传数据的处理速率以及该分布式数据节点获取任务的权重,得到对应客户端模块的分布式数据节点获取任务的权
重,对应客户端模块的分布式数据节点获取任务的权重最大的分布式数据节点,为与客户端模块匹配的分布式数据节点模块中的分布式数据节点。
18.所述的获取分布式数据节点模块中各分布式数据节点的获取任务的权重,包括根据内存占用、磁盘占用和cpu占用获取分布式数据节点获取任务的权重,采用如下公式:其中a表示内存占用,b表示磁盘占用,c表示cpu占用,d表示距离权重。
19.根据初始分布式数据节点序列,获取客户端模块与初始分布式数据节点序列中各分布式数据节点的访问延迟,根据访问延迟进行排序得到对应客户端模块的分布式数据节点序列,包括:将客户端模块测试数据包打上时间戳分别发送给初始分布式数据节点序列中各分布式数据节点,获取各分布式数据节点接收到客户端模块测试数据包的时间,根据各分布式数据节点接收到客户端模块测试数据包的时刻与客户端模块测试数据包的时间戳得到访问延迟。
20.所述的分别计算对应客户端模块的分布式数据节点序列中各分布式数据节点对客户端模块上传数据的处理速率,包括:获取分布式数据节点完成接受客户端模块测试数据包的时刻,根据分布式数据节点接收到用户测试数据包的时刻与分布式数据节点完成客户端测试数据处理的时刻,得到客户端模块测试数据包的处理时长,根据处理时长与客户端模块测试数据包的数据大小得到处理速率。
21.根据得到的处理速率与分布式数据节点获取任务的权重的乘积,得到应客户端的分布式存储节点获取任务的权重。
22.所述的数据服务模块用于处理web服务模块上传的请求数据,并根据请求数据调用对应仪表的驱动,控制对应的仪表,包括:数据服务模块根据web服务模块上传的请求数据,判断请求数据请求控制的仪表的状态,若为本地仪表,则将仪表控制数据发送给web服务模块,web服务模块根据仪表控制数据调用仪表驱动来驱动仪表运行,通过请求数据控制仪表,并将请求结果数据返回给浏览器模块;若为非本地仪表,数据服务模块根据web服务模块上传的请求数据,并根据请求数据调用对应的仪表驱动来驱动仪表运行,通过请求数据控制仪表,并将请求结果数据返回给web服务模块。
23.所述的分布式数据节点模块用于提供分布式数据服务,包括:客户端模块将请求数据上传到匹配的分布式数据节点,同时分布式数据节点根据客户端请求数据中请求控制的仪表,生成对应仪表的请求控制序列,序号为n;若在客户端对仪表进行请求控制,则根据请求数据的内容,生成序号加一的请求数据,同时序号加一的请求数据更新到对应仪表的请求控制序列;客户端根据对应仪表的请求控制序列查看仪表控制过程。
24.所述的仪表驱动模块用于存储和运行仪表驱动,控制对应的仪表,包括:仪表驱动模块根据数据服务模块的仪表驱动调用数据,得到待控制的仪表信息,判断仪表管理模块是否连接有待控制的仪表,若无,则返回无待控制仪表信息到数据服务模块;若有,则调用仪表驱动来控制仪表运行,并返回仪表的工作状态数据到数据服务模块。
25.以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。