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

Автор работы: Пользователь скрыл имя, 14 Февраля 2011 в 20:56, реферат

Описание работы

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

Содержание работы

Серверы. Основные понятия серверов
Модель клиент-сервер
Классификация стандартных серверов
Вывод

Файлы: 1 файл

Департамент общего и профессионального образования Брянской области.docx

— 67.43 Кб (Скачать файл)
 

Департамент общего и  профессионального  образования Брянской области

Государственное образовательное  учреждение

Клинцовский текстильный техникум 
 
 
 
 

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ

 
РЕФЕРАТ НА ТЕМУ:
 

Технология  «Клиент – сервер» 
 
 
 
 

     Студент гр. А-90______________________(Петроченко А.О.)                        
 

     Преподаватель _______________________ (Широкова А.Л.) 
 
 

Клинцы – 2011 
 

Содержание: 

  1. Серверы. Основные понятия серверов
  2. Модель клиент-сервер
  3. Классификация стандартных серверов
  4. Вывод
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     1. Серверы. Основные понятия серверов 

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

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

     2. Сервер (программное обеспечение)  — программное обеспечение, принимающее  запросы от клиентов (в архитектуре клиент-сервер).

     3. Сервер (аппаратное обеспечение)  — компьютер (или специальное  компьютерное оборудование) выделенный  и/или специализированный для  выполнения определенных сервисных  функций.

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

     Взаимосвязь понятий. Серверное приложение (сервер) запускается на компьютере, так же называемом "сервер", при этом при рассмотрении топологии сети, такой узел называют "сервером". В общем случае может быть так, что серверное приложение запущено на обычной рабочей станции, или серверное приложение, запущенное на серверном компьютере в рамках рассматриваемой топологии выступает в роли клиента (т.е. не является сервером с точки зрения сетевой топологии). 

     2. Модель клиент-сервер 

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

Процессы, реализующие некоторую службу, например службу файловой системы или базы данных, называются серверами (servers). Процессы, запрашивающие службы у серверов путем посылки запроса и последующего ожидания ответа от сервера, называются клиентами (clients) .

По такой  схеме могут быть построены системы  обработки данных на основе СУБД, почтовые и другие системы. Мы будем говорить о базах данных и системах на их основе. И здесь удобнее будет  не просто рассматривать клиент-серверную  архитектуру, а сравнить ее с другой - файл-серверной.

В файл-серверной  системе данные хранятся на файловом сервере (например, Novell NetWare или Windows NT Server), а их обработка осуществляется на рабочих станциях, на которых, как правило, функционирует одна из, так называемых, "настольных СУБД" - Access, FoxPro, Paradox и т.п..

Приложение  на рабочей станции "отвечает за все" - за формирование пользовательского  интерфейса, логическую обработку данных и за непосредственное манипулирование  данными. Файловый сервер предоставляет  услуги только самого низкого уровня - открытие, закрытие и модификацию  файлов. Обратите внимание - файлов, а  не базы данных. Система управления базами данных расположена на рабочей  станции.

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

Рис. Сравнение файл-серверной  и клиент-серверной  моделей

В клиент-серверной  системе функционируют (как минимум) два приложения - клиент и сервер, делящие между собой те функции, которые в файл-серверной архитектуре  целиком выполняет приложение на рабочей станции. Хранением и  непосредственным манипулированием данными  занимается сервер баз данных, в  качестве которого может выступать  Microsoft SQL Server, Oracle, Sybase и т.п..

Формированием пользовательского интерфейса занимается клиент, для построения которого можно  использовать целый ряд специальных  инструментов, а также большинство  настольных СУБД. Логика обработки  данных может выполняться как  на клиенте, так и на сервере. Клиент посылает на сервер запросы, сформулированные, как правило, на языке SQL. Сервер обрабатывает эти запросы и передает клиенту  результат (разумеется, клиентов может  быть много).

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

Что дает архитектура  клиент-сервер?

Посмотрим на данную архитектуру с точки  зрения потребностей бизнеса. Какие  же качества привносит клиент-сервер в информационную систему?

Надежность

Сервер  баз данных осуществляет модификацию  данных на основе механизма транзакций, который придает любой совокупности операций, объявленных как транзакция, следующие свойства:

  • атомарность - при любых обстоятельствах будут либо выполнены все операции транзакции, либо не выполнена ни одна; целостность данных при завершении транзакции;
  • независимость - транзакции, инициированные разными пользователями, не вмешиваются в дела друг друга;
  • устойчивость к сбоям - после завершения транзакции, ее результаты уже не пропадут.

Механизм  транзакций, поддерживаемый сервером баз данных, намного более эффективен, чем аналогичный механизм в настольных СУБД, т.к. сервер централизованно контролирует работу транзакций. Кроме того, в  файл-серверной системе сбой на любой  из рабочих станций может привести к потере данных и их недоступности  для других рабочих станций, в  то время, как в клиент-серверной системе сбой на клиенте, практически, никогда не сказывается на целостности данных и их доступности для других клиентов.

Масштабируемость

Масштабируемость - способность системы адаптироваться к росту количества пользователей и объема базы данных при адекватном повышении производительности аппаратной платформы, без замены программного обеспечения.

Общеизвестно, что возможности настольных СУБД серьезно ограничены - это пять-семь пользователей и 30-50 Мб, соответственно. Цифры, разумеется, представляют собой  некие средние значения, в конкретных случаях они могут отклоняться  как в ту, так и в другую сторону. Что наиболее существенно, эти барьеры  нельзя преодолеть за счет наращивания  возможностей аппаратуры.

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

Безопасность

Сервер  баз данных предоставляет мощные средства защиты данных от несанкционированного доступа, невозможные в настольных СУБД. При этом, права доступа администрируются очень гибко - до уровня полей таблиц. Кроме того, можно вообще запретить прямое обращение к таблицам, осуществляя взаимодействие пользователя с данными через промежуточные объекты - представления и хранимые процедуры. Так что администратор может быть уверен - никакой слишком умный пользователь не прочитает то, что ему читать неположено.

Гибкость 

В приложении, работающем с данными, можно выделить три логических слоя:

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

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

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

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

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

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

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

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

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

     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 для создания мультимедиа-приложений.

Информация о работе Технология "клиент-сервер"