亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種表格驅(qū)動的普適計算環(huán)境編程方法

文檔序號:6471499閱讀:226來源:國知局
專利名稱:一種表格驅(qū)動的普適計算環(huán)境編程方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種普適計算環(huán)境下的編程方法,特別涉及一種普適環(huán)境中環(huán)境上下文使用表格來驅(qū)動程序邏輯的表格驅(qū)動的普適計算環(huán)境編程方法。
背景技術(shù)
普適計算(Pervasive Computing)是繼主機計算(Mainframe Computing)和桌面計算(Desktop Computing)之后計算模式的一次新變革。隨著互聯(lián)網(wǎng)、無線通信技術(shù)的發(fā)展以及各種終端及移動設(shè)備的逐漸成熟,普適計算己逐步滲透到人們的生活中。普適計算環(huán)境具有開放性、移動性、環(huán)境多變的特征,環(huán)境中應(yīng)用程序的運行必須能夠適應(yīng)上下文及資源的變化。為了適應(yīng)這種變化,需要提供應(yīng)用程序在設(shè)計時和運行時的支撐環(huán)境支持。
在運行環(huán)境支撐方面,目前的研究主要是建立完善的基礎(chǔ)設(shè)施,由體系架構(gòu)中的服務(wù)來獲取環(huán)境上下文信息并進行融合,通過應(yīng)用程序接口向上下文感知應(yīng)用程序提供這些信息,應(yīng)用程序根據(jù)得到的信息選擇不同的執(zhí)行策略,從而適應(yīng)環(huán)境變化。在設(shè)計時支撐方面,目前主要還是采用傳統(tǒng)的面向?qū)ο蟮燃夹g(shù)及編程方法。由于這類編程模式需要在設(shè)計時確定參數(shù)個數(shù)及類型,與環(huán)境相關(guān)的很多信息都被"固化"在程序中而成為硬編碼(Hard Code),導(dǎo)致環(huán)境依賴因素和程序控制主體結(jié)合過分緊密。 一旦空間環(huán)境發(fā)生變化(比如新的設(shè)備加入、資源更新等),往往需要修改程序并重新進行編譯、部署等工作,不能很好地適應(yīng)普適計算環(huán)境多樣、復(fù)雜、動態(tài)和多變等特點,因此應(yīng)用程序開發(fā)難度較大。
傳統(tǒng)的編程方法應(yīng)用于普適計算環(huán)境下的不足主要表現(xiàn)在 一方面應(yīng)對系統(tǒng)已知的環(huán)境變化的編程過程較為復(fù)雜。普適環(huán)境中的設(shè)備、人員、各種信息資源以及與這些實體相關(guān)的狀態(tài)、位置信息等上下文類型紛繁復(fù)雜,變化多樣,很難用一種統(tǒng)一的描述和表示方式來將其實例化到程序中來驅(qū)動應(yīng)用邏輯。另一方面,也是更重要的一點,傳統(tǒng)編程方法對未知的環(huán)境變化及擴展的應(yīng)對能力不足。普適環(huán)境中新的設(shè)備、資源不斷加入,如何使現(xiàn)有的應(yīng)用對這些新加入的未知設(shè)備和資源提供支持,是傳統(tǒng)編程方法難以解決的一大難題。隨著普適計算的逐步深入應(yīng)用,這種面向動態(tài)環(huán)境編程的需求愈發(fā)顯得迫切,客觀上需要一種新的、可將環(huán)境依賴信息從程序邏輯分離的機制來解決目前面臨的問題。

