使用Google Cloud Platform进行资产跟踪-阿里云开发者社区

开发者社区> 物联网IoT996> 正文

使用Google Cloud Platform进行资产跟踪

简介: 高价值资产往往会被放错地方或被盗。我们回顾了Leverege如何使用GCP创建一个使用物联网设备的资产跟踪解决方案。
+关注继续查看

09.19.18-Indoor-Asset-Tracking-Video-Follow-Up-1068x656-1.jpg

资产跟踪是物联网解决方案的常见用例。当一家公司拥有的高价值资产可能会被错放或被盗时,给它们安装相对低价值的物联网设备来跟踪它们的一举一动才有意义。在本文中,我们将回顾一个假设的物联网问题,以及我们Leverege将如何使用GCP来创建解决方案。


问题


想象一个虚构的自行车租赁公司,名为Pedal Power,位于美国Ocean City风景如画的海滩社区。在过去,Pedal Power的老板Gary曾要求他的客户将驾照留在他的boardwalk出租屋,以确保他们会带着他的昂贵的自行车回来。大多数人都会准时归还自行车,并支付租车费用,没有发生任何意外,但是加里被几次从未归还的租客烧毁的事实确实使他的底线有所降低。此外,大洋城镇已决定在木板路的尽头建立一个无自行车区,并且只要有一位顾客在无自行车区被发现,就会对加里处以罚款。加里(Gary)警告客户有关这项新法律,但是有些人仍然进入禁止自行车区域,等到他收到邮件罚款时,这些客户早已不在了。


解决方案


硬件


加里受够了现状,他来到Leverege寻求帮助。在与Leverege的协商中,Gary考虑了几种可以在他的自行车上安装GPS跟踪设备的模型。基于易于安装和网络可用性,加里决定为他所有的自行车配备一个电池供电的可充电跟踪器,使用蜂窝通信。


摄取ingestion


把加里的追踪器数据输入GCP的第一步是摄取(ingestion)。Leverege编写了一个运行在GCP的Kubernetes引擎上的摄取服务器,这是一个非常可扩展且经济高效的计算基础设施,它将允许Gary只支付他所需的计算能力,但允许他扩展到一个非常大的设备消息量,以准备有一天他的业务进入其它地区或国家。


摄取服务将仅侦听通过标准HTTP REST接口传入的设备消息,并确保仅列入白名单的设备能够处理其数据。然后,设备消息将被解压缩并放置在默认队列中,以便使用Google Pub Sub处理。Pub Sub是一个消息队列服务,可以处理大量消息,并且具有容错能力。如果Leverege为处理和存储消息而创建的部分云服务暂时不可用,则消息将保留在队列中,并且不会丢失。Pub Sub还允许多个服务响应放置在单个队列中的事件,这在消息路由方面非常重要。


消息路由


物联网系统中的每种设备类型可能都有单独的数据路由需求。想象一下一个带有单独报告温度和压力传感器的系统,该传感器正在监视某些工业过程。我们可能想存储两种设备类型的数据,但是温度数据可能有压力传感器没有的特殊布线需求。 也许我们需要检查来自温度传感器的每个读数的值,以确保其不超过某个特定阈值,如果是,则触发警报。我们将要路由该设备类型的数据,以将过程与压力传感器的数据分开。因此,我们为每种设备类型创建预定义的消息路由,该消息路由包括Pub Sub主题的名称以及需要与数据一起传递的所有选项。消息路由可以并行或串行运行。


对于加里的自行车租赁店,我们目前只有一种设备类型,因此该系统的所有数据将遵循一条路线。


存储


此时,显而易见的事情是存储我们的数据。我们希望有一种可靠、快速的方法来存储加里的所有最新数据,以便在地图上轻松查看他所有未偿租金的自行车位置。为此,我们选择Google的Firebase数据库,它是一个简单但功能强大的键值存储,而且存储速度很快。在任何给定时间,加里设备的最新状态都将存储在Firebase中,使我们可以实时查看他的自行车位置。Firebase的收听功能(listening capabilities)还使我们能够在Gary的一辆自行车改变位置的第二秒内获得即时更新。


