Технология "клиент-сервер"
Департамент общего и профессионального образования Брянской области
Государственное образовательное учреждение
Клинцовский
текстильный техникум
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ
РЕФЕРАТ НА ТЕМУ:
Технология
«Клиент – сервер»
Студент
гр. А-90______________________(
Преподаватель
_______________________ (Широкова
А.Л.)
Клинцы
– 2011
Содержание:
- Серверы. Основные понятия серверов
- Модель клиент-сервер
- Классификация стандартных серверов
- Вывод
1.
Серверы. Основные понятия
серверов
Сервер (от англ. server, обслуживающий). В зависимости от предназначения существует несколько определений понятия сервер.
1. Сервер (сеть) — логический или физический узел сети, обслуживающий запросы к одному адресу и/или доменному имени (смежным доменным именам), состоящий из одного или системы аппаратных серверов, на котором выполняются один или система серверных программ
2.
Сервер (программное обеспечение)
— программное обеспечение,
3.
Сервер (аппаратное обеспечение)
— компьютер (или специальное
компьютерное оборудование) выделенный
и/или специализированный для
выполнения определенных
3. Сервер в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные функции по запросу клиента, предоставляя ему доступ к определённым ресурсам.
Взаимосвязь понятий.
Серверное приложение (сервер) запускается
на компьютере, так же называемом "сервер",
при этом при рассмотрении топологии сети,
такой узел называют "сервером". В
общем случае может быть так, что серверное
приложение запущено на обычной рабочей
станции, или серверное приложение, запущенное
на серверном компьютере в рамках рассматриваемой
топологии выступает в роли клиента (т.е.
не является сервером с точки зрения сетевой
топологии).
2.
Модель клиент-сервер
Клиент-серверная
система характеризуется
Процессы, реализующие некоторую службу, например службу файловой системы или базы данных, называются серверами (servers). Процессы, запрашивающие службы у серверов путем посылки запроса и последующего ожидания ответа от сервера, называются клиентами (clients) .
По такой
схеме могут быть построены системы
обработки данных на основе СУБД, почтовые
и другие системы. Мы будем говорить
о базах данных и системах на их
основе. И здесь удобнее будет
не просто рассматривать клиент-
В файл-серверной системе данные хранятся на файловом сервере (например, Novell NetWare или Windows NT Server), а их обработка осуществляется на рабочих станциях, на которых, как правило, функционирует одна из, так называемых, "настольных СУБД" - Access, FoxPro, Paradox и т.п..
Приложение на рабочей станции "отвечает за все" - за формирование пользовательского интерфейса, логическую обработку данных и за непосредственное манипулирование данными. Файловый сервер предоставляет услуги только самого низкого уровня - открытие, закрытие и модификацию файлов. Обратите внимание - файлов, а не базы данных. Система управления базами данных расположена на рабочей станции.
Таким образом, непосредственным манипулированием данными занимается несколько независимых и несогласованных между собой процессов. Кроме того, для осуществления любой обработки (поиск, модификация, суммирование и т.п.) все данные необходимо передать по сети с сервера на рабочую станцию (см. рис. Сравнение файл-серверной и клиент-серверной моделей)
Рис. Сравнение файл-серверной и клиент-серверной моделей
В клиент-серверной
системе функционируют (как минимум)
два приложения - клиент и сервер,
делящие между собой те функции,
которые в файл-серверной
Формированием пользовательского интерфейса занимается клиент, для построения которого можно использовать целый ряд специальных инструментов, а также большинство настольных СУБД. Логика обработки данных может выполняться как на клиенте, так и на сервере. Клиент посылает на сервер запросы, сформулированные, как правило, на языке SQL. Сервер обрабатывает эти запросы и передает клиенту результат (разумеется, клиентов может быть много).
Таким образом, непосредственным манипулированием данными занимается один процесс. При этом, обработка данных происходит там же, где данные хранятся - на сервере, что исключает необходимость передачи больших объемов данных по сети.
Что дает архитектура клиент-сервер?
Посмотрим на данную архитектуру с точки зрения потребностей бизнеса. Какие же качества привносит клиент-сервер в информационную систему?
Надежность
Сервер
баз данных осуществляет модификацию
данных на основе механизма транзакций,
который придает любой
- атомарность - при любых обстоятельствах будут либо выполнены все операции транзакции, либо не выполнена ни одна; целостность данных при завершении транзакции;
- независимость - транзакции, инициированные разными пользователями, не вмешиваются в дела друг друга;
- устойчивость к сбоям - после завершения транзакции, ее результаты уже не пропадут.
Механизм транзакций, поддерживаемый сервером баз данных, намного более эффективен, чем аналогичный механизм в настольных СУБД, т.к. сервер централизованно контролирует работу транзакций. Кроме того, в файл-серверной системе сбой на любой из рабочих станций может привести к потере данных и их недоступности для других рабочих станций, в то время, как в клиент-серверной системе сбой на клиенте, практически, никогда не сказывается на целостности данных и их доступности для других клиентов.
Масштабируемость
Масштабируемость - способность системы адаптироваться к росту количества пользователей и объема базы данных при адекватном повышении производительности аппаратной платформы, без замены программного обеспечения.
Общеизвестно, что возможности настольных СУБД серьезно ограничены - это пять-семь пользователей и 30-50 Мб, соответственно. Цифры, разумеется, представляют собой некие средние значения, в конкретных случаях они могут отклоняться как в ту, так и в другую сторону. Что наиболее существенно, эти барьеры нельзя преодолеть за счет наращивания возможностей аппаратуры.
Системы же на основе серверов баз данных могут поддерживать тысячи пользователей и сотни ГБ информации - дайте им только соответствующую аппаратную платформу.
Безопасность
Сервер баз данных предоставляет мощные средства защиты данных от несанкционированного доступа, невозможные в настольных СУБД. При этом, права доступа администрируются очень гибко - до уровня полей таблиц. Кроме того, можно вообще запретить прямое обращение к таблицам, осуществляя взаимодействие пользователя с данными через промежуточные объекты - представления и хранимые процедуры. Так что администратор может быть уверен - никакой слишком умный пользователь не прочитает то, что ему читать неположено.
Гибкость
В приложении, работающем с данными, можно выделить три логических слоя:
- пользовательского интерфейса;
- правил логической обработки (бизнес-правил);
- управления данными (не следует только путать логические слои с физическими уровнями, о которых речь пойдет ниже).
Как уже говорилось, в файл-серверной архитектуре все три слоя реализуются в одном монолитном приложении, функционирующем на рабочей станции. Поэтому изменения в любом из слоев приводят однозначно к модификации приложения и последующему обновлению его версий на рабочих станциях.
В двухуровневом
клиент-серверном приложении, показанном
на рисунке выше, как правило, все
функции по формированию пользовательского
интерфейса реализуются на клиенте,
все функции по управлению данными
- на сервере, а вот бизнес-правила
можно реализовать как на сервере
используя механизмы
В трехуровневом приложении появляется третий, промежуточный уровень, реализующий бизнес-правила, которые являются наиболее часто изменяемыми компонентами приложения (см. рис. Трехуровневая модель клиент-серверного приложения)
Рис. Трехуровневая модель клиент-серверного приложения
Наличие
не одного, а нескольких уровней
позволяет гибко и с
Попробуем
все вышеизложенное проиллюстрировать
на маленьком примере. Предположим,
в некоей организации изменились
правила расчета заработной платы
(бизнес-правила) и требуется обновить
соответствующее программное
1) В файл-серверной системе мы "просто" вносим изменения в приложение и обновляем его версии на рабочих станциях. Но это "просто" влечет за собой максимальные трудозатраты.
2) В
двухуровневой клиент-
3.
Классификация стандартных
серверов
Как
правило, каждый сервер обслуживает
один (или несколько схожих) протоколов
и серверы можно
Универсальные серверы — особый вид серверной программы, не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощенный интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Существуют несколько видов таких серверов:
- inetd от англ. internet super-server daemon демон сервисов IP — стандартное средство UNIX-систем — программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).
- RPC от англ. Remote Procedure Call удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный 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 для создания мультимедиа-приложений.
Универсальные серверы часто используются для написания всевозможных информационных серверов, серверов, которым не нужна какая-то специфическая работа с сетью, серверов, не имеющих никаких задач, кроме обслуживания клиентов. Например, в роли серверов для inetd могут выступать обычные консольные программы и скрипты.
Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM).
Сетевые службы обеспечивают функционирование сети, например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций, DNS — трансляцию имен в адреса и наоборот.
Серверы туннелирования (например, различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью, недоступной роутингом.
Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа.
Информационные службы. К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP. Большинство информационных служб работают через универсальные серверы.
Особым видом информационных служб являются серверы синхронизации времени — NTP кроме информировании клиента о точном времени NTP-сервер периодически опрашивает несколько других серверов на предмет коррекции собственного времени. Кроме коррекции времени анализируется и корректируется скорость хода системных часов. Коррекция времени осуществляется ускорением или замедлением хода системных часов (в зависимости от направления коррекции), чтобы избежать проблем возможных при простой перестановке времени.
Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.
Прежде
всего, это серверы передачи файлов
по заказу, по протоколам FTP, TFTP, SFTP и HTTP.
Протокол HTTP ориентирован на передачу
текстовых файлов, но серверы могут
отдавать в качестве запрошенных
файлов и произвольные данные, например,
динамически созданные веб-
Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.
Недостатки файл-серверной системы:
• Очень большая нагрузка на сеть, повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объемами данных.
•
Обработка данных осуществляется на
компьютере пользователей. Это влечет
повышенные требования к аппаратному
обеспечению каждого
• Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.
• Безопасность. Для обеспечения возможности работы с такой системой Вам будет необходимо дать каждому пользователю полный доступ к целому файлу, в котором его может интересовать только одно поле
Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа — LDAP (англ. Lightweight Directory Access Protocol — облегчённый протокол доступа к спискам).
Для доступа к серверам баз данных единого протокола не существует, однако все серверы баз данных объединяет использование единых правил формирования запросов — язык SQL (англ. Structured Query Language — язык структурированных запросов).
Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно — текстовые).
В
первую очередь это серверы
Для
организации конференций
Для обмена сообщениями в реальном времени существуют серверы чатов, стандартный чат-сервер работает по протоколу IRC — распределенный чат для интернета. Существует большое количество других чат-протоколов, например ICQ или Jabber.
Серверы удаленного доступа
Серверы удаленного доступа, через соответствующую клиентскую программу, обеспечивают пользователя консольным доступом к удаленной системе.
Для
обеспечения доступа к
Графический интерфейс для Unix-систем — X Window System, имеет встроенный сервер удаленного доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удаленного доступа к интерфейсу Х-Window неправильно называют «X-Server» (этим термином в X-Window называется видеодрайвер).
Стандартный сервер удаленного доступа к графическому интерфейсу Microsoft Windows называется терминальный сервер.
Некоторую разновидность управления (точнее мониторинга и конфигурирования), также, предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер.
Игровые серверы, служат для одновременной игры нескольких пользователей в единой игровой ситуации. Некоторые игры имеют сервер в основной поставке и позволяют запускать его в невыделенном режиме (то есть позволяют играть на машине, на которой запущен сервер).
Серверные решения — операционные системы и/или пакеты программ, оптимизированные под выполнение компьютером функций сервера и/или содержащие в своем составе комплект программ для реализации типичного сервисов.
Примером
серверных решений можно
Также необходимо выделить пакеты серверов и сопутствующих программ (например, комплект веб-сервер/PHP/MySQL для быстрой развертки хостинга) для установки под Windows (для Unix свойственна модульная или «пакетная» установка каждого компонента, поэтому такие решения редки).
В
интегрированных серверных
Серверные
решения служат для упрощения
организации базовой ИТ-
Прокси-сервер (от англ. proxy — «представитель, уполномоченный») служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кеша (в случаях, если прокси имеет свой кеш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак.
Вывод
Таким
образом, любая компьютерная сеть по
сути является сетью клиент-сервер. Пользователь,
подключивший свой компьютер к Интернет,
будет иметь дело с сетью клиент-сервер,
и даже если компьютер не имеет выхода
в сеть, его программное обеспечение, да
и сам он, скорее всего, организованы по
схеме клиент-сервер.
Список литературы:
- Валерий Коржов Многоуровневые системы клиент-сервер. Издательство Открытые системы (17 июня 1997).
- msdn.com
- ru.wikipedia.org

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