А.А.Асонов, А.И.Грюнталь
НИИСИ РАН, gruntal@systud.msk.su
- 2.1. Типовые конфигурации
- 2.2. Собственно описание продуктов
- 2.3. Средства работы в гетерогенной сети, технология TP/XA
- 2.4. Другие средства для работы в неоднородных средах
1. Направления деятельности фирмы Informix
Работы над системой управления базами данных Informix были начаты в 1980 г. Согласно начальному замыслу программный комплекс Informix рассматривался как СУБД, специально ориентированная для работы в среде ОС UNIX. Для организации хранения данных был выбран реляционный подход. С тех пор Informix стал одной из основных СУБД, работающих в среде UNIX.
Сейчас продукты Informix уже установлены практически на всех UNIX-компьютерах. Среди всех ОЕМ фирма выбрала шесть стратегических партнеров. Это: Sequent, HP, SUN, IBM, Siemens Nixdorf, NCR. Портирование продуктов фирмы на производимые стратегическими партнерами платформы производится в первую очередь. Практически это означает, что при появлении на рынке новой платформы или новой версии операционной системы для платформы уже имеется соответствующая версия продуктов Informix.
Среди не UNIX платформ Informix поддерживает NetWare, Windows, Windows NT и DOS.
Фирма Informix объявила и поддерживает программу InSync. Программа объединяет независимых разработчиков программного обеспечения. В рамках этой программы созданы программные интерфейсы для связи с СУБД других производителей, в частности СУБД, функционирующие на не UNIX-платформах.
2. Описание продуктов Informix
Продукты Informix содержат серверы баз данных, средства разработки и отладки, коммуникационные средства. Характерной особенностью Informix является наличие нескольких типов серверов, подробнее о них будет сказано ниже.
Начиная с версии 4.0 фирма Informix поставляет сервер базы данных OnLine, который поддерживает аппарат распределенных транзакций (технология OLTP - on-line transaction processing), что позволяет по-новому подходить к созданию баз данных с очень большим объемом хранимой информации.
Кроме того, в Informix-OnLine включен новый тип данных - битовые поля (BLOB - binary large objects). Битовые поля могут использоваться для мультимедийных приложений (хранение изображений и звука).
2.1. Типовые конфигурации
В основе систем, разработанных на основе СУБД Informix, лежит принцип архитектуры "клиент-сервер". Клиент - это пользовательская прикладная программа, обеспечивающая взаимодействие (интерфейс) базы данных с пользователем. Всю работу, связанную с доступом и модификацией базы данных, выполняет сервер базы данных (БД-сервер).
Сервер базы данных (database engine), он же ядро базы данных - это отдельная программа, выполняемая как отдельный процесс. Сервер передает выбранную из базы информацию по каналу клиенту. Именно сервер работает с данными, заботится об их размещении на диске. Технологию "клиент-сервер" со стороны сервера обеспечивают модули Informix-SE, Informix-Online или Informix OnLine-Dynamic Server.
Informix-SE представляет собой сервер базы данных, предназначенный для обеспечения работы в системах с малым или средним объемом информации.
Хранение данных в этом случае осуществляется в файловой системе операционной системы, что значительно упрощает разработку и эксплуатацию приложений.
Клиенты и серверы могут находиться на одном компьютере, либо на нескольких, связанных между собой сетью. Подобное разделение функций дает высокую производительность и максимальную гибкость. Для обеспечения отношений связи типа "клиент-сервер" между различными компьютерами со стороны сервера применяется модуль Informix-NET.
Informix-OnLine - это сервер второго поколения, обеспечивающий технологию распределенных транзакций (OLTP - on-line transaction processing). Технология распределенных транзакций позволяет выполнять запросы в распределенной базе данных, физически находящихся на различных компьютерах. По сравнению с Informix-SE сервер Informix-OnLine имеет специальный тип данных - битовые поля (BLOB - Binary Large Objects), символьные строки переменной длины, буферизацию транзакций, зеркальный диск, автоматическое восстановление после системных сбоев, большую скорость (в 2-4 раза).
Модуль Informix-Star является средством поддержки работы с распределенными базами данных. Посредством модуля InformixStar осуществляется оперативная обработка транзакций.
Работа сервера Informix заключается в запуске специальной программы (SQLEXEC для Informix-SE и SQLTURBO для Informix-OnLine), которая обеспечивает работу всех SQL-операторов. Для каждого клиента запускается процесс операционной системы, использующий эту программу. В случае, если клиент прервал работу, но не вышел из своей задачи, то его процесс занимает ресурсы системы, снижая ее производительность.
Одним из последних достижений фирмы стал выпуск нового сервера базы данных OnLine Dynamic Server, которой входит в состав системы начиная с версии 6.0. Этот продукт основан на так называемой Динамической Масштабируемой Архитектуре (Dynamically Scalable Architecture - DSA), которая специально ориентирована на работу с многопроцессорными системами. OnLine Dynamic Server обеспечивает повышение производительности за счет гибкости использования ресурсов СУБД, использование многопоточной архитектуры. Фактически OnLine Dynamic Server берет на себя многие связанные с распределением ресурсов функции операционной системы. В результате уменьшается нагрузка на операционную системы, что в конечном счете приводит к росту производительности.
Для обслуживания клиентов запускаются "виртуальные процессоры" - процессы операционной системы, которые устанавливают связь между клиентом и ядром Informix. Связь устанавливается с помощью специальных "нитей" (thread), которые активизируются только если клиент активен и обращается к серверу базы данных. В случае, если клиент неактивен, "нить" может обслуживать других клиентов.
Число виртуальных процессоров определяет администратор базы данных, исходя из реальных ресурсов вычислительной системы и сети клиентов. Если вычислительная система является многопроцессорной, то разные виртуальные процессоры могут обслуживаться разными реальными процессорами.
В версии 6.0 сетевые функции заложены в ядре СУБД. Поэтому для функционирования в сети OnLine Dynamic Server модули Informix-Net или Informix-Star не требуются.
2.2. Собственно описание продуктов
2.2.1. Диалоговая система поддержки и администрирования баз данных Informix-SQL
Informix-SQL содержит 5 компонент:
- интерпретатор языка SQL,
- экранные формы для просмотра и изменения таблиц в базе данных,
- генератор отчетов,
- организацию пользовательских меню,
- диалоговое описание структуры таблиц.
2.2.2. Инструментальная система
разработки пользовательских
приложений Informix-4GL
Informix-4GL - основное инструментальное средство для программирования баз данных и создания пользовательских приложений в среде программного комплекса Informix.
Informix-4GL включает:
- компилятор с языка 4GL,
- генератор и компилятор экранных форм,
- описание и поддержку многомодульных программ.
Программы, написанные на языке 4GL, компилируются в программу на языке ESQL/C, а затем - в программу на языке C. Все компоненты Informix-4GL собраны в единую среду-оболочку поддержки программирования, управляемую с помощью меню.
Язык 4GL содержит:
- SQL-операторы - для работы с данными,
- процедурные программные операторы - IF, CASE, CALL, FUNCTION, FOR, WHILE, GOTO, DEFINE и т.д ,
- операторы экранного обмена для программирования меню, окон, ввода-вывода через экранные формы и экранные массивы ,
- перехват и обработку исключительных ситуаций.
2.2.3. Ускоренная система разработки с интерактивным отладчиком Informix-4GL-RDS+ID
Informix-4GL-RDS+ID (Rapid Development System and Interactive Debugger) по своим функциям аналогична Informix4GL. Отличие от Informix-4G в том, что здесь 4GLпрограмма быстро компилируется в псевдокод (p-code), который затем выполняется специальным интерпретатором (runner). Программы на псевдокоде могут отлаживаться интерактивным отладчиком.
2.2.4. Informix-ESQL/C
Система Informix-ESQL/C (Embedded SQL) представляет собой средство программирования СУБД Informix в среде языка C. Программа, написанная с использованием средств ESQL/C, включает операторы языка C и языка SQL - стандартного языка запросов. Компилятор-препроцессор превращает программный код, написанный с использованием средств ESQL/C, в C-код, который дальше транслируется обычным C-компилятором.
2.2.5. Informix-HyperScript Tools
Система Informix-HyperScript Tools представляет собой диалоговые графические средства, позволяющие создавать прикладные программы, работающие в среде Windows, UNIX и т.д. Язык HyperScript позволяет программировать меню, диаграммы, электронные таблицы, экранные формы, 2-х и 3-х мерные диаграммы. Пользователь, работающий в системе InformixHyperScript Tools, имеет в своем распоряжении также все средства языка SQL, т.е может выполнять запросы к базе данных, ввод информации и ее коррекцию. Пакет также используется для визуализации графической информации, хранимой в Informix-OnLine.
2.2.6. Informix-ViewPoint
Система Informix-ViewPoint предоставляет средства для обеспечения запросов к базе данных, ввода информации и ее коррекции путем создания:
- графических форм,
- графических отчетов,
- графических запросов.
Informix-ViewPoint обеспечивает также визуализацию графических изображений, хранимых в базе данных Informix-OnLine.
2.2.7. Informix-NewEra
Другим достижением Informix является выпуск начиная с версии 7.0 продукта NewEra. Informix-NewEra представляет собой графическую объектно-ориентированную среду разработки приложений. NewEra должна в качестве средства разработки заменить набор 4GL-продуктов Informix"а.
В основе NewEra лежит гибкий язык, который позволяет, так же как и 4GL, готовить законченные приложения.
К сожалению в рамках этой статьи невозможно достаточно подробно изложить возможности Informix-NewEra. Авторы считают, что продукт заслуживает отдельной статьи.
2.3. Средства работы в гетерогенной сети, технология TP/XA
Продукт INFORMIX TP/XA позволяет обеспечить работу в среде оперативной обработки транзакций в смысле опубликованного организацией X/Open стандарта Distributed Transection Processing (DTP). Использование модели DTP обеспечивает следующие преимущества:
- Экономия ресурсов. Пользовательские приложения потребляютресурсы сервера базы данных только тогда, когда непосредственно осуществляется доступ к данным;
- Оперативная обработка распределенных транзакций транзакций в гетерогенной среде, включающей оборудование и программное обеспечение различных производителей.
Согласно модели X/Open приложение состоит из двух частей:
- клиент,
- сервер приложений.
Клиент обеспечивает интерфейс с пользователем, т.е. идентифицирует потребности пользователя и визуализирует данные, полученные в результате выполнения запросов.
Прикладной сервер - это программа, которая выполняет задания пользователя, т.е. конкретные прикладные функции.
Таким образом, клиент идентифицирует задания, а прикладной сервер их выполняет.
Программное обеспечение, называемое менеджером транзакций (Transaction manager - TM), служит для взаимодействия клиентов и серверов приложений. Менеджер транзакций:
- регистрирует поступающие от клиентов запросы на выполнение заданий и выстраивает их в очередь на выполнение;
- рассылает серверам приложений запросы на выполнение задний.
При этом серверы приложений находятся в состоянии ожидания поступления очередного запроса. Маршрутизация запросов на выполнение транзакций осуществляется по алгоритмам, задаваемым системным администратором.
Менеджер транзакций использует двухфазный алгоритм распределенной обработки транзакций
Менеджеры транзакций производятся независимыми производителями. Наиболее известные среди них:
- Unix Sustem Laboratories - Tuxedo System/T,
- NCR - TopEnd,
- Transarc - Encina,
- Siemens - UTM,
- Unisys - Open/OLTP.
Интерфейс, описывающий взаимодействие клиента и сервера приложений, получил название APTM (Application-TransactionManager).
Поставляемый фирмой Informix продукт Informix-TP/ToolKit образует программный интерфейс для обеспечения этого взаимодействия.
Интерфейс взаимодействия сервера базы данных с сервером транзакций называется XA. Любой сервер базы данных, поддерживающий интерфейс XA, может быть включен в распределенную транзакцию.
2.4. Другие средства для работы в неоднородных средах
Поставляемые фирмой Informix продукты INFORMIX-Gateway with DRDA и Q+E ODBC Pack представляют собой программные средства, обеспечивающие интерфейс с программными продуктами других производителей программного обеспечения.
Informix-Gateway with DRDA представляет собой шлюз для связи серверов баз данных, работающих на компьютерах IBM (DB2 и SQL400) с приложениями Informix. Использование Informix-Gateway with DRDA не требует дополнительной установки программных средств на компьютере, где функционирует сервер базы данных.
Широкие возможности связи серверов INFORMIX с ODBC- совместимыми приложениями предоставляет драйвер Q+E ODBC Pack, разработанный фирмой Q+E Software - одним из партнеров Informix по программе Informix InSync Marketing Partners Program. Комбинируя Q+E ODBC Pack с Informix-NET PC, можно получить доступ к полному спектру серверов Informix в операционных системах Unix, Windows NT, NetWare . Совместимость достигается за счет использования протокола ODBC.
Стандарт ODBC (Open database connectivity) введен фирмой Microsoft с учетом опыта SQL Access Group и определяет стандартный способ общения Windows- приложений с серверами.
Литература
- "Distributed Transaction Processing with Informix-TP/XA and Informix-TP/ToolKit"
- "Upgrading to Informix-OnLine Dynamic Server 6.0", Training Manual
- Г.Ладыженский, "Технология "клиент-сервер" и мониторы транзакций", Открытые системы, Лето, 1994
- Г.Ладыженский, "Система обработки распределенных транзакций TUXEDO", Открытые системы, Весна, 1994