在多主機計算環(huán)境下對數(shù)據訪問的串行化的制作方法
【專利摘要】多主機操作系統(tǒng)串行化方法可以包括:在第一計算系統(tǒng)中接收請求而以第一對等應用的名義訪問數(shù)據集;在所述第一計算系統(tǒng)中發(fā)送通知給第二對等應用以獲得正常入隊;響應于第二對等應用獲得所述正常入隊,在所述第一計算系統(tǒng)中獲得用于所述數(shù)據集的第一附文入隊;并且在所述第一計算系統(tǒng)中發(fā)送通信到對等實例以獲得用于所述數(shù)據集的附加附文入隊,所述附加附文入隊對應于所述第一附文入隊。
【專利說明】在多主機計算環(huán)境下對數(shù)據訪問的串行化
【技術領域】
[0001]本發(fā)明涉及多主機計算系統(tǒng),并更具體地涉及用于在多主機或混雜計算環(huán)境下對數(shù)據訪問的串行化的系統(tǒng)和方法。
【背景技術】
[0002]在典型的多主機計算環(huán)境中,主機可以包括多個服務器。例如,在Systemz混合環(huán)境中,IBM_? System z主機(例如,zEnterprise ? 196)耦接到位于一個或多個IBM ?BladeCenter⑧實例中的IBM ?刀片服務器。耦接是經由傳輸控制協(xié)議/因特網協(xié)議(TCP/IP)通過以太網網絡來實現(xiàn)的。如果任何數(shù)據需要從主機傳輸?shù)椒掌?,則該數(shù)據經過以太網網絡。涉及多主機計算環(huán)境中的高容量和高速數(shù)據傳輸?shù)膽?諸如數(shù)據庫訪問(例如,經由直接訪問存儲裝置(DASD))可以包括可能影響主機中其他工作的可觀處理。
[0003]利用在協(xié)調數(shù)據傳輸?shù)姆掌魃系暮线m的信道實現(xiàn),服務器和主機可以共享到同一數(shù)據庫存儲裝置(例如,DASD)的訪問。這樣,服務器可以直接訪問數(shù)據并加載數(shù)據,而不需要很多主機處理或通過以太網網絡的傳輸。
[0004]在管理同時容納的工作單元的多主機操作系統(tǒng)中,串行化(例如,全局資源串行化(GRS))是確保對數(shù)據集的多個沖突訪問進行串行化以使得保留數(shù)據的完整性的機制。例如,如果多個用戶被允許在相同時間更新相同的數(shù)據集,則可能會發(fā)生數(shù)據損壞。串行化允許用戶更新數(shù)據集以在用戶更新數(shù)據集的同時獲得對數(shù)據集的排他訪問。然而,有時存在不是多主機操作系統(tǒng)的一部分的服務器,但仍然訪問在多主機操作系統(tǒng)服務器和外部計算機之間共享的共同數(shù)據庫。在這種情況下,由多主機操作系統(tǒng)上的資源所有者選擇使用的串行化服務可能對外部服務器不可用。在這種情況下,無法將對在多主機操作系統(tǒng)上運行的程序和在外部服務器操作系統(tǒng)上同時運行的程序之間的數(shù)據集資源的訪問進行串行化。
【發(fā)明內容】
[0005]示例性實施例包括多計算系統(tǒng)串行化方法,包括在第一計算系統(tǒng)中接收請求而以第一對等應用的名義訪問數(shù)據集;在所述第一計算系統(tǒng)中發(fā)送通知給第二對等應用獲得正常入隊;響應于第二對等應用獲得所述正常入隊,在所述第一計算系統(tǒng)中獲得用于所述數(shù)據集的第一附文入隊;并且在所述第一計算系統(tǒng)中發(fā)送通信到對等實例以獲得用于所述數(shù)據集的附加附文入隊,所述附加附文入隊對應于所述第一附文入隊。
[0006]另外的示例性實施例包括計算機程序產品,該計算機程序產品包括存儲用于使得計算機實現(xiàn)多主機操作系統(tǒng)串行化方法的指令的非臨時計算機可讀介質。該方法可以包括:在第一計算系統(tǒng)中接收請求而以第一對等應用的名義訪問數(shù)據集;在所述第一計算系統(tǒng)中發(fā)送通知給第二對等應用獲得正常入隊;響應于第二對等應用獲得所述正常入隊,在所述第一計算系統(tǒng)中獲得用于所述數(shù)據集的第一附文入隊;并且在所述第一計算系統(tǒng)中發(fā)送通信到對等實例以獲得用于所述數(shù)據集的附加附文入隊,所述附加附文入隊對應于所述第一附文入隊。
[0007]進一步的示例性實施例包括多主機系統(tǒng),包括:第一服務器主機、第二服務器主機,其中,第一和第二主機是邏輯系統(tǒng)的一部分;通信地耦接到第一和第二服務器主機的服務器、由第一和第二主機和所述服務器可訪問的數(shù)據集、以及駐留在第一和第二服務器主機的至少一個中的進程,所述進程配置為以所述服務器的名義利用串行化訪問所述數(shù)據集。
[0008]通過本發(fā)明的技術實現(xiàn)附加特征和優(yōu)點。本發(fā)明的其它實施例和方面在本文中詳細描述并且被認為是所要求保護的發(fā)明的一部分。為更好地理解本發(fā)明的優(yōu)點和特征,參考本說明書和附圖
[0009]附圖標記
[0010]在本說明書的結論處,在權利要求書中特別指出并清楚地要求保護被認為是本發(fā)明的主題。本發(fā)明的前述和其他特征以及優(yōu)點根據結合附圖的以下詳細描述而明顯,其中:
[0011]圖1圖示了用于對數(shù)據源的訪問的串行化的示例性系統(tǒng);
[0012]圖2圖示了依據示例性實施例的、用于對數(shù)據集的訪問的串行化的方法200的流程圖;以及
[0013]圖3圖示了如下系統(tǒng)的示例性實施例,該系統(tǒng)可以被實現(xiàn)以在多主機環(huán)境中在支持數(shù)據串行化的系統(tǒng)和不支持串行化的系統(tǒng)之中對數(shù)據的訪問進行串行化。
【具體實施方式】
[0014]在示例性實施例中,這里描述的系統(tǒng)和方法在多主機環(huán)境中在支持數(shù)據串行化的系統(tǒng)和不支持串行化的系統(tǒng)之中對數(shù)據的訪問進行串行化。圖1圖示用于對數(shù)據源的訪問的串行化的示例性系統(tǒng)100。系統(tǒng)100包括第一多主機配置105和第二多主機配置150。在示例性實施例中,多主機配置105、150經由管理接口 103管理每個支持不同操作系統(tǒng)的一個或多個主機或其他計算系統(tǒng)。例如,第一多主機配置105可以包括具有一個或多個服務器模塊115的第一服務器主機110。在這里描述的示例中,服務器模塊運行可以支持多工作負荷的操作系統(tǒng)(例如,z/OS)。第一多主機配置105可以進一步包括具有計算系統(tǒng)125的附加服務器120,該計算系統(tǒng)125運行與運行在第一服務器主機110中的服務器模塊115上的操作系統(tǒng)不同的操作系統(tǒng)(例如,Linux)。第二多主機配置150可以包括具有一個或多個服務器模塊160的第二服務器主機155。在這里描述的示例中,服務器模塊運行可以支持多工作負荷的操作系統(tǒng)(例如,z/OS)。第二多主機配置150可以進一步包括具有計算系統(tǒng)170的附加服務器165,該計算系統(tǒng)170運行與運行在第一服務器主機110中的服務器模塊115上的操作系統(tǒng)以及運行在第二服務器主機155中的服務器模塊160上的操作系統(tǒng)不同的操作系統(tǒng)(例如,Linux)。
[0015]在示例性實施例中,例如,第一和第二主機110,155可以是單一邏輯系統(tǒng)(例如,
Parallel Sysplex?i配置)ιο?的一部分,在該單一邏輯系統(tǒng)中,第一和第二主機110,155
一起用作組合數(shù)據共享和并行計算的單一系統(tǒng)。這樣,服務器模塊115,160可以用作它們各自服務器主機110,155內的單一單兀。運行在服務器模塊115,160上的操作系統(tǒng)(例如,z/OS? )可以支持諸如使能對串行可重新使用的計算資源(諸如,數(shù)據集和磁帶驅動器)或虛擬資源(諸如,列表、隊列)的公平訪問的串行化之類的各種組件,并控制模塊。駐留在服務器模塊115,160上的程序可以請求對資源的排他訪問(這意味著,該程序以及全部后續(xù)請求程序被阻擋,直到該程序被賦予對資源的訪問),通常在程序需要更新資源或已共享訪問(這意味著多個程序可以被賦予對資源的訪問)時請求,通常在程序僅需要查詢資源的狀態(tài)時請求。串行化以FIFO(先進先出)順序管理全部請求。這樣,系統(tǒng)100進一步包括由服務器模塊115,160可訪問的數(shù)據集102??梢砸庾R到,數(shù)據集102可以駐留在任何合適的存儲裝置中。在服務器模塊115,160上的各個操作系統(tǒng)實現(xiàn)串行化以協(xié)調對數(shù)據集102的多個訪問,防止沖突并保留數(shù)據整體性。然而,另外的服務器120,165運行不支持所要求串行化的操作系統(tǒng)(例如,Linux? ) ο在示例性實施例中,如這里進一步所述的,系統(tǒng)包括另外的組件來對在不支持串行化的服務器120,165上的操作系統(tǒng)提供串行化。
[0016]在不例性實施例中,系統(tǒng)100是服務器模塊115,160上的操作系統(tǒng)與服務器120,165的混合,服務器模塊115,160支持允許對數(shù)據集102進行不沖突受控訪問的串行化,服務器120,165不支持可以引起數(shù)據集102中沖突以及數(shù)據整體性損失的串行化。例如,系統(tǒng)100在運行在服務器模塊115上的程序116以及同時運行在服務器120上的程序121之中進行對數(shù)據集102的訪問的串行化。出于說明目的,討論服務器模塊115上的單一程序116以及服務器120上的單一程序121??梢岳斫猓梢钥紤]在這里所描述的其它服務器模塊和服務器上的其他程序。這樣,在數(shù)據集102由服務器120上運行的應用程序訪問之前,在服務器模塊115之一上運行的對應應用程序以運行在服務器120上的程序121的名義獲得串行化組件(例如,在z/OS?中的入隊)。為了說明和便于討論的目的,串行化組件這里被稱為入隊(enqueue)。
[0017]在服務器模塊115之一上運行的程序121在服務器模塊115獲得的入隊的保護下運行。另外,稱為附文入隊(rider enqueue)的另一入隊在邏輯系統(tǒng)101內允許新請求人也變?yōu)槲赐瓿扇腙牭乃腥?。在原始所有人和全部附文入隊所有人已經在串行化組件中釋放他們的興趣(去入隊)之后才釋放入隊。當附文入隊立即變?yōu)槟繕怂械娜腙牭乃腥藭r,他們不被等待的入隊阻擋,該等待的入隊在原始正常入隊之后發(fā)布。在示例性實施例中,附文入隊通過在邏輯系統(tǒng)101中的服務器主機110,155的每一個上運行的程序而獲得,以便于在以運行在服務器120上的程序121的名義首先獲得入隊的原始服務器模塊115停機并失去其獲得的串行化的事件中,向運行在服務器120上的程序121提供持續(xù)的保護。
[0018]在示例性實施例中,系統(tǒng)100可以進一步包括應用層,其促進運行在服務器模塊115上的程序116及其運行在服務器120上的對應程序121的操作。在示例性實施例中,存在在邏輯系統(tǒng)101中的服務器模塊115,160的每一個上運行的應用層的實例171,172以及在服務器120上運行的實例173。可以理解,其他實例也可以運行在諸如服務器165之類的、系統(tǒng)100上的其他組件上。
[0019]應用層的實例171,172,173結合這里進一步描述的附文入隊而運行。在示例性實施例中,附文入隊通過提供與相應正常入隊同樣的入隊識別(大類名稱、小類名稱和范圍)將入隊鎖定為被“已附文”。如果當前未保持相應正常入隊,則獲得附文入隊的嘗試失敗。如果未保持入隊,則附文入隊不將入隊附文。另外,在獲得正常入隊的嘗試期間,遵循現(xiàn)有沖突規(guī)則并且當前保持的附文入隊具有與當前保持的正常入隊相同的效果。因而,除非以下條件之一存在否則獲得正常入隊的嘗試成功:1)正被獲得的正常入隊是共享入隊并存在未完成排他附文入隊和/或正常入隊;2)正被獲得的正常入隊是排他入隊并存在任何類型(共享或排他)的未完成附文入隊和/或正常入隊。另外,在獲得附文入隊的嘗試期間,遵循以下沖突規(guī)則:1)如果正被獲得的附文入隊是共享入隊,則除非存在未完成排他附文入隊和/或正常入隊則嘗試成功;以及2)如果正被獲得的附文入隊是排他入隊,則除非存在未完成共享附文入隊和/或正常入隊則嘗試成功。如果存在未完成排他附文入隊和/或正常入隊則獲得排他附文入隊的嘗試成功。另外,原始正常入隊所有人的去入隊不移除任何附文入隊所有人。包括附文入隊的全部所有人必須在資源(即,數(shù)據集102)不在所有或保持之前去入隊。
[0020]在圖1中,第一服務器主機110中的程序116和在服務器120上運行的程序121可以認為是混合的或者是單一程序的混合部分。程序116運行在具有操作系統(tǒng)的服務器模塊115中,該操作系統(tǒng)耦接到在包括串行化組件(例如,GRS)的邏輯系統(tǒng)101 (例如,
Parallel Sysplex?配置)中的其他操作系統(tǒng)(例如,運行在服務器模塊160上的操作系統(tǒng))。邏輯系統(tǒng)101中的服務器主機110,155和服務器120全部共享包括多主機操作系統(tǒng)(例如,Z/OS? )數(shù)據的數(shù)據集102,該多主機操作系統(tǒng)數(shù)據也由混合程序、不支持這里描述的串行化的程序121的部分訪問。
[0021]圖2圖示了依據示例性實施例的、用于在系統(tǒng)100中對數(shù)據集102的訪問的串行化的方法200的流程圖。在示例性實施例中,當程序121準備好訪問多主機操作系統(tǒng)數(shù)據集102時,程序121在塊205調用在各個操作系統(tǒng)(例如,Linux)上運行的應用層實例173。在塊210,實例173將請求傳遞到在服務器模塊115上運行的應用層實例171,混合程序的其他部分、程序116運行在該服務器模塊115上。在塊215,實例171向程序116通知服務器120上的程序121 (即,程序116的相對部分)準備好訪問數(shù)據集102。
[0022]在示例性實施例中,在塊220,程序116打開數(shù)據集102,包括獲得正常入隊以在服務器120訪問數(shù)據集102時恰當?shù)乇Wo運行在服務器120上的進程。例如,如果程序將要更新數(shù)據集102,則串行化可以包括具有“SYSDSN”的大類名的排他入隊、等同于數(shù)據集名的小類名以及“SYSTEMS”的范圍。
[0023]當程序116返回實例171時,在塊225,實例171獲得了到在打開處理期間獲得的正常入隊的附文入隊并且隨后與在邏輯系統(tǒng)101中的其他操作系統(tǒng)上運行的實例171的對等實例(例如,實例172)通信,以使得它們對于數(shù)據集102獲得相同的附文入隊。作為此通信的一部分,調用實例171傳遞對于實例171的其他實例所需的全部信息以獲得恰當?shù)母轿娜腙牎4诵畔⒅辽侔ㄕ辉L問的數(shù)據集102的名稱和類型以及正被使用的訪問的類型。這樣,在本示例中,實例171的全部實例將均發(fā)起(raise)具有“SYSDSN”的大類名、等同于數(shù)據集名的小類名以及“SYSTEMS”的范圍的排他入隊。
[0024]作為此同一通信的一部分,調用實例171還向實例171的其他實例(例如,實例172)傳遞它們需要與運行在服務器120上的實例173通信的信息,以確定程序121是否還運行在服務器120上。此信息可以包括實例173的TCP/IP地址和端口以及運行在服務器120上的程序121的識別符。[0025]一旦實例171的全部實例已經獲得了它們的附文入隊,與程序116 —起運行在服務器115上的實例171可以回到實例173并且實例173可以回到程序121,而該程序121可以開始訪問數(shù)據集102。當程序121完成訪問數(shù)據集102時,類似進程開始釋放串行化:程序121喚醒實例173,而該實例173轉而喚醒運行在服務器模塊115上的實例171,該服務器模塊115運行著程序116。在塊230,實例171釋放其附文入隊并且調用實例171的全部其他實例并且它們釋放它們之前獲得的附文入隊。實例171隨后調用程序116并且該程序116也對于數(shù)據集102釋放其正常入隊。在塊235,控制隨后返回到程序121用于進一步清理和/或進程完成。
[0026]邏輯系統(tǒng)101中的服務器主機以及服務器模塊上的實例171的對等的附文入隊的目的在于當程序121在程序121的對應實例所運行的服務器模塊115崩潰引起服務器模塊115以程序121的名義保持的串行化丟失的事件中訪問數(shù)據集102時保護該程序121。在混合應用(例如,程序116)對數(shù)據集102進行串行化的操作系統(tǒng)上的實例171附文入隊的目的在于在程序116無法在實例171有機會終止程序121之前以關閉終止處理釋放之前由程序116獲得的相應入隊的方式失敗的事件中保護程序121。如果事件本要發(fā)生并附文入隊未保持,則運行在其他主機服務器操作系統(tǒng)上的其他程序可以在仍然被程序121訪問的同時獲得對數(shù)據集的訪問,這引入了一些暴露。一種這樣的暴露將是如果運行在剩余主機操作系統(tǒng)之一上的無關程序要打開數(shù)據集102用于更新訪問的情況。沒有附文入隊,無關程序發(fā)起的入隊將成功并且程序可以開始更新程序121正在更新的同一數(shù)據,導致數(shù)據集102中的數(shù)據的損壞。
[0027]為了繼續(xù)前述示例,無關程序發(fā)起的入隊將包括具有“SYSDSN”的大類名、等同于數(shù)據集名的小類名以及“SYSTEMS”的范圍的正常排他入隊。如果附文入隊未保持,則此入隊將成功并允許無關程序更新數(shù)據集。在附文入隊就位的情況下,無關程序所嘗試的入隊將失敗或被阻擋,防止無關程序訪問數(shù)據集直到數(shù)據集對其使用真正可用為止。
[0028]如果程序116在其中運行的主機操作系統(tǒng)崩潰而同時程序121仍在運行,則在其他操作系統(tǒng)(例如,實例172)上運行的實例171的實例識別到失敗。實例171的其他實例隨后與實例173通信直到也識別到失敗并終止服務器120上的程序121進程為止。在這點上,實例171的其他實例知道釋放它們的附文入隊以允許其他程序訪問數(shù)據集102是安全的。
[0029]服務器模塊115,160和服務器120,165可以是目前描述的任何合適的計算系統(tǒng)。圖3圖示了系統(tǒng)300的示例性實施例,該系統(tǒng)300可以被實現(xiàn)以在多主機環(huán)境中在支持數(shù)據串行化的系統(tǒng)和不支持串行化的系統(tǒng)之中進行對數(shù)據的訪問的串行化。這里描述的方法可以以軟件(例如,固件)、硬件或其組合來實現(xiàn)。在示例性實施例中,這里描述的方法是以軟件實現(xiàn)的,如可執(zhí)行程序,并且由特定或通用目的數(shù)字計算機執(zhí)行,諸如個人計算機、工作站、微型計算機或主機計算機。系統(tǒng)300因而包括通用目的計算機301。
[0030]在示例性實施例中,在硬件結構方面,如圖3所示,計算機301包括處理器305、與存儲器控制器315耦接的存儲器310、以及經由本地輸入/輸出控制器335可通信地耦接的一個或多個輸入和/或輸出(I/o)裝置340,345 (或外圍設備)。輸入/輸出控制器335可以是但是不限于一個或多個總線或其他有線或無線連接,如本領域公知的那樣。輸入/輸出控制器335可以具有諸如控制器、緩沖器(緩存)、驅動器、重發(fā)器以及接收器之類的附加元件(為了簡潔而省略)來使能通信。此外,本地接口可以包括地址、控制和/或數(shù)據連接來使能前述組件之間的適當通信。
[0031]處理器305是用于執(zhí)行軟件,尤其是存儲在存儲器310中的軟件的硬件裝置。處理器305可以是任何客戶定制的或商業(yè)化可用的處理器、中央處理器(CPU)、與計算機301關聯(lián)的若干處理器中的輔助處理器、基于半導體的微處理器(以微芯片或芯片組的形式)、宏處理器或整體上用于執(zhí)行軟件指令的任何裝置。
[0032]存儲器310可以包括易失性存儲器元件(例如,隨機存取存儲器(RAM,諸如DRAM、SRAM、SDRAM等))以及非易失性存儲器元件(例如,ROM、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、可編程只讀存儲器(PROM)、磁帶、致密盤只讀存儲器(CD-ROM)、磁盤、軟盤、盒式磁帶等)的任一個或組合。此外,存儲器310可以合并電、磁、光和/或其他類型的存儲介質。注意,存儲器310可以具有分布式架構,其中各種組件彼此遠離,但是可由處理器305可訪問。
[0033]存儲器310中的軟件可以包括一個或多個單獨的程序,其每一個包括用于實現(xiàn)邏輯功能的可執(zhí)行指令的有序列表。在圖3的示例中,在存儲器310中的軟件包括根據示例性實施例描述的串行化方法以及合適的操作系統(tǒng)(0S)311。該0S311實質上控制其他計算機程序(如在此描述的串行化系統(tǒng)和方法)的執(zhí)行,并提供調度、輸入輸出控制、文件和數(shù)據管理、存儲器管理以及通信控制和相關服務。
[0034]這里所描述的串行化方法可以是以源程序、可執(zhí)行程序(目標代碼)、腳本或包括將要執(zhí)行的指令集的任何其他實體的形式。當是源程序時,該程序需要經由編譯器、匯編器、解釋器等(其可以或可以不被包括在存儲器310內),以便結合0S311恰當操作。此外,串行化方法可以寫成具有數(shù)據和方法的類的面向對象編程語言,或者程序設計語言(procedure programming language),其具有例程、子例程和/或功能。
[0035]在示例性實施例中,傳統(tǒng)的鍵盤350和鼠標355可以耦接到輸入/輸出控制器335。如I/O裝置340、345之類的其他輸出裝置可以包括輸入裝置,例如但不限于打印機、掃描儀、麥克風等。最后,I/O裝置340、345可以進一步包括傳遞輸入和輸出兩者的裝置,例如但不限于,網絡接口卡(NIC)或調制器/解調器(用于訪問其他文件、設備、系統(tǒng)或網絡)、射頻(RF)或其他收發(fā)器、電話接口、橋接器、路由器等。系統(tǒng)300可以進一步包括耦接到顯示器330的顯示控制器325。在示例性實施例中,系統(tǒng)300可以進一步包括網絡接口 360用于耦接到網絡365。網絡365可以是基于IP的網絡用于經由寬帶連接的在計算機301和任何外部服務器、客戶端等之間的通信。網絡365計算機301和外部系統(tǒng)之間發(fā)送和接收數(shù)據。在示例性實施例中,網絡365可以是由服務提供商管理的受管理IP網絡。網絡365可以例如使用如WiF1、WiMax等的無線協(xié)議和技術以無線方式實現(xiàn)。網絡365也可以是分組交換網絡,如局域網、廣域網、城域網、互聯(lián)網網絡或其它類似類型的網絡環(huán)境。網絡365可以是固定無線網絡、無線局域網(LAN)、無線廣域網(WAN)、個人區(qū)域網(PAN)、虛擬專用網(VPN)、內聯(lián)網或其它合適的網絡系統(tǒng)并且包括用于接收和發(fā)送信號的裝備。
[0036]如果計算機301是PC、工作站、智能裝置等,則在存儲器310中的軟件可以進一步包括基本輸入輸出系統(tǒng)(BIOS)(為簡單起見省略)。BIOS是基本軟件例程的集合,其在啟動時初始化和測試硬件,啟動0S311并支持硬件裝置之間的數(shù)據傳輸。BIOS存儲在ROM中,從而當激活計算機301時可以執(zhí)行BIOS。[0037]當計算機301在操作中時,處理器305被配置為執(zhí)行在存儲器310內存儲的軟件,以將數(shù)據向存儲器310傳遞或從存儲器310傳遞,并通常根據該軟件控制計算機301的操作。本文所描述的串行化方法和0S311,在全部或部分上(但通常是后者)由處理器305讀取,也許在處理器305內緩沖,并執(zhí)行。
[0038]當本文描述的系統(tǒng)和方法以軟件實現(xiàn)時,如圖3所示,方法可以存儲在諸如存儲設備320之類的任何計算機可讀介質上,用于由或結合任何計算機相關的系統(tǒng)或方法使用。
[0039]所屬【技術領域】的技術人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。
[0040]可以采用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。
[0041]計算機可讀信號介質可以包括具有嵌入其中的計算機可讀程序代碼的傳播數(shù)據信號,例如,在基帶中或作為載波的一部分。這樣的傳播信號可以采取各種形式的任一種,包括但不限于,電磁、光或任何合適組合。計算機可讀信號介質可以是任何計算機可讀介質,其不是一個計算機可讀存儲介質并且其可以通信、傳播或傳輸程序用于由或結合指令執(zhí)行系統(tǒng)、設備或裝置使用。
[0042]體現(xiàn)在計算機可讀介質上的程序代碼可以用任何適當?shù)慕橘|傳輸,所述介質包括但不限于:無線、有線、光纜、RF等,或上述的任意合適的組合。
[0043]可以以一種或多種程序設計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設計語言一諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括局域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
[0044]本文中將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產品的流程圖和/或框圖描述本發(fā)明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據處理裝置的處理器,從而生產出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據處理裝置執(zhí)行,產生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0045]也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據處理裝置以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令就產生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0046]也可以把計算機程序指令加載到計算機、其它可編程數(shù)據處理裝置、或其它設備上,使得在計算機、其它可編程數(shù)據處理裝置或其它設備上執(zhí)行一系列操作步驟,以產生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0047]附圖中的流程圖和框圖顯示了根據本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0048]在示例性實施例中,串行化方法是以硬件實現(xiàn)的,本文描述的串行化方法可以用以下本領域公知的技術的任一種或組合而實現(xiàn):具有用于基于數(shù)據信號實現(xiàn)邏輯功能的邏輯門的(多個)分離邏輯電路、具有適當組合的邏輯門的專用集成電路(ASIC)、可編程門陣列(PGA)、現(xiàn)場可編程門陣列(FPGA)等。
[0049]技術效果包括將在系統(tǒng)中對數(shù)據集的訪問進行串行化,該系統(tǒng)支持從不支持串行化的系統(tǒng)的串行化。
[0050]在此使用的術語僅是為了描述特定實施例,且不旨在限制本發(fā)明。如在此使用的,單數(shù)形式“一”、“一個”和“該”也旨在包括復數(shù)形式,除非上下文另外清楚地指明。還將理解,當在說明書中使用時,術語“包括”和/或“包含”指明存在所述的特征、整體、步驟、操作、元件和/或組件,但不排除存在或附加一個或多個其他特征、整體、步驟、操作、元件和/或組件。
[0051]所附權利要求書中的所有裝置或步驟加功能元件的相應結構、材料、操作以及等價物,如有的話,旨在包括用于結合如特別要求保護的其他所要求保護的元件來執(zhí)行所述功能的任何結構、材料或操作。呈現(xiàn)本發(fā)明的說明是為了示出和描述的作用,但不是窮盡性的或將本發(fā)明限制于所公開的形式。許多修改和變化對本領域普通技術人員來說是明顯的,且不脫離本發(fā)明的范圍與精神。選擇和描述實施例是為了最佳地解釋本發(fā)明的原理和實際應用,并使得本領域普通技術人員能針對適于考慮的特定用途的具有各種修改的各種實施例理解本發(fā)明。
[0052]本文中所描繪的流程圖僅僅是一個例子。在不脫離本發(fā)明的精神的情況下,對這里描述的本圖或步驟(或操作)可能有許多變型。例如,步驟可以以不同的順序來執(zhí)行,或者步驟可以添加、刪除或修改。所有這些變型被認為是所要求保護的發(fā)明的一部分。
[0053]雖然本發(fā)明的優(yōu)選實施方式已描述,但可以理解,本領域技術人員,無論是現(xiàn)在還是將來,都可進行各種改進和增強,而它們仍落入下面的權利要求的范圍之內。這些權利要求應被理解為維持最初描述的發(fā)明的適當保障。
【權利要求】
1.一種多計算系統(tǒng)串行化方法,包括: 在第一計算系統(tǒng)中接收請求而以第一對等應用的名義訪問數(shù)據集; 在所述第一計算系統(tǒng)中發(fā)送通知給第二對等應用以獲得正常入隊; 響應于第二對等應用獲得所述正常入隊,在所述第一計算系統(tǒng)中獲得用于所述數(shù)據集的第一附文入隊;并且 在所述第一計算系統(tǒng)中發(fā)送通信到對等實例以獲得用于所述數(shù)據集的附加附文入隊,所述附加附文入隊對應于所述第一附文入隊。
2.如權利要求1所述的方法,其中,所述第一計算系統(tǒng)支持串行化。
3.如權利要求2所述的方法,其中,所述第一對等應用駐留在不支持串行化的第二計算系統(tǒng)上。
4.如權利要求1所述的方法,進一步包括在所述第一對等應用訪問所述數(shù)據集的時間段期間保持所述附文入隊。
5.如權利要求4所述的方法,進一步包括響應于完成對數(shù)據集的訪問的所述第一對等應用而釋放所述附文入隊。
6.如權利要求5所述的方法,進一步包括發(fā)送通知以釋放所述附加附文入隊。
7.如權利要求6所述的方法,進一步包括發(fā)送通知到所述第二對等應用以釋放所述正常入隊。
8.如權利要求1所述的方法,其中,所述正常入隊以所述第一對等應用的名義將對數(shù)據集的訪問進行串行化。
9.一種系統(tǒng),包括適配于實施根據前述方法權利要求的任一項的方法的全部步驟的裝置。
10.一種計算機程序,包括當所述計算機程序在計算機系統(tǒng)上執(zhí)行時用于實施根據前述方法權利要求的任一項的方法的全部步驟的指令。
【文檔編號】G06F12/00GK103907094SQ201280053551
【公開日】2014年7月2日 申請日期:2012年10月11日 優(yōu)先權日:2011年10月31日
【發(fā)明者】J.G.湯普森, J.W.奈特三世, N.C.馬特薩基斯, J.A.魯?shù)? D.D.錢布利斯, H.尤登弗蘭德, J.李, R.K.克羅伊澤恩斯坦 申請人:國際商業(yè)機器公司