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

 

Поговорим о 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

Версия для печати