本發(fā)明涉及軟件系統(tǒng)技術(shù)領(lǐng)域,特別是一種軟件系統(tǒng)更新框架。
背景技術(shù):
軟件的發(fā)展十分迅速,一個版本可能在一周之內(nèi)就需要被替代,這種版本快速迭代已經(jīng)成為常態(tài)。
軟件提供商在提供軟件系統(tǒng)給最終用戶使用之后,可能在最初的一段時間里經(jīng)常需要對系統(tǒng)進行BUG修復(fù)、數(shù)據(jù)庫修改、功能新增等一系列的更新操作。一般的軟件提供商實現(xiàn)更新操作的方法有:
方法一:遠程到最終用戶的生產(chǎn)環(huán)境手動進行系統(tǒng)更新。
方法二:對每個用戶的更新操作都制作一個更新包,并分別發(fā)送給各個用戶,然后手把手教會每一個用戶去更新自己的軟件系統(tǒng)。
以上方法雖然都可以解決軟件系統(tǒng)的更新,但是存在如下弊端:
1、更新過程繁瑣,軟件系統(tǒng)提供商需要維護每一個系統(tǒng)用戶的更新升級,如果用戶量很大,這個過程是不可接受的;
2、用戶體驗差,用戶在使用軟件系統(tǒng)的過程中可能需要頻繁的進行軟件更新,并且這個過程用戶自己不可控。
為了降低軟件提供商的軟件更新繁瑣過程,同時提高最終用戶的體驗度,需要一種新的軟件系統(tǒng)更新框架,以解決前述的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明解決的技術(shù)問題在于提出一種軟件系統(tǒng)更新框架,可以降低軟件提供商的軟件更新繁瑣過程,同時提高最終用戶的體驗度。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是,所述的框架包括前端模塊、后臺服務(wù)、FTP服務(wù)器和特征文件;
所述的前端模塊用于與系統(tǒng)用戶的交互,主要實現(xiàn)軟件系統(tǒng)的版本展現(xiàn),提供接口給系統(tǒng)用戶觸發(fā)系統(tǒng)版本更新過程;
所述的后臺服務(wù)主要實現(xiàn)掃描并下載軟件系統(tǒng)升級包,執(zhí)行系統(tǒng)版本更新,特征文件的維護;
所述的特征文件是指一個特定的普通文件,前端模塊和后臺服務(wù)都會定時讀取或者寫入該文件里面的指定字段,兩者通過這些指定字段實現(xiàn)信息的交互;
所述的FTP服務(wù)器只是一個存儲更新包的典型代表,也可以是云盤;用于存放軟件系統(tǒng)更新包,并接收后臺服務(wù)的掃描和下載。
所述的版本展現(xiàn)包括顯示軟件系統(tǒng)當(dāng)前版本信息,是否有最新版本可供升級等;
所述的觸發(fā)系統(tǒng)版本更新過程是指用戶向后臺服務(wù)模塊發(fā)送了升級更新軟件系統(tǒng)的請求。
所述的軟件系統(tǒng)升級包是一個指定格式的包文件,該文件里面包含有軟件系統(tǒng)更新升級所需要的所有文件,以及一個自動安裝腳本和一個軟件更新腳本文件。
所述的執(zhí)行系統(tǒng)版本更新是指接收前端用戶發(fā)送的系統(tǒng)更新請求并執(zhí)行上述軟件更新腳本文件。
所述的特征文件維護主要包括:
后臺服務(wù)發(fā)現(xiàn)有軟件系統(tǒng)新版本時,則下載更新包并修改特征文件中的state字段為downloaded,并將新版本的版本號等信息記錄到特征文件相應(yīng)字段;
前端模塊掃描特征文件發(fā)現(xiàn)state字段為downloaded,則展示系統(tǒng)可更新,并同時展示新的版本信息;
前端模塊當(dāng)用戶進行了更新升級操作后,觸發(fā)事件將特征文件的state字段修改為ready;
后臺服務(wù)接收前端模塊的系統(tǒng)更新請求、讀取特征文件的state字段并判斷,若為ready則執(zhí)行更新腳本,更新之后修改特征文件中的state字段為restarted,同時修改其他相應(yīng)字段。
本發(fā)明方案的有益效果如下:
1、提供一種簡單而通用的框架,用以實現(xiàn)軟件系統(tǒng)更新的簡單化,降低軟件提供商的軟件更新繁瑣過程,同時提高軟件系統(tǒng)最終用戶的體驗度。
2、本發(fā)明的框架適用于幾乎所有的軟件系統(tǒng),對于現(xiàn)有軟件系統(tǒng)只需要進行簡單的擴展即可實現(xiàn)。
附圖說明
下面結(jié)合附圖對本發(fā)明進一步說明:
圖1為本發(fā)明的模塊圖。
具體實施方式
下面將結(jié)合附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整的描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出實質(zhì)性創(chuàng)造所獲得的方案,都屬于本發(fā)明保護的范圍。
請參見圖1,為本發(fā)明實施例所提供的一種軟件系統(tǒng)更新框架的模塊圖。本發(fā)明在實現(xiàn)過程中設(shè)計了一個軟件系統(tǒng)升級包的格式如下:
typ包類型_cut客戶代號_ver包版本_md5校驗碼.zip
其中,包類型可以是不用的軟件系統(tǒng)子模塊,如門戶,實現(xiàn)端等等;客戶代號則是代表每一個軟件系統(tǒng)的最終用戶;包版本是指該升級包的版本號,可以以時間標識;md5校驗碼用于更新包的完整性校驗。
更新升級包里面包含自動安裝腳本,如install.sh,用戶環(huán)境下載升級包后會自動執(zhí)行該腳本。
軟件系統(tǒng)提供商針對特定用戶指定好升級更新包之后,將其上傳到FTP服務(wù)器等存儲池進行存放。
同時本發(fā)明在實現(xiàn)過程中設(shè)計了一個包含如下類似內(nèi)容的特征文件:
version=20160112
date=20160112
type=portal
state=restarted
needrestart=0
用戶環(huán)境運行的后臺服務(wù)定時掃描FTP服務(wù)器,若發(fā)現(xiàn)存在適用于本地的軟件更新包則下載。下載更新包后執(zhí)行更新包里面的install.sh腳本,該腳本負載修改特征文件的相應(yīng)字段,例如修改state=downloaded,視更新包特性修改needrestart=1等。
前端模塊在用戶進入到系統(tǒng)更新頁面時會觸發(fā)一個事件,該事件讀取特征文件的state字段,若為downloaded,則表示存在新的更新包,事件會進一步讀取特征文件的其他字段(如是否需要重啟服務(wù)字段needrestart)并返回到頁面進行展示,以提示用戶可以進行軟件系統(tǒng)的更新操作。
用戶點擊軟件更新并向后臺服務(wù)發(fā)送請求,該過程會觸發(fā)修改特征文件的state字段為ready。
后臺服務(wù)在掃描特征文件的狀態(tài)字段為ready后則執(zhí)行更新升級包中的自動升級腳本,如update.sh,完成用戶軟件系統(tǒng)的更新升級。升級腳本視不同用戶不同更新包而不同,升級腳本執(zhí)行成功后會修改特征文件中的state字段為restarted,以便被前端模塊讀取展示。