写点什么

移动端 DNUN:危险通知和用户导航

2017 年 8 月 30 日

关键提要

  • 基于位置的服务(LBS)通过移动网络确定移动设备的地理位置,它具有多种用途,包括应用于社交网络。LBS 是使用位置数据来开发不同服务功能的一类常见的计算机程序。
  • 在紧急状况下查找某人的位置是具有挑战性的。另外,如果你忘记了你的车停在了停车场的什么位置,是很难确定它在停车场中的位置的。危险通知和用户导航(DNUN)移动程序可以让用户有效地对人或物体进行定位。
  • DNUN 应用程序可以让用户添加、删除或者更新联系人,如果发生紧急情况,用户可以通过应用了 geo-finder API 的 Google Maps 中来追踪联系人的位置。联系人也能追踪用户的路线和距离用于导航至该用户所在位置。Google Maps 的地理位置定位 API 还带来了另一个重要的功能,即寻找物品。这个功能可以存储一个物体(例如一辆汽车)的经纬度位置信息以备将来使用。
  • DNUN 可用于商业 LBS,包括在医院中对患者进行定位,在紧急情况下对士兵、警察以及消防员进行定位等。

这篇文章首次发表于 IEEE IT Professional 杂志。 IEEE IT Professional 是一本提供严谨科技资讯的杂志。企业总是在可靠性和灵活性上面临挑战,IT 经理和技术领导者依赖 IT 专家们来提供高超的解决方案。

地理定位是识别人或物体的地理位置的过程 1,2。基于位置的服务(LBS)通过移动网络确定移动设备的地理位置,它具有多种用途,包括应用于社交网络。LBS 是使用位置数据来开发不同服务功能的一类常见的计算机程序。

纵观历史,人类早就发明出了确定位置和导航的技术。“烟雾信号”是古中国、古希腊和美洲原住民长距离传递消息的方式,用于在广阔的沙漠中和穿越海洋的时候进行导航 3。早期的导航工具,例如罗盘和 kamal4,用于给行驶于小河流和穿越海洋的船只确定方向。然而,几个世纪以来,这些设备都是十分昂贵的,只有那些具备一定经济实力的人才能够使用。而如今,多种不同类型的技术让我们能够获得到位置信息,包括 GPS5、IP 寻址、全球移动通信系统(GSM)、码分多址(CDMA)、手机 ID6、Wi-Fi、蓝牙 MAC 地址 7,8 以及用户输入。

移动应用程序的数量和质量都在增长。例如,移动应用程序 Yelp 是早期的位置感知通讯技术。网络提供商,例如 T-Mobile、Verizon 以及 AT&T,都为其设备提供地理位置应用程序服务。除此之外,这些设备的操作系统(例如,iOS、Android、RIM 等)都能让软件的设计开发人员使用软件开发套件(SDK)来开发各种各样的应用程序。这使得 LBS 和 Foursquare、Yelp、Glympse 等等这些应用程序有着明显的进步。

然而,在紧急状况下查找某人的位置仍然是具有挑战性的。另外,如果你忘记了你的车停在了停车场的什么位置,是很难确定它在停车场中的位置的。危险通知和用户导航(DNUN)移动程序可以让用户有效地对人或物体进行定位。

方法论

DNUN 应用程序会打开一个登录界面,其中包括登录、注册新用户以及忘记密码等字段。一旦登陆之后,用户将被重定向至应用程序的主界面。为了实现更好的安全性,所有的紧急通知服务在 DNUN 主界面都可用。用户可以添加、删除或者更新联系人,如果发生紧急情况,用户可以通过应用了 geo-finder API 的 Google Maps 中来追踪联系人的位置。联系人也能追踪用户的路线和距离用于导航至该用户所在位置。Google Maps 的地理位置定位 API 还带来了另一个重要的功能,即寻找物品。这个功能可以存储一个物体(例如一辆汽车)的经纬度位置信息以备将来使用。

