Informix Logo

Informix Internet Foundation 2000


для UNIX, Linux и Windows NT

КРАТКОЕ ТЕХНИЧЕСКОЕ РУКОВОДСТВО

Informix® Internet Foundation.2000 ™ сочетает в себе высокую производительность и масштабируемость проверенной технологии реляционных баз данных Informix с расширяемостью и гибкостью объектно —ориентированной технологии. Специально разработанная для Internet, СУБД Informix Internet Foundation.2000 позволяет компаниям быстро и эффективно интегрировать данные разных типов, такие как видео, изображения, HTML, геодезическую информацию и другие сложные данные. Это решение предлагает развитые инструментальные средства для того, чтобы распространить транзакционный механизм на Web, позволяя встраивать в приложения (с помощью технологий Java и СОМ+) составные типы данных, управляемые сервером. Предлагая компаниям свое решение Informix Internet Foundation.2000, корпорация Informix позволяет им работать с информацией любого типа и выполнять с нею практически любые операции, поскольку эта система - самая мощная и интеллектуальная СУБД для Internet

Что такое Informix Internet Foundation 2000

Internet становится одним их определяющих факторов современного бизнеса. При правильном использовании Internet компания может получить значительные конкурентные преимущества, расширить свои рынки, повысить эффективность операций и сохранить ценных заказчиков. В то же время, Internet ставит перед компаниями и организациями непростые задачи управления данными. Составные, динамические типы данных, такие как видео, изображения, звук и другая комплексная информация все чаще используется в Internet, и это становится нормой. Для реализации успешной Internet-стратегии компаниям необходимо выбрать верное решение для управления данными, позволяющее хранить, извлекать информацию и управлять данными разного типа, выполнять с ними сложные операции, такие как поиск по ключевым словам, быстрое и эффективное агрегирование данных нетрадиционных типов. Кроме того, система управления базами данных должна легко расширяться для поддержки Web, то есть обеспечивать публикацию информации в Internet, поддержку транзакций и анализ корпоративных данных, не требуя для этого больших затрат.

На сегодняшний день Informix Internet Foundation.2000 — самое интеллектуальное решение для Internet на рынке. Оно сочетает в себе лучшие средства и технологию лидирующих в отрасли реляционных систем управления базами данных Informix (РСУБД), гибкость и мощность усовершенствованной объектно-реляционной технологии Informix, предоставляя заказчикам первое в своем классе ядро БД для Internet-вычислений следующего поколения. Благодаря этому, ПО Informix Internet Foundation.2000 дает компаниям возможность быстро распространить свою корпоративную среду на Web, получив тот же уровень производительности и надежности, что и в OLTP-приложениях. Основу Informix Internet Foundation.2000 составляет Informix Dynamic Server™ 2000 — мощное многопоточное ядро базы данных компании Informix, разработанное для получения максимальной мас-штабируемости, управляемости и производительности. ПО Informix Dynamic Server 2000 выводит технологию баз данных на следующий уровень. Расширяемость обеспечивает непосредственно ядро СУБД, что позволяет пользователям управлять логикой бизнес-процессов, создавать данные нетрадиционных типов, определять в интеллектуальной системе управления информацией сложные функции БД. Применяя Informix Dynamic Server 2000, пользователи имеют все преимущества, характерные для традиционной реляционной БД (такие как высокая производительность), и при этом получают неограниченные возможности расширения, даваемые объектно-ориентированной технологией.

Разработанное специально для поддержки сложных и разнообразных требований Internet, Informix Internet Foundation.2000 предлагает непревзойденные возможности публикации информации, обслуживания транзакций и анализа данных в бизнес-приложениях. Это решение спроектировано для публикации данных в Internet: оно позволяет заказчикам получать своевременный и релевантный контент, постоянно собирать важную информацию о покупателях. Кроме того, Informix Internet Foundation.2000 — это механизм поддержки транзакций и анализа информации в Internet, обеспечивающий создание надежных, отказоустойчивых Web-приложених в системах "компания-заказчик" и "компания-компания". Благодаря Informix Internet Foundation.2000 компании получают возможность анализировать транзакции в Internet, лучше понимать требования покупателей, тенденции рынка и собирать демографические данные. Это помогает принимать более точные и обоснованные деловые решения, добиваться успеха в современной высококонкурентной среде, ПО Informix Internet Foundation.2000 поддерживает все стандарты программирования Internet, такие как Java и ActiveX. Эти языки программирования хорошо интегрированы с сервером базы данных, что обеспечивает максимальную производительность и масштабируе-мость, превращает Informix Internet Foundation.2000 в идеальную платформу для разработки и развертывания масштабируемых приложений Internet. Возможности расширения встроены непосредственно в ядро сервера, поэтому Informix предоставляет компаниям неограниченные возможности роста и адаптации СУБД к их постоянно меняющимся требованиям.

Благодаря Informix Internet Foundation.2000, компании получили теперь лучшую платформу, позволяющую им быстро и легко перевести свой бизнес в Internet.

Преимущества Informix Internet Foundation 2000

Основные преимущества Informix Internet Foundation.2000 включают в себя:

• Поддержку любых видов данных, которые только можно себе представить, в том числе таких сложных типов данных как геодезические данные, временные ряды, трехмерные данные и типы данных, определяемые пользователем. Это позволяет заказчикам создавать собственные структуры данных в соответствии с требованиями своего бизнеса.

• Модули DataBlade® дают возможность легко управлять пользовательскими типами данных, делая это с такой же гибкостью и надежностью, которые характерны для работы со встроенными типами данных.

• Стандартные средства разработки приложений на стороне сервера — Java и СОМ+ — тесно интегрированные с сервером базы данных.

• Единая архитектура СУБД на всех платформах (UNIX, Linux и Windows NT). Это обеспечивает максимальную производительность, непротиворечивость, согласованность транзакций и целостность данных.

• Полная РСУБД-функциональность для всех аппаратных архитектур (однопроцессорных, SMP и кластерных систем). Это упрощает миграцию данных и приложений, позволяет использовать накопленные навыки и знания.

• Максимальная производительность и масштабируемость благодаря превосходной многопоточной архитектуре параллельной обработки.

• Высокая отказоустойчивость базы данных для поддержки широкого спектра ответственных приложений на платформах открытых систем.

• Динамическая распределенная система онлайнового администрирования для мониторинга задач и распределения рабочей нагрузки.

• Informix Smart Data Foundation объединяет все системы в единую инфраструктуру, что позволяет обращаться к данным, анализировать их и манипулировать данными в масштабе предприятия независимо от их местонахождения, применяемой операционной системы или аппаратного обеспечения.

Поддержка любого вообразимого типа данных

ПО Informix Internet Foundation. 2000 позволяет организациям поддерживать полный спектр новых и только появляющихся типов данных (включая изображения, звук, HTML-страницы, двух- и трехмерные пространственные данные, текстовые документы и т.д.), а также самые неожиданные типы данных, соответствующие уникальным требованиям конкретного бизнеса (такие как отчеты за какой-то период, сведения о доходе, стоимость на единицу продукции и др.). Более того, подобные данные хранятся в БД как ее собственные типы данных. В результате пользователи получают гибкие возможности публикации богатого информационного наполнения (контента) в Web. К тому же, благодаря поддержке сложных типов данных как собственных типов, Informix Internet Foundation.2000 снижает стоимость развертывания и поддержки БД.

Расширение функциональных возможностей с помощью технологии модулей DataBlade

Модули DataBlade — это эксклюзивная технология компании Informix. Она позволяет разработчикам дополнять ПО Informix Internet Foundation.2000 новыми интеллектуальными возможностями. Модули DataBlade можно рассматривать как совокупность объектно-ориентированных "пакетов", инкапсулирующих специализированные типы данных, операций для обработки этих данных и методы доступа к ним. Кроме того, они позволяют индексировать такие данные. Эти модули можно "подключать" к ядру базы данных для выполнения с данными любых операций.

Модули DataBlade удобно использовать для инкапсуляции существующего программного кода (для более эффективного его выполнения), а также более "гибкого" выполнения кода приложения (на сервере БД, на сервере приложений или на клиентской системе). Хотя запросы с использованием нескольких типов данных лучше всего выполняются на сервере БД, пользователи могут реализовать и разместить логику обработки там, где это кажется им оптимальным.

Поддержка всех стандартов разработки Internet-приложений

Informix Internet Foundation.2000 поддерживает все стандарты разработки Internet- приложений для ОС Microsoft или UNIX®, снижает совокупную стоимость владения за счет использования существующих стандартов и инструментальных средств разработки, системной инфраструктуры и имеющейся у заказчика квалификации. Предлагая готовое к применению в Internet ядро базы данных, Informix Internet Foundation.2000 стать основой разработки и развертывания новых, масштабируемых бизнес-приложений для Internet, включая системы электронной коммерции и управление мультимедийными ресурсами.

Единая серверная архитектура

Сервер Informix Internet Foundation.2000 для UNIX, Linux и Windows NT имеет единую архитектуру. Таким образом, заказчикам предоставляется полная свобода выбора той операционной среды, которая лучше всего соответствует их информационным потребностям. Чтобы удовлетворить требованиям будущего роста, Informix предлагает равноценные средства для всех поддерживаемых операционных систем. Это упрощает миграцию баз данных и приложени. Кроме того, все компоненты Informix Internet Foundation.2000 хорошо интегрированы с операционной средой, что превращает сервисы приложения в простое и естественное расширение сервисов операционной системы и локальной сети. Например, в Windows NT Informix Internet Foundation.2000 полностью использует собственные потоки Windows NT, асинхронные драйверы дисков и сетевых плат. Кроме того, оно интегрировано с реестром Windows NT Registry, журналом событий (Event Log) и различными службами Windows NT.

Linux Informix Internet Foundation.2000 под держивает такие средства, как интеграция сервером Apache, HOWTO, RPM, ESQL/C ODBC и т.д. Реализуя единую серверную архитектуру, Informix Internet Foundation.2000 допускает расширение для интеграции с данными любого типа и различными функциями. Такая централизованная реализация сервера обеспечивает непротиворечивость транзакций, упрощаеп администрирование данных и задачи управления. Кроме того, поскольку использ^ ется только один сервер, оптимизатор эффективно определяет наилучшие маршрут] выполнения для запросов с несколькими типами данных. В результате повышается производительность обработки запроса.

В конкурирующих СУБД для соединения нескольких серверов, управляющих данш ми разного типа, применяется специальное ПО промежуточного слоя. В таких ре шениях снижается производительность, ухудшается целостность данных, согласованность транзакций, а возникающие в ci ти проблемы могут привести к проблема» с данными.

Эффективная миграция

Informix Internet Foundation.2000 позволж заказчикам переносить свои данные из одной вычислительной среды в другую, включая различные аппаратные платформы (однопроцессорные системы, SMP и кластеры) и операционные системы (UNIX, Linux и Windows NT). В результа данные, приложения и навыки, полученные при работе с одной средой БД Informix, можно легко использовать на другой программной/аппаратной платформе. Для этого не потребуется утомительного процесса "миграции". Решение Informix уникально в том плане, что поддерживает "прозрачность" приложений, которая достигается за счет вывода распараллеливания операций на уровень сервера БД. Сервер автоматически определяет, как распределены данные, анализирует, какие вычислительные ресурсы доступны для выполнения запроса. Затем он определяет (также автоматически), допускает ли SQL-опера-тор распараллеливание. Если да, то выясняется допустимая степень распараллеливания. Приложения не нужно настраивать для конкретной платформы, где они будут выполняться. Таким образом, заказчики, "переросшие" свою нынешнюю аппаратную среду, могут легко перейти к более мощным системам. Заново писать программы для этого не потребуется.

Максимальная производительность и масштабируемость

В качестве ядра Informix Internet Foundation. 2000 используется Informix Dynamic Server 2000 — новейшее ядро СУБД Informix. В Informix Dynamic Server 2000 применяется параллельная архитектура баз данных. Этот продукт изначально проектировался для параллельного выполнения операций на уровне ядра, что дает возможность распараллеливать (для одновременного выполнения) все основные операции базы данных, такие как ввод-вывод, сложные запросы, построение индексов, восстановление журнала, резервное копирование и восстановление из архива. В этих операциях используются все доступные вычислительные ресурсы. Такая параллельная архитектура обеспечивает уникальную интеллектуальную оптимизацию производительности, полностью использует вычислительные мощности любых аппаратных средств.

Высокая отказоустойчивость

В ответ на растущие потребности в повышенной отказоустойчивости и надежности работы систем, решение Informix предлагает множество средств, обеспечивающих бесперебойное функционирование БД. Эти средства включают в себя:

• утилиты администрирования для динамической настройки, реорганизации

таблиц, резервного копирования данных и их восстановления из архива;

• репликацию данных в масштабе предприятия, способствующую защите информации от возможных отказов;

• поддержку кластеров и защиты от сбоя данных, "зеркалирование" программного обеспечения;

• усовершенствования, упрощающие и ускоряющие диагностику технических проблем.

