The Librarian (version control system)

From Wikipedia, the free encyclopedia
The Librarian
Other namesCA-Librarian, Librarian
Original author(s)Applied Data Research
Developer(s)
Initial release1969; 55 years ago (1969)
Stable release
4.4 / 2010; 14 years ago (2010)
Operating system
PlatformIBM mainframe
TypeRevision control
LicenseProprietary
Websitetechdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-librarian/4-4.html

The Librarian is a version control system and source code management software product originally developed by Applied Data Research for IBM mainframe computers. It was designed to supplant physical punched card decks as a way of maintaining programs, but kept a card model in terms of its interface. During the 1970s and 1980s it was in use at thousands of IBM mainframe installations and was one of the best-selling software products in the computer industry.

After Applied Data Research was acquired by Computer Associates in 1988, the product became known as CA-Librarian. After that company was acquired by Broadcom in 2018, the product became known simply as Librarian.

History[edit]

Most computer source programs in the 1960s were kept on punched cards, which was problematic due to the amount of physical space they took, the constant chance of card decks being dropped or otherwise damaged, and problems with keeping a history of changes to the program.[1][2] Even into the mid-to-late 1970s, when other forms of computer input emerged, the punched card deck was still the most important of these, and this was also true for the source code for computer programs themselves.[3][4][5]

During its early years, Applied Data Research (ADR) was developing Autoflow, a program for automatic flowcharting, which is often cited as one of the first commercial software applications.[6] The ADR staff wanted something to help manage the increasing size of the Autoflow source code base.[1] Martin Goetz, an ADR co-founder, had used the UNITYPER system during a prior employment with Sperry Rand.[1] This device wrote typed input onto a metal magnetic tape.[7] Goetz realized that source code did not have to live on punched cards, but instead could be kept in stable magnetic storage; a program called the Librarian that did this was then built for in-house use.[1]

ADR employees realized that what was valuable to them would be valuable to others.[1] At first, Librarian was offered as part of ADR's Autoflow,[1] and other software packages.[8] This arrangement was in place by 1969.[8][9] At this point, Librarian master files were kept on magnetic tape; an advertisement that ADR ran in Datamation in 1970 related the story of being able to save Librarian tapes when a fire broke out, whereas it would have been impossible to save the equivalent amount of source code had it been in punched card file cabinets.[10]

Soon, ADR recognized that Librarian had a market of its own.[1] By 1971, advertisements were running for the Librarian in Computerworld that did not mention it in connection with any other ADR products.[11] A shift was made to Librarian master files being kept on mainframe disk drives, with ADR saying that data compression was used to keep disk drive usage to a minimum.[12]

"The Librarian ... took off very quickly. It was very well priced. Its practicality and its functionality were obvious. Companies were not happy maintaining card decks and if you replace a card with another card there is absolutely no way of keeping track of it; so from an auditing perspective, forgetting about security, there was no way to maintain an audit trail of changes you made to a program. It was just sort of an obvious type of application, so we sold lots of systems. They were low priced and sold very quickly. It was always very profitable for ADR."

—Martin Goetz in 2002[1]

The Librarian quickly found success in the market and began being used by a large number of installations.[13] The Librarian, along with Autoflow, became responsible for much of ADR's revenue and rapid growth as a company.[14] Per a survey that ADR conducted amongst its customers, use of the Librarian significantly increased programmer productivity, especially in the areas of ongoing maintenance and enhancement of existing applications.[13] Buoyed by this, ADR introduced other software packages in the category of programming tools.[14]

By 1973, the Librarian had garnered a spot in the Datapro Research Corporation's Software Honor Roll for the number of customers and associated satisfaction that the package had,[15] based on surveys conducted by Datapro.[16] It made the Honor Roll in subsequent years as well.[17] One 1979 analysis of software packages for IBM mainframe environments rated the Librarian as one of the few packages that excelled both in total number of installations and total amount of sales volume.[13]

According to sales figures given to International Computer Programs, Inc. (ICP),[16] by 1977, the Librarian was in use at some 3,300 sites – the most of any such software package it was tracking – and had aggregate sales revenues of over $10 million.[17] By 1979, that number had increased to 4,500 installations.[13] In 1982, ICP gave The Librarian an award for $50 million in total sales.[18]

In 1985, the Librarian was named by ICP as a recipient for the $100 Million Award, again reflecting lifetime aggregate sales.[19] It was one of only a handful of system software products to reach that level.[19] This was followed in 1989, when ICP gave an award for $250 million in total sales for Librarian.[20]