软件设计过程开始于分析阶段,并且结束于用于进一步开发的产品测试阶段。其设计过程会详细说明应用程序是如何与其环境和用户进行交互的。在架构设计阶段,应用程序的开发可能需要遵循特定的设计模型,包括数据流图(DFD)、模型 - 视图 - 控制器(MVC)以及 UML。

DFD,有时被称为气泡图,通过图形来表示。它展示了开发过程中的不同阶段,从数据输入阶段到不同处理元素的执行阶段,再到系统产生的数据输出阶段 10。为了对用户请求进行响应,DNUN 与存储用户数据(例如,联系人信息以及危险通知)的数据库进行关联。根据用户的请求,应用程序会与数据库进行通信。

UML 被软件设计师们所熟知:它用于对象建模、创建类图和其它图表。原生应用程序使用 Android 或 iOS 的 SDK 进行编码。移动 Web 程序可以通过 iOS 上的 Safari 或 Android 上的 Chrome 等浏览器进行访问。像 Apache Cordova11 这样的项目能够帮助构建应用程序,它能够使用编译成包装器(wrapper)的 Web 技术来构建应用程序,以此创建一个混合应用程序,例如 DNUN 应用程序。

移动应用程序也可以使用 Ruby on Rails12,13 进行开发,DNUN 和 PostgreSQL 数据库一起用于后端处理。Ruby on Rails 是一个使用 Ruby 进行编码的开源 Web 应用程序框架。它采用 MVC 模式来组织应用程序编程。Ruby 创建了包含了所有必需资源和可用库的 DNUN,被称为 Ruby Gems。这些 Gems 是健壮的,使用 Ruby on Rails 开发像 DNUN 这样的移动应用程序比使用其他 Web 应用程序框架要更高效、更容易。

类图中显示了 DNUN 的一些类、接口、协作以及它们之间的关系。类图是面向对象建模的关键构件。我们使用它进行详细建模,将模型转换成为我们的应用程序代码。DNUN 应用程序有四个主类:EmergencyDetail、User,DangerNotification 和 MyLocation。

EmergencyDetail 类为用户提供了保存一些联系人的选项,如果他们处于危险当中,他们可以向其发送危险通知。这个类有一些属性,例如,name、email、phone_no_1、phone_no_2,它还有一些方法,例如,addContact() 能够添加一个新的联系人,updateContact() 可以更新之前添加的联系人、deleteContact() 能够删除选定的联系人、showContacts() 能够显示出用户添加的联系人列表。

User 类代表的是应用程序的用户。这个类的所有对象都与其他类有关联。User 类有一些属性,例如,first_name、last_name、contact_number、 email、password 等等,它还有一些方法,例如,addUser() 用于创建新的用户、addPassword() 用于为新用户创建安全密码、createSession() 用于用户登录后保持用户的会话状态、destroySession() 用于用户注销登录后关闭用户会话状态。

DangerNotification 类用于创建危险通知并且将它通过电子邮件发送给一个或多个选定的联系人。这个类有一些属性,例如,user_id、 receiver_id、message、address、latitude 和 longitude。它还包含一些方法,例如,addNotification() 用于创建新的通知、updateNotification() 用于更新一个已添加的通知、deleteNotification() 用于删除一条选定的通知、showNotifications() 用于查看用户通知列表、navigate() 用于导航至通知中的位置、sendNotification() 用于将通知通过电子邮件发送至一个或多个联系人。

MyLocation 类用于保存用户位置。它与 User 类相关联,它有一些属性,例如,user_id、name、desc (description) 和用于显示位置的 latitude、longitude。它还有一些方法,例如,addLocation() 用于添加一个新的位置(用户的当前位置)、updateLocation() 用于当用户再次到达一个他曾经到达的位置时对曾经添加过的位置进行更新、deleteLocation() 用于删除已经保存的位置、showLocations() 用于显示用户保存过的所有位置列表、navigate() 用于从当前位置导航至一个选定的位置。

接下来我们会详细研究 DangerNotification 类和 MyLocation 类,它们是 DNUN 应用程序所提供的两个主要特性。

危险通知页面(DangerNotification Page)

