架構設計

企業商務模型:

????????企業商務模型的內容主要包括主營業務、商務模式、商務主體、競品分析、組織架構、商務運作模型和業務流程等。1)主營業務即公司做什么業務?2)商業模式即公司怎么賺錢?3)商務主體即哪幾個人在一起做這門生意?4)競品分析即了解競爭對手的情況?組織架構即公司部門是怎么劃分的,組織架構圖中標出人數,根據系統與業務之間對應關系,可以了解系統中哪些模塊使用頻率高,以及業務與其對應模塊的復雜度?5)商務運作模型即公司是如何運作的,售前做計劃,找供應商把東西買進來后,經過服務和結算,再賣給我們的經銷商和采購商,使我們獲得利潤,售后進行大數據分析最后又指導著我們的售前,整個過程形成良性循環。可以把一家公司想象成一臺機器,輸進去的是錢,轉一轉后,又能夠生出更多的錢出來。6)最后是業務流程和附檔資料,業務流程包括預訂流程、訂單處理流程、產品供應流程、財務結算流程、賬戶管理流程。企業商務模型的建立,指導著整個應用系統模型的建立,它是整個應用系統建設的基礎和前提,畢竟應用系統是為業務服務的。

架構設計:

????????架構現狀的內容主要包括:功能架構、應用架構、數據設計和物理架構。功能架構主要包括功能、角色和權限三部分。

????????功能是企業服務,用戶使用的每一個功能,就是企業的每一個服務。角色是用戶操作的歸類,功能與角色的對應關系即權限。了解系統架構的現狀,從功能架構開始。

????????應用就是處理器,應用架構的內容包括現有架構圖、Web 應用現狀、作業小應用(Job)現狀和接口架構。其中,接口是應用層面的關鍵,它是一個程序與另外一個程序交互的部分。應用架構圖表列出了哪些業務邏輯沒有被重用,換句話說業務邏輯被多少個應用調用,就需要被重復開發多少次,一旦改了一個地方,就要同時改多個地方,導致系統開發效率非常低下。各業務邏輯如預訂邏輯,雖然被多個應用調用,但它們與應用是沒有關系的,業務邏輯可以獨立的存在,也可以寄宿于多個應用。業務邏輯是一個業務操作的抽象,而業務應用與業務部門共同完成了業務操作。

? ??????數據設計依賴于企業的數據,而不是數據庫的設計,對企業數據適當做歸類,會直接導致數據設計,最終畫出 E-R 圖,數據設計完成后,數據庫設計就自然而然出來了。超越庫、超越表去看這張 E-R 圖,可以看出它包括產品、訂單、結算、用戶和基礎設施這五類數據。低層的 E-R 圖可以變,但是高層的 E-R圖一般不會變化,因為它是根據你的業務模型而定,業務模型穩定,高層E-R 圖也是穩定的。數據庫只要早期設計得好,是可以做到易伸縮、易拆分的。在業務發展的早期它可以是一個庫,里面有 5 個模塊,中期可以分為5 個庫,后期以更低級別可以分為更多的庫,這與業務階段及系統復雜度相關。在數據的設計完成后,數據庫的設計也就很容易規劃和調整。

? ??????數據的流轉狀態即狀態圖。通過數據狀態圖去了解現有數據流轉變遷,如國內訂單狀態變遷圖,這種圖的價值不僅在于數據庫層,還在于服務化。

? ??????物理架構的內容主要包括 IDC 機房、機房之間訪問關系、機房內服務器物理部署圖、機房與業務分布、網站架構、數據庫架構、集群清單和域名清單。將這些內容以列表和圖形方式整理出來,就會很容易了解和發現問題,只有發現問題才能解決問題,特別是在全局體系架構方面,這也是表和圖的價值所在。物理架構的不合理,應用架構是很難合理的,因為物理架構是我們的基礎設施,位于最底層,下層為上層服務,運維要為應用服務,應用要為業務服務,業務要為客人服務。

領域模型:

