Файл: Технология «клиент-сервер» (Классическая двухуровневая архитектура "клиент-сервер").pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 119

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

-правил логической обработки (бизнес-правил);

-управления данными (не следует только путать логические слои с физическими уровнями, о которых речь пойдет ниже).[12]

Как уже говорилось, в файл-серверной архитектуре все три слоя реализуются в одном монолитном приложении, функционирующем на рабочей станции. Поэтому изменения в любом из слоев приводят однозначно к модификации приложения и последующему обновлению его версий на рабочих станциях.[13]

В двухуровневом клиент-серверном приложении показанном на рисунке выше, как правило, все функции по формированию пользовательского интерфейса реализуются на клиенте все функции по управлению данными - на сервере а вот бизнес-правила можно реализовать как на сервере используя механизмы программирования сервера (хранимые процедуры триггеры представления и т.п.) так и на клиенте.[14]

В трехуровневом приложении появляется третий промежуточный уровень реализующий бизнес-правила которые являются наиболее часто изменяемыми компонентами приложения (см. рис. Трехуровневая модель клиент-серверного приложения)

Рис 2. Трехуровневая модель клиент-серверного приложения

Наличие не одного, а нескольких уровней позволяет гибко и с минимальными затратами адаптировать приложение к изменяющимся требованиям бизнеса.[15]

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

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

2) В двухуровневой клиент-серверной системе если алгоритм расчета зарплаты реализован на сервере в виде правила расчета зарплаты его выполняет сервер бизнес-правил выполненный например в виде OLE-сервера и мы обновим один из его объектов ничего не меняя ни в клиентском приложении ни на сервере баз данных.[16]

1.3. Классификация стандартных серверов

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


Универсальные серверы — особый вид серверной программы не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощенный интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Существуют несколько видов таких серверов:

- inetd от англ. internet super-server daemon демон сервисов IP — стандартное средство UNIX-систем — программа позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств) работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).

- RPC от англ. Remote Procedure Call удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс.[17] Интерфейс изобретенный Sun Microsystems для своей операционной системы (SunOS Solaris; Unix-система) в настоящее время используетстся как в большинстве Unix-систем так и в Windows.

Прикладные клиент-серверные технологии Windows:

- (D-)COM (англ. (Distributed) Component Object Model — модель составных объектов) и др. — Позволяет одним программам выполнять операции над объектами данных используя процедуры других программ. Изначально данная технология предназначена для их «внедрения и связывания объектов» - OLE англ. Object Linking and Embedding) но в общем позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера DCOM доступна удаленно через RPC.

- Active-X — Расширение COM и DCOM для создания мультимедиа-приложений.[18]

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

Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC (D-)COM).

Сетевые службы обеспечивают функционирование сети например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций DNS — трансляцию имен в адреса и наоборот.[19]

Серверы туннелирования (например различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью недоступной роутингом.

Серверы AAA и Radius обеспечивают в сети единую аутентификацию авторизацию и ведение логов доступа.


Информационные службы. К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time daytime motd) пользователях (finger ident) так и серверы для мониторинга например SNMP. Большинство информационных служб работают через универсальные серверы.[20]

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

Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.

Прежде всего, это серверы передачи файлов по заказу по протоколам FTP TFTP SFTP и HTTP. Протокол HTTP ориентирован на передачу текстовых файлов но серверы могут отдавать в качестве запрошенных файлов и произвольные данные например динамически созданные веб-страницы картинки музыку и т. п.

Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.[21]

Недостатки файл-серверной системы:

• Очень большая нагрузка на сеть повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объемами данных.[22]

• Обработка данных осуществляется на компьютере пользователей. Это влечет повышенные требования к аппаратному обеспечению каждого пользователя. Чем больше пользователей тем больше денег придется потратить на оснащение их компьютеров.

• Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.

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

Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа — LDAP (англ. Lightweight Directory Access Protocol — облегчённый протокол доступа к спискам).


Для доступа к серверам баз данных единого протокола не существует однако все серверы баз данных объединяет использование единых правил формирования запросов — язык SQL (англ. Structured Query Language — язык структурированных запросов).

Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно — текстовые).

В первую очередь, это серверы электронной почты, работающие по протоколу SMTP. SMTP-сервер принимает сообщение и доставляет его в локальный почтовый ящик пользователя или на другой SMTP-сервер (сервер назначения или промежуточный). На многопользовательских компьютерах пользователи работают с почтой прямо на терминале (или веб-интерфейсе). Для работы с почтой на персональном компьютере почта забирается из почтового ящика через серверы, работающие по протоколам POP3 или IMAP.[23]

