search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

移動端DNUN:危險通知和用戶導航

作者|Karthik Reddy Nalla , Hosam El-Ocla

譯者|羅遠航

關鍵提要
  • 基於位置的服務(LBS)通過移動網路確定移動設備的地理位置,它具有多種用途,包括應用於社交網路。LBS 是使用位置數據來開發不同服務功能的一類常見的計算機程序。

  • 在緊急狀況下查找某人的位置是具有挑戰性的。另外,如果你忘記了你的車停在了停車場的什麼位置,是很難確定它在停車場中的位置的。危險通知和用戶導航(DNUN)移動程序可以讓用戶有效地對人或物體進行定位。

  • DNUN 應用程序可以讓用戶添加、刪除或者更新聯繫人,如果發生緊急情況,用戶可以通過應用了 geo-finder API 的 Google Maps 中來追蹤聯繫人的位置。聯繫人也能追蹤用戶的路線和距離用於導航至該用戶所在位置。Google Maps 的地理位置定位 API 還帶來了另一個重要的功能,即尋找物品。這個功能可以存儲一個物體(例如一輛汽車)的經緯度位置信息以備將來使用。

  • DNUN 可用於商業 LBS,包括在醫院中對患者進行定位,在緊急情況下對士兵、警察以及消防員進行定位等。這篇文章首次發表於 IEEE IT Professional 雜誌。IEEE IT Professional 是一本提供嚴謹科技資訊的雜誌。企業總是在可靠性和靈活性上面臨挑戰,IT 經理和技術領導者依賴 IT 專家們來提供高超的解決方案。

地理定位是識別人或物體的地理位置的過程。基於位置的服務(LBS)通過移動網路確定移動設備的地理位置,它具有多種用途,包括應用於社交網路。LBS 是使用位置數據來開發不同服務功能的一類常見的計算機程序。

縱觀歷史,人類早就發明出了確定位置和導航的技術。「煙霧信號」是古、古希臘和美洲原住民長距離傳遞消息的方式,用於在廣闊的沙漠中和穿越海洋的時候進行導航。早期的導航工具,例如羅盤和 kamal,用於給行駛於小河流和穿越海洋的船隻確定方向。然而,幾個世紀以來,這些設備都是十分昂貴的,只有那些具備一定經濟實力的人才能夠使用。而如今,多種不同類型的技術讓我們能夠獲得到位置信息,包括 GPS、IP 定址、全球移動通信系統(GSM)、碼分多址(CDMA)、手機 ID、Wi-Fi、藍牙 MAC 地址以及用戶輸入。

移動應用程序的數量和質量都在增長。例如,移動應用程序 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,有時被稱為氣泡圖,通過圖形來表示。它展示了開發過程中的不同階段,從數據輸入階段到不同處理元素的執行階段,再到系統產生的數據輸出階段。為了對用戶請求進行響應,DNUN 與存儲用戶數據(例如,聯繫人信息以及危險通知)的資料庫進行關聯。根據用戶的請求,應用程序會與資料庫進行通信。

UML 被軟體設計師們所熟知:它用於對象建模、創建類圖和其它圖表。原生應用程序使用 Android 或 iOS 的 SDK 進行編碼。移動 Web 程序可以通過 iOS 上的 Safari 或 Android 上的 Chrome 等瀏覽器進行訪問。像 Apache Cordova 這樣的項目能夠幫助構建應用程序,它能夠使用編譯成包裝器(wrapper)的 Web 技術來構建應用程序,以此創建一個混合應用程序,例如 DNUN 應用程序。

移動應用程序也可以使用 Ruby on Rails 進行開發,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 應用程序所提供的兩個主要特性。

危險通知頁面

危險通知是 DNUN 的主要相關特性之一。用戶只需要點擊一個按鈕就能將當前位置發送給在 EmergencyDetail 階段中註冊的一個或多個聯繫人。當用戶點擊發送時,地理定位會跟蹤他 / 她的當前位置,並將通知通過電子郵件發送給其他的用戶,然後其他用戶可以響應該幫助請求。

當一個人處於危險狀態時,他 / 她可以點擊圖 1 中的 Locations 按鈕,通過 Google Maps 檢測和顯示他 / 她的位置。如圖 1 所示,用戶可以發送一個危險通知。如圖 2 所示,用戶可以通過廣播方式或者組播方式將通知發送出去。用戶可以勾選部分聯繫人(組播),也可以選擇全部聯繫人(廣播)。一旦用戶點擊了發送按鈕,電子郵件會被發送給指定的聯繫人,通知他們的朋友(用戶)正處於危險狀態。這個郵件中還包含該用戶的精確位置。

圖 1. 創建危險通知。用戶的位置通過 Google Maps 顯示出來,消息被發送給用戶的緊急聯繫人。

