国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      面向?qū)ο蟮木彺鎸懭?、讀取方法及裝置的制造方法

      文檔序號:10724828閱讀:391來源:國知局
      面向?qū)ο蟮木彺鎸懭搿⒆x取方法及裝置的制造方法
      【專利摘要】本發(fā)明涉及面向?qū)ο蟮木彺鎸懭?、讀取方法及裝置。該面向?qū)ο蟮木彺鎸懭敕椒òǎ涸诮邮盏綄懭胝埱蟮那闆r下,調(diào)用通用對象存儲接口;通過通用對象存儲接口確定寫入請求對應(yīng)的待寫入對象的唯一標(biāo)識符,并根據(jù)唯一標(biāo)識符生成待寫入對象的鍵;通過通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將待寫入對象序列化為流,預(yù)設(shè)協(xié)議能夠用于任意類的序列化;通過通用對象存儲接口根據(jù)鍵將流寫入緩存。根據(jù)本發(fā)明能夠?qū)⒚嫦驅(qū)ο笳Z言與緩存相結(jié)合,實(shí)現(xiàn)直接存取面向?qū)ο笳Z言中的對象,從而大大減少開發(fā)工作量,提高開發(fā)的便攜性和效率,并能降低外部存儲設(shè)備的讀寫負(fù)載,解決外部存儲設(shè)備的讀寫性能瓶頸問題,從而大大提高系統(tǒng)性能。
      【專利說明】
      面向?qū)ο蟮木彺鎸懭搿⒆x取方法及裝置
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及緩存技術(shù)領(lǐng)域,尤其涉及一種面向?qū)ο蟮木彺鎸懭搿⒆x取方法及裝置。 【背景技術(shù)】
      [0002]對于大規(guī)模Web(網(wǎng)頁)系統(tǒng),用戶數(shù)量非常大,導(dǎo)致服務(wù)器的負(fù)載非常高,因此磁盤讀寫性能低下,需要使用內(nèi)存作為緩存來提高整個系統(tǒng)的性能。緩存可以直接向大多數(shù)用戶提供服務(wù),避免用戶的每個請求都訪問性能低下的外部存儲設(shè)備,從而提高了整個系統(tǒng)的效率。因此,緩存對于提高整個系統(tǒng)的性能是極為重要的。
      [0003]現(xiàn)有的大規(guī)模Web系統(tǒng)通常使用面向?qū)ο笳Z言進(jìn)行開發(fā)。面向?qū)ο笫且环N軟件開發(fā)方法,指的是在程序設(shè)計(jì)中采用封裝、繼承和多態(tài)等設(shè)計(jì)方法。封裝是指將現(xiàn)實(shí)世界中存在的某個客體的屬性與行為綁定在一起,并放置在一個邏輯單元內(nèi)。該邏輯單元負(fù)責(zé)將所描述的屬性隱藏起來,外界對客體內(nèi)部屬性的所有訪問只能通過提供的用戶接口實(shí)現(xiàn)。這樣做既可以起到對客體屬性的保護(hù)作用,又可以提高軟件系統(tǒng)的可維護(hù)性。對象是人們要進(jìn)行研究的任何事物,從簡單的整數(shù)到復(fù)雜的飛機(jī)等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。對象具有狀態(tài),一個對象用數(shù)據(jù)值來描述它的狀態(tài)。對象還有操作,用于改變對象的狀態(tài),對象及其操作就是對象的行為。對象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中。類是具有相同特性和行為的對象的抽象。因此,類是對象的抽象,對象是類的具體化,也可以說,對象是類的實(shí)例。類實(shí)際上是一種數(shù)據(jù)類型。例如,鸚鵡可以視為一種類,而具體的一只鸚鵡可以視為一個對象。類具有屬性,它是對象的狀態(tài)的抽象,類的屬性用數(shù)據(jù)結(jié)構(gòu)來描述。類具有操作,它是對象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來描述。
      [0004]緩存指的是數(shù)據(jù)交換的緩沖區(qū),當(dāng)某一硬件要讀取數(shù)據(jù)時,會首先從緩存中查找需要的數(shù)據(jù),如果找到了則直接執(zhí)行,找不到的話則從下一級存儲設(shè)備中查找。由于緩存的讀寫速度比下一級存儲設(shè)備快得多,因此緩存能夠幫助整個系統(tǒng)更快地運(yùn)行。緩存工作的原理即“引用的局部性”,包括時間局部性和空間局部性。時間局部性是指當(dāng)某個數(shù)據(jù)被訪問過一次之后,過不了多長時間就會被再一次訪問;空間局部性是指CPU(Central Processing Unit,中央處理器)在某一時刻需要某個數(shù)據(jù),那么很可能下一步就需要其附近的數(shù)據(jù)。對于應(yīng)用程序而言,不管是指令流還是數(shù)據(jù)流都會出現(xiàn)引用的局部性現(xiàn)象。由于計(jì)算機(jī)的內(nèi)存的讀寫速度遠(yuǎn)遠(yuǎn)快于硬盤的讀寫速度,因此可以將從硬盤讀取到的數(shù)據(jù)暫時存放在內(nèi)存里,之后使用該數(shù)據(jù)的時候就不用再次從硬盤中讀取了,這樣就大大提高了整體的讀寫速度,這個過程就是基于前述的引用的局部性原理把內(nèi)存作為硬盤的緩存使用。
      [0005]現(xiàn)有的大規(guī)模Web系統(tǒng)通常使用面向?qū)ο笳Z言進(jìn)行開發(fā),但目前的緩存技術(shù)無法很好地適應(yīng)面向?qū)ο笙到y(tǒng)的開發(fā)需求。具體而言,目前在面向?qū)ο笙到y(tǒng)中使用緩存技術(shù)時, 協(xié)議在各個類之間無法通用,研發(fā)人員需要為每個類分別設(shè)計(jì)序列化和反序列化協(xié)議,以及針對每個類分別進(jìn)行開發(fā)和調(diào)試,導(dǎo)致耗費(fèi)大量時間,且容易出錯,整個過程效率低下。
      【發(fā)明內(nèi)容】

      [0006]技術(shù)問題
      [0007]有鑒于此,本發(fā)明要解決的技術(shù)問題是,現(xiàn)有的緩存技術(shù)在面向?qū)ο笙到y(tǒng)中的適應(yīng)性較差,導(dǎo)致開發(fā)效率較低。
      [0008]解決方案
      [0009]為了解決上述技術(shù)問題,根據(jù)本發(fā)明的一實(shí)施例,提供了一種面向?qū)ο蟮木彺鎸懭敕椒?,包?
      [0010]在接收到寫入請求的情況下,調(diào)用通用對象存儲接口;[〇〇11] 通過所述通用對象存儲接口確定所述寫入請求對應(yīng)的待寫入對象的唯一標(biāo)識符, 并根據(jù)所述唯一標(biāo)識符生成所述待寫入對象的鍵;
      [0012]通過所述通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述待寫入對象序列化為流,所述預(yù)設(shè)協(xié)議能夠用于任意類的序列化;
      [0013]通過所述通用對象存儲接口根據(jù)所述鍵將所述流寫入緩存。
      [0014]對于上述方法,在一種可能的實(shí)現(xiàn)方式中,在通過所述通用對象存儲接口根據(jù)所述鍵將所述流寫入緩存之后,所述方法還包括:
      [0015]根據(jù)所述鍵將所述流寫入外部存儲設(shè)備。
      [0016]對于上述方法,在一種可能的實(shí)現(xiàn)方式中,通過所述通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述待寫入對象序列化為流,包括:
      [0017]通過所述通用對象存儲接口確定所述預(yù)設(shè)協(xié)議規(guī)定的所有所述參數(shù)類型,并確定所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值;
      [0018]通過所述通用對象存儲接口按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)格式,將所述預(yù)設(shè)協(xié)議的信息以及所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值轉(zhuǎn)換為流。
      [0019]對于上述方法,在一種可能的實(shí)現(xiàn)方式中,所述參數(shù)類型包括:對象所屬的類的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。
      [0020]為了解決上述技術(shù)問題,根據(jù)本發(fā)明的另一實(shí)施例,提供了一種面向?qū)ο蟮木彺孀x取方法,包括:
      [0021]在接收到查詢請求的情況下,通過通用對象查詢接口確定所述查詢請求對應(yīng)的鍵;
      [0022]若通過所述通用對象查詢接口從所述緩存中查找到所述鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述流反序列化為對象,所述預(yù)設(shè)協(xié)議能夠用于任意類的反序列化;
      [0023]通過所述通用對象查詢接口返回所述對象,以響應(yīng)所述查詢請求。
      [0024]對于上述方法,在一種可能的實(shí)現(xiàn)方式中,在通過通用對象查詢接口確定所述查詢請求對應(yīng)的鍵之后,所述方法還包括:
      [0025]若通過所述通用對象查詢接口從所述緩存中查找不到所述鍵對應(yīng)的流,則從外部存儲設(shè)備中查找所述鍵對應(yīng)的流;
      [0026]若從所述外部存儲設(shè)備中查找到所述鍵對應(yīng)的流,則按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式將所述流反序列化為所述對象,并返回所述對象,以響應(yīng)所述查詢請求。
      [0027]對于上述方法,在一種可能的實(shí)現(xiàn)方式中,按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述流反序列化為對象,包括:
      [0028]從所述流中獲取所述預(yù)設(shè)協(xié)議的信息,并根據(jù)所述預(yù)設(shè)協(xié)議的信息確定所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式;
      [0029]根據(jù)所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式,以及所述流中所有所述參數(shù)類型的參數(shù)值,將所述流反序列化為所述對象。
      [0030]對于上述方法,在一種可能的實(shí)現(xiàn)方式中,所述參數(shù)類型包括:對象所屬的類的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。
      [0031]為了解決上述技術(shù)問題,根據(jù)本發(fā)明的另一實(shí)施例,提供了一種面向?qū)ο蟮木彺鎸懭胙b置,包括:
      [0032]通用對象存儲接口調(diào)用模塊,用于在接收到寫入請求的情況下,調(diào)用通用對象存儲接口;
      [0033]鍵生成模塊,用于通過所述通用對象存儲接口確定所述寫入請求對應(yīng)的待寫入對象的唯一標(biāo)識符,并根據(jù)所述唯一標(biāo)識符生成所述待寫入對象的鍵;
      [0034]序列化模塊,用于通過所述通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述待寫入對象序列化為流,所述預(yù)設(shè)協(xié)議能夠用于任意類的序列化;
      [0035]緩存寫入模塊,用于通過所述通用對象存儲接口根據(jù)所述鍵將所述流寫入緩存。
      [0036]對于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
      [0037]外部存儲設(shè)備寫入模塊,用于根據(jù)所述鍵將所述流寫入外部存儲設(shè)備。
      [0038]對于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述序列化模塊包括:
      [0039]參數(shù)值確定子模塊,用于通過所述通用對象存儲接口確定所述預(yù)設(shè)協(xié)議規(guī)定的所有所述參數(shù)類型,并確定所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值;
      [0040]序列化子模塊,用于通過所述通用對象存儲接口按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)格式,將所述預(yù)設(shè)協(xié)議的信息以及所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值轉(zhuǎn)換為流。
      [0041]對于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述參數(shù)類型包括:對象所屬的類的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。[〇〇42]為了解決上述技術(shù)問題,根據(jù)本發(fā)明的另一實(shí)施例,提供了一種面向?qū)ο蟮木彺孀x取裝置,包括:
      [0043]鍵確定模塊,用于在接收到查詢請求的情況下,通過通用對象查詢接口確定所述查詢請求對應(yīng)的鍵;
      [0044]反序列化模塊,用于若通過所述通用對象查詢接口從所述緩存中查找到所述鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述流反序列化為對象,所述預(yù)設(shè)協(xié)議能夠用于任意類的反序列化;
      [0045]第一查詢響應(yīng)模塊,用于通過所述通用對象查詢接口返回所述對象,以響應(yīng)所述查詢請求。
      [0046]對于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
      [0047]第一查找模塊,用于若通過所述通用對象查詢接口從所述緩存中查找不到所述鍵對應(yīng)的流,則從外部存儲設(shè)備中查找所述鍵對應(yīng)的流;
      [0048]第二查詢響應(yīng)模塊,用于若從所述外部存儲設(shè)備中查找到所述鍵對應(yīng)的流,則按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式將所述流反序列化為所述對象,并返回所述對象,以響應(yīng)所述查詢請求。
      [0049]對于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述反序列化模塊包括:
      [0050]參數(shù)類型和格式確定子模塊,用于從所述流中獲取所述預(yù)設(shè)協(xié)議的信息,并根據(jù)所述預(yù)設(shè)協(xié)議的信息確定所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式;
      [0051]反序列化子模塊,用于根據(jù)所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式, 以及所述流中所有所述參數(shù)類型的參數(shù)值,將所述流反序列化為所述對象。
      [0052]對于上述裝置,在一種可能的實(shí)現(xiàn)方式中,所述參數(shù)類型包括:對象所屬的類的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。
      [0053]有益效果[〇〇54] 通過封裝通用對象存儲接口和通用對象查詢接口,設(shè)置能夠用于任意類的序列化和反序列化的預(yù)設(shè)協(xié)議,根據(jù)本發(fā)明實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒?、讀取方法及裝置能夠?qū)⒚嫦驅(qū)ο笳Z言與緩存相結(jié)合,能夠通過封裝的通用對象存儲接口和通用對象查詢接口實(shí)現(xiàn)直接存取面向?qū)ο笳Z言中的對象,從而大大減少開發(fā)工作量,提高開發(fā)的便攜性和效率,并能降低外部存儲設(shè)備的讀寫負(fù)載,解決外部存儲設(shè)備的讀寫性能瓶頸問題,從而大大提高系統(tǒng)性能;在將本發(fā)明實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒?、讀取方法及裝置應(yīng)用于服務(wù)器端的情況下,可以大大提高服務(wù)器的訪問速度,支持更高的并發(fā),從而相同用戶量所需要的服務(wù)器數(shù)量大大減小。
      [0055]根據(jù)下面參考附圖對示例性實(shí)施例的詳細(xì)說明,本發(fā)明的其它特征及方面將變得清楚?!靖綀D說明】
      [0056]包含在說明書中并且構(gòu)成說明書的一部分的附圖與說明書一起示出了本發(fā)明的示例性實(shí)施例、特征和方面,并且用于解釋本發(fā)明的原理。
      [0057]圖1示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒ǖ膶?shí)現(xiàn)流程圖;
      [0058]圖2示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒ǖ牧硪粚?shí)現(xiàn)流程圖的示意圖;[〇〇59]圖3示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒ú襟ES103的具體實(shí)現(xiàn)流程圖的;^意圖;
      [0060]圖4示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取方法的實(shí)現(xiàn)流程圖;
      [0061]圖5示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取方法的另一實(shí)現(xiàn)流程圖的示意圖;[〇〇62]圖6示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取方法步驟S402中按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將流反序列化為對象的具體實(shí)現(xiàn)流程圖的示意圖;[〇〇63]圖7示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭胙b置的結(jié)構(gòu)框圖;[〇〇64]圖8示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取裝置的結(jié)構(gòu)框圖;
      [0065]圖9示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭胙b置的一示例性的結(jié)構(gòu)框圖;
      [0066]圖10示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取裝置的一示例性的結(jié)構(gòu)框圖。【具體實(shí)施方式】
      [0067]以下將參考附圖詳細(xì)說明本發(fā)明的各種示例性實(shí)施例、特征和方面。附圖中相同的附圖標(biāo)記表示功能相同或相似的元件。盡管在附圖中示出了實(shí)施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
      [0068]在這里專用的詞“示例性”意為“用作例子、實(shí)施例或說明性”。這里作為“示例性” 所說明的任何實(shí)施例不必解釋為優(yōu)于或好于其它實(shí)施例。
      [0069]另外,為了更好的說明本發(fā)明,在下文的【具體實(shí)施方式】中給出了眾多的具體細(xì)節(jié)。 本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,沒有某些具體細(xì)節(jié),本發(fā)明同樣可以實(shí)施。在一些實(shí)例中,對于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件和電路未作詳細(xì)描述,以便于凸顯本發(fā)明的主旨。
      [0070]實(shí)施例1[〇〇71]圖1示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒ǖ膶?shí)現(xiàn)流程圖。如圖1所示,該方法主要包括:[〇〇72]在步驟S101中,在接收到寫入請求的情況下,調(diào)用通用對象存儲接口。
      [0073]需要說明的是,本發(fā)明實(shí)施例可以適用于基于面向?qū)ο笳Z言開發(fā)的任何系統(tǒng)中, 例如可以應(yīng)用于網(wǎng)站的后臺服務(wù)器中。
      [0074]其中,通用對象存儲接口可以為用于存儲類的對象的通用接口,供外部調(diào)用。調(diào)用該通用對象存儲接口可以直接向面向?qū)ο笙到y(tǒng)的緩存中寫入任意類的對象。
      [0075]在本發(fā)明實(shí)施例中,在外部接口接收到寫入請求的情況下,外部接口調(diào)用通用對象存儲接口,以使通用對象存儲接口向緩存中寫入該寫入請求對應(yīng)的待寫入對象。[〇〇76] 在步驟S102中,通過通用對象存儲接口確定寫入請求對應(yīng)的待寫入對象的唯一標(biāo)識符,并根據(jù)唯一標(biāo)識符生成待寫入對象的鍵。
      [0077]其中,待寫入對象的唯一標(biāo)識符可以包括待寫入對象的一種屬性名稱和該屬性名稱對應(yīng)的屬性值,根據(jù)該屬性值可以唯一確定該待寫入對象,由此該唯一標(biāo)識符可以作為存取標(biāo)記。根據(jù)唯一標(biāo)識符生成待寫入對象的鍵可以為:將唯一標(biāo)識符轉(zhuǎn)換得到的字符串作為待寫入對象的鍵。[〇〇78] 在步驟S103中,通過通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將待寫入對象序列化為流,預(yù)設(shè)協(xié)議能夠用于任意類的序列化。
      [0079]其中,流可以為字節(jié)流或者字符流,在此不作限定。字節(jié)流是由字節(jié)組成的,字符流是由字符組成的。在本發(fā)明實(shí)施例中,字節(jié)流可以指將待寫入對象按照預(yù)設(shè)協(xié)議封裝成一系列連續(xù)字節(jié);字符流可以指將待寫入對象按照預(yù)設(shè)協(xié)議封裝成一系列連續(xù)字符。類可以為任意一個面向?qū)ο笳Z言定義的類,對象是類的實(shí)例。
      [0080]在本發(fā)明實(shí)施例中,可以預(yù)先設(shè)計(jì)能夠用于任意類的序列化的通用的預(yù)設(shè)協(xié)議, 通過通用對象存儲接口可以調(diào)用該預(yù)設(shè)協(xié)議,以實(shí)現(xiàn)在緩存中寫入對象。由于無需為每個類分別設(shè)計(jì)協(xié)議,從而大大減少了開發(fā)工作量,提高了開發(fā)便捷性及開發(fā)效率。[0081 ]在步驟S104中,通過通用對象存儲接口根據(jù)鍵將流寫入緩存。[〇〇82]在本發(fā)明實(shí)施例中,緩存可以使用內(nèi)存作為存儲設(shè)備。緩存可以采用鍵值對的存儲方式,可以使用散列表作為數(shù)據(jù)結(jié)構(gòu),鍵可以是一個任意的字符串,值也可以是一個任意的字符串,一個鍵對應(yīng)一個值。散列表可以根據(jù)鍵確定值的存儲位置,從而實(shí)現(xiàn)了常數(shù)級的查找、更新和刪除。在本發(fā)明實(shí)施例中,鍵值對中的值可以指流。[〇〇83]其中,步驟S104具體可以為:通過通用對象存儲接口根據(jù)鍵基于哈希算法將流寫入緩存。
      [0084]本發(fā)明實(shí)施例將向緩存寫入對象的過程封裝為通用對象存儲接口,調(diào)用該通用對象存儲接口,可以直接將面向?qū)ο笳Z言中的類的對象寫入緩存中。[〇〇85]在一種可能的實(shí)現(xiàn)方式在,在步驟S101之前,該方法還包括:將類實(shí)例化,產(chǎn)生待寫入對象,并根據(jù)該類定義的各個屬性對該待寫入對象進(jìn)行賦值。
      [0086]圖2示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒ǖ牧硪粚?shí)現(xiàn)流程圖的示意圖。如圖2所示,該方法主要包括:[〇〇87]在步驟S201中,在接收到寫入請求的情況下,調(diào)用通用對象存儲接口;[〇〇88] 在步驟S202中,通過通用對象存儲接口確定寫入請求對應(yīng)的待寫入對象的唯一標(biāo)識符,并根據(jù)唯一標(biāo)識符生成待寫入對象的鍵;[〇〇89] 在步驟S203中,通過通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將待寫入對象序列化為流,預(yù)設(shè)協(xié)議能夠用于任意類的序列化;
      [0090]在步驟S204中,通過通用對象存儲接口根據(jù)鍵將流寫入緩存;[0091 ]在步驟S205中,根據(jù)鍵將流寫入外部存儲設(shè)備。
      [0092]在一種可能的實(shí)現(xiàn)方式中,在通過通用對象存儲接口根據(jù)鍵將流寫入緩存后,根據(jù)鍵將流寫入外部存儲設(shè)備。在這里,外部存儲設(shè)備可以為硬盤,在此不作限定。外部存儲設(shè)備用于永久性存儲數(shù)據(jù)。
      [0093]圖3示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒ú襟ES103的具體實(shí)現(xiàn)流程圖的示意圖。如圖3所示,通過通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將待寫入對象序列化為流,包括:[〇〇94]在步驟S301中,通過通用對象存儲接口確定預(yù)設(shè)協(xié)議規(guī)定的所有參數(shù)類型,并確定待寫入對象對應(yīng)的所有參數(shù)類型的參數(shù)值;[〇〇95]在步驟S302中,通過通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)格式,將預(yù)設(shè)協(xié)議的信息以及待寫入對象對應(yīng)的所有參數(shù)類型的參數(shù)值轉(zhuǎn)換為流。
      [0096]其中,預(yù)設(shè)協(xié)議的信息可以包括預(yù)設(shè)協(xié)議的標(biāo)識和預(yù)設(shè)協(xié)議的版本號。參數(shù)格式可以包括流中各個參數(shù)的順序。參數(shù)格式還可以包括參數(shù)的編碼標(biāo)準(zhǔn),例如,參數(shù)的編碼標(biāo)準(zhǔn)為 ASCII (American Standard Code for Informat1n Interchange,美國標(biāo)準(zhǔn)信息交換代碼)。
      [0097]在一種可能的實(shí)現(xiàn)方式中,參數(shù)類型包括:對象所屬的類的名稱參數(shù)、對象的全部屬性名稱參數(shù)、對象的全部屬性值參數(shù)、對象的全部方法的名稱參數(shù)、對象所屬的類創(chuàng)建對象的方法的名稱參數(shù)、對象所屬的類的全部屬性名稱參數(shù)和對象所屬的類的全部屬性值參數(shù)等。
      [0098]例如,待寫入對象的參數(shù)包括:待寫入對象所屬的類的名稱、待寫入對象的全部屬性名稱、待寫入對象的全部屬性值、待寫入對象的全部方法的名稱、待寫入對象所述的類創(chuàng)建該待寫入對象的方法的名稱、待寫入對象所屬的類的全部屬性名稱和待寫入對象所屬的類的全部屬性值。[〇〇99]這樣,通過封裝通用對象存儲接口,設(shè)置能夠用于任意類的序列化的預(yù)設(shè)協(xié)議,根據(jù)本發(fā)明實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒軌驅(qū)⒚嫦驅(qū)ο笳Z言與緩存相結(jié)合,能夠通過封裝的通用對象存儲接口實(shí)現(xiàn)直接寫入面向?qū)ο笳Z言中的對象,從而大大減少開發(fā)工作量,提高開發(fā)的便攜性和效率,并能降低外部存儲設(shè)備的讀寫負(fù)載,解決外部存儲設(shè)備的讀寫性能瓶頸問題,從而大大提高系統(tǒng)性能;在將本發(fā)明實(shí)施例的面向?qū)ο蟮木彺鎸懭敕椒☉?yīng)用于服務(wù)器端的情況下,可以大大提高服務(wù)器的訪問速度,支持更高的并發(fā),從而相同用戶量所需要的服務(wù)器數(shù)量大大減小。
      [0100] 實(shí)施例2[〇1〇1]圖4示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取方法的實(shí)現(xiàn)流程圖。如圖4所示,該方法主要包括:
      [0102]在步驟S401中,在接收到查詢請求的情況下,通過通用對象查詢接口確定查詢請求對應(yīng)的鍵。
      [0103]其中,通用對象查詢接口可以是根據(jù)查詢請求查詢類的對象的通用接口,供外部調(diào)用。調(diào)用該通用對象查詢接口可以直接根據(jù)查詢請求從面向?qū)ο蟮木彺嬷胁樵兗矮@取對象,即該通用對象查詢接口返回的結(jié)果是對象。該通用對象查詢接口支持對任意類的查詢。
      [0104]在本發(fā)明實(shí)施例中,通過通用對象查詢接口確定查詢請求對應(yīng)的鍵可以為:通過通用對象查詢接口確定查詢請求對應(yīng)的查詢條件,根據(jù)預(yù)先存儲的映射列表確定查詢條件對應(yīng)的鍵。
      [0105]在步驟S402中,若通過通用對象查詢接口從緩存中查找到鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將流反序列化為對象,預(yù)設(shè)協(xié)議能夠用于任意類的反序列化。
      [0106]在通過通用對象查詢接口確定查詢請求對應(yīng)的鍵之后,通過通用對象查詢接口根據(jù)鍵基于哈希算法在緩存中進(jìn)行查找。
      [0107]在本發(fā)明實(shí)施例中,可以預(yù)先設(shè)計(jì)能夠用于任意類的反序列化的通用的預(yù)設(shè)協(xié)議,通過通用對象查詢接口可以調(diào)用該預(yù)設(shè)協(xié)議,以實(shí)現(xiàn)在緩存中查詢對象。由于無需為每個類分別設(shè)計(jì)協(xié)議,從而大大減少了開發(fā)工作量,提高了開發(fā)便捷性及開發(fā)效率。
      [0108]在步驟S403中,通過通用對象查詢接口返回對象,以響應(yīng)查詢請求。
      [0109]在本發(fā)明實(shí)施例中,當(dāng)通過通用對象查詢接口將流反序列化為對象后,通用對象查詢接口將對象提供給外部接口。
      [0110]本發(fā)明實(shí)施例通過將從緩存中獲取流并反序列化為對象的過程封裝為通用對象查詢接口,調(diào)用該通用對象查詢接口,可以直接從緩存中讀取面向?qū)ο笳Z言中的類的對象。
      [0111]圖5示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取方法的另一實(shí)現(xiàn)流程圖的示意圖。如圖5所示,該方法主要包括:
      [0112]在步驟S501中,在接收到查詢請求的情況下,通過通用對象查詢接口確定查詢請求對應(yīng)的鍵。
      [0113]在步驟S502中,若通過通用對象查詢接口從緩存中查找到鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將流反序列化為對象,預(yù)設(shè)協(xié)議能夠用于任意類的反序列化。
      [0114]在步驟S503中,通過通用對象查詢接口返回對象,以響應(yīng)查詢請求。
      [0115]在步驟S504中,若通過通用對象查詢接口從緩存中查找不到鍵對應(yīng)的流,則從外部存儲設(shè)備中查找鍵對應(yīng)的流。
      [0116]在步驟S505中,若從外部存儲設(shè)備中查找到鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將流反序列化為對象,并返回對象,以響應(yīng)查詢請求。[〇117]圖6示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取方法步驟S402中按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將流反序列化為對象的具體實(shí)現(xiàn)流程圖的示意圖。如圖6所示,按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將流反序列化為對象,包括:
      [0118]在步驟S601中,從流中獲取預(yù)設(shè)協(xié)議的信息,并根據(jù)預(yù)設(shè)協(xié)議的信息確定預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式;
      [0119]在步驟S602中,根據(jù)預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式,以及流中所有參數(shù)類型的參數(shù)值,將流反序列化為對象。
      [0120]其中,預(yù)設(shè)協(xié)議的信息可以包括預(yù)設(shè)協(xié)議的標(biāo)識和預(yù)設(shè)協(xié)議的版本號。根據(jù)預(yù)設(shè)協(xié)議的標(biāo)識和預(yù)設(shè)協(xié)議的版本號,可以確定預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式,從而可以確定流中的所有參數(shù)類型和參數(shù)格式。[0121 ]在一種可能的實(shí)現(xiàn)方式中,參數(shù)類型包括:對象所屬的類的名稱參數(shù)、對象的全部屬性名稱參數(shù)、對象的全部屬性值參數(shù)、對象的全部方法的名稱參數(shù)、對象所屬的類創(chuàng)建對象的方法的名稱參數(shù)、對象所屬的類的全部屬性名稱參數(shù)和對象所屬的類的全部屬性值參數(shù)等。
      [0122]這樣,通過封裝通用對象查詢接口,設(shè)置能夠用于任意類的反序列化的預(yù)設(shè)協(xié)議, 根據(jù)本發(fā)明實(shí)施例的面向?qū)ο蟮木彺孀x取方法能夠?qū)⒚嫦驅(qū)ο笳Z言與緩存相結(jié)合,能夠通過通用對象查詢接口實(shí)現(xiàn)直接讀取面向?qū)ο笳Z言中的對象,從而大大減少開發(fā)工作量,提高開發(fā)的便攜性和效率,并能降低外部存儲設(shè)備的讀寫負(fù)載,解決外部存儲設(shè)備的讀寫性能瓶頸問題,從而大大提高系統(tǒng)性能;在將本發(fā)明實(shí)施例的面向?qū)ο蟮木彺孀x取方法應(yīng)用于服務(wù)器端的情況下,可以大大提高服務(wù)器的訪問速度,支持更高的并發(fā),從而相同用戶量所需要的服務(wù)器數(shù)量大大減小。
      [0123]實(shí)施例3
      [0124]圖7示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺鎸懭胙b置的結(jié)構(gòu)框圖。該裝置可以為服務(wù)器,也可以為其他緩存寫入裝置,在此不作限定。為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。如圖7所示,該裝置包括:
      [0125]通用對象存儲接口調(diào)用模塊71,用于在接收到寫入請求的情況下,調(diào)用通用對象存儲接口;
      [0126]鍵生成模塊72,用于通過通用對象存儲接口確定寫入請求對應(yīng)的待寫入對象的唯一標(biāo)識符,并根據(jù)唯一標(biāo)識符生成待寫入對象的鍵;
      [0127]序列化模塊73,用于通過通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將待寫入對象序列化為流,預(yù)設(shè)協(xié)議能夠用于任意類的序列化;
      [0128]緩存寫入模塊74,用于通過通用對象存儲接口根據(jù)鍵將流寫入緩存。
      [0129]在一種可能的實(shí)現(xiàn)方式中,裝置還包括:
      [0130]外部存儲設(shè)備寫入模塊75,用于根據(jù)鍵將流寫入外部存儲設(shè)備。
      [0131]在一種可能的實(shí)現(xiàn)方式中,序列化模塊73包括:
      [0132]參數(shù)值確定子模塊731,用于通過通用對象存儲接口確定預(yù)設(shè)協(xié)議規(guī)定的所有參數(shù)類型,并確定待寫入對象對應(yīng)的所有參數(shù)類型的參數(shù)值;
      [0133]序列化子模塊732,用于通過通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)格式,將預(yù)設(shè)協(xié)議的信息以及待寫入對象對應(yīng)的所有參數(shù)類型的參數(shù)值轉(zhuǎn)換為流。
      [0134]在一種可能的實(shí)現(xiàn)方式中,參數(shù)類型包括:對象所屬的類的名稱參數(shù)、對象的全部屬性名稱參數(shù)、對象的全部屬性值參數(shù)、對象的全部方法的名稱參數(shù)、對象所屬的類創(chuàng)建對象的方法的名稱參數(shù)、對象所屬的類的全部屬性名稱參數(shù)和對象所屬的類的全部屬性值參數(shù)等。
      [0135]這樣,通過封裝通用對象存儲接口,設(shè)置能夠用于任意類的序列化的預(yù)設(shè)協(xié)議,根據(jù)本發(fā)明實(shí)施例的面向?qū)ο蟮木彺鎸懭胙b置能夠?qū)⒚嫦驅(qū)ο笳Z言與緩存相結(jié)合,能夠通過封裝的通用對象存儲接口實(shí)現(xiàn)直接寫入面向?qū)ο笳Z言中的對象,從而大大減少開發(fā)工作量,提高開發(fā)的便攜性和效率,并能降低外部存儲設(shè)備的讀寫負(fù)載,解決外部存儲設(shè)備的讀寫性能瓶頸問題,從而大大提高系統(tǒng)性能;在將本發(fā)明實(shí)施例的面向?qū)ο蟮木彺鎸懭胙b置應(yīng)用于服務(wù)器端的情況下,可以大大提高服務(wù)器的訪問速度,支持更高的并發(fā),從而相同用戶量所需要的服務(wù)器數(shù)量大大減小。
      [0136]實(shí)施例4
      [0137]圖8示出根據(jù)本發(fā)明一實(shí)施例的面向?qū)ο蟮木彺孀x取裝置的結(jié)構(gòu)框圖。該裝置可以為服務(wù)器,也可以為其他緩存讀取裝置,在此不作限定。為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。如圖8所示,該裝置包括:
      [0138]鍵確定模塊81,用于在接收到查詢請求的情況下,通過通用對象查詢接口確定查詢請求對應(yīng)的鍵;
      [0139]反序列化模塊82,用于若通過通用對象查詢接口從緩存中查找到鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將流反序列化為對象,預(yù)設(shè)協(xié)議能夠用于任意類的反序列化;[〇14〇] 第一查詢響應(yīng)模塊83,用于通過通用對象查詢接口返回對象,以響應(yīng)查詢請求。
      [0141]在一種可能的實(shí)現(xiàn)方式中,裝置還包括:
      [0142]第一查找模塊84,用于若通過通用對象查詢接口從緩存中查找不到鍵對應(yīng)的流, 則從外部存儲設(shè)備中查找鍵對應(yīng)的流;
      [0143]第二查詢響應(yīng)模塊85,用于若從外部存儲設(shè)備中查找到鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將流反序列化為對象,并返回對象,以響應(yīng)查詢請求。
      [0144]在一種可能的實(shí)現(xiàn)方式中,反序列化模塊82包括:
      [0145]參數(shù)類型和格式確定子模塊821,用于從流中獲取預(yù)設(shè)協(xié)議的信息,并根據(jù)預(yù)設(shè)協(xié)議的信息確定預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式;
      [0146]反序列化子模塊822,用于根據(jù)預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式,以及流中所有參數(shù)類型的參數(shù)值,將流反序列化為對象。
      [0147]在一種可能的實(shí)現(xiàn)方式中,參數(shù)類型包括:對象所屬的類的名稱參數(shù)、對象的全部屬性名稱參數(shù)、對象的全部屬性值參數(shù)、對象的全部方法的名稱參數(shù)、對象所屬的類創(chuàng)建對象的方法的名稱參數(shù)、對象所屬的類的全部屬性名稱參數(shù)和對象所屬的類的全部屬性值參數(shù)等。
      [0148]這樣,通過封裝通用對象查詢接口,設(shè)置能夠用于任意類的反序列化的預(yù)設(shè)協(xié)議, 根據(jù)本發(fā)明實(shí)施例的面向?qū)ο蟮木彺孀x取裝置能夠?qū)⒚嫦驅(qū)ο笳Z言與緩存相結(jié)合,能夠通過通用對象查詢接口實(shí)現(xiàn)直接讀取面向?qū)ο笳Z言中的對象,從而大大減少開發(fā)工作量,提高開發(fā)的便攜性和效率,并能降低外部存儲設(shè)備的讀寫負(fù)載,解決外部存儲設(shè)備的讀寫性能瓶頸問題,從而大大提高系統(tǒng)性能;在將本發(fā)明實(shí)施例的面向?qū)ο蟮木彺孀x取裝置應(yīng)用于服務(wù)器端的情況下,可以大大提高服務(wù)器的訪問速度,支持更高的并發(fā),從而相同用戶量所需要的服務(wù)器數(shù)量大大減小。
      [0149]實(shí)施例5[〇15〇]圖9示出了本發(fā)明的另一個實(shí)施例的一種面向?qū)ο蟮木彺鎸懭胙b置的一示例性的結(jié)構(gòu)框圖。所述面向?qū)ο蟮木彺鎸懭胙b置1100可以是具備計(jì)算能力的主機(jī)服務(wù)器、個人計(jì)算機(jī)PC、或者可攜帶的便攜式計(jì)算機(jī)或終端等。本發(fā)明具體實(shí)施例并不對計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。
      [0151]所述面向?qū)ο蟮木彺鎸懭胙b置1100包括處理器(processor) 1110、通信接口 (Communicat1ns Interface) 1120、存儲器(memory) 1130和總線1140。其中,處理器1110、 通信接口 1120、以及存儲器1130通過總線1140完成相互間的通信。
      [0152]通信接口 1120用于與網(wǎng)絡(luò)設(shè)備通信,其中網(wǎng)絡(luò)設(shè)備包括例如虛擬機(jī)管理中心、共享存儲等。
      [0153]處理器1110用于執(zhí)行程序。處理器1110可能是一個中央處理器CPU,或者是專用集成電路ASIC(Applicat1n Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個或多個集成電路。
      [0154]存儲器1130用于存放文件。存儲器1130可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器1130也可以是存儲器陣列。存儲器1130還可能被分塊,并且所述塊可按一定的規(guī)則組合成虛擬卷。
      [0155]在一種可能的實(shí)施方式中,上述程序可為包括計(jì)算機(jī)操作指令的程序代碼。該程序具體可包含用于執(zhí)行以下操作的指令:
      [0156]在接收到寫入請求的情況下,調(diào)用通用對象存儲接口;
      [0157]通過所述通用對象存儲接口確定所述寫入請求對應(yīng)的待寫入對象的唯一標(biāo)識符, 并根據(jù)所述唯一標(biāo)識符生成所述待寫入對象的鍵;
      [0158]通過所述通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述待寫入對象序列化為流,所述預(yù)設(shè)協(xié)議能夠用于任意類的序列化;
      [0159]通過所述通用對象存儲接口根據(jù)所述鍵將所述流寫入緩存。[〇16〇]假設(shè)上述為第一種可能的實(shí)施方式,則在第一種可能的實(shí)施方式作為基礎(chǔ)而提供的第二種可能的實(shí)施方式中,該程序還可包含用于執(zhí)行以下操作的指令:
      [0161]在通過所述通用對象存儲接口根據(jù)所述鍵將所述流寫入緩存之后,根據(jù)所述鍵將所述流寫入外部存儲設(shè)備。
      [0162]在第一種可能的實(shí)施方式作為基礎(chǔ)而提供的第三種可能的實(shí)施方式中,該程序還可包含用于執(zhí)行以下操作的指令:
      [0163]通過所述通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述待寫入對象序列化為流,包括:
      [0164]通過所述通用對象存儲接口確定所述預(yù)設(shè)協(xié)議規(guī)定的所有所述參數(shù)類型,并確定所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值;
      [0165]通過所述通用對象存儲接口按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)格式,將所述預(yù)設(shè)協(xié)議的信息以及所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值轉(zhuǎn)換為流。
      [0166]在第一種、第二種或第三種可能的實(shí)施方式作為基礎(chǔ)而提供的第四種可能的實(shí)施方式中,該程序還可包含用于執(zhí)行以下操作的指令:
      [0167]所述參數(shù)類型包括:對象所屬的類的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。
      [0168]實(shí)施例6
      [0169]圖10示出了本發(fā)明的另一個實(shí)施例的一種面向?qū)ο蟮木彺孀x取裝置的一示例性的結(jié)構(gòu)框圖。所述面向?qū)ο蟮木彺孀x取裝置1200可以是具備計(jì)算能力的主機(jī)服務(wù)器、個人計(jì)算機(jī)PC、或者可攜帶的便攜式計(jì)算機(jī)或終端等。本發(fā)明具體實(shí)施例并不對計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。
      [0170]所述面向?qū)ο蟮木彺孀x取裝置1200包括處理器1210、通信接口 1220、存儲器1230 和總線1240。其中,處理器1210、通信接口 1220、以及存儲器1230通過總線1240完成相互間的通信。
      [0171]通信接口 1220用于與網(wǎng)絡(luò)設(shè)備通信,其中網(wǎng)絡(luò)設(shè)備包括例如虛擬機(jī)管理中心、共享存儲等。
      [0172]處理器1210用于執(zhí)行程序。處理器1210可能是一個中央處理器CPU,或者是專用集成電路ASIC,或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個或多個集成電路。
      [0173]存儲器1230用于存放文件。存儲器1230可能包含高速RAM存儲器,也可能還包括非易失性存儲器,例如至少一個磁盤存儲器。存儲器1230也可以是存儲器陣列。存儲器1230還可能被分塊,并且所述塊可按一定的規(guī)則組合成虛擬卷。
      [0174]在一種可能的實(shí)施方式中,上述程序可為包括計(jì)算機(jī)操作指令的程序代碼。該程序具體可包含用于執(zhí)行以下操作的指令:
      [0175]在接收到查詢請求的情況下,通過通用對象查詢接口確定所述查詢請求對應(yīng)的鍵;
      [0176]若通過所述通用對象查詢接口從所述緩存中查找到所述鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述流反序列化為對象,所述預(yù)設(shè)協(xié)議能夠用于任意類的反序列化;
      [0177]通過所述通用對象查詢接口返回所述對象,以響應(yīng)所述查詢請求。
      [0178]假設(shè)上述為第一種可能的實(shí)施方式,則在第一種可能的實(shí)施方式作為基礎(chǔ)而提供的第二種可能的實(shí)施方式中,該程序還可包含用于執(zhí)行以下操作的指令:
      [0179]在通過通用對象查詢接口確定所述查詢請求對應(yīng)的鍵之后,若通過所述通用對象查詢接口從所述緩存中查找不到所述鍵對應(yīng)的流,則從外部存儲設(shè)備中查找所述鍵對應(yīng)的流;
      [0180]若從所述外部存儲設(shè)備中查找到所述鍵對應(yīng)的流,則按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式將所述流反序列化為所述對象,并返回所述對象,以響應(yīng)所述查詢請求。
      [0181]在第一種或第二種可能的實(shí)施方式作為基礎(chǔ)而提供的第四種可能的實(shí)施方式中, 該程序還可包含用于執(zhí)行以下操作的指令:
      [0182]按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述流反序列化為對象,包括:
      [0183]從所述流中獲取所述預(yù)設(shè)協(xié)議的信息,并根據(jù)所述預(yù)設(shè)協(xié)議的信息確定所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式;
      [0184]根據(jù)所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式,以及所述流中所有所述參數(shù)類型的參數(shù)值,將所述流反序列化為所述對象。
      [0185]在第一種或第二種可能的實(shí)施方式作為基礎(chǔ)而提供的第四種可能的實(shí)施方式中, 該程序還可包含用于執(zhí)行以下操作的指令:
      [0186]所述參數(shù)類型包括:對象所屬的類的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。
      [0187]本領(lǐng)域普通技術(shù)人員可以意識到,本文所描述的實(shí)施例中的各示例性模塊及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件形式來實(shí)現(xiàn),取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以針對特定的應(yīng)用選擇不同的方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
      [0188]如果以計(jì)算機(jī)軟件的形式來實(shí)現(xiàn)所述功能并作為獨(dú)立的產(chǎn)品銷售或使用時,則在一定程度上可認(rèn)為本發(fā)明的技術(shù)方案的全部或部分(例如對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分)是以計(jì)算機(jī)軟件產(chǎn)品的形式體現(xiàn)的。該計(jì)算機(jī)軟件產(chǎn)品通常存儲在計(jì)算機(jī)可讀取的非易失性存儲介質(zhì)中,包括若干指令用以使得計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各實(shí)施例方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動硬盤、 只讀存儲器(R〇M,Read_Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
      [0189]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
      【主權(quán)項(xiàng)】
      1.一種面向?qū)ο蟮木彺鎸懭敕椒?,其特征在于,包? 在接收到寫入請求的情況下,調(diào)用通用對象存儲接口; 通過所述通用對象存儲接口確定所述寫入請求對應(yīng)的待寫入對象的唯一標(biāo)識符,并根據(jù)所述唯一標(biāo)識符生成所述待寫入對象的鍵; 通過所述通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述待寫入對象序列化為流,所述預(yù)設(shè)協(xié)議能夠用于任意類的序列化; 通過所述通用對象存儲接口根據(jù)所述鍵將所述流寫入緩存。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在通過所述通用對象存儲接口根據(jù)所述鍵將所述流寫入緩存之后,所述方法還包括: 根據(jù)所述鍵將所述流寫入外部存儲設(shè)備。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過所述通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述待寫入對象序列化為流,包括: 通過所述通用對象存儲接口確定所述預(yù)設(shè)協(xié)議規(guī)定的所有所述參數(shù)類型,并確定所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值; 通過所述通用對象存儲接口按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)格式,將所述預(yù)設(shè)協(xié)議的信息以及所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值轉(zhuǎn)換為流。4.根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的方法,其特征在于,所述參數(shù)類型包括:對象所屬的類的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。5.一種面向?qū)ο蟮木彺孀x取方法,其特征在于,包括: 在接收到查詢請求的情況下,通過通用對象查詢接口確定所述查詢請求對應(yīng)的鍵; 若通過所述通用對象查詢接口從所述緩存中查找到所述鍵對應(yīng)的流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述流反序列化為對象,所述預(yù)設(shè)協(xié)議能夠用于任意類的反序列化; 通過所述通用對象查詢接口返回所述對象,以響應(yīng)所述查詢請求。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在通過通用對象查詢接口確定所述查詢請求對應(yīng)的鍵之后,所述方法還包括: 若通過所述通用對象查詢接口從所述緩存中查找不到所述鍵對應(yīng)的流,則從外部存儲設(shè)備中查找所述鍵對應(yīng)的流; 若從所述外部存儲設(shè)備中查找到所述鍵對應(yīng)的流,則按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式將所述流反序列化為所述對象,并返回所述對象,以響應(yīng)所述查詢請求。7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述流反序列化為對象,包括: 從所述流中獲取所述預(yù)設(shè)協(xié)議的信息,并根據(jù)所述預(yù)設(shè)協(xié)議的信息確定所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式; 根據(jù)所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式,以及所述流中所有所述參數(shù)類型的參數(shù)值,將所述流反序列化為所述對象。8.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述參數(shù)類型包括:對象所屬的類的名 稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部方法 的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類的全 部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。9.一種面向?qū)ο蟮木彺鎸懭胙b置,其特征在于,包括:通用對象存儲接口調(diào)用模塊,用于在接收到寫入請求的情況下,調(diào)用通用對象存儲接 P;鍵生成模塊,用于通過所述通用對象存儲接口確定所述寫入請求對應(yīng)的待寫入對象的 唯一標(biāo)識符,并根據(jù)所述唯一標(biāo)識符生成所述待寫入對象的鍵;序列化模塊,用于通過所述通用對象存儲接口按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格 式將所述待寫入對象序列化為流,所述預(yù)設(shè)協(xié)議能夠用于任意類的序列化;緩存寫入模塊,用于通過所述通用對象存儲接口根據(jù)所述鍵將所述流寫入緩存。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括:外部存儲設(shè)備寫入模塊,用于根據(jù)所述鍵將所述流寫入外部存儲設(shè)備。11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述序列化模塊包括:參數(shù)值確定子模塊,用于通過所述通用對象存儲接口確定所述預(yù)設(shè)協(xié)議規(guī)定的所有所 述參數(shù)類型,并確定所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值;序列化子模塊,用于通過所述通用對象存儲接口按照所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)格 式,將所述預(yù)設(shè)協(xié)議的信息以及所述待寫入對象對應(yīng)的所有所述參數(shù)類型的參數(shù)值轉(zhuǎn)換為 流。12.根據(jù)權(quán)利要求9至11任意一項(xiàng)所述的裝置,其特征在于,所述參數(shù)類型包括:對象所 屬的類的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象 的全部方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所 屬的類的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。13.—種面向?qū)ο蟮木彺孀x取裝置,其特征在于,包括:鍵確定模塊,用于在接收到查詢請求的情況下,通過通用對象查詢接口確定所述查詢 請求對應(yīng)的鍵;反序列化模塊,用于若通過所述通用對象查詢接口從所述緩存中查找到所述鍵對應(yīng)的 流,則按照預(yù)設(shè)協(xié)議規(guī)定的參數(shù)類型和參數(shù)格式將所述流反序列化為對象,所述預(yù)設(shè)協(xié)議 能夠用于任意類的反序列化;第一查詢響應(yīng)模塊,用于通過所述通用對象查詢接口返回所述對象,以響應(yīng)所述查詢 請求。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述裝置還包括:第一查找模塊,用于若通過所述通用對象查詢接口從所述緩存中查找不到所述鍵對應(yīng) 的流,則從外部存儲設(shè)備中查找所述鍵對應(yīng)的流;第二查詢響應(yīng)模塊,用于若從所述外部存儲設(shè)備中查找到所述鍵對應(yīng)的流,則按照所 述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式將所述流反序列化為所述對象,并返回所 述對象,以響應(yīng)所述查詢請求。15.根據(jù)權(quán)利要求13或14所述的裝置,其特征在于,所述反序列化模塊包括:參數(shù)類型和格式確定子模塊,用于從所述流中獲取所述預(yù)設(shè)協(xié)議的信息,并根據(jù)所述 預(yù)設(shè)協(xié)議的信息確定所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式;反序列化子模塊,用于根據(jù)所述預(yù)設(shè)協(xié)議規(guī)定的所述參數(shù)類型和所述參數(shù)格式,以及 所述流中所有所述參數(shù)類型的參數(shù)值,將所述流反序列化為所述對象。16.根據(jù)權(quán)利要求13或14所述的裝置,其特征在于,所述參數(shù)類型包括:對象所屬的類 的名稱參數(shù)、所述對象的全部屬性名稱參數(shù)、所述對象的全部屬性值參數(shù)、所述對象的全部 方法的名稱參數(shù)、所述對象所屬的類創(chuàng)建所述對象的方法的名稱參數(shù)、所述對象所屬的類 的全部屬性名稱參數(shù)和所述對象所屬的類的全部屬性值參數(shù)。
      【文檔編號】G06F9/44GK106095698SQ201610391139
      【公開日】2016年11月9日
      【申請日】2016年6月3日 公開號201610391139.2, CN 106095698 A, CN 106095698A, CN 201610391139, CN-A-106095698, CN106095698 A, CN106095698A, CN201610391139, CN201610391139.2
      【發(fā)明人】王軍, 吳昊宇, 王冀
      【申請人】合一網(wǎng)絡(luò)技術(shù)(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1