《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 面向構(gòu)件的門診部信息管理系統(tǒng)軟件架構(gòu)
NI-LabVIEW 2025
面向構(gòu)件的門診部信息管理系統(tǒng)軟件架構(gòu)
來源:微型機與應用2011年第14期
丁晨路1 , 覃 勇2, 王旭輝2
(1. 重慶通信學院 研究生管理大隊,重慶400035; 2. 重慶通信學院 機動作戰(zhàn)通信系指揮自動
摘要: 構(gòu)件化軟件的設計集中于軟件體系結(jié)構(gòu)設計,其最主要的特征在于目標系統(tǒng)由大量可復用構(gòu)件組成,這就要求在設計階段應當設計出滿足需求的軟件體系結(jié)構(gòu)。以一個門診部信息管理系統(tǒng)軟件架構(gòu)為例,介紹了面向構(gòu)件的軟件架構(gòu)方法,并對系統(tǒng)架構(gòu)選型進行分析,提出了本系統(tǒng)的軟件架構(gòu),為基于構(gòu)件技術(shù)的系統(tǒng)實現(xiàn)提供良好的依據(jù)。
Abstract:
Key words :

摘  要: 構(gòu)件軟件的設計集中于軟件體系結(jié)構(gòu)設計,其最主要的特征在于目標系統(tǒng)由大量可復用構(gòu)件組成,這就要求在設計階段應當設計出滿足需求的軟件體系結(jié)構(gòu)。以一個門診部信息管理系統(tǒng)軟件架構(gòu)為例,介紹了面向構(gòu)件的軟件架構(gòu)方法,并對系統(tǒng)架構(gòu)選型進行分析,提出了本系統(tǒng)的軟件架構(gòu),為基于構(gòu)件技術(shù)的系統(tǒng)實現(xiàn)提供良好的依據(jù)。
關(guān)鍵詞: 構(gòu)件; 軟件架構(gòu); 三層體系結(jié)構(gòu)

    自從構(gòu)件技術(shù)提出以來,如何有效地劃分構(gòu)件、進行最大化的軟件復用成為研究的熱點。構(gòu)件化軟件的最主要特征[1]在于目標系統(tǒng)由大量可復用構(gòu)件組成,從系統(tǒng)化構(gòu)件復用過程來看,傳統(tǒng)軟件開發(fā)方法中的詳細設計被劃分到了構(gòu)件制作階段,與基于構(gòu)件開發(fā)目標系統(tǒng)屬于相對獨立的不同階段。構(gòu)件化軟件的設計是傳統(tǒng)軟件開發(fā)方法中的總體設計或高層設計,要求設計階段就應設計出滿足需求的軟件體系結(jié)構(gòu)。
1 面向構(gòu)件的軟件架構(gòu)
 軟件架構(gòu)[2]是指某個軟件或計算機系統(tǒng)的軟件架構(gòu),即組成該系統(tǒng)的一個或多個結(jié)構(gòu),構(gòu)成軟件的各個部分,形成該構(gòu)件的外部可見屬性及相互間的關(guān)系?;跇?gòu)件的軟件架構(gòu),更加強調(diào)構(gòu)件的概念,架構(gòu)時考慮兩個方面:(1)與軟件基礎設施有關(guān),(2)與構(gòu)件在基礎設施上的操作有關(guān)?;谶@兩方面的考慮,通常在架構(gòu)時考慮技術(shù)架構(gòu)和應用架構(gòu)兩個方面。
1.1技術(shù)架構(gòu)
 技術(shù)架構(gòu)[3]定義了技術(shù)環(huán)境和軟件基礎設施,是支持組織以實現(xiàn)運作(非功能)需求(尤其是組織的應用程序和信息體系結(jié)構(gòu))的硬件和軟件基礎設施的體系結(jié)構(gòu)。它描述了所使用的技術(shù)的結(jié)構(gòu)和內(nèi)部關(guān)系,以及這些技術(shù)如何支持組織的運作需求。
 技術(shù)架構(gòu)包括技術(shù)環(huán)境和技術(shù)基礎設施兩個部分。技術(shù)環(huán)境解決不同軟硬件平臺之間的差異性問題。技術(shù)基礎設施包括在應用中可以被標準化的部分。標準化使得通用代碼從面向業(yè)務的構(gòu)件中移出,放到一個獨立的可復用的軟件基礎設施中。軟件基礎設施可以通過預先構(gòu)建的構(gòu)件框架的方式提供,它處理構(gòu)件行為中已經(jīng)標準化的方面。
