HK1261273A1 - 对来自联网型分配机的遥测数据进行并行和可伸缩处理的系统及方法 - Google Patents
对来自联网型分配机的遥测数据进行并行和可伸缩处理的系统及方法 Download PDFInfo
- Publication number
- HK1261273A1 HK1261273A1 HK19121170.5A HK19121170A HK1261273A1 HK 1261273 A1 HK1261273 A1 HK 1261273A1 HK 19121170 A HK19121170 A HK 19121170A HK 1261273 A1 HK1261273 A1 HK 1261273A1
- Authority
- HK
- Hong Kong
- Prior art keywords
- web service
- message
- telemetry data
- queues
- administrator
- Prior art date
Links
Description
技术领域
所描述的实施方案一般涉及联网型机器,包括联网型分配机。
背景技术
饮料分配器用于在各种地点向消费者分配饮料,诸如餐厅、自助餐厅、剧院以及其他娱乐和/或餐饮服务场所。传统的饮料分配器提供有限数量的可分配的饮料类型(例如,介于六和十之间),并且不提供高级功能。较新的饮料分配器可提供大量的饮料类型与组合,这在很大程度上是由于这些分配器不再机械地只限于每个分配标头提供一种或两种饮料类型。例如,较新的饮料分配器可使用单个分配标头来提供多达1000种不同的饮料类型与组合。
组合是指所提供的饮料类型的混合物,所述饮料类型可自动混合并从单个分配标头分配,其代表由较新的饮料分配器提供的一项高级功能。所分配的组合可以是,例如,由消费者在饮料分配器处选择的所提供的饮料类型的个人组合,或者消费者在饮料分配器处从可选购的多种预定组合中挑选的一种。
随着所提供的饮料选择数量及其他创新功能愈发复杂,场所所有者和/或操作者可需要通过计算机网络将高级饮料分配器连接到管理员系统,以允许高级饮料分配器向管理员系统提供遥测数据。遥测数据可包括,例如,在高级饮料分配器处收集的与消费相关的数据(例如,在高级饮料分配器处消费的每种饮料类型和组合的数量)和状态(例如,高级饮料分配器处的当前成分量和/或贮备量)。管理员系统可使用遥测数据来改进例如与运行高级饮料分配器相关联的操作、维护和/或总体物流。
此外,出于相同的原因,还需要将其他类型的分配机(诸如分配罐装/瓶装饮料、零食和/或其他商品的机器)通过计算机网络连接到管理员系统。这些分配机通常被称为自动售货机。
附图说明
在本文中结合并形成为说明书的一部分的附图示出了本公开,与说明书一起进一步用来解释本公开的原理,使本领域技术人员能够实现和使用本公开。
图1是根据本公开的实施方案的饮料分配器的前透视图。
图2是根据本公开的实施方案的饮料分配器的框图。
图3是根据本公开的实施方案的用于通过计算机网络提供遥测数据的系统。
图4是根据本公开的实施方案的用于通过计算机网络安全地提供遥测数据的系统。
图5是根据本公开的实施方案的用于通过计算机网络将包含遥测数据的web服务请求消息收集起来并安全地传输至管理员控制器的方法的流程图。
图6是根据本公开的实施方案的用于通过计算机网络生成心跳消息并将其传输到管理员控制器的方法的流程图。
图7是根据本公开的实施方案的用于安全地接收和处理来自分配器控制器的包含遥测数据的web服务消息的方法的流程图。
图8示出了根据本公开的实施方案的用于对包含遥测数据的消息进行并行和可伸缩处理的管理员控制器。
图9示出了根据本公开的实施方案的用于接收和处理来自分配机的web服务消息的方法的流程图。
图10是可用于实施本公开各方面的示例性计算机系统的框图。
将结合附图描述本公开。元件首次出现的附图通常由相应附图标号中最左边的数字来表示。
具体实施方式
现在将结合如附图所示的本公开的实施方案来详细描述本公开。所提及的“一个实施方案”、“实施方案”、“示例性实施方案”等指示所述的实施方案可包括特定功能、结构或特性,但是每个实施方案可能不一定包括特定的功能、结构或特性。而且,此类短语不一定是指相同的实施方案。另外,在结合实施方案描述特定特征、结构或特性时,无论本文是否明确描述,认为本领域的技术人员能够结合其他实施方案来实现特征、结构或特性中。
1.概述
为允许分配机通过计算机网络向管理员系统提供遥测数据,管理员系统可将web服务暴露给分配机。Web服务是一种能够使用互联网技术在客户端和服务器之间通过计算机网络交换消息的消息传递框架,诸如超文本传输协议(HTTP)、可扩展标记语言(XML)和JavaScript对象表示法(JSON)。一般来讲,交换两种类型的消息:请求消息和响应消息。客户端通过计算机网络向暴露web服务的服务器发送请求消息。请求消息对参数和请求进行编码,以运用参数在服务器执行操作(或运行子程序)。在运用参数执行操作之后,主机可通过计算机网络向客户端返回带有操作结果的响应消息。
Web服务具有分层架构,并且从最低至最高,通常包括至少网络层、传输层和包装层。网络层指定web服务的最基本的通信需求,诸如应该如何通过计算机网络寻址、传输和路由数据。传输层负责启用在网络层之上的应用间通信,并且包括,例如,诸如HTTP之类的技术。包装层指定在由传输层通过网络传输之前待装入的格式数据。简单对象访问协议(SOAP)和表现层状态转换(REST)是两种最常见的包装格式。SOAP定义用于构造上述请求消息和响应消息的基于XML的信封。REST可使用多种机器可读格式作为用于构造请求消息和响应消息的信封,包括XML和JSON。
Web服务架构的各层并不专门解决安全问题,诸如消息完整性、认证、授权和机密性。因此,暴露向分配机提供通过计算机网络对管理员系统的访问的web服务可不合需要地向该计算机网络的其他未授权用户和设备提供对管理员系统和web服务消息的访问。
本公开涉及用于通过计算机网络经由暴露的web服务向管理员系统安全地提供分配机的遥测数据的系统和方法。为保护暴露的web服务,本公开的系统和方法在分配机和管理员系统处提供安全网关,其可提供消息完整性、认证、授权和机密性中的一者或多者。安全网关与创建请求消息和响应消息的应用分别在分配机和管理员系统处分开实施。因为安全网关与创建请求消息和响应消息的应用分开实施,所以可以创建及修改创建请求消息和响应消息的应用而无需考虑消息安全性,消息安全性可由安全网关透明地处理。
本公开还涉及用于对包含管理员系统处的遥测数据的web服务消息进行并行和可伸缩处理的系统和方法。管理员系统可以在短时间内从许多分配机接收包含遥测数据的大量web服务消息。为接收并处理这些web服务消息,本公开的系统和方法提供消息排队器以将web服务消息(或者至少web服务消息中的遥测数据)排入多个队列中,并为多个队列中的每个队列提供不同的线程或进程(“线程”)。每个线程可以按照其存储在所分配的队列中的顺序将web服务消息从其所分配的队列中拉出,并且处理web服务消息的遥测数据。线程可以在管理员系统处的一个或多个中央处理单元(CPU)内核上运行。该设置允许在web服务消息处理吞吐量方面进行水平伸缩。例如,为提高web服务消息处理吞吐量,可增加CPU内核的数量和/或可增加队列的数量(以及相应地,分配给队列的线程的数量)。
用于对包含管理员系统处的遥测数据的web服务消息进行并行和可伸缩处理的系统和方法还可确保web服务消息按照其在各自的分配机处生成的顺序进行处理。这样非常有用,例如,可确保未基于旧的遥测数据做出与分配机的维护和操作相关的决策。
为提供这样有序的web服务消息处理功能,消息排队器可基于从其接收web服务消息的分配机将包含遥测数据的web服务消息放进多个队列中的一个队列中。例如,消息排队器可使用包括在web服务消息中的分配机标识符将web服务消息映射到多个队列中的特定一个队列,使得来自分配机的web服务消息被置于同一队列中。此外,一旦消息排队器确定了要置于web服务消息的多个队列中的特定一个队列,消息排队器就可基于web服务消息在分配机生成的时间将web服务消息插入到该队列的特定位置。例如,消息排队器可使用包含在web服务消息中的web服务消息序列号或时间戳来将特定位置的web服务消息插入队列中,使得队列中的web服务消息按照web服务消息的生成顺序存储。
在进一步描述本公开的这些功能和其他功能之前,以下部分提供了可在其中操作本公开的实施方案的示例性操作环境。
2.示例性操作环境
图1示出了可在其中实施本公开的实施方案的分配器100。分配器100可包括基座102,该基座联接到主体108。基座102可用于将主体108支撑在直立位置。基座102可包括滴盘104,该滴盘具有位于由滴盘104占据的区域内的分配位置106。用户(例如,消费者)可将他或她的杯子放置在分配位置106处以接收他或她期望的饮料。
主体108可包括用于接收来自用户的命令的用户界面110。用户界面110可包括显示屏112,该显示屏被配置为向用户显示信息并且/或者接收来自用户的命令。显示屏112可以是触摸屏,诸如液晶显示器(LCD)触摸屏或发光二极管(LED)触摸屏。用户可以例如通过与用户界面110交互以选择将由分配器100分配的他或她期望的饮料来发起饮料的分配。
图2示出了根据本公开的实施方案的分配器诸如图1中的分配器100的组件的框图200。框图200可包括分配歧管210,诸如于2016年2月5日提交的美国专利申请No.15/016,466中所描述的垂直分配歧管中的一者,所述专利申请全文以引用方式并入本文。
框图200可包括一个或多个基液源230。基液源230可以是但不限于自来水源(例如,自来水管道)和碳酸水源(例如,碳酸水贮存器或碳酸化器)。基液源230可经由基液输送管234联接到分配歧管210。与基液输送管234连通的阀/泵235可被配置为控制基液通过基液输送管234并进入分配歧管210的流动。
框图200可包括一个或多个成分源240。成分源240可包括多种成分242(242-1至242-n)。成分242可包括液体成分,诸如但不限于甜味剂(例如,糖或人造甜味剂)、糖浆或风味剂(例如,可乐糖浆或风味剂、品牌苏打糖浆或风味剂(例如,Mountain或Sierra)、橙子风味剂、酸橙风味剂、樱桃风味剂、茶风味剂等),或其他液体添加剂(例如,维生素、酸(例如,柠檬酸)、盐或着色剂)。成分242可包装在容器内,诸如但不限于盒或袋。每种成分242可经由成分输送管244输送至分配器210。与成分输送管244连通的阀/泵245可被配置为控制成分通过成分管244进入分配歧管210的流动。
分配器控制器220可被配置为控制和接收来自用户界面(诸如图1中的用户界面110)的命令。分配器控制器220可被配置为基于例如从用户界面接收的命令来控制由框图200表示的分配器的操作。例如,分配器控制器220可控制饮料类型或组合的分配,这两者都可以是来自分配歧管210的基液和一种或多种成分242的混合物。分配器控制器220可通过控制阀/泵235来控制来自基液源230的基液的流动。分配器控制器220还可以通过控制阀/泵245来控制来自成分源240的成分242的流动。通过控制阀/泵245,分配器控制器220可控制成分管244内的成分242的压力。
在一些实施方案中,分配器控制器220可包括和/或可被配置为读取传感器227。传感器227可包括压力传感器,该压力传感器用于监测基液输送管234内的基液的压力并且/或者用于监测成分输送管244内的成分的压力。传感器227还可包括流量传感器(例如,流量计),该流量传感器用于分别测量输送管234和244内的基液和成分的流量并且/或者用于测量分配歧管210内的均匀流动的程度。在一些实施方案中,传感器227可包括液位传感器,该液位传感器用于测量成分源240内剩余的每种成分242的量。
传感器227还可包括但不限于被配置为监测以下各项的传感器:(1)二氧化碳罐水平(例如,一个、两个或更多个二氧化碳调节器);(2)被配置为碳酸化水的碳酸化器的碳化标头压力;(3)储存基液和/或成分242的房间(例如,密室)的环境温度(从而监测一种或多种基液和/或成分242是否保持在预定温度水平或在预定温度范围之内);(4)与基液相关联的水过滤系统参数(例如,水压、过滤器上的压差);(5)与基液相关联的水或碳酸水的pH值;(6)装盛成分242中的一种的成分容器的失效日期(例如,通过读取与成分容器相关联的条形码)。传感器227可被配置为通过有线或无线网络传输信号至分配器控制器220。分配器控制器220可被配置为基于由传感器227收集的数据(例如,压力和流量值)控制由框图200表示的分配器的操作。
在一些实施方案中,分配器控制器220还可包括嵌入式计算机224。在一些实施方案中,嵌入式计算机224可收集分配器遥测数据,包括:(1)由分配歧管210分配的饮料类型和组合的量,(2)成分源240内剩余的成分242的量,(3)从分配机的用户界面收集的用户识别码,以及(4)来自上述传感器227的其他数据(例如,流数据、储存基液和/或成分242的房间的环境温度、二氧化碳罐水平、碳化标头压力、水过滤系统参数等)。在一些实施方案中,嵌入式计算机224可存储分配器遥测数据并通过计算机网络(诸如互联网)将分配器遥测数据发送至管理员系统的控制器。管理控制器可由框图200所表示的分配器的操作者提供和/或管理,或者可由框图200所表示的与分配器的操作相关联的一些其他实体提供和/或管理。
在一些实施方案中,可将所存储的遥测数据(例如,与由分配歧管210分配的饮料类型和组合的量相关的信息)的全部或部分定期发送给管理员控制器。在一些实施方案中,可基于与所存储的遥测数据相关联的警戒水平或阈值水平将所存储的遥测数据(例如,来自上述传感器227的其他数据)的全部或部分发送给管理员控制器。例如,当房间的环境温度超过在可接受温度范围之外或者几乎在可接受温度范围之外的某一预定阈值时,可将与储存基液和/或成分242的房间的环境温度相关的所存储的遥测数据发送给管理控制器。在另一示例中,当二氧化碳罐水平超过指示二氧化碳罐水平较低或者已空的某一预定阈值时,可将所存储的与二氧化碳罐水平相关的遥测数据发送给管理员控制器。
在一些实施方案中,管理员控制器可使用遥测数据帮助将成分分发到由框图200表示的分配器,并且/或者帮助维护由框图200表示的分配器。在一些实施方案中,管理员控制器可使用遥测数据追踪用户偏好和消费数据(例如,由歧管210分配的饮料类型和数量),分析其以预测消费趋势并且/或者支持涉及由框图200表示的分配器的未来商业决策。在其他实施方案中,管理员控制器可使用遥测数据改进分配机维护任务,提高消费者满意度,并且/或者预测分配机内的零件故障和/或安排分配机的预防性维护服务。
3.安全网关
为使分配机能够通过计算机网络向管理员系统的控制器提供遥测数据,管理员控制器可将web服务暴露给分配机。如上所述,web服务是一种能够使用互联网技术在客户端和服务器之间通过计算机网络交换消息的消息传递框架,诸如超文本传输协议(HTTP)、可扩展标记语言(XML)和JavaScript对象表示法(JSON)。一般交换两种类型的消息:请求消息和响应消息。客户端通过计算机网络向暴露web服务的服务器发送请求消息。请求消息对参数和请求进行编码,以运用参数在服务器执行操作(或运行子程序)。在运用参数执行操作之后,主机可通过计算机网络向客户端返回带有操作结果的响应消息。
图3示出了根据本公开的实施方案的用于使用暴露的web服务通过计算机网络提供遥测数据的系统300。系统300包括管理员控制器302以及上文中结合图2所述的分配器控制器220。分配器控制器220是作为示例而非限制提供的。如本领域的普通技术人员将理解的那样,在不脱离本公开的范围和精神的前提下,可在系统300中使用其他分配器控制器(例如,在不同的分配机中实施的分配器控制器)。
在操作中,管理员控制器302的web服务提供方(WS提供方)304暴露web服务,该web服务使得分配器控制器220的web服务客户端(WS客户端)306能够通过计算机网络308(诸如互联网)向管理员控制器302提供遥测数据。遥测数据可包括从上文中结合图2所述的传感器227收集的数据,以及从其他传感器和/或实施分配器控制器220的分配机的外围设备收集的其他数据。
WS客户端306可将遥测数据打包在web服务请求消息310中,该web服务请求消息根据简单对象访问协议(SOAP)、表现层状态转换(REST)或一些其他打包格式被格式化。Web服务请求消息310可包含信封312,该信封包含可选标头314和主体316。使用时,标头314可包括一个或多个信息块,该一个或多个信息块指定消息如何由一个或多个接收实体处理。主体316可包括作为一个或多个参数的遥测数据以及用一个或多个参数在WS提供方304处执行操作(或者运行子程序)的请求。遥测数据和执行操作的请求可以在主体316内以XML或JSON语法表达。执行操作的请求也可在主体316外部以任何数量的形式表达,包括作为统一资源标识符(URI)。
在WS客户端306将遥测数据和执行操作的请求打包到web服务请求消息310中之后,WS客户端306可通过计算机网络308传输web服务请求消息310。在一个实施方案中,WS客户端306使用超文本传输协议(HTTP)或超文本传输安全协议(HTTPS)通过计算机网络308传输web服务请求消息310。
WS提供方304通过计算机网络308从WS客户端306接收web服务请求消息310,并且解包web服务请求消息310以恢复一个或多个参数,该一个或多个参数包括遥测数据和用一个或多个参数执行操作的请求。WS提供方304随后用包括遥测数据的一个或多个参数执行操作,并且可选地,将操作结果打包到web服务响应消息318中。该操作可包括,例如,解析遥测数据并且用遥测数据的各种值填充数据库。数据库中的数据随后可用于协助将成分分发到分配机并且/或者协助维护分配机。在一些实施方案中,数据库中的数据可用于追踪用户偏好和消费数据(例如,由分配机分配的饮料类型和数量),分析其以预测消费趋势并且/或者支持涉及分配机的未来商业决策。在其他实施方案中,数据库中的数据可用于改进分配机维护任务,提高消费者满意度,并且/或者预测分配机内的零件故障和/或安排分配机的预防性维护服务。
与web服务请求消息310相似,WS提供方304可根据SOAP、REST或一些其他打包格式来格式化web服务响应消息318。Web服务响应消息318可包含信封320,该信封包含可选标头322和主体324。使用时,标头322可包括一个或多个信息块,该一个或多个信息块指定消息如何由一个或多个接收实体处理。主体324可包括操作结果。操作结果可以在主体324内以XML或JSON语法表达。
在WS提供方304将操作结果打包到web服务响应消息318中之后,WS提供方304可通过计算机网络308传输web服务响应消息318。在一个实施方案中,WS提供方304使用HTTP或HTTPS通过计算机网络308传输web服务响应消息318。
应当注意的是,除分配器控制器220之外的多个分配器和分配器控制器可将web服务请求消息传输至管理员控制器302。这些Web服务请求消息可类似于如上所述的Web服务请求消息310被处理,但可包括不同的数据(例如,除了遥测数据)和/或执行不同的操作或子程序的请求。
由WS提供方304暴露的web服务和一般的web服务存在一个问题,即web服务的分层架构不会专门解决安全问题,诸如消息完整性、认证、授权和机密性。因此,暴露向分配器控制器220及其他分配器控制器提供通过计算机网络308对管理员控制器302的访问的web服务可不合需要地向计算机网络308的其他未授权用户和设备提供对管理员控制器302、web服务请求消息310和web服务响应消息318的访问。
为保护暴露的web服务,可在分配器控制器220和管理员控制器302处提供安全网关,其可提供消息完整性、认证、授权和机密性中的一者或多者。安全网关可与创建请求消息和响应消息的应用分别在分配器控制器220和管理员控制器302处分开实施;即,与WS客户端306和WS提供方304分开。安全网关与WS客户端306和WS提供方304分开实施,因此可以创建及修改这些应用而无需考虑消息安全性,消息安全性可由安全网关透明地处理。
图4示出了根据本公开的实施方案的此类系统400。具体而言,系统400具有与上述图3中的系统300相同的基本配置并以与该系统相同的基本方式操作。然而,图4的系统400中的分配器控制器220和管理员控制器302各自还包括安全网关。更具体地,分配器控制器220还包括分配器web服务网关(分配器WS网关)402,并且管理员控制器302还包括管理员web服务网关(管理员WS网关)404。
在操作中,分配器WS网关402被配置为在web服务请求消息310通过计算机网络308传输至管理员控制器302之前拦截由分配器WS客户端306生成的web服务请求消息310。在一个实施方案中,WS网关402被实现为HTTP代理服务器,其被配置为在HTTP请求消息的主体中拦截包含web服务请求消息310的HTTP请求消息。
一旦分配器WS网关402拦截了web服务请求消息310,分配器WS网关402就可加密web服务请求消息310的主体316中的遥测数据(或其他数据)的全部或至少一部分,以生成数字签名。分配器WS网关402可将数字签名插入web服务请求消息316的标头314中。管理员控制器302可使用数字签名认证遥测数据(或者遥测数据和/或其他被签署数据的至少一部分);即,证明遥测数据来自分配器控制器220。
在一个实施方案中,分配器WS网关402可使用与分配器控制器220相关联的私钥加密web服务请求消息316的主体316中的遥测数据(或其他数据)的全部或至少一部分。与分配器控制器220相关联的私钥是包括私钥和公钥的非对称密钥对的一部分。公钥可由管理员控制器302公开或保密,而私钥由分配器控制器220保密且不可分发。管理员控制器302可使用与分配器控制器220相关联的公钥来验证(例如,通过解密)数字签名。如果验证成功,则管理员控制器302可确定与分配器控制器220相关联的私钥用于加密用于生成数字签名的遥测数据,因为用私钥加密的数据只能用公钥解密。
在另一个实施方案中,分配器WS网关402可使用与分配器控制器220相关联的私钥加密由遥测数据的单向散列产生的消息摘要,而不是直接加密遥测数据。单向散列可用于确保遥测数据的完整性并且/或者生成数字签名减少所需的处理时间。
一旦分配器WS网关402拦截了web服务请求消息306,则分配器WS网关402还可加密web服务请求消息310的主体316中的遥测数据(或其他数据)的全部或至少一部分,以确保遥测数据在穿越计算机网络308时的机密性。在加密遥测数据之后,分配器WS网关402可将加密的遥测数据重新插入web服务请求消息316的主体316中。
在一个实施方案中,分配器WS网关402可使用与管理员控制器302相关联的公钥加密web服务请求消息316的主体316中的遥测数据(或其他数据)的全部或至少一部分。同与分配器控制器220相关联的公钥一样,与管理员控制器302相关联的公钥是包括公钥和私钥的非对称密钥对的一部分。公钥是公开的且可自由分发,而私钥由管理员控制器302保密且不可分发。
在另一个实施方案中,分配器WS网关402可使用对称密钥加密web服务请求消息316的主体316中的遥测数据(或其他数据)的全部或至少一部分。分配器WS网关402可用与管理员控制器302相关联的公钥加密对称密钥,并将对称密钥插入web服务请求消息310的标头314或主体316中。
在分配器WS网关402已在主体316中插入数字签名并且/或者加密遥测数据之后,分配器WS网关402可使用例如HTTP或HTTPS通过计算机网络308传输web服务请求消息310。管理员WS网关404被配置为通过计算机网络308接收web服务请求消息310,并执行以下各项中的一者或多者:解密遥测数据,认证遥测数据,以及确定分配器控制器220是否被授权执行在web服务请求消息310中所请求的操作(或者所请求的子程序)。
如果使用与管理员控制器302相关联的公钥加密web服务请求消息310的主体316中的遥测数据(或其他数据),则管理员WS网关404可使用与管理员控制器302相关联的私钥来解密被加密的遥测数据。如果使用如上所述的对称密钥加密web服务请求消息310的主体316中的遥测数据(或其他数据),则管理员WS网关404可从web服务请求消息310的标头314或主体316获得对称密钥的加密副本,使用与管理员控制器302相关联的私钥解密对称密钥,然后使用被解密的对称密钥来解密被加密的遥测数据。一旦解密,管理员WS网关404就可用被解密的遥测数据替换web服务请求消息310中的加密的遥测数据。
如果要执行认证,管理员WS网关404可提取web服务请求消息310的标头314中的数字签名,并且使用与分配器控制器220相关联的公钥来解密数字签名。然后可将被签署以创建数字签名的遥测数据(或其他数据)与web服务请求消息310的主体316中的遥测数据进行比较,以认证遥测数据来自于分配器控制器220。在分配器WS网关402在web服务请求消息310的主体316中从遥测数据(或其他数据)的单向散列创建数字签名的情况下,管理员WS网关404可在将主体316中的遥测数据与解密的数字签名进行比较之前对主体316中的遥测数据执行相同的单向散列。
如果要执行授权,管理员WS网关404可确定分配器控制器220是否被授权使用在web服务请求消息310中所请求的web服务子程序。在一个实施方案中,管理员WS网关404可检查被授权执行web服务请求消息310中所请求的操作的分配器控制器和/或分配器的列表。如果分配器控制器220或实施分配器控制器220的分配器在列表上,则管理员WS网关404可将web服务请求消息310传递给管理员WS提供方304进行处理。另一方面,如果分配器控制器220或实施分配器控制器220的分配器不在列表上,则管理员WS网关404可丢弃web服务请求消息310,从而防止管理员WS提供方304处理web服务请求消息310。
在另一个实施方案中,如果要执行授权,则管理员WS网关404可基于已发布web服务的可配置列表来确定web服务是否已发布。如果不是,则可以拒绝并丢弃由分配机执行的未发布web服务的web服务调用。该机制保护任何未发布的web服务,并且可用于在任何时候出于任何原因停止Web服务。
在从管理员WS网关404接收web服务请求消息310(用解密的遥测数据替换主体316中的任何加密的遥测数据)之后,管理员控制器302可处理如上文中结合图3所述的web服务请求消息310。应当注意的是,管理员WS网关404和分配器WS网关402可各自执行如上所述的另一个网关的功能,以保护类似于web服务请求消息310的web服务响应消息318。
在一个实施方案中,并非由分配器控制器220发送的所有Web服务请求消息都需要由分配器WS网关402签名和/或加密。未由分配器WS网关402签名的和/或加密的这种消息可以说是“带外”发送的,而被签名的和/或被加密的消息可以说是“带内”发送的。
例如,“心跳”消息可由分配器WS客户端306或分配器WS网关402生成,并且由分配器WS网关402通过计算机网络308带外发送到管理员控制器302。可定期或循环发送这些心跳消息,以发信号通知管理员控制器302分配器控制器220(或者实施分配器控制器220的分配器)存在且可用。
现在参照图5,其示出了根据本公开的实施方案的用于收集遥测数据并通过计算机网络安全地将包含遥测数据的web服务请求消息从分配机传输至管理员控制器的方法的流程图500。流程图500的方法可由如上文所述、如图4所示的分配器WS客户端306和分配器WS网关402实施。然而,应当注意的是,该方法也可由其他分配器WS客户端和分配器WS网关实施。图5中标记了由这些应用的每一者执行的流程图500的步骤。还应当注意的是,流程图500的一些步骤不必以图5所示的顺序发生。
流程图500的方法始于步骤502。在步骤502,收集分配机的遥测数据。遥测数据可包括,例如,在分配机处收集的与消费相关的数据(例如,在分配机处消费的每种商品的数量)和状态(例如,分配机处的当前成分量、贮备量和/或商品量)。遥测数据还可包括上文参照图2所述的特定类型的数据。
在步骤502收集遥测数据之后,流程图500的方法前进至步骤504。在步骤504,将带有遥测数据以及以遥测数据为参数执行操作(或运行子程序)的请求的web服务请求消息发送到管理员控制器,诸如图4中的管理员控制器302。Web服务请求消息可根据SOAP、REST或一些其他打包格式来打包。Web服务请求消息可包含信封,该信封包含可选标头和主体。使用时,标头可包括一个或多个信息块,该一个或多个信息块指定消息如何由一个或多个接收实体处理。遥测和执行操作的请求可在主体内以XML或JSON语法表达。执行操作的请求也可在主体外部表达。
在步骤504之后,流程图500的方法前进至步骤506。在步骤506,在通过计算机网络诸如互联网将web服务请求消息发送到管理员控制器之前拦截web服务请求消息。HTTP代理可用于拦截web服务请求消息。
在步骤506之后,流程图500的方法前进至步骤508。在步骤508,通过加密遥测数据或加密遥测数据的单向散列,可选地签署所拦截的web服务请求消息中的遥测数据。可使用与分配机相关联的私钥来签署遥测数据或遥测数据的单向散列。可将所得的数字签名插入web服务请求消息的标头中。
在步骤508之后,流程图500的方法前进至步骤510。在步骤510,可选地加密web服务请求消息的主体中的遥测数据。可用与管理员控制器或对称密钥相关联的公钥加密遥测数据。如果使用对称密钥来加密遥测数据,则可使用与管理员控制器相关联的公钥加密对称密钥,并且可将对称密钥插入web服务请求消息的标头或主体中,以使管理员控制器能够解密被加密的遥测数据。
在步骤510之后,流程图500的方法前进至步骤512。在步骤512,通过计算机网络将web服务请求消息传输到管理员控制器。可使用HTTP或HTTPS通过计算机网络传输web服务请求消息。
现在参照图6,其示出了根据本公开的实施方案的用于生成心跳消息并通过计算机网络将心跳消息从分配器控制器传输至管理员控制器的方法的流程图600。流程图600的方法可由如上文所述、如图4所示的分配器WS客户端306或分配器WS网关402实施。然而,应当注意的是,该方法也可由其他分配器WS客户端或分配器WS网关实施。
流程图600的方法始于步骤602。在步骤602,生成心跳消息。心跳消息可包括分配器控制器和/或实施分配器控制器的分配机的标识符,诸如硬件标识符。
在步骤602之后,流程图600的方法前进至步骤604。在步骤604,通过计算机网络诸如互联网将心跳消息“带外”发送到管理员控制器。发送前,在应用层未签署和/或加密“带外”发送的消息。可定期或循环地生成并发送心跳消息,以发信号通知管理员控制器分配器控制器(或者实施分配器控制器的分配机)存在且可用。
现在参照图7,其示出了根据本公开的实施方案的用于安全地接收和处理包含遥测数据的web服务请求消息的方法的流程图700,该遥测数据来自管理员控制器处的分配器控制器。流程图700的方法可由如上文所述、如图4所示的管理员WS网关404和管理员WS提供方304实施。然而,应当注意的是,该方法也可由其他管理员WS网关和管理员WS提供方实施。图7中标记了由这些应用的每个应用执行的流程图700的步骤。还应当注意的是,流程图700的一些步骤不必以图7所示的顺序发生。
流程图700的方法始于步骤702。在步骤702,通过计算机网络诸如互联网从分配机接收web服务请求消息。
在步骤702之后,流程图700的方法前进至步骤704。在步骤704,检查消息以确定该消息是否为心跳消息。如果该消息是心跳消息,则流程图700的方法前进至步骤714,并且处理心跳消息。如果该消息不是心跳消息,则流程图700的方法前进至步骤706。
在步骤706,解密web服务请求消息的主体中的加密的遥测数据。可使用与管理员控制器相关联的私钥或者使用包含在web服务请求消息的标头或主体中的对称密钥来解密遥测数据。
在步骤706之后,流程图700的方法前进至步骤708。在步骤708,验证遥测数据的真实性。具体而言,使用与分配器控制器相关联的公钥来提取和解密web服务请求消息的标头中的数字签名。然后可将被签署以创建数字签名的遥测数据与web服务请求消息的主体中的遥测数据进行比较,以认证遥测数据来自分配器控制器。在从遥测数据的单向散列在web服务请求消息的主体中创建数字签名的情况下,可在将主体中的遥测数据与解密的数字签名进行比较之前对主体中的遥测数据执行相同的单向散列。如果基于比较确定遥测数据不真实(即,不匹配),则流程图700的方法前进至步骤710,在该步骤拒绝web服务请求消息。在另一方面,如果基于比较确定遥测数据真实(即,匹配),则流程图700的方法前进至步骤712。
在步骤712,确定分配器控制器是否被授权使用web服务来执行web服务请求消息中的操作(或子程序)。在一个实施方案中,检查被授权使用在web服务请求消息中所请求的web服务子程序的分配器控制器和/或分配器的列表。如果分配器控制器或者实施分配器控制器的分配器不在列表上,则流程图700的方法前进至步骤710,在此步骤拒绝web服务请求消息。在另一方面,如果分配器控制器或者实施分配器控制器的分配器在列表上,则流程图700的方法前进至步骤714,在此步骤处理web服务请求消息(例如,如上文结合图3所述)。
4.遥测数据的并行和可伸缩处理
鉴于可有数千甚至数十万或更多的分配机和/或其他类型的机器连接到如上所述的管理员系统,并且这些机器可全部同时向管理员系统发送遥测数据,因此管理员系统还需要能够接收并快速处理大量的web服务消息。此外,还需要为此类管理员系统提供当机器连接到该管理员系统或者从该管理员系统断开时能以有效的方式伸缩的吞吐量。
图8示出了根据本公开的实施方案的用于对包含遥测数据的消息进行并行和可伸缩处理的管理员控制器800。管理员控制器800具有与上述图4中的管理员控制器302相同的基本配置并且以与该管理员控制器相同的基本方式操作。然而,管理员控制器800还包括消息排队器802。应当注意的是,管理员WS网关404是管理员控制器800中的可选组件。
在操作中,包含来自分配机的遥测数据的web服务消息首先由上述管理员WS网关404接收和处理。在由管理员WS网关404处理之后,web服务消息被传递给消息排队器802。
消息排队器802包括映射器804和多个队列806。映射器804被配置为将每个web服务消息映射或放置到队列806的各自的一个队列中。队列806是用于将web服务消息存储在存储器中的数据结构。
为处理存储在队列806中的web服务消息,管理员WS提供方304包括多个线程或进程(“线程”)808。可将线程808中的不同的一个线程分配给每个队列806。每个线程808可以按照web服务消息存储在所分配的队列806中的顺序将web服务消息从其所分配的队列806中拉出,并且处理web服务消息的遥测数据。
线程808对遥测数据的处理可包括,例如,解析遥测数据并且用遥测数据的各种值填充数据库。数据库中的数据随后可用于协助将材料(例如,成分)分发到分配机并且/或者协助维护分配机。在一些实施方案中,数据库中的数据可用于追踪用户偏好和消费数据(例如,由分配机分配的饮料类型和数量),分析其以预测消费趋势并且/或者支持涉及分配机的未来商业决策。在其他实施方案中,数据库中的数据可用于改善分配机维护任务,提高消费者满意度,并且/或者预测分配机内的零件故障和/或安排分配机的预防性维护服务。
线程808可在管理员控制器810处的中央处理单元(CPU)内核810或虚拟核上运行。内核810可在一个或多个服务器中或者跨一个或多个服务器实施。基于内核810的数量,线程808中的至少一些可并行运行以提高处理web服务消息的吞吐量。为进一步提高消息处理吞吐量,可增加内核810的数量并且/或者可增加队列806的数量(以及相应地,分配给队列806的线程808的数量)。可相应于增加将web服务消息传输到管理员控制器800的分配机的数量来进行此类增加。
映射器804还可被配置为确保web服务消息按照其在各自的分配机处生成的顺序进行处理。这样非常有用,例如,可确保未基于旧的遥测数据或非按时间顺序排序的遥测数据而做出与分配机的维护和操作相关的决策。
为提供此类有序的消息处理功能,映射器804可基于从其接收消息的分配机将包含遥测数据的web服务消息放进队列806中的一个队列中。例如,映射器804可使用包含在web服务消息中的分配机标识符将web服务消息映射到队列806中的特定一个队列,使得来自分配机的消息被放置在相同的队列中,并因而由相同的线程808处理。
队列806的数量和线程808的数量通常远小于将web服务消息发送到管理员控制器800的分配机的数量。在这种情况下,映射器804可使用散列函数以将web服务消息映射到队列806中的特定一个队列。更具体地,映射器804可使用散列函数来散列包含在Web服务消息中的分配机标识符,并且使用所得的散列值将Web服务消息分配给队列806中的特定一个队列。
一旦映射器804确定了要置于web服务消息的队列806中的特定一个队列,则映射器804就可基于消息在分配机生成的时间将web服务消息插入到该队列的特定位置。例如,映射器804可使用包含在web服务消息中的消息序列号或时间戳来将特定位置的消息插入队列中,使得队列中的web服务消息按照消息的生成顺序存储。
现在参照图9,其示出了根据本公开的实施方案的用于接收和处理来自分配机的web服务消息的方法的流程图900。流程图900的方法可由如上文所述、如图8所示的管理员控制器800实施。然而,应当注意的是,该方法也可由其他管理员控制器实施。还应当注意的是,流程图900的一些步骤是可选的且不必以图9所示的顺序发生。
流程图900的方法始于步骤902。在步骤902,通过计算机网络诸如互联网从分配机接收web服务消息。
在步骤902之后,流程图900的方法前进至步骤904。在步骤904,执行web服务消息中的分配机标识符的散列。
在步骤904之后,流程图900的方法前进至步骤906。在步骤906,基于分配机标识符的散列的所得散列值来识别多个队列中的一个队列。因此每次为相同的分配机标识符产生相同的散列值,所以从分配器机接收的Web服务消息将会被放在相同的队列中。
在步骤906之后,流程图900的方法前进至步骤908。在步骤908,web服务消息被置于某个位置处所识别的队列中,该位置基于web服务消息在分配机生成的时间来确定。例如,包含在web服务消息中的消息序列号或时间戳可用于将特定位置的消息插入队列中,使得队列中的web服务消息按照消息在分配机处生成的顺序存储。
在步骤908之后,流程图900的方法前进至步骤910。在步骤910,使用被分配至存储web服务消息的队列的多个线程中的一个线程来处理web服务消息。
5.示例性计算机系统实现
对相关领域的技术人员来说显而易见的是,本文所述的本公开的各种元件和功能可使用模拟电路和/或数字电路在硬件中实现,可通过执行由一个或多个通用处理器或专用处理器发出的指令在软件中实现,或者组合硬件和软件实现。
为了完整起见,提供了对计算机系统的以下说明。本公开的实施方案可在硬件中实施,或者组合硬件和软件实施。因此,本公开的实施方案可在计算机系统或其他处理系统的环境下实施。图10示出了此类计算机系统1000的示例。图3、图4和图8所示的块可在一个或多个计算机系统1000上执行。此外,图5至图7和图9所示方法的每一个步骤都可在一个或多个计算机系统1000上执行。
计算机系统1000包括一个或多个处理器,诸如处理器1004。处理器1004可以是专用处理器或通用处理器。处理器1004连接到通信基础设施1002(例如,总线或网络)。依据该示例性计算机系统描述了各种软件实现。在阅读本说明书之后,如何使用其他计算机系统和/或计算机架构来实现本公开对于相关领域的技术人员而言将变得显而易见。
计算机系统1000还包括主存储器1006(存储,例如,实现(至少部分)图3、图4和图8所示的块和/或图5至图7和图9中的步骤的计算机程序或其他指令),优选随机存取存储器(RAM),并且还可包括辅助存储器1008。辅助存储器1008可包括例如硬盘驱动器1010和/或可移除存储驱动器1012,其表示软盘驱动器、磁带驱动器、光盘驱动器等。可移除存储驱动器1012以熟知的方式从可移除存储单元816读取并且/或者写入可移除存储单元。可移除存储单元1016表示软盘、磁带、光盘等,其可由可移除存储驱动器1012读取和写入。如相关领域的技术人员将理解的那样,可移除存储单元1016包括计算机可用存储介质,该计算机可用存储介质在其中存储有计算机软件和/或数据。
在可供选择的实现中,辅助存储器1008可包括用于允许计算机程序或其他指令(例如,实现(至少部分)图3、图4和图8所示的块和/或图5至图7和图9中的步骤的计算机程序或其他指令)加载到计算机系统1000中的其他相似装置。此类装置可包括,例如,可移除存储单元1018和接口1014。此类装置的示例可包括程序盒和盒接口(诸如存在于视频游戏设备中)、可移除存储器芯片(诸如EPROM或PROM)和相关联的插口、拇指驱动器和USB端口,以及其他允许软件和数据从可移除存储单元1018传输到计算机系统1000的可移除存储单元1018和接口1014。
计算机系统1000还可包括通信接口1020。通信接口1020允许软件(例如,用于实现图3、图4和图8所示的块和/或图5至图7和图9中的步骤的软件)和数据在计算机系统1000和外部设备之间传输。通信接口1020的示例可包括调制解调器、网络接口(诸如以太网卡)、通信端口、PCMCIA插槽和PCMCIA卡等。经由通信接口1020传输的软件和数据是以信号的形式,所述信号可是电子信号、电磁信号、光信号或者能够由通信接口1020接收的其他信号。经由通信路径1022将这些信号提供给通信接口820。通信路径1022携带信号,并且可使用电线或电缆、光纤、电话线、蜂窝电话链路、RF链路及其他通信信道来实现。
如本文中所使用的,术语“计算机程序介质”和“计算机可读介质”通常用于指代有形存储介质诸如可移除存储单元1016、可移除存储单元1018或者安装在硬盘驱动器1010中的硬盘。这些计算机程序产品是用于向计算机系统1000提供软件(例如,用于实现图3、图4和图8所示的块和/或图5至图7和图9中的步骤的软件)的装置。
计算机程序(也称为计算机控制逻辑)存储在主存储器1006和/或辅助存储器1008中。还可经由通信接口1020接收计算机程序。当被执行时,此类计算机程序使得计算机系统1000能够实现本文所讨论的本公开。具体而言,当被执行时,计算机程序使得处理器1004能够实现本公开的过程,诸如本文所述方法中的任何方法。因此,此类计算机程序表示计算机系统1000的控制器。在使用软件实现此公开的情况下,软件可存储在计算机程序产品中并且可使用可移除存储驱动器1012、接口1014或通信接口1020加载到计算机系统1000中。
在另一个实施方案中,此公开的功能主要在使用例如硬件组件诸如专用集成电路(ASIC)和门阵列的硬件中实现。实现硬件状态机以便执行本文所述的功能对于相关领域的技术人员而言也将是显而易见的。
6.结论
以上借助于阐释具体功能的实施及其关系的功能性构建块描述了实施方案。出于描述的方便,本文随意地限定这些功能性构建块的边界。只要能恰当地执行具体功能及其关系,也可限定其他边界。
对具体实施方案的以上描述将充分揭示本公开的一般性质,使得他人可通过应用本技术领域的知识在不脱离本公开总体构思的情况下容易地针对各种应用对这些具体实施方案进行修改和/或调整,而无需过度实验。因此,基于本文给出的教导和指导,这些调整和修改旨在落入所公开实施方案的等同物的含义和范围内。应当理解,本文的措辞或术语是出于描述而不是限制的目的,因而本说明书的术语或措辞应由本领域的技术人员按照所述教导和指导来解释。
Claims (20)
1.一种管理员控制器,包括:
消息排队器,包括:
多个队列,所述多个队列被配置为存储web服务消息,所述web服务消息通过计算机网络从分配机接收,其中所述多个队列的数量小于所述分配机的数量,和
映射器,所述映射器被配置为基于从其接收所述web服务消息的分配机来将通过所述计算机网络接收的所述web服务消息中的一个web服务消息置于所述多个队列中的一个队列;和
管理员web服务提供方,所述管理员web服务提供方被配置为将多个线程中不同的一个线程分配给所述多个队列中的每个队列以处理遥测数据,所述遥测数据包含在所述web服务消息中,所述web服务消息存储于所述多个消息队列中,其中所述多个线程被配置为在两个或更多个中央处理单元(CPU)内核上运行。
2.根据权利要求1所述的管理员控制器,其中所述映射器被配置为通过执行所述web服务消息中的分配机标识符的散列,基于从其接收所述web服务消息的所述分配机来将通过所述计算机网络接收的所述web服务消息置于所述多个队列中的所述一个队列中。
3.根据权利要求1所述的管理员控制器,其中所述分配机标识符的所述散列的散列值与所述多个队列中的所述一个队列相对应。
4.根据权利要求1所述的管理员控制器,其中所述映射器还被配置为基于所述web服务消息相对于由所述多个队列中的所述一个队列中的所述分配机生成的其他web服务消息在所述分配机生成的时间来将通过所述计算机网络接收的所述web服务消息置于所述多个队列中的所述一个队列中。
5.根据权利要求1所述的管理员控制器,其中所述多个线程被配置为通过将所述遥测数据置于数据库中来处理所述遥测数据,所述遥测数据包含在所述web服务消息中,所述web服务消息存储于所述多个消息队列中。
6.根据权利要求1所述的管理员控制器,其中所述多个线程被配置为处理所述遥测数据以协助将材料分发到所述分配机或者协助维护所述分配机,所述遥测数据包含在所述web服务消息中,所述web服务消息存储于所述多个消息队列中。
7.根据权利要求1所述的管理员控制器,其中所述分配机分配饮料。
8.根据权利要求1所述的管理员控制器,其中所述计算机网络为互联网。
9.一种方法,包括:
将通过计算机网络接收的web服务消息置于多个队列中的一个队列中,这基于从其接收所述web服务消息的分配机并且
基于所述web服务消息相对于由所述多个队列中的所述一个队列中的所述分配机生成的其他web服务消息在所述分配机生成的时间;以及
在所述分配器处,将多个线程中不同的一个线程分配给所述多个队列中的每个队列以处理遥测数据,所述遥测数据包含在所述多个消息队列中的web服务消息中,
其中所述多个线程被配置为在两个或更多个中央处理单元(CPU)内核上运行。
10.根据权利要求9所述的方法,其中基于从其接收所述web服务消息的所述分配机来将通过所述计算机网络接收的所述web服务消息置于所述多个队列中的所述一个队列中,包括:
执行所述web服务消息中的分配机标识符的散列。
11.根据权利要求9所述的方法,其中所述分配机标识符的所述散列的散列值与所述多个队列中的所述一个队列相对应。
12.根据权利要求9所述的方法,其中所述多个线程被配置为通过将所述遥测数据置于数据库中来处理所述遥测数据,所述遥测数据包含在所述多个消息队列中的所述web服务消息中。
13.根据权利要求9所述的方法,其中所述多个线程被配置为处理所述遥测数据以协助将材料分发到分配机或者协助维护所述分配机,所述遥测数据包含在所述多个消息队列中的所述web服务消息中。
14.根据权利要求9所述的方法,其中所述分配机分配饮料。
15.根据权利要求9所述的方法,其中所述计算机网络为互联网。
16.一种管理员控制器,包括:
消息排队器,包括:
多个队列,所述多个队列被配置为存储web服务消息,所述web服务消息通过计算机网络从分配机接收,和
映射器,所述映射器被配置为基于从其接收所述web服务消息的分配机并且基于所述web服务消息相对于由所述多个队列中的所述一个队列中的所述分配机生成的其他web服务消息在所述分配机生成的时间来将通过所述计算机网络接收的所述web服务消息中的一个web服务消息置于所述多个队列中的一个队列中;和
管理员web服务提供方,所述管理员web服务提供方被配置为将多个线程中不同的一个线程分配给所述多个队列中的每个队列以处理遥测数据,所述遥测数据包含在web服务消息中,所述web服务消息存储于所述多个消息队列中,其中所述多个线程被配置为在两个或更多个中央处理单元(CPU)内核上运行。
17.根据权利要求16所述的管理员控制器,其中所述映射器被配置为通过执行所述web服务消息中的分配机标识符的散列,基于从其接收所述web服务消息的所述分配机来将通过所述计算机网络接收的所述web服务消息置于所述多个队列中的所述一个队列中。
18.根据权利要求16所述的管理员控制器,其中所述分配机标识符的所述散列的散列值与所述多个队列中的所述一个队列相对应。
19.根据权利要求16所述的管理员控制器,其中所述多个线程被配置为通过将所述遥测数据置于数据库中来处理所述遥测数据,所述遥测数据包含在所述web服务消息中,所述web服务消息存储于所述多个消息队列中。
20.根据权利要求16所述的管理员控制器,其中所述多个线程被配置为处理所述遥测数据以协助将材料分发到所述分配机或者协助维护所述分配机,所述遥测数据包含在所述web服务消息中,所述web服务消息存储于所述多个消息队列中。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/165,932 | 2016-05-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1261273A1 true HK1261273A1 (zh) | 2019-12-27 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2022200986B2 (en) | Systems and methods for parallel and scalable processing of telemetry data from connected dispensing machines | |
| CN109155735B (zh) | 连接式分配机器的安全网关 | |
| CN101828207B (zh) | 饮料分配器 | |
| BRPI0816379B1 (pt) | Dispensador de produto e método para operar o mesmo | |
| CA3023862C (en) | Systems and methods for parallel and scalable processing of telemetry data from connected dispensing machines | |
| CA3023869C (en) | Secure gateways for connected dispensing machines | |
| HK1261273A1 (zh) | 对来自联网型分配机的遥测数据进行并行和可伸缩处理的系统及方法 | |
| HK1261558A1 (zh) | 连接式分配机器的安全网关 | |
| AU2016208413A1 (en) | Systems and methods for facilitating consumer-dispenser interactions | |
| HK1185054A (zh) | 飲料分配器 | |
| HK1148097B (zh) | 饮料分配器 |