使用客戶端-服務(wù)器架構(gòu)的流處理的制作方法
【專利摘要】使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法能夠包括從服務(wù)器接收服務(wù)器請(qǐng)求,其中,所述服務(wù)器被配置成響應(yīng)于客戶端請(qǐng)求而生成服務(wù)器請(qǐng)求,并生成與服務(wù)器請(qǐng)求相關(guān)聯(lián)的請(qǐng)求。該方法能夠包括響應(yīng)于服務(wù)器請(qǐng)求而將從服務(wù)器請(qǐng)求導(dǎo)出的流處理請(qǐng)求發(fā)送到第一流處理節(jié)點(diǎn)。該流處理請(qǐng)求能夠包括請(qǐng)求標(biāo)識(shí)符。響應(yīng)于從第二流處理節(jié)點(diǎn)接收到包括流處理結(jié)果和請(qǐng)求標(biāo)識(shí)符的創(chuàng)建顯影消息,能夠使流處理結(jié)果與服務(wù)器請(qǐng)求相關(guān)。能夠?qū)⒅付魈幚斫Y(jié)果的寫(xiě)響應(yīng)消息發(fā)送到服務(wù)器。
【專利說(shuō)明】使用客戶端-服務(wù)器架構(gòu)的流處理
【技術(shù)領(lǐng)域】
[0001]在本說(shuō)明書(shū)內(nèi)公開(kāi)的一個(gè)或多個(gè)實(shí)施方式涉及流處理。
【背景技術(shù)】
[0002]在常規(guī)數(shù)據(jù)分析中,針對(duì)靜態(tài)數(shù)據(jù)應(yīng)用查詢。一般地,流處理指的是其中能夠評(píng)估被稱為數(shù)據(jù)流或流的變化數(shù)據(jù)的數(shù)據(jù)處理技術(shù)。盡管能夠隨時(shí)間推移而修改或更新查詢,能夠通過(guò)對(duì)變化數(shù)據(jù)流應(yīng)用大體上靜態(tài)的查詢來(lái)評(píng)估數(shù)據(jù)流。在某些情況下,被查詢的數(shù)據(jù)流能夠快速地改變。例如,能夠?qū)⒁u(píng)估的數(shù)據(jù)流視為諸如實(shí)時(shí)或近實(shí)時(shí)信息的持續(xù)信息流。與數(shù)據(jù)可存儲(chǔ)在數(shù)據(jù)庫(kù)或其他數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的靜態(tài)數(shù)據(jù)進(jìn)行操作相反,實(shí)現(xiàn)流處理的節(jié)點(diǎn)能夠?qū)?shù)據(jù)流進(jìn)行操作。
【發(fā)明內(nèi)容】
[0003]在本說(shuō)明書(shū)內(nèi)公開(kāi)的一個(gè)或多個(gè)實(shí)施方式涉及流處理,并且更特別地涉及使用客戶端-服務(wù)器型架構(gòu)的流處理。
[0004]實(shí)施方式能夠包括使用流處理來(lái)對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法。該方法能夠包括接收來(lái)自服務(wù)器的服務(wù)器請(qǐng)求,其中該服務(wù)器被配置成響應(yīng)于客戶端請(qǐng)求而生成服務(wù)器請(qǐng)求,并且生成與服務(wù)器請(qǐng)求相關(guān)聯(lián)的請(qǐng)求標(biāo)識(shí)符。響應(yīng)于服務(wù)器請(qǐng)求,能夠向第一流處理節(jié)點(diǎn)發(fā)送從服務(wù)器請(qǐng)求導(dǎo)出的流處理請(qǐng)求。該流處理請(qǐng)求能夠包括請(qǐng)求標(biāo)識(shí)符。響應(yīng)于接收來(lái)自第二流處理節(jié)點(diǎn)的包括流處理結(jié)果和請(qǐng)求標(biāo)識(shí)符的創(chuàng)建響應(yīng)消息,能夠使用處理器使流處理結(jié)果與服務(wù)器請(qǐng)求相關(guān)。能夠向服務(wù)器發(fā)送包括流處理結(jié)果的寫(xiě)響應(yīng)消息。
[0005]另一實(shí)施方式能夠包括使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法。該方法能夠包括響應(yīng)于客戶端請(qǐng)求來(lái)分配用于處置客戶端請(qǐng)求的處理線程并在該處理線程內(nèi)建立返回連接。能夠向流服務(wù)器發(fā)送從客戶端請(qǐng)求導(dǎo)出的服務(wù)器請(qǐng)求。能夠?qū)⒘鞣?wù)器配置成與多個(gè)流處理節(jié)點(diǎn)交互。服務(wù)器請(qǐng)求能夠包括指定處理線程的線程標(biāo)識(shí)符。能夠?qū)⒂糜谔幹每蛻舳苏?qǐng)求的處理線程保持在使來(lái)自流服務(wù)器的寫(xiě)響應(yīng)消息待決的空閑狀態(tài)。響應(yīng)于接收來(lái)自流服務(wù)器的包括流處理結(jié)果和線程標(biāo)識(shí)符的寫(xiě)響應(yīng)消息,能夠使用處理器使由線程標(biāo)識(shí)符指定的處理線程返回至活動(dòng)狀態(tài)。能夠通過(guò)返回連接將包括流處理結(jié)果的客戶端響應(yīng)發(fā)送到客戶端。
[0006]另一實(shí)施方式能夠包括用于使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的系統(tǒng)。該系統(tǒng)能夠包括具有用其體現(xiàn)的計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和被耦合到計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的處理器。響應(yīng)于執(zhí)行計(jì)算機(jī)可讀程序代碼,能夠?qū)⒃撎幚砥髋渲贸蓤?zhí)行可執(zhí)行操作??蓤?zhí)行操作能夠包括接收來(lái)自服務(wù)器的服務(wù)器請(qǐng)求,其中服務(wù)器被配置成響應(yīng)于客戶端請(qǐng)求而生成服務(wù)器請(qǐng)求,生成與服務(wù)器請(qǐng)求相關(guān)聯(lián)的請(qǐng)求標(biāo)識(shí)符,并且響應(yīng)于服務(wù)器請(qǐng)求而向第一流處理節(jié)點(diǎn)發(fā)送從服務(wù)器請(qǐng)求導(dǎo)出的流處理請(qǐng)求。該流處理請(qǐng)求能夠包括請(qǐng)求標(biāo)識(shí)符。響應(yīng)于接收來(lái)自第二流處理節(jié)點(diǎn)的包括流處理結(jié)果和請(qǐng)求標(biāo)識(shí)符的創(chuàng)建響應(yīng)消息,能夠使流處理結(jié)果與服務(wù)器請(qǐng)求相關(guān)。能夠向服務(wù)器發(fā)送包括流處理結(jié)果的寫(xiě)響應(yīng)消息。[0007]另一實(shí)施方式能夠包括用于使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的系統(tǒng)。該系統(tǒng)能夠包括具有用其體現(xiàn)的計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和被耦合到計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的處理器。響應(yīng)于執(zhí)行計(jì)算機(jī)可讀程序代碼,能夠?qū)⒃撎幚砥髋渲贸蓤?zhí)行可執(zhí)行操作??蓤?zhí)行操作能夠包括:響應(yīng)于客戶端請(qǐng)求而分配用于處置客戶端請(qǐng)求的處理線程,在該處理線程內(nèi)建立返回連接,并向被配置成與多個(gè)流處理節(jié)點(diǎn)交互的流服務(wù)器發(fā)送從客戶端請(qǐng)求導(dǎo)出的服務(wù)器請(qǐng)求。服務(wù)器請(qǐng)求能夠包括指定處理線程的線程標(biāo)識(shí)符??蓤?zhí)行操作還能夠包括將用于處理客戶端請(qǐng)求的處理線程保持在使來(lái)自流服務(wù)器的寫(xiě)響應(yīng)消息待決的空閑狀態(tài),并且響應(yīng)于從流服務(wù)器接收包括流處理結(jié)果和線程標(biāo)識(shí)符的寫(xiě)響應(yīng)消息,而使由線程標(biāo)識(shí)符指定的線程返回至活動(dòng)狀態(tài)。能夠通過(guò)返回連接向客戶端發(fā)送包括流處理結(jié)果的客戶端響應(yīng)。
[0008]另一實(shí)施方式能夠包括用于使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品能夠包括具有用其體現(xiàn)的計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。該計(jì)算機(jī)可讀程序代碼能夠包括被配置成接收來(lái)自服務(wù)器的服務(wù)器請(qǐng)求的計(jì)算機(jī)可讀程序代碼,其中,所述服務(wù)器被配置成響應(yīng)于客戶端請(qǐng)求而生成服務(wù)器請(qǐng)求,并且計(jì)算機(jī)可讀程序代碼被配置成生成與服務(wù)器請(qǐng)求相關(guān)聯(lián)的請(qǐng)求標(biāo)識(shí)符。該計(jì)算機(jī)可讀程序代碼還能夠包括計(jì)算機(jī)可讀程序代碼,其被配置成響應(yīng)于服務(wù)器請(qǐng)求而向第一流處理節(jié)點(diǎn)發(fā)送從服務(wù)器請(qǐng)求導(dǎo)出的流處理請(qǐng)求。該流處理請(qǐng)求能夠包括請(qǐng)求標(biāo)識(shí)符。該計(jì)算機(jī)可讀程序代碼能夠包括計(jì)算機(jī)可讀程序代碼,其被配置成響應(yīng)于接收來(lái)自第二流處理節(jié)點(diǎn)的包括流處理結(jié)果和請(qǐng)求標(biāo)識(shí)符的創(chuàng)建響應(yīng)消息而使流處理結(jié)果與服務(wù)器請(qǐng)求相關(guān)。該計(jì)算機(jī)可讀程序代碼還能夠包括被配置成向服務(wù)器發(fā)送包括流處理結(jié)果的寫(xiě)響應(yīng)消息的計(jì)算機(jī)可讀程序代碼。
【專利附圖】
【附圖說(shuō)明】
[0009]圖1是圖示出示例性數(shù)據(jù)處理系統(tǒng)的第一框圖。
[0010]圖2是圖示出根據(jù)在本說(shuō)明內(nèi)公開(kāi)的實(shí)施方式的用于流處理的系統(tǒng)的框圖。
[0011]圖3是圖示出根據(jù)在本說(shuō)明書(shū)內(nèi)公開(kāi)的另一實(shí)施方式的用于流處理的系統(tǒng)的框圖。
[0012]圖4是圖示出根據(jù)在本說(shuō)明書(shū)內(nèi)公開(kāi)的另一實(shí)施方式的使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法的流程圖。
[0013]圖5是圖示出根據(jù)在本說(shuō)明書(shū)內(nèi)公開(kāi)的另一實(shí)施方式的使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法的流程圖。
【具體實(shí)施方式】
[0014]如本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到的,可以將本發(fā)明的各方面體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下完全硬件實(shí)施方式、完全軟件實(shí)施方式(包括固件、駐留軟件、微代碼等)或?qū)④浖陀布矫娼M合的實(shí)施方式的形式,在本文中一般地可將其全部稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各方面還可采取在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中體現(xiàn)的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)具有在其上面體現(xiàn)的、例如存儲(chǔ)的計(jì)算機(jī)可讀程序代碼。
[0015]可利用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更多具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0016]計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括具有在其中體現(xiàn)(例如在基帶中或作為載波的一部分)的計(jì)算機(jī)可讀程序代碼的傳播數(shù)據(jù)信號(hào)。此類傳播信號(hào)可以采取多種形式中的任何一個(gè),包括但不限于電磁、光或其任意適當(dāng)?shù)慕M合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0017]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于——無(wú)線、有線、光纖、電纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言-諸如Java?、Smalltalk、C++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言-諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0018]下面將參照根據(jù)本發(fā)明實(shí)施方式的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的各方面。將理解的是,可以由計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)流程圖和/或方框圖的每個(gè)方框以及流程圖和/或方框圖中的方框的組合。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)、可編程數(shù)據(jù)處理裝置或其他設(shè)備的處理器執(zhí)行時(shí),產(chǎn)生實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0019]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
[0020]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備上,使得在計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。
[0021]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(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)注意的是,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。還應(yīng)注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0022]在本說(shuō)明書(shū)內(nèi)公開(kāi)的一個(gè)或多個(gè)實(shí)施方式涉及流處理,并且更特別地涉及使用客戶端-服務(wù)器型架構(gòu)的流處理。根據(jù)本文公開(kāi)的一個(gè)或多個(gè)實(shí)施方式,能夠?qū)崿F(xiàn)一種在流處理系統(tǒng)內(nèi)結(jié)合超文本傳輸協(xié)議(HTTP)服務(wù)器的功能的系統(tǒng)。如在本說(shuō)明書(shū)內(nèi)描述了HTTP服務(wù)器功能的包括在不必重新設(shè)計(jì)現(xiàn)有HTTP服務(wù)器的情況下促進(jìn)流處理技術(shù)在更多常規(guī)系統(tǒng)內(nèi)的使用。流處理系統(tǒng)能夠作為可用于通過(guò)客戶端-服務(wù)器型架構(gòu)發(fā)布的服務(wù)請(qǐng)求的Web Service (網(wǎng)絡(luò)服務(wù))進(jìn)行操作。
[0023]圖1是圖示出示例性數(shù)據(jù)處理系統(tǒng)(系統(tǒng))100的第一框圖。系統(tǒng)100能夠包括通過(guò)系統(tǒng)總線115被耦合到存儲(chǔ)器元件110的至少一個(gè)處理器105。這樣,系統(tǒng)100能夠?qū)⒊绦虼a存儲(chǔ)在存儲(chǔ)器元件110內(nèi)。處理器105能夠經(jīng)由系統(tǒng)總線115執(zhí)行從存儲(chǔ)器元件110訪問(wèn)的程序代碼。在一個(gè)方面,例如,能夠?qū)⑾到y(tǒng)100實(shí)現(xiàn)為適合于存儲(chǔ)和/或執(zhí)行程序代碼的計(jì)算機(jī)。然而,應(yīng)認(rèn)識(shí)到,能夠以包括能夠執(zhí)行在本說(shuō)明書(shū)內(nèi)描述的功能的處理器和存儲(chǔ)器的任何系統(tǒng)的形式來(lái)實(shí)現(xiàn)系統(tǒng)100。
[0024]存儲(chǔ)器元件110能夠包括一個(gè)或多個(gè)物理存儲(chǔ)器件,諸如,例如本地存儲(chǔ)器120和一個(gè)或多個(gè)大容量存儲(chǔ)器件125。本地存儲(chǔ)器120指的是一般地在程序代碼的實(shí)際執(zhí)行期間使用的隨機(jī)存取存儲(chǔ)器或其他非持久性存儲(chǔ)器件。能夠?qū)⒋笕萘看鎯?chǔ)器件125實(shí)現(xiàn)為硬盤(pán)驅(qū)動(dòng)器或其他持久性數(shù)據(jù)存儲(chǔ)器件。系統(tǒng)100還能夠包括一個(gè)或多個(gè)高速緩沖存儲(chǔ)器(未示出),其提供至少某些程序代碼的臨時(shí)存儲(chǔ),以便減少在執(zhí)行期間必須從大容量存儲(chǔ)器件125檢索程序代碼的次數(shù)。
[0025]能夠可選地將被描述為輸入設(shè)備130和輸出設(shè)備135的輸入/輸出(I/O)設(shè)備率禹合到系統(tǒng)100。輸入設(shè)備130的示例能夠包括但不限于例如鍵盤(pán)、諸如鼠標(biāo)之類的定點(diǎn)設(shè)備等。輸出設(shè)備135的示例能夠包括但不限于例如監(jiān)視器或顯示器、揚(yáng)聲器等。能夠直接地或通過(guò)中間I/O控制器將輸入設(shè)備130和/或輸出設(shè)備135耦合到系統(tǒng)100。還能夠?qū)⒕W(wǎng)絡(luò)適配器140耦合到系統(tǒng)100以使得系統(tǒng)100能夠通過(guò)中間私用或公共網(wǎng)絡(luò)被耦合到其他系統(tǒng)、計(jì)算機(jī)系統(tǒng)、遠(yuǎn)程打印機(jī)和/或遠(yuǎn)程存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器以及以太網(wǎng)卡是能夠與系統(tǒng)100 —起使用的不同類型的網(wǎng)絡(luò)適配器130的示例。
[0026]如在圖1中所示,存儲(chǔ)器元件110能夠存儲(chǔ)應(yīng)用程序145。應(yīng)認(rèn)識(shí)到的是系統(tǒng)100還能夠執(zhí)行能夠促進(jìn)應(yīng)用程序145的執(zhí)行的操作系統(tǒng)(未示出)。能夠由系統(tǒng)100、例如由處理器105來(lái)執(zhí)行以可執(zhí)行程序代碼的形式實(shí)現(xiàn)的應(yīng)用程序145。響應(yīng)于執(zhí)行應(yīng)用程序145,能夠?qū)⑾到y(tǒng)100配置成執(zhí)行如在本文中更詳細(xì)地描述的一個(gè)或多個(gè)操作。
[0027]在一個(gè)方面,例如,系統(tǒng)100能夠表示客戶端數(shù)據(jù)處理系統(tǒng)。在那種情況下,應(yīng)用程序145能夠表示客戶端應(yīng)用程序,其在被執(zhí)行時(shí)將系統(tǒng)100配置成執(zhí)行在本文中參考“客戶端”所述的各種功能??蛻舳说氖纠軌虬ǖ幌抻趥€(gè)人計(jì)算機(jī)、便攜式計(jì)算機(jī)、移動(dòng)電話等。
[0028]在另一方面,系統(tǒng)100能夠表不服務(wù)器。例如,系統(tǒng)100能夠表不HTTP服務(wù)器,在那種情況下,應(yīng)用程序145在被執(zhí)行時(shí)能夠?qū)⑾到y(tǒng)100配置成執(zhí)行HTTP服務(wù)器操作。在另一方面,系統(tǒng)100能夠表示流處理系統(tǒng)的流處理節(jié)點(diǎn),諸如將在本說(shuō)明書(shū)內(nèi)更詳細(xì)地描述的流處理節(jié)點(diǎn)或HTTP流服務(wù)器。相應(yīng)地,應(yīng)用程序145在被執(zhí)行時(shí)能夠?qū)⑾到y(tǒng)100配置成視情況而執(zhí)行HTTP流服務(wù)器和/或流處理節(jié)點(diǎn)操作。
[0029]圖2是圖示出根據(jù)在本說(shuō)明內(nèi)公開(kāi)的實(shí)施方式的用于流處理的系統(tǒng)200的框圖。一般地,諸如系統(tǒng)200之類的流處理系統(tǒng)能夠接收并處理一個(gè)或多個(gè)數(shù)據(jù)流。
[0030]數(shù)據(jù)流能夠指的是能夠是持續(xù)數(shù)據(jù)流或近持續(xù)數(shù)據(jù)流的數(shù)據(jù)流。在某些情況下,數(shù)據(jù)流能夠是如能夠從被配置成連續(xù)地輸出讀數(shù)或測(cè)量的從傳感器接收的實(shí)時(shí)數(shù)據(jù)流。在另一示例中,數(shù)據(jù)流能夠是被實(shí)時(shí)地或近實(shí)時(shí)地更新和發(fā)送、指定證券價(jià)格的市場(chǎng)數(shù)據(jù)。數(shù)據(jù)流的其他示例能夠包括直播新聞饋送內(nèi)容,無(wú)論是文本、音頻、視覺(jué)還是視聽(tīng)形式、診斷數(shù)據(jù)、天氣數(shù)據(jù)等。一般地,數(shù)據(jù)流表示相對(duì)持續(xù)數(shù)據(jù)流,其并不與一般地用基于因特網(wǎng)的網(wǎng)站找到或?qū)崿F(xiàn)的常規(guī)客戶端-服務(wù)器請(qǐng)求響應(yīng)型信息流相對(duì)應(yīng)或相符合。一般地,數(shù)據(jù)流是單向的,并且從產(chǎn)生數(shù)據(jù)流的特定節(jié)點(diǎn)流出。
[0031]如所示,系統(tǒng)200能夠包括多個(gè)流處理節(jié)點(diǎn)205、210、215、220和225。每個(gè)流處理節(jié)點(diǎn)205-225能夠通過(guò)網(wǎng)絡(luò)而被通信鏈接。能夠?qū)⒘魈幚砉?jié)點(diǎn)205和210分別地配置成接收數(shù)據(jù)流230和235。在一個(gè)方面,數(shù)據(jù)流230和/或235能夠源自于系統(tǒng)200外部。一般地,能夠?qū)⒘魈幚砉?jié)點(diǎn)、諸如從在系統(tǒng)外部的源接收數(shù)據(jù)流的流處理節(jié)點(diǎn)205和210。能夠?qū)⒚總€(gè)流處理節(jié)點(diǎn)205-225配置成異步地進(jìn)行操作。例如,能夠?qū)⒚總€(gè)流處理節(jié)點(diǎn)205-225配置成包括單獨(dú)處理器并具有單獨(dú)的工作隊(duì)列。
[0032]流處理節(jié)點(diǎn)205能夠?qū)?shù)據(jù)流230應(yīng)用數(shù)據(jù)處理技術(shù)以確定一個(gè)或多個(gè)度量或從數(shù)據(jù)流230提取數(shù)據(jù)。能夠?qū)⑺玫亩攘亢?或提取數(shù)據(jù)轉(zhuǎn)發(fā)到每個(gè)流處理節(jié)點(diǎn)215和220,如以輸出數(shù)據(jù)流的形式所示。同樣地,流處理節(jié)點(diǎn)210能夠?qū)?shù)據(jù)流235應(yīng)用數(shù)據(jù)處理技術(shù),以確定一個(gè)或多個(gè)度量或從數(shù)據(jù)流235提取數(shù)據(jù)。能夠?qū)⑺玫亩攘亢?或提取數(shù)據(jù)轉(zhuǎn)發(fā)到每個(gè)流處理節(jié)點(diǎn)215和220,如以輸出數(shù)據(jù)流的形式所示。
[0033]流處理節(jié)點(diǎn)215能夠?qū)牧魈幚砉?jié)點(diǎn)205和210接收到的輸出數(shù)據(jù)流應(yīng)用數(shù)據(jù)處理技術(shù),并將一個(gè)或多個(gè)確定的度量和/或提取的數(shù)據(jù)以另一輸出數(shù)據(jù)流的形式輸出到流處理節(jié)點(diǎn)225。同樣地,流處理節(jié)點(diǎn)220能夠從流處理節(jié)點(diǎn)205和210接收到的輸出數(shù)據(jù)流應(yīng)用數(shù)據(jù)處理技術(shù),并將一個(gè)或多個(gè)確定的度量和/或提取的數(shù)據(jù)以另一輸出數(shù)據(jù)流的形式輸出到流處理節(jié)點(diǎn)225。
[0034]流處理節(jié)點(diǎn)225能夠基于從流處理節(jié)點(diǎn)215和220中的每個(gè)接收到的數(shù)據(jù)來(lái)進(jìn)行最后判定或確定最后結(jié)果。還能夠?qū)⒘魈幚砉?jié)點(diǎn)225配置成將信息(例如結(jié)果)發(fā)送到目的地或其他數(shù)據(jù)處理系統(tǒng)。被配置成在系統(tǒng)外部發(fā)送信息的流處理系統(tǒng)的流處理節(jié)點(diǎn)能夠稱為“匯點(diǎn)”(sink)。
[0035]在實(shí)施方式中,作為流處理系統(tǒng)的系統(tǒng)200能夠特征在于需要存儲(chǔ)由流處理節(jié)點(diǎn)205-225處理的很少(如果有的話)的數(shù)據(jù)。在符合客戶端-服務(wù)器架構(gòu)的常規(guī)系統(tǒng)內(nèi),能夠接收并存儲(chǔ)大量的數(shù)據(jù)。通常,數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi)。然后能夠針對(duì)數(shù)據(jù)庫(kù)執(zhí)行查詢,從而要求服務(wù)器具有大量的長(zhǎng)期或固定儲(chǔ)存器。
[0036]比較起來(lái),系統(tǒng)200能夠在不必保存來(lái)自數(shù)據(jù)流230和/或235的數(shù)據(jù)的情況下對(duì)接收數(shù)據(jù)流230和235進(jìn)行操作。能夠?qū)⒚總€(gè)流處理節(jié)點(diǎn)205-225配置成接收數(shù)據(jù)流、對(duì)該數(shù)據(jù)流執(zhí)行處理,并生成能夠被發(fā)送至或提供給一個(gè)或多個(gè)其他節(jié)點(diǎn)的輸出數(shù)據(jù)流。此夕卜,應(yīng)認(rèn)識(shí)到的是能夠存儲(chǔ)如由流處理節(jié)點(diǎn)205-225中的一個(gè)或多個(gè)確定的一個(gè)或多個(gè)中間結(jié)果和/或最后結(jié)果,如果這樣期望的話。
[0037]由流處理節(jié)點(diǎn)205-225產(chǎn)生的各種數(shù)據(jù)流能夠在輸出的每個(gè)相應(yīng)數(shù)據(jù)流內(nèi)包括請(qǐng)求或其他消息。該消息例如允許流處理節(jié)點(diǎn)205-225傳送與流處理節(jié)點(diǎn)205-225的系統(tǒng)級(jí)功能或操作狀態(tài)有關(guān)的特定操作數(shù)據(jù)和/或指令。
[0038]在一個(gè)方面,能夠在不同的數(shù)據(jù)處理系統(tǒng)內(nèi)實(shí)現(xiàn)每個(gè)流處理節(jié)點(diǎn)205-225。然而,在本說(shuō)明書(shū)內(nèi)公開(kāi)的一個(gè)或多個(gè)實(shí)施方式并不意圖在這方面受到限制。例如,在另一方面,能夠在同一數(shù)據(jù)處理系統(tǒng)內(nèi)實(shí)現(xiàn)流處理節(jié)點(diǎn)205-225中的一個(gè)或多個(gè)。例如,能夠在單個(gè)數(shù)據(jù)處理系統(tǒng)內(nèi)實(shí)現(xiàn)諸如流處理節(jié)點(diǎn)215和流處理節(jié)點(diǎn)220之類的兩個(gè)或更多流處理節(jié)點(diǎn)。
[0039]如圖2中所示,系統(tǒng)200能夠從流處理節(jié)點(diǎn)225(匯點(diǎn))接收流處理節(jié)點(diǎn)205和210(源)內(nèi)的數(shù)據(jù)流并發(fā)送結(jié)果。系統(tǒng)200不同于其中來(lái)自客戶端的請(qǐng)求被節(jié)點(diǎn)接收且該節(jié)點(diǎn)向客戶端返回響應(yīng)的常規(guī)客戶端-服務(wù)器系統(tǒng)。通過(guò)從接收到請(qǐng)求的同一節(jié)點(diǎn)向客戶端提供響應(yīng),能夠保持客戶端和服務(wù)器之間的連接或通信鏈路形式的密切關(guān)系(affinity)。在常規(guī)流處理系統(tǒng)內(nèi),如參考圖2舉例說(shuō)明的,數(shù)據(jù)流入一個(gè)或多個(gè)流處理節(jié)點(diǎn)中,并從一個(gè)或多個(gè)不同的流處理節(jié)點(diǎn)離開(kāi)。相應(yīng)地,保持與客戶端的密切關(guān)系以支持在客戶端-服務(wù)器型系統(tǒng)中使用的請(qǐng)求-響應(yīng)性的交易模型在常規(guī)流處理系統(tǒng)的情況下是不可行的。
[0040]為了使流處理系統(tǒng)表現(xiàn)得像遵守客戶端-服務(wù)器模型或架構(gòu)的Web服務(wù)器,必須在客戶端與源和流處理系統(tǒng)的匯點(diǎn)與客戶端之間保持密切關(guān)系,使得匯點(diǎn)知道結(jié)果將被發(fā)送到的特定客戶端。在一個(gè)實(shí)施方式中,能夠通過(guò)在流處理節(jié)點(diǎn)之間傳播客戶端上下文信息來(lái)保持與請(qǐng)求客戶端的密切關(guān)系,使得不丟失流處理節(jié)點(diǎn)與客戶端和/或客戶端請(qǐng)求之間的關(guān)聯(lián)。例如,為了保持向請(qǐng)求客戶端提供響應(yīng)的能力,由每個(gè)流處理節(jié)點(diǎn)205-225產(chǎn)生的輸出能夠包括用于發(fā)起被執(zhí)行的流處理的特定客戶端請(qǐng)求的上下文信息。當(dāng)保持密切關(guān)系(例如用于識(shí)別客戶端和向哪里發(fā)送響應(yīng)的接收客戶端請(qǐng)求的上下文信息)時(shí),流處理系統(tǒng)能夠確定向哪里發(fā)送客戶端響應(yīng)。
[0041]圖3是圖示出根據(jù)在本說(shuō)明內(nèi)公開(kāi)的實(shí)施方式的用于流處理的系統(tǒng)300的框圖。如所示,系統(tǒng)300能夠包括HTTP服務(wù)器305、HTTP流服務(wù)器(流服務(wù)器)310以及標(biāo)記為1-N的一個(gè)或多個(gè)流處理節(jié)點(diǎn),其中“N”是大于或等于一的整數(shù)值。應(yīng)認(rèn)識(shí)到的是雖然系統(tǒng)300被示為包括三個(gè)處理節(jié)點(diǎn),例如流處理節(jié)點(diǎn)1、2、...、N,但系統(tǒng)300能夠包括較少的流處理節(jié)點(diǎn),例如I或2個(gè),或者被配置成用于如參考圖2所述的流處理的更多流處理節(jié)點(diǎn)。HTTP服務(wù)器305、流服務(wù)器310以及流處理節(jié)點(diǎn)1、2.....N能夠通過(guò)網(wǎng)絡(luò)被通信鏈接。
[0042]一般地,系統(tǒng)300圖示出其中能夠使用客戶端上下文信息來(lái)保持請(qǐng)求客戶端(未示出)、例如發(fā)布客戶端請(qǐng)求的客戶端與系統(tǒng)300的源和匯點(diǎn)之間的密切關(guān)系。在系統(tǒng)300內(nèi),能夠?qū)⒘鞣?wù)器310配置成充當(dāng)源和匯點(diǎn)兩者以輔助處理HTTP請(qǐng)求。隨著流處理的發(fā)
生而通過(guò)從HTTP服務(wù)器305、到流服務(wù)器310、以及在系統(tǒng)300的流處理節(jié)點(diǎn)1、2.....N之
間傳遞客戶端上下文信息,能夠使流處理結(jié)果與原始客戶端請(qǐng)求相關(guān)并返回給客戶端。如
所討論的,能夠?qū)⒚總€(gè)流處理節(jié)點(diǎn)1、2.....N配置成異步地操作。HTTP服務(wù)器305和流服
務(wù)器310的合作操作,這允許系統(tǒng)300至少向諸如客戶端之類的外部系統(tǒng)呈現(xiàn)為異步系統(tǒng)。[0043]能夠?qū)TTP服務(wù)器305配置成從客戶端接收客戶端請(qǐng)求315??蛻舳苏?qǐng)求15能夠請(qǐng)求能夠由諸如系統(tǒng)300之類的流處理系統(tǒng)來(lái)計(jì)算或確定的數(shù)據(jù)。在一個(gè)方面,HTTP服務(wù)器305能夠分配處理線程以處置客戶端請(qǐng)求315的處理。能夠由HTTP服務(wù)器305內(nèi)的線程標(biāo)識(shí)符來(lái)識(shí)別用于處理客戶端請(qǐng)求315的處理線程。
[0044]在處理線程內(nèi),HTTP服務(wù)器305能夠創(chuàng)建到客戶端的返回連接320。例如,能夠?qū)TTP服務(wù)器305配置成創(chuàng)建返回連接320以返回TCP/IP套接字的形式用于從HTTP服務(wù)器305向客戶端發(fā)送客戶端響應(yīng)375。HTTP服務(wù)器305例如能夠使用客戶端地址和端口來(lái)創(chuàng)建返回連接320。應(yīng)認(rèn)識(shí)到的是,用于處置也負(fù)責(zé)創(chuàng)建返回連接320的客戶端請(qǐng)求315的線程有效地存儲(chǔ)返回連接320。例如,HTTP服務(wù)器305內(nèi)的處理線程能夠存儲(chǔ)或包括返回連接信息,例如建立返回連接320所需的信息。
[0045]HTTP服務(wù)器305還能夠向流服務(wù)器310提交服務(wù)器請(qǐng)求325。服務(wù)器請(qǐng)求325能夠包括客戶端上下文信息。在實(shí)施方式中,由服務(wù)器請(qǐng)求325指定的客戶端上下文信息能夠包括某些或所有客戶端請(qǐng)求。在一個(gè)方面,客戶端上下文信息還能夠包括返回連接信息,例如返回連接參考或識(shí)別與客戶端的返回連接320的其他信息。在一個(gè)示例中,能夠由線程標(biāo)識(shí)符來(lái)指定或作為線程標(biāo)識(shí)符來(lái)發(fā)送返回連接信息,該線程標(biāo)識(shí)符指定處置客戶端請(qǐng)求315的HTTP服務(wù)器305內(nèi)的處理線程。通過(guò)HTTP服務(wù)器305提供客戶端上下文信息,流服務(wù)器310能夠保持與客戶端的密切關(guān)系,盡管并不直接從客戶端接收任何客戶端請(qǐng)求。
[0046]在一個(gè)示例中,能夠以“處置”方法的形式來(lái)實(shí)現(xiàn)服務(wù)器請(qǐng)求325。HTTP服務(wù)器305能夠創(chuàng)建指定客戶端上下文信息的請(qǐng)求對(duì)象和響應(yīng)對(duì)象。例如,該請(qǐng)求對(duì)象能夠包括整個(gè)的客戶端請(qǐng)求、客戶端請(qǐng)求的一部分、諸如cookies的客戶端請(qǐng)求的一個(gè)或多個(gè)參數(shù)和/或其他相關(guān)客戶端信息。響應(yīng)對(duì)象能夠指定用于客戶端請(qǐng)求的返回連接信息。例如,該響應(yīng)對(duì)象能夠指定返回TCP/IP套接字的客戶端地址和端口。在另一示例中,如所述,響應(yīng)對(duì)象能夠指定線程標(biāo)識(shí)符。
[0047]能夠?qū)⒄?qǐng)求對(duì)象和響應(yīng)對(duì)象從HTTP服務(wù)器305傳遞至一個(gè)或多個(gè)其他處理節(jié)點(diǎn),例如流服務(wù)器310。響應(yīng)于客戶端請(qǐng)求315和返回連接320的創(chuàng)建,HTTP服務(wù)器305能夠調(diào)用處置方法并向流服務(wù)器310傳遞一個(gè)或多個(gè)自變量,例如請(qǐng)求對(duì)象和響應(yīng)對(duì)象。在實(shí)施方式中,能夠?qū)TTP服務(wù)器305配置成阻止處置方法直至處置方法返回為止。例如,能夠使得在其內(nèi)部執(zhí)行處置方法的處理線程為空閑。
[0048]能夠使用多種已知編程技術(shù)中的任何一個(gè)來(lái)使HTTP服務(wù)器305內(nèi)的處理線程空閑。例如,能夠使用條件變量來(lái)使處理線程空閑??臻e的處理線程有效地等待條件變量的值改變,從而進(jìn)入睡眠或空閑狀態(tài)。當(dāng)事件發(fā)生時(shí),諸如就從流服務(wù)器310接收流處理結(jié)果形式的處置方法的返回,活動(dòng)的另一處理線程能夠用信號(hào)通知正在等待可用于變成活動(dòng)的條件的空閑處理線程。相應(yīng)地,空閑線程能夠喚醒并重新開(kāi)始活動(dòng)。
[0049]能夠?qū)⒘鞣?wù)器310配置成填充從HTTP服務(wù)器305接收到的響應(yīng)對(duì)象作為服務(wù)器請(qǐng)求325的一部分。當(dāng)處置方法返回時(shí),例如,當(dāng)流服務(wù)器310向HTTP服務(wù)器305發(fā)送回已填充響應(yīng)對(duì)象時(shí),能夠?qū)TTP服務(wù)器305配置成向客戶端發(fā)送回客戶端響應(yīng)375。
[0050]繼續(xù),響應(yīng)于服務(wù)器請(qǐng)求325,流服務(wù)器310能夠執(zhí)行生成請(qǐng)求標(biāo)識(shí)符的創(chuàng)建請(qǐng)求標(biāo)識(shí)符操作330。流服務(wù)器310例如能夠創(chuàng)建唯一地識(shí)別或?qū)?yīng)于服務(wù)器請(qǐng)求325和因此的客戶端請(qǐng)求315的請(qǐng)求標(biāo)識(shí)符。在實(shí)施方式中,能夠使用散列函數(shù)來(lái)創(chuàng)建能夠是整數(shù)值的請(qǐng)求標(biāo)識(shí)符。例如,流服務(wù)器310能夠使從請(qǐng)求對(duì)象、響應(yīng)對(duì)象或從請(qǐng)求對(duì)象和響應(yīng)對(duì)象兩者導(dǎo)出的客戶端上下文信息散列。
[0051]流服務(wù)器305能夠執(zhí)行存儲(chǔ)操作335,其中,流服務(wù)器310能夠與在服務(wù)器請(qǐng)求325內(nèi)接收到的客戶端上下文信息相關(guān)聯(lián)地存儲(chǔ)請(qǐng)求標(biāo)識(shí)符。例如,流服務(wù)器310能夠?qū)⒖蛻舳松舷挛男畔⒒蚱湟徊糠执鎯?chǔ)在存儲(chǔ)于存儲(chǔ)器中的上下文詞典內(nèi)。根據(jù)請(qǐng)求標(biāo)識(shí)符,能夠?qū)ι舷挛脑~典設(shè)置秘鑰。相應(yīng)地,能夠使用請(qǐng)求標(biāo)識(shí)符來(lái)索引到上下文詞典,以在需要時(shí)檢索關(guān)聯(lián)客戶端上下文信息。存儲(chǔ)的客戶端上下文信息能夠包括響應(yīng)對(duì)象和/或線程標(biāo)識(shí)
符。例如,響應(yīng)于從流處理節(jié)點(diǎn)1、2.....N接收到包括請(qǐng)求標(biāo)識(shí)符的任何流處理結(jié)果,流服
務(wù)器310能夠基于流處理結(jié)果內(nèi)的請(qǐng)求標(biāo)識(shí)符,使接收到的流處理結(jié)果與適當(dāng)?shù)姆?wù)器請(qǐng)求、客戶端、客戶端請(qǐng)求和/或返回連接信息相關(guān)。
[0052]已生成并存儲(chǔ)請(qǐng)求標(biāo)識(shí)符,能夠?qū)⒘鞣?wù)器310配置成生成流處理請(qǐng)求340并將
其發(fā)送到流處理節(jié)點(diǎn)I。在一個(gè)示例中,流處理請(qǐng)求340能夠是在流處理節(jié)點(diǎn)1、2.....N
之間從流服務(wù)器310傳遞的“呈現(xiàn)”方法。該呈現(xiàn)方法能夠包括多個(gè)參數(shù),其包括統(tǒng)一資源標(biāo)識(shí)符(URI)或統(tǒng)一資源定位符(URL)用于識(shí)別流服務(wù)器310、客戶端請(qǐng)求315或其一部分(例如,諸如cookies之類的客戶端請(qǐng)求315的參數(shù))以及由流服務(wù)器310生成的請(qǐng)求標(biāo)識(shí)符。
[0053]如所示,能夠?qū)⒘魈幚砉?jié)點(diǎn)I配置成接收被表示為“其他數(shù)據(jù)流”的數(shù)據(jù)流,以示
出除在流處理節(jié)點(diǎn)1、2.....N之間生成數(shù)據(jù)流之外,流處理節(jié)點(diǎn)1、2.....N中的一個(gè)或多
個(gè)還能夠從外部節(jié)點(diǎn)(例如另一系統(tǒng)、傳感器等)接收數(shù)據(jù)流。在任何情況下,能夠?qū)⒘魈幚砉?jié)點(diǎn)1、2.....N中的每一個(gè)配置成至少處理來(lái)自系統(tǒng)300的另一流處理節(jié)點(diǎn)的輸出數(shù)據(jù)流。
[0054]響應(yīng)于接收到流處理請(qǐng)求340,能夠?qū)⒘魈幚砉?jié)點(diǎn)I配置成執(zhí)行一個(gè)或多個(gè)流處理功能并生成部分響應(yīng)。來(lái)自流處理節(jié)點(diǎn)I的部分響應(yīng)(被稱為部分響應(yīng)I)能夠包括在從流處理器節(jié)點(diǎn)I生成并發(fā)送到流處理節(jié)點(diǎn)2的另一流處理請(qǐng)求345內(nèi)。例如,流處理節(jié)點(diǎn)I能夠生成并發(fā)送流處理請(qǐng)求345。能夠以另一呈現(xiàn)方式的形式來(lái)實(shí)現(xiàn)流處理請(qǐng)求345,該另一呈現(xiàn)方法具有諸如流服務(wù)器310的URI或URL、客戶端請(qǐng)求315或其一部分、由流服務(wù)器310生成的請(qǐng)求標(biāo)識(shí)符以及部分響應(yīng)I之類的自變量。
[0055]響應(yīng)于接收到流處理請(qǐng)求345,能夠?qū)⒘魈幚砉?jié)點(diǎn)2配置成執(zhí)行一個(gè)或多個(gè)流處理功能并生成部分響應(yīng)。在本示例中,來(lái)自流處理節(jié)點(diǎn)2的部分響應(yīng)(被稱為部分響應(yīng)2)能夠包括在能夠從流處理節(jié)點(diǎn)2生成并發(fā)送到流處理節(jié)點(diǎn)N的另一流處理請(qǐng)求350內(nèi)。例如,流處理節(jié)點(diǎn)2能夠生成并發(fā)送流處理請(qǐng)求350。能夠以另一呈現(xiàn)方式的形式來(lái)實(shí)現(xiàn)流處理請(qǐng)求350,該另一呈現(xiàn)方法具有諸如流服務(wù)器310的URI或URL、客戶端請(qǐng)求315或其一部分、由流服務(wù)器310生成的請(qǐng)求標(biāo)識(shí)符、部分響應(yīng)I以及部分響應(yīng)2之類的自變量。
[0056]響應(yīng)于接收到流處理請(qǐng)求350,能夠?qū)⒘魈幚砉?jié)點(diǎn)N配置成執(zhí)行一個(gè)或多個(gè)流處理功能并生成部分響應(yīng)。來(lái)自流處理節(jié)點(diǎn)N的部分響應(yīng)(被稱為部分響應(yīng)N)能夠包括在能夠從流處理節(jié)點(diǎn)N發(fā)送到流服務(wù)器310的創(chuàng)建響應(yīng)消息355內(nèi)。創(chuàng)建響應(yīng)消息355能夠包括或指定例如請(qǐng)求標(biāo)識(shí)符和響應(yīng)主體。能夠?qū)⒃擁憫?yīng)主體視為對(duì)客戶端請(qǐng)求315的完全響應(yīng),例如作為回答的流處理結(jié)果。更特別地,響應(yīng)主體能夠包括部分響應(yīng)1、部分響應(yīng)2.....部分響應(yīng)N,從而形成流處理結(jié)果。[0057]在另一實(shí)施方式中,并不是每個(gè)節(jié)點(diǎn)都需要貢獻(xiàn)被包括在流處理結(jié)果內(nèi)的部分響應(yīng)。例如,能夠?qū)⒁粋€(gè)或多個(gè)流處理節(jié)點(diǎn)配置成生成能夠被其他“下游”流處理節(jié)點(diǎn)使用或消耗的中間結(jié)果。該中間結(jié)果不需要包括在流處理結(jié)果內(nèi)。然而,在此意義上,仍能將此類流處理節(jié)點(diǎn)描述為向流處理結(jié)果貢獻(xiàn)部分響應(yīng)。
[0058]應(yīng)認(rèn)識(shí)到的是能夠?qū)⒅T如流處理節(jié)點(diǎn)1、流處理節(jié)點(diǎn)2至流處理節(jié)點(diǎn)N之類的系統(tǒng)300的各種節(jié)點(diǎn)配置或編程為將輸出指引到特定其他節(jié)點(diǎn)。例如,能夠?qū)⒘魈幚砉?jié)點(diǎn)I配置成將能夠包括流處理請(qǐng)求345的輸出數(shù)據(jù)流指引到流處理節(jié)點(diǎn)2。能夠?qū)⒘魈幚砉?jié)點(diǎn)2配置成將能夠包括流處理請(qǐng)求350的輸出數(shù)據(jù)流指引到流處理節(jié)點(diǎn)N。能夠?qū)⒘魈幚砉?jié)點(diǎn)N配置為流處理節(jié)點(diǎn)中的最后一個(gè),并且同樣地能夠?qū)⑵渑渲脼橄蛄鞣?wù)器310發(fā)送創(chuàng)建響應(yīng)消息355。
[0059]繼續(xù),響應(yīng)于接收到創(chuàng)建響應(yīng)消息355,能夠?qū)⒘鞣?wù)器310配置成執(zhí)行檢索響應(yīng)操作360。檢索響應(yīng)操作360能夠重新調(diào)用先前存儲(chǔ)的客戶端上下文信息。如所述,創(chuàng)建響應(yīng)消息355能夠指定請(qǐng)求標(biāo)識(shí)符,其能夠用來(lái)索引到上下文詞典中以檢索存儲(chǔ)的客戶端上下文信息。
[0060]流服務(wù)器310還能夠生成寫(xiě)響應(yīng)消息365并將其發(fā)送到HTTP服務(wù)器305。流服務(wù)器310能夠生成寫(xiě)響應(yīng)消息365,該寫(xiě)響應(yīng)消息365能夠指定例如線程標(biāo)識(shí)符之類的檢索客戶端上下文信息以及響應(yīng)主體。例如,流服務(wù)器305能夠在從上下文詞典檢索的客戶端上下文信息的響應(yīng)對(duì)象部分內(nèi)填充如在從流處理節(jié)點(diǎn)N檢索的響應(yīng)主體中指定的流處理結(jié)果,并將所得的消息以寫(xiě)響應(yīng)消息365的形式轉(zhuǎn)發(fā)至HTTP服務(wù)器305。如所述,寫(xiě)響應(yīng)消息365還能夠指定線程標(biāo)識(shí)符。在實(shí)施方式中,能夠在被存儲(chǔ)在上下文詞典內(nèi)的響應(yīng)對(duì)象內(nèi)包括線程標(biāo)識(shí)符。在這方面,線程標(biāo)識(shí)在其中的響應(yīng)主體填充之前能夠已經(jīng)在響應(yīng)對(duì)象內(nèi)。
[0061]在實(shí)施方式中,能夠?qū)?xiě)響應(yīng)消息365視為處置方法對(duì)HTTP服務(wù)器305的返回。響應(yīng)于接收到寫(xiě)響應(yīng)消息365,能夠?qū)TTP服務(wù)器305配置成停止阻止處置方法并繼續(xù)操作以對(duì)客戶端請(qǐng)求315進(jìn)行響應(yīng)。如所述,例如,HTTP服務(wù)器305能夠根據(jù)在寫(xiě)響應(yīng)消息365內(nèi)接收到的線程標(biāo)識(shí)符的確定而喚醒空閑處理線程。已喚醒由線程標(biāo)識(shí)符指定的處理線程的HTTP服務(wù)器305能夠繼續(xù)處理客戶端請(qǐng)求315以生成客戶端響應(yīng)375并將其發(fā)送到客戶端。如所述,處理線程包括或指定用于連接320的信息,HTTP服務(wù)器305能夠通過(guò)該返回連接320來(lái)發(fā)送客戶端響應(yīng)375??蛻舳隧憫?yīng)375能夠包括如由系統(tǒng)300、例如由流處理節(jié)點(diǎn)N確定的流處理結(jié)果。
[0062]在圖3內(nèi),在每個(gè)節(jié)點(diǎn)下面向下延伸的矩形框指示其中在交易中涉及到節(jié)點(diǎn)或者節(jié)點(diǎn)正在處理交易的那部分時(shí)間。如所示,從接收到客戶端請(qǐng)求315的時(shí)間到發(fā)送客戶端響應(yīng)375的時(shí)間涉及到HTTP服務(wù)器305。與HTTP服務(wù)器305相比在較少的時(shí)間涉及到與
流處理節(jié)點(diǎn)1、2.....N交互的流服務(wù)器310。與流服務(wù)器310相比在較少的時(shí)間涉及到每
個(gè)流處理節(jié)點(diǎn)1、2.....N。
[0063]圖4是圖示出根據(jù)在本說(shuō)明書(shū)內(nèi)公開(kāi)的另一實(shí)施方式的、使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法400的流程圖。能夠用參考圖1-3所述的系統(tǒng)來(lái)實(shí)現(xiàn)方法400。更特別地,方法400圖示出能夠用參考圖3所述的HTTP服務(wù)器實(shí)現(xiàn)的處理的方法。
[0064]方法400能夠在步驟405中開(kāi)始,其中HTTP服務(wù)器能夠從客戶端接收客戶端請(qǐng)求。在步驟410中,HTTP服務(wù)器能夠確定當(dāng)前所使用的許多處理線程是否超過(guò)處理線程的閾值數(shù)目。當(dāng)正在使用的處理線程的數(shù)目超過(guò)處理線程的閾值數(shù)目時(shí),方法400能夠前進(jìn)至步驟415。在步驟415中,HTTP服務(wù)器能夠拒絕輸入的客戶端請(qǐng)求或者簡(jiǎn)單地不進(jìn)行響應(yīng)。通過(guò)限制可用處理線程的數(shù)目,HTTP服務(wù)器能夠防止流處理系統(tǒng)的泛洪。在步驟415之后,方法400能夠環(huán)回至步驟405以進(jìn)一步處理客戶端請(qǐng)求。當(dāng)在HTTP服務(wù)器內(nèi)所使用的處理線程的數(shù)目不超過(guò)處理線程的閾值數(shù)目時(shí),方法400能夠前進(jìn)至步驟420。
[0065]在步驟420中,響應(yīng)于客戶端請(qǐng)求,HTTP服務(wù)器能夠分配處理線程以處置客戶端請(qǐng)求。在一方面,HTTP服務(wù)器能夠創(chuàng)建新的處理線程并分配新創(chuàng)建的處理線程以處置客戶端請(qǐng)求。在另一方面,HTTP服務(wù)器能夠分配可用處理線程以處置客戶端請(qǐng)求。
[0066]在步驟425中,響應(yīng)于客戶端請(qǐng)求,HTTP服務(wù)器能夠與客戶端建立返回連接。HTTP服務(wù)器能夠在分配的處理線程內(nèi)創(chuàng)建返回連接。如所述,能夠由線程標(biāo)識(shí)符來(lái)指定處理線程。在步驟430中,HTTP服務(wù)器能夠向流服務(wù)器發(fā)送服務(wù)器請(qǐng)求。例如,HTTP服務(wù)器能夠?qū)崿F(xiàn)在分配的處理線程上執(zhí)行的處置方法。該服務(wù)器請(qǐng)求能夠包括例如客戶端請(qǐng)求或其一部分以及線程標(biāo)識(shí)符。
[0067]在步驟435中,HTTP服務(wù)器能夠開(kāi)始等待來(lái)自流服務(wù)器的結(jié)果。在實(shí)施方式中,HTTP服務(wù)器能夠使分配給客戶端請(qǐng)求的處理線程空閑。如參考圖3所討論的,例如,HTTP服務(wù)器能夠在對(duì)客戶端進(jìn)行響應(yīng)之前等待來(lái)自流服務(wù)器的流處理結(jié)果,例如處置方法的返回。相應(yīng)地,HTTP服務(wù)器能夠至少相對(duì)于客戶端請(qǐng)求進(jìn)入等待狀態(tài),其中,分配給客戶端請(qǐng)求的處理線程被保持在空閑狀態(tài),直至從流服務(wù)器接收到響應(yīng)。然而,HTTP服務(wù)器能夠在等待來(lái)自流服務(wù)器的響應(yīng)的同時(shí)繼續(xù)服務(wù)于來(lái)自其他接收客戶端請(qǐng)求。
[0068]在步驟440中,響應(yīng)于從流服務(wù)器接收到指定線程標(biāo)識(shí)符的寫(xiě)響應(yīng)消息,HTTP服務(wù)器能夠使由線程標(biāo)識(shí)符指定的處理線程、例如空閑的處理線程返回至活動(dòng)狀態(tài)。如所討論的,寫(xiě)響應(yīng)消息能夠包括響應(yīng)對(duì)象,其還能夠包括來(lái)自流處理節(jié)點(diǎn)的流處理結(jié)果和線程標(biāo)識(shí)符。HTTP服務(wù)器能夠?qū)⒂删€程標(biāo)識(shí)符指定的空閑線程返回活動(dòng)狀態(tài)。應(yīng)認(rèn)識(shí)到的是由于HTTP服務(wù)器能夠同時(shí)地服務(wù)于多個(gè)客戶端請(qǐng)求并具有多個(gè)未解決服務(wù)器請(qǐng)求,所以HTTP服務(wù)器能夠具有同時(shí)存在的超過(guò)一個(gè)空閑處理線程。相應(yīng)地,HTTP服務(wù)器能夠選擇由寫(xiě)響應(yīng)消息中的線程標(biāo)識(shí)符指定的所述多個(gè)空閑處理線程中的一個(gè)。HTTP服務(wù)器能夠響應(yīng)于接收到用于該處理線程的流處理結(jié)果,而使所選空閑處理線程返回至活動(dòng)狀態(tài)。在步驟445中,HTTP服務(wù)器能夠通過(guò)在已激活處理線程內(nèi)指定的返回連接,將指定由流處理節(jié)點(diǎn)確定的流處理結(jié)果的客戶端響應(yīng)發(fā)送到客戶端。
[0069]應(yīng)認(rèn)識(shí)到的是當(dāng)發(fā)生錯(cuò)誤時(shí),例如在預(yù)定或最小時(shí)間量?jī)?nèi)沒(méi)有從流服務(wù)器接收到寫(xiě)響應(yīng)消息,能夠?qū)TTP服務(wù)器配置成釋放分配以處置客戶端請(qǐng)求的處理線程,使得處理線程可用于其他處理任務(wù)。例如,在最小時(shí)間量到期之后,HTTP服務(wù)器能夠假定在流服務(wù)器和/或流處理節(jié)點(diǎn)中的一個(gè)或多個(gè)內(nèi)發(fā)生錯(cuò)誤,使得來(lái)自流服務(wù)器的寫(xiě)響應(yīng)消息將不會(huì)出現(xiàn)。
[0070]圖5是圖示出根據(jù)在本說(shuō)明書(shū)內(nèi)公開(kāi)的另一實(shí)施方式的使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法500的流程圖。能夠用參考圖1-3所述的系統(tǒng)來(lái)實(shí)現(xiàn)方法500。更特別地,方法500圖示出能夠用參考圖3所述的流服務(wù)器實(shí)現(xiàn)的處理的方法。例如能夠與方法400同時(shí)地執(zhí)行方法500。更特別地,能夠在處理線程為空閑的或者HTTP服務(wù)器內(nèi)的處置方法被阻止的同時(shí)執(zhí)行方法500。[0071]方法500能夠在步驟505中開(kāi)始,其中流服務(wù)器能夠從HTTP服務(wù)器接收服務(wù)器請(qǐng)求。例如,能夠?qū)⒘鞣?wù)器配置成在端口上偵聽(tīng)來(lái)自HTTP服務(wù)器的服務(wù)器請(qǐng)求。在步驟510中,流服務(wù)器能夠確定上下文詞典中的條目的數(shù)目是否小于條目的閾值數(shù)目。當(dāng)上下文詞典中的條目的數(shù)目小于條目的閾值數(shù)目時(shí),方法500能夠前進(jìn)至步驟515。當(dāng)上下文詞典中的條目的數(shù)目小于條目的閾值數(shù)目時(shí),方法500能夠前進(jìn)至步驟520。
[0072]在步驟515中,流服務(wù)器能夠拒絕從HTTP服務(wù)器接收到的服務(wù)器請(qǐng)求。限制上下文詞典中的條目的數(shù)目能夠幫助防止流處理系統(tǒng)被客戶端請(qǐng)求過(guò)載。在步驟515之后,方法500能夠環(huán)回至步驟505以繼續(xù)處理來(lái)自HTTP服務(wù)器的其他服務(wù)器請(qǐng)求。
[0073]在步驟520中,流服務(wù)器能夠響應(yīng)于其中指定的客戶端上下文信息的服務(wù)器請(qǐng)求而生成請(qǐng)求標(biāo)識(shí)符。在步驟525中,流服務(wù)器能夠存儲(chǔ)請(qǐng)求標(biāo)識(shí)符和客戶端上下文信息。如所述,例如,流服務(wù)器能夠?qū)⒖蛻舳松舷挛男畔⒆鳛槟軌蚴褂谜?qǐng)求標(biāo)識(shí)符設(shè)置關(guān)鍵字或編索引的條目存儲(chǔ)在上下文詞典內(nèi)。
[0074]在步驟530中,流服務(wù)器能夠生成流處理請(qǐng)求。流服務(wù)器能夠在流處理請(qǐng)求內(nèi)包括請(qǐng)求標(biāo)識(shí)符。能夠?qū)⒄?qǐng)求標(biāo)識(shí)符包括在由每個(gè)流處理節(jié)點(diǎn)生成的輸出數(shù)據(jù)內(nèi)。識(shí)別信息的傳播允許使流處理結(jié)果與客戶端請(qǐng)求相關(guān),并且還允許流處理系統(tǒng)與客戶端保持密切關(guān)系O
[0075]在步驟535中,流服務(wù)器能夠?qū)⒘魈幚碚?qǐng)求發(fā)送到第一流處理節(jié)點(diǎn)。在步驟540中,流服務(wù)器能夠從響應(yīng)于客戶端請(qǐng)求而正在執(zhí)行的流處理中涉及到的最后或最終的流處理節(jié)點(diǎn),接收作為輸出數(shù)據(jù)流的一部分的創(chuàng)建響應(yīng)消息。如所述,創(chuàng)建響應(yīng)消息能夠指定來(lái)自流處理節(jié)點(diǎn)的請(qǐng)求標(biāo)識(shí)符和流處理結(jié)果。
[0076]在步驟545中,流服務(wù)器能夠檢索客戶端上下文信息。例如,流服務(wù)器能夠使用來(lái)自創(chuàng)建響應(yīng)消息的請(qǐng)求標(biāo)識(shí)符從上下文詞典檢索客戶端上下文信息。在步驟550中,流服務(wù)器能夠向HTTP服務(wù)器發(fā)送返回寫(xiě)響應(yīng)消息。如所述,流服務(wù)器能夠利用從上下文詞典檢索的客戶端上下文信息來(lái)確定要將寫(xiě)響應(yīng)消息指引到那里??蛻舳松舷挛男畔⒛軌虬ň€程標(biāo)識(shí)符,流服務(wù)器能夠?qū)⑵浒ㄔ诎l(fā)送到HTTP服務(wù)器的寫(xiě)響應(yīng)消息內(nèi)。相應(yīng)地,HTTP服務(wù)器能夠按照響應(yīng)對(duì)象內(nèi)的指定將包括來(lái)自流處理系統(tǒng)的流處理結(jié)果的客戶端響應(yīng)發(fā)送回到客戶端。
[0077]在步驟555中,流服務(wù)器能夠刪除對(duì)應(yīng)于所處理的請(qǐng)求標(biāo)識(shí)符的上下文詞典中的條目,從而減少上下文詞典中的條目的數(shù)目。應(yīng)認(rèn)識(shí)到的是雖然圖5中未示出,但能夠在流服務(wù)器內(nèi)實(shí)現(xiàn)其他錯(cuò)誤處置程序。例如,在一個(gè)方面,能夠在預(yù)定或最小時(shí)間量之后刪除或清除上下文詞典中的條目。在該最小時(shí)間量到期之后,流服務(wù)器能夠認(rèn)為在流處理節(jié)點(diǎn)中的一個(gè)或多個(gè)內(nèi)發(fā)生錯(cuò)誤,并且創(chuàng)建響應(yīng)消息將不會(huì)出現(xiàn)。
[0078]在此使用的術(shù)語(yǔ)僅是為了描述特定實(shí)施方式,而并不旨在限制本發(fā)明。本文所使用的單數(shù)形式“一”、“一個(gè)”和“該”意圖也包括復(fù)數(shù)形式,除非上下文另外明確地指出。還將理解,當(dāng)在說(shuō)明書(shū)中使用時(shí),術(shù)語(yǔ)“包括”和/或“包含”指明存在所述的特征、整數(shù)、步驟、操作、元件和/或組件,但不排除存在或附加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件和/或組件。
[0079]以下權(quán)利要求中的所有裝置或步驟加功能元件的相應(yīng)結(jié)構(gòu)、材料、動(dòng)作以及等效物(如果有的話)意圖包括用于與其他權(quán)利要求要素相結(jié)合地執(zhí)行功能的任何結(jié)構(gòu)、材料或動(dòng)作,如具體地要求保護(hù)的那樣。呈現(xiàn)本發(fā)明的說(shuō)明是為了示出和描述的作用,但不是窮盡性的或?qū)⒈景l(fā)明限制于所公開(kāi)的形式。在不脫離本發(fā)明的范圍的情況下,許多修改和變化對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)是明顯的。選擇和描述實(shí)施方式是為了最佳地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并使得本領(lǐng)域普通技術(shù)人員能針對(duì)適于考慮的特定用途的具有各種修改的各種實(shí)施方式理解本發(fā)明。
【權(quán)利要求】
1.一種使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法,所述方法包括: 接收來(lái)自服務(wù)器的服務(wù)器請(qǐng)求,其中所述服務(wù)器被配置成響應(yīng)于客戶端請(qǐng)求而生成所述服務(wù)器請(qǐng)求; 生成與所述服務(wù)器請(qǐng)求相關(guān)聯(lián)的請(qǐng)求標(biāo)識(shí)符; 響應(yīng)于所述服務(wù)器請(qǐng)求,向第一流處理節(jié)點(diǎn)發(fā)送從所述服務(wù)器請(qǐng)求導(dǎo)出的流處理請(qǐng)求,其中所述流處理請(qǐng)求包括所述請(qǐng)求標(biāo)識(shí)符; 響應(yīng)于接收來(lái)自第二流處理節(jié)點(diǎn)的包括流處理結(jié)果和所述請(qǐng)求標(biāo)識(shí)符的創(chuàng)建響應(yīng)消息,使用處理器來(lái)使所述流處理結(jié)果與所述服務(wù)器請(qǐng)求相關(guān);以及 向所述服務(wù)器發(fā)送包括所述流處理結(jié)果的寫(xiě)響應(yīng)消息。
2.根據(jù)權(quán)利要求1所述的方法,還包括: 響應(yīng)于接收所述寫(xiě)響應(yīng)消息,向所述客戶端發(fā)送包括所述流處理結(jié)果的客戶端響應(yīng)。
3.根據(jù)權(quán)利要求1所述的方法,所述方法還包括: 在所述第一流處理節(jié)點(diǎn)和所述第二流處理節(jié)點(diǎn)之間傳播所述流處理請(qǐng)求,其中處置所述流處理請(qǐng)求的每個(gè)流處理節(jié)點(diǎn)貢獻(xiàn)部分響應(yīng)。
4.根據(jù)權(quán)利要求1所述的方法,其中所述服務(wù)器請(qǐng)求包括客戶端上下文信息,所述方法還包括: 通過(guò)從所述客戶端上下文信息生成所述請(qǐng)求標(biāo)識(shí)符來(lái)使所述流處理請(qǐng)求與所述服務(wù)器請(qǐng)求相關(guān);以及 與所述客戶端上下文信息相關(guān)聯(lián)地存儲(chǔ)所述請(qǐng)求標(biāo)識(shí)符。
5.根據(jù)權(quán)利要求4所述的方法,其中所述客戶端上下文信息包括指定所述服務(wù)器內(nèi)的正在處置所述客戶端請(qǐng)求的處理線程的線程標(biāo)識(shí)符。
6.根據(jù)權(quán)利要求5所述的方法,還包括: 響應(yīng)于接收來(lái)自所述第二流處理節(jié)點(diǎn)的所述創(chuàng)建響應(yīng)消息,根據(jù)所述創(chuàng)建響應(yīng)消息中包括的所述請(qǐng)求標(biāo)識(shí)符和存儲(chǔ)的所述客戶端上下文信息,使所述流處理結(jié)果與所述服務(wù)器請(qǐng)求相關(guān);以及 在所述寫(xiě)響應(yīng)消息內(nèi)向所述服務(wù)器提供所述流處理結(jié)果和所述線程標(biāo)識(shí)符。
7.根據(jù)權(quán)利要求1所述的方法,還包括: 將所述服務(wù)器選擇成支持超文本傳輸協(xié)議(HTTP )的服務(wù)器。
8.根據(jù)權(quán)利要求1所述的方法,還包括: 響應(yīng)于所述客戶端請(qǐng)求,分配用于處置所述客戶端請(qǐng)求的處理線程; 建立與發(fā)送所述客戶端請(qǐng)求的客戶端的返回連接,其中所述返回連接與所述處理線程相關(guān)聯(lián);以及 發(fā)送至少包括所述客戶端請(qǐng)求的一部分和指定所述處理線程的線程標(biāo)識(shí)符的所述服務(wù)器請(qǐng)求。
9.根據(jù)權(quán)利要求8所述的方法,還包括: 使所述處理線程空閑,直到所述寫(xiě)響應(yīng)消息被接收。
10.根據(jù)權(quán)利要求9所述的方法,還包括: 響應(yīng)于接收所述寫(xiě)響應(yīng)消息,其中寫(xiě)響應(yīng)消息包括所述線程標(biāo)識(shí)符,根據(jù)所述線程標(biāo)識(shí)符使所述流處理結(jié)果與所述客戶端請(qǐng)求相關(guān);以及使得由所述線程標(biāo)識(shí)符指定的所述處理線程能夠?qū)λ隹蛻舳苏?qǐng)求進(jìn)行響應(yīng)。
11.一種使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法,所述方法包括: 響應(yīng)于客戶端請(qǐng)求,分配用于處置所述客戶端請(qǐng)求的處理線程; 在所述處理線程內(nèi)建立返回連接; 向被配置成與多個(gè)流處理節(jié)點(diǎn)交互的流服務(wù)器發(fā)送從所述客戶端請(qǐng)求導(dǎo)出的服務(wù)器請(qǐng)求,其中所述服務(wù)器請(qǐng)求包括指定所述處理線程的線程標(biāo)識(shí)符; 將用于處置所述客戶端請(qǐng)求的所述處理線程保持在使來(lái)自所述流服務(wù)器的寫(xiě)響應(yīng)消息待決的空閑狀態(tài); 響應(yīng)于接收來(lái)自所述流服務(wù)器的包括流處理結(jié)果和所述線程標(biāo)識(shí)符的所述寫(xiě)響應(yīng)消息,使用處理器將由所述線程標(biāo)識(shí)符指定的所述處理線程返回至活動(dòng)狀態(tài);以及通過(guò)所述返回連接將包括所述流處理結(jié)果的客戶端響應(yīng)發(fā)送到客戶端。
12.根據(jù)權(quán)利要求11所述的方法,還包括: 在所述服務(wù)器請(qǐng)求內(nèi)包括所述客戶端請(qǐng)求的至少一部分。
13.根據(jù)權(quán)利要求12所述的方法,還包括: 根據(jù)所述線程標(biāo)識(shí)符從多個(gè)空閑處理線程中選擇將要返回到活動(dòng)狀態(tài)的所述處理線程。
14.根據(jù)權(quán)利要求12所述的方法,其中所述流服務(wù)器發(fā)起在多個(gè)流處理節(jié)點(diǎn)之間傳播的流處理請(qǐng)求,以及` 其中每個(gè)流處理節(jié)點(diǎn)接收用于所述客戶端請(qǐng)求的識(shí)別信息。
15.根據(jù)權(quán)利要求14所述的方法,其中每個(gè)所述流處理節(jié)點(diǎn)異步地操作并且貢獻(xiàn)部分結(jié)果以產(chǎn)生將被返回至所述流服務(wù)器的流處理結(jié)果。
16.一種用于使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的系統(tǒng),所述系統(tǒng)包括: 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),具有以其體現(xiàn)的計(jì)算機(jī)可讀程序代碼;以及 處理器,被耦合到所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中響應(yīng)于執(zhí)行所述計(jì)算機(jī)可讀程序代碼,所述處理器被配置成執(zhí)行可執(zhí)行操作,包括: 接收來(lái)自服務(wù)器的服務(wù)器請(qǐng)求,其中所述服務(wù)器被配置成響應(yīng)于客戶端請(qǐng)求而生成所述服務(wù)器請(qǐng)求; 生成與所述服務(wù)器請(qǐng)求相關(guān)聯(lián)的請(qǐng)求標(biāo)識(shí)符; 響應(yīng)于所述服務(wù)器請(qǐng)求,向第一流處理節(jié)點(diǎn)發(fā)送從所述服務(wù)器請(qǐng)求導(dǎo)出的流處理請(qǐng)求,其中所述流處理請(qǐng)求包括所述請(qǐng)求標(biāo)識(shí)符; 響應(yīng)于接收來(lái)自第二流處理節(jié)點(diǎn)的包括流處理結(jié)果和所述請(qǐng)求標(biāo)識(shí)符的創(chuàng)建響應(yīng)消息,使所述流處理結(jié)果與所述服務(wù)器請(qǐng)求相關(guān);以及 向所述服務(wù)器發(fā)送包括所述流處理結(jié)果的寫(xiě)響應(yīng)消息。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述處理器還被配置成執(zhí)行可執(zhí)行操作,包括: 響應(yīng)于接收所述寫(xiě)響應(yīng)消息,向所述客戶端發(fā)送包括所述流處理結(jié)果的客戶端響應(yīng)。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述處理器還被配置成執(zhí)行可執(zhí)行操作,包括: 在所述第一流處理節(jié)點(diǎn)和所述第二流處理節(jié)點(diǎn)之間傳播所述流處理請(qǐng)求,其中處置所述流處理請(qǐng)求的每個(gè)流處理節(jié)點(diǎn)貢獻(xiàn)部分響應(yīng)。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述服務(wù)器請(qǐng)求包括客戶端上下文信息,其中所述處理器還被配置成執(zhí)行可執(zhí)行操作,包括: 通過(guò)從所述客戶端上下文信息生成所述請(qǐng)求標(biāo)識(shí)符來(lái)使所述流處理請(qǐng)求與所述服務(wù)器請(qǐng)求相關(guān);以及 與所述客戶端上下文信息相關(guān)聯(lián)地存儲(chǔ)所述請(qǐng)求標(biāo)識(shí)符。
20.一種用于使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的系統(tǒng),所述系統(tǒng)包括: 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),具有以其體現(xiàn)的計(jì)算機(jī)可讀程序代碼;以及 處理器,被耦合到所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中響應(yīng)于執(zhí)行所述計(jì)算機(jī)可讀程序代碼,所述處理器被配置成執(zhí)行可執(zhí)行操作,包括: 響應(yīng)于客戶端請(qǐng)求,分配用于處置所述客戶端請(qǐng)求的處理線程; 在所述處理線程內(nèi)建立返回連接; 向被配置成與多個(gè)流處理節(jié)點(diǎn)交互的流服務(wù)器發(fā)送從所述客戶端請(qǐng)求導(dǎo)出的服務(wù)器請(qǐng)求,其中所述服務(wù)器請(qǐng)求包括指定所述處理線程的線程標(biāo)識(shí)符; 將用于處置所述客戶端請(qǐng)求的所述處理線程保持在使來(lái)自所述流服務(wù)器的寫(xiě)響應(yīng)消息待決的空閑狀態(tài); 響應(yīng)于接收來(lái)自所述流服務(wù)器的包括流處理結(jié)果和所述線程標(biāo)識(shí)符的寫(xiě)響應(yīng)消息,將由所述線程標(biāo)識(shí)符指定的所述處理線程返回至活動(dòng)狀態(tài);以及 通過(guò)所述返回連接向所述客戶端發(fā)送包括所述流處理結(jié)果的客戶端響應(yīng)。`
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其中所述處理器還被配置成執(zhí)行可執(zhí)行操作,包括: 在所述服務(wù)器請(qǐng)求內(nèi)包括所述客戶端請(qǐng)求的至少一部分。
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述處理器還被配置成執(zhí)行可執(zhí)行操作,包括: 根據(jù)所述線程標(biāo)識(shí)符從多個(gè)空閑處理線程中選擇將要返回到活動(dòng)狀態(tài)的所述處理線程。
23.一種用于使用流處理對(duì)請(qǐng)求進(jìn)行響應(yīng)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括: 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),具有以其體現(xiàn)的計(jì)算機(jī)可讀程序代碼,所述計(jì)算機(jī)可讀程序代碼包括: 被配置成從服務(wù)器接收服務(wù)器請(qǐng)求的計(jì)算機(jī)可讀程序代碼,其中所述服務(wù)器被配置成響應(yīng)于客戶端請(qǐng)求而生成所述服務(wù)器請(qǐng)求; 被配置成生成與所述服務(wù)器請(qǐng)求相關(guān)聯(lián)的請(qǐng)求標(biāo)識(shí)符的計(jì)算機(jī)可讀程序代碼; 被配置成響應(yīng)于所述服務(wù)器請(qǐng)求而向第一流處理節(jié)點(diǎn)發(fā)送從所述服務(wù)器請(qǐng)求導(dǎo)出的流處理請(qǐng)求的計(jì)算機(jī)可讀程序代碼,并且其中所述流處理請(qǐng)求包括所述請(qǐng)求標(biāo)識(shí)符; 被配置成響應(yīng)于接收來(lái)自第二流處理節(jié)點(diǎn)的包括流處理結(jié)果和所述請(qǐng)求標(biāo)識(shí)符的創(chuàng)建響應(yīng)消息、而使所述流處理結(jié)果與所述服務(wù)器請(qǐng)求相關(guān)的計(jì)算機(jī)可讀程序代碼;以及被配置成向所述服務(wù)器發(fā)送包括所述流處理結(jié)果的寫(xiě)響應(yīng)消息的計(jì)算機(jī)可讀程序代碼。
24.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)程序產(chǎn)品,其中所述計(jì)算機(jī)可讀程序代碼還包括: 被配置成在所述第一流處理節(jié)點(diǎn)和所述第二流處理節(jié)點(diǎn)之間傳播所述流處理請(qǐng)求的計(jì)算機(jī)可讀程序代碼,其中處置流處理請(qǐng)求的每個(gè)流處理節(jié)點(diǎn)貢獻(xiàn)部分響應(yīng)。
25.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)程序產(chǎn)品,其中所述服務(wù)器請(qǐng)求包括客戶端上下文信息,其中所述計(jì)算機(jī)可讀程序代碼還包括: 被配置成通過(guò)從所述客戶端上下文信息生成所述請(qǐng)求標(biāo)識(shí)符來(lái)使所述流處理請(qǐng)求與所述服務(wù)器請(qǐng)求相關(guān)的計(jì)算機(jī)可讀程序代碼;以及 被配置成與所述客戶端上下文信息相關(guān)聯(lián)地存儲(chǔ)所述請(qǐng)求標(biāo)識(shí)符的計(jì)算機(jī)可讀程序代碼。
【文檔編號(hào)】H04N21/237GK103733568SQ201280040235
【公開(kāi)日】2014年4月16日 申請(qǐng)日期:2012年8月20日 優(yōu)先權(quán)日:2011年8月18日
【發(fā)明者】Y·樸, K·S·薩比爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司