国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種為智能設(shè)備提供統(tǒng)一抽象表示的設(shè)備對象的制作方法

      文檔序號:11323017閱讀:359來源:國知局
      本發(fā)明涉及一種設(shè)備對象,尤其涉及一種為智能設(shè)備提供統(tǒng)一抽象表示的設(shè)備對象。
      背景技術(shù)
      ::物聯(lián)網(wǎng)有可能改變傳統(tǒng)行業(yè),以及我們的生活和工作方式。近幾年技術(shù)和應(yīng)用開發(fā)發(fā)展迅速。許多新技術(shù)正在出現(xiàn),以實現(xiàn)“物”(也稱為智能設(shè)備)的連接?,F(xiàn)階段,有幾個相互競爭的標準,包括藍牙、zwave、zigbee或傳統(tǒng)ip網(wǎng)絡(luò)協(xié)議。此外,不同的制造商可能會實施其他專有協(xié)議和獨特功能。目前世界上,還沒有與這些智能設(shè)備和物聯(lián)網(wǎng)交互的通用接口。對于擁有不同品牌的智能設(shè)備的消費者來說,設(shè)備的交流互動是非常不方便和昂貴的。不同制造商的設(shè)備之間缺乏統(tǒng)一的控制、訪問和互操作性,阻礙了物聯(lián)網(wǎng)應(yīng)用的快速采用。許多智能設(shè)備和物聯(lián)網(wǎng)缺乏統(tǒng)一的表現(xiàn),也給許多服務(wù)提供商帶來了挑戰(zhàn)。他們必須花大量資源和努力來建立具體的接口,以應(yīng)付不同的標準、協(xié)議和制造商。雖然大多數(shù)制造商努力在自己的產(chǎn)品內(nèi)開發(fā)共同的界面,但它仍然是一個非常分散的市場。在不同制造商之間交流互動和控制智能設(shè)備沒有共同的技術(shù)或標準?,F(xiàn)有技術(shù),諸如藍牙、z-wave等網(wǎng)絡(luò)協(xié)議都已經(jīng)試圖定義常見的智能設(shè)備的應(yīng)用配置文件,其描述了具有相關(guān)服務(wù)的設(shè)備能力以及如何操作這些服務(wù)。然而,他們定義的設(shè)備的應(yīng)用配置文件只屬于自己的協(xié)議,并且仍然缺乏跨不同協(xié)議的互操作性。所有設(shè)備的應(yīng)用配置文件都需要某種結(jié)構(gòu)化數(shù)據(jù)來完全表示設(shè)備在樹狀數(shù)據(jù)結(jié)構(gòu)中的功能,一些技術(shù)(例如onvif或upnp)利用xml格式來表示設(shè)備的應(yīng)用配置文件并發(fā)送動作調(diào)用xmlsoap格式。然而,這種xml格式的數(shù)據(jù)是重量級的,并且難以用于與客戶端web應(yīng)用程序的交互。此外,他們在處理和通信方面都耗費太多的資源。與xml或其他結(jié)構(gòu)數(shù)據(jù)格式相比,json(javascript對象表示,使用人類可讀文本傳輸由屬性-值配對組成數(shù)據(jù)對象的開放標準格式)具有相同的能力來表示公共設(shè)備和應(yīng)用配置文件結(jié)構(gòu)格式。此外,它更易于人眼閱讀,更容易通過軟件(如客戶端javascript和服務(wù)器端node.js代碼)進行解析和分析。此外,json更緊湊,消耗更少的網(wǎng)絡(luò)帶寬。在本發(fā)明中,我們開發(fā)了基于json的設(shè)備應(yīng)用配置文件,與現(xiàn)有技術(shù)基于xml的模型相比,顯示出巨大的技術(shù)先進性,它是為各種物聯(lián)網(wǎng)設(shè)備創(chuàng)建通用設(shè)備的應(yīng)用配置文件的最佳技術(shù)。技術(shù)實現(xiàn)要素:本發(fā)明所要解決的技術(shù)問題在于提供一種為智能設(shè)備提供統(tǒng)一抽象表示的設(shè)備對象。為實現(xiàn)上述目的,本發(fā)明采用下述的技術(shù)方案:一種設(shè)備對象,具有相關(guān)服務(wù)的設(shè)備的抽象表示,包含:a)定義智能設(shè)備操作的內(nèi)部實現(xiàn)的第一列表;b)定義智能設(shè)備的相關(guān)服務(wù)的第二列表,還包含:i)包含智能設(shè)備基本信息的第三子列表;ii)通過至少一個動作調(diào)用列表的定義來定義可用的服務(wù)的第四子列表,還包括:(1)代表所述智能設(shè)備的至少一個單獨和可互換功能的集合的至少一個服務(wù);(2)至少有一個名為服務(wù)狀態(tài)表的服務(wù)列表,包含至少一個映射到抽象api接口調(diào)用的參數(shù)的變量的定義。其中較優(yōu)地,服務(wù)列表中的可用服務(wù),在智能設(shè)備和服務(wù)發(fā)現(xiàn)過程中,根據(jù)設(shè)備驅(qū)動程序的網(wǎng)絡(luò)協(xié)議,通過內(nèi)部調(diào)用至少一個設(shè)備驅(qū)動程序來實現(xiàn)。其中較優(yōu)地,表示多個智能設(shè)備的至少一個設(shè)備驅(qū)動程序共享相同類型的網(wǎng)絡(luò)協(xié)議,其中公共抽象接口暴露給所述計算機系統(tǒng)的客戶端。其中較優(yōu)地,用于定義所述智能設(shè)備的公共表示的應(yīng)用簡檔是json格式的文本文檔,所述文本文檔獨立于所述設(shè)備對象所基于的物理網(wǎng)絡(luò)協(xié)議。其中較優(yōu)地,所述變量的定義是簡單類型或復(fù)雜類型,其中所述簡單類型遵循json規(guī)范,包括布爾值、整數(shù)、數(shù)字、字符串類型中的至少一種;所述復(fù)雜類型在對象類型中統(tǒng)一命名。其中較優(yōu)地,所述復(fù)雜類型的定義用模式關(guān)鍵字注釋,其中所述模式關(guān)鍵字的內(nèi)容是json指針。其中較優(yōu)地,所述的設(shè)備對象,還包括一個json格式的模式文檔;當應(yīng)用簡檔包括任何復(fù)雜類型變量時,所述模式文檔包含所有復(fù)雜類型變量的定義。其中較優(yōu)地,模式關(guān)鍵字的json指針定義指的是在所述模式文檔中的復(fù)雜類型變量的json模式定義。其中較優(yōu)地,所述json模式定義通過遵循json指針定義從api接口檢索復(fù)雜類型變量。其中較優(yōu)地,設(shè)備驅(qū)動程序負責將接收到的數(shù)據(jù)轉(zhuǎn)換為json,使用json模式驗證api數(shù)據(jù)。其中較優(yōu)地,使用httpurl應(yīng)用程序解析api數(shù)據(jù)模式的json指針,完整解析后的模式前端可見;httpurl應(yīng)用程序根據(jù)變量的模式定義創(chuàng)造出動態(tài)生成的表單和測試工具。附圖說明圖1是描繪本發(fā)明的軟件框架(m200)管理智能設(shè)備的的實例圖;圖2是描繪軟件框架的高級功能的實例圖;圖3是描繪軟件框架的概括性架構(gòu),包括一組api接口和模塊的實例圖;圖4是描繪根據(jù)本發(fā)明的實施例的框架部署的分層布局的實例圖;圖5是描繪由框架管理的設(shè)備對象(m100)的實例圖;圖6是描繪以json格式實現(xiàn)的設(shè)備的應(yīng)用配置文件(m110)的實例圖;圖7是表示可切換燈泡json文檔的應(yīng)用配置文件實例圖;圖8a是json文檔的一個實施例中,具有兩種服務(wù)的可切換和可調(diào)光燈泡的應(yīng)用配置文件的部分代碼展示示意圖;圖8b是json文檔的一個實施例中,具有兩種服務(wù)的可切換和可調(diào)光燈泡的應(yīng)用配置文件的部分代碼展示示意圖;圖9是描繪設(shè)備驅(qū)動程序(m150)的實例模型圖,還包括一組設(shè)備對象;圖10是根據(jù)本發(fā)明的實施例的軟件框架在發(fā)現(xiàn)和注冊智能設(shè)備時執(zhí)行的動作的流程圖;圖11是描繪軟件框架如何提供智能設(shè)備的通用抽象接口的示例的模型圖;圖12是根據(jù)本發(fā)明的實施例的由客戶端應(yīng)用和軟件框架執(zhí)行的交互并控制智能設(shè)備動作的示例流程圖;圖13是客戶端應(yīng)用程序執(zhí)行的檢索與設(shè)備對象相關(guān)聯(lián)的json模式文檔(m280)的動作的流程圖;圖14是根據(jù)本發(fā)明的由客戶端應(yīng)用程序,軟件框架在與智能設(shè)備進行事件訂閱和接收事件更新的交互中執(zhí)行動作的實例流程圖。具體實施方式下面結(jié)合附圖和具體實施例對本發(fā)明作進一步的詳細說明。本發(fā)明通過實施例說明,但是實際應(yīng)用并不受到附圖中所描述的應(yīng)用場景限制,其中相同的附圖標記表示相似的項目。對本發(fā)明中公開的實施例的引用不一定是相同的實施例,并且這樣的引用意味著至少一個。雖然討論了具體的實現(xiàn)方式,但是應(yīng)當理解這是為了說明的目的而完成的。相關(guān)領(lǐng)域的技術(shù)人員可以認識到,在不脫離本發(fā)明的范圍和精神的情況下可以使用其它組件和構(gòu)造。在下面的描述中,闡述了許多具體細節(jié)以提供對本發(fā)明的全面描述。然而,對于本領(lǐng)域技術(shù)人員來說,可以在沒有這些具體細節(jié)的情況下實踐本發(fā)明。在其他情況下,我們未詳細描述眾所周知的特征,以免使本發(fā)明的描述變得主次不分。許多物聯(lián)網(wǎng)/智能設(shè)備利用不同的網(wǎng)絡(luò)標準和協(xié)議,諸如藍牙、zwave、zigbee或ip網(wǎng)絡(luò)協(xié)議。此外,不同的制造商可能會實現(xiàn)專有協(xié)議和獨特功能。實現(xiàn)大量設(shè)備的統(tǒng)一代表和描述是一項挑戰(zhàn),使得物聯(lián)網(wǎng)/智能設(shè)備之間的互操作性非常困難。我們發(fā)明了一種新的解決方案來應(yīng)對這一挑戰(zhàn),參考圖1,該解決方案引入了一個軟件框架(m200)來管理連接到框架的所有智能設(shè)備(m41x)。作為web服務(wù)器,該框架使用統(tǒng)一格式將至少一個外部接口(稱為應(yīng)用編程接口(m300))暴露給框架外的客戶端。通過此框架,客戶端可以通過應(yīng)用編程接口(m300)以統(tǒng)一的命令訪問所有智能設(shè)備,無需處理不同網(wǎng)絡(luò)協(xié)議和設(shè)備細節(jié)的麻煩。以下發(fā)明的軟件框架(m200)可以應(yīng)用于智能家居和物聯(lián)網(wǎng)(iot)應(yīng)用。該軟件框架可以實現(xiàn)為智能網(wǎng)關(guān)的一部分,或者在諸如智能電話或平板電腦的移動設(shè)備中,或者在運行在云中的服務(wù)器機器中,或在防火墻后面的pc或連接的“智能”聯(lián)網(wǎng)設(shè)備中,通過計算機網(wǎng)絡(luò)訪問物聯(lián)網(wǎng)(iot)設(shè)備。圖2是描繪本發(fā)明的軟件框架(m200)的高級功能的實例模型圖。在軟件框架頂層,它開放了一組設(shè)備管理api接口(即應(yīng)用編程接口m300),在我們優(yōu)選的實施例中,我們用restful(m310)風格的api接口實現(xiàn)到外部世界連接。這接口不僅僅限于與restful風格的api接口實現(xiàn)。在軟件框架內(nèi)部,它利用公共設(shè)備管理層(m210)來管理一組設(shè)備對象(m100)。這些設(shè)備對象是從設(shè)備驅(qū)動程序(m150)生成,并向軟件框架報告的。公共設(shè)備管理層(m210)擁有設(shè)備驅(qū)動程序管理模塊(m230),負責管理所有設(shè)備驅(qū)動程序,例如發(fā)送發(fā)現(xiàn)(p10)請求,加載和卸載設(shè)備驅(qū)動程序(p14)等。當在網(wǎng)絡(luò)上發(fā)現(xiàn)智能設(shè)備時,設(shè)備驅(qū)動程序?qū)l(fā)現(xiàn)的智能設(shè)備注冊(p20)到軟件框架,并將其表示為軟件框架內(nèi)部的設(shè)備對象(m100)。每個設(shè)備對象(m100)實例表示發(fā)現(xiàn)的智能設(shè)備。外部世界可以通過軟件框架的api接口(m300)獲得發(fā)現(xiàn)的智能設(shè)備的列表,并通過由軟件框架(m200)實現(xiàn)的api接口(m300)來控制這些智能設(shè)備。在我們當前的實施例中,我們使用restfulapi(m310)構(gòu)建框架的api接口(m300)。對于在相同協(xié)議中共享公共設(shè)備驅(qū)動程序(m160)的智能設(shè)備,您可能會看到多個設(shè)備對象,它們表示從同一公共設(shè)備驅(qū)動程序(m160)創(chuàng)建的不同智能設(shè)備,如圖2所示??蚣艿腶pi接口(m300)還用于設(shè)備事件訂閱。要接收設(shè)備事件,外部世界用戶將其事件訂閱請求和地址信息發(fā)送到軟件框架的api接口。當設(shè)備事件到達軟件框架時,軟件框架會向用戶的地址發(fā)送事件更新。用戶地址可以是可接收數(shù)據(jù)的任何url或套接字地址。通過這種設(shè)計,我們?yōu)楦鞣N物聯(lián)網(wǎng)(iot)設(shè)備創(chuàng)建了一個雙向數(shù)據(jù)通道。圖3是描繪軟件框架的高級架構(gòu)包括一組api接口和模塊的實施例圖。在操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧(m400)之上的軟件框架中有兩個主要層。公共設(shè)備管理層(m210)和設(shè)備硬件抽象層(m240)。公共設(shè)備管理層(m210)包括處理模塊(m220)和設(shè)備驅(qū)動程序管理模塊(m230)。處理模塊包括主要功能模塊,其包括以下至少一個功能:設(shè)備發(fā)現(xiàn)(m222),設(shè)備注冊(m224),設(shè)備控制(m226)和設(shè)備事件訂閱(m228)。設(shè)備驅(qū)動程序管理模塊(m230)與分組在設(shè)備硬件抽象層(m240)中的每個設(shè)備對象的設(shè)備驅(qū)動程序(圖1中的m150)通過接口互動。圖4是描繪根據(jù)本發(fā)明的實例的框架部署的分層布局的實例圖?;谖覀兊脑O(shè)計,多個軟件框架可以在幾乎任何布局的組合中形成集群。任何軟件框架都可以調(diào)用另一個軟件框架來控制由另一個軟件框架管理的設(shè)備。在典型的軟件部署環(huán)境中,軟件框架可以具有分層布局,管理一組智能設(shè)備的下層框架實例可以被部署為上層框架實例的設(shè)備驅(qū)動程序。響應(yīng)于對下層框架的api接口的請求,較低層框架實例可以將其被管理設(shè)備對象信息發(fā)送到上層框架實例。然后上層框架可以通過下層框架實例的管理界面來管理實際的智能設(shè)備。另一種部署方法是設(shè)備驅(qū)動程序可能具有層次結(jié)構(gòu),我們有一個公共設(shè)備驅(qū)動程序(m160)來管理不同供應(yīng)商的專有驅(qū)動程序(m170)作為其依賴關(guān)系。例如,在我們的實現(xiàn)中,我們有一個通用的藍牙le驅(qū)動程序,能夠發(fā)現(xiàn)附近的所有藍牙le設(shè)備,并將其與已安裝的供應(yīng)商專有驅(qū)動程序相匹配。在匹配的情況下,常見的藍牙le模塊將向框架注冊供應(yīng)商專有設(shè)備對象。如果找不到匹配項,藍牙le模塊將收集由藍牙le標準定義的所有知名信息,例如設(shè)備名稱,設(shè)備類型等。然后,該設(shè)備將作為通用藍牙注冊到該框架le設(shè)備。通過利用這種設(shè)計,我們可以在不同的部署環(huán)境下實現(xiàn)管理各種智能設(shè)備的最大靈活性。圖5是描繪由軟件框架管理的設(shè)備對象(m100)的實施例圖。設(shè)備對象包括應(yīng)用配置文件(m110)和硬件配置文件(m120)兩者。設(shè)備的應(yīng)用配置文件是json格式文檔。它代表了設(shè)備的全部功能以及如何操作它們。此json文檔由設(shè)備驅(qū)動程序(m150)創(chuàng)建,該設(shè)備驅(qū)動程序(m150)在發(fā)現(xiàn)階段讀取和分析設(shè)備以創(chuàng)建該設(shè)備的框架內(nèi)部對象模型。此框架的客戶端,如客戶端應(yīng)用程序或第三方web服務(wù)可以通過軟件框架的api接口(m300)檢索此json文檔,以便他們知道如何向該設(shè)備發(fā)送api調(diào)用動作或訂閱事件更新。設(shè)備的硬件配置文件包括如何操作設(shè)備的內(nèi)部實現(xiàn),這些信息對軟件框架和外部世界是不可見的。設(shè)備對象實現(xiàn)一組公共設(shè)備抽象接口(m130),例如接受設(shè)備api調(diào)用動作和事件訂閱請求等。軟件框架可以調(diào)用該公共設(shè)備抽象接口以一致地與不同類型的設(shè)備進行通信,而不管其硬件配置將是什么。圖6是描繪以json格式實現(xiàn)的設(shè)備的應(yīng)用配置文件(m110)的實例圖應(yīng)用配置文件包括設(shè)備基本信息(m122)的列表,諸如設(shè)備的供應(yīng)商信息,友好名稱等;以及名為“服務(wù)列表”(m180)的列表,其定義與設(shè)備相關(guān)聯(lián)的可用服務(wù)。服務(wù)列表(m180)包含服務(wù)列表的定義(m182,m184,m186)。每個服務(wù)列表包含抽象api(m182a,m182b,m182c)和名為“服務(wù)狀態(tài)表”(m192)的列表。從功能的角度來看,設(shè)備應(yīng)用簡檔描述服務(wù)列表(m182,m184,m186),并且每個服務(wù)包含對動作呼叫列表的定義(例如,m182a,m182b,m182c)。每個動作調(diào)用定義包括表示全抽象api調(diào)用接口的參數(shù)定義列表。在我們實現(xiàn)的實例中,將包含對一組變量的定義的服務(wù)狀態(tài)表servicestatetable(m192,m194,m196)映射到抽象api調(diào)用接口的參數(shù)。這些變量的定義包括有關(guān)其數(shù)據(jù)類型的信息,以及是否可以以事件發(fā)生。變量的數(shù)據(jù)類型可以是簡單的或復(fù)雜的類型。簡單類型包括字符串,整數(shù),布爾值,數(shù)字和json規(guī)范的一致性。復(fù)雜類型用于表示具有復(fù)雜結(jié)構(gòu)的數(shù)據(jù)對象。通過這樣做,該軟件框架的客戶端可以根據(jù)設(shè)備模型中定義的數(shù)據(jù)類型向框架發(fā)送表示操作api調(diào)用的文本消息。圖7是表示可切換燈泡json文檔的應(yīng)用配置文件實施例圖。json文檔包括設(shè)備的基本信息,例如姓名,制造商信息等;服務(wù)列表,其中每個服務(wù)都包含對操作列表的定義,每個操作都描述此設(shè)備支持的操作api調(diào)用。通過利用基于json的設(shè)備模型和上述過程,客戶端應(yīng)用將具有統(tǒng)一的表示。利用這種統(tǒng)一的設(shè)備應(yīng)用配置文件和抽象設(shè)備接口,提供開關(guān)功能的燈泡將具有對客戶端的統(tǒng)一表示,而不管設(shè)備的網(wǎng)絡(luò)協(xié)議服務(wù)表示由智能設(shè)備提供的一組單獨和可互換的功能。例如,可調(diào)燈泡可以提供兩種服務(wù):一種是開關(guān)服務(wù);另一個是調(diào)光服務(wù)。開關(guān)服務(wù)包含兩個用于打開或關(guān)閉燈泡的抽象api接口,并且調(diào)光服務(wù)包含兩個api接口以獲得并設(shè)置燈泡的調(diào)光級別。圖8是json文檔的一個實施例圖,其表示具有兩種服務(wù)的可切換和可調(diào)光燈泡的應(yīng)用配置文件:二進制開關(guān)服務(wù)和調(diào)光服務(wù)。此外,定義的服務(wù)實體可以在其他情況下重復(fù)使用。例如,該開關(guān)服務(wù)實體可以用于描述諸如電視機、洗衣機等的其他智能設(shè)備所提供的切換功能。調(diào)光服務(wù)也可以用于描述可調(diào)光電視或監(jiān)視器屏幕?!胺?wù)狀態(tài)表”(m192)包含映射到由服務(wù)定義的抽象api接口的每個參數(shù)的變量定義變量的數(shù)據(jù)類型在服務(wù)狀態(tài)表(m192)中定義,并且可以是可能包含json對象或數(shù)組中的復(fù)雜數(shù)據(jù)的簡單類型(布爾型,整數(shù)型,數(shù)字和字符串)或復(fù)雜類型。通過利用這種抽象api接口和變量類型信息,我們可以通過軟件框架的api接口(m310)將設(shè)備的應(yīng)用程序配置文件發(fā)送到框架外的客戶端。然后,客戶端將知道如何發(fā)送正確的api調(diào)用來控制設(shè)備。此外,“服務(wù)狀態(tài)表”中的每個變量的定義可以用“sendevents”布爾標志來注釋。軟件框架將緩存變量的最新已知值,這些值是從其成功的操作調(diào)用或事件更新中獲取的。如果變量的“sendevents”標志在設(shè)備的應(yīng)用配置文件中為真,并且該變量的值由底層網(wǎng)絡(luò)堆?;騽幼鱝pi調(diào)用更改,則軟件框架將向事件訂閱者發(fā)送事件更新。例如,如果用戶關(guān)閉燈泡,則所有事件訂戶將從框架獲得上述更改的更新。通過這樣做,我們在客戶端和物聯(lián)網(wǎng)設(shè)備之間擁有靈活的雙向數(shù)據(jù)通道。圖9是描繪設(shè)備驅(qū)動程序(m150)的實施例的模型圖,還包括一組設(shè)備對象。每個設(shè)備驅(qū)動程序表示一種類型的網(wǎng)絡(luò)協(xié)議,并且可以管理該類別中的一個或多個設(shè)備對象,例如藍牙z-wavezigbee每個采用設(shè)備驅(qū)動程序的onvif協(xié)議。此外,設(shè)備制造商的非標準專有實現(xiàn)也可以通過該軟件框架來支持,并且在該通用的基于抽象的json的應(yīng)用配置文件中被呈現(xiàn)給客戶端。每個設(shè)備驅(qū)動程序具有暴露于框架的公共管理接口(m190)。軟件框架可以管理諸如驅(qū)動程序加載和卸載的設(shè)備驅(qū)動程序,通過該公共管理接口(m190)啟動設(shè)備發(fā)現(xiàn)過程。當從軟件框架接收到發(fā)現(xiàn)請求時,設(shè)備驅(qū)動程序?qū)⒏鶕?jù)它們自己的發(fā)現(xiàn)協(xié)議,例如藍牙或z波網(wǎng)絡(luò)掃描、upnpssdp、用于onvif攝像機的ws-發(fā)現(xiàn)來啟動設(shè)備發(fā)現(xiàn)過程。設(shè)備對象將是為每個新發(fā)現(xiàn)的設(shè)備生成并注冊到軟件框架。圖10是根據(jù)本發(fā)明的實施例的軟件框架在發(fā)現(xiàn)和注冊智能設(shè)備時執(zhí)行的動作的流程圖。軟件框架的處理模塊(m220)將調(diào)用(p10)設(shè)備驅(qū)動程序管理模塊(m230)內(nèi)的必需設(shè)備驅(qū)動程序(m232,m234)以發(fā)現(xiàn)所有連接的物聯(lián)網(wǎng)設(shè)備。根據(jù)發(fā)現(xiàn)請求(p12)發(fā)出,其網(wǎng)絡(luò)上的所有可用設(shè)備(m412,m416)根據(jù)標準連接協(xié)議響應(yīng)相應(yīng)的設(shè)備驅(qū)動程序(p16,p18)。設(shè)備驅(qū)動程序(m232,m234)將通過為軟件框架內(nèi)部創(chuàng)建和呈現(xiàn)設(shè)備對象(圖5中的m100)來將發(fā)現(xiàn)的設(shè)備(p20)注冊到軟件框架。每個設(shè)備對象包含該智能設(shè)備的應(yīng)用配置文件(圖5中的m110)。此應(yīng)用配置文件是一種json格式的文檔,其中包含有關(guān)智能設(shè)備及其操作的所有信息。圖11是描繪軟件框架如何提供智能設(shè)備的通用抽象接口的示例的模型圖。在軟件框架啟動之后,客戶端可以向軟件框架發(fā)送設(shè)備發(fā)現(xiàn)請求(p02),軟件框架處理模塊將向驅(qū)動器管理模塊內(nèi)的設(shè)備驅(qū)動程序發(fā)送該請求(p10)。驅(qū)動程序?qū)⑴c智能設(shè)備(m410)進行交互(p12和p16),以完成發(fā)現(xiàn)過程。一旦發(fā)現(xiàn),相應(yīng)的驅(qū)動器將發(fā)現(xiàn)的智能設(shè)備(p20)注冊到軟件框架作為設(shè)備對象(m100)。使用設(shè)備對象的通用格式,我們實現(xiàn)了具有相關(guān)服務(wù)的設(shè)備的統(tǒng)一表示。圖12是根據(jù)本發(fā)明的實施例的由客戶端應(yīng)用和軟件框架執(zhí)行的交互并控制智能設(shè)備動作的示例流程圖。在通過軟件框架的api接口(m300)接收到設(shè)備的應(yīng)用配置文件之后,外部世界中的客戶端應(yīng)用將文本消息(p50)中的動作api調(diào)用請求發(fā)送到框架的外部api接口(m300)。軟件框架然后將通過設(shè)備抽象接口(圖5中的m130)發(fā)送api調(diào)用數(shù)據(jù)到相應(yīng)的底層設(shè)備驅(qū)動程序(p52),其中api調(diào)用數(shù)據(jù)將被轉(zhuǎn)換為設(shè)備的硬件配置文件和設(shè)備對象內(nèi)的內(nèi)部實現(xiàn)。軟件框架將在內(nèi)部調(diào)用正確的驅(qū)動程序,就是說,z-wave驅(qū)動程序(m234),將這些api調(diào)用轉(zhuǎn)換成設(shè)備自己的控制協(xié)議,也就是說,z-wave協(xié)議與智能設(shè)備(m410)通信(p56)。在完成動作后,智能設(shè)備將確認或輸出數(shù)據(jù)(p58)發(fā)送回驅(qū)動器,然后依次發(fā)送到軟件框架的處理模塊(p60)和客戶端應(yīng)用程序(p62)。通過利用這種設(shè)計,我們有一個與外部世界的每種類型的設(shè)備的通用設(shè)備應(yīng)用配置文件。例如,燈泡將僅暴露開關(guān)應(yīng)用簡檔作為框架,則開關(guān)api調(diào)用數(shù)據(jù)可以通過其設(shè)備抽象接口(m130)發(fā)送到燈泡的設(shè)備對象。然后,這個開關(guān)api調(diào)用將被轉(zhuǎn)換為設(shè)備對象的硬件配置文件及其內(nèi)部實現(xiàn),無論它們基于什么通信協(xié)議。圖13是客戶端應(yīng)用程序執(zhí)行的檢索與設(shè)備對象相關(guān)聯(lián)的json模式文檔(m280)的動作的流程圖。在本發(fā)明所提供的一個實施例中,web服務(wù)api抽象層,統(tǒng)一xml或所有類型的數(shù)據(jù)到j(luò)son。設(shè)備驅(qū)動程序負責將接收到的數(shù)據(jù)轉(zhuǎn)換為json,使用json模式驗證api數(shù)據(jù)。使用httpurl應(yīng)用程序解析api數(shù)據(jù)模式的json指針,完整解析后的模式前端可見,可以創(chuàng)造出動態(tài)生成的表單和測試工具。統(tǒng)一的web服務(wù)api規(guī)范放在設(shè)備驅(qū)動程序里,可以是靜態(tài)文件,也可以從服務(wù)發(fā)現(xiàn)的結(jié)果里動態(tài)生成的。讓客戶端看到api規(guī)范后可以生成相應(yīng)的訪問代碼。在我們的發(fā)明中,如果其抽象api調(diào)用的任何參數(shù)是復(fù)雜類型,則每個設(shè)備對象必須攜帶與其應(yīng)用配置文件(圖5中的m110)一起的json模式文檔。當調(diào)用設(shè)備的抽象api(圖6中的m182a)時,復(fù)雜類型的實際數(shù)據(jù)可以是json數(shù)組或json對象。此json模式文檔(m280)包含設(shè)備抽象api(圖6中的m182a)公開的所有復(fù)雜類型數(shù)據(jù)的詳細定義。在設(shè)備的應(yīng)用配置文件(圖6中的m110)中,在“服務(wù)狀態(tài)表”(圖6中的m192)內(nèi)部,映射到設(shè)備的抽象api(m182a)的特定復(fù)雜類型參數(shù)的變量定義包括json指針字符串,它引用了json模式文檔(m280)中的子模式定義??蚣軐⒃谶\行時取消引用此json指針,以驗證復(fù)雜類型的輸入和輸出數(shù)據(jù)??蛻舳藨?yīng)用程序可以從框架的restfulapi接口(m310)檢索與該json指針相關(guān)聯(lián)的子模式定義,以用于預(yù)處理和驗證目的。例如,客戶端應(yīng)用程序可以根據(jù)變量的模式定義在其用戶界面上自動生成輸入表單。當處理設(shè)備操作api調(diào)用或事件更新數(shù)據(jù)時,軟件框架將根據(jù)其簡單的類型和模式定義驗證所有簡單和復(fù)雜的類型數(shù)據(jù)。圖14是根據(jù)本發(fā)明的由客戶端應(yīng)用程序,軟件框架在與智能設(shè)備進行事件訂閱和接收事件更新的交互中執(zhí)行動作的實例流程圖。在發(fā)現(xiàn)過程之后,設(shè)備對象將注冊到軟件框架??蛻舳藨?yīng)用程序可以通過調(diào)用軟件框架的事件訂閱api接口來訂閱(p80)設(shè)備事件更新。訂閱信息包含感興趣的設(shè)備和用于接收事件更新的訂戶的地址。在接收到事件訂閱請求之后,軟件框架將請求分派到各個設(shè)備對象。設(shè)備對象將向其設(shè)備驅(qū)動程序發(fā)送(p82)請求。在運行時間期間,如果從智能設(shè)備生成任何事件更新,則將事件數(shù)據(jù)(p84)發(fā)送到其設(shè)備驅(qū)動程序。在接收到事件數(shù)據(jù)后,設(shè)備驅(qū)動程序?qū)⒄{(diào)度(p86)到由軟件框架管理的設(shè)備對象。軟件框架將比較新事件數(shù)據(jù)與設(shè)備對象的內(nèi)部緩存值,其可以從先前的動作調(diào)用或事件更新中獲取。如果有變化,軟件框架將向其訂閱者廣播(p88)事件更新。此外,如果動作api調(diào)用改變?nèi)纭胺?wù)狀態(tài)表”(圖6中的m192)中定義的任何設(shè)備狀態(tài),軟件框架將會意識到這一點,因為它將這些狀態(tài)緩存在其存儲器內(nèi)。在這種情況下,軟件框架還向其訂戶廣播事件更新。盡管本文已經(jīng)描述了本發(fā)明的優(yōu)選實施例,但是本領(lǐng)域技術(shù)人員將理解,在不脫離本發(fā)明的精神或所附權(quán)利要求的范圍的情況下,可以對其進行變化。當前第1頁12當前第1頁12
      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1