Использование дейтаграмм для удаленного вызова процедур
Использование дейтаграмм для удаленного вызова процедур
Обычно дейтаграммы применяются для реализации RPC. По сути дела, в самых распространенных ситуациях клиент посылает запрос серверу, используя дейтаграммы. Поскольку доставка запроса не гарантируется, клиент должен повторно передать запрос, если по истечении заданного периода ожидания ответ от сервера (для посылки которого также используются дейтаграммы) не получен. Сервер должен быть готов к тому, что один и тот же запрос может направляться ему несколько раз.
Важно отметить, что ни клиенту, ни серверу RPC служебные сигналы, которые, например, необходимы при образовании соединения через потоковый сокет, не требуются; вместо этого они связываются друг с другом посредством запросов и ответов. В качестве дополнительной возможности RPC может гарантировать надежность взаимодействия путем повторной передачи запросов по истечении периода ожидания, что упрощает разработку приложений. Выражаясь иначе, часто говорят о том, что клиент и сервер RPC не имеют состояния (они не хранят никакой информации относительно состояния текущего запроса или запросов, на которые еще не получен ответ). Отсюда следует, что результат обработки на сервере множества идентичных клиентских запросов будет тем же, что и результат обработки одиночного запроса. Это также значительно упрощает проектирование приложений и реализацию их логики.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Контекст системного вызова
Контекст системного вызова Как уже обсуждалось в главе 3, "Управление процессами", при выполнении системного вызова ядро работает в контексте процесса. Указатель current указывает на текущее задание, которое и есть процессом, выполняющим системный вызов.В контексте процесса
17.6. Использование дейтаграмм UDP
17.6. Использование дейтаграмм UDP Наряду с тем, что большинство приложений пользуются преимуществами потокового протокола TCP, некоторые предпочитают применять UDP. Давайте рассмотрим несколько причин, по которым дейтаграммная модель без установления соединений,
17.6.2. Отправка и получение дейтаграмм
17.6.2. Отправка и получение дейтаграмм Для отправки и получения UDP-пакетов обычно используются четыре системных вызова[141]: send(), sendto(), recv(), recvfrom()[142].#include <sys/types.h>#include <sys/sockets.h>int send(int s, const void * data, size_t len, int flags);int sendto(int s, const void * data, size_t len, int flags, const struct sockaddr * to, socklen_t toLen);int recv(int
Семантика вызова
Семантика вызова Вызов локальной процедуры однозначно приводит к ее выполнению, после чего управление возвращается в головную программу. Иначе дело обстоит при вызове удаленной процедуры. Невозможно установить, когда конкретно будет выполняться процедура, будет ли она
2.3. UDP: протокол пользовательских дейтаграмм
2.3. UDP: протокол пользовательских дейтаграмм UDP — это простой протокол транспортного уровня. Он описывается в документе RFC 768 [93]. Приложение записывает в сокет UDP дейтаграмму (datagram), которая инкапсулируется (encapsulate) или, иначе говоря, упаковывается либо в дейтаграмму IPv4, либо
Использование серверов удаленного доступа, поддерживающих графический интерфейс
Использование серверов удаленного доступа, поддерживающих графический интерфейс Серверы удаленного доступа, поддерживающие графический интерфейс, в основном нужны тогда, когда компьютер должен выполнять роль рабочей станции для нескольких пользователей, работающих
Использование средств удаленного администрирования
Использование средств удаленного администрирования В некоторых случаях возникает необходимость выполнять администрирование системы с удаленного компьютера. Справиться с этой задачей помогают специализированные инструменты. Эти средства можно использовать и
Использование средств удаленного администрирования для настройки различных версий Linux
Использование средств удаленного администрирования для настройки различных версий Linux Все инструментальные средства, рассматриваемые в этой главе, могут работать с различными версиями Linux. Основная трудность, возникающая при этом, состоит в том, что в программе
Передача и прием дейтаграмм UDP
Передача и прием дейтаграмм UDP Класс QUdpSocket может использоваться для отправки и приема дейтаграмм UDP. UDP — это ненадежный, ориентированный на дейтаграммы протокол. Некоторые приложения применяют протокол UDP, поскольку с ним легче работать, чем с протоколом TCP. По протоколу
Отличия процедур типа Function от процедур типа Sub
Отличия процедур типа Function от процедур типа Sub Между процедурами типа Function и типа Sub есть одно существенное отличие: в процедуре типа Function обязательно где-то должен присутствовать по крайней мере один оператор, задающий значение этой функции. При этом используется имя
Использование локальных процедур
Использование локальных процедур Объявление процедуры локальной помогает избежать многих ошибок. Поскольку в таком случае можно вызывать процедуру только в рамках содержащего ее модуля, легче контролировать условия, которые складываются во время вызова (эти условия
7.3.2. Методы удаленного вызова процедур
7.3.2. Методы удаленного вызова процедур Несмотря немногочисленные исключения, такие как NFS (Network File System) и проект GNOM€, попытки заимствовать технологии CORBA, ASN.1 и другие формы интерфейса удаленного вызова процедур в основном провалились. Данные технологии не прижились в
7.3.2. Методы удаленного вызова процедур
7.3.2. Методы удаленного вызова процедур Несмотря немногочисленные исключения, такие как NFS (Network File System) и проект GNOME, попытки заимствовать технологии CORBA, ASN.1 и другие формы интерфейса удаленного вызова процедур в основном провалились. Данные технологии не прижились в
15.5. Оператор вызова функции
15.5. Оператор вызова функции Оператор вызова функции может быть перегружен для объектов типа класса. (Мы уже видели, как он используется, при рассмотрении объектов-функций в разделе 12.3.) Если определен класс, представляющий некоторую операцию, то для ее вызова