Новый сервер для приложений-долгожителей

Advantage Database Server 6.2 (прежнее название — продукты Extended Systems)

Наталия Елманова

Сейчас многие говорят о сохранении инвестиций, сделанных в свое время в программное обеспечение, инфраструктуру и знания разработчиков, и, похоже, не зря. Как правило, решение о полной замене аппаратного и программного обеспечения в компаниях, где деньги не тратятся попусту, принимается тогда, когда из-за несоответствия IT-инфраструктуры потребностям бизнеса компания начинает нести убытки. Однако, вспомнив о том, что представляла собой автоматизация российских предприятий десять лет назад (сплошные приложения, созданные с помощью Clipper, dBase, FoxPro, Paradox и др.), мы с удивлением обнаружим, что в начале 90-х годов появилось немало очень неплохих по тем временам решений, многие из которых эксплуатируются до сих пор. Отъехав от Москвы километров на сто, можно почти гарантированно найти приложение, написанное на Clipper. Более того, подобные приложения-долгожители во многом устраивают руководителей и сотрудников многих не очень богатых предприятий, поскольку не требуют обновления парка морально устаревшей, но вполне работоспособной вычислительной техники, используемой в качестве клиентских рабочих мест.

Advantage Database Server (ADS), созданный компанией Extended Systems, — это продукт, который может представлять немалый интерес для компаний, по-прежнему эксплуатирующих приложения, хранящие данные в таблицах dBase или Paradox. Это могут быть приложения, созданные с помощью Clipper, dBase, FoxPro либо посредством более современных средств разработки (например, Borland Delphi). Формально ADS — это сервер баз данных, выполняющий запросы клиентских приложений. Фактически же этот сервер представляет собой приложение, которое, обрабатывая пользовательские запросы, может манипулировать как данными, хранящимися в файлах собственного «закрытого» формата, так и файлами формата dBase (с индексами форматов Clipper или FoxPro), в которых хранили данные многие приложения десятилетней давности. Применение такого сервера во многих случаях позволяет не обновлять устраивающие компанию приложения, но при этом пользоваться стандартными преимуществами архитектуры «клиент-сервер», такими как централизованная обработка запросов, контроль ссылочной целостности, возможность выполнения транзакций, а также более высокая производительность и масштабируемость, нежели в случае применения приложений, основанных на использовании файловых серверов. Стоимость этого продукта весьма невысока (лицензия на двух пользователей стоит 249 долл.), однако объем продаж этого продукта составляет 35 млн. долл. в год, что свидетельствует о его немалой популярности.

Каким образом осуществляется доступ к этому серверу из клиентских приложений? Для применения ADS совместно с приложениями, созданными с помощью Clipper, имеются специальный замещаемый драйвер и коммуникационные библиотеки, которые обеспечивают связь c сервером баз данных по протоколам IP и IPX. При этом имеющееся Clipper-приложение следует пересобрать с использованием этих библиотек. Существуют также библиотеки для таких редких продуктов, как FiveWin и Clip-4-Win (средства создания Windows-приложений с Clipper-кодом). Что касается современных средств разработки, для них в комплекте поставки сервера имеются ODBC-драйвер, OLE DB-провайдер, а также компоненты прямого доступа для приложений, созданных с помощью Delphi и C++Builder.

ADS поддерживает операционные системы Windows, Linux и NetWare, может использовать несколько процессоров и поддерживает кластеры NetWare и Windows. Масштабируемость данного продукта довольно высока — известны приложения, где ADS управляет данными объемом 90 Гбайт и обслуживает одновременно 600 пользователей.

Отметим, что ADS представляет собой СУБД, использующую ISAM1 -доступ к данным. Это означает, что данный сервер обладает примерно равной производительностью при навигационном способе доступа и при получении результатов SQL-запросов. А это, в свою очередь, означает, что при переходе с файлового доступа в архитектуру «клиент-сервер», где в качестве сервера применяется ADS, переделка клиентских приложений с целью повышения производительности не потребуется (возможно, сама производительность будет хотя и высокой, но не рекордной).

ADS предоставляет полнофункциональную поддержку транзакций. Отметим, что единственный поддерживаемый уровень изоляции транзакций в этой СУБД — read committed. При реализации других способов изоляции транзакций можно использовать блокировки или временные таблицы. Для всех обновлений данных ADS использует низкоуровневые пессимистические блокировки на уровне одной записи. Можно также при необходимости заблокировать запись вручную.

ADS использует собственный диалект SQL, поддерживающий большую часть операторов SQL-89 и некоторые из операторов SQL-92, а также содержащий ряд собственных расширений (например, математические функции и функции манипуляции со строками). Оптимизатор запросов, встроенный в сервер, использует доступные индексы при выполнении SQL-операторов WHERE и ORDER BY.

В базах данных ADS доступны процедуры (Advantage Extended Procedures, AEP) — их можно писать на любом языке, компилятор которого доступен для платформы, где выполняется сервер, хранить в отдельных библиотеках и присоединять к базе данных. Хранимые процедуры и триггеры в традиционном понимании в этом сервере отсутствуют, однако обещано, что в следующей версии сервера они появятся, равно как и AEP в контексте транзакций.

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

В состав ADS входит средство администрирования сервера и редактирования данных и метаданных — Advantage Data Architect.

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

ADS реализован в двух редакциях: помимо собственно сервера баз данных, существует бесплатный продукт Advantage Local Server, предназначенный для однопользовательских приложений. Этот сервер обладает всеми свойствами ADS, за исключением поддержки транзакций (в действительности он просто игнорирует команды StartTransaction, Commit, Rollback).

В заключение отметим, что Advantage Database Server нетребователен к ресурсам, обладает неплохим быстродействием и не нуждается в администрировании. Именно поэтому данный продукт легко может применяться в качестве встроенной СУБД, а также как сервер баз данных при переносе в архитектуру «клиент-сервер» приложений, использовавших данные Paradox, dBASE, Access, поскольку в этом случае не потребуется переделки этих приложений.

КомпьютерПресс 1'2003