1.2 應用架構(gòu)
 應用架構(gòu)[3]包括了構(gòu)件開發(fā)者和組裝者面臨的架構(gòu)問題。是自服務的體系結(jié)構(gòu),用于支持和實現(xiàn)這樣的業(yè)務需求,包括該業(yè)務與其他應用程序之間的接口。它描述了應用程序的結(jié)構(gòu)以及該結(jié)構(gòu)如何實現(xiàn)組織的功能需求。圖1所示為面向構(gòu)件的軟件構(gòu)架模型[4]。


2 典型系統(tǒng)架構(gòu)分析
 以一個門診部信息管理系統(tǒng)為例,對基于構(gòu)件技術(shù)的系統(tǒng)架構(gòu)進行分析。
2.1 架構(gòu)選型
  根據(jù)需求分析過程中得到的用例模型,進行了如下選型過程[5]:
  (1) 選擇套裝軟件還是自行開發(fā)
     先考慮了市場上套裝軟件的產(chǎn)品,希望借助成熟的產(chǎn)品加快實施進度,確保軟件的質(zhì)量和穩(wěn)定性。但是通過考察,發(fā)現(xiàn)套裝軟件存在以下問題:
 ?、購墓δ芙嵌确治觯菏忻嫔犀F(xiàn)有的系統(tǒng)雖然提供了豐富且強大的功能,但與本系統(tǒng)的需求交集只占了大約60%,此部分之外的需求需要花費很大的代價定制,而軟件中約有50%的特性是本系統(tǒng)所不需要的。
 ?、趶膶嵤┲芷诮嵌确治觯河捎诳蛻艋膬?nèi)容比較多,包括前期的需求映射和套裝軟件的模型調(diào)整,要完成實施,經(jīng)過評估需要2年左右的時間,超出了用戶的預期。
 ?、蹚某杀窘嵌确治觯禾籽b軟件相對比較昂貴,另外需要購買相應的咨詢、實施服務,這樣使得成本更大。
 ?、軓臄U展性角度分析:套裝軟件集成了一套強大的模型,通過模型的配置,基本上可以滿足業(yè)務上的變化,但是在條件不能滿足的情況下,由于系統(tǒng)實現(xiàn)非常復雜,采用的技術(shù)手段包含了很多自由的標準,難于進行二次開發(fā),不利于移植和維護。
     基于以上的分析,選擇了自行開發(fā)軟件。
  (2) 技術(shù)平臺的選擇
     所謂“平臺”就是能夠獨立運行并自主存在,為其所支撐的上層系統(tǒng)和應用提供運行所依賴的環(huán)境。
     技術(shù)平臺是一套完整的、嚴密的服務于研制應用的軟件產(chǎn)品及相關(guān)文件。真正的技術(shù)平臺應該是選擇合適的技術(shù)體系(如J2EE、.NET等),技術(shù)架構(gòu)(一組設計模式如MVC的集合),充分發(fā)揮技術(shù)體系及技術(shù)架構(gòu)的優(yōu)勢,能夠大大提高應用軟件開發(fā)速度,指導并規(guī)范應用軟件分析、設計、編碼、測試、部署各階段工作,提煉用戶真正需求,提高代碼正確性、可讀性、可維護性、可擴展性、伸縮性等軟件工具。優(yōu)秀的技術(shù)平臺還包括一套高效的底層通用的代碼,甚至還包括代碼生成器、代碼安全漏洞檢查工具等。
