下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
論基于構(gòu)件的軟件開(kāi)發(fā)【摘要】本文以我參與的ATEL2.0在線學(xué)習(xí)平臺(tái)(該平臺(tái)是ATEL1.0版本的升級(jí),以下簡(jiǎn)稱ATEL平臺(tái))開(kāi)發(fā)項(xiàng)目為例,討論了基于構(gòu)件的軟件開(kāi)發(fā)技術(shù)。ATEL在線學(xué)習(xí)平臺(tái)是我們公司自主開(kāi)發(fā),自主運(yùn)營(yíng)的平臺(tái),該平臺(tái)是基于“云計(jì)算”中SAAS(軟件即服務(wù))模式的網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)。通過(guò)互聯(lián)網(wǎng),為客戶提供完整的遠(yuǎn)程教育及網(wǎng)絡(luò)培訓(xùn)功能。本文首先介紹了基于構(gòu)件開(kāi)發(fā)技術(shù)的基本思想和實(shí)施步驟,介紹了ATEL平臺(tái)選用構(gòu)件技術(shù)來(lái)開(kāi)發(fā)的原因。然后具體介紹了ATEL平臺(tái)基于構(gòu)件開(kāi)發(fā)過(guò)程中對(duì)構(gòu)件獲取、構(gòu)件的修改、構(gòu)件的組裝、獲取和修改過(guò)程中對(duì)構(gòu)件的評(píng)價(jià),以及對(duì)構(gòu)件的管理等。我在項(xiàng)目中擔(dān)任了系統(tǒng)架構(gòu)設(shè)計(jì)師,自始至終參與了整個(gè)項(xiàng)目的建設(shè)。自2011年1月份項(xiàng)目啟動(dòng)至2011年9月份新品發(fā)布?xì)v時(shí)9個(gè)月,取得了客戶和業(yè)界的好評(píng)。項(xiàng)目能夠確保質(zhì)量提前完成,節(jié)約了成本并保證質(zhì)量,很大程度得益于基于構(gòu)件的開(kāi)發(fā)技術(shù)?!菊摹緼TEL在線學(xué)習(xí)平臺(tái)是我們公司自主開(kāi)發(fā),自主運(yùn)營(yíng)的平臺(tái),該平臺(tái)是基于“云計(jì)算”中SAAS(軟件即服務(wù))模式的網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)。通過(guò)互聯(lián)網(wǎng),為客戶提供完整的遠(yuǎn)程教育及網(wǎng)絡(luò)培訓(xùn)功能。ATEL平臺(tái)可以廣泛應(yīng)用于大型企業(yè)、政府協(xié)會(huì)、教育機(jī)構(gòu)、高等院校等各類(lèi)機(jī)構(gòu)的遠(yuǎn)程教育及網(wǎng)絡(luò)培訓(xùn)業(yè)務(wù)。ATEL2.0平臺(tái)于2011年1月開(kāi)始建設(shè),我擔(dān)任了系統(tǒng)架構(gòu)設(shè)計(jì)師職務(wù)。ATEL平臺(tái)由多個(gè)業(yè)務(wù)子系統(tǒng)構(gòu)成,主要包括:學(xué)習(xí)管理系統(tǒng)(LMS),幫助學(xué)員安排學(xué)習(xí)進(jìn)程,測(cè)試和練習(xí);學(xué)習(xí)內(nèi)容管理系統(tǒng)(LCMS),為機(jī)構(gòu)高效的設(shè)計(jì)、創(chuàng)建和發(fā)布在線學(xué)習(xí)課程到LMS供學(xué)員學(xué)習(xí),并能測(cè)量該課程的學(xué)習(xí)效果;ATEL管理平臺(tái)(SAAS-Portal),針對(duì)各種機(jī)構(gòu)的業(yè)務(wù)特點(diǎn),實(shí)現(xiàn)各種業(yè)務(wù)管理功能的集成;交易中心(CSHOP),實(shí)現(xiàn)了機(jī)構(gòu)與機(jī)構(gòu)之間的課件交易,學(xué)習(xí)者與機(jī)構(gòu)的課程的交易;ATEL課件中心(CWC),實(shí)現(xiàn)對(duì)課件的添加、發(fā)布,分發(fā)到各個(gè)課件存儲(chǔ)節(jié)點(diǎn)。現(xiàn)在軟件行業(yè)競(jìng)爭(zhēng)越來(lái)越激烈,除了要有好的商業(yè)模式外,軟件本身的推出周期的速度,經(jīng)常會(huì)影響公司發(fā)展,誰(shuí)搶得了先機(jī),誰(shuí)就有可能獲得更大的市場(chǎng)份額,經(jīng)常是一步慢,步步慢。所以如何提高軟件的開(kāi)發(fā)速度,同時(shí)保證開(kāi)發(fā)質(zhì)量,越來(lái)越受到行業(yè)的重視。我們公司基于SAAS模式的E-Learning在線學(xué)習(xí)平臺(tái),采用SAAS模式做E-Learning,和傳統(tǒng)軟件最大的不同是:多租戶。為了快速推出我們的ATEL平臺(tái),我們采用了構(gòu)件開(kāi)發(fā)技術(shù)。采用構(gòu)件開(kāi)發(fā)技術(shù),可以減少軟件開(kāi)發(fā)中的重復(fù)性工作,降低開(kāi)發(fā)成本,縮短周期,改善軟件質(zhì)量和靈活性?;跇?gòu)件開(kāi)發(fā)過(guò)程中包括對(duì)構(gòu)件獲取、構(gòu)件的提取、構(gòu)件的評(píng)價(jià)、構(gòu)件的修改、構(gòu)件的組裝以及對(duì)構(gòu)件的管理等過(guò)程。大量可復(fù)用的構(gòu)件是有效地使用構(gòu)件開(kāi)發(fā)技術(shù)的前提,獲取構(gòu)件的途徑有多種途徑,第一種在現(xiàn)有構(gòu)件庫(kù)中提取符合要求的構(gòu)件,或?qū)σ延袠?gòu)件做適當(dāng)修改,在ATEL1.0版本已經(jīng)積累了不少的構(gòu)件,并經(jīng)過(guò)時(shí)間的驗(yàn)證是穩(wěn)定的和正確的,所以ATEL2.0平臺(tái)開(kāi)發(fā)中大部分構(gòu)件從構(gòu)件庫(kù)里選擇的,這也是成本最低的。第二是采用第三方構(gòu)件,比如開(kāi)源軟件,或市場(chǎng)上購(gòu)買(mǎi)商業(yè)軟件,開(kāi)發(fā)平臺(tái)和數(shù)據(jù)庫(kù)這些基礎(chǔ)平臺(tái)都是選用優(yōu)秀的平臺(tái),我想做應(yīng)用軟件產(chǎn)品公司的很少有自己去開(kāi)發(fā)這些基礎(chǔ)平臺(tái)的,還有一些是就是通用性很強(qiáng)的構(gòu)件,我們一般選用開(kāi)源的很成熟的構(gòu)件,可以節(jié)省我們自己開(kāi)發(fā)的成本。第三是自己開(kāi)發(fā)符合需求的構(gòu)件,當(dāng)構(gòu)件庫(kù)和第三方的沒(méi)有能滿足需求的構(gòu)件的時(shí)候,必須開(kāi)發(fā)新的構(gòu)件,以滿足系統(tǒng)需要。以下是ATEL平臺(tái)獲取構(gòu)件的具體過(guò)程:1)構(gòu)件庫(kù)中提取構(gòu)件或修改在ATEL1.0版本開(kāi)發(fā)中,提取和抽象了一些公用模塊作為單獨(dú)的構(gòu)件。XJson是客戶端和服務(wù)器端數(shù)據(jù)交互構(gòu)件,程序員只用在一個(gè)基于XML格式的后綴名為Xjson文件里寫(xiě)好要執(zhí)行的SQL和對(duì)應(yīng)參數(shù),用Jquery的AJAX方法請(qǐng)求就可以通過(guò)該文件獲取需要的數(shù)據(jù),不用寫(xiě)執(zhí)行數(shù)據(jù)庫(kù)操作的對(duì)象和類(lèi),極大的簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)。CWS課件播放器構(gòu)件,是我們?cè)贏TEL1.0開(kāi)發(fā)的一個(gè)支持IMS/Scrom國(guó)際標(biāo)準(zhǔn)的課件播放器,運(yùn)行穩(wěn)定,但無(wú)法支持跨域交互數(shù)據(jù)。在ATEL2.0平臺(tái)里,為了把CWS與LMS/LCMS拆分,實(shí)現(xiàn)解耦,提升系統(tǒng)的擴(kuò)展性,這就涉及到跨域問(wèn)題,需要修改該構(gòu)件。目前大部分瀏覽器無(wú)法支持跨域交互數(shù)據(jù),因此我們引入跨域技術(shù),原理就是采用腳本注入方式,我們開(kāi)發(fā)了兩種跨域獲取數(shù)據(jù)的JS構(gòu)件。2)采用的第三方構(gòu)件ATEL平臺(tái)采用了B/S多層分布式架構(gòu),以.NET平臺(tái)作為我們的開(kāi)發(fā)平臺(tái)。前端表示層采用HTML+jQuery+AJAX,功能層采用Asp.NET+Spring.NET+Xjson;數(shù)據(jù)層是SQLSERVER2005。以下是選擇這些第三方構(gòu)件的原因:HTML靜態(tài)頁(yè)加載速度快,AJAX是創(chuàng)建交互式網(wǎng)頁(yè)的技術(shù),jQuery是優(yōu)秀的JavaScirpt框架并兼容各種瀏覽器;.NET平臺(tái)具有開(kāi)放性、分布性、平臺(tái)無(wú)關(guān)性的大型企業(yè)級(jí)開(kāi)發(fā)平臺(tái),SQLSERVER2005和.NET都是微軟公司的產(chǎn)品,相互無(wú)縫結(jié)合;開(kāi)源Spring.NET是基于IoC(依賴注入)和AOP(面向方面編程)的架構(gòu),Spring.NET的IOC容器可以解決如何在企業(yè)應(yīng)用中將類(lèi)、對(duì)象和服務(wù)以松散耦合組合成應(yīng)用程序的問(wèn)題;運(yùn)行環(huán)境中發(fā)生問(wèn)題,需要日志系統(tǒng)日志記錄來(lái)快速診斷程序問(wèn)題,log4net是開(kāi)源的功能強(qiáng)大的日志記錄組件。3)新開(kāi)發(fā)的構(gòu)件為了增加頁(yè)面內(nèi)容元素的復(fù)用,我們?cè)O(shè)計(jì)了頁(yè)面分區(qū)塊加載的JS構(gòu)件,在某個(gè)HTML頁(yè)面元素上加載指定URI網(wǎng)頁(yè)上的內(nèi)容。該構(gòu)件類(lèi)似A的用戶控件,程序員開(kāi)發(fā)的某個(gè)頁(yè)面功能,其他人可以直接加載到自己的頁(yè)面,提高了復(fù)用的粒度。我們還設(shè)計(jì)開(kāi)發(fā)了一些實(shí)用的JS生成特定控件的方法,有支持翻頁(yè)的Table數(shù)據(jù)綁定控件、動(dòng)態(tài)創(chuàng)建樹(shù)控件等。在開(kāi)發(fā)過(guò)程中,我們抽取了不少構(gòu)件,比如單點(diǎn)登錄構(gòu)件、權(quán)限管理構(gòu)件等…,限于篇幅,不再詳述。構(gòu)件組裝過(guò)程中,我們采用了基于功能和面向?qū)ο蟮慕M裝技術(shù)相結(jié)合,根據(jù)系統(tǒng)需求,從構(gòu)建庫(kù)提取、第三方構(gòu)件、新開(kāi)發(fā)構(gòu)件等多種途徑獲取構(gòu)件。把這些構(gòu)件相互連接,或和現(xiàn)有開(kāi)發(fā)中的軟件元素相互連接,實(shí)現(xiàn)構(gòu)件的組裝。隨著構(gòu)件的增多,需要對(duì)大量構(gòu)件的進(jìn)行有效管理,我們公司有專(zhuān)門(mén)的Wiki系統(tǒng)對(duì)構(gòu)件進(jìn)行描述、分類(lèi)與組織。方便開(kāi)發(fā)人員對(duì)構(gòu)件進(jìn)行檢索與提取、理解評(píng)價(jià)、修改構(gòu)件。經(jīng)常發(fā)生有些程序員不知道構(gòu)件庫(kù)里已有某個(gè)構(gòu)件,造成重復(fù)開(kāi)發(fā);還有就是對(duì)構(gòu)件不理解,無(wú)法很好的使用構(gòu)件庫(kù)里的構(gòu)件。這些都是程序員對(duì)現(xiàn)有構(gòu)建不夠了解,需要加強(qiáng)程序員對(duì)已有構(gòu)件的熟悉,可以做不定期的構(gòu)件培訓(xùn)講解,增加構(gòu)件的使用率?;仡櫿麄€(gè)項(xiàng)目實(shí)施過(guò)程,從通用性角度看,企業(yè)新開(kāi)發(fā)的構(gòu)件不如第三方構(gòu)件通用和成熟,從行業(yè)角度來(lái)看,企業(yè)自己開(kāi)發(fā)構(gòu)件能夠滿足業(yè)務(wù)領(lǐng)域的大部分開(kāi)發(fā),這是第三方構(gòu)件無(wú)法達(dá)到的。從行業(yè)發(fā)展來(lái)看,會(huì)有越來(lái)越多的行業(yè)領(lǐng)域的服務(wù)構(gòu)件被開(kāi)發(fā)出來(lái),供更多的行業(yè)客戶使用,這給行業(yè)軟件服務(wù)提供商提供了更多的商業(yè)機(jī)會(huì)。ATEL平臺(tái)通過(guò)采用基于構(gòu)件開(kāi)發(fā)技術(shù),提高了開(kāi)發(fā)效率,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購(gòu)代表合同格式
- 施工招標(biāo)文件的經(jīng)典范本詳解
- 快遞公司丟件找回保證
- 促銷(xiāo)材料選購(gòu)合約
- 居間環(huán)保居間咨詢
- 工程保證書(shū)格式及內(nèi)容
- 誠(chéng)實(shí)守信贏得尊重
- 借車(chē)期間車(chē)輛保險(xiǎn)協(xié)議
- 供應(yīng)商零件信譽(yù)承諾
- 簡(jiǎn)易純勞務(wù)分包合同示例
- 市政公用工程安全文明施工監(jiān)理實(shí)施細(xì)則樣本
- 采購(gòu)部經(jīng)理年度工作總結(jié)
- 預(yù)防網(wǎng)絡(luò)成癮心理課課件
- 航道工程學(xué)-航道疏浚分解課件
- pvc電纜保護(hù)管制造工藝
- 壓力容器焊接技術(shù)培訓(xùn)
- 某新材料科技公司《呆貨 次品 退貨及客戶罰款處理規(guī)定》
- 2024年1月份21起典型事故案例匯總及2024年節(jié)前安全檢查與春節(jié)安全專(zhuān)題培訓(xùn)
- 湖南省懷化市2023-2024學(xué)年九年級(jí)上學(xué)期1月期末歷史試題(無(wú)答案)
- 城市排水系統(tǒng)雨污分流改造
- 黑臭水體治理技術(shù)課件
評(píng)論
0/150
提交評(píng)論