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