危险通知是 DNUN 的主要相关特性之一。用户只需要点击一个按钮就能将当前位置发送给在 EmergencyDetail 阶段中注册的一个或多个联系人。当用户点击发送时,地理定位会跟踪他 / 她的当前位置,并将通知通过电子邮件发送给其他的用户,然后其他用户可以响应该帮助请求。

当一个人处于危险状态时,他 / 她可以点击图 1 中的 Locations 按钮,通过 Google Maps 检测和显示他 / 她的位置。如图 1 所示,用户可以发送一个危险通知。如图 2 所示,用户可以通过广播方式或者组播方式将通知发送出去。用户可以勾选部分联系人(组播),也可以选择全部联系人(广播)。一旦用户点击了发送按钮,电子邮件会被发送给指定的联系人,通知他们的朋友(用户)正处于危险状态。这个邮件中还包含该用户的精确位置。

(点击放大图像)

图1. 创建危险通知。用户的位置通过Google Maps 显示出来,消息被发送给用户的紧急联系人。

(点击放大图像)

图2. 发送通知。用户可以将通知发送给选定的联系人(组播),也可以发送给全部联系人(广播)。

我的位置页面(MyLocation Page)

物品定位是DNUN 应用程序的第二大主要特性。用户可以存储特定物品的位置并将该位置保存起来用于之后的导航。不论何时需要,用户只需要点击一下即可使用Google Maps 查找物品的位置。

用户可以通过点击Add Location 按钮来添加和储存一个或多个物品的位置,例如一辆停在停车场的汽车。图3 描述了应用程序的添加位置的功能。确定用户的当前位置,显示一个页面,以便用户能够使用一下字段来保存他/ 她的位置:_Name the Location_ 允许用户对已保存物品的位置命名、_Note for Your Location_ 能够让用户对物品和它的位置进行注释。当用户以后需要检索物品位置时,他/ 她点击View Map,DNUN 就会在Google Maps 中打开相应的位置(如图4 所示)。此外,如果要导航至一个已保存的位置或者一个物品的位置,用户可以点击Navigate(见图4),然后地图就会显示出路线以及导航方向。

(点击放大图像)

图3. My Location 页面。用户可以添加和储存他们的位置,或者物品的位置,比如一辆停车场中的汽车。

(点击放大图像)

图 4. Map 页面中的 Open Location 页面。当用户需要检索一个物品位置时,他们可以点击 View Map,应用程序会通过 Google Maps 显示出物品的位置。点击 Navigate,用户会获得导航路线和方向。

讨论和分析

众所周知,智能手机改善了我们的日常生活。地理定位是智能手机技术中最有益的应用领域之一。今天的大多数智能手机都配备有硬件和软件地理定位组件,能够进行位置追踪。LBS 使得 GPS 能够在不同的手机操作系统(例如 Android 或 iOS)上进行设备定位。地理定位技术在无线产品中越来越重要,原因有很多,特别是美国联邦通信委员会强制要求所有无线蜂窝运营商都要向公共安全应答点(PSAP)提供紧急 911 呼叫者的位置。

然而,对于军事应用和商业应用而言,地理定位技术也是十分有意义的,不仅仅是提供紧急位置 14。这同时也是我们开发 DNUN 应用程序的动力。无线设备(例如手机、PDA 和笔记本电脑)的使用催生了 LBS 的应用并且使得需要位置信息的应用程序成为可能。DNUN 能被应用于以下商业 LBS 场景:

  • 在医院及时定位患者;
  • 被用在私人和住宅应用程序中,用于定位个人;
  • 提供礼宾服务和位置感知服务(例如,查找最近的咖啡店;帮助新来到城市的人找到一个预先设定的位置,比如图书馆;在拥挤的购物中心或大学停车场查找车辆、帮助新学生找到教室、根据客户的位置在博物馆提供有关展品的信息)。

在军事部门和公共部门,士兵、警察、消防员能够知道他们自己和他人的位置信息,受害者和处于危险当中的人员的位置信息是非常重要的。GPS 一直以来都是户外区域最重要、最成功的定位技术,一般来说,GPS 接收器是一种廉价的、常见的设备 13。

