天天看點

基于.net搭建熱插拔式web架構(實作原理) 第二篇 基于.net搭建熱插拔式web架構(沙箱的建構)

第一節:我們為什麼需要一個熱插拔式的web架構?

  1. 子產品之間獨立開發

    假設我們要做一個背景管理系統,其中包括“使用者活躍度”、“産品管理”、"賬單管理"等子產品。每個子產品中有自己的業務特性,這些子產品都與具體業務高度耦合,很難由一個團隊開發完所有子產品。這樣看來,由資料事業部的同僚來開發“使用者活躍度”子產品,産品事業部的同時來開發“産品管理"子產品會顯得更加合理。現在我們假定由不同團隊開發不同業務子產品,那麼這些人如果共同維護同一個項目的話,這個項目會變得非常臃腫,直到最後牽一發而動全身,更不利于新技術、新思想的融入。這裡也不排除有大牛可以提前把架構規劃的很好,但對于創業公司及快速發展中的公司,他們的業務變化速度真的可以說的上朝謀夕變。是以我們可以把每個項目按照一種規範單獨開發,最終把這些子產品插入到架構中運作。
    基于.net搭建熱插拔式web架構(實作原理) 第二篇 基于.net搭建熱插拔式web架構(沙箱的建構)
  2. 沙箱模式

    每個子產品都由獨立的團隊開發,很容易發生類庫之間的不相容問題(項目大了什麼鳥都有)。我們可不可以把他們隔離起來呢?答案是可以的,我們可以使用appdomain來啟動每一個子產品。說到appdomain,你大概知道我們要做什麼了,但是httpcontext是不允許跨域傳遞的,這就是本文的關鍵了,我們在接下來的文章中慢慢解決。
    基于.net搭建熱插拔式web架構(實作原理) 第二篇 基于.net搭建熱插拔式web架構(沙箱的建構)
  3. 使用者及權限、通路入口統一控制       

    看完上邊,你可能會想把每一個子產品都作為一個web部署不就行了嗎?那如果這樣,就需要一套單點登入的機制來協助整個平台的運作了,而且每一個子產品中都需要引用權限過濾的相關功能,再加上我們要管理茫茫多的小站點,額,頭大了吧。綜上所述,我們的架構就是一個整體的權限鑒别入口及功能路由器,協調每一個子產品良好運轉。
    基于.net搭建熱插拔式web架構(實作原理) 第二篇 基于.net搭建熱插拔式web架構(沙箱的建構)

第二節:架構模型

基于.net搭建熱插拔式web架構(實作原理) 第二篇 基于.net搭建熱插拔式web架構(沙箱的建構)

轉載請注明出處:http://www.cnblogs.com/eric-z/p/5019188.html

第二篇 基于.net搭建熱插拔式web架構(沙箱的建構)