体验共享单车后对于Locman技术实现的几点思考

2017-03-03  本文已影响307人  一根聪

原创 2017-02-28

关键点:

  • 共享单车体验
  • 摩拜单车技术实现的思考
  • ofo单车技术实现的思考
  • Locman现阶段技术实现分析
  • 对于Locman后期实现的一点小思考

自2015年Uber、Airbnb火热起来之后给O2O创业带了一个新的名词 共享经济(所谓的共享经济模式就是通过一个平台化的互联网工具,把社会上具有相同属性的闲散资源整合到一起,以更加高效的方式满足市场的供给),在国内就出现了一大批如滴滴、易到用车、神州专车等基于共享模式号称解决人们打车难的平台出现,统治了打车这个行业,但在人们“最后一公里”出行方面还是面临了难题。世界就是这么奇妙,哪里有需求哪里就会有解决方案,在2016年中相继出现了摩拜单车、ofo单车、小蓝单车等方便出行的“原始交通工具”,在一开始出来之后,作为屌丝的我为了不给 299、99 元的押金,并没有想过会使用它们,然而一次出行让我不得不使用上它,后来竟然喜欢上了。下面就来说说我使用到的共享单车以及体验感受:

摩拜单车

第一次使用上宣称 触手可骑 的摩拜单车是在2017年2月6日,由于出行需要开通并使用了摩拜单车。

ofo单车

第一次使用ofo单车是在2017年2月10日,骑行了摩拜单车后感觉坐垫不能调节,骑行比较费力,当时也没有在周边找到摩拜单车,就开通了宣称 随时随地有车骑(ANYTIME ANYWHERE) 骑行体验比较好的ofo单车。

以上就是我在使用了共享单车的一些直观感受,但是作为一个Coder我比较关注的是摩拜单车整个用车流程的体验,以下就是我参考网络大牛,以及自己的一些感受揣测的摩拜单车开锁、关锁的技术实现(因为与现在的工作遇到的问题以及解决办法相似),如果有不合理的地方欢迎指正,联系我的邮箱

摩拜单车的开锁、关锁技术实现思考

作为一个Coder,在现阶段项目中遇到很多问题,发现与摩拜单车实现技术类似,但是未做到与摩拜单车一样的体验。在体验了摩拜单车以及参考了各位网络大神对于摩拜单车通信的讲解,也有一点自己的体会,现只对摩拜通信记录如下(关于硬件方面如何设计及工作此处省略1000......字):

摩拜单车通信示意图

摩拜整个通信中,有三个比较关键节点

上述图示,可以看出,这三者之间存在两两相互通信:单车与手机终端、手机终端与服务器、单车与服务器,再这三者之间相互通信,技术最为难实现也最重要的一环是单车与服务器之间的通信。

摩拜整个通信流程

ofo单车开锁、关锁技术实现

相较于摩拜单车,ofo在实现开锁、关锁功能上,并没有用到任何复杂的技术,虽然也存在单车、手机终端、服务器这三个关键节点。从下图图示可以看出,ofo单车也存在单车与手机终端、手机终端与服务器之间通信,只比摩拜少了一个单车与服务器端的通信。在ofo中单车与手机终端通信也可以弱化,虽然存在扫码开锁,其实单车与手机终端是没有任何实质通信。


ofo单车通信模型

现阶段Locman技术实现分析

前后已经开发过两个版本的Locman软件(存在N多个定制版本,应该在后续考虑引入模块化组件化开发):一个是Locman2.0,另一个是现阶段的哑资源管理平台;对于这两个版本不作软件硬件实现以及工作流程不做任何评价,这里我只是谈一谈我在做了这两个版本之后的整个开锁关锁流程 (仅代表个人理解)。
   现阶段Locman与摩拜单车实现流程非常类似也是存在三个非常重要的节点+人工操作:

Locman通信模型

从上图可以看出,Locman平台开锁、关锁通信方式与摩拜基本是一致的,也是存在:硬件设备与服务器、硬件设备与手机终端、手机终端与服务器之间的两两通信,但是在实现上存在许多不同(与业务场景相关),比较重要的一点是我们的硬件设备必须手动激活,加入了应急开锁功能。

Locman开锁流程

蓝牙开锁方式 远程开锁方式

为什么现阶段我们开锁存在人工操作

这里与摩拜存在很大的区别,由于我们的设备是需要长时间保持电量(无充电来源),所以我们的设备并没有通过TCP/IP与服务器端保持长连接,并且设备在使用后会自动进入关机状态,如果在无人工参与时设备只会固定一个周期上报状态信息。

对体验共享单车后Locman后期的一点思考

以下问题只是个人的一些思考,如存在不合理或者不全面欢迎指正,请联系我的公司邮箱,谢谢!

在现阶段设备开锁情况只需要读取到我们的设备信息并且具有开锁权限的用户都可以开锁。权限已由服务器自动判断,现在主要的就是设备信息问题,我们可以通过在设备上加入具有设备信息的二维码标签即可。后续的开锁流程:一种是就可直接参照现阶段远程开锁流程操作;另一种是结合上一个问题已讨论的蓝牙进行开锁。

关于Locman离线开锁功能,在完成2.0版本之后就有了这个想法。在外施工的工作人员会遇到网络信号不好,这种情况应该是比较常见的,这不仅仅是只包含我们手机终端设备信号,也包括我们硬件设备在很多时候请求了远程开锁并不能够成功的开启。
   在现阶段实现流程中加入离线开锁功能是不现实的,首先我们设备是需要手动激活,然后通过服务器发送开锁命令才能够完成开锁流程。但是如果结合上述 Locman可以不使用激活钥匙激活设备吗?
能够新增蓝牙开锁。大致流程如下:
   施工人员在处于有网络状态下,下载离线设备数据,并且根据用户权限获取开锁命令(命令可以是:根据用户权限生成的一次性命令、永久命令),在用户处于网络不好的情况,通过蓝牙连接发送获取设备信息并且得到信息与离线存储口令进行匹配,匹配成功后再通过蓝牙直接发送开锁命令直接开启设备。

我觉得答案是肯定的,参照 Locman可以增加离线开锁功能吗? 用户可以直接选择预先下载对应设备的开锁命令(这里的命令与离线命令需要区分开来)进行预约,在用户预约之后冻结该设备(冻结时长或者其他参考因素)为其他人操作。后续操作方式与上述 Locman可以增加离线开锁功能吗? 相同。

最后这些想法是否合理还有待验证,在这里感谢我的同事邓xx(就不写全名了)对我在Locman整个开锁流程上的梳理与帮助。

上一篇下一篇

猜你喜欢

热点阅读