一種仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)及方法【專利摘要】本發(fā)明提供一種仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng),包括交互層、引擎層和數(shù)據(jù)層;數(shù)據(jù)層用于生成仿真物理數(shù)據(jù)并將各個(gè)時(shí)刻和位置下的仿真物理數(shù)據(jù)傳遞給引擎層中相應(yīng)的物聯(lián)網(wǎng)資源,作為該物聯(lián)網(wǎng)資源在對(duì)應(yīng)時(shí)刻和位置所采集的仿真數(shù)據(jù);引擎層用于生成和維護(hù)物聯(lián)網(wǎng)資源;交互層用于封裝引擎層的物聯(lián)網(wǎng)資源,向外部提供物聯(lián)網(wǎng)資源的統(tǒng)一訪問入口;以及向外部返回所命中的物聯(lián)網(wǎng)資源所采集的仿真數(shù)據(jù)。本發(fā)明還提供了相應(yīng)的仿真物聯(lián)網(wǎng)資源服務(wù)方法。本發(fā)明能夠提供海量的仿真?zhèn)鞲袛?shù)據(jù)服務(wù),使得待調(diào)試物聯(lián)網(wǎng)設(shè)備和系統(tǒng)能夠在接近真實(shí)的測(cè)試環(huán)境下完成調(diào)試或測(cè)試。并且,待調(diào)試物聯(lián)網(wǎng)設(shè)備和系統(tǒng)能夠與仿真平臺(tái)之間進(jìn)行大量的實(shí)時(shí)交互,拓寬了應(yīng)用領(lǐng)域?!緦@f明】一種仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)及方法
技術(shù)領(lǐng)域:
[0001]本發(fā)明涉及物聯(lián)網(wǎng)技術(shù)和仿真
技術(shù)領(lǐng)域:
,具體地說,本發(fā)明涉及一種仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)及方法。【
背景技術(shù):
】[0002]隨著物聯(lián)網(wǎng)需求的快速增長,為了保障物聯(lián)網(wǎng)設(shè)備與后臺(tái)服務(wù)的功能與性能需求,需要在物聯(lián)網(wǎng)系統(tǒng)開發(fā)階段進(jìn)行大量的調(diào)試、測(cè)試工作?,F(xiàn)有技術(shù)中,存在專門服務(wù)于物聯(lián)網(wǎng)的調(diào)試與測(cè)試的工具,如實(shí)驗(yàn)床、物聯(lián)網(wǎng)仿真工具,以及半實(shí)物物聯(lián)網(wǎng)仿真平臺(tái)等,但現(xiàn)有工具存在不同方面的功能缺失,往往無法滿足物聯(lián)網(wǎng)設(shè)備之間、設(shè)備與后臺(tái)服務(wù)之間的測(cè)試需求。[0003]其中,實(shí)驗(yàn)床方法通過在與生產(chǎn)環(huán)境類似的物理環(huán)境中部署大量的物聯(lián)網(wǎng)設(shè)備節(jié)點(diǎn)和相應(yīng)軟件實(shí)現(xiàn)。通過評(píng)估這些設(shè)備節(jié)點(diǎn)的執(zhí)行狀態(tài)對(duì)物聯(lián)網(wǎng)設(shè)備在真實(shí)環(huán)境下的運(yùn)行狀態(tài)進(jìn)行模擬和測(cè)試。WISBED、FITlot-lab是當(dāng)前兩類功能最為完整的實(shí)驗(yàn)床,這兩類實(shí)驗(yàn)床可以包含大量異構(gòu)的、移動(dòng)性的節(jié)點(diǎn),可滿足基本的物聯(lián)網(wǎng)仿真任務(wù)的需求。但這種使用真實(shí)節(jié)點(diǎn)進(jìn)行模擬具有較高的開發(fā)和部署成本。尤其是當(dāng)待調(diào)試物聯(lián)網(wǎng)需要海量的傳感器數(shù)據(jù)服務(wù)時(shí),這種真實(shí)節(jié)點(diǎn)的實(shí)驗(yàn)床無法滿足。[0004]物聯(lián)網(wǎng)仿真工具通過現(xiàn)有的信號(hào)、設(shè)備執(zhí)行模型,對(duì)物聯(lián)網(wǎng)設(shè)備進(jìn)行軟件建模,通過使用PC進(jìn)行離散仿真或其他類似手段,對(duì)物聯(lián)網(wǎng)系統(tǒng)在真實(shí)環(huán)境中的執(zhí)行過程進(jìn)行模擬。諸如T〇SSim、INET等仿真器就是典型的物聯(lián)網(wǎng)仿真工具,它們偏重于對(duì)無線通訊協(xié)議、路由協(xié)議性能的測(cè)試,而對(duì)基本的物聯(lián)網(wǎng)功能支持不足。并且,在與物理環(huán)境參量(例如溫度、濕度)作為感知輸入的場(chǎng)景中,使用現(xiàn)有的物聯(lián)網(wǎng)仿真工具需要通過編程定義大量環(huán)境模型,使用十分不便,且難以保證仿真的真實(shí)性。尤其是在物理環(huán)境本身動(dòng)態(tài)多變的情況下,使用軟件仿真往往會(huì)導(dǎo)致最終結(jié)果與實(shí)際結(jié)果有較大的偏差。[0005]半實(shí)物物聯(lián)網(wǎng)仿真平臺(tái)是實(shí)驗(yàn)床方法和仿真方法的結(jié)合,它試圖保留兩者的優(yōu)勢(shì)。半實(shí)物仿真一般使用少量部署于環(huán)境中的真實(shí)設(shè)備,基于真實(shí)設(shè)備所測(cè)傳感數(shù)據(jù),依據(jù)一定的模型進(jìn)行擴(kuò)展,生成大量的仿真數(shù)據(jù)。這種方案可更真實(shí)地模擬和調(diào)試節(jié)點(diǎn)程序,然而,現(xiàn)有的半實(shí)物物聯(lián)網(wǎng)仿真平臺(tái)的場(chǎng)景重現(xiàn)能力較弱,應(yīng)用領(lǐng)域受限,尤其是難以支持交互性要求較高的物聯(lián)網(wǎng)仿真調(diào)試和測(cè)試。這里交互性要求較高主要是指:物聯(lián)網(wǎng)仿真調(diào)試和測(cè)試過程中,待調(diào)試物聯(lián)網(wǎng)設(shè)備與仿真平臺(tái)之間需要進(jìn)行大量的實(shí)時(shí)交互。[0006]綜上所述,當(dāng)前迫切需要一種交互性好、能夠?yàn)槲锫?lián)網(wǎng)調(diào)試提供海量的傳感數(shù)據(jù)服務(wù)的解決方案。【
發(fā)明內(nèi)容】[0007]本發(fā)明的任務(wù)是提供一種交互性好、能夠?yàn)槲锫?lián)網(wǎng)調(diào)試提供海量的傳感數(shù)據(jù)服務(wù)的解決方案。[0008]本發(fā)明提供了一種仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng),包括交互層、引擎層和數(shù)據(jù)層;[0009]所述數(shù)據(jù)層用于生成仿真物理數(shù)據(jù)并將各個(gè)時(shí)刻和位置下的仿真物理數(shù)據(jù)傳遞給引擎層中相應(yīng)的物聯(lián)網(wǎng)資源,作為該物聯(lián)網(wǎng)資源在對(duì)應(yīng)時(shí)刻和位置所采集的仿真數(shù)據(jù);[0010]所述引擎層用于生成和維護(hù)物聯(lián)網(wǎng)資源;[0011]所述交互層用于封裝引擎層的物聯(lián)網(wǎng)資源,向外部提供物聯(lián)網(wǎng)資源的統(tǒng)一訪問入口;以及向外部返回所命中的物聯(lián)網(wǎng)資源所采集的仿真數(shù)據(jù)。[0012]其中,所述交互層還用于通過交互界面,從外部讀入用戶創(chuàng)建、配置、控制物聯(lián)網(wǎng)資源的請(qǐng)求,生成標(biāo)準(zhǔn)格式的配置文件并將所述配置文件分別發(fā)送給引擎層和數(shù)據(jù)層。[0013]其中,所述交互層包括:[0014]任務(wù)與環(huán)境配置工具,用于提供設(shè)置物聯(lián)網(wǎng)資源的數(shù)量、運(yùn)行參數(shù)的界面,以及對(duì)各類環(huán)境模型進(jìn)行調(diào)整的界面;還用于在接收到設(shè)置物聯(lián)網(wǎng)資源的數(shù)量、運(yùn)行參數(shù)的命令之后,或者接收到對(duì)各類環(huán)境模型進(jìn)行調(diào)整的命令之后,將這些命令參數(shù)格式化為配置文件并發(fā)送到引擎層進(jìn)行解析;[0015]用戶訪問接口,用于提供系統(tǒng)運(yùn)行控制功能,它為每個(gè)已經(jīng)配置的任務(wù)提供實(shí)時(shí)交互的命令的輸入界面;以及[0016]資源訪問接口,用于封裝引擎層的物聯(lián)網(wǎng)資源,向外部提供資源的統(tǒng)一訪問入口。[0017]其中,所述引擎層包括:[0018]任務(wù)解析器,用于解析配置文件的種類,并根據(jù)解析結(jié)果將相應(yīng)的配置文件發(fā)送給資源配置模塊、場(chǎng)景配置模塊或者任務(wù)配置模塊;[0019]資源配置模塊,用于解析資源配置文件,獲得資源的運(yùn)行行為、資源的輸入輸出方式以及外界通過資源訪問接口進(jìn)行訪問時(shí)支持的協(xié)議,并將每個(gè)資源運(yùn)行的行為以狀態(tài)轉(zhuǎn)換圖的形式存儲(chǔ)在內(nèi)存中;[0020]任務(wù)配置模塊,用于從任務(wù)解析器獲得并解析任務(wù)配置文件,并將解析結(jié)果發(fā)送給任務(wù)構(gòu)建模塊,其中任務(wù)配置文件定義了每次任務(wù)的起始時(shí)間以及每次任務(wù)需要何種資源的參與;[0021]控制命令解析器,用于實(shí)時(shí)響應(yīng)用戶對(duì)任務(wù)發(fā)送的控制命令;[0022]資源調(diào)度器,用于根據(jù)資源配置文件中定義的資源行為規(guī)則維護(hù)所生成的物聯(lián)網(wǎng)資源;還用于根據(jù)資源配置模塊發(fā)送來的資源執(zhí)行的行為以及任務(wù)配置模塊發(fā)送的任務(wù)安排,并對(duì)每個(gè)任務(wù)的執(zhí)行進(jìn)行對(duì)應(yīng)調(diào)度、按需從數(shù)據(jù)層獲取仿真物理數(shù)據(jù)以及對(duì)資源容器中所維護(hù)的資源進(jìn)行定時(shí)的更新;[0023]資源容器,用于存放系統(tǒng)生成的資源,根據(jù)資源的行為定義,存儲(chǔ)資源本身所處的執(zhí)行狀態(tài);以及[0024]協(xié)議庫與性能庫,用于支持不同種類的協(xié)議以及定義常規(guī)性能測(cè)量方法。[0025]其中,所述數(shù)據(jù)層包括:[0026]環(huán)境庫,用于存儲(chǔ)常規(guī)的環(huán)境模型和規(guī)則,設(shè)計(jì)不同地形、場(chǎng)景、環(huán)境屬性類型下的基本參數(shù)信息;[0027]環(huán)境配置模塊,用于根據(jù)用戶指定的場(chǎng)景配置文件,讀取環(huán)境庫中模型的基本參數(shù),為新任務(wù)生成對(duì)應(yīng)的場(chǎng)景;所述場(chǎng)景配置文件的內(nèi)容包括設(shè)備本身的位置信息、使用何種場(chǎng)景以及場(chǎng)景的初始參數(shù);[0028]環(huán)境模型生成模塊,用于以場(chǎng)景的配置信息和真實(shí)數(shù)據(jù)為輸入,通過對(duì)少量真實(shí)數(shù)據(jù)的回歸分析,建立指定場(chǎng)景下的環(huán)境模型以生成物聯(lián)網(wǎng)資源執(zhí)行所需數(shù)據(jù);以及[0029]物理數(shù)據(jù)獲取模塊,用于支持從外圍設(shè)備實(shí)時(shí)讀入數(shù)據(jù)。[0030]本發(fā)明還提供了一種基于上述仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)的仿真物聯(lián)網(wǎng)資源服務(wù)方法,包括下列步驟:[0031]1)創(chuàng)建物聯(lián)網(wǎng)資源;[0032]2)創(chuàng)建物聯(lián)網(wǎng)資源所處的場(chǎng)景;[0033]3)根據(jù)任務(wù)配置文件使各個(gè)物聯(lián)網(wǎng)資源執(zhí)行對(duì)應(yīng)的任務(wù);[0034]4)對(duì)外界請(qǐng)求進(jìn)行響應(yīng)。[0035]其中,所述步驟1)中,創(chuàng)建物聯(lián)網(wǎng)資源包括:根據(jù)資源的輸入輸出形式與執(zhí)行狀態(tài)變化的規(guī)則、資源所處場(chǎng)景的形式、整個(gè)任務(wù)需要什么類別與多少數(shù)量的資源,為任務(wù)的啟動(dòng)與執(zhí)行在引擎層創(chuàng)建物聯(lián)網(wǎng)資源,所述交互層向用戶返回操作是否成功,并同時(shí)生成資源配置文件、場(chǎng)景配置文件、任務(wù)配置文件。[0036]其中,所述步驟2)中,創(chuàng)建物聯(lián)網(wǎng)資源所處的場(chǎng)景包括:數(shù)據(jù)層對(duì)實(shí)驗(yàn)場(chǎng)景進(jìn)行建模,利用配置文件和函數(shù)庫中的模型,以及外部數(shù)據(jù)集或?qū)崟r(shí)讀入的數(shù)據(jù),完成對(duì)物理環(huán)境的模擬,數(shù)據(jù)層根據(jù)配置文件對(duì)原始的真實(shí)數(shù)據(jù)進(jìn)行拆分或合并,之后根據(jù)引擎層發(fā)起的請(qǐng)求,返回不同種類的仿真物理數(shù)據(jù),所述仿真物理數(shù)據(jù)需求由引擎層發(fā)送給數(shù)據(jù)層,數(shù)據(jù)層異步地、連續(xù)地生成仿真數(shù)據(jù),以維護(hù)引擎層中的物聯(lián)網(wǎng)資源。[0037]其中,所述步驟4)中,對(duì)外界請(qǐng)求進(jìn)行響應(yīng)包括:交互層首先攔截用戶的請(qǐng)求,將請(qǐng)求發(fā)送到引擎層,引擎層判斷現(xiàn)有物聯(lián)網(wǎng)資源是否可以滿足當(dāng)前的請(qǐng)求,是否需要對(duì)資源進(jìn)行維護(hù),是否需要?jiǎng)?chuàng)建新的物聯(lián)網(wǎng)資源,以及是否需要向數(shù)據(jù)層請(qǐng)求新的仿真物理數(shù)據(jù);然后基于上述判斷結(jié)果,引擎層獲取相應(yīng)的響應(yīng),并將這條響應(yīng)投遞給交互層,由交互層對(duì)數(shù)據(jù)進(jìn)行封裝并作為用戶請(qǐng)求的結(jié)果返回。[0038]與現(xiàn)有技術(shù)相比,本發(fā)明具有下列技術(shù)效果:[0039]1、本發(fā)明能夠?yàn)槲锫?lián)網(wǎng)設(shè)備的調(diào)試提供海量的仿真?zhèn)鞲袛?shù)據(jù)(特別是環(huán)境數(shù)據(jù))服務(wù),使得物聯(lián)網(wǎng)能夠在接近真實(shí)的測(cè)試環(huán)境下完成調(diào)試或測(cè)試。[0040]2、本發(fā)明不僅能夠?yàn)槲锫?lián)網(wǎng)設(shè)備調(diào)試提供環(huán)境數(shù)據(jù)服務(wù),還能夠模擬真實(shí)傳感器的行為,這使得本發(fā)明的仿真系統(tǒng)對(duì)于待調(diào)試物聯(lián)網(wǎng)設(shè)備來說是透明的,即待調(diào)試物聯(lián)網(wǎng)設(shè)備從仿真系統(tǒng)獲取環(huán)境數(shù)據(jù)的方法與該待調(diào)試物聯(lián)網(wǎng)設(shè)備通過調(diào)用真實(shí)傳感器獲得環(huán)境數(shù)據(jù)的方法是一致的。[0041]3、基于本發(fā)明的仿真系統(tǒng)進(jìn)行物聯(lián)網(wǎng)仿真調(diào)試或測(cè)試的過程中,待調(diào)試物聯(lián)網(wǎng)設(shè)備能夠與仿真平臺(tái)之間進(jìn)行大量的實(shí)時(shí)交互,從而拓寬了物聯(lián)網(wǎng)仿真調(diào)試或測(cè)試的應(yīng)用領(lǐng)域。[0042]4、本發(fā)明通過將物聯(lián)網(wǎng)設(shè)備功能抽象成為資源,能夠以較小的開銷生成海量的環(huán)境數(shù)據(jù),進(jìn)而為物聯(lián)網(wǎng)仿真調(diào)試或測(cè)試提供仿真數(shù)據(jù)服務(wù)。【附圖說明】[0043]以下,結(jié)合附圖來詳細(xì)說明本發(fā)明的實(shí)施例,其中:[0044]圖1示出了本發(fā)明一個(gè)實(shí)施例的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)的架構(gòu)示意圖;[0045]圖2示出了本發(fā)明一個(gè)實(shí)施例的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)的運(yùn)行流程時(shí)序圖;[0046]圖3示出了本發(fā)明一個(gè)實(shí)施例中的資源創(chuàng)建流程示意圖;[0047]圖4示出了本發(fā)明一個(gè)實(shí)施例中的場(chǎng)景創(chuàng)建流程示意圖;[0048]圖5示出了本發(fā)明一個(gè)實(shí)施例中的任務(wù)執(zhí)行流程示意圖;[0049]圖6示出了本發(fā)明一個(gè)實(shí)施例中的外界請(qǐng)求響應(yīng)流程示意圖;[0050]圖7示出了本發(fā)明一個(gè)實(shí)施例中的資源配置文件實(shí)例;[0051]圖8示出了本發(fā)明一個(gè)實(shí)施例中的場(chǎng)景配置文件實(shí)例;[0052]圖9示出了本發(fā)明一個(gè)實(shí)施例中的任務(wù)配置文件實(shí)例?!揪唧w實(shí)施方式】[0053]根據(jù)本發(fā)明的一個(gè)實(shí)施例提供了一種仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng),以便為物聯(lián)網(wǎng)調(diào)試提供海量的、可交互的傳感數(shù)據(jù)服務(wù)。其中,仿真物聯(lián)網(wǎng)資源是將物聯(lián)網(wǎng)設(shè)備的功能抽象而成的物聯(lián)網(wǎng)資源,本文中的物聯(lián)網(wǎng)資源也可以視為虛擬物聯(lián)網(wǎng)設(shè)備,本實(shí)施例的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)能夠生成海量的虛擬物聯(lián)網(wǎng)設(shè)備并為待調(diào)試物聯(lián)網(wǎng)設(shè)備提供相應(yīng)的服務(wù),待調(diào)試物聯(lián)網(wǎng)設(shè)備能夠像訪問真實(shí)物聯(lián)網(wǎng)設(shè)備一樣地訪問本實(shí)施例中的虛擬物聯(lián)網(wǎng)設(shè)備并獲取用于調(diào)試的仿真?zhèn)鞲衅鲾?shù)據(jù)(例如溫度、濕度等環(huán)境數(shù)據(jù)),從而模擬物聯(lián)網(wǎng)中設(shè)備之間、設(shè)備與后臺(tái)之間的交互過程,實(shí)現(xiàn)調(diào)試。[0054]本實(shí)施例中,采用了一種三層結(jié)構(gòu)來實(shí)現(xiàn)仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)。這三層結(jié)構(gòu)分別為數(shù)據(jù)層、引擎層和交互層,數(shù)據(jù)層負(fù)責(zé)物理數(shù)據(jù)模型的生成,引擎層負(fù)責(zé)物聯(lián)網(wǎng)資源的控制與維護(hù),交互層負(fù)責(zé)與外界的交互功能。圖1示出了本實(shí)施例的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)的架構(gòu)。其中方框表示各個(gè)功能組成模塊??招募^表示層與層之間的控制操作,實(shí)線箭頭表示系統(tǒng)內(nèi)部的數(shù)據(jù)走向。以下對(duì)這些層次和模塊進(jìn)行詳細(xì)介紹。[0055]交互層面向用戶提供配置接口、控制接口,且面向外部被測(cè)系統(tǒng)提供物聯(lián)網(wǎng)資源外部訪問接口。交互層通過交互界面,從外部讀入用戶創(chuàng)建、配置、控制物聯(lián)網(wǎng)資源的請(qǐng)求,生成標(biāo)準(zhǔn)格式的配置文件,分別發(fā)送給引擎層和數(shù)據(jù)層。同時(shí)從引擎層獲得系統(tǒng)產(chǎn)生的物聯(lián)網(wǎng)資源(為便于描述,本文中有時(shí)會(huì)將物聯(lián)網(wǎng)資源簡(jiǎn)稱為資源,下文中不再贅述),為外部訪問這些資源提供統(tǒng)一的訪問接口。交互層包括以下三個(gè)主要功能模塊:(1)任務(wù)與環(huán)境配置工具,用戶能夠通過該工具可以方便地設(shè)置物聯(lián)網(wǎng)資源的數(shù)量、運(yùn)行參數(shù),也可以對(duì)各類環(huán)境模型進(jìn)行相應(yīng)的調(diào)整。該工具具體的呈現(xiàn)形式為Web頁面。該模塊收集到完整的用戶命令之后,將這些命令參數(shù)發(fā)送到引擎層任務(wù)解析器進(jìn)行解析。(2)用戶訪問接口,為用戶提供系統(tǒng)運(yùn)行控制功能。該接口將為每個(gè)已經(jīng)配置的任務(wù)提供包括啟動(dòng)、中止、暫停實(shí)時(shí)交互的命令。(3)資源訪問接口,用于進(jìn)一步封裝引擎層的物聯(lián)網(wǎng)資源,向外部提供資源的統(tǒng)一訪問入口。具體地,該資源訪問接口支持CoAP、HTTP、TCP等多種協(xié)議,外部系統(tǒng)可使用這些協(xié)議方便地接入系統(tǒng),像訪問真實(shí)設(shè)備一樣訪問仿真資源。[0056]引擎層從交互層獲取資源配置文件(配置文件含有用戶需求),接收數(shù)據(jù)層發(fā)送的仿真數(shù)據(jù),生成、執(zhí)行和維護(hù)物聯(lián)網(wǎng)資源。引擎層包括以下7個(gè)模塊:(1)任務(wù)解析器,用于解析用戶向儀器下達(dá)的任務(wù)配置。任務(wù)配置工具最終會(huì)生成資源配置文件(圖7)、場(chǎng)景配置文件(圖8)以及任務(wù)配置文件(圖9),并對(duì)應(yīng)將這三類文件發(fā)送到資源配置、環(huán)境配置和任務(wù)模塊。(2)資源配置模塊用于解析資源配置文件,即用戶對(duì)于資源行為的配置。解析結(jié)果為資源的運(yùn)行行為、資源的輸入輸出方式以及外界通過資源訪問接口進(jìn)行訪問時(shí)支持的協(xié)議。每個(gè)資源運(yùn)行的行為以狀態(tài)轉(zhuǎn)換圖的形式存儲(chǔ)在內(nèi)存中。(3)任務(wù)配置模塊用于從任務(wù)解析器獲得并解析任務(wù)配置文件,并將解析結(jié)果發(fā)送給任務(wù)構(gòu)建模塊。任務(wù)配置文件定義了每次任務(wù)的起始時(shí)間以及每次任務(wù)需要何種資源的參與。(4)控制命令解析器,用于實(shí)時(shí)響應(yīng)用戶對(duì)任務(wù)發(fā)送的控制命令。(5)資源調(diào)度器,用于根據(jù)資源配置中定義的資源行為規(guī)則維護(hù)生成的資源。調(diào)度器將整合資源配置模塊發(fā)送來的資源執(zhí)行的行為以及任務(wù)配置模塊發(fā)送的任務(wù)安排,并對(duì)每個(gè)任務(wù)的執(zhí)行進(jìn)行對(duì)應(yīng)調(diào)度、按需從模型生成模塊獲取數(shù)據(jù)以及對(duì)資源容器中所維護(hù)的資源進(jìn)行定時(shí)的更新。(6)資源容器,用于存放系統(tǒng)生成的資源。具體的存儲(chǔ)方法是根據(jù)資源的行為定義,存儲(chǔ)資源本身所處的執(zhí)行狀態(tài)。(7)協(xié)議庫與性能庫,前者用于支持不同種類的協(xié)議,后者用于定義常規(guī)性能測(cè)量方法。引擎層的輸入有包含任務(wù)執(zhí)行過程的控制、參數(shù)的動(dòng)態(tài)調(diào)整等指令在內(nèi)的用戶控制信息輸入,以及數(shù)據(jù)層為滿足資源執(zhí)行需求生成的仿真數(shù)據(jù)序列。引擎層輸出包括根據(jù)資源配置、任務(wù)配置計(jì)算得到的仿真數(shù)據(jù)需求,以及容器中的一組可訪問的物聯(lián)網(wǎng)資源。[0057]數(shù)據(jù)層用于整合數(shù)據(jù)來源并為物聯(lián)網(wǎng)資源生成提供數(shù)據(jù)(例如符合系統(tǒng)預(yù)設(shè)參數(shù)和用戶配置的場(chǎng)景信息的仿真?zhèn)鞲袛?shù)據(jù))。數(shù)據(jù)層包含4類功能組件:(1)環(huán)境庫,用于存儲(chǔ)常規(guī)的環(huán)境模型和規(guī)則,設(shè)計(jì)不同地形、場(chǎng)景、環(huán)境屬性類型下的基本參數(shù)信息。當(dāng)任務(wù)啟動(dòng)時(shí),環(huán)境庫需要將這些相關(guān)參數(shù)信息發(fā)送到環(huán)境配置模塊,結(jié)合用戶指定的場(chǎng)景配置文件,構(gòu)建一個(gè)新的場(chǎng)景,用于定義仿真的資源在執(zhí)行期間所處的環(huán)境。(2)環(huán)境配置模塊,用于根據(jù)用戶指定的場(chǎng)景配置文件,讀取環(huán)境庫中模型的基本參數(shù),為新任務(wù)生成對(duì)應(yīng)的場(chǎng)景。場(chǎng)景配置文件的內(nèi)容包括設(shè)備本身的位置信息、使用何種場(chǎng)景以及場(chǎng)景的初始參數(shù)。(3)環(huán)境模型生成模塊,以場(chǎng)景的配置信息和真實(shí)數(shù)據(jù)為輸入,通過對(duì)少量真實(shí)數(shù)據(jù)的回歸分析,建立指定場(chǎng)景下的環(huán)境模型以生成資源執(zhí)行所需數(shù)據(jù)。模型生成需要從環(huán)境配置模塊讀取不同任務(wù)的場(chǎng)景配置,并且從外部真實(shí)數(shù)據(jù)采集單元獲得真實(shí)環(huán)境信息,以進(jìn)行擴(kuò)充生成更為充足的環(huán)境數(shù)據(jù)。(4)物理數(shù)據(jù)獲取模塊,用于支持從外圍設(shè)備實(shí)時(shí)讀入數(shù)據(jù)。整體上,數(shù)據(jù)層根據(jù)資源生成任務(wù)的需求,通過預(yù)設(shè)參數(shù)模型和內(nèi)置環(huán)境庫,創(chuàng)建物理場(chǎng)景模型,以生成滿足需求的仿真數(shù)據(jù)序列。數(shù)據(jù)層的輸入支持真實(shí)數(shù)據(jù)集和實(shí)時(shí)數(shù)據(jù)兩類。系統(tǒng)可以根據(jù)這兩類數(shù)據(jù)的輸入為物理場(chǎng)景建模,生成滿足使用者需求的仿真數(shù)據(jù)序列。數(shù)據(jù)層以按需生成的方式輸出仿真環(huán)境數(shù)據(jù),供給引擎層中容器所維護(hù)的仿真物聯(lián)網(wǎng)資源。[0058]在以上的整體架構(gòu)基礎(chǔ)上,系統(tǒng)各個(gè)模塊協(xié)同執(zhí)行,以生成物聯(lián)網(wǎng)資源。系統(tǒng)的整體執(zhí)行流程以及各部分之間的交互序列可參照序列圖2。圖中涵蓋了三種基本的業(yè)務(wù)流程:任務(wù)創(chuàng)建、任務(wù)維護(hù)與外界請(qǐng)求響應(yīng)。不同模塊作為獨(dú)立服務(wù)運(yùn)行,依靠高性能消息機(jī)制保持執(zhí)行的同步。為了更清晰地介紹執(zhí)行過程,將資源容器單獨(dú)列為一個(gè)部分。[0059]在任務(wù)創(chuàng)建過程中,交互層將通過用戶的輸入生成配置文件,發(fā)送到引擎層進(jìn)行解析。引擎層解析配置文件后,根據(jù)文件中的內(nèi)容生成數(shù)據(jù)需求,發(fā)送至數(shù)據(jù)層,同時(shí)按配置生成物聯(lián)網(wǎng)資源并存入到容器中。引擎層將根據(jù)容器的運(yùn)行情況對(duì)每個(gè)資源進(jìn)行維護(hù),如果資源需要新數(shù)據(jù),則將生成新的數(shù)據(jù)需求并通知數(shù)據(jù)層;數(shù)據(jù)層根據(jù)需求生成對(duì)應(yīng)數(shù)據(jù),返回給引擎層,用于容器維護(hù);在任務(wù)維護(hù)過程中,為了更真實(shí)地模擬物聯(lián)網(wǎng)資源的特性,容器中的資源將具有自主對(duì)外發(fā)起連接的能力,資源對(duì)外發(fā)送的數(shù)據(jù)將由交互層根據(jù)配置使用不同的協(xié)議進(jìn)行封裝。當(dāng)外部待測(cè)物聯(lián)網(wǎng)系統(tǒng)或設(shè)備向本實(shí)施例的仿真系統(tǒng)發(fā)起請(qǐng)求時(shí),該請(qǐng)求將由交互層進(jìn)行攔截,之后向引擎層所維護(hù)的資源進(jìn)行查詢,同時(shí)更新數(shù)據(jù)層的數(shù)據(jù)生成需求。[0060]下面以使用系統(tǒng)對(duì)某種攜帶GPS的設(shè)備進(jìn)行測(cè)試為例,介紹仿真系統(tǒng)的運(yùn)行方式。該仿真系統(tǒng)使用PC平臺(tái),使用Java作為編程語言,使用MySQL存儲(chǔ)各類配置信息和環(huán)境模型,使用Redis作為消息通訊中間件。[0061]仿真系統(tǒng)的運(yùn)行方法(可視為提供仿真物聯(lián)網(wǎng)資源服務(wù)的方法)包括下列步驟:[0062]步驟1:創(chuàng)建資源。系統(tǒng)根據(jù)用戶的資源配置進(jìn)行系統(tǒng)初始化,生成對(duì)應(yīng)的資源模型。用戶使用交互層提供的接口完成對(duì)資源類型的定義。資源創(chuàng)建的整體過程如圖3所示。[0063]本實(shí)施例中,系統(tǒng)以Web頁面的形式定義資源的輸入輸出形式與執(zhí)行狀態(tài)變化的規(guī)則、資源所處場(chǎng)景的形式、整個(gè)任務(wù)需要什么類別與多少數(shù)量的資源,為任務(wù)的啟動(dòng)與執(zhí)行進(jìn)行準(zhǔn)備。交互層會(huì)向用戶返回對(duì)應(yīng)的請(qǐng)求結(jié)果,顯示操作是否成功,并同時(shí)生成資源配置文件、場(chǎng)景配置文件、任務(wù)配置文件,這些配置文件使用XML的形式進(jìn)行存儲(chǔ)。[0064]以下詳細(xì)介紹資源配置文件的內(nèi)容。資源配置文件通過定義每種資源所有可能的執(zhí)行狀態(tài)和這些狀態(tài)之間的轉(zhuǎn)換,定義了資源的執(zhí)行行為,一個(gè)具體的實(shí)例如圖7所示。每份配置文件將對(duì)應(yīng)定義一份資源,配置文件的內(nèi)容包括:指定資源涉及的所有輸入輸出數(shù)據(jù)的類型的"資源變量定義域",即<param>標(biāo)簽中的內(nèi)容;指定資源可能處于的所有狀態(tài)的"資源狀態(tài)定義域",即<state_description>標(biāo)簽中的內(nèi)容;指定資源在不同狀態(tài)之間的轉(zhuǎn)換的"資源狀態(tài)轉(zhuǎn)換域",即<state_table>中的內(nèi)容。[0065]資源變量域包含一到多條數(shù)據(jù)條目,每個(gè)條目通過指定數(shù)據(jù)序列的名稱、數(shù)據(jù)類型、輸入輸出類型組成。數(shù)據(jù)序列名稱可以是任意字符串,數(shù)據(jù)類型支持int、d〇uble、數(shù)值對(duì)、字符串,輸入輸出類型為in、out或local,含義分別為輸入、輸出和內(nèi)部變量。[0066]資源狀態(tài)域中包含至少一條狀態(tài),資源每個(gè)狀態(tài)中可以執(zhí)行若干操作,每種操作都是從輸入數(shù)據(jù)中獲取數(shù)據(jù)、加工之后返回到指定的輸出序列中。其中〈needs〉標(biāo)簽定義了在執(zhí)行該狀態(tài)的操作時(shí)輸入數(shù)據(jù)的來源,其中內(nèi)容需是在〈params〉中輸入輸出類型為in或local的數(shù)據(jù)序列,其中frequency字段為數(shù)據(jù)輸入到資源的頻率?!磒rovides〉標(biāo)簽定義了該執(zhí)行操作的方式,內(nèi)容為〈params〉中類型為local或out的數(shù)據(jù)序列。〈needsMPKprovides〉均使用標(biāo)簽〈data〉定義數(shù)據(jù)的類型,data中的type對(duì)應(yīng)〈params〉中數(shù)據(jù)序列的名稱。資源狀態(tài)域也支持賦值和四則運(yùn)算等數(shù)值操作,以及簡(jiǎn)單的如隨機(jī)數(shù)等數(shù)學(xué)函數(shù),使用〈set〉標(biāo)簽完成,如例子中〈settype=〃recent_position〃value=〃${gps}〃/>的意義為將名稱為gps的數(shù)據(jù)的值放入到名稱為recent_position的變量中。資源狀態(tài)轉(zhuǎn)換域中可不包含、包含單個(gè)、多個(gè)狀態(tài)轉(zhuǎn)換條目。狀態(tài)轉(zhuǎn)換的規(guī)則細(xì)節(jié)使用<state_switch>定義,每個(gè)規(guī)則中,如果當(dāng)前變量的條件滿足condition字段中的定義,那么將從from字段中的狀態(tài)轉(zhuǎn)換到to字段中的狀態(tài)。condition字段支持大于小于等簡(jiǎn)單比較運(yùn)算符。資源狀態(tài)轉(zhuǎn)換也支持對(duì)應(yīng)的set關(guān)鍵字,用于額外的操作。[0067]最后,配置文件中的特殊字符"${key}"的意義為,從變量名為key的變量中獲得具體的值,該變量是在〈params〉中進(jìn)行定義的。配置文件中會(huì)有大量類型為local的變量,其目的是為了輔助計(jì)算。配置文件中使用"_XX"的形式定義簡(jiǎn)單數(shù)學(xué)函數(shù),如"_l〇g"定義的指數(shù)運(yùn)算。[0068]需明確,以上資源配置文件中的條目,可以直接對(duì)應(yīng)到動(dòng)態(tài)Web頁面中,用戶可直接通過輸入框、選擇框的形式,指定資源的行為,交互層以此生成對(duì)應(yīng)的資源配置文件。系統(tǒng)提供"資源變量域"Web頁面,使用動(dòng)態(tài)的呈現(xiàn)方式,用戶可自由輸入多個(gè)條目,每個(gè)條目包括"數(shù)據(jù)序列名稱"、"數(shù)據(jù)類型"、"輸入輸出類型",這些內(nèi)容會(huì)在用戶提交之后對(duì)應(yīng)生成<param>標(biāo)簽中對(duì)應(yīng)的name、value_type、type條目。"資源狀態(tài)域"相關(guān)頁面,資源狀態(tài)數(shù)目可動(dòng)態(tài)擴(kuò)展,每個(gè)狀態(tài)包含"狀態(tài)輸入數(shù)據(jù)"、"狀態(tài)輸出數(shù)據(jù)"、"數(shù)據(jù)操作",分別對(duì)應(yīng)生成上文介紹的〈needs〉、〈provides〉、〈set〉標(biāo)簽中的內(nèi)容,其呈現(xiàn)采用與"資源變量域"相同的方式。資源狀態(tài)轉(zhuǎn)換每條規(guī)則包含"初始狀態(tài)"、"目標(biāo)狀態(tài)"、"轉(zhuǎn)換條件",分別對(duì)應(yīng)生成from、to、condition字段中的內(nèi)容。Web頁面呈現(xiàn)形式與前文一致。[0069]步驟2:創(chuàng)建場(chǎng)景。仿真調(diào)試中的任務(wù)創(chuàng)建往往要考慮物聯(lián)網(wǎng)資源運(yùn)行所依賴的實(shí)驗(yàn)場(chǎng)景。數(shù)據(jù)層對(duì)實(shí)驗(yàn)場(chǎng)景進(jìn)行建模,利用用戶的配置文件和函數(shù)庫中的模型,以及外部數(shù)據(jù)集(用戶指定的)或?qū)崟r(shí)讀入的數(shù)據(jù),完成對(duì)物理環(huán)境的模擬。數(shù)據(jù)層需要根據(jù)用戶設(shè)置,對(duì)原始的真實(shí)數(shù)據(jù)進(jìn)行拆分或合并,之后根據(jù)引擎層發(fā)起的請(qǐng)求,返回不同種類的數(shù)據(jù)。數(shù)據(jù)需求將由引擎層發(fā)送給數(shù)據(jù)層,數(shù)據(jù)層異步地、連續(xù)地生成仿真數(shù)據(jù),以維護(hù)引擎層容器中的物聯(lián)網(wǎng)資源。[0070]場(chǎng)景定義了大量數(shù)據(jù)序列的產(chǎn)生方式,這些數(shù)據(jù)序列在之后的任務(wù)執(zhí)行過程中為不同資源提供輸入。場(chǎng)景配置文件詳細(xì)定義了資源執(zhí)行所處于的場(chǎng)景,用戶通過交互層產(chǎn)生的場(chǎng)景配置文件為圖8所示。場(chǎng)景配置文件包含四部分內(nèi)容:數(shù)據(jù)源定義域、變量定義域、初始化域、更新方法域。數(shù)據(jù)源定義域?qū)?yīng)標(biāo)簽〈sensor-config>,定義了外部接入的、用于通過真實(shí)數(shù)據(jù)擴(kuò)展產(chǎn)生海量數(shù)據(jù)的配置方式,實(shí)施上通過真實(shí)傳感器節(jié)點(diǎn)連接系統(tǒng)實(shí)現(xiàn)。其中,〈deploy-position〉標(biāo)簽顯示了每個(gè)提供真實(shí)數(shù)據(jù)的外部傳感器的部署位置;〈datasource〉定義了真實(shí)數(shù)據(jù)輸入系統(tǒng)之后構(gòu)成的環(huán)境模型的輸入。在下文提供數(shù)據(jù)的〈οη_ιιρ(1&?θ>φ,如"〈paramname="sound_level"value="${campus_sound(#l,#2,#3)}">",根據(jù)〈needs〉標(biāo)簽中的輸入定義,可以利用環(huán)境模型,確定指定輸入下對(duì)應(yīng)的輸出。[0071]變量定義域?qū)?yīng)標(biāo)簽〈params〉,類似資源配置,定義了場(chǎng)景可能提供的數(shù)據(jù)輸入輸出,以及內(nèi)部變量,變量的這類特性由type字段進(jìn)行區(qū)分。初始化域?qū)?yīng)標(biāo)簽〈init>,規(guī)定了該場(chǎng)景在最初執(zhí)行時(shí)部分變量的賦值情況。更新方法域<〇n_update>對(duì)應(yīng)了在場(chǎng)景每次進(jìn)行更新和維護(hù)時(shí),每個(gè)變量的變化與輸出情況,其中每項(xiàng)param均對(duì)應(yīng)一個(gè)變量。這里較為特別地是使用到〈datasource〉中的數(shù)據(jù)的變量,例如圖8中的sound_level使用到了真實(shí)數(shù)據(jù)產(chǎn)生的模型campus_sound,此時(shí),需要參照〈datasource〉中定義的參數(shù)形式,通過"〈valvalue=〃${last_gps_x}〃/>"指定模型的數(shù)據(jù)輸入,即"〈needsname=〃lat〃mapping="C〇ll">"。[0072]場(chǎng)景配置文件由交互層生成的方式與資源配置文件的規(guī)則相同,均是對(duì)應(yīng)每個(gè)標(biāo)簽,通過動(dòng)態(tài)頁面為用戶提供輸入或選擇框的方式進(jìn)行交互,故不再一一詳述。[0073]步驟3:任務(wù)執(zhí)行。當(dāng)用戶完成資源和任務(wù)的定義之后,可以使用任務(wù)配置文件定義調(diào)度器的行為,開始執(zhí)行資源生成任務(wù)。調(diào)度器控制引擎層和數(shù)據(jù)層模塊的運(yùn)行,維護(hù)容器中的虛擬資源,根據(jù)虛擬資源產(chǎn)生的事件協(xié)調(diào)數(shù)據(jù)層生成的數(shù)據(jù)內(nèi)容。任務(wù)執(zhí)行流程如圖4所示。[0074]其中,任務(wù)配置文件定義了完整任務(wù)執(zhí)行流程,其內(nèi)容包括:資源的數(shù)目、資源的執(zhí)行計(jì)劃、資源類型、資源場(chǎng)景變化。任務(wù)配置文件的一個(gè)實(shí)例如圖9所示。configure〉中的from和to分別定義了起始和終止的時(shí)間。<resource_groups>任務(wù)中需要生成的不同種類的虛擬資源,其中resource_type字段對(duì)應(yīng)每個(gè)資源配置文件〈resource〉標(biāo)簽中的id字段,group字段是每種資源的組別,目的是定義在同一個(gè)場(chǎng)景下有多種資源的情況?!磗cenarios〉定義了該任務(wù)涉及到的不同的場(chǎng)景配置,其中scenario_type對(duì)應(yīng)每個(gè)場(chǎng)景的id,group為每個(gè)資源的組別的id。資源類型和資源場(chǎng)景變化分別對(duì)應(yīng)上文的資源定義和場(chǎng)景定義,可通過id字段直接指定。圖9定義了兩類資源和三個(gè)資源執(zhí)行的時(shí)間片段。[0075]在任務(wù)執(zhí)行部分所涉及的引擎層的實(shí)現(xiàn)方面,系統(tǒng)使用Java多線程機(jī)制實(shí)現(xiàn)維護(hù)容器中每個(gè)資源的運(yùn)行維護(hù)。出于效率考慮,容器以及其中維護(hù)的物聯(lián)網(wǎng)資源直接存放于內(nèi)存,容器采用事件隊(duì)列的方式,引擎層依次更新每個(gè)虛擬資源的狀態(tài)和需要使用的數(shù)據(jù)。計(jì)算完成之后,容器將統(tǒng)一向數(shù)據(jù)層發(fā)起請(qǐng)求獲得對(duì)應(yīng)數(shù)據(jù)。具體實(shí)施中,任務(wù)在生成過程中,引擎層讀入并解析資源配置、任務(wù)配置兩類描述信息,并通過Redis消息隊(duì)列的形式,將任務(wù)啟動(dòng)命令和數(shù)據(jù)生成所需場(chǎng)景配置文件發(fā)送到數(shù)據(jù)層。外界請(qǐng)求響應(yīng)可以發(fā)生在任何周期,如果請(qǐng)求命中容器中的一個(gè)虛擬資源,則更新該虛擬資源的狀態(tài),并對(duì)應(yīng)狀態(tài)變化向數(shù)據(jù)層發(fā)送數(shù)據(jù)需求變更。對(duì)應(yīng)本例,根據(jù)資源配置中的規(guī)定,引擎層容器將定期檢查其中的每個(gè)資源的執(zhí)行狀態(tài)是否會(huì)發(fā)生變化。具體方式是掃描配置文件中<state_description>對(duì)應(yīng)的條件是否滿足,若滿足則對(duì)容器中資源的執(zhí)行狀態(tài)進(jìn)行更新。[0076]步驟4:外界請(qǐng)求響應(yīng)。引擎層資源執(zhí)行時(shí),可以根據(jù)資源配置,響應(yīng)外界不同類另IJ、不同協(xié)議的請(qǐng)求。請(qǐng)求響應(yīng)的流程如圖5所示。[0077]交互層首先攔截外界請(qǐng)求(包括外部物聯(lián)網(wǎng)系統(tǒng)或物聯(lián)網(wǎng)設(shè)備發(fā)起的請(qǐng)求),將請(qǐng)求發(fā)送到引擎層,引擎層將檢查容器中現(xiàn)有資源是否可以滿足當(dāng)前的請(qǐng)求,是否需要對(duì)資源進(jìn)行維護(hù),是否需要對(duì)資源進(jìn)行創(chuàng)建,以及是否需要向數(shù)據(jù)層請(qǐng)求新的模型數(shù)據(jù)。引擎層最終將獲得資源的響應(yīng),并將這條響應(yīng)投遞給交互層,由交互層對(duì)數(shù)據(jù)進(jìn)一步的封裝,返回請(qǐng)求的結(jié)果。[0078]本例中,外界可使用CoAP協(xié)議訪問容器中執(zhí)行的GPS資源。根據(jù)資源配置文件中〈paramname=〃position〃value_type=〃(double,double)〃/>的定義,用戶可通過CoAP協(xié)議獲得模擬生成的當(dāng)前的經(jīng)煒度數(shù)據(jù),且該位置數(shù)據(jù)滿足以下特征:state_SWitCh規(guī)定當(dāng)gps_signal_quality小于一個(gè)閾值時(shí),回傳的位置數(shù)據(jù)將是基站定位的數(shù)據(jù)。[0079]進(jìn)一步地,一個(gè)具體的使用場(chǎng)景如圖7所示,其中的資源定義、場(chǎng)景定義、任務(wù)定義分別符合圖7、8、9中內(nèi)容所示。本實(shí)例模擬了一個(gè)可穿戴設(shè)備對(duì)環(huán)境噪聲的采集過程,目的是測(cè)試該設(shè)備的定位相關(guān)的算法的性能。測(cè)試過程需要使用仿真方法對(duì)不同的位置的環(huán)境噪聲強(qiáng)度進(jìn)行模擬,故使用該系統(tǒng)由少量真實(shí)環(huán)境節(jié)點(diǎn)進(jìn)行擴(kuò)展,自動(dòng)擴(kuò)展生成不同位置的噪聲數(shù)據(jù)信息,同時(shí)由場(chǎng)景配置文件定義一個(gè)攜帶設(shè)備隨機(jī)走動(dòng)的過程。在被測(cè)設(shè)備關(guān)于位置的程序邏輯上,在GPS信號(hào)較好的時(shí)候使用GPS,當(dāng)GPS信號(hào)較差的時(shí)候切換成基站定位。如圖7所示,用戶將通過系統(tǒng)交互層,即Web頁面定義資源、場(chǎng)景和任務(wù),對(duì)應(yīng)生成三類配置文件。以下圍繞這三類文件,解釋系統(tǒng)的具體工作流程。[0080]資源配置文件描述了該設(shè)備的功能:〈state_description>分別定義了設(shè)備的兩種工作狀態(tài),即使用GPS作為位置來源和使用基站數(shù)據(jù)作為位置來源,<State_SWitch>定義了使用GPS和使用基站這兩種工作狀態(tài)之間的切換。輸出的數(shù)據(jù)類別定義位于第10行,并對(duì)應(yīng)其他的〈provides>標(biāo)簽,規(guī)定該資源輸出一個(gè)doub1e型的數(shù)值對(duì)以表示當(dāng)前的位置信息?!磒arams〉內(nèi)定義了該資源涉及到的變量存儲(chǔ),這些變量包括輸入(如時(shí)間、原始gps數(shù)據(jù)、gps信號(hào)質(zhì)量)、輸出(位置信息)或內(nèi)部變量。<state_description>內(nèi)定義了該資源可能的每個(gè)輸入輸出狀態(tài)。每個(gè)狀態(tài)由〈state〉中的內(nèi)容定義,包含每個(gè)狀態(tài)的id、該狀態(tài)下的輸入輸出、以及每個(gè)狀態(tài)中每次更新需要執(zhí)行的操作。狀態(tài)之間的轉(zhuǎn)換由<state_table>定義,包括起始狀態(tài)和終止?fàn)顟B(tài),以及本次轉(zhuǎn)移的觸發(fā)條件,配置文件支持算術(shù)比較、臨時(shí)變量取值等操作。其中,配置"〈state_switchfrom=〃sl〃to=〃s2〃condition=〃${gps_signal_quality}〈${quality_thresho1d}〃>"意義為當(dāng)GPS信號(hào)的質(zhì)量低于閾值時(shí),將由狀態(tài)si切換為狀態(tài)s2,即開始使用基站定位;"<state_switchfrom=〃s2〃to=〃sl〃condition=〃${time}-${timer}>${suspend_time}〃/>"意義為,當(dāng)執(zhí)行時(shí)間超過預(yù)設(shè)值后,將由狀態(tài)s2切換為狀態(tài)si,即開始使用GPS定位。資源每個(gè)狀態(tài)的〈provides〉標(biāo)簽下均有"〈datatype="noise_leve1"value="-log(${sound_level})"/>",該定義指該設(shè)備輸出的噪聲指示信息是由內(nèi)部的souncLlevel信息(最初由環(huán)境配置進(jìn)行賦值的數(shù)據(jù))加工后得到的。[0081]場(chǎng)景配置描述了該設(shè)備仿真所需的環(huán)境噪聲數(shù)據(jù)生成方法和虛擬的位置的移動(dòng)。其中環(huán)境噪聲通過變量定義和數(shù)據(jù)源定義共同實(shí)現(xiàn),其中變量sound_leve1在訪問時(shí),將指定輸入時(shí)間、位置,可通過〈datasource〉標(biāo)簽中定義的campus_sound數(shù)據(jù)源拿到通過環(huán)境模型擴(kuò)展得到的噪聲仿真數(shù)據(jù)。在本例中,如<〇n_update>中的定義,配置文件指定使用隨機(jī)游走的方法作為數(shù)據(jù)生成模型,以生成位置數(shù)據(jù)作為資源的GPS輸入。具體如"〈paramname="gps"value="(${last_gps_x}+-random(#l),${last_gps_y}+-random(#2)">"定義了在每次更新過程中,為經(jīng)煒度增加一個(gè)隨機(jī)量,以定義設(shè)備的隨機(jī)移動(dòng)的特性。場(chǎng)景在任務(wù)執(zhí)行期間,虛擬資源容器將以該信息為指定虛擬資源的執(zhí)行場(chǎng)景,參照?qǐng)鼍芭渲弥小磑n_Update>標(biāo)簽中定義的移動(dòng)規(guī)則,周期性地更新容器中的虛擬資源對(duì)應(yīng)的位置變量。[0082]最后如圖7所示,被測(cè)物聯(lián)網(wǎng)設(shè)備可通過CoAP或HTTP標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議,訪問系統(tǒng)中實(shí)時(shí)生成的位置數(shù)據(jù)和環(huán)境噪聲數(shù)據(jù)序列,將這些數(shù)據(jù)序列作為真實(shí)數(shù)據(jù)。通過這種方式可以較為真實(shí)(使用真實(shí)環(huán)境數(shù)據(jù)得到環(huán)境模型,進(jìn)而生成了仿真數(shù)據(jù))地模擬具有一定復(fù)雜限制下(定位可能依賴于GPS,也可能依賴于基站信息),物聯(lián)網(wǎng)設(shè)備的執(zhí)行狀態(tài),進(jìn)而可進(jìn)行更為低成本的、有針對(duì)性的測(cè)試。[0083]進(jìn)一步地,根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,還提供了用于模擬真實(shí)物理環(huán)境的仿真數(shù)據(jù)生成方法,該方法可用于所述仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)的數(shù)據(jù)層,以便通過對(duì)少量真實(shí)數(shù)據(jù)的回歸分析,建立指定場(chǎng)景下的環(huán)境模型以生成資源執(zhí)行所需數(shù)據(jù)。[0084]該仿真數(shù)據(jù)生成方法包括下列步驟:[0085]步驟1:解析環(huán)境配置文件。環(huán)境配置文件定義了原始輸入的節(jié)點(diǎn)個(gè)數(shù)、位置信息、采集頻率,輸出對(duì)應(yīng)的個(gè)數(shù)、位置、頻率,以及模型計(jì)算時(shí)所依賴的參數(shù)等信息。本實(shí)施例的仿真數(shù)據(jù)生成方法旨在利用真實(shí)節(jié)點(diǎn)采集到的環(huán)境信息,對(duì)真實(shí)數(shù)據(jù)點(diǎn)的擬合生成環(huán)境信息模型,從而實(shí)現(xiàn)批量生成物理環(huán)境的仿真數(shù)據(jù)的目的。為了實(shí)現(xiàn)真實(shí)環(huán)境數(shù)據(jù)的采集,首先解析環(huán)境配置文件,通過配置文件中所需求的數(shù)據(jù)點(diǎn)的數(shù)量、時(shí)間與部署信息開始規(guī)劃任務(wù)。例如,在一個(gè)實(shí)例中配置文件的定義內(nèi)容為:配置10個(gè)前端設(shè)備節(jié)點(diǎn)產(chǎn)生數(shù)據(jù)作為原始輸入(即下文中所生成仿真數(shù)據(jù)的原始輸入數(shù)據(jù)),設(shè)備采集的時(shí)刻為從8:00到10:00,采集的間隔為10分鐘;配置擬輸出1〇〇個(gè)位置的仿真數(shù)據(jù),時(shí)刻仍為8:00到10:00,這些仿真數(shù)據(jù)的輸出間隔為1分鐘。[0086]步驟2:采集真實(shí)物理環(huán)境數(shù)據(jù)。采集真實(shí)數(shù)據(jù)的過程依托真實(shí)物理環(huán)境數(shù)據(jù)采集系統(tǒng)實(shí)現(xiàn),該系統(tǒng)通常是一個(gè)能夠采集多個(gè)位置點(diǎn)的一種或多種物理環(huán)境參量的傳感器網(wǎng)絡(luò)。所采集真實(shí)物理環(huán)境數(shù)據(jù)就是多個(gè)位置點(diǎn)在不同時(shí)刻下的真實(shí)物理環(huán)境參量值。所述的物理環(huán)境參量可以是溫度、濕度等。物理環(huán)境參量的采集時(shí)間段、采集時(shí)刻的間隔、每個(gè)位置點(diǎn)所需采集的數(shù)據(jù)點(diǎn)的個(gè)數(shù)均可通過環(huán)境配置文件得出。[0087]步驟3:對(duì)真實(shí)物理環(huán)境數(shù)據(jù)的采集時(shí)間段進(jìn)行時(shí)間區(qū)間切分。根據(jù)每個(gè)數(shù)據(jù)點(diǎn)的采集時(shí)刻將真實(shí)物理環(huán)境數(shù)據(jù)點(diǎn)所組成的整體數(shù)據(jù)集劃分到多個(gè)等長度的小時(shí)間片段(即切分時(shí)間區(qū)間)。由于后續(xù)步驟需要根據(jù)同一時(shí)刻不同位置的真實(shí)物理環(huán)境數(shù)據(jù)值建立空間模型,因此,在切分時(shí)間區(qū)間時(shí),需保證每個(gè)時(shí)間區(qū)間有足夠樣本點(diǎn),以防止數(shù)據(jù)過少難以保證模型精度。另外,在實(shí)際的傳感器網(wǎng)絡(luò)中,往往難以做到同一時(shí)刻采集多個(gè)不同位置的數(shù)據(jù),因此,在本實(shí)施例中同一個(gè)時(shí)間區(qū)間內(nèi)的不同位置的數(shù)據(jù)點(diǎn)被視為在同一時(shí)刻采集。[0088]例如,假設(shè)在整個(gè)任務(wù)執(zhí)行過程中共計(jì)生成Μ個(gè)時(shí)間區(qū)間。劃分時(shí)間區(qū)間時(shí),使用時(shí)間長度作為劃分依據(jù)。假設(shè)第k個(gè)時(shí)間區(qū)間為[t^tc],記其中數(shù)據(jù)點(diǎn)的采集時(shí)刻依次為七山,…,tC。為了將時(shí)刻tgljt。的所有數(shù)據(jù)點(diǎn)合并到一個(gè)時(shí)間區(qū)間進(jìn)行計(jì)算,取該區(qū)間內(nèi)所有數(shù)據(jù)點(diǎn)時(shí)刻的平均作為該時(shí)間區(qū)間的代表時(shí)刻,即第k個(gè)時(shí)間區(qū)間的代表時(shí)刻可以記為Tk=(ti+tA,…,+tc)/C。然后將該時(shí)間區(qū)間內(nèi)所有數(shù)據(jù)點(diǎn)的時(shí)刻均以該時(shí)間區(qū)間的代表時(shí)刻替代。[0089]步驟4:空間數(shù)據(jù)回歸建模。使用高斯過程模型對(duì)每個(gè)時(shí)間區(qū)間內(nèi)空間位置對(duì)應(yīng)的環(huán)境數(shù)據(jù)進(jìn)行建模(獲得每個(gè)時(shí)間區(qū)間對(duì)應(yīng)的環(huán)境數(shù)據(jù)空間分布),生成指定位置的環(huán)境數(shù)據(jù)。高斯過程是指所有隨機(jī)變量均滿足高斯分布的隨機(jī)過程。自然界中數(shù)據(jù)在觀測(cè)時(shí)會(huì)受白噪聲干擾,高斯過程可對(duì)這類特性進(jìn)行準(zhǔn)確的表達(dá),所以常用于環(huán)境數(shù)據(jù)的建模。使用建模結(jié)果對(duì)環(huán)境數(shù)據(jù)進(jìn)行分析和預(yù)測(cè),即可完成特定輸入下(即不同空間位置下)環(huán)境數(shù)據(jù)的估計(jì)。[0090]本步驟以該時(shí)間區(qū)間的代表時(shí)刻Tk的觀測(cè)數(shù)據(jù)(即已觀測(cè)到的不同位置X及其對(duì)應(yīng)的環(huán)境數(shù)據(jù)y),以及一個(gè)指定位置X*作為輸入。輸出為X*對(duì)應(yīng)的預(yù)測(cè)環(huán)境數(shù)據(jù)y*。需要指出的是X*由用戶在環(huán)境配置文件中的輸出部分進(jìn)行了規(guī)定。[0091]-個(gè)實(shí)施例中,高斯過程模型的計(jì)算過程可通過選擇超參數(shù)、對(duì)超參數(shù)的估計(jì)和帶入求解公式三步完成。[0092]首先,選擇高斯過程核函數(shù),最為常用的核函數(shù)為平方指數(shù)核函數(shù),其表達(dá)形式為:1^4')=(^邱(-(^^)2/212)。其中,〇表示高斯過程中隨機(jī)變量的方差4是核函數(shù)的自變量,X'是已知的參考位置,1是縮放系數(shù)。σ和1可視為高斯過程核函數(shù)的超參數(shù)[0093]其次,使用極大似然估計(jì)法確定高斯過程核函數(shù)的超參數(shù)〇和1。極大似然估計(jì)的輸入為觀測(cè)數(shù)據(jù),即已知的位置X及其環(huán)境參量值y,極大似然估計(jì)的似然函數(shù)為:[0095]其中,K為高斯過程核函數(shù)矩陣,該矩陣由多個(gè)核函數(shù)構(gòu)成,其中,每個(gè)核函數(shù)在矩陣中所處的位置與該核函數(shù)中的參考位置X'對(duì)應(yīng)。式(1)中,Ky=K+〇2I。通過對(duì)(1)求對(duì)超參數(shù)σ和1的偏導(dǎo)數(shù),并令偏導(dǎo)數(shù)為0,可以計(jì)算超參數(shù)〇和1的極大似然估計(jì)值。[0096]最后,套用高斯過程計(jì)算公式,公式包括高斯過程均值函數(shù)m(x*)和方差函數(shù)v(X*)的計(jì)算公式。均值函數(shù)m(x*)的實(shí)際意義為在輸入為X*時(shí),最可能出現(xiàn)的環(huán)境數(shù)據(jù)為m(X*),方差函數(shù)v(x*)的實(shí)際意義為,在輸入為x*時(shí),環(huán)境數(shù)據(jù)的方差為v(x*),兩者的形式如下:[0099]式中,Κ**=Κ(χ*,χ*),Κ*=[Κ(χ*,χι),···,K(x*,xn)]t,I為單位陣。公式(2)(3)中的未知量均已確定。高斯過程模型的具體細(xì)節(jié)可參考文獻(xiàn):Rasmussen,CarlEdward.〃Gaussianprocessesformachinelearning.〃(2006)pp.15-17.,本文中不再贊述。[0100]通過公式可以獲得任意待預(yù)測(cè)位置X*對(duì)應(yīng)的環(huán)境數(shù)據(jù)的均值m(x*),在一個(gè)例子中,認(rèn)為y*可由均值m(x*)就是位置X*對(duì)應(yīng)的環(huán)境參量的估計(jì)值,這樣既可達(dá)到數(shù)據(jù)生成的目的。[0101]進(jìn)一步地,在一個(gè)優(yōu)選實(shí)施例中,使用不同位置信息X與該位置對(duì)應(yīng)的溫度數(shù)據(jù)y形成的多個(gè)二元組(x,y)作為觀測(cè)數(shù)據(jù)作為輸入,將用戶在環(huán)境配置文件中的輸出需求,BP待估計(jì)位置χ*作為輸入。將默認(rèn)使用平方指數(shù)核函數(shù),并使用式(1),將多組X與y作為輸入,估計(jì)超參數(shù)〇。之后將超參數(shù)〇、觀測(cè)數(shù)據(jù)序列X與y、待估計(jì)位置X*作為輸入,帶入公式(2)(3),從而得到該物理環(huán)境參量的空間分布,進(jìn)而計(jì)算指定位置的環(huán)境參量的均值m(x*)和方差v(x*),然后根據(jù)均值m(x*)和方差v(x*)構(gòu)造隨機(jī)函數(shù),再引入隨機(jī)數(shù)生成位置χ*的環(huán)境參量值。此時(shí),所生成的環(huán)境參量值是夾帶噪聲干擾的。[0102]步驟5:時(shí)間趨勢(shì)回歸建模。對(duì)于每一個(gè)位置,根據(jù)已獲得的該位置的不同時(shí)刻的數(shù)據(jù)值,基于多項(xiàng)式擬合方法進(jìn)行時(shí)間趨勢(shì)建模,獲得指定物理環(huán)境參量在該位置下的時(shí)間趨勢(shì)函數(shù),進(jìn)而估計(jì)出該位置下任意時(shí)刻的數(shù)據(jù)值。[0103]假設(shè)以I^Ts,···,!^代表Μ個(gè)時(shí)間區(qū)間的代表時(shí)刻,那么對(duì)于任意一個(gè)目標(biāo)位置,可分別根據(jù)步驟4所得的I^Ts,···,!^時(shí)刻的環(huán)境參數(shù)空間分布函數(shù)獲得該目標(biāo)位置在h,Τ2,···,ΤΜ時(shí)刻的指定物理環(huán)境參量的數(shù)據(jù)值。然后多項(xiàng)式擬合方法即可獲得該目標(biāo)位置的時(shí)間趨勢(shì)函數(shù),基于這個(gè)時(shí)間趨勢(shì)函數(shù)就可以獲得任一時(shí)刻下目標(biāo)位置的指定物理環(huán)境參量的數(shù)據(jù)值。[0104]在一個(gè)實(shí)施例中,出于計(jì)算開銷和精度的考慮,使用了五階多項(xiàng)式回歸模型對(duì)時(shí)間趨勢(shì)函數(shù)進(jìn)行擬合。根據(jù)不同時(shí)間區(qū)間相同位置對(duì)應(yīng)的數(shù)值,可以使用最小二乘法快速計(jì)算出多項(xiàng)式回歸模型的多項(xiàng)式系數(shù),從而獲得時(shí)間趨勢(shì)函數(shù)?;谶@個(gè)時(shí)間趨勢(shì)函數(shù),可以快速計(jì)算出某個(gè)指定時(shí)刻下目標(biāo)位置的針對(duì)指定物理環(huán)境參量的仿真數(shù)據(jù)數(shù)值。對(duì)于不同的目標(biāo)位置,重復(fù)上述操作,即可獲得任意位置任意時(shí)刻的仿真數(shù)據(jù)數(shù)值。如前文所述,所指定的物理環(huán)境參量的可以是溫度、濕度等常見表征環(huán)境狀態(tài)的物理量。[0105]步驟6:生成仿真數(shù)據(jù)并進(jìn)行數(shù)據(jù)推送。在一個(gè)實(shí)施例中,生成仿真數(shù)據(jù)點(diǎn),該仿真數(shù)據(jù)點(diǎn)包括:位置標(biāo)識(shí)、時(shí)間標(biāo)簽和數(shù)據(jù)值。當(dāng)物理環(huán)境參量有多種時(shí),所述仿真數(shù)據(jù)點(diǎn)還可以包括:物理環(huán)境參量類型,例如溫度、濕度等。根據(jù)配置文件的定義,將所生成的仿真數(shù)據(jù)點(diǎn)直接存入到對(duì)應(yīng)的數(shù)據(jù)庫中用于存放輸出數(shù)據(jù)的表結(jié)構(gòu)中。該實(shí)施例同時(shí)支持直接使用第三方消息中間件的消息投遞機(jī)制發(fā)送數(shù)據(jù)到其他系統(tǒng),在具體實(shí)現(xiàn)上采用開源鍵值對(duì)存儲(chǔ)技術(shù)(例如Redis技術(shù),可參考http://redis.io)實(shí)現(xiàn)消息中間件。[0106]進(jìn)一步地,根據(jù)本發(fā)明的一個(gè)實(shí)施例,還提供了一種相應(yīng)的仿真數(shù)據(jù)生成系統(tǒng),該仿真數(shù)據(jù)生成系統(tǒng)由外設(shè)部分和后臺(tái)部分構(gòu)成。外設(shè)部分由若干的采集真實(shí)環(huán)境數(shù)據(jù)的嵌入式節(jié)點(diǎn)和網(wǎng)關(guān)構(gòu)成,用于提供原始輸入,作為對(duì)物理環(huán)境變化規(guī)律進(jìn)行建模的依據(jù)。[0107]其中,采集真實(shí)環(huán)境數(shù)據(jù)的嵌入式節(jié)點(diǎn)是物聯(lián)網(wǎng)前端感知設(shè)備,硬件上由MCU、內(nèi)部存儲(chǔ)、各類不同傳感器等模塊以及支持射頻傳輸?shù)耐ㄓ嵞K構(gòu)成。網(wǎng)關(guān)設(shè)備是感知數(shù)據(jù)接入公網(wǎng)的入口,由處理能力較強(qiáng)的嵌入式硬件設(shè)備實(shí)現(xiàn)。物聯(lián)網(wǎng)前端感知設(shè)備(即節(jié)點(diǎn)設(shè)備)在采集到環(huán)境數(shù)據(jù)后,通過無線射頻的方式發(fā)送到網(wǎng)關(guān)設(shè)備,統(tǒng)一轉(zhuǎn)發(fā)到后臺(tái)系統(tǒng)的數(shù)據(jù)庫中。在使用時(shí),用戶通過環(huán)境配置接口修改環(huán)境配置文件,從而一次性配置外界真實(shí)節(jié)點(diǎn)的工作形式,如設(shè)定諸如設(shè)備采樣間隔、設(shè)備通訊包格式內(nèi)容等。[0108]在一個(gè)實(shí)施例中,節(jié)點(diǎn)設(shè)備使用包含溫度與濕度傳感器的射頻節(jié)點(diǎn),運(yùn)行TinyOS系統(tǒng),使用802.15.4協(xié)議進(jìn)行數(shù)據(jù)傳輸。網(wǎng)關(guān)設(shè)備運(yùn)行ucLinux系統(tǒng),支持802.15.4協(xié)議和WiFi。該系統(tǒng)由多個(gè)感知節(jié)點(diǎn)和1個(gè)網(wǎng)關(guān)組成的外設(shè)部分與后臺(tái)部分(也可稱為后臺(tái)系統(tǒng))構(gòu)成。感知節(jié)點(diǎn)與網(wǎng)關(guān)節(jié)點(diǎn)使用802.15.4通訊,網(wǎng)關(guān)使用WiFi連接到公網(wǎng)AP,將數(shù)據(jù)發(fā)送到后臺(tái)系統(tǒng)。[0109]特別地,為了說明步驟4與步驟5中方法的有效性,發(fā)明人使用真實(shí)環(huán)境數(shù)據(jù)集(參考http://db.csail.mit.edu/labdata/labdata.html)進(jìn)行了三折交叉驗(yàn)證,即將原始數(shù)據(jù)(包括統(tǒng)一時(shí)刻的多組空間位置X和環(huán)境數(shù)據(jù)y)分為三份,每次使用其中兩份作為訓(xùn)練數(shù)據(jù)集,計(jì)算高斯過程模型,并計(jì)算第三份的空間位置X對(duì)應(yīng)的數(shù)據(jù)值y',之后使用第三份的數(shù)據(jù)值y與數(shù)據(jù)值y'進(jìn)行對(duì)比作為驗(yàn)證,結(jié)果的百分誤差在5%以內(nèi)。[0110]在一個(gè)實(shí)施實(shí)例中,后臺(tái)系統(tǒng)從網(wǎng)關(guān)接收真實(shí)環(huán)境數(shù)據(jù),運(yùn)行數(shù)值擬合方法,根據(jù)用戶需求,將數(shù)據(jù)庫中少量的原始數(shù)據(jù)擴(kuò)展成為海量仿真數(shù)據(jù),最后將數(shù)據(jù)通過第三方消息中間件實(shí)時(shí)發(fā)送給用戶。用戶通過配置文件使用XML形式指定數(shù)據(jù)生成任務(wù)相關(guān)的參數(shù),如生成數(shù)據(jù)的時(shí)間間隔、生成數(shù)據(jù)在對(duì)應(yīng)場(chǎng)景中的位置等。后臺(tái)使用MySQL數(shù)據(jù)庫作為數(shù)據(jù)接收的中介存儲(chǔ),以Java程序解析用戶配置信息,實(shí)現(xiàn)環(huán)境場(chǎng)景的建模和仿真數(shù)據(jù)的生成,最終使用Redis作為第三方消息中間件,對(duì)外發(fā)送仿真數(shù)據(jù)。[0111]最后應(yīng)說明的是,以上實(shí)施例僅用以描述本發(fā)明的技術(shù)方案而不是對(duì)本技術(shù)方法進(jìn)行限制,本發(fā)明在應(yīng)用上可以延伸為其它的修改、變化、應(yīng)用和實(shí)施例,并且因此認(rèn)為所有這樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和教導(dǎo)范圍內(nèi)?!局鳈?quán)項(xiàng)】1.一種仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng),其特征在于,包括交互層、引擎層和數(shù)據(jù)層;所述數(shù)據(jù)層用于生成仿真物理數(shù)據(jù)并將各個(gè)時(shí)刻和位置下的仿真物理數(shù)據(jù)傳遞給引擎層中相應(yīng)的物聯(lián)網(wǎng)資源,作為該物聯(lián)網(wǎng)資源在對(duì)應(yīng)時(shí)刻和位置所采集的仿真數(shù)據(jù);所述引擎層用于生成和維護(hù)物聯(lián)網(wǎng)資源;所述交互層用于封裝引擎層的物聯(lián)網(wǎng)資源,向外部提供物聯(lián)網(wǎng)資源的統(tǒng)一訪問入口;以及向外部返回所命中的物聯(lián)網(wǎng)資源所采集的仿真數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng),其特征在于,所述交互層還用于通過交互界面,從外部讀入用戶創(chuàng)建、配置、控制物聯(lián)網(wǎng)資源的請(qǐng)求,生成標(biāo)準(zhǔn)格式的配置文件并將所述配置文件分別發(fā)送給引擎層和數(shù)據(jù)層。3.根據(jù)權(quán)利要求2所述的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng),其特征在于,所述交互層包括:任務(wù)與環(huán)境配置工具,用于提供設(shè)置物聯(lián)網(wǎng)資源的數(shù)量、運(yùn)行參數(shù)的界面,以及對(duì)各類環(huán)境模型進(jìn)行調(diào)整的界面;還用于在接收到設(shè)置物聯(lián)網(wǎng)資源的數(shù)量、運(yùn)行參數(shù)的命令之后,或者接收到對(duì)各類環(huán)境模型進(jìn)行調(diào)整的命令之后,將這些命令參數(shù)格式化為配置文件并發(fā)送到引擎層進(jìn)行解析;用戶訪問接口,用于提供系統(tǒng)運(yùn)行控制功能,它為每個(gè)已經(jīng)配置的任務(wù)提供實(shí)時(shí)交互的命令的輸入界面;以及資源訪問接口,用于封裝引擎層的物聯(lián)網(wǎng)資源,向外部提供資源的統(tǒng)一訪問入口。4.根據(jù)權(quán)利要求3所述的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng),其特征在于,所述引擎層包括:任務(wù)解析器,用于解析配置文件的種類,并根據(jù)解析結(jié)果將相應(yīng)的配置文件發(fā)送給資源配置模塊、場(chǎng)景配置模塊或者任務(wù)配置模塊;資源配置模塊,用于解析資源配置文件,獲得資源的運(yùn)行行為、資源的輸入輸出方式以及外界通過資源訪問接口進(jìn)行訪問時(shí)支持的協(xié)議,并將每個(gè)資源運(yùn)行的行為以狀態(tài)轉(zhuǎn)換圖的形式存儲(chǔ)在內(nèi)存中;任務(wù)配置模塊,用于從任務(wù)解析器獲得并解析任務(wù)配置文件,并將解析結(jié)果發(fā)送給任務(wù)構(gòu)建模塊,其中任務(wù)配置文件定義了每次任務(wù)的起始時(shí)間以及每次任務(wù)需要何種資源的參與;控制命令解析器,用于實(shí)時(shí)響應(yīng)用戶對(duì)任務(wù)發(fā)送的控制命令;資源調(diào)度器,用于根據(jù)資源配置文件中定義的資源行為規(guī)則維護(hù)所生成的物聯(lián)網(wǎng)資源;還用于根據(jù)資源配置模塊發(fā)送來的資源執(zhí)行的行為以及任務(wù)配置模塊發(fā)送的任務(wù)安排,并對(duì)每個(gè)任務(wù)的執(zhí)行進(jìn)行對(duì)應(yīng)調(diào)度、按需從數(shù)據(jù)層獲取仿真物理數(shù)據(jù)以及對(duì)資源容器中所維護(hù)的資源進(jìn)行定時(shí)的更新;資源容器,用于存放系統(tǒng)生成的資源,根據(jù)資源的行為定義,存儲(chǔ)資源本身所處的執(zhí)行狀態(tài);以及協(xié)議庫與性能庫,用于支持不同種類的協(xié)議以及定義常規(guī)性能測(cè)量方法。5.根據(jù)權(quán)利要求4所述的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng),其特征在于,所述數(shù)據(jù)層包括:環(huán)境庫,用于存儲(chǔ)常規(guī)的環(huán)境模型和規(guī)則,設(shè)計(jì)不同地形、場(chǎng)景、環(huán)境屬性類型下的基本參數(shù)信息;環(huán)境配置模塊,用于根據(jù)用戶指定的場(chǎng)景配置文件,讀取環(huán)境庫中模型的基本參數(shù),為新任務(wù)生成對(duì)應(yīng)的場(chǎng)景;所述場(chǎng)景配置文件的內(nèi)容包括設(shè)備本身的位置信息、使用何種場(chǎng)景以及場(chǎng)景的初始參數(shù);環(huán)境模型生成模塊,用于以場(chǎng)景的配置信息和真實(shí)數(shù)據(jù)為輸入,通過對(duì)少量真實(shí)數(shù)據(jù)的回歸分析,建立指定場(chǎng)景下的環(huán)境模型以生成物聯(lián)網(wǎng)資源執(zhí)行所需數(shù)據(jù);以及物理數(shù)據(jù)獲取模塊,用于支持從外圍設(shè)備實(shí)時(shí)讀入數(shù)據(jù)。6.-種基于權(quán)利要求1~5中任意一項(xiàng)所述的仿真物聯(lián)網(wǎng)資源服務(wù)系統(tǒng)的仿真物聯(lián)網(wǎng)資源服務(wù)方法,包括下列步驟:1)創(chuàng)建物聯(lián)網(wǎng)資源;2)創(chuàng)建物聯(lián)網(wǎng)資源所處的場(chǎng)景;3)根據(jù)任務(wù)配置文件使各個(gè)物聯(lián)網(wǎng)資源執(zhí)行對(duì)應(yīng)的任務(wù);4)對(duì)外界請(qǐng)求進(jìn)行響應(yīng)。7.根據(jù)權(quán)利要求6所述的仿真物聯(lián)網(wǎng)資源服務(wù)方法,其特征在于,所述步驟1)中,創(chuàng)建物聯(lián)網(wǎng)資源包括:根據(jù)資源的輸入輸出形式與執(zhí)行狀態(tài)變化的規(guī)則、資源所處場(chǎng)景的形式、整個(gè)任務(wù)需要什么類別與多少數(shù)量的資源,為任務(wù)的啟動(dòng)與執(zhí)行在引擎層創(chuàng)建物聯(lián)網(wǎng)資源,所述交互層向用戶返回操作是否成功,并同時(shí)生成資源配置文件、場(chǎng)景配置文件、任務(wù)配置文件。8.根據(jù)權(quán)利要求7所述的仿真物聯(lián)網(wǎng)資源服務(wù)方法,其特征在于,所述步驟2)中,創(chuàng)建物聯(lián)網(wǎng)資源所處的場(chǎng)景包括:數(shù)據(jù)層對(duì)實(shí)驗(yàn)場(chǎng)景進(jìn)行建模,利用配置文件和函數(shù)庫中的模型,以及外部數(shù)據(jù)集或?qū)崟r(shí)讀入的數(shù)據(jù),完成對(duì)物理環(huán)境的模擬,數(shù)據(jù)層根據(jù)配置文件對(duì)原始的真實(shí)數(shù)據(jù)進(jìn)行拆分或合并,之后根據(jù)引擎層發(fā)起的請(qǐng)求,返回不同種類的仿真物理數(shù)據(jù),所述仿真物理數(shù)據(jù)需求由引擎層發(fā)送給數(shù)據(jù)層,數(shù)據(jù)層異步地、連續(xù)地生成仿真數(shù)據(jù),以維護(hù)引擎層中的物聯(lián)網(wǎng)資源。9.根據(jù)權(quán)利要求8所述的仿真物聯(lián)網(wǎng)資源服務(wù)方法,其特征在于,所述步驟4)中,對(duì)外界請(qǐng)求進(jìn)行響應(yīng)包括:交互層首先攔截用戶的請(qǐng)求,將請(qǐng)求發(fā)送到引擎層,引擎層判斷現(xiàn)有物聯(lián)網(wǎng)資源是否可以滿足當(dāng)前的請(qǐng)求,是否需要對(duì)資源進(jìn)行維護(hù),是否需要?jiǎng)?chuàng)建新的物聯(lián)網(wǎng)資源,以及是否需要向數(shù)據(jù)層請(qǐng)求新的仿真物理數(shù)據(jù);然后基于上述判斷結(jié)果,引擎層獲取相應(yīng)的響應(yīng),并將這條響應(yīng)投遞給交互層,由交互層對(duì)數(shù)據(jù)進(jìn)行封裝并作為用戶請(qǐng)求的結(jié)果返回?!疚臋n編號(hào)】H04L12/26GK106027319SQ201610584863【公開日】2016年10月12日【申請(qǐng)日】2016年7月22日【發(fā)明人】崔莉,李勐,石海龍,趙澤【申請(qǐng)人】中國科學(xué)院計(jì)算技術(shù)研究所