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


ОПЕРАЦИОННЫЕ СИСТЕМЫ
АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
СЕТЕВЫЕ ПРОТОКОЛЫ
БАЗЫ ДАННЫХ КЛИЕНТ-СЕРВЕР
СЕРВЕР SQL
ORACLE
DB2/2
SQLBASE
WATCOM SQL
ДРУГИЕ ПОСТАВЩИКИ

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

Помочь в решении первого, основного вопроса может моя статья "Множество вариантов" (февраль 1994), где изложены основы технологии клиент-сервер. Однако, сделав выбор в пользу этой технологии, вы окажетесь перед огромным количеством альтернатив. Вам придется определить аппаратуру и программное обеспечение, из которых и будет построена конкретная система клиент-сервер.

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

Весь процесс принятия решения "с нуля" состоит их четырех шагов. Порядок зависит от начального уровня, ему можно уже не следовать, если определена платформа или операционная система.

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

На втором этапе выбирается операционная система. Этот выбор зависит от СУБД, с которой вы работаете, и от приложений, которые вы знаете. Конечно, очень хорош вариант, при котором подходящая СУБД работает под знакомой операционной системой и Вам не нужно переучиваться. Однако часто бывает так, что требуемые свойства может обеспечить только некоторая определенная СУБД и ее не поддерживает ни одна из используемых вами операционных систем. В этом случае, оценивая время установки системы клиент-сервер, нужно учесть и дополнительное время на освоение новой операционной системы.

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

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

Большинство СУБД клиент-сервер поддерживают стандартные сетевые протоколы, хотя для них может требоваться некий драйвер протоколов, работающий уровнем выше, чем сетевой протокол. Вы можете выбрать СУБД, для которой требуется протокол, никогда ранее не применявшийся в вашей локальной сети, например, TCP/IP. Тут уже придется решать, заслуживает ли дополнительная надстройка для управления двумя сетевыми протоколами траты сил и времени и не усложнит ли она сверх меры всю систему. Возможно, что это тяжелое решение придется принять и вернуться к выбору другой СУБД.

ОПЕРАЦИОННЫЕ СИСТЕМЫ

В отличие от тех дней, когда архитектура клиент-сервер была только разработана для ПК и единственной доступной операционной системой была OS/2, теперь есть из чего выбирать. Базы данных клиент-сервер работают под всеми ОС NetWare 3.1x и выше, Windows NT и многими разработками UNIX для ПК или рабочих PISC-станций. Базы данных клиент-сервер можно развернуть и на миникомпьютерах и мейнфреймах, впрочем, здесь эти системы рассматриваться не будут.

Практически все поставщики баз данных для систем клиент-сервер предлагают поддержки ОС OS/2, и большинство уже имеет модифицированные версии, позволяющие использовать все возможности 32-разрядной OS/2 2.1. OS/2 - это подходящая платформа для реализации сервера, хотя все же, если ваша локальная сеть не работает под OS/2, вам придется использовать дополнительный сетевой протокол для связи с сервером под OS/2.

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

Наибольшие шансы стать одной из лучших платформ для систем клиент-сервер имеет Windows NT. Кроме реализации для ПК, основанных на аппаратуре фирмы Intel, уже существуют версии NT для RISC-платформ. Это позволяет начать с ПК в качестве сервера и переместиться на большую систему по мере роста базы данных, не меняя реализации сервера. Это много лучше, чем подбирать подходящую базу данных для новой платформы. NT пока остается достаточно новой, и только время покажет, оправдает ли она ожидания.

Для операционной системы сервера годятся также и многочисленные версии UNIX. Многие поставщики систем клиент-сервер предлагают версии своего программного обеспечения, работающего на Unix-системах на базе ПК. Однако, выбрав UNIX для сервера, выберите и RISC в качестве аппаратного обеспечения, то есть систему, не подстроенную под ОС, а рассчитанную для нее с самого начала.

АППАРАТНОЕ ОБЕСПЕЧЕНИЕ

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

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

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

Если суммировать все перечисленное, получится, что базовую платформу сервера должны образовывать хотя бы процессор 80486/66 МГц с 16 МБ оперативной памяти и 500 МБ быстрой памяти на жестких дисках. Скорость диска определяется исключительно вашими организаторскими способностями и возможностями вашего кошелька. Желательно использовать RAID-архитектуру для обеспечения дополнительного уровня защиты данных.