Совместно эти средства сводят к минимуму незапланированные и запланированные простои. Администраторы могут выполнять операции по обслуживанию БД, не останавливая работы с нею пользователей, а защита от сбоев позволяет получить среду БД с высокой степенью доступности, отвечающую требованиям всех типов ответственных приложений и жизненно важных для бизнеса задач обработки данных.

Инструментальные средства динамического онлайнового администрирования

Компания Informix предлагает комплект инструментальных средств администрирования/управления калибра мэйнфрейма, оптимизированных для достижения высокой производительности, отказоустойчивости и простоты использования. Чтобы обеспечить максимально быстрое выполнение текущих, регулярных задач администрирования, во многих утилитах применяется распараллеливание операций. Кроме того, Informix предлагает полный комплект онлайновых утилит для максимальной доступности БД. ПО Informix Enterprise Command Center предоставляет администраторам гибкие возможности управления несколькими удаленными базами данных с помощью единой централизованной консоли. В результате значительно уменьшается объем работы по управлению БД и ее администрированию в распределенной среде.

Интеллектуальная основа для хранения данных (Smart Data Foundation)

Понимая, что одна технология, какой бы эффективной и элегантной она ни была, не может отвечать всем сложным требованиям организации хранилищ данных, OLTP-систем, электронной коммерции и других задач сложной обработки данных, Informix предлагает широкий спектр механизмов работы с данными. Они ориентированы на разные среды обработки данных — от встроенных систем и систем OLTP в Internet до самых сложных хранилищ данных.

Только Informix предлагает ядро базы данных, спроектированное специально для этих архитектур. Для перемещения данных в этих разнообразных средах Informix предлагает решение Smart Data Foundation. В нем применяются развитые технологии, позволяющие эффективно интегрировать разные системы и обеспечивать их взаимодействие. В результате данные, хранящиеся на нескольких серверах, будут выглядеть как одна БД. По существу. Smart Data Foundation реализует принцип "данные без границ". Это решение дает возможность получить ответы на вопросы, несмотря на барьеры, возникающие из-за образования отдельных "островков" приложений и данных. За счет интеллектуальной комбинации данных из различных источников и различного типа (метаданных, рабочей информации и/или данных Internet) оно обеспечивает мгновенное получение требуемых знаний, несмотря на различия в представлении и смысле данных. Кроме того, Smart Data Foundation позволяет разработчикам размещать логику приложений там, где это необходимо. Таким образом, заказчики получают полностью интегрированное решение для построения и развертывания корпоративных бизнес-приложений следующего поколения.

КОМПОНЕНТЫ INFORMIX INTERNET FOUNDATION.2000

Informix Internet Foundation.2000 состоит из ядра базы данных Informix Dynamic Server 2000 и набора инструментальных средств для разработки и развертывания Internet-приложений.

Informix Dynamic Server 2000

Informix Dynamic Server 2000 спроектирован для достижения не имеющей аналогов гибкости и расширяемости. Это достигается с помощью объектно-ориентированной технологии Informix Dynamic Server 2000, которая благодаря возможно ста определения новых типов данных обеспечивает поддержку всего разнообрг зия новых типов контента. Такие данны определяются как объекты, а для операций с ними применяются определяемые пользователем функции. Усовершенство ванная расширяемая технология DataBlade компании Informix позволяет инкапсулировать новые типы данных и функции в подключаемый модуль (plug-in), который возможно использовать не однократно. В результате можно управлять данными любого типа и функциям с помощью полностью оптимизированн го реляционного доступа.

Архитектура ядра Informix Dynamic Server 2000 изначально разрабатывалась для mh( гопоточного и параллельного выполнена — в ядро встроены соответствующие средства. Многопоточность (multithreading) д( стигается за счет управления пользовател скими задачами в форме "облегченных" процессов, называемых потоками. Поток планируются и обрабатываются через пу. процессов СУБД называемых виртуалып ми процессорами. Параллельная обработ осуществляется за счет разбиения крупю пользовательских задач на подзадачи, чт позволяет распределять обработку по все доступным вычислительным ресурсам. Совместно многопоточность и параллел] ная обработка обеспечивают наиболее э< фективное использование всех системнь ресурсов. В результате для всех типов oЈ ботки данных в БД достигается требуем. масштабируемостъ и производительность

Объектно-реляционная расширяемость

Informix Dynamic Server 2000 предусмат вает полный набор средств для расшир ния сервера баз данных. Они включакп себя поддержку новых типов данных, п программы БД, методы доступа, подле] ку модулей DataBlade, интерфейсы при кладного программирования (API) cepi ных и клиентских приложений.

Типы данных

Informix Dynamic Server 2000 поддержи три категории типов данных: встроенш типы данных, типы данных, определяе] пользователем и составные типы даннь

Встроенные типы данных представляют собой стандартные типы данных реляционных СУБД (алфавитно-цифровые, целочисленные и т.д.). Определяемые пользователем и составные типы данных позволяют хранить данные более "интеллектуально"

• в соответствии с реальными требованиями бизнеса компании. Эти новые типы данных были определены для поддержки различных областей применения. Они интерпретируются как стандартные типы данных, управляемые сервером, что позволяет получить максимально высокий уровень производительности и масштабируемое™. Значения определяемых пользователем и сложных типов данных можно хранить в БД, анализировать в запросах или вызовах функций, передавать в качестве аргументов функциям БД и индексировать точно так же, как базовые встроенные типы.

Встроенные типы данных

Встроенные типы данных — это типы, поддерживаемые традиционными серверами реляционных БД. Вот несколько примеров таких типов данных:

• символьные типы данных, такие как CHAR, VARCHAR и LVARCHAR;

• числовые типы данных, такие как DECIMAL, MONEY, SMALLINT, INTEGER и FLOAT;

• большие объекты, включая простые большие объекты, такие как TEXT или BYTE, и сложные большие объекты, такие как CLOB или BLOB (так в оригинале, возможно ошибка — прим. перев.);

• данные типа времени, такие как DATE, DATETIME и INTERVAL;

• прочие типы данных, такие как BOOLEAN.

Типы данных, определяемые пользователем

Такие типы данных позволяют заказчикам определять собственные структуры данных в соответствии с требованиями своего бизнеса. Эти типы данных интерпретируются как стандартные, поэтому их можно индексировать, оптимизировать и выполнять с ними стандартные вычисления точно так же, как с данными любого другого типа. Типы данных могут определяться пользователем как OPAQUE или DISTINCT:

• Тип OPAQUE позволяет хранить и обрабатывать любые типы данных из С или C++ как данные в собственном формате сервера. Это позволяет легко инкапсулировать в модуле DataBlade данные приложений, уже реализованные как структуры на языке С. Типы OPAQUE предоставляют разработчикам полный контроль над хранением и обработкой данных, а с помощью специализированного доступа они позволяют реализовать высокоэффективные вычисления. Как и для других типов данных, для типов OPAQUE характерна проверенная управляемость и целостность архитектуры БД Informix. Кроме того, данные типа OPAQUE могут полностью и автоматически восстанавливаться и управляться теми же средствами БД, что и встроенные типы.

• Типы DISTINCT позволяют быстро создавать новые типы данных, структурно эквивалентные существующим типам (включая другие определяемые пользователем типы данных). Кроме того, они дают возможность задавать специализированные виды и параметры обработки. PROFIT может быть DISTINCT типом, созданным с тем же представлением, что и REAL. Все подпрограммы, работающие со значениями типа REAL, будут иметь имитируемые сервером эквиваленты для значений PROFIT. В то же время, значения PROFIT и REAL нельзя вычитать или сравнивать одно с другим без предварительного преобразования типов. Кроме того, поскольку PROFIT является типом DISTINCT, его невозможно спутать ни с каким другим типов, даже числовым (таким как температура).

Составные типы данных

Составные типы данных состоят из других, уже существующих типов. Например, они могут состоять из встроенным типов, типов OPAQUE, DISTINCT или других сложных типов. Ключевое отличие таких типов данных заключается в том, что к отдельным компонентам сложных данных можно обращаться (и выполнять с ними операции) через операторы SQL. Поддерживаются два сложных типа данных:

ROW и COLLECTION.

Тип ROW (строка) можно рассматривать как строку столбцов, содержащих данные разных типов и хранимых в одном столбце (или строке) таблицы БД. По существу, к типам ROW применяются те же правила, что и к таблицам баз данных. Отдельные столбцы в типе ROW называются полями. Они могут содержать данные практически любого типа, включая другие составные типы, а обращаться к ним можно индивидуально.

Например, информация об адресе сотрудника может состоять из нескольких столбцов, таких как Street (улица), City (город), State (штат) и ZIP Code (почтовый индекс). Для более быстрого доступа эти столбцы комбинируются в один столбец. Данные подобного типа, состоящие из встроенных или определяемых пользователем типов данных, позволяют значительно упростить архитектуру БД, сократить время разработки приложения и обеспечить его более эффективное выполнение.

Вместо использования отдельных столбцов в таблице EMPLOYEE (сотрудники), тип ROW группирует данные, к которым программы и пользователи чаще всего обращаются как к одному столбцу. Таблица EMPLOYEE состоит из столбцов Name(VARCHAR(30)), Address(address_t) и Contact_info(SET(LVARCHAR)), содержащих, соответственно, фамилию, адрес и информацию для контакта. Тип ROW address_t состоит из именованных полей Street(VARCHAR(20)), City(VAR-CHAR(20)), State(CHAR(2)) и Zip_code(CHAR(5)).

Типы COLLECTION (набор) напоминают вложенную в столбец таблицу. Этот тип данных позволяет избежать дорогостоящего (в плане производительности) дублирования ключей и частых операций соединения Coin), характерных для обычного метода нормализации. Он решает свойственную реляционным БД проблема присваивания столбцу нескольких значений (при работе с одной записью), что повышает эффективность архитектуры БД, уменьшает требуемый объем программирования и упрощает управление программным кодом.

Тип COLLECTION может содержать элементы данных любого типа: встроенного, OPAQUE, DISTINCT или ROW. Обращаться к нему (и обновлять данные) разрешается практически также как к табли цам. Для этого применяются незначительные расширения существующего язы ка SQL.

Вместо включения информации о контакте в отдельную таблицу она вся содер жится в одной строке — для этого используется тип COLLECTION. Допускается удаление или добавление элементе! в типе COLLECTION без изменения столбцов таблицы.

Поддержка больших объектов

Informix Dynamic Server 2000 подцерживае как простые двоичные объекты, называемые также большими двоичными объекта ми или BLOB (binary large object), так и сложные большие объекты данных (smart large data object), получившие название больших символьных объектов или CLOB (character large object). Объекты BLOB могут содержать данные типа BYTE и TEXT позволяют хранить в одном поле записи БД до двух гигабайт двоичных данных. Данные BLOB интерпретируются аналога но любым другим данным БД, и к ним можно обращаться через SQL.

Informix Dynamic Server 2000 позволяет также использовать сложные большие объекты или CLOB. Эти объекты применяются для поддержки таких определяемых пользователем типов данных как видео- и аудоиклипы, изображения, большие текстовые документы или геодезические данные, например, чертежи и географические карты. По существу, составные двоичные объекты позволяют выполнять поиск, чтение и запись внутри объекта: клиент или сервер могут частично считывать или записывать объект. Кроме того, сложные большие объекты допускают восстановление и подчиняются всем правилам режимов изоляции транзакций.

Наследование

Наследование — это процесс, благодаря которому тип данных или таблица приобретают свойства другого типа или таблицы, что упрощает проектирование данных и определение новых объектов на основе уже существующих. Наследование способствует "инкрементной модификации": тип данных или таблица наследуют общий набор свойств, после чего к ним добавляются специфические свойства. Например, разработчик приложения может создать медицинскую информационную систему, в которой пациент ортопедического отделения определен как подкласс пациента. Благодаря наследованию, класс пациентов ортопедического отделения получает значительную часть уже готовой структуры данных и функции от общего класса пациентов. Остается добавить лишь уникальные данные, например, рентгеновские снимки и другую информацию, специфическую для ортопедии. Это позволяет избежать проектирования и программирования таблиц данных "с нуля".

Система на базе типов

В понятие системы типов входят особенности сравнения отличающихся друг от друга типов данных. Informix Dynamic Server 2000 — это система со строгим контролем типов, то есть данные разных типов нельзя непосредственно сравнивать, не приводя их предварительно к совместимой форме. Например, цену в долларах США невозможно непосредственно сравнить с ценой в японских йенах. Для этого сначала нужно выполнить функцию, определяющую обменный курс и преобразующие эти значения к одной валюте. Данное средство предотвращает появление ошибок, часто возникающих в системах со слабым контролем типов, где допускаются простые числовые сравнения цен, выраженных в разных валютах.

Подпрограммы, определяемые пользователям

Такие подпрограммы расширяют имеющиеся в БД функции обработки и агрегирования данных, позволяют интегрировать с сервером новые средства, специфические для конкретной области применения. Они могут использоваться для программирования бизнес-логики или общей логики приложения и выполнения этой логики на сервере, где имеются мощные вычислительные ресурсы. Благодаря такой централизации логики уменьшается время создания программ разработчиками, повышается скорость выполнения приложений. После определения пользовательская подпрограмма регистрируется в таблицах системного каталога и может вызываться в операторе SQL или в другой подпрограмме. Такие подпрограммы определяются как процедуры или функции и выполняют широкий спектр задач, например, комбинируют несколько операторов SQL или поддерживают новые типы данных.

Определяемые пользователем подпрограммы могут также выполнять задачи, характерные для новых технологий, например, поиск графических данных или получение данных от конечных пользователей Internet.

Как и в случае новых типов данных, новые подпрограммы можно определять несколькими способами. Допускается создание определяемых пользователем подпрограмм с помощью языка хранимых процедур Informix SPL (stored procedure language) или языков третьего поколения — С, C++ и Java. Подпрограммы SPL содержат уже проанализированные, оптимизированные и сохраненные в таблицах системного каталога операторы SQL. Поскольку они хранятся в выполняемом формате, их хорошо применять в задачах с интенсивным использованием SQL. Подпрограммы, написанные на языках третьего поколения, компилируются и загружаются в совместно используемый двоичный файл — динамически компонуемую библиотеку DLL (dynamic link library). Такая подпрограмма и имя совместно используемого объекта объявляются серверу, и при вызове осуществляется привязка объекта к серверу. С, C++ и Java — это мощные, полнофункциональные языки разработки и написанные на этих языках подпрограммы могут выполнять гораздо более сложные вычисления, чем функции SPL.

Определяемые пользователем агрегирующие функции

Определяемые пользователем подпрограммы можно применять для расширения возможностей агрегирующих функций сервера БД. Informix Dynamic Server предусматривает два способа расширения таких функций: I) расширение встроенных агрегирующих функций и 2) создание новых агрегирующих функций. Расширением встроенных агрегирующих функций называется расширение уже определенных в системе функций, таких как AVG, SUM, MIN, МАХ и COUNT, для работы с типами данных, определенными пользователем. Это позволяет повторно использовать существующие клиентские приложения и не требует для агрегирующих функций нового синтаксиса SQL.

Кроме того, Informix Dynamic Server 2000 поддерживает создание новых агрегирующих функций, не предусмотренных самим сервером. В частности, определенные в системе агрегирующие функции не предусматривают таких возможностей как вычисление средней зарплаты сотрудников, поиск второй по величине максимальной зарплаты и подсчет стандартного отклонения по зарплатам. Для выполнения подобных вычислений нужно считать в пользовательской программе набор значений и вручную выполнить вычисление. Это может создать серьезные проблемы производительности, так как через соединение клиент/сервер потребуется передавать большой набор данных. Позволяя пользователям определять новые агрегирующие операции на самом сервере БД, можно легко выполнять сложные вычисления одной командой. Более того, как и системные агрегирующие функции, функции, определяемые пользователем для повышения производительности, будут использовать поддержку многопоточности.

Оптимизация "дорогостоящих" функций

Некоторые определяемые пользователем подпрограммы, такие как функции обработки изображений, могут быть очень "дорогостоящими" в плане вычислений и отрицательно влиять на производительность выполнения использующих их запросов. Для повышения производительности оптимизатор Informix Dynamic Server 2000 на основе информации о "стоимости" использования и выборки информации оценивает число возвращаемых запросом строк и подсчитывает общую стоимость его выполнения. Затем с помощью этих данных определяется оптимальный план выполнения запроса. Кроме того, оптимизатор обеспечивает выполнение дорогостоящих определенных пользователем подпрограмм в последнюю очередь.

Распараллеливание определяемых пользователем подпрограмм

Для повышения производительности определенные пользователем подпрограммы, обрабатываемые в контексте параллельного запроса к данным, можно выполнять на разных процессорах. Для распараллеливания определяемых пользователем подпрограмм применяются два класса виртуальных процессоров: виртуальные процессоры, определяемые пользователем (для подпрограмм, написанных на языке С) и виртуальные процессоры Java (для подпрограмм на языке Java).

Методы доступа

Метод доступа — это программы, обращающиеся к дисковой памяти, считывающие данные в оперативную память и записывающие их обратно на диск. Informix Dynamic Server 2000 поддерживает два разных метода доступа — основной и вспомогательный. Кроме того, для доступа к данным, хранящимся на других серверах (отличных от Informix), разработчики могут создавать собственные методы.

Основной метод доступа

Основной метод доступа предлагает для прямого доступа (чтения и записи) интерфейс реляционной таблицы. Основной метод доступа к данным позволяет считывать данные непосредственно из источника или записывать их туда. Он предусматривает средства комбинирования данных из разных источников в общий реляционный формат. Этот формат могут применять пользователи, приложения и сам сервер БД.

Вспомогательный метод доступа

Вспомогательный метод доступа предлагает средства индексирования данных для альтернативного или ускоренного доступа. Индекс состоит из элементов, содержащих одно или более значений ключей и указатель на строку таблицы с соответствующим значением (или значениями). Вспомогательный метод доступа обеспечивает изменение индекса в соответствии с операциями вставки, удаления и обновления основных данных.

Informix Dynamic Server 2000 предусматривает два вспомогательных метода доступа: индекс В-дерева и индекс R-дерева. Индекс В-дерева организует индексную информацию в порядке "меньше-больше" и использует иерархию страниц. Он хорошо подходит для ускорения выполнения линейно-упорядоченных запросов к одномерным данным. Между тем, многие новые типы данных являются по своей природе мультимедийными и используют преимущества нелинейного упорядочения. Например, геодезические данные могут быть двух- или трехмерными. Для работы с такими типами данных в Informix Dynamic Server 2000 введен индекс R-дерева, который дает возможность индексировать точки или массивы точек по двум или более измерениям.

Метод доступа, определяемый пользователем

Informix Dynamic Server 2000 позволяет также определять новые методы доступа. Определяемые пользователем методы доступа обеспечивают доступ к данным в таблице (внешней или находящейся в сложном большом объекте) с помощью SQL. Возможность создавать новые методы доступа позволяет Informix Dynamic Server 2000 унифицировать все неоднородные данные, распределенные в среде организации (подробности см. в разделе "Интерфейс прикладного программирования (API) серверных приложений").

Поддержка модулей DataBlade

Модуль DataBlade представляет собой совокупность объектов базы данных и программного кода, расширяющего Informix Dynamic Server 2000 благодаря возможности добавления разработчиками новых функций, соответствующих требованиям конкретных приложений. Эти модули можно рассматривать как объектно-ориентированный "пакет", инкапсулирующий специализированные типы данных, методы доступа к ним и их индексирования. В результате модуль DataBlade обеспечивает такой же уровень поддержки сервером новых типов данных, как и встроенных типов. Благодаря технологии DataBlade, сервер БД становится более интеллектуальным и позволяет пользователям управлять информацией любого вида. Кроме специализированных типов, поддерживающих эти типы данных подпрограмм и методов доступа, позволяющих конкретным индексам работать с такими типами, модуль DataBlade включает в себя также интерфейс SQL, позволяющий модулям DataBlade взаимодействовать друг с другом.

Компоненты модуля DataBlade показаны на Рис. 6. SQL-интерфейс — это совокупность функций, соответствующих стандарту и экспортирующих заданный сервис, что дает модулям DataBlade возможность совместно использовать предлагаемые сервисы и сервисы, на которых они основаны. Например, модуль DataBlade, выполняющий сопоставление изображений, может предусматривать возможность дополнения изображений текстовыми названиями. Если в базе данных зарегистрирован интерфейс поиска по ключевым словам, то такой модуль DataBlade будет поддерживать подпрограммы поиска по ключевым словам, и пользователи смогут находить интересующие их изображения по названию. Компания Informix стандартизировала несколько модулей DataBlade, например, модули для сопоставления текста и изображений. Они имеют согласованные интерфейсы, и заказчики могут выбирать модуль DataBlade, наиболее соответствующий их потребностям. Модули DataBlade можно комбинировать, как компоновочные элементы.

Стандартные модули DataBlade

Приобретая Informix Dynamic Server 2000, пользователи могут выбирать разнообразные модули DataBlade. Существует обширная библиотека таких модулей, созданных как самой компанией Informix, так и независимыми разработчиками. Эти профессионально написанные и сертифицированные расширения позволяют пользователям эффективно хранить, искать, обновлять и манипулировать новыми видами данных. Каждый модуль DataBlade легко "подключается" к серверу базы данных. Подобно перочинному ножу с разными лезвиями, для выполнения различных операций его можно использовать индивидуально или в сочетании с другими модулями DataBlade.

Комплект разработки модулей DataBlade (DataBlade Development Kit)

Если нужный модуль DataBlade, соответствующий требованиям заказчика, у него отсутствует, то с помощью комплекта DataBlade Development Kit он может создавать собственные модули DataBlade. Такая гибкость позволяет привести сервер БД в соответствие с новыми или изменившимися требованиями бизнеса, а разработчики могут на новом уровне использовать свои инвестиции в технологию баз данных. При этом обеспечивает гибкость, необходимая для реакции на любую ситуацию и сохранение высокой конкурентоспособности.

Интерфейс прикладного программирования (API) серверных приложений

Для разработки определяемых пользователем методов доступа Informix Dynamic Server 2000 предлагает три серверных API-интерфейса. Они включают в себя интерфейс виртуальной таблицы, интерфейс виртуального индекса и API-интерфейс DataBlade.

Интерфейс виртуальной таблицы и интерфейс виртуального индекса

Пользователи могут применять для создания собственных методов доступа интерфейс виртуальной таблицы Informix (VTI, virtual table interface) и интерфейс виртуального индекса (VII, virtual index interface).

VTI — это открытый интерфейс для реализации основного метода доступа ко внешним или специализированным источникам данных. VII представляет собой открытый интерфейс для реализации в таком источнике вспомогательного метода доступа данных. Для повышения производительности компания Informix применяет в пользовательских методах доступа интегрированное распараллеливание запросов. Для анализа возможности распараллеливания данное средство позволяет сканировать таблицы, определенные с помощью VTI-интерфейса, и индексы, определенные посредством VII-интерфейса. В результате параллельного выполнения увеличивается производительность и уменьшается время отклика.

API-интерфейс DataBlade

API-интерфейс DataBlade включает в себя функции и структуры данных, позволяющие дополнять приложение функциями сервера базы данных. Он предусматривает функции, с помощью которых разработчики могут управлять взаимодействием баз данных, выполнять операторы SQL, обрабатывать результаты запросов, контролировать события сервера и ошибки, а также управлять памятью сервера БД.

Клиентские API-интерфейсы

Informix Dynamic Server 2000 предлагает набор клиентских API-интерфейсов, позволяющих программистам встраивать операторы SQL непосредственно в языки программирования. Эти API-интерфейсы включают в себя:

• Интерфейс C++, с помощью которого программисты могут разрабатывать клиентские приложения, применяя объектно-ориентированный язык C++ и инкапсулируя средства сервера БД Informix в простую в использовании иерархию и расширяемую библиотеку объектов.

• API-интерфейс Java, поддерживающий создание объектов, которые инкапсулируют специализированные типы данных. Применяя этот интерфейс, разработчики могут писать приложения на языке Java, использовать в них запросы и получать результаты из баз данных Informix Dynamic Server 2000.

• Интерфейс GLS, позволяющий программистам писать программы (или изменять существующий программный код) для обработки разных языков, принятых в разных странах соглашений и наборов кодов. • INFORMEX-ESQL/C для встраивания операторов SQL в программу на языке С.

• INFORMIX-ODBC для создания программистами собственных приложений, обращающихся к внешним источникам данных через ODBC.

• Informix OLE DB Provider, позволяющий разрабатывать приложения, в которых для доступа к Informix Dynamic Server 2000 применяются OLE DB и объекты ADO (ActiveX Data Object).

Многопоточность

Для планирования запросов пользователей и управления ими служит конфигурируемый пул процессов сервера БД, называемых "виртуальными процессорами". Пользовательские запросы представляются с помощью облегченных процессов — "потоков". Поток (thread) — это один последовательный поток управления, представляющий дискретную задачу. В отличие от других СУБД, управляющих запросами пользователей на уровне процессов операционной системы, применяемые в СУБД Informix виртуальные процессоры управляют активными потоками на уровне базы данных, используя возможности многопоточной обработки.

Для эффективной координации выполнения между несколькими параллельными потоками виртуальные процессоры имеют встроенные "интеллектуальные" средства. Потоки порождаются, ставятся в очередь, а затем обслуживаются первым доступным виртуальным процессором. Тем самым обеспечивается эффективное использование аппаратных средств и отсутствие "узких мест". "Планировщик потоков" может использовать детальную информацию об объектах и алгоритмах БД, поэтому он более "интеллектуально" выполняет свои функции, чем планировщик операционной системы общего назначения.

Когда поток ожидает доступности ресурса, виртуальный процессор может заняться другим потоком. Благодаря такой гибкости, для поддержки большого числа пользователей требуется незначительное число процессов операционной системы — ведь каждый виртуальный процессор обслуживает запросы нескольких пользователей. Хотя для выполнения пользовательских запросов может порождаться много виртуальных процессоров, для пользователя все это выглядит как один сервер базы данных.

Благодаря значительному уменьшению требуемого числа процессов сервера БД, переключение контекста в операционной системе происходит реже. Это позволяет Informix Dynamic Server 2000 обходить многие ограничения производительности и "узкие места", свойственные операционной системе.

Кроме того, Informix Dynamic Server 2000 позволяет без снижения общей производительности системы использовать преимущества средств специального планирования (таких как привязка задачи к процессору), предлагаемых производителями аппаратного обеспечения.

Параллельная обработка

Для максимально эффективного использования системных ресурсов крупные задачи БД разбиваются на отдельные подзадачи. Такие подзадачи можно эффективно выполнять параллельно, задействуя для этого несколько ЦП и дисков. Благодаря разбиению задач на подзадачи и параллельному выполнению этих подзадач, Informix Dynamic Server 2000 может значительно сократить время выполнения

сложных операций. Например, для запроса, требующего интенсивной обработки, такого как соединение нескольких таблиц (multitable join), задача разбивается на множество подзадач БД и распределяется по доступным виртуальным процессорам системы.

Кроме многопоточной архитектуры параллельному выполнению способствует целый ряд средств, включая параллельный запрос к данным (PDQ, parallel data query), сегментирование таблиц, и специализированные классы виртуальных процессоров.

Параллельный запрос к данным

Для работы с базами данных нередко используются системы с симметричной многопроцессорной архитектурой (SMP), слабо связанные кластеры и архитектуры с массовым параллелизмом (МРР). Технология параллельных запросов к данным (PDQ) использует все преимущества таких архитектур и выполняет задачи во много раз быстрее, чем это позволяют делать конкурирующие архитектуры СУБД. В некоторых случаях запросы вместо часов выполняются за считанные минуты. Такой выигрыш в производительности может достигаться для всех сложных операций над БД, требующих сортировки, просмотра больших массивов данных, соединения таблиц или агрегирования данных.

Давайте рассмотрим для примера простое соединение (join). Когда соединение выполняется последовательно, пользователям приходится ждать завершения одной задачи, прежде чем база данных приступит к следующей. Другими словами, БД должна сначала выполнить просмотр, затем соединение, потом сортировку, и, наконец, передать результаты пользователю. PDQ дает двойную экономию. Во-первых, он выполняет эти задачи параллельно, а во-вторых, разбивает каждую индивидуальную задачу на подзадачи, полностью используя встроенные в сервер возможности распараллеливания. Это ведет к значительному уменьшению общего времени обработки запроса.

Применяя запросы PDQ, пользователи могут выполнять все типы операций БД параллельно, причем независимо от применяемой архитектуры аппаратных средств, будь то узлы SMP, несколько слабо связанных узлов SMP или МРР-архитектура. Такие операции БД включают в себя параллельную сортировку, просмотр (сканирование), вставку, удаление, соединение, агрегирование, построение индекса и ряд функций администрирования БД. Такая полная функциональность обеспечивает масштабируе-мость всех операций базы данных и позволяет реализовать очень крупные БД на открытых системах и для широкого класса приложений, включая оперативную обработку транзакций (OLTP), электронную коммерцию и управление архивами мультимедиа.

Фрагментация таблиц

Фрагментация таблиц повышает производительность параллельных вычислений и отказоустойчивость БД. Кроме того, оно значительно упрощает управление очень крупными базами данных, поскольку большая БД разделяется на более мелкие фрагменты.

Informix Dynamic Server 2000 позволяет определять фрагменты таблиц и вносить изменения в схему распределения данных, не прерывая работы БД. Кроме того, схемы разделов прозрачны для приложений и пользователей. Схемы разделов могут задаваться с помощью простого циклического алгоритма (записи поочередно помещаются в следующий по порядку раздел), алгоритма хеширования (для определения следующего по порядку номера раздела для записи используется ключ записи) или выражения (наборы записей помещаются в раздел на основе значений их ключей), а также через операторы SQL (такие как CREATE TABLE и ALTER TABLE). При необходимости Informix Dynamic Server 2000 позволяет выполнить мониторинг и настройку разделов.

Возможность разделения одного раздела таблицы на два или три раздела очень важна для параллельной обработки данных. Например, используя схему БД, в которой данные распределены по разделам, сервер БД может пропускать фрагменты, не участвующие в конкретном запросе. В то же время, он может пропускать и фрагменты, недоступные по причине отказа системы, что обеспечивает высокую степень доступности данных.

Кроме разбиения на фрагменты таблиц данных, Informix Dynamic Server 2000 позволяет определять фрагменты для индексов. В результате схема данных становится чрезвычайно гибкой, оптимизируется производительность параллельных вычислений. Администраторы баз данных (DBA) могут размещать фрагменты индекса отдельно от данных. Такие индексы имеют собственную схему разделов, отличную от таблиц данных.

Разбиение на фрагменты имеет очень большое значение и для администрирования системы. Чем крупнее база данных, тем важнее для администратора выполнение таких операций как архивирование и восстановление из архива, загрузка и выгрузка больших массивов данных. Лучше делать это на уровне разделов таблиц, чтобы не нужно было архивировать или восстанавливать из архива всю базу данных или таблицу. Такие операции могут выполняться параллельно, что существенно сокращает время загрузки, выгрузки и восстановления данных.

Классы виртуальных процессоров

Для эффективного выполнения и разносторонней настройки виртуальные процессоры группируются в классы. Каждый класс оптимизирован для выполнения конкретной функции, такой как операции ЦП, ввод-вывод на диск, коммуникации клиент/сервер и задачи администрирования. Благодаря распределению виртуальных процессоров по классам, Informix Dynamic Server 2000 может эффективно планировать операции и назначать им приоритеты.

Потоки прозрачным образом планируются для выполнения на разных виртуальных процессорах в релевантном классе. Можно конфигурировать систему так, чтобы число виртуальных процессоров в каждом классе было достаточно для обработки нагрузки конкретного типа (и на конкретной системе). Кроме того, поскольку пул виртуальных процессоров допускает оперативную настройку, можно быстро задать в каждом классе требуемое число виртуальных процессоров, либо внести изменения для настройки на период максимальной активности или номинальной нагрузки конкретного типа.

Хотя существует множество классов виртуальных процессоров, наиболее важным является класс ЦП. Число виртуальных процессоров в этом классе можно увеличивать или уменьшать в зависимости от требований вычислительной обработки. При наличии длинной очереди можно динамически запускать виртуальные процессоры ЦП, устраняя "узкое место" и не допуская тем самым прерывания работы пользователя.

Так как число виртуальных процессоров, необходимых для обработки клиентских запросов, часто непредсказуемо, для обеспечения коммуникаций с клиентской системой можно реализовать несколько классов виртуальных процессоров для протоколов коммуникаций клиент/сервер (таких как IPX/SPX, TCP/IP или общая память). Можно даже, например, для обработки ввода-вывода определить соответствующий класс виртуальных процессоров, если система требует добавления оптических устройств хранения данных

Динамическая общая память

Вся память, используемая Informix Dynamic Server 2000, совместно используется виртуальными процессорами. Поэтому конфигурацию этой СУБД можно настроить так, чтобы память автоматически добавлялась к общему пулу при необходимости срочной обработки клиентских запросов.

С данными из доступного по чтению словаря данных (системного каталога) и хранимыми процедурами пользователи работают совместно, не порождая их дополнительные копии. В результате оптимизируется использование памяти, и ускоряется выполнение часто вызываемых процедур. Данное средство может дать значительные преимущества во многих приложения, особенно в задачах, часто обращающихся к таблицам с большим числом столбцов и/или хранимых процедур.

Кроме того, Informix Dynamic Server 2000 распределяет в виртуальной части совместно используемой памяти специальную область, которая называется стеком потоков. В этом стеке хранятся те данные для выполняемых потоком функций, которые не являются совместно используемыми. Стек потоков позволяет отслеживать состояние сеанса пользователя, а виртуальный процессор может защищать данные конкретного потока от перезаписи другими потоками, параллельно выполняющими тот же программный код. Для отдельных операций, таких как рекурсивные хранимые процедуры, Informix Dynamic Server 2000 динамически наращивает этот стек.

Применение в Informix Dynamic Server 2000 совместно используемой памяти позволяет свести к минимуму фрагментацию памяти, и в результате параметры работы с памятью с течением времени не ухудшаются. Кроме начальной инициализации совместно используемые сегменты памяти при необходимости автоматически объединяются в более крупные фрагменты, но могут и добавляться администратором во время работы БД. Когда возникает нехватка памяти, система управления памятью автоматически наращивает сегмент памяти. При завершении пользовательского сеанса выделенная ему память освобождается и используется другим сеансом. Память может быть затребована и операционной системой. В этом случае память, выделенная базе данных, освобождается. Таким образом, потоки пользователей легко мигрируют между виртуальными процессорами, повышая масштабируе-мость Informix Dynamic Server 2000 при увеличении числа пользователей.

Асинхронный ввод-вывод

Ввод-вывод обычно является в обработке информации в БД самым медленным компонентом. Для ускорения операций Informix Dynamic Server 2000 использует свой собственный пакет асинхронного ввода-вывода (AIO, asynchronous I/O) или AIO ядра операционной системы (когда он доступен). Поскольку виртуальные процессоры Informix Dynamic Server 2000 обслуживают пользовательские запросы ввода-вывода асинхронно, перед началом работы или обслуживанием следующего процесса виртуальный процессор не будет ожидать завершения ввода-вывода.

Существует четыре специальных класса виртуальных процессоров ввода-вывода:

логического журнала ввод-вывод, физического журнала ввод-вывод, AIO и асинхронный ввод-вывод на уровне ядра операционной системы (KIO, kernel asynchronous I/O). Разделение ввода-вывода на эти классы позволяет более эффективно применять приоритеты. Поскольку все запросы ввода-вывода планируются единообразно, ПО Informix Dynamic Server 2000 способно эффективно распределять нагрузку по всем доступным дискам. Фактически, для выявления длинных очередей чтения/записи на диск можно использовать интерфейс системного мониторинга (System Monitoring Interface) Informix Dynamic Server 2000, а затем запустить дополнительные виртуальные процессоры, позволяющие устранить узкие места ввода-вывода.

Упреждающее чтение

Для последовательного просмотра (сканирования) последовательной таблицы или индекса конфигурацию Informix Dynamic Server 2000 можно настроить на асинхронное упреждающее чтение нескольких страниц с диска. Они будут считываться, пока в совместно используемой памяти обрабатывается текущий набор страниц. Благодаря такой возможности, поддерживается высокая пропускная способность: приложения тратят меньше времени на ожидание завершения доступа к диску.

Другие средства повышения производительности

Кроме параллельной обработки и сегментирования данных по разделам, Informix Dynamic Server 2000 предусматривает ряд средств увеличения производительности, разработанных для повышения скорости обработки в OLTP-системах и системах поддержки принятия решений.

Memory Grant Manager

Диспетчер выделения памяти MGM (memory grant manager) позволяет администратору БД и программистам управлять степенью распараллеливания операций, подбирая приоритеты пользовательских запросов в соответствии с доступными системными ресурсами. MGM делает следующее:

• Настраивает объем системных ресурсов, необходимых для выполнения задач типа PDQ.

  Задает приоритет для каждого запроса.

• Настраивает допустимое число сложных запросов для параллельного выполнения.

• Настраивает максимальный объем памяти, используемой в OLTP-системах и системах поддержки принятия решений.

• Работает в сочетании с оптимизатором стоимости выполнения, обеспечивая максимальную степень распараллеливания на всех уровнях.

Эффективное использование памяти диспетчером MGM вносит важный вклад в оптимизацию параллельной обработки. Кроме того, MGM задает ограничения на агрегированные ресурсы для обработки запросов PDQ. Благодаря MGM, все системные параметры приоритетов можно изменять динамически

 Оптимизатор выполнения запросов

Оптимизатор по стоимости выполнения Informix Dynamic Server 2000 автоматически определяет самый быстрый способ извлечения данных из таблицы БД. Он руководствуется подробной информацией о распределении данных в столбцах таблицы. Этот оптимизатор собирает и вычисляет статистику по распределению данных и выбирает такой маршрут, который меньше всего влияет на системные ресурсы. В некоторых случаях это будет распараллеленный маршрут возврата данных, в других — последовательный процесс. Для управления степенью распараллеливания необходим лишь диспетчер MGM.

Для предоставления пользователям требуемых возможностей управления, Informix Dynamic Server 2000 предлагает директивы оптимизатора. С их помощью пользователь может обойти оптимизатор и управлять:

• Методами доступа. Это позволяет пользователям задавать доступ к таблице, например, указать оптимизатору, что требуется использовать конкретный индекс.

• Методами соединения. Это дает пользователям возможность задать, как таблица соединяется с другими таблицами в запросе, например, определить применение оптимизатором соединения с помощью хеширования.

• Порядком соединения. Это позволяет пользователям соединять таблицы в конкретном порядке.

• Целью оптимизатора. С ее помощью пользователи могут указать, что запрос должен оптимизироваться по времени отклика (определяемому моментом возврата первого набора строк) или по общему времени выполнения (когда возвращаются все строки).

Непосредственное управление диском

Для быстрого доступа к данным Informix Dynamic Server 2000 обеспечивает выделение непрерывных областей дисковой памяти непосредственно через дисковые накопители, так как файловая система UNIX

не гарантирует выделения на диске непрерывного пространства. Кроме того, такое распределение памяти на диске позволяет Informix Dynamic Server 2000 создать собственную систему хранения данных.

Непосредственная работа с дисковой памятью дает Informix Dynamic Server 2000 возможность осуществлять прямой доступ к памяти (DMA, direct memory access). Благодаря DMA, данные записываются из оперативной памяти прямо на диск в обход механизмов промежуточной буферизации операционной системы, которые используются при работе через стандартную файловую систему. В результате процесс становится очень быстрым, и фиксация транзакций на диске существенно ускоряется.

Выборка первых N строк

Многие запросы в системах поддержки принятия решений для анализа требуют в операторе Select только первые несколько строк. Например, требуется найти 20 наиболее хорошо продаваемых продуктов, пять регионов с наихудшими показателями, первые 100 заказчиков, соответствующих профилю маркетинга и т.д. Для таких запросов в Informix введен новый вызов функции — Select First N Rows (выборка первых N строк). С помощью данного нового средства пользователи могут теперь ограничивать результат запроса первыми N строками. Минимизируя операции ввода-вывода, а в некоторых случаях уменьшая число циклов ЦП (поскольку обрабатывается только часть строк), эта новая функция позволяет получить существенный выигрыш в производительности.

Функция UNION в представлениях БД

Один из методов повышения производительности в запросах систем поддержки принятия решений состоит в создании представления (view), уменьшающего объем данных, к которым обращается запрос. Представления могут использоваться также для упрощения запроса (чтобы пользователю было легче писать его). Поскольку многие запросы в системах поддержки принятия решений предусматривают комбинирование результатов нескольких операторов SELECT, встраивание в представление БД функции UNION позволяет не только сделать запрос более простым, но и ускорить его выполнение. Например, вместо запроса, в котором используется несколько операторов SELECT, можно создать представление, где для слияния результатов операторов SELECT применяется функция UNION. Таким образом, конечному пользователю потребуется написать лишь простой оператор SELECT, применив его к представлению БД.

Таблицы, резидентные в памяти

Для повышения производительности при работе с часто используемыми данным пользователи могут определить один или несколько фрагментов таблицы или индекса как резидентные в общей памяти Informix. Они будут оставаться там так долго, насколько это возможно. После определения таких таблиц при запросе свободного буфера они выгружаются из памяти в последнюю очередь. Подобное решение идеально подходит для небольших таблиц, часто используемых, но периодически выгружаемых из кэш-буфера из-за обращений к другим таблицам. Оно может значительно улучшить время отклика при доступе к таблицам данных.

Усовершенствованное выполнение коррелированных подзапросов

Для повышения производительности запросов с подзапросами в Informix Dynamic Server 2000 применяется несколько стратегий оптимизации. Они включают в себя линеаризацию подзапроса, кэширование запроса и продвижение предиката. Линеаризацией подзапросов называют комбинирование блоков запросов в один блок. Это позволяет свести к минимуму новые операции просмотра таблиц, индексов и операции соединений. Кэширование подзапросов — это кэширование результатов многократно вызываемого подзапроса, что позволяет оптимизатору избежать повторного выполнения того же запроса. Продвижением предиката называют подстановку константы в столбец, если тот же столбец используется в коррелированном подзапросе. В результате коррелированный подзапрос преобразуется в некоррелированный.

Совместно используемый кэш операторов

В Informix Dynamic Server 2000 для кэширования планов запросов выполнения

SQL применяется совместно используемый кэш операторов, поэтому позднее они могут применяться в другом пользовательском сеансе. Данное средство существенно снижает потребности в памяти в тех системах, где пользователи применяют идентичные операторы SQL. Кроме того, поскольку сеансы, использующие кэшированные операторы, не требуют повторного синтаксического анализа операторов и их оптимизации, обработка запроса происходит намного быстрее.

Длинные идентификаторы

Informix Dynamic Server 2000 позволяет пользователям определять идентификаторы длиной до 128 байтов. Поддерживая длинные идентификаторы, эта СУБД облегчает преобразование не-Informix приложений для выполнения в среде Informix Dynamic Server 2000. Данная возможность позволяет избежать применения специальных оболочек для приложений, которые могут увеличить время разработки и снизить производительность.

Поддержка 64-разрядных вычислений и адресации больших объемов памяти

Большинство систем UNIX и Windows NT позволяют использовать не более 2 Гбайт оперативной памяти, что связано с ограничениями 32-разрядного адресного пространства. 64-разрядные архитектуры позволяют устранить эти ограничения и значительно повысить производительность баз данных. Для использования преимуществ 64-разрядных архитектур ПО Informix Dynamic Server 2000 предусматривает поддержку 64-разрядных вычислений и возможность адресации к большим объемам памяти (LMA, large memory addressability). Это резко увеличивает производительность как в системах оперативной обработки транзакций, так и в системах поддержки принятия решений. 64-разрядная поддержка позволяет увеличить размеры страниц баз данных, что повышает производительность благодаря передаче с диска в кэш больших объемов данных при меньшем числе физических операций ввода-вывода. Благодаря LMA, Informix Dynamic Server 2000 может теперь поддерживать десятки гигабайт физической памяти и сотни гигабайт виртуального адресного пространства. В результате в памяти можно кэшировать значительно больше данных. Кроме того, Informix Dynamic Server 2000 поддерживает большее число пользователей и обеспечивает повышенную пропускную способность базы данных, а также уменьшает свопинг (обмен между ОЗУ и диском) в средах OLTP с интенсивной нагрузкой.

Средства повышенной отказоустойчивости

Informix Dynamic Server 2000 предлагает ряд средств, минимизирующих запланированные и незапланированные простои. Чтобы свести к минимуму запланированные простои, Informix Dynamic Server 2000 поддерживает полный комплект утилит администрирования, позволяющих администраторам выполнять практически все служебные операции в оперативном режиме (они описываются в разделе "Средства администрирования/управления"). Для минимизации незапланированных простоев Informix Dynamic Server 2000 предусматривает средства, повышающие устойчивость работы сервера БД в случае ошибок и сбоев. Кроме того, дополнительные усовершенствования позволяют техническому персоналу Informix и службе технической поддержки (Informix Technical Support) быстрее диагностировать проблемы, а следовательно быстрее добиваться работоспособности сервера при непредвиденных отказах и сбоях.

Зеркалирование базы данных и журнала

Такое зеркальное отображение предоставляет администраторам БД средства восстановления данных в случае отказа носителя, причем восстановление выполняется без останова сервера. Такой метод идеально подходит для защиты ответственных данных, требующих чрезвычайно высокой надежности системы БД. Следует зеркалировать, например, такие данные как корневой dbspace, файлы логических и физических журналов. В этом случае при отказе носителя, на котором хранятся эти данные, БД немедленно переводится в автономное состояние.

Быстрое восстановление

На случай непредвиденного останова Informix Dynamic Server 2000 предусматривает утилиту "быстрого восстановления".

Она позволяет быстро привести систему в работоспособное состояние без потери данных, обеспечивая тем самым полную целостность данных. Вызываемая в процессе восстановления системы, утилита быстрого восстановления применяет к файлам данных журнал транзакций и восстанавливает базу данных, приводя ее в физически и логически согласованное (непротиворечивое) состояние. Этот процесс восстановления приводит БД в то состояние, которое она имела в момент последней контрольной точки. Далее поэтапно восстанавливаются все завершенные транзакции, имевшие место с момента последней контрольной точки, а все незавершенные транзакции отменяются (откат).

Возобновляемое восстановление

В процессе физического или логического восстановления БД могут возникать ошибки ввода-вывода (например, сбои на магнитной ленте). Обычно в случае этих и других подобных проблем серверы баз данных требуют перезапуска процесса восстановления с самого начала. Предлагаемое Informix средство возобновляемого выполнения дает возможность перезапустить процесс восстановления близко к тому месту, где он был прерван. Это достигается с помощью уменьшения размеров блоков восстановления до уровня dbspace. В результате процедура восстановления возобновляется на том блоке dbspace, где произошел отказ предыдущего восстановления.

Реорганизация таблиц

Для повышения степени доступности базы данных Informix Dynamic Server 2000 позволяет администраторам изменять схему БД "на месте". Это означает, что такие операции как добавление или удаление столбца таблицы, вставка между столбцами еще одного столбца или их переупорядочение могут выполняться прямо на рабочей таблице, которая по-прежнему будет доступна пользователям. При этом увеличивается также производительность операции ALTER TABLE, так как она связана только с обновлением системных каталогов — включением в них нового определения таблицы. Кроме того, для осуществления изменений не потребуется создавать вторую копию таблицы, что существенно снижает требования к доступному на диске пространству (особенно если изменения вносятся в большие таблицы).

Поддержка кластеров серверов Microsoft

Распространяя высокую степень доступности и отказоустойчивости на среду Windows NT, ПО Informix Dynamic Server 2000 интегрировано с функциями Microsoft Cluster Server. ПО Microsoft Cluster Server поддерживает средства защиты от сбоев в симметричных многопроцессорных системах (SMP, symmetrical multiprocessing), объединенных в кластер. Это позволяет серверу в случае непредвиденного отказа аппаратных средств автоматически переключать приложение на другой сервер кластера.

Используя средства Microsoft Cluster Server для мониторинга, выявления отказов и сообщения о них, ПО Informix Dynamic Server 2000 в случае отказа узла кластера может немедленно выполнить восстановление БД. После завершения процедур восстановления базы данных Microsoft Cluster Server выполняет восстановление на системном уровне и перезапускает поддерживающее кластер приложение на функционирующем узле. Данное средство обеспечивает высокий уровень отказоустойчивости и быстрое восстановление в случае отказа аппаратного обеспечения. В результате база данных возобновляет работу в максимально короткое время.

Усовершенствования в обработке исключительных ситуаций

Для повышения надежности и отказоустойчивости Informix Dynamic Server 2000 предлагает комплект подпрограмм для более результативного контроля отказов на сервере и вывода предупреждений. Эти подпрограммы позволяют свести время простоя сервера к минимуму: они эффективно выявляют и диагностируют проблемные области, возвращают сообщения об ошибках. В данных сообщениях указывается, что именно произошло. Если отказа сервера избежать не удается, подпрограммы обработки исключительных ситуаций выводят более подробную диагностическую информацию, помогающую найти и устранить проблемы.

Интеллектуальная диагностика

Для уменьшения времени диагностики и устранения проблем Informix Dynamic Server 2000 предлагает ряд усовершенствований, которые помогают разрабатывающим и поддерживающим СУБД Informix организациям выполнять отладку и анализ возникающих в системе проблем. Интеллектуальная диагностика означает усовершенствования в шести важных областях, таких как уведомления о событиях, локализация отказов, вывод дампов совместно используемой памяти, трассировка стека, дополнительные возможности утилит и подпрограммы блокировки потоков. В результате проблемы заказчиков, о которых они сообщают в обслуживающую организацию, решаются быстрее.

Средства администрирования/управления

Informix Dynamic Server 2000 предусматривает комплект инструментальных средств системного администрирования для мониторинга и тонкой настройки параметров системы, таких как использование ЦП и памяти, очереди асинхронного ввода-вывода, поддержка принятия решений и очереди пакетных заданий, доступное пространство на диске и эффективные схемы определения разделов. Эти средства администрирования калибра мэйнфрейма позволяют администраторам баз данных (DBA) оперативно (то есть без останова системы) выполнять большинство функций системного администрирования. Кроме того, многие утилиты написаны с учетом возможности параллельного выполнения операций, что обеспечивает еще более высокую производительность. Для совершенствования управления распределенными базами данных предлагается дружественная к пользователю, интуитивно понятная среда администрирования под названием Informix Enterprise Command Center. Она дает администраторам возможность с одной центральной консоли управлять несколькими удаленными базами данных.

Параллельная загрузка

Разработанная Informix утилита параллельной загрузки БД позволяет очень быстро загружать и выгружать данные, поскольку обеспечивает чтение данных сразу из нескольких источников и их параллельную загрузку в БД. Графический пользовательский интерфейс позволяет администраторам:

• Настраивать конфигурацию загрузки для различных типов "плоских" (неструктурированных) файлов (таких как файлы ASCII, COBOL или EBCDIC), либо приложений (таких как электронные таблицы или текстовые редакторы), а также выполнять необходимые преобразования (например, из EBCDIC в ASCII).