此外,我们希望获得有关Gary的每台设备的数据的长期历史视图,以便我们可以随时查看他的每辆自行车在哪里的跟踪记录。为此,我们使用Google的Big Query,这是一个基于SQL的大数据平台。借助Big Query,我们可以存储来自Gary的传感器的多年数据,并在几秒钟内进行查询。


我们创建了两个简单的数据写入服务,将它们添加到Kubernetes Engine中,并将Gary的所有数据路由到两个服务中,以便在它们到达时进行写入。


进一步的处理


至此,我们已经提取并存储了传感器数据。通过在网络应用程序上进行更多的工作,我们可以将所有东西存储在适当的位置,以在地图上存储和查看Gary的所有自行车,并在任何给定时间准确知道它们的位置。这太棒了。但现在是租车旺季,加里正忙着租自行车。他不想把所有的时间都花在盯着地图屏幕上,希望他的顾客没有骑车进入禁止骑车区,或者带着他的设备潜逃。


为了解决这些问题,我们会将Gary的数据路由到第三种来源,即Google Cloud Functions。Cloud Functions是一种简单、可扩展的功能,可作为服务解决方案。它们将允许Gary仅为当前规模下的几个函数调用支付费用,但却保留了从数千台设备大规模调用数百万个并行函数的可能性。Cloud Functions可以通过简单的HTTP请求触发,或者在这种情况下,可以收听Pub Sub主题。


Leverege的工程师与加里(Gary)一起在地图上开发“地理范围”或可以通过其经纬度边界识别的区域。他们在城镇的禁止骑行区域周围创建了一个地理围栏,并在自行车小屋周围20英里的范围内创建了第二个地理围栏。他们还编写了一个Cloud Function(云功能),该功能可检查每条设备的消息,以查看设备的位置是否落在非自行车区域内或20英里范围外,并立即发送Gary文本和电子邮件警报,以便他采取适当和及时的行动。另外,加里(Gary)选择了一种可以测量和传输速度的设备,因此他还会收到有关自行车以特定速度行驶的警报(可能是因为它们已被放置在车内并被拉走了)。


总结


通过使用谷歌云平台,Leverege能够创建一个坚固的、可伸缩的解决方案来满足Gary的需求。由于该解决方案在GCP上运行,它自动获得所有谷歌的最新安全性和性能更新,并具有良好的正常运行时间。加里现在可以确信,当他的一位顾客走进“禁止骑车区”时,他将不再需要支付账单。一旦他怀疑自己的一辆自行车失踪了,他就可以通知当地政府。


他已经开始考虑进行硬件升级,这将使他可以在接近关闭时间时向所有自行车发送音频消息。他还与Leverege合作,开发了一种使用Google Cloud AutoML的机器学习算法,以根据客户的骑车行为模式来估算客户租自行车的时间。这将帮助Gary有效地确定库存中需要多少辆自行车,并将其估算提供给正在等待自行车的客户。


原文链接

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring JDBCTemplate使用JNDI数据源
xml配置: 1 3 4 5 6 7 在weblogic/jboss中配置好JNDI数据源后,上述节点改为: 1 2 3 j...
883 0
细说一下RedisTemplate的使用方法(六)
今天我们学习RedisTemplate中的getExpire(K key)、getExpire(K key, TimeUnit timeUnit)、move三个方法。
15 0
使用 Google Analytics 跟踪 JavaScript 错误
  Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语言环境支持。
664 0
一步步在SAP Cloud Platform上创建HANA实例并使用
一步步在SAP Cloud Platform上创建HANA实例并使用
7 0
使用Google Cloud Platform进行资产跟踪
高价值资产往往会被放错地方或被盗。我们回顾了Leverege如何使用GCP创建一个使用物联网设备的资产跟踪解决方案。
176 0
Google App Engine使用简介
引用:http://www.williamlong.info/archives/1880.html Google App Engine是Google提供的基于Google数据中心的开发、托管网络应用程序的平台,每个 Google App Engine 应用程序都可使用500MB存储空间,以及可支持每月约500万页面浏览量的CPU和宽带。
768 0
293
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载