BT

你的观点很重要! 快来参与InfoQ调研吧!

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

| 作者 Karthik Reddy Nalla 关注 0 他的粉丝 , Hosam El-Ocla 关注 0 他的粉丝 ,译者 罗远航 关注 0 他的粉丝 发布于 2017年8月31日. 估计阅读时间: 24 分钟 | ArchSummit社交架构图谱:Facebook、Snapchat、Tumblr等背后的核心技术

关键提要

  • 基于位置的服务(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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT