專利名稱:提供圖片的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù),更具體地涉及提供圖片的方法和設(shè)備。
背景技術(shù):
隨著移動(dòng)設(shè)備,諸如個(gè)人數(shù)字助理(PDA)、蜂窩電話等的普及,人們?cè)谏钪性絹碓蕉嗟乩眠@些設(shè)備通過電信網(wǎng)絡(luò)進(jìn)行通信、瀏覽網(wǎng)上新聞、獲取信息等等。尤其是隨著社交網(wǎng)站(例如,人人網(wǎng))的興起,人們隨時(shí)隨地都可以通過社交網(wǎng)站與自己的朋友分享內(nèi)容,諸如視頻、音頻、圖片以及語音等。移動(dòng)設(shè)備將人們與網(wǎng)絡(luò)聯(lián)系地更加緊密,并因此為用戶帶來巨大的便利。
然而,在移動(dòng)設(shè)備的用戶利用移動(dòng)設(shè)備瀏覽網(wǎng)頁時(shí),有時(shí)會(huì)發(fā)現(xiàn)呈現(xiàn)在移動(dòng)設(shè)備顯示器上的網(wǎng)頁圖片出現(xiàn)錯(cuò)位、過大或過小等,這極大地影響了用戶瀏覽網(wǎng)頁的體驗(yàn)。其原因主要在于大部分網(wǎng)站的網(wǎng)頁是針對(duì)臺(tái)式計(jì)算機(jī)、筆記本計(jì)算機(jī)等具有較大顯示器、大量存儲(chǔ)空間和較強(qiáng)計(jì)算處理能力的終端設(shè)備開發(fā)的,所以這些網(wǎng)頁中圖片的顏色、分辨率、文件格式、文件大小等不能很好地適應(yīng)具有較小顯示器、少量存儲(chǔ)空間和較弱計(jì)算處理能力的移動(dòng)設(shè)備。在此情況中,從網(wǎng)站的開發(fā)情況來看,并沒有針對(duì)移動(dòng)設(shè)備的用戶而有太大的改變。因?yàn)橐苿?dòng)設(shè)備的顯示能力、存儲(chǔ)能力和計(jì)算能力各不相同,如果為了適應(yīng)這些移動(dòng)設(shè)備,就需要在開發(fā)網(wǎng)頁時(shí)為各種型號(hào)的移動(dòng)設(shè)備準(zhǔn)備相應(yīng)的圖片等網(wǎng)頁元素。所以,單獨(dú)開發(fā)適用于移動(dòng)設(shè)備的網(wǎng)頁顯然會(huì)增加開發(fā)成本,并且增加開發(fā)的復(fù)雜度??偠灾诂F(xiàn)有情況中,移動(dòng)設(shè)備的用戶由于上述原因無法獲得良好的網(wǎng)頁瀏覽體驗(yàn),特別是在瀏覽包括圖片的網(wǎng)頁時(shí)更是如此。
發(fā)明內(nèi)容
因此,需要一種在不改變整體網(wǎng)頁設(shè)計(jì)、不大量增加網(wǎng)站服務(wù)器存儲(chǔ)空間和計(jì)算負(fù)擔(dān)的情況下為具有各類參數(shù)的各種型號(hào)的移動(dòng)設(shè)備提供圖片的方法和設(shè)備。為了解決上述問題,本發(fā)明提供了一種用于提供圖片的方法和設(shè)備。根據(jù)本發(fā)明的一個(gè)方面,提供了一種提供圖片的方法,包括通過提供圖片內(nèi)存緩沖的服務(wù)器接收?qǐng)D片的請(qǐng)求;判斷內(nèi)存緩沖區(qū)中是否存在所請(qǐng)求的圖片;如果找到適合的圖片,則從所述內(nèi)存緩沖區(qū)中直接獲取圖片以提供給所述設(shè)備。根據(jù)本發(fā)明的另一方面,提供了一種提供圖片的設(shè)備,包括接收裝置,用于通過提供圖片內(nèi)存緩沖的服務(wù)器接收?qǐng)D片的請(qǐng)求;判斷裝置,用于判斷內(nèi)存緩沖區(qū)中是否存在所請(qǐng)求的圖片;提供裝置,用于如果找到適合的圖片則從所述內(nèi)存緩沖區(qū)中直接獲取圖片以提供給所述設(shè)備。根據(jù)本發(fā)明,通過以上用于提供圖片的方法和設(shè)備,可以在不大量增加服務(wù)器負(fù)擔(dān)的情況下,為各類移動(dòng)設(shè)備提供適應(yīng)其設(shè)備能力的圖片,從而使移動(dòng)設(shè)備的用戶得到了更好的圖片瀏覽體驗(yàn)。上述方法和設(shè)備在提供圖片的同時(shí)也沒有增加開發(fā)成本,具有良好的成本效益。
通過對(duì)結(jié)合附圖所示出的實(shí)施方式進(jìn)行詳細(xì)說明,本發(fā)明的上述以及其他特征將更加明顯,本發(fā)明附圖中相同的標(biāo)號(hào)表示相同或相似的元素。在附圖中
圖I示意性地示出了根據(jù)本發(fā)明示例性實(shí)施方式的、用于提供圖片的方法的流程圖;圖2示意性地示出了根據(jù)本發(fā)明示例性實(shí)施方式的、用于提供圖片的設(shè)備的框圖;圖3示意性地示出了根據(jù)本發(fā)明示例性實(shí)施方式的、實(shí)現(xiàn)本發(fā)明方法的場(chǎng)景圖;以及圖4示意性地示出了可以通過其實(shí)現(xiàn)本發(fā)明實(shí)施方式的計(jì)算設(shè)備的框圖。
具體實(shí)施例方式在下文中,將參考圖示借助于實(shí)施方式對(duì)本發(fā)明的用于提供圖片的方法和設(shè)備進(jìn)行詳細(xì)地描述。附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實(shí)施方式的設(shè)備和方法體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這取決于所涉及的功能。還要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。在為移動(dòng)設(shè)備提供圖片的領(lǐng)域中,傳統(tǒng)的解決方案采用基于squid等反向代理服務(wù)器的、基于磁盤的緩存方式來提供圖片。squid機(jī)制通過以下的操作實(shí)現(xiàn)其功能的首先接收需要下載的目標(biāo)的請(qǐng)求,例如一個(gè)用戶希望瀏覽某些內(nèi)容(例如,圖片),他就向squid服務(wù)器請(qǐng)求該內(nèi)容。然后,由squid服務(wù)器向存儲(chǔ)或加載有該內(nèi)容的遠(yuǎn)程服務(wù)器(例如http://3g. renren. com)發(fā)出請(qǐng)求以獲得用戶所請(qǐng)求的內(nèi)容。在獲得該內(nèi)容之后,squid服務(wù)器針對(duì)用戶設(shè)備的請(qǐng)求來處理內(nèi)容(例如,裁剪圖片)以適應(yīng)移動(dòng)設(shè)備的顯示器大小等。在處理完成之后,squid服務(wù)器將該處理后的內(nèi)容提供給用戶的設(shè)備,同時(shí)復(fù)制一份副本存儲(chǔ)在磁盤中以供下次同一類型的設(shè)備請(qǐng)求時(shí)提供??梢钥闯?,該機(jī)制可以在某種程度上為移動(dòng)設(shè)備提供合適的內(nèi)容(例如,圖片),但是,由于某些網(wǎng)站圖片的大小較小(一般一個(gè)圖片文件的大小不會(huì)超過5kB,絕大部分圖片大小在l_2kB),且副本都存儲(chǔ)在磁盤中,從而導(dǎo)致圖片命中率很低而且讀寫和處理時(shí)不能有效地利用CPU和內(nèi)存資源。而本發(fā)明的方法可以解決上述問題。現(xiàn)在,參考圖I中用于提供圖片的方法的流程圖進(jìn)行描述。如圖I所示,在該方法的步驟SlOl中,通過提供圖片內(nèi)存緩沖的服務(wù)器接收?qǐng)D片的請(qǐng)求。
在本發(fā)明的一個(gè)實(shí)施方式中,在移動(dòng)設(shè)備的用戶希望瀏覽包括圖片的網(wǎng)頁時(shí)(例如,包括用戶好友頭像的社交網(wǎng)站),網(wǎng)站中提供的圖片內(nèi)存緩沖服務(wù)器將接收到該用戶設(shè)備關(guān)于圖片的請(qǐng)求。該圖片內(nèi)存緩沖服務(wù)器在其內(nèi)存中已經(jīng)存儲(chǔ)了大量圖片,如果用戶設(shè)備所請(qǐng)求的圖片存在于這些圖片中,則可以從服務(wù)器的內(nèi)存直接向用戶設(shè)備提供所請(qǐng)求的服務(wù)。因此,該方法的步驟S102中,服務(wù)器可以判斷內(nèi)存緩沖區(qū)中是否存在所請(qǐng)求的圖片。隨后,在步驟S103中,如果找到適合的圖片,則從所述內(nèi)存緩沖區(qū)中直接獲取圖片以提供給所述設(shè)備。在本發(fā)明中,所使用的術(shù)語“內(nèi)存”也稱內(nèi)部存儲(chǔ)器,其作用是用于暫時(shí)存放CPU中的運(yùn)算數(shù)據(jù),以及與硬盤等外部存儲(chǔ)器交換的數(shù)據(jù)。在本發(fā)明中,“內(nèi)存”可以表示緩沖數(shù)據(jù)的、并能被快速讀取的任何合適類型的存儲(chǔ)器,例如圖4中的RAM 402。
在一個(gè)實(shí)施方式中,在上述過程中,服務(wù)器判斷緩沖區(qū)中是否存在所請(qǐng)求的圖片可以基于請(qǐng)求中包含的設(shè)備參數(shù)。該設(shè)備參數(shù)可以是某移動(dòng)設(shè)備制造商的ID以及相應(yīng)的設(shè)備型號(hào),這通常代表了該移動(dòng)設(shè)備的各種能力,服務(wù)器可以根據(jù)該參數(shù)來提供適應(yīng)該設(shè)備的圖片。例如,某款蜂窩電話的顯示器大小是固定的,例如其僅能支持320*240分辨率的圖片,那么服務(wù)器在獲得該蜂窩電話的制造商ID和其相應(yīng)型號(hào)之后,就可以從緩沖的圖片中選擇適合該型號(hào)移動(dòng)設(shè)備的圖片并且提供給該設(shè)備。這樣,移動(dòng)設(shè)備就能夠獲得符合其顯示要求的合適圖片來顯示,而且由于服務(wù)器用于存儲(chǔ)這些圖片的存儲(chǔ)器是內(nèi)存而不是磁盤,所以在服務(wù)器查找合適圖片并讀取相應(yīng)圖片時(shí),就可以因?yàn)閮?nèi)存的讀寫效率高而提高提供圖片的效率,這顯然比從磁盤中讀取圖片要快得多。在另一個(gè)實(shí)施方式中,在圖片內(nèi)存緩沖服務(wù)器接收到圖片請(qǐng)求之后,其按照一般的處理方式去內(nèi)存中查找合適的圖片。然而,由于請(qǐng)求圖片的該移動(dòng)設(shè)備對(duì)于服務(wù)器而言是其原來未曾遇到過的新型號(hào),服務(wù)器內(nèi)存中可能沒有其需要的圖片。在這種情況下,根據(jù)本發(fā)明的方法還包括以下步驟如果未找到適合的圖片,則根據(jù)請(qǐng)求中包含的設(shè)備參數(shù)來處理圖片,將經(jīng)處理的圖片存儲(chǔ)到內(nèi)存緩沖區(qū)中,以及獲取經(jīng)處理的圖片以提供給設(shè)備。特別地,在上述過程中,當(dāng)圖片內(nèi)存緩沖服務(wù)器發(fā)現(xiàn)其內(nèi)存中未存儲(chǔ)所請(qǐng)求的圖片時(shí),其可以從存儲(chǔ)有該圖片的其他服務(wù)器獲取原始圖片或以自己內(nèi)存中其他規(guī)格(例如,圖片內(nèi)容相同,但是圖片的分辨率、文件大小等不符合移動(dòng)設(shè)備的要求)的同一圖片作為原始圖片以進(jìn)行進(jìn)一步的處理。經(jīng)過上述過程,服務(wù)器首先可以為該新設(shè)備提供其需要的圖片,然后將該處理后的圖片存儲(chǔ)到內(nèi)存中,以便下次再遇到該型號(hào)設(shè)備請(qǐng)求該種圖片或其他型號(hào)設(shè)備請(qǐng)求同樣的圖片時(shí),仍舊可以從內(nèi)存中獲得圖片來提供給設(shè)備,從而保持了通過內(nèi)存提供圖片的各種優(yōu)點(diǎn),進(jìn)而保持了本發(fā)明方法的可應(yīng)付各種移動(dòng)設(shè)備的優(yōu)勢(shì)。在不同的實(shí)施方式中,判斷服務(wù)器內(nèi)存中是否存在合適的圖片可以根據(jù)基于所請(qǐng)求圖片的URL和設(shè)備參數(shù)。在一個(gè)實(shí)施方式中,由于用戶瀏覽的網(wǎng)頁中包含的圖片都具有各自的URL,那么在存儲(chǔ)和查找內(nèi)存中的圖片時(shí),可以根據(jù)該圖片的URL進(jìn)行存儲(chǔ)和查找。尤其是在內(nèi)存中不存在合適圖片的情況下,服務(wù)器可以根據(jù)URL來存儲(chǔ)經(jīng)處理的圖片。而且,在網(wǎng)頁中,具有緊密邏輯關(guān)聯(lián)的圖片一般都具有類似的URL,例如社交網(wǎng)站上同一用戶的頭像、分享的圖片都與該用戶的個(gè)人首頁緊密相關(guān),而這些圖片也相應(yīng)地具有類似甚至相同的URL。因此,這樣存儲(chǔ)的好處在于可以大大地提高查找判斷效率,從而更快地得到判斷的結(jié)果,進(jìn)而提高提供圖片的效率。此外,在另一實(shí)施方式中,還可以根據(jù)請(qǐng)求中包含的設(shè)備參數(shù)來判斷內(nèi)存中是否存在合適圖片。例如,根據(jù)請(qǐng)求設(shè)備支持的分辨率來查找圖片。例如,在內(nèi)存中,圖片可以根據(jù)分辨率來分組存儲(chǔ),在接收到針對(duì)某一分辨率圖片的請(qǐng)求之后,就可以迅速地在該分辨率組中查找圖片,從而迅速地縮小查找圖片的范圍,最終能夠更快地得到判斷的結(jié)果,這有利于服務(wù)器的后續(xù)操作(例如,提供圖片或處理圖片)。在一個(gè)實(shí)施方式中,在上述請(qǐng)求中包含的設(shè)備參數(shù)還可以是以下的一個(gè)或多個(gè)設(shè)備支持的圖片的長(zhǎng)寬比例、分辨率、顏色;圖片文件的大小、格式;設(shè)備的運(yùn)算能力、存儲(chǔ)器大小。這些設(shè)備參數(shù)可以向提供圖片的服務(wù)器表明其所需圖片的各種要求。例如,服務(wù) 器可以根據(jù)設(shè)備支持的分辨率、顏色等來處理圖片,從而使圖片符合相應(yīng)的分辨率和顏色。這樣,服務(wù)器提供的圖片都是針對(duì)相應(yīng)的設(shè)備定制的,從而很好地適應(yīng)了各種移動(dòng)設(shè)備的要求,用戶瀏覽圖片和網(wǎng)頁的體驗(yàn)因而將會(huì)很好。通過上述描述,我們知道,如果判斷結(jié)果是內(nèi)存中沒有合適的圖片,則提供圖片的圖片內(nèi)存緩沖服務(wù)器在提供圖片時(shí),可以包括處理圖片和存儲(chǔ)處理后圖片的步驟。這兩個(gè)步驟所使用的服務(wù)器資源是不同的,處理圖片將主要利用CPU的計(jì)算能力對(duì)圖片進(jìn)行處理,例如,壓縮圖片、裁剪圖片、轉(zhuǎn)換圖片格式等,這些處理在大量利用CPU處理能力的同時(shí)可能并無對(duì)內(nèi)存的讀寫操作或僅需要很少的讀寫操作,也即I/o的吞吐量不高并且負(fù)荷不大。而在存儲(chǔ)處理后圖片時(shí),基本上不需要CPU的參與而主要進(jìn)行讀寫操作,這時(shí)I/O接口的吞吐量很高且負(fù)荷較大?;谏鲜龇治?,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,服務(wù)器可以利用兩個(gè)獨(dú)立的過程來完成對(duì)圖片的處理和對(duì)圖片的存儲(chǔ)。這樣做的好處是充分利用了 CPU和I/O的資源,因?yàn)閮蓚€(gè)獨(dú)立的過程可以同時(shí)執(zhí)行,從而提高了系統(tǒng)資源的利用率。在相同的硬件配置下,這樣的做法無疑具有更高的效率。而且,這兩個(gè)過程由于獨(dú)立性而不會(huì)影響彼此。換言之,如果一個(gè)過程失敗,并不會(huì)影響另一個(gè)過程。這對(duì)于需要應(yīng)付大量請(qǐng)求和服務(wù)的服務(wù)器而言無疑也是有利的。例如,如果存儲(chǔ)圖片的過程崩潰了,那么處理圖片的過程仍舊繼續(xù)工作,從而并不影響向移動(dòng)設(shè)備提供圖片,進(jìn)而使得整個(gè)系統(tǒng)的工作仍舊有效。在一個(gè)實(shí)施方式中,上述兩個(gè)獨(dú)立的過程可以使用“進(jìn)程”方式來實(shí)現(xiàn)。這在計(jì)算機(jī)系統(tǒng)中是比較常用的方式,具有可靠的性能,從而進(jìn)一步保證了系統(tǒng)的可靠性。而且,由于計(jì)算機(jī)的進(jìn)程方式本身具有進(jìn)程間通信、進(jìn)程恢復(fù)等機(jī)制,因此,兩個(gè)獨(dú)立的進(jìn)程不但可以交換數(shù)據(jù)(處理進(jìn)程將處理后的圖片傳送給存儲(chǔ)進(jìn)程以供存儲(chǔ)),而且在進(jìn)程發(fā)生問題而崩潰的情況下可以迅速恢復(fù),這無疑是有利的。在一個(gè)實(shí)施方式中,在根據(jù)本發(fā)明的方法中,從內(nèi)存緩沖區(qū)中獲取圖片可以使用異步I/o的方式。因?yàn)樵趥鹘y(tǒng)的同步阻塞I/o模型中,使用的是惟一句柄標(biāo)識(shí)的I/O通道。在該I/o模式中,當(dāng)發(fā)起一次傳輸操作時(shí),只有傳輸操作完成或發(fā)生錯(cuò)誤,系統(tǒng)調(diào)用才會(huì)返回。也即,其他操作必須等待該傳輸操作的完成才可以繼續(xù)。而在異步非阻塞I/O中,可以同時(shí)發(fā)起多個(gè)傳輸操作。用戶程序可以向內(nèi)核發(fā)出I/O請(qǐng)求命令,之后不用等待I/O事件真正發(fā)生就可以繼續(xù)進(jìn)行另外的操作。如果I/O操作完成,則內(nèi)核可以通過函數(shù)回調(diào)或者信號(hào)機(jī)制通知用戶進(jìn)程。即,異步I/o可以在收到執(zhí)行命令后在后臺(tái)運(yùn)行,并不阻塞用戶的其他操作,從而在很大程度上提高了系統(tǒng)的吞吐量。
根據(jù)本發(fā)明的一個(gè)實(shí)施方式,服務(wù)器可以采用根據(jù)圖片的URL進(jìn)行散列的方式將經(jīng)處理的圖片存儲(chǔ)到內(nèi)存緩沖區(qū)中。這樣做的目的在于可以提高單臺(tái)服務(wù)器的緩沖命中效率,同時(shí)極大降低了 CPU重新計(jì)算圖片的壓力。綜上所述,根據(jù)本發(fā)明的方法可以通過內(nèi)存緩沖圖片來提供比傳統(tǒng)方法更高的效率,同時(shí)由于各個(gè)服務(wù)器相互獨(dú)立,可以簡(jiǎn)單地通過增加服務(wù)器來進(jìn)行橫向擴(kuò)展,從而進(jìn)一步提供系統(tǒng)的效率。而且,處理與存儲(chǔ)過程相互獨(dú)立以及異步I/o方式,使得系統(tǒng)的容錯(cuò)能力進(jìn)一步提高。通過這些方式,根據(jù)本發(fā)明的方法可以為用戶的移動(dòng)設(shè)備提供更加合適的圖片,進(jìn)而使得用戶的瀏覽體驗(yàn)更加良好。下面參考圖2,圖2示意性地示出了根據(jù)本發(fā)明實(shí)施方式的、用于提供圖片的設(shè)備200的框圖。如圖2所示,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,一種提供圖片的設(shè)備200包括接收裝置201,用于通過提供圖片內(nèi)存緩沖的服務(wù)器接收?qǐng)D片的請(qǐng)求;判斷裝置202,用于判斷內(nèi) 存緩沖區(qū)中是否存在所請(qǐng)求的圖片;提供裝置203,用于如果找到適合的圖片則從所述內(nèi)存緩沖區(qū)中直接獲取圖片以提供給所述設(shè)備。根據(jù)本發(fā)明的另一實(shí)施方式,設(shè)備200中的提供裝置203還用于如果未找到適合的圖片,則根據(jù)所述請(qǐng)求中包含的設(shè)備參數(shù)來處理圖片,將經(jīng)處理的圖片存儲(chǔ)到所述內(nèi)存緩沖區(qū)中,以及獲取所述經(jīng)處理的圖片以提供給所述設(shè)備。下面結(jié)合圖3的場(chǎng)景圖進(jìn)一步描述本發(fā)明的實(shí)現(xiàn)過程。圖中301是負(fù)載均衡服務(wù)器,其主要負(fù)責(zé)向各個(gè)圖片內(nèi)存緩沖服務(wù)器302a、302b、302c...等分配圖片請(qǐng)求,以保證各個(gè)服務(wù)的負(fù)載均衡,不至于造成某個(gè)或某些服務(wù)器的負(fù)載過重或過輕。但是應(yīng)該理解,雖然本發(fā)明僅示出了三個(gè)圖片內(nèi)存緩沖服務(wù)器,但是實(shí)際中使用的服務(wù)器數(shù)量可以不等于三,并且本發(fā)明的拓?fù)湫问讲⒎莾H限于所示拓?fù)湫问?。?yīng)該理解,在某些實(shí)施方式中,可能僅包含一個(gè)圖片內(nèi)存緩沖服務(wù)器。在這些實(shí)施方式中,移動(dòng)設(shè)備的請(qǐng)求可以直接發(fā)送給該圖片內(nèi)存緩沖服務(wù)器,如圖3中虛線所示。在另一些實(shí)施方式中,可能包含多個(gè)圖片內(nèi)存緩沖服務(wù)器。在這些實(shí)施方式中,移動(dòng)設(shè)備的請(qǐng)求可以發(fā)送給均衡服務(wù)器,如圖3中實(shí)線所示。根據(jù)不同的實(shí)施方式,例如在僅包含一個(gè)圖片內(nèi)存緩沖服務(wù)器的情況中,可以省略負(fù)載均衡服務(wù)器301。在一個(gè)實(shí)施方式中,在接收到移動(dòng)設(shè)備對(duì)圖片的請(qǐng)求后,圖片內(nèi)存緩沖服務(wù)器可以首先查找其內(nèi)存,根據(jù)請(qǐng)求中包含的設(shè)備參數(shù)來判斷內(nèi)存中是否緩沖有所請(qǐng)求的圖片。如果內(nèi)存中存在符合要求的圖片,則通過異步非阻塞I/o形式來獲取圖片,繼而將該圖片提供給請(qǐng)求圖片的移動(dòng)設(shè)備。在另一個(gè)實(shí)施方式中,如果圖片內(nèi)存緩沖服務(wù)器在內(nèi)存中沒有找到符合要求的圖片,則其可以從相應(yīng)的圖片服務(wù)器獲取原始圖片或可以將內(nèi)存中已有的同內(nèi)容圖片作為原始圖片,然后根據(jù)用戶設(shè)備的參數(shù),例如分辨率、所支持的圖片文件大小、圖片格式等來處理該原始圖片以使之符合用戶設(shè)備的要求,然后將該符合要求的圖片提供給用戶設(shè)備,并將該經(jīng)處理的圖片的副本存儲(chǔ)(緩沖)在內(nèi)存中,以供下次請(qǐng)求時(shí)提供。在一個(gè)實(shí)施方式中,在存儲(chǔ)圖片的過程中,可以根據(jù)圖片的URL來存儲(chǔ),這樣有利于圖片的查找和服務(wù)器的負(fù)載平衡。在一個(gè)實(shí)施方式中,可以以不同的過程(諸如進(jìn)程)來完成圖片的處理和存儲(chǔ)過程,這樣使之不會(huì)互相影響,進(jìn)而提高了服務(wù)器的容錯(cuò)性。
根據(jù)上述的描述,本發(fā)明用于提供圖片的方法和設(shè)備相對(duì)于現(xiàn)有技術(shù)提高了提供圖片的效率,進(jìn)一步改善了移動(dòng)設(shè)備用戶瀏覽網(wǎng)頁的體驗(yàn)。并且由于使用了異步I/o方式和獨(dú)立過程方式,提高了服務(wù)器的容錯(cuò)性。綜上所述,本發(fā)明的提供圖片方法和設(shè)備具有更快的速度,同時(shí)提高了緩存命中率,從而使提供圖片更加快捷方便。下面,將參考圖4來描述可以實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)設(shè)備。圖4示意性示出了可以實(shí)現(xiàn)根據(jù)本發(fā)明的實(shí)施方式的計(jì)算設(shè)備的結(jié)構(gòu)框圖。圖4示意性示出了適于實(shí)現(xiàn)本發(fā)明實(shí)施方式的計(jì)算機(jī)系統(tǒng)的框圖。如圖4所示,計(jì)算機(jī)系統(tǒng)可以包括=CPU (中央處理單元)401、RAM (隨機(jī)存取存儲(chǔ)器)402、R0M (只讀存儲(chǔ)器)403、系統(tǒng)總線404、硬盤控制器405、鍵盤控制器406、串行接口控制器407、并行接口控制器408、顯示控制器409、硬盤410、鍵盤411、串行外部設(shè)備412、并行外部設(shè)備413和顯示器414。在這些部件中,與系統(tǒng)總線404相連的有CPU 401、RAM 402、ROM 403、硬盤控制
器505、鍵盤控制器406、串行接口控制器407、并行接口控制器408和顯示控制器409。硬盤410與硬盤控制器405相連,鍵盤411與鍵盤控制器406相連,串行外部設(shè)備412與串行接口控制器407相連,并行外部設(shè)備413與并行接口控制器408相連,以及顯示器414與顯示控制器409相連。應(yīng)當(dāng)理解,圖4所述的結(jié)構(gòu)框圖僅僅為了示例的目的而示出的,而不是對(duì)本發(fā)明的限制。在某些情況下,可以根據(jù)需要增加或者減少其中的一些設(shè)備。而且,本領(lǐng)域的技術(shù)人員應(yīng)該理解,可以實(shí)現(xiàn)本發(fā)明的設(shè)備并非僅限于上述計(jì)算設(shè)備,而是可以使用任何合適的其他設(shè)備。盡管本說明書包含多種特定細(xì)節(jié),但是不應(yīng)將其理解為是對(duì)本發(fā)明的范圍或者所要求保護(hù)內(nèi)容的限制,而應(yīng)當(dāng)理解為是本發(fā)明具體實(shí)施方式
的特定特征的描述。本說明書中描述的在各個(gè)實(shí)施方式的上下文中的某些特征也可以在單個(gè)實(shí)施方式中結(jié)合實(shí)現(xiàn)。相反,在單個(gè)實(shí)施方式上下文中描述的各種特征也可以分別實(shí)現(xiàn)在多個(gè)實(shí)施方式中或者任意適當(dāng)?shù)淖咏M合中。而且,盡管上文可能將特征描述為在特定的組合中操作,甚至初始也是這樣要求保護(hù)的,但是來自所要求保護(hù)的組合的一個(gè)或多個(gè)特征在一些情況下可以從該組合中去除,并且所要求保護(hù)的組合可以針對(duì)子組合或組合的變形。類似地,盡管在附圖中以特定的順序描述操作,但是不應(yīng)將其理解為要求按照所示的特定順序或是串行順序來執(zhí)行這些操作,或是要求執(zhí)行全部所示的操作以得到期望的結(jié)果。在特定環(huán)境中,多任務(wù)和并行處理可能是有利的。
權(quán)利要求
1.一種提供圖片的方法,包括 通過提供圖片內(nèi)存緩沖的服務(wù)器接收?qǐng)D片的請(qǐng)求; 判斷內(nèi)存緩沖區(qū)中是否存在所請(qǐng)求的圖片; 如果找到適合的圖片,則從所述內(nèi)存緩沖區(qū)中直接獲取圖片以提供給所述設(shè)備。
2.根據(jù)權(quán)利要求I所述的方法,進(jìn)一步包括 如果未找到適合的圖片,則 根據(jù)所述請(qǐng)求中包含的設(shè)備參數(shù)來處理圖片, 將經(jīng)處理的圖片存儲(chǔ)到所述內(nèi)存緩沖區(qū)中,以及 獲取所述經(jīng)處理的圖片以提供給所述設(shè)備。
3.根據(jù)權(quán)利要求I或2所述的方法,所述判斷基于所述所請(qǐng)求圖片的URL和所述設(shè)備參數(shù)。
4.根據(jù)權(quán)利要求2所述的方法,其中所述設(shè)備參數(shù)包括以下一個(gè)或多個(gè) 所述設(shè)備支持的圖片的長(zhǎng)寬比例、分辨率、顏色; 圖片文件的大小、格式; 所述設(shè)備的運(yùn)算能力、存儲(chǔ)器大小。
5.根據(jù)權(quán)利要求2所述的方法,其中處理所述圖片和存儲(chǔ)所述經(jīng)處理的圖片相互獨(dú)立地完成。
6.根據(jù)權(quán)利要求5所述的方法,其中使用兩個(gè)獨(dú)立的進(jìn)程分別完成處理所述圖片和存儲(chǔ)所述經(jīng)處理的圖片。
7.根據(jù)權(quán)利要求I或2所述的方法,其中從所述內(nèi)存緩沖區(qū)中獲取圖片使用異步I/O的方式。
8.根據(jù)權(quán)利要求I或2所述的方法,其中根據(jù)所述圖片的URL來將所述經(jīng)處理的圖片存儲(chǔ)到所述內(nèi)存緩沖區(qū)中。
9.根據(jù)權(quán)利要求8所述的方法,其中將所述經(jīng)處理的圖片存儲(chǔ)到所述內(nèi)存緩沖區(qū)中采用根據(jù)所述圖片的URL進(jìn)行散列的方式。
10.一種提供圖片的設(shè)備,包括 接收裝置,用于通過提供圖片內(nèi)存緩沖的服務(wù)器接收?qǐng)D片的請(qǐng)求; 判斷裝置,用于判斷內(nèi)存緩沖區(qū)中是否存在所請(qǐng)求的圖片; 提供裝置,用于如果找到適合的圖片則從所述內(nèi)存緩沖區(qū)中直接獲取圖片以提供給所述設(shè)備。
11.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述提供裝置還用于 如果未找到適合的圖片,則 根據(jù)所述請(qǐng)求中包含的設(shè)備參數(shù)來處理圖片, 將經(jīng)處理的圖片存儲(chǔ)到所述內(nèi)存緩沖區(qū)中,以及 獲取所述經(jīng)處理的圖片以提供給所述設(shè)備。
12.根據(jù)權(quán)利要求10或11所述的設(shè)備,所述判斷基于所述所請(qǐng)求圖片的URL和所述設(shè)備參數(shù)。
13.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述設(shè)備參數(shù)包括以下一個(gè)或多個(gè) 所述設(shè)備支持的圖片的長(zhǎng)寬比例、分辨率、顏色;圖片文件的大小、格式; 所述設(shè)備的運(yùn)算能力、存儲(chǔ)器大小。
14.根據(jù)權(quán)利要求11所述的設(shè)備,其中處理所述圖片和存儲(chǔ)所述經(jīng)處理的圖片相互獨(dú)立地完成。
15.根據(jù)權(quán)利要求14所述的設(shè)備,其中使用兩個(gè)獨(dú)立的進(jìn)程分別完成處理所述圖片和存儲(chǔ)所述經(jīng)處理的圖片。
16.根據(jù)權(quán)利要求10或11所述的設(shè)備,其中從所述內(nèi)存緩沖區(qū)中獲取圖片使用異步I/o的方式。
17.根據(jù)權(quán)利要求10或11所述的設(shè)備,其中根據(jù)所述圖片的URL來將所述經(jīng)處理的圖片存儲(chǔ)到所述內(nèi)存緩沖區(qū)中。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其中將所述經(jīng)處理的圖片存儲(chǔ)到所述內(nèi)存緩沖區(qū)中采用根據(jù)所述圖片的URL進(jìn)行散列的方式。
全文摘要
本發(fā)明公開了一種提供圖片的方法和設(shè)備。一種提供圖片的方法,包括通過提供圖片內(nèi)存緩沖的服務(wù)器接收?qǐng)D片的請(qǐng)求;判斷內(nèi)存緩沖區(qū)中是否存在所請(qǐng)求的圖片;如果找到適合的圖片,則從內(nèi)存緩沖區(qū)中直接獲取圖片以提供給設(shè)備。
文檔編號(hào)G06F17/30GK102737034SQ20111008576
公開日2012年10月17日 申請(qǐng)日期2011年3月30日 優(yōu)先權(quán)日2011年3月30日
發(fā)明者周游, 閆志東 申請(qǐng)人:北京千橡網(wǎng)景科技發(fā)展有限公司