2. ОС запускает драйвер сетевой ИК, сообщая ему адрес буфера ОП, где хранится сообщение.
3. Драйвер и сетевая интерфейсная карта компьютера Л, взаимодействуя с драйвером и интерфейсной картой компьютера В, передают сообщение байт за байтом в буфер ОП компьютера В.
4. Приложение В извлекает сообщение из буфера, интерпретирует его в соответствии с протоколом и выполняет необходимые действия. В число таких действий входит, в том числе, обращение к ОС с запросом на выполнение тех или иных операций с локальным принтером.
5. ОС запускает драйвер принтера, который в кооперации с интерфейсной картой и контроллером принтера выполняет требуемую операцию печати.
Уже на этом начальном этапе, рассматривая связь компьютера с периферийным устройством, мы столкнулись с важнейшими «сетевыми» понятиями: интерфейсом и протоколом, драйвером и интерфейсной картой, а также с проблемами, характерными для компьютерных сетей: согласованием интерфейсов, синхронизацией асинхронных процессов, обеспечением достоверности передачи данных.
Мы только что рассмотрели случай совместного использования принтера в простейшей сети, состоящей только из двух компьютеров. Однако даже на этом начальном этапе мы уже можем сделать некоторые выводы относительно строения сетевого программного обеспечения: сетевых служб, сетевой операционной системы и сетевых приложений.
Потребность в доступе к удаленному принтеру может возникать у пользователей самых разных приложений: текстового редактора, графического редактора, системы управления базой данных (СУБД). Очевидно, что дублирование в каждом из приложений общих для всех них функций по организации удаленной печати является избыточным.
Более эффективным представляется подход, при котором эти функции исключаются из приложений и оформляются в виде пары специализированных программных модулей — клиента и сервера печати (рис. 2.3), функции которых ранее выполнялись соответственно приложениями А и В. Теперь эта пара клиент—сервер может быть использована любым приложением, выполняемым на компьютере А.
| Компьютер АКомпьютер В |
|---|
| Интерфейскомпьютер—компьютерИнтерфейс компьютер—принтер -Рис. 2.3. Совместное использование принтера в компьютерной сети с помощью сетевой службы печати |
Обобщая такой подход применительно к другим типам разделяемых ресурсов, дадим следующие определения3:
Клиент — это модуль, предназначенный для формирования и передачи сообщений-запросов к ресурсам удаленного компьютера от разных приложений с последующим приемом результатов из сети и передачей fix соответствующим приложениям.
Сервер—это модуль, который побтолнно, бжидаат и$ сети эоорйсов от клиентов* й при*
няв запрос, пытается его QCi одйй сервер j
обслуживать запросы сразу йвскслбких *зл#*ше одновременно).
Пара ?слиент—сервер, дрсэд £ кон)ф|тно^.тиг1у ресурса компьютере нарез
сеть, образует сетевую службу, V"' Т У ,,
Каждая служба связана с определенным типом сетевых ресурсов. Так, на рис. 2.3 модули клиента и сервера, реализующие удаленный доступ к принтеру, образуют сетевую службу печати.
Файловая служба позволяет получать доступ к файлам, хранящимся на диске других компьютеров. Серверный компонент файловой службы называют файл-сервером.
Для поиска и просмотра информации в Интернете используется веб-служба, состоящая из веб-сервера и клиентской программы, называемой веб-браузером (web browser). Разделяемым ресурсом в данном случае является веб-сайт — определенным образом организованный набор файлов, содержащих связанную в смысловом отношении информацию и хранящихся на внешнем накопителе веб-сервера.
Компьютер А (клиент)
Компьютер В (сервер)
Приложение
Веб-служба
■штп
| mkh | |
| Операционнаясистема | |
| Операционнаясистема | ||
|---|---|---|
| Трвмщргнщ.л‘ ииШшгва * < | Драйвер дискового накопителяж.Интерфейсная карта | |
| СетевоесоединениеСетевоесоединение | ||
X
□□□□ 'I
Внешний дисковый накопитель
Рис. 2.4. Веб-служба
На схеме веб-службы, показанной на рис. 2.4, два компьютера связаны не непосредственно, как это было во всех предыдущих примерах, а через множество промежуточных компьютеров и других сетевых устройств, входящих в состав Интернета. Для того чтобы отразить этот факт графически, мы поместили между двумя компьютерами так называемое коммуникационное облако, которое позволяет нам абстрагироваться от всех деталей среды передачи сообщений. Обмен сообщениями между клиентской и серверной частями веб-службы выполняется по стандартному протоколу HTTP и никак не зависит от того, передаются ли эти сообщения «из рук в руки» (от интерфейса одного компьютера к интерфейсу другого) или через большое число посредников — транзитных коммуникационных устройств. Вместе с тем, усложнение среды передачи сообщений приводит к возникновению новых дополнительных задач, на решение Которых не был рассчитан упоминавшийся ранее простейший драйвер сетевой интерфейсной карты. Вместо него на взаимодействующих компьютерах должны быть установлены более развитые программные транспортные средства.
3
Термины «клиент» и «сервер» являются чрезвычайно многозначными. Данная пара терминов, уже используемая нами для обозначения функциональной роли взаимодействующих компьютеров и приложений, применима также к программным модулям.