Система управления информацией IBM ( IMS ) представляет собой объединенную иерархическую базу данных и систему управления информацией , которая поддерживает обработку транзакций . [1]
IBM совместно с Rockwell и Caterpillar разработали систему IMS в 1966 году для программы Apollo , где она использовалась для инвентаризации очень большой спецификации материалов (BOM) для ракеты-носителя Saturn V для полета на Луну и космического корабля Apollo. [2]
Система была впервые признана работоспособной, когда 14 августа 1968 года на терминале IBM 2740 в Дауни, Калифорния , появилось первое сообщение «ГОТОВО». [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] Например, в базе данных клиентов корневой сегмент наверху иерархии может включать такие поля, как номер телефона, имя и возраст. Дочерние сегменты могут быть добавлены ниже, например, сегменты заказов под каждым сегментом клиентов, представляющие заказы, размещенные клиентами, с дополнительными дочерними сегментами для отдельных позиций в каждом заказе.
- Происходящие из баз данных Data Language Interface (DL/I), разработанных для Apollo, полнофункциональные базы данных поддерживают первичные и вторичные индексы, доступ к которым осуществляется с помощью вызовов DL/I, аналогичных вызовам SQL в IBM Db2 или Oracle. [ требуется ссылка ] - К этим базам данных можно получить доступ различными способами, среди которых выделяются Hierarchical Direct (HDAM) и Hierarchical Indexed Direct (HIDAM). Другие форматы включают Simple Hierarchical Indexed Sequential (SHISAM), Hierarchical Sequential (HSAM) и Hierarchical Indexed Sequential (HISAM). [6] - Данные в полнофункциональных базах данных хранятся с использованием VSAM, собственного метода доступа z/OS, или OSAM, специфичного для IMS метода, оптимизирующего ввод-вывод для шаблонов доступа IMS, в частности, извлекающего выгоду из последовательного доступа (последовательная буферизация OSAM). [ требуется ссылка ]
- Оптимизированные для высоких скоростей транзакций, базы данных Fast Path включают базы данных ввода данных (DEDB) и базы данных основного хранилища (MSDB). [7] [ требуется ссылка ] - DEDB используют прямой (рандомизаторный) доступ, аналогичный HDAM в полнофункциональных базах данных, предлагая повышенную производительность за счет высокопроизводительных методов доступа и асинхронной записи после фиксации. Они используют концепцию единицы работы (UOW) для упрощенных утилит онлайн-реорганизации, начиная с версии IMS 11. [8]
- В IMS V7 появились базы данных HALDB, расширяющие возможности полнофункциональных баз данных для повышения доступности и эффективной обработки больших объемов данных. [9] - В 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. [10]
IMS TM обеспечивает стандартную среду для выполнения транзакций. Несколько китайских банков приобрели IMS к концу 2000-х годов для поддержки растущей финансовой индустрии страны. [11]
IMS дополняет IBM Db2 , реляционную систему баз данных IBM, представленную в 1982 году. IMS, как правило, работает быстрее, чем Db2, при выполнении типичных задач, но может потребовать больше усилий по программированию для проектирования и поддержки неосновных задач.
Реляционное хранилище данных может использоваться для дополнения базы данных IMS. Например, IMS может обеспечивать основные транзакции банкоматов, поскольку оно хорошо подходит для такой специфической задачи.