Throughout much of its existence, Librarian's main competitor was the Panvalet product from Pansophic Systems.[15][16][21] It had roughly the same number of installations as the Librarian. As recollected by Pansophic's founder, Joseph A. Piscopo, "Panvalet and Librarian basically divided the program library market between the two of them.... Virtually everyone ended up with one or the other of the products."[2]

Operation[edit]

Librarian listing of a source module, showing history and other attributes

The punched card was at the time the model for many kinds of computer input, including for those representing source code.[3] The Librarian works by interspersing its own control cards with the source program cards.[22] These could be physical cards, or later, lines in a file kept on disk and shown and edited on display terminals. In any case, the Librarian operated under a batch processing model.[23]

Librarian control cards begin with a hyphen.[22] Some, such as -DESC, -PGMR, and -LANG, are used to provide basic identifying information about a Librarian module. For the language, some typical values are ASM for 370 Assembly language and CBL for COBOL.[24]

The Librarian makes use of sequence numbers in the source file. Traditionally these occurred as columns 1–6 of a COBOL line (before the continuation indicator in column 7, area A starting in column 8 and area B starting in column 12),[4] or columns 73–80 of a 370 Assembly language line,[5] likewise columns 73–80 for FORTRAN,[25] and so forth. For instance, on the Librarian -ADD control card, which adds a new source module to Librarian, the option SEQ=COBOL indicates that the sequencing numbers to Librarian should match those normally used in COBOL programming.[24]

The main control cards used in modifying existing programs are -INS, -REP, and -DEL.[22] An example set of cards to update a COBOL program might be:

-REP 340
            RECORD CONTAINS 704 CHARACTERS
-INS 360
        01  PER-MASTER-REC.
            03  PER-MASTER-KEY.
                05  PER-MASTER-DIV              PIC XX.
                05  PER-MASTER-DEPT             PIC 999.
                05  PER-MASTER-JOB-CL           PIC 999.
                05  FILLER                      PIC XXX.
-REP 430
            03  FILLER                          PIC X(693).
-DEL 540,590
-REP 1470
              OR PER-MASTER-DIV GREATER THAN '94'.

The -INC control card can be used for including the source of another module into this one. It serves as an extralinguistic feature for programming languages or kept data that do not have an include directive of any kind or for shops that prefer that the source configuration system do inclusions even for languages that did have such a directive. Librarian users have control over under which circumstances, or phase, any -INC statements would be expanded.[26] For instance, the inclusion will be done by a -SEL modname operation but not by a -PUNCH operation.[24] In practice, however, inclusion of this kind can also be done using language-specific constructs,[24] such as the COBOL COPY statement.[4]

While Librarian insert/replace/deletion operations were tractible for modifications to existing code, they were an awkward vehicle in which to write new programs, where large numbers of changes or refactorings would often take place.[23] One practice to work around this was to keep the program in a file in an online, interactive environment with a text editor, such as Source Program Maintenance Online running under CICS, that would be repeatedly submitted for batch compiles or assemblies. The file would comprise something like:

...
// EXEC STRMLIB
-DLM modulename, pswd
-ADD modulename, pswd, [other options]
complete source code of program
// EXEC ASM/COBCL/whatever
...

In this way, the module under development could be edited within the online text editor rather than with Librarian control cards, but the latest iteration would still be preserved within Librarian between batch compiles. Once the program was in a working state, however, normal Librarian updates would be done in order to keep track of changes to the module.[24] Later, a workflow such as this could be done via the editor in the IBM ISPF facility.[27]

In addition to keeping track of the history of changes to modules, the Librarian had features that supported the auditability, integrity, and recoverability of the master file of source modules.[28]

Releases[edit]

The Librarian went through a series of releases, both to add new functionality and to support changes in IBM mainframe environments. For instance, a new release in 1976 added support for the OS/VS1 and OS/VS2 operating systems.[29] An illustration of an enhancement was the addition of the LIB/AM interface in 1983, which allowed the Librarian to appear like a partitioned data set to certain programs and utilities.[30] Some of ADR's other offerings were integrated with the Librarian, for instance its Datadictionary product.[31][32]

By 1981, Release 3.0 of the Librarian was out.[31] Release 3.4, made in 1985, added support for the more interactive VM/CMS operating system and ISPF environment, both at the CMS command line and in ISPF panels and menus and editors.[27] By 1986, the Librarian Release 3.5 was out, introducing a Change Control Facility for greater management and awareness of the software development cycle.[21][33] Early 1988 saw version 3.7 which added the Change Control Facility to the CMS/ISPF environment [33] Release 3.8 of the Librarian came out later in 1988, just as the product was being acquired by Computer Associates.[34] It added the Librarian/Change Control Facility functionality for the DOS/VSE platform.[34]