Рабочую станцию или RISC-сервер также можно использовать в качестве сервера для систем клиент-сервер, хотя, как правило, RISC-платформа усложняет систему в целом. Это связано с необходимостью применять другую операционную систему и другие сетевые протоколы (обычно TCP/IP).

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

СЕТЕВЫЕ ПРОТОКОЛЫ

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

Другое дело - используемый сетевой протокол. Большинство протоколов для локальных сетей было разработано еще до появления систем клиент-сервер. Например, IPX и другие сетевые системы фирмы Xerox ориентированы скорее на скорость передачи, чем на особенность информационного обмена между двумя приложениями. Рассчитанный на это NetBIOS, однако, не может переносить большие объемы данных. Ни в одном протоколе не предусмотрены такие объемы данных, какие передаются иногда между клиентом и сервером. Поэтому, для того чтобы привести возможности операционной системы сети, основанной на ПК, в соответствие со стандартными требованиями, часто требуется дополнительная поддержка протокола.

К числу средств, применяемых для выхода из этого затруднения различными поставщиками, относится, например, программное обеспечение, разработанное Microsoft и IBM, для расширения возможностей обмена между процессами OS/2. Оно называется Named Pipes (Именованные Каналы) и обеспечивает связь между клиентом и сервером на OS/2 на Windows NT. Named Pipes встроены в операционную систему сетей этих компаний и единственное дополнение, нужное для нее, не рабочей станции - это драйвер поддержки интерфейса между приложением и протоколом. При использовании другой сетевой операционной системы, например, NetWare, придется загрузить любой драйвер поддержки Named Pipes из числа предлагаемых поставщиком.

Другие поставщики СУБД для систем клиент-сервер разрабатывают свои собственные протоколы клиент-сервер, работающие совместно с драйверами сетевых протоколов. Они могут занимать от 20 КБ оперативной памяти рабочей станции до 200 КБ, в зависимости от варианта поставки.

Есть и поставщики, использующие "родной" протокол IPX в качестве протокола для обмена сообщениями. Однако это недешево стоит, так как он не был изначально рассчитан на организацию связи в системе клиент-сервер и, как правило, лишен одной или нескольких характеристик, требуемых для протоколов, разработанных специально для систем клиент-сервер.

Некоторые системы клиент-сервер, в особенности основанные на UNIX, используют протокол TCP/IP. Но TCP/IP не рассчитан на большинство локальных сетей на ПК, и если Вы собираетесь развертывать такие сети, учтите, что понадобится выделить на рабочей станции дополнительную память под драйверы.

Требования к дополнительной оперативной памяти рабочей станции могут оказаться решающим фактором при выборе программного обеспечения системы клиент-сервер. Однако значимость этого показателя можно свести практически к нулю, например, поставив Windows или OS/2 на системы клиента и получив таким образом преимущества как расширенной памяти систем класса 80286 и выше, так и системы обработки виртуальной памяти. Большинство поставщиков реализуют свои драйверы протоколов в формате Dynamic-Link Library (DLL) системы Windows и имеют также драйверы OS/2. Так или иначе, следует быть готовым к тому, что при установке системы клиент-сервер вам понадобится некий специализированный протокол.

БАЗЫ ДАННЫХ КЛИЕНТ-СЕРВЕР

Многие известные СУБД работают в качестве баз данных систем клиент-сервер, каждая со своими преимуществами и недостатками. Список таких СУБД открывают Microsoft и Sybase (Emeryville, CA) SQL-серверы, Oracle (Redwool Shores, CA) и IBM DB2/2. По существу, следующая часть этой статьи - это не что иное, как краткий обзор многих СУБД, их истории, платформ и сетевых протоколов. (Детальное описание каждой легко получить, обратившись к соответствующему поставщику или найдя подходящую книгу).

СЕРВЕР SQL

Первой СУБД для систем клиент-сервер была Sybase SQL Server. Она была задумана и первоначально разработана под UNIX, но внимание компьютерного мира привлекла версия для OS/2, разработанная в 1988 году совместно Microsoft и Sybase. По соглашению о совместной работе, Microsoft взял на себя разработку версий SQL-сервера для своих операционных систем, а Sybase - для UNIX и VAX/VMS.

Опора на SQL-сервер позволила Microsoft быстро занять первое место среди продавцов СУБД на ПК. Microsoft SQL-сервер пользуется наибольшей поддержкой среди поставщиков приложений клиента третьих компаний. В прошлом незначительные различия между версиями Microsoft и Sybase делали затруднительным для одних и тех же приложений клиента поддержку обеих версий, но эти различия со временем сделались практически незаметными.

