本申請涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及一種海量圖片管理方法,以及一種海量圖片管理裝置。
背景技術(shù):
網(wǎng)絡(luò)交易平臺提供大量商品的交易,每個商品都有對應(yīng)的至少一張圖片,以全球速賣通(Aliexpress)為例,該平臺上大約有1.5億的商品,每個商品有1至6張在搜索、導(dǎo)購等頁面展示的商品主圖,還有多張描述商品詳情的細(xì)節(jié)圖,隨著業(yè)務(wù)的發(fā)展,每天有大量的圖片被新發(fā)到該平臺。
基于圖片可以進(jìn)行多種處理和分析,例如從圖片內(nèi)容判斷兩個商品是否相似或者同款,或是基于圖片內(nèi)容評估圖片的質(zhì)量、識別商品是否侵權(quán)等。
目前存在的問題是,一方面,海量圖片的處理和分析對平臺的存儲能力、數(shù)據(jù)處理能力均有著較高的要求;另一方面,針對每日更新的大量圖片,由于并未標(biāo)記與原始圖片的關(guān)系,因此無法確切獲知哪些圖片為新增圖片,目前的圖片存儲僅僅是簡單將更新的圖片全部并入圖片庫中,從而造成供下游應(yīng)用程序調(diào)用的商品圖片不準(zhǔn)確,并且會浪費(fèi)較多的計算資源和存儲資源來處理重復(fù)的圖片。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本申請以便提供一種克服上述問題或者至少部分地解決上述問題的海量圖片管理方法和相應(yīng)的海量圖片管理裝置。
依據(jù)本申請的一個方面,提供了一種海量圖片管理方法,包括:
獲取當(dāng)日更新的多個最新圖片;
將所述最新圖片通過多個傳輸線程并行上傳到分布式服務(wù)器集群中預(yù)置的日增圖庫,所述分布式服務(wù)器集群中還部署有全量圖庫;
通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫;
接收到應(yīng)用程序調(diào)用圖片的請求后,從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序。
優(yōu)選地,在所述獲取當(dāng)日更新的多個最新圖片之前,所述方法還包括:
通過解析商品更新記錄獲得對應(yīng)更新的最新商品信息;
從所述最新商品信息解析出所述最新圖片的鏈接地址,根據(jù)所述鏈接地址獲取所述最新圖片。
優(yōu)選地,所述通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫包括:
將所述日增圖庫中最新圖片的圖片索引與預(yù)置的歷史索引庫進(jìn)行比對,所述歷史索引庫中保存所述全量圖庫中所有圖片的圖片索引;
提取圖片索引不存在于所述歷史索引庫的最新圖片保存至所述全量圖庫。
優(yōu)選地,所述方法還包括:
將增加至所述全量圖庫的最新圖片對應(yīng)的圖片索引增加至所述歷史索引庫。
優(yōu)選地,所述全量圖庫中的圖片按照所屬多級圖片類目分布存放在所述服務(wù)器集群的多個存儲區(qū),每個存儲區(qū)的圖片按照對應(yīng)的圖片編號按序存放,各圖片標(biāo)記有對應(yīng)的圖片標(biāo)識和所屬多級圖片類目;
所述接收到應(yīng)用程序調(diào)用圖片的請求后,從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序包括:
解析所述調(diào)用圖片的請求攜帶所需目標(biāo)圖片的目標(biāo)多級圖片類目;
根據(jù)所述多級圖片類目中各級圖片類目對應(yīng)在所述存儲區(qū)的存放位置以及各個圖片標(biāo)記的圖片標(biāo)識和所屬多級圖片類目,從所述全量圖庫中提取所述目標(biāo)圖片。
優(yōu)選地,每日對應(yīng)一個日增圖庫,所述方法還包括:
刪除不符合預(yù)設(shè)時間區(qū)段的日增圖庫。
優(yōu)選地,所述方法還包括:
通過查詢商品歷史訪問數(shù)據(jù)確定仍在線使用的商品對應(yīng)的在線圖片,和/或,通過查詢圖片歷史調(diào)用數(shù)據(jù)確定仍在線使用的在線圖片;
刪除所述全量圖庫中除所述在線圖片之外的圖片。
優(yōu)選地,所述方法還包括:
查找求模值等于當(dāng)天對應(yīng)星期的某個圖片類目作為待清理的圖片類目;
所述刪除所述全量圖庫中除所述在線圖片之外的圖片為,針對所述待清理的圖片類目,在所述全量圖庫中刪除該圖片類目下除所述在線圖片之外的圖片。
優(yōu)選地,在所述通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫的同時,所述方法還包括:
將對應(yīng)的原始圖片存在于所述全量圖庫的最新圖片替代所述原始圖片保存至所述全量圖庫。
優(yōu)選地,所述方法還包括:
檢測到某個傳輸線程的執(zhí)行時間超出預(yù)設(shè)時間時,結(jié)束所述傳輸線程,并重啟新的傳輸線程代替執(zhí)行相應(yīng)任務(wù);
和/或,監(jiān)控網(wǎng)絡(luò)連接API,當(dāng)捕獲到所述網(wǎng)絡(luò)連接API發(fā)出網(wǎng)絡(luò)連接異常通知時,結(jié)束所有傳輸線程,并重啟新的多個傳輸線程代替執(zhí)行相應(yīng)任務(wù)。
優(yōu)選地,所述從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序為,從所述全量圖庫查找所述目標(biāo)圖片,提取所述目標(biāo)圖片的圖片特征反饋至所述應(yīng)用程序;
所述圖片索引為所述圖片的圖片編號和圖片標(biāo)識。
本申請還提供了一種海量圖片管理裝置,包括:
圖片獲取模塊,用于獲取當(dāng)日更新的多個最新圖片;
圖片上傳模塊,用于將所述最新圖片通過多個傳輸線程并行上傳到分布式服務(wù)器集群中預(yù)置的日增圖庫,所述分布式服務(wù)器集群中還部署有全量圖庫;
圖片保存模塊,用于圖片通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫;
圖片反饋模塊,用于接收到應(yīng)用程序調(diào)用圖片的請求后,從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序。
優(yōu)選地,所述裝置還包括:
最新商品解析模塊,用于在所述獲取當(dāng)日更新的多個最新圖片之前,通過解析商品更新記錄獲得對應(yīng)更新的最新商品信息;
鏈接地址訪問模塊,用于從所述最新商品信息解析出所述最新圖片的鏈接地址,根據(jù)所述鏈接地址獲取所述最新圖片。
優(yōu)選地,所述圖片保存模塊包括:
索引比對子模塊,用于將所述日增圖庫中最新圖片的圖片索引與預(yù)置的歷史索引庫進(jìn)行比對,所述歷史索引庫中保存所述全量圖庫中所有圖片的圖片索引;
圖片提取子模塊,用于提取圖片索引不存在于所述歷史索引庫的最新圖片保存至所述全量圖庫。
優(yōu)選地,所述裝置還包括:
索引增加模塊,用于將增加至所述全量圖庫的最新圖片對應(yīng)的圖片索引增加至所述歷史索引庫。
優(yōu)選地,所述全量圖庫中的圖片按照所屬多級圖片類目分布存放在所述服務(wù)器集群的多個存儲區(qū),每個存儲區(qū)的圖片按照對應(yīng)的圖片編號按序存放,各圖片標(biāo)記有對應(yīng)的圖片標(biāo)識和所屬多級圖片類目;
所述圖片反饋模塊包括:
類目解析子模塊,用于解析所述調(diào)用圖片的請求攜帶所需目標(biāo)圖片的目標(biāo)多級圖片類目;
按類目提取子模塊,用于根據(jù)所述多級圖片類目中各級圖片類目對應(yīng)在所述存儲區(qū)的存放位置以及各個圖片標(biāo)記的圖片標(biāo)識和所屬多級圖片類目,從所述全量圖庫中提取所述目標(biāo)圖片。
優(yōu)選地,每日對應(yīng)一個日增圖庫,所述裝置還包括:
圖庫刪除模塊,用于刪除不符合預(yù)設(shè)時間區(qū)段的日增圖庫。
優(yōu)選地,所述裝置還包括:
查詢模塊,用于通過查詢商品歷史訪問數(shù)據(jù)確定仍在線使用的商品對應(yīng)的在線圖片,和/或,通過查詢圖片歷史調(diào)用數(shù)據(jù)確定仍在線使用的在線圖片;
圖片刪除模塊,用于刪除所述全量圖庫中除所述在線圖片之外的圖片。
優(yōu)選地,所述裝置還包括:
類目查找模塊,用于查找求模值等于當(dāng)天對應(yīng)星期的某個圖片類目作為待清理的圖片類目;
所述圖片刪除模塊,具體用于針對所述待清理的圖片類目,在所述全量圖庫中刪除該圖片類目下除所述在線圖片之外的圖片。
優(yōu)選地,所述裝置還包括:
圖片替代模塊,用于在所述通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫的同時,將對應(yīng)的原始圖片存在于所述全量圖庫的最新圖片替代所述原始圖片保存至所述全量圖庫。
優(yōu)選地,所述裝置還包括:
超時處理模塊,用于檢測到某個傳輸線程的執(zhí)行時間超出預(yù)設(shè)時間時,結(jié)束所述傳輸線程,并重啟新的傳輸線程代替執(zhí)行相應(yīng)任務(wù);
和/或,網(wǎng)絡(luò)連接中斷處理模塊,用于監(jiān)控網(wǎng)絡(luò)連接API,當(dāng)捕獲到所述網(wǎng)絡(luò)連接API發(fā)出網(wǎng)絡(luò)連接異常通知時,結(jié)束所有傳輸線程,并重啟新的多個傳輸線程代替執(zhí)行相應(yīng)任務(wù)。
優(yōu)選地,所述圖片反饋模塊,具體用于從所述全量圖庫查找所述目標(biāo)圖片,提取所述目標(biāo)圖片的圖片特征反饋至所述應(yīng)用程序;
所述圖片索引為所述圖片的圖片編號和圖片標(biāo)識。
依據(jù)本申請實施例,將全量的商品圖片存儲于分布式服務(wù)集群的全量圖庫中,滿足了海量圖片的處理和分析對平臺的存儲能力、數(shù)據(jù)處理能力的要求;針對每日更新的最新圖片,存儲至日增圖庫,通過比對圖片索引確定不存在于全量圖庫的新增圖片,將確定的新增圖片增加至全量圖庫,避免了提供給下游應(yīng)用程序的商品圖片不準(zhǔn)確以及占用較多存儲資源和計算資源的問題。
本申請實施例中,針對對應(yīng)的原始圖片存在于全量圖庫的最新圖片,可以替代原始圖片保存至所述全量圖庫,從而實現(xiàn)新舊圖片的更新;在提取應(yīng)用程序所需最新圖片后,可以進(jìn)一步提取圖片特征進(jìn)行反饋,減輕了應(yīng)用程序所在終端處理圖片的負(fù)載。
本申請實施例支持將圖片按照對應(yīng)的多級圖片類目存放在服務(wù)器集群的多個存儲區(qū),進(jìn)一步查找圖片時可以僅僅根據(jù)多級類目進(jìn)行提取,從而可以極大的提高查找數(shù)據(jù)的效率;并且,在各個存儲區(qū),可以將多個圖片按照圖片編號組織成一個大文件進(jìn)行存儲,從而提高了圖片查找和處理的效率。
上述說明僅是本申請技術(shù)方案的概述,為了能夠更清楚了解本申請的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本申請的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本申請的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本申請的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本申請一個實施例的海量圖片管理方法的流程圖;
圖2示出了根據(jù)本申請另一個實施例的海量圖片管理方法的流程圖;
圖3示出了本申請圖片傳輸?shù)牧鞒淌疽鈭D;
圖4示出了本申請的一個示例中圖片的存儲結(jié)構(gòu);
圖5示出了本申請的一個示例中多級圖片類目的示意圖;
圖6示出了本申請的一個示例中圖片清理的步驟示意圖;
圖7示出了本申請的一個示例中圖片輸出的流程示意圖;
圖8示出了根據(jù)本申請一個實施例的海量圖片管理裝置的結(jié)構(gòu)框圖;
圖9示出了根據(jù)本申請另一個實施例的海量圖片管理裝置的結(jié)構(gòu)框圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
參考圖1,示出了根據(jù)本申請一個實施例的海量圖片管理的流程圖,該方法具體可以包括以下步驟:
步驟101,獲取當(dāng)日更新的多個最新圖片。
當(dāng)日更新的最新圖片可以包括針對原始圖片進(jìn)行修改后的圖片,也可以是新增的圖片,例如新增商品的所有圖片或是針對原有商品新增的圖片??梢酝ㄟ^多種方式獲取最新圖片,例如監(jiān)控客戶端更新圖片的行為,或是通過訪問圖片更新的相關(guān)記錄獲取最新圖片,還可以通過其他任意適用的方式,本申請對此并不做限制。
步驟102,將所述最新圖片通過多個傳輸線程并行上傳到分布式服務(wù)器集群中預(yù)置的日增圖庫,所述分布式服務(wù)器集群中還部署有全量圖庫。
傳統(tǒng)的圖片存儲和處理通常是在一個服務(wù)器上進(jìn)行,無法滿足海量圖片的需求,本申請通過將存儲所有圖片的全量圖庫部署在分布式服務(wù)器集群上,可以滿足海量圖片存儲和處理的要求。
具體實現(xiàn)中,優(yōu)選的,可以將本申請的方案部署在Hadoop系統(tǒng)(Hadoop Distributed File System,分布式文件系統(tǒng))上,Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群高速運(yùn)算和存儲能力。Hadoop的框架最核心的設(shè)計就是:HDFS(Hadoop Distributed File System,分布式文件系統(tǒng))和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲。HDFS有高容錯性的特點,并且設(shè)計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序,MapReduce則為海量的數(shù)據(jù)提供了計算。
Hadoop作為現(xiàn)在比較可靠的分布式框架,可以很方便的編寫分布式程序。但是要在hadoop上分布式的處理圖片,需要先把圖片傳輸?shù)紿DFS上。隨著數(shù)據(jù)量的增大,數(shù)據(jù)傳輸耗時增加,海量數(shù)據(jù)的上傳到HDFS更是會耗費(fèi)大量的時間,相比于單線程,本申請通過多線程傳輸可以提高數(shù)據(jù)傳輸?shù)男省?/p>
進(jìn)一步,需要在HDFS上維護(hù)一個全量的圖片庫以及每日的日增圖庫,保持圖庫的日更新,作為分布式圖片處理任務(wù)的數(shù)據(jù)輸入可以采用統(tǒng)一的接口為下游的分布式圖片處理程序提供輸入。
步驟103,通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫。
圖片采用圖片索引進(jìn)行標(biāo)識,圖片索引可以是圖片的標(biāo)識、編號等任意可用數(shù)據(jù)。
由于日增圖庫中可能存在全量圖庫中已有對應(yīng)的原始圖片,因此需要需要確定哪些圖片是不存在于全量圖庫中的最新圖片并保存至全量圖庫。
優(yōu)選地,當(dāng)采用Hadoop系統(tǒng)實施本申請時,可以采用MapReduce任務(wù)完成索引比對的步驟。
步驟104,接收到應(yīng)用程序調(diào)用圖片的請求后,從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序。
應(yīng)用程序可以向分布式服務(wù)集群發(fā)送調(diào)用圖片的請求,接收到請求后,查找應(yīng)用程序所請求的圖片進(jìn)行反饋。此處應(yīng)用程序可以實現(xiàn)包括圖同款、圖片質(zhì)量檢測和基于圖片內(nèi)容的商品侵權(quán)檢測等功能,本申請在此不做限制。
本申請實施例中,優(yōu)選地,所述步驟103可以包括:
子步驟S1,將所述日增圖庫中最新圖片的圖片索引與預(yù)置的歷史索引庫進(jìn)行比對,所述歷史索引庫中保存所述全量圖庫中所有圖片的圖片索引;
子步驟S2,提取圖片索引不存在于所述歷史索引庫的最新圖片保存至所述全量圖庫。
本申請可以預(yù)先采用歷史索引庫保存全量圖庫的全部圖片的圖片索引,確定不存在于所述全量圖庫的最新圖片時,可以通過比對圖片索引,若在全量圖庫中未查找到日增圖庫中某個圖片的圖片索引,則可以將該圖片保存至全量圖庫。
本申請實施例中,優(yōu)選地,所述方法還包括:
將增加至所述全量圖庫的最新圖片對應(yīng)的圖片索引增加至所述歷史索引庫。
在確定不存在于所述全量圖庫的最新圖片后,可以將確定的最新圖片的圖片索引增加至歷史索引庫,以對其進(jìn)行更新。
本申請實施例中,優(yōu)選地,所述全量圖庫中的圖片可以按照所屬多級圖片類目分布存放在所述服務(wù)器集群的多個存儲區(qū),進(jìn)一步查找圖片時可以僅僅根據(jù)多級類目進(jìn)行提取,從而可以極大的提高查找數(shù)據(jù)的效率。多級類目可以根據(jù)實際需要進(jìn)行設(shè)置,本申請對此并不做限定。
相應(yīng)優(yōu)選地,所述步驟104可以包括:
子步驟S3,解析所述調(diào)用圖片的請求攜帶所需目標(biāo)圖片的目標(biāo)多級圖片類目;
子步驟S4,根據(jù)所述多級圖片類目中各級圖片類目對應(yīng)在所述存儲區(qū)的存放位置以及各個圖片標(biāo)記的圖片標(biāo)識和所屬多級圖片類目,從所述全量圖庫中提取所述目標(biāo)圖片。
預(yù)先配置各級類目與存儲區(qū)的存放位置的對應(yīng)關(guān)系,對應(yīng)用程序調(diào)用圖片的請求進(jìn)行解析獲得待提取圖片的多級圖片類目,進(jìn)一步按照對應(yīng)的存儲位置從全量圖庫提取目標(biāo)圖片。
由于圖片庫需要提供靈活的過濾訪問,比如用戶可能需要訪問某某類目下某個圖片標(biāo)識對應(yīng)的圖片,所以本圖片庫中不是將所有的圖片都放在一起,而是按照如下的目錄組織形式,將圖片按照類目分級存放,就像一個個的分區(qū)。這樣當(dāng)只需要過濾得到某個三級類目下的某些圖片時,只需要拿三級類目的數(shù)據(jù)作為輸入即可,可極大的減少數(shù)據(jù)的處理量。
由于圖片都是一個個的小文件,而眾多的小文件會大大降低Hadoop平臺的處理效率。采用Hadoop系統(tǒng)時,其文件系統(tǒng)的結(jié)構(gòu)在處理和存儲大文件有很大的優(yōu)勢,而很多小文件則不適合在hadoop中進(jìn)行處理,可以將眾多的小文件,通過使用Hadoop中提供的SequenceFile的方式,組織成一個大文件進(jìn)行存儲。SequenceFile是Hadoop提供的一種二進(jìn)制文件格式,它將數(shù)據(jù)以<key,value>的形式序列化到文件中。具體應(yīng)用到本申請,每個存儲區(qū)的圖片可以按照對應(yīng)的圖片編號按序存放,在后續(xù)的圖片處理過程中這些元數(shù)據(jù)可以提供數(shù)據(jù)過濾功能,從而提高了圖片查找和處理的效率;各圖片可以標(biāo)記有對應(yīng)的圖片標(biāo)識和所屬多級圖片類目,用于按照圖片標(biāo)識和多級圖片類目對圖片進(jìn)行提取,K為圖片編號,V為圖片原始數(shù)據(jù)和元數(shù)據(jù),元數(shù)據(jù)包括圖片標(biāo)識和所屬多級類目。圖片標(biāo)識可以是圖片的MD5值。
本申請實施例中,優(yōu)選地,所述從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序為,從所述全量圖庫查找所述目標(biāo)圖片,提取所述目標(biāo)圖片的圖片特征反饋至所述應(yīng)用程序。
相比于在HDFS上存儲圖片的特征庫而不是圖片原始數(shù)據(jù)的方案,這種方案不在HDFS上存儲圖片原始數(shù)據(jù),而是在拿到圖片的原始數(shù)據(jù)之后,提取需要的圖片特征,比如直方圖、SIFT等,存儲這些特征數(shù)據(jù)到HDFS上,目的是為了減少數(shù)據(jù)傳輸量。但這種方案存在的問題是,圖片庫無法作為圖片處理和分析任務(wù)的通用數(shù)據(jù)平臺,每個圖片處理任務(wù)需要的圖片特征可能是不一樣的,無法一一枚舉,如果某個任務(wù)需要某種特征,而這種特征不存在,那么就無法在短時間內(nèi)進(jìn)行這個圖片處理任務(wù),因為對海量圖片提取特征本身也需要巨大的工作量。并且這種方式,算法人員的工作必須從如何獲取圖片著手,然后提取特征,然后再上傳到HDFS,之后才能使用算法進(jìn)行分析和處理。前期的特征準(zhǔn)備需要花費(fèi)很大精力,算法人員無法專注在算法的應(yīng)用上。
本申請由于存儲了圖片原始數(shù)據(jù),應(yīng)用程序可以預(yù)置所需的特征提取方式,或是,對于一些常用的圖片特征,可以通過預(yù)置的通用的分布式特征提取程序,使用者可以直接調(diào)用??梢詽M足提取各種特征的需求,使得對于下游的圖片處理和分析任務(wù),本申請的圖片庫可以作為一個公共的數(shù)據(jù)支持平臺提供數(shù)據(jù)服務(wù)。通過這種統(tǒng)一的圖片輸出方式以及內(nèi)置的圖片特征處理算法,從而可以方便快捷地為下游的圖片處理任務(wù)提供數(shù)據(jù),算法人員不需要關(guān)心大量圖片存儲和特征提取工作,只需要關(guān)注算法本身,實現(xiàn)了“專人專事”策略,保障了工作的高效性。并且通過提取圖片特征進(jìn)行反饋,減輕了應(yīng)用程序所在終端處理圖片的負(fù)載。
參考圖2,示出了根據(jù)本申請另一個實施例的基于數(shù)據(jù)分析的服務(wù)器入侵識別方法的流程圖,該方法具體可以包括以下步驟:
步驟201,通過解析商品更新記錄獲得對應(yīng)更新的最新商品信息。
在商品更新時可以進(jìn)行記錄,后續(xù)通過讀取記錄即可蝴蝶更新的最新商品信息。
步驟202,從所述最新商品信息解析出所述最新圖片的鏈接地址,根據(jù)所述鏈接地址獲取所述最新圖片。
在獲取最新商品時,可以通過解析最新商品信息獲得最新圖片的鏈接地址,根據(jù)鏈接地址可以從最新商品的存儲位置獲取該商品。
步驟203,獲取當(dāng)日更新的多個最新圖片。
步驟204,將所述最新圖片通過多個傳輸線程并行上傳到分布式服務(wù)器集群中預(yù)置的日增圖庫,每日對應(yīng)一個日增圖庫,所述分布式服務(wù)器集群中還部署有全量圖庫。
步驟205,檢測到某個傳輸線程的執(zhí)行時間超出預(yù)設(shè)時間時,結(jié)束所述傳輸線程,并重啟新的傳輸線程代替執(zhí)行相應(yīng)任務(wù)。
圖片傳輸中可能會出現(xiàn)傳輸超時的問題,導(dǎo)致整個圖片傳輸?shù)臅r間大大增加,甚至發(fā)生傳輸失敗的問題,因此需要做好超時控制。
由于采用了多個傳輸線程進(jìn)行圖片的上傳,預(yù)先可以針對各個傳輸線程設(shè)置傳輸時間上限或是超時時間,超出這個時間傳輸線程還沒有結(jié)束,則確定發(fā)生傳輸超時的問題。針對一個或多個傳輸線程超時的情況,強(qiáng)制關(guān)閉相應(yīng)的傳輸線程,并重新啟動新的傳輸線程,代替關(guān)閉的線程執(zhí)行任務(wù),從而及時發(fā)現(xiàn)并解決傳輸超時的問題,保證可以在最短的時間中將大量的圖片傳輸?shù)降椒植际椒?wù)器集群。
步驟206,監(jiān)控網(wǎng)絡(luò)連接API,當(dāng)捕獲到所述網(wǎng)絡(luò)連接API發(fā)出網(wǎng)絡(luò)連接異常通知時,結(jié)束所述傳輸線程,并重啟新的傳輸線程代替執(zhí)行相應(yīng)任務(wù)。
圖片傳輸中可能會受到網(wǎng)絡(luò)擾動,導(dǎo)致和分布式服務(wù)器集群的連接會斷掉,使傳輸中斷。因此,在圖片傳輸過程中需要對網(wǎng)絡(luò)連接進(jìn)行監(jiān)控,并在監(jiān)控到網(wǎng)絡(luò)連接中斷時,重試傳輸任務(wù),從而及時發(fā)現(xiàn)并解決網(wǎng)絡(luò)中斷的問題,保證可以在最短的時間中將大量的圖片傳輸?shù)降椒植际椒?wù)器集群。
本申請優(yōu)選采用的方式是,結(jié)束當(dāng)前所有傳輸線程,并重新啟動相應(yīng)個數(shù)的新的線程,對應(yīng)執(zhí)行關(guān)閉的各個傳輸任務(wù)。
其中,可以通過監(jiān)控網(wǎng)絡(luò)連接API來發(fā)現(xiàn)網(wǎng)絡(luò)中斷,網(wǎng)絡(luò)連接功能通過Java語言底層的API(Application Programming Interface,應(yīng)用程序編程接口)來實現(xiàn),當(dāng)網(wǎng)絡(luò)中斷時,API會發(fā)出一個異常通知,通過捕獲這個異常通知即可確定發(fā)生網(wǎng)絡(luò)中斷。
本申請針對連接中斷和超時均可采用重試的方式解決。由于不可能無限制的進(jìn)行重試,可以針對重試設(shè)置對應(yīng)的最大重試次數(shù)進(jìn)行控制。例如,最多重試3次,若重試3次之后還不能完成任務(wù),則忽略對這張圖片的傳輸。
步驟207,通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫,將對應(yīng)的原始圖片存在于所述全量圖庫的最新圖片替代所述原始圖片保存至所述全量圖庫。
本申請實施例中,針對對應(yīng)的原始圖片存在于全量圖庫的最新圖片,可以替代原始圖片保存至所述全量圖庫,從而實現(xiàn)新舊圖片的更新。
步驟208,接收到應(yīng)用程序調(diào)用圖片的請求后,從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序。
步驟209,刪除不符合預(yù)設(shè)時間區(qū)段的日增圖庫。
由于存儲空間的限制,日增圖庫不需要保留很多天的數(shù)據(jù),可以設(shè)置一個期限,例如保留7天,并根據(jù)該期限將過期的日增圖庫刪除。
步驟210,通過查詢商品歷史訪問數(shù)據(jù)確定仍在線使用的商品對應(yīng)的在線圖片,和/或,通過查詢圖片歷史調(diào)用數(shù)據(jù)確定仍在線使用的在線圖片。
全量庫中由于存儲了大量的歷史數(shù)據(jù),里面會有很多的“僵尸圖片”,包括已經(jīng)下線的商品對應(yīng)的圖片,商品中已經(jīng)刪除的圖片等,這些數(shù)據(jù)需要清除,否則久而久之會占用很大的存儲空間。通過查詢商品歷史訪問數(shù)據(jù)可以確定仍在線使用的商品對應(yīng)的在線圖片,或是通過查詢圖片歷史調(diào)用數(shù)據(jù)確定仍在線使用的在線圖片,或是將兩種方式結(jié)合使用。
步驟211,刪除所述全量圖庫中除所述在線圖片之外的圖片。
需要將全量庫中的“僵尸圖片”刪除,由于全量圖庫數(shù)據(jù)量巨大,無法一次性執(zhí)行這個清理工作,因此對于全量圖片,可以采用按照類目分批清理的策略。
可以設(shè)定類目ID與預(yù)設(shè)數(shù)值的求模結(jié)果,與預(yù)設(shè)時間段(一天、一周、一月或一年等)中各個日期(某天、一天中的某個時間點等)的對應(yīng)關(guān)系,在到達(dá)該日期時,清理對應(yīng)的類目ID。
優(yōu)選地,可以查找求模結(jié)果等于當(dāng)天對應(yīng)星期的某個圖片類目作為待清理的圖片類目,即將類目ID與7求模的結(jié)果等于當(dāng)天對應(yīng)星期的類目,作為待清理的對象,這樣保證在一周之內(nèi)每個類目都會得到清理。例如,類目A的ID為9,與7求模結(jié)果為2,類目B的ID為8,與7求模結(jié)果為1,則可以將類目A作為星期二的待清理對象,將類目B作為星期一的待清理對象,若當(dāng)天對應(yīng)一周中的星期二,則清理類目A。還可以根據(jù)實際需求設(shè)置類目ID與7求模結(jié)果與一周中某個日期的對應(yīng)關(guān)系,例如,求模結(jié)果為2,則對應(yīng)在一周中的周五清理,求模結(jié)果為3,在對應(yīng)在一周中的周一清理。還可以采用任意適用的方式設(shè)置清理圖片的時間,本申請對此并不做限制。
相應(yīng)的,所述刪除所述全量圖庫中除所述在線圖片之外的圖片為,針對所述待清理的圖片類目,在所述全量圖庫中刪除該圖片類目下除所述在線圖片之外的圖片。
為使本領(lǐng)域技術(shù)人員更好地理解本申請,以下通過采用Hadoop平臺實施本申請的一種海量圖片管理方法為例進(jìn)行說明。本申請的方案可以包括圖片傳輸、圖片存儲、圖庫更新和數(shù)據(jù)輸出幾部分,以下分塊進(jìn)行詳細(xì)說明。需要說明的是,圖3-7中的圖像即本申請所述的圖片。
一、圖片傳輸
如圖3所示給出了本申請圖片傳輸?shù)牧鞒淌疽鈭D,具體過程包括:
1、獲取當(dāng)天修改的商品信息。
通過查詢業(yè)務(wù)數(shù)據(jù),找到當(dāng)天被修改的商品,包括新發(fā)布的商品和文字修改或者圖片修改的商品。由于無法精確的獲得哪些商品是圖片修改的商品,因此獲取的商品量會比較大。
2、均衡商品信息切分。
對下載的商品信息構(gòu)建相應(yīng)的圖像信息,首先獲取待處理的商品數(shù)據(jù),然后通過商品數(shù)據(jù)解析得到圖片的URL,進(jìn)一步均衡的切分為N份,調(diào)用高可靠性的傳輸程序?qū)D片寫入HDFS的SequenceFile中,每一份會有一個對應(yīng)的圖片上傳單元進(jìn)行處理。通過并行化上傳加快圖片的傳輸速度,多個圖片上傳單元并行工作。
3、傳輸圖片到臨時日增圖庫。
所有上傳單元都將圖片上傳到HDFS上的一個臨時日增圖庫中,這個臨時日增圖庫存儲了第一步中獲取的全部商品的圖片。傳輸程序具備高可靠性,通過部署傳輸斷開重連機(jī)制、超時控制機(jī)制,保證可以在最短的時間中將大量的圖片傳輸?shù)紿DFS。
4、索引比對,構(gòu)建日增庫。
索引中存儲了圖片庫中圖片的ID和圖片的MD5碼,通過MapReduce任務(wù),將臨時目錄中的圖片和索引庫對比,獲取不存在索引中的圖片數(shù)據(jù),作為當(dāng)天的日增庫內(nèi)容。
5、更新索引。
對當(dāng)天的日增庫內(nèi)容的圖片數(shù)據(jù)構(gòu)建索引,更新圖庫索引庫,以便下次的圖片上傳中使用此索引進(jìn)行過濾。
6、更新全量圖庫。
將當(dāng)天的日增圖庫寫入全量圖庫。
7、日增圖庫自清理。
由于存儲空間的限制,日增圖庫不需要保留很多天的數(shù)據(jù),一般保留7天,這一步將過期的日增圖庫從HDFS刪除。
8、全量圖庫自清理。
二、圖片存儲
圖4示出了本申請的一個示例中圖片的存儲結(jié)構(gòu),圖5示出了本申請的一個示例中多級圖片類目的示意圖。
SequenceFile中通過K-V格式存儲數(shù)據(jù),這里我們將K作為圖片的ID,V作為圖片原始數(shù)據(jù)(二進(jìn)制數(shù)據(jù))和元數(shù)據(jù),組成了如圖4所示的存儲結(jié)構(gòu)。
圖片的元數(shù)據(jù)包括圖片的MD5碼和圖片對應(yīng)的商品所在的類目等,在后續(xù)的圖片處理過程中這些元數(shù)據(jù)可以提供數(shù)據(jù)過濾功能。
由于圖片庫需要提供靈活的過濾訪問,比如用戶可能需要訪問某某類目下的哪些商品ID對應(yīng)的圖片,所以本圖片庫中不是將所有的圖片都放在一起,而是按照如圖5所示的目錄組織形式,將圖片按照類目分級存放,就像一個個的分區(qū)。如圖image01.seq、image02.seq和image03.seq存儲在圖像庫根目錄下的某個四級類目下,這樣當(dāng)只需要過濾得到某個四級類目下的某些圖片時,只需要拿四級類目的數(shù)據(jù)作為輸入即可,可極大的減少數(shù)據(jù)的處理量。
三、圖庫更新
圖片更新包括三個方面:
1、日增圖庫的更新
通過每日運(yùn)行圖片傳輸任務(wù),建立當(dāng)天的日增圖庫,并將過期的日增圖庫刪除。
2、全量圖庫的更新
全量圖庫在本發(fā)明中是實現(xiàn)的日更新,將每日的日增圖庫直接和全量庫合并即可。
3、全量圖片的清理
此步驟需要將全量庫中的“僵尸圖片”刪除,由于全量圖庫數(shù)據(jù)量巨大,無法一次性執(zhí)行這個清理工作,因此對于全量圖片,按照類目分批清理的策略,即在每天清理類目ID求模7等于當(dāng)天對應(yīng)星期的類目,這樣保證在一周之內(nèi)每個類目都會得到清理。
如圖6示出了本申請的一個示例中圖片清理的步驟示意圖,具體包括:
步驟1、判斷類目是否當(dāng)天清理。
如果此類目當(dāng)天清理,則加入圖像庫文件的清理列表中。
步驟2、準(zhǔn)備有效圖片ID列表。
通過查詢業(yè)務(wù)數(shù)據(jù),確定哪些圖片ID是需要保留的,不在此列表之內(nèi)的圖片數(shù)據(jù)將被刪除。
步驟3、運(yùn)行MapReduce清理任務(wù)。
執(zhí)行MapReduce任務(wù)將有效圖片ID和原始圖庫中的圖片數(shù)據(jù)進(jìn)行比對,將不需要的圖片清理掉。
步驟4、用清理后的數(shù)據(jù)翻蓋原始數(shù)據(jù)。
使用清理之后的圖片數(shù)據(jù)替換原始的圖片庫數(shù)據(jù),完成清理。
四、數(shù)據(jù)輸出
圖片輸出解決的問題是如何將滿足下游圖片處理程序的數(shù)據(jù)輸入,圖7示出了本申請的一個示例中圖片輸出的流程示意圖,具體包括:
步驟1、確定需要的圖片ID列表。
下游程序提供需要的圖片ID,作為圖片輸出步驟的輸入。
步驟2、過濾圖庫,得到圖片數(shù)據(jù)。
根據(jù)圖片列表,從圖庫中獲取需要的圖片數(shù)據(jù)。這里通過MapReduce任務(wù)進(jìn)行圖片ID和圖庫數(shù)據(jù)的分布式比對,得到結(jié)果。
步驟3、提取圖片特征。
得到圖片數(shù)據(jù)之后,可以通過內(nèi)置的圖片特征提取方法,或者下游程序自定義的圖片特征提取算法,通過分布式MapReduce任務(wù)任務(wù)做特征提取,提取的特征作為下游圖片處理任務(wù)的輸入。
參考圖8,其示出了根據(jù)本申請一個實施例的海量圖片管理裝置的結(jié)構(gòu)框圖,具體可以包括:
圖片獲取模塊301,用于獲取當(dāng)日更新的多個最新圖片;
圖片上傳模塊302,用于將所述最新圖片通過多個傳輸線程并行上傳到分布式服務(wù)器集群中預(yù)置的日增圖庫,所述分布式服務(wù)器集群中還部署有全量圖庫;
圖片保存模塊303,用于圖片通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫;
圖片反饋模塊304,用于接收到應(yīng)用程序調(diào)用圖片的請求后,從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序。
本申請實施例中,優(yōu)選地,所述圖片保存模塊包括:
索引比對子模塊,用于將所述日增圖庫中最新圖片的圖片索引與預(yù)置的歷史索引庫進(jìn)行比對,所述歷史索引庫中保存所述全量圖庫中所有圖片的圖片索引;
圖片提取子模塊,用于提取圖片索引不存在于所述歷史索引庫的最新圖片保存至所述全量圖庫。
本申請實施例中,優(yōu)選地,所述裝置還包括:
索引增加模塊,用于將增加至所述全量圖庫的最新圖片對應(yīng)的圖片索引增加至所述歷史索引庫。
本申請實施例中,優(yōu)選地,所述全量圖庫中的圖片按照所屬多級圖片類目分布存放在所述服務(wù)器集群的多個存儲區(qū),每個存儲區(qū)的圖片按照對應(yīng)的圖片編號按序存放,各圖片標(biāo)記有對應(yīng)的圖片標(biāo)識和所屬多級圖片類目;
所述圖片反饋模塊包括:
類目解析子模塊,用于解析所述調(diào)用圖片的請求攜帶所需目標(biāo)圖片的目標(biāo)多級圖片類目;
按類目提取子模塊,用于根據(jù)所述多級圖片類目中各級圖片類目對應(yīng)在所述存儲區(qū)的存放位置以及各個圖片標(biāo)記的圖片標(biāo)識和所屬多級圖片類目,從所述全量圖庫中提取所述目標(biāo)圖片。
本申請實施例中,優(yōu)選地,所述圖片反饋模塊,具體用于從所述全量圖庫查找所述目標(biāo)圖片,提取所述目標(biāo)圖片的圖片特征反饋至所述應(yīng)用程序;
所述圖片索引為所述圖片的圖片編號和圖片標(biāo)識。
依據(jù)本申請實施例,將全量的商品圖片存儲于分布式服務(wù)集群的全量圖庫中,滿足了海量圖片的處理和分析對平臺的存儲能力、數(shù)據(jù)處理能力的要求;針對每日更新的最新圖片,存儲至日增圖庫,通過比對圖片索引確定不存在于全量圖庫的新增圖片,將確定的新增圖片增加至全量圖庫,避免了提供給下游應(yīng)用程序的商品圖片不準(zhǔn)確以及占用較多存儲資源和計算資源的問題。
參考圖9,其示出了根據(jù)本申請另一個實施例的海量圖片管理裝置的結(jié)構(gòu)框圖,具體可以包括:
最新商品解析模塊401,用于在所述獲取當(dāng)日更新的多個最新圖片之前,通過解析商品更新記錄獲得對應(yīng)更新的最新商品信息;
鏈接地址訪問模塊402,用于從所述最新商品信息解析出所述最新圖片的鏈接地址,根據(jù)所述鏈接地址獲取所述最新圖片。
圖片獲取模塊403,用于獲取當(dāng)日更新的多個最新圖片;
圖片上傳模塊404,用于將所述最新圖片通過多個傳輸線程并行上傳到分布式服務(wù)器集群中預(yù)置的日增圖庫,所述分布式服務(wù)器集群中還部署有全量圖庫;
超時處理模塊405,用于檢測到某個傳輸線程的執(zhí)行時間超出預(yù)設(shè)時間時,結(jié)束所述傳輸線程,并重啟新的傳輸線程代替執(zhí)行相應(yīng)任務(wù);
網(wǎng)絡(luò)連接中斷處理模塊406,用于監(jiān)控網(wǎng)絡(luò)連接API,當(dāng)捕獲到所述網(wǎng)絡(luò)連接API發(fā)出網(wǎng)絡(luò)連接異常通知時,結(jié)束所有傳輸線程,并重啟新的多個傳輸線程代替執(zhí)行相應(yīng)任務(wù)。
圖片保存模塊407,用于圖片通過比對圖片索引,將所述日增圖庫中不存在于所述全量圖庫的最新圖片保存至所述全量圖庫,將對應(yīng)的原始圖片存在于所述全量圖庫的最新圖片替代所述原始圖片保存至所述全量圖庫;
圖片反饋模塊408,用于接收到應(yīng)用程序調(diào)用圖片的請求后,從所述全量圖庫提取目標(biāo)圖片反饋至所述應(yīng)用程序。
圖庫刪除模塊409,用于刪除不符合預(yù)設(shè)時間區(qū)段的日增圖庫。
查詢模塊410,用于通過查詢商品歷史訪問數(shù)據(jù)確定仍在線使用的商品對應(yīng)的在線圖片,和/或,通過查詢圖片歷史調(diào)用數(shù)據(jù)確定仍在線使用的在線圖片;
圖片刪除模塊411,用于刪除所述全量圖庫中除所述在線圖片之外的圖片。
本申請實施例中,優(yōu)選地,類目查找模塊,用于查找求模值等于當(dāng)天對應(yīng)星期的某個圖片類目作為待清理的圖片類目;
所述圖片刪除模塊,具體用于針對所述待清理的圖片類目,在所述全量圖庫中刪除該圖片類目下除所述在線圖片之外的圖片。
依據(jù)本申請實施例,將全量的商品圖片存儲于分布式服務(wù)集群的全量圖庫中,滿足了海量圖片的處理和分析對平臺的存儲能力、數(shù)據(jù)處理能力的要求;針對每日更新的最新圖片,存儲至日增圖庫,通過比對圖片索引確定不存在于全量圖庫的新增圖片,將確定的新增圖片增加至全量圖庫,避免了提供給下游應(yīng)用程序的商品圖片不準(zhǔn)確以及占用較多存儲資源和計算資源的問題。
本申請實施例中,針對對應(yīng)的原始圖片存在于全量圖庫的最新圖片,可以替代原始圖片保存至所述全量圖庫,從而實現(xiàn)新舊圖片的更新;在提取應(yīng)用程序所需最新圖片后,可以進(jìn)一步提取圖片特征進(jìn)行反饋,減輕了應(yīng)用程序所在終端處理圖片的負(fù)載。
本申請實施例支持將圖片按照對應(yīng)的多級圖片類目存放在服務(wù)器集群的多個存儲區(qū),進(jìn)一步查找圖片時可以僅僅根據(jù)多級類目進(jìn)行提取,從而可以極大的提高查找數(shù)據(jù)的效率;并且,在各個存儲區(qū),可以將多個圖片按照圖片編號組織成一個大文件進(jìn)行存儲,從而提高了圖片查找和處理的效率。
由于所述裝置和系統(tǒng)實施例基本相應(yīng)于前述所示的方法實施例,故本實施例的描述中未詳盡之處,可以參見前述實施例中的相關(guān)說明,在此就不贅述了。
在此提供的算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本申請也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本申請的內(nèi)容,并且上面對特定語言所做的描述是為了披露本申請的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本申請的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個申請方面中的一個或多個,在上面對本申請的示例性實施例的描述中,本申請的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本申請要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,申請方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本申請的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本申請的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。
本申請的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運(yùn)行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本申請實施例的基于數(shù)據(jù)分析的服務(wù)器入侵識別設(shè)備中的一些或者全部部件的一些或者全部功能。本申請還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機(jī)程序和計算機(jī)程序產(chǎn)品)。這樣的實現(xiàn)本申請的程序可以存儲在計算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本申請進(jìn)行說明而不是對本申請進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本申請可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機(jī)來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。