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

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

Выбор архитектуры клиент-сервер

Перед переходом на архитектуру клиент-сервер разработчику следует подумать о том, какой тип и размер будет иметь создаваемое приложение, и о типе доступа к информации. Этот вариант следует внимательно рассматривать в случаях, перечисленных ниже.

1. В случае, если размер большинства таблиц в БД может превысить 25 Мбайт, применение архитектуры клиент-сервер может оказаться разумным. Чем больше размер базы данных, тем менее оправдано использование базы данных на файл-сервере, т.к. при этом каждый раз все хранящиеся в таблицах данные будут перемещаться по сети.

2. Технология клиент-сервер является подходящим выбором, если необходимо обеспечить возможность удаленного доступа к данным с использованием средств связи. Передача данных на большое расстояние дорого стоит, и естественно желание разработчиков свести временные затраты к минимуму.

3. Технологию клиент-сервер следует рассматривать в том случае, если разрабатываемая система должна поддерживать работу с группой активных пользователей. Если с системой будет работать более 20-30 пользователей, одновременно обращающихся к БД в любой момент времени, то использование БД на файл-сервере приведет к возникновению проблем с производительностью.

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

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

В качестве программного обеспечения для сервера следует выбирать продукт, обладающий сильной поддержкой со стороны независимых производителей. Это дает разработчику большую свободу при выборе инструментов для создания клиентских приложений и при проектировании инфраструктуры. Также следует убедиться, что БД может работать на разных аппаратных платформах. Informix, Oracle Server, SQL Server и SQL Base обладают этими свойствами. Из перечисленных систем наибольшее распространение в нашей стране получили Oracle и Informix. Обычно Oracle применяется для построения более крупномасштабных БД.

Построение инфраструктуры системы клиент-сервер

В данном контексте под инфраструктурой понимается операционная система на сервере, сетевой протокол и аппаратная часть сервера. Ниже перечислены основные правила, которые следует соблюдать при планировании инфраструктуры.

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

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

3. В качестве операционной системы разработчик должен использовать ОС, с которой он хорошо знаком. В настоящее время идут активные дискуссии по поводу того, какая ОС больше всего подходит для сервера рассматриваемой архитектуры. Наиболее часто упоминаются UNIX, Windows NT и OS/2 (при этом использование OS/2 ограничивает выбор компьютерами на платформе Intel). UNIX - наиболее зрелая ОС. Она поддерживает многопроцессорную обработку и работает на широком спектре различных аппаратных платформ. Это может быть Intel-машина или RISC-сервер. Проблема UNIX - его сложность. Windows NT также поддерживает множество платформ и процессоров. Недостатком является новизна этой ОС.

4. Следует обратить пристальное внимание на сетевые протоколы, используемые выбираемой СУБД. Несмотря на то, что большинство СУБД использует стандартные протоколы, такие как IPX или TCP/IP, иногда им требуются собственные драйверы. В том случае, если локальная сеть работает под управлением Novell NetWare, разработчику следует использовать СУБД, работающую с IPX. В противном случае надо выбирать систему, поддерживающую TCP/IP. Следует воздерживаться от применения протоколов NetBIOS и NetBEUI, т.к. они используют слишком много памяти на клиентских машинах и недостаточно надежны при работе в больших сетях.

5. В качестве сервера следует выбирать машину, специально спроектированную для выполнения функций сервера, а не просто быстрый ПК. Эта машина должна быть оснащена достаточным количеством оперативной памяти для поддержки кэширования и буферизации исполняемых процессов. Сервер будет содержать самое ценное - данные. При этом производительность является критическим параметром. Так как процесс создания резервной копии базы данных достаточно сложен, можно рассмотреть вариант использования дисковых массивов RAIDs (Redundant Arrays of Inexpensive Disks). Данные будут копироваться на несколько дисков для повышения надежности хранения информации.

Инструменты для создания клиентской части

Существует большое количество инструментов для построения клиентских приложений, ориентированных как на профессиональных разработчиков, так и на конечных пользователей. Инструменты разработчика различаются по форме и реализуемым функциям. Это языки программирования, редакторы экранов, CASE-инструменты. Инструменты для конечных пользователей обычно позволяют производить анализ данных, построение отчетов и извлечение данных из БД. Так как каждый из продуктов реализует различный набор функций, разработчики часто используют в работе сразу несколько подобных инструментов. Наиболее известными в среде Windows являются PowerBuilder фирмы PowerSoft, Microsoft Visual Basic и Gupta SQL Windows. Каждый из этих продуктов обладает сильной поддержкой со стороны независимых поставщиков. Персональные СУБД типа Access и Paradox могут использоваться как в качестве инструмента для доступа к таблицам, хранящимся на сервере, так и для создания полнофункциональных клиентских приложений. Некоторые вновь появляющиеся продукты типа Visual FoxPro содержат инструментарий, позволяющий автоматически переводить свои базы данных в архитектуру клиент-сервер (upsizing). Возрастающую популярность приобретает в последнее время объектно-ориентированная среда разработки приложений NewEra фирмы Informix. В качестве продуктов, ориентированных на конечного пользователя, следует отметить Gupta Quest и PowerSoft PowerMaker (построение отчетов); Trinzic Forest & Trees (доступ к таблицам БД для анализа данных); электронные таблицы типа Lotus 1-2-3 и Microsoft Excel/Access.

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