發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述傳統(tǒng)編程方法的缺點,提供一種靈活的基于表格驅(qū)動的普適計算環(huán)境編程方法。
為達到上述目的,本發(fā)明采用的技術(shù)方案是
1)改造傳統(tǒng)程序開發(fā)的兩大基本結(jié)構(gòu)即變量和函數(shù)的定義,給出表格驅(qū)動的變量以及函數(shù)的基本定義
a)表格驅(qū)動的變量可用如下形式來定義
^3VZfe/Y/ e rar加e 「an^Z7e .. co"texd^/ec^/)7"e分77'/7^7 :(3 ■f他_/i/e,'其中, tGV/fe/Y/7e是定義表格驅(qū)動的變量的起始標(biāo)記;rar7ype是變量本身的數(shù)據(jù)類型;昭r,柳e是變量名;co/7tex^w^'eW以一個分號開頭,給出該變量感知的上下文主題;""e分n'/^是可供領(lǐng)域?qū)<议喿x的用于描述該變量用途的字符串;「s^e指定該表格驅(qū)動變量的缺省值;
本編程方法基于一種最簡單易用的三元組形式(即<^^/6" /7r^fc"te,V"/M >)的本體建模模型,文中所出現(xiàn)的CW7fe^SMtyed對應(yīng)于此處的Wfy'e",
所出現(xiàn)的/7rec/z ateiofe/2"/Yer對應(yīng)于此處的/7rec/z'csz^。
b)表格驅(qū)動的函數(shù)采用如下定義形式^ZiZte/i/7e ret7)^e AOTcAferae (^araZisd .' c。77Z^rz^Sl^/ect/)7。te5"tr/u7

其中,W/"e/Y/7e是定義表格驅(qū)動的函數(shù)的起始標(biāo)記;r^7y/^是函數(shù)返回值的數(shù)據(jù)類型;/1//7CiV,e是函數(shù)名稱;parsAi^是函數(shù)的參數(shù)列表;co/7to^5"喊/e"以一個分號開頭,給出該函數(shù)感知的上下文主題;/7"e分nV^是可供領(lǐng)域?qū)<议喿x的用于描述該函數(shù)用途的字符串;最后的花括號包圍的部分,是該表格驅(qū)動的函數(shù)的缺省函數(shù)體;
以上兩種定義形式僅作為具體實現(xiàn)的一種參考,并未限定任何實現(xiàn)語言。系統(tǒng)開發(fā)人員可以用熟悉的任何一種語言來實現(xiàn)這種表格驅(qū)動的變量和函數(shù)定義。
2)給出用于驅(qū)動變量的虛擬表的基本結(jié)構(gòu)
此虛擬表與一般意義的二維表類似,有最基本的兩列、若干行,以及三類輔助信息,兩列包括
ra^e促COTZ^;^5^》"指出該變量所感興趣的上下文主題,在普適環(huán)境中實際可能的取值;* raheW&rj'sWe:指出當(dāng)感興趣的上下文主題在環(huán)境中的真實取值 與第一列對應(yīng)行的值相同時,該上下文感知變量的實際取值;
三類輔助信息包括
* cOTte^Wi/Zy'ecM^/e:指定該變量所感興趣的上下文主題的名稱;
* pi^/icate/ofe/7"/Yer:是謂詞標(biāo)識符,用以連接上下文主題與其可 能的取值;
* /7"e6Y2^^:是示意變量用途的可供閱讀的字符串,領(lǐng)域?qū)<以谂渲?該表格時參看該字符串以便進行合理配置;
該虛擬表的行數(shù),將取決于領(lǐng)域?qū)<覍Υ颂摂M表的配置數(shù)據(jù)量的多寡, 表格中的第一行有效內(nèi)容,由系統(tǒng)在構(gòu)建該虛擬表時根據(jù)掃描程序代碼得到 的缺省值,程序運行時上下文主題的當(dāng)前值在表格中沒有找到匹配項時,此 行將自動匹配;
3)給出用于驅(qū)動函數(shù)的虛擬表的基本結(jié)構(gòu)
此虛擬表也與一般意義的二維表類似,有最基本的兩列、若干行,以及 三類輔助信息,兩列包括
* ra勿e促tb/7^^^^y'e":指出該函數(shù)所感興趣的上下文主題,在普 適環(huán)境中實際可能的取值;
*朋tr朋ce促F如c"o化指出當(dāng)感興趣的上下文主題在環(huán)境中的真實取 值與第一列對應(yīng)行的值相同時,該上下文感知函數(shù)的(調(diào)用)入口; 此處的函數(shù)入口是指上下文主題取值被匹配后函數(shù)將轉(zhuǎn)向去執(zhí)行的 指令或者代碼之所在,其概念依不同的實現(xiàn)方式而有所不同對于支 持函數(shù)指針的一類編程語言,比如C、 C++、 Pascal之類,函數(shù)入口可以是一個具體的函數(shù)指針地址;其他情況下,函數(shù)入口可以用不同 的函數(shù)名稱來代替。
三類輔助信息與表格驅(qū)動的變量對應(yīng)的虛擬表類似,包括
* COT";^5^u'ect7V柳e:指定該函數(shù)所感興趣的上下文主題的名稱;
* pre必c^e7ofe77"/i'er:是謂詞標(biāo)識符,用以連接上下文主題與其可 能的取值;
/7"a5YW/^是示意函數(shù)用途的可供閱讀的字符串,領(lǐng)域?qū)<以谂渲?該表格時參看該字符串以便進行合理配置;
該虛擬表的行數(shù),同樣將取決于領(lǐng)域?qū)<覍Υ颂摂M表的配置數(shù)據(jù)量的多 寡,與表格驅(qū)動變量對應(yīng)的虛擬表結(jié)構(gòu)類似,表格中的第一行有效內(nèi)容,由 系統(tǒng)在構(gòu)建該虛擬表時根據(jù)掃描程序代碼得到的缺省值,程序運行時上下文 主題的當(dāng)前值在表格中沒有找到匹配卿寸,此行將自動匹配。
本發(fā)明根據(jù)應(yīng)用程序中對于表格驅(qū)動的變量和函數(shù)的聲明信息自動構(gòu)造 虛擬表,構(gòu)造的流程描述如下
對于程序中定義的每一個表格驅(qū)動實體即變量或者函數(shù),系統(tǒng)都按如下 順序進行操作首先,系統(tǒng)提取表格驅(qū)動編程實體的聲明信息,包括定義中
的co/7&xz^/Zu'ect、 /7^e分ri'/拔和缺省值信息,對于表格驅(qū)動變量來講是 c/ft^2"e,對于表格驅(qū)動的函數(shù)來講是"e/朋B t力e /"/ c"ot部分;
然后,根據(jù)提取到的contextSubject從基于本體的上下文模型中檢索要感知 的上下文主題對應(yīng)的謂詞(predicate);最后,系統(tǒng)根據(jù)所得到的所有這些 信息(包括co/^e義z^/Ay'e"、 /7oz^6Yrf/^、疑皆^t^E息、/ recZ/c^e),開始 構(gòu)造表格驅(qū)動實體對應(yīng)的虛擬表,虛擬表以XML格式處理。本發(fā)明虛擬表的匹配過程由系統(tǒng)自動完成,其一般的匹配過程為-
首先獲虛擬表對應(yīng)的上下文主題在實際環(huán)境中的取值,然后從虛擬表的 第二行至結(jié)尾行中比較與該值相同的行,如果找到匹配的行,則提取該行第
二列的值返回;如果沒有發(fā)現(xiàn)匹配的行,則將表中第一行第二列的取值(即
應(yīng)用程序中預(yù)定義的缺省值)返回。
本發(fā)明應(yīng)用程序的編寫及部署過程有多種角色的成員共同參加,由虛擬 表將應(yīng)用程序員與普適環(huán)境的領(lǐng)域?qū)<?或空間管理人員)的知識進行連接,
最終完成感知上下文并靈活驅(qū)動應(yīng)用邏輯的任務(wù),該過程各步驟如下
a) 應(yīng)用開發(fā)人員根據(jù)普適環(huán)境的功能要求,在程序中定義表格驅(qū)動的變 量和函數(shù),并結(jié)合宿主語言的其他程序結(jié)構(gòu)開發(fā)應(yīng)用;
b) 系統(tǒng)根據(jù)應(yīng)用程序中聲明的表格驅(qū)動編程實體信息構(gòu)造對應(yīng)的虛擬 表;
c) 領(lǐng)域?qū)<覄t基于對空間環(huán)境的了解以及上下文主題的可能取值情況 來配置虛擬表;
d) 應(yīng)用系統(tǒng)投入運行,由系統(tǒng)根據(jù)程序指定的上下文主題自動提取該環(huán) 境上下文的當(dāng)前值,與虛擬表中的配置值進行匹配,并將匹配的結(jié)果 返回到應(yīng)用程序中做后續(xù)處理對于表格驅(qū)動變量,應(yīng)用程序訪問其 返回值;對于表格驅(qū)動函數(shù),應(yīng)用程序完成對返回函數(shù)的調(diào)用。
實驗表明,表格驅(qū)動的變量和函數(shù),與傳統(tǒng)的編程方法中的變量和函數(shù) 在使用方式保持了一致性,并未給應(yīng)用開發(fā)人員帶了更多的學(xué)習(xí)新編程方法 的負擔(dān),但方法本身卻提供了感知上下文并靈活驅(qū)動應(yīng)用邏輯的更大的靈活 性。本發(fā)明將多樣的、易變的環(huán)境信息與程序的邏輯主體分離,解決傳統(tǒng)編 程方法應(yīng)用于普適環(huán)境所帶來的高復(fù)雜性以及缺乏靈活性和不擴展的問題。 并使程序員更加關(guān)注程序的業(yè)務(wù)邏輯,提高編程效率。


