国产精品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>

      用于擴(kuò)展服務(wù)器端處理能力的方法和裝置的制作方法

      文檔序號(hào):7767994閱讀:434來源:國知局
      專利名稱:用于擴(kuò)展服務(wù)器端處理能力的方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明的各實(shí)施方式涉及數(shù)據(jù)處理,并且更具體地涉及用于擴(kuò)展服務(wù)器端處理能力的方法、裝置和相關(guān)計(jì)算機(jī)程序產(chǎn)品。
      背景技術(shù)
      計(jì)算機(jī)技術(shù)的發(fā)展為需要大規(guī)模數(shù)據(jù)處理能力的應(yīng)用程序提供了硬件保障,在網(wǎng)絡(luò)技術(shù)以及分布式計(jì)算技術(shù)的支持下,可以建立服務(wù)器構(gòu)成的數(shù)據(jù)中心,并通過多個(gè)服務(wù)器以協(xié)作方式執(zhí)行需要超大規(guī)模數(shù)據(jù)處理能力的應(yīng)用程序。然而,對(duì)于某些運(yùn)算而言,單純依靠服務(wù)器端的處理能力也不能完成運(yùn)算操作,此時(shí)需要開發(fā)新的解決方案以實(shí)現(xiàn)對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配。在具有數(shù)百萬甚至上千萬用戶的大型網(wǎng)站中,當(dāng)眾多用戶同時(shí)進(jìn)行查詢或者針對(duì)網(wǎng)站中的某些數(shù)據(jù)編制索引時(shí),通常需要極大規(guī)模的數(shù)據(jù)處理能力。現(xiàn)在僅以購物網(wǎng)站為示例,概述可以擴(kuò)展服務(wù)器端的處理能力的方案。就購物網(wǎng)站的服務(wù)器端而言,可以劃分為兩種類型的服務(wù)器一類是web應(yīng)用服務(wù)器,而另一類是分析服務(wù)器,兩種類型的服務(wù)器共享相同的物理主機(jī)資源。Web應(yīng)用服務(wù)器通常用于運(yùn)行支持前端web服務(wù)所需的應(yīng)用程序, 而分析服務(wù)器通常用于提供其他相關(guān)的分析數(shù)據(jù)的功能。圖IA示意性示出了根據(jù)一個(gè)解決方案的服務(wù)器端113配置的架構(gòu)圖。在方案一 110中,當(dāng)用戶114的數(shù)量較小時(shí),可以分配較少數(shù)量的服務(wù)器用作web服務(wù)器111,此時(shí)可以使用較多的服務(wù)器用作分析服務(wù)器112。然而,隨著用戶的增加,web服務(wù)器端113承受的工作負(fù)載很可能成倍甚至呈指數(shù)地增加,此時(shí)必須購買更多的硬件服務(wù)器用作web服務(wù)器111,以提供更多數(shù)據(jù)處理能力以適應(yīng)于越來越高的需求。在不增加硬件投資的情況下,圖IB示意性示出了一種用于改善服務(wù)器端的處理能力的方案的架構(gòu)圖。方案二 120可以在服務(wù)器端123的各服務(wù)器之間重新劃分工作職能,例如,可以指派更多的服務(wù)器擔(dān)任web服務(wù)器121,并指派較少的服務(wù)器用作分析服務(wù)器 122。

      發(fā)明內(nèi)容
      盡管上述方案可以在一定程度上解決web服務(wù)器121資源緊缺的問題,然而壓縮分析服務(wù)器122的數(shù)量將會(huì)導(dǎo)致分析能力下降、反饋時(shí)間過長等諸多問題。此時(shí),在不增加分析服務(wù)器的硬件投入的前提下,如何調(diào)動(dòng)其他可用資源來提高服務(wù)器端的處理能力成為一項(xiàng)亟待解決的問題。因而迫切需要提供一種方法,以便在不增加硬件投資的前提下,方便、可靠地提高服務(wù)器端的處理能力;并且還希望能夠盡可能少地改變現(xiàn)有硬件和軟件配置,并且以易于部署的方式實(shí)現(xiàn)對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或重新分配。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,提供了一種用于擴(kuò)展服務(wù)器端處理能力的方法。該方法包括確定需要從服務(wù)器端卸下的作業(yè);將作業(yè)劃分為一個(gè)或多個(gè)任務(wù);響應(yīng)于一個(gè)或多個(gè)客戶端發(fā)出的http請求,向一個(gè)或多個(gè)客戶端分配一個(gè)或多個(gè)任務(wù);以及從一個(gè)或多個(gè)客戶端發(fā)送的http請求中,接收一個(gè)或多個(gè)客戶端對(duì)一個(gè)或多個(gè)任務(wù)的響應(yīng)。根據(jù)本發(fā)明的另一實(shí)施方式,還包括選擇一個(gè)或多個(gè)客戶端用于執(zhí)行一個(gè)或者多個(gè)任務(wù)。根據(jù)本發(fā)明的另一實(shí)施方式,其中確定需要從服務(wù)器端卸下的作業(yè)包括判斷服務(wù)器端的當(dāng)前負(fù)載水平;以及響應(yīng)于確定當(dāng)前負(fù)載水平即將或者已經(jīng)超過閾值負(fù)載水平, 指定從服務(wù)器端卸下的作業(yè)。根據(jù)本發(fā)明的另一實(shí)施方式,其中向一個(gè)或多個(gè)客戶端分配一個(gè)或多個(gè)任務(wù)包括基于一個(gè)或多個(gè)客戶端的屬性,將一個(gè)或多個(gè)客戶端進(jìn)行分組;以及以組為單位向一個(gè)或多個(gè)客戶端分派與組相匹配的任務(wù)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,提供了一種用于擴(kuò)展服務(wù)器端處理能力的設(shè)備。該設(shè)備包括確定裝置,用于確定需要從服務(wù)器端卸下的作業(yè);劃分裝置,用于將作業(yè)劃分為一個(gè)或多個(gè)任務(wù);分配裝置,響應(yīng)于一個(gè)或多個(gè)客戶端發(fā)出的http請求,用于向一個(gè)或多個(gè)客戶端分配一個(gè)或多個(gè)任務(wù);以及接收裝置,用于從一個(gè)或多個(gè)客戶端發(fā)送的http請求中,接收一個(gè)或多個(gè)客戶端對(duì)一個(gè)或多個(gè)任務(wù)的響應(yīng)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,還包括選擇裝置,用于選擇一個(gè)或多個(gè)客戶端用于執(zhí)行一個(gè)或者多個(gè)任務(wù)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中所述確定裝置包括判斷裝置,用于判斷服務(wù)器端的當(dāng)前負(fù)載水平;以及指定裝置,用于響應(yīng)于確定當(dāng)前負(fù)載水平即將或者已經(jīng)超過閾值負(fù)載水平、指定從服務(wù)器端卸下的作業(yè)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中所述分配裝置包括分組裝置,用于基于一個(gè)或多個(gè)客戶端的屬性,將一個(gè)或多個(gè)客戶端進(jìn)行分組;以及分派裝置,用于以組為單位向一個(gè)或多個(gè)客戶端分派與組相匹配的任務(wù)。采用根據(jù)本發(fā)明的各實(shí)施方式,可以在不增加硬件投資的前提下,方便、可靠地提高服務(wù)器端的處理能力,并且還可以以易于部署的方式實(shí)現(xiàn)對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或重新分配。


      結(jié)合附圖并參考以下詳細(xì)說明,本發(fā)明各實(shí)施方式的特征、優(yōu)點(diǎn)及其他方面將變得更加明顯,在附圖中圖IA示意性示出了根據(jù)一個(gè)解決方案的服務(wù)器端配置的架構(gòu)圖;圖IB示意性示出了一種用于改善服務(wù)器端的處理能力的方案的架構(gòu)圖;圖2示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的架構(gòu)圖;圖3示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的方法的流程圖;圖4示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的向服務(wù)器端的客戶端分配任務(wù)的方法的流程圖;圖5A和圖5B分別示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的服務(wù)器端一側(cè)的處理
      5的流程圖,其中圖5A示出了服務(wù)器端的負(fù)載檢查流程,而圖5B示出了服務(wù)器端的事件處理流程;圖6A至圖6D示意性示出了如圖5B所示的處理流程中的詳細(xì)操作,其中圖6A示出了新客戶端登錄的處理流程,圖6B示出了任務(wù)結(jié)果返回的處理流程,圖6C示出了請求卸下作業(yè)的處理流程,而圖6D示出了任務(wù)處理的處理流程;以及圖7示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的設(shè)備的框圖。
      具體實(shí)施例方式附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實(shí)施方式的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(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)。在下文中,將僅以一個(gè)購物網(wǎng)站為示例,具體闡明根據(jù)本發(fā)明的示例性實(shí)施方式的方法的處理流程。應(yīng)當(dāng)注意,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,各種方法、裝置和計(jì)算機(jī)程序產(chǎn)品并不僅限于在以購物網(wǎng)站為代表的基于web的應(yīng)用中執(zhí)行,而是還可以在各種其他的應(yīng)用中執(zhí)行??蛻舳丝梢砸愿鞣N方式訪問服務(wù)器端,本說明書中僅以訪問由服務(wù)器端提供的 web頁面的方式連接至服務(wù)器端為示例,然而客戶端一方的計(jì)算設(shè)備還可以通過其他應(yīng)用來經(jīng)由網(wǎng)絡(luò)訪問服務(wù)器端。例如可以通過特定的應(yīng)用程序或者通過安裝插件的方式訪問服務(wù)器端。還應(yīng)當(dāng)注意,盡管在說明書中以普通計(jì)算機(jī)終端作為客戶端的具體示例,并且以普通計(jì)算機(jī)終端以web方式訪問服務(wù)器端作為具體示例;應(yīng)當(dāng)理解,客戶端還可以包括具備數(shù)據(jù)處理能力的各種計(jì)算終端,諸如,臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、工作站等。隨著計(jì)算設(shè)備逐漸小型化以及處理能力的增強(qiáng),客戶端還可以包括個(gè)人數(shù)字助理、智能電話以及移動(dòng)終端等便攜式移動(dòng)計(jì)算設(shè)備。應(yīng)當(dāng)注意,盡管在本發(fā)明的實(shí)施方式中采用購物網(wǎng)站中的分析服務(wù)器為示例,然而本發(fā)明的實(shí)施方式并不限于上述示例,而是可以包括可以將其上運(yùn)行的作業(yè)劃分為在多個(gè)計(jì)算終端上執(zhí)行的任何服務(wù)器。還應(yīng)當(dāng)注意,在此所述的對(duì)作業(yè)進(jìn)行劃分,需要考慮到該作業(yè)的緊急程度、實(shí)時(shí)性、保密性等諸多因素;并非所有作業(yè)均適合于在連接至服務(wù)器端的客戶端上執(zhí)行。采用本發(fā)明的方法,可以使連接至服務(wù)器端的眾多客戶端分擔(dān)原本需要服務(wù)器端執(zhí)行的任務(wù),并進(jìn)而降低服務(wù)器端的工作負(fù)荷。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,優(yōu)勢在于可以以對(duì)客戶端透明的方式實(shí)現(xiàn)擴(kuò)展服務(wù)器端的處理能力。例如,用戶不必安裝用于接收分配任務(wù)和返回處理結(jié)果的專用應(yīng)用程序,服務(wù)器端可以響應(yīng)于客戶端發(fā)出的http請求而向其分配任務(wù),并且服務(wù)器只需從客戶端發(fā)送的請求中接收對(duì)任務(wù)的響應(yīng)即可。此外,客戶端無需安裝用于執(zhí)行任務(wù)的專用應(yīng)用程序,所分配的任務(wù)可以以任務(wù)描述的方式實(shí)現(xiàn),客戶端僅需基于任務(wù)描述即可完成所分配的任務(wù)。圖2示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的架構(gòu)圖200。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,當(dāng)服務(wù)器端(例如,分析服務(wù)器220)資源短缺時(shí),可以協(xié)作地利用連接至分析服務(wù)器220的客戶端的處理能力,以提高服務(wù)器端的整體數(shù)據(jù)處理能力。不同于圖IA和圖IB所示的方案,在如圖2所示的實(shí)施方式中,用戶240所使用的客戶端與分析服務(wù)器220之間的交互并不僅限于客戶端請求數(shù)據(jù)并且從分析服務(wù)器220接收數(shù)據(jù)的常規(guī)操作,該客戶端還可以接受分析服務(wù)器220分配的任務(wù)以及相關(guān)的待處理數(shù)據(jù),并在根據(jù)任務(wù)描述處理了相關(guān)的待處理數(shù)據(jù)之后,向分析服務(wù)器220返回處理結(jié)果。此時(shí),服務(wù)器端通過將自己的作業(yè)劃分為適當(dāng)大小的任務(wù),向合格的客戶端分配任務(wù)和相關(guān)待處理數(shù)據(jù),并從客戶端接收處理結(jié)果,來實(shí)現(xiàn)由用戶240的客戶端分擔(dān)原先需要由分析服務(wù)器220自身執(zhí)行的作業(yè)中的一部分。在下文中,將參考圖3至圖7描述根據(jù)本發(fā)明的一個(gè)實(shí)施方式的方法的工作流程及系統(tǒng)架構(gòu)。圖3示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的方法的流程圖300。如圖3所示,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,用于對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的方法開始于步驟S302。在步驟S302中,首先確定需要從服務(wù)器端卸下的作業(yè)。應(yīng)當(dāng)注意,在此的“卸下”操作泛指將原本應(yīng)當(dāng)由服務(wù)器端的計(jì)算設(shè)備執(zhí)行的作業(yè),重新指派由其他計(jì)算設(shè)備執(zhí)行的過程。被卸下的作業(yè)可以是服務(wù)器端剛剛被分配的尚未執(zhí)行的新的作業(yè),還可以是正在被執(zhí)行的、但是因服務(wù)器端負(fù)載過重而需要由其他計(jì)算設(shè)備分擔(dān)的作業(yè)。應(yīng)當(dāng)注意,在確定需要卸下的作業(yè)時(shí),可以考慮服務(wù)器端的當(dāng)前負(fù)載、服務(wù)器端的處理能力、作業(yè)的保密級(jí)別、作業(yè)的響應(yīng)時(shí)間等因素。例如,可以考慮在服務(wù)器端優(yōu)先執(zhí)行保密級(jí)別高、需要盡可能實(shí)時(shí)響應(yīng)的作業(yè),并且可以選擇首先卸下保密級(jí)別較低、對(duì)響應(yīng)時(shí)間要求較低的作業(yè),以便由客戶端執(zhí)行。在步驟S304中,將步驟S302中確定的作業(yè)劃分為一個(gè)或多個(gè)任務(wù)。應(yīng)當(dāng)注意,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,服務(wù)器端可以基于預(yù)定義的規(guī)則劃分該作業(yè)。例如,劃分時(shí)可以確定任務(wù)的顆粒度,可以確定與任務(wù)相對(duì)應(yīng)的待處理數(shù)據(jù)等。應(yīng)當(dāng)注意,基于客戶端的計(jì)算能力、客戶端與服務(wù)器端之間的網(wǎng)絡(luò)連接狀況等因素,為確保服務(wù)器端可以從至少一個(gè)客戶端接收到響應(yīng),通常向客戶端分配的任務(wù)具有較小的顆粒度,并且需要采取冗余機(jī)制 (例如,向多個(gè)客戶端分配相同的任務(wù))等。根據(jù)一個(gè)實(shí)施方式,在對(duì)作業(yè)進(jìn)行劃分時(shí),每個(gè)任務(wù)可以具有不同的顆粒度,每個(gè)任務(wù)所對(duì)應(yīng)的待處理數(shù)據(jù)也可以具有不同的大小。在步驟S306中,響應(yīng)于客戶端發(fā)出的http請求,向一個(gè)或多個(gè)客戶端分配一個(gè)或多個(gè)任務(wù)。應(yīng)當(dāng)注意,可以設(shè)置不同的分配策略,例如可以限定一個(gè)客戶端只能同時(shí)執(zhí)行一個(gè)任務(wù),直到已經(jīng)完成任務(wù)并向服務(wù)器端提交任務(wù)執(zhí)行的結(jié)果后才可以獲得下一個(gè)任務(wù); 也可以定義一個(gè)客戶端可以同時(shí)執(zhí)行來自相同作業(yè)的多個(gè)任務(wù),或者一個(gè)客戶端可以執(zhí)行來自不同作業(yè)的多個(gè)任務(wù),等等。應(yīng)當(dāng)注意,任務(wù)分配是響應(yīng)于客戶端發(fā)出的http請求而執(zhí)行的,例如,當(dāng)服務(wù)器端檢測到有客戶端登錄,即可執(zhí)行任務(wù)分配操作。根據(jù)一個(gè)實(shí)施方式,只要客戶端在一次登陸后保持連接到服務(wù)器端,則可以向該客戶端分配任務(wù)。在客戶端已經(jīng)完成一個(gè)任務(wù)后,服務(wù)器端還可以根據(jù)自身策略向該客戶端分配其他一個(gè)或者多個(gè)任務(wù),或者不再向該客戶端分配任務(wù)。當(dāng)客戶端斷開了與服務(wù)器端的連接后(例如,關(guān)閉了 web頁面),則服務(wù)器端不再向該客戶端分配任務(wù)。另外,客戶端還可以接收來自不同數(shù)據(jù)中心中的服務(wù)器的多個(gè)任務(wù)。繼而,在步驟S308中,從一個(gè)或多個(gè)客戶端發(fā)送的http請求中,接收一個(gè)或多個(gè)客戶端對(duì)一個(gè)或多個(gè)任務(wù)的響應(yīng)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,還可以包括針對(duì)客戶端未響應(yīng)的異常情況進(jìn)行處理。在步驟S306和S308中,任務(wù)分配和接收客戶端對(duì)任務(wù)的響應(yīng)均以http請求的方式實(shí)現(xiàn),無需改變客戶端的現(xiàn)有配置。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,還可以包括選擇服務(wù)器端(例如,位于數(shù)據(jù)中心處)的一個(gè)或多個(gè)客戶端用于執(zhí)行一個(gè)或者多個(gè)任務(wù)。應(yīng)當(dāng)理解,可能存在數(shù)百萬的客戶端同時(shí)連接至服務(wù)器端的情況,該選擇步驟的目的在于從可用客戶端中選擇適合于執(zhí)行任務(wù)的客戶端,以便可以更加及時(shí)、準(zhǔn)確地完成任務(wù)??梢詫⒖蛻舳说膶傩宰鳛楹Y選標(biāo)準(zhǔn)來選擇適用于執(zhí)行任務(wù)的客戶端。在一個(gè)實(shí)施方式中,可以選擇硬件配置較高、工作負(fù)載較輕、 網(wǎng)絡(luò)連接狀況較好的客戶端,或者還可以進(jìn)行隨機(jī)選擇或者選擇正在訪問服務(wù)器的全部客
      廠順J寸寸O根據(jù)本發(fā)明的一個(gè)實(shí)施方式,確定需要從服務(wù)器端卸下的作業(yè)包括判斷服務(wù)器端的當(dāng)前負(fù)載水平;以及響應(yīng)于確定當(dāng)前負(fù)載水平即將或者已經(jīng)超過閾值負(fù)載水平,指定從服務(wù)器端卸下的作業(yè)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,在確定需要卸下的作業(yè)時(shí),服務(wù)器端可以首先檢查自己當(dāng)前的工作負(fù)載。如果當(dāng)前服務(wù)器端的負(fù)載較小,則可以將新的作業(yè)完全在服務(wù)器端完成;如果服務(wù)器端此時(shí)已經(jīng)接近滿負(fù)荷,則可以將作業(yè)中的一部分分配給服務(wù)器端的主機(jī)執(zhí)行,而將其余部分分配給客戶端執(zhí)行,或者還可以將該作業(yè)全部分配給客戶端完成;另夕卜,如果服務(wù)器端在執(zhí)行作業(yè)過程中,發(fā)現(xiàn)當(dāng)前負(fù)載水平即將或者已經(jīng)超過閾值負(fù)載水平, 還可以將正在由服務(wù)器端執(zhí)行的作業(yè)從服務(wù)器上移除并將其進(jìn)一步進(jìn)行劃分,繼而指派由客戶端執(zhí)行該作業(yè)中服務(wù)器端尚未完成的被移除部分。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,該被卸下的作業(yè)在后續(xù)將被劃分為一個(gè)或者多個(gè)任務(wù),以用于在一個(gè)或者多個(gè)客戶端上執(zhí)行。 在下文中,將參見圖5Α詳述在服務(wù)器端進(jìn)行負(fù)載檢查的流程?,F(xiàn)在參考圖4,該圖示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的向服務(wù)器的客戶端分配任務(wù)的方法的流程圖400。在步驟S402中,基于一個(gè)或多個(gè)客戶端的屬性,將一個(gè)或多個(gè)客戶端進(jìn)行分組。在分組時(shí),可以考慮連接至服務(wù)器端的客戶端的共性,將具有相同屬性的客戶端劃分為相應(yīng)分組,可以在分配任務(wù)時(shí)選擇更適合于分組中的客戶端執(zhí)行的任務(wù)??蛻舳说膶傩钥梢园ㄒ韵轮械囊豁?xiàng)或者多項(xiàng)客戶端的處理能力、客戶端的當(dāng)前負(fù)載、客戶端的響應(yīng)時(shí)間、客戶端的受信程度、客戶端到服務(wù)器端的路由狀況、客戶端的任務(wù)完成歷史、客戶端與服務(wù)器端之間的協(xié)議等。本發(fā)明的實(shí)施方式的思想在于,以協(xié)作方式利用客戶端的處理能力。這種協(xié)作方式對(duì)用戶而言可以是透明的,即無需用戶過多人工參與,也無需對(duì)客戶端的應(yīng)用程序進(jìn)行修改。例如,可以在服務(wù)器端與客戶端之間預(yù)先簽署處理能力共享的協(xié)議,即預(yù)先約定服務(wù)器端可以向客戶端分配任務(wù),并且客戶端承諾執(zhí)行該任務(wù)并向服務(wù)器端返回處理結(jié)果。客戶端在同意該協(xié)議之后,即可以接受服務(wù)器端分配的任務(wù)并且執(zhí)行后續(xù)操作。根據(jù)不同的商業(yè)運(yùn)營模式,還可以以其他方式實(shí)現(xiàn)協(xié)作共享客戶端的處理能力,在此并不過多討論運(yùn)營過程中所涉及的商業(yè)模式和法律問題??梢砸越M為單位向一個(gè)或多個(gè)客戶端分派與組相匹配的任務(wù)。例如,可以將處理能力較強(qiáng)的客戶端設(shè)置為一個(gè)分組,由此可以向該分組中的客戶端分配需要較高處理能力的任務(wù)。例如,可以向其分配計(jì)算復(fù)雜性高、計(jì)算量大的任務(wù),或者可以向其分配較大的待處理數(shù)據(jù)塊。又例如,如果基于以往的經(jīng)驗(yàn)得知某些客戶端的響應(yīng)時(shí)間非常短,則可以將這些客戶端分類為一個(gè)分組,并向該分組分配對(duì)于響應(yīng)時(shí)間要求較高的任務(wù)。再例如,如果某些客戶端的任務(wù)完成歷史顯示其以往執(zhí)行任務(wù)的完成率很高,則可以將這些客戶端分類為一個(gè)分組,并優(yōu)先向該分組分配任務(wù)。還可以根據(jù)服務(wù)器端與客戶端之間的不同服務(wù)協(xié)議, 將客戶端劃分至不同的分組。例如,如果客戶端同意在夜間(例如,00:00至06:00)貢獻(xiàn)自己的計(jì)算能力并確保在該時(shí)段中連接至服務(wù)器端,則服務(wù)器端可以將類似情況的客戶端劃分至相同的分組,并且在夜間持續(xù)向該分組中的客戶端分配任務(wù)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,向一個(gè)或多個(gè)客戶端分配一個(gè)或多個(gè)任務(wù)包括響應(yīng)于一個(gè)或多個(gè)客戶端登錄到服務(wù)器端,向一個(gè)或多個(gè)客戶端發(fā)送與一個(gè)或者多個(gè)任務(wù)相對(duì)應(yīng)的任務(wù)描述以及待處理的數(shù)據(jù)。應(yīng)當(dāng)注意,向客戶端分配任務(wù)是以客戶端連接至服務(wù)器端為條件的。根據(jù)一個(gè)實(shí)施方式,例如可以在客戶端訪問服務(wù)器端的某頁面時(shí)向其分配任務(wù),并且在客戶端保持連接至服務(wù)器端的時(shí)段中,服務(wù)器端可以利用客戶端的處理能力, 而當(dāng)客戶端離開該頁面后,則不能利用該客戶端的處理能力。應(yīng)當(dāng)注意,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,客戶端可以采用基于web的方式訪問服務(wù)器端。應(yīng)當(dāng)對(duì)在此所述的web方式作出寬泛的解釋,該方式包括但不限于訪問服務(wù)器端提供的web頁面等,而是還可以包括目前已經(jīng)存在以及將在未來開發(fā)的各種基于web的訪問方式。根據(jù)服務(wù)協(xié)議,可以在客戶端登錄至服務(wù)器端期間,向客戶端分配任務(wù)。本發(fā)明的實(shí)施方式的一個(gè)優(yōu)點(diǎn)在于,可以在不向客戶端額外安裝新應(yīng)用程序的情況下,利用客戶端的計(jì)算能力。其原因在于分配任務(wù)時(shí),向客戶端發(fā)送待處理的數(shù)據(jù)的同時(shí),還發(fā)送與任務(wù)相對(duì)應(yīng)的任務(wù)描述。由此,客戶端便可利用接收到的任務(wù)描述來處理待處理的數(shù)據(jù)。任務(wù)描述可以包括以下中的一項(xiàng)或者多項(xiàng)輸入數(shù)據(jù)描述、輸出數(shù)據(jù)描述以及處理算法,或者可以包括處理算法的描述。例如,在購物網(wǎng)站的日志中僅記錄了每筆交易記錄(例如,在某時(shí)間賣出了多少件商品,并且該商品單價(jià)為多少元/件)的情況下,假設(shè)一個(gè)作業(yè)是希望計(jì)算最大的單筆交易金額以及對(duì)應(yīng)的商品名稱,可以將該作業(yè)進(jìn)行如下劃分假設(shè)日志中記錄了 10000條交易記錄,則例如可以將記錄劃分為1000個(gè)數(shù)據(jù)片段,并且向每個(gè)客戶端分配任務(wù)(在設(shè)置了客戶端分組的情況下,還可以向一個(gè)客戶端的分組分配任務(wù)),以計(jì)算一個(gè)數(shù)據(jù)片段中的最大單筆交易金額。此時(shí),可以將任務(wù)描述以及相應(yīng)的待處理數(shù)據(jù)發(fā)送至客戶端(或者客戶端的分組)。在不考慮客戶端分組的情況下,則服務(wù)器端可以向1000個(gè)客戶端發(fā)送任務(wù),而每個(gè)待處理數(shù)據(jù)可以是包括10條交易記錄的數(shù)據(jù)片段??紤]到客戶端的可信度以及網(wǎng)絡(luò)狀況等原因,為保證作業(yè)的最終結(jié)果的準(zhǔn)確性, 還采用其他可以提高可信度的分配方式,將在下文詳述具體示例。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,任務(wù)描述可以是
      {輸入數(shù)據(jù)包括10條交易記錄的日志數(shù)據(jù),其中每條數(shù)據(jù)記錄中包括商品名稱a;售出商品數(shù)量b、以及商品單價(jià)C;輸出數(shù)據(jù)最大單筆交易金額,商品名稱;算法最大單筆交易金額=b X C,商品名稱=a}接收到任務(wù)描述的每個(gè)客戶端可以采用上述算法計(jì)算針對(duì)10條交易記錄的處理結(jié)果??梢圆捎媚_本技術(shù)(諸如,AJAX技術(shù))描述該算法,或者采用客戶端能夠直接或者間接執(zhí)行的其他程序來描述該算法。服務(wù)器端在接收到1000個(gè)客戶端返回的處理結(jié)果,例如二元組(最大單筆交易金額,商品名稱)時(shí),僅需在1000個(gè)二元組中選擇具有“最大單筆交易金額”的二元組即可,而無需針對(duì)10000條記錄日志中的數(shù)據(jù)進(jìn)行逐一比較。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,將作業(yè)劃分為一個(gè)或多個(gè)任務(wù)是基于預(yù)定規(guī)則進(jìn)行的,預(yù)定規(guī)則涉及以下至少一項(xiàng)任務(wù)的顆粒度、作業(yè)的計(jì)算量、作業(yè)的優(yōu)先級(jí)、作業(yè)的保密級(jí)別等。例如,當(dāng)作業(yè)的計(jì)算量大時(shí),可以將作業(yè)劃分為計(jì)算量相對(duì)較小的更多數(shù)量的任務(wù),從而客戶端可以在較短時(shí)間內(nèi)完成每個(gè)任務(wù),并且盡快向服務(wù)器端返回處理結(jié)果。例如,可以考慮優(yōu)先處理高優(yōu)先級(jí)的作業(yè),在劃分后將相應(yīng)的任務(wù)分配給處理能力高、響應(yīng)時(shí)間快、并且更為受信的客戶端。例如,可以基于作業(yè)的保密級(jí)別,將保密級(jí)別較高的作業(yè)劃分為較少數(shù)量的任務(wù),并且分配給更為受信的客戶端執(zhí)行,以降低在任務(wù)分配和回收結(jié)果的過程中遭受侵害的風(fēng)險(xiǎn)。應(yīng)當(dāng)注意,在確定任務(wù)的顆粒度時(shí),可以基于客戶端先前執(zhí)行任務(wù)的經(jīng)驗(yàn)而動(dòng)態(tài)設(shè)置。例如,在以往執(zhí)行任務(wù)的過程時(shí),由于任務(wù)顆粒度過大而導(dǎo)致大量客戶端在預(yù)定響應(yīng)時(shí)間內(nèi)沒有計(jì)算得出處理結(jié)果,則可以在后續(xù)設(shè)置較小的任務(wù)顆粒度;反之亦然。應(yīng)當(dāng)注意,設(shè)置任務(wù)顆粒度時(shí)還可以考慮客戶端的屬性。對(duì)于一個(gè)作業(yè)而言,在劃分時(shí)可以設(shè)置多個(gè)任務(wù)顆粒度,也即可以將作業(yè)劃分為大小不同的多個(gè)任務(wù),以便向不同的客戶端和/或客戶端分組分配相應(yīng)的任務(wù)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,還可以包括基于一個(gè)或多個(gè)客戶端對(duì)一個(gè)或多個(gè)任務(wù)的響應(yīng),生成作業(yè)的至少一部分處理結(jié)果。在此,生成作業(yè)的至少一部分處理結(jié)果的過程是指,聚合來自多個(gè)客戶端的響應(yīng),獲得處理結(jié)果。例如在上文示例中計(jì)算購物網(wǎng)站的最大單筆交易金額以及對(duì)應(yīng)的商品名稱時(shí),服務(wù)器端接收來自1000個(gè)客戶端的處理結(jié)果,例如接收到1000個(gè)二元組(最大單筆交易金額,商品名稱)后,從中選擇具有“最大單筆交易金額”的二元組的過程。另外,在僅從服務(wù)器端卸下了一部分作業(yè)(例如,由服務(wù)器端計(jì)算5000條日志記錄中的“最大單筆交易金額”和對(duì)應(yīng)的商品名稱,而由客戶端處理另外5000條日志記錄) 時(shí),如果任務(wù)劃分方式不變,則服務(wù)器端僅需基于來自500個(gè)客戶端的響應(yīng)(即,500個(gè)二元組),生成該作業(yè)的至少一部分(即,針對(duì)5000條日志記錄)的處理結(jié)果。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,生成作業(yè)的至少一部分處理結(jié)果還包括獲取來自一個(gè)或多個(gè)客戶端的響應(yīng)的可信度;以及根據(jù)可信度提供作業(yè)的至少一部分處理結(jié)果。上文中已經(jīng)簡述了如何確保最終結(jié)果可信度的原理,現(xiàn)在將詳述具體操作流程。由于本發(fā)明的實(shí)施方式的思想在于以協(xié)作方式利用客戶端的處理能力,然而由于客戶端通常經(jīng)由互聯(lián)網(wǎng)連接至服務(wù)器端,并且接受服務(wù)器端所分配任務(wù)的客戶端可以不斷變化。此時(shí),確保來自各客戶端的處理結(jié)果的可信度才有可能保證作業(yè)的最終處理結(jié)果的可信度??梢圆捎门袛嘁恢滦缘姆绞焦烙?jì)來自客戶端的響應(yīng)的可信度。例如,可以將一個(gè)任務(wù)以及相應(yīng)的處理數(shù)據(jù)發(fā)送至多個(gè)客戶端,以便保證至少一個(gè)客戶端可以返回處理結(jié)果;還可以綜合比較來自多個(gè)客戶端的、針對(duì)相同任務(wù)和相應(yīng)待處理數(shù)據(jù)的處理結(jié)果,例如分析多個(gè)處理結(jié)果的一致性,選用與多數(shù)處理結(jié)果相一致的處理結(jié)果;還可以向客戶端的分組分配任務(wù);向多個(gè)客戶端的分組分配相同的任務(wù),并且比較來自該多個(gè)分組的處理結(jié)果的一致性,并且選用一致性程度較高的處理結(jié)果。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,還可以采用例如多個(gè)處理結(jié)果“求平均”的方法。應(yīng)當(dāng)注意,這里的“求平均”并非數(shù)學(xué)上的簡單求均值,而是可以基于來自多個(gè)客戶端的處理結(jié)果,求解得出最可信的結(jié)果的過程。又例如,當(dāng)利用來自客戶端的響應(yīng)生成至少一部分作業(yè)的處理結(jié)果時(shí),如果最終處理結(jié)果與以往的經(jīng)驗(yàn)值不一致、與已有標(biāo)準(zhǔn)相悖、或者是有違常理,則可以丟棄來自這些客戶端的響應(yīng)。并且利用服務(wù)器端自身的處理能力、或者選擇更可信的客戶端來再次分配任務(wù)。應(yīng)當(dāng)注意,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,上述向客戶端分配任務(wù)的所有操作,還適用于向客戶端分組分配任務(wù)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,還可以將一個(gè)作業(yè)以不同的任務(wù)顆粒度劃分為不同任務(wù)集合,并且將所得的任務(wù)集合分配給不同的客戶端分組進(jìn)行處理, 并比較來自各分組的處理結(jié)果判斷可信度。在上文中,已經(jīng)參見圖2至圖4闡明了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的向服務(wù)器端的客戶端分配任務(wù)的方法?,F(xiàn)在將參考圖5A、圖5B以及圖6A至圖6D詳述根據(jù)本發(fā)明方法的、在服務(wù)器側(cè)執(zhí)行處理的細(xì)節(jié)。圖5A和圖5B分別示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的服務(wù)器側(cè)的處理的流程圖。如圖5A所示,其中圖5A示出了服務(wù)器側(cè)的負(fù)載檢查流程510。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,需要在預(yù)定的時(shí)間間隔檢查服務(wù)器側(cè)的當(dāng)前負(fù)載,以便確保服務(wù)器在負(fù)載過高時(shí)可以從中“卸下”一部分作業(yè)由客戶端執(zhí)行。如流程510所示,在步驟S512中,檢查服務(wù)器側(cè)的當(dāng)前負(fù)載;繼而在步驟S514中查詢規(guī)則。應(yīng)當(dāng)注意,此處的規(guī)則可以是預(yù)定義的規(guī)則, 例如設(shè)置了需要從服務(wù)器側(cè)卸下作業(yè)的條件,諸如,服務(wù)器端處理能力負(fù)載的閾值、優(yōu)先卸下哪些作業(yè)、不適于卸下哪些作業(yè)等。另外,該規(guī)則還可以根據(jù)服務(wù)器端完成作業(yè)的情況而動(dòng)態(tài)變化,也可以由管理員基于經(jīng)驗(yàn)進(jìn)行設(shè)置。在步驟S516中,判斷是否需要從服務(wù)器端卸下作業(yè),如果需要卸下作業(yè),則流程前進(jìn)至步驟S518,以發(fā)送卸下請求;如果不需要卸下作業(yè),則流程前進(jìn)至步驟S520。該步驟 S520對(duì)下一次檢查的間隔進(jìn)行控制,例如可以設(shè)置間隔控制定時(shí)器,在該定時(shí)器到時(shí)時(shí),再次重復(fù)操作S512以執(zhí)行下一輪的負(fù)載檢查。在執(zhí)行步驟S518后,流程轉(zhuǎn)向步驟S520以等待下一次檢查。應(yīng)當(dāng)注意,步驟S512至S520是循環(huán)執(zhí)行的過程,只要服務(wù)器端處于運(yùn)行狀態(tài),則執(zhí)行該過程,以便基于服務(wù)器端的當(dāng)前負(fù)載而判斷是否需要利用客戶端的處理能力?,F(xiàn)在參見圖5B,該圖示出了服務(wù)器側(cè)的事件處理流程530。應(yīng)當(dāng)注意,與圖5A中的負(fù)載檢查流程類似,事件處理流程530也是在服務(wù)器端運(yùn)行期間循環(huán)執(zhí)行的操作。為方便示出起見,以符號(hào)“A”作為每一輪次事件處理的開始點(diǎn),以符號(hào)“B”作為每一輪次事件處理的結(jié)束點(diǎn)。圖5B示出的5個(gè)步驟均以起點(diǎn)“A”開始并以終點(diǎn)“B”結(jié)束,并不意味著這5 個(gè)步驟在每個(gè)輪次中嚴(yán)格地并行執(zhí)行,而是可以響應(yīng)于相應(yīng)事件的發(fā)生、以不同的時(shí)間間隔執(zhí)行,并不排除兩個(gè)或者更多步驟同時(shí)執(zhí)行的情況。
      如圖5B所示,服務(wù)器端運(yùn)行過程中需要處理以下事件S532新客戶端登錄、S534 請求卸下作業(yè)、S536任務(wù)處理、S538任務(wù)結(jié)果返回以及S540超時(shí)。應(yīng)當(dāng)注意,針對(duì)一個(gè)輪次的處理而言,在從S534請求卸下作業(yè)到S538任務(wù)結(jié)果返回的過程中,步驟S534至S538 可以按照順序執(zhí)行。然而,針對(duì)不同輪次而言,步驟S534至S538的執(zhí)行不具有必然的先后關(guān)系,也不必完全并行執(zhí)行。例如,在執(zhí)行S534請求卸下作業(yè)的同時(shí),可以執(zhí)行另一作業(yè)的 S536任務(wù)處理,也可以執(zhí)行針對(duì)又一作業(yè)的S538任務(wù)結(jié)果返回。應(yīng)當(dāng)注意,圖示的S540超時(shí)步驟是針對(duì)服務(wù)器已經(jīng)向客戶端分配了任務(wù),然而在規(guī)定時(shí)間段內(nèi)沒有收到預(yù)期返回結(jié)果情況的處理。當(dāng)服務(wù)器端發(fā)現(xiàn)出現(xiàn)超時(shí)事件時(shí),處理可以包括1)更新任務(wù)完成狀態(tài)的統(tǒng)計(jì),由于出現(xiàn)超時(shí)情況的任務(wù)并未被完成,因而需要將該已超時(shí)的任務(wù)標(biāo)記為“未完成”,也即更新各任務(wù)的完成狀態(tài)。2、向任務(wù)列表中添加任務(wù),對(duì)于“未完成”的任務(wù),需要將其重新分配給客戶端處理,此時(shí)的重新分配類似于步驟 S536任務(wù)處理中的操作,將在下文詳述?;脴?biāo)記可用分組,在超時(shí)之后,執(zhí)行任務(wù)超時(shí)的分組處于空閑狀態(tài),因而可以將該分組標(biāo)記為“可用”,以便執(zhí)行其他被分配的任務(wù)。下文將參考圖6A至圖6D闡明對(duì)于其他事件的處理流程,其中符號(hào)“A”和“B”分別對(duì)應(yīng)于圖5B所示中每一輪次事件處理的開始點(diǎn)和結(jié)束點(diǎn)。如圖6A所示,該圖示出了如圖5B所示新客戶端登錄的處理流程S532的細(xì)化。在本輪次操作中,響應(yīng)于出現(xiàn)新客戶端登錄的事件,在步驟S610中,首先獲取客戶端的信息, 例如該信息可以是客戶端的屬性,諸如客戶端的處理能力、客戶端的當(dāng)前負(fù)載、客戶端的響應(yīng)時(shí)間、客戶端的受信程度、客戶端到服務(wù)器端的路由狀況、客戶端的任務(wù)完成歷史、客戶端與服務(wù)器端之間的協(xié)議等,還可以是與新登錄的客戶端相關(guān)聯(lián)的其他信息。繼而在步驟 S612中查詢規(guī)則,此處的規(guī)則是對(duì)客戶端進(jìn)行分組的規(guī)則。例如,在已經(jīng)存在針對(duì)特定類型客戶端的分組的情況下,還可以是將具備哪些屬性的客戶端添加至該分組的規(guī)則。在步驟S614中,判斷是否將該客戶端添加到客戶端分組,如果不需要將其添加至客戶端分組,則流程前進(jìn)至步驟S6M并忽略該客戶端,繼而本輪次的處理新客戶端登錄的事件結(jié)束,操作流程繼續(xù)等待其他事件。如果在步驟S614中的判斷為“是”,則流程前進(jìn)至步驟S616以檢查分組列表。接著,在操作S618中,判斷是否將客戶端添加到新的分組,如果判斷為“是”,則前進(jìn)至步驟以創(chuàng)建新的分組;否則,流程前進(jìn)至步驟S620,并將客戶端添加至現(xiàn)有的客戶端分組。繼而,在步驟S622中,更新客戶端分組列表,并且本輪次的事件處理結(jié)束。應(yīng)當(dāng)注意,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,上述創(chuàng)建新分組以及向現(xiàn)有的分組添加客戶端是基于步驟S610以及S612中獲取的客戶端信息和規(guī)則進(jìn)行的。如圖6B所示,該圖示出了如圖5B所示請求卸下作業(yè)的處理流程S534的細(xì)化。在本輪次操作中,響應(yīng)于出現(xiàn)請求卸下作業(yè)的事件,在步驟S630中,查詢規(guī)則,該規(guī)則規(guī)定了可以卸下哪種類型的作業(yè)、不能卸下哪種類型的作業(yè)、以及在同時(shí)存在多個(gè)可卸下的作業(yè)時(shí)的優(yōu)先順序等。繼而,在步驟S632中檢查作業(yè)的完成狀況,并在步驟S634中判斷是否需要調(diào)整任務(wù)的顆粒度,如果不需要調(diào)整,則操作前進(jìn)至步驟S640以將任務(wù)添加至任務(wù)表; 如果需要調(diào)整,則操作前進(jìn)至步驟S636以重新設(shè)置任務(wù)的顆粒度。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,可以基于客戶端先前執(zhí)行任務(wù)的經(jīng)驗(yàn)而動(dòng)態(tài)設(shè)置任務(wù)的顆粒度。繼而,在步驟S640 中,將任務(wù)添加至任務(wù)表,以便由如圖5B所示的任務(wù)處理過程S 536進(jìn)行調(diào)度。此時(shí),針對(duì)請求卸下作業(yè)事件的處理結(jié)束,進(jìn)入等待其他事件的狀態(tài)。
      如圖6C所示,該圖示出了如圖5B所示任務(wù)處理的處理流程S536的細(xì)化。應(yīng)當(dāng)注意,針對(duì)任務(wù)處理事件的操作是本發(fā)明的實(shí)施方式的一個(gè)重要操作流程,流程控制服務(wù)器端以協(xié)作方式利用客戶端的處理能力的主要過程。在本輪次操作中,響應(yīng)于出現(xiàn)任務(wù)處理的事件,在步驟S650中,檢查客戶端分組的表,并且在步驟S652中判斷是否使用新的客戶端分組,如果判斷為“是”,則操作流程前進(jìn)至步驟S6M以便向分組中的客戶端分配任務(wù);如果步驟S652中的判斷為“否”,則流程前進(jìn)至步驟S662以判斷是否具有可用分組。如果步驟S662中判斷得出沒有可用分組,則流程前進(jìn)至步驟S664以記錄日志,并且向服務(wù)器端的事件調(diào)度器報(bào)告當(dāng)前沒有可用分組。 在步驟S6M之后,在步驟S656中更新記錄,在步驟S658中標(biāo)記客戶端分組被占用,并且在步驟S660中,啟動(dòng)針對(duì)正在被處理的任務(wù)的定時(shí)器。此時(shí),針對(duì)任務(wù)處理事件的處理結(jié)束。 應(yīng)當(dāng)注意,步驟S660中的定時(shí)器,即在圖6D的步驟S680中所述的定時(shí)器。圖6C任務(wù)處理流程的步驟S660作為定時(shí)器啟動(dòng)的起點(diǎn),而圖6D任務(wù)結(jié)果返回流程的步驟S680作為定時(shí)器停止的終點(diǎn)。盡管一始一終兩個(gè)步驟在不同的事件處理流程中執(zhí)行,然而對(duì)于同一個(gè)任務(wù)而言,這兩個(gè)操作是針對(duì)相同定時(shí)器的設(shè)置,以便指示客戶端分組在指定時(shí)間內(nèi)是否完成了對(duì)任務(wù)的處理并向服務(wù)器端返回結(jié)果,并且在未能在指定時(shí)間內(nèi)完成任務(wù)時(shí),經(jīng)由如圖5B中的事件S540所示,調(diào)取相應(yīng)的超時(shí)操作。如圖6D所示,該圖示出了如圖5B所示任務(wù)結(jié)果返回的處理流程S538的細(xì)化。在本輪次操作中,響應(yīng)于出現(xiàn)新客戶端登錄的事件,在步驟S670中,檢查任務(wù)表,在該任務(wù)表中可以保持從作業(yè)劃分而來的任務(wù)的信息,例如,任務(wù)與作業(yè)的對(duì)應(yīng)關(guān)系、任務(wù)的當(dāng)前狀態(tài) (諸如,尚未分配、已分配、已完成)、任務(wù)客戶端分組以及該客戶端分組中的客戶端的對(duì)應(yīng)關(guān)系等。在步驟S672中,查詢返回任務(wù)結(jié)果相關(guān)的規(guī)則,并在步驟S674中判斷結(jié)果是否足夠可信,例如可以采用上文所述的一致性標(biāo)準(zhǔn)的方法判斷結(jié)果的可信度,或者還可以采用其他方法。當(dāng)步驟S674的判斷結(jié)果為“否”(也即不可信)時(shí),則流程前進(jìn)至步驟S684并保存結(jié)果,接著在步驟S686中更新結(jié)果的數(shù)量,繼而針對(duì)該事件的處理結(jié)束;如果步驟S674的判斷結(jié)果為“是”,也即可信時(shí),則流程前進(jìn)至步驟S676以標(biāo)記任務(wù)完成,在步驟S678中標(biāo)記客戶端分組可用,繼而在步驟S680中停止相關(guān)定時(shí)器。應(yīng)當(dāng)注意,這里的定時(shí)器用于確定任務(wù)執(zhí)行是否超時(shí),當(dāng)定時(shí)器超時(shí)并且還沒有計(jì)算得出處理結(jié)果時(shí),產(chǎn)生如圖5B中S540 所示的超時(shí)事件。步驟S680之后,在步驟S682中更新任務(wù)完成狀態(tài),此時(shí)針對(duì)任務(wù)結(jié)果返回事件的處理結(jié)束,進(jìn)入等待其他事件的狀態(tài)?,F(xiàn)在參見圖7,該圖示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的設(shè)備的框圖700。如圖7左側(cè)虛線框中所示,用于擴(kuò)展服務(wù)器端處理能力的設(shè)備包括確定裝置710,用于確定需要從服務(wù)器端卸下的作業(yè);劃分裝置720,將作業(yè)劃分為一個(gè)或多個(gè)任務(wù);分配裝置740,用于響應(yīng)于客戶端發(fā)出的http請求,向一個(gè)或多個(gè)客戶端分配一個(gè)或多個(gè)任務(wù);以及接收裝置750,用于從一個(gè)或多個(gè)客戶端發(fā)送的http 請求中,接收一個(gè)或多個(gè)客戶端對(duì)一個(gè)或多個(gè)任務(wù)的響應(yīng)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式的設(shè)備,還可以包括選擇裝置730,用于選擇服務(wù)器端的一個(gè)或多個(gè)客戶端用于執(zhí)行一個(gè)或者多個(gè)任務(wù)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式的設(shè)備,還可以包括規(guī)則庫760用于保存各種規(guī)則,這些規(guī)則涉及確定是否需要從服務(wù)器端卸下作業(yè)、將作業(yè)劃分成任務(wù)、向客戶端分配任務(wù)、 基于來自客戶端的響應(yīng)生成作業(yè)的至少一部分處理結(jié)果、以及將客戶端劃分為分組。應(yīng)當(dāng)注意,盡管圖7中示出為規(guī)則庫760位于服務(wù)器側(cè),在實(shí)踐中該規(guī)則庫760可以位于服務(wù)器側(cè)以外的任何數(shù)據(jù)存儲(chǔ)裝置中,只要根據(jù)本發(fā)明的設(shè)備可以訪問該規(guī)則庫760并獲取規(guī)則即可。如圖7中虛線右側(cè)所示,示出了服務(wù)器端可以用以分擔(dān)自身負(fù)載所使用的客戶端分組及相應(yīng)的客戶端。例如,客戶端分組1可以包括M個(gè)客戶端,而客戶端分組K可以包括 N個(gè)客戶端。當(dāng)圖7所示的設(shè)備運(yùn)行時(shí),針對(duì)確定裝置710所確定的需要卸下的作業(yè),劃分裝置 720將其劃分為一個(gè)或者多個(gè)任務(wù)。此后分配裝置740可以將劃分裝置720劃分得出的任務(wù)分別分配給虛線右側(cè)所示的相應(yīng)客戶端分組,由接收裝置750接收各個(gè)客戶端分組生成的響應(yīng),并且還可以生成針對(duì)作業(yè)的至少一部分處理結(jié)果。在操作過程中,各個(gè)裝置還從可以規(guī)則庫760中讀取規(guī)則,以用于控制自身操作。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中確定裝置710包括判斷裝置,用于判斷服務(wù)器端的當(dāng)前負(fù)載水平;以及指定裝置,用于響應(yīng)于確定當(dāng)前負(fù)載水平即將或者已經(jīng)超過閾值負(fù)載水,指定從服務(wù)器端卸下的作業(yè)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中分配裝置740包括分組裝置,用于基于一個(gè)或多個(gè)客戶端的屬性,將一個(gè)或多個(gè)客戶端進(jìn)行分組;以及分派裝置,用于以組為單位向一個(gè)或多個(gè)客戶端分派與組相匹配的任務(wù)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中客戶端的屬性包括以下中的一項(xiàng)或者多項(xiàng)客戶端的處理能力、客戶端的當(dāng)前負(fù)載、客戶端的響應(yīng)時(shí)間、客戶端的受信程度、客戶端到服務(wù)器端的路由狀況、客戶端的任務(wù)完成歷史、客戶端與服務(wù)器端之間的協(xié)議。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中分配裝置740包括發(fā)送裝置,用于響應(yīng)于一個(gè)或多個(gè)客戶端登錄到服務(wù)器端,向一個(gè)或多個(gè)客戶端發(fā)送與一個(gè)或者多個(gè)任務(wù)相對(duì)應(yīng)的任務(wù)描述以及待處理的數(shù)據(jù)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中任務(wù)描述包括以下中的一項(xiàng)或者多項(xiàng)輸入數(shù)據(jù)描述、輸出數(shù)據(jù)描述以及處理算法或其描述。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中劃分裝置720是基于預(yù)定規(guī)則操作的,預(yù)定規(guī)則涉及以下至少一項(xiàng)作業(yè)的計(jì)算量、作業(yè)的優(yōu)先級(jí)、作業(yè)的保密級(jí)別、任務(wù)的顆粒度。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中任務(wù)的顆粒度是基于客戶端先前執(zhí)行任務(wù)的經(jīng)驗(yàn)而動(dòng)態(tài)設(shè)置的。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,用于擴(kuò)展服務(wù)器端處理能力的設(shè)備還包括生成裝置,用于基于一個(gè)或多個(gè)客戶端對(duì)一個(gè)或多個(gè)任務(wù)的響應(yīng),生成作業(yè)的至少一部分處理結(jié)^ ο根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中生成裝置還包括獲取裝置,用于獲取來自一個(gè)或多個(gè)客戶端的響應(yīng)的可信度;以及提供裝置,用于根據(jù)可信度提供作業(yè)的至少一部分處
      理結(jié)果。應(yīng)當(dāng)注意,盡管在附圖中并未逐一詳細(xì)示出用于擴(kuò)展服務(wù)器端處理能力的設(shè)備中的各裝置,本領(lǐng)域人員可以基于說明書的公開而實(shí)現(xiàn)上述各裝置。此外,圖7中所示的各裝
      14置以及在圖7中并未逐一繪出的各裝置可以位于服務(wù)器側(cè)的一個(gè)或者多個(gè)服務(wù)器中,或者還可以位于一個(gè)或者多個(gè)其他的專用設(shè)備中。根據(jù)本發(fā)明的實(shí)施方式,并不限制用于擴(kuò)展服務(wù)器端處理能力的設(shè)備的物理位置,而是該設(shè)備包括的各個(gè)裝置可以以集中式或者分布式方式位于任何適當(dāng)?shù)奈锢碓O(shè)備中,只要這些裝置在整體上能夠?qū)崿F(xiàn)本說明書中所述功能即可。在上文中,參考附圖1至圖7闡述了根據(jù)本發(fā)明實(shí)施方式的對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的方法和裝置。然而應(yīng)當(dāng)注意,本說明書中以購物網(wǎng)站為示例而列舉的例子,僅僅是示意性示例,并且在示例中所列出的網(wǎng)站記錄日志的方式也僅僅是示意性目的,其目的僅在于通過示意性示例說明本發(fā)明的實(shí)施方式的工作原理。根據(jù)服務(wù)器端和客戶端設(shè)置的不同,在不脫離本發(fā)明原理的情況下,可以采用任何其他方式實(shí)現(xiàn)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,在對(duì)服務(wù)器端的處理能力進(jìn)行擴(kuò)展或分配的方法中可以采用MapReduce 架構(gòu)。本發(fā)明可以采取硬件實(shí)施方式、軟件實(shí)施方式或既包含硬件組件又包含軟件組件的實(shí)施方式的形式。在優(yōu)選實(shí)施方式中,本發(fā)明實(shí)現(xiàn)為軟件,其包括但不限于固件、駐留軟件、微代碼等。而且,本發(fā)明還可以采取可從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)訪問的計(jì)算機(jī)程序產(chǎn)品的形式,這些介質(zhì)提供程序代碼以供計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用或與其結(jié)合使用。 出于描述目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀機(jī)制可以是任何有形的裝置,其可以包含、存儲(chǔ)、 通信、傳播或傳輸程序以由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與其結(jié)合使用。介質(zhì)可以是電的、磁的、光的、電磁的、紅外線的、或半導(dǎo)體的系統(tǒng)(或裝置或器件)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)磁盤、隨機(jī)訪問存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。目前光盤的例子包括緊湊盤-只讀存儲(chǔ)器(CD-ROM)、壓縮盤-讀/寫(CD-R/W)和DVD。適合與存儲(chǔ)/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個(gè)處理器,其直接地或通過系統(tǒng)總線間接地耦合到存儲(chǔ)器元件。存儲(chǔ)器元件可以包括在程序代碼的實(shí)際執(zhí)行期間所利用的本地存儲(chǔ)器、大容量存儲(chǔ)器、以及提供至少一部分程序代碼的臨時(shí)存儲(chǔ)以便減少執(zhí)行期間從大容量存儲(chǔ)器必須取回代碼的次數(shù)的高速緩沖存儲(chǔ)器。輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指點(diǎn)設(shè)備等等)可以直接地或通過中間I/O控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器也可以耦合到系統(tǒng),以使得數(shù)據(jù)處理系統(tǒng)能夠通過中間的私有或公共網(wǎng)絡(luò)而耦合到其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器以及以太網(wǎng)卡僅僅是當(dāng)前可用的網(wǎng)絡(luò)適配器類型的幾個(gè)例子。從上述描述應(yīng)當(dāng)理解,在不脫離本發(fā)明真實(shí)精神的情況下,可以對(duì)本發(fā)明各實(shí)施方式進(jìn)行修改和變更。本說明書中的描述僅僅是用于說明性的,而不應(yīng)被認(rèn)為是限制性的。 本發(fā)明的范圍僅受所附權(quán)利要求書的限制。
      權(quán)利要求
      1.一種用于擴(kuò)展服務(wù)器端處理能力的方法,包括 確定需要從所述服務(wù)器端卸下的作業(yè);將所述作業(yè)劃分為一個(gè)或多個(gè)任務(wù);響應(yīng)于一個(gè)或多個(gè)客戶端發(fā)出的http請求,向所述一個(gè)或多個(gè)客戶端分配所述一個(gè)或多個(gè)任務(wù);以及從所述一個(gè)或多個(gè)客戶端發(fā)送的http請求中,接收所述一個(gè)或多個(gè)客戶端對(duì)所述一個(gè)或多個(gè)任務(wù)的響應(yīng)。
      2.根據(jù)權(quán)利要求1所述的方法,還包括選擇所述一個(gè)或多個(gè)客戶端用于執(zhí)行所述一個(gè)或者多個(gè)任務(wù)。
      3.根據(jù)權(quán)利要求1所述的方法,其中所述確定需要從所述服務(wù)器端卸下的作業(yè)包括 判斷所述服務(wù)器端的當(dāng)前負(fù)載水平;以及響應(yīng)于確定所述當(dāng)前負(fù)載水平即將或者已經(jīng)超過閾值負(fù)載水平,指定從所述服務(wù)器端卸下的作業(yè)。
      4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中向所述一個(gè)或多個(gè)客戶端分配所述一個(gè)或多個(gè)任務(wù)包括基于所述一個(gè)或多個(gè)客戶端的屬性,將所述一個(gè)或多個(gè)客戶端進(jìn)行分組;以及以組為單位向所述一個(gè)或多個(gè)客戶端分派與所述組相匹配的任務(wù)。
      5.根據(jù)權(quán)利要求4所述的方法,其中所述客戶端的屬性包括以下中的一項(xiàng)或者多項(xiàng) 所述客戶端的處理能力、所述客戶端的當(dāng)前負(fù)載、所述客戶端的響應(yīng)時(shí)間、所述客戶端的受信程度、所述客戶端到所述服務(wù)器端的路由狀況、所述客戶端的任務(wù)完成歷史、客戶端與服務(wù)器端之間的協(xié)議。
      6.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中向所述一個(gè)或多個(gè)客戶端分配所述一個(gè)或多個(gè)任務(wù)包括響應(yīng)于所述一個(gè)或多個(gè)客戶端登錄到所述服務(wù)器端,向所述一個(gè)或多個(gè)客戶端發(fā)送與所述一個(gè)或者多個(gè)任務(wù)相對(duì)應(yīng)的任務(wù)描述以及待處理的數(shù)據(jù)。
      7.根據(jù)權(quán)利要求6所述的方法,其中所述任務(wù)描述至少包括以下中的一項(xiàng)或者多項(xiàng) 輸入數(shù)據(jù)描述、輸出數(shù)據(jù)描述以及處理算法或其描述。
      8.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中將所述作業(yè)劃分為一個(gè)或多個(gè)任務(wù)是基于預(yù)定規(guī)則進(jìn)行的,所述預(yù)定規(guī)則涉及以下至少一項(xiàng)所述作業(yè)的計(jì)算量、所述作業(yè)的優(yōu)先級(jí)、所述作業(yè)的保密級(jí)別、任務(wù)的顆粒度。
      9.根據(jù)權(quán)利要求8所述的方法,其中所述任務(wù)的顆粒度是基于客戶端先前執(zhí)行任務(wù)的經(jīng)驗(yàn)而動(dòng)態(tài)設(shè)置的。
      10.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,還包括基于所述一個(gè)或多個(gè)客戶端對(duì)所述一個(gè)或多個(gè)任務(wù)的響應(yīng),生成所述作業(yè)的至少一部分處理結(jié)果。
      11.根據(jù)權(quán)利要求10所述的方法,其中所述生成所述作業(yè)的至少一部分處理結(jié)果還包括獲取來自所述一個(gè)或多個(gè)客戶端的響應(yīng)的可信度;以及根據(jù)所述可信度提供所述作業(yè)的至少一部分處理結(jié)果。
      12.一種用于擴(kuò)展服務(wù)器端處理能力的設(shè)備,包括確定裝置,用于確定需要從所述服務(wù)器端卸下的作業(yè);劃分裝置,用于將所述作業(yè)劃分為一個(gè)或多個(gè)任務(wù);分配裝置,用于響應(yīng)于一個(gè)或多個(gè)客戶端發(fā)出的http請求,向所述一個(gè)或多個(gè)客戶端分配所述一個(gè)或多個(gè)任務(wù);以及接收裝置,用于從所述一個(gè)或多個(gè)客戶端發(fā)送的http請求中,接收所述一個(gè)或多個(gè)客戶端對(duì)所述一個(gè)或多個(gè)任務(wù)的響應(yīng)。
      13.根據(jù)權(quán)利要求12所述的設(shè)備,還包括選擇裝置,用于選擇所述一個(gè)或多個(gè)客戶端用于執(zhí)行所述一個(gè)或者多個(gè)任務(wù)。
      14.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述確定裝置包括判斷裝置,用于判斷所述服務(wù)器端的當(dāng)前負(fù)載水平;以及指定裝置,用于響應(yīng)于確定所述當(dāng)前負(fù)載水平即將或者已經(jīng)超過閾值負(fù)載水平,指定從所述服務(wù)器端卸下的作業(yè)。
      15.根據(jù)權(quán)利要求12至14中任一項(xiàng)所述的設(shè)備,其中所述分配裝置包括分組裝置,用于基于所述一個(gè)或多個(gè)客戶端的屬性,將所述一個(gè)或多個(gè)客戶端進(jìn)行分組;以及分派裝置,用于以組為單位向所述一個(gè)或多個(gè)客戶端分派與所述組相匹配的任務(wù)。
      16.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述客戶端的屬性包括以下中的一項(xiàng)或者多項(xiàng)所述客戶端的處理能力、所述客戶端的當(dāng)前負(fù)載、所述客戶端的響應(yīng)時(shí)間、所述客戶端的受信程度、所述客戶端到所述服務(wù)器端的路由狀況、所述客戶端的任務(wù)完成歷史、客戶端與服務(wù)器端之間的協(xié)議。
      17.根據(jù)權(quán)利要求12至14中任一項(xiàng)所述的設(shè)備,其中所述分配裝置包括發(fā)送裝置,用于響應(yīng)于所述一個(gè)或多個(gè)客戶端登錄到所述服務(wù)器端,向所述一個(gè)或多個(gè)客戶端發(fā)送與所述一個(gè)或者多個(gè)任務(wù)相對(duì)應(yīng)的任務(wù)描述以及待處理的數(shù)據(jù)。
      18.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述任務(wù)描述包括以下中的一項(xiàng)或者多項(xiàng)輸入數(shù)據(jù)描述、輸出數(shù)據(jù)描述以及處理算法或其描述。
      19.根據(jù)權(quán)利要求12至14中任一項(xiàng)所述的設(shè)備,其中所述劃分裝置是基于預(yù)定規(guī)則操作的,所述預(yù)定規(guī)則涉及以下至少一項(xiàng)所述作業(yè)的計(jì)算量、所述作業(yè)的優(yōu)先級(jí)、所述作業(yè)的保密級(jí)別、任務(wù)的顆粒度。
      20.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述任務(wù)的顆粒度是基于客戶端先前執(zhí)行任務(wù)的經(jīng)驗(yàn)而動(dòng)態(tài)設(shè)置的。
      21.根據(jù)權(quán)利要求12至14中任一項(xiàng)所述的設(shè)備,還包括生成裝置,用于基于所述一個(gè)或多個(gè)客戶端對(duì)所述一個(gè)或多個(gè)任務(wù)的響應(yīng),生成所述作業(yè)的至少一部分處理結(jié)果。
      22.根據(jù)權(quán)利要求21所述的設(shè)備,其中所述生成裝置還包括獲取裝置,用于獲取來自所述一個(gè)或多個(gè)客戶端的響應(yīng)的可信度;以及提供裝置,用于根據(jù)所述可信度提供所述作業(yè)的至少一部分處理結(jié)果。
      全文摘要
      本發(fā)明的實(shí)施方式涉及擴(kuò)展服務(wù)器端處理能力的方法和裝置。在一實(shí)施方式中,提供了一種用于擴(kuò)展服務(wù)器端處理能力的方法,包括確定需要從服務(wù)器端卸下的作業(yè);將作業(yè)劃分為一個(gè)或多個(gè)任務(wù);響應(yīng)于一個(gè)或多個(gè)客戶端發(fā)出的http請求,向一個(gè)或多個(gè)客戶端分配一個(gè)或多個(gè)任務(wù);以及從一個(gè)或多個(gè)客戶端發(fā)送的http請求中,接收一個(gè)或多個(gè)客戶端對(duì)一個(gè)或多個(gè)任務(wù)的響應(yīng)。在一實(shí)施方式中,提供了一種用于擴(kuò)展服務(wù)器端處理能力的裝置。
      文檔編號(hào)H04L29/08GK102480512SQ20101057702
      公開日2012年5月30日 申請日期2010年11月29日 優(yōu)先權(quán)日2010年11月29日
      發(fā)明者李欣慧, 李立, 薛偉, 趙邑新 申請人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1