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

首頁 > 學院 > 開發設計 > 正文

軟件體系架構模式在J2EE中的應用

2019-11-18 15:47:14
字體:
來源:轉載
供稿:網友

  本文介紹了軟件體系架構產生的背景和架構模式的基本理論。重點介紹管道與過濾器體系架構模式的結構,實現,優缺點等,然后以J2EE的Servlet Filter為例進行剖析它是怎樣應用該架構模式的,最后簡單闡述了在其它J2ee應用中(Jboss和Axis)的實踐。

  軟件體系架構

  1、軟件體系架構產生背景

  在經歷60年代的軟件危機之后,使人們開始重視軟件工程的研究。來自不同應用領域的軟件專家總結了大量的有價值的知識。 當初,人們把軟件設計的重點放在數據結構和算法的選擇上,如Knuth提出了數據結構+算法=程序。 但是隨著軟件系統規模越來越大、越來越復雜,使軟件系統的架構越來越重要。軟件危機的程度日益加劇,現有的軟件工程方法對此顯得力不從心。對于大規模的復雜軟件系統來說,軟件體系架構比起對程序的算法和數據結構的選擇已經變得明顯重要得多。在此種背景下,人們熟悉到軟件體系架構的重要性,并認為對軟件體系架構系統、深入的研究將會成為提高軟件生產效率和解決軟件危機的最有希望的途徑。 這時對軟件體系架構的研究如雨后春筍般,出現了百家爭鳴的現象,如Rational公司提出了"以架構為中心"的統一軟件開發過程(RUP)。

  2、軟件體系架構模式

  軟件設計的一個核心問題是能否使用重復的體系架構,即能否達到體系架構級的軟件重用。也就是說,能否在不同的軟件系統中,使用同一體系架構。基于這個目的,許多學者們開始研究和實踐軟件體系架構的模式問題。在<Pattern-Oriented Software Architecture (面向模式的軟件體系架構) >中首次提出了8種體系結構模式: 層(Layers)、管道和過濾器(Pipes and Filters) 、黑板(Black board )、代理者(Broker)、模型-視圖-控制器(Model-View-Controller)、表示-抽象-控制(PResentation-Abstraction-Control)、微核(Microkernel)、映像(Reflection)。

  J2EE體系架構

  目前,J2EE技術已經成為企業級應用的首選平臺,基于J2EE技術構建的軟件系統越來越多。J2EE代表著先進的軟件體系架構思想,許多軟件體系架構模式在J2ee中均被廣泛應用,從本文起陸續介紹各架構模式在J2EE中的應用。

  管道與過濾器

  1、概述

  管道和過濾器(Pipes and Filters)體系架構模式是為處理數據流的系統提供的一種模式。它是由過濾器和管道組成的.每個處理步驟都被封裝在一個過濾器組件中,數據通過相鄰過濾器之間的管道進行傳輸。每個過濾器可以單獨修改,功能單一,并且它們之間的順序可以進行配置。下圖是管道/過濾器模式的示意圖。一個典型的管道/過濾器體系結構的例子是以Unix shell編寫的程序。Unix既提供一種符號,以連接各組成部分(Unix的進程),又提供某種進程運行時機制以實現管道。另一個聞名的例子是傳統的編譯器。傳統的編譯器一直被認為是一種管道系統,在該系統中,一個階段(包括詞法分析、語法分析、語義分析和代碼生成)的輸出是另一個階段的輸入。

軟件體系架構模式在J2EE中的應用(圖一)

  2、問題

  假如你正在開發一個必須處理或轉換輸入數據流的系統。把這樣的系統作為單個組件實現是不輕易的,這有幾個原因:系統必須由幾個開發人員同時進行協作開發,整個系統任務自然就被分解為幾個處理階段,而且需求很輕易變動。因此你就要通過替換或重新排序處理步驟來為將來的靈活性作規劃。通過加入這樣的靈活性,采用現有處理組件構建是可以辦到的。系統的設計尤其是處理步驟的內部連接,必須考慮以下因素:

  未來系統的升級通過替換某些處理步驟,或重組步驟.
  不同的語境中小的處理步驟要比大的組件更易于重用。
  不相連的處理步驟不可共享信息。
  存在不同的輸入數據源,
  可以用多種方式輸出或存放最終結果。

  3、解決方案與結構

  管道和過濾器體系架構模式把系統任務分成為幾個獨立的處理步驟。這些步驟采用通過系統的數據流連接。一個步驟的輸出是下一個步驟的輸入。每個處理步驟由一個過濾器組件實現,它處理或者轉化數據,并且系統的輸入可以是多種數據源。

  這種體系架構模式具有許多特性,如下:

  過濾器是獨立運行的部件.也就是除了輸入和輸出外,每個過濾器不受任何其他過濾器運行的影響.在設計上,過濾器之間不共享任何狀態信息。

  獨立性還表現在它對其處理的上游和下游連接的過濾器是"無知"的.它的設計和使用不對與其連接的任何過濾器施加限制,唯一關心的是其輸入數據的,然后進行加工處理,最后產生數據輸出。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊通| 长春市| 景宁| 合山市| 望江县| 江山市| 桃园县| 嘉鱼县| 昭觉县| 鄯善县| 三台县| 宝山区| 阳信县| 谷城县| 岑溪市| 松滋市| 七台河市| 南召县| 饶阳县| 上犹县| 乌兰浩特市| 柳江县| 巨鹿县| 咸宁市| 兴山县| 扎囊县| 镇沅| 平阳县| 石台县| 济阳县| 肇源县| 新沂市| 宝坻区| 吴忠市| 崇阳县| 永善县| 莱芜市| 东方市| 永胜县| 湘乡市| 马鞍山市|