2.2 三層軟件架構(gòu)
     在總結(jié)基于構(gòu)件的軟件架構(gòu)方法和進行架構(gòu)選型分析后,在本系統(tǒng)中引入三層結(jié)構(gòu)的設計思想,采用構(gòu)件化的開發(fā)方法,將系統(tǒng)業(yè)務邏輯封裝在應用服務器上,客戶端應用程序自動從應用服務器上下載和更新業(yè)務邏輯,達到“應用邏輯與程序代碼分離,數(shù)據(jù)與應用分離,應用與流程分離”,最大化地支持業(yè)務的靈活開展。圖2所示為系統(tǒng)軟件架構(gòu)。

 

 

    系統(tǒng)采用三層體系結(jié)構(gòu)設計。所謂三層體系結(jié)構(gòu)[6],即用戶層、應用層和數(shù)據(jù)庫服務器。用戶層主要指用戶界面,要求盡可能地簡單,使最終用戶不需要進行任何培訓就能方便地訪問信息;第二層是應用服務器,也就是常說的中間層,即組件層,所有的應用系統(tǒng)、應用邏輯、控制都在這一層,系統(tǒng)的復雜性也主要體現(xiàn)在應用層;最后的數(shù)據(jù)存儲層中,數(shù)據(jù)庫服務器存儲大量的數(shù)據(jù)信息和數(shù)據(jù)邏輯,所有與數(shù)據(jù)有關(guān)的安全、完整性控制、數(shù)據(jù)的一致性、并發(fā)操作等都是在第三層完成。
  在系統(tǒng)中,用戶層采用Delphi7編制,為最終用戶提供操作界面。用戶在操作界面上可以輸入信息,顯示查詢結(jié)果。具有操作簡單,信息顯示方式多樣等特點。
  業(yè)務邏輯層也采用Delphi7編制。這一層是整個系統(tǒng)的關(guān)鍵,系統(tǒng)每個功能的具體實現(xiàn)算法,各服務構(gòu)件均在本層實現(xiàn)。
     數(shù)據(jù)庫服務器為Windows2003 Server+SQL Server2000模式。在數(shù)據(jù)庫服務器上通過大量使用視圖、觸發(fā)器和存儲過程實現(xiàn)數(shù)據(jù)的完整性控制、數(shù)據(jù)的一致性和并發(fā)操作。
     采用三層體系結(jié)構(gòu)設計可以有效降低開發(fā)和維護成本,簡化管理,可適應不斷變化的業(yè)務需求,有效提高系統(tǒng)安全性。這樣的好處顯而易見:
  (1)由于數(shù)據(jù)訪問是通過中間層進行的,因此客戶端不再與數(shù)據(jù)庫直接建立數(shù)據(jù)連接。即建立在數(shù)據(jù)庫服務器上的連接數(shù)量將大大減少;
     (2)可維護性得以提高。因為業(yè)務規(guī)則、合法性校驗存在于中間層,因此當業(yè)務規(guī)則發(fā)生改變時,只需更改中間層服務器上的某個組件(如某個DLL文件),而客戶端應用程序不需做任何處理,有些時候,甚至不必修改中間層組件,只需要修改數(shù)據(jù)庫中的某個存儲過程就可以了;
  (3)良好的可重用性;
  (4)事務處理更加靈活,可以在數(shù)據(jù)庫端、組件層、MTS(或COM+)管理器中進行事務處理。
    本文以一個門診部信息管理系統(tǒng)軟件架構(gòu)為例,分析研究了基于構(gòu)件技術(shù)的系統(tǒng)軟件架構(gòu),為下一步系統(tǒng)設計與實現(xiàn)提供了重要依據(jù)。與傳統(tǒng)軟件開發(fā)方法按照設計進行編程以實現(xiàn)目標系統(tǒng)不同,構(gòu)件化軟件的基本功能單元已經(jīng)以可復用構(gòu)件的方式實現(xiàn),所以按照設計好的軟件架構(gòu)來復用構(gòu)件,如何盡可能充分、正確、有效地復用軟件框架,成為了下一步構(gòu)件化軟件實現(xiàn)的主要工作之一。
參考文獻
[1] 軟件構(gòu)件技術(shù)概述[EB/OL].http://dev.csdn.net/develop/article/13/13254.html.2007.
[2] Len Bass.軟件架構(gòu)實踐[M].車立紅,譯.北京:清華大學出版社,2004.
[3] BROWN A W著.大規(guī)?;跇?gòu)件的軟件開發(fā)[M].趙文耘,張志,譯.北京機械工業(yè)出版社,2003.
[4] Katharine Whitehead 著.基于組件的開發(fā)[M].王海鵬譯.北京:人民郵電出版社,2003.
[5] 黃柳青,王滿紅.構(gòu)件中國[M].北京:清華大學出版社,2006.
[6] 閻宏.軟件的架構(gòu)與設計模式[EB/OL].http://soft.yesky.com/lesson/495/2012495.shtml.2005.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。