Rational ClearCase
Encyclopedia
The Rational ClearCase family consists of several software
Computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....

 tools for supporting software configuration management
Software configuration management
In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines....

 (SCM) of source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 and other software development
Software development
Software development is the development of a software product...

 assets. It is developed by the Rational Software
Rational Software
Rational Machines was founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development...

 division of IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

. ClearCase forms the base for configuration management for many large and medium sized businesses and can handle projects with hundreds or thousands of developers.

A part of Rational ClearCase is revision control system
Revision Control System
The Revision Control System is a software implementation of revision control that automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, for example programs, documentation, procedural graphics, papers, and form...

, which is a feature for end users.

ClearCase supports two kinds of use models, UCM (Unified Change Management), and base ClearCase. UCM provides an out-of-the-box model while base ClearCase provides a basic infrastructure (upon which UCM is built). Both can be configured to support a wide variety of needs. UCM is part of RUP
IBM Rational Unified Process
The Rational Unified Process is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003...

 and therefore all process templates and roles can be used from RUP.

ClearCase can run on a number of platforms including AIX, z/OS
Z/OS
z/OS is a 64-bit operating system for mainframe computers, produced by IBM. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with earliest:*OS/VS2 Release 2 through Release 3.8...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, HP-UX
HP-UX
HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...

, Solaris, and Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

. It can handle large binary files, large numbers of files, and large repository sizes. It handles branching, labeling, and versioning of directories.

History

ClearCase was developed by Atria Software and first released in 1992 on Unix and later on Windows. Some of the Atria developers had worked on an earlier system: DSEE (Domain Software Engineering Environment) from Apollo Computer
Apollo Computer
Apollo Computer, Inc., founded 1980 in Chelmsford, Massachusetts by William Poduska and others, developed and produced Apollo/Domain workstations in the 1980s. Along with Symbolics and Sun Microsystems, Apollo was one of the first vendors of graphical workstations in the 1980s...

. After Hewlett-Packard
Hewlett-Packard
Hewlett-Packard Company or HP is an American multinational information technology corporation headquartered in Palo Alto, California, USA that provides products, technologies, softwares, solutions and services to consumers, small- and medium-sized businesses and large enterprises, including...

 bought Apollo Computer
Apollo Computer
Apollo Computer, Inc., founded 1980 in Chelmsford, Massachusetts by William Poduska and others, developed and produced Apollo/Domain workstations in the 1980s. Along with Symbolics and Sun Microsystems, Apollo was one of the first vendors of graphical workstations in the 1980s...

 in 1989, they left to form Atria.
Atria later merged with Pure Software
Pure Software
Pure Software was founded in October 1991 by Reed Hastings and Mark Box. The original product was a debugging tool for Unix/C engineers called Purify. After adding new products such as Quantify and PureLink, and doubling its revenue every year for four years, Pure Software went public with the...

 to form PureAtria. That firm merged with Rational Software
Rational Software
Rational Machines was founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development...

, which was purchased by
IBM in 2003. IBM continues to develop and market ClearCase.

DSEE

DSEE introduced many concepts now used in ClearCase. The Apollo Domain file system allowed special handler programs to intervene during file access, and DSEE made use of this to invisibly substitute a versioned copy when a particular file was opened. With the versioning specification resident in the user environment, all accesses to versioned files were redirected, including such mundane accesses as printing, viewing in a generic text editor etc.

DSEE relied heavily on a file which described all the software modules and their dependencies. This file had to be generated manually, which was a major impediment to its use in large systems. However, once generated it allowed DSEE to calculate the optimum way to perform a build, re-using all modules that had previously been processed and whose version specifications matched the specifications for the current build.

DSEE also introduced the "version spec" which was then called a "thread". This was a list of possible versions that could be in the user environment, or in a build. The major innovation was using build signatures and software release signatures in the thread. The items in a thread might thus be:
  • Any copies reserved for editing (i.e. checked out)
  • Latest version (usually for developers only)
  • A branched version of a file (a version on an alternate line of development).
  • A labeled version (for developers working on a particular revision level)
  • The version used in build XYZ.
  • The version used in software release x.y.z.


Threads were processed from top to bottom for each file. A developer thread might have "reserved" at the top, followed by a labeled version. For a quick fix to an existing release, the thread would be "reserved", then the release signature.

In the absence of the invisible file redirection of the Apollo Domain file system, Rational ClearCase uses the virtual file system provided by the MVFS
MultiVersion File System
MVFS is a virtual file system which displays specific versions of data stored in ClearCase. In particular, it supports dynamic views which can show an arbitrary combination of local and remote files....

 feature described below. The "thread" concept corresponds to the dynamic view. Support for derived objects in a view is similar to DSEE's concept.

