国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

步入J2EE架構(gòu)和過程基礎(chǔ)教程(2)

2019-11-18 12:25:33
字體:
供稿:網(wǎng)友

  4、 對象設計
  在架構(gòu)規(guī)范的指導下,設計從技術(shù)上擴展和修改了分析結(jié)果。雖然分析階段的領(lǐng)域?qū)ο蠼撆c技術(shù)細節(jié)無關(guān),但是對象設計完全依靠于技術(shù)因素,包括平臺、語言的類型和架構(gòu)開發(fā)階段選擇的供給商。分析時,抬頭望著星星,但在設計階段,則要腳踏實地。理論上,為了維持業(yè)務對象的基本屬性和行為,除非絕對必要,不應該破壞它們。
  
  在架構(gòu)結(jié)果的指導下,具體設計工作應該說明所有類的規(guī)格,包括必須實現(xiàn)的屬性、它們的具體接口和偽代碼或操作的純文本描述。規(guī)格說明應該足夠具體使得和模型圖結(jié)合時,它可以提供所有必須的編碼信息。在許多自動化軟件生產(chǎn)過程中,我們可以從面向?qū)ο髨D生成代碼框架。圖5和6 說明了對一些領(lǐng)域?qū)ο蟮母邔雍途唧w設計對象。注重樁(stub)和框架(skeleton)在圖中經(jīng)常是不可見的,因為它們對設計人員和編程員來說是透明的。我將它們包括在圖6中以說明EJB的基礎(chǔ)部分。
  
  
