Распределенные вычисления: технология Microsoft RPC. Часть1. Фертиков В.В. - 11 стр.

UptoLike

Составители: 

11
процедуры на сервере, а сервер печатает слова на устройстве стандартного вы -
вода.
Это распределенное приложение включает две различные исполняемые
программы: одну для клиента и одну для сервера. Подобно обычным програм -
мам , они будут получены из исходных файлов на языке C, в основном написан -
ных разработчиком . Однако некоторые из исходных файлов будут автоматиче-
ски сгенерированы RPC инструментом компилятором MIDL.
Примерный план работы по реализации этого приложения таков. Чтобы
сделать его распределенным , Вы создадите файл, включающий функциональ-
ный прототип удаленной процедуры . Прототип связан с атрибутами, которые
описывают, каким образом данные для удаленной процедуры должны быть пе-
реданы через сеть. Атрибуты , типы данных и функциональные прототипы со-
вместно описывают интерфейс между клиентом и сервером . Интерфейс ассо-
циируется с уникальным идентификатором , позволяющим отличать этот ин-
терфейс от всех других. Вы также создадите файл, который объявляет особую
переменную дескриптор связывания, используемую клиентом и сервером
для представления их логического соединения через этот интерфейс. Вы буде-
те, наконец, писать главные программы клиента и сервера, которые вызывают
RPC функции времени выполнения для установки интерфейса.
Программа клиента
Начнем с самого простого . Автономная программа, которая может быть
выполнена на одном компьютере, состоит из вызова одной функции, называе -
мой HelloProc:
/* файл: helloc.c (автономная программа) */
void HelloProc(unsigned char * pszString);
void main(void)
{ unsigned char * pszString = "Hello, world";
HelloProc(pszString);
}
Функция HelloProc вызывает библиотечную C функцию printf, чтобы
отобразить текст "Привет, мир":
/* файл: hellop.c */
#include <stdio.h>
void HelloProc(unsigned char * pszString)
{ printf("%s\n", pszString);
}
                                    11
процедуры на сервере, а сервер печатает слова на устройстве стандартного вы-
вода.
     Это распределенное приложение включает две различные исполняемые
программы: одну для клиента и одну для сервера. Подобно обычным програм-
мам, они будут получены из исходных файлов на языке C, в основном написан-
ных разработчиком. Однако некоторые из исходных файлов будут автоматиче-
ски сгенерированы RPC инструментом – компилятором MIDL.
     Примерный план работы по реализации этого приложения таков. Чтобы
сделать его распределенным, Вы создадите файл, включающий функциональ-
ный прототип удаленной процедуры. Прототип связан с атрибутами, которые
описывают, каким образом данные для удаленной процедуры должны быть пе-
реданы через сеть. Атрибуты, типы данных и функциональные прототипы со-
вместно описывают интерфейс между клиентом и сервером. Интерфейс ассо-
циируется с уникальным идентификатором, позволяющим отличать этот ин-
терфейс от всех других. Вы также создадите файл, который объявляет особую
переменную – дескриптор связывания, используемую клиентом и сервером
для представления их логического соединения через этот интерфейс. Вы буде-
те, наконец, писать главные программы клиента и сервера, которые вызывают
RPC функции времени выполнения для установки интерфейса.

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

/* файл: helloc.c (автономная программа) */

void HelloProc(unsigned char * pszString);

void main(void)
{    unsigned char * pszString = "Hello, world";
     HelloProc(pszString);
}

    Функция HelloProc вызывает библиотечную C функцию printf, чтобы
отобразить текст "Привет, мир":

/* файл: hellop.c */

#include 

void HelloProc(unsigned char * pszString)
{    printf("%s\n", pszString);
}