企業 SOA 設計 2 元件化產品開發平台

2022-02-04 11:46:22 字數 1457 閱讀 5759

平台整體結構

在產品開發過程中,為了達到業務級別的較大粒度重用,我們需要把縱向把業務進行拆分,以業務元件的形式進行開發,並最終把多個開發完成的業務元件進行組合,形成最終的軟體產品。

按照元件化開發的產品,是基於乙個公共的產品開發平台來建立的。由平台來提供所有的底層設施。平台包括技術平台和業務平台兩個層面。在技術層面上,平台提供了一系列的類庫、框架、元件、工具,以及為業務元件化提供相應的技術支撐。在業務層面上,業務平台中積累了大量的封裝完善的業務元件,以及一些常用的業務控制項,以供開發新產品時進行選配。同時,平台還為整個軟體過程提供一系列的其它支援,例如工具、設計器、管理介面等。

下圖,是平台的整體結構圖:

圖中羅列了大部分的關鍵組成部分,細節本篇不述。

元件整合平台

對於乙個獨立的業務,我們可以將其封裝為乙個獨立的業務元件,並最終放到元件庫中。業務元件之間,則以服務、事件兩種形式進行互動。要支援這種模式的互動,技術平台還需要提供幾個技術框架:外掛程式平台、服務容器、事件匯流排。

下圖是元件整合架構:

產品構成

下圖是乙個完整產品的元件構成圖:

由於我們的產品開發平台必須要支援 721 客戶化定製,所以同乙個業務元件還對應不同的業務通用級別進行劃分:organization common 表示組織架構元件最通用的部分,org part1 表示組織架構元件的可選包。而 customiztion 則可以對引用的業務元件做深入的定製和擴充套件,而不需修改引用元件的**。

元件內部架構

對於單個的業務元件,其內部的架構依然採用領域驅動的分層架構:

重點在於 domain 包,它不但包括領域實體,還包括了元件事件、元件服務介面,這些都是領域的核心。

位於底層的技術平台,提供一系列支援:ioc/aop、屬性擴充套件框架、領域實體框架、721定製化框架、資料庫生成框架等……

結尾

其實,元件化架構設計中,最為複雜是分析出乙個封裝完好的元件,所要面向的使用者是哪些,這些使用者分別對元件有哪些需求,而這個架構如何滿足這一系列需求。例如,我們在設計過程中,對這些方面進行了分析:元件自身的發展需求、元件中各組成部分的可擴充套件性、元件間的互動需求、系統整合需求、專案組定製化需求、系統外互動需求、易用性。

歡迎感興趣的朋友交流。

Vue再學習2 元件開發

在main.js中配置,配置完成之後可以全域性使用 1 引入元件物件 import globaltitle from components globaltitle.vue 2 宣告全域性元件 vue.component 元件名 元件物件 vue.component globaltitle globa...

Android元件化開發實踐(二) 元件化架構設計

先說說我自己的元件化架構設計方案,請看下圖 元件化架構設計圖 為了便於理解,按照從下往上的順序來講講我的分層思路。元件之間必須遵循以下規則 現在已經有很多成熟的元件化框架了,比較著名的有阿里的手淘atlas框架但是這些框架可能都過於複雜,上手難度高,對很多人來說並不一定好用。總的說來,沒有最好的架構...

zt Flash V2元件開發 收藏

在flash mx professional 2004中,開發人員開可以在專案中自己建立新的v2元件。在開始開發v2元件之前,首先要了解movieclip類 uiobject類和uicomponent類,因為它們是flash v2元件的基類,所有flash自帶的元件都是它們的直接或間接子類。開發乙個...