系統(tǒng)分析師論文范文-論基于構件的軟件開發(fā)3_第1頁
系統(tǒng)分析師論文范文-論基于構件的軟件開發(fā)3_第2頁
系統(tǒng)分析師論文范文-論基于構件的軟件開發(fā)3_第3頁
系統(tǒng)分析師論文范文-論基于構件的軟件開發(fā)3_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

論基于構件的軟件開發(fā)【摘要】2011年3月,我有幸參加了統(tǒng)一網(wǎng)管應用平臺(UNMP)項目的開發(fā)工作,并擔任系統(tǒng)架構師一職,負責系統(tǒng)的架構設計及核心構件的開發(fā)工作。該系統(tǒng)是**省移動分公司網(wǎng)絡維護中心委托我們開發(fā)的,在該項目立項前,該部門存在大量的第三方應用系統(tǒng),這些系統(tǒng)之間存在大量重復的功能,所以提出了建設UNMP作為各應用系統(tǒng)的支撐平臺。UNMP主要功能有:單點登錄、用戶管理、集中授權、消息通知、日志管理、告警管理、系統(tǒng)監(jiān)控、定時服務等。該項目于2011年底通過驗收,滿足客戶方提出的作為各應用系統(tǒng)支撐平臺的需求。本文以UNMP為例,討論基于構件的軟件開發(fā),簡單說明為什么要用構件開發(fā)及獲取構件的方式,接著詳細介紹系統(tǒng)主要的構件以及開發(fā)過程,開發(fā)策略。文章最后簡略說明幾種構件技術及展望構件技術的發(fā)展趨勢。【正文】2011年3月,我有幸參加了統(tǒng)一網(wǎng)管應用平臺(UNMP)項目的開發(fā)工作,并擔任系統(tǒng)架構師一職,負責系統(tǒng)的架構設計及核心構件的開發(fā)工作。該系統(tǒng)是**省移動分公司網(wǎng)絡維護中心委托開發(fā)的,項目于2011年底驗收,滿足客戶方提出的作為各應用系統(tǒng)支撐平臺的需求。以前該部門存在大量各種各樣的應用系統(tǒng),這些應用系統(tǒng)的開發(fā)平臺、架構、語言截然不同,硬件也不盡相同,部門系統(tǒng)維護人員維護的難度很大,各應用系統(tǒng)重復采集數(shù)據(jù)給網(wǎng)絡帶來額外負擔,也浪費了采集帶寬和資源,系統(tǒng)之間存在大量的重復功能。為解決上述問題,需要建立統(tǒng)一網(wǎng)管應用平臺(UNMP)來有效整合各種應用系統(tǒng),規(guī)范各類開發(fā)和維護。同時這個平臺也可以為新增的應用系統(tǒng)提供規(guī)范約束和指導,提高開發(fā)效率和降低開發(fā)成本。為利用好以前各硬件平臺的投資,選擇UNMP運行于windows+sqlserver2005平臺上,采用.net開發(fā)技術。采用四層B/S架構,這四層分別為界面層,外觀層,業(yè)務邏輯層及數(shù)據(jù)訪問層,項目的各種功能基本具有這四層架構。系統(tǒng)的主要功能有:通過一次登錄后可以任意跳轉到其它各系統(tǒng)的單點登錄;用于統(tǒng)一管理各應用系統(tǒng)用戶信息;為各系統(tǒng)提供收發(fā)短信/彩信的消息服務;還有日志管理和告警管理;還有為其它功能提供短信、監(jiān)控、同步用戶、同步工作流待辦待閱信息等的定時服務。這些功能都以webservice接口的方式公開給各應用系統(tǒng)調用,有了這些基礎功能,應用系統(tǒng)就可以省去單點登錄,用戶管理,收發(fā)短信等功能的開發(fā)和維護,縮短開發(fā)周期和降低開發(fā)成本。因為UNMP是個平臺系統(tǒng),接入的各種應用系統(tǒng)繁多,影響面廣,開發(fā)周期短,所以復用性,穩(wěn)定性和擴展性要求比較高,團隊最終采用了基于構件的開發(fā)方式,基于構件的軟件開發(fā)是一種自底向上的,基于包裝好的構件來構造應用系統(tǒng)的方法,它主要包含構件的檢索與獲取,理解與評價構件,修改構件,組裝構件,應用與布署等工作?;跇嫾拈_發(fā)涉及到構件的獲取問題,目前構件的獲取目前主要有三種方式:自身企業(yè)庫,第三方構件和自主開發(fā),因為考慮到需求變化時構件的修改問題,我們只采用了從企業(yè)庫獲取和自主全新開發(fā)兩種方式。鑒于公司在電信行業(yè)多年的項目積累,我們整理了以往成功實施的項目,形成企業(yè)構件庫,針對性的選擇合適的構件,對于與需求類似的構件,進行修改后,做好構件的版本記錄。企業(yè)構件庫構建,采用從成功實施過的項目中,抽取共用的,底層的一些模塊,封裝其內部邏輯,為外部提供一致的調用接口,形成可復用的構件。經過我們的分析、篩選和比對,發(fā)現(xiàn)以往項目中經常用到的單點登錄模塊,只需要改進一下驗證方式就可以復用到新系統(tǒng)中;接著從共用的底層模塊中,發(fā)現(xiàn)了數(shù)據(jù)庫訪問和日志管理模塊,只要在靈活性和可替換性方面加強一下,也達到我們復用的標準;最后發(fā)現(xiàn)的定時服務和短信組件這兩個模塊,幾乎是最成熟的,除了界面外其它不用修改,可以直接復用。接下來詳述一下組成系統(tǒng)的主要構件:1、首先介紹一下,單點登錄構件(SSO),SSO可以讓用戶登錄UNMP后,可以跳轉到任意其它應用系統(tǒng),進入其它系統(tǒng)時無需再次登錄,免除用戶每使用一個應用系統(tǒng)就得再次登錄的重復操作,需要接入的應用系統(tǒng)只要到UNMP注冊,按照規(guī)范配置即可實現(xiàn)這一功能。當用戶進行頁面請求時,就會被SSO捕捉(采用.net的httpmodule機制),SSO首先判斷是當前客戶端是否存在該用戶的cookie,如果不存在則跳轉到UNMP的登錄頁面,要求用戶進行登錄,如果存在則傳遞到業(yè)務層進行解密,驗證解密后的用戶信息是否合法,用戶類型是否合法,驗證通過后會跳轉到用戶所請求的頁面,完成一次SSO過程。驗證用戶的合法性,有幾種情況:第一種是臨時用戶只跟本地數(shù)據(jù)庫進行比對;第二種是AD(活動目錄)用戶,則需要調用AD的接口進行驗證;還有一種是省portal類型的用戶,需要調用portal提供的驗證接口。只要有一種驗證通過即視為驗證成功,不再進行下一步驗證,對于這種需求,由于項目初期還不知以后會有多少種驗證方式,所以從構件庫獲取之后,在設計上增加職責鏈的設計模式,以適應增加新的驗證方式提高擴展性。2、數(shù)據(jù)庫訪問構件,從構件庫獲取后,抽象出一套規(guī)范的數(shù)據(jù)訪問接口,以后構件的修改不會影響到其它調用的程序。為了解決以后還可以替換成其它類型的數(shù)據(jù)庫平臺,采用了“依賴注入”的理念,即用抽象工廠模式,通過配置文件配置數(shù)據(jù)庫操作的具體實現(xiàn)構件(類),來生成實例,這樣就可以實現(xiàn)以下場景:比如數(shù)據(jù)庫從sqlserver2005替換成oracle,只要實現(xiàn)oracle數(shù)據(jù)庫訪問構件,然后配置在配置文件中,即可以完成不同數(shù)據(jù)庫平臺的切換,其它程序無須改動,做到平滑過渡,提高系統(tǒng)穩(wěn)定性。3、日志構件和數(shù)據(jù)庫訪問構件一樣,也規(guī)范了一套日志接口,采用“依賴注入”等理念。因為UNMP作業(yè)平臺系統(tǒng),對日志功能要求比較高,如果現(xiàn)有的日志構件表現(xiàn)不佳,需要隨時能替代成其它的日志構件,而不影響現(xiàn)有的程序。4、定時服務構件和短信構件,這兩個構件是直接從企業(yè)構件庫提取出來的,只做了界面調整,定時服務采用windows服務的方式,為注冊的程序提供按時間段,時間點,某月某日,每星期某天等方式執(zhí)行。利用該構件可以為同步用戶、告警、系統(tǒng)監(jiān)控、及工作流待辦待閱信息等提供定時執(zhí)行的機制。短信構件是調用華為iod(短信網(wǎng)關)接口,實現(xiàn)短信的接收和發(fā)送,具有多線程,短信隊列,同步控制等功能,第三方應用系統(tǒng)通過調用webservice接口,把短信信息寫入UNMP數(shù)據(jù)庫,然后由短信構件進行短信的發(fā)送和接收。5、在界面層的設計中,因為構件庫中沒有相應的控件,只好采取自主全新開發(fā),如時間段選擇控件,文本框智能提示控件,基于flash的多文件上傳控件,以及用戶/部門選擇控件。這些控件還提供了日常的數(shù)據(jù)驗證功能,開發(fā)時跟.net服務器控件一樣,拖拉到開發(fā)頁面即可,讓開發(fā)人員把精力集中在系統(tǒng)的業(yè)務功能實現(xiàn)上,而非技術細節(jié),縮短了界面層的開發(fā)周期,也為后續(xù)項目積累了基礎控件。該系統(tǒng)采用基于構件的開發(fā)方法,從構件庫中獲取構件,并采用了“依賴注入”,抽象工廠,后期綁定等技術,提高擴展性、靈活性和穩(wěn)定性。對于構件庫沒有的進行了自主全新開發(fā),開發(fā)完成后加構件庫,為后續(xù)項目開發(fā)提供構件。這種開發(fā)方法保證了系統(tǒng)質量并按期通過驗收。雖然從企業(yè)構件庫中獲取到大部分的構件,但構件本身的修改不是件容易的事情,如上述所提的單點登錄(SSO)構件,數(shù)據(jù)訪問構件都需要資深的開發(fā)人員采用一些如“依賴注入”,抽象工廠,后期綁定等技術,來提高擴展性、靈活性和穩(wěn)定性;而構件庫沒有采用自主全新開發(fā)的,比如flash批量上傳文件控件還涉及flash、Ajax等技術,用戶/部門選擇控件對javascript技術的要求也特別高,這就要求構件開發(fā)人員的選拔和培訓成了一件緊迫的工作,在以后的項目中會更加重視這一工作,培養(yǎng)合格的構件開發(fā)人員,讓更多合格的構件加入到企業(yè)構件庫,提高企業(yè)的整體開發(fā)效率。目前主流的構件技術標準有三種:Corba,EJB和Com/Dcom/Com+,Corba是OMG組織制訂的一種標準,這種標準易于擴充和修改,具有較高的通用性和適應性;EJB是java體系的,憑借java跨平臺的優(yōu)勢,用EJB技術部署的分布式系統(tǒng)可以不限

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論