組件化系統如何實現?

組件化的業務系統架構觀念據說已經提出來20多年了,可是至今沒有見到讓人信服的組件化業務系統(注:組件化≠模塊化).關於業務組件是什麼,長什麼樣子,如何實現,又有什麼樣的遠景?
組件介紹這篇文章很詳細的闡述了作者在業務組件的想法。

下面是文章的部分內容:

組件化的業務系統架構觀念據說已經提出來20多年了,可是至今沒有見到讓人信服的組件化業務系統(注:組件化≠模塊化).關於業務組件是什麼,長什麼樣子,如何實現,又有什麼樣的遠景? 大家也都做了很多思考和討論.
看了社區裏的一些內容,再加上平時跟同事們的交流和討論,對組件化業務系統的實現產生了一點想法。下面我說下我的想法,歡迎大家來拍磚討論。
        我覺得目前大家對業務組件有一個共識:就是各個業務組件相對獨立,並且具有可組裝性和可插拔性。
        每個組件的運行僅依賴於平臺或者容器,組件與組件之間不存才直接的耦合關係。同時,組件與組件之間又並非絕對的獨立。組件經過組裝後可以與其他的組件進行業務上的交互。比如銷售組件與財務組件,一筆銷售業務的完成必定會產生一筆或幾筆財務的業務,如銷售發票的開出和一筆新的應收應付或者現金銀行的記賬。又比如,採購與庫存管理,當採購的需求被提出,那麼是不是要先看看倉庫是不是有存貨呢?如果本倉庫沒有,是否允許從其他倉庫調撥呢?等等等等……,諸如此類的業務場景無法窮盡,而不同行業不同規模的用戶他們的業務過程又各自不同。
        也就是說,組件之間的交互在業務上存在着不可規範和不可窮盡的特點.這是個比較頭疼的問題,暫且記下,稍後再做討論。
        另外,我的理解:組件化是介於模塊化與應用系統集成之間的一個概念.關於組件化、模塊化、應用的不同,社區中的一篇文章寫得很好。這篇文章的最後,提到了組件化不同於模塊化,引文:模塊化開發不同於組件開發,模塊化開發只是在邏輯上做了切分,物理上(開發出的系統代碼)通常並沒有真正意義上的隔離,一切都只是在文檔中。文章中間也提到過組件化與應用集成的不同,引文:EAR或者WAR部署的是一個企業應用,請注意EJB規範中明確說:The Enterprise JavaBeans architecture is a architecture for the development and deployment of component-based (distributed) business applications(EJB 2.x和3.x唯一的區別是2.x有distributed),它們有自己的應用域,彼此相互隔離(簡單的看,它們有各自獨立的會話管理)。.NET也是有自己的應用域概念。
        根據上面所描述,結合我把組件化放置到模塊化和應用集成之間的定位。組件化應比模塊化更獨立,但比應用集成結合得更加緊密。藉助上面提到的那篇文章分析的,引文:基於應用的部署導致了三個隔離問題:交互(界面)隔離程序訪問隔離數據隔離.來看看組件化、模塊化、應用集成的區別,以更清晰的看清楚組件化的位置。。。。。。

關於更多的業務組件的內容.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章