ClearCase releases

  • Version 7.1 (December 2008) introduced a great many changes and improvements for both the CCRC clients, a new CM Server platform (a generic WebSphere
    WebSphere
    IBM WebSphere refers to a brand of computer software products in the genre of enterprise software known as "application and integration middleware". These software products are used by end-users to create applications and integrate applications with other applications...

     application server platform for ClearQuest), a generic programming model for both CC/CQ, a new multi-site monitoring system and more.
    • Version 7.1.1 (December 2009) introduced a number of new features and improvements including atomic commit
      Atomic commit
      An atomic commit is an operation in which a set of distinct changes is applied as a single operation. If the changes are applied then the atomic commit is said to have succeeded. If there is a failure before the atomic commit can be completed then all of the changes completed in the atomic commit...

      s.
      • Version 7.1.2 (October 2010) introduced a number of new features and improvements including supporting of Ubuntu
        Ubuntu (operating system)
        Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...

        , Windows 7 User Account Control
        User Account Control
        User Account Control is a technology and security infrastructure introduced with Microsoft's Windows Vista and Windows Server 2008 operating systems, with a more relaxed version also present in Windows 7 and Windows Server 2008 R2...

         (UAC) and smart card
        Smart card
        A smart card, chip card, or integrated circuit card , is any pocket-sized card with embedded integrated circuits. A smart card or microprocessor cards contain volatile memory and microprocessor components. The card is made of plastic, generally polyvinyl chloride, but sometimes acrylonitrile...

         authentication.
      • Version 7.1.2.2 (April 2011) introduced a number of new features and improvements including supporting of Visual Studio 2010.
      • Version 7.1.2.3 (June 2011) introduced a number of new features and improvements including supporting of Windows 7 and 2008 R2 Service Pack 1 and also Visual Studio 2010 SP1.
  • Version 8.0 (oct 2011) The highlights of this release are a new dashboard component called ClearTeam Explorer and improvements for both ClearCase Remote Clients (CCRC) and native clients.

Database Layer

The database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

 system that ClearCase uses is RDM Embedded
RDM Embedded
RDM Embedded is a high performance, ACID-compliant embedded database management system designed to be linked into C/C++ application programs. RDM Embedded has been designed to utilize multi-core computers, networking , and in-memory or on-disk storage. It provides a low-level C API and a higher...

 from Raima
Raima
Raima is a provider of high-performance, real time, always on database technology for both in-memory database usage and persistent storage devices. The company has offices in Seattle, USA and London, UK.- History :...

. In ClearCase terminology, an individual database is called a VOB (Versioned Object Base). On this layer, maintenance takes place using Raima tooling. Around this layer, a set of interfaces with accompanying tools is available to manage the physical database system. This requires specific Database administrator
Database administrator
A database administrator is a person responsible for the design, implementation, maintenance and repair of an organization's database. They are also known by the titles Database Coordinator or Database Programmer, and is closely related to the Database Analyst, Database Modeller, Programmer...

 skills.

Server Layer

Before version 7 every system, so clients and servers, would run the same ClearCase services or daemons. The most important service is called the Atria location Broker Daemon (ALBD) which takes care of all the communication between stations. After version 7 the server platform runs Websphere Application Server with a server application called the "CM Server" which at the same time serves Rational ClearQuest clients and Rational ClearCase Clients via the HTTP Protocol. Before version 7 there was a webservice by which users could access ClearCase via their browser but this has been discontinued. The older client service architecture is still supported. Before version 7 load balancing would be more difficult (specific services would have to run on specific servers) to implement after version 7 it is just a matter of putting multiple servers in sequence.

In a multi-site scenario every server runs ClearCase MultiSite Server and sends packages back and forth (via any protocol available) to synchronize.

Clients

Traditionally ClearCase supported full/fat clients. Since version 7 the CCRC 'ClearCase Remote Client' is available which is based on Eclipse (software)
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

. It is supplied in both fully packaged Eclipse versions as well as a plugin-in for Eclipse and other environment such as Visual Studio. Communication takes place via the HTTP Client protocol.

The CCRC client is now the preferred client.

Views

A distinguishing feature of ClearCase is a proprietary networked filesystem (MVFS
MultiVersion File System
MVFS is a virtual file system which displays specific versions of data stored in ClearCase. In particular, it supports dynamic views which can show an arbitrary combination of local and remote files....

: MultiVersion File System), which can be used to mount VOBs as a virtual file system through a dynamic view, selecting a consistent set of versions and allowing for the production of derived objects
Derived Object
In Computer programming, derived objects are files that are not directly maintained, but get created.The most typical context is that of compilation, linking, and packaging of source files....

