版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、應(yīng)用架構(gòu)設(shè)計實踐,Author:謝峰,架構(gòu)概念 應(yīng)用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系 應(yīng)用架構(gòu)案例,內(nèi)容介紹,架構(gòu)概念 應(yīng)用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系 應(yīng)用架構(gòu)案例,架構(gòu)基本概念什么是架構(gòu),定義了系統(tǒng)的組織,組成系統(tǒng)的結(jié)構(gòu)元素、接口以及這些元素在協(xié)作中的行為,關(guān)系的設(shè)計和管理原則。,架構(gòu)基本概念什么是架構(gòu)基線,構(gòu)建基線 架構(gòu)基線:架構(gòu)基線是一個“小的、皮包骨架的”系統(tǒng),是系統(tǒng)整個生命周期的開發(fā)準(zhǔn)則,適用于所有的迭代周期; 系統(tǒng)實施 系統(tǒng)實施基于架構(gòu)基線,在架構(gòu)基線的指導(dǎo)下,完成系統(tǒng)的構(gòu)件、節(jié)點,使“基線”進(jìn)化為性能完善的系統(tǒng);,系統(tǒng)構(gòu)件,架構(gòu)基線,架構(gòu)基本概念架構(gòu)設(shè)計目標(biāo),理解系統(tǒng) 架構(gòu)使開發(fā)人
2、員、管理人員,客戶以及其他項目相關(guān)人員理解系統(tǒng); 組織開發(fā) 通過明確劃分的子系統(tǒng),以及接口,降低協(xié)調(diào)開發(fā)的成本; 鼓勵重用 設(shè)計良好可重用的子系統(tǒng)加速系統(tǒng)的構(gòu)建進(jìn)程; 進(jìn)化系統(tǒng) 應(yīng)對變化環(huán)境,構(gòu)建彈性系統(tǒng)避免變化對系統(tǒng)產(chǎn)生非期望的效果;,架構(gòu)基本概念架構(gòu)分類,業(yè)務(wù)架構(gòu)(Business Architecture) 技術(shù)架構(gòu)(Technical Architecture) 企業(yè)架構(gòu)(Enterprise Architecture),架構(gòu)分類業(yè)務(wù)架構(gòu),業(yè)務(wù)架構(gòu)是對需求的描述,以及業(yè)務(wù)模型的定義,其中包括領(lǐng)域模型(Domain Object),業(yè)務(wù)流程模型(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)的設(shè)計規(guī)范,開發(fā)規(guī)范,物理環(huán)境,測試環(huán)境,部署環(huán)境的定義,以及系統(tǒng)配置管理。,架構(gòu)分類企業(yè)架構(gòu),企業(yè)架構(gòu)指的是在對一個企業(yè)的業(yè)務(wù)戰(zhàn)略和流程理解基礎(chǔ)之上,進(jìn)行信息化的頂層設(shè)計,對企業(yè)現(xiàn)有的業(yè)務(wù)架構(gòu)和技術(shù)架構(gòu)進(jìn)行有效的整合,形成靈活健壯的IT結(jié)構(gòu),構(gòu)建的和諧IT環(huán)境。,架構(gòu)分類宏觀架構(gòu) (Macroscopical Architecture),架構(gòu)概念 應(yīng)用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系 應(yīng)用架構(gòu)案例,應(yīng)用架構(gòu)介紹業(yè)務(wù)架構(gòu)示例,應(yīng)用架構(gòu)介紹技術(shù)架構(gòu)組成,Core Arc
4、hitecture,Subscription,Data Analysis,BPM,Trace,Utilities,Toolkits,Schedule,Connector,Connector,Connector,Portal,PMI,Rule Engine,應(yīng)用架構(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),應(yīng)用架構(gòu)介紹設(shè)計原則,分而自治
5、(Boundary Of Responsibility) 面向服務(wù)(Service Oriented) 協(xié)同規(guī)劃(Collaboration),應(yīng)用架構(gòu)介紹分而自治,分而自治(Boundary Of Responsibility) 功能性與非功能性之分 通用與定制之分,應(yīng)用架構(gòu)介紹面向服務(wù),面向服務(wù)(Service Oriented) 面向接口 組件黑盒 規(guī)范的服務(wù)描述,應(yīng)用架構(gòu)介紹協(xié)同規(guī)劃,協(xié)同規(guī)劃(Collaboration) 泛化連接器 松散耦合 簡單部署,應(yīng)用架構(gòu)介紹應(yīng)用架構(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,應(yīng)用架構(gòu)介紹應(yīng)用架構(gòu)實現(xiàn)方法論(續(xù)),部署 Deployment Script Application Service Environment Testing,架構(gòu)概念 應(yīng)用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系 應(yīng)用架構(gòu)案例,架構(gòu)概念 應(yīng)用架構(gòu)介紹 火龍果架構(gòu)培養(yǎng)體系
7、 應(yīng)用架構(gòu)案例,應(yīng)用架構(gòu)案例案例背景,本案例是一個實際的企業(yè)級應(yīng)用系統(tǒng),主要作用是為企業(yè)的其他信息系統(tǒng)提供相關(guān)的數(shù)據(jù)分析服務(wù),包括報表,圖表,和Dashboard。 系統(tǒng)目標(biāo) 構(gòu)建一個數(shù)據(jù)分析服務(wù)組件 能夠支持?jǐn)?shù)據(jù)分析資源擴(kuò)展 提供標(biāo)準(zhǔn)的數(shù)據(jù)分析服務(wù),被其他企業(yè)信息系統(tǒng)所使用 系統(tǒng)環(huán)境 支持分布式應(yīng)用 支持多種協(xié)議 提供定時服務(wù) 提供訂閱服務(wù) 運行高性能 提供管理控制臺 設(shè)計約束 需要支持熱部署,應(yīng)用架構(gòu)案例架構(gòu)設(shè)計路線圖,應(yīng)用架構(gòu)案例系統(tǒng)整體需求描述,提供統(tǒng)一的數(shù)據(jù)分析服務(wù) 提供定時服務(wù),定時產(chǎn)生數(shù)據(jù)分析結(jié)果(月報,年報,周報) 提供訂閱服務(wù),輸出數(shù)據(jù)分析結(jié)果 支持多交互協(xié)議 支持多數(shù)據(jù)分析
8、資源的擴(kuò)展 支持運行時的擴(kuò)展性,熱部署,應(yīng)用架構(gòu)案例確定架構(gòu)范圍,針對需求,確定設(shè)計點,作為架構(gòu)設(shè)計的范圍,應(yīng)用架構(gòu)案例 子架構(gòu):分析、設(shè)計、實現(xiàn)與驗證 集成系統(tǒng)總體架構(gòu),功能架構(gòu)子系統(tǒng)劃分,對于任何系統(tǒng)而言,系統(tǒng)的架構(gòu)都需要從對系統(tǒng)的分解入手。劃分子系統(tǒng)的主要目的在于: 簡化系統(tǒng)設(shè)計工作 提高并行開發(fā)效率 便于系統(tǒng)架構(gòu)的擴(kuò)展,功能架構(gòu)子系統(tǒng)劃分分析,功能性劃分功能性組件 數(shù)據(jù)分析組件:提供數(shù)據(jù)分析基本服務(wù),產(chǎn)生數(shù)據(jù)分析結(jié)果(圖片,文件) 定時服務(wù)組件:提供定時機制,定時調(diào)用數(shù)據(jù)分析服務(wù)和訂閱服務(wù) 訂閱服務(wù)組件:提供訂閱服務(wù)基本服務(wù),(Mail,FTP) 管理控制臺:系統(tǒng)服務(wù)配置設(shè)定(定時服務(wù)
9、,訂閱服務(wù)) 非功能性劃分非功能性組件 部署管理組件:運行時裝載數(shù)據(jù)分析的模版,計算組件,數(shù)據(jù)源; 數(shù)據(jù)訪問組件:提供訪問數(shù)據(jù)源服務(wù)(數(shù)據(jù)庫,文件) 外部交互適配器:提供支持多種交互協(xié)議的連接適配器(SOAP,RMI-IIOP) 通用與定制之分定制性組件 JasperReport:提供基于JasperReport的數(shù)據(jù)分析服務(wù) CrystalReport:提供基于水晶報表的數(shù)據(jù)分析服務(wù),功能架構(gòu)子系統(tǒng)劃分設(shè)計,根據(jù)原則劃分好的子系統(tǒng),需要有明確的接口定義,來代表其子系統(tǒng)提供的功能,功能架構(gòu)子系統(tǒng)劃分實現(xiàn)與驗證,在系統(tǒng)實施過程中,一般子系統(tǒng)會使用 不同的工作目錄來實現(xiàn)。每個工作目錄會需要 包含下
10、列信息: 源程序 組件依賴配置 部署腳本 測試程序,邏輯架構(gòu)系統(tǒng)分層,系統(tǒng)分層的主要目的在于: 細(xì)化子系統(tǒng),確定子系統(tǒng)組件之間的協(xié)作關(guān)系 提高子系統(tǒng)的可重用性 提高子系統(tǒng)的可測試性 提高子系統(tǒng)的可維護(hù)性 提高子系統(tǒng)的可擴(kuò)展性,邏輯架構(gòu)系統(tǒng)分層分析,定義分層邊界劃分原則 本系統(tǒng)按照服務(wù)消費者和服務(wù)提供者關(guān)系來劃分層次 定義消費者和服務(wù)提供者關(guān)系,邏輯架構(gòu)系統(tǒng)分層設(shè)計,可擴(kuò)展架構(gòu):支持資源擴(kuò)展,數(shù)據(jù)分析資源包括各種數(shù)據(jù)分析實現(xiàn)技術(shù)。支持資源擴(kuò)展的主要需求如下: 支持?jǐn)?shù)據(jù)分析資源的可替換 支持?jǐn)?shù)據(jù)分析資源的可升級 實現(xiàn)統(tǒng)一的數(shù)據(jù)分析服務(wù)接口,可擴(kuò)展架構(gòu):支持資源擴(kuò)展分析,通用性和定制性劃分 特定數(shù)據(jù)
11、分析資源需要定制 統(tǒng)一的數(shù)據(jù)分析接口代表通用行為 通用性和定制性結(jié)合 行為抽象,抽象特定數(shù)據(jù)分析資源的通用行為 實現(xiàn)獨立,把特定數(shù)據(jù)分析資源的實現(xiàn)看成是行為抽象的一個特定實現(xiàn),可擴(kuò)展架構(gòu):支持的資源擴(kuò)展設(shè)計,J2EE Pattern:策略模式,現(xiàn)流行方式是采用Spring的 ApplicationContext或者反射模式。,可擴(kuò)展架構(gòu):支持的資源擴(kuò)展實現(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é)議擴(kuò)展 重用數(shù)據(jù)分析服務(wù)組件 簡化外部接口調(diào)用的實現(xiàn),外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議分析,職責(zé)
13、劃分 協(xié)議適配器:適配器負(fù)責(zé)使用特定交互協(xié)議調(diào)用數(shù)據(jù)分析服務(wù) 重用數(shù)據(jù)分析組件:數(shù)據(jù)分析組件不涉及具體的協(xié)議交互 泛化連接器接口 抽象交互行為,定義統(tǒng)一的交互接口 封裝特定協(xié)議交互細(xì)節(jié),屏蔽交互復(fù)雜性,外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計,J2EE Pattern: Faade模式,通過coarse-grained的接口,屏蔽了低層次的實現(xiàn)細(xì)節(jié),這也是 faade模式的一種應(yīng)用。,外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計,J2EE Pattern:策略模式,Delegate,Delegate模式, 對于具體的調(diào)用實現(xiàn)類來說,它不負(fù)責(zé)具體的業(yè)務(wù)邏輯處理, 而只是負(fù)責(zé)代理特定的業(yè)務(wù)
14、實現(xiàn)對象,并且封裝對這個對象 的引用過程。常用的方式有ServiceLoacator,封裝了SOAP, Remote Interface, Local Interface的調(diào)用。,外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計,外部接口架構(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),異常分為三種: 無法恢復(fù)異常,記錄異常日志 可恢復(fù)異常,通知使用者通過特定操作修復(fù)異常 容錯異常,系統(tǒng)根據(jù)發(fā)生的異常類型決定通過特定邏輯修復(fù)異常,可靠性架構(gòu):異常處理機制分析,架構(gòu)統(tǒng)一 使用穩(wěn)定的架構(gòu)控制異常,包括捕獲,日志,跳轉(zhuǎn) 異常處理職責(zé)劃分,判斷異常處理范圍,處理不了,就拋出 異常包裝,低層次異常需要被高層次異常包裝 (1*N),可靠性架構(gòu):異常處理機制設(shè)計,可靠性架構(gòu):異常處理機制設(shè)計,可靠性架構(gòu):異常處理機制實現(xiàn),對于不可恢復(fù)異常而言,典型的實現(xiàn)方式如下: try callService(); catch (RuntimeException ex) /低層次的Exceptio
18、n tracer.logError(ex); throw new NewRuntimeException(e); /高層次的Exception 不可恢復(fù)異常向上層拋出,它面對的不是許許多多低層次的Exception,而是它的直接下層組件的Exception。 對于可恢復(fù)的異常而言,典型的實現(xiàn)方式就是直接在catch中,進(jìn)行新的邏輯處理,而不是繼續(xù)向上層拋出。,可維護(hù)性架構(gòu):運行時的擴(kuò)展性,運行時可擴(kuò)展性要求服務(wù)能及時更新,其中包括: 更新數(shù)據(jù)分析邏輯計算組件服務(wù) 更新數(shù)據(jù)分析模版 更新數(shù)據(jù)源裝載組件服務(wù) 更新數(shù)據(jù)分析結(jié)構(gòu),這也是常說的熱部署!,可維護(hù)性架構(gòu):運行時的擴(kuò)展性分析,資源的熱部署,相關(guān)配置文件更新 業(yè)務(wù)組件的熱部署,可維護(hù)性架構(gòu):運行時的擴(kuò)展性設(shè)計,可維護(hù)性架構(gòu):運行時的擴(kuò)展性實現(xiàn)與驗證,構(gòu)建資源管理文件系統(tǒng) 構(gòu)造自定義ClassLoader掃描資源管理文件系統(tǒng),栽入ClassPath 更新服務(wù),替換自定義ClassLoader,應(yīng)用架構(gòu)案例 子架構(gòu):分析、設(shè)計、實現(xiàn)與驗證 集成系統(tǒng)總體架構(gòu),架構(gòu)集成,為什么要進(jìn)行架構(gòu)集成 把系統(tǒng)的不同問題的設(shè)計進(jìn)行有效的結(jié)合 系統(tǒng)的整體架構(gòu)不是簡單的堆砌,需要各個部分的協(xié)調(diào) 架構(gòu)集成的時機 在每個子架構(gòu)設(shè)計過程中,不斷地集成 集成的策略 持續(xù)的集成,集成會引起對架構(gòu)的重新認(rèn)識 架構(gòu)需要不斷地在集成中重構(gòu),總
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 男寶寶周歲協(xié)議書
- 蔬菜送貨協(xié)議書
- 設(shè)備安拆協(xié)議書
- 設(shè)備租合同范本
- 試驗機構(gòu)協(xié)議書
- 工程導(dǎo)師協(xié)議書
- 并購保障協(xié)議書
- 房貸還款的協(xié)議書
- 打捆秸稈合同范本
- 意法停戰(zhàn)協(xié)議書
- 馬克思主義原理課件目錄
- 銀行信貸經(jīng)理業(yè)務(wù)績效考核表
- 2025年及未來5年市場數(shù)據(jù)中國并四苯行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 工程聯(lián)系函培訓(xùn)
- 菲傭家務(wù)服務(wù)合同2025版
- 商混站安全生產(chǎn)責(zé)任清單
- 2025臨時工勞務(wù)派遣合同
- 書柜制作安裝合同范本
- 冬季污水廠防凍知識培訓(xùn)
- 2025年度鋼管支架貝雷梁拆除施工方案
- 2025版吊裝費合同范本
評論
0/150
提交評論