讓我先解決您提出的前提:「......每一個SaaS工具都遵循一種特定模式:發件人代理」。我希望你能把我引用到本聲明的來源。根據我的SaaS經驗,我從來沒有聽說過這種模式。
那麼,誠實地說,「發件人代理」聽起來像「業務組件」或「服務器內核」一樣廣泛和模糊。
我有我的web應用程序,但它不能跟數據庫層(也不應該 當然不是,)
你不是在比較蘋果和蘋果在這裏。 Webapp是層,數據庫是一個層。 Webapp層必須與數據庫層交談。 Webapp可能有不同的層,並且webapp中的持久層將與數據庫層進行通信。
...所以有一個代理運行在我的門控網絡中,發佈 到webapp。
這使得它聽起來像webapp是一個沒有生命的雕像,而一個經紀人是一個雕塑家誰是在它周圍跑來跑去,並投擲大塊的粘土上。 Webapp正在接收來自客戶端的請求,查詢持久層(可能是緩存)併發迴響應。無論您使用哪種代理,都會將數據發佈到持久性或排隊存儲,而不是Web應用程序本身。
在層與層閱讀起來,它會幫助你更好地理解web應用和SaaS模式:What's the difference between "Layers" and "Tiers"?
更新
謝謝你的澄清,這顯著變化問題。你在做什麼聽起來很合理。您在特定系統的限制範圍內工作,並且必須滿足插件合同。如果合同規定必須是HTTP POST,那麼這就是你必須做的。
關於如何做到這一點,有幾十種方法。下面是幾個:
- 的藥劑推事件服務器事件發生時
- 的情況下,代理商可以把太多的壓力在服務器上,代理(S)推動事件的隊列。隊列,然後由專門的排空和節流,將讀取你的數據庫,推動事件的服務器進程
- 調度進程(守護進程)以一定的間隔讀取數據庫和更新推到服務器
這可能不是官方的「四人幫」模式,但它存在於「戰壕」中。如果你願意的話,也許可以作爲一種調停者/觀察者。請參閱我上面編輯的示例,瞭解我實際上在問什麼。 – 2012-02-13 16:49:20