• Осуществлять отображение загружаемого файла в схему БД Informix.

• Выполнять избирательную загрузку.

• Просматривать загружаемый файл.

С помощью одного из двух предусмотренных режимов DBA может выполнить стандартные задачи загрузки (такие как проверка ссылочной целостности, регистрация в журнале и построение индекса) в процессе загрузки или после ее завершения (в последнем случае время загрузки заметно уменьшается). Кроме того, для выполнения в рамках параллельной утилиты загрузки специальных функций администраторы БД могут использовать определенные пользователем подпрограммы (UDR, user-defined routine), например, определить UDR для преобразования входных данных Х в выходные данные XY+1+XZ. Параллельная утилита загрузки Informix поддерживает параллельное выполнение UDR, что значительно ускоряет выполнение в UDR сложных задач.

Утилита резервного копирования и восстановления

В Informix Dynamic Server 2000 имеется очень развитая и хорошо интегрированная утилита резервного копирования и восстановления. Ее конфигурацию можно настраивать оперативно (включая параллельное выполнение онлайнового резервного копирования на уровне таблиц и разделов). Кроме того, утилита резервного копирования и восстановления интегрирована с корпоративной средой управления Informix, что помогает администраторам осуществлять резервное копирование и восстановление распределенных баз данных.

Резервное копирование и восстановление разделяются на два процесса. Первый процесс включает в себя извлечение данных из БД Informix Dynamic Server 2000 или их восстановление в БД с помощью утилиты резервного копирования и восстановления. Второй процесс предусматривает считывание данных с носителя (системы хранения информации) или запись их на него. Для этого используется диспетчер системы хранения данных. В процессе резервного копирования утилита резервного копирования и восстановления считывает данные с сервера и передает их диспетчеру системы хранения данных. Затем диспетчер записывает информацию на носитель. При восстановлении применяется обратный процесс. Диспетчер системы хранения данных считывает их с носителя и передает процедуре резервного копирования и восстановления, которая записывает данные на сервер БД.

Утилита резервного копирования и восстановления Informix оснащается интерфейсом прикладного программирования (API) для управления системой хранения данных. Этот интерфейс соответствует стандартам X/BSA (X/Open Backup Services API). С помощью данного API-интерфейса Informix позволяет пользователям применять многочисленные доступные сегодня подсистемы управления хранением данных разных производителей (SMV, storage management vendor), включая IBM ADSM, HP Omniback II и Legato. Эти подсистемы SMV предоставляют пользователям различные преимущества усовершенствованных операций резервного копирования и восстановления, такие как автоматическое резервное копирование (не требующее присутствия администратора), планируемое (на заданное время) резервное копирование, управление томами и магнитными лентами, поддержка шифрования и декодирования, средства уплотнения и распаковки, а также применение устройств с автоматической сменой носителя (autochanger).

Для заказчиков, не нуждающихся в усовершенствованных средствах диспетчеров хранения данных независимых производителей, утилита резервного копирования и восстановления предусматривает собственный диспетчер под названием Informix Storage Manager (ISM). ISM предлагает простую в использовании среду, помогающую администраторам выполнять операции резервного копирования и восстановления на ленту или диск, которые приобретаются у поставщика аппаратного обеспечения.

Внешнее резервное копирование/восстановление

Informix Dynamic Server 2000 позволяет создавать также внешние резервные копии данных. Тем самым администраторы могут повысить отказоустойчивость в случае стихийного бедствия. В отличие от "внутренних" резервных копий, создаваемых с помощью описанной выше утилиты резервного копирования и восстановления, при внешнем резервном копировании одновременно создается несколько копий данных. Они размещаются на независимых от основной системах локально и удаленно. Для этого применяются патентованные технологии аппаратного и программного обеспечения. Вся данная процедура может сводиться, например, к отсоединению зеркального диска и его копированию на резервном носителе. С помощью подобных средств Informix Dynamic Server 2000 позволяет быстро восстанавливать данные, увеличивая отказоустойчивость сервера и сводя к минимуму время простоя.

Восстановление до заданной контрольной точки

Восстановление до заданной контрольной точки позволяет администраторам управлять степенью повторной обработки логических журналов, приводя базу данных в соответствие с ее состоянием на указанный момент времени. Данное средство дает администраторам возможность просто ввести дату и время, получив в результате состояние сервера на этот момент. Заданные дата и время передаются серверу в ходе процесса восстановления. После физического выполнения восстановления сервер обрабатывает логический журнал, анализируя его записи, пока не найдет первую запись о транзакции после заданной временной точки. Затем сервер прекращает обработку записей логического журнала и выполняет откат всех транзакций, не завершенных на данный момент времени.

Informix Enterprise Command Center

Informix Enterprise Command Center (IECC) предоставляет администраторам средства управления всей средой БД (UNDC и NT) с помощью единой консоли. Это усовершенствованное решение для управления системами состоит из простого в использовании графического интерфейса (GUI, graphical user interface), комплекта автоматизированных открытых и масштабируемых инструментов управления системами, а также интегрированной поддержки инструментальных средств управления и средств управления корпоративной средой на базе SNMP (simple network management protocol) независимых производителей.

Informix Enterprise Command Center позволяет заказчикам управлять всеми функциями серверов баз данных (одного или тысяч) с одной центральной консоли. Это ПО предлагает полный набор функций администрирования БД, позволяет управлять всеми параметрами среды баз данных Informix, включая управление сервером, заданиями, мониторинг событий и реакция на них, а также управление системами хранения данных. Благодаря объектно-ориентированной архитектуре, разработанной на основе стандартов CORBA/HOP и поддерживающей Java, IECC дает администраторам возможность с целью автоматизации операций создавать "облегченные" системы управления и специализированные объекты управления приложениями. Кроме того, IECC позволяет пользователям гибко управлять распределенными базами данных через Web-браузер или ПК с операционной системой Microsoft Windows. В результате обеспечивается универсальное управление системами с любого настольного ПК, независимо от платформы и его местонахождения. IECC представляет собой полностью открытую платформу, спроектированную с учетом возможностей взаимодействия с приложениями и сетевыми инструментальными средствами управления, которые предлагаются независимыми производителями. Благодаря этому обеспечивается полное управление системами в неоднородной среде.

Simple Network Management Protocol (SNMP)

Для интеграции с технологиями и продуктами на основе SNMP, такими как HP OpenView и IBM SystemView, ПО Informix Dynamic Server 2000 предлагает набор агентов. Эти агенты поддерживают общедоступные и частные базы данных управляющей информации (MIB, management information base). В соответствии с общедоступными стандартами MIB IETF (Internet Engineering Task Force) для реляционных БД, базы данных MIB Informix содержат обобщенную информацию о БД, такую как сведения о ее поставщике, номер версии, количество выполненных транзакций, использование диска и т.д. Частные базы данных MIB Informix содержат различную информацию о БД, специфическую для Informix Dynamic Server 2000, такую как число буферов БД, блокировок и журналов, количество завершенных и отмененных транзакций, время последней контрольной точки, использование оперативной памяти, дата, время, уровень последнего резервного копирования и т.д. Эти данные доступны сетевому администратору. С их помощью он может эффективно контролировать все базы данных Informix в сети.

Интерфейс системного мониторинга (SMI)

Informix Dynamic Server 2000 ведет основную системную базу данных ("sysmaster"), где отслеживается информация о сервере БД. Одним из компонентов sysmaster является интерфейс системного мониторинга SMI (System Monitoring Interface), состоящий из ряда таблиц и псевдотаблиц. Эти таблицы содержат информацию о состоянии сервера базы данных. Для идентификации возникающих в процессе обработки данных "узких мест", определения использования ресурсов, отслеживания активности сеанса или сервера БД к таблицам SMI можно обращаться с запросами. В частности, эти запросы позволяют получить следующую информацию:

• имена БД, их владельцев и состояние журналов;

• статус пользователей, ожидающих ресурсов БД;

• сведения о профилировании производительности;

• данные о загрузке ЦП пользователем и виртуальным процессором;

• данные о доступном на диске пространстве;

• сведения о состоянии журнала транзакций (логический журнал);

• специфическую информацию о конкретных областях на диске (т.е. блоках dbspace);

• информацию об использовании блокировок;

• сведения об экстентах (непрерывных сегментах пространства на диске, выделенных для таблиц).

Утилита OnPerf

Утилита OnPerf — это графическое инструментальное средство, позволяющее DBA контролировать и отображать на экране в реальном времени различные метрики производительности. Она обеспечивает мониторинг метрик разных уровней, включая классы на уровне базы данных, операционной системы, ЦП, виртуальных процессоров, отдельных пользовательских сеансов и табличных областей.

Сведения о производительности можно сохранять в файле и отображать в реальном времени для моделирования или анализа в реальном времени, либо для определения тенденций.

Технология Enterprise Replication

Технология Enterprise Replication разработана в соответствии с полным спектром корпоративных требований и требований приложений. Она поддерживает полную одноранговую модель тиражирования (репликации) с возможностью обновления любой копии. Enterprise Replication обеспечивает асинхронную репликацию данных . Обновления на одном сервере (включая изменения в конфигурации) в этом случае автоматически распространяются на все остальные сервера, обеспечивая согласованность и непротиворечивость данных.

В Enterprise Replication применяется механизм согласования изменений на основе журнала. Такой метод сводит к минимуму влияние репликации на обработку транзакций, поскольку функционирует в БД как часть обычного процесса журналирования. Собираются и передаются в другие БД только те записи, которые были помечены как тиражируемые. Это также сводит к минимуму влияние на обработку транзакций. Согласование изменений на основе ведения журнала значительно эффективнее согласования на основе триггеров, которое может непосредственно повлиять на пользовательские транзакции.

Тиражируемые данные могут передаваться немедленно, либо в отложенном режиме. Это задается в процессе управления соединениями тиражирования в корпоративной среде. Надежный механизм доставки сообщений сохраняет данные локально и распространяет их на удаленный сервер, когда будет доступно соединение (выполняя отдельную транзакцию). В случае отказа сервера или сети "выживший" сервер может продолжать обслуживание пользователей и обработку

данных вместо отказавшего или недоступного сервера. В результате обеспечивается высокая отказоустойчивость. Когда отказавший сервер или сеть снова начинают работать, все изменения, внесенные в исходную базу данных, распространяются на БД отказавшего ранее сервера.

Благодаря средству иерархической маршрутизации, Enterprise Replication может поддерживать большие сети, состоящие из сотен и тысяч серверов. В отличие от методов тиражирования, применяемых другими производителями. Enterprise Replication со средствами иерархической маршрутизации устраняет необходимость в физическом соединении всех серверов в сети, которое при увеличении размеров сети и числа серверов ведет к большим непроизводительным потерям. Такие возможности особенно важны, когда репликация применяется для консолидации данных и/или их распространения между несколькими серверами в штаб-квартире компании и большим числом серверов в ее удаленных филиалах (например, магазинах розничной торговли или дочерних отделениях).

Иерархическая маршрутизация позволяет DBA задавать топологию маршрутизации. Для этого указывается тип сервера: корневой, не корневой или оконечный. Каждый из них занимает свое место в топологии сети. После определения всех серверов в сети информация может доставляться независимо от того, соединен ли сервер-источник непосредственно с сервером-получателем, поскольку в системе Enterprise Replication серверы могут маршрутизировать и переадресовывать данные, полностью сохраняя порядок транзакций и обеспечивая гарантированную доставку.

Такой метод способен значительно уменьшить объем работ по администрированию и поддержке большого числа серверов.

Непротиворечивость данных

Если высокая отказоустойчивость обеспечивает целостность данных на системном уровне, то непротиворечивость данных поддерживает их согласованность на уровне транзакций. Informix Dynamic Server 2000 обеспечивает непротиворечивость данных с помощью журналирова-ния (протоколирования) транзакций и контроля внутренней целостности. Кроме того, для этого задаются процедуры блокировки, определяются уровни изоляции и бизнес-правила.

Журналирование транзакций

При невозможности выполнить операцию частично завершенная транзакция должна быть отменена — удалена из базы данных. Это необходимо для поддержания непротиворечивости данных. Для удаления такой частично выполненной транзакции Informix Dynamic Server 2000 ведет в логических журналах протокол всех транзакций и автоматически использует записи журнала для восстановления БД в то состояние, которое она имела до данной транзакции.

Контрольные точки

Контрольной точкой называют момент в работе сервера БД, когда страницы на диске синхронизированы со страницами в пуле буферов в совместно используемой памяти. Для обеспечения согласованности данных Informix Dynamic Server 2000 автоматически выполняет такую синхронизацию в контрольных точках. Администраторам предоставляется возможность

инициировать контрольные точки вручную или задать интервал для контрольных точек, управляя частотой такой синхронизации данных. Сервер базы данных предусматривает два типа контрольных точек — полные и нечеткие.

Полные контрольные точки

В полной контрольной точке сервер БД записывает на диск все модифицированные страницы, находящиеся в пуле буферов в совместно используемой памяти. После полной контрольной точки все физические операции выполнены, и говорят, что сервер БД находится в физически согласованном состоянии.

