余久久,張繼山,吳 寧,戴禮慧,劉 麗
近年來,許多高校結(jié)合本校實際情況積極組織校園二手交易活動,使學(xué)生的二手物品得到了充分利用,避免一定的浪費[1].但目前國內(nèi)還沒有面向高校校園成型的二手物品中、小交易網(wǎng)站,只有“閑魚網(wǎng)”“趕集網(wǎng)”“全球二手網(wǎng)”等大型綜合性二手交易平臺,交易對象也不完全是本地在校大學(xué)生群體,且買賣雙方傭金管理費用較高[2].
不同于普通商品,校園大學(xué)生的閑置物品大都耐用性較短,價格較低,交易周期短,也不存在快遞運費等問題.所以,為了滿足校園二手物品交易市場的需求,充分考慮校園大學(xué)生二手物品交易的流程與特點,使用簡單而易用的二手物品交易系統(tǒng)更有助于校園大學(xué)生“買賣”二手物品.
基于此,本文采用軟件敏捷方法中的Scrum模型,設(shè)計出一個基于Openstack 云平臺的輕量級校園二手物品交易系統(tǒng).系統(tǒng)采用J2EE的Struts?Spring?Hibernate(SSH)輕量級集成框架,遵守Internet 數(shù)據(jù)關(guān)聯(lián)規(guī)則,學(xué)生賣家可以在短時間內(nèi)將需要出售的二手物品信息發(fā)布至系統(tǒng)上,學(xué)生買家能夠充分瀏覽網(wǎng)上二手物品信息,選擇看中的物品并加入個人訂單,完成線上交易活動.
Openstack 是NASA(美國國家航空航天局)和Rackspace 共同開發(fā)的一個云計算平臺,整體邏輯結(jié)構(gòu)如圖1 所示.其中的計算支持組件是平臺架構(gòu)核心,還包括網(wǎng)絡(luò)支持、身份認證、UI 界面、對象存儲、塊存儲、鏡像管理等.平臺UI 界面為其他所有組件提供了一個可視化的Web 界面,方便用戶對組件的可視化管理[2].歷經(jīng)不斷的發(fā)展與維護,目前Openstack已成為主流的開源云平臺之一.
圖1 Openstack 云平臺結(jié)構(gòu)
軟件敏捷方法是一種輕量級的軟件工程項目實踐方法.其以用戶需求的進化為核心,采用迭代的方式完成軟件開發(fā)過程.簡單地說,敏捷方法就是把一個軟件系統(tǒng)劃分為多個相互聯(lián)系,但也可獨立運行的子系統(tǒng),并分別完成開發(fā)過程,其強調(diào)快速性及適應(yīng)性,而在此期間整個軟件一直處于可使用(運行)狀態(tài)[3].
在軟件敏捷方法中的Scrum 模型(圖2)針對迭代式增量軟件開發(fā)過程,已被廣泛運用于各類輕量級軟件開發(fā)項目中,成為當(dāng)前的主流的敏捷開發(fā)模型.
圖2 軟件敏捷方法Scrum 模型
Scrum 模型中,待開發(fā)的產(chǎn)品需求列表(backlog)將以若干個“用戶故事”的形式予以快速提取與提煉.一個Sprint 在Scrum 模型中表示一個開發(fā)(迭代)周期,通常4 周以內(nèi).在每一個Sprint 結(jié)束后,必須要發(fā)布(產(chǎn)生)一個基于原軟件產(chǎn)品基礎(chǔ)上的、可運行的、可用的、能夠?qū)崿F(xiàn)用戶價值的軟件產(chǎn)品增量(版本)[3].從整體來看,以迭代形式完成一個軟件產(chǎn)品的開發(fā)全過程通常會歷經(jīng)多個Sprint周期.
Struts?Spring?Hibernate(SSH)是一個基于J2EE 適用于中、小型Web 應(yīng)用系統(tǒng)的輕量級三層組合框架,能較好實現(xiàn)網(wǎng)絡(luò)及系統(tǒng)管理等功能[3].SSH 框架的優(yōu)點在于具有良好的擴展性與穩(wěn)定性.HTTP 通信協(xié)議在SSH 中廣泛使用,能借助無線網(wǎng)有效實現(xiàn)Android 用戶客戶端與系統(tǒng)服務(wù)器之間的數(shù)據(jù)通信過程.
當(dāng)用戶通過Android 手機客戶端對本二手物品交易系統(tǒng)進行實際使用(如頁面瀏覽、數(shù)據(jù)操作等)時,手機上會以電腦Web 頁面分頁的形式展示數(shù)據(jù),盡管內(nèi)容正確,但頁面數(shù)據(jù)尺寸顯示(排列)方式不美觀.
系統(tǒng)客戶端頁面采用了GirdView 自動分頁技術(shù),在數(shù)據(jù)顯示方面,能較好地呈現(xiàn)其美觀性,亦能實現(xiàn)Android 手機客戶端多頁面顯示的層次性.為實現(xiàn)帶緩存的數(shù)據(jù)分頁顯示,系統(tǒng)后臺可開啟SqlDataSomw 數(shù)據(jù)源的“允許緩存”屬性,提高Web 應(yīng)用程序擴展性及程序的運行效率,并降低開發(fā)成本[4].
系統(tǒng)的服務(wù)器端采用Openstack 構(gòu)建私有云平臺.系統(tǒng)在Openstack 云平臺上進行數(shù)據(jù)處理,包括二手物品管理、二手物品交易、用戶管理等主要功能模塊,Web 服務(wù)器通過API把反饋結(jié)果返回給用戶.網(wǎng)絡(luò)架構(gòu)如圖3 所示.在具體配置上,選用兩臺電腦分別作為服務(wù)器的計算節(jié)點與控制節(jié)點.每臺電腦均配置兩塊以太網(wǎng)網(wǎng)卡,第一塊網(wǎng)卡設(shè)置為外部可訪問的地址,第二塊網(wǎng)卡設(shè)置為云平臺各節(jié)點內(nèi)部通信的地址[2].
圖3 基于Openstack 云平臺的系統(tǒng)網(wǎng)絡(luò)架構(gòu)
系統(tǒng)網(wǎng)絡(luò)架構(gòu)基于J2EE 設(shè)計為適用于中、小型Web 應(yīng)用系統(tǒng)的SSH 輕量級三層組合框架.客戶端使用Android 平臺開發(fā)完成與服務(wù)器端的數(shù)據(jù)交互,以及自身的網(wǎng)絡(luò)通信服務(wù)、數(shù)據(jù)庫管理等[5].系統(tǒng)管理員將預(yù)交易的二手物品各類信息存入后臺數(shù)據(jù)庫,學(xué)生賣家可以發(fā)布預(yù)出售的二手物品相關(guān)信息(物品介紹、圖片、價格等),學(xué)生買家登錄系統(tǒng)可以進行查詢、咨詢、收藏、購買二手物品信息操作.
用戶通過Android 手機打開系統(tǒng)后,網(wǎng)絡(luò)基站迅速發(fā)送相關(guān)命令,并通過網(wǎng)關(guān)傳給數(shù)據(jù)庫服務(wù)器.數(shù)據(jù)庫服務(wù)器解析收到的指令,通過SQL 指令在數(shù)據(jù)庫中進行查找后,發(fā)送給用戶[6].圖4 為本系統(tǒng)的數(shù)據(jù)庫查找過程.
圖4 數(shù)據(jù)庫查找過程
系統(tǒng)的開發(fā)過程采用圖1 所示的敏捷方法Scrum 模型,整個系統(tǒng)全部開發(fā)時間為1 個半月左右.由于用戶需求的變更,在此期間共進行3 次迭代開發(fā),產(chǎn)生3 個Sprint 周期,每一個Sprint 周期持續(xù)大約2 周時間,在每一個Sprint 結(jié)束之后都能在線產(chǎn)生(發(fā)布)一個可測試的且運行穩(wěn)定的系統(tǒng)版本[3].限于篇幅,僅介紹關(guān)于該二手物品交易系統(tǒng)在第一個Sprint 周期的開發(fā)過程.
采用圖1 所示的敏捷方法Scrum 模型.因為在開發(fā)初期,由于認知的局限性,用戶通常無法確定整個系統(tǒng)的全部功能需求,即用戶對擬開發(fā)產(chǎn)品的功能認知度是逐步完善的.所以,在每一次Sprint 開展之前開發(fā)人員只需要充分了解本次迭代開發(fā)需要為用戶實現(xiàn)系統(tǒng)(產(chǎn)品)哪方面的價值,用戶需要做的工作是什么,本次迭代的時間、工作如何完成等[3].在每個Sprint 中,用戶需求需要提煉,以“用戶故事”的形式凝練出本次迭代開發(fā)需要實現(xiàn)的待辦事項列表,把每一個待辦事項再繼續(xù)分解(細化)成若干個獨立的、可執(zhí)行的開發(fā)任務(wù)(活動),并為每一個開發(fā)任務(wù)設(shè)置(開發(fā))優(yōu)先級.
在與用戶溝通后,結(jié)合本項目敏捷開發(fā)實際,摒棄了傳統(tǒng)的需求分析過程,Scrum 開發(fā)團隊把在第一個Sprint 中所需要實現(xiàn)的用戶需求及其對應(yīng)開發(fā)任務(wù),以用戶故事列表的形式制定出來[3,7].表1 為第一個Sprint 中(持續(xù)2 周時間)的用戶故事列表.在本次Sprint 中,所涉及到的買家/賣家信息表、物品信息表、交易信息表、訂單信息表等,因篇幅受限,這里不予列出.
表1 用戶故事列表
Scrum 團隊搭建基于J2EE 的SSH 三層輕量級框架,采用基于ZigBee 技術(shù)的網(wǎng)絡(luò)架構(gòu),在第一個Sprint 迭代開發(fā)中,按照表1 所示的用戶故事列表,直接進入編碼階段,面向Android客戶端,使用Java 編程語言快速開發(fā)一個簡單的二手物品交易系統(tǒng),直接形成一個可運行的版本,及時上線發(fā)布.圖5~圖10 分別展示了本系統(tǒng)的用戶注冊、用戶登錄、二手物品發(fā)布、二手物品詳情、我的訂單、交易留言等主要功能界面.
圖5 用戶注冊
圖6 用戶登錄
圖7 二手物品發(fā)布
圖8 二手物品詳情
圖9 我的訂單
圖10 交易留言
本輪Sprint 迭代發(fā)布中的核心開發(fā)任務(wù)“二手物品發(fā)布”主要代碼如下:
本系統(tǒng)采用軟件敏捷方法的Scrum 模型完成開發(fā),在1 個半月左右通過3 個Sprint 迭代周期,其V1.0 版本完成線上發(fā)布,初步實現(xiàn)了用戶對系統(tǒng)的期望價值,可為校園學(xué)生通過Android 手機客戶端實現(xiàn)二手物品交易.系統(tǒng)運行穩(wěn)定,頁面展示流暢,Android 客戶端操作便捷,面向在校大學(xué)生,成功實現(xiàn)了1 000多件學(xué)生二手物品的線上交易活動,較好地完成預(yù)期開發(fā)任務(wù).系統(tǒng)可以集成部分新功能,如信息資訊推送、個人微信綁定等,實現(xiàn)V2.0 版本.
智慧校園是高校信息化建設(shè)發(fā)展的必然趨勢.智慧校園基礎(chǔ)支撐平臺是通過服務(wù)總線和流程引擎解決校園各種(微)應(yīng)用與(微)服務(wù),將各個業(yè)務(wù)應(yīng)用程序及相關(guān)子模塊的用戶角色(權(quán)限)抽取出來,形成不同的業(yè)務(wù)辦理流程.今后將把本系統(tǒng)作為本地智慧校園智慧生活微服務(wù)的一個典型應(yīng)用程序,建立統(tǒng)一的“校園二手物品交易”微信公眾號,以增強用戶體驗,從而更好地服務(wù)于本地智慧校園基礎(chǔ)支撐平臺建設(shè).在后續(xù)工作中,本系統(tǒng)會作為一個本地校園生活應(yīng)用服務(wù)程序,著眼于增強校園用戶體驗感層面,開發(fā)團隊將為該二手物品交易系統(tǒng)申請統(tǒng)一的微信公眾號.在校學(xué)生將通過“微信認證”獲得自定義菜單接口,為公眾號設(shè)置個性化的自定義菜單,通過移動終端平臺直接使用該二手物品交易系統(tǒng),提高用戶體驗[8?9].
本文通過敏捷方法Scrum 模型設(shè)計實現(xiàn)的校園二手物品交易系統(tǒng),基本能夠滿足學(xué)生對二手物品的交易需求,學(xué)生用戶注冊后可以查看并發(fā)布自己想出售的個人用品,通過在線留言實現(xiàn)買家與賣家聯(lián)系,以減少閑置物品的浪費.此外,基于當(dāng)前智慧校園基礎(chǔ)支撐平臺構(gòu)建的角度,本系統(tǒng)依托移動終端平臺,亦能成為智慧校園功能體系中的校園生活智慧應(yīng)用子系統(tǒng),在日常生活領(lǐng)域為校園師生提供更好、更便捷的微應(yīng)用與微服務(wù).