一種顯式地進(jìn)行計算環(huán)境描述的方法
【專利摘要】本發(fā)明公開了一種顯式地進(jìn)行計算環(huán)境描述的方法。本發(fā)明在運(yùn)行時基于用戶的動作組織環(huán)境數(shù)據(jù)作為上下文的方法,為此,首先部署能對環(huán)境要素進(jìn)行感知和影響的基礎(chǔ)設(shè)施,以及感知用戶動作的服務(wù),之后將上下文生成器部署進(jìn)系統(tǒng)并投入運(yùn)行,當(dāng)動作變化時,上下文會被重新組織。并在此基礎(chǔ)上提出了將上下文作為主動性軟件實(shí)體的軟件方法。這樣的軟件實(shí)體可以主動地更新環(huán)境數(shù)據(jù)、判斷需求是否滿足、提供環(huán)境服務(wù)。本發(fā)明能夠降低開發(fā)難度、提高軟件的靈活性和可復(fù)用性、提高運(yùn)行效率。
【專利說明】一種顯式地進(jìn)行計算環(huán)境描述的方法
[0001]
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及一種顯式地進(jìn)行計算環(huán)境描述的方法,特別涉及了基于動作將環(huán)境數(shù)據(jù)組織為上下文,并把上下文構(gòu)建為主動性軟件實(shí)體提供服務(wù)的方法。
【背景技術(shù)】
[0003]隨著Internet的廣泛普及、無線通訊技術(shù)的迅速發(fā)展以及新型計算設(shè)備的層出不窮,現(xiàn)代軟件系統(tǒng)發(fā)展的趨勢之一是實(shí)現(xiàn)人機(jī)物的融合,計算被融入環(huán)境中,可透明地、隨時隨地地為用戶提供服務(wù)。這類系統(tǒng)的重要特征之一是需要感知用戶的環(huán)境,并為之提供服務(wù),即具有上下文感知的能力。
[0004]為支持環(huán)境數(shù)據(jù)的收集和使用,國內(nèi)外研究人員致力于上下文感知軟件方法研究,出現(xiàn)了一批上下文感知應(yīng)用支持平臺和開發(fā)方法,以收集環(huán)境基礎(chǔ)數(shù)據(jù),維護(hù)這些數(shù)據(jù),并進(jìn)一步地基于這些數(shù)據(jù)提供環(huán)境相關(guān)的服務(wù)。
[0005]現(xiàn)有的上下文感知工作中,上下文通常被理解為和應(yīng)用相關(guān)的一些環(huán)境要素的集合,其范圍在開發(fā)時由開發(fā)者給定,在運(yùn)行時雖然環(huán)境要素的屬性數(shù)值會變化(如溫度的具體數(shù)值),參與處理的上下文范圍本身是固定的。同時,上下文是被動的數(shù)據(jù),由應(yīng)用進(jìn)行讀取和處理。
[0006]這樣的理解方式對于計算系統(tǒng)的開發(fā)和運(yùn)行可能帶來一些問題:
1、開發(fā)時的開放性、靈活性不好。由于環(huán)境是復(fù)雜、動態(tài)、多變的,用戶需求和運(yùn)行環(huán)境等要素的變化是經(jīng)常發(fā)生的, 且其發(fā)生的時間通常是在軟件系統(tǒng)運(yùn)行的過程之中,難以由開發(fā)者在開發(fā)時完整、準(zhǔn)確地確定上下文的范圍以及應(yīng)用邏輯。
[0007]2、運(yùn)行時可能導(dǎo)致效率問題。在應(yīng)用運(yùn)行的特定階段,系統(tǒng)可能并不需要關(guān)注所有相關(guān)的環(huán)境要素。隨著環(huán)境數(shù)據(jù)規(guī)模的增加,系統(tǒng)可能出現(xiàn)效率問題并進(jìn)而使得應(yīng)用不可用。
[0008] 申請人:認(rèn)為,導(dǎo)致上述問題的主要原因是傳統(tǒng)工作對于上下文這一概念的理解有失偏頗,上下文與用戶動作被分開不符合上下文的本質(zhì)。
【發(fā)明內(nèi)容】
[0009]本發(fā)明所要解決的技術(shù)問題是提供一種顯式地進(jìn)行計算環(huán)境描述的方法,該方法依據(jù)運(yùn)行時用戶的特定動作對于環(huán)境的需求動態(tài)地組織上下文,在動作變化時,上下文會被重新組織。進(jìn)一步地,該方法的上下文是一個具有主動性的軟件實(shí)體,可實(shí)現(xiàn)主動性地更新環(huán)境數(shù)據(jù)、檢查需求是否被滿足、提供環(huán)境服務(wù)。
[0010]為實(shí)現(xiàn)上述目的,本發(fā)明的顯式地進(jìn)行計算環(huán)境描述的方法,包括如下步驟:
1)部署能對環(huán)境要素進(jìn)行感知和影響的基礎(chǔ)設(shè)施;
2)部署能感知用戶動作的服務(wù); 3)為每個用戶的每個動作類型需求定義一個環(huán)境模式;
4)將上下文生成器部署進(jìn)系統(tǒng)并投入運(yùn)行;
5)在系統(tǒng)運(yùn)行時,根據(jù)用戶動作的環(huán)境模式得到環(huán)境要素類型的集合,并在由動作位置確定的場景中對這些環(huán)境要素進(jìn)行實(shí)例化,再由上下文生成器把相關(guān)的環(huán)境要素實(shí)例加入上下文,以作為主動性的軟件實(shí)體提供服務(wù)。
[0011]上述步驟I)中的環(huán)境要素描述為〈Feature, loc, value〉,其中Feature表示環(huán)境要素的類型、1c表示環(huán)境要素的位置、value表示環(huán)境要素的數(shù)值,環(huán)境要素被按照位置組織為場景(spot);部署的環(huán)境基礎(chǔ)設(shè)施分為兩類:用以感知環(huán)境的傳感器和用于影響環(huán)境的設(shè)備;對于傳感器,系統(tǒng)需提供獲得數(shù)據(jù)的接口 ;對于設(shè)備,系統(tǒng)需提供控制設(shè)備狀態(tài)(如燈的開關(guān))的接口,對于每個傳感器或設(shè)備的部署包含以下步驟:
11)給定該傳感器或設(shè)備的位置,
12)定義該傳感器或設(shè)備能夠感知或影響環(huán)境要素的類型。
[0012]上述步驟2)中,感知用戶動作的服務(wù)包括感知動作類型和感知動作位置兩類。
[0013]上述步驟3)所述的環(huán)境模式由環(huán)境約束集合形式存在,每個環(huán)境約束描述為〈Feature, JudgeFun, threshold〉,其中Feature表示該約束相關(guān)環(huán)境要素的類型、JudgeFun表示一個判定函數(shù)、threshold表示環(huán)境約束的閾值;環(huán)境模式定義了該動作關(guān)注的環(huán)境要素類型以及對于每個環(huán)境要素的約束;系統(tǒng)維護(hù)映射表,可由用戶id以及動作類型得到該動作的環(huán)境模式。
[0014]上述步驟4)中,上下文生成器按以下步驟執(zhí)行:
41)讀入動作的類型和位置,
42)由動作的位置得到場景,
43)由該用戶的動作類型得到環(huán)境模式,
44)對于環(huán)境模式進(jìn)行實(shí)例化,即:遍歷環(huán)境模式中的每條環(huán)境約束,判斷步驟42)得到的場景中是否包含一個環(huán)境要素,其類型與該約束中環(huán)境要素類型是否相同,如存在,轉(zhuǎn)入步驟45a)如不存在,轉(zhuǎn)入45b);
45a)將該環(huán)境要素加入上下文,并回到步驟44)以遍歷下一條環(huán)境約束,完成遍歷后進(jìn)入步驟46);
45b)提醒環(huán)境開發(fā)者需在該場景中加入此類型環(huán)境要素,并回到步驟44)以遍歷下一條環(huán)境約束,完成遍歷后進(jìn)入步驟46);
46)得到生成的上下文。
[0015]上述步驟5)的具體步驟為:
51)通過傳感器接口獲得環(huán)境要素值的更新;
52)調(diào)用判定函數(shù)判斷環(huán)境約束是否被滿足;
53)如果環(huán)境約束不被滿足,則提供服務(wù),進(jìn)入以下分支之一;
54a)如環(huán)境要素可被設(shè)備調(diào)節(jié),則觸發(fā)調(diào)節(jié)環(huán)境要素的動作;
54b)如環(huán)境要素不可被設(shè)備調(diào)節(jié),則觸發(fā)給予用戶建議的動作。
[0016]本發(fā)明以用戶動作為切入點(diǎn),提出一套行之有效的組織環(huán)境數(shù)據(jù)成為上下文的方法,并將上下文設(shè)計為主動性軟件實(shí)體,從而更好地指導(dǎo)上下文感知的設(shè)計和開發(fā)。具體優(yōu)點(diǎn)為: 1、開發(fā)過程中關(guān)注分離,有效降低開發(fā)難度,
2、軟件系統(tǒng)耦合度降低,復(fù)用性好,
3、在運(yùn)行時只考慮環(huán)境的一個子集,有助于運(yùn)行效率提高。
【專利附圖】
【附圖說明】
[0017]圖1:上下文生成算法流程圖,
圖2:上下文主體結(jié)構(gòu)圖,
圖3:系統(tǒng)流程圖,
圖4:關(guān)鍵概念的類圖,
圖5:支撐平臺結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0018]以下結(jié)合附圖是對本發(fā)明作進(jìn)一步詳細(xì)說明。
[0019]1、硬件環(huán)境
1)用以感知環(huán)境要素狀態(tài)的傳感器
2)用以影響環(huán)境或者用戶的設(shè)備
3)用以識別用戶動作類型和動作位置的傳感器
4)至少一臺計算機(jī)作為服務(wù)器用以收集、處理環(huán)境信息,觸發(fā)服務(wù)
2、應(yīng)用場景
本發(fā)明提出的技術(shù)可用于開發(fā)和管理對于人機(jī)物融合有較強(qiáng)需求的計算系統(tǒng)。典型的場景是:用戶在環(huán)境要素可被計算系統(tǒng)感知、影響的物理環(huán)境中進(jìn)行各種有著不同環(huán)境需求的動作(如看書時關(guān)心光線強(qiáng)度,睡覺時關(guān)心噪音、出門時關(guān)心天氣),計算系統(tǒng)感知動作之后能按照該動作對于環(huán)境的需求組織環(huán)境要素的一個子集作為上下文,檢測環(huán)境需求是否得到滿足,并提供服務(wù)。以完成人、計算系統(tǒng)、環(huán)境之間的溝通。
[0020]3、技術(shù)描述
以下結(jié)合附圖對本發(fā)明作進(jìn)一步詳述。
[0021]一個基于本發(fā)明提出的顯式描述計算環(huán)境的方法開發(fā)的軟件平臺框架如圖5所示。
[0022]該平臺需要部署有上下文感知硬件(包括傳感器和設(shè)備)的環(huán)境基礎(chǔ)設(shè)施作為支撐,其軟件部分有以下三個層次:
O數(shù)據(jù)接入層:該層提供一組對于硬件的封裝,以接收傳感器的數(shù)據(jù)、改變設(shè)備的狀態(tài)。該層的軟件實(shí)體有三類,分別為:動作識別服務(wù)、環(huán)境要素探測器、執(zhí)行器。
[0023]動作識別服務(wù)接收傳感器的數(shù)據(jù),通過識別算法,得到用戶動作類型和動作位置。
[0024]環(huán)境要素探測器封裝了感知環(huán)境要素狀態(tài)的傳感器,對于每種類型的傳感器,需要給出系統(tǒng)獲得環(huán)境要素實(shí)時數(shù)值的接口,對于每個傳感器的實(shí)例,需要給定傳感器的位置。部分傳感器(如Iris、TelosB)可感知多種類型的環(huán)境要素,每種環(huán)境要素需要由一個環(huán)境要素探測器進(jìn)行封裝。
[0025]執(zhí)行器封裝了可影響環(huán)境或者用戶的設(shè)備,對于每種類型的設(shè)備,需要給出系統(tǒng)控制設(shè)備狀態(tài)的接口,對于每個設(shè)備的實(shí)例,需要給定設(shè)備的位置。
[0026]2)上下文生成層:該層在軟件運(yùn)行時接受數(shù)據(jù)接入層給出的數(shù)據(jù),完成上下文的動態(tài)生成,實(shí)現(xiàn)上下文動態(tài)生成的核心概念如圖4所示:
環(huán)境要素(EnvAttr):環(huán)境要素是組成上下文的基本單元,我們只考慮能被感知到的那些元素。環(huán)境要素由反映環(huán)境要素類型的特征(Feature)、環(huán)境要素的位置(location)和環(huán)境要素的數(shù)值(如尚未從環(huán)境要素探測器獲得數(shù)值則可為空)構(gòu)成。系統(tǒng)維護(hù)一個環(huán)境要素類型庫,以支持探測器和約束的定義。
[0027]場景與(Spot)環(huán)境(Environment):環(huán)境要素并不只以集合的方式組成基礎(chǔ)環(huán)境,而是按照它們的位置(location)組織在一起,成為“場景”。環(huán)境由場景的集合構(gòu)成。系統(tǒng)維護(hù)一個場景庫,給定一個位置,可以獲得該位置的場景。
[0028]約束(Constraint):約束是對于一類環(huán)境要素的判定,一個約束由環(huán)境特征(Feature )、判定函數(shù)和閾值構(gòu)成。
[0029]動作(Activity):動作由行動者(Person)、動作類型(ActType)、動作位置(Location)、環(huán)境模式(EnvPattern)構(gòu)成,環(huán)境模式中包含了一組約束以定義該動作對于環(huán)境的需求。系統(tǒng)維護(hù)一個環(huán)境模式庫,給定行動者和動作類型,可以得到環(huán)境模式。這個庫可由開發(fā)者定義一些動作類型默認(rèn)的模式,并向用戶提供接口,可定義個性化的模式。
[0030]上下文(Context):上下文在運(yùn)行時隨動作產(chǎn)生,由一個環(huán)境要素的集合構(gòu)成,上下文中還含有對應(yīng)動作的環(huán)境模式,用以判斷環(huán)境要素是否滿足需求。
[0031]當(dāng)數(shù)據(jù)接入層的動作識別服務(wù)識別出動作的變化時(包括類型變化和位置變化),上下文生成器被觸發(fā)以生成上下文。上下文的生成算法流程見圖1,其基本思路是:由動作的環(huán)境模式得到環(huán)境要素類型的集合,并在由動作位置確定的場景中對這些環(huán)境要素進(jìn)行實(shí)例化,把相關(guān)的環(huán)境要素實(shí)例加入上下文。
[0032]3)上下文應(yīng)用層:在我們的平臺中,上下文被作為具有主動性的軟件實(shí)體:上下文組件。上下文組件的構(gòu)造見圖2,該軟件實(shí)體完成以下功能:
更新環(huán)境要素的當(dāng)前值:上下文組件調(diào)用環(huán)境要素對應(yīng)探測器獲得數(shù)值的接口,得到環(huán)境要素的當(dāng)前值,執(zhí)行更新的頻率在上下文被生成時被指定。在每個環(huán)境要素被加入上下文的時候,該要素被加入了一個監(jiān)聽器以監(jiān)聽數(shù)值是否發(fā)生變化,如新的數(shù)值被獲取,則告知上下文這一事件,在上下文更新數(shù)值的時候,只需要更新那些改變的。
[0033]約束的滿足性檢測:上下文組件檢測其對應(yīng)的環(huán)境模型中的約束是否被滿足。該過程在環(huán)境要素更新后被觸發(fā),調(diào)用相關(guān)約束的判定函數(shù),判斷環(huán)境要素的值是否滿足約束。
[0034]上下文的主動性自適應(yīng):當(dāng)約束不能被滿足的時候,上下文自適應(yīng)的過程被觸發(fā),該組件首先判斷是否能通過執(zhí)行器控制硬件設(shè)備影響環(huán)境要素(如開燈影響光線強(qiáng)度),以盡量不影響用戶的動作,如果不存在這樣的執(zhí)行器,則告知用戶約束無法被滿足,并給出結(jié)束該動作或換動作位置的建議
整個支撐系統(tǒng)的運(yùn)行流程見圖3,這樣的系統(tǒng)可以通過感知用戶動作觸發(fā)上下文的生成,為該動作提供服務(wù)。在動作變化的時候,該流程將被重新執(zhí)行,上下文被重新生成,為新的動作服務(wù)。
[0035]本發(fā)明具體應(yīng)用途徑很多,以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn),這些改進(jìn)也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種顯式地進(jìn)行計算環(huán)境描述的方法,其特征在于包括如下步驟: 1)部署能對環(huán)境要素進(jìn)行感知和影響的基礎(chǔ)設(shè)施; 2)部署能感知用戶動作的服務(wù); 3)為每個用戶的每個動作類型需求定義一個環(huán)境模式; 4)將上下文生成器部署進(jìn)系統(tǒng)并投入運(yùn)行; 5)在系統(tǒng)運(yùn)行時,根據(jù)用戶動作的環(huán)境模式得到環(huán)境要素類型的集合,并在由動作位置確定的場景中對這些環(huán)境要素進(jìn)行實(shí)例化,再由上下文生成器把相關(guān)的環(huán)境要素實(shí)例加入上下文,以作為主動性的軟件實(shí)體提供服務(wù)。
2.根據(jù)權(quán)利要求1所述的顯式地進(jìn)行計算環(huán)境描述的方法,其特征在于步驟I)中的環(huán)境要素描述為〈Feature, loc, value〉,其中Feature表不環(huán)境要素的類型、1c表不環(huán)境要素的位置、value表示環(huán)境要素的數(shù)值,環(huán)境要素被按照位置組織為場景(spot);部署的環(huán)境基礎(chǔ)設(shè)施分為兩類:用以感知環(huán)境的傳感器和用于影響環(huán)境的設(shè)備;對于傳感器,系統(tǒng)需提供獲得數(shù)據(jù)的接口 ;對于設(shè)備,系統(tǒng)需提供控制設(shè)備狀態(tài)的接口,對于每個傳感器或設(shè)備的部署包含以下步驟: 11)給定該傳感器或設(shè)備的位置, 12)定義該傳感器或設(shè)備能夠感知或影響環(huán)境要素的類型。
3.根據(jù)權(quán)利要求1或2所述的顯式地進(jìn)行計算環(huán)境描述的方法,其特征在于步驟2)中,感知用戶動作的服務(wù)包 括感知動作類型和感知動作位置兩類。
4.根據(jù)權(quán)利要求3所述的顯式地進(jìn)行計算環(huán)境描述的方法,其特征在于步驟3)所述的環(huán)境模式由環(huán)境約束集合形式存在,每個環(huán)境約束描述為〈Feature, JudgeFun, threshold〉,其中Feature表示該約束相關(guān)環(huán)境要素的類型、JudgeFun表示一個判定函數(shù)、threshold表示環(huán)境約束的閾值;環(huán)境模式定義了該動作關(guān)注的環(huán)境要素類型以及對于每個環(huán)境要素的約束;系統(tǒng)維護(hù)映射表,可由用戶id以及動作類型得到該動作的環(huán)境模式。
5.根據(jù)權(quán)利要求4所述的顯式地進(jìn)行計算環(huán)境描述的方法,其特征在于步驟4)中,上下文生成器按以下步驟執(zhí)行: 41)讀入動作的類型和位置, 42)由動作的位置得到場景, 43)由該用戶的動作類型得到環(huán)境模式, 44)對于環(huán)境模式進(jìn)行實(shí)例化,即:遍歷環(huán)境模式中的每條環(huán)境約束,判斷步驟42)得到的場景中是否包含一個環(huán)境要素,其類型與該約束中環(huán)境要素類型是否相同,如存在,轉(zhuǎn)入步驟45a);如不存在,轉(zhuǎn)入45b); 45a)將該環(huán)境要素加入上下文,并回到步驟44)以遍歷下一條環(huán)境約束,完成遍歷后進(jìn)入步驟46); 45b)提醒環(huán)境開發(fā)者需在該場景中加入此類型環(huán)境要素,并回到步驟44)以遍歷下一條環(huán)境約束,完成遍歷后進(jìn)入步驟46); 得到生成的上下文。
6.根據(jù)權(quán)利要求5所述的顯式地進(jìn)行計算環(huán)境描述的方法,其特征在于步驟5)的具體步驟為:通過傳感器接口獲得環(huán)境要素值的更新;調(diào)用判定函數(shù)判斷環(huán)境約束是否被滿足;如果環(huán)境約束不被滿足,則提供服務(wù),進(jìn)入以下分支之一;54a)如環(huán)境要素可被設(shè)備調(diào)節(jié),則觸發(fā)調(diào)節(jié)環(huán)境要素的動作;54b)如環(huán)境要素不可被設(shè)備調(diào)節(jié),則觸發(fā)給予用戶建議的動作。
【文檔編號】G06F9/45GK103488520SQ201310497985
【公開日】2014年1月1日 申請日期:2013年10月22日 優(yōu)先權(quán)日:2013年10月22日
【發(fā)明者】呂建, 李晅松, 陶先平 申請人:南京大學(xué)