Для организации конференций существует серверы новостей, работающие по протоколу NNTP.

Для обмена сообщениями в реальном времени существуют серверы чатов. Стандартный чат-сервер работает по протоколу IRC — распределенный чат для интернета. Существует большое количество других чат-протоколов, например ICQ или Jabber.

Серверы удаленного доступа.

Серверы удаленного доступа через соответствующую клиентскую программу обеспечивают пользователя консольным доступом к удаленной системе.

Для обеспечения доступа к командной строке служат серверы telnet RSH SSH.

Графический интерфейс для Unix-систем — X Window System имеет встроенный сервер удаленного доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удаленного доступа к интерфейсу Х-Window неправильно называют «X-Server» (этим термином в X-Window называется видеодрайвер).[24]

Стандартный сервер удаленного доступа к графическому интерфейсу Microsoft Windows называется терминальный сервер.

Некоторую разновидность управления (точнее мониторинга и конфигурирования) также предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер.

Игровые серверы служат для одновременной игры нескольких пользователей в единой игровой ситуации. Некоторые игры имеют сервер в основной поставке и позволяют запускать его в невыделенном режиме (то есть позволяют играть на машине, на которой запущен сервер).

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


Примером серверных решений можно привести Unix-системы изначально предназначенные для реализации серверной инфраструктуры или серверные модификации платформы Microsoft Windows.[25]

Также необходимо выделить пакеты серверов и сопутствующих программ (например, комплект веб-сервер/PHP/MySQL для быстрой развертки хостинга) для установки под Windows (для Unix свойственна модульная или «пакетная» установка каждого компонента, поэтому такие решения редки).

В интегрированных серверных решениях установка всех компонентов выполняется единовременно все компоненты в той или иной мере тесно интегрированы и предварительно настроены друг на друга.

Однако в этом случае замена одного из серверов или вторичных приложений (если их возможности не удовлетворяют потребностям) может представлять проблему.

Серверные решения служат для упрощения организации базовой ИТ-инфраструктуры компаний то есть для оперативного построения полноценной сети в компании в том числе и «с нуля». Компоновка отдельных серверных приложений в решение подразумевает что решение предназначено для выполнения большинства типовых задач; при этом значительно снижается сложность развертывания и общая стоимость владения ИТ-инфраструктурой построенной на таких решениях.[26]

Прокси-сервер (от англ. proxy — «представитель уполномоченный») служба в компьютерных сетях позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например e-mail) расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него либо возвращает ресурс из собственного кеша (в случаях, если прокси имеет свой кеш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак.[27]

Глава 2. Технология "клиент-сервер"

Технология  «клиент-сервер» пришла на смену централизованной схеме управления вычислительным процессом на мейнфреймах еще в 80-х годах прошлого века. Благодаря высокой живучести и надежности вычислительной системы, легкости масштабирования, возможности одновременной работы пользователя с несколькими приложениями, высокой оперативности обработки информации, обеспечению пользователя высококачественным интерфейсом и другим возможностям эта весьма перспективная и далеко не исчерпавшая себя технология получила свое дальнейшее развитие. [28]
       Со  временем малофункциональную модель файлового сервера для локальных сетей (FS) заменили появившиеся одна за одной модели структуры «Клиент- сервер» (RDA, DBS и AS).
       Заняв нишу баз данных, технология «Клиент – сервер» стала основной технологией глобальной сети Internet. Далее, в результате перенесения идей сети Internet в среду корпоративных систем, появилась технология Intranet. В отличие от технологии «Клиент-сервер» эта технология ориентирована не на данные, а на информацию в ее окончательно готовом к потреблению виде. Вычислительные системы, построенные на основе Intranet, имеют в своем составе центральные серверы информации и распределенные компоненты представления информации конечному пользователю (программы-навигаторы, или браузеры). Взаимодействие между клиентом и сервером в Intеrnet происходит при помощи web – технологий.[29]
       На  сегодняшний день технология «Клиент-сервер» получает все большее распространение, однако сама по себе она не предлагает универсальных рецептов. Она лишь дает общее представление о том, как должна быть организована современная распределенная информационная система. В то же время реализации этой технологии в конкретных программных продуктах и даже в видах программного обеспечения различаются весьма существенно.  [30]