本發(fā)明涉及計算機領域,尤其涉及一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法及系統(tǒng)。
背景技術:
命名計數(shù)器結構(Named Counter,NC)是在并行系統(tǒng)(SYSPlex)環(huán)境下,定義在耦合設備(Counter Facility,CF)中命名計數(shù)器池(NC pool)里的一個列表結構(List Structrue)。在銀行系統(tǒng)中,NC用于全局性的公共信息存儲,提供給各個MVS(Multiple Virtual Storage,多虛擬存儲)下的聯(lián)機程序和批量程序訪問。
實現(xiàn)聯(lián)機程序與批量程序對NC訪問的前提是在系統(tǒng)內建立數(shù)據(jù)共享機制,也就是實現(xiàn)系統(tǒng)中聯(lián)機程序和批量程序之間的數(shù)據(jù)共享,然而,基于SYSPlex機制實現(xiàn)的主機系統(tǒng)中,主機資源被切分成多個LPAR(Physical Partitioning,邏輯分區(qū)),每個LPAR是邏輯獨立的,且采用MVS對LPAR進行管理,聯(lián)機程序和批量程序運行在各個MVS內,現(xiàn)有技術中無法實現(xiàn)運行在基于SYSPlex機制實現(xiàn)的主機系統(tǒng)中的聯(lián)機程序和批量程序的數(shù)據(jù)共享。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明提出了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法,該方法解決了現(xiàn)有技術中,無法實現(xiàn)運行在基于SYSPlex機制實現(xiàn)的主機系統(tǒng)中的聯(lián)機程序和批量程序的數(shù)據(jù)共享。
本發(fā)明公開了如下技術方案:
本發(fā)明公開了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法,所述方法應用在多虛擬存儲系統(tǒng)MVS內,所述MVS部署在主機系統(tǒng)中,所述每個MVS包括多個客戶信息控制系統(tǒng)區(qū)域CICS REGION,每個CICS REGION占用的虛擬內存空間相互獨立;所述方法包括:
在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器;所述軟件命名計數(shù)器的結構包括:用于存儲描述計數(shù)器功能的特征區(qū);用于對計數(shù)器中計數(shù)單元進行增加、存儲、刪除和分配操作的名稱區(qū),其中所述名稱區(qū)包括多個名稱,每個名稱包括至少一個計數(shù)單元;用于采用計數(shù)單元進行數(shù)據(jù)存儲的存儲區(qū);和用于對所述軟件命名計數(shù)器進行加密的鎖區(qū)間;
依據(jù)所述軟件命名計數(shù)器占用內存的大小,在所述MVS中為預設的批量程序PGM分配虛擬內存空間;
在所述PGM的虛擬內存空間中加載所述軟件命名計數(shù)器,并將所述PGM的虛擬內存空間的起始地址轉換為物理地址;
將所述物理地址發(fā)送給每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION,以使所述每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION中的聯(lián)機程序,依據(jù)所述物理地址對所述軟件命名計數(shù)器進行訪問。
上述應用在MVS內的方法,優(yōu)選的,所述在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器,包括:
在所述MVS中隨機選擇一個CICS REGION,并將所述CICS REGION確定為目標CICS REGION;
在所述目標CICS REGION中根據(jù)需要設置的軟件命名計數(shù)器所占內存的大小,為所述需設置的軟件命名計數(shù)器分配虛擬內存空間;
把軟件命名計數(shù)器部署在所述虛擬內存空間中。
上述應用在MVS內的方法,優(yōu)選的,所述將所述物理地址發(fā)送給每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION,以使所述每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION中的聯(lián)機程序,依據(jù)所述物理地址對所述軟件命名計數(shù)器進行訪問,包括:
獲取所述每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION相應的虛擬內存空間的地址;
依據(jù)所述每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION相應的虛擬內存空間的地址,將所述物理地址發(fā)送給每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION,以使所述每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION的聯(lián)機程序,依據(jù)所述物理地址,對軟件命名計數(shù)器進行訪問。
上述應用在MVS內的方法,優(yōu)選的,還包括:
獲取所述軟件命名計數(shù)器中數(shù)據(jù)的備份文件;
利用位圖文件bitmap對所述軟件命名計數(shù)器中的數(shù)據(jù)進行監(jiān)控;
當監(jiān)控結果表示所述軟件命名計數(shù)器中的數(shù)據(jù)發(fā)生變化時,依據(jù)所述軟件命名計數(shù)器中數(shù)據(jù)的變化,對所述備份文件中的數(shù)據(jù)進行修改。
本發(fā)明還公開了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法,所述方法應用于MVS群組,所述群組中包括多個MVS,任意兩個MVS之間是物理隔離的,其中每個MVS中設置有多個CICS REGION,且在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器,所述軟件命名計數(shù)器的結構包括:用于存儲描述計數(shù)器功能的特征區(qū);用于對計數(shù)器中計數(shù)單元進行增加、存儲、刪除和分配操作的名稱區(qū),其中所述名稱區(qū)包括多個名稱,每個名稱包括至少一個計數(shù)單元;用于采用計數(shù)單元進行數(shù)據(jù)存儲的存儲區(qū);和用于對所述軟件計數(shù)器進行加密的鎖區(qū)間;所述方法包括:
在所述多個MVS中確定目標MVS,并確定所述目標MVS內用于共享的計數(shù)單元的名稱,其中所述計數(shù)單元的名稱存在于所述軟件命名計數(shù)器的名稱區(qū)中;
將要與所述目標MVS進行數(shù)據(jù)共享的MVS內的計數(shù)單元,與所述目標MVS中用于共享的計數(shù)單元設置成相同的名稱,將要與所述目標MVS進行數(shù)據(jù)共享的MVS表示為共享MVS;
依據(jù)相同的計數(shù)單元的名稱,將所述目標MVS與所述共享MVS建立連接;
獲取所述目標MVS中軟件命名計數(shù)器的物理地址,以使所述共享MVS內的聯(lián)機程序依據(jù)所述目標MVS中軟件命名計數(shù)器的物理地址對所述目標MVS中的軟件命名計數(shù)器進行訪問。
上述應用在MVS群組的方法,優(yōu)選的,所述獲取所述目標MVS中軟件命名計數(shù)器的物理地址,包括:
調取運行于所述目標MVS內的目標CICS REGION中的聯(lián)機程序;
獲取所述目標CICS REGION中保存的目標MVS內的軟件命名計數(shù)器的物理地址。
上述應用在MVS群組的方法,優(yōu)選的,還包括:
獲取所述軟件命名計數(shù)器中數(shù)據(jù)的備份文件;
利用位圖文件bitmap對所述軟件命名計數(shù)器中的數(shù)據(jù)進行監(jiān)控;
當監(jiān)控結果表示所述軟件命名計數(shù)器中的數(shù)據(jù)發(fā)生變化時,依據(jù)所述軟件命名計數(shù)器中數(shù)據(jù)的變化,對所述備份文件中的數(shù)據(jù)進行修改。
本方明還提供了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享系統(tǒng),所述系統(tǒng)應用在多虛擬存儲系統(tǒng)MVS內,所述MVS部署在主機系統(tǒng)中,并且所述每個MVS包括多個客戶信息控制系統(tǒng)區(qū)域CICS REGION,每個CICS REGION占用的虛擬內存空間相互獨立;所述系統(tǒng)包括:
部署單元,用于在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器;所述軟件命名計數(shù)器的結構包括:用于存儲描述計數(shù)器功能的特征區(qū);用于對計數(shù)器中計數(shù)單元進行增加、存儲、刪除和分配操作的名稱區(qū),其中所述名稱區(qū)包括多個名稱,每個名稱包括多個計數(shù)單元;用于采用計數(shù)單元進行數(shù)據(jù)存儲的存儲區(qū);和用于對所述軟件命名計數(shù)器進行加密的鎖區(qū)間;
分配單元,用于依據(jù)所述軟件命名計數(shù)器占用內存的大小,在所述MVS中為預設的批量程序PGM分配虛擬內存空間;
轉換單元,用于在所述PGM的虛擬內存空間中加載所述軟件命名計數(shù)器,并將所述PGM的虛擬內存空間的起始地址轉換為物理地址;
發(fā)送單元,用于將所述物理地址發(fā)送給每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION,以使所述每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION中的聯(lián)機程序,依據(jù)所述物理地址對所述軟件命名計數(shù)器進行訪問。
上述應用在MVS內的系統(tǒng),優(yōu)選的,還包括:
第一獲取單元,用于獲取所述軟件命名計數(shù)器中數(shù)據(jù)的備份文件;
監(jiān)控單元,用于利用位圖文件bitmap對所述軟件命名計數(shù)器中的數(shù)據(jù)進行監(jiān)控;
修改單元,用于當監(jiān)控結果表示所述軟件命名計數(shù)器中的數(shù)據(jù)發(fā)生變化時,依據(jù)所述軟件命名計數(shù)器中數(shù)據(jù)的變化,對所述備份文件中的數(shù)據(jù)進行修改。
本發(fā)明還提供了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享系統(tǒng),所述系統(tǒng)應用于MVS群組,所述群組中包括多個MVS,任意兩個MVS之間是物理隔離的,其中每個MVS中設置有多個CICS REGION,且在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器,所述軟件命名計數(shù)器的結構包括:用于存儲描述計數(shù)器功能的特征區(qū);用于對計數(shù)器中計數(shù)單元進行增加、存儲、刪除和分配操作的名稱區(qū),其中所述名稱區(qū)包括多個名稱,每個名稱包括多個計數(shù)單元;用于采用計數(shù)單元進行數(shù)據(jù)存儲的存儲區(qū);和用于對所述軟件計數(shù)器進行加密的鎖區(qū)間;包括:
確定單元,用于在所述多個MVS中確定目標MVS,并確定所述目標MVS內用于共享的計數(shù)單元的名稱,其中所述計數(shù)單元的名稱存在于所述軟件命名計數(shù)器的名稱區(qū)中;
設置單元,用于將要與所述目標MVS進行數(shù)據(jù)共享的MVS內的計數(shù)單元,與所述目標MVS中用于共享的計數(shù)單元設置成相同的名稱,將要與所述目標MVS進行數(shù)據(jù)共享的MVS表示為共享MVS;
連接單元,用于依據(jù)相同的計數(shù)單元的名稱,將所述目標MVS與所述共享MVS建立連接;
第二獲取單元,用于獲取所述目標MVS中軟件命名計數(shù)器的物理地址,以使所述共享MVS內的聯(lián)機程序依據(jù)所述目標MVS中軟件命名計數(shù)器的物理地址對所述目標MVS中的軟件命名計數(shù)器進行訪問。
本發(fā)明提供了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法,包括:在MVS內確定的唯一一個目標CICS REGION中部署軟件命名計數(shù)器;依據(jù)軟件命名計數(shù)器所占內存的大小為預設的批量程序PGM分配虛擬內存空間,并在該虛擬內存空間中加載軟件命名計數(shù)器,將PGM的虛擬內存空間的起始地址轉換為物理地址;將物理地址發(fā)送給每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION,以使每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION中的聯(lián)機程序,依據(jù)所述物理地址對所述軟件命名計數(shù)器進行訪問。本發(fā)明通過將軟件命名計數(shù)器所在的物理地址,共享給聯(lián)機程序所在的CICS REGION,實現(xiàn)了在MVS內聯(lián)機程序和批量程序之間的數(shù)據(jù)共享,解決了現(xiàn)有技術中無法實現(xiàn)運行在基于SYSPlex機制實現(xiàn)的主機系統(tǒng)中的聯(lián)機程序和批量程序的數(shù)據(jù)共享。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法實施例1的流程圖;
圖2為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法又一方法流程圖;
圖3為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法實施例2的流程圖;
圖4為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享系統(tǒng)實施例1的結構示意圖;
圖5為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享系統(tǒng)實施例2的結構示意圖;
圖6為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享系統(tǒng)實施例3的結構示意圖;
圖7為SYSPlex系統(tǒng)的主機結構示意圖;
圖8位本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法數(shù)據(jù)同步的示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參考圖1,為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法實施例1的流程圖,所述方法應用在多虛擬存儲系統(tǒng)MVS內,所述MVS部署在主機系統(tǒng)中,所述每個MVS包括多個客戶信息控制系統(tǒng)區(qū)域CICS REGION,每個CICS REGION占用的虛擬內存空間相互獨立;
其中MVS所在的SYSPlex系統(tǒng)的主機結構如圖8所示,MVS之間是物理隔離的,每個獨立的MVS內包含一個TOR(Transction of region,交易區(qū)域)和多個AOR(Application of region,應用區(qū)域),它們即是CICS REGION,在銀行系統(tǒng)中,聯(lián)機程序運行在CICS REGION中,批量程序直接運行在MVS內,MVS占據(jù)了一定的主機CPU、內存資源,并將其分配給其中的CICS REGION及批量模式運行的程序,其中各個CICS REGION、批量程序是邏輯獨立的,即享用各自獨立的虛擬內存空間,不能直接相互訪問,但物理內存卻不隔離。
所述方法包括:
步驟S101:在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器;所述軟件命名計數(shù)器的結構包括:用于存儲描述計數(shù)器功能的特征區(qū);用于對計數(shù)器中計數(shù)單元進行增加、存儲、刪除和分配操作的名稱區(qū),其中所述名稱區(qū)包括多個名稱,每個名稱包括多個計數(shù)單元;用于采用計數(shù)單元進行數(shù)據(jù)存儲的存儲區(qū);和用于對所述軟件命名計數(shù)器進行加密的鎖區(qū)間;
本發(fā)明中,設計了一種軟件命名計數(shù)器,該軟件命名計數(shù)器的結構是由特征區(qū)、名稱區(qū)、計數(shù)器存儲區(qū)、鎖區(qū)間構成。其中,特征區(qū)用于存儲描述計數(shù)器特征、全局鎖表操作等特征(如下表1所示)。名稱區(qū)是以字符串+有效位的形式分配、存儲、刪除、增加計數(shù)器,名稱區(qū)內的每一個名字可以對應多個計數(shù)器。計數(shù)區(qū)為了滿足計數(shù)器實時增加、字段擴充的需求,采用了如下結構:
假設存在n個名稱,而名稱中最多存在m個計數(shù)器,因此,Cij(0<i<n,0≤j<m)代表獨立的計數(shù)單元,每個占用4個字節(jié),即最小計算單元。當記錄的數(shù)據(jù)長度發(fā)生溢出或需要合并時,Cij可以和Cij+1合并為多個字節(jié),形成新的計數(shù)器的Cij。在計數(shù)區(qū)中,Ci0不作為計數(shù)器使用,它用于代表當前名稱下的計數(shù)器占用的總字節(jié)數(shù)編碼,其中xik(1≤k≤m),代表Ci下k個計數(shù)器對應的字節(jié)數(shù),在計算過程中,優(yōu)先讀取,即為:
Ci(xi0+xi1+...xi(k-1))/4~Ci(xi0+xi1+...xik)/4;
鎖區(qū)間內最小單位為一個字節(jié),鎖的個數(shù)最多為n*m,那么鎖集合為{L0,L1,...,Ln*(m-1)},那么計數(shù)器Cij對應的鎖單元為Li*j,當程序訪問計數(shù)器Cij,首先對Li*j進行加鎖操作,而后修改Cij數(shù)據(jù),操作結束后釋放對Li*j的鎖。
表1特征字段
本發(fā)明中,在MVS中的多個CICS REGION中,隨機選取一個,并且是唯一的一個CICS REGION,或者由操作人員指定一個CICS REGION,將選取的唯一一個CICS REGION或者指定的唯一一個CICS REGION表示為目標CICS REGION,在目標CICS REGION中部署軟件命名計數(shù)器。在部署NC之前,要依據(jù)需部署的所述軟件命名計數(shù)器所占用的內存的大小,為軟件命名計數(shù)器分配虛擬內存空間。
步驟S102:依據(jù)所述軟件命名計數(shù)器占用內存的大小,在所述MVS中為預設的批量程序PGM分配虛擬內存空間;
本發(fā)明中,MVS中運行有多個批量程序,隨機選取其中一個批量程序表示為PGM,PGM根據(jù)軟件命名計數(shù)器占用內存的大小,通過內存分配,申請一段有效的內存空間,起始地址為ADDR。該內存空間與CICS REGION在邏輯上是獨立的,運行在CICS REGION中的聯(lián)機程序不能直接對內存空間進行訪問。
步驟S103:在所述PGM的虛擬內存空間中加載所述軟件命名計數(shù)器,并將所述PGM的虛擬內存空間的起始地址轉換為物理地址;
本發(fā)明中,在為PGM申請的虛擬內存空間中加載所述軟件命名計數(shù)器,并在加載完成后,批量程序PGM進入掛起狀態(tài),保證申請該內存空間不被釋放,然后基于mmap函數(shù),獲取PGM運行的虛擬內存空間地址對應的唯一的物理地址PADDR。
步驟S104:將所述物理地址發(fā)送給每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION,以使所述每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION中的聯(lián)機程序,依據(jù)所述物理地址對所述軟件命名計數(shù)器進行訪問。
本發(fā)明中,批量程序PGM獲取每一個需要對所述軟件命名計數(shù)器進行訪問的CICS REGION所在的虛擬內存空間地址,依據(jù)CICS REGION的虛擬內存空間,將所述物理地址發(fā)送給每一個需要對所述所述軟件命名計數(shù)器進行訪問的CICS REGION,CICS REGION中的聯(lián)機程序依據(jù)所述物理地址,對所述軟件命名計數(shù)器進行尋址,當找到所述軟件命名計數(shù)器的物理地址后,對所述軟件命名計數(shù)器進行訪問。
本發(fā)明中,步驟S104的具體實現(xiàn)方法為:
批量程序采用EXCI(External CICS interface,中文全稱)方式調用一個聯(lián)機程序,然后由CICS程序調用EXEC(執(zhí)行接口函數(shù)),并且該CICS程序部署在用于共享的CICS REGION上,調用過程中,批量程序基于主機COMMAREA(交易公用區(qū))將PADDR發(fā)送至CICS REGION。
當CICS REGION接收到PADDR,利用CICS LOAD(客戶信息控制系統(tǒng)下載)命令,加載一個占用至少四個字節(jié)的空程序,如下所示。加載結束后,獲取程序代碼段地址,基于字節(jié)碼bytecode技術將PADDR的值覆蓋所述代碼段的首4個字節(jié)。
例如加載的空程序為:
本發(fā)明中,CICS REGION中加載了空程序,并將空程序所在的物理地址的首四個字節(jié)由PADDR的值覆蓋后,運行在CICS REGION中的聯(lián)機程序,通過訪問運行在CICS REGION中的空程序,就能通過PADDR訪問軟件命名計數(shù)器所在的物理地址。
本發(fā)明中,當批量程序接收到數(shù)據(jù)更新的請求時,直接在MVS內直接修改數(shù)據(jù);
本發(fā)明中,當聯(lián)機程序接收到數(shù)據(jù)查詢請求時,根據(jù)所述共享的物理地址對所述軟件命名計數(shù)器進行訪問,實現(xiàn)數(shù)據(jù)的查詢。
本發(fā)明提供了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享的方法,該方法應用在MVS內,通過為運行在MVS內的批量程序分配虛擬內存空間,并將軟件命名計數(shù)器加載到該虛擬內存空間中,通過虛擬地址映射的方法,將軟件命名計數(shù)器所在的虛擬內存空間的起始地址轉換為唯一的物理地址,并將軟件命名計數(shù)器所在的物理地址共享給CICS REGION,運行在CICS REGION中的聯(lián)機程序通過共享的物理地址對軟件命名計數(shù)器進行訪問,解決了現(xiàn)有技術中無法實現(xiàn)運行在基于SYSPlex機制實現(xiàn)的主機系統(tǒng)中的聯(lián)機程序和批量程序的數(shù)據(jù)共享,實現(xiàn)了MVS內部的聯(lián)機程序和批量程序的數(shù)據(jù)共享。
本發(fā)明中,運行在MVS內的其它批量程序對軟件命名計數(shù)器進行訪問的方法包括:
在ADDR的起始地址位置寫入64字節(jié)的識別碼idcode;
與PGM運行于同一個MVS內的其它批量程序基于自身所處的虛擬內存空間地址,向低地址空間遍歷,直到識別到idcode為止,識別到idcode后,直接對所述軟件命名計數(shù)器進行訪問。
本發(fā)明中還包括,CICS REGION中的聯(lián)機程序與批量程序在讀寫文件時,格式并不一致,因此,在本發(fā)明中,進行數(shù)據(jù)備份時所需寫的VSAM文件,是在MVS內利用批量程序格式寫出的。
本發(fā)明中,還包括:MVS采用了頁結構進行內存地址管理,即物理地址轉換為虛擬內存地址后變?yōu)榱隧撍饕叭~偏移。
參考圖2,為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法又一方法流程圖,所述方法包括:
步驟S201:獲取所述軟件命名計數(shù)器中數(shù)據(jù)的備份文件;
步驟S202:利用位圖文件bitmap對所述軟件命名計數(shù)器中的數(shù)據(jù)進行監(jiān)控;
步驟S203:當監(jiān)控結果表示所述軟件命名計數(shù)器中的數(shù)據(jù)發(fā)生變化時,依據(jù)所述軟件命名計數(shù)器中數(shù)據(jù)的變化,對所述備份文件中的數(shù)據(jù)進行修改。
本發(fā)明中,是基于bitmap建立了數(shù)據(jù)的備份和恢復機制,具體的實現(xiàn)方法包括:
為了節(jié)省存儲空間,bitmap中每一位對應為共享區(qū)的每4個字節(jié),假設計數(shù)器結構占用內存空間的字節(jié)數(shù)為N,那么共享N/4個32位數(shù)據(jù)。這N/4數(shù)據(jù)分別映射為bitmap中N/4個位,即bitmap中占用N/32字節(jié)。將bitmap劃分N/128個int類型的數(shù)據(jù),構成集合{b1,b2,...,bn};其中bi(i≥1&i≤N/128),對應了計數(shù)器結構中128個字節(jié)的變化。
監(jiān)控程序循環(huán)讀取bitmap數(shù)據(jù),判斷數(shù)據(jù)變化,根據(jù)數(shù)據(jù)變化,軟件命名計數(shù)器中的信息同步備份到備份文件中,實現(xiàn)了對所述軟件命名計數(shù)器數(shù)據(jù)的備份文件中的數(shù)據(jù)的修改。
本發(fā)明中監(jiān)控程序可以是一份也可是多份,若是多份,每份用于用于跟蹤軟件命名計數(shù)器的不同區(qū)間。
本發(fā)明中,當軟件命名計數(shù)器中的數(shù)據(jù)需要進行修改時,要對前邊提到的鎖區(qū)間加鎖,修改數(shù)據(jù)后,還需要同步修改標志位后,才能進行解鎖。
本發(fā)明中,通過利用bitmap對軟件命名計數(shù)器中的數(shù)據(jù)進行監(jiān)控,實現(xiàn)了對軟件命名計數(shù)器中數(shù)據(jù)的備份文件進行實時修改。
參考圖3,為本申請一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法實施例2的流程圖,所述方法應用于MVS群組,所述群組中包括多個MVS,任意兩個MVS之間是物理隔離的,其中每個MVS中設置有多個CICS REGION,且在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器,所述軟件命名計數(shù)器的結構包括:用于存儲描述計數(shù)器功能的特征區(qū);用于對計數(shù)器中計數(shù)單元進行增加、存儲、刪除和分配操作的名稱區(qū),其中所述名稱區(qū)包括多個名稱,每個名稱包括至少一個計數(shù)單元;用于采用計數(shù)單元進行數(shù)據(jù)存儲的存儲區(qū);和用于對所述軟件計數(shù)器進行加密的鎖區(qū)間;所述方法包括:
步驟S301:在所述多個MVS中確定目標MVS,并確定所述目標MVS內用于共享的計數(shù)單元的名稱,其中所述計數(shù)單元的名稱存在于所述軟件命名計數(shù)器的名稱區(qū)中;
本發(fā)明中,建立不同MVS之間數(shù)據(jù)共享的前提是,不同的MVS中具備相同的計數(shù)器名稱,首先在多個MVS中確定目標MVS,并確定MVS內用于共享的計數(shù)單元的名稱,其中計數(shù)單元的名稱存在于所述軟件命名計數(shù)器的名稱區(qū)中。
步驟S302:將要與所述目標MVS進行數(shù)據(jù)共享的MVS內的計數(shù)單元,與所述目標MVS中用于共享的計數(shù)單元設置成相同的名稱,將要與所述目標MVS進行數(shù)據(jù)共享的MVS表示為共享MVS;
本發(fā)明中,MVS群組中,將要與目標MVS進行數(shù)據(jù)共享的MVS表示為共享MVS,將共享MVS內的計數(shù)單元與目標MVS中用于共享的計數(shù)單元的名稱設置成相同的名稱。
步驟S303:依據(jù)相同的計數(shù)單元的名稱,將所述目標MVS與所述共享MVS建立連接;
本發(fā)明中,MVS在具有相同計數(shù)單元名稱的前提下,能夠建立連接。依據(jù)相同的計數(shù)單元的名稱,將所述目標MVS與所述共享MVS建立連接。
步驟S304:獲取所述目標MVS中軟件命名計數(shù)器的物理地址,以使所述共享MVS內的聯(lián)機程序依據(jù)所述目標MVS中軟件命名計數(shù)器的物理地址對所述目標MVS中的軟件命名計數(shù)器進行訪問。
本發(fā)明中,若共享MVS要訪問目標MVS中的軟件命名計數(shù)器,獲取所述目標MVS中軟件命名計數(shù)器的物理地址,以使所述共享MVS內的聯(lián)機程序依據(jù)所述物理地址,對所述目標MVS中的軟件命名計數(shù)器進行訪問。
本發(fā)明中,參考圖8,實現(xiàn)不同MVS之間的數(shù)據(jù)同步的具體實現(xiàn)方法包括:
步驟1:AOR1、AOR2分別MVS1、MVS2里用于共享的CICS REGION,假設AOR1中包含一個名稱為NAME的計數(shù)器,需要在AOR2中建立一個同為NAME名稱的計數(shù)器。
步驟2::在主機系統(tǒng)上,建立AOR1與AOR2的連通關系,使其可以相互訪問;
步驟3:AOR2內的聯(lián)機程序通過LINK的方式調用AOR1內的連接程序,利用主機中的相關程序傳遞需要訪問的NAME。
步驟4:AOR1內聯(lián)機程序讀取傳遞后的NAME,讀取計數(shù)器結構的物理地址,實現(xiàn)數(shù)據(jù)的更新與讀取。
步驟5:若AOR2為MVS2中的批量程序,則通過EXCI調用AOR2內聯(lián)機程序P1,P1組織數(shù)據(jù)重復步驟3的操作。
本發(fā)明中,通過在不同的MVS內建立相同的計數(shù)器名稱,實現(xiàn)物理隔離的不同MVS之間的數(shù)據(jù)共享,解決了現(xiàn)有技術中,不能實現(xiàn)物理隔離的MVS之間數(shù)據(jù)共享的問題。
本發(fā)明中,實現(xiàn)一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法實施例2中MVS之間的數(shù)據(jù)共享的前提是,實現(xiàn)MVS內聯(lián)機程序和批量程序的數(shù)據(jù)共享,在本發(fā)明中,實現(xiàn)MVS內的聯(lián)機程序和批量程序之間的數(shù)據(jù)共享的方法可以是在實施例1中提到的方法,也可以是其它能夠實現(xiàn)MVS內的聯(lián)機程序和批量程序之間的數(shù)據(jù)共享的方法。
本發(fā)明中,在一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法實施例2的基礎上,要對軟件命名計數(shù)器中的數(shù)據(jù)進行備份并且實時對備份進行修改,實現(xiàn)的方法與圖2對應的方法步驟一致,在這里就不再贅述。
與上述申請?zhí)峁┑囊环N面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法實施例1提供的方法相對應,請參考圖4,本申請還提供了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享系統(tǒng)實施例1的結構示意圖,在本實施例中,該系統(tǒng)應用在多虛擬存儲系統(tǒng)MVS內,所述MVS部署在主機系統(tǒng)中,并且所述每個MVS包括多個客戶信息控制系統(tǒng)區(qū)域CICS REGION,每個CICS REGION占用的虛擬內存空間相互獨立;該系統(tǒng)包括:
部署單元401,用于在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器;所述軟件命名計數(shù)器的結構包括:用于存儲描述計數(shù)器功能的特征區(qū);用于對計數(shù)器中計數(shù)單元進行增加、存儲、刪除和分配操作的名稱區(qū),其中所述名稱區(qū)包括多個名稱,每個名稱包括多個計數(shù)單元;用于采用計數(shù)單元進行數(shù)據(jù)存儲的存儲區(qū);和用于對所述軟件命名計數(shù)器進行加密的鎖區(qū)間;
分配單元402,用于依據(jù)所述軟件命名計數(shù)器占用內存的大小,在所述MVS中為預設的批量程序PGM分配虛擬內存空間;
轉換單元403,用于在所述PGM的虛擬內存空間中加載所述軟件命名計數(shù)器,并將所述PGM的虛擬內存空間的起始地址轉換為物理地址;
發(fā)送單元404,用于將所述物理地址發(fā)送給每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION,以使所述每一個需要對軟件命名計數(shù)器進行訪問的CICS REGION中的聯(lián)機程序,依據(jù)所述物理地址對所述軟件命名計數(shù)器進行訪問。
本發(fā)明中,應用以上系統(tǒng),解決了現(xiàn)有技術中無法實現(xiàn)運行在基于SYSPlex機制實現(xiàn)的主機系統(tǒng)中的聯(lián)機程序和批量程序的數(shù)據(jù)共享,實現(xiàn)了MVS內批量程序與聯(lián)機程序的數(shù)據(jù)共享。
在圖4的基礎上,本申請?zhí)峁┑囊环N面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享系統(tǒng)實施例2的結構示意圖,如圖5所示:,該系統(tǒng)還包括:
第一獲取單元405,用于獲取所述軟件命名計數(shù)器中數(shù)據(jù)的備份文件;
監(jiān)控單元406,用于利用位圖文件bitmap對所述軟件命名計數(shù)器中的數(shù)據(jù)進行監(jiān)控;
修改單元407,用于當監(jiān)控結果表示所述軟件命名計數(shù)器中的數(shù)據(jù)發(fā)生變化時,依據(jù)所述軟件命名計數(shù)器中數(shù)據(jù)的變化,對所述備份文件中的數(shù)據(jù)進行修改。
本發(fā)明中,通過采用bitmap對所述軟件命名計數(shù)器中的數(shù)據(jù)進行監(jiān)控,實現(xiàn)了對軟件命名計數(shù)器中數(shù)據(jù)的實時修改。
與上述本申請?zhí)峁┑囊环N面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享方法實施例3提供的方法相對應,請參考圖6,本申請還提供了一種面向多虛擬存儲系統(tǒng)的數(shù)據(jù)共享系統(tǒng)實施例3的結構示意圖,在本實施例中,所述系統(tǒng)應用于MVS群組,所述群組中包括多個MVS,任意兩個MVS之間是物理隔離的,其中每個MVS中設置有多個CICS REGION,且在所述多個CICS REGION中確定一個目標CICS REGION,在所述目標CICS REGION中部署軟件命名計數(shù)器,所述軟件命名計數(shù)器的結構包括:用于存儲描述計數(shù)器功能的特征區(qū);用于對計數(shù)器中計數(shù)單元進行增加、存儲、刪除和分配操作的名稱區(qū),其中所述名稱區(qū)包括多個名稱,每個名稱包括多個計數(shù)單元;用于采用計數(shù)單元進行數(shù)據(jù)存儲的存儲區(qū);和用于對所述軟件計數(shù)器進行加密的鎖區(qū)間;包括:
確定單元501,用于在所述多個MVS中確定目標MVS,并確定所述目標MVS內用于共享的計數(shù)單元的名稱,其中所述計數(shù)單元的名稱存在于所述軟件命名計數(shù)器的名稱區(qū)中;
設置單元502,用于將要與所述目標MVS進行數(shù)據(jù)共享的MVS內的計數(shù)單元,與所述目標MVS中用于共享的計數(shù)單元設置成相同的名稱,將要與所述目標MVS進行數(shù)據(jù)共享的MVS表示為共享MVS;
連接單元503,用于依據(jù)相同的計數(shù)單元的名稱,將所述目標MVS與所述共享MVS建立連接;
第二獲取單元504,用于獲取所述目標MVS中軟件命名計數(shù)器的物理地址,以使所述共享MVS內的聯(lián)機程序依據(jù)所述目標MVS中軟件命名計數(shù)器的物理地址對所述目標MVS中的軟件命名計數(shù)器進行訪問。
本發(fā)明中,通過在不同MVS內設置相同的計數(shù)單元的名稱,并在相同計數(shù)單元的名稱的前提下,將不同的MVS之間建立連接,實現(xiàn)了不同MVS之間聯(lián)機程序和批量程序的數(shù)據(jù)共享。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
對所公開的實施例的上述說明,使本領域專業(yè)技術人員能夠實現(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。