鄭惠中
摘 要:隨著信息科學技術的不斷進步,計算機的軟件領域已經(jīng)發(fā)展得非常成熟,軟件開發(fā)成為了我國信息產業(yè)中的重要組成部分。隨著開發(fā)技術不斷地革新,軟件架構在軟件開發(fā)中所處的重要地位已經(jīng)被軟件開發(fā)企業(yè)所重視。文章圍繞著軟件架構進行研究,對軟件架構的發(fā)展現(xiàn)狀進行了詳細的闡述,并就當今的現(xiàn)代軟件架構技術做了深入的探討。為軟件開發(fā)中的軟件架構設計提供了一定的理論基礎和實踐指導經(jīng)驗。
關鍵詞:軟件開發(fā)架構;信息產業(yè);軟件企業(yè)
引言
在二十世紀初,在計算機系統(tǒng)的開發(fā)中,軟件成本的占比非常小。隨著軟件應用的不斷增加,軟件產業(yè)不斷地發(fā)展壯大,軟件生產規(guī)模也在不斷地擴大。軟件成本在計算機系統(tǒng)中的比重也越來越大。在二十世紀中期,軟件成本占計算機系統(tǒng)的比重已超過百分之五十。隨著軟件危機的出現(xiàn),軟件工程開始得以廣泛推廣和應用。隨著軟件系統(tǒng)的規(guī)模越來越大,結構越來越復雜,現(xiàn)有的軟件工程方法已經(jīng)逐漸不適應軟件設計的發(fā)展。相對于當今的復雜而龐大的軟件系統(tǒng)而言,軟件的系統(tǒng)結構設計以及開發(fā)架構設計已經(jīng)比數(shù)據(jù)結構的選擇重要很多倍。因此,廣大的研究者和軟件開發(fā)企業(yè)對軟件架構越來越重視。軟件架構的重要性在于,能夠成為提高軟件生產率和解決軟件維護問題的新的最有希望的途徑。
1 軟件架構的特點以及發(fā)展現(xiàn)狀
軟件架構也是軟件體系結構,軟件架構其實是由一系列相關的抽象模式構成,作用是用來指導大型軟件系統(tǒng)的設計。軟件架構中抽象的模式,對應的是系統(tǒng)中各個抽象組件。每個抽象組件之間的關聯(lián),對組件之間的通信進行了細致的刻畫。在軟件實現(xiàn)的階段,這些抽象組件被細化為實際應用的組件。例如,被細化為實際的某個類或者對象,而組件之間的關聯(lián)可以被細化為接口。目前,對于軟件架構的定義,比較流行的概念是,軟件架構就是系統(tǒng)在開發(fā)環(huán)境中的最高層的概念。軟件架構之所以重要,是因為在設計軟件系統(tǒng)之前,開發(fā)人員通過軟件架構進行詳細的設計以及構造,通過軟件架構作為日后軟件開發(fā)的重要基礎。一般來說,軟件架構設計后,不能輕易的進行更改,因為這關系到整個軟件系統(tǒng)設計的成敗。
經(jīng)過多年的發(fā)展,針對軟件架構的研究已經(jīng)取得了很多的進展。但是,在軟件架構的研究與發(fā)展過程中,產生了很多的問題,例如,當代軟件應用中,基于分布式的軟件應用的軟件架構以及面向服務的軟件系統(tǒng)越來越來多,現(xiàn)有的軟件架構已經(jīng)不再適用于新的軟件開發(fā)環(huán)境和應用環(huán)境,因此,文章對分布式以及SOA現(xiàn)代軟件架構技術進行深入探究。
2 現(xiàn)代軟件架構技術
2.1 分布式的三層軟件架構技術
分布式的三層軟件架構技術分為表示層、邏輯層以及數(shù)據(jù)層。分布式的軟件架構技術適用于分布式的軟件系統(tǒng)應用。下面將詳細的闡述每一層的功能描述。
表示層:在分布式的軟件系統(tǒng)中表示層處于瀏覽器/服務器體系中,與用戶交互的層面。例如,處于表示層的用戶可以通過IE等瀏覽器工具,進入分布式軟件系統(tǒng),用戶進入系統(tǒng)后,可以根據(jù)分布式軟件系統(tǒng)提供的相關功能進行邏輯業(yè)務的請求。
邏輯層:在分布式的軟件系統(tǒng)中邏輯層中,邏輯業(yè)務處理層在接受由表示層的客戶發(fā)出的請求后,可以對請求進行解析,并能夠將用戶的請求分類為邏輯業(yè)務處理以及數(shù)據(jù)業(yè)務處理兩種類型。假如用戶的請求只涉及到邏輯業(yè)務,則將反饋結果直接返回給表示層的客戶。假如用戶的請求是數(shù)據(jù)業(yè)務處理,則將請求發(fā)送至數(shù)據(jù)處理層次,最后將數(shù)據(jù)處理層次的結果返回給客戶。
數(shù)據(jù)層:在分布式的軟件系統(tǒng)中數(shù)據(jù)層主要是由數(shù)據(jù)庫服務器構成,其接口是由一個高性能的數(shù)據(jù)服務程序組成的。當數(shù)據(jù)業(yè)務層接收到邏輯業(yè)務層次的數(shù)據(jù)處理請求,數(shù)據(jù)庫服務器對數(shù)據(jù)庫進行查詢、更新、插入以及刪除等操作,并將最后的結果返回給邏輯處理層。邏輯業(yè)務處理層在接受到數(shù)據(jù)處理層反饋的結果時,將邏輯結果一并返回給用戶的表示層,為用戶提供瀏覽和查看最后的結果。
2.2 面向服務的軟件架構
面向服務的軟件架構,英文簡稱為SOA。SOA軟件架構最初是在一九九六年提出的。在現(xiàn)代的軟件架構技術研究中,SOA作為重要的軟件架構技術,在分布式技術、程序設計方法學、業(yè)務計算能力等領域的軟件應用中有著非常重要的作用。并且,被譽為現(xiàn)代應用開發(fā)領域中最重要的課題。
SOA的軟件架構如圖1所示。SOA可以根據(jù)服務的需求,利用網(wǎng)絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。面向服務的軟件架構的服務層是基礎,能夠被應用進行直接調用,這樣能夠有效的控制系統(tǒng)中與軟件代理交互的認為行為。因此,可以得出,SOA是一種粗粒度并且松耦合的服務架構,SOA中的服務通過簡單并且精確的定義接口進行通訊,并不涉及底層的編程接口以及通信模型。SOA可以看成是瀏覽器/服務器模型,標準通用標記語言XML/網(wǎng)絡服務技術以后的延伸架構。SOA能夠為軟件工程師、軟件架構師等提供一個更高的平臺,讓開發(fā)者去理解企業(yè)級的軟件架構的組件是如何開發(fā),以及如何部署的。SOA將使企業(yè)級的軟件架構設計變得更加快速,可靠以及高重用性。并且,在面對企業(yè)中的業(yè)務變化時,SOA的軟件架構能夠更好的適應這些變化。
3 結束語
文章首先對軟件架構在軟件開發(fā)中的重要性進行了分析,并且對軟件架構的特點以及發(fā)展現(xiàn)狀進行了詳細的分析,最后,深入地探討了分布式三層軟件架構和SOA的兩種現(xiàn)代軟件架構技術。為軟件架構技術的研究提供一定理論基礎以及實踐指導意義。
參考文獻
[1]何堅,房鼎益,王志敏,等.一種基于構件的分布式軟件構架描述語言[J].西安交通大學學報,2012(6):177-179.
[2]覃征,房鼎益,賈曉林.一個基于構件的分布式軟件構架開發(fā)環(huán)境[J].小型微型計算機系統(tǒng),2013(9):99-101.
[3]丁大偉,李長云,劉小飛.一種面向可信的分布式軟件運行時行為識別方法[J].微計算機信息,2014(36):98-99.
[4]韓宗芬,李運發(fā),謝夏,等.一種具有時間約束的分布式軟件可靠性評估方法[J].計算機研究與發(fā)展,2014(2):111-113.
[5]劉東紅,郭長國,王懷民,等.監(jiān)控使能的分布式軟件系統(tǒng)構造方法[J].軟件學報,2011(11):76-79.
[6]郭晉偉.SOA架構的管理信息系統(tǒng)設計與實現(xiàn)[D].中國科學院研究生院(沈陽計算技術研究所),2013,8(10):125-127.