自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何基于Akamai IoT邊緣平臺(tái)打造一個(gè)無服務(wù)器的位置分享應(yīng)用?

云計(jì)算
本文Akamai將為大家提供一個(gè)思路,借助邊緣計(jì)算技術(shù)在自己的應(yīng)用中實(shí)現(xiàn)快速、流暢、可擴(kuò)展的位置和分享能力,并且整個(gè)方法完全是以無服務(wù)器的形式實(shí)現(xiàn)的。

與地理位置有關(guān)的應(yīng)用相信大家都很熟悉了,無論是IM軟件里的位置共享或是電商、外賣應(yīng)用中的配送地址匹配,我們幾乎每天都在使用類似的功能與服務(wù)。不過你有沒有想過,如何在自己開發(fā)的應(yīng)用中嵌入類似的功能?

本文Akamai將為大家提供一個(gè)思路,借助邊緣計(jì)算技術(shù)在自己的應(yīng)用中實(shí)現(xiàn)快速、流暢、可擴(kuò)展的位置和分享能力,并且整個(gè)方法完全是以無服務(wù)器的形式實(shí)現(xiàn)的。這也意味著無需因?yàn)楹投ㄎ环窒碛嘘P(guān)的功能擴(kuò)展或調(diào)整應(yīng)用程序現(xiàn)有后端,只需簡單地集成,一切就能順利搞定。

延伸閱讀,了解Akamai Linode!

一、100%無服務(wù)器

對(duì)很多服務(wù)和應(yīng)用程序來說,無論真實(shí)或虛擬的定位信息都是必不可少的。交通運(yùn)輸、游戲、娛樂、物流…… 如果位置信息無法嵌入到這些行業(yè)的應(yīng)用和服務(wù)中,我們的現(xiàn)實(shí)生活恐怕會(huì)受到不小的影響。

下文介紹的用例和演示來自Akamai最近為一個(gè)網(wǎng)絡(luò)研討會(huì)活動(dòng)所提供的應(yīng)用程序,我們將其稱之為Discover and Announce(發(fā)現(xiàn)并公布),因?yàn)樗梢詭椭蛻籼剿魇澜纾私庾约焊信d趣的周邊事物,并(可選地)在當(dāng)前位置的公共廣播頻道共享與全世界共享自己的狀態(tài)。

最重要的是,該應(yīng)用完全基于無服務(wù)器技術(shù)構(gòu)建,并且可以完全通過Akamai邊緣平臺(tái)來運(yùn)行。

簡單來說,該應(yīng)用有著如下的特征:

  1. 用戶客戶端讀寫Akamai IoT Edge Connect上一個(gè)包含了位置信息的Message Queue Telemetry TransportMQTT)主題
  2. World Editor服務(wù)也是一個(gè)MQTT客戶端,可在相應(yīng)的主題中更新位置信息。
  3. Analytics服務(wù)可讀取用戶客戶端發(fā)出的Announce消息,借此進(jìn)一步感知周邊世界(如特定位置有多少用戶)。

二、Military Grid Reference Squares——世界的骨架

首先我們從一個(gè)地圖系統(tǒng)著手,該系統(tǒng)可以幫我們將MQTT主題分配到特定的地理位置。好在我們可以借助Military Grid Reference SquaresMGRS)輕松做到這一點(diǎn)。MGRS是一種可以涵蓋全球的地理位置編碼系統(tǒng),可以為1米、10米、100米、1000米甚至10千米的網(wǎng)格分配座標(biāo)。

以下列座標(biāo)為例:

16TFQ 4104 8222

其對(duì)應(yīng)的位置在美國密歇根州貝萊爾的Short’s Brewery附近,精度為10米見方。如果我們希望指定一個(gè)1km的見方的位置,只需要截?cái)鄸|經(jīng)(第一組整數(shù))和北緯(第二組整數(shù))的數(shù)值即可:

16TFQ 41 82

MGRS可以通過一個(gè)簡單的公式從經(jīng)緯度中推倒出來,該公式在很多平臺(tái)上都可用,包括JavaScript,下文我們就將進(jìn)一步介紹。

我們的IoT Edge Connect主題結(jié)構(gòu)反映了MGRS的地理位置編碼。在該演示應(yīng)用中,針對(duì)上述兩個(gè)位置的主題差不多是這樣的:

