對於政府合同,我們將建議建立一個交通監控體系結構。我們將有以下組件:我在這裏談論SOA嗎?
- 視頻攝像機的設置圍繞感興趣的領域。攝像機將知道它們的位置和方向以及查看參數。
- 可以查詢街道,建築物等的GIS地圖服務器。
- 一種算法,用於處理原始視頻和街道位置信息並輸出汽車位置。
- 另一種算法可獲取汽車位置和極低級別的街道信息,並提供有關哪些汽車異常行駛的信息。
- 另一個數據庫隨着時間的推移會收集關於汽車位置和異常報告的信息,稍後可以查詢。
- 在檔案數據庫和實時算法上建立了一個代理(或者更準確地說,一個門面),以便爲信息提供一個統一的接口。
- 客戶端連接到代理服務器和街道服務器,並在屏幕上繪製交通狀況的各種表示形式。
我剛剛在學習什麼是SOA。這是面向服務架構SOA的理想人選嗎?我聽說SOA服務應該是無狀態的(或者只有RESTful服務?)我還聽說,將一個服務連接到下一個服務是不明智的,因爲它增加了隱藏的複雜性,並且您應該做某些事情使這種情況更好(一種「協調」?)。上面的服務似乎是模塊化和可重用的。例如,將會有大量的攝像機,各種類型的車輛檢測和異常算法,分佈式數據庫以及大量的客戶端。我需要具備處理事件的能力:例如,如果我想註冊一項服務並在有大卡車駛過這一點時收到通知。
如果這不是SOA的理想實現,那麼我應該在哪裏尋找。如果這對於SOA來說是理想的,那麼在設計時應該從哪裏開始? (而且我基本上是從閱讀Wikipedia的SOA頁面開始的。)有什麼好的案例研究可以在這裏看到?
非常好的建議!謝謝。有一點可以說,在我的框架中有幾項服務不能無狀態(或者我誤解了這種情況下的無狀態方法)。例如,車輛定位服務將成爲視頻服務的客戶,並通過持續查看新的視頻幀來跟蹤汽車的位置(各種狀態)。也許重要的是每個服務都不能*保留客戶的狀態。我想我可以從這裏逃避。 – JnBrymn 2010-08-26 12:20:44
如果我想讓服務跟蹤監聽者,並在新信息可用時通知他們該怎麼辦。這不代表客戶的服務保持狀態,但這意味着該服務是保持指向其客戶的指針。這會傷害什麼嗎? – JnBrymn 2010-08-26 14:10:11
客戶和服務的耦合更緊密。客戶端可能處於脫機狀態,您必須決定在這種情況下服務應該做些什麼,放棄,忽略,重試或通知其他系統? – Kwebble 2010-08-26 14:36:08