專利名稱:在面向批處理的環(huán)境中動態(tài)登記文件的機制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及批處理領(lǐng)域。更具體地說,本發(fā)明涉及批處理運行時所 需文件的登記。
背景技術(shù):
批處理是一種對電子計算機進行操作的方式,并且可以追溯到穿孔 卡片的時代。批處理通常被理解為對一系列成批作業(yè)的處理。通常為每 個單獨的批處理作業(yè)提供了全部所需的程序、數(shù)據(jù)和指令,從而可以在 完全沒有用戶干預(yù)的情況下執(zhí)行。
批處理作業(yè)定義在控制語言中,該控制語言通常被稱為JCL (作業(yè) 控制語言)。利用這種控制語言, 一方面可以預(yù)先充分地規(guī)劃批處理作業(yè) 的執(zhí)行,從而可以在沒有任何干預(yù)的情況下在后臺運行這些批處理作業(yè)。 另一方面,可以使準系統(tǒng)(near-system)或物理數(shù)據(jù)(文件名、輸出設(shè)備 的地址等)與運行程序相隔離并轉(zhuǎn)移到JCL控制指令中。這樣,就可以 靈活地規(guī)劃需要數(shù)小時或數(shù)天的計算時間的所有處理。這種計算敏感處 理通常被用于銀行或其他大公司中例如在一天末或年底運行的周期性出 現(xiàn)的批處理。
基于批處理的操作系統(tǒng)通常具有用于控制和監(jiān)控批處理操作運行的 特殊系統(tǒng)組件。這些系統(tǒng)組件讀取JCL控制指令并對其進行解釋。例如, MVS (多虛擬存儲器)操作系統(tǒng)使用JES (作業(yè)入口子系統(tǒng))來讀取和 解釋JCL控制指令。
現(xiàn)今,許多操作系統(tǒng)(在某些情況下通過附加組件)提供批處理以 及諸如交互式處理或?qū)崟r(在線)處理的其他操作模式。例如,基于批 處理的MVS操作系統(tǒng)通過附加CICS (用戶信息控制系統(tǒng))而變得能夠 進行實時處理。附加TSO (時間共享選項)使MVS擴展為可以進行交互
式處理。在以下文獻中概述了 TSO、JCL和JES:Teuffel,Michael,TSO: Time Sharing Option im Betriebssystem MVS—das Lehr — und Handbuch fUr den erfolgreichen TSO-Benutzer (TSO: Time Sharing Option in the MVS operation system - the textbook and manual for the successful TSO user), 3rd edition, Munich, Oldenbourg, 1989。
如上所述,JCL控制指令通常包括準系統(tǒng)或物理信息,并將其鏈接 到程序?qū)S?program-specific)數(shù)據(jù)。例如,如果程序包含了程序員針對 文件類型而選擇的一般名稱(designation),則JCL控制指令中存在指向 存儲在系統(tǒng)中的文件(數(shù)據(jù)集)的引用,并且當程序運行時該引用應(yīng)該 與該一般文件名稱相關(guān)聯(lián)。在MVS/TSO中,通過以下JCL控制指令來 進行該引用
〃my—inputdata DD DSN=edl .i叩ut.data 此處myjnputdata表示程序員針對程序所使用的文件類型而選擇的一般 名稱,在該例中,edl.input.data表示程序要處理的存儲文件的物理名稱。 基于將物理文件名與其物理存儲位置(盤名、道址等)關(guān)聯(lián)起來的數(shù)據(jù) 庫目錄,在JCL控制指令的處理過程中,可以識別必要的物理文件、可 以預(yù)留所需的臨時存儲區(qū)域并且可以讀取想要的文件。這同樣適用于寫 入文件的情況。
盡管批處理有上述優(yōu)點,特別是在計算昂貴并且計算處理周期性出 現(xiàn)的情況下,但直到目前為止可用的功能的范圍仍不足夠。在許多基于 批處理的操作系統(tǒng)中,都需要在程序開始之前生成程序所需的所有文件。 實際上,已經(jīng)證明通常要預(yù)先生成過多的空文件。然而,不必要的空文 件很難識別,并且在批處理操作結(jié)束時通常不刪除這些不必要的空文件。 因此,在常規(guī)的批處理系統(tǒng)中,過多的存儲空間被實際上可以刪除的空 文件不必要地占據(jù)著。對于過去訪問過但在今后運行的程序中不再需要 的文件也存在同樣的問題。
常規(guī)批處理機制的另一個缺點是在JCL控制指令中必須固定地分配 物理文件名(例如,要寫入的文件的文件名)。相應(yīng)地,固定的物理存儲 空間必須與數(shù)據(jù)庫目錄中的每個文件名相關(guān)聯(lián)。在重復(fù)運行批處理操作
的情況下,這種剛性結(jié)構(gòu)的影響是由于固定分配的物理文件名而使要由 程序?qū)ぶ返奈募徊粩嗟馗膶憽R虼?,可能在很長時間內(nèi)不會有令人滿 意的文件版本,即,不能創(chuàng)建特定文件類型的不同版本。(至少是以不可 接受的成本。例如,在許多情況下,在JCL控制指令中對新物理文件名 的不斷分配被排除,這是因為隨后將不得不在每個批處理運行前手動地 改變這些控制指令)。
為了可以更簡單地控制文件版本,已經(jīng)提出了應(yīng)該通過生成數(shù)據(jù)組
(GDG)在操作系統(tǒng)級下動態(tài)地分配文件名。根據(jù)該方法,JCL控制數(shù) 據(jù)中僅有一個組名。操作系統(tǒng)僅在批處理運行時生成指定組的新文件(新 數(shù)據(jù)集)。
然而,使用GDG對于許多應(yīng)用而言并不適用,這是因為只能通過參 照GDG的各個文件在文件棧中的位置(例如棧中的"倒數(shù)第二個文件"或 "第七個文件")來對GDG的各個文件進行相對尋址。可以理解,這使得 編程變得困難,并且尤其使人類用戶難以閱讀指令。此外,在程序崩潰 的情況下,重啟很關(guān)鍵,這是因為與此同時新文件可能已經(jīng)添加到桟中 或者舊文件已經(jīng)被刪除。在這些情況下,個別文件的相對棧位置也已經(jīng) 發(fā)生改變,從而在后續(xù)處理中錯誤的文件被讀取、刪除、改寫等。
本發(fā)明基于以下目的提供改進的用于在面向批處理的環(huán)境中動態(tài) 管理文件的機制。該機制應(yīng)適于簡化文件的內(nèi)部管理(例如,識別和處 理不再需要的文件)。此外,該機制應(yīng)允許可靠的文件版本控制。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,通過一種批處理方法來實現(xiàn)該目的,所述
批處理方法包括以下步驟提供包括對至少一個程序進行調(diào)用的批處理 控制指令;提供各自具有物理文件名的多個文件,所述多個文件在批處 理運行過程中被訪問;提供與程序相關(guān)的文件定義信息,該文件定義信 息通過抽象選擇準則定義了在程序運行過程中被訪問(或至少期望被訪 問)的文件;提供文件寄存器,該文件寄存器用于將為程序運行而創(chuàng)建 的文件的物理文件名寄存在寄存器條目中,所述寄存器條目向每個物理
文件名分配了至少一個選擇屬性;以及基于與待調(diào)用的程序相關(guān)聯(lián)的所 述文件定義信息來選擇和/或創(chuàng)建寄存器條目。
在選擇了寄存器條目后,可以將包含在所選寄存器條目中的物理文 件名(如果需要的話,連同其他寄存器信息)從文件寄存器傳遞到對該 信息進行分析并開始其他步驟的組件。該組件可以是服務(wù)組件(例如, 駐留在批處理環(huán)境中)。根據(jù)該方法的可能版本,將包含在所選寄存器條 目中的信息(例如,物理文件名)從文件寄存器傳遞到服務(wù)組件,該服 務(wù)組件基于該信息為待調(diào)用程序準備運行時環(huán)境。所述運行時環(huán)境的準 備可以包括預(yù)留出存儲空間或準備出(例如開通)程序所需的路徑。這 里的程序通常理解為系統(tǒng)程序或應(yīng)用程序,但是例如也可以是批處理控 制指令的程序(例如,諸如排序算法或編譯器調(diào)用的系統(tǒng)定義的JCL例 程)。
在選擇和/或創(chuàng)建寄存器條目之前可以對包含在文件定義信息中的 抽象選擇準則進行具體化。可以基于至少一個參數(shù)來對抽象選擇準則進 行具體化,所述參數(shù)是在批處理運行開始時傳遞的(例如,傳遞到諸如 JES的批處理控制組件)??梢酝ㄟ^運行控制組件(調(diào)度器)來開始批處 理運行,并且傳遞所述至少一個具體化參數(shù)。所述運行控制組件優(yōu)選地 與所述服務(wù)組件進行通信。所述服務(wù)組件或所述文件寄存器的(或批處 理控制組件的)組件隨后可以基于所傳遞的至少一個參數(shù)對至少一個抽 象選擇準則進行具體化。基于所述至少一個經(jīng)具體化的選擇準則,來選 擇和/或創(chuàng)建文件寄存器中的寄存器條目。可以與所述選擇處理獨立地進 行所述寄存器條目的創(chuàng)建。因此可以想到僅在程序運行后才創(chuàng)建新的寄 存器條目(而相應(yīng)的文件以及這些文件的路徑是在程序運行前創(chuàng)建的)。 此外,可以在程序運行后對所選寄存器條目進行更新。
根據(jù)第一變型例,在批處理控制指令中直接給出所述文件定義信息。 根據(jù)第二變型例,與控制指令獨立地保存所述文件定義信息。在第二變 型例的情況下,例如,所述文件定義信息可以包含在獨立文件中(可以 為待調(diào)用的每個程序創(chuàng)建包含所述文件定義信息的獨立文件)??梢栽谂?處理控制指令中定義包含所述文件定義信息并與特定程序相關(guān)聯(lián)的文
件。這種定義可以包括給出該文件的物理文件名。
包含在所述文件定義信息中的抽象選擇準則可以指代非物理參數(shù)。 這種非物理參數(shù)例如包括非物理文件名(例如由程序員分配并在程序中 尋址的文件類型)。另外地或另選地,抽象選擇準則可以按照其他方式(例 如非直接地)抽象地定義文件寄存器中待選擇的文件和/或待新創(chuàng)建的文 件。例如,通常保存的文件版本和/或文件狀態(tài)準則可以作為抽象選擇準 則包含在所述文件定義信息中。例如,通常保存的文件版本準則表示生 成或更新待選擇的文件的不確定時段或瞬間(例如"本周"或"今天")。
有利的是,控制指令不但與文件定義信息無關(guān),而且在待調(diào)用應(yīng)用 程序的情況下,也與對于應(yīng)用程序運行時所需文件分配物理文件名無關(guān)。 這些事實以及文件寄存器的提供有助于實現(xiàn)文件版本控制機制。
在文件寄存器的寄存器條目中,每個物理文件名都與至少一個選擇 屬性相關(guān)聯(lián)。基于寄存器條目中的選擇屬性和確定的選擇準則,來確定 待選擇和/或創(chuàng)建的寄存器條目。根據(jù)第一變型例,所述至少一個選擇屬 性包括文件版本屬性。所述文件版本屬性可以被選擇為,使其可以區(qū)分 程序代碼中定義的文件類型的不同版本。例如,文件版本屬性是時間戳 或連續(xù)計數(shù)。
根據(jù)另一變型例,所述至少一個選擇屬性表示程序?qū)S梦募愋兔?稱。這種選擇屬性使得可以進行寄存器條目(其中包含物理文件名)的 與程序有關(guān)的選擇和/或與程序有關(guān)的創(chuàng)建。
根據(jù)第三變型例,所述至少一個選擇屬性包括文件狀態(tài)屬性。可以 通過文件狀態(tài)屬性來識別文件的活動狀態(tài)。文件狀態(tài)屬性可以是二元參 數(shù)(活動/非活動)或者是有兩個以上狀態(tài)的參數(shù)。利用文件狀態(tài)屬性, 可以在批處理運行的環(huán)境中實現(xiàn)諸如找到不再需要的空文件或選擇與狀 態(tài)有關(guān)的文件的有利功能。
可以在程序結(jié)束后,針對下一批處理事件對在程序運行期間被訪問 的文件的選擇屬性,特別是文件狀態(tài)屬性進行分配或更新。因此新創(chuàng)建 和寫入的文件可以接收第一活動狀態(tài)。另一方面,在程序運行期間讀取 的先前創(chuàng)建的文件可以接收與第一活動狀態(tài)不同的第二活動狀態(tài)。這樣
就可以基于文件狀態(tài)屬性(例如在第二活動狀態(tài)的情況下)來進行包括 文件刪除和/或文件存檔的文件內(nèi)部管理。此外,作為文件內(nèi)部管理的一 部分,可以定義和監(jiān)控保留期。
有用的是,對于在程序運行之前新創(chuàng)建但在程序運行期間未使用的 文件(空文件),根本不創(chuàng)建寄存器條目。在這種情況下,可以例如通過 周期性地將寄存在文件寄存器中的文件與實際存在的文件進行比較而可 靠地檢測到不必要地生成的文件,并在需要時將其刪除。
在刪除不再需要(例如己讀取或非活動)的文件時,也可以刪除文 件寄存器中的相應(yīng)寄存器條目(反之亦然)。同樣,在寫入新文件時,可 以在文件寄存器中生成相應(yīng)的寄存器條目。有用的是,在創(chuàng)建新寄存器 條目時,可以直接輸入相關(guān)聯(lián)的選擇屬性,并以此方式與寄存器條目中 的物理文件名產(chǎn)生聯(lián)系。
本發(fā)明可以實現(xiàn)為軟件、硬件或硬件和軟件的組合。因此本發(fā)明的 另一方面涉及具有程序代碼單元的計算機程序產(chǎn)品,其中當所述計算機 程序產(chǎn)品在一 臺或更多臺計算機上運行時,所述程序代碼單元執(zhí)行根據(jù)
本發(fā)明的步驟。所述計算機程序產(chǎn)品可以存儲在諸如DVD-ROM或 CD-ROM的計算機可讀數(shù)據(jù)介質(zhì)上。
根據(jù)硬件方面,本發(fā)明提供了一種批處理系統(tǒng)。根據(jù)本發(fā)明的批處 理系統(tǒng)包括批處理控制組件,用于對批處理控制指令進行處理,所述 批處理控制指令包括調(diào)用至少一個程序;用于存儲多個文件的存儲組件 (例如數(shù)據(jù)庫),每個文件都具有物理文件名并在批處理程序運行時被訪 問;文件定義組件,用于提供與程序有關(guān)的文件定義信息,所述文件定 義信息通過抽象選擇準則定義了程序運行所需的文件;文件寄存器,用 于寄存為程序運行而創(chuàng)建的文件的物理文件名,該文件寄存器的寄存器 條目中的每個物理文件名都與至少一個選擇屬性相關(guān)聯(lián);以及運行時組
件,其與所述批處理控制組件進行通信,并且訪問所述文件寄存器和所 述文件定義組件,所述服務(wù)組件基于與待調(diào)用的程序相關(guān)聯(lián)的所述文件 定義信息來開始選擇和/或創(chuàng)建寄存器條目。
所述服務(wù)組件可以訪問包含在所選和/或新創(chuàng)建的寄存器條目中的物理文件名?;谒x和/或新創(chuàng)建的寄存器條目,所述服務(wù)組件因此可 以為待調(diào)用程序準備運行時環(huán)境。
所述批處理系統(tǒng)還可以包括用于啟動所述批處理運行并傳遞至少一 個參數(shù)的運行控制組件,所述至少一個參數(shù)對包含在所述文件定義信息 中的抽象選擇準則進行具體化。所述服務(wù)組件可以是基于經(jīng)具體化的選 擇準則來開始選擇和/或創(chuàng)建寄存器條目的形式。
所述批處理系統(tǒng)還可以包括數(shù)據(jù)庫目錄,其中每個物理文件名都與 物理存儲位置相關(guān)聯(lián)。所述數(shù)據(jù)庫目錄可以在所述文件寄存器以外額外 設(shè)置。
還可以想到將一管理組件與所述批處理系統(tǒng)相關(guān)聯(lián)。所述管理組件 可以執(zhí)行諸如創(chuàng)建空文件并向所選或新創(chuàng)建的文件開通路徑的任務(wù)。
在以下對優(yōu)選實施方式的說明和附圖中給出了本發(fā)明的其他優(yōu)點和 演進。
圖1示出了根據(jù)本發(fā)明的批處理系統(tǒng)的示意圖; 圖2示出了根據(jù)本發(fā)明的批處理方法的實施方式的流程圖; 圖3示出了為根據(jù)圖1的批處理系統(tǒng)準備運行時環(huán)境的示意圖; 圖4示出了與準備運行時環(huán)境相關(guān)聯(lián)地在文件寄存器中選擇寄存器 條目的示意圖-,
圖5示出了將新創(chuàng)建和寫入的文件寄存在文件寄存器中的示意圖; 圖6示出了文件定義組件及其包含的抽象文件定義信息的示意圖; 圖7示出了經(jīng)具體化的文件定義信息的示意圖;而 圖8和圖9示出了文件寄存器的寄存器條目的示意圖。
具體實施例方式
下面以批處理環(huán)境為例對本發(fā)明的各種實施方式進行說明,該批處 理環(huán)境基于為其提供的MVS操作系統(tǒng)和交互式組件TSO。不言而喻,本 發(fā)明還可以實現(xiàn)在諸如VMS或UNIX的其他面向批處理的操作系統(tǒng)中。圖1示出了示例性批處理系統(tǒng)100的必要組件的示意圖。作為核心 元件,系統(tǒng)100包括由MVS操作系統(tǒng)提供的批處理環(huán)境10。批處理控 制組件12 (JES)形成了批處理環(huán)境10的必要部分??刂平M件12為處理 批處理控制指令14 (JCL)的形式,在該實施方式中批處理控制指令14 是在批處理環(huán)境10的外部準備好的。
通常,控制指令14是以多記錄(JCL記錄)形式被創(chuàng)建的,并作為 文件(數(shù)據(jù)集)被存儲在系統(tǒng)數(shù)據(jù)庫(例如圖1中所示的數(shù)據(jù)庫16)中。 包含在控制指令14中的JCL記錄中的至少一個(EXEC記錄)定義了要 在批處理運行中調(diào)用和執(zhí)行的程序(例如,應(yīng)用程序)。包含在控制指令 14中的JCL記錄中的至少另一個(DD記錄)定義了下面將要詳細描述 并在批處理環(huán)境10中需要的文件的物理文件名。然而,在EXEC記錄中 表示的程序所需文件的物理文件名沒有包含在控制指令中。
在運行時環(huán)境10的外部設(shè)置有與控制組件12進行通信的運行控制 組件18 (調(diào)度器)。運行控制組件18定義了批處理運行的時間和邏輯順 序,還負責啟動各個批處理運行。批處理運行還可以例如通過輸入TSO 命令SUBMIT而手動啟動。
批處理環(huán)境10中設(shè)置有被稱為服務(wù)組件20 (公共服務(wù)框架,CSF) 的組件。其目的是動態(tài)地為批處理運行提供資源(臨時存儲空間、與路 徑相關(guān)聯(lián)的文件等)。服務(wù)組件20的必要功能是為控制指令14中表示的 并且要在批處理運行中調(diào)用的程序準備運行時環(huán)境。在圖1所示實施方 式中,服務(wù)組件20被表示為控制組件12的一部分。然而,服務(wù)組件20 還可以具有控制組件12以外,特別是批處理環(huán)境10以外的功能。
服務(wù)組件20和控制組件12可以訪問文件寄存器22 (FR)、文件定 義組件24 (文件定義文件,F(xiàn)DF)和數(shù)據(jù)庫16 (DB)。數(shù)據(jù)庫16中存儲 有批處理運行期間(特別是程序運行期間)要被訪問的文件。數(shù)據(jù)庫16 中的每個文件都與一物理文件名相關(guān)聯(lián)。在數(shù)據(jù)庫目錄26 (CAT)中, 數(shù)據(jù)庫16中的物理存儲位置相應(yīng)地與每個物理文件名相關(guān)聯(lián)。通過此處 無需進一步考慮的系統(tǒng)功能來管理數(shù)據(jù)庫目錄26。
文件寄存器22與服務(wù)組件20進行通信,并訪問數(shù)據(jù)庫16 (如果需 要的話也訪問數(shù)據(jù)庫目錄26)。文件寄存器22包含單獨的寄存器條目, 在寄存器條目中每個物理文件名都與至少一個選擇屬性相關(guān)聯(lián)。
與程序有關(guān)的抽象選擇準則與文件寄存器22中的寄存器條目的單 獨的選擇屬性相關(guān)聯(lián)。抽象選擇屬性指定了在特定程序運行時所需(例 如要讀取和/或?qū)懭?的文件(數(shù)據(jù)集),并由文件定義組件24作為文件 定義信息而提供。此處文件定義組件24是(例如存儲在數(shù)據(jù)庫16中的) 文件定義文件。
控制指令14的DD記錄中的文件定義文件可以與物理文件名相關(guān) 聯(lián)。這樣就在控制指令14中產(chǎn)生了 (通過其物理文件名而)指定的文件 定義文件與在控制指令14的EXEC記錄中表示的指定程序之間的聯(lián)系 (還可以想到其他關(guān)聯(lián)機制)?;谶@種聯(lián)系,服務(wù)組件10可以確定與 待調(diào)用程序相關(guān)聯(lián)的文件定義信息,并基于該文件定義信息開始在文件 寄存器22中選擇和/或創(chuàng)建寄存器條目。
在文件寄存器22中選擇和/或創(chuàng)建寄存器條目是與訪問和/或創(chuàng)建相 應(yīng)物理文件相獨立地進行的。為了在程序運行前開始創(chuàng)建空文件,設(shè)置 了文件管理組件21。利用文件管理組件21,還可以在程序運行前開通所 選和/或所創(chuàng)建的文件的路徑。根據(jù)圖1,文件管理組件21與服務(wù)組件21 和數(shù)據(jù)庫16進行通信。
下面,將參照圖2所示的流程圖200來說明批處理方法的實施方式。 可以利用圖1所示的批處理系統(tǒng)100或利用構(gòu)成不同的系統(tǒng)在計算機產(chǎn) 品的控制下實現(xiàn)該方法。
該方法開始于步驟202,在步驟202中準備包含對至少一個程序進 行調(diào)用的批處理控制指令。隨后,在步驟204中,準備具有物理文件名 并在批處理運行期間被訪問的文件。在下一步驟206中,準備與程序相 關(guān)的文件定義信息。所述文件定義信息定義了在程序運行期間被訪問(或 至少期望被訪問)的文件。程序運行期間的文件訪問包括至少一次寫入 訪問或至少一次讀取訪問。文件定義信息優(yōu)選地以抽象選擇準則的形式 來定義程序運行期間所需的文件。
在步驟208中,準備文件寄存器,在所述寄存器中可以以寄存器條
目的形式寄存為程序運行而創(chuàng)建的文件的物理文件名。有用的是,專門 為那些在前一程序運行過程中實際被訪問的文件創(chuàng)建寄存器條目。在文 件寄存器中,每個寄存器條目都與至少一個選擇屬性相關(guān)聯(lián)。
在下一步驟210中,基于與待調(diào)用的程序相關(guān)聯(lián)的文件定義信息來
選擇和/或創(chuàng)建寄存器條目。每個選擇處理都基于此處包含的選擇準則。
可以按照如下方式來創(chuàng)建新寄存器條目在文件寄存器中,至少一個選 擇屬性與物理文件名相關(guān)聯(lián)(取決于包含在相應(yīng)文件定義信息中的選擇 準則)。選擇和創(chuàng)建的子步驟可以立即逐一執(zhí)行或者相對于程序運行在時 間上獨立地執(zhí)行。因此可以在程序運行前進行寄存器條目的選擇,而在 程序運行后對所選寄存器條目進行更新并創(chuàng)建新的寄存器條目。
在隨后的步驟(圖2中未示出)中,特別是在基于包含在所選寄存 器條目中的信息(例如基于所選物理文件名)選擇了寄存器條目后,可
以準備待調(diào)用的程序的運行時環(huán)境。另外,在步驟210之前,可以對包
含在文件定義信息中的抽象選擇準則中的至少一個進行具體化。隨后可
以基于至少一個經(jīng)具體化的選擇準則來執(zhí)行步驟210。
下面將參照圖3至圖9來說明批處理方法的詳細實施方式。所述方 法可以利用圖1中所示的批處理系統(tǒng)IOO來實現(xiàn)。因此,為相同類型的 元件使用了相同的標號。
在采用服務(wù)組件20的功能之前,在批處理環(huán)境10中創(chuàng)建服務(wù)組件 20的運行時環(huán)境。在圖3中示意性示出了服務(wù)組件20的運行時環(huán)境的創(chuàng) 建,下面對其進行簡要描述。
如果批處理控制組件12受圖1中所示的運行控制組件18 (或手動 地)指示對控制指令14進行處理,則控制組件12首先在圖3中所示的 第一步驟中準備服務(wù)組件20的運行時環(huán)境。為此,在批處理環(huán)境中預(yù)留 出服務(wù)組件20可載入其中的存儲空間(未示出)。此外,為服務(wù)元件20 要讀取的文件定義組件24以及為文件寄存器條目預(yù)留出存儲空間30。文 件定義組件24的存儲空間30是基于控制指令14而預(yù)留的,控制指令14 為要載入的文件定義組件24分配了物理文件名(DD記錄)。
在控制組件12已經(jīng)為文件定義組件24、寄存器條目和服務(wù)組件20
預(yù)留了存儲空間后,在控制指令14的控制下,服務(wù)組件20被載入并調(diào) 用。隨后服務(wù)組件20在圖3中所示的第二步驟中將控制指令14中給出 了其物理文件名的文件定義組件(數(shù)據(jù)集)載入所預(yù)留的存儲空間30中。
隨后,基于所載入的文件定義組件24的內(nèi)容和部分地從運行時環(huán)境 10的外部(例如從運行控制組件)獲得的其他信息,在第三步驟中為控 制指令14中指示且要被載入的(應(yīng)用)程序準備運行時環(huán)境32。圖4示 意性示出了該運行時環(huán)境的準備。
從圖4中可以看出,服務(wù)組件20具有控制邏輯40。控制邏輯40開 始對于待調(diào)用的程序的運行時環(huán)境的準備,下面將更詳細地對此進行描 述。
首先,運行控制組件18將控制指令14和指定的參數(shù)集傳遞到控制 組件12。控制組件12將與控制指令14中待調(diào)用的程序相關(guān)聯(lián)的文件定 義組件24載入所預(yù)留的存儲空間(圖3中的標號30)中。隨后基于所傳 遞的參數(shù)對載入的文件定義組件24的內(nèi)容進行具體化,最后進行分析。 這種分析的目的是識別待調(diào)用的程序所需的文件。
例如,圖6示出了由控制組件12載入的文件定義組件24。文件定 義組件24包含了在控制指令14的EXEC記錄中指定的程序的文件定義 信息,在本例中被稱為"PRG-PROC70982"。該文件定義信息通過抽象(非 物理)選擇準則以及(如果需要的話)其他選擇準則定義了該程序運行 期間所需的文件。在該實施方式中,抽象選擇準則是準則"版本"和"處理 單元"。在圖6中所示的情況下,假設(shè)程序訪問了兩種不同的文件類型。 被稱為myjnputdata的第一種文件類型由程序來讀取,而被稱為 my—ouputdata的第二種文件類型由程序來寫入。對于被稱為myjnputdata 的文件類型,抽象選擇準則"版本"聲明了本周內(nèi)創(chuàng)建的該文件類型的所 有版本都是由程序讀取的。另外,在相關(guān)的批處理運行中,應(yīng)該僅讀取 那些與特定的抽象表示(即,在文件定義信息中沒有明確地指定)的處 理單元相關(guān)聯(lián)的文件類型。對于待調(diào)用的程序所需的第二種文件類型 my一ouputdata,文件定義信息抽象地指定對于相關(guān)的處理單元,應(yīng)該創(chuàng) 建帶有今天的日期的當前文件版本(新文件)。在讀取了已經(jīng)參照圖6說明過的文件定義信息后,在下一步驟中對 包含在其中的抽象選擇準則(版本、處理單元)進行具體化。利用運行 控制組件18 (或手動地)傳遞到控制組件的參數(shù)集來對這些選擇準則進
行具體化。在該例中,具體化參數(shù)可以是當前日期(例如,13.12,2004) 和指定的處理單元的編號(例如03)。假設(shè)在本周中,對于被稱為 my—inputdata的文件類型,存在11.12.2004和12.12.2004的文件版本,并 假設(shè)要針對13.12.2004創(chuàng)建被稱為my一ouputdata的文件類型的新文件, 則圖5中所示的文件定義組件24的經(jīng)具體化的選擇參數(shù)如圖7所示。
應(yīng)指出的是,根據(jù)圖6的文件類型名稱還表示袖象(非物理)選擇 準則,因為(尚)未將物理文件名分配給該文件類型名稱。而是利用文 件寄存器22來分配物理文件名,下面將更詳細地對此進行說明。還應(yīng)指 出的是,在文件定義信息中,對于每種文件類型,都存在以下指示數(shù) 據(jù)庫16中已經(jīng)存在程序所需的相應(yīng)文件,還是必須在程序被調(diào)用之前通 過文件管理組件21新創(chuàng)建程序所需的相應(yīng)文件。
圖7中所示的部分具體化的選擇準則以單個列表34 (見圖4)的形 式或順序地被傳遞到文件寄存器22。文件寄存器22的接口組件42接收 選擇準則34并借助于文件寄存器數(shù)據(jù)庫44對其進行分析。該數(shù)據(jù)庫44 中寄存有在以前的批處理運行(即以前的程序運行)的環(huán)境中被訪問的 那些文件的物理文件名。如圖8所示,這些物理文件名是以單獨的寄存 器條目的形式寄存的。
例如,圖8中示出了四個寄存器條目,每個寄存器條目都對應(yīng)于具 有物理文件名的單個物理文件。每個寄存器條目都與多個選擇屬性相關(guān) 聯(lián)。第一選擇屬性表示特定文件類型名稱。第二選擇屬性是時間戳形式 的文件版本屬性。時間戳表示特定文件被創(chuàng)建或更新的日期("日期"或"每 天")。第三選擇屬性標識了針對其創(chuàng)建特定文件的處理單元。第四選擇 屬性是文件狀態(tài)屬性,其表示特定文件的活動狀態(tài)并使得可以找到不再 需要的文件(特別是已經(jīng)讀取過的文件)。
下面將針對圖8所示的表中的第一寄存器條目更詳細地說明各個選 擇屬性。根據(jù)該第一寄存器條目,物理名為P01.F3.DDT.X3的文件是文 件類型為my—inputdata的文件,并且是針對處理單元03在2004年12月
11日創(chuàng)建的。該文件被標記為狀態(tài)屬性"活動"。
根據(jù)以上所述內(nèi)容,下面可以對根據(jù)圖4的接口組件42的作用方法 進行說明。接口組件42具有兩種不同的功能, 一方面具有選擇一個或更 多個現(xiàn)有條目(圖4)的功能,另一方面具有寄存新條目的功能(即創(chuàng)建 如圖5所示的新條目)。首先將基于圖4來說明現(xiàn)有寄存器條目的選擇。 在分析根據(jù)圖7的列表34中的經(jīng)具體化的文件定義信息時,接口組 件42確認應(yīng)該讀取針對處理單元03的被稱為my一inputdata的文件類型 的兩個版本,即11.12.2004和12.12.2004的兩個文件版本。接口組件42 基于這些選擇準則來選擇文件寄存器數(shù)據(jù)庫44中與這些選擇準則一致的 那些條目。這些條目是根據(jù)圖8的表中的前兩個條目。接口組件42讀取 這兩個條目并以列表的形式(或順序地)將其傳遞回控制組件12。
對于被稱為my—ouputdata的文件類型,CSF邏輯40確認要新創(chuàng)建 并寫入的文件是具有今天的日期(13.12.2004)的文件版本并且是針對處 理單元03的。隨后CSF邏輯使文件管理組件21在數(shù)據(jù)庫16中創(chuàng)建新的 空文件,并分配新的物理文件名,還將該新的物理文件名(連同物理存 儲位置一起)輸入數(shù)據(jù)庫目錄26中。
隨后控制組件12為接口組件42保持的列表50中列出的所有文件或 者由文件管理組件21新創(chuàng)建的所有文件預(yù)留出存儲區(qū)域。應(yīng)該指出的是, 目前控制組件12還從列表50或管理組件21知曉了在程序運行期間被尋 址的文件的物理文件名,因此可以開通程序所需的文件(即所選和新創(chuàng) 建的文件)的路徑??刂平M件12可以將開通程序所需文件的路徑的任務(wù) 委托給管理組件21。作為運行時準備的最后步驟,服務(wù)組件12為待調(diào)用 的程序預(yù)留存儲空間,并最終將控制指令14中定義的程序載入并調(diào)用到 為此而預(yù)留的存儲空間中。
在程序結(jié)束后,CSF邏輯40基于文件定義信息24來檢查文件寄存 器數(shù)據(jù)庫44中的條目必須被新創(chuàng)建或更新至何種程度。如圖5所示,必 須將相應(yīng)的信息以列表52的形式或順序地傳送到文件寄存器22的接口 組件42。接口組件42對接收到的信息進行分析并基于接收到的信息來創(chuàng)
建新的寄存器條目,或者對現(xiàn)有的寄存器條目進行更新。
下面基于參照圖6至圖8說明的例子來說明該處理。在程序結(jié)束后, CSF邏輯40基于文件定義信息24來檢查在程序運行時己經(jīng)出現(xiàn)的文件 訪問。這樣,CSF邏輯就確認程序讀取了針對處理單元03的文件類型名 稱為my—inputdata的兩個文件。相應(yīng)地,傳遞到接口組件42的列表52 包括將這兩個文件的狀態(tài)從"活動(active)"變?yōu)?已讀取(read)"的指令(見 圖9)。 CSF邏輯還確認"日期"為13.12.2004的針對處理單元03的文件類 型名稱為my—ouputdata的文件是由程序新創(chuàng)建并實際寫入的。相應(yīng)地, 列表52包括創(chuàng)建具有相應(yīng)選擇屬性和相應(yīng)物理文件名的相應(yīng)新寄存器條 目(如圖9所示)的指令。
如果CSF邏輯40確認在程序運行前文件管理組件21確實創(chuàng)建了新 的(空)文件,而該文件在程序運行期間并未被寫入,則不向列表52添 加對于該新創(chuàng)建的文件的索引。相應(yīng)地,接口組件42也不為不需要的該 空文件創(chuàng)建新的寄存器條目??梢栽谇宄幚碇姓业讲h除這種(不需 要的)空文件。為了找到不需要的空文件,檢查在數(shù)據(jù)庫16中創(chuàng)建的在 文件寄存器數(shù)據(jù)庫44中不存在相應(yīng)寄存器條目的文件。隨后刪除這種文 件。
由于根據(jù)以上說明,不必在控制指令14中定義程序所需文件的物理 文件名,所以批處理運行可以是更為靈活的形式。在所述實施方式中, 利用文件寄存器將物理文件名動態(tài)地與程序?qū)S梦募愋完P(guān)聯(lián)起來。文 件寄存器使得可以在不需要利用常規(guī)GDG的情況下以有利的方式進行
文件版本控制。另外,文件寄存器中對諸如"日期"的具體(絕對)版本 屬性的靈活分配使得在系統(tǒng)崩潰的情況下可以進行與問題無關(guān)的重新啟 動。具體地說,如果使用了版本屬性和相應(yīng)的選擇準則,則可以避免GDG 的相對索引。
文件寄存器的另一優(yōu)點是可以為每個物理文件分配文件狀態(tài)屬性。
文件狀態(tài)屬性使得可以區(qū)分并管理每個文件。具體地說,通過這種方式 可以可靠地找到并刪除不活動的或已經(jīng)被讀取過的文件。可以通過接口 組件42或通過附加的管理服務(wù)46來執(zhí)行文件和狀態(tài)操作,如圖4所示。
可以從文件寄存器的外部(以及批處理環(huán)境的外部)來調(diào)用管理服務(wù)46。 優(yōu)選的是,周期性地調(diào)用管理服務(wù)46從而以規(guī)則間隔來刪除不活動的和 讀取過的文件。
管理服務(wù)46還可用于根據(jù)文件寄存器44中的條目識別出不再需要 (己讀取)的文件并將這些文件從數(shù)據(jù)庫16中刪除。顯然,這種清除步 驟還可以基于一個或更多個其他的或另外的選擇屬性來進行。因此可以 想到,基于寄存器條目識別出在指定關(guān)鍵日期之前生成并且應(yīng)該被刪除 的所有文件。
權(quán)利要求
1、一種批處理方法,該批處理方法包括以下步驟-提供包括對至少一個程序進行調(diào)用的批處理控制指令(JCL,14);-提供多個文件(16),所述多個文件中的每一個都有物理文件名,并且在批處理運行過程中被訪問;-在批處理運行的環(huán)境下處理所述控制指令(JCL,14);其特征在于以下步驟-提供與程序有關(guān)的文件定義信息(FDF,24),該文件定義信息定義了在程序運行過程中被訪問的文件;-提供文件寄存器(FR,22),該文件寄存器用于以寄存器條目的形式寄存為程序運行而創(chuàng)建的文件的物理文件名,所述寄存器條目使每個物理文件名與至少一個選擇屬性相關(guān)聯(lián);以及-基于與待調(diào)用的程序相關(guān)聯(lián)的所述文件定義信息來選擇和/或創(chuàng)建寄存器條目。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于將包含在所選寄存器條目中的物理文件名從所述文件寄存器(22) 傳遞到服務(wù)組件(CSF, 10)。
3、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于 基于所選寄存器條目,為待調(diào)用的程序準備運行時環(huán)境。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述運行時環(huán)境的準 備包括準備程序所需文件的路徑。
5、 根據(jù)權(quán)利要求1至4中任意一項所述的方法,其特征在于,基于至少一個參數(shù)對包含在所述文件定義信息中的選擇準則進行具體化,并 且基于經(jīng)具體化的選擇準則來選擇和/或創(chuàng)建寄存器條目。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于在批處理運行開始時, 將所述至少一個參數(shù)傳遞到批處理控制組件(JES, 12)。
7、 根據(jù)權(quán)利要求1至6中任意一項所述的方法,其特征在于,在所 述程序運行之后,創(chuàng)建新的寄存器條目和/或?qū)λx寄存器條目進行更新。
8、 根據(jù)權(quán)利要求1至7中任意一項所述的方法,其特征在于,所述 文件定義信息包含在所述批處理控制指令中所定義的文件(FDF, 24)中。
9、 根據(jù)權(quán)利要求1至8中任意一項所述的方法,其特征在于,包含 在所述文件定義信息中的所述抽象選擇準則與至少一個非物理參數(shù)有 關(guān)。
10、 根據(jù)權(quán)利要求1至9中任意一項所述的方法,其特征在于,與 所述控制指令獨立地保存所述文件定義信息。
11、 根據(jù)權(quán)利要求1至10中任意一項所述的方法,其特征在于,所 述程序是應(yīng)用程序,并且所述控制指令與為所述應(yīng)用程序運行時所需的 文件分配物理文件名無關(guān)。
12、 根據(jù)權(quán)利要求1至11中任意一項所述的方法,其特征在于,所 述至少一個選擇屬性包括文件版本屬性。
13、 根據(jù)權(quán)利要求12所述的方法,其特征在于 所述文件版本屬性是時間戳。
14、 根據(jù)權(quán)利要求1至12中任意一項所述的方法,其特征在于,所 述至少一個選擇屬性表示程序?qū)S梦募愋汀?br>
15、 根據(jù)權(quán)利要求1至14中任意一項所述的方法,其特征在于,所 述至少一個選擇屬性包括文件狀態(tài)屬性。
16、 根據(jù)權(quán)利要求15所述的方法,其特征在于 所述文件狀態(tài)屬性標識了文件的活動狀態(tài)。
17、 根據(jù)權(quán)利要求15或16所述的方法,其特征在于 在所述程序運行之后,對在所述程序運行期間被訪問的文件的所述文件狀態(tài)屬性進行分配或更新。
18、 根據(jù)權(quán)利要求15至17中任意一項所述的方法,其特征在于, 基于所述文件狀態(tài)屬性來實現(xiàn)所述文件的內(nèi)部管理。
19、 一種具有程序代碼單元的計算機程序產(chǎn)品,當所述計算機程序 產(chǎn)品在一臺或更多臺計算機上運行時所述程序代碼單元執(zhí)行權(quán)利要求1 至18中任意一項所述的歩驟。
20、 根據(jù)權(quán)利要求19所述的計算機程序產(chǎn)品,該計算機程序產(chǎn)品存 儲在計算機可讀數(shù)據(jù)介質(zhì)中。
21、 一種批處理系統(tǒng)(100),該批處理系統(tǒng)包括-批處理控制組件(JES, 12),用于對批處理控制指令(JCL, 14) 進行處理,所述批處理控制指令包括對至少一個程序的調(diào)用;以及-存儲有多個文件的存儲組件(DB, 16),所述多個文件中的每一 個都具有物理文件名并在批處理程序運行期間被訪問; 其特征在于-文件定義組件(FDF, 24),用于提供與程序有關(guān)的文件定義信息,所述文件定義信息定義了程序運行所需的文件;-文件寄存器(FR, 22),用于寄存為程序運行而創(chuàng)建的文件的物理文件名,該文件寄存器(FR, 22)的寄存器條目中的每個物理文件名都 與至少一個選擇屬性相關(guān)聯(lián);以及-服務(wù)組件(CSF, 20),其與所述批處理控制組件(JES, 12)進 行通信,并且訪問所述文件寄存器(FR, 22)和所述文件定義組件(FDF, 24),所述服務(wù)組件基于與待調(diào)用的程序相關(guān)聯(lián)的所述文件定義信息而開 始選擇和/或創(chuàng)建寄存器條目。
22、 根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于 所述服務(wù)組件(20)可以訪問包含在所選或新創(chuàng)建的寄存器條目中的所述物理文件名。
23、 根據(jù)權(quán)利要求21或22所述的系統(tǒng),其特征在于所述服務(wù)組件(20)基于所選和/或新創(chuàng)建的寄存器條目來為待調(diào)用 的程序準備運行時環(huán)境。
24、 根據(jù)權(quán)利要求21至23中任意一項所述的系統(tǒng),其特征在于 運行控制組件(18),用于啟動所述批處理運行并傳遞至少一個參數(shù),所述至少一個參數(shù)對包含在所述文件定義信息中的所述抽象選擇準則進 行具體化,所述服務(wù)組件(20)基于經(jīng)具體化的選擇準則而開始在文件 寄存器(22)中選擇和/或創(chuàng)建寄存器條目。
25、 根據(jù)權(quán)利要求21至24中任意一項所述的系統(tǒng),其特征在于 所述文件寄存器(FR, 22)以數(shù)據(jù)庫的形式構(gòu)成。
全文摘要
本發(fā)明提供了在面向批處理的環(huán)境中動態(tài)登記文件的機制。為了識別不必要創(chuàng)建或不再需要的文件從而在面向批處理的環(huán)境中進行可靠的文件版本控制,提供了一種動態(tài)批處理系統(tǒng)(100)。該系統(tǒng)(100)包括批處理控制組件(12),用于對批處理控制指令(14)進行處理,該批處理控制指令包括對至少一個程序的調(diào)用;以及包含多個文件的數(shù)據(jù)庫(16),所述文件中的每一個都具有物理文件名。該系統(tǒng)(100)還包括提供程序?qū)S梦募x信息的組件(24),所述文件定義信息通過抽象選擇準則定義了程序運行所需的文件。在文件寄存器(22)中,以寄存器條目的形式寄存了為程序運行而創(chuàng)建的文件的物理文件名,寄存器條目為每個物理文件名分配了至少一個選擇屬性。與控制組件(12)進行通信的服務(wù)組件(20)訪問文件寄存器(22)和文件定義組件(24)。服務(wù)組件(20)基于與待調(diào)用的程序相關(guān)聯(lián)的文件定義信息來選擇和/或創(chuàng)建寄存器條目。
文檔編號G06F9/44GK101194227SQ200680020130
公開日2008年6月4日 申請日期2006年5月4日 優(yōu)先權(quán)日2005年6月8日
發(fā)明者漢斯比特·羅亞克爾, 馬庫斯·維特里斯巴赫 申請人:瑞士銀行股份有限公司