CN101192151A - 用于文件版本控制管理的方法和系统 - Google Patents
用于文件版本控制管理的方法和系统 Download PDFInfo
- Publication number
- CN101192151A CN101192151A CNA2007101695953A CN200710169595A CN101192151A CN 101192151 A CN101192151 A CN 101192151A CN A2007101695953 A CNA2007101695953 A CN A2007101695953A CN 200710169595 A CN200710169595 A CN 200710169595A CN 101192151 A CN101192151 A CN 101192151A
- Authority
- CN
- China
- Prior art keywords
- file
- data file
- symbolic links
- collection
- loading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Abstract
本发明提供了用于文件版本控制管理的方法、系统和计算机程序产品。所述方法包括:接收具有至少一个数据文件的加载集以及激活所述加载集。对于所述加载集中的每个数据文件,将所述数据文件写入目标系统并且通过基本名称和生成号来对其进行标识。在版本控制文件索引(VCFX)中创建具有激活号的符号链接指向写入所述目标系统的数据文件。提供所述符号链接的应用视图作为所述数据文件的基本名称,并且基于应用的激活号与所述符号链接的激活号相对应来限制所述符号链接的应用视图。
Description
技术领域
本发明一般涉及计算机文件管理,并且更特别地,涉及用于文件版本控制管理的方法、系统和计算机程序产品。
背景技术
实时操作系统(OS)软件通常用在要求快速、大容量、高吞吐量事务处理能力的系统中。要求具有高可靠性的连续不断的操作的系统对在这样的环境中执行的OS和应用软件提出了甚至更大的一组挑战。可能要求这样的OS的应用包括预订系统、银行系统、授权系统、路由系统和调遣系统,在这些系统中,系统运营商承担不起系统维护或升级的停机时间。这些应用需要高性能,特别是当合并到大规模、广区域、多用户的网络中时。为了升级和改进运行在实时OS上的应用且无需停止或重置该OS正在其上执行的系统,文件版本管理的专用方法是必需的。
一种在执行实时OS的系统(称为联机系统)中更新应用程序的方法是:使用分离系统(称为脱机系统)来开发新的应用程序,并且然后将该应用程序传送至联机系统。一些联机系统含有多个处理器,其各自可以基于来自联机系统的各个用户的请求而执行任务。联机系统中的处理器通常对保存应用程序的程序库(program base)进行共享访问。当任务执行时,调用应用程序的特定版本。当任务执行在持续时间上发生变化时,冲突可能发生在应用程序被更新而任务正在有效执行该应用程序的版本的时候。例如,联机系统可以含有两个处理器,且第一处理器正在使用应用程序的版本1.0执行所启动的任务,而第二处理器空闲。当应用程序的版本2.0被传送至联机系统并且被激活而第一处理器仍在执行版本1.0时,联机系统必须容纳版本2.0而不影响仍在由第一处理器使用的版本1.0。当在第一服务器上执行版本1.0的任务完成之前,任务可以使用应用程序的版本2.0在第二处理器上开始执行。联机系统内的这一可能的冲突使得专门的版本管理技术成为必要,该技术允许应用程序的多个版本存在于联机系统内,与此同时还维护应用版本与在不同处理器上执行的任务之间的关联。
随着应用程序的演进,对支持应用程序或由应用程序插装(populate)的数据文件存在较大的依赖性。通常使用文件系统而不是程序库,独立于应用程序来管理数据文件。与应用程序不同,通常不通过文件系统环境中的版本控制来管理数据文件。此外,存在不符合应用程序或数据文件的常规类别的文件类型,例如Java“.jar”和“.class”文件。由于存在广泛多样的文件类型和应用程序,因此开发一种这样的方法将会是有益的,即该方法通过控制对联机系统中每个处理器均是可用的每个文件或应用程序的版本,管理所有的这些任意字节流文件(arbitrary byte stream file)。版本控制管理应当足够稳健以便管理与任务关联的一组任意字节流文件,从而使得多个版本可以在任务有效时存在。此外,在完成使用任意字节流文件的较旧版本的任务后,应当更新该任意字节流文件的存储的基准版本(baseline version),以便任务的将来调用访问文件和应用程序的最新版本。
虽然文件版本管理系统存在于软件开发环境的上下文中,但是这样的系统未能处理多处理器实时执行环境所面临的独特问题。例如,文件版本控制管理系统可以支持源代码的多个版本的创建,并且允许源代码的不同版本与软件构造文件的不同版本的关联,从而使得可以再现应用程序的各种版本。其它的文件版本管理系统通常用于备份和恢复的目的,其中,通过创建和修改的时间记录(chronology)来标识文件版本。然而,这样的系统未能管理在诸如先前所描述的联机系统之类的系统(其中仍在使用该应用程序和关联文件的先前版本)中对应用程序和关联文件的部署。
因此,需要这样一种方法,即该方法在多处理器实时执行环境中管理任意字节流文件的多个版本,从而使得该多处理器实时执行环境内的各个处理器均可以在不影响其它处理器的情况下访问不同的文件版本。
发明内容
实施例包括一种用于文件版本控制管理的方法。所述方法包括:接收具有至少一个数据文件的加载集(loadset)以及激活所述加载集。对于所述加载集中的每个数据文件,将所述数据文件写入目标系统并且通过基本名称(base name)和生成号(generation number)来对其进行标识。在版本控制文件索引(VCFX,version control file index)中创建具有激活号(activation number)的符号链接指向写入所述目标系统的数据文件。提供所述符号链接的应用视图(application view)作为所述数据文件的基本名称,并且基于应用的激活号与所述符号链接的激活号相对应来限制所述符号链接的应用视图。
另外的实施例包括一种用于文件版本控制管理的系统。所述系统包括:目标文件系统、VCFX,以及联机加载器应用。所述联机加载器应用接收具有至少一个数据文件的加载集并且激活所述加载集。对于所述加载集中的每个数据文件,将所述数据文件写入所述目标文件系统并且通过基本名称和生成号来对其进行标识。在所述VCFX中创建具有激活号的符号链接指向写入所述目标文件系统的数据文件。提供所述符号链接的应用视图作为所述数据文件的基本名称,并且基于应用的激活号与所述符号链接的激活号相对应来限制所述符号链接的应用视图。
进一步的实施例包括一种用于文件版本控制管理的计算机程序产品。所述计算机程序产品包括可由处理电路读取并且存储了由所述处理电路执行以便促进方法的指令的存储介质。所述方法包括:接收具有至少一个数据文件的加载集以及激活所述加载集。对于所述加载集中的每个数据文件,将所述数据文件写入目标系统并且通过基本名称和生成号来对其进行标识。在VCFX中创建具有激活号的符号链接指向写入所述目标系统的数据文件。提供所述符号链接的应用视图作为所述数据文件的基本名称,并且基于应用的激活号与所述符号链接的激活号相对应来限制所述符号链接的应用视图。
在详阅以下附图和详细描述后,根据实施例的其它系统、方法和/或计算机程序产品对于本领域的技术人员来说会是或变得显而易见。意味着所有这样的附加系统、方法和/或计算机程序产品都包括在该描述之内、在本发明的范围之内,并且受到所附权利要求的保护。
附图说明
现参照附图,在多幅图中用类似的方式对相同的元件进行标号,其中:
图1是可以通过示例性实施例实现的版本控制管理系统的框图;
图2是描述了示例性实施例中的版本控制管理过程的流程图;
图3是描述了示例性实施例中的符号链接过程的流程图;
图4是描述了示例性实施例中的符号链接移除过程的流程图;以及
图5是描述了示例性实施例中的清理(clean-up)过程的流程图。
具体实施方式
示例性实施例在多处理器实时执行环境中管理任意字节流文件的多个版本,从而使得该多处理器实时执行环境内的各个处理器在不影响其它处理器的情况下可以访问不同的文件版本。
在示例性实施例中,联机系统是多处理器实时执行环境,且该联机系统的维护和更新由脱机系统管理。可以将在脱机系统上开发的应用程序(文中也称为“应用”或“程序”)组在一起作为加载集,用于联机系统的更有效的同时更新。加载集可以含有从脱机系统传送至联机系统的一个或多个程序。加载集还可以含有支持程序执行的数据文件或任何类型的任意字节流文件。数据文件(也称为“文件”)是二进制或文本信息的任何集合,并且可以包括但不限于:配置参数、数据结构格式、模板、操作信息、支持信息、命令脚本,或者辅助程序的任何其它类型的信息。数据文件还可以包括诸如Java“.jar”和“.class”文件之类的可执行文件。在示例性实施例中,联机系统在程序库中存储程序以及在文件系统中存储文件。通过对加载集的使用,将程序和文件作为单元来动态地管理。如文中所使用的,术语“装载(mounting)”或“可装载(mountable)”指的是附于或链接于文件系统或文件的目录。如文中所使用的,术语“符号链接”指的是文件的指针或其它参考。
在示例性实施例中,存在两种方式使数据文件成为加载集的一部分。驻留在脱机系统(在其上创建了加载集)上的文件可以随任何的关联程序一起直接包含于加载集中。当在脱机系统上创建加载集时,可以使已经驻留在联机系统上的文件附属于该加载集。一旦将加载集加载到联机系统,就可以将任何的附属文件(affiliated file)部署为新的文件版本,以便允许在激活加载集时的更新,而不扰乱原始文件内容。
在示例性实施例中,联机加载器为加载集提供版本控制,以便对长时运行的程序维护一致的执行环境,甚至在动态地取消激活(deactivate)或卸载了含有程序(或其依赖的其它程序)的加载集,并且加载和激活了加载集的新版本的时候。在示例性实施例中,通过诸如激活、接受、取消激活和卸载之类的操作在联机系统上管理加载集。当在联机系统上加载了加载集时,通过激活使该加载集内的文件可访问。在示例性实施例中,激活在不移除或替换任何较旧的版本的情况下创建了加载集内每个文件或程序的副本。在激活过程期间,每个处理器上的联机加载器均生成处理器独特激活号(processor unique activation number)来表示该激活。将向随后在该处理器上创建的任务分派此相同的激活号,直到加载器为下一激活或取消激活请求生成新的激活号。无论任务何时参考文件或程序,其激活号均隐式地确定了该任务可以使用文件或程序的哪个版本。当运行程序的较旧版本或访问文件的较旧版本的任务完成时,可以接受新的程序和文件版本。接受过程更新文件系统中的文件以及程序库中的记录,与此同时还移除符号链接以及在加载和激活过程期间所创建的其它制品(artifact)。一旦已经接受了文件或程序,将来的任务调用就将访问已接受的版本,直到伴随较新版本的另一加载集的到来。还可以对加载集取消激活,即运行通过激活却不被接受。类似地,通过从存储器中移除加载集可以卸载该加载集。存在相对于加载集可以执行的很多其它可能的操作,这对于本领域的技术人员来说将是显而易见的。
现转至较为详细的附图,在图1中将会看到系统100的框图,依照示例性实施例可以在系统100上实现文件版本控制管理。图1的系统100包括联机系统102,该联机系统102与通过网络106在通信上耦合的脱机系统104进行通信。联机系统102可以是从事大容量处理的高速处理设备(例如,主计算机)。在示例性实施例中,联机系统102执行实时操作系统(OS)和应用程序。联机系统102可以含有访问公用程序池并且执行任务的多个处理器。在示例性实施例中,脱机系统104是对联机系统102进行维护任务和更新的台式计算机、工作站或其它的通用计算机设备。虽然在图1中仅示出了单联机系统102和单脱机系统104,但是应该理解到,可以实现多个联机或脱机系统,其各自经由直接耦合或经由一个或多个网络来相互通信。例如,多个联机或脱机系统可以通过分布式网络体系结构互连。单联机系统102还可以表示访问诸如数据存储设备110之类的直接访问存储设备的联机系统的松耦合复合体(complex)。
网络106可以是本领域已知的任何类型的通信网络。例如,网络106可以是内联网、外联网,或者诸如因特网的互联网,或其组合。网络106可以是无线或有线网络。网络106可以是同构的或者是各种子网络的集合。
一个或多个代理系统也可以耦合于网络106,例如代理系统108。在示例性实施例中,在联机系统102上执行的一个或多个任务使得代理系统108能够访问和更新存储在数据存储设备110上的数据。联机系统102为多个代理系统108提供实时或接近实时的访问。在示例性实施例中,代理系统108可以请求执行正在由文中所描述的文件版本控制管理过程所控制的应用程序。代理系统108表示进行诸如预定、电子转移资金、进行帐户授权或派遣服务之类的任务的、分布在不同地理区域的用户。
数据存储设备110指的是任何类型的存储器,并且可以包括二级存储元件,例如硬盘驱动器、磁带,或者在联机系统102外部的存储子系统。可以存储在数据存储设备110中的数据的类型包括但不限于:程序、文件、数据库,以及不常被访问的存档数据。可以理解,图1中所示出的数据存储设备110是出于简化和易于解释的目的而提供的,并不认为是在范围上的限制。相反,在示例性实施例中可以存在由联机系统102所利用的多个数据存储设备。
在示例性实施例中,联机系统102是诸如IBM的事务处理设施(Transaction Processing Facility)(TPF)之类的高可靠性实时系统。联机系统102可以在多个处理器上执行多个任务来支持来自代理系统108的请求。在示例性实施例中,通过各种逻辑分区来访问和管理存储在数据存储设备110上的文件和程序。通过程序库118来管理驻留在数据存储设备110内的程序。通过文件系统120来访问和管理存储在数据存储设备110内的文件。尽管图1中仅描绘了一个程序库118和一个文件系统120,然而应该理解,可以实现多个程序库和文件系统。在示例性实施例中,文件系统120是用于Unix的便携式操作系统接口(POSIX,portable operatingsystem interface for Unix)可兼容文件系统。文件系统120可以是这样的可装载文件系统的集合,即该可装载文件系统具有可基于特定的所有者、用户或组来分派的不同许可级别。在示例性实施例中,文件系统120是处理器共享的TPF集合支持文件系统(TFS,TPF collection support filesystem)。对许可的使用限制了访问以及在文件系统内进行操作的能力,例如,读、写、移除或执行。
虚拟文件系统(VFS,virtual file system)体系结构可以用于建立新的文件系统来管理被部署为加载集的文件版本。经由VFS,通过在所装载的显式版本化根(explicitly versioned root)的子目录中表示版本化文件条目,可以在版本化目录结构上支持完整的文件系统功能性。符号链接准许用户和应用程序对待处于版本控制下的文件就好像该文件驻留在任何文件系统中的任何目录内那样。
在示例性实施例中,通过可装载的、处理器独特的、常驻内存文件系统(文中称为版本控制文件索引(VCFX)122)在联机系统102中的各个处理器上分别提供处于版本控制下的文件的应用视图。可以通过文件名和激活号来组织VCFX 122中的目录结构。激活号用于控制应请求而访问或返回的文件版本。在示例性实施例中,VCFX 122中的每个文件均是参考了位于处理器共享文件系统120中别的地方的文件版本的符号链接。VCFX122看起来就好像是这样的应用,即该应用仅含有其基于激活号可访问的那些文件版本。在示例性实施例中,文件是通过其基本名称来获知的,并且基于激活号的额外的层次级别受到抑制(suppressed)。可以通过对相关文件系统操作的专门实现,以对普通用户和应用完全透明的方式来提供该现象。
在示例性实施例中,对于VCFX 122中条目的更新是作为通过联机加载器应用116的命令的结果来进行的。联机加载器应用116可以支持各种命令以进行诸如对VCFX 122中条目的激活、接受、移除和重新包括之类的活动。除了响应命令之外,联机加载器应用116还进行策略性活动(policing activity),例如,当不再需要所删除的加载集时将其移除。在示例性实施例中,联机加载器应用116支持对加载集的选择性激活。选择性激活对于哪些任务对加载集进行访问提供控制。
在示例性实施例中,脱机系统104执行类似Unix的操作系统,例如Linux。脱机系统104可以支持用于创建与联机系统102兼容的应用程序和文件的各种开发工具。脱机加载器应用112在脱机系统104上运行以支持加载集创建。脱机加载器应用112提供命令以便将驻留于脱机系统104上的文件和应用程序包括在诸如加载集114的加载集中。在脱机系统104上创建加载集的命令可以包括一列程序和/或文件。图1的加载集114包括两个程序和两个文件。然而,加载集114仅是一个例子,因为应该理解,加载集可以包括程序和/或文件的任何组合。在创建加载集114时,脱机系统104的用户可以合并参数,例如,在联机系统102中将存储文件或程序的特定目标位置。在示例性实施例中,将程序定为存储在程序库118内并且将文件定为存储在文件系统120内。如果在加载集创建期间未指定文件或程序的特定目标位置,则可以使用缺省值。
在示例性实施例中,当在联机系统102上于加载集激活时间部署被包括文件(included file)时,将该文件的所有者名称、组名和许可比特设置成与该文件的脱机副本的上述内容相同的值;然而,如果在联机系统102中未定义所有者名称或组名,则用缺省值代替。脱机系统104的用户可以为文件的所有者名称、组名和许可比特安排特定的值。
脱机加载器应用112可以指定:当通过联机加载器应用116对加载集114进行加载时,驻留于文件系统120内的文件应该附属于该加载集。在示例性实施例中,当在加载集激活时间部署附属文件时,将文件的所有者名称、组名和许可比特设置成与该文件的原始联机副本中相同的值。与直接被包括在加载集中的文件一样,脱机系统104的用户可以为附属文件的所有者名称、组名和许可比特安排特定的值。
在示例性实施例中,作为加载集激活的结果而在诸如文件系统120的目标文件系统中随后创建的特定文件的所有版本均被建立具有与被包括或附属数据文件本身相同的所有者、组和许可设置。在目标文件系统中创建以便促进对这些版本的访问的所有其它条目(例如,子目录和链接),以及在VCFX 122中创建的所有条目,均由指定用户所有。在示例性实施例中,指定用户是组“bin”中的“vcfx”,并且写许可仅被授权给所有者。对指定所有者的许可控制防止了对基本文件(base file)或任何后续版本的不适当的重命名或移除。此外,VCFX 122内的许可控制还防止在文件版本间创建不想要的文件并且阻闭未经授权的程序或用户的写尝试。
在示例性实施例中,当通过联机加载器应用116将加载集114加载到联机系统102时,在记录中安装加载集114的内容。如果附属文件是加载集的一部分,则记录还可以保存该附属文件。对于联机系统102中的每个处理器,记录为随后部署到目标文件系统提供了临时保存区(holdingarea)。当通过联机加载器应用116在联机系统102中的处理器上激活具有被包括或附属数据文件的加载集时,该文件被部署到由加载集中指定的目标位置所标识的文件系统,例如文件系统120。在示例性实施例中,诸如加载集114的加载集参考多个文件系统,包括未在图1中描绘但是通过联机系统102可访问的文件系统。可以建立符号链接以允许通过参考所部署的文件的正确版本的普通名称来透明地对其进行访问。在示例性实施例中,对所部署的文件的名称解析(name resolution)路由通过VCFX 122,在其中发生版本解析。文中较为详细地描述了符号链接过程。
现转至图2,现在将依照示例性实施例来描述用于实现版本控制管理过程的过程200。在块202处,通过联机加载器应用116在联机系统102上接收或加载包括至少一个数据文件的加载集。在块204处,通过联机加载器应用116激活联机系统102上的加载集。激活过程包括:利用生成号(其在松耦合处理器复合体上是独特的)将加载集中的每个数据文件写入目标文件系统120。激活过程还包括:在VCFX 122中创建具有激活号的符号链接指向目标文件系统120上具有生成号的每个数据文件。因而,每个处理器上的VCFX提供了激活号(其是处理器独特的(processorunique))到生成号(其范围跨越整个处理器复合体)的本质映射(essentialmapping)。提供符号链接的应用视图作为数据文件的基本名称。基于应用的激活号与符号链接的激活号相对应来限制符号链接的应用视图。在块206处,接受或取消激活已激活的加载集。当接受加载集时,将目标文件系统120上具有生成号的数据文件重命名成该数据文件的基本名称,并且移除符号链接。当对加载集取消激活时,移除符号链接,并且还移除目标文件系统120上具有生成号的数据文件。进行进一步的清理过程以移除可能不再使用的任何剩余的链接。还可以对加载集进行其它过程,例如,排除文件或程序,以及将文件或程序重新包括到加载集中。
现转至图3,现在将依照示例性实施例来描述用于在VCFX 122中实现符号链接的过程300。对联机系统102(在其上激活了加载集)中各个处理器上的每个被包括或附属数据文件进行符号链接。在块302处,在目标系统上创建指向数据文件的基本名称的基本文件链接。例如,可以创建名为“targetloc/.filename/.0”的链接作为指向基本文件“targetloc/filename”的链接。如果“targetloc/.filename/.0”已经存在或者“targetloc/filename”并不存在,则该步骤可无害地(harmlessly)失败。基本文件链接提供了通过VCFX 122对基本文件的访问,这在文件的一个或多个其它版本是有效的时候可能被要求。
在块304处,在VCFX 122中创建含有块302的基本文件链接的符号链接。在示例性实施例中,如果指向基本文件的链接在块302中是成功的,那么在VCFX 122中创建符号链接。例如,可以在VCFX 122中创建含有名为“targetloc/.filename/.0”的基本文件链接的、名为“vcfx/targetloc/filename/.0”的符号链接。
在块306处,在目标文件系统中部署具有与加载集关联的生成号的数据文件。例如,可以在目标文件系统中部署名为“targetloc/.filename/.gen#”的数据文件,其中“.gen#”是与加载集的该加载关联的独特的正单调递增的生成号。
在块308处,在VCFX 122中创建指向具有该生成号的数据文件的符号链接。在示例性实施例中,符号链接包括用于将该符号链接与加载集的生成号相关联的激活号。例如,可以在VCFX 122中创建含有名为“targetloc/.filename/.gen#”的目标链接的、名为“vcfx/targetloc/filename/.act#”的符号链接,其中“act#”是激活号。另外,可以将加载集名称和当前激活号写入VCFX 122可用的表格用于将来的参考。
在块310处,如果具有到VCFX 122的符号链接(即,不是基本文件本身)的数据文件的基本名称(例如“targetloc/filename”)存在,那么该过程结束;否则,进行块312。符号链接可以已经由联机系统102内的另一处理器创建。符号链接还可以作为尚未被清理的先前激活的结果而存在,等待另一任务的完成。
在块312处,在目标系统中创建符号链接并且将其重命名成数据文件的基本名称。例如,可以将含有“vcfx/targetloc/filename”暂时名为“targetloc/.filename/.slnk”的符号链接重命名成“targetloc/filename”。重命名符号链接向目标文件系统提供了这样的实体,即通过该实体可以方便地访问版本化文件。在示例性实施例中,重命名操作以原子方式(atomically)更新目录,提供对名为“targetloc/filename”的实体的一致和不间断的访问。
如果目标文件系统向联机系统102内多个处理器提供了对公用文件(common files)的访问,那么在其上未激活加载集的其它处理器可以进行块304中所定义的符号链接以维持对基本文件的访问。在示例性实施例中,在重新启动对在联机系统102内另一处理器上具有有效版本的文件的第一访问之后,隐式地进行块304。
当在联机系统102上执行的应用发布了要求解析VCFX 122中的路径名称(例如“vcfx/targetloc/filename”)的功能调用时,文件系统120获得调用应用(calling application)的激活级,并且然后确定哪个(如果有的话)现有符号链接(例如“vcfx/targetloc/.filename/.act#”)适于遵循该调用应用。
现转至图4,现在将依照示例性实施例来描述用于实现对VCFX 122中的符号链接的移除的过程400。当通过联机加载器应用116接受具有被包括或附属数据文件的激活加载集时,可以移除由符号链接过程300所创建的符号链接,并且可以重命名文件以便可以直接对其进行访问。在示例性实施例中,联机系统102上的每个处理器对每个被包括或附属数据文件进行过程400。在块402处,将目标系统上具有生成号的数据文件重命名成基本文件链接。例如,可以将文件“targetloc/.filename/.gen#”重命名成“targetloc/.filename/.0”。如果目标文件系统是只读的,则不发生重命名。在示例性实施例中,对数据文件的重命名以原子方式拆除基本文件的链接(例如“targetloc/.filename/.0”),如果其存在的话。即使文件已经被联机系统102内的另一处理器重命名,文件系统120也可以支持重命名操作。
在块404处,移除VCFX 122中指向数据文件的符号链接(例如“vcfx/targetloc/filename/.act#”)。在块406处,如果存在符号链接的任何其它的版本(例如“vcfx/targetloc/filename/.act#”,其中act#大于0),那么该过程终止;否则,进行块408。当保持符号链接时,这指示到:基本文件的版本仍在由处于不同激活级的其它任务使用。
在块408处,将基本文件链接重命名成数据文件的基本文件名。例如,将“targetloc/.filename/.0”重命名成“targetloc/filename”(除非目标文件系统是只读的)。重命名过程可以以原子方式移除符号链接(例如“targetloc/filename”)。即使文件已经被联机系统102内的另一处理器重命名,文件系统120也可以支持重命名操作。在块410处,移除VCFX 122中含有基本文件链接的符号链接(例如“vcfx/targetloc/filename/.0”),如果该符号链接存在的话。
现转至图5,现在将描述用于实现清理过程的过程500。在示例性实施例中,当通过联机加载器116取消激活或接受加载集时,加载集的当前激活号被传达给VCFX 122。VCFX 122使用该激活号来安排运行在较高激活级的任务进行的查找的正确处理。当联机加载器116的策略性功能注意到激活级为空时,对已经在其上激活了加载集的每个处理器上的每个被包括或附属数据文件进行清理过程。
在块502处,如果在VCFX 122中存在符号链接版本(例如“vcfx/targetloc/filename/.act#”),那么进行块504;否则,由于已经接受了加载集并且没有要清理的事物,因此该过程终止。在块504处,移除VCFX 122中的符号链接版本(例如“vcfx/targetloc/filename/.act#”)。在块506处,移除目标系统上具有生成号的数据文件(例如“targetloc/.filename/.gen#”),除非目标文件系统是只读的。在示例性实施例中,目标文件系统是TFS,因而是处理器共享的,并且由联机系统102内要取消激活的最后的处理器来进行移除。
在块508处,如果存在符号链接的其它版本(例如“vcfx/targetloc/filename/.act#”,其中act#大于0),那么进行块510;否则,该过程终止。存在符号链接的另一版本指示到:基本文件的版本仍在由其它的激活级使用。
在块510处,如果存在基本文件链接(例如“targetloc/.filename/.0”),那么进行块512;否则,进行块514。在块512处,将基本文件链接(例如“targetloc/.filename/.0”)重命名成数据文件的基本名称(例如“targetloc/filename”),除非目标文件系统是只读的。在块514处,移除指向数据文件的基本名称的符号链接(例如“targetloc/filename”)。一些文件系统,例如文件系统120,可以将块512和514组合为在重命名后以原子方式移除符号链接。在其它的文件系统中,要是目标文件系统不是只读的,则对符号链接(例如“targetloc/filename”)的移除是独立的操作。在示例性实施例中,目标文件系统是TFS,因而是处理器共享的,并且由联机系统102内要取消激活的最后的处理器来进行移除。
在块516处,移除VCFX 122中指向基本文件链接的符号链接(例如“vcfx/targetloc/filename/.0”),要是该符号链接仍然存在的话。在示例性实施例中,目标文件系统是TFS,因而是处理器共享的,并且由联机系统102内要取消激活的最后的处理器来进行移除;另外,在联机系统102中的其上尚未激活加载集的处理器上进行块516。当通过联机加载器116删除加载集时,含于记录中的任何被包括或附属数据文件随其本身的程序一起被删除。
在示例性实施例中,存在当将成组的程序和文件作为加载集进行管理时必须注意到的特殊考虑。例如,当加载集含有公用的被包括或附属数据文件或程序的不同版本时,其可以是相交的(intersecting)。在示例性实施例中,必须按照其被激活的顺序接受具有公用的被包括或附属数据文件或程序的加载集。联机加载器116可以管理用于对加载集中程序的激活和接受进行排序的规则,而VCFX 122可以对数据文件推行类似的规则。
进一步的特殊考虑包括管理文件系统120中对于特定程序库来说独特的数据文件。程序库独特文件(program base unique files)本身可以是可执行体(即,存储在文件系统中的程序,例如Java“.jar”和“.class”文件),或者其可以对于特定程序的执行是固有的(例如配置文件)并且因而必须与在其中驻留了那些程序的程序库相联系。这样的文件可能要求特定量的专门处理以维护与驻留于程序库118中的常规程序完全一致的版本管理。联机加载器116相对于加载集的动作应用于在相同的程序库118上运行的处理器。在示例性实施例中,为了在程序库118内的程序与文件系统120内的程序库独特文件之间获得等效的版本管理,将驻留于文件系统120中的程序库独特文件与程序库118相联系。
为了在程序库118与文件系统120之间建立连接,可以将子目录(例如“/sys/prog/”)置于根文件系统120中以表示所有程序库独特文件的主目录。另外,可以提供各自标识了特定程序库的一组根目录(例如,“/progx”)来保存与每个程序库(例如程序库118)相关联的程序库独特文件。将开始于程序库独特目录(例如“/sys/prog/”)的路径名的查找重定向到对于处理器当前正在其上运行的程序库118来说合适的目录(例如“/progx”)。
在示例性实施例中,对在程序库独特目录(例如“/progx”)以及任何的其子目录中创建和删除条目的授权限于联机和脱机加载器112和116。可以将程序库独特文件安装在使用加载器112和116的联机系统102上,指定含于虚拟子目录(例如“/sys/prog”)中的目标位置。联机加载器116解析虚拟子目录(例如“/sys/prog”)并且将文件部署到合适的目录(例如“/progx”)。
在适当的目录(例如“/progx”)中透明地创建可以为程序库独特文件创建的子目录、文件和链接,作为在使用虚拟子目录(例如“/sys/prog”)的查找中的初始重定向的结果。由于VCFX 122是处理器独特的并且在重新启动联机系统102期间被重新添加(repopulated),因此通过VCFX 122的链接可以继续根据虚拟目标位置(例如“/sys/prog”)而不是特定的程序库(例如“/progx”)而被配制(formulate)。
示例性实施例的技术效果和好处包括对于与一个或多个程序可能一起组为加载集的任意字节流文件的透明版本控制。加载集使得任意字节流文件能够被作为单元来动态地管理,从而支持诸如对文件的集体加载、激活、取消激活和卸载的活动。在以相干方式管理关联于变更版本的所有程序和文件时,加载集进一步使得能够在不中止或重置系统的情况下维护和更新实时系统。
如上所述,可以以计算机实现的过程和用于实践那些过程的装置的形式体现本发明的实施例。还可以以含有体现于有形介质(例如,软盘、CD-ROM、硬盘驱动器,或者任何其它的计算机可读存储介质)中的指令的计算机程序代码的形式体现本发明的实施例,其中,当将该计算机程序代码加载到计算机中并且由该计算机执行时,该计算机成为用于实践本发明的装置。还可以以计算机程序代码(例如,无论是存储在存储介质中、加载到计算机和/或由计算机执行,还是在某种传输介质上(例如,在电线或电缆上、通过光纤或经由电磁辐射)传输)的形式体现本发明,其中,当将该计算机程序代码加载到计算机中并且由该计算机执行时,该计算机成为用于实践本发明的装置。当在通用微处理器上实现时,该计算机程序代码段配置该微处理器以创建特定的逻辑电路。
虽然已经参照示例性实施例描述了本发明,但是本领域的技术人员应该理解,在不背离本发明的范围的情况下可以进行各种变化并且可以用等同物替换其元件。另外,在不背离本发明的基本范围的情况下可以进行很多修改以使特定情形或材料适应本发明的教导。因此,意味着本发明并不限于作为所设想来实现本发明的最好模式而公开的特定实施例,而是本发明将包括落入所附权利要求的范围内的所有实施例。此外,术语“第一”、“第二”等的使用不表示任何顺序或重要性,而是使用术语“第一”、“第二”等来区分不同的元件。
Claims (16)
1.一种用于文件版本控制管理的方法,所述方法包括:
接收具有至少一个数据文件的加载集;以及
激活所述加载集,其包括:
对于所述加载集中的每个数据文件:
将所述数据文件写入目标系统并且通过基本名称和生成号来标识所述数据文件;
在版本控制文件索引中创建具有激活号的符号链接指向写入所述目标系统的数据文件;
提供所述符号链接的应用视图作为所述数据文件的基本名称;以及
基于应用的激活号与所述符号链接的激活号相对应来限制所述符号链接的应用视图。
2.根据权利要求1的方法,其进一步包括:
接受所述加载集,其包括:
将每个写入所述目标系统的所述数据文件重命名成所述数据文件的基本名称;以及
移除指向每个所述数据文件的符号链接。
3.根据权利要求1的方法,其进一步包括:
对所述加载集取消激活,其包括:
移除指向每个写入所述目标系统的数据文件的符号链接;以及
移除每个写入所述目标系统的数据文件。
4.根据权利要求1的方法,其中所述加载集进一步包括至少一个程序。
5.根据权利要求1的方法,其中所述数据文件被包括在所述加载集中。
6.根据权利要求1的方法,其中所述数据文件附属于所述加载集。
7.根据权利要求1的方法,其中所述数据文件是程序库独特文件。
8.根据权利要求7的方法,其进一步包括:
通过虚拟目录将所述程序库独特文件链接到程序库。
9.一种用于文件版本控制管理的系统,所述系统包括:
目标文件系统;
版本控制文件索引;以及
联机加载器应用,所述联机加载器应用进行:
接收具有至少一个数据文件的加载集;以及
激活所述加载集,其包括:
对于所述加载集中的每个数据文件:
将所述数据文件写入所述目标文件系统并且通过基本名称和生成号来标识所述数据文件;
在所述版本控制文件索引中创建具有激活号的符号链接指向写入所述目标文件系统的数据文件;
提供所述符号链接的应用视图作为所述数据文件的基本名称;以及
基于应用的激活号与所述符号链接的激活号相对应来限制所述符号链接的应用视图。
10.根据权利要求9的系统,其中所述联机加载器应用进一步进行:
接受所述加载集,其包括:
将每个写入所述目标文件系统的所述数据文件重命名成所述数据文件的基本名称;以及
移除指向每个所述数据文件的符号链接。
11.根据权利要求9的系统,其中所述联机加载器应用进一步进行:
对所述加载集取消激活,其包括:
移除指向每个写入所述目标文件系统的所述数据文件的符号链接;以及
移除每个写入所述目标文件系统的所述数据文件。
12.根据权利要求9的系统,其中所述加载集进一步包括至少一个程序。
13.根据权利要求9的系统,其中所述数据文件被包括在所述加载集中。
14.根据权利要求9的系统,其中所述数据文件附属于所述加载集。
15.根据权利要求9的系统,其中所述数据文件是程序库独特文件。
16.根据权利要求15的系统,其中所述联机加载器应用进一步进行:
通过虚拟目录将所述程序库独特文件链接到程序库。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/563,720 US7886270B2 (en) | 2006-11-28 | 2006-11-28 | Methods, systems, and computer program products for file version control management |
US11/563,720 | 2006-11-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101192151A true CN101192151A (zh) | 2008-06-04 |
CN100568176C CN100568176C (zh) | 2009-12-09 |
Family
ID=39494297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101695953A Expired - Fee Related CN100568176C (zh) | 2006-11-28 | 2007-11-13 | 用于文件版本控制管理的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7886270B2 (zh) |
CN (1) | CN100568176C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142934A (zh) * | 2019-11-28 | 2020-05-12 | 中国航空工业集团公司西安航空计算技术研究所 | 一种可受加载的文件格式设计方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100942695B1 (ko) * | 2006-12-04 | 2010-02-16 | 한국전자통신연구원 | 클라이언트 시스템 및 그의 소프트웨어 버전 관리 방법 |
US8156146B2 (en) | 2007-09-28 | 2012-04-10 | Xcerion Aktiebolag | Network file system |
US9239860B1 (en) * | 2010-06-30 | 2016-01-19 | Emc Corporation | Augmenting virtual directories |
US20130111443A1 (en) * | 2011-10-31 | 2013-05-02 | American Express Travel Related Services Company, Inc. | Methods and Systems for Source Control Management |
JP5720531B2 (ja) * | 2011-10-31 | 2015-05-20 | 富士通株式会社 | ヘルプ作成支援装置、ヘルプ作成支援プログラムおよびヘルプ作成支援方法 |
US10198452B2 (en) * | 2014-05-30 | 2019-02-05 | Apple Inc. | Document tracking for safe save operations |
US10270468B2 (en) * | 2014-12-19 | 2019-04-23 | Aalborg Universitet | Method for file updating and version control for linear erasure coded and network coded storage |
CN107357593A (zh) * | 2017-08-24 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 源代码文件组建方法、装置、电子终端及可读存储介质 |
CN110445871A (zh) * | 2019-08-14 | 2019-11-12 | 益逻触控系统公司 | 自助服务终端的操作方法及自助服务终端 |
CN111765421B (zh) | 2020-07-08 | 2023-11-14 | 益逻触控系统公司 | 照明设备、照明系统和照明控制方法 |
US11526346B1 (en) | 2021-11-15 | 2022-12-13 | Oracle International Corporation | Zero downtime application package deployment |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410703A (en) * | 1992-07-01 | 1995-04-25 | Telefonaktiebolaget L M Ericsson | System for changing software during computer operation |
US5586304A (en) * | 1994-09-08 | 1996-12-17 | Compaq Computer Corporation | Automatic computer upgrading |
JP3613504B2 (ja) * | 1997-11-05 | 2005-01-26 | 株式会社日立製作所 | 版管理・構成管理方法および装置および版管理・構成管理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JPH11259284A (ja) * | 1998-03-12 | 1999-09-24 | Fujitsu Ltd | オンラインプログラム更新システム及びプログラム更新用プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6154878A (en) * | 1998-07-21 | 2000-11-28 | Hewlett-Packard Company | System and method for on-line replacement of software |
US6336217B1 (en) * | 1998-12-30 | 2002-01-01 | International Business Machines Corporation | Systems, methods and computer program products for end-to-end software development process automation |
JP3888827B2 (ja) * | 2000-03-15 | 2007-03-07 | 富士通株式会社 | プログラム置換システム、分散処理システム及びプログラム置換方法 |
US6856993B1 (en) | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
US7113934B2 (en) * | 2000-05-25 | 2006-09-26 | Fujitsu Limited | Element management system with adaptive interfacing selected by last previous full-qualified managed level |
US20020091720A1 (en) * | 2001-01-05 | 2002-07-11 | Jun Liu | Methods and arrangements for providing improved software version control in managed devices |
US7426730B2 (en) * | 2001-04-19 | 2008-09-16 | Wre-Hol Llc | Method and system for generalized and adaptive transaction processing between uniform information services and applications |
US7386532B2 (en) * | 2002-12-19 | 2008-06-10 | Mathon Systems, Inc. | System and method for managing versions |
US7539976B1 (en) * | 2003-03-25 | 2009-05-26 | Electric Cloud, Inc. | System and method for intelligently distributing source files within a distributed program build architecture |
-
2006
- 2006-11-28 US US11/563,720 patent/US7886270B2/en not_active Expired - Fee Related
-
2007
- 2007-11-13 CN CNB2007101695953A patent/CN100568176C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142934A (zh) * | 2019-11-28 | 2020-05-12 | 中国航空工业集团公司西安航空计算技术研究所 | 一种可受加载的文件格式设计方法 |
CN111142934B (zh) * | 2019-11-28 | 2023-06-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种可受加载的文件格式设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100568176C (zh) | 2009-12-09 |
US20080126440A1 (en) | 2008-05-29 |
US7886270B2 (en) | 2011-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100568176C (zh) | 用于文件版本控制管理的方法和系统 | |
US5603020A (en) | Method for detecting file names by informing the task of the identification of the directory antecedent to the file | |
CN101073058B (zh) | 用于隔离对软件应用程序的执行的方法 | |
US8639973B2 (en) | System reset | |
CN101542483B (zh) | 用于数据存储系统中的资源回收的装置和方法 | |
CN100514331C (zh) | 在文件系统保持活动状态的同时转换文件系统的方法 | |
US20080104441A1 (en) | Data processing system and method | |
US20090063540A1 (en) | Methods and systems for attaching ownership to data | |
US8396833B2 (en) | Inode management in redirect-on-write file system | |
CN102216905A (zh) | 应用还原点 | |
CN1329840C (zh) | 文件归档 | |
US20170161149A1 (en) | Backup management of software environments in a distributed network environment | |
CN101176096A (zh) | 虚拟化的文件系统 | |
US20150089494A1 (en) | Virtual machine template optimization | |
JP2010092464A (ja) | 階層ストレージ管理(hsm)制御ストレージ環境で双方向オーファン照合を行う方法、システムおよぶコンピュータ・プログラム | |
US9904574B2 (en) | Parallel computing without requiring antecedent code deployment | |
US20220326927A1 (en) | Abort installation of firmware bundles | |
CN101211362B (zh) | 用于数据库更新管理的系统和方法 | |
US20080243964A1 (en) | Dynamic allocation of program libraries | |
JP3372405B2 (ja) | コンピュータ・ソフトウェア・アプリケーション・パッケージを自動的に追跡する方法 | |
Kiselyov et al. | Delimited continuations in operating systems | |
JP2000003271A (ja) | ソフトウェア管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US20230273799A1 (en) | Storage system with boot volume rollback points | |
JP2024008449A (ja) | 不具合情報管理システム、及び不具合情報管理方法 | |
DeRobertis et al. | Assigning unique identification numbers to new user accounts and groups in a computing environment with multiple registries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091209 Termination date: 20181113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |