本申請涉及服務訪問技術,具體涉及一種用于設備間服務的訪問方法及裝置。本申請同時涉及一種用于設備間服務的配置方法及裝置,以及一種設備間的信息廣播方法及裝置。
背景技術:
隨著計算機和網絡技術的發展,個人電腦、智能手機等電子設備都得到了廣泛的應用。這些電子設備上不僅可以安裝應用程序,為用戶提供豐富的服務功能,例如:播放音樂、存儲數據等;還可以具有通過特定的訪問接口為應用程序提供服務的服務提供方,所述服務提供方可以是應用程序,也可以是系統程序。
在具體應用中,為了便于應用程序之間、以及應用程序與系統程序之間的互通,滿足不同程序之間的服務訪問需求,出現了很多ipc(interprocesscommunication進程間通信)機制,用來實現程序進程之間的通信,d-bus就是其中一種,其主要用途是在linux桌面環境為進程提供通信,同時能將linux桌面環境和linux內核事件作為消息傳遞到進程,并能夠實現各種復雜的進程間通信任務。
但是d-bus的應用僅僅局限于一個設備內部,對于設備之間服務的訪問需求則無法滿足。例如在車載系統中包括智能手機、wifi音箱等多個電子設備,各個設備提供的功能彼此獨立,如果用戶希望欣賞某個電子設備(例如:智能手機)中的樂曲,而該電子設備由于音頻硬件設施發生故障無法實現音頻播放功能,那么用戶或者放棄欣賞,或者需要手動將待播放曲目復制到wifi音箱的存儲介質中才能播放。由此可見,現有各設備之間提供的服務功能彼此獨立,不便于用戶使用,影響用戶的使用體驗。
技術實現要素:
本申請實施例提供一種用于設備間服務的訪問方法和裝置,以解決現有設備之間提供的服務功能彼此獨立、不便于用戶使用的問題。本申請實施例還提供用于設備間服務的配置方法及裝置,以及一種設備間的信息廣播方法及裝置。
本申請提供一種用于設備間服務的訪問方法,包括:
第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備;
所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能;
其中,所述設備間的聯接包括:不同設備分別通過主設備提供的聯接端口與所述主設備建立的聯接。
可選的,所述設備間的聯接是通過如下方式預先建立的:
所述主設備創建用于與其他設備建立聯接的聯接端口;
當所述源設備為非主設備的從設備時,所述源設備向所述聯接端口發送聯接請求,所述主設備根據接收到的聯接請求,建立主設備和源設備之間的數據連接,以完成源設備和主設備之間的聯接過程;
當所述目標設備為非主設備的從設備時,所述目標設備向所述聯接端口發送聯接請求,所述主設備根據接收到的聯接請求,建立主設備和目標設備之間的數據連接,以完成目標設備和主設備之間的聯接過程。
可選的,所述主設備創建聯接端口、以及根據接收到的聯接請求與從設備建立數據連接的操作,由所述主設備上的總線控制模塊執行;
所述從設備通過發送聯接請求與主設備建立數據連接的操作,由所述從設備上的總線客戶端模塊執行。
可選的,所述第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備,包括:
所述源設備根據預先存儲的服務配置信息封裝訪問請求并將其發出,所述訪問請求通過設備間的聯接、依照其包含的所述目標設備標識傳送到提供所述特定服務的目標設備;所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并 由所述第二程序執行相應的服務功能,包括:
目標設備根據預先存儲的服務配置信息,將所述訪問請求轉發給在其上運行的所述第二程序,并由所述第二程序執行相應的服務功能。
可選的,所述源設備的服務配置信息包括至少具有以下信息的遠程服務配置項:所述目標設備標識,以及所述特定服務的服務標識;所述服務標識包括:服務名稱;
所述目標設備的服務配置信息包括至少具有以下信息的本地服務配置項:所述特定服務的服務標識,以及提供所述特定服務的第二程序進程的標識。
可選的,所述源設備的服務配置信息的生成方式包括如下所述的服務掛載過程:
至少包含所述目標設備標識以及所述特定服務的服務標識的服務掛載請求由所述目標設備發出,并通過所述設備間的聯接傳送給至少包括所述源設備的各設備;
所述源設備根據接收到的服務掛載請求,生成至少包含所述目標設備標識以及所述特定服務的服務標識的遠程服務配置項,并將所述遠程服務配置項添加到自己的服務配置信息中。
可選的,所述目標設備通過如下方式生成所述服務掛載請求:
所述第二程序將自己提供的所述特定服務注冊到目標設備的服務配置信息中,以在所述服務配置信息中生成相應的本地服務配置項;
根據所述本地服務配置項中包含的所述特定服務的服務標識以及所述目標設備標識,生成所述服務掛載請求。
可選的,當所述源設備為主設備時,所述源設備根據預先存儲的服務配置信息封裝訪問請求并將其發出,所述訪問請求通過設備間的聯接、依照其包含的所述目標設備標識傳送到提供所述特定服務的目標設備,包括:
所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
所述源設備根據封裝后的訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接,將所述訪問請求發送給所述目標設備。
可選的,當所述目標設備為主設備時,所述源設備根據預先存儲的服務配置信息封裝訪問請求并將其發出,所述訪問請求通過設備間的聯接、依照其包含的所述目標設備標識傳送到提供所述特定服務的目標設備,包括:
所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
所述源設備利用已與所述目標設備建立的聯接,將封裝后的訪問請求發送給所述目標設備。
可選的,當所述源設備以及所述目標設備都不為主設備時,所述源設備根據預先存儲的服務配置信息封裝訪問請求并將其發出,所述訪問請求通過設備間的聯接、依照其包含的所述目標設備標識傳送到提供所述特定服務的目標設備,包括:
所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的標識和所述目標設備標識;
所述源設備利用已與所述主設備建立的聯接,將封裝后的訪問請求發送給所述主設備;
所述主設備根據接收到的所述訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接,將所述訪問請求發送給所述目標設備。
可選的,所述目標設備根據預先存儲的服務配置信息,將所述訪問請求轉發給在其上運行的所述第二程序,并由所述第二應用程序執行相應的服務功能,包括:
所述目標設備接收所述訪問請求后執行解封裝操作,并獲取被訪問的服務標識;
所述目標設備根據所述被訪問的服務標識查找服務配置信息中的本地服務配置項,獲取提供相應服務的第二程序進程的標識;
所述目標設備根據所述第二程序進程的標識,將解封裝后的訪問請求轉發給所述第二程序,由所述第二程序執行相應的服務功能。
可選的,所述源設備的服務配置信息中的、對應于所述特定服務的遠程服務配置項中的信息還包括:代理標識,其對應的代理是在生成所述遠程服務配置項時生成的、負責為訪問所述特定服務提供至少包括封裝功能的代理服務;
所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識,包括:
所述第一程序根據所述特定服務的服務標識查詢服務配置信息,獲取為訪問所述特定服務提供代理服務的代理標識;
所述第一程序根據所述代理標識,將包含所述特定服務的服務標識的訪問請求發送給相應的代理,并由所述代理為所述訪問請求封裝所述目標設備標識。
可選的,所述第一程序根據所述特定服務的服務標識查詢服務配置信息,獲取為訪問所述特定服務提供代理服務的代理標識,包括:
所述第一程序根據所述特定服務的服務標識查詢服務配置信息;
當服務配置信息中存在兩個或者兩個以上與所述特定服務的服務標識相對應的遠程服務配置項時,則按照預設的優先級規則選擇其中一個遠程服務配置項中的代理標識作為為訪問所述特定服務提供代理服務的代理標識。
可選的,所述主設備在非主設備的從設備間轉發消息、在本設備與從設備間轉發消息、以及提供代理服務的操作,由主設備上的總線控制模塊執行;
從設備在本設備與主設備間轉發消息、以及提供代理服務的操作,由從設備上的總線控制模塊執行。
可選的,在第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備的過程中,包括:所述主設備根據預設的消息轉發規則,判斷是否可以利用設備間的聯接轉發所述訪問請求,并在可以時執行相應的轉發操作。
可選的,所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序后,還包括:
第二程序針對所述訪問請求的應答信息由所述目標設備發出、并通過所述設備間的聯接傳送給所述源設備;
所述源設備將接收到的所述應答信息返回給所述第一程序。
可選的,所述主設備的數目大于1,各主設備之間彼此級聯,非主設備的設備分別從屬于一個主設備;
所述設備間的聯接包括:不同設備分別通過其主設備提供的聯接端口與所 述主設備建立的聯接,以及主設備之間的級聯聯接。
可選的,所述聯接端口包括:tcp端口,或者udp端口。
可選的,所述方法應用于車載系統中,所述特定服務包括:音頻播放服務,所述源設備包括:智能手機,所述目標設備包括:車載音響設備;
所述第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備,包括:第一程序對音頻播放服務的訪問請求由運行所述第一程序的智能手機發出、并通過設備間的聯接傳送到提供所述音頻播放服務的車載音響設備;
所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能,包括:所述車載音響設備將接收到的所述訪問請求轉發給在其上運行的音頻播放程序,并由所述音頻播放程序執行相應的音頻播放功能。
可選的,所述方法應用于車載系統中,所述特定服務包括:視頻播放服務,所述源設備包括:智能手機,所述目標設備包括:車載dvd;
所述第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備,包括:第一程序對視頻播放服務的訪問請求由運行所述第一程序的智能手機發出、并通過設備間的聯接傳送到提供所述視頻播放服務的車載dvd;
所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能,包括:所述車載dvd將接收到的所述訪問請求轉發給在其上運行的視頻播放程序,并由所述視頻播放程序執行相應的視頻播放功能。
可選的,所述方法應用于車載系統中,所述特定服務包括:數據存儲服務,所述源設備包括:智能手機,所述目標設備包括:車載硬盤機;
所述第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備,包括:第一程序對數據存儲服務的訪問請求由運行所述第一程序的智能手機發出、并通過設備間的聯接傳送到提供所述數據存儲服務的車載硬盤機;
所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能,包括:所述車載硬盤機將接收到的所述 訪問請求轉發給在其上運行的數據存儲程序,并由所述數據存儲程序執行相應的數據存儲功能。
可選的,所述方法應用于家庭娛樂系統中,所述特定服務包括:視頻播放服務,所述源設備包括:智能手機,所述目標設備包括:智能電視或者平板電腦;
所述第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備,包括:第一程序對視頻播放服務的訪問請求由運行所述第一程序的智能手機發出、并通過設備間的聯接傳送到提供所述視頻播放服務的智能電視或者平板電腦;
所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能,包括:所述智能電視或者平板電腦將接收到的所述訪問請求轉發給在其上運行的視頻播放程序,并由所述視頻播放程序執行相應的視頻播放功能。
相應的,本申請還提供一種用于設備間服務的訪問裝置,包括:
訪問請求傳送單元,用于第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備;
目標服務提供單元,用于所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能。
可選的,所述裝置包括:
聯接端口創建單元,用于所述主設備創建用于與其他設備建立聯接的聯接端口;
源設備聯接單元,用于當所述源設備為非主設備的從設備時,所述源設備向所述聯接端口發送聯接請求,所述主設備根據接收到的聯接請求,建立主設備和源設備之間的數據連接,以完成源設備和主設備之間的聯接過程;
目標設備聯接單元,用于當所述目標設備為非主設備的從設備時,所述目標設備向所述聯接端口發送聯接請求,所述主設備根據接收到的聯接請求,建立主設備和目標設備之間的數據連接,以完成目標設備和主設備之間的聯接過程。
可選的,所述訪問請求傳送單元具體用于,所述源設備根據預先存儲的服務配置信息封裝訪問請求并將其發出,所述訪問請求通過設備間的聯接、依照 其包含的所述目標設備標識傳送到提供所述特定服務的目標設備;所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
所述目標服務提供單元具體用于,目標設備根據預先存儲的服務配置信息,將所述訪問請求轉發給在其上運行的所述第二程序,并由所述第二程序執行相應的服務功能。
可選的,所述裝置包括:
目標設備服務掛載請求傳送單元,用于至少包含所述目標設備標識以及所述特定服務的服務標識的服務掛載請求由所述目標設備發出,并通過所述設備間的聯接傳送給至少包括所述源設備的各設備;
源設備服務配置信息存儲單元,用于所述源設備根據接收到的服務掛載請求,生成至少包含所述目標設備標識以及所述特定服務的服務標識的遠程服務配置項,并將所述遠程服務配置項添加到自己的服務配置信息中。
可選的,所述裝置還包括:
本地服務注冊單元,用于所述第二程序將自己提供的所述特定服務注冊到目標設備的服務配置信息中,以在所述服務配置信息中生成相應的本地服務配置項;
服務掛載請求生成單元,用于根據所述本地服務配置項中包含的所述特定服務的標識以及所述目標設備標識,生成所述服務掛載請求。
可選的,所述訪問請求傳送單元包括:
訪問請求封裝子單元,用于所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
第一訪問請求發送子單元,用于所述源設備根據封裝后的訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接,將所述訪問請求發送給所述目標設備。
可選的,所述訪問請求傳送單元包括:
訪問請求封裝子單元,用于所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
第二訪問請求發送子單元,用于所述源設備利用已與所述目標設備建立的聯接,將封裝后的訪問請求發送給所述目標設備。
可選的,所述訪問請求傳送單元包括:
訪問請求封裝子單元,用于所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
第三訪問請求發送子單元,用于所述源設備利用已與所述主設備建立的聯接,將封裝后的訪問請求發送給所述主設備;
訪問請求轉發子單元,用于所述主設備根據接收到的所述訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接,將所述訪問請求發送給所述目標設備。
可選的,所述目標服務提供單元包括:
訪問請求接收子單元,用于所述目標設備接收所述訪問請求后執行解封裝操作,并獲取被訪問的服務標識;
目標進程查找子單元,用于所述目標設備根據所述被訪問的服務標識查找服務配置信息中的本地服務配置項,獲取提供相應服務的第二程序進程的標識;
目標服務提供子單元,用于所述目標設備根據所述第二程序進程的標識,將解封裝后的訪問請求轉發給所述第二程序,由所述第二程序執行相應的服務功能。
可選的,所述訪問請求封裝子單元包括:
代理標識獲取子單元,用于所述第一程序根據所述特定服務的服務標識查詢服務配置信息,獲取為訪問所述特定服務提供代理服務的代理標識;
代理服務封裝子單元,用于所述第一程序根據所述代理標識,將包含所述特定服務的服務標識的訪問請求發送給相應的代理,并由所述代理為所述訪問請求封裝所述目標設備標識。
可選的,所述裝置還包括:
應答信息傳送單元,用于當所述目標服務提供單元執行完畢其功能后,第二程序針對所述訪問請求的應答信息由所述目標設備發出、并通過所述設備間的聯接傳送給所述源設備;
應答信息返回單元,用于所述源設備將接收到的所述應答信息返回給所述第一程序。
此外,本申請還提供一種用于設備間服務的配置方法,包括:
至少包含第一設備所提供服務的服務標識以及第一設備標識的服務掛載請求由所述第一設備發出、并通過設備間的聯接傳送到與主設備互聯的各設備;
除所述第一設備之外的各設備根據接收到的服務掛載請求,生成至少包含所述第一設備標識以及第一設備所提供服務的服務標識的遠程服務配置項,并將所述遠程服務配置項添加到自己的服務配置信息中。
其中,所述設備間的聯接包括:不同設備分別通過主設備提供的聯接端口與所述主設備建立的聯接。
可選的,所述第一設備通過如下方式生成所述服務掛載請求:
在第一設備上運行的應用程序將各自提供的服務注冊到第一設備的服務配置信息中,以在所述服務配置信息中生成本地服務配置項;
根據所述本地服務配置項中包含的服務標識以及第一設備的設備標識,生成所述服務掛載請求。
可選的,在所述除所述第一設備之外的各設備將所述遠程服務配置項添加到自己的服務配置信息中后,還包括:
至少包含被卸載服務的服務標識的服務卸載請求由所述第一設備發出、并通過設備間的聯接傳送到與主設備互聯的各設備;
除所述第一設備之外的各設備根據接收到的服務卸載請求,從自己的服務配置信息中刪除包含所述服務標識的遠程服務配置項。
可選的,當所述第一設備不是主設備時,在所述除所述第一設備之外的各設備將所述遠程服務配置項添加到自己的服務配置信息中后,還包括:
所述第一設備向主設備發送設備斷開請求,所述請求中至少攜帶第一設備標識;
所述主設備通過其與各設備之間的聯接、將所述設備斷開請求轉發給各設備;
除所述第一設備之外的各設備根據接收到的設備斷開請求,從自己的服務配置信息中刪除包含所述第一設備標識的所有遠程服務配置項。
相應的,本申請還提供一種用于設備間服務的配置裝置,包括:
掛載請求傳送單元,用于至少包含第一設備所提供服務的服務標識以及第一設備標識的服務掛載請求由所述第一設備發出、并通過設備間的聯接傳送到與主設備互聯的各設備;
服務配置存儲單元,用于除所述第一設備之外的各設備根據接收到的服務掛載請求,生成至少包含所述第一設備標識以及第一設備所提供服務的服務標識的遠程服務配置項,并將所述遠程服務配置項添加到自己的服務配置信息中。
可選的,所述裝置包括:
卸載請求傳送單元,用于在所述服務配置存儲單元完成遠程服務配置項的添加操作后,至少包含被卸載服務的服務標識的服務卸載請求由所述第一設備發出、并通過設備間的聯接傳送到與主設備互聯的各設備;
第一服務配置刪除單元,用于除所述第一設備之外的各設備根據接收到的服務卸載請求,從自己的服務配置信息中刪除包含所述服務標識的遠程服務配置項。
可選的,所述裝置包括:
設備斷開請求發送單元,用于在所述服務配置存儲單元完成遠程服務配置項的添加操作后,所述第一設備向主設備發送設備斷開請求,所述請求中至少攜帶第一設備標識;
設備斷開請求轉發單元,用于所述主設備通過其與各設備之間的聯接、將所述設備斷開請求轉發給各設備;
第二服務配置刪除單元,用于除所述第一設備之外的各設備根據接收到的設備斷開請求,從自己的服務配置信息中刪除包含所述第一設備標識的所有遠程服務配置項。
此外,本申請還提供一種用于設備間的信息廣播方法,包括:
第一應用程序的廣播請求由運行所述第一應用程序的第一設備發出,并通過設備間的聯接傳送到與主設備互聯的各設備;
除所述第一設備之外的各設備將接收到的廣播請求發送給各自承載的應用程序;
其中,所述設備間的聯接包括:不同設備分別通過主設備提供的聯接端口 與所述設備建立的聯接。
相應的,本申請還提供一種用于設備間的信息廣播裝置,包括:
廣播請求傳送單元,用于第一應用程序的廣播請求由運行所述第一應用程序的第一設備發出,并通過設備間的聯接傳送到與主設備互聯的各設備;
廣播請求上報單元,用于除所述第一設備之外的各設備將接收到的廣播請求發送給各自承載的應用程序。
與現有技術相比,本申請具有以下優點:
本申請提供的用于設備間的服務訪問方法,第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備,所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能,其中,所述設備間的聯接包括:不同設備分別通過主設備提供的聯接端口與所述主設備建立的聯接。
采用本申請提供的上述方法,由于各設備通過主設備提供的聯接端口與主設備建立聯接,相當于在各設備之間形成了虛擬的設備總線,并可以基于所述設備總線實現跨設備的服務訪問功能,從而單個設備的部分能力可以成為標準化的功能模塊為其他設備服務,使設備間的功能組合成為可能,進而形成更為復雜和靈活的功能系統。
附圖說明
圖1是本申請的一種設備間服務的訪問方法的實施例的流程圖;
圖2是本申請實施例提供的源設備為主設備時的架構示意圖;
圖3是本申請實施例提供的源設備為主設備時、訪問請求傳送至目標設備的處理流程圖;
圖4是本申請實施例提供的目標設備為主設備時的架構示意圖;
圖5是本申請實施例提供的目標設備為主設備時、訪問請求傳送至目標設備的處理流程圖;
圖6是本申請實施例提供的源設備和目標設備都不為主設備時的架構示意圖;
圖7是本申請實施例提供的源設備和目標設備都不為主設備時、訪問請求傳送至目標設備的處理流程圖;
圖8是本申請實施例提供的目標設備將訪問請求轉發給第二程序的處理流程圖;
圖9是本申請的一種用于設備間服務的訪問裝置的實施例的示意圖;
圖10是本申請的一種用于設備間服務的配置方法的實施例的流程圖;
圖11是本申請的一種用于設備間服務的配置裝置的實施例的示意圖;
圖12是本申請的一種用于設備間的信息廣播方法的實施例的流程圖;
圖13是本申請的一種用于設備間的信息廣播裝置的實施例的示意圖。
具體實施方式
在下面的描述中闡述了很多具體細節以便于充分理解本申請。但是,本申請能夠以很多不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本申請內涵的情況下做類似推廣,因此,本申請不受下面公開的具體實施的限制。
在本申請中,分別提供了一種用于設備間服務的訪問方法及裝置,一種用于設備間服務的配置方法及裝置,以及一種用于設備間的信息廣播方法及裝置。在下面的實施例中逐一進行詳細說明。
本實施例提供一種用于設備間服務的訪問方法的具體實施方式,所述方法的核心在于:主設備提供聯接端口,相當于對外提供了虛擬設備總線的接入插槽,為其他設備提供服務或者需要跨設備訪問服務的從設備,可以通過所述聯接端口實現與主設備之間的聯接,即:接入設備總線;某一設備上的第一程序的服務訪問請求可以通過設備總線(設備間的聯接)傳送給提供所述服務的另一設備,并由該設備上的第二程序執行相應的服務功能,從而實現跨設備的服務訪問功能。而且由于主設備提供了設備總線,對外提供服務或者需要跨設備訪問服務的新增設備,可以通過向主設備聯接端口發送請求的方式快捷地接入到設備總線上、實現與設備總線上各個設備的互相訪問,而不必與其他各設備分別進行聯接,可以降低組網復雜度,簡化操作過程,提高執行效率。
從維護設備總線的角度出發,本技術方案中涉及的設備可以劃分為主設備 和從設備,主設備是創建設備總線的設備,從設備是接入設備總線的設備。在實施本實施例的方法之前,可以先建立主設備和從設備之間的聯接,具體實現可以是:主設備創建用于與從設備建立聯接的聯接端口,創建聯接端口相當于創建了設備總線;從設備向所述聯接端口發送接入設備總線的聯接請求,主設備則根據接收到的聯接請求與所述從設備建立數據連接,并可以將每條數據連接與從設備的設備標識相對應,從而完成從設備和主設備之間的聯接過程(也可以稱為從設備聯接到總線上)。此后,從設備可以通過與主設備間的聯接與主設備進行消息傳送,主設備則可以根據消息攜帶的目標設備標識,利用已建立的相應聯接,進行消息的轉發。
這里對本實施例中的“聯接”以及“數據連接”的表述進行說明,對于本技術方案的實現來說,兩種表述方式的含義是一致的,只是表述角度不同,其中,聯接側重表達的是以主設備為中心的連接,數據連接則是側重表達兩點之間的連接。
在具體實施時,為了保證只有可靠設備才能接入設備總線,主設備可以預設聯接憑據,例如密碼,從設備也可以預置所述聯接憑據,當從設備向聯接端口發送聯接請求時需要攜帶聯接憑據,主設備驗證聯接憑據正確后,才能夠與從設備建立聯接關系。類似的道理,主設備在建立與從設備的聯接關系后,可以向從設備返回聯接成功應答,并在應答中攜帶自己的身份信息,例如:身份證書等,從而從設備可以確認主設備的身份,并可以在后續的操作中向主設備發送各種消息,例如:服務掛載請求、訪問請求等。
需要說明的是,主設備和從設備之間的數據連接,可以采用tcp或者udp協議建立,所述聯接端口可以為預設的tcp端口或者udp端口,也可以采用其他網絡協議建立,只要能夠在主設備和從設備之間建立數據連接,就同樣可以實現本申請的技術方案。
在本技術方案中,針對一次設備間服務的訪問過程,將其中提供服務的程序所在的設備稱為目標設備,將發出訪問請求的程序所在設備稱為源設備。具體實施時,主設備上也可以運行應用程序,因此對于一次設備間服務訪問過程來說,可能存在源設備為主設備的情況,目標設備為主設備的情況,以及源設備和目標設備都不是主設備的情況。
本實施例提供的用于設備間服務的訪問方法,包括以下步驟:第一程序對 特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備;所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能。其中,發起所述訪問請求的第一程序通常為應用程序,提供所述特定服務的第二程序可以是應用程序、也可以是系統程序。
下面對于訪問請求通過設備間的聯接傳送到目標設備的過程作簡要說明。如果源設備是主設備,那么源設備(主設備)可以從已與其建立的眾多聯接中選擇與目標設備建立的聯接將訪問請求發送給目標設備;如果目標設備是主設備,那么源設備可以利用已與目標設備(主設備)建立的聯接將訪問請求發送給目標設備;如果源設備和目標設備都不是主設備,那么源設備可以利用已與主設備建立的聯接將訪問請求發送給主設備,主設備利用已與目標設備建立的聯接將訪問請求轉發給目標設備。
可以考慮如下的相對簡單的應用場景:在通過設備總線互聯的各設備中,僅有所述目標設備上的第二程序對外提供所述特定服務,那么需要訪問所述特定服務的源設備上的第一程序發起訪問請求后,所述訪問請求無需封裝目標設備標識以及特定服務的標識,即可按照預設的固定方式通過設備間的聯接傳送到目標設備,并由目標設備觸發第二程序執行相應的服務功能。
在具體實施時,應用場景通常更為復雜,例如可以由一個以上設備上的多個程序提供多個服務,并且各設備上的應用程序可以根據需要訪問不同的服務,在這種情況下,可以在各設備中預先存儲服務配置信息。對于某一設備來說,服務配置信息中可以包括兩類服務配置項:本地服務配置項和遠程服務配置項,其中,本地服務配置項中的信息至少包括:提供服務的本地程序進程的標識(例如:進程句柄)以及其提供服務的服務標識(用于區分本設備上的不同服務,例如:服務名稱或者服務序號);遠程服務配置項中的信息至少包括:其他設備的設備標識、以及所述其他設備提供服務的服務標識,由于這類服務不是本地程序提供的,而是由其他設備提供的,因此在本實施例中稱為遠程服務,相應的服務配置信息項稱為遠程服務配置項。在本地服務配置項和遠程服務配置項中還可以包括關于相應服務的描述信息等。
通過服務配置信息,源設備可以根據被訪問服務的服務標識獲知提供所述服務的目標設備標識,并可以將該信息封裝在訪問請求中;在利用設備間的聯接傳送所述訪問請求時,主設備可以根據訪問請求攜帶的目標設備標識決定執 行設備間轉發或者是執行設備內外間轉發,從而將所述訪問請求傳送給目標設備;目標設備接收所述訪問請求后,通過服務配置信息可以獲知提供服務的程序進程標識,并將所述訪問請求轉發給正確的程序進程。在具體實施時,設備上的服務配置信息可以由設備管理人員通過配置接口進行配置,也可以通過讀取配置文件等方式生成。
優選地,為了更為靈活地生成設備上的服務配置信息,真實地反映通過設備總線互聯的各設備所提供的服務信息,本實施例提供通過設備總線動態掛載服務的實施方式,即:通過設備總線互聯的設備,可以將其提供的服務信息通過設備總線傳送給設備總線上的其他設備。
在本實施例中,在目標設備上運行的第二程序可以將其提供的服務注冊到目標設備的服務配置信息中,從而在目標設備的服務配置信息中生成本地服務配置項;隨后可以根據目標設備的標識以及所述本地服務配置項中包含的特定服務的服務標識生成服務掛載請求。目標設備將服務掛載請求發出,所述服務掛載請求通過設備間的聯接傳送到與主設備互聯的各設備,例如:當目標設備不是主設備時,其可以將服務掛載請求發送給主設備,主設備通過設備總線(即:其與各設備建立的聯接)將所述掛載請求轉發給其他各設備,相當于一次廣播發送的過程。除所述目標設備之外的各設備,其中包括本實施例所述的源設備,根據接收到的服務掛載請求,生成至少包含所述目標設備標識以及所述特定服務標識的遠程服務配置項,并將所述遠程服務配置項添加到自己的服務配置信息中。
類似的,如果目標設備是主設備,那么目標設備可以直接將服務掛載請求通過設備總線廣播給其他各設備,從而所述各設備(包括源設備)可以在自己的服務配置信息中生成相應的遠程服務配置項。
主設備以及與主設備互聯的各個設備可以通過上述方式,將本地程序提供的服務信息以服務掛載的方式通知給設備總線上的其他設備,從而設備總線上的各設備都可以獲知其他設備提供的服務。在具體實施時,對于服務配置信息的管理可以由專門的模塊負責,例如:服務管理器模塊(servicemanager—簡稱sm),各設備可以有自己的sm,該模塊負責根據本地程序的注冊生成服務配置信息中的本地服務配置項,并發起服務掛載請求;還負責根據來自其他設備的服務掛載請求,生成服務配置信息中的遠程服務配置項,并可以提供對服務配置信息的查詢功能,例如:對于本實施例中的源設備,可以根據特定服務的服 務標識查詢對應的目標設備標識,對于目標設備,則可以根據接收到的訪問請求中包含的所述特定服務的服務標識查詢對應的第二程序進程的標識。
在具體實施時,可以由sm檢測到服務配置信息中增加本地服務配置項后,發起服務掛載請求,例如:目標設備上的各程序啟動后通常會將其提供的服務向sm注冊,當目標設備與主設備建立聯接后,sm可以根據本地服務配置項中的服務信息發起服務掛載請求,從而以全量的形式將本地服務信息廣播給總線上的其他設備;此外,如果目標設備啟動新的程序、或者某個已啟動程序提供新的服務,同樣會向sm注冊,sm檢測到新增的本地服務配置項后,同樣可以發起服務掛載請求,以增量的方式將新的服務信息廣播給總線上的其他設備。需要說明的是,程序向sm注冊服務時,還可以攜帶服務是否可以對外提供的屬性,從而sm可以僅針對可對外提供的服務信息發起服務掛載請求。
在具體實施時,為了向上層應用屏蔽設備總線的細節,可以將主設備和從設備執行的與設備總線相關的操作,分別封裝在特定的功能模塊中實現。例如:可以在主設備中封裝總線控制模塊(也稱bushost模塊),負責創建聯接端口、根據接收到的聯接請求與從設備建立數據連接,以及利用已建立的聯接在不同設備間轉發消息、在本設備與其他設備間轉發消息;可以在從設備中封裝總線客戶端模塊(也稱busclient模塊),負責通過向聯接端口發送聯接請求與主設備建立數據連接、以及利用已建立的聯接在本設備與主設備間轉發消息。所述消息包括:服務掛載消息、訪問消息等。
對于主設備來說,其上的各程序、sm模塊、以及總線控制模塊,通常是以進程的形式運行,在本實施例中,各個進程之間通過本地總線,例如:d-bus進行消息轉發等交互操作。在其他實施方式中,也可以采用其他ipc機制實現進程間通信,本申請對此不作具體限定。
在本實施例中,通過上面描述的服務掛載過程,所述源設備的服務配置信息包括具有以下信息的遠程服務配置項:所述目標設備標識,以及所述特定服務的服務標識;所述目標設備的服務配置信息包括具有以下信息的本地服務配置項:所述特定服務的服務標識,以及提供所述特定服務的第二程序進程的標識。在此基礎上,就可以執行本實施例提供的方法,由源設備上的第一程序訪問目標設備上的第二程序提供的服務。下面基于采用服務配置信息的優選實施方式,對上述設備間服務的訪問過程的具體實施方式作詳細說明。
請參考圖1,其為本申請的一種用于設備間服務的訪問方法的實施例的流程圖。所述方法包括如下步驟:
步驟101、第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備。
本步驟中,所述源設備根據預先存儲的服務配置信息封裝訪問請求并將其發出,所述訪問請求通過設備間的聯接、依照其包含的所述目標設備標識傳送到提供所述特定服務的目標設備;所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識。
考慮到在具體實施時可能存在三種情況:發起訪問請求的源設備為主設備、提供特定服務的目標設備為主設備、源設備和目標設備都不是主設備。下面針對這三種情況分別進行描述。
(一)源設備為主設備。
請參見圖2,其為源設備為主設備時的架構示意圖。其中,訪問請求傳送到目標設備的處理過程包括以下步驟101-1-1至101-1-2,下面結合圖3進行說明。
步驟101-1-1、所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識。
源設備上的第一程序可以生成對特定服務的訪問請求,所述訪問請求中包含所述特定服務的服務標識(例如:服務名稱),隨后向sm發起查詢請求,sm根據第一程序提供的特定服務的服務標識查找服務配置信息,在其遠程服務配置項中找到與所述服務標識對應的目標設備標識,并將其返回給第一程序,第一程序可以為其訪問請求封裝所述目標設備標識,還可以按照所述目標設備可以識別的消息格式進行相應的封裝。此后,第一程序可以將封裝好的訪問請求通過本地總線發送給總線控制模塊。
優選地,為了簡化應用程序的代碼設計,盡可能實現代碼的復用,本實施例提供將封裝功能從應用程序中剝離出來、交由代理完成的優選實施方式。采用這種方式,應用程序不會感知服務的位置,相當于對應用程序屏蔽了訪問本地服務和遠程服務的差異。
為了實施上述優選實施方式,接收到服務掛載請求的設備可以針對其中每個服務生成相應的代理。對于源設備為主設備的情況,在之前描述的服務掛載 過程中,源設備在生成包含所述特定服務的服務標識以及目標設備標識的遠程服務配置項時,還可以在總線控制模塊中生成相應的代理(如果源設備不是主設備,則可以在其總線客戶端模塊中生成相應的代理),用于為所述特定服務提供至少包括封裝功能的代理服務。因此所述源設備的服務配置信息中的、對應于所述特定服務的遠程服務配置項還可以包括以下信息:對應代理的標識(例如:代理的句柄)。
因此本步驟的實施過程可以包括:源設備上的第一程序在發起對特定服務的訪問請求前,向sm發起查詢請求,sm根據第一程序提供的特定服務的服務標識(例如:服務名稱)查找服務配置信息,在其遠程服務配置項中找到與所述服務標識對應的代理標識,并將其返回給第一程序,第一程序根據所述代理標識,將包含所述特定服務的服務標識的訪問請求通過本地總線發送給總線控制模塊中的相應代理,并由所述代理為所述訪問請求封裝所述目標設備標識。在具體實施時,所述代理還可以執行其他封裝操作,例如:將所述訪問請求封裝成所述目標設備可以識別的消息格式等。
優選地,如果sm根據第一程序提供的特定服務的服務標識查找服務配置信息時,找到了兩個或者兩個以上與所述服務標識相對應的遠程服務配置項,那么sm可以按照預設的優先級規則選擇其中一個遠程服務配置項中的代理標識返回給第一程序。
舉例說明,第一程序用特定服務的名稱serv1查詢sm,sm如果找到兩個遠程服務配置項,說明有兩個設備都提供名稱為serv1的服務,此時sm可以按照預設的優先級規則進行選擇。例如,按照服務掛載時間優先進行選擇,即:選擇掛載時間較早的遠程服務配置項,然后將所選配置項中的代理標識返回給第一程序。
步驟101-1-2、所述源設備根據封裝后的訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接,將所述訪問請求發送給所述目標設備。
所述源設備的總線控制模塊,根據封裝后的訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接(即:與所述目標設備標識對應的數據連接),將所述訪問請求發送給所述目標設備的總線客戶端模塊。
優選地,為了對設備總線上的消息轉發功能進行控制,可以為所述主設備預設消息轉發規則,明確指定可以在哪些設備間轉發消息。那么本步驟,由于 源設備是主設備,因此總線控制模塊在轉發所述訪問請求之前,可以從所述訪問請求中提取目標設備標識,并根據所述消息轉發規則判斷是否可以將來自源設備內部的所述訪問請求發送給目標設備,并在可以時執行相應的轉發操作,否則可以向第一程序返回訪問失敗應答,并且不再執行后續的操作。
(二)目標設備為主設備。
請參見圖4,其為目標設備為主設備時的架構示意圖。其中,訪問請求傳送到目標設備的處理過程包括以下步驟101-2-1至101-2-2,下面結合圖5進行說明,其中與上述(一)中內容相同的部分不再贅述。
步驟101-2-1、所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識。
如果由所述第一程序自行進行封裝,那么第一程序可以將封裝后的所述訪問請求通過本地總線發送給總線客戶端模塊;如果采用基于代理的優選實施方式,那么由總線客戶端模塊中的代理最終完成所述訪問請求的封裝操作。
步驟101-2-2、所述源設備利用已與所述目標設備建立的聯接,將封裝后的訪問請求發送給所述目標設備。
源設備的總線客戶端模塊,利用已與所述目標設備建立的聯接(即:源設備與主設備之間的數據連接),將所述訪問請求發送給所述目標設備的總線控制模塊。
目標設備(主設備)的總線控制模塊接收所述訪問請求后,根據所述訪問請求攜帶的目標設備標識,判斷出本設備即為所述訪問請求的目標設備,因此不再向其他設備轉發所述訪問請求。
此外,由于目標設備是主設備,因此總線控制模塊可以根據預設的消息轉發規則,判斷是否可以將從源設備接收到的所述訪問請求發送給目標設備,即:通過本地總線傳遞到目標設備內部,如果不可以,則向源設備返回訪問失敗應答,并且不再執行后續的操作。
(三)源設備和目標設備都不是主設備。
請參見圖6,其為源設備和目標設備都不是主設備時的架構示意圖。其中,訪問請求傳送到目標設備的處理過程包括以下步驟101-3-1至101-3-3,下面結合圖7進行說明,其中與上述(一)或(二)中內容相同的部分不再贅述。
步驟101-3-1、所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的標識和所述目標設備標識。
如果由所述第一程序自行進行封裝,那么第一程序可以將封裝后的所述訪問請求通過本地總線發送給總線客戶端模塊;如果采用基于代理優選實施方式,那么由總線客戶端模塊中的代理最終完成所述訪問請求的封裝操作。
步驟101-3-2、所述源設備利用已與所述主設備建立的聯接,將封裝后的訪問請求發送給所述主設備。
源設備的總線客戶端模塊,利用已與主設備建立的聯接(即:源設備與主設備之間的數據連接),將所述訪問請求發送給主設備的總線控制模塊。
步驟101-3-3、所述主設備根據接收到的所述訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接,將所述訪問請求發送給所述目標設備。
主設備的總線控制模塊接收所述訪問請求后,可以利用已與目標設備建立的聯接(即:與所述目標設備標識對應的數據連接),將所述訪問請求轉發給目標設備的總線客戶端模塊。
同樣的道理,主設備的總線控制模塊在執行上述轉發操作之前,可以從所述訪問請求中提取目標設備標識,并根據預設的消息轉發規則,判斷是否可以將從源設備接收到的所述訪問請求轉發給目標設備,如果可以執行相應的轉發操作,否則可以向源設備返回訪問失敗應答,并且不再執行后續的操作。
步驟102、所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能。
在本步驟中,目標設備可以根據預先存儲的服務配置信息,將所述訪問請求轉發給在其上運行的所述第二程序,并由所述第二程序執行相應的服務功能。
在具體實現時可以包括以下步驟102-1至102-3,下面結合圖8進行說明。
步驟102-1、所述目標設備接收所述訪問請求后執行解封裝操作,并獲取被訪問的服務標識。
如果目標設備為主設備,由總線控制模塊接收所述訪問請求,如果目標設備為從設備,由總線客戶端模塊接收所述訪問請求。為了便于描述,將這兩個模塊統稱為總線接口模塊,總線接口模塊針對接收到的訪問請求執行解封裝操作,并獲取其攜帶的被訪問的服務標識,即:第一程序訪問的所述特定服務的 服務標識。
步驟102-2、所述目標設備根據所述被訪問的服務標識查找服務配置信息中的本地服務配置項,獲取提供相應服務的第二程序進程的標識。
總線接口模塊通過本地總線查詢sm,sm根據查詢請求中攜帶的服務標識在本地服務配置項中找到與所述服務標識對應的進程標識,即:提供所述特定服務的第二程序進程的標識,例如:進程句柄。
步驟102-3、所述目標設備根據所述第二程序進程的標識,將解封裝后的訪問請求轉發給所述第二程序,由所述第二程序執行相應的服務功能。
總線接口模塊根據第二程序進程的標識,通過本地總線將解封裝后的訪問請求發送給所述第二程序,第二程序接收所述訪問請求后,執行相應的操作提供所述特定服務。
在具體實施時,當第二程序接收來自第一程序的所述訪問請求后,可以將相應的應答信息返回給所述第一程序,以便于第一程序執行相應的處理。以目標設備為主設備為例,應答信息的返回過程可以包括:第二程序將應答信息發送給總線控制模塊,總線控制模塊通過源設備和目標設備之間的聯接,將應答信息發送給源設備的總線客戶端模塊,源設備的總線客戶端模塊將所述應答信息發送給第一程序。
至此,通過步驟101-步驟102,對本實施例提供的用于設備間服務的訪問方法的實施方式進行了詳細說明。在具體應用中,還可以對本實施例描述的實施方式通過多個主設備之間的級聯作進一步擴展,即:主設備的數目大于1,各主設備之間彼此級聯,非主設備的設備分別從屬于一個主設備;所述設備間的聯接包括:不同設備分別通過其主設備提供的聯接端口與所述主設備建立的聯接,以及主設備之間的級聯聯接。在上述級聯架構下,便于接入以及管理更多的設備,并且同樣可以實現設備間服務的訪問。
例如:設備a通過啟動聯接端口創建設備總線abus成為主設備,其他若干個設備聯接到abus上;設備b也啟動聯接端口、創建以b為主設備的設備總線bbus,其他若干個設備聯接到bbus上;設備b可以通過設備a的聯接端口也聯接到abus上,即:設備a與設備b級聯聯接,在設備b上可以設置消息轉發規則,從而實現設備總線abus和bbus之間的消息轉發(包括:轉發服務掛載請求、轉發服務訪問請求等)。在此基礎上,聯接到abus總線的設 備可以訪問bbus總線上的設備提供的服務,聯接到bbus總線的設備也可以訪問abus總線上的設備提供的服務,從而在級聯架構下實現跨設備的服務訪問過程。
在具體應用中,本實施例提供的方法可以應用于有跨設備服務訪問需求的場景中,特別是可以在部署于有限空間的系統中應用,從而能夠為用戶提供更為直觀、便捷的服務功能,例如可以應用于車載系統或者家庭娛樂系統中,下面對這兩種應用場景分別進行說明。
在車載系統中,車載控制設備可以作為主設備創建設備總線,智能手機、車載音響設備、車載硬盤機、車載dvd等設備都聯接到設備總線上,那么各設備就可以互相訪問彼此提供的服務功能。例如:車載音響設備提供音頻播放服務,智能手機上的某應用程序需要訪問音頻播放服務,智能手機可以通過設備總線向車載音響設備發送訪問請求,并在請求中攜帶待播放音頻的相關數據,例如:音頻數據文件,或者相關的資源地址信息等,該訪問請求通過設備間的聯接傳送到車載音響設備,車載音響設備將接收到的該訪問請求轉發給在其上運行的音頻播放程序,由音頻播放程序執行相應的音頻播放功能,從而為接入車載系統的智能手機提供了音頻播放服務。同樣的道理,智能手機也可以訪問車載dvd設備提供的視頻播放服務以及車載硬盤機提供的數據存儲服務等,基本的訪問過程與上述音頻播放服務類似,此處不再贅述。
在家庭娛樂系統中,智能電視可以作為主設備創建設備總線,智能手機、平板電腦等設備都聯接到設備總線上,那么各設備就可以互相訪問彼此提供的服務功能。例如:智能電視提供視頻播放服務,智能手機上的某應用程序需要訪問視頻播放服務,智能手機可以通過設備總線向智能電視發送訪問請求,并在請求中攜帶待播放視頻的相關數據,例如:視頻數據文件,或者相關的資源地址信息等,該訪問請求通過設備間的聯接傳送到智能電視,智能電視將接收到的該訪問請求轉發給在其上運行的視頻播放程序,由視頻播放程序執行相應的視頻播放功能,從而為接入家庭娛樂系統的智能手機提供了視頻播放服務。
綜上所述,本實施例提供的用于設備間服務的訪問方法,各設備通過主設備提供的聯接端口與主設備建立聯接,相當于在各設備之間形成了虛擬的設備總線,并可以基于所述設備總線實現跨設備的服務訪問功能,從而單個設備的部分能力可以成為標準化的功能模塊為其他設備服務,使設備間的功能組合成為可能,進而形成更為復雜和靈活的功能系統。
特別是,在部署于有限空間的系統(例如:車載系統或者家庭娛樂系統)中應用本方法,在基于設備總線實現跨設備服務訪問體系的基礎上,一方面由于接入設備的數量有限,從而能夠較好地保護用戶隱私,為跨設備服務訪問提供安全性保障,另一方面,由于各設備都處于有限空間內,能夠為用戶提供更為直觀的、近距離的服務體驗,例如:更佳的視音頻播放效果,從而顯著提升用戶的使用體驗。
在上述的實施例中,提供了一種用于設備間服務的訪問方法,與之相對應的,本申請還提供一種用于設備間服務的訪問裝置。請參看圖9,其為本申請的一種用于設備間服務的訪問裝置實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種用于設備間服務的訪問裝置,包括:訪問請求傳送單元901,用于第一程序對特定服務的訪問請求由運行所述第一程序的源設備發出、并通過設備間的聯接傳送到提供所述特定服務的目標設備;目標服務提供單元902,用于所述目標設備將接收到的所述訪問請求轉發給在其上運行的第二程序,并由所述第二程序執行相應的服務功能。
可選的,所述裝置包括:
聯接端口創建單元,用于所述主設備創建用于與其他設備建立聯接的聯接端口;
源設備聯接單元,用于當所述源設備為非主設備的從設備時,所述源設備向所述聯接端口發送聯接請求,所述主設備根據接收到的聯接請求,建立主設備和源設備之間的數據連接,以完成源設備和主設備之間的聯接過程;
目標設備聯接單元,用于當所述目標設備為非主設備的從設備時,所述目標設備向所述聯接端口發送聯接請求,所述主設備根據接收到的聯接請求,建立主設備和目標設備之間的數據連接,以完成目標設備和主設備之間的聯接過程。
可選的,所述訪問請求傳送單元具體用于,所述源設備根據預先存儲的服務配置信息封裝訪問請求并將其發出,所述訪問請求通過設備間的聯接、依照其包含的所述目標設備標識傳送到提供所述特定服務的目標設備;所述訪問請 求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
所述目標服務提供單元具體用于,目標設備根據預先存儲的服務配置信息,將所述訪問請求轉發給在其上運行的所述第二程序,并由所述第二程序執行相應的服務功能。
可選的,所述裝置包括:
目標設備服務掛載請求傳送單元,用于至少包含所述目標設備標識以及所述特定服務的服務標識的服務掛載請求由所述目標設備發出,并通過所述設備間的聯接傳送給至少包括所述源設備的各設備;
源設備服務配置信息存儲單元,用于所述源設備根據接收到的服務掛載請求,生成至少包含所述目標設備標識以及所述特定服務的服務標識的遠程服務配置項,并將所述遠程服務配置項添加到自己的服務配置信息中。
可選的,所述裝置還包括:
本地服務注冊單元,用于所述第二程序將自己提供的所述特定服務注冊到目標設備的服務配置信息中,以在所述服務配置信息中生成相應的本地服務配置項;
服務掛載請求生成單元,用于根據所述本地服務配置項中包含的所述特定服務的標識以及所述目標設備標識,生成所述服務掛載請求。
可選的,所述訪問請求傳送單元包括:
訪問請求封裝子單元,用于所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
第一訪問請求發送子單元,用于所述源設備根據封裝后的訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接,將所述訪問請求發送給所述目標設備。
可選的,所述訪問請求傳送單元包括:
訪問請求封裝子單元,用于所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
第二訪問請求發送子單元,用于所述源設備利用已與所述目標設備建立的聯接,將封裝后的訪問請求發送給所述目標設備。
可選的,所述訪問請求傳送單元包括:
訪問請求封裝子單元,用于所述源設備通過查詢預先存儲的服務配置信息封裝訪問請求,所述訪問請求中至少包含所述第一程序訪問的所述特定服務的服務標識和所述目標設備標識;
第三訪問請求發送子單元,用于所述源設備利用已與所述主設備建立的聯接,將封裝后的訪問請求發送給所述主設備;
訪問請求轉發子單元,用于所述主設備根據接收到的所述訪問請求包含的目標設備標識,利用已與所述目標設備建立的聯接,將所述訪問請求發送給所述目標設備。
可選的,所述目標服務提供單元包括:
訪問請求接收子單元,用于所述目標設備接收所述訪問請求后執行解封裝操作,并獲取被訪問的服務標識;
目標進程查找子單元,用于所述目標設備根據所述被訪問的服務標識查找服務配置信息中的本地服務配置項,獲取提供相應服務的第二程序進程的標識;
目標服務提供子單元,用于所述目標設備根據所述第二程序進程的標識,將解封裝后的訪問請求轉發給所述第二程序,由所述第二程序執行相應的服務功能。
可選的,所述訪問請求封裝子單元包括:
代理標識獲取子單元,用于所述第一程序根據所述特定服務的服務標識查詢服務配置信息,獲取為訪問所述特定服務提供代理服務的代理標識;
代理服務封裝子單元,用于所述第一程序根據所述代理標識,將包含所述特定服務的服務標識的訪問請求發送給相應的代理,并由所述代理為所述訪問請求封裝所述目標設備標識。
可選的,所述裝置還包括:
應答信息傳送單元,用于當所述目標服務提供單元執行完畢其功能后,第二程序針對所述訪問請求的應答信息由所述目標設備發出、并通過所述設備間的聯接傳送給所述源設備;
應答信息返回單元,用于所述源設備將接收到的所述應答信息返回給所述第一程序。
此外,本申請還提供一種用于設備間服務的配置方法。請參考圖10,其為本申請提供的用于設備間服務的配置方法的實施例的流程圖,本實施例與上述方法實施例步驟相同的部分不再贅述,下面重點描述不同之處。本申請提供的一種用于設備間服務的配置方法包括:
步驟1001、至少包含第一設備所提供服務的服務標識以及第一設備標識的服務掛載請求由所述第一設備發出、并通過設備間的聯接傳送到與主設備互聯的各設備。
其中,所述設備間的聯接包括:不同設備分別通過主設備提供的聯接端口與所述主設備建立的聯接。
所述第一設備可以通過如下方式生成所述服務掛載請求:在第一設備上運行的程序將各自提供的服務注冊到第一設備的服務配置信息中,以在所述服務配置信息中生成本地服務配置項;根據所述本地服務配置項中包含的服務標識以及第一設備的設備標識,生成所述服務掛載請求。
步驟1002、除所述第一設備之外的各設備根據接收到的服務掛載請求,生成至少包含所述第一設備標識以及第一設備所提供服務的服務標識的遠程服務配置項,并將所述遠程服務配置項添加到自己的服務配置信息中。
通過執行本步驟,聯接在主設備創建的設備總線上的各個設備(除第一設備外)都針對第一設備提供的服務生成了遠程服務配置項,即獲知了第一設備對外提供的服務信息,從而在各設備上運行的應用程序就可以訪問第一設備提供的相應服務了。
在此之后,還可以執行以下服務卸載流程、以及設備斷開流程,下面分別進行說明。
(一)服務卸載流程
根據具體需求,第一設備上的某個程序可能需要對外停止或者暫停提供某個服務功能,這種情況下,至少包含被卸載服務的服務標識的服務卸載請求由所述第一設備發出、并通過設備間的聯接傳送到與主設備互聯的各設備;除所述第一設備之外的各設備根據接收到的服務卸載請求,從自己的服務配置信息 中刪除包含所述服務標識的遠程服務配置項。
在具體實施時,在第一設備上運行的、需要停止或者暫停服務的程序可以先向sm注銷其提供的服務,sm刪除相應的本地服務配置項,并根據本地服務配置項的變更生成包含被卸載服務的服務標識的服務卸載請求。當第一設備為主設備時,第一設備的sm將服務卸載請求發送給總線控制模塊,當第一設備為從設備時,第一設備的sm將服務卸載請求發送給總線客戶端模塊,總線客戶端模塊將服務卸載請求發送給主設備的總線控制模塊。總線控制模塊利用設備總線以廣播方式將服務卸載請求發送給各個設備,除第一設備之外的各個設備將接收到的服務卸載請求發送給本設備上的sm,sm從服務配置信息中刪除包含被卸載服務的服務標識的遠程服務配置項,如果之前已針對所述被卸載服務生成了相應的代理,則sm可以觸發刪除相應代理的操作。
(二)設備斷開流程
當第一設備不是主設備時,第一設備可以向主設備發送設備斷開請求,所述請求中至少攜帶第一設備標識;所述主設備通過其與各設備之間的聯接、將所述設備斷開請求轉發給各設備;除所述第一設備之外的各設備根據接收到的設備斷開請求,從自己的服務配置信息中刪除包含所述第一設備標識的所有遠程服務配置項。
在具體實施時,通常由用戶或者系統向第一設備下達設備斷開指令,第一設備的總線客戶端模塊向主設備的總線控制模塊發送設備斷開請求,所述請求中至少攜帶第一設備標識;主設備的總線控制模塊通過其與各設備之間的聯接、采用廣播的方式將所述設備斷開請求轉發給設備總線上的各設備;除所述第一設備之外的各設備的總線客戶端模塊接收所述設備斷開請求后,將所述設備斷開請求發送給各自的sm,各設備的sm從服務配置信息中刪除與第一設備相關的遠程服務配置項,即:刪除包含所述第一設備標識的所有遠程服務配置項,如果之前已針對第一設備提供的各服務生成了相應的代理,則sm可以通知總線客戶端模塊刪除相應的代理。
此外,在具體應用中,還可以注銷設備總線。當第一設備是主設備時,第一設備接收總線注銷指令后,利用設備總線采用廣播發送的方式將所述總線注銷指令發送給各設備;所述各設備根據接收到的總線銷毀指令,從自己的服務配置信息中刪除全部遠程服務配置項。
在具體實施時,通常由用戶或者系統向主設備發送總線銷毀指令,第一設備(主設備)的總線控制模塊將所述總線銷毀指令廣播給設備總線上個各設備,各設備的總線客戶端模塊將接收到的總線銷毀指令發送給sm,sm刪除服務配置信息中的全部遠程服務配置項,如果被刪除的遠程服務配置項存在對應的代理,則sm可以通知總線控制模塊刪除相應的代理。此后,第一設備可以刪除聯接端口,從而完成設備總線的銷毀流程。
對于多主設備級聯的實施方式,服務配置信息中的遠程服務配置項中還可以包含設備總線標識(例如:設備總線名稱),用于表明提供相應服務的設備總線,總線銷毀指令中可以攜帶第一設備所創建總線的總線標識,從而各個設備上的sm可以根據接收到的總線銷毀指令,從服務配置信息中刪除與所述總線標識相關的遠程服務配置項(并通知總線控制模塊刪除相應的代理)。
至此對基于設備總線的服務配置過程進行了說明,實際應用中,本實施例中的第一設備可以為設備總線上的任意一個設備,即:聯接到設備總線上的每個設備都可以根據自己的實際情況執行掛載服務、卸載服務、或者斷開設備的操作,對于主設備還可以銷毀設備總線。通過上述方式,可以基于設備總線實現服務配置信息的實時更新,使得設備總線上的各設備都可以正確獲知其他設備提供的服務信息,從而可以為跨設備訪問服務提供可靠依據。
在上述的實施例中,提供了一種用于設備間服務的配置方法,與之相對應的,本申請還提供一種用于設備間服務的配置裝置。請參看圖11,其為本申請的一種用于設備間服務的配置裝置的實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種用于設備間服務的配置裝置,包括:掛載請求傳送單元1101,用于至少包含第一設備所提供服務的服務標識以及第一設備標識的服務掛載請求由所述第一設備發出、并通過設備間的聯接傳送到與主設備互聯的各設備;服務配置存儲單元1102,用于除所述第一設備之外的各設備根據接收到的服務掛載請求,生成至少包含所述第一設備標識以及第一設備所提供服務的服務標識的遠程服務配置項,并將所述遠程服務配置項添加到自己的服務配置信息中。
可選的,所述裝置包括:
服務卸載請求傳送單元,用于在所述服務配置存儲單元完成遠程服務配置項的添加操作后,至少包含被卸載服務的服務標識的服務卸載請求由所述第一設備發出、并通過設備間的聯接傳送到與主設備互聯的各設備;
第一服務配置刪除單元,用于除所述第一設備之外的各設備根據接收到的服務卸載請求,從自己的服務配置信息中刪除包含所述服務標識的遠程服務配置項。
可選的,所述裝置包括:
設備斷開請求發送單元,用于在所述服務配置存儲單元完成遠程服務配置項的添加操作后,所述第一設備向主設備發送設備斷開請求,所述請求中至少攜帶第一設備標識;
設備斷開請求轉發單元,用于所述主設備通過其與各設備之間的聯接、將所述設備斷開請求轉發給各設備;
第二服務配置刪除單元,用于除所述第一設備之外的各設備根據接收到的設備斷開請求,從自己的服務配置信息中刪除包含所述第一設備標識的所有遠程服務配置項。
此外,本申請還提供一種用于設備間的信息廣播方法。請參考圖12,其為本申請提供的一種用于設備間的信息廣播方法的實施例的流程圖,本實施例與上述方法實施例步驟相同的部分不再贅述,下面重點描述不同之處。本申請提供的一種用于設備間的信息廣播方法包括:
步驟1201、第一應用程序的廣播請求由運行所述第一應用程序的第一設備發出,并通過設備間的聯接傳送到與主設備互聯的各設備。
其中,所述設備間的聯接包括:不同設備分別通過主設備提供的聯接端口與所述設備建立的聯接。下面以第一設備不是主設備為例進行說明。
第一應用程序需要向其他設備上的應用程序廣播信息,此時可以向總線客戶端模塊發送廣播請求,廣播請求中可以攜帶被廣播的信息。第一設備的總線客戶端模塊將廣播請求發送給主設備的總線控制模塊,主設備的總線控制模塊采用廣播發送的方式,將廣播請求發送給設備總線上的各設備。
步驟1202、除所述第一設備之外的各設備將接收到的廣播請求發送給各自承載的應用程序。
除第一設備之外的各設備(包括主設備以及各從設備)通過總線控制模塊或者總線客戶端模塊接收所述廣播請求后,將所述廣播請求發送給各自承載的應用程序進程,各應用程序進程可以根據自己的需要處理所述廣播請求,例如:可以從中提取廣播信息,或者直接將所述廣播請求丟棄。
至此,對基于設備總線的信息廣播方法進行了描述,通過上述描述可以看出,上述方法提供了一種弱耦合的通訊方式,便于某一設備上的應用程序向其他設備上的應用程序申明信息或者發送通知,是設備間的信息交互方式的有益補充。
在上述的實施例中,提供了一種用于設備間的信息廣播方法,與之相對應的,本申請還提供一種用于設備間的信息廣播裝置。請參看圖13,其為本申請的一種用于設備間的信息廣播裝置的實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種用于設備間的信息廣播裝置,包括:廣播請求傳送單元1301,用于第一應用程序的廣播請求由運行所述第一應用程序的第一設備發出,并通過設備間的聯接傳送到與主設備互聯的各設備;廣播請求上報單元1302,用于除所述第一設備之外的各設備將接收到的廣播請求發送給各自承載的應用程序
本申請雖然以較佳實施例公開如上,但其并不是用來限定本申請,任何本領域技術人員在不脫離本申請的精神和范圍內,都可以做出可能的變動和修改,因此本申請的保護范圍應當以本申請權利要求所界定的范圍為準。
在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或閃存(flashram)。內存是計算機可讀介質的示例。
1、計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存 (pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitorymedia),如調制的數據信號和載波。
2、本領域技術人員應明白,本申請的實施例可提供為方法、系統或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。