Файл: ТЕХНОЛОГИЯ «КЛИЕНТ-СЕРВЕР» (Определение сервера и клиента).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 242

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

Актуальность. Как результат эволюции компьютерных технологий появились компьютерные сети. Само появление компьютерных сетей ознаменовало новый этап в компьютерной технологии.

Самые первые компьютерные сети были довольно примитивными – скорость работы такой сети была очень маленькой по сравнению с современными сетевыми технологиями, но для того времени и это было достижение.

С совершенствованием аппаратной части сетей совершенствовалось и сетевое программное обеспечение. Со временем потребовалось совершенствование самих технологий, а не только развитие аппаратуры и программного обеспечения. Были разработаны современные сетевые технологии. Одной из таких технологий является технология «клиент-сервер», позволяющая пользователям сети получать быстрый доступ к ресурсам.

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

Цель работы: рассмотреть технологию «клиент-сервер» теоретически и на практическом примере.

Исходя из цели были поставлены следующие задачи:

  1. Определить понятия сервера и клиента;
  2. Рассмотреть роль сервера и клиента в архитектуре клиент-сервер;
  3. Определить преимущества архитектуры клиент-сервера;
  4. Определить компоненты архитектуры клиент-сервер
  5. Рассмотреть модели архитектуры клиент-сервер
  6. Определить сущность понятия сетевые протоколы и их виды;
  7. Разработать приложение «Чат» с применением технологи «клиент-сервер».

Предмет: технология клиент-сервер.

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

Работа состоит из 33 страниц печатного текста, содержит 8 рисунков.

1. Характеристика и основные понятия архитектуры клиент-сервер

Определение сервера и клиента

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


Архитектура клиент - сервер (client-server architecture) - это концепция информационной сети, в которой основная часть ее ресурсов сосредоточена в серверах, обслуживающих своих клиентов (рис. 1). Рассматриваемая архитектура определяет два типа компонентов: серверы и клиенты.

Рис.1 Архитектура клиент – сервер [5]

Сервер - это компьютер, или выполняющаяся на нём программа, которая предоставляет клиентам доступ к общим ресурсам и управляет этими ресурсами.

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

Сервисная функция в архитектуре клиент - сервер описывается комплексом прикладных программ, в соответствии с которым выполняются разнообразные прикладные процессы [1].

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

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

На рис. 2 приведен перечень сервисов в архитектуре клиент – сервер.

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

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

В сетях с выделенным файловым сервером на выделенном автономном ПК устанавливается серверная сетевая операционная система. Этот ПК становится сервером. Программное обеспечение (ПО), установленное на рабочей станции, позволяет ей обмениваться данными с сервером. Наиболее распространенные сетевые операционная системы:

  • NetWare фирмы Novel;
  • Windows NT фирмы Microsoft;
  • UNIX фирмы AT&T;
  • Linux [13].

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

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

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


Роль сервера и клиента в архитектуре клиент-сервер

Роль серверов состоит в обеспечение централизованной защиты и управлении трафиком, а также в предоставление клиентам ресурсов: информации, приложений и доступа к устройствам совместного пользования (например, к принтерам). В клиент - серверной среде в роли клиентов выступают настольные ПК под управлением операционной системы. Как правило, клиент использует собственные вычислительные мощности для обработки информации, полученной от сервера, но полагается на сервер в части предоставления необходимых данных и приложений. Такое распределение ролей в обработке информации носит название клиентской (front - end) и серверной (back - end) обработки [6].

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

Преимущества и недостатки архитектуры клиент-сервер

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

В большинстве случаев программа обработки (клиентская часть) расположена на одном компьютере, а сама база данных хранится на другом. Помимо хранения централизованной базы данных центральная машина (сервер базы данных) обеспечивает выполнение основного объема обработки данных. Запрос на данные, выдаваемый клиентом (рабочей станцией), порождает поиск и извлечение данных на сервере. Извлеченные данные транспортируются по сети от сервера к клиенту. Причем, по сети передается только полезная информация [7].

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


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

Быстродействие - основной фактор целесообразности разработки систем для архитектуры клиент-сервер. Применение средств быстрой разработки программ (Rapid Application Development - RAD) позволяет разработчикам создавать прикладные системы для архитектуры клиент-сервер в рекордно короткие сроки. Технология серверов баз данных также становится проще в использовании и сочетается в одних системах со средствами RAD. Таким образом, сокращается время, необходимое для подготовки и передачи прикладной программы пользователю [8].

Сети клиент - серверной архитектуры имеют следующие преимущества:

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

Наряду с преимуществами сети клиент – серверной архитектуры имеют и ряд недостатков:

  • неисправность сервера может сделать сеть неработоспособной, как минимум потерю сетевых ресурсов;
  • требуют квалифицированного персонала для администрирования;
  • имеют более высокую стоимость сетей и сетевого оборудования [14].

Компоненты архитектуры клиент-сервер

Существуют три основных программных компонента архитектуры клиент-сервер:

  1. Программное обеспечение конечного пользователя;
  2. Промежуточное обеспечение;
  3. Программное обеспечение сервера.

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


Промежуточное обеспечение предоставляет общий интерфейс для ПО конечного пользователя и сервера, проникающий сквозь слои GUI (графический интерфейс пользователя), операционную систему, вычислительной сети и собственных драйверов базы данных с помощью общих вызовов. Для завершения операции сервер базы данных выполняет запрос и передает клиенту затребованные данные для обработки их программой клиента [4].

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

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

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

Модели архитектуры клиент-сервер

Обычно выделяют три модели взаимодействия клиента и сервера:

RDA (Remote Data Access) – модель «доступа к удаленным данным», при которой данные и программы, обеспечивающие доступ к данным по сети, располагаются на сервере, а программы решения прикладных задач, организации ввода информации и отображения результатов - на рабочей станции клиента.

DBS (DataBase Server) - модель сервера базы данных, в которой компонента представления размещена в клиентской части, а прикладная компонента и доступ к информационным ресурсам - в серверной.

AS (Application Server) - модель сервера приложений, в которой компонента представления находиться в клиентской части, прикладная компонента - в «сервере приложения», а компонента доступа к информационным ресурсам - в «сервере базы данных» [9].

В RDA-модели коды компонента представления и прикладного компонента совмещены и выполняются на компьютере-клиенте. Последний поддерживает как функции ввода и отображения данных, так и чисто прикладные функции. Доступ к информационным ресурсам обеспечивается, как правило, операторами специального языка (языка SQL, например, если речь идет о базах данных) или вызовами функций специальной библиотеки. Запросы к информационным ресурсам направляются по сети удаленному компьютеру (например, серверу базы данных). Последний обрабатывает и выполняет запросы и возвращает клиенту блоки данных [15].