double arrow

Как компьютеры взаимодействуют между собой

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

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

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

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

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

Рис. 1

Драйвер СОМ-порта вместе с контроллером СОМ-порта работают совместно с контроллером и драйвером СОМ-порта другого компьютера. Вместе они обеспечивают передачу по кабелю между компьютерами одного байта информации.

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

Итак, приложение А должно сформировать сообщение-запрос для приложения В. В запросе необходимо указать имя файла, тип операции (в данном случае - чтение), смещение и размер области файла, содержащей нужные данные.

Чтобы передать это сообщение компьютеру В, приложение А обращается к драйверу СОМ-порта, сообщая ему адрес в оперативной памяти, по которому драйвер находит сообщение и затем передает его байт за байтом приложению В.

Приложение В, приняв запрос, выполняет его, то есть считывает требуемую область файла с диска с помощью средств локальной ОС в буферную область своей оперативной памяти, а далее с помощью драйвера СОМ-порта передает считанные данные по каналу связи в компьютер А, где они и попадают к приложению А.

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

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

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

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

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

Рис. 2.

Контрольные вопросы:

1. Расскажите, как два компьютера взаимодействуют между собой?

2. Почему сетевые функции нецелесообразно включать в состав прикладных программ (например, текстового редактора)?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: