[英]Architecture of real-time web applications
這將是一個相當理論上的問題。 我目前正在研究我的學士論文,其中包括創建一個基於Web的實時對象同步框架,就像Firebase一樣,但是本地(即不是基於雲的)。
我需要從實時中區分“常規”Web應用程序(有更好的術語嗎?),尤其是在體系結構方面。 到目前為止我的想法:
對不起,它比預期的要長。 簡而言之,我看到了基於Web的實時應用程序架構的三種可能性:
不確定它是否具有重要性,但我在后端使用Rails (帶有基於JMS的消息傳遞服務,提供WebSocket -support),在前端使用AngularJS 。
“實時”操作或應用程序或系統具有及時性和可預測性限制。
原則上,這與系統架構無關 - 實際上,架構必須適合您需要的實時屬性。
發布/訂閱機制具有基於從可發布事件發生到事件在所有運營訂戶中顯現的延遲的實時度量 - 簡化,實時=真實快速(想想自動化金融交易)。 但實時性與時效性可預測性同樣重要。 在P / S案例中,感興趣的可預測性是延遲 - 在幅度和可變性方面(“抖動”是一種特殊情況)。 在研究和從業者社區中有很多文獻 - 在你的情況下,我建議閱讀RTI網站上的一些優秀文件(盡管IMHO RTI並沒有盡可能徹底地處理可預測性,但它們做得很好產品)。
非P / S系統(包括但不限於客戶端/服務器系統)具有不同的實時風格。 有許多爭用共享資源的時間約束(比方說)任務(例如處理器,同步器,網絡等)。 必須通過以滿足及時性和可預測性最優性標准的順序調度或調度來解決競爭訪問請求。 每個人都熟悉一個非常簡單的特殊情況,即請求有截止日期,最優標准是滿足所有截止日期。 請注意,“符合期限”及時性標准已與可預測性標准“始終滿足所有”一起表達。
在絕大多數現實世界的實時案例(不僅限於計算機)中,標准要復雜得多 - 例如,實時系統通常要求均值(或者,最大值)延遲要么最小化要么不超過某個值。 依賴性添加了額外的復雜性,例如優先約束。 這種實時方式對架構及其系統軟件的某些屬性有重大影響。 為簡潔起見,上述所有內容都已大大簡化。
我可以通過以下方式之一閱讀您的問題:
a)哪個Peer-to-Peer,Client-Server或其他術語最好地描述了該應用程序?
b)應用程序應使用哪種架構作為其設計的基礎?
在我看來,你的問題很好地描述了應用程序的體系結構,無論你是想將它稱為Peer-to-Peer還是Client-Server或其他東西,這都是無關緊要的。
也就是說,設計的實時方面並沒有因為你提到的原因而成為Peer-to-Peer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.