Компьютерные сети

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

?бращении к файлам.

В клиент-серверной архитектуре сервер не только обеспечивает пересылку необходимой информации, но и берет на себя часть или всю обработку этих данных.

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

Клиент-серверная архитектура позволяет устранить эти недостатки путем распределения вычислительной нагрузки между клиентом и сервером. Именно это распределение и является достаточно сложной задачей при проектировании программного обеспечения сетевых вычислительных систем.

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

Основная задача серверного приложения - это обеспечение надежности, согласованности и защищенности данных, управление запросами клиентов, быстрая обработка запросов и предоставление ответов.

 

 

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

Структурирование сетевого ПО

 

Для упрощения структуры большинство сетей организуются в наборы уровней или слоев, каждый их которых возводится над предыдущим. Во всех сетях целью каждого такого уровня является предоставление сервиса для вышестоящих уровней. При этом от них скрываются детали предоставляемого сервиса. Фундаментальной идеей здесь является предоставление неким аппаратным или программным уровнем сервисов своим пользователям без раскрытия деталей своего внутреннего состояния и подробностей алгоритмов.

 

 

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

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

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

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

Существует 6 типов служб, каждая из которых характеризуется качеством обслуживания. Различают надежные и ненадежные службы.

Службы, ориентированные на соединение:

. Надежный поток сообщений. (Последовательность страниц)

. Надежный поток байт. (Удаленная регистрация)

. Ненадежное соединение. (Цифровая голосовая связь)

Службы без установления соединения:

. Ненадежная дейтограмма. (Рассылка рекламы)

. Дейтограмма с подтверждением. (Заказное письмо)

. Запрос - ответ. (Запрос к БД)

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

Существуют системы, для которых задержки, связанные с передачей подтверждений, неприемлемы, или подтверждения вообще неактуальны. Тогда используют ненадежные соединения (3 и 4). Не все службы требуют установки соединения, так как установить его бывает иногда очень сложно, или вообще нежелательно. Ненадежные службы без установки соединения называются службами дейтограмм. Службу 5-го типа используют для пересылки корот?/p>