Cтраница 1
Вызов удаленной процедуры представляет собой тот способ, которым процесс А просит процесс - В вызвать процедуру в адресном пространстве процесса В от имени процесса А и вернуть результат процессу А. Существуют различные ограничения на параметры. [1]
Фактические этапы выполнения вызова удаленной процедуры показаны на рис. 8.21. Суррогаты на рисунке затенены серым цветом. [2]
Несмотря на привлекательность вызова удаленных процедур, многие программисты все еще предпочитают модель совместно используемой памяти и - хотели бы применять ее даже на многомашинной системе. [3]
Фактические этапы выполнения вызова удаленной процедуры показаны на рис. 8.21. Суррогаты на рисунке затенены серым цветом. [4]
Несмотря на привлекательность вызова удаленных процедур, многие программисты все еще предпочитают модель совместно используемой памяти и хотели бы применять ее даже на многомашинной системе. [5]
Несмотря на концептуальную элегантность вызова удаленной процедуры, данный метод содержит множество незаметных на первый взгляд проблем. Одна из них заключается в использовании указателей в качестве параметров. В нормальных условиях передача указателя в качестве параметра не представляет проблемы. Вызываемая процедура может использовать параметр тем же способом, что и процесс, вызывающий процедуру, поскольку обе процедуры находятся в одном виртуальном адресном пространстве. При использовании вызова удаленной процедуры передача указателя невозможна, так как клиент и сервер находятся в различных адресных пространствах. [6]
Идея удаленного вызова процедуры заключается в том, что вызов удаленной процедуры должен выглядеть максимально похоже на вызов локальной процедуры. В простейшей форме для вызова удаленной процедуры клиентская. Аналогично, сервер связан с процедурой, называемой серверным суррогатом или серверной заглушкой. Эти процедуры создают видимость локальности вызова. [7]
Идея удаленного вызова процедуры заключается в том, что вызов удаленной процедуры должен выглядеть максимально похоже на вызов локальной процедуры. В простейшей форме для вызова удаленной процедуры клиентская программа должна быть связана с небольшой библиотечной процедурой, называемой клиентским суррогатом или клиентской заглушкой, представляющей серверную процедуру в адресном пространстве клиента. Аналогично, сервер связан с процедурой, называемой серверным суррогатом или серверной заглушкой. Эти процедуры создают видимость локальности вызова. [8]
Наличие всех этих проблем не означает, что дело вызова удаленных процедур безнадежно. В действительности этот метод широко применяется, но для его корректной работы необходимо соблюдение определенных ограничений. [9]
Знакомство с User Objects, показан пример, где определение типа Transaction расширено для того, чтобы разработчик мог осуществлять вызов удаленных процедур ( RPC), хранящихся в базах данных. [10]
Для общения друг с другом потоки могут использовать широкий спектр возможностей, включая каналы, именованные каналы, почтовые ящики, вызов удаленной процедуры и совместно используемые файлы. Каналы могут работать в одном из двух режимов, выбираемом при создании канала: байтовом и режиме сообщений. Байтовые каналы работают так же, как и в системе UNIX. Каналы сообщений в чем-то похожи на байтовые каналы, но сохраняют границы между сообщениями, так что четыре записи по 128 байт будут читаться с другой стороны канала как четыре сообщения по 128 байт, а не как одно 512-байтовое сообщение, как это может случиться с байтовыми каналами. Также имеются именованные каналы, для которых существуют те же два режима. Именованные каналы, в отличие от обычных каналов, могут использоваться по сети. [11]
Когда процедура вынимается из программы и переносится на другой компьютер, чтобы обращаться к ней в дальнейшем при помощи метода RPC ( вызов удаленной процедуры), могут возникнуть некоторые проблемы. [12]
Идея удаленного вызова процедуры заключается в том, что вызов удаленной процедуры должен выглядеть максимально похоже на вызов локальной процедуры. В простейшей форме для вызова удаленной процедуры клиентская. Аналогично, сервер связан с процедурой, называемой серверным суррогатом или серверной заглушкой. Эти процедуры создают видимость локальности вызова. [13]
Идея удаленного вызова процедуры заключается в том, что вызов удаленной процедуры должен выглядеть максимально похоже на вызов локальной процедуры. В простейшей форме для вызова удаленной процедуры клиентская программа должна быть связана с небольшой библиотечной процедурой, называемой клиентским суррогатом или клиентской заглушкой, представляющей серверную процедуру в адресном пространстве клиента. Аналогично, сервер связан с процедурой, называемой серверным суррогатом или серверной заглушкой. Эти процедуры создают видимость локальности вызова. [14]
Операционная система Amoeba устроена еще проще. У нее есть только один системный вызов: выполнение вызова удаленной процедуры. Этот вызов отправляет сообщение и ждет ответа. [15]