Введение
Совместная иерархическая база данных, разработанная IBM.
Информационная система управления IBM (IMS) — это совместная иерархическая база данных и система управления информацией, поддерживающая обработку транзакций.
История
IBM разработала IMS совместно с Rockwell и Caterpillar, начиная с 1966 года, для программы «Аполлон», где она использовалась для ведения учета огромного перечня деталей (BOM) ракеты-носителя Saturn V и космического аппарата «Аполлон». За прошедший период IMS претерпела множество усовершенствований по мере развития технологий IBM System/360 в современные технологии z/OS и IBM zEnterprise System. Верн Уоттс непрерывно работал над IMS с 1960-х годов и на протяжении многих лет был главным архитектором IMS. Уоттс пришел в IBM в 1956 году и работал в исследовательских лабораториях IBM в Силиконовой долине до своей смерти 4 апреля 2009 года.
"Полнофункциональные" базы данных
Полностью унаследованные от баз данных Data Language Interface (DL/I), изначально разработанных для Apollo, полнофункциональные базы данных могут иметь первичные и вторичные индексы, к которым осуществляется доступ посредством вызовов DL/I из прикладной программы, аналогично вызовам SQL к IBM Db2 или Oracle. Доступ к полнофункциональным базам данных возможен различными способами, однако доминируют методы иерархического прямого доступа (HDAM) и иерархического индексированного доступа (HIDAM). Другие форматы включают простой иерархический индексированный последовательный (SHISAM), иерархический последовательный (HSAM) и иерархический индексированный последовательный (HISAM). Полные функциональные базы данных хранят данные, используя VSAM – нативный метод доступа z/OS, или Overflow Sequential (OSAM) – метод доступа, специфичный для IMS, оптимизирующий программу канала ввода-вывода для моделей доступа IMS. В частности, производительность OSAM повышается при последовательном доступе к базам данных IMS (OSAM Sequential Buffering).
Базы данных "Быстрый путь"
Базы данных Fast Path оптимизированы для обработки чрезвычайно высоких объемов транзакций. Базы данных с вводом данных (DEDB) и базы данных с основным хранилищем (MSDB) – два типа баз данных Fast Path. DEDB используют метод прямого доступа (randomizer), аналогичный Full Function HDAM, а IMS V12 предоставил функцию вторичного индекса DEDB. MSDB не поддерживают вторичную индексацию. DEDB с опцией виртуального хранилища (VSO) могут заменять MSDB в современных версиях IMS, поэтому MSDB постепенно выводятся из эксплуатации. Высокая производительность DEDB достигается за счет использования высокопроизводительных методов доступа (Media Manager), асинхронной записи после фиксации и оптимизированных путей кода. Ведение журналов минимизировано, поскольку никакие данные не обновляются на диске до фиксации, поэтому не требуется ведение журналов отмены (предыдущего образа), равно как и функция отката. Незавершенные изменения можно просто отменить. Начиная с IMS версии 11, DEDB могут использовать 64-битное хранилище z/OS для буферов базы данных. Архитектура DEDB включает в себя концепцию единицы работы (UOW), что упростило реализацию эффективной утилиты онлайн-реорганизации. Эта функция входит в базовый продукт.
Большие базы данных с высокой доступностью (HALDB)
IMS V7 представила HALDB, расширение полнофункциональных баз данных IMS, обеспечивающее повышенную доступность, улучшенную обработку чрезвычайно больших объемов данных и, начиная с IMS V9, онлайн-реорганизацию для поддержки непрерывной доступности. (До 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.
Применение
IMS TM предоставляет стандартную среду для выполнения транзакций. К концу 2000-х годов несколько китайских банков приобрели IMS для поддержки стремительно развивающейся финансовой индустрии страны. IMS дополняет IBM Db2, реляционную систему управления базами данных IBM, представленную в 1982 году. IMS, как правило, работает быстрее, чем Db2, при выполнении типовых задач, но может потребовать больших усилий по программированию для разработки и поддержки непрофильных функций. Реляционное хранилище данных может использоваться для расширения возможностей базы данных IMS. Например, IMS может использоваться для обработки основных транзакций в банкоматах, поскольку он эффективно справляется с такой узкоспециализированной задачей.