Сервер Microsoft SQL 1.0 вначале был основан на коде Sybase 3.0, но как только Sybase предложила свою версию 4.2, Microsoft немедленно перешел на более высокий уровень для уменьшения различий между двумя версиями. Sybase продолжала совершенствовать свое программное обеспечение, добавляя различные возможности, в том числе многие, разработанные Microsoft. Наиболее широко используется сейчас версия ее матобеспечения под номером 4.9. Microsift, в свою очередь, продолжал совершенствование OS/2, а также развитие новыми возможностями Windows NT; Sybase поставила на поток версию NetWare NLM. В результате два продукта двух компаний - 4.9 Sybase и 4.2 Microsoft - являются функционально эквивалентными.

Версия Microsoft OS/2 сервера SQL работает под OS/2 1.3. Она будет работать и под OS2/2 версии 2.1, но это 16-разрядное приложение, не обладающее всеми преимуществами 32-разрядной реализации. Версии OS/2 2.1 сейчас еще нет. Microsoft предложил 32-разрядную версию сервера SQL для NT в середине 1993 года. В качестве первичного протокола сервера Microsift SQL используется Named Pipes, а также поддерживаются IPX и TCP/IP, при которых, однако, теряются некоторые возможности защиты.

Sybase NLM - версия сервера Microsoft SQL работает под NetWare 3.11 и выше и использует IPX или TCP/IP и их протоколы. Кроме того, сервер Sybase SQL может работать и под более чем 100 различных версий UNIX и использованием протокола TCP/IP.

В начале 1993-го Sybase объявила о создании System 10, как совершенно новой версии, полностью обновляющей возможности сервера SQL по поддержке больших баз данных и распределенной обработке данных. Помимо этого, System 10 развивала возможности Transact-SQL ("родного" языка сервера SQL), приведя его в соответствие с принятыми в настоящее время стандартами ANSI SQL. System 10 включает в себя семейство родственных продуктов, которые обеспечивают дополнительную поддержку распределенной обработки. В настоящее время System 10 может работать и с некоторыми UNIX-системами. К концу года Sybase планирует выпуск 10.0 для всех операционных систем, поддерживаемый сейчас 4.9.

В апреле 1994 года компания Microsoft объявила, что она приступает к разработке своей собственной базы данных для сервера. Возможно, что будущие версии сервера Microsoft SQL (в том случае, если они будут продолжать носить это имя) будут иметь мало общего с версиями Sybase. Со временем, пользователи серверов SQL могут оказаться перед выбором либо продолжать работу с продуктами Microsoft, либо полностью перейти к технологии Sybase SQL Server.

ORACLE

Реляционная СУБД ORACLE была первой коммерческой системой управления базами данных. Разработанная под VAX/VMS фирмы Digital, она сохранила свою первоначальную платформу, хотя теперь может работать практически на всех машинах, от ПК до мейнфреймов IBM, включая большинство вариантов UNIX.

Вскоре после объявления о разработке первого сервера SQL Oracle адаптировала Oracle 6.0 RDBMS к требованиями систем клиент-сервер и предложила версию OS/2 1.x. Не так давно были предложены также версии Oracle 6.0 для 32-разрядной NetWare NLM и для OS/2 2.x. Используемый Oracle собственный коммуникационный протокол SQL*Net поддерживает практически все сетевые протоколы, что делает Oracle одной из наиболее независимых от сетевой организации баз данных для систем клиент-сервер.

Oracle имеет еще одно существенное преимущество - масштабируемость. Все ее версии идентичны по функциям и характеристикам, что делает возможным доступ к любому приложению, разработанному для одной из версий, через SQL*Net. Практически это означает, что можно легко перенести базу данных на более мощную платформу, не меняя ни ее саму, ни приложений клиента, имеющих к ней доступ. К сожалению, при всех преимуществах, у Oracle есть один большой недостаток - она является неимоверным пожирателем ресурсов, занимая почти в два раза больше памяти, чем любая из доступных баз данных для систем клиент-сервер.

