Файл: Модель клиент-сервер (Основные принципы построения распределённых информационных систем).pdf

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

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

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

Добавлен: 19.06.2023

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

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

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

Введение

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

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

В связи с данными предпосылками в конце XX века (в 90-х годах) была создана модель «Клиент-сервер», которая является одной из технологий реализации программных приложений. Особенность данной технологии заключается в делении приложения на два уровня: первый – клиент -предоставление данных и второй - сервер БД - хранение данных. На «Клиенте» происходит обработка информации, на «Сервер» отправляются запросы и обрабатываются в соответствии полученных в ответ на них данные. Данная технология предоставляет возможность быстрого обмена информацией между пользователем и ресурсами.

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

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

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

Появление Web вызвало желание в системе "клиент-сервер", где в роли клиента выступал бы Web-браузер. Но инструментальные средства для конструирования Web-страницне были связаны с SQL и потому в наибольшей степени подходили для реализации третьего уровня.


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

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

Системы такого уровня основанны на классической двухуровневой клиент-серверной архитектуре (Two-tierarchitecture).

Целью данной работы является исследование и раскрытие построения сетевой технологии модели «Клиент-Сервер».

В процессе исследования и достижения поставленной цели были решены следующие задачи:

- изучение научно-технической литературы по данному вопросу;

- объяснение понятий «Клиент», «Сервер», «Сетевая технология»;

- раскрытие принципов построения архитектуры модели «Клиент-Сервер»;

- изучение принципов функционирования модели «Клиент-Сервер»;

- использование технологии «клиент – сервер» сегодня.

Предметом и объектом исследования является архитектура модели «Клиет-Сервер».

Глава 1. Архитектура модели «Клиент-сервер».

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

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

Рис.1. Вычислительная сеть как сложный комплекс взаимосвязанных программных и аппаратных компонентов [3]

В основе любой сети лежит аппаратный слой стандартизированных компьютерных платформ, серверов, рабочих станций и ПК. В настоящее время в сетях успешно работают компьютеры различных классов — от персональных до мейнфреймов и супер-Эвм [6].


Второй слой — коммуникационное оборудование. Кабельные системы, повторители, коммутаторы, маршрутизаторы и модульные концентраторы превратились в полноправные компоненты сети. Современное коммуникационное устройство представлять собой сложное специализированное мультипроцессорное устройство, которое нужно конфигурировать, администрировать и оптимизировать его работу в сети.

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

■взаимодействие операционной системы с другими сетевыми операционными системами;

■ какой уровень безопасности и защищенности данных она может обеспечить;

■ какое число пользователей может обрабатывать одновременно;

■ возможно, ли перенести ее на компьютер другого типа и др.

Самый верхний, четвертый слой содержит множество сетевых приложений: сетевые базы данных, средства передачи и архивирования данных, системы автоматизации коллективной работы и т.д. Очень важно представлять диапазон возможностей, предоставляемых приложениями для различных областей применения, а также знать, насколько они совместимы с другими сетевыми приложениями и операционными системами [3].

В настоящее время большое количество сетей использует модель клиент-сервер. Сеть архитектуры клиент-сервер — это сетевая среда, в которой компьютер-клиент посылает запрос компьютеру-серверу, обрабатывающий этот запрос. Рассмотреть работу модели можно на примере системы управления базами данных (БД) — приложения, часто используемого в среде клиент-сервер. В модели клиент-сервер программное обеспечение (ПО) клиента использует язык структурированных запросов SQL (Structured Query Language), который переводит запрос с языка, понятного пользователю, на язык, понятный машине. SQL схож с естественным английским языком.

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

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

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


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

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

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

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

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

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

Рис.2. Модель «Клиент-Сервер» [9]

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


Рис.3. Модель клиент-сервер в распределенной системе [9].

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

Формат запроса клиента и ответа сервера определяется через протоколы. Спецификации открытых протоколов описываются открытыми стандартами, например, протоколы Интернета определяются в документах RFC.

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

1.3. Понятие прикладных протоколов

Необходимо различать понятия сетевых приложений и протоколов прикладного уровня. Протоколы прикладного уровня являются большей частью сетевых приложений. Рассмотрим два примера. Web является сетевым приложением, позволяющим пользователям получать web-документы по запросу и состоящим из множества компонентов, включая стандарт формата документов (HTML), браузеры (Netscape Navigator, Microsoft Internet Explorer и др.), web-серверы (например, Apache, Microsoft или Netscape), протоколы прикладного уровня. Протокол прикладного уровня для web носит название – «протокол передачи гипертекста» (Hyper Text Transfer Protocol, HTTP) и описывает формат и порядок обмена сообщениями между клиентом и сервером (RFC 2646). Таким образом, HTTP является лишь только частью web-приложения.

Или, например, рассмотрим приложение электронной почты. Электронная почта Интернета в своей основе множество компонентов: почтовых серверов, содержащих почтовые ящики пользователей, программ для просмотра и создания электронных писем, стандартов, описывающих структуру электронных писем, протоколов прикладного уровня, регламентирующих порядок обмена сообщениями серверов между собой и с оконечными системами пользователей, а также интерпретацию полей, из которых состоят электронные письма. Основным протоколом прикладного уровня для электронной почты является протокол простой передачи сообщений (Simple Mail Transfer Protocol, SMTP). Как мы видим, SMTP (RFC 2821) — лишь часть (хотя и достаточно большая) структуры приложений электронной почты.