2015-10-14 68 views
0

好的,我和一位朋友就這個問題與我們討論瞭如何在安靜的環境中處理數據過程。關於REST風格的服務器的想法

其主要思想是應用程序向服務器發送一個數據,該數據是設備的位置(經緯度爲&長),並且預計能夠找回最近的設備。

我的觀點是在latlong位置確定「最近設備」的過程應該在服務器中完成,並且只需ping回最近設備的latlong即可。

朋友說過程應該是這樣的..服務器會用它的latlong ping每個設備的json,然後客戶端自己將確定哪個是最近的。

+0

CPU功耗與帶寬使用的持續傳奇。爲了得到答案,你需要發佈更多細節。 –

+0

這就是所有的信息。我想不出還有什麼可以包括在內。編輯,該應用程序就像一個grabtaxi應用程序 – Roi

回答

2

看看這樣說:

服務器是所有數據存儲和處理的datahub。

客戶端是從服務器獲取數據,向用戶呈現數據並從他那裏獲取輸入的東西。

現在你必須考慮Seperation of Concerns。客戶的工作是查看數據給用戶,並接受他的輸入。服務器的工作就是處理所有數據並將其轉換爲客戶端需要對其進行最少處理的方式。

I.e.客戶端從服務器獲取一些數據,他現在所需要做的就是在屏幕上顯示它。客戶端應該有最少的數據處理。這是服務器的工作。服務器的工作是儘可能簡化客戶的工作。
客戶端還可以在後臺執行其他事情(也可能用於其他應用程序)。它的CPU不是專用於你的應用程序,而你的服務器是。

客戶需要什麼?最近的設備。客戶向服務器詢問什麼? 「嗨服務器,告訴我什麼是最近的設備。」服務器應該返回什麼?確切地說,最近的設備。不是客戶必須通過自己挖掘的所有設備的列表。

+0

看到我剛剛添加的最後一段,我認爲這抓住了主意 –

2

不,我認爲所有的信息應該由服務器如果我理解你描述如下schenario管理...

  • 客戶端發送它COORDS;
  • 服務器發送到任何設備
  • 客戶端COORDS接收數據,並計算最近裝置

我的問題是:爲什麼要在客戶端計算爲(可能)數千臺設備的人的距離?

  • 它的闡述力不是很高;
  • 你消耗的帶寬最多
  • 的任何信息都已經在收費服務器

在我心中的最好的辦法是RESTful服務,其中:

  • 任何客戶端週期性地發送其位置(POST )
  • 當客戶端需要一定數量的鄰居時,然後執行請求(GET)
  • 服務器將包含最新的數據,服務器端mpute距離,服務器創建並只發送小JSON作爲響應。

這在我看來。 :)

+0

這就是我的立場。我只想要一個更可靠的證據表明這是正確的做法。 – Roi

+0

@Roi正如我所說的你應該對帶寬使用,客戶端性能,編輯和優化到你的算法(它只在服務器上,而不是在任何客戶端上)......其他問題在「Tim Castelijns」答案中:think到多層應用程序...客戶端(移動設備)負責演示:避免其執行任何不必要的操作。 :) –