張延年++米洪
摘要:網(wǎng)絡(luò)信息技術(shù)深入發(fā)展的環(huán)境下,軟件的開發(fā)和更新越來越受到重視,基于軟件生命周期管理的軟件開發(fā)平臺,影響著軟件開發(fā)的質(zhì)量和實用性。該文將以SaaS平臺為基礎(chǔ)分析和闡述軟件開發(fā)平臺的設(shè)計思想,具體論述該平臺的設(shè)計過程以及該平臺軟件開發(fā)各個環(huán)節(jié)的實現(xiàn)過程。
關(guān)鍵詞:軟件應(yīng)用;生命周期;SaaS平臺
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)29-0080-02
軟件應(yīng)用的生命周期擁有自身的特征,是指軟件的產(chǎn)生到停止使用的過程,這個周期內(nèi)的一切定義、分析、描述、設(shè)計、編程、調(diào)試和測試、驗收、運行等均是軟件應(yīng)用生命周期下的活動。這些過程也可以分為幾個不同的階段,在每個階段進行定義、工作、審查并形成文檔,以用于交流和備查,以保障軟件的質(zhì)量。當前,軟件的發(fā)展以發(fā)展成為一種面向?qū)ο蟮脑O(shè)計方法和技術(shù)。在軟件生命周期管理下,SaaS平臺的設(shè)計需要采用框架選型(OSGi)、系統(tǒng)架構(gòu)設(shè)計(SE Cloud)、SE Cloud的SaaS 服務(wù)集成方法設(shè)計、以及異構(gòu)數(shù)據(jù)集成方法,最后對 Red mine 問題跟蹤系統(tǒng)的集成進行實現(xiàn)和展示。
1 SaaS平臺的設(shè)計思想
SaaS平臺的設(shè)計過程,是基于OSGI的模塊化機制設(shè)計,在一個模塊內(nèi)有一個或者多個的Bundle,用來對模塊的范圍進行定義,并在模塊對外服務(wù)的過程中提供服務(wù)和依賴服務(wù)。當前的軟件設(shè)計所采用的主要形式均是面向?qū)ο蠡姆?wù)組件模塊設(shè)計,通過組件提供對外的服務(wù)接口,并引用其他的服務(wù)接口實現(xiàn)交互的目標;或者在以POJO的方式編寫程序時,通過依賴注入的方式注入引用的服務(wù),用XML描述Component引用服務(wù)的方式,提供對外的服務(wù)和服務(wù)屬性。
除此之外,SaaS平臺采用的是動態(tài)化和可擴展的設(shè)計思想,保證系統(tǒng)穩(wěn)定的提供個服務(wù)并實現(xiàn)組件擴展功能。
2 SaaS平臺的設(shè)計過程
2.1 系統(tǒng)的架構(gòu)設(shè)計
軟件應(yīng)用周期管理下,SaaS平臺的合理設(shè)計過程首先是OSGi框架選型,從常用的四個框架(Apache Felix,Equinox,Spring DM,Knopfler fish)中,實現(xiàn)OSGi組件從一個框架輕易地轉(zhuǎn)移到另一個,在不同的框架上,實現(xiàn)本身的設(shè)計和額外的服務(wù),并對這四個框架進行分析,選擇出合適的框架。
2.2 SaaS服務(wù)集成設(shè)計
在SE Cloud平臺的框架下,Business Module對模塊范圍的定義是能夠提供獨立業(yè)務(wù)功能模塊,故平臺的集成思想是將開源工具以業(yè)務(wù)模塊為邊界來進行拆分和集成,這便可以實現(xiàn)用戶按需使用的要求,下表1就是Red mine模塊的劃分表格。
表1 Red mine模塊的劃分
在異構(gòu)開源管理工具中,編程語言是多樣化的,技術(shù)架構(gòu)也不同,是屬于只面向Java 語言的軟件設(shè)計模式。
3 SaaS平臺實現(xiàn)過程
在軟件應(yīng)用生命周期管理下的SaaS平臺開發(fā)環(huán)境主要如下表2所示。軟件開發(fā)環(huán)境對軟件開發(fā)的效率至關(guān)重要,也有助于軟件開發(fā)平臺對軟件運行問題的有效跟蹤和及時解決。下面將以SE Cloud平臺對Red mine問題跟蹤系統(tǒng)的集成為例進行實現(xiàn),通過這個過程闡述SaaS平臺實現(xiàn)過程的相關(guān)技術(shù)處理和需要注意的問題。
在軟件開發(fā)系統(tǒng)的運用過程中,各種框架的搭建、框架技術(shù)的運用以及模塊化集成平臺的運用,均影響著軟件開發(fā)的效率和實現(xiàn)結(jié)果的好壞。
表2 軟件開發(fā)環(huán)境
3.1 平臺實現(xiàn)的配置
在OSGi框架技術(shù)下,搭建的模塊化平臺定義為SE Cloud,該框架下,模塊化的單元定義為Bundle,它包含了一系列的源代碼、資源和配置文件,與一般的jar包不一樣的是,模塊化的單元強調(diào)的是package角度下打包,而不是單個的文件打包。在模塊化的單元里, Manifest文件便是用來聲明模塊化單元的基本屬性,主要內(nèi)容個有名稱,版本、作者、構(gòu)建環(huán)境、訪問路徑及導(dǎo)入和導(dǎo)出包等重要的信息。通常,在構(gòu)建模塊化單元的定義中,開發(fā)者會采用第三方開源工具進行構(gòu)建,其構(gòu)建原則是在pom.xml文件中設(shè)置單元化模塊的相關(guān)基本配置。
除了Bundle框架開發(fā)方式,還有Apache Felix框架,同樣能夠很好地實現(xiàn)軟件應(yīng)用平臺的構(gòu)建和開發(fā)。
3.2 服務(wù)管理平臺實現(xiàn)
在服務(wù)管理平臺的實現(xiàn)過程中,服務(wù)的分類及分類間的層次結(jié)構(gòu)以樹形菜單的方式展現(xiàn),在瀏覽器向Servlet發(fā)送請求的時候,Servlet會使用Felix框架中Fast j son模塊提供的靜態(tài)方式( JSON.to J SON String)將查詢的結(jié)果以JSON的方式輸出,而頁面將通過Easyui自動解析查詢的數(shù)據(jù)并進行結(jié)構(gòu)化展示。在選擇服務(wù)菜單時,瀏覽器再次請求數(shù)據(jù),并在新選項卡中現(xiàn)實服務(wù)信息。其次,在模塊化單元初次啟動時,平臺將自動向數(shù)據(jù)庫中注冊這項服務(wù),并直接從數(shù)據(jù)庫中讀取服務(wù)列表。這個過程還可以由系統(tǒng)管理員拖動到制定的分類目錄下對服務(wù)項目進行分類。最后,模塊化單元的管理在框架體系下也是能夠?qū)崿F(xiàn)安裝、卸載、更行、刷新和停止啟動等操作的。
3.3 SE Cloud平臺實現(xiàn)
在SE Cloud平臺實現(xiàn)的過程中,主要需要實現(xiàn)數(shù)據(jù)同步和項目配置。數(shù)據(jù)同步是根據(jù)數(shù)據(jù)集成方案,實現(xiàn)同時鏈接多個數(shù)據(jù)庫,保持數(shù)據(jù)的一致性,并保證所有的源數(shù)據(jù)能實現(xiàn)同時更新。在Java的分布式數(shù)據(jù)處理機制中,可實現(xiàn)多個數(shù)據(jù)庫的訪問和更新目的。在面向?qū)ο蟮能浖_發(fā)過程中,我們可以將事務(wù)管理器和資源管理器區(qū)別定義,開發(fā)人員所使用的接口和面向服務(wù)提供商所使用的接口是不同的。在不同的數(shù)據(jù)庫同步為多個集成系統(tǒng)服務(wù)時,若存在重復(fù)和沖突,也可以通過SE cloud進行管理,主要有用戶管理、角色權(quán)限管理和項目管理設(shè)置。
參考文獻:
[1] 宋杰,李甜甜,賈路路,朱志良.基于角色和交互的SaaS軟件生命周期推演模型[J].東北大學學報:自然科學版,2012(6) .
[2] 何月,陳明.取證分析SaaS云的安全體系及關(guān)鍵技術(shù)研究[J]. 信息網(wǎng)絡(luò)安全, 2012(8) .