. The dynamic view allows this to map to a Software Configuration. This was a departure from the repository/sandbox model, allowing for the early management of artifacts (before they are checked in, and not limited to these first order configuration items).

Alternatively, ClearCase supports snapshot views which are just copies of repository data specified by a config-spec which spans one or several VOBs. As opposed to dynamic views, snapshot views are maintained on a local (OS-specific) filesystem and do not require network access. Instead, a snapshot view stores a copy of the VOB data locally on the user's computer. Snapshot views can be used while disconnected from the network and later resynchronized to the VOB when a connection is reestablished. This mode of operation is similar to how the widely-used CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...

 (Concurrent Versions System) software works.

From the perspective of software on the client computer, a view appears as just another file system. If new data is created in a ClearCase view then ClearCase will refer to the new data (files, directories, ...) as view-private to indicate it is specific to the view being used and not being version controlled (private) by ClearCase. This allows build systems to operate on the same file system structure as the source code, and ensures that each developer can build independently of each other. A view-private object can be added to source control and become a versioned element at any time, making it visible to other users.

Each developer typically has one or more views at their disposal. It is sometimes practical to share views between developers, but sharing branches is usually used instead. Having a branch hierarchy is often useful, so an entire development project shares a common development branch, while a smaller team shares a sub-branch, and each developer has his or her own private branch. Whenever some change is deemed stable enough for a larger group, it can be merged to the parent branch.

Configuration specifications

Under base ClearCase, each view is controlled by its associated configuration specification, commonly referred to as a config spec. This is a collection of rules
Domain-specific programming language
In software development and domain engineering, a domain-specific language is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique...

 (stored internally in a text file, but compiled to a more efficient form before use) that specifies what elements (files or directories) should be visible in a view, and which versions of these elements. When deciding which version, if any, of an element should be visible, ClearCase traverses the configuration specification line-by-line from top to bottom, stopping when a match is found. Earlier rules always take priority over later ones.

A typical configuration specification could look like this:

  1. Show all elements that are checked out to this view, regardless any other rules.

element * CHECKEDOUT
  1. If an element has a version on the 'module2_dev_branch', then the latest
  2. version of this branch shall be the visible version in this view.

element * .../module2_dev_branch/LATEST
  1. For all files named 'somefile', regardless of location, always show the latest version
  2. on the main branch.

element .../somefile /main/LATEST
  1. Use a specific version of a specific file. Note: This rule must appear before
  2. the next rule to have any effect!

element /vobs/project1/module1/a_header.h /main/proj_dev_branch/my_dev_branch1/14
  1. For other files in the 'project1/module1' directory, show versions
  2. labeled 'PROJ1_MOD2_LABEL_1'. Furthermore, don't allow any checkouts in this path.

element /vobs/project1/module1/... PROJ1_MOD2_LABEL_1 -nocheckout
  1. Show the 'ANOTHER_LABEL' version of all elements under the 'project1/module2' path.
  2. If an element is checked out, then branch that element from the currently
  3. visible version, and add it to the 'module2_dev_branch' branch.

element /vobs/project1/module2/... ANOTHER_LABEL -mkbranch module2_dev_branch


A configuration specification can also reference other configuration specifications using the 'include' statement.

Under ClearCase UCM these config specs still exist but do not need to be maintained or edited anymore by end-users or administrators.

Features

  • Build auditing: The networked filesystem provided by MVFS allows for build auditing. Builds performed on a dynamic view which use the MVFS are able to monitor and record file I/O
    I/O
    I/O may refer to:* Input/output, a system of communication for information processing systems* Input-output model, an economic model of flow prediction between sectors...

     operations performed during the build process, and associate each such event with the command which triggered it. This allows ClearCase to produce a bill-of-materials
    Bill of materials
    A bill of materials is a list of the raw materials, sub-assemblies, intermediate assemblies, sub-components, components, parts and the quantities of each needed to manufacture an end product...

     which it calls a Configuration Record (CR) for all builds and enable traceability
    Traceability
    Traceability refers to the completeness of the information about every step in a process chain.The formal definition: Traceability is the ability to chronologically interrelate uniquely identifiable entities in a way that is verifiable....

     for either Software Configuration Management purposes or as part of a larger Application Lifecycle Management
    Alm
    Alm may refer to:* An alpine pasture* Alm , Austria* The protagonist of Fire Emblem Gaiden* A stadium in Bielefeld, Germany, see "Bielefelder Alm"* An historical liquid measure, see aamALM may refer to:* Abundant Life Ministries...

     process. Build auditing is performed with command-line tools such as a built-in make tool (omake, clearmake) or by using the clearaudit command which can invoke a separate build tool.
  • VOB (Versioned Object Base): A repository that stores versions of file elements, directory elements, derived objects, and metadata associated with these objects. With MultiSite, a VOB can have multiple replicas, at different sites.
  • Configuration Record: The bill-of-materials artifact produced as the result of build auditing that contains:
    • Build procedure: The method (script, makefile, ...) that invoked the build
    • Inputs: All files (and their specific versions) that were used for a particular build.
    • Outputs: All derived object
      Derived Object
      In Computer programming, derived objects are files that are not directly maintained, but get created.The most typical context is that of compilation, linking, and packaging of source files....

       (DO) files (and any dependent DOs) produced as a result of the build.