步入J2EE架構(gòu)和過程基礎(chǔ)教程(2)

  
圖6 對象設計模型:訂單EJB具體設計

  
  在完成了具體對象設計后,還需要完成領(lǐng)域?qū)ο蟮膶ο?關(guān)系映射。原因是雖然面向?qū)ο蠓椒▽W現(xiàn)在非常流行,但是大多數(shù)流行且成熟的持續(xù)性存儲卻是關(guān)系型的。另外,在許多情況下,客戶的IT基礎(chǔ)設施已經(jīng)反映了對商業(yè)RDBMS供給商的投資和偏愛。所以,將領(lǐng)域?qū)ο筠D(zhuǎn)換成關(guān)系模型或數(shù)據(jù)庫表是非常重要的。雖然有許多容器治理的持續(xù)性工具,但它們不能取代好的關(guān)系數(shù)據(jù)庫設計。
  
  5、 實現(xiàn)
  
  在良好的架構(gòu)和具體設計條件下,實現(xiàn)應該是一個明確的任務。另外,因為我們設計和實現(xiàn)架構(gòu)原型階段的縱向聯(lián)合部分,所以實現(xiàn)階段應該更沒有什么值得驚奇的。在許多組織中,開發(fā)者經(jīng)常過早地到達實現(xiàn)階段。尤其當治理者盯著開發(fā)人員確保在編碼,而不是做他們認為在浪費公司時間的其他事情時,這種情況變得更加嚴重。
  
  結(jié)果,不再花數(shù)小時或數(shù)天繪出UML草圖,而是通常在發(fā)費數(shù)周或數(shù)月編碼的同時測試自己的想法。由于在這種情況下,所有地架構(gòu)決定和設計都是在編碼階段做出來的,所以經(jīng)常過了數(shù)月后才發(fā)現(xiàn)開發(fā)的方向出錯了。
  
  6、 驗證
  
  驗證包括測試驗證系統(tǒng)按設計要求運行并滿足需求。驗證過程發(fā)生在整個開發(fā)生命周期的開發(fā)和產(chǎn)品環(huán)境中。單元測試、集成測試和用戶測試本身就是非常重要的主題。
  
  7、 裝配和部署
  
  構(gòu)件裝配和解決方案部署在J2EE開發(fā)中非凡重要。開發(fā)和產(chǎn)品環(huán)境可能非常不同。假如EJB在系統(tǒng)中,你需要使用供給商特定的工具得到容器自動生成的類,因為,正如我以前指出的,Web和應用程序構(gòu)件配置對不同的供給商來說是不同的。你也必須考慮要部署的系統(tǒng)是否含有供給商特定代碼實現(xiàn)。在可擴展架構(gòu)中,系統(tǒng)結(jié)構(gòu)應該是穩(wěn)定的但也應該在不影響整個系統(tǒng)的條件下支持新或老構(gòu)件的增量部署。
  
  8、 運行和維護
  
  在最后階段,應用程序到了用戶手中,你必須給他們提供培訓和文檔。用戶會發(fā)現(xiàn)錯誤并可能要求新特性。你必須適當?shù)馗淖冎卫磉^程來處理這些情況。你不必為了部署一個新構(gòu)件或取代老構(gòu)件而關(guān)閉一個正在運行的系統(tǒng)。
  
  架構(gòu)開發(fā)過程
  
  知道了必須做出許多架構(gòu)決定,因此我們必須為架構(gòu)開發(fā)描繪一個過程。對于一個企業(yè)來說通常有許多應用項目,它們中的一些可能跨越數(shù)年,結(jié)果是系統(tǒng)演化包含許多周期。在你的領(lǐng)域里存在著許多跨越多個項目的通用需求。你應該不費力地在它的生命周期或其他項目中使用以前項目周期的可擴展且可重用的架構(gòu)。為一系列軟件應用提供同屬結(jié)構(gòu)和行為的通用框架和可重用軟件架構(gòu)是非常需要的。
  
  假如是第一個J2EE項目,架構(gòu)必須做原型、測試、度量、分析并在迭代中進行推敲。藍圖提供了許多好的設計指導和實踐,寵物店示例程序可以作為一個很好的參考架構(gòu)。最有效地快速、高質(zhì)量發(fā)布好的解決方案的方法是接受和擴展藍圖參考架構(gòu)并插入你自己的業(yè)務構(gòu)件。你最后要做的就是改造車輪。
  
  接受一個參考架構(gòu)
  
  就我的理解,寵物店架構(gòu)的精華是模型-視圖-控制和命令模式。你可以將這些模式應用到以Web為中心和以EJB為中心的系統(tǒng)中。對于每個領(lǐng)域?qū)ο螅晥D用嵌套的jsp表示。控制器處理相關(guān)的業(yè)務事件,領(lǐng)域?qū)ο蠓庋b業(yè)務邏輯、事物和安全。我們使用門戶servlet作為中心控制器接受和截獲所有用戶的動作。它將業(yè)務事件分發(fā)給特定的調(diào)用領(lǐng)域?qū)ο蟾淖兂掷m(xù)狀態(tài)的領(lǐng)域?qū)ο罂刂破鳌R揽渴录幚斫Y(jié)果,控制器選擇下一個要展現(xiàn)的視圖。下面是我們可以修改并在大多數(shù)J2EE應用程序中使用的主要構(gòu)件:
  
  a、 MainServlet:門戶構(gòu)件,Web容器和框架之間的接口
  
  b、 ModelUpdateListener:獲得模型更新事件對象的接口
  
  c、 ModelUpdateNotifier:當更新模型事件發(fā)生時通知偵聽器
  
  d、 RequestPRocessor:處理所有從MainServlet來的請求。
  
  e、 RequestHandler:即插即用請求處理構(gòu)件接口
  
  f、 RequestHandlerMapping:包含請求處理映射規(guī)則
  
  g、 RequestToEventTranslator:中心請求處理器根據(jù)請求處理映射規(guī)則代理即插即用請求處理構(gòu)件的請求。將http請求轉(zhuǎn)換為業(yè)務事件
  
  h、 EstoreEvent:業(yè)務事件
  
  i、 ShoppingClientControllerWebImpl:代理EJB層門戶控制器
  
  j、 ScreenflowManager:控制屏幕流,選擇視圖
  
  k、 ModelUpdateManager:EJB層模型更新治理器,通知什么模型由于事件發(fā)生了改變
  
  l、 ShoppingClientControllerEJB:EJB層門戶,為EJB客戶提供遠程服務
  
  m、 StateMachine:中心事件處理器,根據(jù)狀態(tài)處理映射規(guī)則代理即插即用處理構(gòu)件的事件處理
  
  n、 StateHandler:EJB層狀態(tài)處理接口
  
  o、 StateHandlerMapping:包含狀態(tài)處理映射規(guī)則
  
  擴展參考架構(gòu)
  
  雖然藍圖示例程序是一個好的起點,但應該根據(jù)每個項目或領(lǐng)域修改它。設計模式是可重用的微體系結(jié)構(gòu),可以使用它擴展參考架構(gòu)。提供了一組有用的J2EE模式目錄的藍圖和23個"四人幫"模式都是非常不錯的資源。例如,假如想擴展參考架構(gòu)支持工作流治理,你可以在部署或運行時動態(tài)地在中心控制器注冊事件處理器。中心控制器會詢問每個注冊的事件處理器直到一個處理器返回消息表明到了命令鏈的末端。
  
  插入你的業(yè)務構(gòu)件
  
  J2EE技術(shù)對每個人都是一樣的,但是不同的領(lǐng)域,我們要解決的問題是不同的。一旦建立了一個基本的J2EE框架,必須實現(xiàn)一些用例來說明架構(gòu)確實可以為你的領(lǐng)域服務。可以通過選用捕捉系統(tǒng)要害功能的場景來實現(xiàn),這些場景經(jīng)常使用來展現(xiàn)要害的技術(shù)風險。從領(lǐng)域分析模型入手,可以象我們在圖5和6中那樣將領(lǐng)域?qū)ο笥成涑筛邔雍偷蛯釉O計模型。實現(xiàn)低層設計模型并測試是否真正在工作。假如每件事都按計劃運行,那么重新評估風險開始下一個迭代,擴展要考慮的場景并選擇更多的場景擴展架構(gòu)的覆蓋范圍。經(jīng)過幾次迭代后,原始的架構(gòu)原型應該變得穩(wěn)定。識別要購買的構(gòu)件,要保留的遺留系統(tǒng)和怎樣將它們對接。下一步是軟件設計,你可以使用設計指導中規(guī)定好的類似方法和過程繼續(xù)開發(fā)。
  
  一步一步
  
  我們使用一個過程來將一個復雜問題分解為較小的幾個問題,這使得我們可以更輕易的理解和解決它們。在本文中,我們將J2EE開發(fā)分解為八個步驟,主要集中在架構(gòu)和設計。我已經(jīng)闡述了重要的架構(gòu)并為架構(gòu)決定提供了一個過程。我也討論了J2EE架構(gòu)師的角色和可交付產(chǎn)品。
  
  學習使用這些步驟開發(fā)J2EE解決方案就象學習跳舞的步驟一樣。首先需要自覺并持之以恒地練習基本步驟。但是,一旦你對它們相當熟悉后,應該將它們放在一起并將注重力更多地集中在規(guī)模、速度、流和特定上下文中每一步的節(jié)奏。但永遠不要讓一個過程限制了創(chuàng)造性。而應該接受和擴展過程以滿足自己非凡需要。記住,最終目的是提供滿足客戶需求的完整的J2EE解決方案。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 紫阳县| 双辽市| 惠东县| 崇仁县| 沽源县| 游戏| 襄垣县| 衡南县| 布拖县| 英超| 惠安县| 全南县| 邵东县| 昆山市| 搜索| 精河县| 仙桃市| 新巴尔虎右旗| 简阳市| 济南市| 时尚| 盐城市| 丰城市| 巨野县| 大化| 泽普县| 河源市| 交口县| 洛浦县| 班戈县| 宕昌县| 永顺县| 泾源县| 师宗县| 乐业县| 德惠市| 吴江市| 瑞安市| 土默特左旗| 广宁县| 洮南市|