一種基于環(huán)境感知的主動服務(wù)獲取方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及一種基于環(huán)境感知的主動服務(wù)獲取方法。
【背景技術(shù)】
[0002]幾乎所有基于Android的設(shè)備都具有多個內(nèi)置傳感器,如加速計(jì),GPS,電池,距離感應(yīng)器,基于這些傳感器數(shù)據(jù)的應(yīng)用程序已被廣泛使用。在這些系統(tǒng)中,上下文信息被收集和分析,以提供相關(guān)的服務(wù)到客戶端。因?yàn)樵趥鞲衅骷夹g(shù)在客戶端的快速增長的,上下文信息可以容易地從傳感器獲得的。
[0003]Han等人通過向量作為情感狀態(tài)變化的分類提出了用戶的情感分析算法的推薦系統(tǒng)。Liang等人對全面的社會背景分析算法進(jìn)行了調(diào)查,并整合成一個推薦系統(tǒng),提供基于用戶的年齡,職業(yè),地點(diǎn)和性別的服務(wù)。Oh等人提出了一種協(xié)同過濾算法以量化的用戶在組中的興趣和重要程度。此外,D等人提出了一種基于日期,溫度,季節(jié),時間的上下文分析算法。這些系統(tǒng)被廣泛應(yīng)用于各種領(lǐng)域,如旅游,感興趣建議和健康管理軟件等。
[0004]上述技術(shù)沒有提供一個統(tǒng)一的框架,對于上下文感知應(yīng)用程序部署的基本框架是不一樣的應(yīng)用;此外,這些技術(shù)集中在低級別的傳感器數(shù)據(jù),且不涉及高級別上下文信息,如用戶的活動和行為。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是,針對現(xiàn)有技術(shù)不足,提供一種基于環(huán)境感知的主動服務(wù)獲取方法。
[0006]為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:一種基于環(huán)境感知的主動服務(wù)獲取方法,該方法主要實(shí)現(xiàn)過程為:移動客戶端向服務(wù)端發(fā)送請求,服務(wù)端將需要獲知的環(huán)境數(shù)據(jù)發(fā)送給移動客戶端,移動客戶端讀取環(huán)境數(shù)據(jù),并以〈鍵,值〉對的形式儲存環(huán)境數(shù)據(jù),然后將環(huán)境數(shù)據(jù)以及身份標(biāo)識碼發(fā)送給服務(wù)端,服務(wù)端根據(jù)移動客戶端發(fā)送的環(huán)境數(shù)據(jù)進(jìn)行處理。
[0007]所述環(huán)境數(shù)據(jù)包括速度、經(jīng)瑋度、WiFi狀態(tài)、藍(lán)牙狀態(tài)、時間。
[0008]本發(fā)明方法的具體實(shí)現(xiàn)流程包括以下步驟:
1)初始化列表1 ist,初始化鍵值對map,初始化數(shù)字exp,對于服務(wù)端中的每一條數(shù)據(jù)p,保證該數(shù)據(jù)P的identity字段和客戶端identity相等,然后執(zhí)行如下操作:
la)初始化列表array,如果數(shù)據(jù)p的serviceld字段在map中,貝ijarray賦值為緩存在map中的數(shù)據(jù);否則,map添加一條鍵為serviceld,值為array的數(shù)據(jù),向array中添加數(shù)據(jù)p ;lb)將數(shù)字exp賦值為零,對于map中任何一條數(shù)據(jù)s,進(jìn)行如下操作:
對于s的array的任何一條數(shù)據(jù)sp,將exp賦值為exp加上距離值dis,其中:dis = 1 - (sp的值value -移動客戶端相對應(yīng)的值value) | / (sp的值value +移動客戶端相對應(yīng)的值value);
確定exp的最終值為賦值后的exp除以s的array的長度,在列表list中添加結(jié)構(gòu)為〈identity, s的serviceld, exp的最終值〉的數(shù)據(jù);
2)將上述添加了結(jié)構(gòu)為〈identity,s的serviceld,exp的最終值〉的數(shù)據(jù)的列表list發(fā)送給移動客戶端;
3)移動客戶端根據(jù)列表list中的每一條數(shù)據(jù)s進(jìn)行如下操作:
3a)初始化列表1,獲取移動客戶端已安裝的服務(wù)列表,如果數(shù)據(jù)s不存在該服務(wù)列表中,則將數(shù)據(jù)s添加到列表1中,根據(jù)數(shù)據(jù)s數(shù)據(jù)的exp降序?qū)α斜?進(jìn)行排序;
3b)下載列表1的前11%條數(shù)據(jù)的服務(wù)并安裝這些服務(wù);將列表1的后(l-n)%條數(shù)據(jù)展示為“手動安裝”圖標(biāo),當(dāng)用戶點(diǎn)擊該圖標(biāo)時,系統(tǒng)下載并安裝該服務(wù);
3c)當(dāng)用戶點(diǎn)擊任何一個服務(wù)時,移動客戶端將當(dāng)前的環(huán)境數(shù)據(jù)以〈鍵,值〉對的形式儲存,并將該環(huán)境數(shù)據(jù)、身份標(biāo)識碼以及用戶點(diǎn)擊的服務(wù)相應(yīng)標(biāo)識發(fā)送給服務(wù)端,服務(wù)端接收到環(huán)境數(shù)據(jù)時,進(jìn)行下述處理:對于移動客戶端發(fā)來的任何一條〈鍵,值〉對環(huán)境數(shù)據(jù),如果該鍵在服務(wù)端中且identity和移動客戶端發(fā)來的標(biāo)識符相同,同時該環(huán)境數(shù)據(jù)的值和數(shù)據(jù)庫中值的距離值dis大于值m,則更新數(shù)據(jù)庫中的數(shù)據(jù),將權(quán)值加1;否則在數(shù)據(jù)庫中添加一條新數(shù)據(jù)。
[0009]η的取值范圍為1?99 ;m的取值范圍為0?1。
[0010]與現(xiàn)有技術(shù)相比,本發(fā)明所具有的有益效果為:本發(fā)明采用了基于環(huán)境感知的主動服務(wù)獲取方法,達(dá)到了為開發(fā)者提供統(tǒng)一開發(fā)接口的效果,節(jié)省了開發(fā)時間,提高了開發(fā)效率。將本發(fā)明方法作為框架進(jìn)行開發(fā),框架代碼只需要寫一次;將框架代碼作為開發(fā)庫,具體的環(huán)境數(shù)據(jù)的獲取由開發(fā)者自己定義,相比于開發(fā)者寫完整代碼,使用本方法作為框架進(jìn)行開發(fā)可以減少近70%的開發(fā)量。
【具體實(shí)施方式】
[0〇11]以Android Stud1作為編譯器,以Android設(shè)備作為客戶終端,開發(fā)客戶端功能,包括請求環(huán)境參數(shù),收集環(huán)境數(shù)據(jù),發(fā)送環(huán)境數(shù)據(jù),接收服務(wù)列表,接收服務(wù)推送,手動下載服務(wù),發(fā)送反饋數(shù)據(jù)給服務(wù)端;以PHP作為服務(wù)端開發(fā)語言,以MySQL作為服務(wù)端數(shù)據(jù)庫,開發(fā)服務(wù)端功能,包括推送環(huán)境參數(shù),處理用戶環(huán)境數(shù)據(jù)、產(chǎn)生服務(wù)列表并發(fā)送給客戶端,處理用戶反饋數(shù)據(jù)并更新數(shù)據(jù)。
[0012]具體實(shí)驗(yàn)方式:客戶端獲取20個服務(wù),用戶點(diǎn)擊服務(wù)列表中的第一個,準(zhǔn)確度加20,用戶點(diǎn)擊服務(wù)列表中的第二個,準(zhǔn)確度加19,以此類推;對多個用戶進(jìn)行多次實(shí)驗(yàn),計(jì)算平均的準(zhǔn)確度并除以服務(wù)總數(shù),得出服務(wù)的平均準(zhǔn)確率為72%。同時,記錄用戶停留在系統(tǒng)的時間作為用戶等待時間,對多個用戶進(jìn)行多次實(shí)驗(yàn),得出平均用戶等待時間為8秒。對用戶進(jìn)行調(diào)查,得出用戶平均滿意度為75%。
【主權(quán)項(xiàng)】
1.一種基于環(huán)境感知的主動服務(wù)獲取方法,其特征在于,該方法主要實(shí)現(xiàn)過程為:移動客戶端向服務(wù)端發(fā)送請求,服務(wù)端將需要獲知的環(huán)境數(shù)據(jù)發(fā)送給移動客戶端,移動客戶端讀取環(huán)境數(shù)據(jù),并以〈鍵,值〉對的形式儲存環(huán)境數(shù)據(jù),然后將環(huán)境數(shù)據(jù)以及身份標(biāo)識碼發(fā)送給服務(wù)端,服務(wù)端根據(jù)移動客戶端發(fā)送的環(huán)境數(shù)據(jù)進(jìn)行處理。2.根據(jù)權(quán)利要求1所述的基于環(huán)境感知的主動服務(wù)獲取方法,其特征在于,所述環(huán)境數(shù)據(jù)包括速度、經(jīng)瑋度、WiFi狀態(tài)、藍(lán)牙狀態(tài)、時間。3.根據(jù)權(quán)利要求1所述的基于環(huán)境感知的主動服務(wù)獲取方法,其特征在于,該方法的具體實(shí)現(xiàn)流程包括以下步驟: 1)初始化列表1ist,初始化鍵值對map,初始化數(shù)字exp,對于服務(wù)端中的每一條數(shù)據(jù)p,保證該數(shù)據(jù)P的identity字段和客戶端identity相等,然后執(zhí)行如下操作: la)初始化列表array,如果數(shù)據(jù)p的serviceld字段在map中,貝ijarray賦值為緩存在map中的數(shù)據(jù);否則,map添加一條鍵為serviceld,值為array的數(shù)據(jù),向array中添加數(shù)據(jù)p ;lb)將數(shù)字exp賦值為零,對于map中任何一條數(shù)據(jù)s,進(jìn)行如下操作: 對于s的array的任何一條數(shù)據(jù)sp,將exp賦值為exp加上距離值dis,其中:dis = 1 - (sp的值value -移動客戶端相對應(yīng)的值value) | / (sp的值value +移動客戶端相對應(yīng)的值value); 確定exp的最終值為賦值后的exp除以s的array的長度,在列表list中添加結(jié)構(gòu)為〈identity, s的serviceld, exp的最終值〉的數(shù)據(jù); 2)將上述添加了結(jié)構(gòu)為〈identity,s的serviceld,exp的最終值〉的數(shù)據(jù)的列表list發(fā)送給移動客戶端; 3)移動客戶端對經(jīng)步驟2)處理后的列表list中的每一條數(shù)據(jù)s進(jìn)行如下操作: 3a)初始化列表1,獲取移動客戶端已安裝的服務(wù)列表,如果數(shù)據(jù)s不存在該服務(wù)列表中,則將數(shù)據(jù)s添加到列表1中,根據(jù)數(shù)據(jù)s數(shù)據(jù)的exp降序?qū)α斜?進(jìn)行排序; 3b)下載列表1的前11%條數(shù)據(jù)的服務(wù)并安裝這些服務(wù);將列表1的后(l-n)%條數(shù)據(jù)展示為“手動安裝”圖標(biāo),當(dāng)用戶點(diǎn)擊該圖標(biāo)時,系統(tǒng)下載并安裝該服務(wù); 3c)當(dāng)用戶點(diǎn)擊任何一個服務(wù)時,移動客戶端將當(dāng)前的環(huán)境數(shù)據(jù)以〈鍵,值〉對的形式儲存,并將該環(huán)境數(shù)據(jù)、身份標(biāo)識碼以及用戶點(diǎn)擊的服務(wù)相應(yīng)標(biāo)識發(fā)送給服務(wù)端,服務(wù)端接收到環(huán)境數(shù)據(jù)時,進(jìn)行下述處理:對于移動客戶端發(fā)來的任何一條〈鍵,值〉對環(huán)境數(shù)據(jù),如果該鍵在服務(wù)端中,且identity和移動客戶端發(fā)來的標(biāo)識符相同,同時該環(huán)境數(shù)據(jù)的值和數(shù)據(jù)庫中值的距離值dis大于值m,則更新數(shù)據(jù)庫中的數(shù)據(jù),將權(quán)值加1;否則在數(shù)據(jù)庫中添加一條新數(shù)據(jù)。4.根據(jù)權(quán)利要求3所述的基于環(huán)境感知的主動服務(wù)獲取方法,其特征在于,η的取值范圍為1?99;m的取值范圍為0?1。
【專利摘要】本發(fā)明公開了一種基于環(huán)境感知的主動服務(wù)獲取方法,移動客戶端向服務(wù)端發(fā)送請求,服務(wù)端將需要獲知的環(huán)境數(shù)據(jù)發(fā)送給移動客戶端,移動客戶端讀取環(huán)境數(shù)據(jù),并以<鍵,值>對的形式儲存環(huán)境數(shù)據(jù),然后將環(huán)境數(shù)據(jù)以及身份標(biāo)識碼發(fā)送給服務(wù)端,服務(wù)端根據(jù)移動客戶端發(fā)送的環(huán)境數(shù)據(jù)進(jìn)行處理。本發(fā)明采用了基于環(huán)境感知的主動服務(wù)獲取方法,達(dá)到了為開發(fā)者提供統(tǒng)一開發(fā)接口的效果,節(jié)省了開發(fā)時間,提高了開發(fā)效率。
【IPC分類】G06F9/54
【公開號】CN105487935
【申請?zhí)枴緾N201510886506
【發(fā)明人】郭克華, 黃宇健, 潘威, 田彪
【申請人】中南大學(xué)
【公開日】2016年4月13日
【申請日】2015年12月7日