The dependency information is stored in a hidden configuration record which can be shown for each derived object. The configuration record can be used to set up another view showing all files that have been read before during the build time. Alternatively, you can use the configuration record to apply a label to the files (and versions) that were read during the build.
  • Build Avoidance: Use of MVFS
    MultiVersion File System
    MVFS is a virtual file system which displays specific versions of data stored in ClearCase. In particular, it supports dynamic views which can show an arbitrary combination of local and remote files....

     (MultiVersion File System) allows derived objects built in one dynamic view to be automatically "copied over" to another dynamic view requiring "exactly the same" derived object. Two derived objects are deemed to be "exactly same" if they have the same configuration record (ClearCase terminology, also called bill of materials). Shared derived objects will be physically present on the VOB server, and not in the views that reference them. The process of "copying over" is called winking in in ClearCase terminology. This feature requires that the clearmake or omake tools are used instead of other build systems.
  • Unix/Windows Interoperability: VOBs hosted on *nix (Solaris, Linux
    Linux
    Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

    , AIX, HP-UX
    HP-UX
    HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...

    , IRIX
    IRIX
    IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It was based on UNIX System V with BSD extensions. IRIX was the first operating system to include the XFS file system.The last major version...

     primarily) servers can be accessed with dynamic views, snapshot views, or the new web protocol based client: the CCRC on Windows clients. VOBs hosted on Windows servers can be accessed with snapshot views or CCRC from Unix clients, but not dynamic views due to the Windows server returning file paths with backslashes as the path delimiter. There is a 3rd party patch for Linux to enable dynamic views from Windows VOBs.
  • Integration With Other Products: Other products (originally) from Rational Software
    Rational Software
    Rational Machines was founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development...

    , notably ClearQuest and Rational Rose, integrate with ClearCase. ClearCase also integrates with TextPad
    TextPad
    TextPad is a text editor for the Microsoft Windows family of operating systems.First released in 1992, this software is currently in its fifth major version...

    , Microsoft Visual Studio
    Microsoft Visual Studio
    Microsoft Visual Studio is an integrated development environment from Microsoft. It is used to develop console and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all...

    , Code::Blocks
    Code::Blocks
    Code::Blocks is a free and open source, cross-platform IDE which supports multiple compilers including GCC and MSVC. It is developed in C++ using wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities and features are defined by the provided plugins.Currently, Code::Blocks is...

    , NetBeans
    NetBeans
    NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...

     and the Eclipse IDE through a plugin. There are also Emacs
    Emacs
    Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...

     and Vim
    Vim (text editor)
    Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...

     plugins available.
  • Space Saving: ClearCase dynamic views can save huge amounts of space and allow for some measure of a shared work environment.

Weaknesses

  • Speed: ClearCase dynamic and snapshot views are slower than local filesystems, even with good network infrastructure. Repeated subsequent builds may run dramatically faster, due to build avoidance using ClearCase's make substitute. Because MVFS requires server access every time a file is accessed, the performance of the file system depends on server capacity.
  • Sensitivity to network problems: Because MVFS is essentially an online file system, failures of the server or network render the dynamic views unavailable. Offline access to the MVFS requires working in a snapshot view. A snapshot view may be created with an identical configuration specification. If the view data for dynamic views is stored on a client host (as may be done for performance reasons or to reduce the need for servers), ClearCase does not automatically handle host IP address changes. (2007)
  • Cost of Ownership: ClearCase costs more than free, open-source, and some other commercial SCMs.

See also

  • List of revision control software
  • Comparison of revision control software
    Comparison of revision control software
    The following is a comparison of revision control software. The following tables includes general and technical information for notable revision control and software configuration management software.- General information :Table Explanation...

  • Rational ClearQuest
    Rational ClearQuest
    Rational ClearQuest is an enterprise level workflow automation tool from the Rational Software division of IBM. Commonly, ClearQuest is configured as a bug tracking system, but it can be configured to act as a CRM tool or to track a complex manufacturing process. It can also implement these...

  • IBM Rational ClearCase UCM

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK