Удаленный вызов процедур. Основу этой системы удаленного вызова процедур положила статья, которая появилась в 1980 – м году и в ней был предложен новый способ сообщений между машинами. Предложенная идея сводилась к следующему разрешить процедуре находящейся на машине А использовать процедуру находящейся на машине В. Взаимодействие предполагалось сделать следующим образом: процесс запускается на машине А, и вызывает программу находящиеся на машине В, после вызова процесс на машине А приостанавливается и начинает работать на машине В информация передается через параметры. После того как процедура на машине В отработает процесс на машине А возобновляется. Удаленный вызов процедур был реализован с появлением персоналок.
Основные проблемы возникающие при удаленном вызове процедур: 1) Т.к. процессы выполняются на разных машинах, то они выполняются в разных адресных пространствах, и нужно было согласовать эти пространства. 2) Параметры процедур то же передаются от машины к машине виде сообщений. По протоколам, которые не гарантируют доставку сообщения. 3) Машины на которых находятся процедуры могут иметь свои, поэтому необходимо прогнозировать ситуации в этом случае. Заглушки для клиента и сервера. (STUB). Все эти проблемы на практике решили с помощью механизма заглушек. Заглушка – это программный код, вызываемой процедуры, но которая работает локально.
Алгоритм удаленного вызова процедур: 1) Процедура клиента вызывает клиентскую заглушку. 2) Клиентская заглушка создает сообщение и вызывает локальную о.с. 3) Локальная о.с. пересылает сообщение о.с. сервера. 4) О.с. сервера извлекает сообщение и передаёт результат северной заглушке. 5) Серверная заглушка извлекает параметры процедуры и запускает сервер. 6) Сервер выполняет процедуры результаты возвращаются заглушке сервера. 7) Сервер загружает результаты сообщения и вызывает совою локальную о.с. 8) О.с. сервера пересылает сообщение о.с. клиента 9) О.с. активирует клиентскую заглушку. 10) Заглушка извлекает результаты передает их клиенту.