Программы - как люди. Талантливые и активные (для программ это означает удачный маркетинг) становятся широко известными. Талантливые и пассивные известны только близкому окружению. Посредственные и активные забываются очень быстро. У программ есть периоды рождения, взросления, расцвета и старения. Они могут вызвать целый сонм подражаний. Могут образовать большие и сплоченные семьи. Разными могут быть программы.
Поговорим о Clipper. Он вызывает образ седовласого мощного дядюшки, хотя и ушедшего на покой (к сожалению, переехал в новый дом и, оторвавшись от старых корней, плохо перенос этот переезд), но вполне работоспособного (дает себя знать старая закалка). Изрядно потрудившись в свое время (до сих пор сделанное им работает и, надо заметить, весьма успешно), унаследовав энергию от своей семьи (dBase), он сам привнес в нее немало новых "живительных соков" (чтобы не утомлять, отмечу только главные: компилятор, открытый Си-интерфейс, объектно-ориентированный подход, кодоблоки, архитектура RDD - замещаемых драйверов баз данных). Его идеи были плодотворны и помогли молодым племянникам развить начатое им дело.
Племянники (так называемые независимые фирмы) гурьбой толпились вокруг дядюшки - несколько специализированных журналов, сотни коммерческих разработок инструментальных средств для Clipper во всем мире, а в свое время в СНГ - десятки. Чего здесь только не было: генераторы приложений и генераторы отчетов; интегрированные оболочки; библиотеки общего назначения; графические, коммуникационные и прочие специализированные библиотеки; различные RDD. Объединяет все эти разработки одно - стремление повысить мощность, скорость и надежность приложений, сделанных на Clipper. Наиболее рьяные приобщают дядюшку к прогрессу, открывают путь к новым технологиям. В результате появляются такие технологии, как:
Advantage Database Server, клиент-серверная технология для DBF-файлов;
FlagShip, запуск Clipper-приложений на Unix-платформах;
FiveWin, настоящий Clipper для Windows;
UltiRoute, построение приложений, работающих с SQL-серверами.
Рассмотрим подробнее особенности первого из перечисленных продуктов.
Вплоть до последнего времени было только две альтернативы повышения производительности приложений на базе языка Xbase: приобретение более мощной аппаратуры или переход на традиционную клиент-серверную СУБД (типа Oracle корпорации Oracle или DB2 фирмы IBM).
Advantage Database Server фирмы Extended Systems открыл третий вариант: реализованный в виде загружаемого NLM-модуля сервер базы данных с заменяемым драйвером базы данных для CA-Clipper фирмы Computer Associates. Воспользовавшись этим подходом, можно, не предъявляя дополнительных требований к опыту программистов и пользователей и на имеющейся вычислительной технике добиться значительного увеличения скорости вычислений при сравнительно небольших затратах.
В клиентской части (программы на рабочих станциях) подключение Advantage Database Server сводится к простой перекомпоновке модулей существующих приложений. Даже если вы пользуетесь другим диалектом Xbase - dBASE или FoxPro, - много проще преобразовать исходные тексты в CA-Clipper, чем в другой язык программирования типа Си, Си++ или в SQL. В серверной части Advantage Database Server требует выделения всего лишь 50 Кб на каждого пользователя, а для его установки достаточно скопировать NLM-модуль на сервер и набрать с клавиатуры консоли сервера команду LOAD Advantage Xbase Server.
Как поживаете в среде клиент-сервер?
Архитектура клиент-сервер дает много преимуществ в производительности. Во-первых, поскольку сервер оптимизирует выполнение функций обработки данных, нет необходимости в оптимизации на рабочих станциях: правильно сконфигурированный сервер позволит быстро получить результаты обработки запроса на рабочей станции даже на базе 286-го процессора. Во-вторых, поскольку рабочая станция обрабатывает не все промежуточные данные, существенно снижается сетевой трафик. И наконец, убрав узкое место в сети, Advantage Database Server восстанавливает в правах многие операторы из "лексикона" Xbase, например, SET FILTER TO и LOCATE, полезность которых при работе в клиент-серверной системе оставалась под вопросом из-за "рекордных" перегрузок сети при исполнении этих операций.
Перенос программ, написанных для Xbase, в систему с архитектурой клиент-сервер - палка о двух концах. Многое из того, что работало медленно, например часто используемые операторы APPEND, REPLACE и COMMIT, начинает работать намного быстрее, тогда как другие действия, в частности открытие файлов, замедляются, поскольку сервер должен вести таблицу, обрабатывать информацию о пользователях и выполнять определенные проверки. Впрочем, этими ограничениями вполне можно пренебречь. В результате на некоторых задачах производительность несколько падает, на других - остается неизменной, на третьих - значительно увеличивается.
Уязвимость индексного файла - старая болезнь сетевых систем на основе Xbase. Поскольку при внесении изменений в файл на сервере все манипуляции с файлом на низком уровне приходится выполнять рабочей станции, всегда существует риск ее сбоя в середине процесса внесения изменений, что может разрушить индексный файл и даже повредить файл данных. Операция может завершиться и без ущерба для файлов, но изменения будут внесены в файл не полностью. Advantage Database Server обходит эту проблему, перехватывая все запросы на запись в файл до тех пор, пока не решит, что все изменения уже запрошены. Пока Advantage Database Server не получит сообщение о том, что все изменения внесены, он будет игнорировать любые запросы на изменения файлов, что исключает повреждения индексов и частичное внесение изменений. Обработка транзакций, при которой либо внесены все изменения, либо - ни одно из них, реализована на уровне транзакций ОС NetWare. Это позволяет при помощи трех новых команд - BEGIN TRANSACTION, ROLLBACK TRANSACTION и COMMIT TRANSACTION - получить возможность манипуляции данными на уровне логики приложения.
Простота использования
NLM-модуль Advantage Database Server очень прост в установке и обслуживании. Он выводит на экран необходимые сведения о своей работе в настоящее время и статистику за некоторый промежуток времени.
Для встраивания Advantage Database Server в программу, написанную на CA-Clipper, достаточно перекомпоновать объектные модули с библиотекой Advantage Database Server для CA-Clipper. Перекомпиляции модулей не требуется. Однако во многих случаях для того, чтобы воспользоваться в полной мере всеми дополнительными преимуществами Advantage Database Server, придется вносить некоторые изменения в исходные тексты.
Advantage Database Server может работать совместно с программами на CA-Clipper, Microsoft FoxPro, Borland dBASE. Программа поддерживает форматы индексных файлов CA-Clipper NTX и FoxPro CDX/IDX. Индексные файлы dBASE не поддерживаются: ни NDX-, ни более современный MDX-формат - хотя разделяемое использование файлов данных dBASE реализовано.
Наибольшая выгода от применения Advantage Database Server может быть получена для систем с транзакциями: учетных, бухгалтерских, складских. Наименее выгодно применение Advantage Xbase Server, скорее всего, в системах сбора и анализа данных, типа генератора отчетов о проданной продукции. Однако большинство реальных систем сочетают в себе особенности тех и других, и чем интенсивнее поток транзакций, тем более заманчивым представляется даваемый Advantage Xbase Server выигрыш в производительности.
Сергею Попову, директор по программному обеспечению фирмы SoftScribe International, можно позвонить по телефону: (0812) 245-7873.
Сергей Попов
ПОВЫШЕНИЕ СКОРОСТИ ИМЕЮЩИХСЯ ПРИЛОЖЕНИЙ НА XBASE
+--------------------------+-----------------------------+----------------------------+
|Вариант № 1 |Вариант № 2 |Вариант № 3 |
| | | |
|Более мощная техника |Переход на традиционные |Переход на Advantage |
| |приложения клиент-сервер |Database Server |
+--------------------------+-----------------------------+----------------------------+
|За |За |За |
| | | |
|Пользователи работают с |Быстро и надежно. |Недорого. |
|привычными приложениями. | | |
| |Практически не ограничено |Быстро и надежно. |
|Программисты и служба |пространство для роста | |
|сопровождения не |информационных сетей |Простая реализация. |
|загружаются | |Пользователи работают с |
|дополнительной работой | |привычными приложениями. |
| | |Программисты и служба |
| | |сопровождения не |
| | |загружаются дополнительной |
| | |работой |
+--------------------------+-----------------------------+----------------------------+
|Против |Против |Против |
| | | |
|Дорого. |Дорого. |Не эффективно при низком |
| | |качестве программ или |
|Замена техники может |Приходится полностью |неадекватной модели данных |
|вызвать затруднения. |переделывать приложения. | |
|Улучшение может быть лишь |Большие затраты на | |
|временным |переучивание программистов | |
+--------------------------+-----------------------------+----------------------------+
Фирма Extended Systems образована в 1984 г. Основная область ее деятельности связана с разработкой и производством сетевых и несетевых систем коллективного доступа к принтерам, разработкой факс-серверов и программных продуктов для СУБД. Первую коммерческую версию Advantage Xbase Server фирма выпустила в 1993 г. На первый квартал 1997 г. намечен перенос сервера на платформу Windows NT