本發(fā)明屬于計算機技術應用領域,特別是涉及到一種基于云分支服務器的數(shù)據(jù)更新方法及裝置。
背景技術:
云平臺大數(shù)據(jù)技術的發(fā)展與應用已經對社會的方方面面產生深遠影響。今天,從政府到企業(yè),從醫(yī)療、教育等公共服務部門到商業(yè)、科技領域,大數(shù)據(jù)技術正在催生各個領域的變革力量,整個社會也在不遺余力地主動進行大數(shù)據(jù)技術的發(fā)展與應用;
我們生活在一個不斷產生海量數(shù)據(jù)的世界。根據(jù)IBM的研究、估算現(xiàn)在日產數(shù)據(jù)量達百萬的三次方,相當于每24小時生成約10億千兆字節(jié)。這就導致了數(shù)據(jù)云平臺存儲資源的緊缺。因為大量數(shù)據(jù)都是存放在中心服務器進行分析和計算的,這樣就導致了數(shù)據(jù)處理能力的滯后;計算算法復雜,更新難度大;數(shù)據(jù)分類不精確;數(shù)據(jù)處理不及時。海量數(shù)據(jù)從用戶端上傳下載到云平臺,耗費了大量的網(wǎng)絡資源,使網(wǎng)絡資源緊張。所以當前的大數(shù)據(jù)和云平臺技術面臨著存儲資源和網(wǎng)絡資源緊張 、細節(jié)信息采集缺失、數(shù)據(jù)處理能力滯后等問題。
技術實現(xiàn)要素:
本發(fā)明要解決的問題是提出一種基于云分支服務器的數(shù)據(jù)更新方法,節(jié)省云平臺資源,解決資源耗費問題。
為了達到上述目的,本發(fā)明采用的技術方案為:一種基于云分支服務器的數(shù)據(jù)更新方法,包括如下步驟:
(1) 建立基于云分支服務器的云服務平臺,以多個云分支服務器為節(jié)點,所述云分支服務器通過網(wǎng)絡連接中心服務器;實現(xiàn)了以云分支服務器為核心的多層次云架構;
(2) 所述中心服務器連接多個更新服務器,所述更新服務器通過網(wǎng)絡與所述云分支服務器連通;所述中心服務器對所有更新服務器分類管理,每個更新服務器用于存儲不同類別的數(shù)據(jù)內容,所述更新服務器的標識以及所存儲的數(shù)據(jù)類別信息都記錄在中心服務器;
(3) 云分支服務器實時收集數(shù)據(jù)并對數(shù)據(jù)進行預處理,同時更新本地數(shù)據(jù)庫;
(4) 云分支服務器將本地預處理后的數(shù)據(jù)庫及數(shù)據(jù)壓縮、加密,上傳至中心服務器;
(5) 中心服務器將云分支服務器上傳的數(shù)據(jù)匯總、分析,制定數(shù)據(jù)收集以及預處理策略,將所述策略下載至相應的存儲策略的更新服務器;
(6) 中心服務器將自身主動更新的數(shù)據(jù)按照類別下載至相應的更新服務器;
(7) 云分支服務器從中心服務器獲取更新服務器的標識及存儲數(shù)據(jù)類別;分別從不同的更新服務器獲得策略信息以及其它最新數(shù)據(jù)信息,再返回步驟(3);
優(yōu)選的,所述云分支服務器通過網(wǎng)絡訪問中心服務器,所述網(wǎng)絡包括WIFI,DMBT,3/4G,ETHERNET;
優(yōu)選的,步驟(4)所述加密采用的是RSA加密算法;
優(yōu)選的,所述數(shù)據(jù)庫上傳前需要重命名,新的命名信息包括云分支服務器的序列號以及上傳文件的次數(shù);
本發(fā)明的另一方面,一種基于云分支服務器的數(shù)據(jù)更新裝置,包括:
中心服務器,將更新服務器上傳的數(shù)據(jù)匯總、分析,制定數(shù)據(jù)收集以及預處理策略,將所述策略下載至相應的云分支服務器;
云分支服務器,用于實時接收數(shù)據(jù)并對數(shù)據(jù)進行預處理,同時更新本地數(shù)據(jù)庫并上傳;
更新服務器:用于存儲不同類別的數(shù)據(jù)內容,并由云分支服務器下載;
優(yōu)選的,所述云分支服務器包括:
數(shù)據(jù)收集模塊,用于實時收集數(shù)據(jù);
本地數(shù)據(jù)庫模塊,用于存儲數(shù)據(jù)信息;
數(shù)據(jù)處理模塊,用于對數(shù)據(jù)進行預處理,同時更新本地數(shù)據(jù)庫,然后將本地預處理后的數(shù)據(jù)庫及數(shù)據(jù)壓縮、加密;
網(wǎng)絡模塊,用于將壓縮、加密后的數(shù)據(jù)庫及數(shù)據(jù)上傳至中心服務器;以及從更新服務器下載數(shù)據(jù)收集及預處理策略以及新的數(shù)據(jù)。
優(yōu)選的,所述中心服務器包括:
數(shù)據(jù)分析模塊,用于將云分支服務器上傳的數(shù)據(jù)匯總、分析,制定數(shù)據(jù)收集以及預處理策略;
網(wǎng)絡模塊,用于接收云分支服務器的上傳信息;以及向更新服務器下發(fā)策略信息和新的數(shù)據(jù)。
優(yōu)選的,所述更新服務器包括:
數(shù)據(jù)存儲模塊,用于將中心服務器下載的數(shù)據(jù)存儲在本地;
網(wǎng)絡模塊,用于接收中心服務器的信息;以及向云分支服務器發(fā)送信息。
本發(fā)明的有益效果為:使用本發(fā)明的方法,將本地預處理后的數(shù)據(jù)庫及數(shù)據(jù)壓縮、加密上傳至中心服務器。中心服務器將對預處理后的數(shù)據(jù)進行進一步的處理。同時,中心服務器可以將預數(shù)據(jù)需求發(fā)送給指定的更新服務器,這樣能減小中心服務器的壓力,不會導致所有用戶都去同時向中心服務器下載數(shù)據(jù), 同時用戶可以直接訪問云分支服務器。云分支服務器從更新服務器獲得預數(shù)據(jù)需求數(shù)據(jù)后,將根據(jù)中心服務器的要求來更改處理策略。解決了當前的大數(shù)據(jù)和云平臺技術面臨著存儲資源和網(wǎng)絡資源緊張 、細節(jié)信息采集缺失、數(shù)據(jù)處理能力滯后等問題。
附圖說明:
圖1是本發(fā)明服務器的關系示意圖;
圖2是本發(fā)明實施例的數(shù)據(jù)庫上傳示意圖;
圖3是本發(fā)明實施例的策略下載示意圖;
圖4 是本發(fā)明實施例的電視直播接收信號;
圖5 是本發(fā)明實施例的音視頻文件更新圖;
圖6 是本發(fā)明實施例的RFID數(shù)據(jù)上傳下載示意圖;
圖7 是本發(fā)明實施例的用戶信息統(tǒng)計與功能使能示意圖;
圖8 是本發(fā)明實施例的ECBS動態(tài)IP獲取與用戶直接訪問示意圖。
具體實施方式
下面結合具體實施例對本發(fā)明做進一步說明:
(1)數(shù)據(jù)庫文件更新
采用WIFI、DMBT、DVBT 、3/4G、ETHERNET、音頻廣播、等各種方法,將本地數(shù)據(jù)庫壓縮上傳至中心服務器,中心服務器分類管理更新服務器,中心服務器匯總分析后將更新的數(shù)據(jù)信息以及數(shù)據(jù)收集策略按照類別下載至更新服務器,云分支服務器按照數(shù)據(jù)類別從更新服務器獲得數(shù)據(jù);
中心服務器、云分支服務器、更新服務器的關系如圖1所示;
運用云分支服務器(ECBS)上傳數(shù)據(jù)庫文件至遠程中心服務器端的傳輸如圖2所示;
ecbs服務器上的數(shù)據(jù)庫文件為ecbs_vXXX.db,存放路徑為/mnt/htdocs/,拷貝到/usr/local/db目錄下并重命名,重命名的格式如下: FileType_ServerNumber_TransmissionNumber_RandomNumber.db;
該數(shù)據(jù)庫的名字包括四部分:
FileType:服務器數(shù)據(jù)庫的類型;ecbstvb(embed cloud branch server tv broadcast)表示當前為嵌入式服務器的電視直播數(shù)據(jù)庫;
ServerNumber:表示ecbs服務器的序列號,由10位16進制數(shù)組成,范圍是0000000001~FFFFFFFFF,每一個ecbs都有且僅有一個特定的序列號用以相互區(qū)分。例如定義當前ecbs的序列號為0000000001;
TransmissionNumber:表示當前ecbs上傳文件的次數(shù),每次上傳一次文件,該值就加1,其范圍為1~99999;如果超過99999,該值清零并再次從1開始計數(shù);
RandomNumber:表示ecbs每次上傳文件時得到的一個隨機數(shù),從而避免文件混淆,范圍為0000~9999。獲取隨機數(shù)的程序實現(xiàn)如下
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void) {
time_t t;
srand((unsigned)time(&t));
printf("Ten random numbers from 0 to 9999\n");
printf("%d\n", rand() % 10000);
return 0;
}
我們需要將數(shù)據(jù)庫文件ecbstvb_0000000001_1_1234.db進行壓縮,壓縮之后的文件名為ecbstvb_0000000001_1_1234.gz。將文件壓縮處理需要調用系統(tǒng)函數(shù)system(),函數(shù)原型int system(const char * string);
函數(shù)說明:system函數(shù)已經被收錄在標準c庫中,可以直接調用。system()會調用fork()產生子進程,由子進程來調用/bin/sh-c string來執(zhí)行參數(shù)string字符串所代表的命令,此命令執(zhí)行完后隨即返回原調用的進程。在調用system()期間SIGCHLD 信號會被暫時擱置,SIGINT和SIGQUIT 信號則會被忽略。
將壓縮文件上傳到中心服務器后,需要判斷文件上傳是否成功;
云分支服務器在Linux下通過ftp上傳文件的命令:ftpput -u [username] -p [pawssd] [ip] [file]
其中,[username] 為中心服務器的用戶名;[pawssd]為中心服務器的密碼; [ip]為中心服務器的ip地址;[file]為上傳到服務器的文件名。
每隔一定的時間對數(shù)據(jù)庫進行更新,執(zhí)行文件上傳程序,選擇后臺運行上傳文件程序,如果有新的數(shù)據(jù)需要上傳,每隔一定時間(由管理者設定,如50秒)執(zhí)行一次;
最后判斷壓縮文件是否上傳成功,判斷方法是ecbs給中心服務器發(fā)送消息,中心服務器通過“l(fā)s”命令查看中心服務器端是否成功接收到該文件。如果存在ecbstvb_0000000001_1_1234.gz壓縮包,則說明ecbs上傳文件成功;如果中心服務器端沒有ecbstvb_0000000001_1_1234.gz壓縮包,說明ecbs端上傳文件失敗,繼續(xù)上傳,如果上傳3次仍然不成功,發(fā)送消息給中心服務器;
中心服務器將云分支服務器上傳的數(shù)據(jù)匯總、分析,制定數(shù)據(jù)收集以及預處理策略,將所述策略下載至相應的更新服務器;
中心服務器同時也在根據(jù)匯總的數(shù)據(jù)信息,用戶使用信息,即時下載更新所提供的數(shù)據(jù),并將新數(shù)據(jù)按照類別放在更新服務器上;
如圖2所示,云分支服務器ECBS從更新服務器下載壓縮文件(假設壓縮文件名為ecbstvb_0000000001_1_1234.gz)之后,首先進行解壓,解壓命令tar -zxvf ecbstvb_0000000001_1_1234.gz,通過調用系統(tǒng)函數(shù)system()實現(xiàn)。判斷是否成功下載該壓縮文件,通過“l(fā)s”命令查看ecbs是否存在壓縮文件,如果不存在,則繼續(xù)從更新服務器下載壓縮文件,連續(xù)下載3次后如果仍然不能下載成功,則發(fā)送消息給更新服務器;
解壓之后,判斷數(shù)據(jù)庫的文件名是否與當前ecbs的序列號相對應。如果不一致,重新從更新服務器下載壓縮文件;
將解壓之后的數(shù)據(jù)庫文件重命名為ecbs_vXXX.db,存放在/mnt/htdocs/目錄下作為ecbs的數(shù)據(jù)庫文件;
最后,將從更新服務器下載的壓縮包和解壓后的文件刪除,并將更新服務器端的壓縮文件刪除。通過函數(shù)int remove( const char *filename); 實現(xiàn);
filename為將要刪除的文件名;
返回值:如果刪除成功,remove返回0,否則返回EOF(-1);
以上所述僅為本發(fā)明的具體實施例而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
(2)媒體文件更新
對于音視頻等文件,由于其數(shù)據(jù)量較大,為了使效率進一步提高,文件首先傳輸?shù)礁路掌髦?,其目錄?mnt/htdocs/video和/mnt/htdocs/audio,在傳輸?shù)囊粢曨l索引數(shù)據(jù)庫中,將指明音視頻文件的所在的目錄等信息。音視頻索引數(shù)據(jù)庫的更新方法所用的方法如上節(jié)所述一致;
數(shù)據(jù)庫文件格式為:
文件名:ecbsav_ServerNumber_TransmissionNumber_RandomNumber.db;
數(shù)據(jù)庫格式為表1所示:
表1,多媒體數(shù)據(jù)庫
表2,音視頻序列號。
(3)動態(tài)IP的數(shù)據(jù)庫更新
對于ECBS云分支服務器,在接入互聯(lián)網(wǎng)后,由于沒有靜態(tài)IP,互聯(lián)網(wǎng)將分配一個動態(tài)IP的NAT給ECBS, 通過具有靜態(tài)IP的中心服務器,ECBS可以將其動態(tài)IP注冊在中心服務器的ECBS動態(tài)IP數(shù)據(jù)庫里,用戶可以通過中心服務器的ECBS動態(tài)IP數(shù)據(jù)庫查詢到此動態(tài)IP, 從而能直接訪問ECBS。