圖 2. 發送通知。用戶可以將通知發送給選定的聯繫人(組播),也可以發送給全部聯繫人(廣播)。

我的位置頁面

物品定位是 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 呼叫者的位置。

然而,對於軍事應用和商業應用而言,地理定位技術也是十分有意義的,不僅僅是提供緊急位置。這同時也是我們開發 DNUN 應用程序的動力。無線設備(例如手機、PDA 和筆記本電腦)的使用催生了 LBS 的應用並且使得需要位置信息的應用程序成為可能。DNUN 能被應用於以下商業 LBS 場景:

  • 在醫院及時定位患者;

  • 被用在私人和住宅應用程序中,用於定位個人;

  • 提供禮賓服務和位置感知服務(例如,查找最近的咖啡店;幫助新來到城市的人找到一個預先設定的位置,比如圖書館;在擁擠的購物中心或大學停車場查找車輛、幫助新學生找到教室、根據客戶的位置在博物館提供有關展品的信息)。

在軍事部門和公共部門,士兵、警察、消防員能夠知道他們自己和他人的位置信息,受害者和處於危險當中的人員的位置信息是非常重要的。GPS 一直以來都是戶外區域最重要、最成功的定位技術,一般來說,GPS 接收器是一種廉價的、常見的設備。

DNUN 的一個關鍵特性是它能夠根據具體情況和需要,讓處於危險中的人通過選擇聯繫人(組播)或者選擇所有聯繫人(廣播)向多個幫助者發送通知。這能夠使得處於危險中的個人能夠更靈活地在危險區域內活動,因為多個幫助者可以在更廣泛的範圍內進行響應。此外,在給定的時間內只有少數的救援人員的情況下,擁有多個聯繫人顯然是很有用的。那些在地理位置上更接近的救援人員能夠比其他人更快地進行響應。

另一方面,距離比較遠的救援人員可以聯繫沒有在通知列表中的人,或者通過手機或者尋呼機來聯繫那些電子郵件不在線的人。從當前位置大幅度移動的用戶需要發送位置更新通知。然而,為了儘可能減少處於危險狀態中的人的耗費的精力,DNUN 會搭配一個一直在後台運行的移動應用程序,(例如,GPS Tracker Pro 或 Google Play 上的移動位置跟蹤器),它們可以對用戶的位置進行跟蹤,在用戶無法發送通知時檢測用戶的移動。通過位置或技能發送求救信息給營救人員可以作為一個功能選項加入到 DNUN 中。

DNUN 移動應用程序可以通過向選定的聯繫人發送具有危險通知的電子郵件來解救處於危險中的用戶。這些聯繫人能夠作為用戶社交網路的一部分通過 DNUN 進行添加、更新或者刪除。因此,DNUN 將移動感測器和社交網路整合成為一種能夠應用于軍事和商業的救援計劃。結合社交媒體,地理位置服務以及像 DNUN 這樣的地圖系統是智能手機中十分有用的應用程序。DNUN 還提供另一個功能,那就是幫助用戶從任何地方導航至之前所保存的位置。

這類軟體解決方案消除了部署硬體的成本。Apache Cordova 和 Ruby on Rails 就能夠滿足開發 DNUN 應用程序的所有需求。

作者介紹

Karthik Reddy Nalla,加拿大湖首大學(Lakehead University)的計算機科學碩士,他的研究方向是軟體應用程序和數據分析(大數據)。可以通過 [email protected] 聯繫他。

Hosam El-Ocla,加拿大湖首大學(Lakehead University)計算機科學學院的副教授。他的研究方向包括計算機通信、網路和移動應用程序開發。El-Ocla 曾是國際科學技術促進發展協會(IASTED)的電信技術委員會成員,他目前是 IASTED 的天線、雷達和電波傳播的技術委員會成員。他曾獲得九州大學(Kyushu University)計算機科學與通信工程博士學位。他是 IEEE 的高級會員。可以通過 [email protected] 聯繫他。

這篇文章首次發表於 IEEE IT Professional 雜誌。IEEE IT Professional 是一本提供嚴謹科技資訊的雜誌。企業總是在可靠性和靈活性上面臨挑戰,IT 經理和技術領導者依賴 IT 專家們來提供高超的解決方案。

你知道公眾號上有很多優質內容,但除了在歷史列表人肉檢索,查詢渠道並不多。有沒有一種搜索方式,能整合 InfoQ 中文站、12 大微信公眾號矩陣的全部資源?極客搜索,這款針對極客邦科技全站內容資源的輕量級搜索引擎,做到了!掃描下方二維碼,極客(即刻)試用!

細說雲計算

「細說雲計算」是InfoQ旗下關注云計算技術的垂直社群,投稿請發郵件到[email protected],註明「細說雲計算投稿」即可。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