版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
應(yīng)用架構(gòu)設(shè)計(jì)實(shí)踐Author:謝峰應(yīng)用架構(gòu)設(shè)計(jì)實(shí)踐Author:謝峰架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例內(nèi)容介紹架構(gòu)概念內(nèi)容介紹架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例架構(gòu)概念架構(gòu)基本概念——什么是架構(gòu)定義了系統(tǒng)的組織,組成系統(tǒng)的結(jié)構(gòu)元素、接口以及這些元素在協(xié)作中的行為,關(guān)系的設(shè)計(jì)和管理原則。架構(gòu)設(shè)計(jì)架構(gòu)基本概念——什么是架構(gòu)定義了系統(tǒng)的組織,組成系統(tǒng)的結(jié)構(gòu)元架構(gòu)基本概念——什么是架構(gòu)基線構(gòu)建基線架構(gòu)基線:架構(gòu)基線是一個(gè)“小的、皮包骨架的”系統(tǒng),是系統(tǒng)整個(gè)生命周期的開發(fā)準(zhǔn)則,適用于所有的迭代周期;系統(tǒng)實(shí)施系統(tǒng)實(shí)施基于架構(gòu)基線,在架構(gòu)基線的指導(dǎo)下,完成系統(tǒng)的構(gòu)件、節(jié)點(diǎn),使“基線”進(jìn)化為性能完善的系統(tǒng);系統(tǒng)構(gòu)件架構(gòu)基線架構(gòu)基本概念——什么是架構(gòu)基線構(gòu)建基線系統(tǒng)構(gòu)件架構(gòu)基線架構(gòu)基本概念——架構(gòu)設(shè)計(jì)目標(biāo)理解系統(tǒng)架構(gòu)使開發(fā)人員、管理人員,客戶以及其他項(xiàng)目相關(guān)人員理解系統(tǒng);組織開發(fā)通過明確劃分的子系統(tǒng),以及接口,降低協(xié)調(diào)開發(fā)的成本;鼓勵(lì)重用設(shè)計(jì)良好可重用的子系統(tǒng)加速系統(tǒng)的構(gòu)建進(jìn)程;進(jìn)化系統(tǒng)應(yīng)對(duì)變化環(huán)境,構(gòu)建彈性系統(tǒng)避免變化對(duì)系統(tǒng)產(chǎn)生非期望的效果;架構(gòu)基本概念——架構(gòu)設(shè)計(jì)目標(biāo)理解系統(tǒng)架構(gòu)基本概念——架構(gòu)分類業(yè)務(wù)架構(gòu)(BusinessArchitecture)技術(shù)架構(gòu)(TechnicalArchitecture)企業(yè)架構(gòu)(EnterpriseArchitecture)架構(gòu)基本概念——架構(gòu)分類業(yè)務(wù)架構(gòu)(BusinessArch架構(gòu)分類——業(yè)務(wù)架構(gòu)業(yè)務(wù)架構(gòu)是對(duì)需求的描述,以及業(yè)務(wù)模型的定義,其中包括領(lǐng)域模型(DomainObject),業(yè)務(wù)流程模型(BusinessProcessModel),系統(tǒng)參與者(Actor)。架構(gòu)分類——業(yè)務(wù)架構(gòu)業(yè)務(wù)架構(gòu)是對(duì)需求的描述,以及業(yè)務(wù)模型的定架構(gòu)分類——技術(shù)架構(gòu)技術(shù)架構(gòu)是對(duì)系統(tǒng)使用的技術(shù)一個(gè)規(guī)范性的定義,它包含非功能性的可重用構(gòu)件,系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)規(guī)范,開發(fā)規(guī)范,物理環(huán)境,測(cè)試環(huán)境,部署環(huán)境的定義,以及系統(tǒng)配置管理。架構(gòu)分類——技術(shù)架構(gòu)技術(shù)架構(gòu)是對(duì)系統(tǒng)使用的技術(shù)一個(gè)規(guī)范性的定架構(gòu)分類——企業(yè)架構(gòu)企業(yè)架構(gòu)指的是在對(duì)一個(gè)企業(yè)的業(yè)務(wù)戰(zhàn)略和流程理解基礎(chǔ)之上,進(jìn)行信息化的頂層設(shè)計(jì),對(duì)企業(yè)現(xiàn)有的業(yè)務(wù)架構(gòu)和技術(shù)架構(gòu)進(jìn)行有效的整合,形成靈活健壯的IT結(jié)構(gòu),構(gòu)建的和諧IT環(huán)境。架構(gòu)分類——企業(yè)架構(gòu)企業(yè)架構(gòu)指的是在對(duì)一個(gè)企業(yè)的業(yè)務(wù)戰(zhàn)略和流架構(gòu)分類——宏觀架構(gòu)(MacroscopicalArchitecture)業(yè)務(wù)架構(gòu)技術(shù)架構(gòu)應(yīng)用系統(tǒng)業(yè)務(wù)架構(gòu)技術(shù)架構(gòu)應(yīng)用系統(tǒng)業(yè)務(wù)架構(gòu)技術(shù)架構(gòu)應(yīng)用系統(tǒng)企業(yè)架構(gòu)架構(gòu)分類——宏觀架構(gòu)(MacroscopicalArch架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例架構(gòu)概念應(yīng)用架構(gòu)介紹——業(yè)務(wù)架構(gòu)示例LogisticalOperationalPlatform
HorizontalSolutionUserManagementPermissionManagementSeaFreightAirFrieghtRoadFrieightCRM
HorizontalSolutionUserManagementPermissionManagementContactManagementTransactionManagementCustomerManagementConnector
HorizontalSolutionDTSSingleSignOn
HorizontalSolutionPMIBridge
Bridge
Bridge
應(yīng)用架構(gòu)介紹——業(yè)務(wù)架構(gòu)示例LogisticalHoriz應(yīng)用架構(gòu)介紹——技術(shù)架構(gòu)組成PresentationBusinessPersistenceCoreArchitectureSubscriptionDataAnalysisBPMTraceUtilitiesToolkitsScheduleConnectorConnectorConnectorTechnicalArchitecturePortalPMIRuleEngine應(yīng)用架構(gòu)介紹——技術(shù)架構(gòu)組成PresentationBusi應(yīng)用架構(gòu)介紹——系統(tǒng)協(xié)同ApplicationAApplicationBConnector(MiddleDB)Connector(WebService)ApplicationAApplicationBApplicationAApplicationBConnector(JCA)應(yīng)用架構(gòu)介紹——系統(tǒng)協(xié)同ApplicationAAppli應(yīng)用架構(gòu)介紹——設(shè)計(jì)原則分而自治(BoundaryOfResponsibility)面向服務(wù)(ServiceOriented)協(xié)同規(guī)劃(Collaboration)應(yīng)用架構(gòu)介紹——設(shè)計(jì)原則分而自治(BoundaryOfR應(yīng)用架構(gòu)介紹——分而自治分而自治(BoundaryOfResponsibility)功能性與非功能性之分通用與定制之分應(yīng)用架構(gòu)介紹——分而自治分而自治(BoundaryOfR應(yīng)用架構(gòu)介紹——面向服務(wù)面向服務(wù)(ServiceOriented)面向接口組件黑盒規(guī)范的服務(wù)描述應(yīng)用架構(gòu)介紹——面向服務(wù)面向服務(wù)(ServiceOrien應(yīng)用架構(gòu)介紹——協(xié)同規(guī)劃協(xié)同規(guī)劃(Collaboration)泛化連接器松散耦合簡(jiǎn)單部署應(yīng)用架構(gòu)介紹——協(xié)同規(guī)劃協(xié)同規(guī)劃(Collaboration應(yīng)用架構(gòu)介紹——應(yīng)用架構(gòu)實(shí)現(xiàn)方法論整體規(guī)劃VerticalSolution(UseCase,DomainModel,BusinessSequence,etc)HorizontalSolution(Prototype,Components,ServicePublication,TechnicalDecision)環(huán)境配置WorkspaceIDE編碼實(shí)現(xiàn)ObjectOrientedDesignPatternTesting應(yīng)用架構(gòu)介紹——應(yīng)用架構(gòu)實(shí)現(xiàn)方法論整體規(guī)劃應(yīng)用架構(gòu)介紹——應(yīng)用架構(gòu)實(shí)現(xiàn)方法論(續(xù))部署DeploymentScriptApplicationServiceEnvironmentTesting應(yīng)用架構(gòu)介紹——應(yīng)用架構(gòu)實(shí)現(xiàn)方法論(續(xù))部署架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例架構(gòu)概念應(yīng)用架構(gòu)設(shè)計(jì)模板課件架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例架構(gòu)概念應(yīng)用架構(gòu)案例——案例背景本案例是一個(gè)實(shí)際的企業(yè)級(jí)應(yīng)用系統(tǒng),主要作用是為企業(yè)的其他信息系統(tǒng)提供相關(guān)的數(shù)據(jù)分析服務(wù),包括報(bào)表,圖表,和Dashboard。系統(tǒng)目標(biāo)構(gòu)建一個(gè)數(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é)議提供定時(shí)服務(wù)提供訂閱服務(wù)運(yùn)行高性能提供管理控制臺(tái)設(shè)計(jì)約束需要支持熱部署應(yīng)用架構(gòu)案例——案例背景本案例是一個(gè)實(shí)際的企業(yè)級(jí)應(yīng)用系統(tǒng),主應(yīng)用架構(gòu)案例——架構(gòu)設(shè)計(jì)路線圖應(yīng)用架構(gòu)案例——架構(gòu)設(shè)計(jì)路線圖應(yīng)用架構(gòu)案例——系統(tǒng)整體需求描述提供統(tǒng)一的數(shù)據(jù)分析服務(wù)提供定時(shí)服務(wù),定時(shí)產(chǎn)生數(shù)據(jù)分析結(jié)果(月報(bào),年報(bào),周報(bào))提供訂閱服務(wù),輸出數(shù)據(jù)分析結(jié)果支持多交互協(xié)議支持多數(shù)據(jù)分析資源的擴(kuò)展支持運(yùn)行時(shí)的擴(kuò)展性,熱部署應(yīng)用架構(gòu)案例——系統(tǒng)整體需求描述提供統(tǒng)一的數(shù)據(jù)分析服務(wù)應(yīng)用架構(gòu)案例——確定架構(gòu)范圍設(shè)計(jì)問題設(shè)計(jì)策略優(yōu)先級(jí)子系統(tǒng)劃分確定系統(tǒng)邊界和每個(gè)子系統(tǒng)的職責(zé)高系統(tǒng)層次劃分按照系統(tǒng)層次的從低到高,確定每個(gè)層次的組件高支持資源擴(kuò)展采用策略模式,泛化服務(wù)接口高支持多種交互協(xié)議采用代理模式和Fa?ade模式,調(diào)用報(bào)表服務(wù)高處理各層次異常采用責(zé)任鏈模式,分劃異常的處理高支持運(yùn)行時(shí)擴(kuò)展確定劃分熱部署邊界,組件部署分離高特定數(shù)據(jù)分析資源實(shí)現(xiàn)使用特定報(bào)表技術(shù),適配服務(wù)接口中實(shí)現(xiàn)定時(shí)服務(wù)使用定時(shí)服務(wù)組件,調(diào)用數(shù)據(jù)分析服務(wù)接口中實(shí)現(xiàn)訂閱服務(wù)使用定制的訂閱技術(shù),并且開發(fā)接口給定時(shí)服務(wù)使用中管理控制臺(tái)使用B/S架構(gòu)定制界面,設(shè)定各個(gè)服務(wù)組件的配置低針對(duì)需求,確定設(shè)計(jì)點(diǎn),作為架構(gòu)設(shè)計(jì)的范圍應(yīng)用架構(gòu)案例——確定架構(gòu)范圍設(shè)計(jì)問題設(shè)計(jì)策略優(yōu)先級(jí)子系統(tǒng)劃分應(yīng)用架構(gòu)案例子架構(gòu):分析、設(shè)計(jì)、實(shí)現(xiàn)與驗(yàn)證集成系統(tǒng)總體架構(gòu)應(yīng)用架構(gòu)案例功能架構(gòu)——子系統(tǒng)劃分
對(duì)于任何系統(tǒng)而言,系統(tǒng)的架構(gòu)都需要從對(duì)系統(tǒng)的分解入手。劃分子系統(tǒng)的主要目的在于:簡(jiǎn)化系統(tǒng)設(shè)計(jì)工作提高并行開發(fā)效率便于系統(tǒng)架構(gòu)的擴(kuò)展功能架構(gòu)——子系統(tǒng)劃分 對(duì)于任何系統(tǒng)而言,系統(tǒng)的架構(gòu)都需要從功能架構(gòu)——子系統(tǒng)劃分分析功能性劃分——功能性組件數(shù)據(jù)分析組件:提供數(shù)據(jù)分析基本服務(wù),產(chǎn)生數(shù)據(jù)分析結(jié)果(圖片,文件)定時(shí)服務(wù)組件:提供定時(shí)機(jī)制,定時(shí)調(diào)用數(shù)據(jù)分析服務(wù)和訂閱服務(wù)訂閱服務(wù)組件:提供訂閱服務(wù)基本服務(wù),(Mail,FTP)管理控制臺(tái):系統(tǒng)服務(wù)配置設(shè)定(定時(shí)服務(wù),訂閱服務(wù))非功能性劃分——非功能性組件部署管理組件:運(yùn)行時(shí)裝載數(shù)據(jù)分析的模版,計(jì)算組件,數(shù)據(jù)源;數(shù)據(jù)訪問組件:提供訪問數(shù)據(jù)源服務(wù)(數(shù)據(jù)庫(kù),文件)外部交互適配器:提供支持多種交互協(xié)議的連接適配器(SOAP,RMI-IIOP)通用與定制之分——定制性組件JasperReport:提供基于JasperReport的數(shù)據(jù)分析服務(wù)CrystalReport:提供基于水晶報(bào)表的數(shù)據(jù)分析服務(wù)功能架構(gòu)——子系統(tǒng)劃分分析功能性劃分——功能性組件功能架構(gòu)——子系統(tǒng)劃分設(shè)計(jì)根據(jù)原則劃分好的子系統(tǒng),需要有明確的接口定義,來(lái)代表其子系統(tǒng)提供的功能DAOServicevoidinsert()voidupdate()voiddelete()ObjectfindByPk()ScheduleServicevoidexecuteSchedule()SubscriptionServicevoidnotifySubscriber()J2EEConnectorCrystalReportServiceJasperReportServiceOLAPServiceRepportingServicebyte[]loadReport(StringreportId,Mapcontext,inttype)voiddeploy()DeploymentManagementService功能架構(gòu)——子系統(tǒng)劃分設(shè)計(jì)根據(jù)原則劃分好的子系統(tǒng),需要有明確功能架構(gòu)——子系統(tǒng)劃分實(shí)現(xiàn)與驗(yàn)證在系統(tǒng)實(shí)施過程中,一般子系統(tǒng)會(huì)使用不同的工作目錄來(lái)實(shí)現(xiàn)。每個(gè)工作目錄會(huì)需要包含下列信息:源程序組件依賴配置部署腳本測(cè)試程序功能架構(gòu)——子系統(tǒng)劃分實(shí)現(xiàn)與驗(yàn)證在系統(tǒng)實(shí)施過程中,一般子系統(tǒng)邏輯架構(gòu)——系統(tǒng)分層系統(tǒng)分層的主要目的在于:細(xì)化子系統(tǒng),確定子系統(tǒng)組件之間的協(xié)作關(guān)系提高子系統(tǒng)的可重用性提高子系統(tǒng)的可測(cè)試性提高子系統(tǒng)的可維護(hù)性提高子系統(tǒng)的可擴(kuò)展性邏輯架構(gòu)——系統(tǒng)分層系統(tǒng)分層的主要目的在于:邏輯架構(gòu)——系統(tǒng)分層分析定義分層邊界劃分原則本系統(tǒng)按照服務(wù)消費(fèi)者和服務(wù)提供者關(guān)系來(lái)劃分層次定義消費(fèi)者和服務(wù)提供者關(guān)系數(shù)據(jù)分析服務(wù)消費(fèi)者Browser,JavaClientApplication,C++Client…數(shù)據(jù)分析服務(wù)提供者數(shù)據(jù)分析運(yùn)算組件數(shù)據(jù)源提供組件協(xié)議適配器數(shù)據(jù)分析資源消費(fèi)服務(wù)邏輯架構(gòu)——系統(tǒng)分層分析定義分層邊界劃分原則數(shù)據(jù)分析服務(wù)消費(fèi)邏輯架構(gòu)——系統(tǒng)分層設(shè)計(jì)邏輯架構(gòu)——系統(tǒng)分層設(shè)計(jì)可擴(kuò)展架構(gòu):支持資源擴(kuò)展
數(shù)據(jù)分析資源包括各種數(shù)據(jù)分析實(shí)現(xiàn)技術(shù)。支持資源擴(kuò)展的主要需求如下:支持?jǐn)?shù)據(jù)分析資源的可替換支持?jǐn)?shù)據(jù)分析資源的可升級(jí)實(shí)現(xiàn)統(tǒng)一的數(shù)據(jù)分析服務(wù)接口可擴(kuò)展架構(gòu):支持資源擴(kuò)展數(shù)據(jù)分析資源包括各種數(shù)據(jù)分析實(shí)現(xiàn)技可擴(kuò)展架構(gòu):支持資源擴(kuò)展分析通用性和定制性劃分特定數(shù)據(jù)分析資源需要定制統(tǒng)一的數(shù)據(jù)分析接口代表通用行為通用性和定制性結(jié)合行為抽象,抽象特定數(shù)據(jù)分析資源的通用行為實(shí)現(xiàn)獨(dú)立,把特定數(shù)據(jù)分析資源的實(shí)現(xiàn)看成是行為抽象的一個(gè)特定實(shí)現(xiàn)可擴(kuò)展架構(gòu):支持資源擴(kuò)展分析通用性和定制性劃分可擴(kuò)展架構(gòu):支持的資源擴(kuò)展設(shè)計(jì)J2EEPattern:策略模式現(xiàn)流行方式是采用Spring的ApplicationContext或者反射模式。構(gòu)造策略實(shí)現(xiàn)對(duì)象策略行為接口策略實(shí)現(xiàn)可擴(kuò)展架構(gòu):支持的資源擴(kuò)展設(shè)計(jì)J2EEPattern:策略可擴(kuò)展架構(gòu):支持的資源擴(kuò)展實(shí)現(xiàn)定義接口publicinterfaceReportingServiceIF{ byte[]loadReport(StringreportId,Mapcontext,intbinaryType);}定義Spring配置<beanid="jasper"class="com.wn.pce.reportingservice.platform.jasper.PCEReportingServiceJasperImpl"destroy-method="close"><propertyname="dataSourceLoader"ref="defaultSourceLoader"/></bean>通過制定BeanName來(lái)判斷使用那個(gè)實(shí)現(xiàn)類ReportingServiceIFservice=(ReportingServiceIF)ApplicationCtx.getBean(serviceName);byte[]reportBinary=service.loadReport(reportId,context,binaryType);
可擴(kuò)展架構(gòu):支持的資源擴(kuò)展實(shí)現(xiàn)定義接口外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議
系統(tǒng)的外部接口會(huì)被多種交互協(xié)議所調(diào)用,對(duì)于外部接口架構(gòu)來(lái)說,主要需求如下:支持系統(tǒng)外部接口調(diào)用協(xié)議擴(kuò)展重用數(shù)據(jù)分析服務(wù)組件簡(jiǎn)化外部接口調(diào)用的實(shí)現(xiàn)外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議系統(tǒng)的外部接口會(huì)外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議分析職責(zé)劃分協(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é)議分析職責(zé)劃分外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)J2EEPattern:Fa?ade模式通過coarse-grained的接口,屏蔽了低層次的實(shí)現(xiàn)細(xì)節(jié),這也是fa?ade模式的一種應(yīng)用。協(xié)議適配器協(xié)議適配器外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)J2EEPa外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)J2EEPattern:策略模式,DelegateDelegate模式,對(duì)于具體的調(diào)用實(shí)現(xiàn)類來(lái)說,它不負(fù)責(zé)具體的業(yè)務(wù)邏輯處理,而只是負(fù)責(zé)代理特定的業(yè)務(wù)實(shí)現(xiàn)對(duì)象,并且封裝對(duì)這個(gè)對(duì)象的引用過程。常用的方式有ServiceLoacator,封裝了SOAP,RemoteInterface,LocalInterface的調(diào)用。協(xié)議調(diào)用代理外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)J2EEPa外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議實(shí)現(xiàn)EJBAdapterpublicinterfaceReportingServiceEJBAdapterextendsEJBObject{ byte[]loadReport(StringserviceClassName,StringreportId,Mapcontext,intbinaryType)throws RemoteException;}EJBDelegatepublicclassReportingServiceEJBDelegateimplementsPCEReportingServiceDelegateIF{ publicbyte[]loadReport(StringserviceName,StringreportId,Mapcontext,intbinaryType) { byte[]binaryArray=null;…. ReportingServiceEJBAdapterHomeremoteHome=(ReportingServiceEJBAdapterHome)ServiceLocator.getInstance().getRemoteHome("ReportingServiceEJBAdapter",ReportingServiceEJBAdapterHome.class);ReportingServiceEJBAdapterremote=remoteHome.create();binaryArray=remote.loadReport(serviceName,reportId,context,binaryType);
… returnbinaryArray;}外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議實(shí)現(xiàn)EJBAda可靠性架構(gòu):異常處理機(jī)制異常處理是系統(tǒng)可靠性的表現(xiàn),異常分為三種:無(wú)法恢復(fù)異常,記錄異常日志可恢復(fù)異常,通知使用者通過特定操作修復(fù)異常容錯(cuò)異常,系統(tǒng)根據(jù)發(fā)生的異常類型決定通過特定邏輯修復(fù)異??煽啃约軜?gòu):異常處理機(jī)制異常處理是系統(tǒng)可靠性的表現(xiàn),異常分為可靠性架構(gòu):異常處理機(jī)制分析架構(gòu)統(tǒng)一使用穩(wěn)定的架構(gòu)控制異常,包括捕獲,日志,跳轉(zhuǎn)異常處理職責(zé)劃分,判斷異常處理范圍,處理不了,就拋出異常包裝,低層次異常需要被高層次異常包裝(1*N)可靠性架構(gòu):異常處理機(jī)制分析架構(gòu)統(tǒng)一可靠性架構(gòu):異常處理機(jī)制設(shè)計(jì)可靠性架構(gòu):異常處理機(jī)制設(shè)計(jì)可靠性架構(gòu):異常處理機(jī)制設(shè)計(jì)可靠性架構(gòu):異常處理機(jī)制設(shè)計(jì)可靠性架構(gòu):異常處理機(jī)制實(shí)現(xiàn)對(duì)于不可恢復(fù)異常而言,典型的實(shí)現(xiàn)方式如下:try{ callService();}catch(RuntimeExceptionex){//低層次的Exception tracer.logError(ex); thrownewNewRuntimeException(e);//高層次的Exception}不可恢復(fù)異常向上層拋出,它面對(duì)的不是許許多多低層次的Exception,而是它的直接下層組件的Exception。對(duì)于可恢復(fù)的異常而言,典型的實(shí)現(xiàn)方式就是直接在catch中,進(jìn)行新的邏輯處理,而不是繼續(xù)向上層拋出。可靠性架構(gòu):異常處理機(jī)制實(shí)現(xiàn)對(duì)于不可恢復(fù)異常而言,典型的實(shí)現(xiàn)可維護(hù)性架構(gòu):運(yùn)行時(shí)的擴(kuò)展性
運(yùn)行時(shí)可擴(kuò)展性要求服務(wù)能及時(shí)更新,其中包括:更新數(shù)據(jù)分析邏輯計(jì)算組件服務(wù)更新數(shù)據(jù)分析模版更新數(shù)據(jù)源裝載組件服務(wù)更新數(shù)據(jù)分析結(jié)構(gòu)這也是常說的熱部署!可維護(hù)性架構(gòu):運(yùn)行時(shí)的擴(kuò)展性運(yùn)行時(shí)可擴(kuò)展性要求服務(wù)能及時(shí)更可維護(hù)性架構(gòu):運(yùn)行時(shí)的擴(kuò)展性分析資源的熱部署,相關(guān)配置文件更新業(yè)務(wù)組件的熱部署可維護(hù)性架構(gòu):運(yùn)行時(shí)的擴(kuò)展性分析資源的熱部署,相關(guān)配置文件更可維護(hù)性架構(gòu):運(yùn)行時(shí)的擴(kuò)展性設(shè)計(jì)可維護(hù)性架構(gòu):運(yùn)行時(shí)的擴(kuò)展性設(shè)計(jì)可維護(hù)性架構(gòu):運(yùn)行時(shí)的擴(kuò)展性實(shí)現(xiàn)與驗(yàn)證構(gòu)建資源管理文件系統(tǒng)構(gòu)造自定義ClassLoader掃描資源管理文件系統(tǒng),栽入ClassPath更新服務(wù),替換自定義ClassLoader可維護(hù)性架構(gòu):運(yùn)行時(shí)的擴(kuò)展性實(shí)現(xiàn)與驗(yàn)證構(gòu)建資源管理文件系統(tǒng)應(yīng)用架構(gòu)案例子架構(gòu):分析、設(shè)計(jì)、實(shí)現(xiàn)與驗(yàn)證集成系統(tǒng)總體架構(gòu)應(yīng)用架構(gòu)案例架構(gòu)集成為什么要進(jìn)行架構(gòu)集成把系統(tǒng)的不同問題的設(shè)計(jì)進(jìn)行有效的結(jié)合系統(tǒng)的整體架構(gòu)不是簡(jiǎn)單的堆砌,需要各個(gè)部分的協(xié)調(diào)架構(gòu)集成的時(shí)機(jī)在每個(gè)子架構(gòu)設(shè)計(jì)過程中,不斷地集成集成的策略持續(xù)的集成,集成會(huì)引起對(duì)架構(gòu)的重新認(rèn)識(shí)架構(gòu)需要不斷地在集成中重構(gòu)架構(gòu)集成為什么要進(jìn)行架構(gòu)集成總體架構(gòu)集成——邏輯架構(gòu)集成J2EEServiceAdministrativeServiceVerticalSolutionFacilityCoreServiceBasicInfrastructureRepportingServiceResourceManagementServiceDeploymentManagementServiceAdministratorManagementServiceDAOServiceJ2EEConnectorOLAPServiceJasperReportServiceCrystalReportServiceSubscriptionServiceScheduleService總體架構(gòu)集成——邏輯架構(gòu)集成J2EEServiceAdmi總體架構(gòu)集成——邏輯架構(gòu)集成總體架構(gòu)集成——邏輯架構(gòu)集成總體架構(gòu)集成——物理架構(gòu)集成總體架構(gòu)集成——物理架構(gòu)集成總體架構(gòu)集成——架構(gòu)集成策略面向接口本系統(tǒng)子系統(tǒng)之間都通過接口進(jìn)行交互;接口的實(shí)現(xiàn)組件都允許被替換;Mocker對(duì)于未完成的子系統(tǒng),可以通過建立Mocker來(lái)模擬這個(gè)子系統(tǒng)CruiseControl+Ant+MavenCruiseControl是持續(xù)集成的強(qiáng)力工具,通過定制好的Ant或者M(jìn)aven腳本,CruiseControl可以持續(xù)調(diào)用這兩種腳本完成實(shí)際情況的部署,以便盡早發(fā)現(xiàn)架構(gòu)集成的問題??傮w架構(gòu)集成——架構(gòu)集成策略面向接口總體架構(gòu)集成——架構(gòu)集成測(cè)試與驗(yàn)證集成測(cè)試功能性測(cè)試黑盒測(cè)試邊界測(cè)試非功能性測(cè)試性能測(cè)試可操作性測(cè)試架構(gòu)驗(yàn)證耦合性驗(yàn)證性能驗(yàn)證擴(kuò)展性驗(yàn)證總體架構(gòu)集成——架構(gòu)集成測(cè)試與驗(yàn)證集成測(cè)試謝謝!-關(guān)心您的軟件工程實(shí)踐-Thankyouforyourattendance!謝謝!-關(guān)心您的軟件工程實(shí)踐-Thankyoufor應(yīng)用架構(gòu)設(shè)計(jì)實(shí)踐Author:謝峰應(yīng)用架構(gòu)設(shè)計(jì)實(shí)踐Author:謝峰架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例內(nèi)容介紹架構(gòu)概念內(nèi)容介紹架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例架構(gòu)概念架構(gòu)基本概念——什么是架構(gòu)定義了系統(tǒng)的組織,組成系統(tǒng)的結(jié)構(gòu)元素、接口以及這些元素在協(xié)作中的行為,關(guān)系的設(shè)計(jì)和管理原則。架構(gòu)設(shè)計(jì)架構(gòu)基本概念——什么是架構(gòu)定義了系統(tǒng)的組織,組成系統(tǒng)的結(jié)構(gòu)元架構(gòu)基本概念——什么是架構(gòu)基線構(gòu)建基線架構(gòu)基線:架構(gòu)基線是一個(gè)“小的、皮包骨架的”系統(tǒng),是系統(tǒng)整個(gè)生命周期的開發(fā)準(zhǔn)則,適用于所有的迭代周期;系統(tǒng)實(shí)施系統(tǒng)實(shí)施基于架構(gòu)基線,在架構(gòu)基線的指導(dǎo)下,完成系統(tǒng)的構(gòu)件、節(jié)點(diǎn),使“基線”進(jìn)化為性能完善的系統(tǒng);系統(tǒng)構(gòu)件架構(gòu)基線架構(gòu)基本概念——什么是架構(gòu)基線構(gòu)建基線系統(tǒng)構(gòu)件架構(gòu)基線架構(gòu)基本概念——架構(gòu)設(shè)計(jì)目標(biāo)理解系統(tǒng)架構(gòu)使開發(fā)人員、管理人員,客戶以及其他項(xiàng)目相關(guān)人員理解系統(tǒng);組織開發(fā)通過明確劃分的子系統(tǒng),以及接口,降低協(xié)調(diào)開發(fā)的成本;鼓勵(lì)重用設(shè)計(jì)良好可重用的子系統(tǒng)加速系統(tǒng)的構(gòu)建進(jìn)程;進(jìn)化系統(tǒng)應(yīng)對(duì)變化環(huán)境,構(gòu)建彈性系統(tǒng)避免變化對(duì)系統(tǒng)產(chǎn)生非期望的效果;架構(gòu)基本概念——架構(gòu)設(shè)計(jì)目標(biāo)理解系統(tǒng)架構(gòu)基本概念——架構(gòu)分類業(yè)務(wù)架構(gòu)(BusinessArchitecture)技術(shù)架構(gòu)(TechnicalArchitecture)企業(yè)架構(gòu)(EnterpriseArchitecture)架構(gòu)基本概念——架構(gòu)分類業(yè)務(wù)架構(gòu)(BusinessArch架構(gòu)分類——業(yè)務(wù)架構(gòu)業(yè)務(wù)架構(gòu)是對(duì)需求的描述,以及業(yè)務(wù)模型的定義,其中包括領(lǐng)域模型(DomainObject),業(yè)務(wù)流程模型(BusinessProcessModel),系統(tǒng)參與者(Actor)。架構(gòu)分類——業(yè)務(wù)架構(gòu)業(yè)務(wù)架構(gòu)是對(duì)需求的描述,以及業(yè)務(wù)模型的定架構(gòu)分類——技術(shù)架構(gòu)技術(shù)架構(gòu)是對(duì)系統(tǒng)使用的技術(shù)一個(gè)規(guī)范性的定義,它包含非功能性的可重用構(gòu)件,系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)規(guī)范,開發(fā)規(guī)范,物理環(huán)境,測(cè)試環(huán)境,部署環(huán)境的定義,以及系統(tǒng)配置管理。架構(gòu)分類——技術(shù)架構(gòu)技術(shù)架構(gòu)是對(duì)系統(tǒng)使用的技術(shù)一個(gè)規(guī)范性的定架構(gòu)分類——企業(yè)架構(gòu)企業(yè)架構(gòu)指的是在對(duì)一個(gè)企業(yè)的業(yè)務(wù)戰(zhàn)略和流程理解基礎(chǔ)之上,進(jìn)行信息化的頂層設(shè)計(jì),對(duì)企業(yè)現(xiàn)有的業(yè)務(wù)架構(gòu)和技術(shù)架構(gòu)進(jìn)行有效的整合,形成靈活健壯的IT結(jié)構(gòu),構(gòu)建的和諧IT環(huán)境。架構(gòu)分類——企業(yè)架構(gòu)企業(yè)架構(gòu)指的是在對(duì)一個(gè)企業(yè)的業(yè)務(wù)戰(zhàn)略和流架構(gòu)分類——宏觀架構(gòu)(MacroscopicalArchitecture)業(yè)務(wù)架構(gòu)技術(shù)架構(gòu)應(yīng)用系統(tǒng)業(yè)務(wù)架構(gòu)技術(shù)架構(gòu)應(yīng)用系統(tǒng)業(yè)務(wù)架構(gòu)技術(shù)架構(gòu)應(yīng)用系統(tǒng)企業(yè)架構(gòu)架構(gòu)分類——宏觀架構(gòu)(MacroscopicalArch架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例架構(gòu)概念應(yīng)用架構(gòu)介紹——業(yè)務(wù)架構(gòu)示例LogisticalOperationalPlatform
HorizontalSolutionUserManagementPermissionManagementSeaFreightAirFrieghtRoadFrieightCRM
HorizontalSolutionUserManagementPermissionManagementContactManagementTransactionManagementCustomerManagementConnector
HorizontalSolutionDTSSingleSignOn
HorizontalSolutionPMIBridge
Bridge
Bridge
應(yīng)用架構(gòu)介紹——業(yè)務(wù)架構(gòu)示例LogisticalHoriz應(yīng)用架構(gòu)介紹——技術(shù)架構(gòu)組成PresentationBusinessPersistenceCoreArchitectureSubscriptionDataAnalysisBPMTraceUtilitiesToolkitsScheduleConnectorConnectorConnectorTechnicalArchitecturePortalPMIRuleEngine應(yīng)用架構(gòu)介紹——技術(shù)架構(gòu)組成PresentationBusi應(yīng)用架構(gòu)介紹——系統(tǒng)協(xié)同ApplicationAApplicationBConnector(MiddleDB)Connector(WebService)ApplicationAApplicationBApplicationAApplicationBConnector(JCA)應(yīng)用架構(gòu)介紹——系統(tǒng)協(xié)同ApplicationAAppli應(yīng)用架構(gòu)介紹——設(shè)計(jì)原則分而自治(BoundaryOfResponsibility)面向服務(wù)(ServiceOriented)協(xié)同規(guī)劃(Collaboration)應(yīng)用架構(gòu)介紹——設(shè)計(jì)原則分而自治(BoundaryOfR應(yīng)用架構(gòu)介紹——分而自治分而自治(BoundaryOfResponsibility)功能性與非功能性之分通用與定制之分應(yīng)用架構(gòu)介紹——分而自治分而自治(BoundaryOfR應(yīng)用架構(gòu)介紹——面向服務(wù)面向服務(wù)(ServiceOriented)面向接口組件黑盒規(guī)范的服務(wù)描述應(yīng)用架構(gòu)介紹——面向服務(wù)面向服務(wù)(ServiceOrien應(yīng)用架構(gòu)介紹——協(xié)同規(guī)劃協(xié)同規(guī)劃(Collaboration)泛化連接器松散耦合簡(jiǎn)單部署應(yīng)用架構(gòu)介紹——協(xié)同規(guī)劃協(xié)同規(guī)劃(Collaboration應(yīng)用架構(gòu)介紹——應(yīng)用架構(gòu)實(shí)現(xiàn)方法論整體規(guī)劃VerticalSolution(UseCase,DomainModel,BusinessSequence,etc)HorizontalSolution(Prototype,Components,ServicePublication,TechnicalDecision)環(huán)境配置WorkspaceIDE編碼實(shí)現(xiàn)ObjectOrientedDesignPatternTesting應(yīng)用架構(gòu)介紹——應(yīng)用架構(gòu)實(shí)現(xiàn)方法論整體規(guī)劃應(yīng)用架構(gòu)介紹——應(yīng)用架構(gòu)實(shí)現(xiàn)方法論(續(xù))部署DeploymentScriptApplicationServiceEnvironmentTesting應(yīng)用架構(gòu)介紹——應(yīng)用架構(gòu)實(shí)現(xiàn)方法論(續(xù))部署架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例架構(gòu)概念應(yīng)用架構(gòu)設(shè)計(jì)模板課件架構(gòu)概念應(yīng)用架構(gòu)介紹火龍果架構(gòu)培養(yǎng)體系應(yīng)用架構(gòu)案例架構(gòu)概念應(yīng)用架構(gòu)案例——案例背景本案例是一個(gè)實(shí)際的企業(yè)級(jí)應(yīng)用系統(tǒng),主要作用是為企業(yè)的其他信息系統(tǒng)提供相關(guān)的數(shù)據(jù)分析服務(wù),包括報(bào)表,圖表,和Dashboard。系統(tǒng)目標(biāo)構(gòu)建一個(gè)數(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é)議提供定時(shí)服務(wù)提供訂閱服務(wù)運(yùn)行高性能提供管理控制臺(tái)設(shè)計(jì)約束需要支持熱部署應(yīng)用架構(gòu)案例——案例背景本案例是一個(gè)實(shí)際的企業(yè)級(jí)應(yīng)用系統(tǒng),主應(yīng)用架構(gòu)案例——架構(gòu)設(shè)計(jì)路線圖應(yīng)用架構(gòu)案例——架構(gòu)設(shè)計(jì)路線圖應(yīng)用架構(gòu)案例——系統(tǒng)整體需求描述提供統(tǒng)一的數(shù)據(jù)分析服務(wù)提供定時(shí)服務(wù),定時(shí)產(chǎn)生數(shù)據(jù)分析結(jié)果(月報(bào),年報(bào),周報(bào))提供訂閱服務(wù),輸出數(shù)據(jù)分析結(jié)果支持多交互協(xié)議支持多數(shù)據(jù)分析資源的擴(kuò)展支持運(yùn)行時(shí)的擴(kuò)展性,熱部署應(yīng)用架構(gòu)案例——系統(tǒng)整體需求描述提供統(tǒng)一的數(shù)據(jù)分析服務(wù)應(yīng)用架構(gòu)案例——確定架構(gòu)范圍設(shè)計(jì)問題設(shè)計(jì)策略優(yōu)先級(jí)子系統(tǒng)劃分確定系統(tǒng)邊界和每個(gè)子系統(tǒng)的職責(zé)高系統(tǒng)層次劃分按照系統(tǒng)層次的從低到高,確定每個(gè)層次的組件高支持資源擴(kuò)展采用策略模式,泛化服務(wù)接口高支持多種交互協(xié)議采用代理模式和Fa?ade模式,調(diào)用報(bào)表服務(wù)高處理各層次異常采用責(zé)任鏈模式,分劃異常的處理高支持運(yùn)行時(shí)擴(kuò)展確定劃分熱部署邊界,組件部署分離高特定數(shù)據(jù)分析資源實(shí)現(xiàn)使用特定報(bào)表技術(shù),適配服務(wù)接口中實(shí)現(xiàn)定時(shí)服務(wù)使用定時(shí)服務(wù)組件,調(diào)用數(shù)據(jù)分析服務(wù)接口中實(shí)現(xiàn)訂閱服務(wù)使用定制的訂閱技術(shù),并且開發(fā)接口給定時(shí)服務(wù)使用中管理控制臺(tái)使用B/S架構(gòu)定制界面,設(shè)定各個(gè)服務(wù)組件的配置低針對(duì)需求,確定設(shè)計(jì)點(diǎn),作為架構(gòu)設(shè)計(jì)的范圍應(yīng)用架構(gòu)案例——確定架構(gòu)范圍設(shè)計(jì)問題設(shè)計(jì)策略優(yōu)先級(jí)子系統(tǒng)劃分應(yīng)用架構(gòu)案例子架構(gòu):分析、設(shè)計(jì)、實(shí)現(xiàn)與驗(yàn)證集成系統(tǒng)總體架構(gòu)應(yīng)用架構(gòu)案例功能架構(gòu)——子系統(tǒng)劃分
對(duì)于任何系統(tǒng)而言,系統(tǒng)的架構(gòu)都需要從對(duì)系統(tǒng)的分解入手。劃分子系統(tǒng)的主要目的在于:簡(jiǎn)化系統(tǒng)設(shè)計(jì)工作提高并行開發(fā)效率便于系統(tǒng)架構(gòu)的擴(kuò)展功能架構(gòu)——子系統(tǒng)劃分 對(duì)于任何系統(tǒng)而言,系統(tǒng)的架構(gòu)都需要從功能架構(gòu)——子系統(tǒng)劃分分析功能性劃分——功能性組件數(shù)據(jù)分析組件:提供數(shù)據(jù)分析基本服務(wù),產(chǎn)生數(shù)據(jù)分析結(jié)果(圖片,文件)定時(shí)服務(wù)組件:提供定時(shí)機(jī)制,定時(shí)調(diào)用數(shù)據(jù)分析服務(wù)和訂閱服務(wù)訂閱服務(wù)組件:提供訂閱服務(wù)基本服務(wù),(Mail,FTP)管理控制臺(tái):系統(tǒng)服務(wù)配置設(shè)定(定時(shí)服務(wù),訂閱服務(wù))非功能性劃分——非功能性組件部署管理組件:運(yùn)行時(shí)裝載數(shù)據(jù)分析的模版,計(jì)算組件,數(shù)據(jù)源;數(shù)據(jù)訪問組件:提供訪問數(shù)據(jù)源服務(wù)(數(shù)據(jù)庫(kù),文件)外部交互適配器:提供支持多種交互協(xié)議的連接適配器(SOAP,RMI-IIOP)通用與定制之分——定制性組件JasperReport:提供基于JasperReport的數(shù)據(jù)分析服務(wù)CrystalReport:提供基于水晶報(bào)表的數(shù)據(jù)分析服務(wù)功能架構(gòu)——子系統(tǒng)劃分分析功能性劃分——功能性組件功能架構(gòu)——子系統(tǒng)劃分設(shè)計(jì)根據(jù)原則劃分好的子系統(tǒng),需要有明確的接口定義,來(lái)代表其子系統(tǒng)提供的功能DAOServicevoidinsert()voidupdate()voiddelete()ObjectfindByPk()ScheduleServicevoidexecuteSchedule()SubscriptionServicevoidnotifySubscriber()J2EEConnectorCrystalReportServiceJasperReportServiceOLAPServiceRepportingServicebyte[]loadReport(StringreportId,Mapcontext,inttype)voiddeploy()DeploymentManagementService功能架構(gòu)——子系統(tǒng)劃分設(shè)計(jì)根據(jù)原則劃分好的子系統(tǒng),需要有明確功能架構(gòu)——子系統(tǒng)劃分實(shí)現(xiàn)與驗(yàn)證在系統(tǒng)實(shí)施過程中,一般子系統(tǒng)會(huì)使用不同的工作目錄來(lái)實(shí)現(xiàn)。每個(gè)工作目錄會(huì)需要包含下列信息:源程序組件依賴配置部署腳本測(cè)試程序功能架構(gòu)——子系統(tǒng)劃分實(shí)現(xiàn)與驗(yàn)證在系統(tǒng)實(shí)施過程中,一般子系統(tǒng)邏輯架構(gòu)——系統(tǒng)分層系統(tǒng)分層的主要目的在于:細(xì)化子系統(tǒng),確定子系統(tǒng)組件之間的協(xié)作關(guān)系提高子系統(tǒng)的可重用性提高子系統(tǒng)的可測(cè)試性提高子系統(tǒng)的可維護(hù)性提高子系統(tǒng)的可擴(kuò)展性邏輯架構(gòu)——系統(tǒng)分層系統(tǒng)分層的主要目的在于:邏輯架構(gòu)——系統(tǒng)分層分析定義分層邊界劃分原則本系統(tǒng)按照服務(wù)消費(fèi)者和服務(wù)提供者關(guān)系來(lái)劃分層次定義消費(fèi)者和服務(wù)提供者關(guān)系數(shù)據(jù)分析服務(wù)消費(fèi)者Browser,JavaClientApplication,C++Client…數(shù)據(jù)分析服務(wù)提供者數(shù)據(jù)分析運(yùn)算組件數(shù)據(jù)源提供組件協(xié)議適配器數(shù)據(jù)分析資源消費(fèi)服務(wù)邏輯架構(gòu)——系統(tǒng)分層分析定義分層邊界劃分原則數(shù)據(jù)分析服務(wù)消費(fèi)邏輯架構(gòu)——系統(tǒng)分層設(shè)計(jì)邏輯架構(gòu)——系統(tǒng)分層設(shè)計(jì)可擴(kuò)展架構(gòu):支持資源擴(kuò)展
數(shù)據(jù)分析資源包括各種數(shù)據(jù)分析實(shí)現(xiàn)技術(shù)。支持資源擴(kuò)展的主要需求如下:支持?jǐn)?shù)據(jù)分析資源的可替換支持?jǐn)?shù)據(jù)分析資源的可升級(jí)實(shí)現(xiàn)統(tǒng)一的數(shù)據(jù)分析服務(wù)接口可擴(kuò)展架構(gòu):支持資源擴(kuò)展數(shù)據(jù)分析資源包括各種數(shù)據(jù)分析實(shí)現(xiàn)技可擴(kuò)展架構(gòu):支持資源擴(kuò)展分析通用性和定制性劃分特定數(shù)據(jù)分析資源需要定制統(tǒng)一的數(shù)據(jù)分析接口代表通用行為通用性和定制性結(jié)合行為抽象,抽象特定數(shù)據(jù)分析資源的通用行為實(shí)現(xiàn)獨(dú)立,把特定數(shù)據(jù)分析資源的實(shí)現(xiàn)看成是行為抽象的一個(gè)特定實(shí)現(xiàn)可擴(kuò)展架構(gòu):支持資源擴(kuò)展分析通用性和定制性劃分可擴(kuò)展架構(gòu):支持的資源擴(kuò)展設(shè)計(jì)J2EEPattern:策略模式現(xiàn)流行方式是采用Spring的ApplicationContext或者反射模式。構(gòu)造策略實(shí)現(xiàn)對(duì)象策略行為接口策略實(shí)現(xiàn)可擴(kuò)展架構(gòu):支持的資源擴(kuò)展設(shè)計(jì)J2EEPattern:策略可擴(kuò)展架構(gòu):支持的資源擴(kuò)展實(shí)現(xiàn)定義接口publicinterfaceReportingServiceIF{ byte[]loadReport(StringreportId,Mapcontext,intbinaryType);}定義Spring配置<beanid="jasper"class="com.wn.pce.reportingservice.platform.jasper.PCEReportingServiceJasperImpl"destroy-method="close"><propertyname="dataSourceLoader"ref="defaultSourceLoader"/></bean>通過制定BeanName來(lái)判斷使用那個(gè)實(shí)現(xiàn)類ReportingServiceIFservice=(ReportingServiceIF)ApplicationCtx.getBean(serviceName);byte[]reportBinary=service.loadReport(reportId,context,binaryType);
可擴(kuò)展架構(gòu):支持的資源擴(kuò)展實(shí)現(xiàn)定義接口外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議
系統(tǒng)的外部接口會(huì)被多種交互協(xié)議所調(diào)用,對(duì)于外部接口架構(gòu)來(lái)說,主要需求如下:支持系統(tǒng)外部接口調(diào)用協(xié)議擴(kuò)展重用數(shù)據(jù)分析服務(wù)組件簡(jiǎn)化外部接口調(diào)用的實(shí)現(xiàn)外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議系統(tǒng)的外部接口會(huì)外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議分析職責(zé)劃分協(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é)議分析職責(zé)劃分外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)J2EEPattern:Fa?ade模式通過coarse-grained的接口,屏蔽了低層次的實(shí)現(xiàn)細(xì)節(jié),這也是fa?ade模式的一種應(yīng)用。協(xié)議適配器協(xié)議適配器外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)J2EEPa外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)J2EEPattern:策略模式,DelegateDelegate模式,對(duì)于具體的調(diào)用實(shí)現(xiàn)類來(lái)說,它不負(fù)責(zé)具體的業(yè)務(wù)邏輯處理,而只是負(fù)責(zé)代理特定的業(yè)務(wù)實(shí)現(xiàn)對(duì)象,并且封裝對(duì)這個(gè)對(duì)象的引用過程。常用的方式有ServiceLoacator,封裝了SOAP,RemoteInterface,LocalInterface的調(diào)用。協(xié)議調(diào)用代理外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)J2EEPa外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議設(shè)計(jì)外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議實(shí)現(xiàn)EJBAdapterpublicinterfaceReportingServiceEJBAdapterextendsEJBObject{ byte[]loadReport(StringserviceClassName,StringreportId,Mapcontext,intbinaryType)throws RemoteException;}EJBDelegatepublicclassReportingServiceEJBDelegateimplementsPCEReportingServiceDelegateIF{ publicbyte[]loadReport(StringserviceName,StringreportId,Mapcontext,intbinaryType) { byte[]binaryArray=null;…. ReportingServiceEJBAdapterHomeremoteHome=(ReportingServiceEJBAdapterHome)ServiceLocator.getInstance().getRemoteHome("ReportingServiceEJBAdapter",ReportingServiceEJBAdapterHome.class);ReportingServiceEJBAdapterremote=remoteHome.create();binaryArray=remote.loadReport(serviceName,reportId,context,binaryType);
… returnbinaryArray;}外部接口架構(gòu):系統(tǒng)外部接口支持多種交互協(xié)議實(shí)現(xiàn)EJBAda可靠性架構(gòu):異常處理機(jī)制異常處理是系統(tǒng)可靠性的表現(xiàn),異常分為三種:無(wú)法恢復(fù)異常,記錄異常日志可恢復(fù)異常,通知使用者通過特定操作修復(fù)異常容錯(cuò)異常,系統(tǒng)根據(jù)發(fā)生的異常類型決定通過特定邏輯修復(fù)異常可靠
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年四川中建三局裝飾有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年國(guó)網(wǎng)電力科學(xué)研究院武漢南瑞有限責(zé)任公司招聘筆試參考題庫(kù)附帶答案詳解
- 2025-2030全球高壓有載分接開關(guān)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)醫(yī)用 PTFE 管行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年度店鋪債權(quán)債務(wù)轉(zhuǎn)讓合同范本
- 2025年度店鋪?zhàn)赓U權(quán)轉(zhuǎn)讓及裝修設(shè)計(jì)咨詢服務(wù)合同3篇
- 二零二五年度車庫(kù)購(gòu)置與物業(yè)管理合作協(xié)議4篇
- 2024鐵路貨運(yùn)合同鐵路運(yùn)輸貨物交付與驗(yàn)收協(xié)議3篇
- 二零二五年度餐廚廢棄物處置與廢棄物處理設(shè)施改造合同3篇
- 2025年度個(gè)人與個(gè)人草原生態(tài)修復(fù)工程合同范本
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國(guó)人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對(duì)法》及其應(yīng)用案例
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- 銷售提成對(duì)賭協(xié)議書范本 3篇
- 勞務(wù)派遣招標(biāo)文件范本
- EPC項(xiàng)目階段劃分及工作結(jié)構(gòu)分解方案
- 《跨學(xué)科實(shí)踐活動(dòng)4 基于特定需求設(shè)計(jì)和制作簡(jiǎn)易供氧器》教學(xué)設(shè)計(jì)
- 信息安全意識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論