• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向個人自組織網(wǎng)絡(luò)的硬件資源管理①

      2016-02-20 06:51:24方亞芬梁冠宇賀也平
      關(guān)鍵詞:間通信鼠標(biāo)進(jìn)程

      方亞芬, 梁冠宇, 賀也平

      1(中國科學(xué)院軟件研究所 基礎(chǔ)軟件國家工程研究中心, 北京 100190)2(中國科學(xué)院軟件研究所 總體部, 北京 100190)3(中國科學(xué)院大學(xué), 北京 100190)

      面向個人自組織網(wǎng)絡(luò)的硬件資源管理①

      方亞芬1,3, 梁冠宇2, 賀也平1

      1(中國科學(xué)院軟件研究所 基礎(chǔ)軟件國家工程研究中心, 北京 100190)2(中國科學(xué)院軟件研究所 總體部, 北京 100190)3(中國科學(xué)院大學(xué), 北京 100190)

      隨著各類智能終端的普及, 多屏互動等跨設(shè)備使用硬件資源的應(yīng)用不斷涌現(xiàn), 對硬件資源管理的跨平臺性和交互擴(kuò)展性提出了更高的要求. 然而, 當(dāng)前針對硬件資源共享的應(yīng)用大多是缺少交互性的跨設(shè)備投影鏡像技術(shù), 或者只是相互獨(dú)立的簡單應(yīng)用, 面向的平臺、硬件資源類型單一, 難以靈活有效地應(yīng)對新增需求. 針對這一問題, 研究了個人自組織網(wǎng)絡(luò)環(huán)境下多設(shè)備的硬件資源(鍵盤、鼠標(biāo)、攝像頭等)的管理調(diào)配, 并提出一個具有良好跨平臺性、可擴(kuò)展性的應(yīng)用框架, 使得設(shè)備能夠像使用本機(jī)硬件一樣使用其他設(shè)備上的硬件資源, 借此方便用戶對其多個設(shè)備進(jìn)行管理控制. 該框架包括設(shè)備間通信和硬件資源管理兩層, 前者提供信息傳輸服務(wù), 保證實(shí)時通信, 后者負(fù)責(zé)管理可以訪問到所有硬件資源, 并提供資源申請、使用和狀態(tài)改變通知等功能, 極大地方便了跨設(shè)備應(yīng)用的開發(fā).

      個人自組織網(wǎng)絡(luò); 多設(shè)備; 硬件資源管理; 進(jìn)程間通信; 應(yīng)用框架

      傳統(tǒng)定義的自組織網(wǎng)絡(luò)(Ad hoc)是一種無中心,自組織、自愈的網(wǎng)絡(luò), 是不需要依靠現(xiàn)有固定通信網(wǎng)絡(luò)基礎(chǔ)設(shè)施的、能夠迅速展開使用的網(wǎng)絡(luò)體系, 各個網(wǎng)絡(luò)節(jié)點(diǎn)相互協(xié)作、通過無線鏈路進(jìn)行通信、交換信息, 實(shí)現(xiàn)信息和服務(wù)的共享. 而個人自組織網(wǎng)絡(luò), 并不局限于無線網(wǎng)絡(luò), 是以有線或無線方式組織的局域網(wǎng)絡(luò), 屬于P2P網(wǎng)絡(luò), 針對家庭或工作局域網(wǎng)中一個或多個用戶擁有的設(shè)備, 網(wǎng)絡(luò)中的設(shè)備無需配置即可實(shí)現(xiàn)互聯(lián)互通.

      傳統(tǒng)的資源管理一般針對互聯(lián)網(wǎng)中聚集的計(jì)算資源、存儲資源[1]等, 而個人自組織網(wǎng)絡(luò)中管理的是鍵盤、鼠標(biāo)、顯示設(shè)備等可供利用的硬件資源, 基于此也產(chǎn)生了很多應(yīng)用. 比如美國蘋果公司推出的無線技術(shù)Airplay, 多屏交互應(yīng)用WiFi-Display, 開源技術(shù)Openflint, 還有用于跨設(shè)備使用鍵盤、鼠標(biāo)的synergy和微軟的無界鼠標(biāo). 其中, Airplay使得同一局域網(wǎng)內(nèi)蘋果系列的設(shè)備(iPhone、iPad、iPod touch 等)可以將內(nèi)容(照片、音頻、視頻流)傳送到目標(biāo)屏幕上, 以實(shí)現(xiàn)同步播放音樂、視頻等功能, 目前已經(jīng)有越來越多的第三方設(shè)備支持Airplay功能[2]. 與Airplay相似的, 還有基于WiFi連接的多屏交互技術(shù)WiFi-Display, 它可以實(shí)現(xiàn)手機(jī)/移動PC-電視/顯示器的無線連接, 在無線設(shè)備與高清顯示屏之間實(shí)現(xiàn)可靠、對等的高清視頻與音頻流傳輸[3]. 支持在多設(shè)備間發(fā)現(xiàn)、啟動以及通信的開源技術(shù)——Openflint, 目前支持Android、iOS、web, FireFox OS的開發(fā), 開發(fā)人員可以基于該技術(shù), 充分利用多個設(shè)備的資源以實(shí)現(xiàn)很多有趣的多屏互動應(yīng)用[4]. 可以在多臺計(jì)算機(jī)之間共用鍵盤、鼠標(biāo)的應(yīng)用synergy, 支持Linux、Windows和Mac OS X系統(tǒng). 類似地, 微軟也推出了無界鼠標(biāo)應(yīng)用, 但是只支持Windows系統(tǒng).

      跨設(shè)備使用硬件資源的應(yīng)用和技術(shù)層出不窮, 體現(xiàn)了對設(shè)備間硬件資源共享的需求. 然而, 類似上述實(shí)例, 它們針對的應(yīng)用場景相對局限, 且在跨平臺性、針對的硬件資源種類以及透明交互的支持性上都有一定的不足. 其中, Airplay和WiFi-Display分別針對蘋果系列設(shè)備和Andriod設(shè)備, 面向平臺單一, 二者主要針對聲音、視頻、圖片等輸出, 互聯(lián)設(shè)備之間缺少交互性. 開源技術(shù)Openflint針對多屏互動推出了一些應(yīng)用,這些應(yīng)用主要針對聲卡、顯卡的使用, 且應(yīng)用互相獨(dú)立, 設(shè)備間交互與應(yīng)用自身緊耦合, 新應(yīng)用的開發(fā)需要涵蓋底層數(shù)據(jù)通信和上層應(yīng)用自身的所有功能. 跨設(shè)備使用鍵盤、鼠標(biāo)的應(yīng)用synergy和微軟的無界鼠標(biāo),都只是針對局域網(wǎng)中鼠標(biāo)、鍵盤這兩類硬件資源, 且synergy使用前需要手動配置待交互的設(shè)備, 用戶體驗(yàn)較差, 無界鼠標(biāo)只是針對微軟的產(chǎn)品, 跨平臺性不好.隨著各類智能終端的普及, 家庭或工作局域網(wǎng)中可供使用的硬件資源越來越豐富, 硬件資源的共享不應(yīng)再局限于單一平臺、單一應(yīng)用, 上述技術(shù)多是聚焦于某一方面, 針對新增的需求體現(xiàn)出開發(fā)不夠靈活、不夠高效等局限性. 本文針對這一現(xiàn)象, 研究個人自組織網(wǎng)絡(luò)中各種終端節(jié)點(diǎn)的可用資源(鍵盤、鼠標(biāo)、打印機(jī)等)的統(tǒng)一管理, 旨在提供一個支持多種硬件資源、跨平臺且方便交互和功能擴(kuò)展的應(yīng)用框架, 為多設(shè)備環(huán)境中的整體硬件資源提供統(tǒng)一的管理調(diào)度平臺, 并為上層的多屏互動[5-9]應(yīng)用等提供底層支持. 鑒于個人自組織網(wǎng)絡(luò)自身的特點(diǎn), 該應(yīng)用框架需要解決通信的實(shí)時性、信息一致性維護(hù)、跨平臺性、安全性等方面的問題. 接下來, 本文將針對這些問題做詳細(xì)介紹.

      1 總體設(shè)計(jì)

      個人自組織網(wǎng)絡(luò)作為一個范圍相對較小的對等網(wǎng)絡(luò), 對硬件資源的統(tǒng)一管理主要面臨有以下四個方面的挑戰(zhàn):

      1) 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)動態(tài)變化

      各類終端通過網(wǎng)絡(luò)連接, 網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)可能隨時發(fā)生變化, 這就需要及時發(fā)現(xiàn)網(wǎng)絡(luò)中的上/下線的設(shè)備, 并將更新的信息及時反饋到各個終端, 保證通信的實(shí)時性.

      2) 信息一致性維護(hù)

      在個人自組織網(wǎng)絡(luò)中, 沒有控制中心, 網(wǎng)絡(luò)中的各節(jié)點(diǎn)沒有主要和次要之分. 各個設(shè)備共享該網(wǎng)絡(luò)中所有設(shè)備的資源信息, 并根據(jù)自身硬件資源狀態(tài)響應(yīng)其他節(jié)點(diǎn)的硬件資源服務(wù)請求, 這就涉及到信息一致性維護(hù)的問題.

      3) 節(jié)點(diǎn)異構(gòu)

      個人自組織網(wǎng)絡(luò)中終端設(shè)備多樣, 例如筆記本、智能手機(jī)、平板電腦、智能電視等, 不同設(shè)備的系統(tǒng)類型和自身的處理能力也有很大區(qū)別, 相應(yīng)地, 硬件資源管理需要具有較高的可擴(kuò)展性、跨平臺性.

      4) 安全性

      鑒于網(wǎng)絡(luò)中終端設(shè)備多樣, 且移動終端電源有限,無法實(shí)現(xiàn)復(fù)雜的加密算法. 如何在該對等網(wǎng)絡(luò)下實(shí)現(xiàn)點(diǎn)對點(diǎn)的身份認(rèn)證并保證安全通信, 也是亟待解決的問題.

      針對以上幾點(diǎn)問題, 本文研究并實(shí)現(xiàn)了一種面向個人自組織網(wǎng)絡(luò)的硬件資源管理框架, 該框架位于網(wǎng)絡(luò)中各個節(jié)點(diǎn)的操作系統(tǒng)內(nèi)核之上, 屬于應(yīng)用框架層的一部分, 框架分為兩部分: 設(shè)備間通信和硬件資源管理. 其總體架構(gòu)如圖1所示.

      圖1 系統(tǒng)總體框圖

      在該框架中, 設(shè)備間通信模塊包括設(shè)備發(fā)現(xiàn)子模塊用于發(fā)現(xiàn)個人自組織網(wǎng)絡(luò)下的多個設(shè)備并提供設(shè)備IP等基本信息, 還負(fù)責(zé)不同設(shè)備組件間進(jìn)行遠(yuǎn)程交互,以及不同設(shè)備間組件的數(shù)據(jù)交換, 該模塊隱藏了底層通信實(shí)現(xiàn)細(xì)節(jié), 對外暴露簡單的通信接口, 為硬件資源管理模塊提供信息傳輸服務(wù), 保證實(shí)時通信, 通過身份認(rèn)證和簽名的方式保證數(shù)據(jù)可信性, 通過數(shù)據(jù)加密方式保證數(shù)據(jù)機(jī)密性; 硬件資源管理模塊負(fù)責(zé)管理可以訪問到所有設(shè)備資源, 并提供資源申請和使用的接口, 提供設(shè)備狀態(tài)改變通知等功能. 結(jié)合這兩個模塊, 為即時通信、多屏互動等相關(guān)應(yīng)用提供底層支持.接下來本文將對設(shè)備間通信和硬件資源管理兩部分做詳細(xì)介紹.

      2 硬件資源管理

      2.1 設(shè)備間通信

      個人自組織網(wǎng)絡(luò)中的終端設(shè)備多樣, 不同設(shè)備的系統(tǒng)類型和自身的處理能力也有很大區(qū)別. 不同系統(tǒng)平臺提供了不同的進(jìn)程間通信方式, 如Linux下的D-Bus[10]、Android下的Binder[11]等, 且不同平臺的數(shù)據(jù)通信在數(shù)據(jù)格式、編碼方式等方面也各有特點(diǎn). 智能手機(jī)、平板等移動設(shè)備多以無線的方式互相連接,網(wǎng)絡(luò)信號不夠強(qiáng)且不穩(wěn)定, 這就要求設(shè)備間通信能夠做到傳輸數(shù)據(jù)的盡量壓縮, 方便解析, 以加快通信速度, 減少響應(yīng)時間. 移動設(shè)備以電池這樣的易耗盡能源作為電源, 其CPU性能較低, 內(nèi)存較小, 存儲資源有限, 難以支持復(fù)雜的加密算法, 這就要求設(shè)備間通信能夠在保證通信安全的同時做到靈活且簡單的數(shù)據(jù)加密.

      基于上述要求, 本文將通信模塊分為設(shè)備發(fā)現(xiàn)和通信兩部分. 其中, 設(shè)備發(fā)現(xiàn)是設(shè)備間通信的子模塊,也是設(shè)備間通信的前提, 用于發(fā)現(xiàn)連入個人自組織網(wǎng)絡(luò)中的設(shè)備, 監(jiān)控主機(jī)上下線, 并提供設(shè)備的基本信息[13,14]. 為兼顧不同平臺的進(jìn)程間通信, 本文設(shè)計(jì)并實(shí)現(xiàn)了一個統(tǒng)一的通信適配層, 支持跨平臺訪問, 隱藏通信實(shí)現(xiàn)細(xì)節(jié), 為上層通信提供調(diào)用接口, 保證實(shí)時通信. 進(jìn)程間通信的設(shè)計(jì)細(xì)節(jié)將在第3節(jié)詳細(xì)介紹.

      為壓縮傳輸數(shù)據(jù), 加快數(shù)據(jù)格式化和解析速度,以減少通信占用帶寬和響應(yīng)時間, 本文采用google提供的ProtoBuf作為數(shù)據(jù)交換格式. ProtoBuf是一種獨(dú)立于語言、平臺, 可擴(kuò)展的序列化結(jié)構(gòu)化數(shù)據(jù)的方式,它采用二進(jìn)制數(shù)據(jù)傳輸格式, 壓縮方便, 解析速度快,非常適合異構(gòu)環(huán)境下的數(shù)據(jù)通信[15,16]. 當(dāng)前比較流行的數(shù)據(jù)存儲方式或序列化工具相比, ProtoBuf在序列化和反序列化時間以及序列化后數(shù)據(jù)壓縮比率上有著明顯優(yōu)勢, 其對比圖分別見圖2和圖3.

      圖2 序列化時間對比

      圖3 序列化后數(shù)據(jù)大小對比

      在通信通道建立時通過數(shù)字簽名認(rèn)證接口保證通信雙方的可信性[17,18]. 此外, 通信層還提供數(shù)據(jù)加密接口, 可以方便靈活修改數(shù)據(jù)加密方式以保證通信的機(jī)密性.

      2.2 資源管理

      硬件資源管理模塊, 以守護(hù)進(jìn)程的形式運(yùn)行在每一臺設(shè)備上, 提供硬件資源信息查詢、硬件資源申請和使用、資源狀態(tài)改變通知的功能.

      2.2.1 資源描述

      通過對個人自組織網(wǎng)絡(luò)中的各類設(shè)備涵蓋的硬件資源進(jìn)行概括抽象, 將設(shè)備的硬件資源分為輸入設(shè)備、輸出設(shè)備、硬盤、設(shè)備連接的打印機(jī). 圖4展示了硬件資源管理模塊管理的資源分類情況.

      圖4 系統(tǒng)總體框圖

      本文提出并制定了一種特有的硬件資源描述方法,該方法通過遞歸定義, 統(tǒng)一各層硬件資源的描述格式,方便硬件資源的擴(kuò)展和解析.

      各層的硬件資源的描述信息都包括資源的靜態(tài)描述信息和資源的詳細(xì)信息detail, 圖4中最下層的硬件資源(鍵盤、硬盤、打印機(jī)、顯示輸出等)的描述信息還包括標(biāo)識該資源是否可用的狀態(tài)信息state. 靜態(tài)描述信息包括資源類型type(該設(shè)備中資源類型的唯一標(biāo)識)、資源名稱name、和資源描述附加信息desc. 硬件資源的詳細(xì)信息detail記錄該類資源的信息詳情. 資源狀態(tài)信息state根據(jù)該資源是否被某一設(shè)備占用而動態(tài)變化, 并以此來限制其他設(shè)備對該資源的使用. 以圖3為例, 該設(shè)備的硬件資源(type)hardResource的資源名稱(name)為hard Resource, 資源附加描述信息(desc)為hard resource info, 資源的詳細(xì)信息detail包含了hardResource類別下的硬件資源信息, 即圖5中打印機(jī)信息. 打印機(jī)這一硬件資源的描述信息同樣包括靜態(tài)描述信息, 即類別(type)printer、名稱(name)printer info、附加信息(desc)printer of the device, 還包括資源詳細(xì)信息(detail). 打印機(jī)的資源狀態(tài)信息(state)為0表示該打印機(jī)未被占用. 其信息詳情detail以數(shù)組的形式記錄了該設(shè)備所連接的打印機(jī)詳細(xì)信息, 圖5表明該設(shè)備僅連接了一臺打印機(jī), 具體信息包括打印機(jī)的名稱name、是否為該設(shè)備的默認(rèn)打印機(jī)isDefault、打印機(jī)是否正在使用status、打印機(jī)的uri即device-uri、打印機(jī)狀態(tài)更新時間printer-state-change-time.

      硬件資源管理模塊中待管理的資源以樹形結(jié)構(gòu)存儲于配置文件中, 擴(kuò)展方便. 各層硬件資源采用一致的描述格式, 方便了對不同層級的硬件資源信息進(jìn)行統(tǒng)一或遞歸式地解析.

      圖5 打印機(jī)的描述信息

      2.2.2 資源信息獲取

      硬件資源管理模塊啟動時收集本機(jī)的硬件資源信息, 并生成準(zhǔn)確的描述信息(如屏幕尺寸、分辨率等等),初始化共享信息列表.

      設(shè)備加入個人自組織網(wǎng)絡(luò)的大致流程如圖6所示,當(dāng)一臺式機(jī)設(shè)備上線(加入設(shè)備集群, 圖6的①)時, 組播自身的設(shè)備信息通知所有可達(dá)的設(shè)備, 進(jìn)行共享信息列表同步, 集群中其他設(shè)備(智能手機(jī)、筆記本電腦等)的硬件資源信息列表也得到更新(圖6的②); 該設(shè)備在線期間, 對應(yīng)設(shè)備的硬件資源狀態(tài)有所變化時,會向網(wǎng)絡(luò)中其他設(shè)備發(fā)送該變化信息, 對應(yīng)設(shè)備的應(yīng)用進(jìn)程會收到相應(yīng)的事件通知(圖6的③). 該設(shè)備下線(離開集群)時, 集群中的其他設(shè)備會收到其下線通知,更新自身的設(shè)備列表和硬件資源信息列表(圖6的②).在個人自組織網(wǎng)絡(luò)中, 各設(shè)備皆維護(hù)一個全局資源共享列表, 這就涉及到分布式環(huán)境下的數(shù)據(jù)一致性問題.本文參考經(jīng)典的Paxos[19]算法, 針對硬件資源管理下的場景需求進(jìn)行了必要的優(yōu)化, 最終解決數(shù)據(jù)一致性問題, 這部分將在第3節(jié)詳細(xì)介紹.

      2.2.3 資源申請和使用

      資源申請和使用的一般流程為: 應(yīng)用進(jìn)程首先申請使用某個設(shè)備資源(非本機(jī)), 通過權(quán)限審核等相關(guān)操作后, 完成數(shù)據(jù)流通道的建立并返回相應(yīng)的數(shù)據(jù)流對象, 之后應(yīng)用進(jìn)程通過數(shù)據(jù)交互使用硬件設(shè)備資源.以視頻輸出設(shè)備為例, 整體過程如圖7所示, 具體步驟如下:

      圖6 設(shè)備加入集群流程圖

      圖7 設(shè)備加入集群流程圖

      1) 設(shè)備A的應(yīng)用進(jìn)程A-1申請使用設(shè)備B的屏幕作為輸出設(shè)備, 通過本地進(jìn)程間通信(以下簡稱IPC)經(jīng)通信守護(hù)進(jìn)程(Communication-Daemon, 以下簡稱為CD)提交申請請求, 若設(shè)備B對應(yīng)顯示器資源空閑且進(jìn)程A-1滿足申請條件(權(quán)限等), 則設(shè)備B返回同意申請響應(yīng), 則依次完成步驟2)3)4)5), 并基于改進(jìn)的Paxos算法同步集群資源狀態(tài), 否則則返回拒絕申請的響應(yīng);

      2) 設(shè)備A的硬件資源管理進(jìn)程通過數(shù)據(jù)傳輸進(jìn)程(DataTransfer, 以下簡稱為DT)完成設(shè)備間的數(shù)據(jù)流(stream1)通道建立;

      3) 對等節(jié)點(diǎn)設(shè)備B的硬件資源管理進(jìn)程收到設(shè)備A應(yīng)用程序的申請請求, 建立DT進(jìn)程到視頻輸出進(jìn)程的數(shù)據(jù)流(stream2)通道, 并連接stream1和stream2;

      4) 設(shè)備A建立應(yīng)用進(jìn)程A-1和DT的數(shù)據(jù)流(stream3)通道, 并連接stream1和stream3;

      5) 設(shè)備A返回stream3對象給應(yīng)用進(jìn)程A-1, 應(yīng)用進(jìn)程將產(chǎn)生的視頻數(shù)據(jù)輸入stream3, 即可由另一臺設(shè)備的視頻輸出進(jìn)程處理, 并輸出至屏幕.

      3 關(guān)鍵實(shí)現(xiàn)技術(shù)

      3.1 通信設(shè)計(jì)

      通信模塊的設(shè)計(jì)需要兼顧不同平臺的適用性, 并提供一定的安全機(jī)制以確保通信的安全性.

      常用的幾種進(jìn)程間通信方式有管道、消息隊(duì)列、信號量、共享內(nèi)存、套接字等, 不同平臺也有不同的實(shí)現(xiàn)方式. Linux下的D-Bus作為應(yīng)用程序間通信的消息總線系統(tǒng), 通過提供事務(wù)處理機(jī)制, 允許程序在其上注冊并為其他程序提供服務(wù)[10]. Android下的IPC基于Binder, Binder是一種C/S的架構(gòu), 客戶端可以通過同一臺設(shè)備的本地進(jìn)程間通信的方式, 也可以通過多個設(shè)備之間的套接字連接, 獲得服務(wù)的代理接口, 直接調(diào)用服務(wù)提供的方法[11,12]. 本文設(shè)計(jì)并實(shí)現(xiàn)了一個統(tǒng)一的通信適配層, 兼容Linux、Android等多個系統(tǒng)平臺, 支持跨平臺訪問, 隱藏通信實(shí)現(xiàn)細(xì)節(jié), 為上層通信提供調(diào)用接口, 保證實(shí)時通信.

      本文設(shè)計(jì)并實(shí)現(xiàn)的設(shè)備間通信如圖8所示, 主要由三部分組成: 基于代理-存根(Proxy-Stub)模式的進(jìn)程通信框架, RPC通信守護(hù)進(jìn)程, 數(shù)據(jù)交換守護(hù)進(jìn)程.

      圖8 設(shè)備加入集群流程圖

      1) 基于代理-存根(Proxy-Stub)模式的進(jìn)程通信框架, 將自己的對外接口定義在存根模塊中, 同時定義對應(yīng)的代理模塊. 當(dāng)該進(jìn)程啟動后, 框架機(jī)制會確保將存根的接口發(fā)布在當(dāng)前運(yùn)行平臺的IPC組件中, 其他進(jìn)程可以通過框架提供方法獲取目標(biāo)進(jìn)程的代理模塊, 或者使用當(dāng)前平臺本身的提供的方法獲得目標(biāo)進(jìn)程的接口. 因此, 基于此框架實(shí)現(xiàn)的進(jìn)程完全兼容其他一般進(jìn)程, 框架只是隱藏了底層復(fù)雜的機(jī)制, 通過接口調(diào)用即可實(shí)現(xiàn)IPC. 圖8中進(jìn)程A-1、進(jìn)程A-2、進(jìn)程B-1、進(jìn)程C-1等均是這種進(jìn)程.

      2) RPC(遠(yuǎn)程過程調(diào)用)通信守護(hù)進(jìn)程, 即圖8中的Communication-Daemon(簡稱CD), 是基于上述框架實(shí)現(xiàn)的進(jìn)程, 在每臺設(shè)備上都唯一的運(yùn)行著該進(jìn)程, 設(shè)備間通過該守護(hù)進(jìn)程實(shí)現(xiàn)對等通信, 需要跨設(shè)備通信的進(jìn)程僅僅需要通過CD的代理模塊調(diào)用相應(yīng)的接口即可. 這樣實(shí)現(xiàn)有以下好處:

      ① 限制唯一的RPC進(jìn)出口, 方便實(shí)現(xiàn)安全驗(yàn)證機(jī)制;

      ② 每兩臺設(shè)備間僅僅維護(hù)一條通信鏈路, 降低開銷;

      ③ 每個進(jìn)程不必單獨(dú)實(shí)現(xiàn)連接其他設(shè)備的功能,實(shí)現(xiàn)了功能復(fù)用.

      3) 數(shù)據(jù)交換守護(hù)進(jìn)程, 即圖8中的DataTransfer(簡稱DT), 同樣基于上述框架實(shí)現(xiàn), 在每臺設(shè)備上唯一運(yùn)行著一個進(jìn)程, 通過該進(jìn)程可以實(shí)現(xiàn)設(shè)備間點(diǎn)對點(diǎn)的數(shù)據(jù)交換, 并以提供數(shù)字簽名的方式保證傳輸數(shù)據(jù)的可信性. 客戶進(jìn)程(如進(jìn)程A-2)通過DT的接口建立并獲得一個數(shù)據(jù)流對象, 之后對數(shù)據(jù)流對象進(jìn)行操作實(shí)現(xiàn)設(shè)備間進(jìn)程的數(shù)據(jù)交換. 考慮到這兩種數(shù)據(jù)連接不同的性質(zhì), 適用不同的應(yīng)用場景, CD的消息通常比較簡短同時需要較快的響應(yīng)速度,而DT通常會長時間占用連接通道, 因而將DT從CD中分離.

      3.2 資源狀態(tài)一致性維護(hù)

      在個人自組織網(wǎng)絡(luò)中, 各個設(shè)備維護(hù)該網(wǎng)絡(luò)中所有設(shè)備的資源列表, 并依據(jù)本機(jī)硬件資源狀態(tài)響應(yīng)資源申請請求. 本文通過對Paxos算法進(jìn)行優(yōu)化, 以保證多設(shè)備中硬件資源信息一致性, 提供資源服務(wù).

      Paxos算法是Lamport于1990年提出的一種基于消息傳遞的一致性算法, 旨在解決一個分布式系統(tǒng)如何就某個值(決議)達(dá)成一致的問題[19,20]. 基于Paxos算法, 本文對資源狀態(tài)一致性維護(hù)有兩大原則:

      1) 安全原則, 即不能做錯的事. 只能有一個值被批準(zhǔn), 不能出現(xiàn)第二個值把第一個覆蓋的情況; 每個節(jié)點(diǎn)只能學(xué)習(xí)到已經(jīng)被批準(zhǔn)的值, 不能學(xué)習(xí)沒有被批準(zhǔn)的值. Paxos算法中通過為分布式環(huán)境中的節(jié)點(diǎn)提交的請求賦予一個ID, 并根據(jù)ID排序, 批準(zhǔn)優(yōu)先級高的值, 拒絕排序在后的, 進(jìn)而保證安全一致性.

      本文基于請求到達(dá)時間確定優(yōu)先級, 本著先來先服務(wù)的原則提供硬件資源服務(wù). 應(yīng)用進(jìn)程申請使用某個設(shè)備(非本機(jī))硬件資源時, 設(shè)備硬件資源管理模塊首先檢查該設(shè)備及應(yīng)用的權(quán)限, 若滿足申請要求, 則將申請請求加入硬件資源請求隊(duì)列, 由硬件資源管理模塊逐一處理請求, 被請求的資源空閑則返回同意申請的響應(yīng), 并通知所有在線設(shè)備該資源狀態(tài)改變?yōu)楸徽加? 得到申請通過響應(yīng)的應(yīng)用會與對應(yīng)設(shè)備間完成數(shù)據(jù)流通道的建立, 得到相應(yīng)的數(shù)據(jù)流對象, 進(jìn)行資源使用, 該過程如圖9所示.

      圖9 硬件資源申請和使用流程圖

      2) 存活原則, 只要有多數(shù)服務(wù)器存活并且彼此間可以通信, 終會批準(zhǔn)某個被提議的值, 而且其他服務(wù)器最終會學(xué)習(xí)到這個值.

      本文目前研究的內(nèi)容中, 硬件資源服務(wù)請求者主動選擇對應(yīng)設(shè)備提供硬件資源服務(wù), 而服務(wù)提供者設(shè)備作為唯一決策者決定是否提供硬件資源服務(wù), 硬件資源狀態(tài)改變后以消息通知的形式通知到個人自組織網(wǎng)絡(luò)中互聯(lián)互通的設(shè)備.

      在未來研究中, 可以根據(jù)網(wǎng)絡(luò)中各個節(jié)點(diǎn)的性能選舉出一個或多個中心節(jié)點(diǎn), 采用中心節(jié)點(diǎn)輔助控制與對等網(wǎng)絡(luò)相結(jié)合的方式, 由中心節(jié)點(diǎn)依據(jù)應(yīng)用需要以及各個節(jié)點(diǎn)上硬件資源的特點(diǎn)自主決定哪些設(shè)備更適合提供服務(wù). 此時, 選擇提供服務(wù)的設(shè)備所需要的決策者不止一個, 根據(jù)安全和存活原則, 增加服務(wù)的自主選擇能力.

      4 實(shí)驗(yàn)

      本文的實(shí)驗(yàn)環(huán)境是2臺臺式機(jī)和1臺智能手機(jī),其環(huán)境配置如下.

      臺式機(jī): 4GB內(nèi)存、100GB以上硬盤存儲、4核心處理器(型號: Intel(R) Core(TM) i5-2400 CPU @3.10GHz), Linux Mint 17 32-bit的操作系統(tǒng), 還需安裝NodeJS(0.10.29)和python(2.7.6)、Java 1.7.0_65、android-21開發(fā)環(huán)境.

      移動端: 型號Nexus 6, 3GB內(nèi)存, 26GB存儲空間,四核心處理器, Android 5.0系統(tǒng)環(huán)境.

      硬件資源管理系統(tǒng)基于NodeJS實(shí)現(xiàn), NodeJS是一個Javascript運(yùn)行環(huán)境(runtime), 支持跨平臺開發(fā), 使用事件驅(qū)動、非阻塞I/O模型而得以輕量和高效, 非常適合在分布式設(shè)備上運(yùn)行的數(shù)據(jù)密集型的實(shí)時應(yīng)用.界面實(shí)現(xiàn)使用html5、css3、JS等技術(shù), 具有良好的跨平臺性, 支持跨設(shè)備瀏覽器訪問. 本文以鼠標(biāo)和鍵盤為例, 采用python提供的第三方庫virtkey、Xlib等實(shí)現(xiàn)對鼠標(biāo)和鍵盤事件的捕獲和模擬, 由NodeJS實(shí)現(xiàn)對鼠標(biāo)、鍵盤資源請求的控制和事件的傳輸, 并根據(jù)解析得到的事件信息調(diào)用python接口模擬鼠標(biāo)、鍵盤事件, 實(shí)現(xiàn)了跨設(shè)備使用鼠標(biāo)、鍵盤.

      4.1 功能

      本文實(shí)現(xiàn)的硬件資源管理系統(tǒng)根據(jù)不同平臺進(jìn)行通信層的適配, 適用于Linux、Andriod等多個系統(tǒng), 具有良好的跨平臺型, 硬件資源類型和硬件資源服務(wù)都具有良好的可擴(kuò)展性, 進(jìn)程間通信模塊提供數(shù)據(jù)加密接口以保證數(shù)據(jù)機(jī)密性, 硬件資源管理模塊數(shù)據(jù)流傳輸中加入簽名信息以保證數(shù)據(jù)可信性. 實(shí)驗(yàn)中直接調(diào)用硬件資源管理模塊提供的接口來實(shí)現(xiàn)上層應(yīng)用, 極大地節(jié)省了開發(fā)時間.

      在資源列表展示上, 本文實(shí)驗(yàn)提供一個可視界面用于顯示個人自組織網(wǎng)絡(luò)環(huán)境中各臺主機(jī)設(shè)備的硬件資源, 實(shí)時監(jiān)控到設(shè)備上/下線情況, 及時更新硬件資源狀態(tài)信息, 詳情如圖10所示.

      圖10 硬件資源信息展示

      在資源使用上, 實(shí)驗(yàn)效果示意圖如圖11所示.

      圖11 跨設(shè)備使用鍵盤鼠標(biāo)示意圖

      4.1 性能

      本文實(shí)現(xiàn)的硬件資源管理系統(tǒng)通過采用ProtoBuf的二進(jìn)制數(shù)據(jù)編碼機(jī)制, 數(shù)據(jù)壓縮比例約為64.37%,減少了網(wǎng)絡(luò)帶寬的占用. 本地資源管理數(shù)據(jù)的響應(yīng)時間在15ms至22ms之間, 平均響應(yīng)時間約17.4ms, 個人自組織網(wǎng)絡(luò)中跨設(shè)備硬件資源數(shù)據(jù)請求的響應(yīng)時間在28ms至45ms之間, 平均響應(yīng)時間約為34.46ms, 滿足實(shí)時通信對用戶體驗(yàn)的要求(根據(jù)2-5-10原則, 2s以內(nèi)得到響應(yīng), 用戶體驗(yàn)較好).

      與現(xiàn)在市場流行的硬件資源方面的技術(shù)或應(yīng)用(AirPlay、Openflint、Synergy、無界鼠標(biāo)等)相比, 本文研究的硬件資源管理系統(tǒng)(Resource-Manager)優(yōu)劣對比見表1和表2.

      表1 支持平臺對比

      表2 支持硬件資源種類對比

      由兩張表可以看出, 本文研究的硬件資源管理應(yīng)用框架可以支持多種硬件資源, 在跨平臺性上也有較大優(yōu)勢. 除此之外, 該框架還包括一個統(tǒng)一的通信適配層, 方便跨平臺交互訪問, 隱藏通信實(shí)現(xiàn)細(xì)節(jié), 為上層各類應(yīng)用的通信提供調(diào)用接口, 保證實(shí)時交互.最終, 本文提供了一個硬件視圖顯示層以提供局域網(wǎng)中的所管理的硬件信息的可視窗口, 以及硬件資源使用接口以方便對多個設(shè)備的硬件資源進(jìn)行統(tǒng)一管理調(diào)配.

      鑒于研究內(nèi)容只針對個人自組織網(wǎng)路環(huán)境, 因此管理服務(wù)目前只面向局域網(wǎng). 通過利用該框架, 開發(fā)者很方便地獲得設(shè)備的硬件資源信息, 實(shí)現(xiàn)跨設(shè)備硬件資源共享, 加快了多屏互動等應(yīng)用的開發(fā)速度.

      5 總結(jié)

      當(dāng)前智能終端設(shè)備不斷豐富, 局域網(wǎng)下可供利用的硬件資源越來越多, 由此也衍生出很多共享設(shè)備間硬件資源的應(yīng)用. 但是目前存在的大多是缺少交互性的跨設(shè)備投影鏡像技術(shù), 或者只是相互獨(dú)立的簡單應(yīng)用, 且其適用的平臺單一有限, 難以靈活適應(yīng)新增需求. 本文針對這一現(xiàn)象, 通過對個人自組織網(wǎng)絡(luò)環(huán)境下的多設(shè)備的硬件資源管理進(jìn)行研究, 設(shè)計(jì)并實(shí)現(xiàn)了一個支持多種硬件資源、跨平臺且方便交互和功能擴(kuò)展的應(yīng)用框架. 該框架通過設(shè)備發(fā)現(xiàn)監(jiān)控網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動態(tài)變化, 并結(jié)合涵蓋認(rèn)證和加密機(jī)制的設(shè)備間通信實(shí)現(xiàn)安全的實(shí)時交互、維護(hù)信息一致性. 此外, 框架提供一個統(tǒng)一的適配層, 透明化實(shí)現(xiàn)細(xì)節(jié), 隱藏節(jié)點(diǎn)異構(gòu)性, 為上層多屏互動等相關(guān)應(yīng)用提供接口, 極大地簡化了應(yīng)用開發(fā)過程.

      本文目前只針對硬件資源的統(tǒng)一管理使用問題,在未來的研究中, 除了優(yōu)化硬件資源使用效果之外,會逐步實(shí)現(xiàn)應(yīng)用自主選擇合適的運(yùn)行設(shè)備以借用對應(yīng)設(shè)備硬件資源, 并加入對計(jì)算資源、數(shù)據(jù)資源的統(tǒng)一管理, 實(shí)現(xiàn)個人自組織網(wǎng)絡(luò)環(huán)境下各方面資源都做到物盡其用, 提升用戶體驗(yàn).

      1 Vavilapalli VK, Murthy AC, Douglas C, et al. Apache hadoop yarn: Yet another resource negotiator. Proc. of the 4th Annual Symposium on Cloud Computing. ACM. 2013. 5.

      2 邱晨.基于Android的Airplay Server端應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)[碩士學(xué)位論文].廈門:廈門大學(xué),2014.

      3 陳子安.基于Android平臺的WiFi-display sink端的設(shè)計(jì)與實(shí)現(xiàn).軟件導(dǎo)刊,2013,(9):104–106.

      4 顏萬隆,陳月峰.基于DLNA協(xié)議的多屏互動系統(tǒng).廣東海洋大學(xué)學(xué)報,2013,33(4):83–86.

      5 余澤喜,王香婷,馬婷婷.多屏互動系統(tǒng)的研究與實(shí)現(xiàn).智能計(jì)算機(jī)與應(yīng)用,2012,2(1):69–70.

      6 吳軼群,朱亞東,王明敏.基于Android平臺的多屏互動系統(tǒng)設(shè)計(jì).計(jì)算機(jī)應(yīng)用與軟件,2014,31(10):234–238.

      7 Yang J, Wigdor D. Panelrama: Enabling easy specification of cross-device web applications. Proc. of the SIGCHI Conference on Human Factors in Computing Systems. ACM. 2014. 2783–2792.

      8 Pouwelse J, Garbacki P, Epema D, et al. The bittorrent p2p file-sharing system: Measurements and analysis. Peer-to-Peer Systems IV. Springer Berlin Heidelberg, 2005: 205–216. 9 Shen Z, Tan S, Li Y. Study of multi-screen interaction on smart TV based on UPnP protocol. Journal of Convergence Information Technology, 2013, 8(10): 448.

      10 王昭順,李濤.基于D-BUS的軟件組件開發(fā)技術(shù)的研究. 2009全國虛擬儀器大會論文集,2009.

      11 段義鵬.Android進(jìn)程通信機(jī)制研究與應(yīng)用[碩士學(xué)位論文].武漢:武漢理工大學(xué),2012.

      12 苑冰泉.Android進(jìn)程間通信機(jī)制Binder的分析與對比研究[碩士學(xué)位論文].南京:東南大學(xué),2014.

      13 冀博,李宥謀,郭猛.網(wǎng)絡(luò)設(shè)備自動發(fā)現(xiàn)技術(shù)的研究與實(shí)現(xiàn).西安郵電學(xué)院學(xué)報,2013,17(6):33–36.

      14 周亦敏,沈嘉杰.Zeroconf 網(wǎng)絡(luò)的安全性分析及改進(jìn). 計(jì)算機(jī)工程與應(yīng)用,2013,49(2).

      15 李紀(jì)欣,王康,周立發(fā),等.Google Protobuf 在 Linux Socket通訊中的應(yīng)用.電腦開發(fā)與應(yīng)用,2013,26(4):1–5.

      16 聶曉旭,于鳳芹,欽道理.基于 Protobuf 的數(shù)據(jù)傳輸協(xié)議.計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(8):112–116.

      17 王尚平,王育民,張亞玲,等.基于DSA及RSA的證實(shí)數(shù)字簽名方案.軟件學(xué)報,2003,14(3):588–593.

      18 Martucci LA, Carvalho T, Ruggiero WV. A lightweight distributed group authentication mechanism. INC2004-Fourth International Network Conference. 2004. 393–400.

      19 許子燦,吳榮泉.基于消息傳遞的Paxos 算法研究.計(jì)算機(jī)工程,2011,37(21).

      20 高石玉,艾中良,劉忠麟.應(yīng)用Paxos算法構(gòu)建自組織網(wǎng)絡(luò).計(jì)算機(jī)工程與應(yīng)用,2014,50(6).

      Hardware Resource Management for Personal Self Organizing Networks

      FANG Ya-Fen1,3, LIANG Guan-Yu2, HE Ye-Ping11
      (National Engineering Research Center for Fundamental Software, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China)2(General Department, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China)3(University of Chinese Academy of Sciences, Beijing 100190, China)

      While the popularity of all kinds of intelligent terminals, cross-device applications, such as multi-screen, are emerging, hence, higher requirements are put forward to the cross-platform and interactive extendibility of the management of hardware resources. However, most of the current applications that share hardware resources are mirror projection technology across devices which lacks interactivity, or just simple applications independent of each other. Besides, they are targeted at single platform or hardware resource, which make it difficult to deal with new requirements flexibly and effectively. Focused on this issue, the management and allocation of hardware resources (keyboard, mouse, camera, etc.) in multiple devices in personal self-organizing network is studied, and an application framework with good cross-platform and extendibility is proposed, which could make one device use others’ hardware resources just like using its own, also could help users manage and control their devices. The framework is consisted of inter process communication and hardware resource management. The former provides information transmission service to insure real-time communication, while the latter is responsible for the management of access to all hardware resources and provides the functions of applying and using resource, status change notification, etc. With the framework, the development of cross-device application becomes very convenient and simple.

      personal self organizing network; multiple devices; hardware resource management; inter process communication; application framework

      中國科學(xué)院戰(zhàn)略性先導(dǎo)科技專項(xiàng)(XDA06010600)

      2016-04-03;收到修改稿時間:2016-04-21

      10.15888/j.cnki.csa.005472

      猜你喜歡
      間通信鼠標(biāo)進(jìn)程
      細(xì)胞間通信預(yù)測方法研究進(jìn)展
      Progress in Neural NLP: Modeling, Learning, and Reasoning
      Engineering(2020年3期)2020-09-14 03:42:00
      債券市場對外開放的進(jìn)程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      綜合航電分區(qū)間通信元模型設(shè)計(jì)研究
      社會進(jìn)程中的新聞學(xué)探尋
      我國高等教育改革進(jìn)程與反思
      Linux僵死進(jìn)程的產(chǎn)生與避免
      基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信研究
      一種適應(yīng)多核處理器核間通信機(jī)制的設(shè)計(jì)
      45歲的鼠標(biāo)
      北流市| 腾冲县| 望江县| 江孜县| 青田县| 翁源县| 项城市| 香格里拉县| 祁门县| 双鸭山市| 沂源县| 安仁县| 施甸县| 弥勒县| 工布江达县| 阿坝| 潼南县| 揭西县| 九龙坡区| 许昌市| 新昌县| 开原市| 竹北市| 墨脱县| 隆安县| 恩施市| 瑞金市| 麻城市| 方正县| 镇宁| 香格里拉县| 永胜县| 鹤壁市| 开鲁县| 西和县| 方城县| 西藏| 上林县| 万源市| 晋中市| 阳西县|