/16FTQ/4104-8222/

/16FTQ/41-82/

此外還有一種更豐富、復(fù)雜的設(shè)計(jì),可以使用MQTT通配符來看到任何精度下想要看到的事情。例如,我們可以將第一個(gè)MGRS主題寫成這樣:

/16FTQ/4/1/0/4/x/8/2/2/2/x/

隨后即可通過MQTT通配符實(shí)現(xiàn)真正的智能查詢。我們可以通過下列查詢了解1km見方范圍內(nèi)包含的所有信息:

SUBSCRIBE /16FTQ/4/1/+/+/+/8/2/+/+/+/

(雖然上述結(jié)構(gòu)也可以用更優(yōu)雅高效的形式來構(gòu)建,但目前這種方式在視覺上更適合本文演示的目的)

三、World Editor

我們開發(fā)了一個(gè)能用各種對(duì)象更新世界地圖的客戶端。借此可以創(chuàng)建對(duì)象,在World Editor地圖上給它命名,并在地圖上拖拽對(duì)象調(diào)整其位置。對(duì)象被拖拽放置后會(huì)將當(dāng)前所在位置的MGRS值發(fā)送給IoT Edge Connect上對(duì)應(yīng)的MQTT主題。World Editor使用了一個(gè)MGRS JavaScript庫將經(jīng)緯度轉(zhuǎn)換為MGRS編碼。

此外還可以通過額外的邏輯來識(shí)別多邊形和圓形,甚至可以定義獨(dú)特的位置形狀,借此更好地展現(xiàn)現(xiàn)實(shí)世界中那些外形不規(guī)則的地點(diǎn)。

客戶端也可以使用類似的服務(wù)來宣告自己的存在。在網(wǎng)絡(luò)研討會(huì)中,我們列舉了公園里在不同位置之間移動(dòng)的人物作為例子。這些人物可以使用我們的客戶端,在自己抵達(dá)新的位置后宣告自己的位置。

四、用戶客戶端

用戶可以做兩件事:

首先:用戶可以訂閱不同位置對(duì)應(yīng)的主題,借此了解周邊世界。通過使用MQTT通配符,他們甚至可以指定自己感興趣的大范圍區(qū)域。

該范例應(yīng)用會(huì)每秒鐘查詢iOS設(shè)備提供的GPS座標(biāo)。這些座標(biāo)值會(huì)在本地被轉(zhuǎn)換為MGRS編碼,如果該值與上一秒的結(jié)果相比產(chǎn)生了變化,客戶端就會(huì)訂閱新位置對(duì)應(yīng)的主題。

這種情況下,如果能提供經(jīng)緯度之外的其他選項(xiàng),將對(duì)應(yīng)用帶來巨大的好處。我們需要為GPS信號(hào)不可用的室內(nèi)環(huán)境提供支持,此時(shí)比較普遍的做法是使用藍(lán)牙信標(biāo),通過這種信標(biāo)來代表客戶端的位置。存儲(chǔ)在本地或Akamai EdgeKV的平面數(shù)據(jù)集可以將信標(biāo)值與MGRS位置進(jìn)行對(duì)應(yīng)。這樣,我們的應(yīng)用即可兼容各種位置共享類型與方案。

其次:用戶隨后還可以選擇公布自己的信息。通過使用MGRS主題結(jié)構(gòu),用戶自己就可以決定是否要在10km1km、100m、10m1m的主題層級(jí)上發(fā)布自己的位置信息。這樣用戶也可以淡化自己的位置精度。

當(dāng)然,用戶也可以選擇在自己的告示中發(fā)送什么內(nèi)容或不發(fā)送什么內(nèi)容。在我們的演示應(yīng)用中,用戶客戶端只是簡單地將自己稱之為用戶,并不包含個(gè)人信息。

我們還構(gòu)建了一個(gè)用戶客戶端的界面樣本,該界面可以將用戶位置以及用戶發(fā)現(xiàn)的對(duì)象顯示在地圖上,用戶也可以通過World Editor添加與對(duì)象有關(guān)的其他信息。

五、實(shí)時(shí)分析

