專利名稱:多粒度流處理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要地涉及支持計算環(huán)境內(nèi)的處理并且具體地涉及支持計算環(huán)境內(nèi)的流處理。
背景技術(shù):
目前有其中服務(wù)器耦合到流聚類的流處理環(huán)境。流聚類包括用來増加服務(wù)器的處理能力的ー個或者多個加速器。具體而言,加速器被優(yōu)化成在比如果某些功能由服務(wù)器執(zhí)行時更高的速度執(zhí)行那些功能。具體而言,服務(wù)器接收流并且從流提取數(shù)據(jù)和其它信息。然后從服務(wù)器向ー個或者多個加速器發(fā)送該數(shù)據(jù)/信息用于處理。當加速器完成處理時,它們向服務(wù)器轉(zhuǎn)發(fā)結(jié)果。在這樣的環(huán)境中,服務(wù)器具有接收流、從流提取數(shù)據(jù)或者其它信息、向加速器轉(zhuǎn)發(fā)數(shù)據(jù)/信息并且接收結(jié)果的職責。此外,它執(zhí)行與流關(guān)聯(lián)的其它處理。
發(fā)明內(nèi)容
為了提高這樣的系統(tǒng)的效率,根據(jù)本發(fā)明的ー個方面,流處理分布于計算環(huán)境的多個組件間。執(zhí)行所有協(xié)調(diào)步驟不再是服務(wù)器的職責。通過提供一種用于支持計算環(huán)境中的流處理的計算機程序產(chǎn)品來克服現(xiàn)有技術(shù)的缺點并且提供附加優(yōu)點。該計算機程序產(chǎn)品包括存儲介質(zhì),存儲介質(zhì)可由處理電路讀取并且存儲用于由處理電路執(zhí)行的用于執(zhí)行方法的指令。該方法例如包括可編程單元獲得將由可編程單元接收的ー個或者多個流的描述,可編程單元至少部分由計算環(huán)境的第一組件編程;可編程單元接收ー個或者多個流;并且可編程單元基于獲得的描述的類型來處理ー個或者多個流,其中處理包括以下操作中的至少ー個操作向第一組件提供涉及ー個或者多個流的數(shù)據(jù);在可編程單元執(zhí)行用于ー個或者多個流的一組ー個或者多個操作;并且向計算環(huán)境的第二組件轉(zhuǎn)發(fā)涉及一個或者多個流的信息以執(zhí)行用于ー個或者多個流的另一組ー個或者多個操作。這里也描述并且要求保護涉及本發(fā)明的ー個或者多個方面的方法和系統(tǒng)。另外,也描述并且這里可以要求保護涉及本發(fā)明的ー個或者多個方面的服務(wù)。通過本發(fā)明的技術(shù)實現(xiàn)附加特征和優(yōu)點。這里具體描述本發(fā)明的其它實施例和方面并且將它們視為要求保護的本發(fā)明的一部分。
在說明書附帯的權(quán)利要求書中具體指出并且清楚地要求保護本發(fā)明的一個或者多個方面作為例子。從結(jié)合以下附圖進行的下文具體描述中清楚本發(fā)明的前述和其它目的、特征和優(yōu)點。 圖I描繪了用于并入和使用本發(fā)明的ー個或者多個方面的計算環(huán)境的ー個例子。圖2A描繪了根據(jù)本發(fā)明的ー個方面使用的流元數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)的一個實施例;
圖2B描繪了根據(jù)本發(fā)明的ー個方面使用的流復(fù)合數(shù)據(jù)結(jié)構(gòu)的一個例子;圖3A描繪了根據(jù)本發(fā)明的ー個方面使用的摘要記錄的一個例子;圖3B描繪了根據(jù)本發(fā)明的ー個方面使用的工作負荷流處理指示的格式的ー個例子;圖4描繪了根據(jù)本發(fā)明的ー 個方面的用于基于內(nèi)聯(lián)摘要記錄來執(zhí)行流處理的邏輯的ー個實施例;圖5描繪了根據(jù)本發(fā)明的ー個方面的用于基于工作負荷指示來執(zhí)行流處理的邏輯的ー個實施例;圖6描繪了根據(jù)本發(fā)明的ー個方面的基于多粒度提取來執(zhí)行流處理的邏輯的一個實施例;以及圖7描繪了并入本發(fā)明的ー個或者多個方面的計算機程序產(chǎn)品的一個實施例。
具體實施例方式根據(jù)本發(fā)明的ー個方面,在混合計算環(huán)境以及其它環(huán)境中支持流處理。在混合計算環(huán)境的一個例子中,可編程導(dǎo)引(steer)単元(比如智能交換機)耦合到計算環(huán)境的多個組件(例如包括服務(wù)器和流聚類)。流聚類包括一個或者多個計算単元(比如一個或者多個加速器)。交換機(或者其它可編程導(dǎo)引單元)從ー個或者多個源接收流并且基于源或者服務(wù)器接收的描述來處理那些流。響應(yīng)于接收ー個或者多個流,交換機確定流的哪些操作將由混合計算環(huán)境的各種組件執(zhí)行。例如交換機可以確定一組ー個或者多個操作將由交換機本身執(zhí)行而另ー組ー個或者多個操作(例如計算更密集的操作)將由流聚類執(zhí)行。另外,在一個或者多個實施例中,交換機響應(yīng)于接收流和/或響應(yīng)于流處理而向服務(wù)器發(fā)送描述數(shù)據(jù)。例如,交換機可以在接收流字節(jié)時執(zhí)行流內(nèi)或者流間計算(例如對流的求和、求差和卷積操作)。流聚類可以例如使用復(fù)雜圖像處理算法來比較視頻監(jiān)控流輸入的第一分鐘和第65分鐘內(nèi)接收的視頻幀。交換機執(zhí)行可以用傳入流的線速度執(zhí)行的流操作。這樣的操作通常需要適度存儲器覆蓋區(qū)。流聚類執(zhí)行計算和存儲器密集操作從而需要一個或者若干次傳遞提取的流數(shù)據(jù)。它也可能需要處理按時間段分離的數(shù)據(jù)。交換機可以導(dǎo)引數(shù)據(jù)使得適當流數(shù)據(jù)直接到達流聚類的計算單元以求高計算效率和性能。流聚類可以主控隨時間段捕獲流數(shù)據(jù)的時間序列數(shù)據(jù)庫。服務(wù)器以行存儲和列存儲數(shù)據(jù)庫為特征,這些數(shù)據(jù)庫概括并且存儲隨時間段聚集的流、流操作和其它流數(shù)據(jù)。允許多粒度系統(tǒng)的多個組件在各種粒度(精細、中等和粗略粒度)對流數(shù)據(jù)操作實現(xiàn)高效率和高性能。在圖I中描繪了用于并入和使用本發(fā)明的ー個或者多個方面的計算環(huán)境的ー個實施例。在這一例子中,服務(wù)器100耦合到流聚類110。服務(wù)器100例如包括經(jīng)由ー個或者多個總線108相互耦合的一個或者多個處理器102、存儲器104和一個或者多個輸入/輸出(I/O)設(shè)備或者接ロ 106。作為例子,服務(wù)器100是紐約阿蒙克市的國際商業(yè)機器公
司(IBM )提供的 System p 、System x 或者 System z 服務(wù)器。IBM 、System p 、System x 和System z 是紐約阿蒙克市的國際商業(yè)機器公司(IBM )的注冊商標。這里使用的其它名稱可以是國際商業(yè)機器公司或者其它公司的注冊商標、商標或者產(chǎn)品名。在另ー實施例中,服務(wù)器包括ー個或者多個分區(qū)或者區(qū)段。例如服務(wù)器是基于紐約阿蒙克市的國際商業(yè)機器公司(IBM )提供的z/ Architecture 的System z 服務(wù)器。在通過引用而整體結(jié)合于此、2009年2月的第SA22-7832-07號IBM出版物、標題為“z/Architecture Principles of Operation”的IBM 出版物中描述了 z/Architecture 。
z/Arehiteeture 是紐約阿蒙克市的國際商業(yè)機器公司的注冊商標。在一個例子中,流聚類110包括一個或者多個計算單元112。作為例子,計算單元為硬件加速器(比如刀片中心或者底盤中的刀片)。例子加速器包括國際商業(yè)機器公司
提供的IBM Cel1 BE 刀片 IBMgi DataP°wer 單元;nVidia GPU ;和 / 或 System p 或
者Systemx 刀片。在又一例子中,計算單元為服務(wù)器(比如System x 、System p 或者
SyStemz 服務(wù)器)。許多其它例子也有可能。聚類可以包括不同計算單元的混合(包括不同加速器類型的混合)。在一個例子中,服務(wù)器100例如經(jīng)由諸如PCI Express、InfiniBand、以太網(wǎng)等網(wǎng)絡(luò)來與流聚類Iio通信。另外,服務(wù)器100和流聚類110例如經(jīng)由InfiniBand或者以太網(wǎng)網(wǎng)絡(luò)耦合到至少ー個可編程導(dǎo)引単元(比如交換機120)。作為例子,交換機120例如為服務(wù)器(比如System x 、System p 或者System z 服務(wù)器或者思科系統(tǒng)公司或者國際商業(yè)
機器公司提供的交換機設(shè)備)。如這里描述的那樣,交換機從ー個或者多個源接收流并且處理那些流。根據(jù)本發(fā)明的ー個方面,為了支持流處理,多個數(shù)據(jù)結(jié)構(gòu)(例如表)用來維護各種信息。這些數(shù)據(jù)結(jié)構(gòu)例如包括流元數(shù)據(jù)表和流復(fù)合表(下文描述每個表)。在一個例子中,流元數(shù)據(jù)表由服務(wù)器維護。參照圖2A,流元數(shù)據(jù)表200例如包括一個或者多個條目,并且每個條目包括標識流的流名稱202和表明流類型(例如視頻、音頻、數(shù)據(jù)等)的流類型204。除了流元數(shù)據(jù)表之外,服務(wù)器維護流復(fù)合表(在圖2B中描繪了該表的例子)。流復(fù)合表220包括將一起處理的復(fù)合流222的名稱、復(fù)合流中流的列表224和表明將為列舉的流執(zhí)行的操作的操作列表226。除了上述數(shù)據(jù)結(jié)構(gòu)之外,在一個或者多個例子中,通過使用各自描述如下的摘要記錄和/或工作負荷流處理指示來支持處理。參照圖3A,摘要記錄300例如包括流列表302,該列表包括將一起處理的流的列表;操作符列表304,該列表指定將對流列表執(zhí)行的操作;流標頭格式列表306,該列表表明列表中的每個流的格式;以及到達時間列表308,該列表指定列表中的每個流的到達時間。到達時間相對于彼此而言。例如摘要記錄可以包括SI,S2 ;提取(S1+S2,對象);格式1,格式2 ;0,7,其中流為SI和S2 ;操作為提取和聚集(+),其中聚集SI和S2并且從其提取指定對象;格式為格式I和格式2 (例如MPEG、高清晰度等);并且0和7為相對到達時間。用于每個操作的定義依賴于流類型。例如,如果流為視頻,則可以將+定義為聚集,但是如果流為數(shù)據(jù),則可以將+定義為加法操作符。許多其它例子有可能。參照圖3B描述工作負荷流處理指示的格式的一個實施例。工作負荷流處理指示350包括一個或者多個流源地址352,這些地址表明流將從其到達的源;流操作符列表354,該列表表明待執(zhí)行的對那些流的操作;以及所需輸出格式列表356,該列表描述來自流的輸出的所需格式。摘要記錄和/或工作負荷流處理指示根據(jù)本發(fā)明的ー個方面用來描述待處理的傳入流。在這里描述的實施例中,向可編程導(dǎo)引単元提供這ー描述信息,該單元使用這一信息以處理描述信息中表明的流??删幊虒?dǎo)引単元在這些實施例中是具有智能的交換機(例如計算和分組處理邏輯)。在一個實施例中,交換機由服務(wù)器基于待處理的流編程。服務(wù)器響應(yīng)于接收流而對交換機編程,使得交換機可以關(guān)于流的處理做出某些決策。雖然提供交換機作為ー個例子,但是其它組件可以用作可編程導(dǎo)引単元。交換機接收描述信息和一個或者多個流并且基于描述信息的格式來處理流。例如,流的處理可以基于摘要記錄是用來描述流還是工作負荷指示。響應(yīng)于接收流,交換機確定將執(zhí)行哪些操作和計算環(huán)境的哪些組件(例如交換機、流聚類和/或服務(wù)器)將執(zhí)行操作。例如,在ー個具體實施例中,聚類執(zhí)行計算密集操作(在一個例子中如系統(tǒng)限定),并且交換機本身執(zhí)行計算更不密集的操作。如參照圖4-6進ー步具體描述的那樣,這允許流處 理分布于計算環(huán)境的各種組件間。具體而言,圖4描繪了其中接收摘要記錄的一個流處理實施例;圖5描繪了其中使用工作負荷指示的一個流處理實施例;并且圖6描繪了其中使用摘要記錄或者工作負荷指示并且將向服務(wù)器提供統(tǒng)計信息的一個流處理實施例。雖然提供這些例子,但是可以描述許多其它例子。另外,可以對這些例子進行修改而未脫離本發(fā)明的精神實質(zhì)。在圖4的例子中,使用包括如上文描述的以下字段的摘要記錄S1,S2 ;提取(S1+S2,對象);格式1,格式2;0,7。到達時間幾乎相同(即有用于緩沖二者的足夠存儲器),因而服務(wù)器可以請求在交換機上執(zhí)行S1+S2。提取操作將在流聚類上執(zhí)行。然而,如果到達時間分開遠到足以使得將在交換機上無用于緩沖流并且執(zhí)行其它工作的足夠存儲器,則服務(wù)器將用作后備存儲庫并且流聚類而不是交換機將執(zhí)行+操作。其它例子也有可能。參照圖4,摘要記錄從耦合到交換機的一個或者多個源到達交換機(步驟400)。源可以是視頻記錄器、計算機、用于提供金融市場數(shù)據(jù)的設(shè)備或者能夠提供流的任何其它設(shè)備。作為例子,可以通過在那些源上的處理或者由那些源的用戶創(chuàng)建摘要記錄。響應(yīng)于接收摘要記錄,交換機緩沖跟隨摘要記錄的任何流字節(jié)多達預(yù)定義緩沖數(shù)量(步驟402)。另外,它可以例如經(jīng)由暫停消息請求源停止發(fā)送字節(jié)直至設(shè)置多粒度系統(tǒng)(步驟404)。這例如發(fā)生于如果交換機和服務(wù)器后備存儲庫用完存儲器資源。這ー設(shè)置包括下文描述的步驟(例如步驟406-416)。交換機將摘要記錄引向服務(wù)器(步驟406),并且服務(wù)器更新流元數(shù)據(jù)和復(fù)合表(步驟408)。例如,響應(yīng)于接收摘要記錄,服務(wù)器向流元數(shù)據(jù)表添加條目,每個條目包括流的名稱和流類型。例如,對于這里描述的具體例子摘要記錄,針對SI和S2向表添加條目。另外,服務(wù)器使用摘要記錄以向流復(fù)合表添加如下條目,該條目包括復(fù)合流的名稱(例如S1+S2)、用于該復(fù)合流的流的列表(例如SI和S2)和操作列表(例如+、提取)。此外,響應(yīng)于接收摘要記錄,服務(wù)器對交換機和流聚類的一個或者多個計算単元編程以執(zhí)行流的操作(步驟410)。具體而言,服務(wù)器使用預(yù)定義規(guī)則或者試探以確定摘要記錄中指定的哪些操作將由交換機執(zhí)行而哪些操作將由聚類執(zhí)行。服務(wù)器然后向交換機和聚類提供適當處理邏輯以使它們能夠執(zhí)行它們的操作。例如,服務(wù)器存儲將由交換機執(zhí)行的操作的列表和哪些操作在流聚類上更高效。服務(wù)器可以提供用于激活交換機和流聚類上與操作相關(guān)的處理代碼的標識符。如果這樣的處理代碼未存在于交換機或者流聚類中,則它也可以向交換機或者流聚類直接提供這樣的代碼。基于服務(wù)器提供的信息,交換機校準它本身并且設(shè)置它的緩沖器和處理邏輯(步驟412)。這例如包括將緩沖器設(shè)定成用于流和將由交換機執(zhí)行的操作的適當大小并且將從服務(wù)器接收的處理邏輯放置于硬件(例如現(xiàn)場可編程門陣列)或者軟件(在交換機的處理器處)中。另外,流聚類(即聚類的ー個或者多個計算単元)也校準它本身并且設(shè)置它的緩沖器和與交換機的處理邏輯相似的處理邏輯(步驟414)。服務(wù)器然后可以指引交換機接受流字節(jié),因為多粒度系統(tǒng)設(shè)置現(xiàn)在完成(步驟416)。這例如出現(xiàn)于如果交換機用完存儲器資源并且必須向流源發(fā)送流程控制消息。響應(yīng) 于此,交換機需要向一個或者多個源發(fā)送它現(xiàn)在接受流數(shù)據(jù)這樣的消息。交換機如服務(wù)器指引的那樣從一個或者多個源接收流字節(jié)并且確定它將執(zhí)行哪些操作(如果有的話)而哪些操作將由流聚類執(zhí)行。交換機執(zhí)行它將執(zhí)行的操作并且向流聚類轉(zhuǎn)發(fā)流或者必需數(shù)據(jù),從而流聚類可以執(zhí)行它的操作(步驟418)。例如,交換機對SI和S2執(zhí)行+操作并且向執(zhí)行對象提取(例如從視頻監(jiān)控流提取所有車輛)的流聚類的一個或者多個計算単元轉(zhuǎn)發(fā)該結(jié)果。然后向服務(wù)器轉(zhuǎn)發(fā)所得輸出(步驟420)。在一個例子中,聚類向服務(wù)器發(fā)送所得輸出。在其它例子中,交換機和/或聚類向服務(wù)器發(fā)送輸出(依賴于待執(zhí)行的操作)和請求。至少ー個源向交換機發(fā)送終止請求(步驟422)。響應(yīng)于這ー請求,交換機向服務(wù)器和流聚類二者傳播終止請求,從而那些組件中的每個部件可以保存它們的與流處理有關(guān)的狀態(tài)。這完成處理。在又一例子中,未使用摘要記錄,但是取而代之,服務(wù)器上的工作負荷關(guān)于將從不同源接收的流通知服務(wù)器。工作負荷不知道流的格式、但是確實知道它需要從流提取什么數(shù)據(jù)。工作負荷在向服務(wù)器提供的工作負荷指引中提供這一信息。參照圖5描述執(zhí)行這ー處理的邏輯的一個實施例。起初,服務(wù)器從工作負荷接收流處理指示(步驟500)。作為例子,這ー指示包括用于ー個或者多個流的源地址、將為一個或者多個流執(zhí)行的操作和所需輸出格式。與上文描述相似,基于這一信息,服務(wù)器對交換機和流聚類編程(步驟502)。例如,服務(wù)器向交換機和聚類的一個或者多個計算単元提供用于執(zhí)行它們的指定操作的邏輯。由于流的格式在這一點未知,所以交換機使用通用緩沖器和通用代碼以起初接收流(步驟504)。類似地,流聚類在它對ー個或者多個流的初始處理中使用通用緩沖器和通用代碼(步驟506)。通用緩沖器和通用代碼將傳入流視為字節(jié)序列。實例化將流視為字節(jié)序列的緩沖器和代碼。然而,響應(yīng)于接收流并且具體為足以確定其特性的流,交換機重新校準(步驟508)。重新校準是如下過程,流特有緩沖器和處理代碼通過該過程用來增強性能效率。例如,交換機確定用于輸入流的適當緩沖器大小和它被指明執(zhí)行的操作并且重新設(shè)定通用緩沖器的大小以與適當大小相配。另外,它實例化適合于流和待執(zhí)行的操作的處理邏輯。例如,交換機對流執(zhí)行深入分組檢查以將流的數(shù)據(jù)格式與相關(guān)QoS (服務(wù)質(zhì)量)參數(shù)一起確定。在確定數(shù)據(jù)格式之后,作為例子,它實例化與數(shù)據(jù)(數(shù)值、文字數(shù)字)或者視頻(高清晰度、mpeg、原始)或者音頻(不同壓縮/編碼方案)相關(guān)的處理代碼。其它格式也有可能。它然后基于服務(wù)質(zhì)量要求(比如抖動和延遲)來設(shè)定緩沖器的大小。聚類類似地基于它從交換機接收的流數(shù)據(jù)(例如流、流輸出、其它數(shù)據(jù))執(zhí)行重新校準。交換機和流聚類然后如服務(wù)器指明的那樣處理流(步驟510)。例如,交換機確定它將執(zhí)行的操作(例如+)、執(zhí)行那些操作并且向流聚類發(fā)送輸出。流聚類然后執(zhí)行它的指派操作(例如提取)。然后根據(jù)待執(zhí)行的操作和服務(wù)器希望的輸出,由流聚類和/或交換機向服務(wù)器發(fā)送結(jié)果(步驟512)。除了上述之外,提供其中可以使用摘要記錄或者工作負荷指引的例子。在這一例子中,服務(wù)器請求聚集數(shù)據(jù)。參照圖6描述這ー邏輯的一個實施例。起初,服務(wù)器對交換機和流聚類編程,從而每個組件可以執(zhí)行ー個或者多個操作以向服務(wù)器提供請求的聚集數(shù)據(jù)(步驟600)。這ー編程例如基于服務(wù)器接收的摘要記錄或者工作負荷指引。從ー個或者多個源向交換機輸入至少ー個流(步驟602)。交換機定期(如系統(tǒng)限 定)提取服務(wù)器希望的元數(shù)據(jù)并且向服務(wù)器發(fā)送該元數(shù)據(jù)(步驟604)。元數(shù)據(jù)例如包括粗略粒度數(shù)據(jù)(比如視頻流中的對象類型和數(shù)目)。然而,對象的細微粒度特征可以在ー個例子中由流聚類而不是交換機處理。交換機可以針對任何擴展存儲器要求而使用服務(wù)器作為后備存儲庫。另外,交換機提取并且向流聚類發(fā)送數(shù)據(jù)記錄(步驟606)。數(shù)據(jù)記錄例如是數(shù)據(jù)組的匯集,并且每個數(shù)據(jù)組例如是流數(shù)據(jù)位或者字節(jié)的匯集。流聚類將基于服務(wù)器提供的聚集特性來處理這一數(shù)據(jù)以向服務(wù)器提供請求的統(tǒng)計。服務(wù)器基于接收的元數(shù)據(jù)或者其它服務(wù)器分析處理要求向流聚類提供數(shù)據(jù)聚集特性(步驟608)。響應(yīng)于此,流聚類如請求的那樣聚集數(shù)據(jù)(基于指定操作和/或規(guī)則)并且向服務(wù)器提供聚集統(tǒng)計(步驟610)。在其它例子中,可以執(zhí)行其它統(tǒng)計操作或者分析處理。源終止一個或者多個流(步驟612)。這結(jié)束處理。上文具體描述ー種用于通過將流處理功能分布于計算環(huán)境的各種組件之中來支持流處理的能力。例如,交換機接收流并且具有用于解析流、向服務(wù)器發(fā)送信息、執(zhí)行某些操作本身和/或向流聚類發(fā)送待執(zhí)行的操作的智能。將在交換機接收的ー個或者多個流的高級描述在摘要記錄中由一個或者多個源提供或者在工作負荷指示中由服務(wù)器提供。如本領(lǐng)域技術(shù)人員將理解的那樣,本發(fā)明的方面可以具體化為系統(tǒng)、方法或者計算機程序產(chǎn)品。因而,本發(fā)明的方面可以采用全硬件實施例、全軟件實施例(包括固件、常駐軟件、微代碼等)或者組合軟件與硬件方面的實施例這樣的形式,這些實施例在這里都可以通稱為“電路”、“模塊”或者“系統(tǒng)”。另外,本發(fā)明的方面可以采用一個或者多個計算機可讀介質(zhì)中體現(xiàn)的計算機程序產(chǎn)品這一形式,該計算機可讀介質(zhì)具有體現(xiàn)于其上的計算機可讀程序代碼??梢岳靡粋€或者多個計算機可讀介質(zhì)的任何組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀信號介質(zhì)可以包括例如基帶中或者作為載波的部分的傳播數(shù)據(jù)信號,該信號具有體現(xiàn)于其中的計算機可讀程序代碼。這樣的傳播信號可以采用多種形式(包括但不限于電磁、光學(xué)或者其任何適當組合)中的任何形式。計算機可讀信號介質(zhì)可以是任何計算機可讀介質(zhì),該計算機可讀介質(zhì)并非計算機可讀存儲介質(zhì)并且可以傳達、傳播或者傳送用于由指令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用或者與指令執(zhí)行系統(tǒng)、裝置或者設(shè)備結(jié)合使用的程序。
計算機可讀存儲介質(zhì)可以例如是但不限于電子、光學(xué)、電磁、紅外線或者半導(dǎo)體系統(tǒng)、裝置或者設(shè)備或者前述各項的任何適當組合。計算機可讀存儲介質(zhì)的更多具體例子(非窮舉列表)包括以下例子具有一個或者多個接線的電連接、便攜計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或者閃存)、光纖、便攜光盤只讀存儲器(CD-ROM)、光學(xué)存儲設(shè)備、磁存儲設(shè)備或者前述各項的任何適當組合。在本文的上下文中,計算機可讀存儲介質(zhì)可以是任何有形介質(zhì),該介質(zhì)可以包含用于由指令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用或者與指令執(zhí)行系統(tǒng)、裝置或者設(shè)備結(jié)合使用的程序?,F(xiàn)在參照圖7,在一個例子中,計算機程序產(chǎn)品700例如包括一個或者多個計算機可讀存儲介質(zhì)702,該介質(zhì)用于在其上存儲計算機可讀程序代碼裝置或者邏輯704以提供和支持本發(fā)明的ー個或者多個方面??梢允褂眠m當介質(zhì)(包括但不限于無線、有線、光纖線纜、RF等或者前述各項的任何適當組合)來傳輸計算機可讀介質(zhì)上體現(xiàn)的程序代碼??梢杂靡环N或者多種編程語目(包括諸如Java、Smalltalk、C++等面向?qū)ο缶幊陶Z言和比如“C”編程語言或者相似編程語言這樣的常規(guī)過程編程語言)的任何組合編寫用于實現(xiàn)用于本發(fā)明方面的操作的計算機程序代碼。程序代碼可以完全在用戶的計算機上、部分在用戶的計算機上、作為獨立軟件包、部分在用戶的計算機上而部分在遠程計算機上或者完全在遠程計算機或者服務(wù)器上執(zhí)行。在后一種場景中,遠程計算機可以通過任何類型的網(wǎng)絡(luò)(包括局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN))連接到用戶的計算機,或者可以產(chǎn)生與外部計算機的連接(例如通過使用因特網(wǎng)服務(wù)提供商的因特網(wǎng))。這里參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程示和/或框圖描述本發(fā)明的方面。將理解流程示和/或框圖的每個塊和在流程示和/或框圖中的塊組合可以由計算機程序指令實施??梢韵蛲ㄓ糜嬎銠C、專用計算機或者其它可編程數(shù)據(jù)處理裝置的處理器提供這些計算機程序指令以產(chǎn)生機器,從而經(jīng)由計算機或者其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令創(chuàng)建用于實施在流程圖和/或框圖的一個或者多個塊中指定的功能/動作的裝置。這些計算機程序指令也可以存儲于計算機可讀介質(zhì)中,該介質(zhì)可以指引計算機、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備以特定方式工作,從而存儲于計算機可讀介質(zhì)中的指令產(chǎn)生包括如下指令的制造品,這些指令實施在流程圖和/或框圖的一個或者多個塊中指定的功能/動作。也可以向計算機、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備上加載計算機程序指令以使系列操作步驟在計算機、其它可編程裝置或者其它設(shè)備上執(zhí)行以產(chǎn)生計算機實施的過程,從而在計算機或者其它可編程裝置上執(zhí)行的指令提供用于實施在流程圖和/或框圖的一個或者多個塊中指定的功能/動作的過程。附圖中的流程圖和框示了根據(jù)本發(fā)明各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實施方式的架構(gòu)、功能和操作。就這一點而言,在流程圖或者框圖中的每個塊可以代表包括用于實施指定邏輯功能的一個或者多個可執(zhí)行指令的代碼模塊、段或者部分。也應(yīng)當注意,在ー些替選實施方式中,在塊中指出的功能可以未按照圖中記載的順序出現(xiàn)。例如,根據(jù)涉及到的功能,可以事實上基本上并行執(zhí)行相繼示出的兩個塊或者有時可以按相反順序執(zhí)行塊。也將注意,框圖和/或流程示的每個塊和在框圖和/或流程示中的塊組合可以由執(zhí)行指定功能或者動作的基于專用硬件的系統(tǒng)或者由專用硬件與計算機指令的組合實施。除了上述之外,本發(fā)明的ー個或者多個方面可以由提供客戶環(huán)境管理的服務(wù)提供商提供、供應(yīng)、部署、管理、服務(wù)等。例如,服務(wù)提供商可以創(chuàng)建、維護、支持等計算機代碼和/或計算機基礎(chǔ)結(jié)構(gòu),該計算機代碼和/或計算機基礎(chǔ)結(jié)構(gòu)為ー個或者多個客戶執(zhí)行本發(fā)明的ー個或者多個方面。作為例子,服務(wù)提供商可以按照預(yù)約和/或費用協(xié)定從客戶接收付款作為回報。除此之外或者取而代之,服務(wù)提供商可以從向ー個或者多個第三方的廣告內(nèi)容銷售中接收付款。 在本發(fā)明的ー個方面中,可以部署一種應(yīng)用以便實現(xiàn)本發(fā)明的一個或者多個方面。作為ー個例子,部署一種應(yīng)用包括提供可操作用于實現(xiàn)本發(fā)明的ー個或者多個方面的計算機基礎(chǔ)結(jié)構(gòu)。作為本發(fā)明的又一方面,可以部署一種計算基礎(chǔ)結(jié)構(gòu),該計算基礎(chǔ)結(jié)構(gòu)包括向計算系統(tǒng)中集成計算機可讀代碼,其中代碼與計算系統(tǒng)組合能夠?qū)崿F(xiàn)本發(fā)明的ー個或者多個方面。作為本發(fā)明的又一方面,可以提供一種用于集成計算基礎(chǔ)結(jié)構(gòu)的過程,該過程包括向計算機系統(tǒng)中集成計算機可讀代碼。該計算機系統(tǒng)包括計算機可讀介質(zhì),其中計算機介質(zhì)包括本發(fā)明的ー個或者多個方面。代碼與計算機系統(tǒng)組合能夠?qū)崿F(xiàn)本發(fā)明的一個或者多個方面。雖然上文描述各種實施例,但是這些僅為例子。例如,其它架構(gòu)的計算環(huán)境可以并入和使用本發(fā)明的ー個或者多個方面和/或可以使用不同類型的服務(wù)器、加速器或者其它計算單元和/或交換機或者其它可編程導(dǎo)引單元。此外,在各種數(shù)據(jù)結(jié)構(gòu)和/或記錄或者指示中提供的信息可以不同于這里提供的信息。另外,可以使用除了摘要記錄和指示之外的結(jié)構(gòu)。其它例子也有可能的??梢宰龀鲈S多其它修改而未脫離本發(fā)明的精神實質(zhì)。另外,其它類型的計算環(huán)境可以受益于本發(fā)明的ー個或者多個方面。作為例子,環(huán)境可以包括仿真器(例如軟件或者其它仿真機制),其中對特定架構(gòu)(例如包括指令執(zhí)行、有架構(gòu)的功能(比如地址轉(zhuǎn)譯)和有架構(gòu)的寄存器)或者其子集仿真(例如,在具有處理器和存儲器的原生計算機系統(tǒng)上)。在這樣的環(huán)境中,即使執(zhí)行仿真器的計算機可以具有與仿真的能力不同的架構(gòu),仿真器的一個或者多個仿真功能仍然可以實施本發(fā)明的一個或者多個方面。作為ー個例子,在仿真模式中,對仿真的具體指令或者操作解碼,并且構(gòu)建適當仿真功能以實施個別指令或者操作。在仿真環(huán)境中,一種主機計算機例如包括存儲器,用于存儲指令和數(shù)據(jù);指令取讀單元,用于從存儲器取讀指令并且可選地為取讀的指令提供本地緩沖;指令解碼單元,用于接收取讀的指令并且確定已經(jīng)取讀的指令類型;以及指令執(zhí)行單元,用于執(zhí)行指令。執(zhí)行可以包括從存儲器向寄存器中加載數(shù)據(jù);從寄存器向存儲器往回存儲數(shù)據(jù);或者執(zhí)行如解碼單元確定的某一類型的算木或者邏輯操作。在一個例子中,用軟件實施每個單元。例如,將單元執(zhí)行的操作實施為仿真器軟件內(nèi)的一個或者多個例程。另外,一種適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)是有用的,該系統(tǒng)包括通過系統(tǒng)總線直接或者間接耦合到存儲器単元的至少ー個處理器。存儲器単元例如包括在實際執(zhí)行程序代碼期間運用的本地存儲器、大容量儲存器和高速緩存存儲器,該高速緩存存儲器提供至少ー些程序代碼的暫時存儲以便減少必須在執(zhí)行期間從大容量儲存器取回代碼的次數(shù)。輸入/輸出或者I/O設(shè)備(包括但不限于鍵盤、顯示器、指示設(shè)備、DASD、磁帶、⑶、DVD、拇指驅(qū)動和其它存儲器介質(zhì)等)可以直接或者通過居間I/O控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器也可以耦合到系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠變成通過居間專用或者公用網(wǎng)絡(luò)耦合到其它數(shù)據(jù)處理系統(tǒng)或者遠程打印機或者存儲設(shè)備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和以太網(wǎng)卡僅為可用網(wǎng)絡(luò)適配器類型中的少數(shù)類型。這里所用術(shù)語僅為了描述本發(fā)明的具體實施例而并非g在于限制本發(fā)明。如這里所用,除非上下文另有明示,単數(shù)形式“ー個”、“ー種”和“該” _在于也包括復(fù)數(shù)形式。還 將理解術(shù)語“包括”在本說明書中使用時指定存在所言特征、整體、步驟、操作、単元和/或部件、但是并未排除存在或者添加一個或者多個其它特征、整體、步驟、操作、単元、部件和/或其組合。在所附權(quán)利要求中的所有裝置或者步驟加功能要素的對應(yīng)結(jié)構(gòu)、材料、動作和等效物如果存在則g在于包括用干與如具體要求包含的其它權(quán)利要求要素組合執(zhí)行功能的任何結(jié)構(gòu)、材料或者動作。本發(fā)明的描述已經(jīng)出于圖示和描述的目的而加以呈現(xiàn)、但是并非旨在于窮舉本發(fā)明或者使本發(fā)明限于公開的形式。本領(lǐng)域普通技術(shù)人員將清楚許多修改和變化而未脫離本發(fā)明的精神實質(zhì)和范圍。選擇和描述實施例以便最好地說明本發(fā)明的原理和實際應(yīng)用并且使本領(lǐng)域其他普通技術(shù)人員能夠針對各種如下實施例理解本發(fā)明,這些實施例具有如適合于設(shè)想的特定用途的各種修改。
權(quán)利要求
1.一種用于支持計算環(huán)境中的流處理的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括 存儲介質(zhì),可由處理電路讀取并且存儲用于由所述處理電路執(zhí)行的用于執(zhí)行方法的指令,所述方法包括 可編程單元獲得將由所述可編程単元接收的ー個或者多個流的描述,所述可編程単元至少部分由所述計算環(huán)境的第一組件編程; 所述可編程単元接收所述ー個或者多個流;以及 所述可編程単元基于獲得的所述描述的類型來處理所述ー個或者多個流,其中所述處理包括以下的至少ー個 向所述第一組件提供涉及所述ー個或者多個流的數(shù)據(jù); 在所述可編程単元處執(zhí)行用于所述一個或者多個流的一組ー個或者多個操作;以及 向所述計算環(huán)境的第二組件轉(zhuǎn)發(fā)涉及所述ー個或者多個流的信息以執(zhí)行用于所述一個或者多個流的另ー組ー個或者多個操作。
2.根據(jù)權(quán)利要求I所述的計算機程序產(chǎn)品,其中所述獲得包括從所述ー個或者多個流的至少ー個源接收摘要記錄,所述摘要記錄包括所述ー個或者多個流的一個或者多個特性。
3.根據(jù)權(quán)利要求2所述的計算機程序產(chǎn)品,其中所述第一組件包括耦合到所述可編程単元的服務(wù)器,并且其中所述提供數(shù)據(jù)包括向所述服務(wù)器提供所述摘要記錄。
4.根據(jù)權(quán)利要求3所述的計算機程序產(chǎn)品,其中所述方法還包括所述服務(wù)器響應(yīng)于接收所述摘要記錄而更新ー個或者多個流數(shù)據(jù)結(jié)構(gòu)。
5.根據(jù)權(quán)利要求I所述的計算機程序產(chǎn)品,其中所述獲得包括從所述第一組件接收工作負荷指示,所述工作負荷指示描述涉及所述ー個或者多個流的ー個或者多個特性。
6.根據(jù)權(quán)利要求I所述的計算機程序產(chǎn)品,其中所述信息包括對所述一個或者多個流執(zhí)行操作的結(jié)果。
7.根據(jù)權(quán)利要求I所述的計算機程序產(chǎn)品,其中所述處理還包括所述可編程單元確定將由所述可編程單元執(zhí)行的所述ー組操作和將由所述第二組件執(zhí)行的所述另ー組操作。
8.根據(jù)權(quán)利要求7所述的計算機程序產(chǎn)品,其中所述確定至少部分基于所述第一組件對所述可編程單元的編程。
9.根據(jù)權(quán)利要求7所述的計算機程序產(chǎn)品,其中所述第二組件包括耦合到所述可編程単元的流聚類的一個或者多個計算単元。
10.根據(jù)權(quán)利要求9所述的計算機程序產(chǎn)品,其中所述ー個或者多個計算単元包括一個或者多個加速器。
11.根據(jù)權(quán)利要求I所述的計算機程序產(chǎn)品,其中所述方法還包括向所述第一組件提供由于處理所述流而產(chǎn)生的輸出,其中所述提供輸出由所述可編程単元和所述第二組件中的至少ー個執(zhí)行。
12.一種用于支持計算環(huán)境內(nèi)的流處理的計算機系統(tǒng),所述計算機系統(tǒng)包括 存儲器;以及 處理器,與所述存儲器通信,其中所述計算機系統(tǒng)能夠執(zhí)行方法,所述方法包括 可編程單元獲得將由所述可編程単元接收的ー個或者多個流的描述,所述可編程単元至少部分由所述計算環(huán)境的第一組件編程;所述可編程単元接收所述ー個或者多個流;以及 所述可編程単元基于獲得的所述描述的類型來處理所述ー個或者多個流,其中所述處理包括以下的至少ー個 向所述第一組件提供涉及所述ー個或者多個流的數(shù)據(jù); 在所述可編程単元處執(zhí)行用于所 述一個或者多個流的一組ー個或者多個操作;以及 向所述計算環(huán)境的第二組件轉(zhuǎn)發(fā)涉及所述ー個或者多個流的信息以執(zhí)行用于所述一個或者多個流的另ー組ー個或者多個操作。
13.根據(jù)權(quán)利要求12所述的計算機系統(tǒng),其中所述獲得包括從所述一個或者多個流的至少ー個源接收摘要記錄,所述摘要記錄包括所述ー個或者多個流的一個或者多個特性。
14.根據(jù)權(quán)利要求12所述的計算機系統(tǒng),其中所述獲得包括從所述第一組件接收エ作負荷指示,所述工作負荷指示描述涉及所述ー個或者多個流的ー個或者多個特性。
15.根據(jù)權(quán)利要求12所述的計算機系統(tǒng),其中所述處理還包括所述可編程単元確定將由所述可編程單元執(zhí)行的所述ー組操作和將由所述第二組件執(zhí)行的所述另ー組操作。
16.根據(jù)權(quán)利要求15所述的計算機系統(tǒng),其中所述確定至少部分基于所述第一組件對所述可編程単元的編程。
17.根據(jù)權(quán)利要求12所述的計算機系統(tǒng),其中所述方法還包括向所述第一組件提供由于處理所述流而產(chǎn)生的輸出,其中所述提供輸出由所述可編程単元和所述第二組件中的至少ー個執(zhí)行。
18.ー種支持計算環(huán)境中的流處理的方法,所述方法包括 可編程單元獲得將由所述可編程単元接收的ー個或者多個流的描述,所述可編程単元至少部分由所述計算環(huán)境的第一組件編程; 所述可編程単元接收所述ー個或者多個流;以及 所述可編程単元基于獲得的所述描述的類型來處理所述ー個或者多個流,其中所述處理包括以下的至少ー個 向所述第一組件提供涉及所述ー個或者多個流的數(shù)據(jù); 在所述可編程単元處執(zhí)行用于所述一個或者多個流的一組ー個或者多個操作;以及 向所述計算環(huán)境的第二組件轉(zhuǎn)發(fā)涉及所述ー個或者多個流的信息以執(zhí)行用于所述一個或者多個流的另ー組ー個或者多個操作。
19.根據(jù)權(quán)利要求18所述的方法,其中所述獲得包括從所述一個或者多個流的至少ー個源接收摘要記錄,所述摘要記錄包括所述ー個或者多個流的ー個或者多個特性。
20.根據(jù)權(quán)利要求18所述的方法,其中所述獲得包括從所述第一組件接收工作負荷指示,所述工作負荷指示描述涉及所述ー個或者多個流的ー個或者多個特性。
全文摘要
通過向計算環(huán)境的多個組件分布用于處理流的職責來支持流處理??删幊虇卧邮找粋€或者多個流并且確定將為一個或者多個流執(zhí)行的操作和計算環(huán)境的哪些組件將執(zhí)行那些操作。它出于處理和/或信息的目的而向計算環(huán)境的一個或者多個組件轉(zhuǎn)發(fā)涉及一個或者多個流的數(shù)據(jù)。
文檔編號H04L29/06GK102656860SQ201080056909
公開日2012年9月5日 申請日期2010年11月25日 優(yōu)先權(quán)日2009年12月15日
發(fā)明者C·E·伯伊斯, C·J·帕里斯, R·克里施納穆爾西, 劉龍國 申請人:國際商業(yè)機器公司