圖1是本發(fā)明表格驅(qū)動變量的虛擬表結(jié)構(gòu); 圖2是本發(fā)明表格驅(qū)動函數(shù)的虛擬表結(jié)構(gòu); 圖3是本發(fā)明表格驅(qū)動的編程體系結(jié)構(gòu)圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進一步詳細說明。
本發(fā)明圍繞傳統(tǒng)程序開發(fā)的兩大基本結(jié)構(gòu)(即變量和函數(shù))的表格驅(qū)動 改造進行,所采用的技術(shù)方案是
1、提出表格驅(qū)動的編程實體的定義,給出普適環(huán)境下表格驅(qū)動的編程實 體定義的參考模型。
變量和函數(shù)是傳統(tǒng)編程方法的最基本程序結(jié)構(gòu)。 一般地,在一個典型的 上下文感知應(yīng)用中,程序員通過定義變量來獲取上下文相關(guān)的信息,同時定 義函數(shù)來實現(xiàn)與上下文相關(guān)的操作(即對上下文的變化做出響應(yīng))。也就是說, 這些變量和函數(shù)都是上下文敏感的。將這些變量和函數(shù)同環(huán)境上下文信息進 行關(guān)聯(lián),即符合了以下關(guān)于表格驅(qū)動的編程實體的定義
"表格驅(qū)動的編程實體是一個可以感知特定上下文變化,并且可以根據(jù) 一個系統(tǒng)自動構(gòu)建和維護的虛擬表對這些變化做出響應(yīng)的編程結(jié)構(gòu)。"
以上定義包含三層含義 一個表格驅(qū)動的編程實體,(1)是程序編寫的 基本結(jié)構(gòu);(2)對特定的上下文主題敏感的;(3)有足夠的信息來指導(dǎo)系統(tǒng)自動構(gòu)建和維護虛擬表。
此處提及的特定上下文主題,來自于下文將要提到的基于本體的上下文
模型。本編程方法基于一種最簡單易用的三元組形式(〈s"/y'eA pre必ca^ rahe〉)的本體建模模型,減少了具體實現(xiàn)的復(fù)雜性。也正是此所謂的上下 文主題最終指導(dǎo)系統(tǒng)構(gòu)建和維護用以驅(qū)動上下文感知應(yīng)用程序邏輯的虛擬 表。此處的虛擬表將應(yīng)用程序員與普適環(huán)境的領(lǐng)域?qū)<?或空間管理人員) 的知識進行連接,最終完成感知上下文并靈活驅(qū)動應(yīng)用邏輯的任務(wù)。
由此,本發(fā)明給出表格驅(qū)動的變量以及函數(shù)的基本定義形式。 一般地,
a) —個表格驅(qū)動的上下文變量可用如下形式來定義
其中,纟GV/fe力'77e是定義表格驅(qū)動的變量的起始標(biāo)記;rar7ype是變量本 身的數(shù)據(jù)類型;rarA^ e是變量名;co72tex""&'ect以一個分號開頭,給出 該變量感知的上下文主題;wote&W;^是可供領(lǐng)域?qū)<议喿x的用于描述該變 量用途的字符串;^A^7"e指定該表格驅(qū)動變量的缺省值。
b) 表格驅(qū)動的函數(shù)采用如下定義形式
tG¥Zfe/!z'/ e _rez^7)7^ /1// c7^/z e (^a2^3Zj'5^, : co/zte^tS^Z^'ect/^c^aSYri"^/
...0e/a〃W Zw介of t力e AwcW—
其中,^f/fe/i/2e是定義表格驅(qū)動的函數(shù)的起始標(biāo)記;r^7ype是函數(shù)返 回值的數(shù)據(jù)類型;/朋c7fe/Z7e是函數(shù)名稱;是函數(shù)的參數(shù)列表; co/7Z^;rz^喊/ed以一個分號開頭,給出該函數(shù)感知的上下文主題;加te6^i/是可供領(lǐng)域?qū)<议喿x的用于描述該函數(shù)用途的字符串;以下的花括號包圍的 部分,是該表格驅(qū)動的函數(shù)的缺省函數(shù)體。
以上兩種定義形式,僅作為具體實現(xiàn)的一種參考,并未限定任何實現(xiàn)語 言。系統(tǒng)開發(fā)人員可以用熟悉的任何一種語言來實現(xiàn)這種表格驅(qū)動的變量和 函數(shù)定義。以此種方式來定義的變量和函數(shù),與傳統(tǒng)的編程方法中的使用變 量和函數(shù)的方式保持了一致性,并未給應(yīng)用開發(fā)人員帶了更多的學(xué)習(xí)新編程 方法的負擔(dān),但方法本體卻提供了感知上卜文并靈活驅(qū)動應(yīng)用邏輯的更大的 靈活性。
2、提出一種用于驅(qū)動上下文感知應(yīng)用邏輯的虛擬表結(jié)構(gòu)模型。
在應(yīng)用程序中的表格驅(qū)動的編程實體的定義給出了用以構(gòu)造虛擬表的基 本信息。系統(tǒng)首先搜索程序中表格驅(qū)動編程實體的信息,然后抽取
co/^ex^5i/力yecz^, "oteS^ri/ ^ 和dftra/wes (對表格驅(qū)動的函數(shù)來講是缺
省函數(shù)體/fe/朋"/woy ( //朋"/朋)等信息,從基于本體的上下文模型中
檢索要感知的上下文主題對應(yīng)的謂詞(pre^cste)。當(dāng)所有這些信息都具備 后,系統(tǒng)開始構(gòu)造表格驅(qū)動變景和函數(shù)的虛擬表。兩種虛擬表的結(jié)構(gòu)分別說 明如下
1)、附圖1所示為表格驅(qū)動的變量對應(yīng)的虛擬表結(jié)構(gòu)。在該虛擬表中, 有兩列和若干行(具體的行數(shù)取決丁領(lǐng)域?qū)<襒寸此虛擬表的配置過程),以及 一些必不可少的附加信息。
表格中最頂行是兩列表頭信息列rahe促tb/^e;r^^ye"給出該變量 感興趣的上下文主題在普適環(huán)境中實際可能的取值;列ra勿eflf^r/a^e是 當(dāng)感興趣的上下文主題取得與第一列對應(yīng)行的相同取值時,該上下文感知變 量的實際取值。程序在運行中,系統(tǒng)將從環(huán)境中獲取的上下文主題的當(dāng)前值,與第一列的值進行匹配,將匹配行的第二列的值返回作為該表格驅(qū)動變量的 真正取值。
表格中的第一行有效內(nèi)容(在圖中行Index值為[O]),由構(gòu)建該虛擬表
時所抽取的變量缺省值dftf^/M決定。此行無需領(lǐng)域?qū)<疫M行配置,程序運 行時上下文主題的當(dāng)前值在表格中沒有找到匹配項時,此行將自動匹配。表
中的其他行(在圖中行Index值為[1] [N])是領(lǐng)域?qū)<腋鶕?jù)真實空間環(huán)境 對該虛擬表的配置信息。
虛擬表的其他附屬信息包括
/7"aS^^^是示意領(lǐng)域?qū)<以撟兞坑猛镜目砷喿x字符串,領(lǐng)域?qū)<?在配置該表格時參看;
* /7Z"e必cWe7cfe/7"/yer是謂詞標(biāo)識符,用以連接上下文主題與其可能 的取值,這確保領(lǐng)域?qū)<铱偸桥渲蒙舷挛闹黝}的有效值到虛擬表中;
* co/^e;fZ^&Je"#affle用于指定該變量感興趣的上下文主題。
2)、附圖2所示為表格驅(qū)動的函數(shù)對應(yīng)的虛擬表結(jié)構(gòu)。在該虛擬表中, 也有兩列和若干行(具體的行數(shù)取決于領(lǐng)域?qū)<覍Υ颂摂M表的配置過程),以 及一些必不可少的附加{言息。
表格中最頂行是兩列表頭信息列ra7"e。/To/^e;sr"喊/e"表示該函數(shù) 感興趣的上下文主題在普適環(huán)境中實際可能的取值;列朋^朋ceflf尸z;/7c"o/7
是當(dāng)感興趣的上下文主題取得與第一列對應(yīng)行的相同取值時,該上下文感知 函數(shù)的實際調(diào)用入口。程序在運行中,系統(tǒng)將從環(huán)境中獲取的上下文主題的 當(dāng)前值,與第一列的值進行匹配,將匹配行的第二列的值返回作為該表格驅(qū) 動函數(shù)的調(diào)用入口。此處的函數(shù)入口是指上下文主題取值被匹配后函數(shù)將轉(zhuǎn)
15向去執(zhí)行的指令或者代碼之所在,其概念依不同的實現(xiàn)方式而有所不同對
于支持函數(shù)指針的一類編程語言,比如C、 C++、 Pascal之類,函數(shù)入口可以
是一個具體的函數(shù)指針地址;其他情況下,函數(shù)入口可以用不同的函數(shù)名稱 來代替。
表格中的第一行有效內(nèi)容(在圖中行Index值為[O]),來自于應(yīng)用程序 中定義的該函數(shù)的缺省函數(shù)體(即定義中的Zfe/^/A 6o辦f力e /i//7c"'o/ , 在附圖2中表示為必^y^j^/7ce)。此行無需領(lǐng)域?qū)<疫M行配置,程序運行時 上下文主題的當(dāng)前值在表格中沒有找到匹配項時,此行將自動匹配。表中的 其他行(在圖中行Index值為[1] [N])是領(lǐng)域?qū)<腋鶕?jù)真實空間環(huán)境對該 虛擬表的配置信息。
虛擬表的其他附屬信息包括
* /70&5^r力^是示意領(lǐng)域?qū)<以摵瘮?shù)用途的可閱讀字符串,由領(lǐng)域?qū)?家在配置該表格時參看;
/ rec^cate/Gfe/7"/yer是謂詞標(biāo)識符,用以連接上下文主題與其可能 的取值,這確保了領(lǐng)域?qū)<铱偸桥渲蒙舷挛闹黝}的有效值到虛擬表 中;
參co/7Z^^喊/e"7feffle用于指定該函數(shù)所感興趣的上下文主題。
3)虛擬表由系統(tǒng)根據(jù)應(yīng)用程序中聲明的信息自動構(gòu)造,然后由領(lǐng)域?qū)<?根據(jù)空間環(huán)境的具體情況進行配置。在應(yīng)用程序運行時,由系統(tǒng)根據(jù)程序指 定的上下文主題自動提取環(huán)境上下文的當(dāng)前值,與虛擬表中的配置值進行匹 配,并將匹配的結(jié)果返回到應(yīng)用程序中做后續(xù)處理。具體的程序構(gòu)造以及執(zhí) 行過程由以下的表格驅(qū)動編程模型的體系結(jié)構(gòu)進行描述。3、結(jié)合基于本體的上下文建模技術(shù),提出表格驅(qū)動編程模型的體系結(jié)構(gòu), 并給出使用本模型進行應(yīng)用程序開發(fā)的一般流程。
附圖3給出了普適環(huán)境下表格驅(qū)動的編程體系結(jié)構(gòu),該體系結(jié)構(gòu)中各主 要元素說明如下
Zfe^7o/^r:應(yīng)用開發(fā)人員,即根據(jù)普適環(huán)境的功能要求開發(fā)應(yīng)用的 程序員;
*汰,皿j'/ ^r/ e7^領(lǐng)域?qū)<?,對空間環(huán)境的充分了解,并對應(yīng)用的最
終功能有清楚理解的人員,他們將根據(jù)上下文主題的取值情況來配置
由系統(tǒng)自動創(chuàng)建的虛擬表;
* ^w》o/Me/^空間環(huán)境,包括各種實體,如用戶、設(shè)備、事件、活 動等信息,它為領(lǐng)域?qū)<疫M行本體建模以及應(yīng)用程序獲取上下文提供 數(shù)據(jù)源;
v^^razffi由應(yīng)用程序開發(fā)人員根據(jù)空間環(huán)境應(yīng)用需求而開發(fā)的程序, 在其中,通過聲明表格驅(qū)動的編程實體,并組合宿主語言(也就是用 以具體實現(xiàn)該模型的編程語言)的控制部件來完成應(yīng)用事務(wù)邏輯;
* 5y^e辺6ZA/7bo s:系統(tǒng)應(yīng)用程序接口及圖形化工具,用以輔 助領(lǐng)域?qū)<医#约盀閼?yīng)用程序獲取環(huán)境上下文提供接口支持;
* Wrtoa7 7^7戰(zhàn)虛擬表,由系統(tǒng)自動創(chuàng)建,由領(lǐng)域?qū)<腋鶕?jù)需求進 行配置,并由系統(tǒng)根據(jù)應(yīng)用程序?qū)Ρ砀耱?qū)動的變量(函數(shù))的引用情 況進行上下文主題取值的匹配;
* ft^o7o^7勘secT Co"te;st胞cfe7:基于本體的上下文建模的模型,它 由Z 。鵬i/7i^pe7^通過本體建模工具(如prot6g6等)進行建模而成,在應(yīng)用程序開發(fā)過程中由Developer參考編寫代碼,系統(tǒng)構(gòu)造虛擬表 時將檢索該模型獲取與指定上下文主題(co/2te;r"i/Z^e")相關(guān)的謂
本編程方法未限定具體的實現(xiàn)方式,系統(tǒng)開發(fā)人員可以釆用任何熟悉的 編程語言來實現(xiàn)。既可以采用語言擴展(Language Extension)方式,也可
以采用特殊函數(shù)實現(xiàn)途徑來完成對變量(函數(shù))定義、虛擬表構(gòu)造、上下文 主題值的匹配等關(guān)鍵流程。
在附圖3中所給出的普適環(huán)境下表格驅(qū)動編程的體系結(jié)構(gòu)圖中,用數(shù)字 序號標(biāo)出了利用該模型編程的一般過程。程序開發(fā)的一般流程如下
① 領(lǐng)域?qū)<依孟到y(tǒng)提供的接口和工具對普適環(huán)境采用基于本體的上下 文模型進行建模,將建成的模型存入模型庫;
② 應(yīng)用開發(fā)人員通過檢索上下文模型庫,定義表格驅(qū)動的變量或函數(shù), 并結(jié)合具體事務(wù)邏輯進行編程;
③ 系統(tǒng)掃描應(yīng)用程序及上下文模型庫,構(gòu)建表格驅(qū)動的變量及函數(shù)對應(yīng) 的虛擬表;
領(lǐng)±或?qū)<腋鶕?jù)空間環(huán)境中上下文主題的取值情況對虛擬表進行配置;
⑤ 應(yīng)用程序根據(jù)系統(tǒng)提供的接口 (System API)抽取環(huán)境上下文的當(dāng)前
值;
⑥ 應(yīng)用程序根據(jù)獲取的上下文主題的當(dāng)前值對虛擬表進行匹配,并將匹 配后的變量取值(函數(shù)入口)返回;
⑦ 應(yīng)用程序?qū)Ψ祷亟Y(jié)果變量(函數(shù)入口)進行處理,執(zhí)行對應(yīng)的應(yīng)用邏 輯并對空間環(huán)境產(chǎn)生影響。
權(quán)利要求
1、一種表格驅(qū)動的普適計算環(huán)境編程方法,其特征在于1)改造傳統(tǒng)程序開發(fā)的兩大基本結(jié)構(gòu)即變量和函數(shù)的定義,給出表格驅(qū)動的變量以及函數(shù)的基本定義a)表格驅(qū)動的變量可用如下形式來定義tdvDefine varType varNamecon textSubject[noteString]=dftValue;其中,tdvDefine是定義表格驅(qū)動的變量的起始標(biāo)記;varType是變量本身的數(shù)據(jù)類型;varName是變量名;contextSubject以一個分號開頭,給出該變量感知的上下文主題;noteString是可供領(lǐng)域?qū)<议喿x的用于描述該變量用途的字符串;dftValue指定該表格驅(qū)動變量的缺省值;b)表格驅(qū)動的函數(shù)采用如下定義形式tdfDefine retType funcName(paraList)contextSubject[noteString]{. ..(Default body of the function)}其中,tdfDefine是定義表格驅(qū)動的函數(shù)的起始標(biāo)記;retType是函數(shù)返回值的數(shù)據(jù)類型;funcName是函數(shù)名稱;paraList是函數(shù)的參數(shù)列表;contextSubject以一個分號開頭,給出該函數(shù)感知的上下文主題;noteString是可供領(lǐng)域?qū)<议喿x的用于描述該函數(shù)用途的字符串;最后的花括號包圍的部分,是該表格驅(qū)動的函數(shù)的缺省函數(shù)體;2)給出用于驅(qū)動變量的虛擬表的基本結(jié)構(gòu)此虛擬表與一般意義的二維表類似,有最基本的兩列、若干行,以及三類輔助信息,兩列包括●valueOfContextSubject指出該變量所感興趣的上下文主題,在普適環(huán)境中實際可能的取值;●valueOfVariable指出當(dāng)感興趣的上下文主題在環(huán)境中的真實取值與第一列對應(yīng)行的值相同時,該上下文感知變量的實際取值;三類輔助信息包括●contextSubjectName指定該變量所感興趣的上下文主題的名稱;●predicateIdentifier是謂詞標(biāo)識符,用以連接上下文主題與其可能的取值;●noteString是示意變量用途的可供閱讀的字符串,領(lǐng)域?qū)<以谂渲迷摫砀駮r參看該字符串以便進行合理配置;該虛擬表的行數(shù),將取決于領(lǐng)域?qū)<覍Υ颂摂M表的配置數(shù)據(jù)量的多寡,表格中的第一行有效內(nèi)容,由系統(tǒng)在構(gòu)建該虛擬表時根據(jù)掃描程序代碼得到的缺省值,程序運行時上下文主題的當(dāng)前值在表格中沒有找到匹配項時,此行將自動匹配;3)給出用于驅(qū)動函數(shù)的虛擬表的基本結(jié)構(gòu)此虛擬表也與一般意義的二維表類似,有最基本的兩列、若干行,以及三類輔助信息,兩列包括●valueOfContextSubject指出該函數(shù)所感興趣的上下文主題,在普適環(huán)境中實際可能的取值;●entranceOfFunction指出當(dāng)感興趣的上下文主題在環(huán)境中的真實取值與第一列對應(yīng)行的值相同時,該上下文感知函數(shù)的(調(diào)用)入口;此處的函數(shù)入口是指上下文主題取值被匹配后函數(shù)將轉(zhuǎn)向去執(zhí)行的指令或者代碼之所在;三類輔助信息與表格驅(qū)動的變量對應(yīng)的虛擬表類似,包括●contextSubjectName指定該函數(shù)所感興趣的上下文主題的名稱;●predicateIdentifier是謂詞標(biāo)識符,用以連接上下文主題與其可能的取值;●noteString是示意函數(shù)用途的可供閱讀的字符串,領(lǐng)域?qū)<以谂渲迷摫砀駮r參看該字符串以便進行合理配置;該虛擬表的行數(shù),同樣將取決于領(lǐng)域?qū)<覍Υ颂摂M表的配置數(shù)據(jù)量的多寡,與表格驅(qū)動變量對應(yīng)的虛擬表結(jié)構(gòu)類似,表格中的第一行有效內(nèi)容,由系統(tǒng)在構(gòu)建該虛擬表時根據(jù)掃描程序代碼得到的缺省值,程序運行時上下文主題的當(dāng)前值在表格中沒有找到匹配項時,此行將自動匹配。
2、根據(jù)權(quán)利要求1所述的表格驅(qū)動的普適計算環(huán)境編程方法,其特征在 于系統(tǒng)根據(jù)應(yīng)用禾呈序中對于表格驅(qū)動的變量和函數(shù)的聲明信息自動構(gòu)造虛 擬表,構(gòu)造的流程描述如下對于程序中定義的每一個表格驅(qū)動實體即變量或者函數(shù),系統(tǒng)都按如下 順序進行操作首先,系統(tǒng)提取表格驅(qū)動編程實體的聲明信息,包括定義中 的CO/2Z^^5^U'e"、 720^5^7'/^和缺省值信息,對于表格驅(qū)動變量來講是 i/ftfe^e,對于表格驅(qū)動的函數(shù)來講是Zfe/aWt Me /w/7c"ot部分;然后,根據(jù)提取到的contextSubject從基于本體的上下文模型中檢索要感知 的上下文主題對應(yīng)的謂詞(predicate);最后,系統(tǒng)根據(jù)所得到的所有這些信息(包括co/ z^xt5"〃Zy'eczN "c^e6"trj'/^、疑咨、;#"/^息、prec/j'cate),開始 構(gòu)造表格驅(qū)動實體對應(yīng)的虛擬表,虛擬表以XML格式處理。
3、 根據(jù)權(quán)利要求1所述的表格驅(qū)動的普適計算環(huán)境編程方法,其特征在 于虛擬表的匹配過程由系統(tǒng)自動完成,其一般的匹配過程為首先獲虛擬表對應(yīng)的上下文主題在實際環(huán)境中的取值,然后從虛擬表的 第二行至結(jié)尾行中比較與該值相同的行,如果找到匹配的行,則提取該行第 二列的值返回;如果沒有發(fā)現(xiàn)匹配的行,則將表中第一行第二列的取值(即 應(yīng)用程序中預(yù)定義的缺省值)返回。
4、 根據(jù)權(quán)利要求1所述的表格驅(qū)動的普適計算環(huán)境編程方法,其特征在 于應(yīng)用程序的編寫及部署過程有多種角色的成員共同參加,由虛擬表將應(yīng) 用程序員與普適環(huán)境的領(lǐng)域?qū)<?或空間管理人員)的知識進行連接,最終 完成感知上下文并靈活驅(qū)動應(yīng)用邏輯的任務(wù),該過程各步驟如下a) 應(yīng)用開發(fā)人員根據(jù)普適環(huán)境的功能要求,在程序中定義表格驅(qū)動的變 量和函數(shù),并結(jié)合宿主語言的其他程序結(jié)構(gòu)開發(fā)應(yīng)用;b) 系統(tǒng)根據(jù)應(yīng)用程序中聲明的表格驅(qū)動編程實體信息構(gòu)造對應(yīng)的虛擬 表;c) 領(lǐng)域?qū)<覄t基于對空間環(huán)境的了解以及上下文主題的可能取值情況 來配置虛擬表;d) 應(yīng)用系統(tǒng)投入運行,由系統(tǒng)根據(jù)程序指定的上下文主題自動提取該環(huán) 境上下文的當(dāng)前值,與虛擬表中的配置值進行匹配,并將匹配的結(jié)果 返回到應(yīng)用程序中做后續(xù)處理對于表格驅(qū)動變量,應(yīng)用程序訪問其 返回值;對于表格驅(qū)動函數(shù),應(yīng)用程序完成對返回函數(shù)的調(diào)用。
全文摘要
一種表格驅(qū)動的普適計算環(huán)境編程方法,應(yīng)用開發(fā)人員根據(jù)普適環(huán)境的功能要求,在程序中定義表格驅(qū)動的變量和函數(shù),并結(jié)合宿主語言的其他程序結(jié)構(gòu)開發(fā)應(yīng)用;系統(tǒng)根據(jù)應(yīng)用程序中聲明的表格驅(qū)動編程實體信息構(gòu)造對應(yīng)的虛擬表;基于對空間環(huán)境的了解以及上下文主題的可能取值情況來配置虛擬表;應(yīng)用系統(tǒng)投入運行,由系統(tǒng)根據(jù)程序指定的上下文主題自動提取該環(huán)境上下文的當(dāng)前值,與虛擬表中的配置值進行匹配,并將匹配的結(jié)果返回到應(yīng)用程序中做后續(xù)處理對于表格驅(qū)動變量,應(yīng)用程序訪問其返回值;對于表格驅(qū)動函數(shù),應(yīng)用程序完成對返回函數(shù)的調(diào)用。本發(fā)明將多樣的、易變的環(huán)境信息與程序的邏輯主體分離,使程序員更加關(guān)注程序的業(yè)務(wù)邏輯,提高編程效率。
文檔編號G06F9/44GK101482819SQ20081023652
公開日2009年7月15日 申請日期2008年12月30日 優(yōu)先權(quán)日2008年12月30日
發(fā)明者暉 何, 迪 侯, 張俊斌, 明 李, 牛玉潔, 勇 齊 申請人:西安交通大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1