2. Общие принципы предлагаемой технологии
Одним из основных требований к разрабатываемой технологии и инструментарию было минимизировать, а, по возможности, и совсем исключить необходимость внесения изменений в текст приложения. Учитывая, что многие инструменты для разработки xBase-систем поддерживают концепцию замещаемого драйвера (библиотеки) доступа к данным (так называемого, RDD), было решено использовать идею замены стандартного драйверна на драйвер, который с одной стороны обеспечивает доступ к серверу Informix, а с другой стороны обеспечивает стандартный для xBase-систем программный интерфейс манипулирования данными.
На рынке уже существует ряд инструментов подобного рода, но их использование было невозможным по следующим причинам:
Отсутствовало универсальное решение для MS DOS и MS Windows.
На западе xBase-технологии занимают ничтожно малую часть рынка, поэтому технологичность решений «оттуда» была крайне низкой, а отечественные разработки отсутствовали.
Существующие решения не были оптимизированы под конкретный сервер БД, поэтому производительность была неприемлемо низка.
Существующие решения либо требовали значительного изменения кода, либо не обеспечивали одновременную модификацию данных несколькими пользователями.
Существующие ограничения были серьезными, с другой стороны существовали реальные заказчики на данную технологию. Поэтому было принято решение разрабатывать свои собственные инструментальные средства и соответствующую технологию. Основная идея разработанной технологии состоит в перенаправлении (и интерпретации) стандартных запросов к xBase-файлам в запросы к SQL-серверу.
На первом этапе было решено обеспечить портирование Clarion- и Clipper-приложений, как одних из самых распространенных. Для этого следовало разработать библиотеку, которая динамически интерпретирует поступающие Clipper-запросы и перенаправляет их в сервер базы данных Informix. Это позволило бы использовать существующие Clipper-приложения без переписывания исходного кода этих приложений. В дальнейшем, учитывая схожесть технологии работы с данными в Clipper, Clarion, FoxPro и т.д. можно расширить применимость данной технологии и для других xBase-систем.
Другим принципиальным решением была идея использовать не двухуровневую, а трехуровневую схему, когда замененная библиотека связывается не непосредственно с сервером базы данных, а с некоторым промежуточным слоем. Следующие факторы сыграли решающую роль при выборе трехуровневой архитектуры вместо двухуровневой:
Повышение уровня безопасности и конфиденциальности данных;
Возможность оставить в эксплуатации старые, но достаточно надежные, MS DOS‑компьютеры, которым для прямой связи с сервером Informix потребовалось бы ставить Informix Connect и, как следствие, устанавливать MS Windows.
Возможность повысить производительность за счет буферизации части данных на уровне промежуточного звена.
В настоящее время, данная технология и инструмент уже полностью разработаны и обеспечивают поддержку Clipper 5.2 и Clarion 3 или 4 (или выше) на стороне клиента и ОС SCO Unix или Solaris на аппаратуре Intel в качестве платформы для промежуточного слоя. В ближайшее время будут доступны замещаемые библиотеки для FoxPro и реализация промежуточного слоя на MS Windows NT.
- 4.5. Упражнения 67
- Глава 6. Устройство Informix Dynamic Server 165
- Глава 7. Эксплуатация информационных систем 177
- Глава 1 Обзор основных архитектур баз данных
- 1.1. Архитектура на основе разделяемых файлов
- 1.2. Архитектура “Хост-терминал”
- 1.3. Архитектура “Клиент-Сервер”
- 1.4. Архитектура с использованием сервера приложений (трехзвенная архитектура)
- 1.5. Упражнения
- Глава 2 Модели данных
- 2.1. Уровни восприятия данных
- 2.2. Иерархическая модель данных
- 2.3. Сетевая модель данных
- 2.4. Реляционная модель данных
- 2.5. Объектно-реляционная модель данных
- Глава 3 Реализация информационных систем на основе продуктов Informix Software
- 3.1. Обзор продуктов Informix
- 3.2. Варианты построения систем
- Internet/Intranet-конфигурация
- 3.3. Выбор оптимальной конфигурации
- Глава 4 Математические основы реляционных субд
- 4.1. Основные понятия
- 4.2. Ключи
- 4.3. Основные операции над таблицами и их интерпретация
- 4.4. Нормализация
- 4.5. Упражнения
- Глава 5 Язык sql
- 5.1. Типы данных, доступные в sql
- 5.3. Основные sql-операторы для доступа и модификации данных
- 5.4. Управление транзакциями
- 5.5. Продвинутые варианты оператора поиска
- 5.5.1. Поиск по нескольким таблицам
- 5.5.2. Устранение повторения данных в операторе select
- 5.5.3. Вычисления внутри оператора select
- 5.5.4. Логические выражения в условии sql-операторов
- 5.5.5. Слияние двух выборок
- 5.5.6. Сортировка выборки
- 5.5.7. Вставка в таблицу нескольких строк одновременно
- 5.6. Использование sql в языках программирования
- 5.7. Программирование сервера базы данных
- 5.7.1. Динамический sql
- 5.7.3. Хранимые процедуры
- 5.7.4. Триггеры
- 5.8. Ограничители (задание целостности на уровне схемы)
- 5.9. Разграничение в sql прав пользователей
- 5.9.1. Права доступа
- 5.9.2. Права на уровне базы данных
- 5.9.3. Права на таблицы
- 5.9.4. Права на хранимые процедуры
- 5.9.5. Кто и как следит за соблюдением прав
- 5.9.6. Механизм ролей
- 5.9.7. Псевдотаблицы (view)
- 5.9.7. Синонимы
- 5.10. Управление одновременным доступом к данным
- 5.10.1. Что бывает, когда несколько человек одновременно пытаются обновить одни и теже данные
- 5.10.2. Открытие базы данных только для себя
- 5.10.3. Блокирование таблицы
- 5.10.4. Механизм блокирования записей и уровни изоляции
- 5.10.5. Управление ожиданием снятия блокировок
- 5.10.6. Тупиковые ситуации
- 5.11. Повышение скорости обработки запросов.
- 5.11.1. Индексы
- 5.11.2. Буферизация журнала транзакций
- 5.11.3. Блокировка на уровне записей и страниц
- 5.11.4. Эффективное построение запросов
- 5.11.5. Сортировка и поиск по коротким полям. Классификаторы
- 5.12. Объектное расширение sql в Informix ds/Universal Data Option
- 5.12.1. Зачем нужна поддержка объектов в серверах бд?
- 5.12.3. Внедрение объектно-ориентированной технологии
- 5.12.4. Реализация объектного подхода в Informix
- Informix ds/Universal Data Option - объектно-реляционная субд
- 5.12.5. Итак…
- Глава 6. Устройство Informix Dynamic Server
- 6.1. Внутренняя архитектура dsa
- 6.2. Механизм хранения данных
- 6.3. Инсталляция продукта
- 6.4. Запуск и останов сервера
- 6.5. Работа с русским языком
- Глава 7. Эксплуатация информационных систем
- Администрирование серверов баз данных
- 7.2. Обеспечение сохранности данных.
- 7.2.1. Технологии постоянного дублирования
- 7.2.2. Архивация
- 7.2.3. Так как же обеспечить сохранность данных?
- 7.3. Архивирование и восстановление данных
- 7.3.1. Что нужно архивировать
- 7.3.2. Утилиты архивации и восстановления
- 7.3.3. Создание архивов утилитой ontape
- 7.3.4. Восстановление из архивов утилитой ontape
- 7.3.5. Как узнать “когда”?
- 7.3.6. Практические советы
- 7.4. Средства контроля за доступом
- 7.4.1 Как работает аудитинг?
- 7.4.2. Конфигурирование списков протоколируемых событий
- 7.4.3. Задание файлов, запуск и остановка механизма аудитинга
- Анализ протокола
- 7.4.5. Практические советы или Что делать, если вы хотите…
- 7.5. Реагирование на чрезвычайные ситуации
- 7.6. Мониторинг текущего состояния сервера базы данных
- 7.6.1. Кто работает с сервером базы данных
- 7.6.2. Сколько памяти использует сервер бд
- 7.6.3. Сколько свободного места имеется у сервера бд
- 7.7. Достижение требуемой производительности
- 7.7.1. Как узнать, что ждет некоторый запрос
- 7.7.2. Как выяснять причины падения производительности
- 2. Общие принципы предлагаемой технологии
- 3. Как портировать приложение