IBM Information Management System ( IMS ) — это объединенная иерархическая база данных и система управления информацией , которая поддерживает обработку транзакций . [1]
IBM разработала IMS совместно с Rockwell и Caterpillar , начиная с 1966 года для программы Apollo , где она использовалась для инвентаризации очень большой спецификации материалов (BOM) для ракеты Saturn V Moon и космического корабля Apollo. [2]
Система впервые была признана работоспособной, когда первое сообщение «ГОТОВО» появилось на терминале IBM 2740 в Дауни, Калифорния , 14 августа 1968 года. [2] За промежуточный период IMS претерпела множество изменений по мере развития технологии IBM System/360. в текущие технологии z/OS и IBM zEnterprise System .
Верн Уоттс непрерывно работал над IMS с 1960-х годов [3] и в течение многих лет был главным архитектором IMS. Уоттс присоединился к IBM в 1956 году и работал в лабораториях разработки IBM в Силиконовой долине до своей смерти 4 апреля 2009 года. [4]
IBM Information Management System (IMS) использует иерархическую модель базы данных, отличную от более поздней модели реляционной базы данных IBM, представленной в IBM Db2. В IMS данные организованы в сегменты, каждый из которых состоит из нескольких полей, структурированных иерархически для эффективного управления сложными взаимосвязями. [5] Например, в базе данных клиентов корневой сегмент наверху иерархии может включать такие поля, как номер телефона, имя и возраст. Ниже можно добавить дочерние сегменты, например сегменты заказов под каждым клиентским сегментом, представляющие заказы, размещенные клиентами, с дополнительными дочерними сегментами для отдельных позиций в каждом заказе.
- Созданные на основе баз данных интерфейса языка данных (DL/I), разработанных для Apollo, полнофункциональные базы данных поддерживают первичные и вторичные индексы, доступ к которым осуществляется через вызовы DL/I, аналогичные вызовам SQL в IBM Db2 или Oracle. [ нужна цитация ] - Доступ к этим базам данных можно получить с помощью различных методов, среди которых выделяются Hierarchical Direct (HDAM) и Hierarchical Indexed Direct (HIDAM). Другие форматы включают простой иерархический индексированный последовательный (SHISAM), иерархический последовательный (HSAM) и иерархический индексированный последовательный (HISAM). [6] — Данные в полнофункциональных базах данных хранятся с использованием VSAM, собственного метода доступа z/OS, или OSAM, специфичного для IMS метода, оптимизирующего ввод-вывод для шаблонов доступа IMS, в частности, с использованием последовательного доступа (OSAM Sequential Buffering). [ нужна цитата ]
- Базы данных Fast Path, оптимизированные для высоких скоростей транзакций, включают базы данных ввода данных (DEDB) и базы данных основного хранилища (MSDB). [ нужна ссылка ] — DEDB используют прямой доступ (рандомизатор), аналогичный HDAM в полнофункциональных базах данных, предлагая повышенную производительность за счет высокопроизводительных методов доступа и асинхронной записи после фиксации. Они используют концепцию единицы работы (UOW) для упрощения утилит онлайн-реорганизации, начиная с версии IMS 11. [7]
- HALDB, представленные в IMS V7, расширяют возможности полнофункциональных баз данных, повышая доступность и эффективно обрабатывая большие объемы данных. [8] - В IMS V9 реализована онлайн-реорганизация HALDB, обеспечивающая непрерывную доступность и размещение объемов данных, превышающих 40 терабайт.
IMS — это менеджер транзакций ( IMS TM , также известный как IMS DC), который взаимодействует с конечным пользователем, подключенным через VTAM или TCP/IP (включая 3270 и веб-интерфейсы пользователя ) или другое приложение. Он может обрабатывать бизнес-функцию (например, снятие средств с банковского счета) и поддерживать состояние на протяжении всего процесса, гарантируя, что система правильно записывает бизнес-функцию в хранилище данных.
IMS TM использует парадигму обмена сообщениями и организации очередей . Программа управления IMS получает транзакцию, введенную с терминала (или веб-браузера, или другого приложения), а затем сохраняет транзакцию в очереди сообщений (в памяти или в наборе данных). Затем IMS вызывает свой планировщик для транзакции, поставленной в очередь, чтобы запустить программу бизнес-приложения в области обработки сообщений. Область обработки сообщений извлекает транзакцию из очереди сообщений IMS и обрабатывает ее, считывая и обновляя базы данных IMS и/или Db2 и обеспечивая правильную запись транзакции. Затем, если необходимо, IMS помещает ответное сообщение обратно в очередь сообщений IMS. Как только выходное сообщение готово и доступно, программа управления IMS отправляет его обратно на исходный терминал. IMS TM может обрабатывать весь этот процесс тысячи (или даже десятки тысяч) раз в секунду. В 2013 году IBM завершила тестирование IMS версии 13, продемонстрировав способность обрабатывать 100 000 транзакций в секунду в одной системе IMS. [9]
IMS TM предоставляет стандартную среду для выполнения транзакций. К концу 2000-х годов несколько китайских банков приобрели IMS для поддержки растущей финансовой индустрии страны. [10]
IMS дополняет IBM Db2 , систему реляционных баз данных IBM , представленную в 1982 году. IMS обычно работает быстрее, чем Db2, для обычных задач, но может потребовать больше усилий по программированию для проектирования и поддержки для неосновных задач.
Реляционное хранилище данных может использоваться в качестве дополнения к базе данных IMS. Например, IMS может обеспечивать основные транзакции банкомата, поскольку она хорошо справляется с такой конкретной задачей.