Later years[edit]

Over time, approaches to version control began to move away from the Librarian model, with the Source Code Control System (SCCS) being an important early alternative.[23] This was, as one of the creators of it said, "a radical departure from conventional methods for controlling source code",[35] and gave more flexibility for complicated situations such as branching.[23] SCCS was actually originally written for IBM OS/370,[35] but found favor on the UNIX operating system for the PDP-11 where it was included in the Programmer's Workbench.[23]

Nonetheless, the IBM mainframe world still went on. In 1988, ADR was acquired by Computer Associates (CA).[34] The ADR product then became known as CA-Librarian.[36] CA made enhancements to some of its other products to integrate with CA-Librarian.[37] By 2003, version 4.3 of CA-Librarian was available, and was billed as being part of CA's AllFusion product suite.[22] Release 4.4 of CA-Librarian appears to have come out in 2010.[38]

In 2018, Broadcom Inc. acquired CA Technologies (the latest name for Computer Associates).[39] The product name then became simply Librarian,[40] although the CA-Librarian name did not disappear.[41]

As of 2023, the Librarian is part of Broadcom's Mainframe Software line under a category for DevOps-related products.[40] The current product version is Librarian 4.4.[42]

The 2022 book Modern Mainframe Development, published by O'Reilly Media, lists CA Librarian as one of the source control systems still in use by mainframe developers, along with a few others such as IBM Software Configuration and Library Manager and ChangeMan ZMF from Micro Focus.[41]

See also[edit]

