仪器监测系统
文献发布时间:2023-06-19 19:07:35
技术领域
本公开涉及监测系统。特别是,本公开涉及仪器监测系统,例如用于实验室的那些。本申请要求获得2020年7月1日提交的题为仪器监测系统的美国临时申请63/046964的优先权,该申请的公开内容通过引用全部纳入本文中。
背景技术
仪器和软件解决方案使实验室能够量化和分析物质和产品的物理和生物特性,以及在分子和细胞水平上查看样品。此类仪器可包括液相色谱仪、气相色谱仪、液相色谱质谱仪、气相色谱质谱仪、电感耦合等离子体质谱仪、原子吸收光谱仪、微波等离子体原子发射光谱仪、电感耦合等离子体光发射光谱仪、拉曼光谱仪、基于细胞分析板的检测系统、流式细胞仪和实时细胞分析仪。这些仪器可用于各种场合,如制药、生物技术、学术、政府、化学、环境、法医和食品生产设施。除了实验测量数据外,还可以收集这些仪器的操作数据,有时被称为元数据,用于分析。
附图说明
在附图中描述了各种实施例,用于说明目的,而不应被解释为限制本公开的范围。此外,不同公开的实施例的各种特征可以组合成额外的实施例,这些实施例是本公开的一部分。
图1A是根据一个或多个实施例的仪器监测系统的图。
图1B是根据一个或多个实施例的利用代理服务器的仪器监测系统的实施例的图。
图2A-2F示出了根据一个或多个实施例的正在进行成帧过程的数据流的抽样搜索。
图3A-3B示出了根据一个或多个实施例的未能在数据流的预期位置找到独特的比特模式的抽样搜索。
图4A-4B示出了根据一个或多个实施例的由第二线程使用替代成帧假设的抽样搜索。
图5A示出了根据一个或多个实施例的流程图,说明了用于对数据流成帧的示例过程。
图5B示出了根据一个或多个实施例的流程图,说明了用于从起始比特模式继续成帧过程的示例过程。
图6示出了根据一个或多个实施例的流程图,说明了用于并行测试成帧假设的示例过程。
图7是根据一个或多个实施例的计算设备的示意图。
发明内容
一个或多个计算设备的系统可以被配置为执行特定的操作或行动,其原因是在系统上安装有软件、固件、硬件或它们的组合,在操作中导致或使系统执行这些行动。一个或多个计算机程序可以被配置为执行特定的操作或行动,其原因是包括指令,这些指令在被数据处理装置执行时导致该装置执行这些行动。
一个综合方面包括一种用于解释捕获的数据流的网络设备。所述网络设备可以包括:网络接口,被配置为接收捕获的数据流,所述数据流在仪器和所述仪器的控制设备之间发送。所述网络设备还可以包括:耦合到所述网络接口的存储器,所述存储器被配置为存储捕获的数据流。所述网络设备还可以包括:处理器,被配置为:接收由所述仪器发送至所述控制设备的数据流;使用第一进程线程识别所述数据流中的数据帧。识别所述数据流可以包括:在所述数据流中搜索比特模式的第一实例;基于相对于所述比特模式的第一实例的位置,识别与第一假定数据帧的消息长度相对应的比特;基于所述第一假定数据帧的消息长度,在所述数据流中识别第二假定数据帧;确定所述比特模式的第二实例是否存在于所述第二假定数据帧中的预测位置;响应于在所述预测位置处识别所述比特模式的第二实例,增加所述比特模式的计数,并继续扫描假定数据帧中预测位置的比特模式,直到达到所述计数的阈值;和响应于达到所述计数的阈值,将所述第一假定数据帧和所述第二假定数据帧识别为实际数据帧。这个方面的其他实施例包括记录在一个或多个计算机存储设备上的相应的计算机系统、装置和计算机程序,每个都被配置为执行该方法的行动。
在实施例中,识别所述数据流中的数据帧进一步包括:响应于在与所述预测位置不同的位置处识别所述比特模式的第二实例,启动第二进程线程,使用所述不同的位置处的第二实例作为在所述数据流中对数据帧成帧的替代基础。
在实施例中,所述比特模式包括0x00000065。
在实施例中,所述比特模式识别所述第一假定数据帧的消息类型。可选地,对应于第一假定数据帧的消息长度的比特在对应于所述第一假定数据帧的消息类型的比特之前。
在实施例中,与所述数据流相关联的比特率由所述处理器进一步确定,作为所述仪器的运行时间或利用率的度量或指标。
在实施例中,识别的数据帧包含所述仪器的运行状态信息。可选地,所述运行状态信息被用于确定所述仪器的运行时间或利用率。
在实施例中,识别的数据帧包含所述处理器用于确定仪器操作的数据或元数据。可选地,所述元数据包含仪器设定点和操作值。可选地,设定点和操作值之间的比较被用于触发警报或生成可视化。
在实施例中,数据和元数据是在多个仪器运行中收集和保留的。可选地,在多个仪器运行中收集的数据和元数据之间的比较被用于识别趋势、预测事件、触发警报和/或生成可视化。
在实施例中,在多个仪器运行中收集的数据和元数据之间的比较被用于本地或远程对仪器进行故障排除。
在实施例中,所述网络设备与所述仪器和所述控制设备之间的镜像开关进行通信。可选地,接收的数据流是从原始数据流镜像而成的,所述原始数据流由所述镜像开关从所述仪器和所述控制设备中的至少一个接收。
在实施例中,所述网络设备位于所述仪器和所述控制设备之间。可选地,所述网络设备可以包括代理服务器,用于促进所述仪器和所述控制设备之间的通信。
在实施例中,所述网络设备的处理器进一步被配置为基于所述仪器使用的已知协议选择要搜索的比特模式。
一个综合方面包括一种解释数据流的方法。所述方法可以包括:接收由仪器发送至控制设备的数据流。所述方法还可以包括:使用第一进程线程通过以下方式识别所述数据流中的数据帧:在所述数据流中搜索比特模式的第一实例;基于相对于所述比特模式的第一实例的位置,识别与第一假定数据帧的消息长度相对应的比特;基于所述第一假定数据帧的消息长度,在所述数据流中识别第二假定数据帧;确定所述比特模式的第二实例是否存在于所述第二假定数据帧中的预测位置;响应于在所述预测位置处识别所述比特模式的第二实例,增加所述比特模式的计数,并继续扫描假定数据帧中预测位置的比特模式,直到达到所述计数的阈值;和响应于达到所述计数的阈值,将所述第一假定数据帧和所述第二假定数据帧识别为实际数据帧。这个方面的其他实施例包括记录在一个或多个计算机存储设备上的相应的计算机系统、装置和计算机程序,每个都被配置为执行该方法的行动。
在实施例中,识别所述数据流中的数据帧可以包括:响应于在与所述预测位置不同的位置处识别所述比特模式的第二实例,启动第二进程线程,使用所述不同的位置处的第二实例作为在所述数据流中对数据帧成帧的替代基础。
在实施例中,识别所述数据流中的数据帧可以包括:响应于在与针对所述第三实例的预测位置不同的第二位置处识别所述比特模式的第三实例,启动第三进程线程,使用所述第二位置处的第三实例作为在所述数据流中对数据帧成帧的第二替代基础。
在实施例中,所述方法可以包括:响应于所述计数的阈值被所述进程线程之一达到,结束其他进程线程并为所述数据流选择对应于达到所述阈值的进程线程的成帧假设。
在实施例中,所述比特模式可以包括0x00000065。
在实施例中,所述比特模式识别所述第一假定数据帧的消息类型。
在实施例中,对应于第一假定数据帧的消息长度的比特在对应于第一假定数据帧的消息类型的比特之前。
在实施例中,所述方法由位于所述仪器和所述控制设备之间的网络设备执行。
在实施例中,接收所述仪器发送的数据流可以包括使用代理服务器代理所述仪器和所述控制设备之间的通信。
在实施例中,所述方法可以包括:从收集自识别的数据帧的运行状态信息确定仪器利用率。
在实施例中,所述方法可以包括:基于所述数据流的比特率确定仪器利用率。
在实施例中,所述方法可以包括:比较设定点和来自识别的数据帧的实际操作值。
在实施例中,所述方法可以包括:储存和比较在许多仪器运行中从识别的数据帧收集的数据或元数据。
在实施例中,所述方法可以包括:基于从识别的数据帧收集的数据或元数据,基于从识别的数据帧收集的数据或元数据,执行以下项中的至少一种:识别趋势、预测事件、和/或触发一个或多个警报。
在实施例中,所述方法可以包括:基于从识别的数据帧收集的数据或元数据,生成可视化。
在实施例中,所述方法可以包括:使用图形用户界面交互式地探索从识别的数据帧收集的数据或元数据。
在实施例中,所述方法可以包括:基于从识别的数据帧收集的数据或元数据,在本地或远程对仪器进行故障排除。
一个综合方面包括一种非暂时性计算机可读介质,其上存储有软件指令,所述软件指令当由处理器执行时,使所述处理器解释数据流。所述软件指令可以包括接收由仪器发送至控制设备的数据流。所述软件指令可以包括使用第一进程线程通过以下方式识别所述数据流中的数据帧:在所述数据流中搜索比特模式的第一实例;基于相对于所述比特模式的第一实例的位置,识别与第一假定数据帧的消息长度相对应的比特;基于所述第一假定数据帧的消息长度,在所述数据流中识别第二假定数据帧;确定所述比特模式的第二实例是否存在于所述第二假定数据帧中的预测位置;响应于在所述预测位置处识别所述比特模式的第二实例,增加所述比特模式的计数,并继续扫描假定数据帧中预测位置的比特模式,直到达到所述计数的阈值;和响应于达到所述计数的阈值,将所述第一假定数据帧和所述第二假定数据帧识别为实际数据帧。这个方面的其他实施例包括记录在一个或多个计算机存储设备上的相应的计算机系统、装置和计算机程序,每个都被配置为执行指令。
在本发明的单独方面和实施例的背景下描述的特征可以一起使用和/或可互换。类似地,在单个实施例的背景下描述的特征也可以单独提供或以任何合适的子组合提供。
具体实施方式
本文提供的标题只是为了方便,不一定影响公开的范围或意义。尽管下面公开了某些优选的实施例和示例,但主题超越了具体公开的实施例,延伸到其他替代的实施方案和/或用途以及其修改和等同物。因此,可能由此产生的权利要求的范围不受下面描述的任何特定实施例的限制。例如,在本文公开的任何方法或过程中,该方法或过程的行为或操作可以以任何合适的顺序进行,不一定限于任何特定的公开顺序。各种操作可以被依次描述为多个不连续的操作,其方式可能有助于理解某些实施例;然而,描述的顺序不应理解为暗示这些操作是依赖于顺序的。此外,本文描述的结构、系统和/或设备可以体现为集成组件或独立组件。为了比较各种实施例,描述了这些实施例的某些方面和优点。不一定所有这些方面或优点都由任何特定的实施例实现。因此,例如,各种实施例可以以实现或优化本文所教导的一个优点或一组优点的方式进行,而不一定实现本文也可能教导或建议的其他方面或优点。
实验室通常包含多个用于量化和分析样品的仪器。这些仪器测量、传输有时还存储其自身运行的各个方面。例如,质谱仪可以保存其运行状态的信息(例如,准备、武装、运行等),并将这些信息传输给控制计算机。然而,实验室中的仪器可能来自不同的制造商,或者至少是在不同时期制造的。因此,任何两台仪器可能经常使用不同的协议进行通信。即使是同一制造商的两台仪器也可能采用不同的协议。事实上,即使是同一制造商的同类型仪器,如果是不同年代的仪器,也可能使用不同的协议。由于仪器的寿命很长(有些持续20年或更久),典型的实验室可能有许多不同年代的仪器,它们采用不同的通信协议。此外,不同的仪器可能有不同的限制,一些仪器可能限制并发连接或数据流的数量,不允许新的连接,和/或限制可以通过新连接发送的数据量或类型。
因此,需要一种监测系统,该系统可以从不同的仪器收集数据,而不考虑正在使用的不同协议,并且可以支持使用现有连接进行监测。本文所述监测系统的某些实施例提供了通过监听仪器和控制计算机之间的通信线路来监测仪器活动的能力。监测系统可以捕获仪器和控制计算机之间传输的数据流,其中包括传输的实验测量值或数据,如总离子色谱图(TIC),以及元数据,如泵压力、泵驱动状态、粗真空压力、提取器电压、干燥气体流量、气体温度、运行状态、仪器设定点和/或仪器的其他操作值/参数。通过收集和分析从数据流中捕获的数据和元数据,监测系统可以确定仪器的运行信息。示例性实施例提供了一种监测器,它可以捕获由控制软件设置的设定点或目标值,以及实际值,即仪器测量的时间点值。相关联的可视化可以进一步显示在例如实时更新的仪表板上,并由操作员监测,以检测异常状况,如温度偏离设定点。在另一个实施例中,根据本教导配置的系统可以自主地监测这两个信号,并提醒操作员任何异常状况。
监测的数据或元数据(如各种测量值和/或参数)可以随着时间和/或多个仪器运行而被捕获、提取、存储和分析。例如,与液相色谱(LC)柱相关联的泵压力值可以随着多次仪器运行而被捕获、提取、存储和比较。例如,如果任何一次运行的操作状况与以前的运行状况有明显的偏差,可以利用这些比较来触发警报。此外,类似的分析可以识别趋势和/或预测未来事件。更确切地说,各种统计技术(其中一些可以称为机器学习)可以通过基于系统的过去行为和/或类似系统的过去行为的模型来推断系统的未来行为。例如,柱压力的趋势可以表明柱年龄和更换柱的需要。此外,由监测器随时间捕获并存储的测量值或参数可以例如显示在被动的视频仪表板上,或通过图形用户界面进行交互式探索。这种交互式探索可以例如促进本地或远程仪器故障排除。例如,如果客户报告说仪器在过去一周内停止了正常工作,支持人员可以视觉地扫描仪器的各种测量值和/或参数的存储历史,以确定意外的偏差,如内部电源电压的显著下降,以识别问题发生的时刻。此外,通过目视检查问题发生时刻前后的各种测量值和/或参数的存储历史,有经验的支持人员可以识别问题以及例如必须更换的相关部件的来源。
重要信息可以通过多种方式从监测数据中推断或得出。例如,可以通过至少两种方法来估计仪器的利用率,或用于执行主动测量的相对时间量,每种方法都基于监测器捕获的不同数据。例如,监测系统可以评估仪器处于运行时间或工作状态的时间量,这可以作为仪器利用率或仪器容量被使用多少的度量。此外,该系统可以被配置为触发警报或为收集的数据生成可视化。例如,设定点和操作值之间的比较可用于触发警报或可用于生成比较值的可视化。
在各种实施例中,即使数据流是以无法识别的格式或以加密的格式传输,捕获的数据仍然可以被利用。例如,仪器利用率可以从捕获的数据的比特率推断出或与之相关联。此外,搜索重复出现的指纹,加上本文所述的算法,可以被配置为提供识别消息边界、消息类型和/或其他未被识别或加密的数据流中的参数值。
图1A是根据一个或多个实施例的仪器监测系统100的图。如图所示,仪器105和控制设备110通过网络115连接。网络115包括连接仪器105和控制设备110的镜像设备120。镜像设备120可以将仪器105和控制设备110进行通信耦合。在一些实施例中,镜像设备120包括流复制器125,该复制器复制由镜像设备120接收的数据流(使用协议130从/到仪器和控制设备)并将复制的数据发送到解释设备135。然后,解释设备135和流解析器140可以将复制的数据流解析成数据帧,这些数据帧然后发送到一个或多个订阅设备145A-145C(统称145)。在一些实施例中,数据帧包括关于仪器的数据或元数据。
仪器监测系统100可以包括上述组件中的一个或多个。例如,一个实施例可以只包括镜像设备120和解释设备135,而其他实施例可以包括额外的组件。此外,一些组件可以被组合成单一的设备。例如,镜像设备120和解释设备135可以是单一的设备,包括流复制器125和流解析器140。
仪器105可以包括液相色谱仪、气相色谱仪、液相色谱质谱仪、气相色谱质谱仪、电感耦合等离子体质谱仪、原子吸收光谱仪、微波等离子体原子发射光谱仪、电感耦合等离子体光发射光谱仪、拉曼光谱仪、基于细胞分析板的检测系统、流式细胞仪和实时细胞分析仪。控制设备110可以包括个人电脑、平板电脑、智能手机、服务器、笔记本电脑、移动设备、其他类型的计算设备等。在典型的情况下,仪器监测系统100是实验室的一部分。
网络115可以包括ad hoc网络、点对点通信链路、内联网、外联网、虚拟专用网络(VPN)、公共网络(例如互联网)、专用网络(例如局域网(LAN))或广域网(WAN)中的一个或多个,例如互联网、有线网络(例如以太网网络)、无线网络(例如802.11网络、Wi-Fi网络、无线局域网(WLAN)、无线广域网(WWAN)等)、蜂窝网络(例如,长期演进(LTE)网络)、城域网(MAN)、互联网的一部分、公共交换电话网络(PSTN)的一部分、路由器、集线器、交换机、服务器计算机、其他类型的计算机网络和/或其组合。在一个实施例中,仪器105和控制设备110位于局域网(LAN)中,而解释设备135和/或订阅设备145A-145C位于LAN中或通过广域网(WAN)连接到LAN。
镜像设备120可以是交换机、个人电脑、网关、路由器或其他网络设备,用于将仪器105与控制设备110进行通信耦合。在一个实施例中,仪器和控制设备之间的连接是通过物理线路,如以太网电缆、光缆等。例如,镜像设备120可以是网络交换机,有物理端口用于接收来自仪器和控制设备的网线。在一个实施例中,连接是无线的,例如通过Wi-Fi、蓝牙、Z-wave、Zigbee或类似物。在一些实施例中,流复制器125由镜像设备120的电路和/或软件组成,用于镜像分组。在接收由数据分组(例如,IP数据报)组成的数据流127之后,流复制器125可以复制或镜像数据流,并将数据流副本132发送到解释设备135。同时,原始数据流被发送到原始目的地。这种镜像功能对仪器和控制设备可以是透明的。也就是说,分组的镜像可能对仪器和控制设备之间的通信没有影响,这些设备仍然不知道镜像正在发生。
解释设备135可以是计算设备,例如台式机、服务器或类似的设备,并且可以位于实验室内或不同的地点。解释设备135包括流解析器140,用于将数据流副本132解析为单个帧。通常,互联网协议(IP)被用作许多应用级协议(如协议130)的构建块。使用封装,协议130数据通过添加适当的标头被转换为较低级别的协议,如IP。IP分组包括头部分和数据部分。为了简单起见,IP分组数据部分被描述为携带协议130数据。然而,在实际中,一个或多个介入的协议(例如,传输控制协议(TCP))可以进一步封装协议130数据。
数据流副本132在被解释设备135接收时不一定处于可理解的状况。IP分组可能重复或失序,例如,由于分组丢失或损坏。因此,由解释设备收到的数据流副本可能有失序、丢失、损坏和/或重复的片段。因此,识别使用IP分组传输的协议130中的数据可能是困难的;简单地从数据流中按顺序读取数据IP分组可能导致乱码信息。此外,从审查数据流副本中不容易看出协议数据应如何成帧。
流解析器140可以使用既定的方法,将复制的数据流的IP分组重新组织成有序流。然而,该流可能仍然是不完整的,即缺乏初始部分,这对于识别流内的单个数据帧可能是必要的。流解析器140可以使用图2-5中描述的算法的实施例来识别复制的、不完整的数据流中的协议130的各个数据帧。通过搜索数据流中独特的比特模式,流解析器可以识别协议130中数据帧的潜在边界。然后,流解析器140可以通过确定是否在预期位置发现独特的比特模式的额外实例来验证假定的边界是正确的。一旦发现额外的实例,流解析器140可以假设假定的边界是正确的,并相应地将复制的数据流解析为协议130的各个数据帧。
如上所述,解释设备135可以向订阅设备发送数据帧。然后,订阅设备145可以利用帧解析器150A-150C(统称150)从数据帧中提取语义含义,或感兴趣的具体值。帧解析器150可以包括基于仪器使用的特定协议描述数据在数据帧中如何组织的逻辑。例如,帧解析器150可以识别数据帧中哪些比特包含仪器的哪些操作数据。在一些实施例中,帧解析器150可以包括几个协议的逻辑,允许帧解析器150从各种实验室仪器获得可用的数据。
订阅设备145A-145C可以包括从仪器105收集信息的客户端设备。这样的设备可以是移动设备、台式机、服务器或类似设备,可以位于实验室内或不同的地点。订户设备可以出于各种原因利用这些数据。例如,订阅设备可以分析数据帧,以识别仪器105的操作数据,如利用率和运行时间的度量或标志。然后,这些操作数据可以由资源分配应用使用,以计划和安排仪器的使用。在另一个示例中,订购设备可以使用操作数据来识别使用模式,并为仪器安排低功率时间(例如,关闭或将仪器置于睡眠模式),以节省设备的功耗和相关联的环境功率使用(例如,冷却、照明、通风系统等)。
在某些情况下,运行状态(例如,准备、武装、运行等)信息可以由仪器监测系统100收集。然后可以确定利用率,或在每个运行状态下的时间百分比。其他数据也可以被收集或确定,如总离子色谱图(TIC),由仪器测量的每个离子谱的总和,以及腔室电流,许多仪器参数之一,可以被设置并监测与设定点的偏差。
图1B是利用代理服务器152的仪器监测系统100的实施例的图。图1B与图1A相似,主要区别是解释设备135直接处于从仪器105到控制设备110的通信路径中。因此,没有必要使用镜像设备,因为解释设备135可以利用代理服务器152直接接收进出仪器和控制设备的分组。
如图所示,仪器105和控制设备110通过网络115连接。网络115包括连接仪器105和控制设备110的解释设备135。例如,解释设备135可以包含以太网端口或其他用于连接到仪器和控制设备的通信端口。解释设备135可以将仪器105和控制设备110通信耦合。在一些实施例中,解释设备135包括代理服务器152,该服务器从仪器接收分组并将其发送到控制设备,反之亦然。
在一些实施例中,代理服务器152是服务器应用、电路或设备,其作为中间设备,用于来自从提供这些资源或指令的服务器或其他计算设备(例如,控制设备110)寻求资源或指令的客户端的请求。在请求服务时,代理服务器可以代表客户端发挥作用。客户端不是直接连接到可以满足所请求的资源的服务器,例如文件或网页,而是将请求指向代理服务器,代理服务器评估请求并执行所需的网络交易。使用代理服务器可以简化或控制请求的复杂性,或提供额外的好处,如负载平衡、隐私或安全。
由于代理服务器152调解仪器105和控制设备110之间的连接,它可以确保整个数据流被复制,包括初始部分,免除了对图2-5描述的算法的需要。然而,如果选择优先考虑数据流127的吞吐量,那么在重负载时段期间,代理服务器可以选择丢弃数据流副本132的一部分。在这种情况下,流解析器140可以使用图2-5所述的算法来识别协议130的数据帧。解释设备135可以包括流解析器140,用于将数据流解析为各个帧。流解析器140可以类似于图1A中描述地起作用。流解析器140可以使用图2-5中描述的算法的实施例来识别复制的数据流中协议130的各个数据帧。通过搜索数据流中独特的比特模式,流解析器可以识别协议130的数据帧的潜在边界。然后,流解析器140可以通过确定是否在预期位置发现独特的比特模式的额外实例来验证假定的边界是正确的。一旦发现额外的实例,流解析器140可以假设假定的边界是正确的,并相应地将复制的数据流解析为协议130的各个数据帧。流解析器140可以将数据帧发送到订阅设备145A-145B。
订阅设备145A-145C可以包括从仪器105收集信息的客户端设备。这种设备可以是移动设备、台式机、服务器或类似设备,可以位于实验室内或不同的地点。订阅设备可以出于各种原因利用这些数据。例如,订阅设备可以分析数据帧,以识别仪器105的数据或元数据(例如,操作数据),如利用率和运行时间。然后,这些操作数据可以由资源分配应用使用,以计划和安排仪器的使用。在另一个示例中,订购设备可以使用操作数据来识别使用模式,并为仪器安排低功率时间(例如,关闭或将仪器置于睡眠模式),以节省设备的功耗和相关联的环境功率使用(例如,冷却、照明、通风系统等)。
虽然上面已经将仪器监测系统100描述为具有某些组件,但这些组件可以在各种实施例中组合或分离。例如,帧解析器150可以并入解释设备135,以便由解释设备解码或分析所识别的帧内的数据。然后,解释设备135可以从数据中生成报告,并将报告发送给订阅设备。在另一个示例中,流解析器140的功能可以与代理服务器152结合,或者镜像设备120与解释设备135结合。
在其他实施例中,组件可以被分离成多个物理设备。例如,代理服务器152可以是与解释设备135分开的设备。在另一个示例中,帧解析器150也可以与订阅设备145分开。在如何将仪器监测系统100的组件实现为单独或组合的物理电子设备方面,可以有许多变化。
图2A-2F示出了根据某些实施例的正在进行成帧过程的数据流205的抽样搜索。为了说明目的,显示了对应于示例应用层协议的示例帧格式,具有特定的字段集和序列。该成帧过程也可以与使用其他成帧格式的其他协议一起工作。例如,其他协议可以有额外的字段和/或不同顺序的字段。此外,数据流205可以通过一个或多个额外的封装协议发送。例如,可以为使用TCP/IP协议传输的应用级协议执行成帧过程。成帧过程可以由例如图1A-1B中所示的仪器监测系统的实施例来执行。
虽然以下实施例有时用术语“字节”来描述帧,但可以使用任何数量的比特,而且不一定限于8比特的字节。例如,独特的比特模式可以小于8比特或不被8整除的数字(例如,4、5、6、7、12、15、23比特等)。此外,虽然数据流205被显示为连续流,但在互联网/传输层面(例如,TCP/IP),可能会使用额外的标头或封装。例如,数据流205可以通过多个IP帧的数据部分进行传输。然而,为了简单起见,图2A-2F省略了用于网络堆栈较低层(例如,链路层、互联网层、传输层等)的封装。
从图2A开始,数据流205被仪器监测系统100搜索,以寻找可以识别特定帧的独特的比特模式。例如,该独特的比特模式可以对应于表示在帧的标头部分定义的特定消息类型的比特模式。在其他情况下,独特的比特模式可以对应于标头中的不同字段,甚至可以在帧的数据部分找到。在一些实施例中,独特的比特模式的大小为2-4字节。也可以使用更大或更小的比特模式。在图2B,发现与独特的比特模式相匹配的比特模式210。
在图2C,对应于消息长度215字段的比特的位置是基于其与比特模式210各自的位置确定的。假定的标头216也可以基于比特模式210来识别。在这个示例场景中,消息长度215被显示在紧挨着比特模式210的前面,标头包括消息长度215字段和比特模式210字段。然而,根据协议,标头可能包含包括其他信息的额外字段。另外,基于所使用的特定协议,消息长度215的位置可以在相对于标头的不同位置。例如,消息长度215可以在比特模式210之后和/或不直接与比特模式210相邻。只要协议是已知的,消息长度215相对于比特模式210的位置就可以确定。
通过读取消息长度215字段中的比特,仪器监测系统100可以确定假定帧的假定消息长度。然后可以确定该帧的数据部分的末尾。例如,将消息长度215加到假定标头216的末尾应该指向数据部分217的末尾。通常,在大多数协议中,消息长度215的末尾对应于帧的末尾。然而,只要协议是已知的,就可以基于其相对于数据部分的位置来找到帧的末尾。例如,如果在特定协议的帧的数据部分之后发现了X个字节,那么可以通过将X个字节加到数据部分217的末尾来找到该帧的末尾。
在图2D,消息长度215被用来确定帧的数据部分的结束位置。在此示例场景中,数据部分在比特模式210之后开始,通过将消息长度加到比特模式210的末尾来找到数据部分的末尾。例如,假设消息长度为10个字节,比特模式210在字节编号30处结束,消息220的末尾被确定为在字节编号40(30+10)。然而,在其他场景中,基于所使用的特定协议,数据部分可能是在比特模式210之后的一些偏移数量的字节。只要协议是已知的,数据部分的末尾可以基于数据部分相对于比特模式210的已知起始位置来确定。
随着第一帧的标头部分和数据部分被识别,假定的第一帧225的限制现在是已知的。它是假定的帧,直到通过基于第一帧的位置在预期位置找到额外的帧来获得额外的验证。虽然被搜索的比特模式是独特的,但它不一定在帧头的特定位置上唯一找到。例如,该比特模式可以在作为较大消息的一部分的帧的数据部分找到。
在图2E,基于比特模式230的下一个实例预期出现在数据流中的位置计算偏移。例如,如果协议在帧的开始部分有比特模式,那么偏移应该是0,因为比特模式230应该紧接着出现在假定的第一个之后。如果在含有比特模式230的字段(如消息类型字段)之前,协议标头中包含其他字段,那么偏移将是正数,等于含有比特模式230的字段之前的字节数。将偏移加到假定的第一帧的末尾应该可以得到下一个假定的比特模式227的位置。然后,仪器监测系统100可以检查是否在假定的位置实际发现了比特模式230。
在图2F,比特模式230与独特的比特模式相匹配,导致仪器监测系统100假定第二帧245的边界。例如,假定的第二标头237的边界可以计算其与比特模式230的相对位置,如上所述。第二帧的消息长度235字段也可以基于相对于比特模式230的位置来确定。然后可以基于消息长度235和其相对于比特模式230的位置来确定消息240的边界,如上所述。然后,该过程可以像前面描述的那样重复,通过计算偏移和查看下一个比特模式250的预期位置247来找到下一个比特模式250。
上述场景已经假设了假想的协议所使用的特定布局。正如将是明显的,上述过程可以被修改以适用于各种协议。大多数协议都有固定的部分(例如,标头)和可变的部分(例如,消息)。由于标头是固定的,一旦定位标头的已知字段,标头的边界就可以基于它与已知字段的相对位置来计算。标头还应该包含可变部分的长度。通过将可变长度加到可变部分的起始位置(通常在标头之后找到),可以确定整个帧的边界。因此,只要协议是已知的,并且找到已知的字段,就可以识别帧的边界。
图3A-3B示出了根据某些实施例的未能在数据流305中的预期位置找到独特的比特模式的抽样搜索。图3A示出了与图2E类似的场景,其中假定的第N帧325已被识别,仪器监测系统100正在检查比特模式330的下一个实例是否在预期位置327。图3B示出了在预期位置327中没有发现比特模式330。这可能是预期的,因为不是每个数据帧都可能包含区分的比特模式,尽管未来的数据帧可能。因此,线程继续正常工作,对第N+1个数据帧成帧,并在第N+2个位置搜索预期的比特模式。
在一个实施例中,主线程在给定的位置找到比特模式310。随后,仪器监测系统100可以创建成帧线程,该线程遵循图2A-3B中描述的算法,尽管成帧线程的其他实施例可以只执行该算法的一部分。成帧线程以基于比特模式310的位置的第一成帧假设继续搜索数据流305,检查是否可以在第一成帧假设预测的下一个预期位置找到独特的比特模式。主线程继续在数据流中搜索基于第一成帧假设的比特模式。如果主线程在与第一线程的预期位置327不同的给定位置上发现第二比特模式332,则主线程启动第二成帧线程,该线程开始使用相对于第一成帧线程的替代成帧定位或假设搜索数据流305,如图4A-4B所示。
通过用替代成帧假设搜索数据流305,第二成帧线程测试数据流被成帧的另一种可能方式。然后,第一成帧线程和第二成帧线程可以继续搜索,直到其中一个线程在预期位置发现超过特定阈值的独特的比特模式的数量。达到阈值的成帧线程可以被推定为正确找到了数据流305中帧的边界。
图4A-4B示出了根据某些实施例的由第二成帧线程使用交替成帧的抽样搜索。图4A示出了第二线程测试数据流305的第二成帧假设,使用比特模式332的位置来确定其他比特模式的预期位置。如上所述,如果协议是已知的,仪器监测系统100可以基于与比特模式332的相对位置来识别帧的标头部分和消息部分。
图4B示出了第二线程基于其与比特模式332的相对位置识别消息长度335字段。然后,消息长度335可被用来识别帧的消息340部分。随着帧的标头部分和消息部分已知,假定的第一帧345的边界被发现。然后通过搜索独特的比特模式的佐证实例来测试这个关于数据流305如何成帧的成帧假设。通过在第一线程和第二线程中测试不同的成帧假设,仪器监测系统100增加了可以找到正确成帧边界的机会。可以生成额外的线程,为发现的任何或所有意外的比特模式测试额外的成帧假设。
然后,第二成帧线程可以继续使用基于假定的第一帧345的边界的替代成帧边界来搜索数据流305。例如,在类似于图2E-2F中描述的过程中,第二线程可以基于从第一帧345的结束边界的偏移,在预期位置搜索随后的比特模式。在一些实施例中,第二线程向后以及向前搜索数据流305,以寻找比特模式的实例。
图5A示出了根据某些实施例的流程图,说明了用于数据流成帧的示例过程500。该过程可由仪器监测系统100或其组件之一执行,例如镜像设备120或解释设备135。仪器监测系统100可以包括处理逻辑,其中包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器上运行的指令以执行硬件模拟)、固件、或其组合。在一个实施例中,该过程500由主线程执行,该主线程创建一个或多个成帧线程。然而,其他实施例可以利用单个线程,或者可以使用多个线程,而没有指定的主线程。
在块505,仪器监测系统100接收数据流的副本,该数据流在仪器和控制设备之间发送。该仪器和控制设备可以在实验室或其他用于测试产品和/或物质的设施中。该数据流可以被镜像设备拦截,或者被仪器监测系统的代理服务器152接收。
在块510,仪器监测系统100搜索并识别独特的比特模式的实例,如图2A中所述。优选地,独特的比特模式被选择用于搜索,因为它相当频繁地出现在数据流中的预期位置,但在其他位置相对不那么频繁。例如,独特的比特模式可能是特定的信息类型号码,出现在信息标头中,通常由仪器发送,但相对来说不太可能出现在信息正文中。这样,就有足够的可以在数据流中找到的样本,以相对快速地验证成帧假设,而不会出现大量的错误开始。
在一些实施例中,仪器监测系统100包括协议和相应的独特的比特模式的表或其他数据结构。根据在数据流中发现的协议,从表中选择适当的独特的比特模式。在一些实施例中,可以通过分析各种协议的捕获物并识别出现在帧中的设定位置和适当频率的比特模式来识别独特的比特模式。
在块515,仪器监测系统100确定是否在意外位置发现了一个或多个比特模式。如果是,过程500继续到块520。如果不是,则过程500继续到块525。在没有在意外位置发现比特模式的场景下,主线程可以不创建额外的线程,而是充当数据流的成帧线程。例如,主线程可以执行图5B中描述的成帧线程过程550的一个或多个步骤。
在块520,当在意外的位置发现比特模式时,仪器监测系统100可选地创建具有替代成帧假设的新线程。例如,主线程可以创建一个或多个成帧线程来测试一个或多个成帧假设。图3A-3B和图4A-4C示出了创建新线程的示例场景。创建新线程允许并行地测试不同的成帧假设,加快测试成帧假设的过程500。在某些情况下,可能会在意外位置发现多个比特模式,并为在意外位置发现的比特模式的每个实例创建新线程。然而,创建新线程并不是强制性的。例如,不同的成帧假设可以只用一个线程来串行测试。
在块525,仪器监测系统100继续对数据流的其余部分进行成帧。在一个实施例中,成帧如图2A-2F中描述的那样进行,用比特模式的第一实例来寻找第一帧和下一个后续帧的边界。
在块530,仪器监测系统100可以继续回到块520,以搜索比特模式的额外实例。否则,如果整个数据流被处理,则过程500可以结束。
图5B示出了说明用于从起始比特模式继续成帧过程的示例过程550的流程图。在一些实施例中,该过程550由图5A中描述的主线程创建的一个或多个成帧线程(运行在仪器监测系统100上)执行,特别是在块520中,以测试各种成帧假设。该过程可以由仪器监测系统100或其组件之一执行,例如镜像设备120或解释设备135。仪器监测系统100可以包括处理逻辑,其包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器上运行的指令以执行硬件模拟)、固件、或其组合。为了便于解释,下文将过程550描述为由成帧线程执行,该线程可以在仪器监测系统100或其组件之一上运行。然而,该过程550并不限于仅由成帧线程执行。例如,主线程可以执行部分或全部步骤。
在块555,成帧线程接收数据流的副本。在一个实施例中,数据流是部分副本,从在意外位置发现的比特模式的实例开始,如图5A的块520中所述。接收副本可以涉及接收数据流的完整副本或接收指向正在由主线程处理的数据流的相同副本的指针,而不是单独的副本。
在块560,成帧线程基于其与比特模式的实例或最后识别的帧的边界的相对位置识别与消息长度字段对应的比特。图2B描述了一个示例场景。独特的比特模式可包括表示消息中数据类型的字段。例如,比特模式可以是0x00000065,在一个协议中表示数据帧封装了仪器测量的光谱。在某些场景中,可能会有巧合出现的独特的比特模式的实例,例如,被包括在消息中而不是标头的一部分。然而,仪器监测系统100可以尝试多种成帧假设,直到找到正确的假设。正确的成帧假设由随后最常出现在预期位置的独特的比特模式来表示。然后,不正确的成帧假设可以被消除,以支持正确的成帧假设。
在块565,成帧线程基于消息长度识别假定数据帧的末尾。图2D示出了一个示例场景。
在块570,成帧线程检查是否已经达到了数据流的末尾。如果是,则进程550结束。如果否,进程550继续到块575。
在块575,成帧线程预测比特模式的下一个实例的位置。图2E示出了一个示例场景。如图2E所讨论的,可以计算偏移并将其添加到先前识别的假定数据帧的末尾,以确定比特模式的预期位置。
在块580,成帧线程检查是否在预期位置发现了比特模式。如果在预期位置没有发现比特模式,则过程550返回到块560。如果在预期位置发现了比特模式,则过程550继续到块585。
在一些场景中,不包含比特模式的额外帧可能位于具有比特模式的最后一帧和具有比特模式的下一帧之间。例如,假设独特的比特模式是消息类型,在实例之间发现的帧可能是不同的消息类型,它们没有与独特的比特模式相匹配的消息类型。这些帧的边界可以通过找到相对于最后一个假定帧的末尾的消息长度字段来识别。如果协议是已知的,那么标头布局也是已知的,消息长度字段可以在标头中找到。然后,该过程可以通过使用消息长度来识别帧的数据部分,从而识别当前帧边界。然后,可以检查下一帧的独特的比特模式。仪器监测系统100可以根据当前的成帧假设继续对数据流进行成帧,直到发现独特的比特模式的实例。
在块585,成帧线程增加已发现的预测比特模式的计数。在预期位置找到比特模式表明被测试的成帧假设可能是正确的。在预期位置发现的比特模式的数量越多,正确性的可能性就越大。
在块590,成帧线程检查是否已经达到计数阈值。计数阈值对应于要找到的比特模式的期望数量。如果达到计数阈值,过程550继续到块595。如果没有达到阈值,该过程返回到块560。取决于实施方案,如果计数等于并大于或仅当大于阈值时,可以达到计数阈值。在其他实施方案中,阈值计数器可以从对应于要找到的所需比特模式数量的设定数字开始,并被递减,直到达到目标数字(例如,零)。
在一些实施例中,计数阈值是4-8的数字。然而,计数阈值可以是更多或更少,这取决于各种因素。例如,如果独特的比特模式相对罕见,那么发现的少量比特模式就足以表明成帧假设是正确的。在一种场景中,数据流包括数百个帧,独特的比特模式出现在1-5%的帧中。显而易见,其他实施方案可以使用更常见或更不常见的独特的比特模式。挑选相对罕见的比特模式可以减少误报的数量,因为比特模式不太可能出现在预期的标头字段之外。然而,挑选非常罕见的比特模式可以增加数据流中需要捕获的帧的数量,然后才能得出成帧分析的结论。
在块595,达到计数阈值,成帧线程将假定数据帧识别为实际数据帧。达到计数阈值表明成帧假设可能是正确的。然后将数据流中识别的帧提供给订阅设备或程序。然后,在识别了可能正确的成帧假设后,成帧过程550可以结束。然后,仪器监测系统100可以继续用识别的成帧假设对数据流的其余部分进行成帧。
回到块560,如果没有达到计数阈值或在意外位置发现比特模式,则成帧线程根据当前成帧假设预测比特模式的下一个实例的位置。例如,成帧线程可以使用最后识别的帧的边界来识别下一个帧的消息长度字段。然后过程550进行到块565并重复上述过程。
图6示出了根据某些实施例的流程图,说明了用于并行测试成帧假设的示例过程600。该过程可以由仪器监测系统100或其组件之一执行,例如镜像设备120或解释设备135。仪器监测系统100可以包括处理逻辑,其中包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器上运行的指令以执行硬件模拟)、固件、或其组合。在下面的示例场景中,过程600利用多个线程并行检查多个成帧假设。这些线程可以是分配给不同CPU核心的物理线程,也可以是虚拟线程。例如,一个物理线程可以运行多个虚拟线程,并保持不同虚拟线程的数据(例如阈值计数)和映射。
在块605,仪器监测系统100启动用于寻找初始比特模式的主线程,该初始比特模式被用于启动成帧线程,该成帧线程将测试数据流的不同成帧假设,如图4中所讨论的。
在块610,主线程确定是否发现独特的比特模式的第一实例。如果发现了第一比特模式,过程600继续到块615,其中该第一比特模式的位置被第一成帧线程用来寻找第一帧的边界。同时,主线程继续到块630,随后基于第一帧的边界找到并处理附加帧。在处理数据流时,主线程搜索独特的比特模式的额外实例,以确认主要成帧假设是否正确。
在块630,主线程发现比特模式的未预测实例,即在第一成帧线程所不期望的位置上的比特模式的实例。如果在未预测位置发现比特模式的额外实例,则主线程启动额外的线程以测试由比特模式的实例的位置所代表的替代成帧假设,如块635和655所示。例如,假设在未预测位置发现了第N个比特模式,则在块655的主线程以第N个交替成帧假设启动第N个线程。
然而,如果在未预测位置没有发现比特模式的实例,并且到达流的末尾,则主线程结束。
如上所述,主线程创建单独的线程来测试第一成帧假设。然后,主线程随后从一个或多个创建的成帧线程收集结果,并识别最佳成帧假设。然而,其他实施方案可以让主线程测试第一成帧假设本身,并且只创建额外的线程来测试替代成帧假设。例如,在未预测位置没有发现比特模式的情况下,该过程600可以由单个主线程完成。
回到块615,仪器监测系统100基于第一发现的比特模式(“BP#1”)的位置以第一成帧假设启动第一成帧线程。利用BP#1的位置,仪器监测系统100识别假定帧的标头位置和数据部分。然后,第一成帧线程继续基于假定帧寻找数据流中的其他帧。仪器监测系统100基于第一成帧假设,在预期位置搜索比特模式的额外实例。
在块620,第一成帧线程基于在预期位置发现的比特模式的数量确定是否达到计数阈值。如果达到计数阈值,则过程600继续到块625,并且仪器监测系统100将来自第一成帧线程的假定数据帧识别为实际数据帧。由于第一假设发现了足够的比特模式的实例来证实第一成帧假设,过程600可以继续到块670。否则,如果在块620没有达到计数阈值,并且达到数据流的末尾,则线程结束。
在块670,仪器监测系统100也可以结束任何可能已经启动的其他线程。由于这些线程未能达到所需的计数阈值,由这些线程测试的替代成帧假设可能是不正确的。然而,在一些实施例中,其他线程继续进行,并对线程的结果进行比较,以识别最可能正确的成帧假设。例如,可以选择在预期位置发现的具有最高计数的独特的比特模式的线程作为正确的成帧假设。
回到块630,如果仪器监测系统100的主线程在未预测位置发现独特的比特模式的第二实例,则其进行到块635并启动第二成帧线程。如果在未预测位置没有发现比特模式,主线程继续处理数据流。
在块635,仪器监测系统100基于在未预测位置中发现的比特模式(“BP#2”)的位置以第二成帧假设启动第二成帧线程。利用BP#2的位置,第二成帧线程识别假定帧的标头位置和数据部分。然后,第二成帧线程继续基于假定帧寻找数据流中的其他帧。仪器监测系统100基于第二成帧假设在预期位置搜索比特模式的额外实例。
在块640,第二成帧线程基于在预期位置发现的比特模式的数量确定是否达到计数阈值。如果达到计数阈值,则过程600继续到块645,并且仪器监测系统100将来自第二成帧线程的假定数据帧识别为实际数据帧。由于第二成帧线程发现了足够的比特模式实例来证实第二成帧假设,过程600可以继续到块670。否则,如果在块640没有达到计数阈值,并且达到数据流的末尾,则第二成帧线程结束。
回到块650,如果仪器监测系统100的主线程发现独特的比特模式的第N个实例,则继续进行到块655并启动第N个成帧线程。如果在未预测位置没有发现比特模式,主线程继续处理数据流,直到达到数据流的末尾,此时主线程结束。
在块655,仪器监测系统100基于在未预测位置发现的比特模式(“BP#N”)的位置,以第N个替代成帧假设(“第N个成帧假设”)启动第N个成帧线程。利用BP#N的位置,第N个成帧线程识别假定帧的标头位置和数据部分。然后,第N个成帧线程继续基于假定帧在数据流中寻找其他帧。仪器监测系统100基于第N个成帧假设,在预期位置搜索比特模式的额外实例。
在块660,第N个成帧线程基于在预期位置发现的比特模式的数量确定是否达到计数阈值。如果达到计数阈值,则过程600进行到块665,并且仪器监测系统100将来自第N个成帧线程的假定数据帧识别为实际数据帧。由于第N个成帧线程发现了足够的比特模式实例来证实第N个成帧假设,过程600可以继续进行到块670。否则,如果在块620没有达到计数阈值,并且达到数据流的末尾,则第N个成帧线程结束。
上面已经描述了使用主线程、第一成帧线程、第二成帧线程和第N成帧线程的过程。为方便起见,上面使用“N”来指代可变的、正数的线程。基于独特的比特模式的实例数量和它们的位置,在过程600中可以产生任何数量的线程。例如,如果没有发现比特模式的未预测实例,那么只生成主线程。如果在未预测位置发现比特模式的两个或三个实例,那么就会生成两个或三个成帧线程。在未预测位置发现的比特模式实例越多,就会产生更多的线程来测试出额外的成帧假设。
图7是根据一个或多个实施例的计算设备700的图。仪器监测系统100可以由一个或多个计算设备700形成。例如,仪器105、控制设备110、镜像设备120、解释设备135和/或订阅设备145a-145c可以是计算设备700。计算设备700可以执行可使计算设备700执行本文讨论的方法(例如,操作、方法、功能等)中的任何一个或多个的指令,可以执行。
计算设备700可以是实验室仪器、移动电话、智能电话、机架式服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、笔记本电脑、平板电脑、台式计算机、网络附加存储(NAS)设备、网络交换机、机器等,在这些机器内可以执行一组指令,用于使机器执行本文讨论的任何一个或多个方法学。机器也可以是任何能够执行一组指令(顺序或其他)的机器/设备,这些指令指定了该机器/设备要采取的行动。在替代实施方案中,机器可以与LAN、内联网、外联网或互联网中的其他机器连接(例如,联网)。该机器可以在客户端-服务器网络环境中以服务器机器的身份运行。此外,虽然只说明了单个机器,但术语“机器”也应包括单独或联合执行一组(或多组)指令的任何机器集合,以执行本文讨论的任何一项或多项功能、操作、方法、算法等。例如,仪器监测系统100可以包括几个机器集体工作以执行上述的成帧功能。
示例计算设备700包括处理设备(例如,处理器、控制器、中央处理单元(CPU)等)702、主存储器704(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)如同步DRAM(SDRAM))、网络访问接口706、直接访问接口709、输出设备710、输入设备712和数据存储设备716,它们通过总线730相互通信。计算设备700还可以包括专门的硬件(未显示),用于量化和分析物质和产品的物理和生物特性,以及在分子和细胞水平上查看样品。
处理设备702代表一个或多个通用处理设备,如微处理器、中央处理单元等。更特别的是,处理设备702可以是复杂指令集计算(CISC)微处理器、简化指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其他指令集的处理器或实施指令集组合的处理器。处理设备702也可以是一个或多个特殊用途的处理设备,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备702被配置为执行存储模块/应用指令735(例如,图1中示出的存储模块126、存储模块136和/或存储应用111的指令),以执行本文讨论的操作和步骤。
计算设备700可以包括网络访问接口706(例如,网络接口卡、Wi-Fi接口等),其可以与网络(例如,图1中说明的网络170)通信。计算设备还可以包括直接访问接口709(例如,通用串行总线(USB)接口、外部SATA(eSATA)接口、雷电接口等)。计算设备700还可以包括输出设备710(例如,液晶显示器(LCD)或阴极射线管(CRT)),以及输入设备712(例如,鼠标、键盘等)。在一个实施例中,输出设备710和输入设备712可以组合单一的组件或设备(例如,LCD触摸屏)。
数据存储设备716可以包括计算机可读存储介质726,其上存储有体现本文所述方法或功能中的任何一个或多个的一个或多个指令集(例如,存储模块/应用指令735)。存储模块/应用指令735在由计算设备700执行期间也可以完全或至少部分地驻留在主存储器704内和/或处理设备702内。主存储器704和处理设备702也可以构成计算机可读介质。指令可以进一步通过网络访问接口706和/或直接访问接口709来发送或接收。
虽然计算机可读存储介质726在示例性实施例中显示为单一介质,但术语“计算机可读存储介质”应被理解为包括单一介质或多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器),其存储一个或多个指令集。术语“计算机可读存储介质”也应被视为包括任何能够存储、编码或携带指令集供机器执行并使机器执行本公开的任何一个或多个方法学的介质。术语“计算机可读存储介质”应相应地视为包括但不限于固态存储器、光学介质和磁性介质。
本领域的技术人员将理解,在一些实施例中,可以实施其他类型的监测系统,同时保持在本公开的范围内。此外,本文讨论的过程中采取的实际步骤可能与图中描述或显示的步骤不同。根据实施例,上述的某些步骤可以被删除,其他步骤可以被添加。
虽然已经描述了某些实施例,但这些实施例只是以举例的方式提出,而不是为了限制保护范围。事实上,本文所述的新颖方法和系统可以以各种其他形式体现。此外,可以对本文所述的方法和系统的形式进行各种省略、替换和改变。所附的权利要求书及其等同物旨在涵盖落入保护范围和精神内的此类形式或修改。例如,图中说明的各种组件可以作为软件和/或固件在处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或专用硬件上实现。另外,上面公开的具体实施例的特征和属性可以以不同的方式组合,形成额外的实施例,所有这些都落入本公开的范围内。尽管本公开提供了某些优选的实施例和应用,但对于本领域的普通技术人员来说明显的其他实施例(包括不提供本文所述的所有特征和优点的实施例)也在本公开的范围内。因此,本公开的范围旨在仅通过参考所附的权利要求来定义。
这里使用“示例”或“示例性”词语意图作为示例、实例或说明。此处描述为“示例”或“示例性”的任何方面或设计不一定被解释为比其他方面或设计更优选或更有利。相反,使用“示例”或“示例性”词语的目的是以具体的方式呈现概念。如在本申请中,术语“或”旨在意指包括性“或”,而不是排除性“或”。也就是说,除非另有规定,或从上下文中可以看出,“X包括A或B”旨在意指任何一种自然的包容性排列组合。也就是说,如果X包括A;X包括B;或者X同时包括A和B,那么在上述任何情况下,“X包括A或B”都被满足。此外,在本申请和所附权利要求中使用的冠词“一”和“一个”通常应被理解为意指“一个或多个”,除非另有规定或从上下文中明确指出是指单数形式。此外,自始至终使用术语“实施例”或“一个实施例”或“实施方案”或“一个实施方案”并不旨在意指相同的实施例或实施方案,除非如此描述。此外,本文所使用的术语“第一”、“第二”、“第三”、“第四”等是作为区分不同元素的标签,不一定根据其数字名称具有顺序的意义。
以上描述的所有过程都可以体现在由一台或多台通用或专用计算机或处理器执行的软件代码模块中,并通过这些代码模块实现完全自动化。代码模块可以存储在任何类型的计算机可读介质(例如,非暂时性计算机可读介质)或其他计算机存储设备或存储设备的集合上。部分或全部的方法可以替代性地体现在专门的计算机硬件中。
- 一种水质监测仪器及水质在线监测系统
- 水质在线监测仪器的远程监控装置及水质在线监测系统