本發(fā)明涉及設(shè)計(jì)內(nèi)置式設(shè)備的用戶接口(userinterface:ui)的用戶接口設(shè)計(jì)裝置以及根據(jù)由該用戶接口設(shè)計(jì)裝置生成的代碼來執(zhí)行用戶接口的用戶接口執(zhí)行裝置。
背景技術(shù):
以往的用戶接口執(zhí)行裝置通過將讀入過程需要時(shí)間的內(nèi)容預(yù)先存儲(chǔ)到讀入過程不需要時(shí)間的存儲(chǔ)區(qū)域,從而提高用戶操作時(shí)的內(nèi)容的讀入的響應(yīng)性,減輕由于讀入過程需要時(shí)間而引起的用戶的壓力。以下,把將內(nèi)容等信息預(yù)先存儲(chǔ)到讀入過程不需要時(shí)間的存儲(chǔ)區(qū)域的處理稱為預(yù)讀。為了預(yù)讀內(nèi)容的所有數(shù)據(jù)而需要確保足夠大的存儲(chǔ)區(qū)域,但一般而言存儲(chǔ)區(qū)域是有限的,所以確保將內(nèi)容的所有數(shù)據(jù)進(jìn)行存儲(chǔ)的存儲(chǔ)區(qū)域這是不現(xiàn)實(shí)的。因此,需要根據(jù)預(yù)讀的數(shù)據(jù)的選擇以及預(yù)讀開始的定時(shí)(timing)的判斷而將數(shù)據(jù)預(yù)讀到存儲(chǔ)區(qū)域。
以往,公開了如下技術(shù):在判斷為是未執(zhí)行前臺(tái)(foreground)的任務(wù)的狀態(tài)時(shí),執(zhí)行顯示用數(shù)據(jù)的預(yù)讀(例如參照專利文獻(xiàn)1)。另外,公開了如下技術(shù):預(yù)先定義表示由用戶進(jìn)行的操作輸入的種類與數(shù)據(jù)的讀出條件的關(guān)聯(lián)的規(guī)則信息,在由用戶進(jìn)行操作輸入時(shí)參照規(guī)則信息來決定預(yù)讀的數(shù)據(jù)(例如參照專利文獻(xiàn)2)。
專利文獻(xiàn)1:日本特開2011-141867號(hào)公報(bào)
專利文獻(xiàn)2:日本特開2010-282430號(hào)公報(bào)
技術(shù)實(shí)現(xiàn)要素:
在以往的用戶接口執(zhí)行裝置中,在用戶接口的執(zhí)行時(shí)動(dòng)態(tài)地判斷預(yù)讀的數(shù)據(jù),未規(guī)定廢除已預(yù)讀的數(shù)據(jù)的定時(shí)。因此,存在如下問題:難以在設(shè)計(jì)時(shí)預(yù)測保持已預(yù)讀的數(shù)據(jù)的存儲(chǔ)區(qū)域的最大大小。另外,未考慮已預(yù)讀的數(shù)據(jù)在預(yù)讀后被變更的情況,所以存在如下問題:即使在預(yù)讀后數(shù)據(jù)被變更的情況下,也有可能向用戶提示已預(yù)讀的變更前的舊的數(shù)據(jù)。
本發(fā)明是為了解決這樣的問題而完成的,其目的在于提供一種用戶接口執(zhí)行裝置以及用戶接口設(shè)計(jì)裝置,在用戶接口的設(shè)計(jì)時(shí)能夠預(yù)測存儲(chǔ)預(yù)讀的數(shù)據(jù)的存儲(chǔ)區(qū)域的最大大小,并且即使在已預(yù)讀的數(shù)據(jù)在預(yù)讀后被更新的情況下也能夠向用戶提示更新后的數(shù)據(jù)。
為了解決上述課題,本發(fā)明的用戶接口執(zhí)行裝置根據(jù)由設(shè)計(jì)用戶接口的用戶接口設(shè)計(jì)裝置生成的代碼,執(zhí)行用戶的操作內(nèi)容,該用戶接口執(zhí)行裝置具備:狀態(tài)轉(zhuǎn)移部,根據(jù)代碼和用戶的操作內(nèi)容,進(jìn)行用戶接口的狀態(tài)轉(zhuǎn)移;數(shù)據(jù)請求部,向數(shù)據(jù)提供部請求在用戶接口設(shè)計(jì)裝置中根據(jù)在與用戶接口的狀態(tài)靜態(tài)地關(guān)聯(lián)起來定義的代碼中包含的數(shù)據(jù)取得接口而生成的數(shù)據(jù)的預(yù)讀請求及數(shù)據(jù)的預(yù)讀廢除請求中的至少一個(gè)請求;以及數(shù)據(jù)存儲(chǔ)部,存儲(chǔ)作為針對數(shù)據(jù)請求部的請求的響應(yīng)而從數(shù)據(jù)提供部取得的數(shù)據(jù)。
另外,本發(fā)明的用戶接口設(shè)計(jì)裝置設(shè)計(jì)用戶接口,該用戶接口設(shè)計(jì)裝置具備:狀態(tài)轉(zhuǎn)移定義部,定義對用戶接口的狀態(tài)轉(zhuǎn)移進(jìn)行了定義的狀態(tài)轉(zhuǎn)移定義;接口定義部,定義對執(zhí)行用戶接口的用戶接口執(zhí)行裝置與向該用戶接口執(zhí)行裝置提供數(shù)據(jù)的數(shù)據(jù)提供部之間的接口進(jìn)行了定義的接口定義;以及預(yù)讀生成部,根據(jù)由狀態(tài)轉(zhuǎn)移定義部定義的狀態(tài)轉(zhuǎn)移定義和由接口定義部定義的接口定義,在預(yù)先確定的接口的狀態(tài)下生成針對數(shù)據(jù)提供部執(zhí)行數(shù)據(jù)的預(yù)讀請求及預(yù)讀廢除請求中的至少一個(gè)請求的代碼。
根據(jù)本發(fā)明,用戶接口執(zhí)行裝置根據(jù)由設(shè)計(jì)用戶接口的用戶接口設(shè)計(jì)裝置生成的代碼,執(zhí)行用戶的操作內(nèi)容,該用戶接口執(zhí)行裝置具備:狀態(tài)轉(zhuǎn)移部,根據(jù)代碼和用戶的操作內(nèi)容,進(jìn)行用戶接口的狀態(tài)轉(zhuǎn)移;數(shù)據(jù)請求部,向數(shù)據(jù)提供部請求在用戶接口設(shè)計(jì)裝置中根據(jù)在與用戶接口的狀態(tài)靜態(tài)地關(guān)聯(lián)起來定義的代碼中包含的數(shù)據(jù)取得接口而生成的數(shù)據(jù)的預(yù)讀請求及數(shù)據(jù)的預(yù)讀廢除請求中的至少一個(gè)請求;以及數(shù)據(jù)存儲(chǔ)部,存儲(chǔ)作為針對數(shù)據(jù)請求部的請求的響應(yīng)而從數(shù)據(jù)提供部取得的數(shù)據(jù),所以在設(shè)計(jì)用戶接口時(shí)能夠預(yù)測存儲(chǔ)預(yù)讀的數(shù)據(jù)的存儲(chǔ)區(qū)域的最大大小,并且在所預(yù)讀的數(shù)據(jù)在預(yù)讀后被更新的情況下也能夠向用戶提示更新后的數(shù)據(jù)。
另外,用戶接口設(shè)計(jì)裝置設(shè)計(jì)用戶接口,該用戶接口設(shè)計(jì)裝置具備:狀態(tài)轉(zhuǎn)移定義部,定義對用戶接口的狀態(tài)轉(zhuǎn)移進(jìn)行了定義的狀態(tài)轉(zhuǎn)移定義;接口定義部,定義對執(zhí)行用戶接口的用戶接口執(zhí)行裝置與向該用戶接口執(zhí)行裝置提供數(shù)據(jù)的數(shù)據(jù)提供部之間的接口進(jìn)行了定義的接口定義;以及預(yù)讀生成部,根據(jù)由狀態(tài)轉(zhuǎn)移定義部定義的狀態(tài)轉(zhuǎn)移定義和由接口定義部定義的接口定義,在預(yù)先確定的接口的狀態(tài)下生成針對數(shù)據(jù)提供部執(zhí)行數(shù)據(jù)的預(yù)讀請求及預(yù)讀廢除請求中的至少一個(gè)請求的代碼,所以在設(shè)計(jì)用戶接口時(shí)能夠預(yù)測存儲(chǔ)預(yù)讀的數(shù)據(jù)的存儲(chǔ)區(qū)域的最大大小,并且在所預(yù)讀的數(shù)據(jù)在預(yù)讀后被更新的情況下也能夠向用戶提示更新后的數(shù)據(jù)。
本發(fā)明的目的、特征、方案以及優(yōu)點(diǎn)通過以下的詳細(xì)的說明和附圖會(huì)變得更加明確。
附圖說明
圖1是示出本發(fā)明的實(shí)施方式1的用戶接口設(shè)計(jì)裝置、用戶接口執(zhí)行裝置以及數(shù)據(jù)提供部的結(jié)構(gòu)的一個(gè)例子的框圖。
圖2是示出與本發(fā)明的實(shí)施方式1的用戶接口設(shè)計(jì)裝置、用戶接口執(zhí)行裝置以及數(shù)據(jù)提供部中的軟件功能對應(yīng)的硬件結(jié)構(gòu)的一個(gè)例子的圖。
圖3是示出本發(fā)明的實(shí)施方式1的針對用戶接口設(shè)計(jì)裝置的輸入及其生成代碼的一個(gè)例子的圖。
圖4是示出本發(fā)明的實(shí)施方式1的用戶接口執(zhí)行裝置的動(dòng)作的一個(gè)例子的流程圖。
圖5是示出本發(fā)明的實(shí)施方式1的數(shù)據(jù)提供部中的接收到預(yù)讀請求時(shí)的動(dòng)作的一個(gè)例子的流程圖。
圖6是示出本發(fā)明的實(shí)施方式1的數(shù)據(jù)提供部中的接收到預(yù)讀廢除請求時(shí)的動(dòng)作的一個(gè)例子的流程圖。
圖7是示出本發(fā)明的實(shí)施方式1的數(shù)據(jù)提供部中的值更新時(shí)的動(dòng)作的一個(gè)例子的流程圖。
圖8是示出本發(fā)明的實(shí)施方式1的用戶接口執(zhí)行裝置中的接收到變更后的數(shù)據(jù)時(shí)的動(dòng)作的一個(gè)例子的流程圖。
圖9是示出本發(fā)明的實(shí)施方式1的由數(shù)據(jù)存儲(chǔ)部管理的數(shù)據(jù)的形式的一個(gè)例子的圖。
圖10是示出本發(fā)明的實(shí)施方式1的由預(yù)讀管理部管理的預(yù)讀管理數(shù)據(jù)的一個(gè)例子的圖。
圖11是示出本發(fā)明的實(shí)施方式2的用戶接口執(zhí)行裝置的結(jié)構(gòu)的一個(gè)例子的框圖。
圖12是示出本發(fā)明的實(shí)施方式3的用戶接口執(zhí)行裝置的結(jié)構(gòu)的一個(gè)例子的框圖。
圖13是示出本發(fā)明的實(shí)施方式3的由數(shù)據(jù)存儲(chǔ)部管理的client(客戶端)管理表格的一個(gè)例子的圖。
圖14是示出本發(fā)明的實(shí)施方式4的用戶接口執(zhí)行裝置的結(jié)構(gòu)的一個(gè)例子的框圖。
圖15是示出本發(fā)明的實(shí)施方式4的由預(yù)讀管理部管理的管理數(shù)據(jù)的一個(gè)例子的圖。
圖16是示出本發(fā)明的實(shí)施方式5的用戶接口執(zhí)行裝置的結(jié)構(gòu)的一個(gè)例子的框圖。
圖17是示出本發(fā)明的實(shí)施方式5的表示針對接口定義的數(shù)據(jù)取得接口的數(shù)據(jù)的種類的標(biāo)志的設(shè)定的一個(gè)例子的圖。
圖18是示出本發(fā)明的實(shí)施方式5的由數(shù)據(jù)存儲(chǔ)部管理的數(shù)據(jù)的形式的一個(gè)例子的圖。
(符號(hào)說明)
1:用戶接口設(shè)計(jì)裝置;2:用戶接口執(zhí)行裝置;3:數(shù)據(jù)提供部;4:輸入裝置;5:提示裝置;6:轉(zhuǎn)移設(shè)計(jì)部;7:接口定義部;8:狀態(tài)轉(zhuǎn)移定義;9:接口定義;10:狀態(tài)轉(zhuǎn)移生成部;11:預(yù)讀生成部;12:數(shù)據(jù)取得生成部;13:預(yù)讀管理生成部;14:用戶接口執(zhí)行部;15:數(shù)據(jù)取得部;16:數(shù)據(jù)存儲(chǔ)部;17:事件取得部;18:狀態(tài)轉(zhuǎn)移部;19:數(shù)據(jù)處理部;20:數(shù)據(jù)請求部;21:提示控制部;22:請求處理部;23:預(yù)讀管理部;24:響應(yīng)返回部;25:數(shù)據(jù)生成處理部;26:處理器;27:存儲(chǔ)器;28:狀態(tài)轉(zhuǎn)移圖;29:對應(yīng)定義;30:狀態(tài)轉(zhuǎn)移代碼;31:預(yù)讀執(zhí)行代碼;32:儲(chǔ)存數(shù)據(jù)訪問代碼;33:預(yù)讀管理代碼;34:用戶接口執(zhí)行裝置;35:用戶接口執(zhí)行部;36:用戶接口執(zhí)行裝置;37:輸入裝置;38、39、40:提示裝置;41、42、43:用戶接口執(zhí)行部;44:數(shù)據(jù)取得部;45:數(shù)據(jù)存儲(chǔ)部;46:事件取得部;47:狀態(tài)轉(zhuǎn)移部;48:數(shù)據(jù)處理部;49:數(shù)據(jù)請求部;50:提示控制部;51:事件取得部;52:狀態(tài)轉(zhuǎn)移部;53:數(shù)據(jù)處理部;54:數(shù)據(jù)請求部;55:提示控制部;56:事件取得部;57:狀態(tài)轉(zhuǎn)移部;58:數(shù)據(jù)處理部;59:數(shù)據(jù)請求部;60:提示控制部;61:用戶接口執(zhí)行裝置;62:輸入裝置;63:提示裝置;64:用戶接口執(zhí)行部;65:數(shù)據(jù)取得部;66:數(shù)據(jù)存儲(chǔ)部;67:事件取得部;68:狀態(tài)轉(zhuǎn)移部;69:數(shù)據(jù)處理部;70:數(shù)據(jù)請求部;71:提示控制部;72:用戶接口執(zhí)行裝置;73:啟動(dòng)停止輸入裝置;74:備份部;75:非易失性存儲(chǔ)部。
具體實(shí)施方式
以下,使用附圖來說明本發(fā)明的實(shí)施方式。
<實(shí)施方式1>
<結(jié)構(gòu)>
圖1是示出本發(fā)明的實(shí)施方式1的用戶接口設(shè)計(jì)裝置1、用戶接口執(zhí)行裝置2以及數(shù)據(jù)提供部3的結(jié)構(gòu)的一個(gè)例子的框圖。此外,在圖1中,實(shí)線箭頭表示各構(gòu)成要素之間的數(shù)據(jù)的流向,虛線箭頭表示在狀態(tài)轉(zhuǎn)移生成部10、預(yù)讀生成部11、數(shù)據(jù)取得生成部12以及預(yù)讀管理生成部13各自中所生成的代碼的流向。
首先,說明用戶接口設(shè)計(jì)裝置1的結(jié)構(gòu)。
用戶接口設(shè)計(jì)裝置1是用戶接口設(shè)計(jì)者使用的裝置,具備轉(zhuǎn)移設(shè)計(jì)部6、接口定義部7、狀態(tài)轉(zhuǎn)移生成部10、預(yù)讀生成部11、數(shù)據(jù)取得生成部12以及預(yù)讀管理生成部13。
轉(zhuǎn)移設(shè)計(jì)部6(狀態(tài)轉(zhuǎn)移定義部)設(shè)計(jì)用戶接口的狀態(tài)。具體而言,在轉(zhuǎn)移設(shè)計(jì)部6中,根據(jù)用戶接口設(shè)計(jì)者的輸入來制作狀態(tài)轉(zhuǎn)移定義8。即,轉(zhuǎn)移設(shè)計(jì)部6定義狀態(tài)轉(zhuǎn)移定義8,該狀態(tài)轉(zhuǎn)移定義8定義了用戶接口的狀態(tài)轉(zhuǎn)移。
接口定義部7定義用戶接口執(zhí)行裝置2的用戶接口執(zhí)行部14與對該用戶接口執(zhí)行部14提供數(shù)據(jù)的數(shù)據(jù)提供部3之間的接口定義9。在狀態(tài)轉(zhuǎn)移定義8中,能夠定義由接口定義部7所定義的接口定義9之中的有在特定的狀態(tài)下使用的可能性的接口群。
狀態(tài)轉(zhuǎn)移生成部10根據(jù)狀態(tài)轉(zhuǎn)移定義8而生成狀態(tài)轉(zhuǎn)移代碼30(參照圖3),該狀態(tài)轉(zhuǎn)移代碼30是對用戶接口執(zhí)行裝置2的用戶接口執(zhí)行部14的狀態(tài)轉(zhuǎn)移進(jìn)行處理的軟件的源代碼。所生成的狀態(tài)轉(zhuǎn)移代碼30被傳送到用戶接口執(zhí)行裝置2的狀態(tài)轉(zhuǎn)移部18。
預(yù)讀生成部11根據(jù)狀態(tài)轉(zhuǎn)移定義8以及接口定義9,在預(yù)先確定的接口的狀態(tài)下生成預(yù)讀執(zhí)行代碼31(參照圖3),該預(yù)讀執(zhí)行代碼31是由用戶接口執(zhí)行裝置2的用戶接口執(zhí)行部14執(zhí)行預(yù)讀請求以及預(yù)讀廢除請求中的至少一個(gè)請求的軟件的源代碼。在此,預(yù)讀請求是指,向數(shù)據(jù)提供部請求提供在預(yù)先確定的接口的狀態(tài)下可能需要的數(shù)據(jù)。另外,預(yù)讀廢除請求是指,停止(廢除)針對數(shù)據(jù)提供部的預(yù)讀請求。此外,設(shè)為預(yù)先確定的接口的狀態(tài)包括轉(zhuǎn)移預(yù)先確定的次數(shù)之后的接口的狀態(tài)。所生成的預(yù)讀執(zhí)行代碼31被傳送到用戶接口執(zhí)行裝置2的數(shù)據(jù)請求部20。此外,關(guān)于預(yù)讀請求以及預(yù)讀廢除請求,在后面敘述。
數(shù)據(jù)取得生成部12根據(jù)接口定義9,生成儲(chǔ)存數(shù)據(jù)訪問代碼32(參照圖3),該儲(chǔ)存數(shù)據(jù)訪問代碼32是成為面向儲(chǔ)存從數(shù)據(jù)提供部3提供的數(shù)據(jù)的用戶接口執(zhí)行裝置2的數(shù)據(jù)存儲(chǔ)部16的接口的軟件的源代碼。所生成的儲(chǔ)存數(shù)據(jù)訪問代碼32被傳送到用戶接口執(zhí)行裝置2的數(shù)據(jù)取得部15。
預(yù)讀管理生成部13根據(jù)接口定義9,生成預(yù)讀管理代碼33(參照圖3),該預(yù)讀管理代碼33是對用戶接口執(zhí)行裝置2中的數(shù)據(jù)的預(yù)讀狀態(tài)進(jìn)行管理的軟件的源代碼。所生成的預(yù)讀管理代碼33被傳送到數(shù)據(jù)提供部3的預(yù)讀管理部23。
接下來,說明用戶接口執(zhí)行裝置2的結(jié)構(gòu)。
用戶接口執(zhí)行裝置2具備用戶接口執(zhí)行部14、數(shù)據(jù)取得部15以及數(shù)據(jù)存儲(chǔ)部16,以來自直接受理用戶的輸入操作的輸入裝置4的輸入或者來自數(shù)據(jù)提供部3的數(shù)據(jù)的接收等為契機(jī),控制提示用戶接口的處理的結(jié)果的提示裝置4。
用戶接口執(zhí)行部14具備事件取得部17、狀態(tài)轉(zhuǎn)移部18、數(shù)據(jù)處理部19、數(shù)據(jù)請求部20以及提示控制部21。
事件取得部17取得來自輸入裝置4的輸入或者來自數(shù)據(jù)提供部3的數(shù)據(jù)的接收等而作為事件。由事件取得部17處理的事件被分類為使用戶接口的狀態(tài)轉(zhuǎn)移的狀態(tài)轉(zhuǎn)移事件、針對數(shù)據(jù)提供部3的操作事件以及用于將來自輸入裝置4的輸入信號(hào)直接利用于提示控制的輸入數(shù)據(jù)事件。狀態(tài)轉(zhuǎn)移事件被傳送到狀態(tài)轉(zhuǎn)移部18。操作事件在被傳送到數(shù)據(jù)請求部20之后,經(jīng)由數(shù)據(jù)取得部15被傳送到數(shù)據(jù)提供部3。輸入數(shù)據(jù)事件在被傳送到數(shù)據(jù)處理部19之后,作為輸入數(shù)據(jù)的變更被傳送到提示控制部21。在此,作為輸入數(shù)據(jù)事件,例如可以列舉根據(jù)用戶針對觸摸面板的觸碰中的操作量(滑動(dòng)的移動(dòng)量)來變更畫面的移動(dòng)量的處理等。
狀態(tài)轉(zhuǎn)移部18接收由用戶接口設(shè)計(jì)裝置1的狀態(tài)轉(zhuǎn)移生成部10所生成的狀態(tài)轉(zhuǎn)移代碼30,執(zhí)行基于接收到的狀態(tài)轉(zhuǎn)移代碼30的接口的狀態(tài)轉(zhuǎn)移。另外,狀態(tài)轉(zhuǎn)移部18在狀態(tài)轉(zhuǎn)移時(shí)針對從用戶接口設(shè)計(jì)裝置1的預(yù)讀生成部11接收到預(yù)讀執(zhí)行代碼31的數(shù)據(jù)請求部20執(zhí)行預(yù)讀請求。
數(shù)據(jù)請求部20根據(jù)事件取得部17以及狀態(tài)轉(zhuǎn)移部18的指示,訪問數(shù)據(jù)提供部3提供的數(shù)據(jù)、功能。數(shù)據(jù)請求部20從事件取得部17接收依照不伴隨狀態(tài)轉(zhuǎn)移的操作事件的向數(shù)據(jù)提供部3的請求。例如,數(shù)據(jù)請求部20從事件取得部17接收“音樂的再現(xiàn)開始”等請求。另外,數(shù)據(jù)請求部20從狀態(tài)轉(zhuǎn)移部18接收預(yù)讀請求的指示。
數(shù)據(jù)處理部19將由事件取得部17處理的帶數(shù)據(jù)的事件和經(jīng)由數(shù)據(jù)取得部15從數(shù)據(jù)提供部3取得的數(shù)據(jù)加工成能夠利用于用戶接口的提示。在此,作為帶數(shù)據(jù)的事件,可以列舉從輸入裝置4輸入的輸入數(shù)據(jù)事件和接受經(jīng)由數(shù)據(jù)取得部15從數(shù)據(jù)提供部3取得的數(shù)據(jù)的取得數(shù)據(jù)事件。
提示控制部21根據(jù)用戶接口執(zhí)行部14的狀態(tài)和由數(shù)據(jù)處理部19加工的數(shù)據(jù),生成在提示裝置5中實(shí)際向用戶提示的信息,生成以能夠在提示裝置5中提示的方式進(jìn)行了加工的控制信號(hào)。具體而言,提示控制部21從狀態(tài)轉(zhuǎn)移部18取得用戶接口執(zhí)行部14的狀態(tài),從數(shù)據(jù)處理部19取得向用戶提示的數(shù)據(jù)。由提示控制部21生成的控制信號(hào)被傳送到提示裝置5,在提示裝置5中執(zhí)行向用戶的提示。此外,在本實(shí)施方式中,提示是指,不限于畫面中的顯示,還包括利用聲音再現(xiàn)進(jìn)行的聲音提示以及使用觸覺設(shè)備的作為力覺的提示。
數(shù)據(jù)取得部15在從數(shù)據(jù)請求部20接收到預(yù)讀請求時(shí),確認(rèn)在數(shù)據(jù)存儲(chǔ)部16中是否存在與從數(shù)據(jù)請求部20請求的數(shù)據(jù)相同的數(shù)據(jù)。在數(shù)據(jù)存儲(chǔ)部16中不存在相同的數(shù)據(jù)的情況下,數(shù)據(jù)取得部15向數(shù)據(jù)提供部3進(jìn)行請求使得送出作為預(yù)讀請求的對象的數(shù)據(jù)。另一方面,在數(shù)據(jù)存儲(chǔ)部16中存在相同的數(shù)據(jù)的情況下,數(shù)據(jù)取得部15不向數(shù)據(jù)提供部3進(jìn)行請求,而是對數(shù)據(jù)請求部20響應(yīng)成功(存在相同的數(shù)據(jù))的意思。
另外,數(shù)據(jù)取得部15在從數(shù)據(jù)處理部19接收到希望取得實(shí)際的數(shù)據(jù)的意思的請求(數(shù)據(jù)取得請求)時(shí),確認(rèn)在數(shù)據(jù)存儲(chǔ)部16中是否存在與從數(shù)據(jù)處理部19請求的數(shù)據(jù)相同的數(shù)據(jù)。在數(shù)據(jù)存儲(chǔ)部16中存在相同的數(shù)據(jù)的情況下,數(shù)據(jù)取得部15不向數(shù)據(jù)提供部3請求數(shù)據(jù),而是將存儲(chǔ)在數(shù)據(jù)存儲(chǔ)部16中的相同的數(shù)據(jù)作為響應(yīng)來返回。另一方面,在數(shù)據(jù)存儲(chǔ)部16中不存在相同的數(shù)據(jù)的情況下,數(shù)據(jù)取得部15將在數(shù)據(jù)存儲(chǔ)部16中不存在相同的數(shù)據(jù)的意思的錯(cuò)誤(error)作為響應(yīng)來返回。
另外,數(shù)據(jù)取得部15在從數(shù)據(jù)請求部20接收到基于并非是數(shù)據(jù)取得接口的其它接口的請求的情況下,不參照數(shù)據(jù)存儲(chǔ)部16,而向數(shù)據(jù)提供部送出數(shù)據(jù)的請求。
輸入裝置4解釋用戶的輸入操作,并作為事件送出到用戶接口執(zhí)行裝置2。在此,作為輸入裝置4,例如可以列舉觸摸面板、鼠標(biāo)、鍵盤、h/w(hardware,硬件)鍵、旋鈕開關(guān)、遠(yuǎn)程控制器、聲音辨識(shí)引擎等。
提示裝置5根據(jù)從提示控制部21接收到的控制信號(hào),向用戶提示信息。在此,作為提示裝置5,可以列舉液晶顯示器或投影儀等提示視覺信息的設(shè)備、揚(yáng)聲器或耳機(jī)等提示聲音信息的設(shè)備、振子等提示力覺的設(shè)備等。
接下來,說明數(shù)據(jù)提供部3的結(jié)構(gòu)。
數(shù)據(jù)提供部3是向用戶接口執(zhí)行裝置2提供在提示裝置5中提示的數(shù)據(jù)的裝置,具備請求處理部22、預(yù)讀管理部23、響應(yīng)返回部24以及數(shù)據(jù)生成處理部25。
請求處理部22從數(shù)據(jù)取得部15接收預(yù)讀請求、預(yù)讀廢除請求以及請求針對數(shù)據(jù)提供部3預(yù)先確定的處理的指示請求中的至少一個(gè)請求。
預(yù)讀管理部23根據(jù)由預(yù)讀管理生成部13生成的預(yù)讀管理代碼33,管理用戶接口執(zhí)行裝置2中的數(shù)據(jù)的預(yù)讀狀態(tài)。具體而言,根據(jù)請求處理部22接收到的預(yù)讀請求或者預(yù)讀廢除請求進(jìn)行預(yù)讀管理部23中的管理。
響應(yīng)返回部24針對請求處理部22接收到的預(yù)讀請求或者數(shù)據(jù)取得請求,向數(shù)據(jù)取得部15返回?cái)?shù)據(jù)。另外,響應(yīng)返回部24在從數(shù)據(jù)生成處理部25被通知通過數(shù)據(jù)生成處理部25的處理更新了在數(shù)據(jù)提供部3中保持的數(shù)據(jù)時(shí),參照預(yù)讀管理部23來判斷該更新后的數(shù)據(jù)是否是預(yù)讀狀態(tài)。另外,在更新后的數(shù)據(jù)是預(yù)讀狀態(tài)的情況下,響應(yīng)返回部24對數(shù)據(jù)取得部15通知數(shù)據(jù)(更具體而言是數(shù)據(jù)的值)被更新的意思。
數(shù)據(jù)生成處理部25進(jìn)行數(shù)據(jù)提供部3保持的數(shù)據(jù)的更新處理或者數(shù)據(jù)的生成處理。通過數(shù)據(jù)提供部3的開發(fā)人員描述程序來進(jìn)行這些處理。此外,設(shè)為在數(shù)據(jù)提供部3具備的存儲(chǔ)部(未圖示)中保持有數(shù)據(jù)提供部3保持的數(shù)據(jù)。
圖2是示出與圖1所示的用戶接口設(shè)計(jì)裝置1、用戶接口執(zhí)行裝置2以及數(shù)據(jù)提供部3中的軟件功能對應(yīng)的硬件結(jié)構(gòu)的一個(gè)例子的圖。
在用戶接口設(shè)計(jì)裝置1中,轉(zhuǎn)移設(shè)計(jì)部6、接口定義部7、狀態(tài)轉(zhuǎn)移生成部10、預(yù)讀生成部11、數(shù)據(jù)取得生成部12以及預(yù)讀管理生成部13例如通過由圖2的處理器26執(zhí)行存儲(chǔ)在存儲(chǔ)器27等中的程序而被實(shí)現(xiàn)為該處理器26的功能。但是,它們例如也可以由多個(gè)處理器26協(xié)作來實(shí)現(xiàn)。
另外,在用戶接口執(zhí)行裝置2中,用戶接口執(zhí)行部14、數(shù)據(jù)取得部15、事件取得部17、狀態(tài)轉(zhuǎn)移部18、數(shù)據(jù)處理部19、數(shù)據(jù)請求部20以及提示控制部21例如通過由圖2的處理器26執(zhí)行存儲(chǔ)在存儲(chǔ)器27等中的程序而被實(shí)現(xiàn)為該處理器26的功能。但是,它們例如也可以由多個(gè)處理器26協(xié)作來實(shí)現(xiàn)。
另外,在數(shù)據(jù)提供部3中,請求處理部22、預(yù)讀管理部23、響應(yīng)返回部24以及數(shù)據(jù)生成處理部25例如通過由圖2的處理器26執(zhí)行存儲(chǔ)在存儲(chǔ)器27等中的程序而被實(shí)現(xiàn)為該處理器26的功能。但是,它們例如也可以由多個(gè)處理器26協(xié)作來實(shí)現(xiàn)。
此外,設(shè)為處理器26以及存儲(chǔ)器27設(shè)置于用戶接口設(shè)計(jì)裝置1、用戶接口執(zhí)行裝置2以及數(shù)據(jù)提供部3各自中。
圖3是示出針對用戶接口設(shè)計(jì)裝置1的輸入及其生成代碼的一個(gè)例子的圖。
用戶對轉(zhuǎn)移設(shè)計(jì)部6以及接口定義部7,輸入在用戶接口執(zhí)行裝置2中執(zhí)行的用戶接口的設(shè)計(jì)。
用戶對轉(zhuǎn)移設(shè)計(jì)部6輸入狀態(tài)轉(zhuǎn)移圖28和對應(yīng)定義29,該對應(yīng)定義29定義了在各狀態(tài)下利用的接口的對應(yīng)。此外,轉(zhuǎn)移設(shè)計(jì)部6既可以自身具有g(shù)ui(graphicaluserinterface,圖形用戶接口(圖形用戶界面))而使用戶進(jìn)行輸入,也可以輸入使用對uml(unifiedmodelinglanguage,統(tǒng)一建模語言)進(jìn)行編輯的工具來設(shè)計(jì)的狀態(tài)轉(zhuǎn)移模型。另外,狀態(tài)轉(zhuǎn)移定義8包括狀態(tài)轉(zhuǎn)移圖28和對應(yīng)定義29。
在圖3的例子中,狀態(tài)轉(zhuǎn)移圖28表示在狀態(tài)s1時(shí)如果受理事件e1則轉(zhuǎn)移到狀態(tài)s2。另外,狀態(tài)轉(zhuǎn)移圖28表示在狀態(tài)s2時(shí)如果受理事件e2則轉(zhuǎn)移到狀態(tài)s1,在狀態(tài)s2時(shí)如果受理事件e3則轉(zhuǎn)移到狀態(tài)s3。另外,狀態(tài)轉(zhuǎn)移圖28表示在狀態(tài)s3時(shí)如果受理事件e4則轉(zhuǎn)移到狀態(tài)s1。
對應(yīng)定義29定義了有在由狀態(tài)轉(zhuǎn)移圖28定義的各狀態(tài)下利用的可能性的接口的對應(yīng)。此外,對應(yīng)定義29既可以定義為狀態(tài)轉(zhuǎn)移圖28中的各狀態(tài)的屬性(property),也可以利用其它文件來定義。在圖3的例子中,對應(yīng)定義29表示在狀態(tài)s1下利用getdataa、getstated、dosomething這3個(gè)接口,在狀態(tài)s2下利用getdataa、getcurrentstate、onnotifye2這3個(gè)接口,在狀態(tài)s3下利用getlistc、getcurrentstate、dosomething這3個(gè)接口。
接口定義9包括用戶接口執(zhí)行裝置2的用戶接口執(zhí)行部14與數(shù)據(jù)提供部3之間的接口的定義以及根據(jù)該接口從數(shù)據(jù)提供部3得到的數(shù)據(jù)的最大大小的定義。在接口定義9中示出其接口是什么樣的接口。在圖3的例子中,從“get”開頭的接口表示是從數(shù)據(jù)提供部3取得數(shù)據(jù)的接口(數(shù)據(jù)取得接口)。從“do”開頭的接口表示是對數(shù)據(jù)提供部3進(jìn)行指示的接口(指示接口)。從“onnotify”開頭的接口表示是從數(shù)據(jù)提供部3向用戶接口執(zhí)行部14的事件通知的接口(事件通知接口)。
此外,在本實(shí)施方式1中,接口定義9表示基于記載規(guī)則的默認(rèn)的定義,但例如也可以在指定接口定義9的類型之前,明確地宣布數(shù)據(jù)取得接口是“getter”、指示接口是“method”、事件通知接口是“event”等。
在圖3的例子中,接口定義9關(guān)于servicea這樣的針對數(shù)據(jù)提供部3的接口,定義了4種數(shù)據(jù)取得接口、1種指示接口以及1種事件通知接口。
另外,在接口定義9中,能夠定義根據(jù)數(shù)據(jù)取得接口從數(shù)據(jù)提供部3取得的數(shù)據(jù)的最大大小。圖3的例子中,關(guān)于接口定義9的數(shù)據(jù)大小,將dataa定義為4字節(jié),將stringb定義為4×256字節(jié),將listc的最大保持大小定義為16×256+8字節(jié),將stated定義為16字節(jié)。
狀態(tài)轉(zhuǎn)移生成部10根據(jù)狀態(tài)轉(zhuǎn)移定義8,生成狀態(tài)轉(zhuǎn)移代碼30。在圖3的例子中,狀態(tài)轉(zhuǎn)移代碼30表示在狀態(tài)s1時(shí)如果受理事件e1則狀態(tài)轉(zhuǎn)移到狀態(tài)s2。另外,狀態(tài)轉(zhuǎn)移生成部10讀入作為在對應(yīng)定義29的狀態(tài)s1中定義的數(shù)據(jù)取得接口的getdataa以及getstated,生成狀態(tài)轉(zhuǎn)移代碼30,該狀態(tài)轉(zhuǎn)移代碼30是在轉(zhuǎn)移到狀態(tài)s1時(shí)執(zhí)行subscribe_dataa()以及subscribe_stated()、在從狀態(tài)s1轉(zhuǎn)移到其它狀態(tài)時(shí)執(zhí)行unsubscribe_dataa()以及unsubscribe_stated()的代碼。
預(yù)讀生成部11根據(jù)狀態(tài)轉(zhuǎn)移定義8和接口定義9,生成預(yù)讀執(zhí)行代碼31。在圖3的例子中,預(yù)讀生成部11生成預(yù)讀執(zhí)行代碼31,該預(yù)讀執(zhí)行代碼31包括從狀態(tài)轉(zhuǎn)移代碼30調(diào)用的subscribe_dataa()以及subscribe_stated()和作為從數(shù)據(jù)取得部15取得數(shù)據(jù)的數(shù)據(jù)取得接口的getdataa()以及getstated()。sbscribe_dataa根據(jù)接口定義9判斷dataa是int類型,通過將int的大小追加到自變量而調(diào)用進(jìn)行預(yù)讀處理的subscribe。另外,在作為數(shù)據(jù)取得接口的獲取方法(getmethod)中,生成從數(shù)據(jù)存儲(chǔ)部16變換為int的形式來取出的代碼。此外,關(guān)于stated也是同樣的。
另外,預(yù)讀生成部11根據(jù)由該預(yù)讀生成部11生成的預(yù)讀執(zhí)行代碼31和在接口定義9中包含的數(shù)據(jù)的最大大小的定義,計(jì)算由狀態(tài)轉(zhuǎn)移定義8所定義的各狀態(tài)下的存儲(chǔ)從數(shù)據(jù)提供部3提供的數(shù)據(jù)的用戶接口執(zhí)行裝置2的數(shù)據(jù)存儲(chǔ)部16的最大大小。
數(shù)據(jù)取得生成部12根據(jù)接口定義9而生成儲(chǔ)存數(shù)據(jù)訪問代碼32。在圖3的例子中,數(shù)據(jù)取得生成部12根據(jù)由接口定義9所定義的接口,生成在數(shù)據(jù)存儲(chǔ)部16中生成條目(entry)的代碼,并且生成進(jìn)行向數(shù)據(jù)提供部3送出預(yù)讀請求并將返回的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)存儲(chǔ)部16的處理的代碼。條目例如由圖9所示的key(關(guān)鍵字)-value(值)的組合構(gòu)成(詳細(xì)后述)。
另外,數(shù)據(jù)取得生成部12還生成從數(shù)據(jù)提供部3接受值的變更(更新)通知的回調(diào)函數(shù)。另外,數(shù)據(jù)取得生成部12定義并非是由接口定義9所定義的數(shù)據(jù)取得接口而是作為其它接口的dosomething()、作為調(diào)用代碼的onnotifye2()以及回調(diào)接口。
在圖3的例子中,通過執(zhí)行儲(chǔ)存數(shù)據(jù)訪問代碼32的第5行的處理而將由“key”表示的數(shù)據(jù)的預(yù)讀請求提供給數(shù)據(jù)提供部3,作為其響應(yīng)而返回當(dāng)前時(shí)間點(diǎn)的最新的值(數(shù)據(jù)的值),通過執(zhí)行第4、5行的處理而將值記錄到數(shù)據(jù)存儲(chǔ)部16。此外,在圖3的例子中,從數(shù)據(jù)提供部3通過同步處理而返回值,但也可以通過回調(diào)來接受返回該值的處理,對應(yīng)非同步響應(yīng)。儲(chǔ)存數(shù)據(jù)訪問代碼32的第20行以后的處理表示從數(shù)據(jù)提供部3接受數(shù)據(jù)的更新通知的回調(diào)函數(shù)的一個(gè)例子,針對getdataa這樣的接口生成onnotifydataa這樣的回調(diào)函數(shù),在該回調(diào)函數(shù)中進(jìn)行數(shù)據(jù)存儲(chǔ)部16的更新和向用戶接口執(zhí)行部14的通知。
此外,在儲(chǔ)存數(shù)據(jù)訪問代碼32中包括:在數(shù)據(jù)存儲(chǔ)部16中生成預(yù)先確定的大小的條目來調(diào)用預(yù)讀開始處理的代碼、根據(jù)預(yù)讀廢除請求來刪除數(shù)據(jù)并將預(yù)讀廢除請求送出到數(shù)據(jù)提供部3的代碼、從數(shù)據(jù)存儲(chǔ)部16取得預(yù)先確定的數(shù)據(jù)的代碼以及根據(jù)從數(shù)據(jù)提供部3接收到的數(shù)據(jù)的更新通知來更新數(shù)據(jù)存儲(chǔ)部16的數(shù)據(jù)的代碼中的至少一個(gè)代碼。
預(yù)讀管理生成部13根據(jù)接口定義9,生成在預(yù)讀管理部23中使用的預(yù)讀管理代碼33。在圖3的例子中,預(yù)讀管理生成部13根據(jù)接口定義9,生成與數(shù)據(jù)提供部3提供的servicea的預(yù)讀請求(subscribe)和預(yù)讀廢除請求(unsubscribe)的各個(gè)請求對應(yīng)的代碼。即,預(yù)讀管理生成部13根據(jù)接口定義9而生成預(yù)讀管理代碼33,該預(yù)讀管理代碼33是用于由數(shù)據(jù)提供部3管理從數(shù)據(jù)提供部3向用戶接口執(zhí)行裝置2提供的數(shù)據(jù)是否成為預(yù)讀的對象的代碼。
與預(yù)讀請求對應(yīng)的預(yù)讀請求代碼執(zhí)行將進(jìn)行預(yù)讀請求的客戶端(client)和成為預(yù)讀對象的數(shù)據(jù)登記到預(yù)讀管理部23的代碼,調(diào)用作為數(shù)據(jù)提供部3的開發(fā)人員實(shí)際描述程序的對象的oncall_getdataa()等處理。與預(yù)讀廢除請求對應(yīng)的預(yù)讀廢除請求代碼針對預(yù)讀管理部23生成將進(jìn)行預(yù)讀請求的客戶端和成為預(yù)讀對象的數(shù)據(jù)的登記進(jìn)行廢除的代碼。
另外,預(yù)讀管理生成部13生成對成為預(yù)讀對象的數(shù)據(jù)的值進(jìn)行變更的處理(setdataa)。在數(shù)據(jù)提供部3的開發(fā)人員調(diào)用該處理時(shí),判斷相應(yīng)的數(shù)據(jù)(開發(fā)人員進(jìn)行了變更等的數(shù)據(jù))是否為預(yù)讀狀態(tài),在是預(yù)讀狀態(tài)的情況下,針對作為客戶端的用戶接口執(zhí)行裝置2的用戶接口執(zhí)行部14發(fā)行數(shù)據(jù)的變更通知。
<動(dòng)作>
圖4是示出用戶接口執(zhí)行裝置2的動(dòng)作的一個(gè)例子的流程圖。在圖4中,示出依照從輸入裝置4或者數(shù)據(jù)取得部15向事件取得部17輸入的事件而由狀態(tài)轉(zhuǎn)移部18轉(zhuǎn)移了狀態(tài)的情況下的處理的流程。此外,在步驟s101~步驟s105中,將轉(zhuǎn)移目的地的狀態(tài)為狀態(tài)s1的情況作為一個(gè)例子進(jìn)行說明。另外,在步驟s106~步驟s110中,將轉(zhuǎn)移源的狀態(tài)為狀態(tài)s1的情況作為一個(gè)例子進(jìn)行說明。
在步驟s101中,狀態(tài)轉(zhuǎn)移部18在執(zhí)行狀態(tài)的轉(zhuǎn)移時(shí),判斷是否針對在轉(zhuǎn)移目的地的狀態(tài)下定義的所有數(shù)據(jù)取得接口進(jìn)行了處理。此外,步驟s101的處理既可以如圖4所示通過環(huán)構(gòu)造來執(zhí)行,也可以在設(shè)計(jì)時(shí)從對應(yīng)定義29展開了環(huán)(loop)的狀態(tài)下執(zhí)行。在圖3的例子中,在狀態(tài)s1下使用的數(shù)據(jù)取得接口是getdataa以及getstated,所以在生成由狀態(tài)轉(zhuǎn)移代碼30的第4~7行的s1.onenter執(zhí)行的處理時(shí),將環(huán)進(jìn)行展開而展開為取得dataa以及stated的形式。在針對所有數(shù)據(jù)取得接口進(jìn)行了處理的情況下,跳轉(zhuǎn)到步驟s106。另一方面,在未對所有數(shù)據(jù)取得接口進(jìn)行處理的情況下,跳轉(zhuǎn)到步驟s102。
在步驟s102中,數(shù)據(jù)取得部15判斷在數(shù)據(jù)存儲(chǔ)部16中是否存在同一關(guān)鍵字的條目。在圖3的例子中,對應(yīng)于由儲(chǔ)存數(shù)據(jù)訪問代碼32的第2行的issubscribed執(zhí)行的處理。在存在同一關(guān)鍵字的條目的情況下,跳轉(zhuǎn)到步驟s103。另一方面,在不存在同一關(guān)鍵字的條目的情況下,跳轉(zhuǎn)到步驟s104。
在步驟s103中,數(shù)據(jù)取得部15通過由儲(chǔ)存數(shù)據(jù)訪問代碼32的第7行的add執(zhí)行的處理,將條目的調(diào)用源(調(diào)用了預(yù)讀處理的client,在此是用戶接口執(zhí)行部14)存儲(chǔ)(追加)到數(shù)據(jù)存儲(chǔ)部16的client管理表格。此外,在后面的實(shí)施方式3中,詳細(xì)敘述client管理表格(參照圖13)。
在步驟s104中,數(shù)據(jù)取得部15在數(shù)據(jù)存儲(chǔ)部16中制作以數(shù)據(jù)名以及服務(wù)名為關(guān)鍵字的新的條目。
在步驟s105中,數(shù)據(jù)取得部15向作為服務(wù)器的數(shù)據(jù)提供部3送出預(yù)讀請求。
在步驟s106中,狀態(tài)轉(zhuǎn)移部18判斷是否針對在轉(zhuǎn)移源的狀態(tài)下使用的所有數(shù)據(jù)取得接口進(jìn)行了處理。在圖3的例子中,是由狀態(tài)轉(zhuǎn)移代碼30的第8~11行的onleave執(zhí)行的處理。在狀態(tài)轉(zhuǎn)移代碼30的第8~11行中,示出狀態(tài)通過事件e1從狀態(tài)s1轉(zhuǎn)移到狀態(tài)s2時(shí)的處理。此外,步驟s106的處理也可以與步驟s101同樣地在設(shè)計(jì)時(shí)從對應(yīng)定義29展開了環(huán)的狀態(tài)下執(zhí)行。在對所有數(shù)據(jù)取得接口進(jìn)行了處理的情況下,結(jié)束處理。另一方面,在未對所有數(shù)據(jù)取得接口進(jìn)行處理的情況下,跳轉(zhuǎn)到步驟s107。
在步驟s107中,數(shù)據(jù)取得部15訪問數(shù)據(jù)存儲(chǔ)部16的client管理表格,判斷是否從調(diào)用源以外也參照相應(yīng)的關(guān)鍵字的條目。在從調(diào)用源以外也參照的情況下,跳轉(zhuǎn)到步驟s108。另一方面,在僅從調(diào)用源參照的情況下,跳轉(zhuǎn)到步驟s109。此外,如本實(shí)施方式1那樣,在用戶接口執(zhí)行部14是1個(gè)的情況下,跳轉(zhuǎn)到步驟s109。
在步驟s108中,數(shù)據(jù)取得部15從數(shù)據(jù)存儲(chǔ)部16的client管理表格刪除調(diào)用源。
在步驟s109中,數(shù)據(jù)取得部15將數(shù)據(jù)存儲(chǔ)部16的相應(yīng)關(guān)鍵字的條目無效化或者廢除(刪除)。此外,在將條目無效化的情況下,需要預(yù)先對各條目(參照圖9)設(shè)定無效化標(biāo)志。另外,在將條目無效化時(shí)將無效化標(biāo)志設(shè)為“false(假)”,在將條目有效化時(shí)設(shè)為“true(真)”。
在步驟s110中,數(shù)據(jù)取得部15根據(jù)來自數(shù)據(jù)請求部20的預(yù)讀廢除請求的指示,向數(shù)據(jù)提供部3送出預(yù)讀廢除請求。在圖3的例子中,儲(chǔ)存數(shù)據(jù)訪問代碼32的第9~12行所示出的代碼對應(yīng)于預(yù)讀廢除請求的處理。
圖5是示出數(shù)據(jù)提供部3中的接收到預(yù)讀請求時(shí)的動(dòng)作的一個(gè)例子的流程圖。在圖5中,示出通過圖4的步驟s105中的處理而由數(shù)據(jù)提供部3接收到從數(shù)據(jù)取得部15送出的預(yù)讀請求時(shí)的處理的流程。
在步驟s201中,請求處理部22在從數(shù)據(jù)取得部15接收到預(yù)讀請求時(shí),將確定送出了預(yù)讀請求的用戶接口執(zhí)行部14(客戶端)的id即設(shè)備id、和確定成為預(yù)讀的對象的數(shù)據(jù)的預(yù)讀對象數(shù)據(jù)關(guān)鍵字的組合登記到預(yù)讀管理部23。在圖3的例子中,對應(yīng)于預(yù)讀管理代碼33的第2行所示出的處理。
在步驟s202中,請求處理部22調(diào)用用于取得數(shù)據(jù)提供部3的值的膠水代碼(gluecode)。該膠水代碼是能夠由數(shù)據(jù)提供部3的開發(fā)人員自由地描述內(nèi)部的處理(程序)的處理,與在調(diào)用用于從作為客戶端的用戶接口執(zhí)行部14取得值的接口時(shí)處理的代碼相同。在圖3的例子中,對應(yīng)于預(yù)讀管理代碼33的第5行以及第7行所示出的處理。
在步驟s203中,響應(yīng)返回部24將在步驟s202中取得的值通過rpc(remoteprocedurecall,遠(yuǎn)程過程調(diào)用)的結(jié)構(gòu)而返回到用戶接口執(zhí)行裝置2。
圖6是示出數(shù)據(jù)提供部3中的接收到預(yù)讀廢除請求時(shí)的動(dòng)作的一個(gè)例子的流程圖。在圖6中,示出通過圖4的步驟110中的處理而由數(shù)據(jù)提供部3接收到從數(shù)據(jù)取得部15送出的預(yù)讀廢除請求時(shí)的處理的流程。
在步驟s301中,請求處理部22在從數(shù)據(jù)取得部15接收到預(yù)讀廢除請求時(shí),刪除登記在預(yù)讀管理部23中的設(shè)備id和預(yù)讀對象數(shù)據(jù)關(guān)鍵字的組合。通過進(jìn)行該處理,在數(shù)據(jù)提供部3中無法取得用戶接口執(zhí)行部14(客戶端)與成為預(yù)讀對象的數(shù)據(jù)的對應(yīng),預(yù)讀狀態(tài)被解除。
圖7是示出數(shù)據(jù)提供部3中的值更新時(shí)的動(dòng)作的一個(gè)例子的流程圖。
數(shù)據(jù)提供部3在數(shù)據(jù)生成處理部25中與用戶接口執(zhí)行裝置2獨(dú)立地生成數(shù)據(jù),在進(jìn)行生成該數(shù)據(jù)的處理時(shí),作為預(yù)讀狀態(tài)的數(shù)據(jù)的值有時(shí)變更。在圖7中,示出數(shù)據(jù)的值被變更(更新)時(shí)的處理的流程。此外,以下將值被變更的數(shù)據(jù)稱為變更后的數(shù)據(jù)。
在步驟s401中,數(shù)據(jù)生成處理部25向響應(yīng)返回部24通知變更后的數(shù)據(jù)。
在步驟s402中,響應(yīng)返回部24參照登記在預(yù)讀管理部23中的設(shè)備id以及預(yù)讀對象數(shù)據(jù)關(guān)鍵字的組合,判斷是否存在預(yù)讀變更后的數(shù)據(jù)的用戶接口執(zhí)行部14。在存在預(yù)讀變更后的數(shù)據(jù)的用戶接口執(zhí)行部14的情況下,跳轉(zhuǎn)到步驟s403。另一方面,在不存在預(yù)讀變更后的數(shù)據(jù)的用戶接口執(zhí)行部14的情況下,結(jié)束處理。
在步驟s403中,響應(yīng)返回部24對進(jìn)行著預(yù)讀的用戶接口執(zhí)行部14送出變更后的數(shù)據(jù)和與該數(shù)據(jù)對應(yīng)的預(yù)讀對象數(shù)據(jù)關(guān)鍵字。
圖8是示出用戶接口執(zhí)行裝置2中的接收到變更后的數(shù)據(jù)時(shí)的動(dòng)作的一個(gè)例子的流程圖。
在步驟s501中,數(shù)據(jù)取得部15從數(shù)據(jù)提供部3的響應(yīng)返回部24接收變更后的數(shù)據(jù)。
在步驟s502中,數(shù)據(jù)取得部15根據(jù)變更后的數(shù)據(jù)和與該數(shù)據(jù)對應(yīng)的預(yù)讀對象數(shù)據(jù)關(guān)鍵字,從數(shù)據(jù)存儲(chǔ)部16檢索相應(yīng)的數(shù)據(jù),針對相應(yīng)的數(shù)據(jù)的值,重寫變更后的數(shù)據(jù)的值。
在步驟s503中,數(shù)據(jù)取得部15對使用上述相應(yīng)的數(shù)據(jù)的用戶接口執(zhí)行部14,通知數(shù)據(jù)的值被更新的意思。接收到該通知的事件取得部17根據(jù)事件而執(zhí)行對向提示裝置5提示的值進(jìn)行更新等的處理。
圖9是示出由數(shù)據(jù)存儲(chǔ)部15管理的數(shù)據(jù)的形式的一個(gè)例子的圖。
在數(shù)據(jù)存儲(chǔ)部15中,按照key(關(guān)鍵字)-value(值)的組合來存儲(chǔ)有從數(shù)據(jù)提供部3提供的數(shù)據(jù)。key是由接口定義9所定義的數(shù)據(jù)取得接口(從“get”開頭的接口)的get以后的字符串。例如,在由接口定義9定義了getdataa的接口的情況下,根據(jù)該接口而取得的數(shù)據(jù)的key為“dataa”。另外,在根據(jù)數(shù)據(jù)取得接口而取得的類型是list類型等的collection類型的情況下,在key之后追加length(長度)、name(名稱)、item(項(xiàng)目)等固定格式詞(fixed-formword),同時(shí)還保存list類型的處理所需的參數(shù)。
另外,在能夠?qū)Α癵et”的接口指定自變量的情況下,由于打算變更通過自變量取得的數(shù)據(jù),所以通過在key的末尾追加其自變量來保證數(shù)據(jù)的同一性。具體而言,在存在“getlistc(intid)”的接口的情況下,對在id=1下取得的listc的長度進(jìn)行保存的key為“l(fā)istc_length_1”這樣的形式。通過這樣的key的決定方法,能夠?qū)⒂蒰etlistc(1)取得的listc的數(shù)據(jù)和由getlistc(2)取得的listc的數(shù)據(jù)區(qū)分地存儲(chǔ)到數(shù)據(jù)存儲(chǔ)部16。
value將從數(shù)據(jù)提供部3提供的數(shù)據(jù)的值原樣地進(jìn)行存儲(chǔ)。在本實(shí)施方式1中,所有數(shù)據(jù)的值被存儲(chǔ)為json(javascriptobjectnotation(javascript對象符號(hào)))形式的字符串。數(shù)據(jù)取得部15在將從數(shù)據(jù)存儲(chǔ)部16取得的數(shù)據(jù)變換為由接口定義的類型之后,向用戶接口執(zhí)行部14送出數(shù)據(jù)。
圖10是示出由預(yù)讀管理部23管理的預(yù)讀管理數(shù)據(jù)的一個(gè)例子的圖。
在預(yù)讀管理部23中,以key-subscribe的組合來管理從包含于預(yù)讀管理代碼33的接口定義9解釋的數(shù)據(jù)的預(yù)讀狀態(tài)。如果數(shù)據(jù)是預(yù)讀狀態(tài)則設(shè)為true,如果不是預(yù)讀狀態(tài)則設(shè)為false。
在圖10的例子中,示出在從接口定義9解釋的數(shù)據(jù)之中的key為stringb的數(shù)據(jù)不是預(yù)讀狀態(tài)、其它關(guān)鍵字的數(shù)據(jù)是預(yù)讀狀態(tài)。例如,在數(shù)據(jù)生成處理部25調(diào)用并更新對stringb的數(shù)據(jù)進(jìn)行更新的方法的情況下,響應(yīng)返回部24參照預(yù)讀管理部23的預(yù)讀管理數(shù)據(jù),可知stringb的數(shù)據(jù)不是預(yù)讀狀態(tài),所以不對用戶接口執(zhí)行部14通知更新后的數(shù)據(jù)。另一方面,在數(shù)據(jù)生成處理部25調(diào)用并更新對dataa的數(shù)據(jù)進(jìn)行更新的方法的情況下,響應(yīng)返回部24參照預(yù)讀管理部23的預(yù)讀管理數(shù)據(jù),對預(yù)讀狀態(tài)的用戶接口執(zhí)行部14通知更新后的數(shù)據(jù)。
通過進(jìn)行這樣的管理,對不是預(yù)讀狀態(tài)的用戶接口執(zhí)行部14不進(jìn)行不需要的數(shù)據(jù)的通知,所以能夠削減用戶接口執(zhí)行裝置2與數(shù)據(jù)提供部3之間的通信業(yè)務(wù)量,并且削減用戶接口執(zhí)行裝置2中的無用的軟件處理。
<實(shí)施例>
說明將上述說明的用戶接口執(zhí)行裝置2以及數(shù)據(jù)提供部3應(yīng)用于車輛導(dǎo)航系統(tǒng)的情況。
以下,用戶接口執(zhí)行裝置2對應(yīng)于在汽車的儀表盤中內(nèi)置的車輛導(dǎo)航系統(tǒng)。輸入裝置4是安裝于駕駛員的轉(zhuǎn)向器的轉(zhuǎn)向遙控器、搭載于車輛導(dǎo)航系統(tǒng)的h/w鍵、或者紅外線遙控器。提示裝置5是車輛導(dǎo)航系統(tǒng)的液晶面板。數(shù)據(jù)提供部3對應(yīng)于在經(jīng)由網(wǎng)絡(luò)的因特網(wǎng)上的服務(wù)器中執(zhí)行的廣播節(jié)目的節(jié)目信息配送服務(wù)。另外,作為接口定義9,定義有作為數(shù)據(jù)取得接口的songinfogetsonginfo(station_id)。
在用戶接口執(zhí)行裝置2中,狀態(tài)轉(zhuǎn)移部18從用戶接口設(shè)計(jì)裝置1的狀態(tài)轉(zhuǎn)移生成部10接收狀態(tài)轉(zhuǎn)移代碼30。另外,數(shù)據(jù)請求部20從用戶接口設(shè)計(jì)裝置1的預(yù)讀生成部11接收預(yù)讀執(zhí)行代碼31。另外,數(shù)據(jù)取得部15從用戶接口設(shè)計(jì)裝置1的數(shù)據(jù)取得生成部12接收儲(chǔ)存數(shù)據(jù)訪問代碼32。
在數(shù)據(jù)提供部3中,預(yù)讀管理部23從用戶接口設(shè)計(jì)裝置1的預(yù)讀管理生成部13接收預(yù)讀管理代碼22。
通過用戶操作輸入裝置4,在用戶接口執(zhí)行部14的狀態(tài)成為如果從該狀態(tài)進(jìn)行預(yù)先確定的次數(shù)的操作則向廣播節(jié)目的信息顯示畫面轉(zhuǎn)移的狀態(tài)的情況下,數(shù)據(jù)請求部20執(zhí)行作為預(yù)讀執(zhí)行代碼31的subscribe_songinfo(station1)。另外,數(shù)據(jù)取得部15向數(shù)據(jù)存儲(chǔ)部16追加songinfo_station1的項(xiàng)目(條目),對數(shù)據(jù)提供部3送出預(yù)讀請求。此時(shí),作為預(yù)讀請求,送出作為進(jìn)行了該預(yù)讀請求的客戶端的車輛導(dǎo)航系統(tǒng)(用戶接口執(zhí)行裝置2)的deviceid即“device1”、和key即“songinfo_station1”。
在數(shù)據(jù)提供部3中,請求處理部22在從用戶接口執(zhí)行裝置2接收到預(yù)讀請求時(shí),向預(yù)讀管理部23登記songinfo_station1在device1下是預(yù)讀狀態(tài)。然后,響應(yīng)返回部24將當(dāng)前的station1的songinfo返回給用戶接口執(zhí)行裝置2。
從數(shù)據(jù)提供部3接收到station1的songinfo的數(shù)據(jù)取得部15針對與數(shù)據(jù)存儲(chǔ)部16的key即“songinfo_station1”對應(yīng)的value記錄tation1的songinfo,并向事件取得部17傳達(dá)預(yù)讀完成的意思。
之后,在通過用戶的操作而轉(zhuǎn)移到廣播節(jié)目顯示畫面的情況下,在數(shù)據(jù)請求部20對數(shù)據(jù)取得部15執(zhí)行g(shù)etsonginfo(station1)時(shí),從數(shù)據(jù)取得部15向數(shù)據(jù)處理部19送出記錄在數(shù)據(jù)存儲(chǔ)部16中的tation1的songinfo。
通過進(jìn)行這樣的動(dòng)作,能夠削減用戶接口執(zhí)行部14在需要數(shù)據(jù)的定時(shí)對數(shù)據(jù)提供部3進(jìn)行數(shù)據(jù)取得的請求的處理。
另外,在隨著時(shí)間的經(jīng)過而由廣播節(jié)目配送中的樂曲發(fā)生變更的情況下,數(shù)據(jù)提供部3的響應(yīng)返回部24參照預(yù)讀管理部23的預(yù)讀管理數(shù)據(jù),掌握songinfo是預(yù)讀狀態(tài)。然后,響應(yīng)返回部24對用戶接口執(zhí)行裝置2的數(shù)據(jù)取得部15通知變更后的信息。數(shù)據(jù)取得部15在接收到變更后的信息時(shí),針對數(shù)據(jù)存儲(chǔ)部16的value重寫變更后的信息而進(jìn)行更新,并向事件取得部17通知變更后的信息。
根據(jù)以上,用戶接口執(zhí)行部14如果是預(yù)讀狀態(tài)則始終能夠從數(shù)據(jù)提供部3取得最新的信息。因此,用戶接口執(zhí)行部14無需對延遲大的數(shù)據(jù)提供部3逐次進(jìn)行數(shù)據(jù)的請求,所以能夠高速地進(jìn)行畫面的轉(zhuǎn)移或者畫面的描繪等,能夠向用戶提供舒適的操作感。
另外,在通過用戶的操作,例如開始cd的再現(xiàn)等直至廣播節(jié)目的信息提供畫面為止的操作次數(shù)為預(yù)先確定的次數(shù)以上的情況下,數(shù)據(jù)請求部20執(zhí)行預(yù)讀執(zhí)行代碼31中的作為預(yù)讀廢除請求的unsubscribe_songinfo(station1),通過數(shù)據(jù)取得部15將數(shù)據(jù)存儲(chǔ)部16的tation1的songinfo無效化或者廢除。此時(shí),數(shù)據(jù)取得部15將預(yù)讀廢除請求送出到數(shù)據(jù)提供部3。數(shù)據(jù)提供部3的請求處理部22依照接收到的預(yù)讀廢除請求,從由預(yù)讀管理部23管理的預(yù)讀管理數(shù)據(jù)中刪除songinfo_station1在device1下是預(yù)讀狀態(tài)的意思的信息。
通過數(shù)據(jù)請求部20執(zhí)行預(yù)讀廢除請求,從而能夠確定在用戶接口執(zhí)行部14的某個(gè)狀態(tài)下成為預(yù)讀狀態(tài)的數(shù)據(jù),所以在生成決定該處理(與預(yù)讀廢除請求相關(guān)的處理)的代碼(儲(chǔ)存數(shù)據(jù)訪問代碼)時(shí),能夠確定用于用戶接口執(zhí)行裝置2進(jìn)行動(dòng)作而所需的存儲(chǔ)在數(shù)據(jù)存儲(chǔ)部16中的數(shù)據(jù)。因此,通過預(yù)先規(guī)定數(shù)據(jù)存儲(chǔ)部16中的各數(shù)據(jù)項(xiàng)目(在用戶接口的各狀態(tài)下所需的數(shù)據(jù))的最大大小,能夠在設(shè)計(jì)時(shí)估計(jì)在用戶接口執(zhí)行裝置2的動(dòng)作時(shí)所需的數(shù)據(jù)存儲(chǔ)部16的容量。
基于以上,根據(jù)本實(shí)施方式1,在設(shè)計(jì)用戶接口時(shí)能夠預(yù)測存儲(chǔ)預(yù)讀的數(shù)據(jù)的存儲(chǔ)區(qū)域的最大大小,并且即使在已預(yù)讀的數(shù)據(jù)在預(yù)讀后被更新的情況下也能夠向用戶提示更新后的數(shù)據(jù)。
<實(shí)施方式2>
在實(shí)施方式1中,說明了分別地設(shè)置用戶接口執(zhí)行裝置2和數(shù)據(jù)提供部3的情況,但不限于此。例如也可以一體地設(shè)置用戶接口執(zhí)行裝置2和數(shù)據(jù)提供部3。
例如有如下情況:在實(shí)施方式1的實(shí)施例中說明的車輛導(dǎo)航系統(tǒng)中,本車輛執(zhí)行提供行駛中的當(dāng)前位置的功能。此時(shí),車輛導(dǎo)航系統(tǒng)對應(yīng)于用戶接口執(zhí)行裝置2,提供本車輛的當(dāng)前位置的功能對應(yīng)于數(shù)據(jù)提供部3。
圖11是示出本實(shí)施方式2的用戶接口執(zhí)行裝置34的結(jié)構(gòu)的一個(gè)例子的框圖。
如圖11所示,用戶接口執(zhí)行裝置34是使實(shí)施方式1(參照圖1)的用戶接口執(zhí)行裝置2和數(shù)據(jù)提供部3成為一體的結(jié)構(gòu)。另外,用戶接口執(zhí)行部35是在實(shí)施方式1的用戶接口執(zhí)行部14中內(nèi)置數(shù)據(jù)取得部15以及數(shù)據(jù)存儲(chǔ)部16而成的結(jié)構(gòu)。其它結(jié)構(gòu)以及動(dòng)作與實(shí)施方式1相同,所以在此省略說明。
用戶接口執(zhí)行裝置34具備用戶接口執(zhí)行部35和數(shù)據(jù)提供部3。因此,用戶接口執(zhí)行部35從數(shù)據(jù)提供部3取得數(shù)據(jù)時(shí)的延遲相比于實(shí)施方式1變小。另外,在實(shí)施方式1中,用戶接口執(zhí)行裝置2一般搭載有操作系統(tǒng)(os),在用戶接口執(zhí)行部14和數(shù)據(jù)提供部3中存儲(chǔ)器空間不同。因此,存在如下問題:在用戶接口執(zhí)行部14與數(shù)據(jù)提供部3之間交接數(shù)據(jù)時(shí)發(fā)生延遲,交接的數(shù)據(jù)大小以及次數(shù)越增加,則延遲變得越大。在本實(shí)施方式2中,由于在用戶接口執(zhí)行部35內(nèi)設(shè)置有數(shù)據(jù)存儲(chǔ)部16,所以在取得數(shù)據(jù)時(shí),能夠消除在不同的存儲(chǔ)器空間中交接數(shù)據(jù)的次數(shù)。
<實(shí)施方式3>
在實(shí)施方式1、2中,說明了用戶接口執(zhí)行部14、35是單數(shù)的情況,但不限于此。例如,也可以存在多個(gè)用戶接口執(zhí)行部。
例如,考慮如下情況:在實(shí)施方式1的實(shí)施例中說明的車輛導(dǎo)航系統(tǒng)中,具備與向駕駛員顯示的顯示器、向副駕的同乘者顯示的顯示器以及向后座的同乘者顯示的顯示器的各個(gè)顯示器對應(yīng)的用戶接口執(zhí)行部。
圖12是示出本發(fā)明的實(shí)施方式3的用戶接口執(zhí)行裝置36的結(jié)構(gòu)的一個(gè)例子的框圖。
如圖12所示,用戶接口執(zhí)行裝置36的特征在于,具備用戶接口執(zhí)行部41、42、43。另外,用戶接口執(zhí)行部41與提示裝置38連接,用戶接口執(zhí)行部42與提示裝置39連接,用戶接口執(zhí)行部43與提示裝置40連接。此外,用戶接口執(zhí)行部41、42、43具有與實(shí)施方式1的用戶接口執(zhí)行部14相同的功能。其它結(jié)構(gòu)以及動(dòng)作與實(shí)施方式1相同,所以在此省略說明。
例如在上述車輛導(dǎo)航系統(tǒng)中,能夠?qū)⑾蝰{駛員顯示的顯示器設(shè)為提示裝置38,將向副駕的同乘者顯示的顯示器設(shè)為提示裝置39,將向后座的同乘者顯示的顯示器設(shè)為提示裝置40,并向提示裝置38、39、40的各個(gè)裝置顯示不同的信息。
數(shù)據(jù)取得部44以及數(shù)據(jù)存儲(chǔ)部45在用戶接口執(zhí)行部41、42、43各自中是共用的。通過設(shè)為這樣的結(jié)構(gòu),例如在用戶接口執(zhí)行部42預(yù)讀在用戶接口執(zhí)行部41中所需的數(shù)據(jù)的情況下,用戶接口執(zhí)行部41無需向數(shù)據(jù)提供部3進(jìn)行預(yù)讀請求,而能夠從數(shù)據(jù)存儲(chǔ)部45取得所需的數(shù)據(jù)。因此,作為用戶接口執(zhí)行裝置36整體能夠?qū)崿F(xiàn)高速的響應(yīng)。
為了實(shí)現(xiàn)上述動(dòng)作,例如用戶接口執(zhí)行部41的數(shù)據(jù)請求部49在執(zhí)行預(yù)讀執(zhí)行代碼31時(shí),如圖3所示的預(yù)讀執(zhí)行代碼31的第4行所示那樣,將自身的實(shí)例(在圖3的例子中是“this”)傳送給數(shù)據(jù)取得部44。在數(shù)據(jù)取得部44中,根據(jù)儲(chǔ)存數(shù)據(jù)訪問代碼32,在數(shù)據(jù)存儲(chǔ)部40中追加項(xiàng)目。此時(shí),在如儲(chǔ)存數(shù)據(jù)訪問代碼32的第2行所示那樣已經(jīng)是預(yù)讀狀態(tài)的情況下,數(shù)據(jù)取得部44無需對數(shù)據(jù)提供部3新傳送預(yù)讀請求而結(jié)束處理。
另外,在數(shù)據(jù)提供部3中,例如在作為預(yù)讀狀態(tài)的“dataa”的值被變更的情況下,接收到變更后的數(shù)據(jù)的數(shù)據(jù)取得部44執(zhí)行儲(chǔ)存數(shù)據(jù)訪問代碼32的onnotifydataa。此時(shí),在將變更后的數(shù)據(jù)的值記錄到數(shù)據(jù)存儲(chǔ)部45之后,針對正在預(yù)讀dataa的所有接口執(zhí)行部執(zhí)行onchangedataa。
圖13是示出由數(shù)據(jù)存儲(chǔ)部45管理的client管理表格的一個(gè)例子的圖。
在數(shù)據(jù)存儲(chǔ)部45中,除了key-value的組合的管理以外,還存儲(chǔ)有對正在讀出特定的key的client進(jìn)行管理的client管理表格。
在圖13中,表示dataa針對clienta(例如用戶接口執(zhí)行部41)和clientb(例如用戶接口執(zhí)行部42)是預(yù)讀狀態(tài),stringb針對clienta是預(yù)讀狀態(tài)。
基于以上,根據(jù)本實(shí)施方式3,即使在用戶接口執(zhí)行裝置36具備多個(gè)用戶接口執(zhí)行部41、42、43的情況下,作為用戶接口執(zhí)行裝置36整體也能夠?qū)崿F(xiàn)高速的響應(yīng)。
<實(shí)施方式4>
在實(shí)施方式3中,說明了在1個(gè)用戶接口執(zhí)行裝置36內(nèi)存在多個(gè)用戶接口執(zhí)行部41、42、43的情況,但不限于此。例如,也可以存在多個(gè)用戶接口執(zhí)行裝置。
例如,考慮如下情況:在實(shí)施方式1的實(shí)施例中說明的車輛導(dǎo)航系統(tǒng)中,如在汽車的儀表盤中內(nèi)置的車輛導(dǎo)航部件和用戶帶入汽車內(nèi)的平板終端,存在多個(gè)用戶接口執(zhí)行裝置。
圖14是示出本發(fā)明的實(shí)施方式4的用戶接口執(zhí)行裝置2、61的結(jié)構(gòu)的一個(gè)例子的框圖。
如圖14所示,在本實(shí)施方式4中,具備多個(gè)用戶接口執(zhí)行裝置2、61。此外,用戶接口執(zhí)行裝置2、61具有與實(shí)施方式1的用戶接口執(zhí)行裝置2相同的功能。其它結(jié)構(gòu)以及動(dòng)作與實(shí)施方式1相同,所以在此省略說明。
例如,在上述車輛導(dǎo)航系統(tǒng)中,能夠?qū)⒃谄嚨膬x表盤中內(nèi)置的車輛導(dǎo)航部件設(shè)為用戶接口執(zhí)行裝置2,將用戶帶入汽車內(nèi)的平板終端設(shè)為用戶接口執(zhí)行裝置61。
用戶接口執(zhí)行裝置2、61是獨(dú)立的裝置,各自具備數(shù)據(jù)取得部15、65以及數(shù)據(jù)存儲(chǔ)部16、66。在數(shù)據(jù)提供部3中,對識(shí)別各用戶接口執(zhí)行裝置2、61的id進(jìn)行管理。具體而言,在執(zhí)行數(shù)據(jù)取得部15、65執(zhí)行的基于儲(chǔ)存數(shù)據(jù)訪問代碼32的針對數(shù)據(jù)提供部3的預(yù)讀的處理(在圖3的例子中,是儲(chǔ)存數(shù)據(jù)訪問代碼32的第5行所示的處理即client.serviceif.subscribe(key))中,賦予確定用戶接口執(zhí)行裝置2、61的deviceid,調(diào)用針對數(shù)據(jù)提供部3的subscribe代碼。數(shù)據(jù)提供部3的請求處理部22根據(jù)預(yù)讀管理代碼33,接收deviceid和成為預(yù)讀對象的數(shù)據(jù)的key并記錄到預(yù)讀管理部23。另外,在通過數(shù)據(jù)生成處理部25的處理而數(shù)據(jù)的值被變更的情況下,響應(yīng)返回部24參照預(yù)讀管理部23的預(yù)讀管理數(shù)據(jù),對預(yù)讀狀態(tài)的所有用戶接口執(zhí)行裝置通知變更后的數(shù)據(jù)。
圖15是示出由預(yù)讀管理部23管理的管理數(shù)據(jù)的一個(gè)例子的圖。
與實(shí)施方式1的預(yù)讀管理部23的管理數(shù)據(jù)(參照圖10)不同,本實(shí)施方式4的預(yù)讀管理部23的管理數(shù)據(jù)如圖15所示,記錄有key與對該key的數(shù)據(jù)進(jìn)行預(yù)讀中的deviceid的組合。在圖15的例子中,可知從device1(例如用戶接口執(zhí)行裝置2)以及device2(例如用戶接口執(zhí)行裝置61)預(yù)讀dataa。響應(yīng)返回部24參照預(yù)讀管理部23的預(yù)讀管理數(shù)據(jù),例如在dataa被更新的情況下,判斷為需要向devicea以及deviceb通知更新后的數(shù)據(jù)。
基于以上,根據(jù)本實(shí)施方式4,能夠得到與實(shí)施方式1同樣的效果。
<實(shí)施方式5>
在實(shí)施方式1~4中,其目的在于,降低用戶接口執(zhí)行裝置從數(shù)據(jù)提供部取得數(shù)據(jù)時(shí)的通信延遲以及在設(shè)計(jì)用戶接口時(shí)估計(jì)數(shù)據(jù)存儲(chǔ)部所需的容量。在本發(fā)明的實(shí)施方式5中,其目的在于,通過具備對數(shù)據(jù)存儲(chǔ)部進(jìn)行備份的結(jié)構(gòu)而使用戶接口執(zhí)行裝置的啟動(dòng)高速化。
圖16是示出本實(shí)施方式5的用戶接口執(zhí)行裝置72的結(jié)構(gòu)的一個(gè)例子的框圖。
如圖16所示,用戶接口執(zhí)行裝置72具備備份部74以及非易失性存儲(chǔ)部75。另外,備份部74與啟動(dòng)停止輸入裝置73連接。其它結(jié)構(gòu)以及動(dòng)作與實(shí)施方式1(圖1)相同,所以在此省略說明。
啟動(dòng)停止輸入裝置73將執(zhí)行用戶接口執(zhí)行裝置2的啟動(dòng)或者停止的信號(hào)(啟動(dòng)信號(hào)、停止信號(hào))輸入到備份部74。
備份部74在從啟動(dòng)停止輸入裝置73被輸入啟動(dòng)信號(hào)時(shí),使用存儲(chǔ)在非易失性存儲(chǔ)部75中的數(shù)據(jù),恢復(fù)數(shù)據(jù)存儲(chǔ)部15的內(nèi)容以及用戶接口執(zhí)行部14的狀態(tài)。另外,備份部74在從啟動(dòng)停止輸入裝置73被輸入停止信號(hào)時(shí),使數(shù)據(jù)存儲(chǔ)部15的內(nèi)容以及用戶接口執(zhí)行部14的狀態(tài)存儲(chǔ)(備份)到非易失性存儲(chǔ)部75,使用戶接口執(zhí)行裝置2停止。
非易失性存儲(chǔ)部75是sd卡(注冊商標(biāo))或者h(yuǎn)dd等即使無電源供給也能夠保持?jǐn)?shù)據(jù)的存儲(chǔ)設(shè)備。
另外,用戶接口設(shè)計(jì)裝置1的接口定義部7針對接口定義9的數(shù)據(jù)取得接口,設(shè)定表示數(shù)據(jù)的種類的標(biāo)志。由此,能夠定義根據(jù)數(shù)據(jù)取得接口而取得的數(shù)據(jù)是否是在電源切斷時(shí)(用戶接口執(zhí)行裝置2的停止時(shí))變化的數(shù)據(jù)。
圖17是示出表示針對接口定義9的數(shù)據(jù)取得接口的數(shù)據(jù)的種類的標(biāo)志的設(shè)定的一個(gè)例子的圖。
在圖17中,指定了fixed的數(shù)據(jù)表示在電源切斷后也不變,指定了periodic的數(shù)據(jù)表示在電源切斷后也變化。通過將這樣的定義存儲(chǔ)到數(shù)據(jù)存儲(chǔ)部16,能夠進(jìn)行在電源切斷后也變化的數(shù)據(jù)不作為備份的對象這樣的處理。
圖18是示出由數(shù)據(jù)存儲(chǔ)部16管理的數(shù)據(jù)的形式的一個(gè)例子的圖。
如圖18所示,數(shù)據(jù)存儲(chǔ)部16管理key(關(guān)鍵字)-value(值)-type(類型)的組合。備份部74通過參照由數(shù)據(jù)存儲(chǔ)部16管理的圖18所示的數(shù)據(jù),能夠判斷在電源切斷時(shí)將哪個(gè)數(shù)據(jù)存儲(chǔ)到非易失性存儲(chǔ)部75。
例如,在實(shí)施方式1的實(shí)施例中所說明的車輛導(dǎo)航系統(tǒng)中,保存車輛導(dǎo)航系統(tǒng)的結(jié)束時(shí)的狀態(tài),在下次的啟動(dòng)時(shí)需要恢復(fù)在結(jié)束時(shí)動(dòng)作的應(yīng)用或者畫面所顯示的信息的情況下,通過使用本實(shí)施方式5的用戶接口執(zhí)行裝置72,僅保存結(jié)束時(shí)的數(shù)據(jù)之中的在下次的啟動(dòng)時(shí)可使用的數(shù)據(jù)。由此,在下次的啟動(dòng)時(shí)無需訪問數(shù)據(jù)提供部就能夠恢復(fù)上次結(jié)束時(shí)的數(shù)據(jù)而啟動(dòng),所以能夠使用戶接口執(zhí)行裝置72的啟動(dòng)高速化。
基于以上,根據(jù)本實(shí)施方式5,能夠使用戶接口執(zhí)行裝置72的啟動(dòng)高速化。
此外,在圖1、11、12、14、16中,轉(zhuǎn)移設(shè)計(jì)部6、接口定義部7、狀態(tài)轉(zhuǎn)移生成部10、預(yù)讀生成部11、數(shù)據(jù)取得生成部12、預(yù)讀管理生成部13、用戶接口執(zhí)行部14、35、41、42、43、64、數(shù)據(jù)取得部15、44、65、事件取得部17、46、51、56、67、狀態(tài)轉(zhuǎn)移部18、47、52、57、68、數(shù)據(jù)處理部19、48、53、58、69、數(shù)據(jù)請求部20、49、54、59、70、提示控制部21、41、55、60、71、請求處理部22、預(yù)讀管理部23、響應(yīng)返回部24、數(shù)據(jù)生成處理部25、備份部74分別通過由圖2的處理器26依照存儲(chǔ)在存儲(chǔ)器27中的軟件程序進(jìn)行動(dòng)作來實(shí)現(xiàn)。但是,取而代之,轉(zhuǎn)移設(shè)計(jì)部6、接口定義部7、狀態(tài)轉(zhuǎn)移生成部10、預(yù)讀生成部11、數(shù)據(jù)取得生成部12、預(yù)讀管理生成部13、用戶接口執(zhí)行部14、35、41、42、43、64、數(shù)據(jù)取得部15、44、65、事件取得部17、46、51、56、67、狀態(tài)轉(zhuǎn)移部18、47、52、57、68、數(shù)據(jù)處理部19、48、53、58、69、數(shù)據(jù)請求部20、49、54、59、70、提示控制部21、41、55、60、71、請求處理部22、預(yù)讀管理部23、響應(yīng)返回部24、數(shù)據(jù)生成處理部25、備份部74分別也可以構(gòu)成為硬件(例如構(gòu)成為針對電信號(hào)進(jìn)行特定的運(yùn)算或者處理的運(yùn)算/處理電路等)。另外,也可以使上述兩者混合存在。
另外,作為將軟件的轉(zhuǎn)移設(shè)計(jì)部6、接口定義部7、狀態(tài)轉(zhuǎn)移生成部10、預(yù)讀生成部11、數(shù)據(jù)取得生成部12、預(yù)讀管理生成部13、用戶接口執(zhí)行部14、35、41、42、43、64、數(shù)據(jù)取得部15、44、65、事件取得部17、46、51、56、67、狀態(tài)轉(zhuǎn)移部18、47、52、57、68、數(shù)據(jù)處理部19、48、53、58、69、數(shù)據(jù)請求部20、49、54、59、70、提示控制部21、41、55、60、71、請求處理部22、預(yù)讀管理部23、響應(yīng)返回部24、數(shù)據(jù)生成處理部25、備份部74的各部和硬件的轉(zhuǎn)移設(shè)計(jì)部6、接口定義部7、狀態(tài)轉(zhuǎn)移生成部10、預(yù)讀生成部11、數(shù)據(jù)取得生成部12、預(yù)讀管理生成部13、用戶接口執(zhí)行部14、35、41、42、43、64、數(shù)據(jù)取得部15、44、65、事件取得部17、46、51、56、67、狀態(tài)轉(zhuǎn)移部18、47、52、57、68、數(shù)據(jù)處理部19、48、53、58、69、數(shù)據(jù)請求部20、49、54、59、70、提示控制部21、41、55、60、71、請求處理部22、預(yù)讀管理部23、響應(yīng)返回部24、數(shù)據(jù)生成處理部25、備份部74的各部進(jìn)行了組合的概念,也可以使用“處理電路”這樣的用詞來代替“部”這樣的用詞。
此外,本發(fā)明能夠在本發(fā)明的范圍內(nèi)自由地組合各實(shí)施方式、或者將各實(shí)施方式適當(dāng)?shù)刈冃?、省略?/p>
雖然詳細(xì)說明了本發(fā)明,但上述說明在所有方式中只是例示,本發(fā)明不限于此。應(yīng)理解為不脫離本發(fā)明的范圍而能夠設(shè)想未例示的無數(shù)的變形例。