Файл: Модель клиент-сервер (Основы модели «Клиент-сервер).pdf
Добавлен: 27.06.2023
Просмотров: 56
Скачиваний: 3
Модель клиент-сервер- это еще один подход к структурированию ОС. В широком смысле модель клиент-сервер предполагает наличие программного компонента - потребителя какого-либо сервиса - клиента, и программного компонента - поставщика этого сервиса - сервера. Взаимодействие между клиентом и сервером стандартизуется, так что сервер может обслуживать клиентов, реализованных различными способами и, может быть, разными производителями. При этом главным требованием является то, чтобы они запрашивали услуги сервера понятным ему способом. Инициатором обмена обычно является клиент, который посылает запрос на обслуживание серверу, находящемуся в состоянии ожидания запроса. Один и тот же программный компонент может быть клиентом по отношению к одному виду услуг, и сервером для другого вида услуг. Модель клиент-сервер является скорее удобным средством ясного представления функций того или иного программного элемента в той или иной ситуации, нежели технологией. Эта модель успешно применяется не только при построении ОС, но и на всех уровнях программного обеспечения, и имеет в некоторых случаях более узкий, специфический смысл, сохраняя, естественно, при этом все свои общие черты.[9]
В целях обеспечения эффективности и целостности работы, ОС реализуется двумя режимами работы: режим пользователя(usermode) ирежим ядра(kernelmode).
Применительно к структурированию ОС идея состоит в разбиении ее на несколько процессов - подсистем, каждая из которых выполняет отдельный набор сервисных функций - например, управление памятью, создание или планирование процессов. Каждая подсистема выполняется в пользовательском режиме. Клиент, которым может быть либо другой компонент ОС, либо прикладная программа, запрашивает сервис, посылая сообщение на сервер. Ядро ОС (называемое здесь микроядром), работая в привилегированном режиме, доставляет сообщение нужному серверу, сервер выполняет операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения.
Каждая система в модели клиент/сервер выполняет одну или более операций по сохранению данных, доступу к данным или их обработке. Системы клиент/сервер не могут быть построены с помощью компьютеров, которые используют терминал, или персональных компьютеров, работающих в режиме эмуляции терминала, соединенных с другими такими компьютерами. В подобной конфигурации терминалы или персональные компьютеры, работающие в режиме терминала, являются пассивными. Они только посылают и отображают наборы символов.[10]
Когда персональные компьютеры и серверы объединены, общая обработка должна быть разделена между сервером, мэйнфреймом или миникомпьютером и системой клиента. Объемы работы, выполняемые клиентом и сервером, определяются их возможностями. Их взаимодействие представляет собой форму групповой работы, которая позволяет достигать высокой эффективности и скорости во всех операциях. Система клиент/сервер подразумевает неравное деление нагрузки при обработке данных. Такое деление обуславливается тем, что возможности сервера и клиента в области обработки данных отличаются. Более быстрый и большой сервер передает данные быстрее, сохраняет большие объемы информации и обычно выполняет более операции, чем система клиента.[11]
Персональные компьютеры в системе клиент/сервер, используемые в качестве клиентов, имеют меньшую мощность. При этом они выполняют и пропорционально меньший объем работы. В основном они отвечают и выдают ему инструкции для манипуляций с данными, которые требуют больших ресурсов. Клавиатура персональных компьютеров и их монитор позволяют им работать как устройство ввода, генерирующее команды и данные, а также как выводное устройство, отображающее данные пользователю.[12]
MicrosoftSQLServer– это универсальный пример системы клиент-сервер.SQL Server 7.0 представляет собой существенно переработанную версию системы управления базами данных корпорацииMicrosoftи в отличие от своих предшественниц может быть установлена не только на платформе Windows NT, но теперь также и на Windows 95/98.[13]
СУБД SQL Server имеет в своем составе программное обеспечение для установки на серверные системы и клиентское программное обеспечение, которое устанавливается на персональные компьютеры клиентов. Графический интерфейс пользователяWindows, используемый некоторыми приложениями, позволяет создавать, поддерживать и получать доступ к базам данных и ко всем объектам баз данных со стороны клиента.
В системах клиент-сервер приложение, работающее на сервере (система управления базами данных) отвечает за создание и поддержку объектов баз данных в виде таблиц и индексов. Сервер поддерживает целостность ссылок и безопасность, а также обеспечивает возможность восстановления данных в случае широкого спектра отказов.
Приложения клиента выполняют всю работу по взаимодействию с пользователем, включая отображение информации и предоставление возможности работы с приложением через графический интерфейс пользователя. После того как из сервера выбраны строки данных, приложение может создавать их копии для локального хранения и последующего манипулирования с данными. Вы также можете контролировать тип доступа к информации, с которой они работают на сервере.
Если вы работаете с локальными копиями информации, работа может производиться без связи с сервером. После того как вы закончили свою работу, изменения посылаются обратно на сервер или (если вы использовали информацию только для просмотра) происходит простой отказ от работы с базой данных.[14]
Работая с программным обеспечением клиента, вы можете манипулировать данными прямо в базе данных SQL Server. Вы обязательно должны записывать все изменения на сервер. Это необходимо для того, чтобы другие пользователи могли получить доступ к самой последней информации в базе данных.
Вы также можете получить доступ к SQL Server прямо с клавиатуры сервера. Прямой доступ к серверу особенно удобен для администрирования. Но такие действия не являются операциями типа клиент/сервер, так как они осуществляются локально, а не по сети. Microsoft SQL Server поставляется с 32-разрядными версиями приложений Windows – инструментов работы с SQL Server через Windows, которые обычно используются на клиентских компьютерах.[15]
3. Технология "Клиент-сервер" применительно к Internet
С появлением глобальных сетей многоуровневая архитектура «Клиент – сервер» нашла свое применение в Internet. Другими словами, архитектура Internet не что иное, как архитектура «Клиент – сервер»: пользователь всегда работает с программой - клиентом (InternetExplorer или NetscapeNavigator), которая обращается к web-серверам, обслуживающим одновременно десятки и сотни запросов от клиентов по всему миру.
Компьютеры - серверы постоянно соединены с глобальной сетью и готовы предоставлять сервис (например, пересылать почту), отвечая при этом на десятки и сотни запросов одновременно. Web - серверы защищены от сбоев электропитания и работают обычно под одной из модификаций ОС UNIX.
Клиенты - персональные компьютеры, на которых установлены браузеры для поиска информации в сети Internet. Такой компьютер не соединен с глобальной сетью постоянно, а подключается по мере необходимости.
Помимо клиентов-браузеров бывают и другие клиенты, например, клиенты электронной почты (OutlookExpress, NetscapeMessenger, TheBat, PegasusMail, Pine, Eudora и другие.), клиенты для приема и передачи файлов (ftp-клиенты), telnet-клиенты, которые необходимы для интерактивной работы на удаленном узле (простейшийtelnet-клиент - программа telnet.exe) и многие другие.[16]
Программы-серверы также разнообразны: web – сервер, DNS – сервер, ftp-сервер (для передачи файлов), сервер приложений (для удаленной работы с приложениями), сервер электронной почты и другие.
Технология «Клиент – сервер» для Internet организована следующим образом (рис.6):
- клиент формирует и посылает запрос на сервер;
Передачу с сервера на рабочую станцию документов и других объектов по запросам, поступающим от браузера, обеспечивает функционирующая на сервере программа, называемая web-сервером. Когда web-браузеру необходимо получить документы или другие объекты от Web-сервера, он отправляет серверу соответствующий запрос. При достаточных правах доступа между сервером и навигатором устанавливается логическое соединение.
- сервер производит необходимые манипуляции с данными, формирует результат и передаёт его клиенту;
Сервер обрабатывает запрос, передает web-навигатору результаты обработки и разрывает установленное соединение. Таким образом, web-сервер выступает в качестве информационного концентратора, который доставляет информацию из разных источников, а потом в однородном виде предоставляет ее пользователю.
На сервере размещаются web-документы, которые визуализируются и интерпретируются программой навигации (например, web-браузер), функционирующей на рабочей станции.
- клиент получает результат, отображает его на устройстве вывода и ждет дальнейших действий пользователя. [17]
Логически web-документ представляет собой гипертекстовый документ, объединяющий ссылками различныеweb-страницы. Web-страница может быть связана с компьютерными программами и содержать ссылки на другие объекты. В web-страница помимо текста может содержать мультимедийный объект (рисунок, звук, видео), программу, которая при переходе на нее по ссылке, будет передана с сервера на рабочую станцию для интерпретации или запуска на выполнение навигатором или любой другой сервис – электронную почту, копирование файлов с другого компьютера сети, поиск информации и так далее.
Цикл повторяется, пока пользователь не закончит работу с сервером.
Рис.6
В сервисе WWW для передачи информации применяется протокол НТТР, при работе которого сервер не имеет никакой информации о состоянии браузера. При этом взаимодействовать с сервером возможно только через механизм URL, это создает некоторые трудности при реализации клиентской части. Схема передачи информации по протоколу НТТР состоит из следующих этапов (рис.7):
- браузер преобразует доменное имя из URL в IP-адрес и устанавливает соединение с сервером;
- браузер передает остальную часть URL на сервер;
- сервер определяет по URL путь и имя файла, при необходимости формирует его динамически;
- сервер пересылает файл браузеру;
- сервер разрывает соединение;
- браузер отображает документ.[18]
Существует множество технологий и языков программирования для написания серверных и клиентских Internet – приложений. В настоящее время большое распространение получила технология Java, с помощью которой можно строить универсальные системы со смешанной архитектурой, приложения, выполняемые на стороне клиента, называются апплетами (applets), на стороне сервера - сервлетами (servlets). Достаточно большой популярностью пользуется Flash-технология, в рамках которой можно создавать медиа-насыщенные интерактивные ресурсы, основная рабочая нагрузка при этом ложится на компьютер пользователя.
Рис. 7
С помощью CGI (CommonGatewayInterface) приложений возможно взаимодействие с любыми базами данных через формирование SQL запросов, или другие механизмы; также возможна реализация счетчиков посещений, гостевых книг и других расширений. CGI реализуется через скрипты на любом из языков программирования высокого уровня (наиболее часто используют С++, Perl, VisualBasic, Pascal, Java).
ServerSidesIncludes (SSI/SSI+) - технология динамического формирования документов (в том числе и работы с БД). Скрипт (точнее серверные инструкции) находится в HTML файле обычно имеющем расширение sht или shtm, при этом серверные инструкции размещаются между специальными разделителями (tokens), а сами инструкции записаны на языке Сscript, хотя это в большей степени зависит собственно от сервера. При пересылке такой файл сканируется сервером на наличие SSI инструкций и результат динамически подставляется в посылаемый документ. SSI реализуется через специальные компоненты (динамические библиотеки), которые входят в состав сервера. По аналогичному принципу организована работа со скриптами на языке PHP, в этом случае, программные конструкции включаются в HTML с помощью разделителей <? php и ?>.
Схожей по технике формирования динамических страниц является технология ActiveServerPages (ASP) от Microsoft. Данная технология опирается на использование разнообразных объектов и компонент (COM, ActiveX и тому подобное), работа с которыми ведётся средствами языков VBScript или JavaScript. [19]
Internet Server Application Programming Interface (ISAPI), реализуется через механизм DLL. C помощью ISAPI Internet connector возможно взаимодействие с базами данных (SQL Server, Oracle, RBase, Access, Paradox, dBASE) через драйверы Open Database Connectivity (ODBC), также возможна реализация других расширенных функций (создание различных фильтров запросов). Основным средством разработки приложений является Microsoft Visual C++ (The Internet Server API Extension Wizard). Данный механизм поддерживается Microsoft Internet Information Server (MS IIS). [20]