【正文】
A K A W o r k f l o w , P r o c e s s ,M e d i a t i o n , A p p C o n t r o l l e r )D o m ai n (s)( A K A B u s i n e s s ,B u s i n e s s S e r v i c e s , M o d e l )T ec hni ca l S er vi ces( A K A T e c h n i c a l I n f r a s t r u c t u r e ,H i g h l e v e l T e c h n i c a l S e r v i c e s )F o u n da ti o n( A K A C o r e S e r v i c e s , B a s e S e r v i c e s ,L o w l e v e l T e c h n i c a l S e r v i c e s / I n f r a s t r u c t u r e )? G U I w i n d o w s? r e p o r t s? s p e e c h i n t e r f a c e? H T M L , X M L , X S L T , J S P , J a v a s c r i p t , . . .? h a n d l e s p r e s e n t a t i o n l a y e r r e q u e s t s? w o r k f l o w? s e s s i o n s t a t e? w i n d o w / p a g e t r a n s i t i o n s? c o n s o l i d a t i o n / t r a n s f o r m a t i o n o f d i s p a r a t ed a t a f o r p r e s e n t a t i o n? h a n d l e s a p p l i c a t i o n l a y e r r e q u e s t s? i m p l e m e n t a t i o n o f d o m a i n r u l e s? d o m a i n s e r v i c e s (P O S , I n v e n t o r y) s e r v i c e s m a y b e u s e d b y j u s t o n ea p p l i c a t i o n , b u t t h e r e i s a l s o t h e p o s s i b i l i t yo f m u l t i a p p l i c a t i o n s e r v i c e s? ( r e l a t i v e l y ) h i g h l e v e l t e c h n i c a l s e r v i c e sa n d f r a m e w o r k s? P e r s i s t e n c e, S e c u r i t y? l o w l e v e l t e c h n i c a l s e r v i c e s , u t i l i t i e s ,a n d f r a m e w o r k s? d a t a s t r u c t u r e s , t h r e a d s , m a t h ,f i l e , D B , a n d n e t w o r k I / Om o r ea p ps p e c i f i cB u si n ess I n fra s tru ctu re( A K A L o w l e v e l B u s i n e s s S e r v i c e s )? v e r y g e n e r a l l o w l e v e l b u s i n e s s s e r v i c e su s e d i n m a n y b u s i n e s s d o m a i n s? C u r r e n c y C o n v e r t e r2020/11/4 19 Shanghai Jiaotong University 2020/11/4 20 Log4J Technical Services Domain Presentation Pricing PricingStrategy Factory Text ProcessSale Console used in quick experiments Persistence DBFacade 171。Shanghai Jiaotong University 第 11講 . 架構與其他模式 Cao Jian CIT Lab, Shanghai Jiaotong University Shanghai Jiaotong University 內容 ?架構分析 ?邏輯結構精化與分層模式 ?其它模式 2020/11/4 2 Shanghai Jiaotong University 架構分析的意義 ?降低在系統(tǒng)設計中丟失某些重要因素的風險 ?避免在低優(yōu)先級的問題上花費過多的精力 ?有助于產品與業(yè)務目標的一致 2020/11/4 3 Shanghai Jiaotong University 何時開始架構分析 ?早期工作中就要識別和解決架構問題 ?架構分析和早期開發(fā)活動并行 2020/11/4 4 Shanghai Jiaotong University 變化點和進化點 ?變化點:當前現(xiàn)有系統(tǒng)或需求中的變化之處 ?進化點:現(xiàn)有需求中不存在,但可能在將來發(fā)生,推測性的變化點 2020/11/4 5 Shanghai Jiaotong University 架構分析 ?架構分析 是在功能性需求(例如銷售處理)的語境中,識別和處理系統(tǒng)的非功能性需求(例如安全需求等)的活動。 2020/11/4 6 Shanghai Jiaotong University ?問題示例 ? 可靠性和容錯需求如何影響設計 ? 采購子構件的許可費用如何影響收益率 ? 可適應性和可配置性需求如何影響設計 ? 商標名稱的選擇如何影響架構 2020/11/4 7 Shanghai Jiaotong University ?識別和分析對架構有影響的非功能性需求 ?對于這些在架構方面具有重要影響的需求,需要分析可供選擇的辦法并創(chuàng)建解決這些影響的解決方案 — 架構決策 2020/11/4 8 Shanghai Jiaotong University ?所有的 FURPS+需求對系統(tǒng)的架構都有重要影響,其中涉及可靠性,進度安排,技巧和成本約束等 ?具有架構意義的因素稱為 關鍵架構因素 2020/11/4 9 Shanghai Jiaotong University ?描述方法 ? 質量場景: 刺激 可度量效應 ? 當銷售完成 ,調用遠程稅金計算器服務計算稅金時,在平均負載條件的生產環(huán)境下,大部分會在 2秒之內返回 ? 架構因素表( P394) ? 包括因素,度量和質量場景,可變性,影響,對于成功的優(yōu)先級,困難或風險 2020/11/4 10 Shanghai Jiaotong University 架構的藝術 ?收集和組織有關的架構性因素,稱為 架構的科學 ?依據相互依賴情況,優(yōu)先級,權衡考慮等,做出解決這些因素的決定,稱為 架構的藝術 2020/11/4 11 Shanghai Jiaotong University ?記錄架構選擇,決策以及動機 ? 技術備忘錄 ?優(yōu)先級 ? 引導架構決策的目標:強制性約束,業(yè)務目標,所有其它目標 ?基本的架構設計原則 ? 我們已經介紹的原則都適用:低耦合,高內聚,防止變異 ? 構件的粒度更大 2020/11/4 12 Shanghai Jiaotong University 2. 邏輯架構精化 Shanghai Jiaotong University ?運用分層模式,對系統(tǒng)進行層和分塊邏輯體系結構設計 ?運用 UML包圖表示邏輯結構 ?運用外觀,觀察者和控制器模式 2020/11/4 14 Shanghai Jiaotong University 架構模式 ?模式分類 ? 架構模式 ? 大范圍和粗粒度的設計:分層模式 ? 設計模式 ? 與小范圍和中等范圍的對象和框架設計有關 : Fa231。interface187。interface187。interface187。interface187。interface187。interface187。interface187。singleton187。singleton187。subsystem187。t know or want to describe the details of how the Jess rule engine works, but just want to show collaboration with it. UML notation : UML path name to indicate packaging onPropertyEvent(s, , total) PropertyListener Shanghai Jiaotong University 簡單包和子系統(tǒng) ?某些包就是子系統(tǒng) ? Persistence, POSRuleEngine,… ?某些包只是對象集合 ? Pricing Package 2020/11/4 24 Shanghai Jiaotong University 外觀 ? 訪問代表子系統(tǒng)的包的方法最常用的模式就是外觀模式 ? 外觀一般不能暴露太多的低層操作 ? 外觀經常是下層子系統(tǒng)對象的協(xié)調器 2020/11/4 25 171。 Persistence DBFacade 171。 Jess 171。 POSRuleEngine POSRuleEngineFacade Pricing not a subsystem Shanghai Jiaotong University 會話外觀和應用層 Log4JT e c h n i c a l S e r v i c e sD o m a i nP r e s e n t a t i o nP e r s i s t e n c eD B F a c a d eS a l e sR e g i s t e r S a l eS w i n gP r o c e s s S a l eF r a m eJ e s s S O A Pf o r a p p l i c a t i o n s w i t h o n l y a f e w s y s t e mo p e r a t i o n s , p e r h a p s o n l y o n e o b j e c t a c t s a s t h ef a c a d e i n t o t h e l a y e rT h e T e c h n i c a l S e r v i c e s l a y e rt y p i c a l l y e x p o s e s m a n yi n t e r f a c e s a t l e a s t o n e p e rs u b s y s t e m2020/11/4 26 Shanghai Jiaotong University 2020/11/4 27 Application Domain Presentation Sales Register Sale Swing ProcessSale Frame Application session facade objects that maintain session state and control workflow related to some workoften by use case. ProcessSale SessionFacade ProcessRental SessionFacade HandleReturns SessionFacade ProcessRental Frame ... Rentals Rental ... Shanghai Jiaotong University 系統(tǒng)操作和層 2020/11/4 28 Domain Presentation Swing ProcessSale Frame