版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、應用架構(gòu)設計實踐,Author:謝峰,架構(gòu)概念 應用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系 應用架構(gòu)案例,內(nèi)容介紹,架構(gòu)概念 應用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系 應用架構(gòu)案例,架構(gòu)基本概念什么是架構(gòu),定義了系統(tǒng)的組織,組成系統(tǒng)的結(jié)構(gòu)元素、接口以及這些元素在協(xié)作中的行為,關系的設計和管理原則。,架構(gòu)基本概念什么是架構(gòu)基線,構(gòu)建基線 架構(gòu)基線:架構(gòu)基線是一個“小的、皮包骨架的”系統(tǒng),是系統(tǒng)整個生命周期的開發(fā)準則,適用于所有的迭代周期; 系統(tǒng)實施 系統(tǒng)實施基于架構(gòu)基線,在架構(gòu)基線的指導下,完成系統(tǒng)的構(gòu)件、節(jié)點,使“基線”進化為性能完善的系統(tǒng);,系統(tǒng)構(gòu)件,架構(gòu)基線,架構(gòu)基本概念架構(gòu)設計目標,理解系統(tǒng) 架構(gòu)使開發(fā)人
2、員、管理人員,客戶以及其他項目相關人員理解系統(tǒng); 組織開發(fā) 通過明確劃分的子系統(tǒng),以及接口,降低協(xié)調(diào)開發(fā)的成本; 鼓勵重用 設計良好可重用的子系統(tǒng)加速系統(tǒng)的構(gòu)建進程; 進化系統(tǒng) 應對變化環(huán)境,構(gòu)建彈性系統(tǒng)避免變化對系統(tǒng)產(chǎn)生非期望的效果;,架構(gòu)基本概念架構(gòu)分類,業(yè)務架構(gòu)(Business Architecture) 技術(shù)架構(gòu)(Technical Architecture) 企業(yè)架構(gòu)(Enterprise Architecture),架構(gòu)分類業(yè)務架構(gòu),業(yè)務架構(gòu)是對需求的描述,以及業(yè)務模型的定義,其中包括領域模型(Domain Object),業(yè)務流程模型(Business Process Mode
3、l),系統(tǒng)參與者(Actor)。,架構(gòu)分類技術(shù)架構(gòu),技術(shù)架構(gòu)是對系統(tǒng)使用的技術(shù)一個規(guī)范性的定義,它包含非功能性的可重用構(gòu)件,系統(tǒng)結(jié)構(gòu)的設計規(guī)范,開發(fā)規(guī)范,物理環(huán)境,測試環(huán)境,部署環(huán)境的定義,以及系統(tǒng)配置管理。,架構(gòu)分類企業(yè)架構(gòu),企業(yè)架構(gòu)指的是在對一個企業(yè)的業(yè)務戰(zhàn)略和流程理解基礎之上,進行信息化的頂層設計,對企業(yè)現(xiàn)有的業(yè)務架構(gòu)和技術(shù)架構(gòu)進行有效的整合,形成靈活健壯的IT結(jié)構(gòu),構(gòu)建的和諧IT環(huán)境。,架構(gòu)分類宏觀架構(gòu) (Macroscopical Architecture),架構(gòu)概念 應用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系 應用架構(gòu)案例,應用架構(gòu)介紹業(yè)務架構(gòu)示例,應用架構(gòu)介紹技術(shù)架構(gòu)組成,Core Arc
4、hitecture,Subscription,Data Analysis,BPM,Trace,Utilities,Toolkits,Schedule,Connector,Connector,Connector,Portal,PMI,Rule Engine,應用架構(gòu)介紹系統(tǒng)協(xié)同,Application A,Application B,Connector (Middle DB),Connector (Web Service),Application A,Application B,Application A,Application B,Connector (JCA),應用架構(gòu)介紹設計原則,分而自治
5、(Boundary Of Responsibility) 面向服務(Service Oriented) 協(xié)同規(guī)劃(Collaboration),應用架構(gòu)介紹分而自治,分而自治(Boundary Of Responsibility) 功能性與非功能性之分 通用與定制之分,應用架構(gòu)介紹面向服務,面向服務(Service Oriented) 面向接口 組件黑盒 規(guī)范的服務描述,應用架構(gòu)介紹協(xié)同規(guī)劃,協(xié)同規(guī)劃(Collaboration) 泛化連接器 松散耦合 簡單部署,應用架構(gòu)介紹應用架構(gòu)實現(xiàn)方法論,整體規(guī)劃 Vertical Solution (Use Case, Domain Model, Bu
6、siness Sequence, etc) Horizontal Solution (Prototype, Components, Service Publication, Technical Decision) 環(huán)境配置 Workspace IDE 編碼實現(xiàn) Object Oriented Design Pattern Testing,應用架構(gòu)介紹應用架構(gòu)實現(xiàn)方法論(續(xù)),部署 Deployment Script Application Service Environment Testing,架構(gòu)概念 應用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系 應用架構(gòu)案例,架構(gòu)概念 應用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系
7、 應用架構(gòu)案例,應用架構(gòu)案例案例背景,本案例是一個實際的企業(yè)級應用系統(tǒng),主要作用是為企業(yè)的其他信息系統(tǒng)提供相關的數(shù)據(jù)分析服務,包括報表,圖表,和Dashboard。 系統(tǒng)目標 構(gòu)建一個數(shù)據(jù)分析服務組件 能夠支持數(shù)據(jù)分析資源擴展 提供標準的數(shù)據(jù)分析服務,被其他企業(yè)信息系統(tǒng)所使用 系統(tǒng)環(huán)境 支持分布式應用 支持多種協(xié)議 提供定時服務 提供訂閱服務 運行高性能 提供管理控制臺 設計約束 需要支持熱部署,應用架構(gòu)案例架構(gòu)設計路線圖,應用架構(gòu)案例系統(tǒng)整體需求描述,提供統(tǒng)一的數(shù)據(jù)分析服務 提供定時服務,定時產(chǎn)生數(shù)據(jù)分析結(jié)果(月報,年報,周報) 提供訂閱服務,輸出數(shù)據(jù)分析結(jié)果 支持多交互協(xié)議 支持多數(shù)據(jù)分析
8、資源的擴展 支持運行時的擴展性,熱部署,應用架構(gòu)案例確定架構(gòu)范圍,針對需求,確定設計點,作為架構(gòu)設計的范圍,應用架構(gòu)案例 子架構(gòu):分析、設計、實現(xiàn)與驗證 集成系統(tǒng)總體架構(gòu),功能架構(gòu)子系統(tǒng)劃分,對于任何系統(tǒng)而言,系統(tǒng)的架構(gòu)都需要從對系統(tǒng)的分解入手。劃分子系統(tǒng)的主要目的在于: 簡化系統(tǒng)設計工作 提高并行開發(fā)效率 便于系統(tǒng)架構(gòu)的擴展,功能架構(gòu)子系統(tǒng)劃分分析,功能性劃分功能性組件 數(shù)據(jù)分析組件:提供數(shù)據(jù)分析基本服務,產(chǎn)生數(shù)據(jù)分析結(jié)果(圖片,文件) 定時服務組件:提供定時機制,定時調(diào)用數(shù)據(jù)分析服務和訂閱服務 訂閱服務組件:提供訂閱服務基本服務,(Mail,FTP) 管理控制臺:系統(tǒng)服務配置設定(定時服務
9、,訂閱服務) 非功能性劃分非功能性組件 部署管理組件:運行時裝載數(shù)據(jù)分析的模版,計算組件,數(shù)據(jù)源; 數(shù)據(jù)訪問組件:提供訪問數(shù)據(jù)源服務(數(shù)據(jù)庫,文件) 外部交互適配器:提供支持多種交互協(xié)議的連接適配器(SOAP,RMI-IIOP) 通用與定制之分定制性組件 JasperReport:提供基于JasperReport的數(shù)據(jù)分析服務 CrystalReport:提供基于水晶報表的數(shù)據(jù)分析服務,功能架構(gòu)子系統(tǒng)劃分設計,根據(jù)原則劃分好的子系統(tǒng),需要有明確的接口定義,來代表其子系統(tǒng)提供的功能,功能架構(gòu)子系統(tǒng)劃分實現(xiàn)與驗證,在系統(tǒng)實施過程中,一般子系統(tǒng)會使用 不同的工作目錄來實現(xiàn)。每個工作目錄會需要 包含下
10、列信息: 源程序 組件依賴配置 部署腳本 測試程序,邏輯架構(gòu)系統(tǒng)分層,系統(tǒng)分層的主要目的在于: 細化子系統(tǒng),確定子系統(tǒng)組件之間的協(xié)作關系 提高子系統(tǒng)的可重用性 提高子系統(tǒng)的可測試性 提高子系統(tǒng)的可維護性 提高子系統(tǒng)的可擴展性,邏輯架構(gòu)系統(tǒng)分層分析,定義分層邊界劃分原則 本系統(tǒng)按照服務消費者和服務提供者關系來劃分層次 定義消費者和服務提供者關系,邏輯架構(gòu)系統(tǒng)分層設計,可擴展架構(gòu):支持資源擴展,數(shù)據(jù)分析資源包括各種數(shù)據(jù)分析實現(xiàn)技術(shù)。支持資源擴展的主要需求如下: 支持數(shù)據(jù)分析資源的可替換 支持數(shù)據(jù)分析資源的可升級 實現(xiàn)統(tǒng)一的數(shù)據(jù)分析服務接口,可擴展架構(gòu):支持資源擴展分析,通用性和定制性劃分 特定數(shù)據(jù)
11、分析資源需要定制 統(tǒng)一的數(shù)據(jù)分析接口代表通用行為 通用性和定制性結(jié)合 行為抽象,抽象特定數(shù)據(jù)分析資源的通用行為 實現(xiàn)獨立,把特定數(shù)據(jù)分析資源的實現(xiàn)看成是行為抽象的一個特定實現(xiàn),可擴展架構(gòu):支持的資源擴展設計,J2EE Pattern:策略模式,現(xiàn)流行方式是采用Spring的 ApplicationContext或者反射模式。,可擴展架構(gòu):支持的資源擴展實現(xiàn),定義接口 public interface ReportingServiceIF byte loadReport(String reportId, Map context, int binaryType); 定義Spring配置 通過制定B
12、eanName來判斷使用那個實現(xiàn)類 ReportingServiceIF service = (ReportingServiceIF) ApplicationCtx.getBean(serviceName); byte reportBinary = service.loadReport(reportId, context, binaryType);,外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議,系統(tǒng)的外部接口會被多種交互協(xié)議所調(diào)用,對于外部接口架構(gòu)來說,主要需求如下: 支持系統(tǒng)外部接口調(diào)用協(xié)議擴展 重用數(shù)據(jù)分析服務組件 簡化外部接口調(diào)用的實現(xiàn),外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議分析,職責
13、劃分 協(xié)議適配器:適配器負責使用特定交互協(xié)議調(diào)用數(shù)據(jù)分析服務 重用數(shù)據(jù)分析組件:數(shù)據(jù)分析組件不涉及具體的協(xié)議交互 泛化連接器接口 抽象交互行為,定義統(tǒng)一的交互接口 封裝特定協(xié)議交互細節(jié),屏蔽交互復雜性,外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設計,J2EE Pattern: Faade模式,通過coarse-grained的接口,屏蔽了低層次的實現(xiàn)細節(jié),這也是 faade模式的一種應用。,外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設計,J2EE Pattern:策略模式,Delegate,Delegate模式, 對于具體的調(diào)用實現(xiàn)類來說,它不負責具體的業(yè)務邏輯處理, 而只是負責代理特定的業(yè)務
14、實現(xiàn)對象,并且封裝對這個對象 的引用過程。常用的方式有ServiceLoacator,封裝了SOAP, Remote Interface, Local Interface的調(diào)用。,外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設計,外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議實現(xiàn),EJB Adapter public interface ReportingServiceEJBAdapter extends EJBObject byte loadReport(String serviceClassName, String reportId, Map context, int binaryType) t
15、hrows RemoteException; EJB Delegate public class ReportingServiceEJBDelegate implements PCEReportingServiceDelegateIF public byte loadReport(String serviceName, String reportId, Map context, int binaryType) byte binaryArray = null; . ReportingServiceEJBAdapterHome remoteHome = (ReportingServiceEJBAd
16、apterHome) ServiceLocator.getInstance().getRemoteHome(ReportingServiceEJBAdapter, ReportingServiceEJBAdapterHome.class); ReportingServiceEJBAdapter remote = remoteHome.create(); binaryArray = remote.loadReport(serviceName, reportId, context, binaryType); return binaryArray; ,可靠性架構(gòu):異常處理機制,異常處理是系統(tǒng)可靠性的
17、表現(xiàn),異常分為三種: 無法恢復異常,記錄異常日志 可恢復異常,通知使用者通過特定操作修復異常 容錯異常,系統(tǒng)根據(jù)發(fā)生的異常類型決定通過特定邏輯修復異常,可靠性架構(gòu):異常處理機制分析,架構(gòu)統(tǒng)一 使用穩(wěn)定的架構(gòu)控制異常,包括捕獲,日志,跳轉(zhuǎn) 異常處理職責劃分,判斷異常處理范圍,處理不了,就拋出 異常包裝,低層次異常需要被高層次異常包裝 (1*N),可靠性架構(gòu):異常處理機制設計,可靠性架構(gòu):異常處理機制設計,可靠性架構(gòu):異常處理機制實現(xiàn),對于不可恢復異常而言,典型的實現(xiàn)方式如下: try callService(); catch (RuntimeException ex) /低層次的Exceptio
18、n tracer.logError(ex); throw new NewRuntimeException(e); /高層次的Exception 不可恢復異常向上層拋出,它面對的不是許許多多低層次的Exception,而是它的直接下層組件的Exception。 對于可恢復的異常而言,典型的實現(xiàn)方式就是直接在catch中,進行新的邏輯處理,而不是繼續(xù)向上層拋出。,可維護性架構(gòu):運行時的擴展性,運行時可擴展性要求服務能及時更新,其中包括: 更新數(shù)據(jù)分析邏輯計算組件服務 更新數(shù)據(jù)分析模版 更新數(shù)據(jù)源裝載組件服務 更新數(shù)據(jù)分析結(jié)構(gòu),這也是常說的熱部署!,可維護性架構(gòu):運行時的擴展性分析,資源的熱部署,相關配置文件更新 業(yè)務組件的熱部署,可維護性架構(gòu):運行時的擴展性設計,可維護性架構(gòu):運行時的擴展性實現(xiàn)與驗證,構(gòu)建資源管理文件系統(tǒng) 構(gòu)造自定義ClassLoader掃描資源管理文件系統(tǒng),栽入ClassPath 更新服務,替換自定義ClassLoader,應用架構(gòu)案例 子架構(gòu):分析、設計、實現(xiàn)與驗證 集成系統(tǒng)總體架構(gòu),架構(gòu)集成,為什么要進行架構(gòu)集成 把系統(tǒng)的不同問題的設計進行有效的結(jié)合 系統(tǒng)的整體架構(gòu)不是簡單的堆砌,需要各個部分的協(xié)調(diào) 架構(gòu)集成的時機 在每個子架構(gòu)設計過程中,不斷地集成 集成的策略 持續(xù)的集成,集成會引起對架構(gòu)的重新認識 架構(gòu)需要不斷地在集成中重構(gòu),總
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版高??蒲谐晒D(zhuǎn)化合同管理規(guī)定2篇
- 2025年度社區(qū)垃圾分類與回收處理服務合同范本2篇
- 2025年度智能交通系統(tǒng)技術(shù)改造合同2篇
- 二零二五年度房地產(chǎn)維修基金補充協(xié)議合同模板3篇
- 2025年度生鮮乳產(chǎn)業(yè)鏈上下游協(xié)同發(fā)展協(xié)議3篇
- 螞蟻運糧項目課程設計
- 2025年度汽車租賃合同糾紛調(diào)解協(xié)議書2篇
- 二零二五年度干掛石材研發(fā)與生產(chǎn)合作協(xié)議2篇
- 海南衛(wèi)生健康職業(yè)學院《植物學實驗》2023-2024學年第一學期期末試卷
- 2025年度男方債務處理離婚協(xié)議示范書3篇
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應用實踐指導材料之11:“5領導作用-5.5崗位、職責和權(quán)限”(雷澤佳編制-2025B0)
- 物聯(lián)網(wǎng)安全風險評估剖析-洞察分析
- 2024年-江西省安全員C證考試題庫
- 物業(yè)保安培訓工作計劃
- 開題報告課件(最終)
- 期末測試卷-2024-2025學年外研版(一起)英語六年級上冊(含答案含聽力原文無音頻)
- 四位數(shù)乘四位數(shù)乘法題500道
- 高中化學競賽題--成鍵理論
- 康復中心組織結(jié)構(gòu)圖
- 屋頂光伏設備維保方案
- 裝表接電課件
評論
0/150
提交評論