Промежуточные (Fuzzy) контрольные точки

Для ускорения операций в контрольных точках и повышения пропускной способности при обработке транзакций администратор может использовать нечеткие контрольные точки. В такой контрольной точке сервер БД для отдельных типов операций не выводит на диск модифицированные страницы. Данные операции называются нечеткими и включают в себя вставку, обновление и удаление. Поскольку на диск записываются не все модифицированные страницы, время выполнения операций в контрольных точках значительно сокращается, и в результате повышается пропускная способность базы данных.

После нечеткой контрольной точки участвующие в ней страницы могут быть не согласованы друг с другом, так как сервер БД записал на диск не все страницы данных. Между тем, при необходимости сервер выполняет сохранение всех страниц в полной контрольной точке, обеспечивая физическую согласованность всех данных в памяти и на диске.

Проверка внутренней непротиворечивости

Такая проверка предназначена для того, чтобы предупреждать администратора Informix Dynamic Server 2000 о несогласованности данных в системе. В Informix Dynamic Server 2000 применяется ряд проверок на уровне данных, выявляющих их несогласованность. Такая несогласованность и противоречивость данных может быть вызвана ошибками в аппаратных средствах или в операционной системе. При обнаружении несогласованности этот внутренний механизм автоматически записывает сообщения в журнал сообщений. Для лучшего выявления причины несогласованности администраторы Informix Dynamic Server 2000 могут проинструктировать пользователей, как устанавливать переменные операционной среды, отвечающие за проверку согласованности. Эти переменные позволяют генерировать диагностическую информацию, например, выводить содержимое совместно используемой памяти. Тем самым упрощается выявления причины несогласованности данных.

Блокировка и изоляция процессов

Другими важными средствами обеспечения согласованности и непротиворечивости данных являются процедуры блокировки и изоляции процессов. Они предотвращают изменение считываемых или модифицируемых данных другими пользователями.

Блокировки

Сервер базы данных предотвращает появление ошибок с помощью системы блокировок. Блокировка представляет собой резервирование фрагмента данных программой. Сервер БД гарантирует, что пока данные заблокированы, никакой другой процесс сервера их не модифицирует. Если другая программа запрашивает модификацию тех же данных, то сервер БД переводит ее в состояние ожидания или возвращает ошибку.

Кроме того, Informix Dynamic Server 2000 предусматривает предотвращение взаимных блокировок (deadlock) — ситуаций, когда два пользователя блокируют необходимые друг другу данные. Например, пользователь А заблокировал одну строку, необходимую пользователю В, и не может освободить ее, пока не получит доступа к строке, заблокированной пользователем В, а пользователь В ожидает освобождение строки, заблокированной пользователем A. Informix Dynamic Server 2000 немедленно выявляет такую тупиковую ситуацию и возвращает второй программе сообщение об ошибке, предотвращая взаимоблокировку.

Применяемая стратегия блокировки может повлиять на пропускную способность при обработке транзакций или операции с конкретной таблицей. Приложения, использующие стратегии эксклюзивного доступа к данным, могут обнаружить, что другие процессы сервера БД просто теряют время, ожидая доступа к данным. По этой причине Informix Dynamic Server 2000 предусматривает несколько уровней блокировки. Блокироваться может отдельная строка, таблица или вся база данных. Блокировки на уровне строк и страниц задаются при создании или изменении таблицы. Блокировка на уровне базы данных устанавливается в пользовательском приложении.

Уровни изоляции

Уровнем изоляции называется степень изоляции вашей операции чтения от действий, одновременно выполняемых другими процессами сервера БД. Он определяет, какие изменения могут вносить другие процессы в считываемые пользователем записи, а также какие записи он может получать во время чтения или модификации тех же записей другими процессами. Уровни изоляции действуют только для операций чтения и не используются в операторах вставки, обновления или удаления. Informix Dynamic Server 2000 предусматривает четыре уровня изоляции: "грязное" чтение (dirty read), подтвержденное чтение (commited read), стабильность курсора (cursor stability) и гарантированное повторное чтение (repeatable read).

Простейший уровень — это "грязное" чтение. Оно вовсе не предусматривает изоляции. Когда программа обращается к строке, применяя "грязное" чтение, она никого не блокирует и не проверяет блокировку. При "грязном" чтении пользователи могут читать все данные — зафиксированные или незафиксированные.

При чтении подтвержденных данных гарантируется считывание сервером БД только тех строк, которые уже зафиксированы транзакцией (подтверждены командой COMMIT). Перед получением строки сервер БД проверяет, не действует ли для этой строки блокировка. Если ни один процесс ее не заблокировал, то сервер БД обращается к строке. Такой уровень изоляции гарантирует, что сервер БД не считает незафиксированных данных, поскольку обновляемые, но еще не записанные в БД строки блокируются.

Следующий уровень — это стабильность курсора. Когда она действует, сервер БД блокирует последнюю считываемую строку. Строки считываются только поочередно. При каждом чтении новой строки предыдущая блокировка снимается. Этот уровень изоляции гарантирует неизменность текущей записи во время ее анализа профаммой.

Уровень повторяемого чтения гарантирует, что полученные при повторном чтении той же строки в той же транзакции результаты будут идентичны. Этот уровень изоляции не только устанавливает для считываемых записей разделяемые блокировки (блокировки, допускающие чтение), но и предотвращает добавление или модификацию записей в БД другими пользователями, если записи удовлетворяют критерию запроса чтения.

Средство RETAIN UPDATE LOCKS

Повторное чтение представляет самый строгий и наиболее "дорогой" уровень изоляции, поскольку в процессе транзакции подлежат проверке все строки. Чтобы избежать непроизводительных потерь при таком уровне изоляции, пользователи могут выполнить оператор SET ISOLATION с предложением RETAIN UPDATE LOCKS. Средство RETAIN UPDATE LOCKS позволяет переключать уровень изоляции, выбирая свободное чтение, чтение зафиксированных данных или стабильность курсора, чтобы блокировки не снимались до конца транзакции. Таким образом, RETAIN UPDATE LOCKS позволяет эффективно достичь той же цели, что и повторяемое чтение, но без потери производительности.

Бизнес-правила

Бизнес правила принудительно устанавливают согласованность данных на уровне столбцов. Они задают возможные значения данных, значения, присваиваемые по умолчанию, и отношения между столбцами. Бизнес-правила должны соблюдаться всеми приложениями, которые обращаются к данным и выполняют с ними операции. Между тем, Informix Dynamic Server 2000 не зависит от реализации этих бизнес-правил в приложении. Он задает выполнение данных правил независимо. Такая "централизация ответственности" снимает бремя с пользовательских приложений и гарантирует соблюдение бизнес-правил. Для соблюдения бизнес-правил ПО Informix Dynamic Server 2000 поддерживает ограничения целостности, хранимые процедуры и триггеры.

Ограничения целостности

Реализация компанией Informix ограничений целостности, соответствующих стандартам ANSI SQL, предотвращает неправильное удаление информации и гарантирует вставку данных в соответствии со спецификациями столбцов. Informix Dynamic Server 2000 предусматривает два типа ограничений целостности: ссылочную целостность и целостность "по значению". Ссылочная целостность позволяет пользователям определять соотношения между столбцами, обеспечивая их соблюдение. Например, ссылочная целостность Informix Dynamic Server 2000 гарантирует, что элемент в основной таблице не будет удален, пока существует соответствующая информация в подчиненной таблице. Это предотвращает удаление пользователями записи со сведениями о заказчике, если в таблице заказов все еще находятся данные по выполняемому для него заказу. Целостность "по значению" гарантирует ввод в столбцы только допустимых значений. Эта проверка позволяет администратору БД задать диапазон допустимых значений. Значения по умолчанию дают пользователям возможность определять такие значения в соответствии с типом данных столбца.

Хранимые процедуры

Хранимые процедуры — это команды SQL и операторы программы, которые хранятся в базе данных как именованные процедуры. Тем самым обеспечивается согласованная реализация наиболее часто используемых операций. Хранимые процедуры становятся стандартными оптимизированными подпрограммами базы данных, а не прикладной программы. Они уменьшают объем сетевого графика во время операций БД, поскольку позволяют выполнять  несколько задач, таких как вставка, обновление, удаление, с помощью одной команды. После обработки запроса хранимая процедура возвращает результат запроса, а не многочисленные наборы результатов для индивидуальных запросов.

Триггеры

Триггер представляет альтернативный метод вызова хранимой процедуры. Вместо вызова хранимой процедуры для выполнения бизнес-правила можно определить триггер. В результате при любой попытке вставки, удаления или обновления поля в таблице сервер БД будет автоматически выполнять хранимую процедуру (или оператор SQL). Поскольку триггеры хранятся в системных каталогах, приложениям не нужно поддерживать дополнительный программный код. Кроме того, так как обойти триггеры нельзя, во всех транзакциях гарантируется соблюдение ограничений ссылочной целостности.

Для таблицы или столбца можно определить триггер на операцию SELECT, который срабатывает, когда эта таблица или столбец используется в операторах SELECT определенного типа. Триггеры на операцию SELECT удобно использовать при разработке приложений для задания специфических для приложений правил ревизии или учета. Например, пользователь может определить триггер, вставляющий контрольную запись в таблицу аудита при выборе таблицы MPLOYEE_SALARY ("Зарплата сотрудника").

Каскадное удаление

Каскадное удаление автоматически удаляет дочерние записи при удалении в таблице родительской записи. Тем самым значительно упрощается разработка пользовательских приложений. Если по какой-то причине оператор удаления или любое вызванное им действие завершаются с ошибкой, то выполняется откат (отмена) всего оператора удаления. Такая возможность каскадного удаления не только дает существенный выигрыш в производительности (так как Informix Dynamic Server 2000 автоматически удаляет строки), но и упрощает работу с системой: программистам нет необходимости писать программный код, выполняющий в приложении

дочерние операции удаления. Не нужно будет тратить время и усилия на программирование соответствующих бизнес-правил и отношений ссылочной целостности, что ведет к лучшей согласованности базы данных и делает прикладные программы более понятными.

Зашита баз данных

Для обеспечения защиты базы данных Informix Dynamic Server 2000 предусматривает два уровня полномочий доступа. Полномочия на базу данных управляют доступом к БД, полномочиями для создания таблиц и индексов в базе данных. Полномочия на таблицу определяют, какие операции пользователь может выполнять с данной таблицей. Informix Dynamic Server 2000 поддерживает на уровне таблиц защиту по операциям ALTER, INSERT и DELETE, а защита по операциям SELECT и UPDATE обеспечивается на уровне столбцов. Для предоставления или отмены соответствующего уровня доступа пользователя можно использовать отдельные операторы полномочий. При этом не требуется заново регистрироваться в БД, так как Informix Dynamic Server 2000 применяет защиту на уровне регистрации пользователя.

Дополнительный механизм защиты реализуют хранимые процедуры. Для них задаются свои собственные полномочия, отдельно от полномочий доступа к данным. Владелец хранимой процедуры может предоставить пользователю право на ее выполнение (то есть пользователю будут доступны все операции SQL в этой процедуре), но при этом ограничить его доступ к базе данных. Применяя хранимые процедуры для ограничения выполнения пользователем операций с базой данных, администраторы БД могут "поднять" защиту до уровня процедур.

Контроль безопасности (Secure Auditing)

Informix Dynamic Server 2000 предлагает средства контроля безопасности. Они позволяют контролировать и учитывать все объекты БД, с которыми работает пользователь. Эти средства реализованы в соответствии с требованиями безопасности С2, установленными Национальным центром компьютерной безопасности США (NCSC, National Computer Security Center). Informix Dynamic Server 2000 поддерживает избирательный мониторинг активности пользователей в системе. Средства контроля безопасности управляются с помощью командной строки или параметров конфигурации, позволяющих определить, какие именно операции нужно контролировать для тех или иных пользователей.

Сервис поддержки коммуникаций (Communications Support Service)

Сервис поддержки коммуникаций CSS (Communications Support Service) — это внутренний компонент Informix, который обеспечивает более высокую степень защиты сети за счет поддержки средств безопасности, созданных независимыми разработчиками, таких как аутентификация, целостность сообщений, их конфиденциальность, уплотнение данных и тд. CSS использует интегрируемые модули (plug-in), которые называются модулями CSM (Communication Support Modules). Через стандартный API-интерфейс под названием GSS API (Generic Security Service API) эти модули обеспечивают поддержку таких служб независимых производителей как служба защиты DCE I.I. Заказчики могут сами разработать модули CSM, определив с их помощью свою стратегию безопасности.

Соответствие ANSI SQL92 Entry Level