References[edit]

  1. ^ a b c d e f g h Goetz, Martin (May 3, 2002). "An Interview with Martin Goetz" (Interview). Interviewed by Jeffrey R. Yost. Washington, D.C.: Charles Babbage Institute, University of Minnesota. pp. 5–7. Retrieved May 26, 2023.
  2. ^ a b Piscipo, Joseph (May 3, 2002). "An Interview with Joseph Piscopo" (Interview). Interviewed by Thomas Haigh. Washington, D.C.: Charles Babbage Institute, University of Minnesota. pp. 3, 5, 12–13. Retrieved May 26, 2023.
  3. ^ a b Popkin, Gary S.; Pike, Arthur H. (1977). Introduction to Data Processing. Boston: Houghton Mifflin Company. pp. 76, 116, 296. ISBN 0-395-20628-6.
  4. ^ a b c McCracken, Daniel D. (1976). A Simplified Guide to Structured COBOL Programming. New York: John Wiley & Sons. pp. 6–9, 346–347. ISBN 0-471-58284-0.
  5. ^ a b McQuillen, Kevin (1975). System/360–370 Assembler Language (OS). Fresno, California: Mike Murach & Associates. pp. 8, 56–59. LCCN 74-29645.
  6. ^ Lee, Timothy B. (March 28, 2014). "In new case, Supreme Court revisits the question of software patents". The Washington Post. Archived from the original on April 2, 2014.
  7. ^ "Unityper II, Data Entry Device for the Univac Computer". Smithsonian National Museum of American History. Retrieved August 3, 2023.
  8. ^ a b "uncertain". Modern Data Systems. Vol. 2, no. uncertain. 1969. p. 102.
  9. ^ "uncertain". Data Management (Advertisment). Vol. 7, no. uncertain. 1969. p. 4.
  10. ^ "uncertain". Datamation (Advertisment). Vol. 16, no. uncertain. 1970. p. 5.
  11. ^ "The Librarian tells you where you are, where you're going, and what you've done... just in case you forget". Computerworld (Advertisement). December 1, 1971. p. 3.
  12. ^ "The Librarian and MetaCOBOL from ADR ..." Computerworld (Advertisement). September 20, 1976. p. 3.
  13. ^ a b c d Frank, Werner (January 15, 1979). "The New Software Economics: Part 2". Computerworld. pp. 4–7 (In Depth).
  14. ^ a b Campbell-Kelly, Martin (2003). From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry. MIT Press. p. 116. ISBN 0-262-03303-8 – via OpenLibrary.
  15. ^ a b "Packages Cited In Honor Roll". Computerworld. August 29, 1973. p. 11.
  16. ^ a b c Leavitt, Don (March 27, 1978). "Software winners' ranks swelling". Computerworld. p. 2.
  17. ^ a b Leavitt, Don (April 4, 1977). "New Ideas Sought to Bring Order to Package Surveys". Computerworld. p. 19.
  18. ^ Blumenthal, Marcia (April 5, 1982). "ICP Honors 342 Software Products". Computerworld. pp. 1, 10.
  19. ^ a b "ICP gives awards to top-selling software tools". Computerworld. April 22, 1985. p. 11.
  20. ^ "The 18th Annual ICP Million Dollar Awards". Insurance Software Review. June 1989. p. 15. ProQuest 229252239 – via ProQuest.
  21. ^ a b Babcock, Charles (June 16, 1986). "Tool manages source code". Computerworld. pp. 19, 22.
  22. ^ a b c d "AllFusion CA-Librarian Batch Command Reference Guide 4.3" (PDF). Computer Associates. 2003. pp. i, ii, 2–1, 2–3. Retrieved August 10, 2023.
  23. ^ a b c d e Bianchi, M. H.; Wood, J. L. (1976). "A user's viewpoint on the Programmer's Workbench". In Proceedings of the 2nd international conference on Software engineering (ICSE '76). IEEE Computer Society Press. pp. 193–199.
  24. ^ a b c d e MSH EDP Experimental Resources Manual. New York: The Mount Sinai Medical Center. 1982. pp. 1–4, 1–7.
  25. ^ Blatt, John M. (1971). Introduction to FORTRAN IV Programming: Using the WATFOR/WATFIV Compilers. Pacific Palisades, California: Goodyear Publishing Company. p. 254. ISBN 0-87620-440-X.
  26. ^ "CA Librarian Members". Natural ISPF 8.2.8 User's Guide. Software AG. Retrieved June 12, 2023.
  27. ^ a b "Software & Services: System Software". Computerworld. February 11, 1985. pp. 66, 68.
  28. ^ Corelis, Jon (December 1987). "Source Code Security: A Checklist for Managers". SIGUCCS Newsletter. 17 (4): 26–28. doi:10.1145/382266.382431. S2CID 24797580.
  29. ^ "'The Librarian' Now Available for IBM 360/370 VS users". Computerworld. September 27, 1976. p. 24.
  30. ^ "ADR Announces Translator Interface for OS/MVS Sites". Computerworld. December 5, 1983. p. 67.
  31. ^ a b "ADR Updates 'Datadictionary' To Integrate 'The Librarian'". Computerworld. March 16, 1981. p. 47.
  32. ^ Allen, Frank W.; Loomis, Mary E. S.; Mannino, Michael V. (June 1982). "The Integrated Dictionary/Directory System". ACM Computing Surveys. 14 (2): 245–286. doi:10.1145/356876.356882. S2CID 18623739.
  33. ^ a b "New Products: System Software". Computerworld. February 15, 1988. p. 29.
  34. ^ a b c "Librarian in VSE upgrade". Computerworld. October 3, 1988. pp. 25, 30.
  35. ^ a b Rochkind, Marc J. (December 1975). "The Source Code Control System" (PDF). IEEE Transactions on Software Engineering. SE-1 (4): 364–370. doi:10.1109/tse.1975.6312866. S2CID 10006076.
  36. ^ "Computer Associates: News ..." Computerworld (Advertisement). October 8, 1990. p. 37.
  37. ^ See for instance "CA Enhances Diagnostics Solutions to Speed Troubleshooting of z/OS and OS/390 Applications" (Press release). PR Newswire. December 18, 2001. ProQuest 449135709 – via ProQuest.
  38. ^ See published 2010 date for Release 4.4 in "CA Librarian®: Installation Guide r4.4" (PDF) (Second ed.). CA Technologies. 2010. pp. 1, 2. Retrieved August 13, 2023. Compare to CA Librarian 4.3 being latest version integrated into CA Mainframe Software Manager as shown on slide 22, dated December 2009, in Roemming, Richard (April 14, 2010). "Mainframe 2.0 Update" (PDF). CA. Retrieved August 13, 2023.
  39. ^ "Broadcom Inc. Completes Acquisition of CA Technologies" (Press release). Broadcom. November 5, 2018.
  40. ^ a b "Mainframe Software: DevOps". Broadcom Inc. Retrieved August 7, 2023.
  41. ^ a b Taulli, Tom (2022). Modern Mainframe Development: COBOL, Databases, and Next Generation Approaches. O'Reilly Media. p. 59. ISBN 9781098106997.
  42. ^ "Librarian 4.4". Broadcom Inc. Retrieved August 7, 2023.

External links[edit]