Скачиваний:
76
Добавлен:
17.06.2016
Размер:
1.12 Mб
Скачать

3.3. Перенос файл-серверных приложений в среду клиент-сервер

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

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

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

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

использование библиотек доступа к серверам БД;

связь с сервером БД через открытый протокол ODBC;

укрупнение файл-серверных приложений.

Чтобы оценить возможности этих способов, рассмотрим их несколько подробнее.

3.3.1. Библиотеки доступа к базам данных

Библиотеки доступа к серверам приложений удобно применять для адаптации файл-серверных приложений, построенных на системах программирования типа Clipper или Clarion.

Система управления записями Clarion достаточно легко связывается с сервером баз данных Btrieve через библиотеку доступа. Нужно только заметить, что Btrieve не является SQL-сервером БД, что затрудняет программирование с использованием этого средства.

Приложения, построенные на Clipper, можно адаптировать с помощью программного интерфейса с выбранным сервером БД. Для примера рассмотрим библиотеку интерфейса Clipper-Oracle.

Интерфейс реализован в виде библиотеки функций, доступных для их использования в прикладных программах, написанных на языке Clipper, и выполняющих все необходимые операции над базой данных Oracle. Функции написаны на языках Clipper и Си.

С помощью функций этой библиотеки можно выполнять следующие операции над таблицами базы данных системы Oracle:

  • подключиться к системе Oracle;

  • вставить в базу данных новую строку;

  • удалить существующую строку;

  • произвести модификацию содержимого полей существующей строки;

  • выполнить поиск строк по заданному точному значению полей;

  • выполнить поиск строк по заданному шаблону значений полей;

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

  • блокировать и разблокировать таблицы;

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

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

Кроме того, существует возможность прямого использования языка SQL, который является основным языком обработки данных не только в системе Oracle, но и в большинстве других развитых СУБД.

Версия языка SQL, реализованная в Oracle, ориентирована на стандарт этого языка и содержит ряд ограничений. Например, оператор Fetch позволяет перемещаться по результирующей таблице только в одном направлении, исключая возвраты назад. Функции библиотеки снимают эти ограничения.

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

Единицей обмена между прикладной программой и базой данных является строка таблицы, которая с точки зрения Clipper является массивом. Каждый элемент массива соответствует одному полю таблицы. Аналогично представляются ключи и поля поиска.

В состав библиотеки входят следующие функции:

INIT () подключение к Oracle;

OPEN () открытие таблицы;

INSERT () добавление строки;

UPDATE () корректировка строки;

DELETE () удаление строки;

SELECT () поиск строки;

NEXT () чтение следующей строки;

SET () чтение строки по относительному номеру;

SKIP () пропуск строк;

FILTER () выбор строк по условию;

GETIND () сохранение индекса;

SETIND () установка индекса;

COMMIT () конец транзакции;

SAVE () установка контрольной точки;

ROLL () откат транзакции;

LOCK () блокировка таблицы;

SQL () выполнение оператора SQL;

CLOSE () закрытие таблицы;

STOP () отключение от Oracle.

Предлагаемые функции не препятствуют использованию собственных средств управления данными Clipper, что позволяет совместно обрабатывать разнородные базы данных. Так, в качестве центральной может использоваться база данных Oracle на большой, мини- или персональной ЭВМ, а в качестве локальной может использоваться база данных Clipper на персональном компьютере пользователя.

В состав интерфейсных средств включен специальный модуль для автономной отладки прикладных программ без системы Oracle. Этот модуль выполняет все функции интерфейса на DBF-файлах, что позволяет разрабатывать и полностью отлаживать программы, используя только систему Clipper на обычном персональном компьютере. Кроме того, эта возможность позволяет разрабатывать прикладные программы сразу в двух вариантах - сетевом и автономном.

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

Соседние файлы в папке Книги