Informix Dynamic Server 2000 — первая коммерчески доступная реляционная СУБД для операционной системы UNIX, получившая от Национального института стандартов и технологий (NIST, National Institute of Standards and Technology) сертификацию Entry Level SQL 1992. NIST (ранее Национальное бюро стандартов — National Bureau of Standards) — это единственная организация, располагающая тестами для проверки на соответствие стандартам SQL. Последняя сертификация NIST подтвердила, что Informix Dynamic Server 2000 соответствует правительственному стандарту SQL RDBMS Federal Information Processing Standard (FIPS), номер 127-2. FIPS 127-2 соответствует спецификациям, разработанным Американским национальным институтом стандартов (ANSI, American National Standards Institute) для стандарта баз данных SQL 1992 Entry Level.

Распределенные базы данных и поддержка приложений

В Informix Dynamic Server 2000 встроены средства поддержки распределенных БД и соединений клиент/сервер. Любое приложение Informix, использующее соответствующие библиотеки соединения, будет работать в режиме клиент/сервер. Таким образом, для выполнения Informix Dynamic Server 2000 в неоднородных сетях клиент/сервер нет необходимости покупать дополнительные сетевые продукты.

В одной транзакции Informix Dynamic Server 2000 может выполнять чтение, соединение и обновление таблиц на нескольких разнородных компьютерных системах. Лидирующие в отрасли методы оптимизации данного продукта гарантируют, что эти множественные, "многоузловые" изменения будут обрабатываться быстро, а процедуры восстановления двухфазной фиксации (two-phase commit) обеспечивают согласованность данных даже после отказа системы.

Многоузловое чтение, соединение и обновление

Поддержка в Informix Dynamic Server 2000 чтения, соединения и обновления таблиц на нескольких компьютерных системах в одной транзакции является критически важным средством для тех компаний, где возникает необходимость совместного использования данных в нескольких БД. Кроме того, Informix Dynamic Server 2000 поддерживает в одной транзакции многоузловое обновление, поскольку часто требуется модифицировать несколько распределенных баз данных и обеспечивать их согласованность. Если в процессе многоузлового обновления происходит отказ системы, распределенные СУБД должны предусматривать специальные процедуры восстановления, которые могут актуализировать информацию на отказавшей системе, согласовав ее с другими серверами БД. Кроме того, поскольку большинство транзакций осуществляется в критических ко времени бизнес-приложениях, где потеря времени означает потерю доходов, в таких СУБД многоузловые транзакции должны выполняться быстро, без излишней загрузки ЦП и сетевых ресурсов. Informix Dynamic Server 2000 позволяет пользователям выполнять многоузловое обновление в одной транзакции. Этот продукт координирует изменения в распределенных базах данных с помощью протокола двухфазной фиксации, обрабатывает отказы систем посредством процедур автоматического восстановления и обеспечивает высокую производительность за счет оптимизации.

Протокол двухфазной фиксации

Протокол двухфазной фиксации обеспечивает согласованность баз данных при многоузловых обновлениях. Он использует два этапа: предварительный этап и этап окончательной фиксации. Когда пользователь в первый раз подключается к системе Informix Dynamic Server 2000, эта система становится координатором для всех других серверов баз данных, участвующих в многоузловом обновлении. Этот координатор получает от пользователя оператор COMMIT WORK (указывающий, что в транзакции нет других операторов SQL) и передает сообщения участвующим в транзакции серверам БД. Данные сообщения позволяют им подготовиться к фиксации (завершению) транзакции, начиная подготовительный этап протокола. Если какой-то из участников сообщает, что не может подготовиться к фиксации или просто не отвечает, то координатор прерывает транзакцию и информирует другие серверы, что нужно выполнить ее откат (отмену). Если все участвующие в транзакции серверы посылают положительный ответ, координатор просит их завершить транзакцию. Таким образом, второй этап протокола, фиксация транзакции, начинается или не начинается в зависимости от решения о фиксации или откате транзакции.

Многопоточные клиенты

С помощью INFORMDC-ESQL разработчики могут создавать приложения, применяя для доступа к базам данных знакомые им языки третьего поколения, такие как С и COBOL. Библиотеки ESQL реентера-бельны и поддерживают потоки, позволяя пользователям писать многопоточные клиентские приложения, поддерживающие одновременно несколько активных соединений с сервером. В результате будут полностью задействованы преимущества многопоточной архитектуры Informix Dynamic Server 2000. Кроме того, библиотеки ESQL являются динамически компонуемыми и для уменьшения размера соответствующих выполняемых модулей используются совместно. На этапе выполнения эти совместно используемые библиотеки можно скомпоновать с несколькими выполняемыми программами, что повышает эффективность и требует меньше оперативной памяти. Кроме того, ESQL включает в себя функции ТР/ХА — Informix Dynamic Server 2000 можно связать с диспетчерами транзакций. В результате достигается поддержка "глобальных" транзакций, то есть транзакций, охватывающих несколько баз данных, а возможно и несколько СУБД разных производителей. РСУБД Informix — первый продукт, предлагающий такой основанный на стандартах интерфейс с диспетчерами транзакций, совместимыми с Xs/Open ХА.

Разработчики приложений могут также создавать многопоточные приложения, применяя для этого INFORMDC-ODBC. Средства INFORMIX-ODBC соответствуют спецификации Microsoft ODBC (Open Database Connectivity), поддерживают все вызовы ODBC API, типы данных и определенный в этой спецификации синтаксис SQL. Для более крупных и сложных приложений INFORMIX-ODBC предусматривает также поддержку MTS (Microsoft Transaction Server).

Аналогично, для создания многопоточных Java-приложений разработчики могут использовать драйвер Informix JDBC. Драйвер Informix JDBC представляет собой основанный на стандартах (JDBC VI и V2), объектно-ориентированный интерфейс Java, который обеспечивает разработчикам приложений и модулей DataBlade полный доступ к серверу базы данных. Он позволяет получить оптимальную производительность и надежность — это "чистая" реализация Java, использующая для соединения с сервером БД его собственный интерфейс.

Интеграция неоднородных систем

В современной высококонкурентной деловой среде немедленный доступ к имеющейся у организации информации нередко имеет критически важное значение для принятия обоснованных решений. Если раньше компании хранили свои данные на мэйнфреймах, то сегодня информация распределена по разным вычислительным платформам и операционным системам, включая патентованные и открытые реляционные и не реляционные базы данных. Для предоставления пользователям Informix Dynamic Server 2000 доступа к корпоративным данным на разнородных серверах БД компания Informix предлагает ПО Informix Enterprise Gateway™. Это семейство продуктов обеспечивает прозрачный доступ к данным, хранимым в базах данных Oracle, Sybase, IMS или IBM DB2. Применяя эти шлюзы, пользователи Informix Dynamic Server 2000 могут легко обращаться к данным, независимо от того, где эти данные находятся.

Открытое взаимодействие с базами данных

Для разработчиков и конечных пользователей, которые развертывают приложения, требующие доступа к базам данных в неоднородной среде, предусмотрен интерфейс Informix ODBC — предлагаемая Informix реализация стандарта Open Database Connectivity (ODBC) 2.5. Благодаря Informix ODBC, любое ODBC-совме-стимое приложение может устанавливать соединение непосредственно с Informix Dynamic Server 2000. При этом поддерживаются динамические операторы SQL — имеется библиотека функций на языке С, позволяющая разработчикам получать динамический доступ к Informix Dynamic Server 2000. Для этого не требуется обработка препроцессором SQL или перекомпиляция исходного кода для каждого независимого источника данных. Учитывая наличие сотен приложений на основе ODBC (для бухгалтерского учета, управления складом, контроля выполнения заказов и т.д.), заказчики получают доступ к самым разнообразным решениям, которые можно выполнять в среде клиент/сервер.

Поддержка разных национальных языков

Реализация поддержки языков Informix GLS (global language support) соответствует спецификации GLS level 4 — стандарту кодирования, поддержтвающего многобайтовые символы. Предлагая поддержку GLS, Informix Dynamic Server 2000 может

сравнивать строки символов, печатать даты и воспринимать денежные значения в соответствии с правилами и форматами, принятыми в стране применения продукта. Для этого не требуется каких-то специальных локализованных версий программного обеспечения Informix. Кроме того, GLS обеспечивает поддержку национальных языков в приложениях баз данных, что позволяет переводить приложения на разные языки при сохранении их функциональности.

Разработка и развертывание приложений Internet

Принимая во внимание растущую популярность Internet, Informix Internet Foundation.2000 предлагает широкий спектр специфических для Internet средств. Эти средства поддерживают основные стандарты компонентной разработки, такие как Java и ActiveX, что превращает данную платформу БД в идеальное решение для развертывания масштабируемых Internet-приложений. В частности, Informix Internet Foundation.2000 предоставляет разработчикам следующие средства:

1. Драйвер Informix JDBC.

2. Специализированный виртуальный процессор Java.

3. Адаптер ActiveX.

4. Модуль Web DataBlade.

Драйвер Informix JDBC

Драйвер Informix JDBC — это библиотека классов Java интерфейсов и для поддержки определяемых пользователем подпрограмм, написанных на языке Java (Java UDR). Для поддержки подпрограмм Java UDR сервер базы данных осуществляет привязку к выполняемым модулям Java сигнатур SQL UDR. Он выполняет отображение между значениями данных SQL и объектами Java, и в результате позволяет передавать параметры и получать возвращаемые результаты. Таким образом, применяющие Java программисты могут создавать приложения с полным доступом к ресурсам сервера. Для этого им не потребуется промежуточный сервер приложений. Драйвер Informix JDBC позволяет им: • создавать корпоративные приложения клиент/сервер, устанавливающие соединение непосредственно с серверами БД Informix;

• создавать апплеты, удаленно выполняемые браузерами HTML и устанавливающие соединение с серверами баз данных Informix;

• создавать объекты Java для работы с новыми типами данных в модулях Datablade.

Кроме того, драйвер Informix JDBC поддерживает JDBC 1.0 и подмножество JDBC 2.0 (интерфейсы прикладного программирования Java для баз данных SQL-типа), а также совместим с SQLJ (спецификацией для связывания Java и хранимых процедур SQL).

Виртуальный процессор Java

Чтобы повысить эффективность выполнения и производительность Java UDR и Java-приложений, компания Informix разработала специализированный класс виртуального процессора под названием JVP (Java virtual processor). Виртуальные процессоры Java (JVP) отвечают за выполнение всех программ Java UDR и Java-приложений общего назначения. Процессоры JVP имеют те же возможности, что и виртуальные процессоры ЦП и могут обрабатывать полные запросы SQL. Каждый JVP имеет встроенную в его код виртуальную Java-машину (Java VM). Такая встроенная архитектура VM позволяет избежать непроизводительных затрат на передачу связанных с Java запросов между виртуальными процессорами ЦП и Java. Для параллельного выполнения программ Java UDR в одном сервере БД может существовать несколько JVP.

Адаптер ActiveX

Адаптер ActiveX преобразует элементы управления ActiveX (программные элементы, соответствующие модели компонентных объектов СОМ) в форму, выполняемую в Informix Dynamic Server 2000. Адаптер ActiveX содержит набор определяемых пользователем подпрограмм, позволяющих ему воспринимать данные от клиента, вызывать соответствующий элемент управления, возвращать результаты, хранить и извлекать постоянные данные. Кроме того, адаптер отображает типы данных и методы элемента управления ActiveX в специальные типы данных и поддерживающие подпрограммы, доступные в SQL. Данный адаптер преобразует базовые типы данных элемента управления из формата СОМ (component object model) в формат данных Informix, а также конвертирует вызовы методов элемента управления в стиле С в вызовы SQL.

Обычно элемент управления ActiveX выполняется в клиентском приложении или на сервере приложений, который управляет соединениями с БД, обрабатывает данные и обновляет базу данных. На Рис. 14 показано, как элемент управления ActiveX выполняется на клиентской системе.

Благодаря адаптеру элемент управления ActiveX выполняется на сервере БД как отдельный поток, имеет доступ к функциям и ресурсам сервера. Клиентские приложения могут выполнять элемент управления непосредственно через запросы SQL без помощи сервера приложений

Размещение элемента управления ActiveX на сервере делает его доступным для всех клиентских приложений и упрощает обслуживание. Поскольку обработка происходит ближе к данным, значительно повышается производительность активно использующих данные элементов управления.

Модуль Web DataBlade

Модуль Informix Web DataBlade предоставляет простейший способ создания поддерживающего Web приложения БД без помощи программирования. Применяя его исчерпывающий набор средств, пользователи могут создавать буквально все, что угодно — от простого внешнего интерфейса на основе запросов до интерактивного Web-сайга, считывающего и обновляющего данные в БД Informix Dynamic Server 2000. Разработчикам приложений не нужно писать шлюзы, используя код низкого уровня. Предлагаемые модулем Web DataBlade теги позволяют им сконцентрировать свои усилия на архитектуре и алгоритмах приложения. Это дает значительную экономию времени при разработке и обслуживании приложений.

Более того, модуль Informix Web DataBlade работает со всеми стандартными Web-бра-узерами и серверами, предлагая открытую среду разработки для создания мощных интерактивных Web-приложений

 


Украинская баннерная сеть
 

[Home]

Сайт поддерживается группой пользователей Информикс на Украине.

Hosted by NO-more.