Лекция 3 Архитектура и технологии клиент

advertisement
Одноранговые и клиентсерверные сети
Назначение компьютерных сетей
Совместное
использование
ресурсов
интерактивной связи между узлами сети.
и
осуществление
Ресурсы(resources) — это данные, приложения и периферийные
устройства.
Компоненты, функции и характеристики
сетей
• серверы (server) — компьютеры, предоставляющие свои ресурсы
сетевым пользователям;
• клиенты (client) — компьютеры, осуществляющие доступ к сетевым
ресурсам, предоставляемым сервером;
• среда (media) — способ соединения компьютеров;
• совместно используемые данные — файлы, предоставляемые
серверами по сети;
• совместно используемые периферийные устройства (принтеры,
библиотеки CD-ROM и т.д.) — ресурсы, предоставляемые серверами;
• ресурсы — файлы, принтеры и другие элементы, используемые в сети.
Типы сетей
Сети
Одноранговые
(peer-to-peer)
На основе сервера
(server based)
Одноранговые сети
В одноранговой сети все компьютеры равноправны: нет
иерархии среди компьютеров и нет выделенного (dedicated)
сервера.
Как правило, каждый компьютер функционирует и как
клиент, и как сервер; иначе говоря, нет отдельного компьютера,
ответственного за администрирование всей сети.
Все пользователи самостоятельно решают, какие данные на
своем компьютере сделать общедоступными по сети
Сети на основе сервера
Выделенным
называется
такой
сервер,
который
функционирует только как сервер (исключая функции клиента или
рабочей станции).
Они специально оптимизированы для быстрой обработки
запросов от сетевых клиентов и для управления защитой файлов и
каталогов.
Файл-серверы и принт-серверы
Управляют доступом пользователей соответственно к файлам
и принтерам.
Файл-сервер предназначен для хранения файлов и данных.
Сервер приложений
На серверах приложений выполняются прикладные части
клиент-серверных приложений, а также находятся данные,
доступные клиентам.
В отличии от файл- и принт-серверов (в которых файл или
данные целиком копируются на запрашивающий компьютер), в
сервере
приложений
на
запрашивающий
компьютер
пересылаются только результаты запроса.
Приложение-клиент на удаленном компьютере получает
доступ к данным, хранимым на сервере приложений. Однако
вместо всей базы данных на компьютер с сервера загружаются
только результаты запроса.
Почтовые и коммуникационные серверы
Почтовые серверы управляют передачей
сообщений между пользователями сети.
электронных
Коммуникационные серверы управляют потоком данных и
почтовых сообщений между этой сетью и другими сетями или
удаленными пользователями.
Комбинированные сети
Совмещающие лучшие качества одноранговых сетей и сетей
на основе сервера.
Операционные системы для сетей на основе сервера,
например Microsoft Windows Server или Novell® NetWare®, в этом
случае отвечают за совместное использование основных
приложений и данных.
На компьютерах-клиентах могут выполняться другие
операционные системы, которые будут управлять доступом к
ресурсам выделенного сервера и в то же время предоставлять в
совместное использование свои жесткие диски, а по мере
необходимости разрешать доступ и к своим данным.
Архитектура и технологии
"клиент-сервер"
Клиент и сервер
Компьютер (или программу), управляющий ресурсом,
называют сервером этого ресурса (файл-сервер, сервер базы
данных, вычислительный сервер...).
Компьютер (или программу), имеющий
обращаться к этим ресурсам называют клиентом.
возможность
Три группы функций многоуровневых
систем
1. Функции ввода и отображения
взаимодействие с пользователем).
данных
(обеспечивают
2. Прикладные функции, характерные для данной предметной
области.
3. Функции управления ресурсами (файловой системой, базой
даных и т.д.).
Компоненты сетевого приложения
Сетевое приложение
Представление
данных
(интерфейс)
Прикладная
логика
(алгоритм)
Доступ к
ресурсам
Архитектура «клиент-сервер»
Определяет общие принципы организации взаимодействия в
сети, где имеются серверы, узлы-поставщики некоторых
специфичных функций (сервисов) и клиенты, потребители этих
функций.
Практические реализации такой архитектуры называются
клиент-серверными технологиями. Каждая технология определяет
собственные или использует имеющиеся правила взаимодейстия
между клиентом и сервером, которые называются протоколом
обмена (протоколом взаимодействия).
Двухзвенная архитектура
В любой сети (даже одноранговой), построенной на
современных сетевых технологиях, присутствуют элементы клиентсерверного взаимодействия, чаще всего на основе двухзвенной
архитектуры.
Двухзвенной (two-tier, 2-tier) она называется из-за
необходимости распределения трех базовых компонентов между
двумя узлами (клиентом и сервером).
Двухзвенная архитектура
Двухзвенная архитектура используется в клиент-серверных
системах, где сервер отвечает на клиентские запросы напрямую и в
полном объеме, при этом используя только собственные ресурсы.
Т.е. сервер не вызывает сторонние сетевые приложения и не
обращается к сторонним ресурсам для выполнения какой-либо
части запроса.
Двухзвенная архитектура
Модели клиент-серверного
взаимодействия
Модель распределенного представления
данных
Реализовывалась на универсальной ЭВМ (мэйнфрейме),
выступавшей в роли сервера.
К ней подключались алфавитно-цифровыми терминалами.
Пользователи выполняли ввод данных с клавиатуры
терминала, которые затем передавались на мэйнфрейм и там
выполнялась их обработка, включая формирование «картинки» с
результатами.
Эта «картинка» и возвращалась пользователю на экран
терминала.
Модель файлового сервера
Выделенный узел сети является файловым сервером, на
котором размещены файлы базы данных.
На клиентах выполняются приложения, в которых
совмещены компонент представления и прикладной компонент
(СУБД и прикладная программма), использующие подключенную
удаленную базу как локальный файл.
Протоколы обмена при этом представляют набор
низкоуровневых вызовов операций файловой системы.
Особенности файлового сервера
• при активной работе с таблицами БД возникает большая нагрузка
на сеть;
• поддержка тиражирования (репликации) таблиц;
• возможность распределить функции вычислительной системы
между несколькими независимыми компьютерами;
• все данные хранятся на защищенном сервере;
• гарантия целостности данных;
• высокая стоимость оборудования;
• бизнес логика приложений осталась в клиентском ПО.
Модели сервера баз данных
Ядро СУБД функционирует на сервере. Прикладная
программа на клиенте.
Протокол обмена обеспечивается с
помощью языка SQL.
Такой подход по сравнению с файловым сервером ведет к
уменьшению загрузки сети и унификации интерфейса «клиентсервер».
Сетевой трафик остается достаточно высоким.
Сложное администрирование, поскольку в одной программе
совмещаются различные функции.
Концепция активного сервера БД
Функций прикладного компонента реализованы в виде
хранимых процедур, выполняемых на стороне сервера.
Остальная прикладная логика выполняется на клиентской
стороне.
Протокол взаимодействия — соответствующий диалект
языка SQL.
Особенности активного сервера БД
+
возможно
централизованное
администрирование
прикладных функций;
+
снижение стоимости владения системой (TOC, total cost of
ownership) за счет аренды сервера, а не его покупки;
+
значительное снижение сетевого трафика (т.к. передаются не
SQL-запросы, а вызовы хранимых процедур).
ограниченность средств разработки хранимых процедур по
сравнению с языками высокого уровня.
Сервер приложений
Прикладной компонент реализован на стороне сервера:
• сервер снижает требования к конфигурации клиентов и
упрощает администрирование;
• представляет повышенные требования к производительности,
безопасности и надежности сервера
Трехзвенная архитектура
Реализуются на основе модели сервера приложений.
Сетевое приложение разделено на две и более частей,
каждая из которых может выполняться на отдельном компьютере.
Выделенные части приложения взаимодействуют друг с
другом, обмениваясь сообщениями в заранее согласованном
формате.
В этом случае двухзвенная клиент-серверная архитектура
становится трехзвенной (three-tier, 3-tier).
Трехзвенная архитектура
Многозвенная (N-tier) клиент-серверная
архитектура
Сравнение архитектур
Двухзвенная архитектура проще, так как все запросы
обслуживаются одним сервером, но она менее надежна и
предъявляет повышенные требования к производительности
сервера.
Трехзвенная архитектура сложнее, но т.к. функции
распределены между серверами, эта архитектура представляет:
1. Высокую степень гибкости и масштабируемости.
2. Высокую безопасность.
3. Высокую производительность.
Клиент-серверные технологии
Web-серверы
Изначально представляли доступ к гипертекстовым
документам по протоколу HTTP (Huper Text Transfer Protocol).
Сейчас поддерживают расширенные возможности, в частности
работу с бинарными файлами (изображения, мультимедиа и т.п.).
Apache, TomCat и др.
Серверы приложений
Предназначены
для
централизованного
прикладных задач в некоторой предметной области.
решения
Для этого пользователи имеют право запускать серверные
программы на исполнение.
Использование серверов приложений позволяет снизить
требования к конфигурации клиентов и упрощает общее
управление сетью.
Серверы баз данных
Серверы баз данных используются для обработки
пользовательских запросов на языке SQL.
При этом СУБД находится на сервере, к которому и
подключаются клиентские приложения.
MySQL, MSSQL, Oracle, Cache и др.
Файл-серверы
Файл-сервер хранит информацию в виде файлов и
представляет пользователям доступ к ней.
Как правило файл-сервер обеспечивает и определенный
уровень защиты от несакционированного доступа.
Обладает большим объемом дискового пространства,
реализованном в форме RAID-массива для обеспечения
бесперебойной работы и повышенной скорости записи и чтения
данных.
Прокси-сервер
Действует как посредник, помогая пользователям получить
информацию из Интернета и при этом обеспечивая защиту сети.
Сохраняет часто запрашиваемую информацию в кэш-памяти
на локальном диске, быстро доставляя ее пользователям без
повторного обращения к Интернету.
Файрволы (брандмауэры)
Межсетевые экраны, анализирующие и фильтрующие
проходящий сетевой трафик, с целью обеспечения безопасности
сети.
Почтовые серверы
Представляют услуги по отправке и получению электронных
почтовых сообщений
Серверы удаленного доступа (RAS)
Эти системы обеспечивают связь с сетью по коммутируемым
линиям.
Удаленный сотрудник может использовать ресурсы
корпоративной ЛВС, подключившись к ней с помощью обычного
модема.
«Тонкий» клиент
Этот термин определяет клиента, вычислительных ресурсов
которого достаточно лишь для запуска необходимого сетевого
приложения через web-интерфейс. Пользовательский интерфейс
такого приложения формируется средствами статического HTML
(выполнение JavaScript не предусматривается), вся прикладная
логика выполняется на сервере.
«Толстый» клиент
Рабочая станция или ПК, работающие под управлением
собственной дисковой ОС и имеющие необходимый набор ПО. К
сетевым серверам обращаются за дополнительными услугами
(например, доступ к web-серверу или корпоративной базе данных).
Так же под «толстым» клиентом подразумевается и
клиентское сетевое приложение, запущенное под управлением
локальной ОС. Такое приложение совмещает компонент
представления данных (графический пользовательский интерфейс
ОС) и прикладной компонент (вычислительные мощности
клиентского компьютера).
«Rich»-client
Компромисс между «толстым» и «тонким» клиентом.
Как и «тонкий» клиент, «rich»-клиент также представляет
графический интерфейс, описываемый уже средствами XML и
включающий некоторую функциональность толстых клиентов
(например интерфейс drag-and-drop, вкладки, множественные
окна, выпадающие меню и т.п.)
Прикладная логика «rich»-клиента также реализована на
сервере. Данные отправляются в стандартном формате обмена, на
основе того же XML (протоколы SOAP, XML-RPC) и
интерпретируются клиентом.
Download