Файл: Технология «клиент-сервер» (Классическая двухуровневая архитектура "клиент-сервер").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]