Librarian — это система контроля версий и программное обеспечение для управления исходным кодом , изначально разработанное Applied Data Research для мэйнфреймов IBM . Оно было разработано для замены физических колод перфокарт в качестве способа поддержки программ, но сохранило карточную модель в плане интерфейса. В 1970-х и 1980-х годах оно использовалось на тысячах установок мэйнфреймов IBM и было одним из самых продаваемых программных продуктов в компьютерной индустрии.
После того, как Applied Data Research была приобретена Computer Associates в 1988 году, продукт стал известен как CA-Librarian . После того, как эту компанию приобрела Broadcom в 2018 году, продукт стал известен просто как Librarian .
Большинство исходных компьютерных программ в 1960-х годах хранились на перфокартах , что было проблематично из-за занимаемого ими физического пространства, постоянной вероятности падения или иного повреждения колоды карт, а также проблем с сохранением истории изменений в программе. [1] [2] Даже в середине-конце 1970-х годов, когда появились другие формы компьютерного ввода, перфокарты по-прежнему оставались наиболее важными из них, и это также касалось исходного кода самих компьютерных программ. [3] [4] [5]
В первые годы своего существования компания Applied Data Research (ADR) занималась разработкой Autoflow — программы для автоматического построения блок-схем, которую часто называют одним из первых коммерческих программных приложений. [6] Сотрудники ADR хотели что-то, что помогло бы им управлять растущим размером исходной базы кода Autoflow. [1] Мартин Гетц , соучредитель ADR, использовал систему UNITYPER во время своей предыдущей работы в Sperry Rand . [1] Это устройство записывало вводимые данные на металлическую магнитную ленту. [7] Гетц понял, что исходный код не обязательно должен храниться на перфокартах, а вместо этого может храниться в стабильном магнитном хранилище; затем была создана программа под названием Librarian, которая делала это для внутреннего использования. [1]
Сотрудники ADR поняли, что то, что ценно для них, будет ценно и для других. [1] Сначала Librarian предлагался как часть Autoflow ADR, [1] и других программных пакетов. [8] Такая договоренность была реализована к 1969 году. [8] [9] На тот момент основные файлы Librarian хранились на магнитной ленте; реклама, которую ADR разместила в Datamation в 1970 году, рассказывала историю о том, как удалось спасти ленты Librarian, когда вспыхнул пожар, тогда как было бы невозможно сохранить эквивалентный объем исходного кода, если бы он находился в картотечных шкафах. [10]
Вскоре ADR осознала, что у Librarian есть свой собственный рынок. [1] К 1971 году в Computerworld появилась реклама Librarian , в которой он не упоминался в связи с другими продуктами ADR. [11] Был сделан переход к хранению основных файлов Librarian на дисках мэйнфрейма , при этом ADR заявила, что сжатие данных использовалось для минимизации использования дискового накопителя. [12]
«Librarian... очень быстро набрал обороты. Он был очень выгоден по цене. Его практичность и функциональность были очевидны. Компании не были довольны сохранением колод карт, и если вы заменяете карту на другую, то нет абсолютно никакой возможности отслеживать это; поэтому с точки зрения аудита, забывая о безопасности, не было никакой возможности вести аудиторский след изменений, которые вы вносили в программу. Это был просто очевидный тип приложения, поэтому мы продали много систем. Они были недорогими и продавались очень быстро. Это всегда было очень выгодно для ADR».
—Мартин Гетц в 2002 году [1]
Librarian быстро добился успеха на рынке и начал использоваться во многих инсталляциях. [13] Librarian, наряду с Autoflow, стали ответственны за большую часть доходов ADR и быстрый рост компании. [14] Согласно опросу, который ADR провела среди своих клиентов, использование Librarian значительно увеличило производительность программистов, особенно в областях постоянного обслуживания и улучшения существующих приложений. [13] Воодушевленная этим, ADR представила другие программные пакеты в категории инструментов программирования. [14]
К 1973 году Librarian занял место в списке лучших программных продуктов корпорации Datapro Research Corporation по числу клиентов и уровню удовлетворенности, [15] полученному в ходе опросов, проведенных Datapro. [16] Он также попадал в список лучших и в последующие годы. [17] В одном из анализов 1979 года программных пакетов для мэйнфреймов IBM Librarian был оценен как один из немногих пакетов, которые превзошли все ожидания как по общему числу установок, так и по общему объему продаж. [13]
Согласно данным о продажах, предоставленным International Computer Programs, Inc. (ICP), [16] к 1977 году Librarian использовался примерно на 3300 сайтах — больше, чем любой другой отслеживаемый ею программный пакет — и имел совокупный доход от продаж более 10 миллионов долларов. [17] К 1979 году это число возросло до 4500 установок. [13] В 1982 году ICP вручила Librarian награду за общий объем продаж в 50 миллионов долларов. [18]
В 1985 году ICP назвала Librarian лауреатом премии в размере 100 миллионов долларов, что снова отражало совокупный объем продаж за всю историю. [19] Это был один из немногих продуктов системного программного обеспечения, который достиг этого уровня. [19] За этим последовало и в 1989 году, когда ICP вручила награду за общий объем продаж Librarian в размере 250 миллионов долларов. [20]
На протяжении большей части своего существования основным конкурентом Librarian был продукт Panvalet от Pansophic Systems . [15] [16] [21] Он имел примерно такое же количество установок, как и Librarian. Как вспоминал основатель Pansophic Джозеф А. Пископо, «Panvalet и Librarian в основном разделили рынок программных библиотек между собой... Практически каждый в конечном итоге остановился на одном или другом продукте». [2]
Перфокарта в то время была моделью для многих видов компьютерного ввода, включая те, которые представляли исходный код. [3] Библиотекарь работает, перемежая свои собственные контрольные карты с картами исходной программы. [22] Это могли быть физические карты или позднее строки в файле, хранящемся на диске и отображаемом и редактируемом на дисплейных терминалах. В любом случае, Библиотекарь работал по модели пакетной обработки . [23]
Библиотечные контрольные карты начинаются с дефиса. [22] Некоторые из них, такие как -DESC
, -PGMR
, и -LANG
, используются для предоставления базовой идентификационной информации о модуле Библиотеки. Для языка некоторые типичные значения ASM
для языка ассемблера 370 и CBL
для COBOL . [24]
Библиотекарь использует порядковые номера в исходном файле. Традиционно они появлялись как столбцы 1–6 строки COBOL (перед указателем продолжения в столбце 7, область A, начинающаяся в столбце 8, и область B, начинающаяся в столбце 12), [4] или столбцы 73–80 строки языка ассемблера 370, [5] аналогично столбцы 73–80 для FORTRAN , [25] и так далее. Например, на контрольной карте Библиотеки -ADD
, которая добавляет новый исходный модуль в Библиотекарь, опция SEQ=COBOL
указывает, что порядковые номера в Библиотекарь должны соответствовать тем, которые обычно используются в программировании на COBOL. [24]
Основными контрольными картами, используемыми при изменении существующих программ, являются -INS
, -REP
, и -DEL
. [22] Примером набора карт для обновления программы COBOL может быть:
-РЕП 340 ЗАПИСЬ СОДЕРЖИТ 704 СИМВОЛА-ИНС 360 01 PER-MASTER-REC. 03 НА КАЖДЫЙ МАСТЕР-КЛЮЧ. 05 PER-MASTER-DIV PIC XX. 05 PER-MASTER-DEPT PIC 999. 05 PER-MASTER-JOB-CL PIC 999. 05 ЗАПОЛНИТЕЛЬНЫЙ ФОТО XXX.-РЕП 430 03 ЗАПОЛНИТЕЛЬНЫЙ РИС X(693).-ДЕЛ 540,590-РЕП 1470 ИЛИ НА КАЖДЫЙ МАСТЕР-ДЕЛ БОЛЬШЕ «94».
Контрольная -INC
карта может использоваться для включения источника другого модуля в этот. Она служит экстралингвистической функцией для языков программирования или хранимых данных, которые не имеют директивы include любого вида, или для магазинов, которые предпочитают, чтобы система конфигурации источника делала включения даже для языков, которые имели такую директиву. Пользователи-библиотекари имеют контроль над тем, при каких обстоятельствах или фазе -INC
будут расширяться любые утверждения. [26] Например, включение будет выполнено операцией -SEL modname
, но не операцией -PUNCH
. [24] На практике, однако, включение такого рода также может быть выполнено с использованием языковых конструкций, [24] таких как COPY
утверждение COBOL. [4]
Хотя операции Librarian insert/replace/deletion были послушными для модификации существующего кода, они были неудобным средством для написания новых программ, где часто происходило большое количество изменений или рефакторингов. [23] Одним из методов обхода этой проблемы было сохранение программы в файле в онлайн-интерактивной среде с текстовым редактором, таким как Source Program Maintenance Online, работающим под управлением CICS, который многократно отправлялся для пакетной компиляции или сборки. Файл мог содержать что-то вроде:
... // EXEC STRMLIB -DLM modulename, pswd -ADD modulename, pswd, [другие параметры] полный исходный код программы // EXEC ASM/COBCL/что угодно ...
Таким образом, разрабатываемый модуль можно было бы редактировать в онлайн-текстовом редакторе, а не с помощью контрольных карт Librarian, но последняя итерация все равно сохранялась бы в Librarian между пакетными компиляциями. Однако, как только программа была бы в рабочем состоянии, обычные обновления Librarian выполнялись бы для отслеживания изменений в модуле. [24] Позже такой рабочий процесс можно было бы выполнять с помощью редактора в IBM ISPF . [27]
Помимо отслеживания истории изменений в модулях, библиотекарь имел функции, которые поддерживали возможность аудита, целостности и восстановления главного файла исходных модулей. [28]
Librarian прошел через ряд релизов, как для добавления новых функций, так и для поддержки изменений в средах мэйнфреймов IBM. Например, новый релиз в 1976 году добавил поддержку операционных систем OS/VS1 и OS/VS2 . [29] Примером усовершенствования стало добавление интерфейса LIB/AM в 1983 году, что позволило Librarian выглядеть как разделенный набор данных для определенных программ и утилит. [30] Некоторые из других предложений ADR были интегрированы с Librarian, например, его продукт Datadictionary. [31] [32]
К 1981 году вышел выпуск 3.0 Librarian. [31] Выпуск 3.4, выпущенный в 1985 году, добавил поддержку более интерактивной операционной системы VM/CMS и среды ISPF , как в командной строке CMS, так и в панелях, меню и редакторах ISPF. [27] К 1986 году вышел выпуск 3.5 Librarian, в котором был представлен Change Control Facility для лучшего управления и осведомленности о цикле разработки программного обеспечения . [21] [33] В начале 1988 года вышла версия 3.7, которая добавила Change Control Facility в среду CMS/ISPF. [33] Выпуск 3.8 Librarian вышел позже в 1988 году, как раз когда продукт был приобретен Computer Associates . [34] Он добавил функциональность Librarian/Change Control Facility для платформы DOS/VSE . [34]
Со временем подходы к контролю версий начали отходить от модели Librarian, и важной ранней альтернативой стала система контроля исходного кода (SCCS). [23] Это было, как сказал один из ее создателей, «радикальным отходом от традиционных методов контроля исходного кода», [35] и давало большую гибкость для сложных ситуаций, таких как ветвление . [23] SCCS изначально была написана для IBM OS/370, [35] но нашла применение в операционной системе UNIX для PDP-11 , где она была включена в Programmer's Workbench . [23]
Тем не менее, мир мэйнфреймов IBM продолжал существовать. В 1988 году ADR была приобретена Computer Associates (CA). [34] Затем продукт ADR стал известен как CA-Librarian. [36] CA внесла улучшения в некоторые из своих других продуктов для интеграции с CA-Librarian. [37] К 2003 году была доступна версия 4.3 CA-Librarian, которая была объявлена частью набора продуктов AllFusion компании CA. [22] Выпуск 4.4 CA-Librarian, по-видимому, вышел в 2010 году. [38]
В 2018 году Broadcom Inc. приобрела CA Technologies (последнее название Computer Associates). [39] Затем название продукта стало просто Librarian, [40] хотя название CA-Librarian не исчезло. [41]
С 2023 года [обновлять]Librarian является частью линейки программного обеспечения для мэйнфреймов Broadcom в категории продуктов, связанных с DevOps . [40] Текущая версия продукта — Librarian 4.4. [42]
В книге 2022 года « Современная разработка мэйнфреймов» , опубликованной O'Reilly Media , CA Librarian указана как одна из систем управления исходным кодом, которая все еще используется разработчиками мэйнфреймов, наряду с несколькими другими, такими как IBM Software Configuration and Library Manager и ChangeMan ZMF от Micro Focus . [41]