背景技術:
很多現(xiàn)代電器、消費者設備以及其它設備包括被配置為執(zhí)行一個或多個專用功能的嵌入式系統(tǒng)。然而,這些設備的多數(shù)嵌入式系統(tǒng)不包括聯(lián)網(wǎng)能力、基于角色的訪問控制能力、遠程接口能力、遠程控制能力或相關能力。將這樣的功能設計到嵌入式系統(tǒng)中、設計用于訪問這些功能的應用編程接口(api)、設計能夠經(jīng)由這種添加的功能與嵌入式系統(tǒng)進行通信并且對其進行控制的web服務以及設計用于利用這種功能的應用可能會消耗設備制造商的大量資源。
此外,大多數(shù)消費者設備遵循這樣的生命周期:定義消費者設備的功能,開發(fā)消費者設備,制造消費者設備,最終銷售消費者設備并將其部署到消費者位置。這種消費者設備的行為通常被硬編碼到消費者設備中。因此,消費者設備的功能和行為在它們已經(jīng)被部署到消費者位置之后不能被修改。此外,用于傳統(tǒng)消費者設備的產(chǎn)品開發(fā)的時間框架可能非常長(例如,在一些情況下,以6個月到一年的量級)。
附圖說明
現(xiàn)將參考示出本申請的示例性實施方式的附圖,并且其中:
圖1是描述包括遠程可訪問設備以及用于遠程可訪問設備的虛擬設備的示例網(wǎng)絡架構的框圖;
圖2a是根據(jù)本發(fā)明一個實施方式的模板管理器的框圖;
圖2b是根據(jù)本發(fā)明一個實施方式的虛擬設備管理器的框圖;
圖3a是描述虛擬設備與附加設備之間的交互的框圖;
圖3b是描述虛擬設備與附加設備之間的交互的附加框圖;
圖4a是用于使用虛擬設備控制物理設備的方法的一個實施方式的流程圖;
圖4b是用于基于改變與物理設備關聯(lián)的一個或多個模板而改變所述物理設備的性質(zhì)和/或功能的方法的一個實施方式的流程圖;
圖5是用于使用虛擬設備控制物理設備的方法的另一實施方式的流程圖;以及
圖6示出計算設備的一個實施方式的框圖。
具體實施方式
實施方式針對一種具有提供對能夠用于促進、補充并且修改物理設備的功能的虛擬設備進行靈活生成和修改的敏捷模板化框架的聯(lián)網(wǎng)設備平臺(又稱為物聯(lián)網(wǎng)(iot)云平臺或簡稱iot平臺)。所連接的設備具有能夠由用戶控制的很多性質(zhì)或?qū)傩砸约坝糜诒O(jiān)控和數(shù)據(jù)收集目的的很多性質(zhì)或?qū)傩?。設備的性質(zhì)或?qū)傩缘募匣谠O備的類型、模型和其運行的固件而變化。這些性質(zhì)/屬性構成依賴于硬件和固件的設備的物理模型。此外,設備具有獨立于硬件或固件考慮的oem能夠定義的各種行為特性。這些特性的一些示例是當特定設備事件發(fā)生時要發(fā)送的警示、可以訪問設備的角色以及要用于將設備注冊到用戶賬戶的方法。這些行為可以由云服務器控制,并且能夠在設備的生命周期期間的任何時候變化。
一些實施方式解決在設備已經(jīng)被部署在現(xiàn)場中之后當設備的物理屬性或行為屬性改變時出現(xiàn)的問題。通過采用能夠基于改變要求將模板分配給設備的靈活模板化框架,實施方式使得對變化的部署是無縫的。模板化框架使用一個或多個設備模板來定義并且生成虛擬設備。每個模板是捕獲設備的物理屬性或行為屬性的設備的模型(或設備的部件、特征或特征集合)。虛擬設備可以繼承用于生成虛擬設備的模板中的每一個的設備屬性。這些設備屬性可以包括被硬編碼和/或制造到與虛擬設備關聯(lián)的物理設備中的物理設備屬性的超集。
在任何時間,與物理設備關聯(lián)的模板中的一個或多個可以改變。此外,新設備模板可以與物理設備關聯(lián),或現(xiàn)有設備模板可以與設備解除關聯(lián)。在關聯(lián)的設備模板的這種改變之后,可以針對物理設備創(chuàng)建新虛擬設備。新的虛擬設備然后可以提供用于物理設備的添加的功能、屬性、行為等。
敏捷模板化框架使得物理設備的功能、屬性和/或行為隨著時間而改變。這些改變甚至可以產(chǎn)生于已經(jīng)部署到消費者位置的物理設備。在很多情況下,可以基于更新在服務器(例如基于云的服務器)中所執(zhí)行的商業(yè)邏輯而實現(xiàn)改變,而不寫入用于在物理設備上執(zhí)行或用于在服務器上執(zhí)行的新的軟件代碼。這縮短并且簡化了產(chǎn)品開發(fā)周期,并且使得附加工具(例如不同版本的物理設備之間的a-b測試)成為可能,其中,每個版本可以具有相同的硬件和相同的軟件,但具有不同的虛擬設備和在遠程服務器上執(zhí)行的商業(yè)邏輯。此外,模板可以用于基于修改和/或復用先前針對其它設備創(chuàng)建的設備模板而快速地并且容易地定義新產(chǎn)品的功能。這樣能夠進一步簡化產(chǎn)品設計并且縮短產(chǎn)品開發(fā)周期。
在一個實施方式中,虛擬設備管理器確定與物理設備關聯(lián)的一個或多個設備模板。設備模板中的每一個可以定義設備屬性(例如邏輯屬性、物理屬性、通知規(guī)則、商業(yè)邏輯等)的特定集合。虛擬設備管理器從一個或多個設備模板創(chuàng)建虛擬設備。虛擬設備可以繼承來自一個或多個設備模板的設備屬性集合。一旦創(chuàng)建虛擬設備,虛擬設備管理器就可以通過網(wǎng)絡在虛擬設備與物理設備之間建立連接,并且可以然后使用虛擬設備控制物理設備。在任何時間,用于物理設備的新的虛擬設備可以基于新的和/或改變后的設備模板而得以創(chuàng)建,并且可以用于控制物理設備或有互聯(lián)網(wǎng)能力的設備和/或與之進行對接。
現(xiàn)參考附圖,圖1是描述示例網(wǎng)絡架構100的框圖,網(wǎng)絡架構100包括遠程可訪問設備135a-135c以及與遠程可訪問設備135a-135c交互的計算設備105、125a、125b。網(wǎng)絡架構100包括連接到局域網(wǎng)(lan)165的多個設備135a-135c。因此,設備135a-135c可以稱為聯(lián)網(wǎng)設備。
在一個實施方式中,設備135a-135c是具有嵌入式系統(tǒng)150a-150c的設備,并且可以包括例如電器(例如冰箱、烤箱、洗衣機、干燥機、洗碗機、恒溫器、報警器、空調(diào)器、電視、無線電、接收機、放大器等)。設備135a-135c可以還包括消費者設備(例如數(shù)碼手表、音樂播放器、游戲控制臺、數(shù)碼相機、打印機等)。設備135a-135c的其它示例包括固定設備(例如hvac系統(tǒng)、交通燈、工廠控制器、標牌、電子廣告牌、噴灑器系統(tǒng)和灌溉控制系統(tǒng)以及醫(yī)療設備)。嵌入式系統(tǒng)150a-150c也可以稱為聯(lián)網(wǎng)設備。設備135a-135c也可以是包括嵌入式系統(tǒng)的任何其它類型的設備??商孢x地,一個或多個設備135a-135c可以不包括嵌入式系統(tǒng)。
嵌入式系統(tǒng)150a-150c是嵌入到另一設備中作為設備的一個部件的一類計算設備。設備135a-135c典型地還包括可以與嵌入式系統(tǒng)150a-150c進行對接的其它硬件、電氣部件和/或機械部件。嵌入式系統(tǒng)150a-150c典型地被配置為處理特定任務或任務集合,嵌入式系統(tǒng)150a-150c可以針對該特定任務或任務集合進行優(yōu)化。相應地,與普通計算設備相比,嵌入式系統(tǒng)150a-150c可以具有最小成本和尺寸。
嵌入式系統(tǒng)150a-150c可以各自包括通信模塊(未示出),其使得嵌入式系統(tǒng)150a-150c(因而設備135a-135c)能夠連接到lan165或無線運營商網(wǎng)絡(其使用各種數(shù)據(jù)處理設備、通信塔等被實現(xiàn))。通信模塊可以被配置為:管理安全性,管理會話,管理訪問控制,管理與外部設備的通信等。
在一個實施方式中,通信模塊被配置為使用
lan165包括路由器、交換機、橋接器或使得能夠在連接到lan165的多個設備之間進行通信的其它網(wǎng)絡設備(未示出)。網(wǎng)絡設備可以使用例如以太網(wǎng)端口、通用串行總線(usb)端口和/或
一些嵌入式系統(tǒng)150a-150c可能不支持網(wǎng)絡設備所支持的任何通信類型。例如,設備135c可能支持zigbee,而設備135b可能支持藍牙。為了使得這些設備能夠與lan165a連接,lan165a可以包括經(jīng)由網(wǎng)絡設備所支持的連接類型之一(例如,經(jīng)由以太網(wǎng)或wi-fi)連接到網(wǎng)絡設備的網(wǎng)關設備190。網(wǎng)關設備190可以另外支持其它通信協(xié)議(例如zigbee、plc和/或藍牙),并且可以在所支持的各通信協(xié)議之間進行轉(zhuǎn)譯。相應地,一些設備(例如設備135c)可以通過網(wǎng)關設備190連接到lan165和/或wan170。
lan165(或無線運營商)連接到廣域網(wǎng)(wan)170。wan170可以是私有wan(例如內(nèi)部網(wǎng))或公共wan(例如互聯(lián)網(wǎng)),或可以包括私有網(wǎng)絡和公共網(wǎng)絡的組合。lan165可以包括提供與wan170的連接的路由器和/或調(diào)制解調(diào)器(例如有線調(diào)制解調(diào)器、直連串行鏈路(dsl)調(diào)制解調(diào)器、微波接入全球互通
wan170可以包括或連接到一個或多個服務器計算設備125a-125b。服務器計算設備125a-125b可以包括物理機器和/或以物理機器作為主機的虛擬機。物理機器可以是機架安裝服務器、臺式計算機或其它計算設備。在一個實施方式中,服務器計算設備125a-125b包括由云提供商系統(tǒng)管理和提供的虛擬機。由云服務提供商所提供的每個虛擬機可以在配置作為云的一部分的物理機器上。這些物理機器一般位于數(shù)據(jù)中心中。云提供商系統(tǒng)和云可以提供作為基礎設施即服務(iaas)層。這種云的一個示例是
服務器計算設備125a作為一個或多個wan可訪問服務130的主機,其可以是基于web的服務和/或云服務(例如在云計算平臺中的基于web的服務)。wan可訪問服務130可以(例如經(jīng)由連續(xù)連接或斷續(xù)連接)與嵌入式系統(tǒng)150a-150c中的一個或多個保持會話。可替選地,wan可訪問服務130可以周期性地建立與嵌入式系統(tǒng)150a-150c的會話。會話和連接可以處于在服務器計算設備130上運行的虛擬設備185a-185c與設備135a-135c之間。
經(jīng)由與嵌入式系統(tǒng)150a-150c(或設備135a-135c)的會話,wan可訪問服務130可以使用適當?shù)奶摂M設備185a-185c將命令發(fā)放到嵌入式系統(tǒng)(或設備135a-135c),和/或從嵌入式系統(tǒng)(或設備135a-135c)接收狀態(tài)更新。因此,虛擬設備185a-185c可以用于控制設備135a-135c。命令可以是用于改變可由嵌入式系統(tǒng)控制的設備的一個或多個參數(shù)的狀態(tài)的命令。例如,如果嵌入式系統(tǒng)嵌入在加熱器或恒溫器中,則命令可以包括用于升高或降低溫度的命令。在另一示例中,如果嵌入式系統(tǒng)嵌入在家庭自動化系統(tǒng)中,則命令可以包括用于打開或關閉燈的命令。
從嵌入式系統(tǒng)150a-150c接收到的狀態(tài)更新可以標識包括嵌入式系統(tǒng)的設備135a-135c的一些或所有可檢測的參數(shù)的值或狀態(tài)。狀態(tài)更新也可以包括故障信息、統(tǒng)計設備使用信息、跟蹤數(shù)據(jù)和/或其它信息。這些值、狀態(tài)和/或其它信息可以基于與設備的直接用戶交互而改變。這些值、狀態(tài)和/或其它信息也可以響應于由wan可訪問服務130和/或計算設備105a-105c經(jīng)由合適的虛擬設備185a-185c發(fā)送給嵌入式系統(tǒng)150a-150c的命令而改變。此外,嵌入式系統(tǒng)150a-150c的值、狀態(tài)和其它信息可以基于嵌入式系統(tǒng)的環(huán)境條件而改變。通過保持或周期性地建立與嵌入式系統(tǒng)150a-150c的會話,wan可訪問服務130可以保持關于設備135a-135c的最新信息,并且該最新信息可以反映在虛擬設備185a-185c中。
在一個實施方式中,wan可訪問服務130包括模板管理器126和虛擬設備管理器128。模板管理器126創(chuàng)建、修改并且通過其它方式管理設備模板的池。模板管理器126可以生成和/或修改模板,而無需用戶執(zhí)行任何編程。在一個實施方式中,模板管理器126提供使得用戶能夠容易地在設備模板中定義設備屬性的用戶接口(例如圖形用戶接口)。以下參考圖2a更詳細地討論模板管理器126。
返回參考圖1,每個設備模板定義設備135a-135c的一個或多個屬性。屬性可以是被硬布線、硬編碼或制造到設備135a-135c中的物理屬性。這些物理屬性的示例包括傳感器和傳感器能力、輸入設備(例如按鈕)和輸入設備的操作、輸出設備(例如揚聲器、顯示器等)和輸出設備的操作、伺服器和伺服器設置、電機和電機設置等。物理屬性可以附加地包括設備中的加載到設備135a-135c(例如嵌入式系統(tǒng)150a-150c)中的固件和/或軟件的能力、行為、特性等。
每個設備模板另外定義用于設備135a-135c的一個或多個邏輯屬性或行為屬性。邏輯屬性(又稱為行為屬性)可以包括商業(yè)邏輯(例如可以不編程到設備中的行為、通知、規(guī)則、訪問控制、派生性質(zhì)等)。邏輯屬性可以轉(zhuǎn)而由代表物理設備135a-135c的虛擬設備185a-185c提供。例如,恒溫器可以包括溫度設置點以及用于改變溫度設置點的控件。針對恒溫器建立的虛擬設備可以包括規(guī)定要在工作日的上午7:00應用70華氏度的溫度最小值的規(guī)則。虛擬設備可以在內(nèi)部將溫度設置點改變?yōu)?0華氏度,并且可以將命令發(fā)送到物理設備,以在物理設備上將設置點改變?yōu)?0華氏度。在該示例中,將溫度設置點以及可用于設置溫度設置點的控件看作物理設備的物理屬性,并且將用于控制何時改變溫度設置點的規(guī)則看作分配給物理設備的邏輯屬性。
模板管理器126另外將模板與設備135a-135c關聯(lián)。在一個實施方式中,模板管理器126將每種類型的設備與特定模板或模板的組合關聯(lián)。設備類型可以包括特定制造商(oem)、特定型號和/或特定版本號(例如固件版本號)。因此,可以基于制造商、設備型號和/或固件版本而使用不同的模板。
虛擬設備管理器128生成用于每個物理設備135a-135c的虛擬設備185a-185c的實例。物理設備135a-135c可以均具有相同設備類型,或可以具有來自相同或不同制造商的不同設備類型。例如,可以針對oem的特定產(chǎn)品的每個單元創(chuàng)建單獨的虛擬設備185a-185c。
從一個設備模板或設備模板集合生成每個虛擬設備185a-185c。所創(chuàng)建的虛擬設備185a-185c從用于創(chuàng)建虛擬設備的設備模板中的每一個繼承設備屬性。虛擬設備185a-185c然后連接到特定物理設備135a-135c(例如連接到特定物理設備135a-135c的嵌入式系統(tǒng)150a-150c),并且可以用于監(jiān)控該物理設備,與該物理設備進行對接并且控制該物理設備。
服務器計算設備125b包括一個或多個第三方服務162。第三方服務162可以是由除了包括wan可訪問服務130的iot平臺的提供商之外的實體所提供的服務。如所示,服務器計算設備125b可以直接地或經(jīng)由wan170連接到服務器計算設備125a。第三方服務的示例包括天氣服務(例如提供現(xiàn)時天氣饋給的天氣服務)、時間服務(例如原子鐘)、豐富站點摘要(rss,又稱為真正簡易聚合)饋給、關于地區(qū)的地震數(shù)據(jù)(例如在大地震的情況下可用于切斷設施)、保持跟蹤消費者支付的以oem為主的服務(例如如果未接收到支付則可用于關閉設備控件)等。對于涉及外部服務的動作,用戶可以錄入他們的證書,或完成用于提供授權的授權過程,從而關于外部服務代表用戶執(zhí)行動作。
虛擬設備185a-185c可以代表關聯(lián)的物理設備135a-135c與第三方服務162進行對接。虛擬設備185a-185c可以與第三方服務162進行對接,以獲得可用于更新設備的信息。此外,虛擬設備185a-185c可以與第三方服務162進行對接,以提供關于物理設備135a-135c的通知和信息。
計算設備105可以包括便攜式設備(例如電子書閱讀器、便攜式數(shù)字助理、移動電話、膝上型計算機、便攜式媒體播放器、平板計算機、相機、攝像機、上網(wǎng)本、筆記本等)。計算設備105還可以包括傳統(tǒng)固定設備(例如臺式計算機、游戲控制臺、數(shù)字視頻盤(dvd)播放器、媒體中心等)。計算設備105可以與wan170和/或lan165連接。
計算設備105可以包括遠程控制應用(或多個遠程控制應用)115,其能夠經(jīng)由虛擬設備185a-185c接收關于設備135a-135c的信息并且控制該設備135a-135c。遠程控制應用115被配置為與一個或多個虛擬設備185a-185c進行對接,并且可以將命令發(fā)放到所連接的虛擬設備185a-185c。虛擬設備185a-185c然后可以將命令格式化為關聯(lián)的物理設備185a-185c所使用的協(xié)議,和/或在該協(xié)議中生成新命令。虛擬設備185a-185c然后可以(例如經(jīng)由設備的嵌入式系統(tǒng)150a-150c)將新的或修改后的命令發(fā)送給關聯(lián)的物理設備135a-135c,以控制物理設備135a-135c。
遠程控制應用115可以被編程為運行于各種操作系統(tǒng)(例如,舉幾個例子為
在一個實施方式中,遠程控制應用115與模板管理器126進行對接,以生成新模板,以修改現(xiàn)有模板。模板管理器126可以提供遠程控制應用115用以生成和/或修改模板的應用編程接口(api)??商孢x地,用戶可以訪問模板管理器126以經(jīng)由從web瀏覽器可訪問的web接口生成和/或修改規(guī)則。
圖2a是根據(jù)本發(fā)明一個實施方式的模板管理器205的框圖。在一個實施方式中,模板管理器205對應于圖1的模板管理器126。模板管理器205包括用于設計、創(chuàng)建、修改以及通過其它方式管理設備模板的功能。模板管理器205包括模板編輯器210、模板關聯(lián)模塊215以及用戶接口218??商孢x地,模板編輯器210、用戶接口218和/或模板關聯(lián)模塊215的功能可以劃分到附加模塊,或可以組合到單個模塊。
模板編輯器210負責創(chuàng)建新設備模板并且編輯現(xiàn)有模板。模板編輯器210可以創(chuàng)建空白模板,或可以基于現(xiàn)有模板而創(chuàng)建新模板。模板編輯器210可以接收用于在模板中填寫字段和/或項的模板數(shù)據(jù)220,其中,每個字段或項可以用于特定設備屬性。用戶可以經(jīng)由用戶接口218輸入或選擇模板數(shù)據(jù)220??商孢x地或附加地,可以從現(xiàn)有模板和/或其它資源導入模板數(shù)據(jù)220。
設備模板232a-232c中的每個定義一個或多個設備屬性240a-240c。設備屬性240a-240c可以是物理設備的物理屬性和/或要由虛擬設備針對物理設備提供的邏輯屬性。一些設備模板可以是定義用于特定設備(例如來自特定oem的特定型號和版本的設備)的所有物理屬性和邏輯屬性的單機模板。此外,一些設備模板可以僅定義用于物理設備的屬性的子集。例如,可以針對設備的邏輯屬性創(chuàng)建第一模板,并且可以針對設備的物理屬性創(chuàng)建第二模板。物理性質(zhì)模板可以指定設備的物理屬性集合(例如設備的傳感器、設備的控件和/或設備的其它能力)。物理性質(zhì)模板可以是用于設備的最低等級模板,并且可以映射為設備的實際命令和能力。因此,物理性質(zhì)模板可以定義用于物理設備的核心數(shù)據(jù)類型,并且提供用于與設備進行對接而且控制該設備的原始api。
在一些情況下,可以創(chuàng)建用于共享一些特性的多個不同設備的設備模板。例如,可以創(chuàng)建要用于來自特定oem的多個不同型號的相似類型的設備的單個設備模板。在另一示例中,可以設置定義可以由很多設備共享的特定部件或可以由很多設備使用的特定協(xié)議的性質(zhì)的單個設備模板。例如,可以創(chuàng)建用于zigbee協(xié)議或wi-fi802.11n協(xié)議的設備模板。然后可以將這些模板用于使用特定協(xié)議(設備模板針對其得以創(chuàng)建)的任何設備。在另一示例中,可以創(chuàng)建定義oem可能想要應用于很多不同類型的設備的商業(yè)邏輯的模板。例如,可以設置包括標識什么實體在什么情況下發(fā)送通知的通知規(guī)則的模板。例如,通知模板可以提供與跟蹤連接性事件的第三方服務的第三方整合。這通過將包含統(tǒng)一資源定位符(url)的新通知模板與第三方服務的鑒權參數(shù)關聯(lián)而能夠在數(shù)百萬個設備上在任何時間得以實現(xiàn)。
在一個實施方式中,可以創(chuàng)建設備角色模板,該設備角色模板定義與從模板創(chuàng)建的虛擬設備關聯(lián)的角色。每個角色可以批準訪問資源集合。角色的示例包括終端用戶或消費者角色、原始設備制造商(oem)管理者角色、oem賬戶管理員角色、交易商角色、技術人員角色等。oem管理者角色可以訪問組織的所有oem用戶簡檔以及作為oem產(chǎn)品的消費者的人員的終端用戶簡檔。如果消費者批準交易商訪問,則交易商角色可以訪問消費者簡檔以及其它信息。資源可以是聯(lián)網(wǎng)設備、聯(lián)網(wǎng)設備的屬性或參數(shù)、其它用戶等。例如,oem可能想要通過交易商銷售設備,并且使得該交易商能夠監(jiān)控通過該交易商銷售的設備(例如,用于維護)。因為這使得交易商能夠訪問消費者的設備,所以這具有訪問控制暗示。通過分配給設備的新角色模板,具有交易商角色的任何用戶可以能夠訪問這些設備,并經(jīng)受訪問控制檢驗。
在一個實施方式中,可以創(chuàng)建設備注冊模板,該設備注冊模板定義使用什么注冊技術將設備注冊到用戶賬戶。當終端用戶購買設備時,該設備可能初始并未注冊到任何用戶賬戶。終端用戶可能期望將設備注冊到他的用戶賬戶,以獲取對該設備的訪問并且針對該設備進行控制。例如,用戶可以購買并且安裝有互聯(lián)網(wǎng)能力的烤箱、洗碗機、干燥機或洗衣機。通過將有互聯(lián)網(wǎng)能力的設備注冊到用戶賬戶,該用戶賬戶獲取用于監(jiān)控和/或控制該設備的能力。在一個實施方式中,可以通過注冊過程對用戶賬戶批準多個不同的許可等級之一。第一許可等級可以許可對設備的監(jiān)控,但不許可對設備的任何控制。作為示例,第二許可等級可以許可對一些設備功能或設置(例如所有設備功能或設置的子集)的控制,并且第三許可等級可以許可對所有設備功能和設置的控制。
注冊模板可以定義要用于注冊未經(jīng)注冊設備的一種或多種注冊技術。所定義的注冊技術可以是設備所支持的注冊技術。每種注冊技術可以與一個或多個注冊操作關聯(lián)。所執(zhí)行的特定注冊操作取決于所選擇的特定注冊技術??梢员粓?zhí)行的操作的示例包括:從未經(jīng)注冊設備接收注冊信息,提示用戶輸入注冊信息,生成注冊信息,將注冊信息發(fā)送給未經(jīng)注冊設備,以及將注冊信息和/或其它信息發(fā)送給注冊服務。此外,在各注冊技術之間所收集的注冊信息的類型可以不同,并且針對不同注冊技術的注冊準則可以不同。
在第一示例注冊技術中,遠程控制應用使得移動設備(在其上遠程控制應用正在運行)的屏幕以將碼提供給設備的方式產(chǎn)生脈沖。設備然后可以將碼報告給注冊服務,以用于注冊。在第二示例中,未經(jīng)注冊設備將唯一碼顯示在顯示器上,并且用戶瀏覽該唯一碼并將其提供給注冊服務,以用于注冊。在第三示例中,用戶經(jīng)由文本消息、電子郵件等從web網(wǎng)站接收唯一碼,并將唯一碼提供給設備,以用于注冊。很多其它注冊技術也是可以的。
注冊模板可以另外包括控制在不同的情況下要應用哪些注冊技術的規(guī)則。在一個示例中,注冊技術選擇規(guī)則指示要基于未經(jīng)注冊設備的位置而選擇注冊技術。例如,oem可以指定第一注冊技術要用于在歐洲的設備,第二注冊技術要用于在中國的設備,并且第三注冊技術要用于在美國的設備。在另一示例中,注冊技術選擇規(guī)則指示要基于遠程控制應用所登錄到的用戶賬戶的角色而選擇注冊技術。相應地,如果交易商正將未經(jīng)注冊設備安裝在消費者的家庭中,則可以使用第一注冊技術,而如果消費者正自己安裝未經(jīng)注冊設備,則可以應用第二注冊技術。也可以應用很多其它注冊技術選擇規(guī)則。
在一個實施方式中,可以創(chuàng)建定義用于執(zhí)行動作(例如,發(fā)送通知,發(fā)送命令等)的規(guī)則的設備規(guī)則模板。每個規(guī)則可以采取一個或多個事件作為輸入,并且產(chǎn)生通知和/或命令作為輸出消息。可以從一個或多個聯(lián)網(wǎng)設備和/或服務接收輸入,并且可以將輸出發(fā)送給一個或多個聯(lián)網(wǎng)設備和/或服務。可以將輸出發(fā)送給同一聯(lián)網(wǎng)設備(從其接收輸入)或其它聯(lián)網(wǎng)設備。在一個實施方式中,每個輸入和輸出被建模為饋給。饋給可以是觸發(fā)動作的輸入饋給或自身可以為動作的輸出饋給。通過用戶定義的規(guī)則可以將松弛地耦接的饋給綁定在一起。
一些模板可以包括物理設備的派生性質(zhì)。派生性質(zhì)是從物理設備的另一(通常為物理)性質(zhì)或?qū)傩?或其它性質(zhì)或?qū)傩缘募?派生出的邏輯性質(zhì)或?qū)傩?。派生性質(zhì)可以包括用于對關于一個或多個其它屬性的值執(zhí)行的操作的定義。例如,恒溫器可以與測量以華氏度為單位的溫度的傳感器硬連線。然而,該恒溫器可能在使用攝氏度單位測量溫度的國家銷售。因此,可以設置將華氏溫度測量轉(zhuǎn)換為攝氏溫度測量的派生性質(zhì)。然后可以設置面向用戶的設備的其它屬性,以執(zhí)行動作,并且基于派生性質(zhì)而非物理設備實際上所使用的基本屬性而顯示數(shù)據(jù)。因此,即使設備以華氏度為單位運行,也可以對用戶顯現(xiàn)設備以攝氏度為單位而運行。派生性質(zhì)另外可以將來自用戶的和/或由其它屬性觸發(fā)的命令轉(zhuǎn)換成物理設備所使用的值和單位。派生性質(zhì)使得虛擬設備能夠以很多不同方式呈現(xiàn)來自物理設備的相同數(shù)據(jù)。派生性質(zhì)的其它示例是可以從一個或多個其它性質(zhì)計算得到的各種統(tǒng)計。例如,派生性質(zhì)可以是另一性質(zhì)的平均值或來自一個或多個其它屬性的兩個值(例如開始時間和停止時間)之間的增量。也可以在模板中設置很多其它類型的派生性質(zhì)。
模板編輯器210可以將范圍分配給所創(chuàng)建的模板。范圍可以控制什么實體可以瀏覽、使用和/或修改這些模板。一個示例范圍是私有范圍。具有私有范圍的模板僅對模板的創(chuàng)建者是可瀏覽的。模板的另一示例范圍是oem范圍。具有oem范圍的模板對來自oem組織的任何人是可瀏覽的。另一示例范圍是公共范圍。具有公共范圍的模板可以是公共地可瀏覽的。一些公共地可瀏覽的模板的示例包括針對公共標準所配置的模板(例如定義zigbee智能插頭數(shù)據(jù)模型和
模板關聯(lián)模塊215將特定設備和/或設備的類型關聯(lián)于設備模板232a-232c。單個設備(例如oem的特定產(chǎn)品)可以與單個設備模板或與多個不同設備模板關聯(lián)。通過分配給設備的產(chǎn)品標識符可以標識該設備??梢栽趏em內(nèi)和/或各oem之間復用設備模板(對于共用設備模板)。因此,多個不同設備可以均與同一設備模板關聯(lián)。因此,如果要對所有這些設備進行相同改變,則可以通過修改與設備中的每一個關聯(lián)的設備模板來實現(xiàn)改變。
在一些情況下,oem可以選擇供給可以將增強的體驗提供給一些消費者而非其他消費者的優(yōu)質(zhì)內(nèi)容??梢酝ㄟ^關聯(lián)具有提供優(yōu)質(zhì)內(nèi)容的屬性/性質(zhì)的不同設備模板而得以簡單地供給這種優(yōu)質(zhì)內(nèi)容。在其它情況下,可以通過將固件升級發(fā)送給物理設備并且將與該物理設備關聯(lián)的升級后的模板補充給所述固件升級來提供優(yōu)質(zhì)內(nèi)容。模板關聯(lián)模塊215可以檢測固件升級已經(jīng)被推送到物理設備,并且可以自動地將與該固件升級對應的新模板關聯(lián)于物理設備。可替選地,在固件升級已經(jīng)發(fā)放到物理設備之前,新模板可以與該物理設備關聯(lián)。模板管理器205可以檢測新模板依賴于固件升級所提供的功能,并且可以響應于此而自動地將固件升級下載并且安裝到物理設備上。
用戶接口218是用于創(chuàng)建并且編輯設備模板的直觀接口。用戶接口218可以是圖形用戶接口(gui)或功能用戶接口。用戶接口218可以提供表示要在模板中包括的用于設備的不同參數(shù)和屬性的狀態(tài)和值的圖形圖標、視覺指示符、按鈕、開關、滑動條等。用戶可以與用戶接口218進行交互,以將設備屬性分配給模板。模板管理器205也可以提供其它應用(例如遠程控制應用)能夠用于編輯并且創(chuàng)建模板的應用編程接口(api)。
用戶接口218可以提供用于選擇用于模板的設備屬性的選項。用戶接口218可以提供公共設備屬性的下拉菜單或其它列表。這些可以包括可以用在模板中的參數(shù)、設置、特征、通知、商業(yè)邏輯、角色、規(guī)則、注冊技術等。用戶接口218也可以使得用戶能夠定義新的屬性。用戶接口218也可以為用戶提供下拉菜單或其它接口,以將設備模板與特定設備或設備類型關聯(lián)。
圖2b是根據(jù)本發(fā)明一個實施方式的虛擬設備管理器250的框圖。在一個實施方式中,虛擬設備管理器250對應于圖1的虛擬設備管理器128。虛擬設備管理器250包括用于創(chuàng)建虛擬機并且將虛擬機連接在一起并連接到物理設備的功能。虛擬設備管理器250包括模板確定器255、虛擬設備創(chuàng)建器260和連接模塊265??商孢x地,模板確定器255、虛擬設備創(chuàng)建器260和/或連接模塊265的功能可以劃分到附加模塊,或可以組合到單個模塊。
當聯(lián)網(wǎng)設備(又稱為物理設備)獲取網(wǎng)絡訪問、通電等時,該物理設備可以將消息發(fā)送給虛擬設備管理器250,以通知該設備的虛擬設備管理器250。通知可以包括標識物理設備的特定設備型號、oem、版本號、介質(zhì)訪問控制(mac)地址、序列號、網(wǎng)絡地址等的信息。例如,通知可以包括唯一設備標識符。
模板確定器255可以使用所提供的信息以確定物理設備的設備類型。模板確定器255可以另外確定哪些設備模板232a-232c與該設備類型關聯(lián),其中,設備模板232a-232c中的每一個包括不同設備屬性240a-240c。模板確定器255然后可以調(diào)用虛擬設備創(chuàng)建器260,并且向虛擬設備創(chuàng)建器260傳送物理設備的網(wǎng)絡地址和與對該物理設備關聯(lián)的設備模板232a-232c的標識。
虛擬設備創(chuàng)建器260從所標識的與物理設備關聯(lián)的設備模板232a-232c生成虛擬設備270。虛擬設備270可以是模擬物理設備的數(shù)據(jù)結構。虛擬設備從設備模板232a-232c繼承設備屬性240a-240c,它們一起構成設備屬性275。設備屬性275可以包括物理設備實際上所具有的屬性(例如物理設備屬性)的超集。例如,設備屬性275可以另外包括由服務器計算設備代表物理設備所實現(xiàn)的邏輯設備屬性。在服務器上(例如在云中)執(zhí)行設備的一些操作并且在物理設備上實際上執(zhí)行其它操作的事實對于終端用戶可以是透明的。
一旦創(chuàng)建虛擬設備270,連接模塊265就將虛擬設備270連接到物理設備。針對每個物理設備創(chuàng)建單獨的虛擬設備。每個虛擬設備然后可以用于管理并且控制其通過網(wǎng)絡所連接的特定物理設備。
圖3a是描述虛擬設備338與附加設備(例如物理設備320、服務器計算設備310和計算設備315)之間的交互的框圖。服務器計算設備305掌控虛擬設備338以及一個或多個wan可訪問服務340。虛擬設備338是已經(jīng)針對通過網(wǎng)絡連接到虛擬設備338的物理設備320而創(chuàng)建的虛擬設備。
物理設備320擁有物理屬性335的集合。每個物理屬性是在物理設備320具有與虛擬設備的連接或沒有與虛擬設備的連接的情況下物理設備320的屬性。物理屬性335可以包括物理設備的輸入和輸出、可用于控制物理設備320的控件、物理設備的部件、部件的設置點和值范圍等。使用虛擬設備338可以極大地擴增物理設備320的功能。
虛擬設備338可以包括物理設備的所有物理屬性335。此外,虛擬設備338可以包括虛擬設備338代表物理設備所擁有的而物理設備并非固有地擁有的很多邏輯屬性(例如性質(zhì)、特性、行為、功能等)。這些邏輯屬性的示例包括派生性質(zhì)350、通知規(guī)則352、商業(yè)邏輯(例如附加規(guī)則、注冊技術等)354等。虛擬設備338可以另外包括可用于向物理設備320發(fā)送指令并且從物理設備320接收數(shù)據(jù)的物理設備接口346。虛擬設備338可以另外包括用于與wan可訪問服務340、第三方服務325和/或遠程控制應用330進行通信的應用(app)和/或web服務器接口348。基于虛擬設備338的邏輯屬性和/或物理屬性,虛擬設備可以生成經(jīng)由app/web服務器接口348發(fā)送到第三方服務325、wan可訪問服務340和/或遠程控制應用330的命令和/或通知。
圖3b是描述虛擬設備與附加設備之間的交互的附加框圖。在一些情況下,針對特定物理設備生成多個不同虛擬設備。例如,圖3b示出已經(jīng)針對第一物理設備266a創(chuàng)建的第一等級虛擬設備380a和第二等級虛擬設備378a以及已經(jīng)針對第二物理設備366b創(chuàng)建的第一等級虛擬設備380b和第二等級虛擬設備378b。
即使物理設備366a-366b可能是來自不同制造商并且具有不同物理屬性374a-374b的不同設備,使用針對物理設備的多個層或等級的虛擬設備也會使得服務和應用能夠使用公共應用編程接口(api)與物理設備366a-366b間接對接。此外,即使第一等級虛擬設備380a-380b可能具有不同邏輯屬性384a-384b、物理屬性374a-374b以及物理設備接口388a-388b,使用第二等級虛擬設備378a-378b也會使得服務和應用(例如遠程控制應用370a-370b)能夠與第一等級虛擬設備380a-380b進行對接并且對其進行控制。
在示例中,物理設備366a可以是具有獨特物理屬性374a集合的來自第一制造商的恒溫器。第一等級虛擬設備380a可以配置有物理設備366a的物理屬性374a以及對于該物理設備366a特定的邏輯屬性384a。物理設備366b可以是具有獨特物理屬性374b集合的來自第二制造商的洗碗機。第一等級虛擬設備380b可以配置有物理設備366b的物理屬性374b以及對于該物理設備366b特定的邏輯屬性384b。第二等級虛擬設備378a和第二等級虛擬設備378b可以是從相同模板生成的虛擬設備的單獨實例。第二等級虛擬設備378a-378b中的每一個可以包括遠程控制應用370a-370b能夠用于與第二等級虛擬設備378a-378b進行通信的公共api。第二等級虛擬設備378a-378b包括將來自遠程控制應用370a-370b的命令轉(zhuǎn)譯為能夠由特定第一等級虛擬設備380a-380b作用的命令的應用接口395a-395b。此外,第二等級虛擬設備378a-378b可以將來自第一等級虛擬設備380a-380b的數(shù)據(jù)轉(zhuǎn)譯為能夠由遠程控制應用370a-370b使用的公共格式。這樣使得單個遠程控制應用370a-370b能夠用于與多個不同類型的設備進行對接并且對其進行控制。
圖4a-圖5是示出實施虛擬設備以擴增并且控制物理設備的功能的多種方法的流程圖。所述方法可以通過可以包括硬件(例如電路、專用邏輯、可編程邏輯、微碼等)、軟件(例如運行在處理設備上以執(zhí)行硬件仿真的指令)或其組合的處理邏輯來執(zhí)行。各個實施方式可以通過執(zhí)行虛擬設備的服務器計算設備(例如圖1的服務器計算設備125)來執(zhí)行。
圖4a是用于使用虛擬設備控制物理設備的方法400的一個實施方式的流程圖。在方法400的塊405,處理邏輯確定與物理設備關聯(lián)的一個或多個設備模板。可以響應于物理設備嘗試與服務器和/或一個或多個wan可訪問服務連接而自動地執(zhí)行塊405的操作。也可以響應于用于生成新虛擬設備的命令而在任何其它時間執(zhí)行塊405的操作。
在塊410,處理邏輯從所確定的設備模板創(chuàng)建新虛擬設備。在塊415,處理邏輯然后在虛擬設備與物理設備之間建立連接。該連接可以是連續(xù)連接或斷續(xù)連接。
在塊420,處理邏輯確定是否將針對物理設備使用第二等級虛擬設備。例如,可以使用第二等級虛擬設備,以將通用接口或公共接口提供給服務和/或應用。如果要使用第二等級虛擬設備,則方法繼續(xù)于塊425。否則,方法繼續(xù)于塊440。
在塊425,處理邏輯確定與物理設備關聯(lián)的一個或多個附加設備模板。附加設備模板可以被指定為第二等級設備模板。這些設備模板可以包括與第一等級設備模板中所包括的設備屬性相同的、不同的或附加的數(shù)據(jù)。該附加數(shù)據(jù)可以包括用于與應用和服務進行通信的公共指令集,以及公共指令集與對于很多不同物理設備和/或第一等級虛擬設備特定的指令集之間的轉(zhuǎn)譯。在塊430,處理邏輯從一個或多個附加設備模板創(chuàng)建用于物理設備的第二等級虛擬設備。在塊435,處理邏輯將第二等級虛擬設備連接到第一等級虛擬設備。第一等級虛擬設備和第二等級虛擬設備可以都在同一服務器機器上執(zhí)行。因此,第一等級虛擬設備與第二等級虛擬設備之間的連接可以是邏輯連接。
在塊440,處理邏輯使用虛擬設備(或多個虛擬設備)控制物理設備??刂莆锢碓O備可以包括:基于駐留在虛擬設備中的邏輯規(guī)則而確定要分配給物理設備參數(shù)和/或設置的值,并且然后將用于實施所確定的用于參數(shù)和/或設置的值的控件發(fā)送給物理設備。控制物理設備另外可以包括:在虛擬設備中從遠程控制應用接收命令,并且將這些命令(在將命令轉(zhuǎn)譯為對于物理設備可理解的格式之后潛在地)轉(zhuǎn)發(fā)給物理設備。
圖4b是用于基于改變與物理設備關聯(lián)的一個或多個模板而改變該物理設備的性質(zhì)和/或功能的方法450的一個實施方式的流程圖。在方法450的塊455,處理邏輯確定與物理設備關聯(lián)的一個或多個設備模板。在塊460,處理邏輯從所確定的設備模板創(chuàng)建虛擬設備。在塊465,處理邏輯然后在虛擬設備與物理設備之間建立連接。連接可以是連續(xù)連接或斷續(xù)連接。
在塊470,處理邏輯確定是否存在對于物理設備可用的任何新固件升級或更新。如果是,則方法繼續(xù)于塊475。否則,方法繼續(xù)于塊480。
在塊475,處理邏輯執(zhí)行對物理設備的更新(例如空中(ota)更新)。這可以包括:將更新下載到物理設備,并且使得該更新安裝在用戶設備上。
固件更新可以引入或不引入要伴隨有修改后的設備模板的新功能。此外,在一些情況下,新設備模板或修改后的設備模板可以與物理設備關聯(lián),而無需任何固件更新。例如,模板可以被修改為針對物理設備實施新的邏輯屬性或不同的邏輯屬性或其它基于云的功能,而無需任何固件改變。
在塊480,處理邏輯確定是否已經(jīng)存在與物理設備關聯(lián)的模板的任何改變。對關聯(lián)模板的改變可以包括:對先前與物理設備關聯(lián)的現(xiàn)有模板的修改,添加之前并非與物理設備關聯(lián)的新模板,和/或去除之前與物理設備關聯(lián)的模板。如果已經(jīng)存在與物理設備關聯(lián)的模板的任何改變,則方法繼續(xù)于塊485。否則,方法結束。
在塊485,處理邏輯將虛擬設備與物理設備斷開連接。處理邏輯另外終止虛擬設備。方法可以然后返回到塊455,以確定新的關聯(lián)設備模板,并且創(chuàng)建用于物理設備的新虛擬設備。
設備用于在固件升級之后在云上獲取新性質(zhì)的能力允許oem推出改變,而無需新的云開發(fā)(例如,無需寫入用于在服務器機器上執(zhí)行的新代碼)??梢酝ㄟ^構建新模板和/或?qū)⒐碳壨扑徒o物理設備來簡單地實現(xiàn)這些新性質(zhì)。此外,可以對已經(jīng)部署到消費者位置的設備在運行中修改物理設備的性質(zhì)、功能和屬性。可以容易地對所有所部署的和/或未銷售的設備執(zhí)行這些改變。例如,oem可以在按下按鈕時禁止或啟用特定角色(例如交易商)對所部署的設備進行訪問。
oem可以選擇實施對所部署的設備的子集的改變。例如,oem可以將物理設備群組劃分為第一子群組和第二子群組。oem可以然后將新的唯一模板與第一子群組關聯(lián)。oem然后可以在各子群組之間執(zhí)行a-b測試,以確定是否對于更大群組中的所有物理設備實施新的唯一模板。例如,洗衣機的制造商可以創(chuàng)建添加新旋轉(zhuǎn)周期的新模板。該模板然后可以與5%的所部署的洗衣機關聯(lián),以提供新旋轉(zhuǎn)周期。如果新旋轉(zhuǎn)周期受消費者歡迎,則oem可以將該新旋轉(zhuǎn)周期添加到其余的物理設備。
圖5是用于使用虛擬設備控制物理設備的方法500的另一實施方式的流程圖。在方法500的塊505,處理邏輯從與物理設備關聯(lián)的一個或多個設備模板生成用于物理設備的第一等級虛擬設備。在塊508,處理邏輯在第一等級虛擬設備與物理設備之間建立連接。在塊510,處理邏輯從一個或多個附加設備模板生成第二等級虛擬設備。在塊515,處理邏輯在第一等級虛擬設備與第二等級虛擬設備之間建立連接。
第二等級虛擬設備提供使得多個不同類型的虛擬設備能夠連接到公共遠程控制應用的抽象等級。例如,洗衣機制造商可以具有三種基本的第一等級模板,該三個基本的第一等級模板描述他們的洗衣機如何工作??梢詣?chuàng)建第二等級模板,該第二等級模板將第二等級模板的功能映射到三種不同第一等級模板中的每一個中的不同但相似的功能。來自同一第二等級模板的虛擬設備于是將暴露于用于三種不同洗衣機中的每一個的遠程控制應用。oem可以另外設置用于不同角色的不同第二等級模板。例如,oem第二等級模板可以用于創(chuàng)建用于與oem的通信的虛擬設備,并且交易商第二等級模板可以用于創(chuàng)建用于與交易商的通信的虛擬設備。這些單獨的第二等級虛擬機可以具有不同的功能、不同的接口等。
在塊520,處理邏輯在第二等級虛擬設備與遠程控制應用(例如可以在移動設備上執(zhí)行的遠程控制應用)之間建立連接。在塊525,處理邏輯在第二等級虛擬設備中從遠程控制應用接收指令。在塊530,處理邏輯將第二等級虛擬設備中的指令轉(zhuǎn)換為第一等級虛擬設備能夠作用于的新指令。這可以包括:從接收到的指令生成新指令。
在塊532,處理邏輯可以確定是否能夠在虛擬設備中執(zhí)行指令或是否應在物理設備中執(zhí)行指令。如果應在物理設備中執(zhí)行指令,則方法繼續(xù)于塊535。否則,方法繼續(xù)于塊533,并且指令由處理邏輯在第一虛擬設備中執(zhí)行。
在塊535,處理邏輯將第一等級虛擬設備中的指令轉(zhuǎn)譯為物理設備能夠作用于的指令。這可以包括:基于接收到的指令生成新指令。處理邏輯然后可以將該指令發(fā)送給物理設備。在已經(jīng)執(zhí)行指令之后,可以將更新后的數(shù)據(jù)(例如更新后的設備狀態(tài)和/或其它通知)發(fā)送給第二等級虛擬設備,第二等級虛擬設備然后可以將數(shù)據(jù)轉(zhuǎn)發(fā)給遠程控制應用。
圖6示出以計算設備600的示例形式的機器的圖示,在該機器中可以執(zhí)行用于使得機器執(zhí)行在此所討論的方法中的任何一種或多種的指令集。在可替選實施方式中,機器可以與在局域網(wǎng)(lan)、內(nèi)部網(wǎng)、外部網(wǎng)或互聯(lián)網(wǎng)中的其它機器連接(例如聯(lián)網(wǎng))。機器可以在客戶機-服務器網(wǎng)絡環(huán)境中以服務器或客戶機機器的身份操作或在點對點(或分布式)網(wǎng)絡環(huán)境中作為配對機器操作。機器可以是個人計算機(pc)、平板計算機、機頂盒(stb)、個人數(shù)字助理(pda)、蜂窩電話、web電器、服務器、網(wǎng)絡路由器、交換機或橋接器、或能夠執(zhí)行指令集(順序的或其它方式)的任何機器,所述指令集指定要由該機器采取的動作。此外,雖然僅示出單個機器,但術語“機器”還應包括單獨地或聯(lián)合地執(zhí)行指令集合(多個集合)以執(zhí)行在此所討論的方法中的任何一種或多種的任何機器(例如計算機)集合。
示例計算設備600包括處理設備602、主存儲器604(例如只讀存儲器(rom)、閃存、動態(tài)隨機存取存儲器(dram)(例如同步dram(sdram)或rambusdram(rdram))等)、靜態(tài)存儲器606(例如閃存、靜態(tài)隨機存取存儲器(sram)等)以及副存儲器(例如數(shù)據(jù)存儲設備618),其經(jīng)由總線630彼此進行通信。
處理設備602表示一個或多個通用處理器(例如微處理器、中央處理單元等)。更具體地說,處理設備602可以是復雜指令集計算(cisc)微處理器、精簡指令集計算(risc)微處理器、超長指令字(vliw)微處理器、執(zhí)行其它指令集的處理器或執(zhí)行指令集的組合的處理器。處理設備602也可以是一個或多個專用處理設備(例如專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)、數(shù)字信號處理器(dsp)、網(wǎng)絡處理器等)。處理設備602被配置為執(zhí)行用于執(zhí)行在此所討論的操作和步驟的處理邏輯(指令622)。
計算設備600還可以包括網(wǎng)絡接口設備608。計算設備600也可以包括視頻顯示單元610(例如液晶顯示器(lcd)或陰極射線管(crt))、字母數(shù)字輸入設備612(例如鍵盤)、光標控制設備614(例如鼠標)以及信號生成設備616(例如揚聲器)。
數(shù)據(jù)存儲設備618可以包括其中存儲有實施在本文所述方法或功能中的任何一種或多種的一個或多個指令集622的機器可讀存儲介質(zhì)(或更具體地說,計算機可讀存儲介質(zhì))628。指令622也可以在其由計算機系統(tǒng)600、主存儲器604和也構成計算機可讀存儲介質(zhì)的處理設備602執(zhí)行期間完全地或至少部分地駐留在主存儲器604內(nèi)和/或處理設備602內(nèi)。
計算機可讀存儲介質(zhì)628也可以用于存儲模板管理器690或虛擬設備管理器692(參考圖2a-圖2b所描述的)和/或包含調(diào)用模板管理器690或虛擬設備管理器692的方法的軟件庫。雖然計算機可讀存儲介質(zhì)628在示例性實施方式中被示為單個介質(zhì),但術語“計算機可讀存儲介質(zhì)”應看作包括存儲一個或多個指令集的單個介質(zhì)或多個介質(zhì)(例如集中式或分布式數(shù)據(jù)庫、和/或關聯(lián)緩存和服務器)。術語“計算機可讀存儲介質(zhì)”也應看作包括除了能夠?qū)τ糜谟蓹C器執(zhí)行的指令集進行存儲或編碼并且使得機器執(zhí)行在此所描述的方法中的任何一種或多種的載波之外的任何介質(zhì)。術語“計算機可讀存儲介質(zhì)”相應地應看作包括但不限于固態(tài)存儲器以及光學介質(zhì)和磁性介質(zhì)。
在此(例如結合圖1-圖2b)所描述的模塊、部件和其它特征可以實現(xiàn)為分立式硬件部件或集成在硬件部件(例如asics、fpga、dsp或相似設備)的功能中。此外,模塊可以實施為硬件設備內(nèi)的固件或功能電路。此外,模塊可以以硬件設備和軟件部件的任何組合或僅以軟件實施。
以上已經(jīng)關于對計算機存儲器內(nèi)的數(shù)據(jù)比特進行的操作的算法和符號表示而提出了詳細描述的一些部分。這些算法描述和表示是由數(shù)據(jù)處理領域技術人員用于最高效地將他們的工作的實質(zhì)性傳達給其它本領域技術人員的手段。在這里以及通常而言,算法被構想為帶來期望結果的自洽步驟序列。所述步驟是需要對物理量進行物理操控的步驟。雖然并非必要,但通常這些量具有能夠被存儲、傳送、組合、比較以及其它方式操控的電信號或磁信號的形式。已經(jīng)證明:有時(主要出于普通使用的原因)將這些信號作為比特、值、元素、符號、字符、術語、數(shù)字等提及是方便的。
然而,應理解,所有這些術語和相似的術語是與適當?shù)奈锢砹筷P聯(lián)的,并且僅是應用于這些量的方便的標記。除非另外具體地聲明,從以下討論可看出:應理解,在整個說明書中,使用例如“確定”、“創(chuàng)建”、“建立”、“控制”、“轉(zhuǎn)譯”等術語進行的討論是指計算機系統(tǒng)或相似電子計算設備的動作和處理,其對表示為計算機系統(tǒng)的寄存器和存儲器內(nèi)的物理(電子)量的數(shù)據(jù)進行操控并且將其變換為相似地表示為計算機系統(tǒng)存儲器或寄存器或其它這樣的信息存儲設備、傳輸設備或顯示設備內(nèi)的物理量的其它數(shù)據(jù)。
本發(fā)明實施方式還涉及一種用于執(zhí)行本文中的操作的裝置。該裝置可以被特定構造用于所討論的目的,或其可以包括通過計算機系統(tǒng)中所存儲的計算機程序選擇性編程的通用計算機系統(tǒng)。該計算機程序可以存儲在計算機可讀存儲介質(zhì)(例如但不限于任何類型的盤(包括軟盤、光盤、cd-rom和磁光盤)、只讀存儲器(rom)、隨機存取存儲器(ram)、eprom、eeprom、磁盤存儲介質(zhì)、光學存儲介質(zhì)、閃存設備、其它類型的機器可存取存儲介質(zhì)或均耦接到計算機系統(tǒng)總線的適合于存儲電子指令的任何類型的介質(zhì))中。
應理解,以上描述意在說明性而非限制性的。在閱讀并且理解以上描述時,很多其它實施方式對于本領域技術人員將是顯然的。雖然已經(jīng)參考特定示例實施方式描述了本發(fā)明,但應理解,本發(fā)明不限于所描述的實施方式,而是可以在所附權利要求的精神和范圍內(nèi)通過修改和改動而得以實踐。相應地,說明書和附圖看作是說明性意義而不是限制性意義。因此,應參考權利要求連同這些權利要求所賦予的等同方案的完全范圍一起來確定本發(fā)明的范圍。