7.3 Подключение клиента-заказчика к приложению пользователя
Для работы с ПС из пользовательского приложения необходимо подключить к нему сборку CloudProcessor.ClientRequestor.dll (клиент-заказчик), а также необходимые для её работы сборки CloudProcessor.Network.Contracts.dll (интерфейс работы с сетью), CloudProcessor.Network.Tcp.dll (реализация сетевого уровня для протокола TCP) и CloudProcessor.Core.dll (базовые типы данных). Подключение сборки в Microsoft Visual Studio осуществляется через пункт контекстного меню Add Reference при щелчке по проекту приложения, к которому необходимо её подключить.
После подключения сборки можно использовать методы, предоставляемые классом CloudProcessor.ClientRequestor. Для работы с данными методами сначала необходимо создать объект заказчика. Конструктор класса CloudProcessor.ClientRequestor принимает следующие обязательные параметры:
- assembly (тип System.Reflection.Assembly) – объект .NET-сборки, содержащей классы, которые будут использоваться при распределённых вычислениях;
- userName (тип System.String) – имя пользователя, использующееся при авторизации;
- serverAddress (тип System.Net.IPAddress) – IP- адрес сервера;
- serverPort (тип System.Int) – номер порта сервера.
Ниже приведена спецификация основных методов API клиента-заказчика. Эти методы следует вызывать у объекта класса CloudProcessor.ClientRequestor после его инициализации. Все приведённые методы ничего не возвращают.
- callback (тип CloudProcessor.Core.Callback) – функция обратного вызова, которая служит для оповещения пользователя о завершении процедуры авторизации. Вызов Login является асинхронным, т.е. после его выполнения продолжится исполнение программы, в то время как процедура авторизации будет происходить в отдельном потоке. Функция callback будет вызвана после завершения авторизации и в качестве параметра примет объект типа Response. В случае возникновения ошибки при авторизации поле Exception данного объекта будет содержать информацию об ошибке. Тип CloudProcessor.Core.Callback является одним из семейства типов, описывающих функции обратного вызова и находящихся в сборке CloudProcessor.Core.
Метод Login необязательно вызывать самому, т.к. остальные методы самостоятельно осуществляют авторизацию в том случае, если она не была произведена либо срок действия сессии на сервере истёк. Вызов данного метода можно произвести после старта приложения для проверки соединения с сервером.
2) SafeContinueAfterForeach – метод для параллельной обработки массива данных. Принимаемые параметры:
- task (тип параметра ForeachTask) – объект задачи. Он должен иметь тип, являющиймя наследником класса ForeachTask. Структура ForeachTask описана в разделе «Реализация программного средства». Класс, реализованный пользователем, должен содержать метод, который будет вызван для каждого элемента массива, и сам исходный массив данных. Обобщённый класс ForeachTask принимает два параметра типа: TData задаёт тип элементов, из которых состоит обрабатываемый массив, а TResult задаёт тип результата, получаемого при обработке одного элемента массива.
- callback (тип Callback[]>) – функция обратного вызова, которая служит для оповещения пользователя о завершении вычислений. В качестве параметра функция обратного вызова примет массив TaskResult[], содержащий полученные результаты и информацию о произошедших ошибках.
3) SafeContinueWith – метод для выполнения однократной обработки данных одним из исполнителей. Параметры вызова:
- task (тип ForeachTask) – объект задачи. Может иметь любой тип, являющийся потомком класса Task. Класс, реализованный пользователем, должен содержать метод обработки Execute, который будет вызван на одном из исполнителей.
- callback (тип Callback>) – функция обратного вызова, которая будет вызвана по завершении работы с результатом выполнения в качестве аргумента.
4) SafeContinueWhenAll – вызов для обработки принимает массива разнотипных задач. Принимает параметры:
«Обзор современной литературы»
Новолакской гимназии в рамках Года Культуры состоялась читательская конференция учащихся 10-11 классов на тему: «Обзор современной...
Тема: обзор литературы
Краткий обзор литературы по теме должен показать основательное знакомство начинающего исследователя со специальной литературой, умение...