DNUN 的一个关键特性是它能够根据具体情况和需要,让处于危险中的人通过选择联系人(组播)或者选择所有联系人(广播)向多个帮助者发送通知。这能够使得处于危险中的个人能够更灵活地在危险区域内活动,因为多个帮助者可以在更广泛的范围内进行响应。此外,在给定的时间内只有少数的救援人员的情况下,拥有多个联系人显然是很有用的。那些在地理位置上更接近的救援人员能够比其他人更快地进行响应。

另一方面,距离比较远的救援人员可以联系没有在通知列表中的人,或者通过手机或者寻呼机来联系那些电子邮件不在线的人。从当前位置大幅度移动的用户需要发送位置更新通知。然而,为了尽可能减少处于危险状态中的人的耗费的精力,DNUN 会搭配一个一直在后台运行的移动应用程序,(例如,GPS Tracker Pro 或 Google Play 上的移动位置跟踪器),它们可以对用户的位置进行跟踪,在用户无法发送通知时检测用户的移动。通过位置或技能发送求救信息给营救人员可以作为一个功能选项加入到 DNUN 中。

DNUN 移动应用程序可以通过向选定的联系人发送具有危险通知的电子邮件来解救处于危险中的用户。这些联系人能够作为用户社交网络的一部分通过 DNUN 进行添加、更新或者删除。因此,DNUN 将移动传感器和社交网络整合成为一种能够应用于军事和商业的救援计划。结合社交媒体,地理位置服务以及像 DNUN 这样的地图系统是智能手机中十分有用的应用程序。DNUN 还提供另一个功能,那就是帮助用户从任何地方导航至之前所保存的位置。

这类软件解决方案消除了部署硬件的成本。Apache Cordova 和 Ruby on Rails 就能够满足开发 DNUN 应用程序的所有需求。

参考文献

  1. D. Ionescu, “ Geolocation 101: How It Works, the Apps, and Your Privacy ”, PC World, 29 Mar. 2010.
  2. K.F. King, “ Geolocation and Federalism on the Internet: Cutting Internet Gambling’s Gordian Knot ”,Columbia Science and Tech. Law Rev., July 2010.
  3. M.H. Ammar and G.C. Polyzos, “Guest Editorial: Network Support for Multipoint Communication”, IEEE J. Selected Areas in Comm., vol. 15, no. 3, 1997, pp. 273-276.
  4. J.M.M. Pereira, “The Stellar Compass and the Kamal-An Interpretation of Its Practical Use”, Proc. Int’l Seminar Marine Archaeology, 2003, pp. 21-29.
  5. J. Parthasarathy, “Positioning and Navigation System Using GPS”, Int’l Archives of Photogrammetry, Remote Sensing, and Spatial Information Science, vol. XXXVI, part 6, 2006.
  6. S. Hara and R. Prasad, “Overview of Multicarrier CDMA”, IEEE Comm. Magazine, 1997, pp. 126–129.
  7. I. Koeppel, What Are Location Services? From a GIS Perspective, white paper, ESRI, 2000.
  8. K. Pahlaven and P. Krishna Murthy, Principles of Wireless Networks: A Unified Approach, Prentice Hall, 2001.
  9. R. Want, “iPhone: Smarter than the Average Phone”, IEEE Pervasive Computing, vol. 9, no. 3, 2010, pp. 6–9.
  10. “Lesson 10: Data Flow Diagrams (DFDs) ”, Module 5: Function-Oriented Software Design, Version 2 CSE IIT, Kharagpur.
  11. J.M. Wargo, Apache Cordova 3 Programming, Addison-Wesley Professional, 2013.
  12. B.A. Tate and C. Hibbs, Ruby on Rails: Up and Running, O’Reilly Media, 2006.
  13. R. Borup, “An Introduction to Ruby on Rails”, Proc. Southwest Fox Conf., 2010, pp. 50–55.
  14. K. Pahlavan and P. Krishnamurthy, Networking Fundamentals: Wide, Local, and Personal Area Communications, Wiley, 2009.