Analytics服務(wù)的作用顧名思義,就是用來分析。該服務(wù)包含一個(gè)MQTT客戶端,可以讀取公布的消息,隨后記錄并處理這些內(nèi)容。在我們的范例應(yīng)用中,我們?yōu)?/span>World Editor添加了分析數(shù)據(jù)源,這樣就可以在地圖上顯示實(shí)時(shí)數(shù)據(jù)(本例中的實(shí)時(shí)數(shù)據(jù)也就是用戶客戶端的位置)。

能夠使用實(shí)時(shí)數(shù)據(jù),這一點(diǎn)就很酷了。例如,我們將能以秒為單位確定并更新每個(gè)位置的用戶密度。

六、走向全世界

位置信息在游戲、模擬,或是物流倉庫和工廠等封閉環(huán)境這樣的虛擬世界中同樣重要,而上文介紹的這種結(jié)構(gòu)也可以適用于這類環(huán)境并提供類似的好處。

七、為何選擇Akamai?

在上述演示應(yīng)用中,我們考慮到這款應(yīng)用可能會(huì)在一些很大的環(huán)境中使用,例如在公園中被成千上萬的游客使用,所有游客會(huì)使用全球各地不同移動(dòng)運(yùn)營商的網(wǎng)絡(luò)服務(wù),峰值時(shí)期的消息總量很可能會(huì)超過每小時(shí)數(shù)十億條。因此我們需要提供一種簡單、可靠、可擴(kuò)展、安全的平臺(tái),這個(gè)平臺(tái)必須足以處理這種規(guī)模,甚至更大規(guī)模的流量。源服務(wù)可以運(yùn)行在任何位置,并且無需為了滿足客戶需求而進(jìn)行擴(kuò)展。在我們的演示場景中,客戶可以專注于在我們的平臺(tái)上構(gòu)建功能豐富的應(yīng)用,為用戶提供更多欣喜和喜悅,而這背后的重?fù)?dān),交給Akamai邊緣就行。

這些應(yīng)用程序組件可以通過幾乎任何類型的容器在任何云環(huán)境中運(yùn)行。如果希望進(jìn)一步了解該應(yīng)用,請(qǐng)?jiān)L問https://developer.akamai.com/iot-edge-connect并注冊(cè)免費(fèi)試用。我們還可以提供示范環(huán)境,幫助用戶直接啟動(dòng)1個(gè)或1000個(gè)客戶端,借此驗(yàn)證并打磨自己的新想法。

這篇文章的內(nèi)容感覺還行吧?有沒有想要立即在 Linode 平臺(tái)上親自嘗試一下?別忘了,現(xiàn)在注冊(cè)可以免費(fèi)獲得價(jià)值 100 美元的使用額度,快點(diǎn)自己動(dòng)手體驗(yàn)本文介紹的功能和服務(wù)吧↓↓↓

高效云服務(wù),選擇Akamai Linode!

歡迎關(guān)注 Akamai ,第一時(shí)間了解高可用的 MySQL/MariaDB 參考架構(gòu),以及豐富的應(yīng)用程序示例。

責(zé)任編輯:張燕妮
相關(guān)推薦

2017-09-13 07:23:03

2020-10-09 07:00:00

無服務(wù)器應(yīng)用監(jiān)控架構(gòu)

2017-05-24 12:30:34

2018-11-20 10:44:10

開源無服務(wù)器 Serverless

2023-08-25 13:25:00

云計(jì)算云平臺(tái)

2020-03-27 11:50:57

無服務(wù)器架構(gòu)技術(shù)

2019-04-30 10:27:46

無服務(wù)器云計(jì)算安全

2019-04-26 10:57:26

無服務(wù)器應(yīng)用程序HTTP

2021-12-08 17:33:59

邊緣

2018-06-06 09:00:16

2019-07-02 10:55:21

云計(jì)算服務(wù)器容器

2024-05-24 08:31:49

服務(wù)器聯(lián)網(wǎng)SSH

2018-11-21 09:00:33

開源無服務(wù)器云平臺(tái)

2022-04-12 09:00:00

無服務(wù)器云原生數(shù)據(jù)庫

2012-10-22 13:46:27

2016-09-23 21:15:49

阿里云服務(wù)器搭建

2023-03-17 18:33:12

ChatGPTLLM應(yīng)用

2021-03-26 14:30:54

安全服務(wù)器架構(gòu)的安全

2022-09-29 15:13:47

健康管理平臺(tái)—鴻蒙

2021-05-24 22:08:02

邊緣平臺(tái)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)