Продолжается подписка на наши издания! Вы не забыли подписаться?

Центр экономических компьютерных программ ФОЛИО

Кому нужны и кому не нужны
клиент-серверные программы?

И при железных дорогах
неплохо сохранять двуколку
Козьма Прутков

Разрабатывая в течение 6 лет недорогие складские и финансовые программы для массового пользователя, в конце прошлого года мы начали замечать, что некоторые наши клиенты, по большей части мелкие и средние фирмы, превратились соответственно в средние и крупные. Большинство из них работают на тех же наших финансовых программах, что и 2-5 лет назад, только с DOS перебрались на Windows и в общем-то их это устраивает, даже когда в локальной сети уже 5-8 человек обращаются к одним и тем же приложениям. Но некоторые фирмы выросли так, что не менее чем 5 сотрудников вводят информацию совершенно непрерывно и за месяц накапливается более 5000 складских документов, каждый с 10-20 товарами. Следовательно за год это не менее чем 600 тысяч записей. По нашим наблюдениям такой пользователь уже становится почти массовым (примерно каждый 50-й из 8 тысяч наших пользователей).

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

Что такое клиент-сервер? (полтора слова).

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

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

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

Кому это нужно и сколько это стоит?

Как показывает наш опыт, прикладная программа, основанная на клиент-серверной технологии, нужна если у вас не менее 4-х сотрудников, интенсивно вводящих общие для всех данные, или стоимость простоев в работе и возможных потерь коммерческой информации превосходит те большие расходы, которые необходимы при использовании клиент-серверной программы. А расходы действительно серьезные. Стоимость программного обеспечения сервера и прикладной программы на 10-20 рабочих мест - не менее 10 тыс. долларов, на 50- не менее 30 тысяч. Вероятно, понадобится хороший компьютер-сервер не менее чем за 3тыс. долларов. Но есть еще маленькое обстоятельство, стоящее немалых и постоянных расходов, обстоятельство, на которое часто не обращают внимания при покупке клиент-серверной программы. Такая программа не может работать самостоятельно, как многие уже привыкли, имея дело с массовыми программами. Нужен человек- системный администратор, который будет следить за правильным функционированием сервера. Это человек высокой квалификации: или постоянный сотрудник фирмы или приходящий не реже 2-х-3-х раз в неделю (такой вариант не очень рекомендуется). Высокая квалификация - высокие расходы.

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

Мы намеренно не рассмотрели стадии обследования и составления проекта, которые обычно оценивают как пятую часть всей стоимости системы. Также предполагалось, что локальная сеть уже установлена и основное оборудование имеется. Рассматриваемая нами схема специально приведена для сравнительно недорогого проекта, где большая часть требований заказчика уже соблюдена в готовой системе. Такой проект, индивидуальный и одновременно массовый, по силам средней фирме. Расходы минимизируются за счет применения сравнительно недорогих серверов баз данных, например MS SQL SERVER. Если просуммировать изложенное выше, то получим не менее 20 тысяч долларов плюс 600 долларов в месяц или больше на системного администратора. Иной руководитель схватится за голову - расходовать такие деньги на автоматизацию - нелепость. Значит, не очень нужно. Тому, кто хорошо справляется с данными имеющимися средствами, мы не рекомендуем ставить такую систему. При внедрении она всегда доставит дополнительную головную боль, поэтому особенно обидно, если не будет получен качественный скачок.

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

Примерно 70% наших пользователей работают с удаленными складами, расположенными территориально в разных местах. Конечно, при внедрении клиент-серверной программы нет необходимости ставить такую дорогую и сложно обслуживаемую систему на каждом месте, особенно если интенсивность работ невелика. Поэтому одновременно с установкой клиент-серверной программы на наиболее ответственных объектах в части мест можно использовать массовую дешевую систему, также работающую в локальной сети. Нами полностью отработан механизм обмена нужными данными между такими программами по модему или другим способом. Передача данных работает как в одну, так и в другую сторону.

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

Президент Центра
экономических компьютерных
программ ФОЛИО
Валкин Е.И.

 



Copyright © 1994-2016 ООО "К-Пресс"