本發(fā)明涉及終端軟件更新領域,具體說的是特定硬件配置的終端軟件更新的方法及其裝置。
背景技術:
由于支付終端產(chǎn)品面向金融和非金融等眾多領域,市場需求不同,使得領域的市場需求,使得支付終端產(chǎn)品型號眾多。這給生產(chǎn)、軟件維護、應用開發(fā)帶來了諸多不變。支付終端不同產(chǎn)品型號差異主要體現(xiàn)在:
可選外設很多,每個型號使用的外設組合不同。比如:IC卡、磁卡、打印、射頻卡、MODEM、GPRS/CDMA、以太網(wǎng)、WIFI等。受成本、設計限制,對于每一種外設,可能使用了不同解決方案。比如:USB接口的WIFI和SDIO接口的WIFI。
不同產(chǎn)品外觀、客戶需求、市場定位導致使用不同規(guī)格外設。比如:液晶。
考慮到成本、不同客戶需求,以及硬件的發(fā)展,終端可能在不同型號或同一型號不同時期使用不同的內(nèi)存、處理器等。
為了保證軟件的可維護性,通常對于終端的不同硬件配置,軟件盡量都做到目標代碼兼容。但有些硬件資源的區(qū)別,軟件難以做到目標代碼兼容。比如:
(1)處理器不同:導致硬件相關軟件不同;
(2)內(nèi)存大小不同:有些軟件只能在較大內(nèi)存配置上運行;
(3)硬件資源分配不同:比如同一個處理器,對于同一個外設,在不同終端型號上的IO口線、SPI、串口等資源分配都不相應。
由于硬件資源不同導致需要發(fā)布不同的目標代碼,這樣在維護時就可能造成問題:一個軟件模塊如果更新到不兼容的硬件配置終端上,會造成終端無法正常使用。
現(xiàn)有的解決方式是:許多廠家就只能針對一種硬件配置組合推出整個系統(tǒng)軟件,分別進行更新。但是這種做法存在以下問題:1、整體系統(tǒng)軟件更新的更新量大,使得下載慢、數(shù)據(jù)流量費用高;2、許多硬件無關軟件需要和硬件相關軟件一起生成不同硬件配置的更新文件,維護工作量大。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是:提供一種特定硬件配置的終端軟件更新的方法及其裝置,確保軟件包只能下到與之適配的硬件配置的終端上。
為了解決上述技術問題,本發(fā)明采用的技術方案為:
一種特定硬件配置的終端軟件更新的方法,包括:
終端依據(jù)自身的各項硬件資源配置生成一一對應的虛擬軟件包,所述硬件資源包括CPU和內(nèi)存;所述虛擬軟件包包括配置名稱和配置信息;
終端上送硬件模塊軟件包和所述虛擬模塊軟件包至上位機;所述硬件模塊軟件包包括硬件模塊的名稱和版本信息;
開發(fā)者依據(jù)其開發(fā)的更新軟件包對運行終端的硬件資源配置要求預設依賴關系;
上送包括更新軟件包對應的硬件模塊的名稱、版本信息和依賴關系的更新軟件包發(fā)送至上位機;
上位機依據(jù)硬件模塊軟件包和更新軟件包中的名稱和版本信息,判斷是否存在可用于更新終端的硬件模塊的更新軟件包;
若是,則判斷所述終端的虛擬軟件包中的配置信息是否符合所述更新軟件包的依賴關系;若是,則允許終端獲取所述更新軟件包。
本發(fā)明提供的另一個技術方案為:
特定硬件配置的終端軟件更新的系統(tǒng),包括:
生成模塊,用于終端依據(jù)自身的各項硬件資源配置生成一一對應的虛擬軟件包,所述硬件資源包括CPU和內(nèi)存;所述虛擬軟件包包括配置名稱和配置信息;
第一上送模塊,用于終端上送硬件模塊軟件包和所述虛擬模塊軟件包至上位機;所述硬件模塊軟件包包括硬件模塊的名稱和版本信息;
預設模塊,用于開發(fā)者依據(jù)其開發(fā)的更新軟件包對運行終端的硬件資源配置要求預設依賴關系;
第二上送模塊,用于上送包括更新軟件包對應的硬件模塊的名稱、版本信息和依賴關系的更新軟件包發(fā)送至上位機;
第一判斷模塊,用于上位機依據(jù)硬件模塊軟件包和更新軟件包中的名稱和版本信息,判斷是否存在可用于更新終端的硬件模塊的更新軟件包;
第二判斷模塊,用于當?shù)谝慌袛嗄K的判斷結果為是時,判斷所述終端的虛擬軟件包中的配置信息是否符合所述更新軟件包的依賴關系;若是,則允許終端獲取所述更新軟件包。
本發(fā)明的有益效果在于:區(qū)別于現(xiàn)有技術采用整體軟件統(tǒng)一更新方式避免在終端硬件模塊的軟件更新過程中由于不兼容而導致終端無法使用的問題,而整體更新方式卻帶來維護成本高、維護工作量大等問題。本發(fā)明通過將終端的硬件資源配置虛擬成一系列的軟件包,同硬件模塊軟件包一起上送至上位機;同時在開發(fā)者發(fā)布更新軟件包時,依據(jù)其能正常運行的硬件資源配置要求設置依賴關系,并同更新軟件包一起上送至上位機供下載安裝;上位機將依據(jù)依賴關系和終端上送的配置信息限制軟件更新包只能下載到符合運行條件的終端上。由此實現(xiàn)終端局部硬件模塊的正確更新,在保證所下載的更新軟件包能夠正常運行的同時,相比現(xiàn)有的整體更新方式,又能提高更新速度、減少流量、降低維護成本和維護工作量。
附圖說明
圖1為本發(fā)明特定硬件配置的終端軟件更新的方法的流程示意圖;
圖2為本發(fā)明實施例一的流程示意圖;
圖3為本發(fā)明特定硬件配置的終端軟件更新的系統(tǒng)的整體結構示意圖;
圖4為本發(fā)明實施例四的整體結構示意圖。
標號說明:
1、生成模塊;2、第一上送模塊;3、預設模塊;4、第二上送模塊;
5、第一判斷模塊;6、第二判斷模塊;7、推送模塊;8、更新模塊;
9、發(fā)送模塊。
具體實施方式
為詳細說明本發(fā)明的技術內(nèi)容、所實現(xiàn)目的及效果,以下結合實施方式并配合附圖予以說明。
本發(fā)明最關鍵的構思在于:依據(jù)更新軟件包中的依賴關系和終端的配置信息限制軟件更新包只能下載到符合運行條件的終端上,實現(xiàn)終端局部硬件模塊的正確更新。
請參照圖1以及圖2,本發(fā)明提供一種特定硬件配置的終端軟件更新的方法,包括:
終端依據(jù)自身的各項硬件資源配置生成一一對應的虛擬軟件包,所述硬件資源包括CPU和內(nèi)存;所述虛擬軟件包包括配置名稱和配置信息;
終端上送硬件模塊軟件包和所述虛擬模塊軟件包至上位機;所述硬件模塊軟件包包括硬件模塊的名稱和版本信息;
開發(fā)者依據(jù)其開發(fā)的更新軟件包對運行終端的硬件資源配置要求預設依賴關系;
上送包括更新軟件包對應的硬件模塊的名稱、版本信息和依賴關系的更新軟件包發(fā)送至上位機;
上位機依據(jù)硬件模塊軟件包和更新軟件包中的名稱和版本信息,判斷是否存在可用于更新終端的硬件模塊的更新軟件包;
若是,則判斷所述終端的虛擬軟件包中的配置信息是否符合所述更新軟件包的依賴關系;若是,則允許終端獲取所述更新軟件包。
從上述描述可知,本發(fā)明的有益效果在于:由于軟件以軟件包為單位按模塊維護,對應一個硬件模塊可以只發(fā)行一個版本,大大減少了軟件維護工作量和維護成本。
進一步的,所述終端為支付終端;所述上位機為PC端或服務器;所述資源配置還包括口線分配、支持的讀卡類型、支持的通訊網(wǎng)絡類型和/或支持的接口類型。
由上述描述可知,基于支付終端中配置有安全要求的硬件模塊,能夠保證用于硬件模塊軟件更新的更新軟件包能正常運行,有效避免支付終端由于所安裝的軟件包不兼容而導致系統(tǒng)崩潰,影響支付終端的正常使用。
進一步的,所述配置信息存儲在所述虛擬軟件包的版本目錄下。
由上述描述可知,將配置信息以軟件包中版本信息的格式進行存儲,簡單明了,同時方便上位機獲取。
進一步的,通過上位機中配置的下載工具執(zhí)行所述判斷是否存在可用于更新終端的硬件模塊的更新軟件包以及所述判斷所述終端的虛擬軟件包中的配置信息是否符合所述更新軟件包的依賴關系。
由上述描述可知,通過下載工具對軟件包進行統(tǒng)一管理和判斷,效率更高,更具針對性。
進一步的,所述允許終端獲取所述更新軟件包,之后,進一步包括:
下載工具將包括所述更新軟件包對應的硬件模塊的名稱和版本信息的硬件模塊更新信息推送至終端;
終端依據(jù)更新策略上送下載所述更新軟件包的請求至下載工具;所述更新策略包括只有接收到確認更新的指令后才進行更新的策略以及判斷存在可軟件更新的硬件模塊便自動進行更新的策略;
下載工具依據(jù)所述請求發(fā)送所述更新軟件包至終端。
由上述描述可知,本發(fā)明能夠保證需要進行軟件更新的硬件模塊獲取正確的更新軟件包,而無需終端整體系統(tǒng)進行軟件更新,節(jié)省數(shù)據(jù)流量費用的同時,提高更新效率。
本發(fā)明提供的另一個技術方案為:
特定硬件配置的終端軟件更新的系統(tǒng),包括:
生成模塊,用于終端依據(jù)自身的各項硬件資源配置生成一一對應的虛擬軟件包,所述硬件資源包括CPU和內(nèi)存;所述虛擬軟件包包括配置名稱和配置信息;
第一上送模塊,用于終端上送硬件模塊軟件包和所述虛擬模塊軟件包至上位機;所述硬件模塊軟件包包括硬件模塊的名稱和版本信息;
預設模塊,用于開發(fā)者依據(jù)其開發(fā)的更新軟件包對運行終端的硬件資源配置要求預設依賴關系;
第二上送模塊,用于上送包括更新軟件包對應的硬件模塊的名稱、版本信息和依賴關系的更新軟件包發(fā)送至上位機;
第一判斷模塊,用于上位機依據(jù)硬件模塊軟件包和更新軟件包中的名稱和版本信息,判斷是否存在可用于更新終端的硬件模塊的更新軟件包;
第二判斷模塊,用于當?shù)谝慌袛嗄K的判斷結果為是時,判斷所述終端的虛擬軟件包中的配置信息是否符合所述更新軟件包的依賴關系;若是,則允許終端獲取所述更新軟件包。
進一步的,所述終端為支付終端;所述上位機為PC端或服務器;所述資源配置還包括口線分配、支持的讀卡類型、支持的通訊網(wǎng)絡類型和/或支持的接口類型。
進一步的,所述配置信息存儲在所述虛擬軟件包的版本目錄下。
進一步的,所述第一判斷模塊和第二判斷模塊的執(zhí)行主體為上位機中配置的下載模塊。
進一步的,進一步還包括:
推送模塊,用于下載工具將包括所述更新軟件包對應的硬件模塊的名稱和版本信息的硬件模塊更新信息推送至終端;
更新模塊,用于終端依據(jù)更新策略上送下載所述更新軟件包的請求至下載工具;所述更新策略包括只有接收到確認更新的指令后才進行更新的策略以及判斷存在可軟件更新的硬件模塊便自動進行更新的策略;
發(fā)送模塊,用于下載工具依據(jù)所述請求發(fā)送所述更新軟件包至終端。
實施例一
請參照圖2,本實施例提供一種基于更新軟件包的依賴關系實現(xiàn)特定硬件配置的終端軟件更新的方法。具體的,可以包括以下步驟:
S1:終端依據(jù)自身的各項硬件資源配置生成一一對應的虛擬軟件包;
所述硬件資源配置包括CPU配置、內(nèi)存大小、口線分配、支持的讀卡類型、支持的通訊網(wǎng)絡類型、支持的接口類型、液晶規(guī)格等等;所述虛擬軟件包包括配置名稱和版本信息,本實施例中,虛擬軟件包中的版本信息用于存儲對應的硬件資源的配置信息;比如:
處理器不同:針對每個處理器定義一個虛擬軟件包,名稱用來標識不同處理器。比如:qm1表示某款高通處理器,AT1表示某款at1處理器。這些虛擬軟件包的配置相同,因此虛擬軟件包中的版本信息,即配置信息不變,比如都設置為1.0。
內(nèi)存大?。何覀兛梢远x一個虛擬軟件包ram,版本信息中實際存儲內(nèi)存大小,比如128表示內(nèi)存為128MB。
硬件資源分配不同:我們針對同樣的硬件資源分配定義一個板名稱,比如:board1。這樣,使用該終端型號硬件資源分配對應的板名稱作為虛擬軟件包名稱,版本信息設置為1.0。
S2:開發(fā)者依據(jù)其開發(fā)的更新軟件包對運行終端的硬件資源配置要求預設依賴關系;
具體的,所述更新軟件包包括硬件模塊軟件更新所需的所有文件,包括程序、庫、內(nèi)核模塊、腳本、配置文件、版本等。在本實施例中,在開發(fā)者完成一個對應某一硬件模塊的更新軟件包之后,將依據(jù)硬件模塊安裝該更新軟件包后,其終端能夠正常運行所要求的硬件資源配置,預設對應所述更新軟件包的依賴關系;如一個更新軟件包,其軟件只能在32MB內(nèi)存才能正常運行,則其更新軟件包的依賴關系為“ram(>=32)”;依賴關系中包括軟件正常運行對終端的所有硬件資源配置的要求。
S3:開發(fā)者發(fā)布更新軟件包,所述更新軟件包至少包含軟件對應的硬件模塊的名稱、對應的版本信息、對應的依賴關系以及程序、庫、內(nèi)核模塊、腳本、配置文件等;上位機以合法渠道獲取上述更新軟件包,并存儲;所述上位機為PC端或服務器;上位機中一般會配置有用于軟件更新的下載工具;優(yōu)選的,所述更新軟件包存儲在下載工具的數(shù)據(jù)庫中;
S4:當終端有軟件更新需求時,建立終端與上位機的通訊連接關系;
S5:終端上送硬件模塊軟件包和上述虛擬模塊軟件包至上位機;
所述硬件模塊軟件包包括硬件模塊的名稱和版本信息。
需要說明的是,現(xiàn)有技術中,終端需要下載包時,將上送各個硬件模塊的軟件包至上位機的下載工具,下載工具將依據(jù)各個硬件模塊軟件包中的名稱和版本信息,判斷是否存在名稱相同、版本更高的更新軟件包,供對應的硬件模塊進行軟件更新;若有,則可供終端下載;在本實施例中,在確定有對應的更新軟件包后,將包括依賴關系的判斷步驟,才能供終端下載,詳見下述步驟;
S6:下載工具依據(jù)終端上送的硬件模塊軟件包和數(shù)據(jù)庫中的更新軟件包中的名稱和版本信息的對應關系,判斷是否存在可用于更新終端的硬件模塊的更新軟件包;若是,執(zhí)行S7;若否,則結束。
具體的,可以依據(jù)名稱確定可更新的硬件模塊,依據(jù)版本信息確定該硬件模塊是否存在更高版本的軟件。
S7:判斷所述終端的虛擬軟件包中的配置信息是否符合所述可用于更新終端的硬件模塊的更新軟件包中的依賴關系要求;若是,則允許終端獲取所述更新軟件包;若否,則不允許所述更新軟件包被下載到終端中。
具體的,先獲取S6中所確定可用于終端某一硬件模塊軟件更新的更新軟件包中的依賴關系,然后從數(shù)據(jù)庫中獲取所要安裝的終端的配置信息;判斷所述終端的配置要求是否全部符合所述更新軟件包的依賴關系。比如,所確定的更新軟件包的依賴關系中包含“ram(>=32)”,而終端的配置信息為128;則終端的內(nèi)存配置符合更新軟件包的依賴關系中規(guī)定的要求;進而判斷其他配置要求,只有全部符合依賴關系的要求,才能執(zhí)行下一步驟。
實施例二
本實施例為實施例一的進一步延伸,相同之處不再累述,區(qū)別在于,S7步驟中,所述允許終端獲取所述更新軟件包之后,還包括可以具體的下載步驟:
S8:下載工具將包括S7中確定的更新軟件包對應的硬件模塊的名稱和版本信息的硬件模塊更新信息推送至終端;用于在終端提示用戶該硬件模塊存在可更新的軟件包。
S9:終端依據(jù)更新策略上送下載所述更新軟件包的請求至下載工具;
具體的,所述更新策略包括只有接收到確認更新的指令后才進行更新的策略,即只有用戶手動確定可進行更新操作,才能下載到終端,以及判斷存在可軟件更新的硬件模塊便自動進行更新的策略,即自動更新;
S10:下載工具依據(jù)所述請求發(fā)送上述更新軟件包至終端,用于對所對應的硬件模塊進行軟件更新。
實施例三
請參照圖3,本實施例為基于實施例一的特定硬件配置的終端軟件更新的系統(tǒng),包括終端、上位機和開發(fā)者系統(tǒng),所述終端和開發(fā)者系統(tǒng)分別與上位機連接;上位機配置有下載工具;
具體的,終端包括:
生成模塊1,用于終端依據(jù)自身的各項硬件資源配置生成一一對應的虛擬軟件包,所述硬件資源配置包括CPU和內(nèi)存;所述虛擬軟件包包括配置名稱和配置信息;
第一上送模塊2,用于終端上送硬件模塊軟件包和所述虛擬模塊軟件包至上位機;所述硬件模塊軟件包包括硬件模塊的名稱和版本信息;
開發(fā)者系統(tǒng)包括:
預設模塊3,用于開發(fā)者依據(jù)其開發(fā)的更新軟件包對運行終端的硬件資源配置要求預設依賴關系;
第二上送模塊4,用于上送包括更新軟件包對應的硬件模塊的名稱、版本信息和依賴關系的更新軟件包發(fā)送至上位機;
上位機包括:
第一判斷模塊5,用于上位機依據(jù)硬件模塊軟件包和更新軟件包中的名稱和版本信息,判斷是否存在可用于更新終端的硬件模塊的更新軟件包;
第二判斷模塊6,用于當?shù)谝慌袛嗄K的判斷結果為是時,判斷所述終端的虛擬軟件包中的配置信息是否符合所述更新軟件包的依賴關系;若是,則允許終端獲取所述更新軟件包。
實施例四
請參閱圖4,本實施例為實施例三基礎上的進一步延伸,具體的包括:
所述上位機還包括推送模塊7,用于下載工具將包括所述更新軟件包對應的硬件模塊的名稱和版本信息的硬件模塊更新信息推送至終端;
發(fā)送模塊9,用于下載工具依據(jù)所述請求發(fā)送所述更新軟件包至終端。
終端還包括更新模塊8,用于終端依據(jù)更新策略上送下載所述更新軟件包的請求至下載工具;所述更新策略包括只有接收到確認更新的指令后才進行更新的策略以及判斷存在可軟件更新的硬件模塊便自動進行更新的策略。
實施例五
本實施例基于實施例一至四的一具體運用場景。
所述終端為支付終端,如POS機。
開發(fā)者系統(tǒng)發(fā)布了一個名稱為testserver的軟件包,其中軟件只能在某款高通處理器、32MB以上內(nèi)存,以及板名稱為board1的硬件資源分配的終端上運行。這樣,開發(fā)者系統(tǒng)將預設其依賴關系為“ram(>=32),qm1(>=1.0),board1(>=1.0)”。
這樣,在支付終端下裝該軟件包時,支付終端上會根據(jù)自身處理器、內(nèi)存、硬件資源分配這些硬件信息生成相應的虛擬軟件包并上送到負責下載的PC或服務端。而PC或服務端的下載工具,通過將這些虛擬軟件包的名稱、版本信息與軟件包testserver中依賴關系比較,就可以得知該軟件包testserver是否可以下裝到這臺支付終端上。比如,處理器為某款高通處理器,內(nèi)存為128MB,板名稱為board1的支付終端,會上送三個虛擬軟件包,配置名稱分別為“qm1”、“ram1”、“board1”,配置信息,即版本信息分別為“1.0”、“128”、“1.0”。則軟件包testserver可以安裝到該終端上。
綜上所述,本發(fā)明提供的特定硬件配置的終端軟件更新的方法及其裝置,采用虛擬的軟件包和版本來代表終端的不同硬件配置,通過更新軟件包的依賴關系判斷,限制更新軟件包只能下到特定硬件配置的終端上,從而確保更新軟件包的正常運行,進一步保證終端的正常運行。本發(fā)明能夠發(fā)揮軟件包管理機制局部更新的優(yōu)點,不再需要整體軟件更新,不僅提高下載速度、減少流量及其費用;而且顯著降低維護成本和維護工作量,軟件以軟件包為單位按模塊維護,硬件無關模塊可以只發(fā)行一個版本,大大減少軟件維護工作量。
以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運用在相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。