Oracle 7.0 была разработана специально для поддержки архитектуры клиент-сервер. В конце 1992 года появилась первая версия под операционную систему VMS, затем, в конце 1993-го, последовали версии под OS/2 и NetWare. Все версии 7.0 так или иначе обеспечивают тот же уровень поддержки систем клиент-сервер, что и сервер SQL, при улучшенных, по сравнению в Oracle 6.0, характеристиках работы и потребления ресурсов. Уже во время написания этой статьи стало проявляться влияние Oracle системы на рынок систем клиент-сервер, а разногласия между Sybase и Microsoft могут помочь Oracle занять такие же позиции на рынке матобеспечения систем клиент-сервер, какие она занимает сейчас на рынке баз данных.

DB2/2

Первые версии OS/2 фирмы IBM были фактически либо операционными системами, либо Extended Editions. Последние включали в себя три основных компонента, в том числе СУБД OS/2, называвшаяся Database Manager (DM). Первоначально она была самостоятельным продуктом, в дальнейшем ее возможности расширили для поддержки приложений клиент-сервер. DM была ослабленной версией основного продукта IBM - разработанной для мейнфреймов РСУБД DB2, и работала с Named Pipes под NetBIOS и ее протоколом.

С появлением OS/2 2.0 IBM отставила попытки работать с Extended Edition и преобразовала DM в отдельный продукт, а в 1993 году заменила ее DB2/2, 32-разрядной версией DB2 на базе OS/2. DB2/2 поддерживает весь IBM SQL, а также обладает всеми характеристиками и возможностями своего "старшего брата", использует Named Pipes под NetBIOS с его протоколом, а также поддерживает программный интерфейс IBM Advanced Program-to-Program Communications (APPC).

DB2/2 задумывалась как средство интерфейса локальных сетей предприятий с мейнфреймами, работающими под DB2. IBM по-прежнему успешно работает в основном с большими системами, а DB2/2 - это хорошее средство объединить различные базы данных, развернутые на аппаратном обеспечении IBM в базу данных предприятия. DB2/2, с ее мощностью и характеристиками, имеет хорошие шансы на рынке систем клиент-сервер.

SQLBASE

Первой СУБД систем клиент-сервер, разработанной специально для ПК, была SQLBase компании Gupta (Menlo Park, CA). Ее последняя версия работает под OS/2 2.x и NetWare NLM и использует их протоколы для своего обмена. Драйверы работают под IPX, TCP/IP и NetBIOS. Gupta также имеет реализацию SQLBase для небольшого числа рабочих станций RISC, в основном Sun SPARC.

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

Популярность SQLBase существенно подрывает то обстоятельство, что ее драйвер занимает 200 КБ оперативной памяти рабочей станции. Gupta хорошо известна также своими приложениями и средствами разработки для систем клиент-сервер.

WATCOM SQL

Watcom (Waterloo, Ontario), известный в основном как производитель компьютеров для языков программирования третьего поколения, предложила в 1993 году продукт под названием Watcom SQL - базу данных сервера, работающую под DOS, Windows и NetWare NLM и отвечающую всем требованиям, предъявляемым к таким базам данных. Версия, работающая под Windows однопользовательская; версия под DOS может поддерживать до шести пользователей и включает 32-разрядное расширение DOS. NetWare-версия поддерживает до 32 пользователей.

Watcom SQL использует либо IPX, либо NetBIOS в качестве протокола обмена информацией и рассчитана на маленькие системы клиент-сервер. Однопользовательская версия включена в каждую копию PowerBuilder, продукт компании Powersoft (Burlington, MA), одного из лидеров на рынке средств разработки приложений для систем клиент-сервер на базе Windows.

ДРУГИЕ ПОСТАВЩИКИ

Ingres (Micro DecisionWare, Boulder, CA) и Informix (Menlo Park, CA) широко известны своими РСУБД на базе UNIX, хотя у Ingres есть версия под OS/2, а у Informix - под NLM. Ни та, ни другая не имеет сильного влияния на рынок СУБД для систем клиент-сервер на базе ПК, но многие организации используют UNIX-версию для приложений. Ingres и Informix используют TCP/IP в качестве первичного протокола.

Одним из последних появилась на рынке InterBase (Scotts Valley, CA) фирмы Borland, РСУБД на базе UNIX. Borland объявил о разработке версий под NetWare, OS/2 2.x Windows NT. Interbase использует TCP/IP в качестве своего протокола, поддержка приложений клиента обеспечивается собственными продуктами Borland.

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

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


Джо Салеми - независимый писатель и консультант с большим опытом в базах данных и коммуникациях. Он является автором книг по базам данных клиент-сервер.