关于作者

Karthik Reddy Nalla是加拿大湖首大学(Lakehead University)的计算机科学硕士,他的研究方向是软件应用程序和数据分析(大数据)。可以通过 knalla@lakeheadu.ca 联系他。

Hosam El-Ocla是加拿大湖首大学(Lakehead University)计算机科学学院的副教授。他的研究方向包括计算机通信、网络和移动应用程序开发。El-Ocla 曾是国际科学技术促进发展协会(IASTED)的电信技术委员会成员,他目前是 IASTED 的天线、雷达和电波传播的技术委员会成员。他曾获得九州大学(Kyushu University)计算机科学与通信工程博士学位。他是 IEEE 的高级会员。可以通过 hosam@lakeheadu.ca 联系他。

这篇文章首次发表于 IEEE IT Professional 杂志。 IEEE IT Professional 是一本提供严谨科技资讯的杂志。企业总是在可靠性和灵活性上面临挑战,IT 经理和技术领导者依赖 IT 专家们来提供高超的解决方案。

查看英文原文: Article: Mobile DNUN: Danger Notification and User Navigation


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017 年 8 月 30 日 17:57963

评论

发布
暂无评论
发现更多内容

智能合约系统软件开发|智能合约APP开发

开發I852946OIIO

系统开发

指尖上的警务,打造微警务管理服务平台

t13823115967

智慧警务系统开发 微警务

盘点2020 | 作为技术号主的一年!

小傅哥

Java 小傅哥 盘点2020 技术成长 技术盘点

为什么线程安全的List推荐使用CopyOnWriteArrayList,而不是Vector

Java旅途

Java List 线程安全 vector

HBC环保卫士系统搭建

Geek_a620db

架构师训练营大作业 (二)

木头发芽

批量作业调度工具Taskctl Web应用版/ETL免费调度工具/数据挖掘,抽取,转换工具

会飞的鱼

数据挖掘 大数据处理 kettle 运维自动化 海豚调度

面试官:说说操作系统微内核和Dubbo微内核?

yes的练级攻略

dubbo 操作系统 微内核

2020年物联网行业有哪些新趋势

IoT云工坊

vivo 互联网业务就近路由技术实战

vivo互联网技术

中间件 服务器 分布式路由

架构师训练营大作业(一)

木头发芽

多币种钱包app系统开发,数字货币交易所系统源码开发

系统开发咨询:I76-883I-5I52 邓森

使用 Serverless 创建一个简单的短网址服务

donghui2020

flask Serverless Lambda Store

如何基于SDK快速开发一款IoT App控制智能灯泡(Android版)

IoT云工坊

android App 物联网 API sdk

LTN挖矿系统开发

Geek_a620db

PiNetwork 挖矿算力系统开发

Geek_a620db

海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js

刘悦的技术博客

Python Docker 镜像 容器化 部署

联联周边游系统源码

Geek_a620db

智慧公安大数据可视化分析平台开发,重点人员管控系统

WX13823153201

译|Optimal Logging

cyningsun

监控 日志 异常 故障 错误

搜狗开源框架发布纯自研C++ Kafka客户端

Geek_459987

STARFIELD星域APP系统开发|STARFIELD星域软件开发

开發I852946OIIO

系统开发

区块链电子合同铸就数字经济信任基石

CECBC区块链专委会

电子合同

掌趣电竞系统开发搭建

Geek_a620db

vivo 全球商城:订单中心架构设计与实践

vivo互联网技术

分库分表 服务器 架构设计

高速增长的跨境电商业务背后,区块链应用场景来了吗?

CECBC区块链专委会

跨境电商

数据库范式与反范式设计,是一门艺术

flyer0126

数据库 范式

共享单车系统搭建

Geek_a620db

数据可视化平台搭建,警务实战平台大数据应用

t13823115967

数据可视化 可视化数据分析搭建 警务实战平台

物联网方面的竞赛有那些?

IoT云工坊

物联网目前的安全问题有哪些?

IoT云工坊

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

移动端DNUN:危险通知和用户导航-InfoQ