КЛИЕНТ-СЕРВЕРНАЯ МОДЕЛЬ И РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ
Компоненты сетевого ПО являют собой типичный пример клиент-серверных приложений - в каждый момент времени один из процессов (выступающий при этом в роли клиента) запрашивает некоторые сервисные функции (например, требование связаться по сети с удаленной ЭВМ) у другого, последний же предоставляет требуемый сервис (является сервером); во многих случаях в зависимости от ситуации процессы могут меняться функциями.
Функции клиента:
o Предоставление пользовательского интерфейса, ориентированного на определенные производственные обязанности и полномочия пользователя.
o Формирование запросов к серверу, причем не обязательно информируя об этом пользователя, в идеале пользователь вообще не вникает в технологию общения ЭВМ, за которой он работает с сервером.
o Анализ ответов сервера на запросы предъявление их серверу
Функция сервера: Выполнение специфических действий по запросам клиента. Если сервер не решает задачу, он обращается к другому серверу, более мощному
Заметим, что процесс-клиент и процесс-сервер могут исполняться как на одной и той же ЭВМ, так и на разных (соединенных) сетью ЭВМ. Каждая многозадачная ОС имеет специфические средства обеспечения взаимодействия ‘клиент-сервер’ .
Итак, основная идея модели ‘клиент-сервер’ состоит в разделении ПО на несколько процессов, каждый из которых реализует специфический набор сервисов: например, распределение памяти, создание процесса или планирование процессов. Каждый сервер (server) выполняется в пользовательском режиме, проверяя в цикле, не обратился ли к нему с требованием обслуживания какой-либо клиент (client). Клиент (которым может быть другой компонент ОС) или прикладная программа, запрашивает выполнение сервиса, посылая серверу сообщение. Ядро ОС (выполняющееся в режиме ядра), доставляет сообщение серверу; последний выполняет запрашиваемые действия, после чего ядро ОС возвращает клиенту результаты в составе другого сообщения.
Преимущество построения ПО на принципе клиент-серверного подхода состоит в автономизации отдельных компонентов ПО - каждый компонент имеет ограниченный размер, выполняется как отдельный процесс пользовательского режима, авария (приводящая, возможно, к перезапуску процесса) одного из них не нарушает работы остальных компонентов ПО. Именно на таком принципе построена известная операционная система WINDOWS фирмы Microsoft Corp.
Важно, что различные серверные процессы могут выполняться на различных процессорах многопроцессорного компьютера или даже на разных компьютерах, что делает построенную на клиент-серверной основе ОС пригодной для распределенных вычислительных сред. В случае распределенной ОС клиентам даже не требуется знать, обслуживается их запрос локально (на данной ЭВМ) или удаленно.
В Windows’NT средства обмена сообщениями между распределенными (часто выполняющимися на различных компьютерах в сети) приложениями обеспечивает (путем поддержки сетевого транспорта и защиты) служба сетевого обмена данными (DDE, Dynamic Data Exchange); также поддерживается модель выполнения распределенных приложений в сети (DCOM, Distributed Component Object Model). Ощутимый недостаток DCOM состоит в том, что каждый клиент может взаимодействовать только с одним конкретным компьютером, имеющим в составе ПО нужный сервер приложений (сколько бы их ни было в сети); при этом информационная система не имеет никакой защиты от сбоев, вызванных перегрузкой или отказом сервера приложений (так как отсутствует возможность переключения клиентского приложения между несколькими серверами сети); этот недостаток устранен в технологии OLEnterprise фирмы Inprise Corp. [7].
В состав Windows’NT изначально введены средство локального вызова процедур (LPC, Local Procedure Call) - оптимизированного механизма исполняющей системы NT для локальной передачи сообщений серверной процедуре и средство удаленного вызова процедур (RPC, Remote Procedure Call) - механизм вызова процедур с удаленной машины (именно через RPC взаимодействуют клиенты и сервера приложений согласно технологии OLEnterprise). Не менее интересным являются введенные в Windows’NT средства передачи данных между процессами (в том числе выполняющимися на различных ЭВМ, объединенных сетью) - именованные и анонимные каналы передачи данных, каналы типа Mailslot .
Таким образом, хотя Windows’NT и не является в полном смысле слова распределенной ОС, фирма-разработчик Microsoft Corp. серьезно подготовилась к реальному созданию распределенной ОС, и она будет (с большим или меньшим успехом) разработана в свое время.
ЛЕКЦИЯ
Дата добавления: 2015-09-14; просмотров: 1483;