? ??????領域模型關注概念,關注職責、關注邊界、關注交互,只有先確定職責和邊界,交互才會很清晰。領域模型是針對現有問題域提出一個系統解決方案,然后在圖表上建立完整的模型,如同用 AutoCAD 畫的施工圖紙一樣。領域模型屬于概要設計階段,對于單個應用架構設計,首先需要了解業務和功能需求、用例圖、用例活動圖,然后才是領域模型。業務流程圖是對業務操作的抽象,領域圖是對業務邏輯代碼的抽象。

? ??????建立領域詞匯是建立領域模型的第一步,它能統一詞匯明確概念,以減少一詞多義、一義多詞的情況。概念一旦確定,再擴展屬性和行為,然后把它當作一個單元與其它事物構建在一起,就會很容易形成模型,領域模型與企業商務模型中的業務流程圖有參考對應關系。領域模型在實現時可大可小,在業務的早期,在系統比較小的情況下,它有可能是一個類。當系統做大了以后,它可能是個 DLL 庫。再做更大一點的時候,它可能是一個服務,給不同的應用去調用。每一個方法都有成為服務的潛質,特別是在系統中后期。領域模型是業務邏輯代碼的施工圖紙,它不僅有利于對現在系統業務邏輯的了解,同時也指導未來的架構改造。

架構規劃:

? ??????當我們了解了業務、了解了架構的現狀,發現現有架構的問題,接下來就可以做中遠期架構規劃,以及架構的調整和具體實施。架構規劃內容包括:頂層架構規劃、網站功能規劃、應用規劃、SOA 規劃、分層架構規劃、數據庫規劃和物理規劃等。

? ??????在做網站功能規劃的時候,更多需要考慮現狀,而不是未來調整的部分,如果沒有很大問題,則不做調整,尊重歷史。因為有些東西(如名稱)用戶已經使用很久了,調整往往比較難,合理大于準確。SOA 規劃就是接口規劃,它的歸類與商務模型中的業務流程有參考對應關系。

? ??????先簡單介紹下當前兩種比較流行的分層架構體系,一種是領域架構:倉儲層(Repository Layer)、領域層(Domain Layer)、應用服務層(Application Layer)、表現層(Presentation Layer)和基礎公共層(Infrastructure Layer),見下圖。


另一種是相對傳統地分為三層:數據層(Data Layer)、應用邏輯層(Business Layer)和表現層(Presentation Layer),見下圖。


????????領域架構和三層架構之間有什么區別?我們是這樣認為的,在早期我們做三層架構的時候,大都以表來做驅動的,在做領域架構的時候,大都以業務邏輯來驅動的,兩者的區別確實比較明顯。但到了現在,如果都以業務邏輯為中心的話,實際上兩者并沒有本質區別。當時,我所在公司采用了第二種分層法,我們希望把分層做得極簡,也就是說哪怕剛畢業進來的員工,在分層時基本上也不會亂。而相對第一種分層法,第二種分層法簡單很多。每一個應用的代碼量都不應該很大,一旦工程變得過大,我們就會把它適當拆分,而不是全部放在一個單塊應用里。總之,我認為分層越簡單,整個軟件結構就越清晰,代碼就越容易統一。把工程做得極簡,才有利于復制,有利于業務的快速構建,有利于規模化、穩定可靠。

?????????以上簡單地介紹了總體架構的編寫方法,我們的編寫思路是先了解業務,建立企業商務模型,主要包括靜態的商務主體、組織架構和動態的商務運作模型和業務流程。接著了解架構現狀,建立現有信息系統模型,主要包括功能架構、應用架構、數據設計和物理架構。一個是商務,一個是電子,兩者即是整個公司的電子商務系統。然后在企業商務模型和現有系統模型之上建立領域模型,領域模型它相對穩定,直接指導著接下來的架構規劃,最后一定要落地即架構實施。

案例參考:https://github.com/das2017/TopArchDemo

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,744評論 3 421
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,879評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,935評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,325評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,534評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,084評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,892評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,322評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,800評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,084評論 2 375

推薦閱讀更多精彩內容