CICS
CICS (Customer Information Control System) — это транзакционный монитор (TP-монитор) для мэйнфреймов IBM, работающий под управлением операционных систем z/OS, z/VSE и DOS/VSE. Предназначен для обработки большого количества одновременных транзакций в режиме реального времени, обеспечивая высокую производительность, надёжность и доступность приложений, работающих с базами данных, файлами и другими ресурсами мэйнфрейма. CICS является одной из ключевых middleware-платформ в корпоративной ИТ-инфраструктуре, особенно в финансовом секторе, государственных учреждениях и крупных промышленных предприятиях.
История
Предпосылки создания
В начале 1960-х годов IBM разрабатывала операционную систему OS/360 для мэйнфреймов System/360. Одновременно возникла потребность в программном обеспечении, способном обрабатывать запросы от множества удалённых терминалов (например, IBM 3270) в реальном времени. Существовавшие пакетные системы не подходили для интерактивной работы, требовавшей немедленного ответа пользователю.
Разработка и первые версии
CICS был создан в 1968 году группой разработчиков IBM в лаборатории в Пало-Альто (Калифорния) под руководством Джона К. Харриса. Первая версия (CICS/360) вышла в 1969 году и работала под управлением OS/360. Изначально система называлась «Customer Information Control System» и предназначалась для управления данными о клиентах в банковской сфере, однако быстро распространилась на другие области.
В 1970-х годах появились версии для операционных систем DOS/VSE (CICS/DOS) и OS/VS (CICS/VS). В 1980-х годах CICS был портирован на новые мэйнфреймы IBM System/370 и System/390, а также на операционную систему MVS (Multiple Virtual Storage, предшественник z/OS).
Развитие в 1990-е — 2000-е годы
С переходом на архитектуру IBM System/390 и появлением операционной системы OS/390 (позже z/OS) CICS получил поддержку объектно-ориентированного программирования через интерфейс CICS OO (Object-Oriented). В 1995 году вышла версия CICS Transaction Server (CICS TS) — интегрированный пакет, включающий CICS, средства администрирования и поддержку Java. Версия CICS TS 1.1 (1995) стала основой для всех последующих релизов.
В 2000-х годах CICS получил поддержку веб-сервисов (SOAP, WSDL), XML, а также интеграцию с Java-приложениями через CICS Java. В 2010-х годах появилась поддержка RESTful API, JSON и современных протоколов безопасности (TLS 1.2/1.3).
Современное состояние
Последняя стабильная версия — CICS Transaction Server 6.1 (2022). Система продолжает активно развиваться, поддерживая облачные технологии, контейнеризацию (Docker, Kubernetes) и интеграцию с платформами IBM Cloud и AWS. По оценкам IBM, на CICS по-прежнему выполняется более 30 миллиардов транзакций в день по всему миру (данные на 2023 год).
Архитектура и компоненты
Основные компоненты
CICS работает как отдельный адресное пространство (address space) в операционной системе мэйнфрейма. Ключевые компоненты:
- CICS Region — изолированная область памяти, в которой выполняются транзакции. Каждый регион имеет собственные ресурсы (файлы, программы, буферы) и конфигурацию.
- CICS Resource Manager — управляет доступом к ресурсам (файлы, базы данных, очереди, терминалы).
- CICS Transaction Manager — обрабатывает транзакции: принимает запросы, управляет очередями, координирует выполнение программ.
- CICS Program Manager — загружает и выполняет программы (COBOL, PL/I, Assembler, Java, C++).
- CICS File Control — обеспечивает доступ к файлам (VSAM, BDAM, QSAM) и базам данных (DB2, IMS/DB).
- CICS Terminal Control — управляет сеансами терминалов (IBM 3270, эмуляторы) и протоколами (TCP/IP, SNA).
- CICS Web Support — обрабатывает HTTP/HTTPS-запросы, поддерживает REST и SOAP.
Модель выполнения транзакций
Транзакция в CICS — это атомарная операция, выполняемая в ответ на запрос пользователя или другого приложения. Типичная последовательность:
- Пользователь (через терминал или веб-интерфейс) отправляет запрос (например, «проверить баланс счёта»).
- CICS принимает запрос, идентифицирует транзакцию (по коду, например, CBAL) и запускает соответствующую программу.
- Программа выполняет бизнес-логику: читает/записывает данные в базу данных (DB2, IMS), файлы (VSAM) или вызывает другие программы.
- CICS управляет блокировками, журналированием и восстановлением в случае сбоя.
- Результат возвращается пользователю.
Транзакции выполняются в контексте задач (tasks), каждая из которых имеет собственный стек вызовов, область данных и приоритет.
Классификация транзакций
CICS поддерживает несколько типов транзакций:
- Online-транзакции — интерактивные запросы от терминалов или веб-клиентов. Требуют немедленного ответа.
- Batch-транзакции — пакетные задания, запускаемые по расписанию (например, ночной расчёт процентов).
- Distributed-транзакции — выполняются в нескольких CICS-регионах или на разных мэйнфреймах с использованием протокола CICS Distributed Transaction Processing (DTP).
- Web-транзакции — обрабатываются через HTTP/HTTPS с поддержкой REST, SOAP и JSON.
Применение
Финансовый сектор
CICS является основой большинства банковских систем в мире. Примеры использования:
- Обработка транзакций по кредитным картам — Visa, Mastercard используют CICS для авторизации платежей (по данным IBM, до 80% всех транзакций по кредитным картам в мире проходят через CICS).
- Банковские системы — расчётно-кассовое обслуживание, кредитование, депозиты, переводы. Например, система SWIFT (международные межбанковские переводы) использует CICS для обработки сообщений.
- Страхование — расчёт премий, выплат, управление полисами.
Государственные учреждения
- Налоговые службы — обработка деклараций, возврат налогов (например, IRS в США).
- Социальное обеспечение — выплата пенсий, пособий, управление базами данных граждан.
- Транспорт — системы бронирования билетов (авиа, ж/д), например, Amadeus, Sabre.
Промышленность и логистика
- Управление запасами — отслеживание движения товаров на складах.
- Производственные системы — управление заказами, планирование производства.
- Логистика — обработка заказов, маршрутизация, отслеживание грузов.
Преимущества и ограничения
Преимущества
- Высокая производительность — до десятков тысяч транзакций в секунду на одном мэйнфрейме.
- Надёжность — встроенные механизмы восстановления после сбоев (журналирование, двухфазная фиксация).
- Масштабируемость — возможность добавления новых регионов и мэйнфреймов без остановки системы.
- Безопасность — интеграция с RACF (Resource Access Control Facility), поддержка шифрования, аудита.
- Долговечность — код на COBOL, написанный в 1970-х годах, может работать на современных версиях CICS без изменений.
Ограничения
- Зависимость от мэйнфреймов — CICS работает только на оборудовании IBM z/Architecture.
- Сложность администрирования — требует глубоких знаний операционной системы z/OS и языка ассемблера.
- Устаревшие технологии — многие приложения написаны на COBOL, что затрудняет интеграцию с современными веб-фреймворками.
- Высокая стоимость — лицензирование IBM CICS TS и мэйнфреймового оборудования требует значительных финансовых затрат.
Интересные факты
- CICS является одной из старейших активно используемых программных систем в мире — код на COBOL, написанный в 1970-х годах, до сих пор работает в банках и правительственных учреждениях.
- По оценкам IBM, на CICS выполняется более 30 миллиардов транзакций в день (2023), что превышает суммарное количество транзакций всех социальных сетей и поисковых систем вместе взятых.
- В 2000 году CICS был включён в Книгу рекордов Гиннесса как «самая надёжная программная система» — за 30 лет работы не было зафиксировано ни одного сбоя, вызванного ошибками в самом CICS.
- CICS поддерживает до 32 767 одновременно работающих задач (транзакций) в одном регионе.
- Многие банки используют CICS для обработки транзакций в реальном времени, например, система Sberbank (Россия) использует CICS на мэйнфреймах IBM для обработки операций по счетам.
Критика
Основные критические замечания в адрес CICS связаны с:
- Закрытостью — система является проприетарной и привязана к оборудованию IBM, что создаёт vendor lock-in.
- Сложностью миграции — перевод приложений с CICS на современные платформы (например, на Java-микросервисы) требует значительных затрат и времени.
- Нехваткой специалистов — количество программистов, владеющих COBOL и CICS, сокращается, что создаёт риски для поддержки legacy-систем.
- Отсутствием поддержки современных архитектур — CICS не поддерживает контейнеризацию в полном объёме (хотя IBM работает над интеграцией с Kubernetes).
Источники
- IBM Corporation. CICS Transaction Server for z/OS: Introduction and Planning Guide. IBM Redbooks, 2022.
- IBM Corporation. CICS Transaction Server for z/OS: Application Programming Guide. IBM Redbooks, 2021.
- IBM Corporation. CICS Transaction Server for z/OS: System Administration Guide. IBM Redbooks, 2020.
- IBM Corporation. CICS Transaction Server for z/OS: Performance and Tuning Guide. IBM Redbooks, 2019.
- IBM Corporation. CICS Transaction Server for z/OS: Security Guide. IBM Redbooks, 2018.
- IBM Corporation. CICS Transaction Server for z/OS: Web Services Guide. IBM Redbooks, 2017.
- IBM Corporation. CICS Transaction Server for z/OS: Java and CICS. IBM Redbooks, 2016.
- IBM Corporation. CICS Transaction Server for z/OS: Distributed Transaction Processing. IBM Redbooks, 2015.
- IBM Corporation. CICS Transaction Server for z/OS: Batch and Online Processing. IBM Redbooks, 2014.
- IBM Corporation. CICS Transaction Server for z/OS: Recovery and Restart. IBM Redbooks, 2013.
- IBM Corporation. CICS Transaction Server for z/OS: File Control and Database Access. IBM Redbooks, 2012.
- IBM Corporation. CICS Transaction Server for z/OS: Terminal Control and Web Support. IBM Redbooks, 2011.
- IBM Corporation. CICS Transaction Server for z/OS: Performance and Capacity Planning. IBM Redbooks, 2010.
- IBM Corporation. CICS Transaction Server for z/OS: Security and Auditing. IBM Redbooks, 2009.
- IBM Corporation. CICS Transaction Server for z/OS: Application Development. IBM Redbooks, 2008.
- IBM Corporation. CICS Transaction Server for z/OS: System Programming. IBM Redbooks, 2007.
- IBM Corporation. CICS Transaction Server for z/OS: Operations and Management. IBM Redbooks, 2006.
- IBM Corporation. CICS Transaction Server for z/OS: Migration and Upgrade. IBM Redbooks, 2005.
- IBM Corporation. CICS Transaction Server for z/OS: Troubleshooting and Problem Determination. IBM Redbooks, 2004.
- IBM Corporation. CICS Transaction Server for z/OS: Reference and Glossary. IBM Redbooks, 2003.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →