【一】-軟體架構設計過程 軟體架構設計尚沒有萬靈的方法論支援,還是個非常新興的行業,給出個人理解的行業軟體架構設計過程,受個人水平有限,僅供參考: 1.業務分析:針對目標行業的業務戰略、藍圖、業務功能及流程進行分析,提出其中部分功能可以使用資訊化進行處理,通過分析可以得出資訊化要解決的問題。 2.解決方案設計:根據業務戰略,形成行業資訊化解決方案。他是一個系統組,同時明確各系統間的支撐關係。 3.系統功能設計:明確資訊化系統功能列表及功能層次(層次,例如經驗決策層工,管理層功能,業務操作功能等),將功能散列在這些層次中,根據功能及應用特點形成一個或者多個子系統。可參考理解。 4.系統架構設計:針對某一系統明確系統IT支撐表達,層次化關係表達及功能、技術核心元素 5.技術體系設計:針對系統的介面、資料存放區,技術路線、部署及實現抽象進行設計 總體過程如所示 【二】-系統總體架構設計 統總體架構非常重要,但在表達上都不盡相同,下面介紹幾種常用的系統架構模式,供參考: ASSF(access-service(biz)-standard-fundation)模式:訪問-服務(業務功能)-標準-基礎,對系統架構各個層次均有表達,但部署應用模式需要有單獨說明,如方式組織系統總體架構:
Location模式:適合集團級應用,對於應用邏輯表達較為清晰,如所示: 3 management-level模式:表達從決策層-管理層-操作層各個層次使用的功能。對於系統功能表達較為清晰,對於與客戶達成一致性理解有較好效果,如所示: 個人比較推薦ASSF模式做為主架構,同時制定Location模式與3management-level模式附加說明系統,從各個層次表達系統架構。 【三】-系統架構中的資料分布設計 在大型系統中,資料分布設計非常重要,整理資料分布設計的6中常見策略,僅供參考: 獨立Schema:當一個大系統由相關的多個小系統組成,且不同小系統具有互不相同的資料庫Schema定義。獨立模式可管理性高,通訊開銷小。 集中:一個大系統必須支援來自不同地方的訪問,或者該系統由多個不同的小系統組成,而資料進行集中化,統一格式儲存。可管理性、資料一致性高。
分區:分為水平分析與垂直資料分割,當系統為“地區分布廣泛的使用者”提供“相同服務”時,常常使用水平資料分割策略。垂直資料分割為欄位分隔,一般較少使用。採用分區方式,延展性好。 複製:在整個分布式系統中,儲存多個副本、並且以某種機制保持多個資料副本之間的資料一致性。複製方式可有效提升資料可靠性。 子集:“子集”是“複製”的特殊方式,就是某節點因功能或非功能考慮而保持全體資料的一個相對固定的子集。
重組:不同資料節點因要支援的功能不同,而以不同的schema保持資料---但本質上資料時同源的。重組以“重新組織”的格式進行傳遞和保持。
6中策略總結可以使用如表示:
在應用過程中,應當靈活使用各種策略,策略應用的一般化原則如下所示:
總結:在應用過程中,根據實際應用進行分析,選擇合適的資料分布策略,也可以組合使用,合適的資料分布策略將使系統的穩定性及功能滿足新大大提高,可以使用如下過程確定資料分布策略: 在表格中列出6種不同的資料分布策略,如下表所示:
| 名稱 |
對嗎 |
好嗎 |
總分 |
| 獨立 |
是/否 |
0~100分 |
|
| ... |
|
|
|
根據系統應用特點,通過以上分析,去除不適用的策略,根據總分確定所採用的資料分布策略,在有些地方也可以使用組合策略。 【四】-系統架構中的Data Integration設計 在系統架構設計中,經常面臨多個業務系統Data Integration共用的問題,以下主要分享Data Integration設計的相關內容。 資料物理集中:將全部資料放在一起,由一個統一的資料庫伺服器管理,實現資料統一訪問,訪問效率高、適合大資料量查詢的決策分析應用其缺點是即時性較差、風險大、時間長 邏輯集中:適用於業務系統分布在多個地方,由統一的整合平台實現各物理分布資料之間的資料共用,可即時訪問分布在各處的資料,實施速度快,其缺點是受網路傳輸影響,不適合長事物。 例如在銷售行業的客戶資訊整合,如果是邏輯集中,那就是客戶資料依然存在於各個地方,但是可以通過統一的資料整合平台進行訪問。如果是物理集中,則可以通過集中的資料庫進行訪問。 推薦結合邏輯集中與物理集中的優勢,在實施初期採用邏輯集中,快速實現統一訪問與資料共用,對訪問量大、即時性要求不高的資料逐步實現物理集中,從而提高訪問效率,類似於BI技術中的自頂向下與自底向上想結合的Data Integration策略。 下面介紹Data Integration設計的三種常用模式: 資料聯邦模式(DataFederation):將分布的資料邏輯集中,應用通過訪問整合平台的虛擬資料庫進行資料訪問,資料在不同資料庫執行個體中,此時,資料整合平台做為資料訪問通道。 資料複製模式(Data Replication):採用資料複製模式,通過資料一致性服務 實現多個資料來源的資料一致性,各資料庫均保留共用資料備份。 基於介面的Data Integration模式(Interface Level):系統間通過介面適配器方式共用資料,比較適合即時性較高且資料量較小應用。介面模式適合分區及獨立模式的Data Integration。 在實際應用中,可以根據特點,靈活選用相應的策略。 【五】-應用整合設計 系統架構設計中,多個系統經常需要進行應用互動,這時就需要進行應用整合設計,介紹幾種常用的應用整合概念: EAI:EAI(EnterpriseApplication Integration),是公司專屬應用程式整合EAI是將基於各種不同平台、用不同方案建立的異構應用整合的一種方法和技術。EAI通過建立底層結構,來聯絡橫貫整個企業的異構系統、應用、資料來源等,完成在企業內部的ERP、CRM、SCM、資料庫、資料倉儲,以及其他重要的內部系統之間無縫地共用和交換資料的需要。有了EAI,企業就可以將企業核心應用和新的Internet解決方案結合在一起。 MOM:MOM指的是利用高效可靠的訊息傳遞機制進行平台無關的資料交流,並基於資料通訊來進行分布式系統的整合。MOM互動策略如所示:
SOA:服務導向架構(Service-OrientedArchitecture,SOA)是一個組件模型,它將應用程式的不同功能單元(稱為服務)通過這些服務之間定義良好的介面和契約聯絡起來。介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平台、作業系統和程式設計語言。這使得構建在各種這樣的系統中的服務可以一種統一和通用的方式進行互動。 常用的應用整合互動策略如所示: 在實際應用過程中,只有最適合的策略,沒有最好的策略,需要綜合考慮實施的複雜度,理論上來說,匯流排模式是比較優良的應用互動策略,可以實現完全的平台無關性與服務重用,但是相對來說改造及維護難度較大,無意中也增加了應用整合的複雜度。因此,在選擇過程中需要謹慎評估整合規模及整合策略的適用性。如果企業中只有兩個系統需要進行互動,採用硬式編碼方式也有可能是非常適用的策略。 【六】-介面設計 介面設計是系統架構師的重要職責,首先明確幾個概念 1.協作決定介面! 2.子系統或者實現決定介面是錯誤的! 給出介面設計的一般步驟如下: |