專利名稱:跨越多層網(wǎng)絡(luò)中的多個節(jié)點(diǎn)傳輸請求優(yōu)先級的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及一種改進(jìn)的數(shù)據(jù)處理系統(tǒng),具體涉及一種用于在多層環(huán)境中進(jìn)行優(yōu)先級區(qū)分(prioritization)的機(jī)制。更具體地說,本發(fā)明提供一種用于在多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中跨越多個相關(guān)節(jié)點(diǎn)即處理給定事務(wù)、作業(yè)等所需的多個節(jié)點(diǎn)傳輸請求優(yōu)先級的機(jī)制。
背景技術(shù):
用于對網(wǎng)絡(luò)業(yè)務(wù)(traffic)進(jìn)行排隊和過濾的各種連網(wǎng)數(shù)據(jù)處理系統(tǒng)業(yè)務(wù)控制方案用于提供服務(wù)級別協(xié)定(SLA)業(yè)務(wù)優(yōu)先級區(qū)分。例如,Linux網(wǎng)絡(luò)棧具有用于業(yè)務(wù)控制的基礎(chǔ)結(jié)構(gòu),其具有排隊規(guī)程(queuingdiscipline,qdisc)和過濾器。qdisc的分級結(jié)構(gòu)可以與類分級結(jié)構(gòu)聯(lián)合構(gòu)造,以支持服務(wù)質(zhì)量(QoS)特性。業(yè)務(wù)可以通過采用與分組首標(biāo)域相匹配的過濾器而被傳遞(route)到不同的類。然而,這僅可用于網(wǎng)絡(luò)協(xié)議棧的傳送側(cè)。
對于接收側(cè),即客戶端-服務(wù)器網(wǎng)絡(luò)中的服務(wù)器側(cè)或者多層環(huán)境中的任一個服務(wù)器系統(tǒng)的接收側(cè),基于連接而提供優(yōu)先級區(qū)分。例如,當(dāng)建立進(jìn)入連接時,可以基于一個或多個優(yōu)先級過濾器而對該連接進(jìn)行優(yōu)先級區(qū)分,以將該連接排入分配給不同優(yōu)先級類的多個隊列之一?;诖?,建立優(yōu)先級連接。該優(yōu)先級分配被稱作連接排隊,并且被實(shí)現(xiàn)為TCP/IP協(xié)議中的三階段連接處理的一部分。在這樣的系統(tǒng)中,僅在連接的時候強(qiáng)制(enforce)客戶端優(yōu)先級區(qū)分。結(jié)果,在處理較低優(yōu)先級客戶端請求之前啟動來自較高優(yōu)先級客戶端的請求的處理。然而,由于不是在數(shù)據(jù)幀級強(qiáng)制優(yōu)先級,因此這并不保證在來自較低優(yōu)先級客戶端的數(shù)據(jù)之前執(zhí)行來自較高優(yōu)先級客戶端的數(shù)據(jù)的處理。
將有利的是,提供一種用于幀級優(yōu)先級區(qū)分的機(jī)制,其用于在服務(wù)器處提供入站(inbound)業(yè)務(wù)的SLA優(yōu)先級區(qū)分排隊,從而向具有不同優(yōu)先級的客戶端不僅提供連接時間優(yōu)先級,而且提供數(shù)據(jù)處理優(yōu)先級。還將有利的是,提供一種用于在多處理器環(huán)境中提供幀級優(yōu)先級區(qū)分的機(jī)制,其用于基于每個處理器而對進(jìn)入業(yè)務(wù)進(jìn)行優(yōu)先級排隊。
此外,事務(wù)的處理可能跨越多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多個系統(tǒng)。例如,客戶端可以啟動與萬維網(wǎng)服務(wù)器的事務(wù),而萬維網(wǎng)服務(wù)器可能需要訪問后端數(shù)據(jù)庫服務(wù)器,將請求傳遞到另一個萬維網(wǎng)服務(wù)器,或者訪問萬維網(wǎng)應(yīng)用服務(wù)器,以便完成事務(wù)請求。因此,反過來,第一層萬維網(wǎng)服務(wù)器可能需要與萬維網(wǎng)應(yīng)用服務(wù)器的連接,這最終可能以連接到數(shù)據(jù)庫服務(wù)器以完成處理而告終。不存在用于跨越處理事務(wù)所涉及的多個系統(tǒng)傳輸網(wǎng)絡(luò)優(yōu)先級以便進(jìn)行網(wǎng)絡(luò)層處理的機(jī)制。
將有利的是,提供一種用來在數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中跨越處理單個事務(wù)或作業(yè)所涉及的多個節(jié)點(diǎn)傳輸優(yōu)先級類的機(jī)制。還將有利的是,提供一種用來在多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中傳輸包括連接級和入站數(shù)據(jù)幀級的優(yōu)先級的優(yōu)先級類的機(jī)制。
發(fā)明內(nèi)容
本發(fā)明提供了一種方法、計算機(jī)程序產(chǎn)品和數(shù)據(jù)處理系統(tǒng),其用于在包括網(wǎng)絡(luò)協(xié)議棧的入站數(shù)據(jù)幀處理的幀級強(qiáng)制優(yōu)先級級別。在對稱多處理器系統(tǒng)中和在非均勻(non-uniform)存儲器訪問系統(tǒng)中,通過在單個或多個節(jié)點(diǎn)中每處理器使用多個數(shù)據(jù)隊列,強(qiáng)制優(yōu)先級級別。另外,本發(fā)明提供了一種方法、計算機(jī)程序產(chǎn)品和數(shù)據(jù)處理系統(tǒng),其用于在多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中傳輸要在網(wǎng)絡(luò)層強(qiáng)制的請求優(yōu)先級區(qū)分。第一數(shù)據(jù)處理系統(tǒng)接收事務(wù)請求,并且識別該事務(wù)請求的優(yōu)先級。然后,該數(shù)據(jù)處理系統(tǒng)將該事務(wù)請求傳達(dá)到第二數(shù)據(jù)處理系統(tǒng),并且第二數(shù)據(jù)處理系統(tǒng)根據(jù)該優(yōu)先級處理該事務(wù)請求。
被認(rèn)為是本發(fā)明特征的新穎特性在所附權(quán)利要求中加以闡述。然而,通過參考下面結(jié)合附圖閱讀的對說明性實(shí)施例的詳細(xì)描述,將最佳地理解本發(fā)明本身、以及其優(yōu)選使用方式及其另外的目的和優(yōu)點(diǎn),其中圖1示出了可以實(shí)現(xiàn)本發(fā)明優(yōu)選實(shí)施例的多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)的圖示;圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的可以被實(shí)現(xiàn)為所示服務(wù)器的數(shù)據(jù)處理系統(tǒng)的方框圖;圖3是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的可以具有被優(yōu)先級區(qū)分的數(shù)據(jù)的客戶端數(shù)據(jù)處理系統(tǒng)的方框圖;圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于在網(wǎng)絡(luò)級強(qiáng)制數(shù)據(jù)優(yōu)先級區(qū)分的服務(wù)器配置的示意圖;圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于在多層網(wǎng)絡(luò)中的多處理器服務(wù)器上進(jìn)行服務(wù)級別協(xié)定優(yōu)先級區(qū)分的數(shù)據(jù)隊列配置圖;圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的在服務(wù)器上運(yùn)行的數(shù)據(jù)排隊例程的流程圖;圖7A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的實(shí)現(xiàn)了請求優(yōu)先級傳輸?shù)目蛻舳?服務(wù)器網(wǎng)絡(luò)系統(tǒng)的示意圖;圖7B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的幫助跨越數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多個節(jié)點(diǎn)傳輸請求優(yōu)先級類的優(yōu)先級過濾器的示意圖;圖7C是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的將客戶端連接映射到后端連接以便跨越多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多個節(jié)點(diǎn)傳輸優(yōu)先級類的優(yōu)先級過濾器的示意圖;以及圖8是根據(jù)本發(fā)明優(yōu)選實(shí)施例的由優(yōu)先級過濾器執(zhí)行以便跨越數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多個節(jié)點(diǎn)傳輸請求優(yōu)先級的運(yùn)行時處理的流程圖。
具體實(shí)施例方式
現(xiàn)在參照附圖,圖1示出了可以實(shí)現(xiàn)本發(fā)明的多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)的圖示。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是可以實(shí)現(xiàn)本發(fā)明的計算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)102,其是用來在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各個設(shè)備和計算機(jī)之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)102可以包括諸如有線、無線通信鏈路或光纖纜線的連接。在所示例子中,萬維網(wǎng)服務(wù)器104隨同存儲單元107一起連接到網(wǎng)絡(luò)102。另外,客戶端108、110和112連接到網(wǎng)絡(luò)102。這些客戶端108、110和112可以例如是個人計算機(jī)或網(wǎng)絡(luò)計算機(jī)。在所示例子中,萬維網(wǎng)服務(wù)器104可以被實(shí)現(xiàn)為HTTP服務(wù)器,其響應(yīng)于從例如在客戶端108-112上運(yùn)行的瀏覽器接收到HTTP請求,向客戶端108-112發(fā)送網(wǎng)頁。另外,萬維網(wǎng)服務(wù)器104可以向客戶端108-112提供除了HTTP數(shù)據(jù)之外的其它數(shù)據(jù),例如應(yīng)用程序??蛻舳?08、110和112是萬維網(wǎng)服務(wù)器104的客戶端。萬維網(wǎng)服務(wù)器104與萬維網(wǎng)應(yīng)用服務(wù)器105接口和通信。萬維網(wǎng)應(yīng)用服務(wù)器105處理發(fā)出由客戶端108-112發(fā)出的請求的瀏覽器與由數(shù)據(jù)倉庫(data store)106維護(hù)的后端應(yīng)用或數(shù)據(jù)庫之間的應(yīng)用操作,其中數(shù)據(jù)倉庫106例如為后端數(shù)據(jù)庫系統(tǒng),其與萬維網(wǎng)應(yīng)用服務(wù)器105接口。
網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100可以包括另外的服務(wù)器、客戶端、以及未示出的其它設(shè)備。在所示例子中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是因特網(wǎng),其中網(wǎng)絡(luò)102表示使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)協(xié)議集相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的全球集合。因特網(wǎng)的心臟處是主節(jié)點(diǎn)或主機(jī)計算機(jī)之間的高速數(shù)據(jù)通信線的中樞,其由成千上萬的傳遞數(shù)據(jù)和消息的商業(yè)、政府、教育和其它計算機(jī)系統(tǒng)組成。當(dāng)然,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100也可以被實(shí)現(xiàn)為多種不同類型的網(wǎng)絡(luò),例如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。圖1旨在作為示例,而不作為對本發(fā)明的架構(gòu)限制。
參照圖2,示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的可以被實(shí)現(xiàn)為服務(wù)器如圖1中的萬維網(wǎng)服務(wù)器104或萬維網(wǎng)應(yīng)用服務(wù)器105的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200可以是對稱多處理器(SMP)系統(tǒng),其包括連接到系統(tǒng)總線206的多個處理器202和204,不過,可以適宜地將其替換為其它多處理器配置。另外,連接到系統(tǒng)總線206的是存儲器控制器/高速緩存208,其向本地存儲器209提供接口。I/O總線橋210連接到系統(tǒng)總線206,并且向I/O總線212提供接口。存儲器控制器/高速緩存208和I/O總線橋210可以如圖所示集成在一起。
連接到I/O總線212的外圍組件互連(PCI)總線橋214向PCI本地總線216提供接口。多個調(diào)制解調(diào)器可以連接到PCI本地總線216。典型的PCI總線實(shí)現(xiàn)將支持四個PCI擴(kuò)展槽或內(nèi)插連接器。與圖1中的客戶端108-112的通信鏈路可以通過調(diào)制解調(diào)器218和網(wǎng)絡(luò)適配器220來提供,其中調(diào)制解調(diào)器218和網(wǎng)絡(luò)適配器220通過內(nèi)插連接器連接到PCI本地總線216。
另外的PCI總線橋222和224為另外的PCI本地總線226和228提供接口,由此可以支持另外的調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。以這種方式,數(shù)據(jù)處理系統(tǒng)200允許連接到多個網(wǎng)絡(luò)計算機(jī)。存儲器映射圖形適配器230和硬盤232也可以如圖所示直接或間接地連接到I/O總線212。
本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,圖2所示的硬件可以變化。例如,作為對所示硬件的增添或替代,也可以使用其它外圍設(shè)備如光盤驅(qū)動器等。所示例子不旨在暗含對本發(fā)明的架構(gòu)限制。
圖2所示的數(shù)據(jù)處理系統(tǒng)可以例如是運(yùn)行高級交互執(zhí)行(AIX)操作系統(tǒng)或LINUX操作系統(tǒng)的IBM eServer pSeries系統(tǒng),其是位于紐約,阿芒克的國際商業(yè)機(jī)器公司的產(chǎn)品。
現(xiàn)在參照圖3,示出了可以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)300是客戶端計算機(jī)如圖1所示的客戶端108的例子。數(shù)據(jù)處理系統(tǒng)300采用外圍組件互連(PCI)本地總線架構(gòu)。雖然所示例子采用PCI總線,但是也可以使用其它總線架構(gòu)如加速圖形端口(AGP)和工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)。處理器302和主存儲器304通過PCI橋308連接到PCI本地總線306。PCI橋308還可以包括用于處理器302的集成存儲器控制器和高速緩沖存儲器。另外的與PCI本地總線306的連接可以通過直接組件互連或通過內(nèi)插板來進(jìn)行。在所示例子中,局域網(wǎng)(LAN)適配器310、SCSI主機(jī)總線適配器312、以及擴(kuò)展總線接口314通過直接組件互連而連接到PCI本地總線306。相反,視頻適配器316、圖形適配器318和音頻/視頻適配器319通過插入到擴(kuò)展槽中的內(nèi)插板而連接到PCI本地總線306。擴(kuò)展總線接口314為鍵盤和鼠標(biāo)適配器320、調(diào)制解調(diào)器322和另外的存儲器324提供連接。小型計算機(jī)系統(tǒng)接口(SCSI)主機(jī)總線適配器312為硬盤驅(qū)動器326、磁帶驅(qū)動器328和CD-ROM驅(qū)動器330提供連接。典型的PCI本地總線實(shí)現(xiàn)將支持三個或四個PCI擴(kuò)展槽或內(nèi)插連接器。
操作系統(tǒng)運(yùn)行在處理器302上,并且用來協(xié)調(diào)和提供對圖3的數(shù)據(jù)處理系統(tǒng)300內(nèi)的各個組件的控制。操作系統(tǒng)可以是可購得的操作系統(tǒng),例如可從微軟公司獲得的Windows XP。面向?qū)ο蟮木幊滔到y(tǒng)如Java可以結(jié)合操作系統(tǒng)運(yùn)行,并且提供從在數(shù)據(jù)處理系統(tǒng)300上執(zhí)行的Java程序或應(yīng)用程序到操作系統(tǒng)的調(diào)用?!癑ava”是太陽微系統(tǒng)公司的商標(biāo)。操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)以及應(yīng)用程序或程序的指令位于存儲設(shè)備如硬盤驅(qū)動器326上,并且可以被裝載到主存儲器304中,以便由處理器302執(zhí)行。
本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,圖3中的硬件可以根據(jù)實(shí)現(xiàn)而變化。作為圖3所示的硬件的增添或替代,可以使用其它內(nèi)部硬件或外圍設(shè)備如快閃只讀存儲器(ROM)、等效非易失性存儲器或光盤驅(qū)動器等。另外,本發(fā)明的處理可被應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。
作為另一個例子,數(shù)據(jù)處理系統(tǒng)300可以是被配置成是可引導(dǎo)的而不依賴于某種網(wǎng)絡(luò)通信接口的獨(dú)立系統(tǒng)。作為另一個例子,數(shù)據(jù)處理系統(tǒng)300可以是個人數(shù)字助理(PDA)設(shè)備,其配置有ROM和/或快閃ROM,以便提供非易失性存儲器來存儲操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)。
圖3所示的例子和上述例子不旨在暗含架構(gòu)限制。例如,除了采取PDA的形式之外,數(shù)據(jù)處理系統(tǒng)300也可以是筆記本計算機(jī)或手持計算機(jī)。數(shù)據(jù)處理系統(tǒng)300也可以是信息站(kiosk)或萬維網(wǎng)設(shè)備(webappliance)。
客戶端如客戶端108發(fā)起與萬維網(wǎng)服務(wù)器104的通信連接。在這里提供的說明性例子中,客戶端和服務(wù)器之間的通信連接是參考TCP/IP協(xié)議集來描述的,但是也可以適宜地將其替換為其它通信協(xié)議。本發(fā)明的實(shí)現(xiàn)不局限于任何特定協(xié)議,并且提供所述協(xié)議僅僅是為了幫助理解本發(fā)明。
圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于在網(wǎng)絡(luò)級強(qiáng)制數(shù)據(jù)優(yōu)先級區(qū)分的服務(wù)器配置的示意圖。服務(wù)器400是數(shù)據(jù)處理系統(tǒng)如圖2所示的數(shù)據(jù)處理系統(tǒng)200的例子,其提供與具有不同優(yōu)先級類的客戶端的連接性,并且被實(shí)現(xiàn)為多處理器數(shù)據(jù)處理系統(tǒng)??蛻舳巳缈蛻舳?08將通過首先參加與服務(wù)器400的握手來發(fā)起與服務(wù)器400的通信連接。為了建立連接,客戶端將幀402定址到服務(wù)器400,并且將幀402施加到網(wǎng)絡(luò)介質(zhì)410例如10baseT、100baseT或者其它適合的網(wǎng)絡(luò)介質(zhì)。幀402包括各種封裝的首標(biāo)。在本例中,客戶端和服務(wù)器在因特網(wǎng)上連接,因此幀402包括鏈路首標(biāo)402a例如以太網(wǎng)首標(biāo)、網(wǎng)絡(luò)層首標(biāo)402b例如IP首標(biāo)、以及傳輸層首標(biāo)402c例如TCP首標(biāo)。例如,幀402可以封裝同步(SYN)段,其包括具有用于發(fā)起與服務(wù)器400的握手的聲稱同步標(biāo)志的傳輸層首標(biāo)402c。服務(wù)器400通過網(wǎng)絡(luò)接口卡420例如以太網(wǎng)卡接收幀402,其中網(wǎng)絡(luò)接口卡420將幀傳達(dá)到網(wǎng)絡(luò)棧430的鏈路層431例如以太網(wǎng)驅(qū)動程序。鏈路層431從該幀中解封裝或解復(fù)用IP數(shù)據(jù)報,并且將IP數(shù)據(jù)報傳給網(wǎng)絡(luò)棧430的網(wǎng)絡(luò)層432。網(wǎng)絡(luò)層432從IP數(shù)據(jù)報中解復(fù)用TCP段,并且將TCP段傳給網(wǎng)絡(luò)棧430的傳輸層433。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,過濾器440另外接收經(jīng)過解復(fù)用的IP數(shù)據(jù)報,以便對即將發(fā)生的連接進(jìn)行優(yōu)先級過濾。過濾器440優(yōu)選地包括用于確定發(fā)起了數(shù)據(jù)的客戶端的優(yōu)先級級別的邏輯裝置。例如,過濾器440可以基于從幀402中的網(wǎng)絡(luò)層首標(biāo)402b讀取的源地址例如IP源地址和端口號而確定客戶端的優(yōu)先級級別。通過比較來自幀402的一個或多個數(shù)據(jù)值與在過濾器440中編碼或者由其訪問的預(yù)設(shè)標(biāo)準(zhǔn)來進(jìn)行優(yōu)先級級別的確定。在說明性例子中,過濾器440包括(或者與其接口)表441,其例如根據(jù)客戶端所訂購的服務(wù)級別協(xié)定(SLA),關(guān)聯(lián)或映射客戶端地址例如IP網(wǎng)絡(luò)地址和與客戶端相關(guān)聯(lián)的優(yōu)先級級別。表441僅僅是說明性的,并且可以適宜地將其替換為關(guān)聯(lián)客戶端標(biāo)識符例如網(wǎng)絡(luò)地址和優(yōu)先級級別的各種其它數(shù)據(jù)結(jié)構(gòu)。如圖1所示,客戶端108-112具有各自的IP地址IP-A、IP-B和IP-C,并且表441分別將低、低和高的優(yōu)先級級別與客戶端108-112相關(guān)聯(lián)。在識別了客戶端優(yōu)先級之后(或者與之同時),萬維網(wǎng)服務(wù)器和客戶端例如通過完成三向握手而完成連接。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,根據(jù)在客戶端與服務(wù)器的連接時識別的客戶端優(yōu)先級,基于每個處理器而在網(wǎng)絡(luò)層對在與客戶端建立了連接之后由萬維網(wǎng)服務(wù)器接收的業(yè)務(wù)進(jìn)行優(yōu)先級過濾。
圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于在多層網(wǎng)絡(luò)中的多處理器服務(wù)器上進(jìn)行服務(wù)級別協(xié)定優(yōu)先級區(qū)分的數(shù)據(jù)隊列配置圖。數(shù)據(jù)隊列配置510可以被實(shí)現(xiàn)為計算機(jī)可讀指令,其被存儲在存儲器如本地存儲器209中,并且由處理單元如圖2所示的處理器202或204從中取出。在說明性例子中,假定萬維網(wǎng)服務(wù)器104是包括n個中央處理單元(被指定為CPU0-CPUn)的對稱多處理器系統(tǒng)。在說明性例子中,每一個處理器CPU0-CPUn各自具有向其分配的用于雙級別優(yōu)先級區(qū)分的兩個隊列。具體地說,處理器CPU0具有兩個隊列500a和500b,其用于對由萬維網(wǎng)服務(wù)器104從具有向其分配的兩個優(yōu)先級級別之一的客戶端接收的數(shù)據(jù)進(jìn)行雙級別優(yōu)先級區(qū)分排隊。在本例中,隊列500a被分配用于從具有第一(max)優(yōu)先級的客戶端接收的數(shù)據(jù),而隊列500b被分配用于從具有低(max-1)優(yōu)先級的客戶端接收的幀。在說明性例子中,示出了每處理器兩優(yōu)先級隊列。然而,在本例中提供的雙級別優(yōu)先級區(qū)分僅是說明性的,并且選擇其是為了幫助理解本發(fā)明,并且可以將所示配置替換為任意數(shù)目的處理器隊列和對應(yīng)的客戶端優(yōu)先級級別。
以類似的方式,萬維網(wǎng)服務(wù)器內(nèi)的其它處理器具有類似配置的隊列。在說明性例子中,處理器CPU1具有隊列501a和隊列501b,其中隊列501a被分配用于從高優(yōu)先級客戶端接收的數(shù)據(jù),而隊列501b被分配用于從低優(yōu)先級客戶端接收的數(shù)據(jù)。同樣地,處理器CPUn具有被分配用于從高和低優(yōu)先級客戶端接收的各自數(shù)據(jù)的隊列502a-502b。
圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的在服務(wù)器如圖4所示的服務(wù)器400上運(yùn)行、向客戶端提供經(jīng)過優(yōu)先級區(qū)分的服務(wù)的數(shù)據(jù)排隊例程的流程圖。圖6所示的優(yōu)先級排隊例程在例如圖4所示的網(wǎng)絡(luò)棧430內(nèi)的網(wǎng)絡(luò)層執(zhí)行。該例程開始并且等待數(shù)據(jù)的接收。當(dāng)接收到數(shù)據(jù)(步驟602)時,例如通過評測網(wǎng)絡(luò)層首標(biāo)402b中的目的地址,進(jìn)行評測以確定數(shù)據(jù)的目標(biāo)是該接收系統(tǒng)(步驟604)。在數(shù)據(jù)不發(fā)向該接收系統(tǒng)的情況下,將數(shù)據(jù)丟到位桶(bit bucket)中,或者丟棄它(步驟606),并且數(shù)據(jù)排隊例程循環(huán)結(jié)束(步驟626)。
再次回到步驟604,在數(shù)據(jù)發(fā)向該接收系統(tǒng)的情況下,則進(jìn)行評測,以確定數(shù)據(jù)是否包括現(xiàn)有連接的業(yè)務(wù)(步驟607)。例如,可以讀取數(shù)據(jù)的源地址和端口號,并且與現(xiàn)有連接套接字進(jìn)行比較。如果數(shù)據(jù)不是現(xiàn)有連接的一部分,則識別發(fā)起了數(shù)據(jù)的客戶端的優(yōu)先級級別,并且建立與客戶端的連接(步驟609)。然后,數(shù)據(jù)排隊例程循環(huán)根據(jù)步驟626結(jié)束。
再次回到步驟607,如果數(shù)據(jù)是現(xiàn)有連接的業(yè)務(wù),則進(jìn)行評測,以確定數(shù)據(jù)是否與系統(tǒng)CPU中的任一個具有姻親關(guān)系(affinity)(步驟608)。如這里所提到的那樣,當(dāng)處理器或者與處理器相關(guān)聯(lián)的資源如高速緩存系統(tǒng)等保存了處理數(shù)據(jù)所需的數(shù)據(jù)如上下文數(shù)據(jù)時,則認(rèn)為該數(shù)據(jù)與該處理器具有姻親關(guān)系。如果數(shù)據(jù)被識別為與系統(tǒng)處理器中的任一個具有姻親關(guān)系,則識別數(shù)據(jù)的優(yōu)先級(步驟610)。例如,可以讀取網(wǎng)絡(luò)層首標(biāo)402b的源地址,并且將其與由圖4所示的過濾器440定義或訪問的預(yù)定義標(biāo)準(zhǔn)進(jìn)行比較,其中該標(biāo)準(zhǔn)關(guān)聯(lián)源地址和優(yōu)先級級別。然后,進(jìn)行優(yōu)先級的評測(步驟612)。在步驟612數(shù)據(jù)優(yōu)先級被評測為低的情況下,將數(shù)據(jù)放置在該幀被識別為與其具有姻親關(guān)系的處理器的低優(yōu)先級隊列中(步驟614),然后優(yōu)先級區(qū)分例程循環(huán)根據(jù)步驟626結(jié)束??蛇x地,如果在步驟612數(shù)據(jù)被評測為高優(yōu)先級數(shù)據(jù),則將數(shù)據(jù)放置在該數(shù)據(jù)被識別為與其具有姻親關(guān)系的處理器的低優(yōu)先級隊列中(步驟616)。然后,優(yōu)先級區(qū)分例程循環(huán)根據(jù)步驟626結(jié)束。
再次回到步驟608,如果數(shù)據(jù)不被識別為與任何系統(tǒng)處理器具有姻親關(guān)系,則檢查幀的優(yōu)先級級別(步驟618),然后,進(jìn)行評測,以確定數(shù)據(jù)是否來源于具有低優(yōu)先級的客戶端(步驟620)。如果確定了數(shù)據(jù)來源于具有低優(yōu)先級的客戶端,則選擇一個CPU,并且將數(shù)據(jù)放置在所選CPU的低優(yōu)先級隊列中(步驟624)。例如,可以通過循環(huán)選擇例程進(jìn)行CPU選擇以便對數(shù)據(jù)進(jìn)行排隊??梢赃m宜地將其替換為其它調(diào)度機(jī)制。一旦將數(shù)據(jù)放置在CPU的低優(yōu)先級隊列中,則優(yōu)先級區(qū)分例程循環(huán)根據(jù)步驟626結(jié)束。
再次回到步驟620,在數(shù)據(jù)被識別為來源于高優(yōu)先級客戶端(也就是,在步驟620,客戶端優(yōu)先級未被識別為低優(yōu)先級)的情況下,例如通過選擇在其各自的高優(yōu)先級隊列中具有最低任務(wù)數(shù)的處理器,將數(shù)據(jù)放置在系統(tǒng)處理器之一的高優(yōu)先級隊列中(步驟622)。然后,優(yōu)先級區(qū)分例程循環(huán)根據(jù)步驟626結(jié)束。
然后,基于隊列優(yōu)先級從處理器隊列檢索數(shù)據(jù),以便跨越網(wǎng)絡(luò)傳送數(shù)據(jù)。例如,根據(jù)數(shù)據(jù)優(yōu)先級區(qū)分,也就是,以相對于較低優(yōu)先級請求向較高優(yōu)先級請求提供處理優(yōu)先權(quán)的方式,將在圖1所示的萬維網(wǎng)服務(wù)器104處基于每個處理器而排隊的數(shù)據(jù)從萬維網(wǎng)服務(wù)器104傳送到萬維網(wǎng)應(yīng)用服務(wù)器105,其中該數(shù)據(jù)包括要在數(shù)據(jù)倉庫106上執(zhí)行的數(shù)據(jù)庫事務(wù)。
這樣,根據(jù)客戶端優(yōu)先級類進(jìn)行在多層網(wǎng)絡(luò)中部署的多處理器數(shù)據(jù)處理系統(tǒng)中處理事務(wù)的期間的數(shù)據(jù)傳送。通過在TCP/IP網(wǎng)絡(luò)棧中的數(shù)據(jù)隊列級允許多個排隊機(jī)制,并且關(guān)聯(lián)連接優(yōu)先級和數(shù)據(jù)優(yōu)先級,確保了較高優(yōu)先級客戶端的請求在較低優(yōu)先級客戶端之前被服務(wù)。
根據(jù)本發(fā)明的另一個實(shí)施例,提供了一種用于在多層網(wǎng)絡(luò)系統(tǒng)中的節(jié)點(diǎn)之間擴(kuò)展或傳輸請求優(yōu)先級的機(jī)制。圖7A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的實(shí)現(xiàn)了數(shù)據(jù)優(yōu)先級傳輸?shù)亩鄬泳W(wǎng)絡(luò)系統(tǒng)的示意圖。在說明性例子中,被實(shí)現(xiàn)為HTTP服務(wù)器的萬維網(wǎng)服務(wù)器704響應(yīng)于從客戶端708和709接收到HTTP請求而通過各自的客戶端連接710和711向客戶端708和709發(fā)送網(wǎng)頁或其它數(shù)據(jù)。另外,萬維網(wǎng)服務(wù)器704可以向客戶端708和709提供除了HTTP數(shù)據(jù)之外的其它數(shù)據(jù),例如應(yīng)用程序。萬維網(wǎng)服務(wù)器704與萬維網(wǎng)應(yīng)用服務(wù)器705接口和通信。萬維網(wǎng)應(yīng)用服務(wù)器705處理發(fā)出由客戶端708和709發(fā)出的請求的瀏覽器與后端應(yīng)用或數(shù)據(jù)庫如后端數(shù)據(jù)庫服務(wù)器706之間的應(yīng)用操作,其中后端數(shù)據(jù)庫服務(wù)器706與萬維網(wǎng)應(yīng)用服務(wù)器705接口,并且執(zhí)行數(shù)據(jù)庫702上的數(shù)據(jù)庫事務(wù)。
一般而言,將客戶端708和709與萬維網(wǎng)服務(wù)器704之間的各自連接710和711建立為動態(tài)或短期連接。分別互連萬維網(wǎng)服務(wù)器704與萬維網(wǎng)應(yīng)用服務(wù)器705以及萬維網(wǎng)應(yīng)用服務(wù)器705與后端數(shù)據(jù)庫服務(wù)器706的連接715a-715b和720a-720b是持久性連接。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,如上所述由萬維網(wǎng)服務(wù)器704識別在萬維網(wǎng)服務(wù)器704處接收的由客戶端提交的事務(wù)請求的優(yōu)先級。然后,將該優(yōu)先級傳播到與后端數(shù)據(jù)庫服務(wù)器706的持久性連接。為此,在與萬維網(wǎng)應(yīng)用服務(wù)器705建立持久性連接715a-715b的期間,萬維網(wǎng)服務(wù)器704向連接715a-715b分配優(yōu)先級。同樣地,在與后端數(shù)據(jù)庫服務(wù)器706建立持久性連接720a和720b的期間,萬維網(wǎng)應(yīng)用服務(wù)器705向連接720a和720b分配優(yōu)先級。在說明性例子中,每個連接715a-715b和720a-720b代表一個或多個類似連接。例如,連接715a可以被實(shí)現(xiàn)為各自地被分配(或者共同地被分配)了共同優(yōu)先級的多個連接的池。在本例中,連接715a和720a分別代表一個或多個具有第一優(yōu)先級類即高(HI)的連接,而連接715b和720b分別代表一個或多個具有第二較低優(yōu)先級類即低(LO)的連接。
通過跨越處理客戶端請求所涉及的所有節(jié)點(diǎn)傳輸或擴(kuò)展優(yōu)先級處理來提供經(jīng)過優(yōu)先級區(qū)分的客戶端請求處理。處理事務(wù)所涉及的每個節(jié)點(diǎn)例如萬維網(wǎng)服務(wù)器704、萬維網(wǎng)應(yīng)用服務(wù)器705和后端數(shù)據(jù)庫服務(wù)器706在處理數(shù)據(jù)時提供優(yōu)先權(quán)。例如,當(dāng)從客戶端接收到數(shù)據(jù)時,萬維網(wǎng)服務(wù)器704例如通過上面關(guān)于圖4所述的機(jī)制而識別客戶端數(shù)據(jù)的優(yōu)先級。然后,根據(jù)與由萬維網(wǎng)服務(wù)器704識別的客戶端優(yōu)先級級別相對應(yīng)的數(shù)據(jù)優(yōu)先級,在萬維網(wǎng)服務(wù)器704處對數(shù)據(jù)進(jìn)行排隊和處理。例如,假定萬維網(wǎng)服務(wù)器704接收到要由后端數(shù)據(jù)庫服務(wù)器706處理的、來自高優(yōu)先級客戶端的事務(wù)請求的高優(yōu)先級數(shù)據(jù),以及要由后端數(shù)據(jù)庫服務(wù)器706處理的、來自低優(yōu)先級客戶端的事務(wù)請求的低優(yōu)先級數(shù)據(jù),并且對其進(jìn)行了排隊。由于提供給高優(yōu)先級客戶端的處理優(yōu)先權(quán),因此在傳送低優(yōu)先級數(shù)據(jù)之前將高優(yōu)先級數(shù)據(jù)傳送到萬維網(wǎng)應(yīng)用服務(wù)器705。接下來,萬維網(wǎng)應(yīng)用服務(wù)器705根據(jù)客戶端數(shù)據(jù)優(yōu)先級處理從萬維網(wǎng)服務(wù)器704接收的數(shù)據(jù)。根據(jù)本發(fā)明的一個實(shí)施例,萬維網(wǎng)應(yīng)用服務(wù)器705根據(jù)在萬維網(wǎng)應(yīng)用服務(wù)器705處接收數(shù)據(jù)的連接對數(shù)據(jù)進(jìn)行優(yōu)先級處理。在說明性例子中,通過高優(yōu)先級連接715a由萬維網(wǎng)應(yīng)用服務(wù)器705接收的數(shù)據(jù)被放置在優(yōu)先級過濾器731(或者與其接口)的高優(yōu)先級隊列731a中,而通過低優(yōu)先級連接715b由萬維網(wǎng)應(yīng)用服務(wù)器接收的數(shù)據(jù)被放置在優(yōu)先級過濾器731(或者與其接口)的低優(yōu)先級隊列731b中。從而,由萬維網(wǎng)服務(wù)器704以高于低優(yōu)先級數(shù)據(jù)的優(yōu)先權(quán)處理和傳送的高優(yōu)先級數(shù)據(jù)同樣地被萬維網(wǎng)應(yīng)用服務(wù)器705提供了處理優(yōu)先權(quán)。接下來,萬維網(wǎng)應(yīng)用服務(wù)器705以高于低優(yōu)先級數(shù)據(jù)的優(yōu)先權(quán)將高優(yōu)先級數(shù)據(jù)傳送到后端數(shù)據(jù)庫服務(wù)器706。這樣,后端系統(tǒng)(本例中的后端數(shù)據(jù)庫服務(wù)器706)可以以高于較低優(yōu)先級數(shù)據(jù)的優(yōu)先權(quán)對高優(yōu)先級數(shù)據(jù)進(jìn)行排隊和處理。在說明性例子中,后端數(shù)據(jù)庫服務(wù)器706將高優(yōu)先級數(shù)據(jù)放置在過濾器707(或者與其接口)的高優(yōu)先級隊列707a中,而將低優(yōu)先級數(shù)據(jù)放置在優(yōu)先級過濾器707(或者與其接口)的低優(yōu)先級隊列707b中。這樣,通過配置每個節(jié)點(diǎn)以便基于接收數(shù)據(jù)的連接而識別數(shù)據(jù)優(yōu)先級,跨越多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的事務(wù)處理所涉及的每層提供經(jīng)過優(yōu)先級區(qū)分的處理。
在多層網(wǎng)絡(luò)700中反向地提供處理數(shù)據(jù)的優(yōu)先級。也就是,由萬維網(wǎng)應(yīng)用服務(wù)器705通過高優(yōu)先級類連接720a從后端數(shù)據(jù)庫服務(wù)器706接收的數(shù)據(jù)(例如,通過后端數(shù)據(jù)庫服務(wù)器706執(zhí)行數(shù)據(jù)庫事務(wù)而得到的返回數(shù)據(jù))被萬維網(wǎng)應(yīng)用服務(wù)器705提供了高于通過低優(yōu)先級類連接720b接收的事務(wù)的處理優(yōu)先權(quán)。同樣地,由萬維網(wǎng)服務(wù)器704通過高優(yōu)先級連接715a從萬維網(wǎng)應(yīng)用服務(wù)器705接收的數(shù)據(jù)被提供了高于由萬維網(wǎng)服務(wù)器704通過低優(yōu)先級連接715b從萬維網(wǎng)應(yīng)用服務(wù)器705接收的數(shù)據(jù)的處理優(yōu)先權(quán)。這樣,在事務(wù)請求和事務(wù)返回消息傳遞期間,在多層網(wǎng)絡(luò)700中提供了事務(wù)處理的優(yōu)先級區(qū)分。
現(xiàn)在參照圖7B,示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的被配置成幫助多層網(wǎng)絡(luò)中的數(shù)據(jù)處理優(yōu)先級區(qū)分傳輸?shù)膬?yōu)先級區(qū)分?jǐn)?shù)據(jù)隊列的示意圖。數(shù)據(jù)隊列760a-760b可被實(shí)現(xiàn)為計算機(jī)可讀指令,其被存儲在存儲器如本地存儲器中、并且由被部署為多層網(wǎng)絡(luò)700中的前端節(jié)點(diǎn)的服務(wù)器系統(tǒng)的處理單元從中取出。數(shù)據(jù)隊列760a-762b優(yōu)選地在優(yōu)先級過濾器如由萬維網(wǎng)服務(wù)器704運(yùn)行的優(yōu)先級過濾器730內(nèi)實(shí)現(xiàn),或者與其接口。數(shù)據(jù)隊列760a-762b是針對每個處理器的數(shù)據(jù)隊列的例子,如圖5所示的隊列500a-500b,其用于如上所述的幀級數(shù)據(jù)排隊。
在本例中,高優(yōu)先級隊列760a、761a和762a被邏輯映射到高優(yōu)先級連接715a,而低優(yōu)先級隊列760b、761b和762b被邏輯映射到低優(yōu)先級連接715b。用于關(guān)聯(lián)各個隊列760a-762b與具有特定優(yōu)先級的連接的邏輯映射770a-772b可以例如通過鏈接表、關(guān)系數(shù)據(jù)庫或者任何其它適合的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。這樣,要被傳送到萬維網(wǎng)應(yīng)用服務(wù)器705的在高優(yōu)先級隊列760a-762a中排隊以便通過高優(yōu)先級連接715a傳送的數(shù)據(jù)被提供了高于在低優(yōu)先級隊列760b-762b中排隊以便通過低優(yōu)先級連接715b傳送的數(shù)據(jù)的優(yōu)先權(quán)。在說明性例子中,示出了兩個優(yōu)先級類的隊列和連接。然而,在本例中提供的雙級別優(yōu)先級區(qū)分僅僅是說明性的,并且選擇其是為了幫助理解本發(fā)明,并且可以將所示配置替換為任意數(shù)目的隊列和連接優(yōu)先級級別。
為了幫助跨越多層網(wǎng)絡(luò)700的多個節(jié)點(diǎn)傳輸處理優(yōu)先級,在處理事務(wù)所涉及的每個節(jié)點(diǎn)中實(shí)現(xiàn)優(yōu)先級過濾器。現(xiàn)在參照圖7C,示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的將客戶端連接映射到后端連接以便跨越多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多個節(jié)點(diǎn)傳輸優(yōu)先級類的優(yōu)先級過濾器的示意圖。優(yōu)先級過濾器731優(yōu)選地被實(shí)現(xiàn)為一組計算機(jī)可讀指令,并且可以在運(yùn)行優(yōu)先級過濾器731的主機(jī)服務(wù)器例如萬維網(wǎng)應(yīng)用服務(wù)器705的網(wǎng)絡(luò)棧中實(shí)現(xiàn),或者與其接口。
在中間節(jié)點(diǎn)即接收要被處理的數(shù)據(jù)并且必須將數(shù)據(jù)轉(zhuǎn)發(fā)到多層網(wǎng)絡(luò)700中的另一個節(jié)點(diǎn)的節(jié)點(diǎn)中,通過前端和后端服務(wù)器地址之間的邏輯映射來幫助優(yōu)先級類的傳輸。在說明性例子中,萬維網(wǎng)應(yīng)用服務(wù)器705具有通過其可以與萬維網(wǎng)服務(wù)器704進(jìn)行前端連接的兩個網(wǎng)絡(luò)地址,即IP地址9.3.192.7和9.3.192.9,并且萬維網(wǎng)應(yīng)用服務(wù)器705具有通過其可以與后端數(shù)據(jù)庫服務(wù)器706進(jìn)行后端連接的兩個網(wǎng)絡(luò)地址,即IP地址9.3.190.7和9.3.190.9。根據(jù)本發(fā)明的實(shí)施例,通過經(jīng)過優(yōu)先級區(qū)分的連接之間的映射,經(jīng)由多層網(wǎng)絡(luò)700的中間服務(wù)器,將優(yōu)先級類從請求實(shí)體傳輸?shù)侥繕?biāo)實(shí)體。為此,萬維網(wǎng)應(yīng)用服務(wù)器前端地址和后端地址之間的關(guān)聯(lián)由過濾器731定義。在說明性例子中,表740定義了由萬維網(wǎng)應(yīng)用服務(wù)器705例如從代表客戶端708和709的萬維網(wǎng)服務(wù)器704接收數(shù)據(jù)的前端(目的)地址、以及這些前端地址的對應(yīng)優(yōu)先級。具體地說,表740的記錄741為由萬維網(wǎng)應(yīng)用服務(wù)器705接收的、具有目的地址9.3.192.7的請求定義高優(yōu)先級類,并且表740的記錄742為由萬維網(wǎng)應(yīng)用服務(wù)器705接收的、具有目的地址9.3.192.9的請求定義低優(yōu)先級類。另一個表750定義萬維網(wǎng)應(yīng)用服務(wù)器705與后端數(shù)據(jù)庫服務(wù)器706連接的源(后端)地址、以及這些后端地址的對應(yīng)優(yōu)先級。具體地說,表750的記錄751為通過萬維網(wǎng)應(yīng)用服務(wù)器源地址9.3.190.7與后端數(shù)據(jù)庫服務(wù)器706建立的連接定義高優(yōu)先級類,并且表750的記錄752為通過萬維網(wǎng)應(yīng)用服務(wù)器源地址9.3.190.9與后端數(shù)據(jù)庫服務(wù)器706建立的連接定義低優(yōu)先級類。這樣,當(dāng)識別出由萬維網(wǎng)應(yīng)用服務(wù)器705接收的數(shù)據(jù)的優(yōu)先級時,可以通過在具有對應(yīng)優(yōu)先級的連接上發(fā)送該請求而將請求優(yōu)先級傳輸?shù)胶蠖藬?shù)據(jù)庫。例如,假定數(shù)據(jù)庫查詢請求由客戶端708發(fā)出,并且由萬維網(wǎng)應(yīng)用服務(wù)器705從萬維網(wǎng)服務(wù)器704接收。分析該請求,以確定該請求被定向的目的地址。當(dāng)識別出該請求的目的地址時,基于目的地址與優(yōu)先級類的關(guān)聯(lián)而確定該請求的優(yōu)先級??蛇x地,可以通過由萬維網(wǎng)應(yīng)用服務(wù)器705接收數(shù)據(jù)的連接來識別請求優(yōu)先級。例如,萬維網(wǎng)應(yīng)用服務(wù)器705可以簡單地將在連接715a上接收的任何數(shù)據(jù)識別為高優(yōu)先級數(shù)據(jù),并且將在連接715b上接收的任何數(shù)據(jù)識別為低優(yōu)先級數(shù)據(jù)。
當(dāng)識別出數(shù)據(jù)優(yōu)先級時,則識別與所確定的優(yōu)先級類相對應(yīng)的源地址,并且通過具有對應(yīng)優(yōu)先級的源地址將該請求傳達(dá)到后端服務(wù)。
作為例子,假定通過萬維網(wǎng)服務(wù)器704將來自客戶端708的請求發(fā)送到萬維網(wǎng)應(yīng)用服務(wù)器705,以及萬維網(wǎng)服務(wù)器704通過將請求定址到萬維網(wǎng)應(yīng)用服務(wù)器705的低優(yōu)先級前端地址(9.3.192.9)而與萬維網(wǎng)應(yīng)用服務(wù)器705連接。例如,在將客戶端708識別為具有低優(yōu)先級SLA之后,萬維網(wǎng)服務(wù)器704可以在端接于萬維網(wǎng)應(yīng)用服務(wù)器705的低優(yōu)先級前端地址的低優(yōu)先級連接715b上與萬維網(wǎng)應(yīng)用服務(wù)器705連接。這樣的對客戶端708的識別可以由識別客戶端優(yōu)先級SLA的過濾器機(jī)制例如在圖4中示出和描述的過濾器441進(jìn)行。當(dāng)萬維網(wǎng)應(yīng)用服務(wù)器接收到請求數(shù)據(jù)時,將該請求提供給優(yōu)先級過濾器731,并且讀取由萬維網(wǎng)應(yīng)用服務(wù)器705接收數(shù)據(jù)的前端地址。在本例中,優(yōu)先級過濾器731讀取該請求被定址的萬維網(wǎng)應(yīng)用服務(wù)器705的前端地址,并且通過在記錄742中定義的前端目的地址與優(yōu)先級關(guān)聯(lián)將該請求識別為低優(yōu)先級地址。
當(dāng)將該請求識別為低優(yōu)先級請求時,萬維網(wǎng)應(yīng)用服務(wù)器705則將該請求傳達(dá)到后端數(shù)據(jù)庫服務(wù)器706。具體地說,萬維網(wǎng)應(yīng)用服務(wù)器705在該請求中包括低優(yōu)先級源地址(9.3.190.9),并且將該請求提供給低優(yōu)先級連接720b,以便傳達(dá)到后端數(shù)據(jù)庫服務(wù)器706。
從而,通過在后端數(shù)據(jù)庫服務(wù)器706中實(shí)現(xiàn)根據(jù)請求優(yōu)先級對請求進(jìn)行排隊的優(yōu)先級過濾器,后端數(shù)據(jù)庫服務(wù)器706可以根據(jù)預(yù)定義的優(yōu)先級類來處理請求,其中該優(yōu)先級類最初在多層網(wǎng)絡(luò)700的前端節(jié)點(diǎn)例如萬維網(wǎng)服務(wù)器704處識別出,并且通過將事務(wù)請求傳達(dá)到后端數(shù)據(jù)庫服務(wù)器706所涉及的每個節(jié)點(diǎn)傳播。在說明性例子中,后端數(shù)據(jù)庫服務(wù)器706包括優(yōu)先級過濾器707,其向在高優(yōu)先級連接720a上接收的請求提供高于在低優(yōu)先級連接720b上接收的請求的優(yōu)先權(quán)。具體地說,優(yōu)先級過濾器707包括高優(yōu)先級隊列707a和低優(yōu)先級隊列707b,或者與其接口,其中在相應(yīng)的高優(yōu)先級連接720a和低優(yōu)先級連接720b上接收的請求被排入高優(yōu)先級隊列707a和低優(yōu)先級隊列707b。從而,可以根據(jù)在數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多層之間傳輸?shù)膬?yōu)先級分類來執(zhí)行在后端數(shù)據(jù)庫服務(wù)器706處接收的請求的處理。
圖8是根據(jù)本發(fā)明優(yōu)選實(shí)施例的由優(yōu)先級過濾器執(zhí)行以便跨越數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多個節(jié)點(diǎn)根據(jù)請求優(yōu)先級來傳輸請求的運(yùn)行時處理的流程圖。在流程圖800中示出的運(yùn)行時例程處理優(yōu)選地由被實(shí)現(xiàn)為過濾器如優(yōu)先級過濾器730的計算機(jī)可讀指令實(shí)現(xiàn),其中該過濾器由數(shù)據(jù)處理系統(tǒng)如萬維網(wǎng)應(yīng)用服務(wù)器705處理,并且用來從優(yōu)先級區(qū)分隊列中調(diào)度排隊數(shù)據(jù)。
運(yùn)行時優(yōu)先級過濾器例程例如在系統(tǒng)引導(dǎo)或者其它調(diào)用時開始,并且等待接收請求如數(shù)據(jù)庫事務(wù)請求或者其它后端服務(wù)事務(wù)。當(dāng)接收到請求(步驟802)時,例如,當(dāng)從隊列中調(diào)度時,由優(yōu)先級過濾器進(jìn)行請求優(yōu)先級的評測(步驟804)。具體地說,對該請求進(jìn)行評測,以確定該請求是否是低優(yōu)先級請求。在該請求被評測為低優(yōu)先級請求的情況下,運(yùn)行時優(yōu)先級過濾器例程前進(jìn)到評測是否存在用于低優(yōu)先級請求的連接(步驟806)。如果不存在低優(yōu)先級連接,則建立一個(步驟808),然后該例程繼續(xù)到在新建立的低優(yōu)先級連接上發(fā)送該請求(步驟810)。如果在步驟806,確定了已經(jīng)存在低優(yōu)先級連接,例如圖7A中的低優(yōu)先級連接720b,則運(yùn)行時優(yōu)先級過濾器例程繼續(xù)到根據(jù)步驟810在低優(yōu)先級連接上發(fā)送該請求。在通過低優(yōu)先級連接發(fā)送該請求之后,運(yùn)行時優(yōu)先級過濾器循環(huán)則完成(步驟818)。
再次回到步驟804,如果該請求未被評測為低優(yōu)先級請求,則進(jìn)行評測,以確定是否存在高優(yōu)先級連接(步驟812)。如果不存在高優(yōu)先級連接,則建立一個(步驟814),然后該例程繼續(xù)到在新建立的高優(yōu)先級連接上發(fā)送該請求(步驟816)。如果在步驟812,確定了已經(jīng)存在高優(yōu)先級連接,例如高優(yōu)先級連接720a,則運(yùn)行時優(yōu)先級過濾器例程繼續(xù)到根據(jù)步驟816在該高優(yōu)先級連接上發(fā)送該請求。在通過高優(yōu)先級連接發(fā)送該請求之后,運(yùn)行時優(yōu)先級過濾器循環(huán)則根據(jù)步驟818完成。
這樣,通過在后端服務(wù)處例如在過濾器707中實(shí)現(xiàn)數(shù)據(jù)優(yōu)先級區(qū)分,可以在多層網(wǎng)絡(luò)中向具有不同優(yōu)先級的客戶端提供數(shù)據(jù)處理優(yōu)先級。例如,過濾器707可以包括高優(yōu)先級隊列707a和低優(yōu)先級隊列707b,以便向在高優(yōu)先級連接720a和低優(yōu)先級連接720b上接收的數(shù)據(jù)提供處理優(yōu)先權(quán)。
應(yīng)當(dāng)理解,雙優(yōu)先級請求過濾和優(yōu)先級傳輸?shù)睦觾H僅是說明性的,并且本發(fā)明的教導(dǎo)可以擴(kuò)展到具有任意數(shù)目的請求優(yōu)先級類的系統(tǒng)。
正如所述,本發(fā)明的實(shí)施例提供了用于跨越數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多個節(jié)點(diǎn)傳輸請求優(yōu)先級的機(jī)制。通過跨越數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的多個節(jié)點(diǎn)傳輸請求優(yōu)先級,在多層數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中傳達(dá)或處理事務(wù)所涉及的任何節(jié)點(diǎn)中確保了請求處理的優(yōu)先權(quán)。
值得注意的是,雖然本發(fā)明是在全功能數(shù)據(jù)處理系統(tǒng)的上下文中描述的,但是本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解本發(fā)明的處理能夠以包含指令的計算機(jī)可讀介質(zhì)的形式和各種形式來分發(fā),并且本發(fā)明與實(shí)際上用來執(zhí)行分發(fā)的信號承載介質(zhì)的具體類型無關(guān)地同等適用。計算機(jī)可讀介質(zhì)的例子包括諸如軟盤、硬盤驅(qū)動器、RAM、CD-ROM、DVD-ROM的可記錄型介質(zhì)和諸如數(shù)字和模擬通信鏈路、采用各種傳輸形式例如射頻和光波傳輸?shù)挠芯€或無線通信鏈路的傳輸型介質(zhì)。計算機(jī)可讀介質(zhì)可以采取為在特定數(shù)據(jù)處理系統(tǒng)中實(shí)際使用而譯碼的編碼格式的形式。
本發(fā)明的描述是為了示例說明和描述的目的而提供的,而不旨在是窮舉性的或者將本發(fā)明局限于所公開的形式。對于本領(lǐng)域的普通技術(shù)人員而言,很多修改和變動將是顯然的。選擇和描述實(shí)施例是為了最佳地說明本發(fā)明的原理、實(shí)際應(yīng)用,并使得本領(lǐng)域的其他普通技術(shù)人員能夠理解本發(fā)明,從而考慮具有各種修改的各種實(shí)施例來適用于具體應(yīng)用。
權(quán)利要求
1.一種在數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中傳輸請求優(yōu)先級區(qū)分的方法,該方法包括以下計算機(jī)實(shí)現(xiàn)步驟由第一數(shù)據(jù)處理系統(tǒng)接收事務(wù)請求;識別該事務(wù)請求的優(yōu)先級;由第一數(shù)據(jù)處理系統(tǒng)根據(jù)該優(yōu)先級在第一數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)層中處理該事務(wù)請求;以及將該事務(wù)請求傳達(dá)到第二數(shù)據(jù)處理系統(tǒng),其中第二數(shù)據(jù)處理系統(tǒng)根據(jù)該優(yōu)先級在第二數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)層中處理該事務(wù)請求。
2.如權(quán)利要求1所述的方法,其中由與第一數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)棧接口的過濾器執(zhí)行識別步驟。
3.如權(quán)利要求1所述的方法,其中第一數(shù)據(jù)處理系統(tǒng)包括第二數(shù)據(jù)處理系統(tǒng)的前端節(jié)點(diǎn)。
4.如權(quán)利要求1所述的方法,還包括在第一數(shù)據(jù)處理系統(tǒng)與第二數(shù)據(jù)處理系統(tǒng)之間建立多個連接,其中該多個連接中的第一連接具有與其相關(guān)聯(lián)的第一優(yōu)先級,并且該多個連接中的第二連接具有與其相關(guān)聯(lián)的第二優(yōu)先級。
5.如權(quán)利要求4所述的方法,其中傳達(dá)步驟還包括確定該事務(wù)請求的優(yōu)先級對應(yīng)于第一優(yōu)先級;以及在第一連接上傳送該事務(wù)請求。
6.如權(quán)利要求1所述的方法,其中識別步驟還包括確定該事務(wù)請求被定址的第一數(shù)據(jù)處理系統(tǒng)的目的地址。
7.如權(quán)利要求6所述的方法,還包括將該目的地址映射到第一數(shù)據(jù)處理系統(tǒng)的源地址,其中該源地址是第一數(shù)據(jù)處理系統(tǒng)與第二數(shù)據(jù)處理系統(tǒng)之間的連接的源地址,并且其中該源地址與該優(yōu)先級相關(guān)聯(lián)。
8.一種計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品,用于在數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中傳輸請求優(yōu)先級區(qū)分,該計算機(jī)程序產(chǎn)品包括第一指令,在第一數(shù)據(jù)處理系統(tǒng)處接收事務(wù)請求;第二指令,識別該事務(wù)請求的優(yōu)先級;第三指令,在第一數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)層處理該事務(wù)請求;以及第四指令,將該事務(wù)請求傳達(dá)到第二數(shù)據(jù)處理系統(tǒng),以便在第二數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)層根據(jù)該優(yōu)先級處理該事務(wù)請求。
9.如權(quán)利要求8所述的計算機(jī)程序產(chǎn)品,其中第二指令包括與第一數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)棧接口的過濾器。
10.如權(quán)利要求8所述的計算機(jī)程序產(chǎn)品,其中第一數(shù)據(jù)處理系統(tǒng)包括第二數(shù)據(jù)處理系統(tǒng)的前端節(jié)點(diǎn)。
11.如權(quán)利要求8所述的計算機(jī)程序產(chǎn)品,還包括第五指令,在第一數(shù)據(jù)處理系統(tǒng)與第二數(shù)據(jù)處理系統(tǒng)之間建立多個連接,其中該多個連接中的第一連接具有與其相關(guān)聯(lián)的第一優(yōu)先級,并且該多個連接中的第二連接具有與其相關(guān)聯(lián)的第二優(yōu)先級。
12.如權(quán)利要求11所述的計算機(jī)程序產(chǎn)品,其中第四指令還包括第六指令,確定該事務(wù)請求的優(yōu)先級對應(yīng)于第一優(yōu)先級;以及第七指令,在第一連接上傳送該事務(wù)請求。
13.如權(quán)利要求8所述的計算機(jī)程序產(chǎn)品,其中第二指令還包括第五指令,確定該事務(wù)請求被定址的第一數(shù)據(jù)處理系統(tǒng)的目的地址。
14.如權(quán)利要求13所述的計算機(jī)程序產(chǎn)品,還包括第六指令,將該目的地址映射到第一數(shù)據(jù)處理系統(tǒng)的源地址,其中該源地址是第一數(shù)據(jù)處理系統(tǒng)與第二數(shù)據(jù)處理系統(tǒng)之間的連接的源地址,并且其中該源地址與該優(yōu)先級相關(guān)聯(lián)。
15.一種用于在數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中傳輸請求優(yōu)先級區(qū)分的數(shù)據(jù)處理系統(tǒng),包括網(wǎng)絡(luò)接口卡,用于接收事務(wù)請求;存儲器,包含作為一組指令的優(yōu)先級過濾器;以及處理單元,響應(yīng)于這組指令的執(zhí)行,識別該事務(wù)請求的優(yōu)先級,并且在該數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)層處理該事務(wù)請求,并且在多個連接中的第一連接上傳送該事務(wù)請求,其中該多個連接中的每一個具有相關(guān)聯(lián)的優(yōu)先級,并且第一連接具有與該事務(wù)請求的優(yōu)先級相對應(yīng)的第一相關(guān)優(yōu)先級。
16.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中優(yōu)先級過濾器與在存儲器中維護(hù)的網(wǎng)絡(luò)棧接口。
17.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中優(yōu)先級過濾器通過在事務(wù)請求中讀取該數(shù)據(jù)處理系統(tǒng)的目的地址來識別該事務(wù)請求的優(yōu)先級。
18.如權(quán)利要求17所述的數(shù)據(jù)處理系統(tǒng),其中優(yōu)先級過濾器映射該目的地址與用于在第一連接上發(fā)送數(shù)據(jù)的該數(shù)據(jù)處理系統(tǒng)的源地址。
19.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),還包括第二網(wǎng)絡(luò)接口卡,用于端接與第二數(shù)據(jù)處理系統(tǒng)的該多個連接。
20.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中該多個連接端接于第二數(shù)據(jù)處理系統(tǒng),并且其中第二數(shù)據(jù)處理系統(tǒng)被配置成根據(jù)該優(yōu)先級在第二數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)層處理該事務(wù)請求。
全文摘要
本發(fā)明提供了一種用于在數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中傳輸請求優(yōu)先級區(qū)分的方法、計算機(jī)程序產(chǎn)品和數(shù)據(jù)處理系統(tǒng)。第一數(shù)據(jù)處理系統(tǒng)接收事務(wù)請求,并且識別該事務(wù)請求的優(yōu)先級。第一數(shù)據(jù)處理系統(tǒng)根據(jù)該優(yōu)先級處理該事務(wù)請求并將其傳達(dá)到第二數(shù)據(jù)處理系統(tǒng),并且第二數(shù)據(jù)處理系統(tǒng)根據(jù)該優(yōu)先級處理該事務(wù)請求。
文檔編號H04L12/24GK1791019SQ200510124670
公開日2006年6月21日 申請日期2005年11月14日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者瓦加彥迪馬拉·K·阿南德 申請人:國際商業(yè)機(jī)器公司