Разработка приложений на систему распределенных вычислений на BOINC

Периодический запуск фоновых процессов. Исполняемые файлы распределенного приложения. Анализ установки программы-клиента BOINC. Характеристика службы обработки состояния подзадач и проверки результатов. Подготовительные шаги для развертывания сервера.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.01.2016
Размер файла 636,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

'create_time': 1258736642L,

'deprecated': 0,

'homogeneous_redundancy': 0,

'id': 1L,

'min_version': 0L,

'name': ' meapp ',

'target_nresults': 0,

'user_friendly_name': ' my_example_app ',

'weight': 1.0}

2.4 Создание собственного приложения

Для создания собственного приложения для системы BOINC существует два пути:

· написание приложения с нуля.

· Написание приложения, используя шаблоны, предложенные разработчиками.

Оба способа предполагают использование BOINC application programming interface (API), которое представляет собой набор функций написанных на C++. Большинство функций имеют стандартный интерфейс языка Си, в связи с этим функции могут использоваться и с другими языками программирования. При отсутствии иных указаний, функция вернет целочисленное число - код ошибки; нулевой означает успешное выполнение.

Для использования API необходимо добавить в заголовочный файл библиотеку:

#include "boinc_api.h"

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

Инициализация

Перед вызовом остальных функций, необходимо вызвать следующую функцию.

Для последовательного (однопоточных приложений) :

boinc_init();

Если же вы используете несколько потоков, для инициализации следует ввести следующее:

«

BOINC_OPTIONS options;

boinc_options_defaults(options);

options.multi_thread = true; // if your app's main process uses multiple threads

options.multi_process = true; // if your app uses multiple processes

boinc_init_options(&options);

»[13]

Сделайте это, прежде чем создавать потоки или процессы.

Если же для приложения необходимо использование GPU(Графический процессор), Для инициализации введите следующее:

«

BOINC_OPTIONS options;

boinc_options_defaults(options);

options.normal_thread_priority = true;

boinc_init_options(&options);

»[13]

В операционной Windows, в этом случаее, приложение будет запущено в нормальном приоритете потоков, GPU будет работать в полную силу даже если CPU загружена.

Завершение

Когда приложение выполнилось оно должно вызвать:

int boinc_finish(int status);

Не нулевой статус завершения приложения бывает в случае ошибки.

Не вызывайте функцию exit(0), это приведет к перезагрузке приложения.

Если при завершении вы хотите показать сообщение пользователю ,используйте: файл приложение подзадача сервер

boinc_finish_message(int status, const char* msg, bool is_notice);

если флаг « is_notice » True, приложение будет показано в приложении-клиен(поддерживается в версиях клиента выше 7.5, в других версия сообщение не будет показано).

Конвертирование имен файлов

Приложения, которые используют сгенерированные входные или выходные файлы, должны вызвать:

int boinc_resolve_filename(char *logical_name, char *physical_name, int len);

или

int boinc_resolve_filename_s(char *logical_name, std::string& physical_name);

для того чтобы сконвертировать физическое имя файла к логическому. К примеру, вместо того чтобы использовать:

f = fopen("my_file", "r");

приложение должно использовать:

«

string resolved_name;

retval = boinc_resolve_filename_s("my_file", resolved_name);

if (retval) fail("can't resolve filename");

f = boinc_fopen(resolved_name.c_str(), "r");

»[13]

Не используйте boinc_resolve_filename() для файлов с атрибутом «copy_file», или временными файлами. Это должно использовать для всех файлов описанных в шаблонах, или файлах что являются частью версии приложения.

Оболочка входных/выходных данных

В приложении необходимо использовать, вместо fopen() :

boinc_fopen(char* path, char* mode);

Она решает проблемы связанные с платформами, в этом случае

Есть несколько повторных попыток открыть файл, чего нет в fopen().

Контрольные точки

В объемных работах есть необходимость периодически записывать текущее состояние на жесткий диск. Это и называется контрольной точкой. Этот файл должен включать в себя все, необходимые для продолжения работы, данные. При запуске программа читает контрольную точку и начинает с места последнего вычисления.

При проектировании приложения необходимо предусмотреть места где можно сделать контрольную точку.

Для того чтобы приложение могло сделать контрольную точку необходимо вызвать:

int boinc_time_to_checkpoint();

если вернуло не ноль, то приложение должно немедленно сдл\елать контрольную точку. Затем вызовите:

void boinc_checkpoint_completed():

Контрольные точки делаются быстро, по этому, стоит чаще создавать их.

Контрольная точка создается только в том случае, если прошел заданный интервал времени, с момента создания последней контрольной точки.

Выставить интервал можно двумя способами:

Первый, это выставив пользовательские параметры в приложении-клиент.

Второй, можно выставить в ручную в приложении вызвав:

boinc_set_min_checkpoint_period(int nsecs);

Критические секции

void boinc_begin_critical_section();

void boinc_end_critical_section();

Используется в том случае, если вы не хотите чтобы в период выполнения кода заключенного между ними, приложение не было завершено или сброшено пользователем ядра.

Вывод прогресса

BOINC manadger выводит, состояния текущих процессов и их прогресс.

Для того чтобы обновлять статус необходимо вызвать функцию:

boinc_fraction_done(double fraction_done);

значение параметра fraction_done варьируется от 0 до 1, показывая готовность приложения. Эту функцию можно часто вызывать. Значения переменной не должны убывать.

Временная информация

int boinc_wu_cpu_time(double &cpu_time);

Выводит общее затраченное процессором время, на одно задание.

double boinc_elapsed_time();

Выводит затраченное время за последнюю рабочую сессию.

Автономный режим

Для тестового запуска, приложение может быть запущено в «автономном» режиме или же под контролем BOINC клиента. В обоих случаях можно запрограммировать разное поведение приложения, к примеру, с целью вывода отладочной информации.

int boinc_is_standalone(void);

Возвращает не ноль если работает в автономном режиме и ноль если запущено под контролем BOINC клиента.

Замечания по сборке приложений

Кардинальной разницы в сборке приложений для разных операционных систем, нет, есть только некоторые нюансы которые стоит учитывать при написании исходного кода, к примеру, пути файлов в разных системах могут быть написаны по разному. Поэтому каждое приложение лучше собирать на целевой платформе, либо же к примеру для linux, можно собрать приложение на сервере используя скрипт make.

2.5 Исполняемые файлы распределенного приложения

В подкаталоге apps/ каталога проекта находятся файлы приложения, которые будут выполняться на клиент-компьютерах участников проекта. Для этого необходимо создать в каталоге apps/ подкаталог с именем приложения (которое совпадает с именем в фале project.xml: <name>uppercase</name>). В новый каталог надо скопировать исполняемые файлы приложений разработанных для различных платформ, описанных выше.

Имя исполняемого файла должно строго соответствовать следующему формату:

<имя приложения>_<версия>_<платформа>[.<расширение>]

Именно этот формат используется для записи имени в нашем случае:

имя приложения: meapp;

версия: 1.0;

платформа: windows_intelx86;

расширение: .exe;

В каталоге ~/server_stable/apps располагаются исполняемые файлы для платформ и исходные коды приложений uppercase, которые можно использовать и собирать проекты для любой интересующей вас платформы.

Если все исполняемые файлы расположены в указанном месте и были внесены необходимые правки в project.xml, следует занести новую информацию в базу данных.

Для этой цели есть специальная утилита называемая update_version:

boincadm@boincserver:~/projects/meapp> ./bin/update_version

Утилита идентифицирует исполняемые файлы и подбирает для них подходящие платформы:

Found <App#1 meapp> version 100 for

<Platform#3 windows_intelx86>: meapp _1.0_ windows_intelx86

Далее предлагается формирование электронной подписи для исполняемых файлов. Заканчивается процесс добавления приложения следующими строками:

Committed:

<AppVersion#1 meapp 100 windows_intelx86>

Touched trigger file to make feeder re-read app_version table from database

Done

Проверить список поддерживаемых платформ можно перейдя по ссылке *server-ip*/apps.php (рисунок 4).

Рисунок 4. Приложения и поддерживаемые платформы

2.6 Создание рабочих единиц проекта

После завершения этапа по созданию проекта. Следующим будет этап создания рабочей единицы (Work Unit) для нашего проекта.

Сначала создаем текстовый документ в каталоге download, файл будет содержать исходные данные для приложения meapp:

boincadm@boincserver:~/projects/ meapp > echo

"Hello BOINC World" > download/in

Теперь нужно создать шаблоны входных и выходных данных в подкаталоге templates.

Шаблоны входных и выходных данных

Различные свойства заданий, таких, как количество и наименование их входных и выходных файлов, описываются парой XML документов, называемых шаблонами ввода и вывода. Обычно те же шаблоны используются нескольких заданий.

Шаблоны входных данных

Файл шаблона ввода описывает входные файлы задания: потребности в ресурсах и параметры планирования.

Он имеет вид:

«

<input_template>

<file_info>

<number>0</number>

[ <gzip/> ]

[ <sticky/> ]

[ <no_delete/> ]

[ <report_on_rpc/> ]

[ <url>...</url> ]

[ <url>...</url> ]

[ <md5_cksum>...</md5_cksum> ]

[ <nbytes>...</nbytes> ]

</file_info>

[... other files ]

<workunit>

<file_ref>

<file_number>0</file_number>

<open_name>NAME</open_name>

[ <copy_file/> ]

</file_ref>

[... other files ]

[ <command_line>-flags xyz</command_line> ]

[ <rsc_fpops_est>x</rsc_fpops_est> ]

[ <rsc_fpops_bound>x</rsc_fpops_bound> ]

[ <rsc_memory_bound>x</rsc_memory_bound> ]

[ <rsc_disk_bound>x</rsc_disk_bound> ]

[ <delay_bound>x</delay_bound> ]

[ <min_quorum>x</min_quorum> ]

[ <target_nresults>x</target_nresults> ]

[ <max_error_results>x</max_error_results> ]

[ <max_total_results>x</max_total_results> ]

[ <max_success_results>x</max_success_results> ]

[ <size_class>N</size_class> ]

</workunit>

</input_template>» [12]

Элементы и теги должны быть на отдельных строках, как показано.

Каждый <file_info> описывает входной файл:

<number>

Используйте 0, 1, ...

<gzip/>

переводит файл в формат gzipp (сжатым), чтобы уменьшить нагрузку на сеть. Вы должны поставить файл с ключом --gzip. Только 7.0+ клиенты могут обращаться с сжатыми файлами; старые клиенты будут скачивать файлы в несжатом виде.

<sticky/>

если он присутствует, файл остается в клиенте после завершения задания.

<no_delete/>

если он присутствует, файл не удаляется с сервера после завершения задания. Используйте это, если файл используется в качестве входных данных для более чем в одной работе.

<report_on_rpc/>

если он присутствует, файл отчета будет в каждом запросе планировщика. Включите это для совместимости со старыми (до 7.x) клиентов; 7.0+ клиенты сообщают какие файлы должны остаться.

Следующие ключи используются для файлов, которые располагаются на сервере (или серверах), которые находятся вне вашего сервера BOINC:

<url>

задает каталог (т.е. он должен заканчиваться /), в котором имя файла будет добавлено, чтобы дать ему URL. Если файл копируется, вы можете поставить больше, чем один.

<md5_cksum>

Проверка контрольной суммы MD5

<nbytes>

Размер файла. <gzipped_nbytes>: если <gzip/> задается, размер файла GZIP.

<File_ref> описывает путь файла, на который ссылается:

<file_number>

0, 1, и т.д.

<open_name>

Логическое имя файла

<copy_file>

Если присутствует, файл копируется в папку “рабочего слота”

Рабочие параметры включают:

<command_line>

Аргументы командной строки, которые передаются в главную программу.

Примечание: если вы используете оболочку BOINC, используйте <append_cmdline_args /> в файле job.xml, чтобы передать аргументы командной строки из обертки (the wrapper) к завернутый приложениям(the wrapped application).

<rsc_fpops_est> и т.д.

Работа имеет атрибуты, такие как объем дискового пространства будет использоваться. BOINC будет поставлять разумные значения по умолчанию для них, но вы должны поставить правильные значения; в противном случае, например, BOINC может попробовать запустить работу на хост с недостаточным дисковым пространством.

<size_class>

Укажите класс на размер задания.

Шаблон ввода (замещенный с именами файлов и URL-адресов) хранятся в поле базы данных с лимитом 64 КБ. Этого достаточно для примерно 200 входных файлов, меньше, если вы используете длинные имена файлов или несколько URL ссылок. Если этого не достаточно, вы можете использовать BOINC сжатие файлов, чтобы поместись несколько файлов в одну ссылку на для скачивания, а также расширение их до запуска на клиентской машине.

Шаблоны вывода

Файл шаблона вывода описывает выходные файлы задания. Оно имеет вид:

<output_template>

<file_info>

<name><OUTFILE_0/></name>

<generated_locally/>

<upload_when_present/>

<max_nbytes>32768</max_nbytes>

<url><UPLOAD_URL/></url>

[ <gzip_when_done/> ]

</file_info>

<result>

<file_ref>

<file_name><OUTFILE_0/></file_name>

<open_name>result.sah</open_name>

[ <copy_file>0|1</copy_file> ]

[ <optional>0|1</optional> ]

[ <no_validate>0|1</no_validate> ]

[ <no_delete/> ]

</file_ref>

[ <report_immediately/> ]

</result>

</output_template>

Элементы и теги должны быть на отдельных строках, как показано на рисунке. Элементы включают в себя:

<file_info>

описывает выходной файл.

<name>

физическое имя файла. Обычно используют <OUTFILE_0>, <OUTFILE_1> и т.д.; BOINC заменит сгенерированным именем на основе имени задания.

<upload_when_present/>

устарел, но вам нужно включить это чтобы работать с старыми версиями клиентов ниже 7.0.

<gzip_when_done/>

использовать это, чтобы сжать выходной файл перед загрузкой,

<file_ref>

Описывает, как как выходной файл будет распознан приложением.

<open_name>

логическое имя, по которому приложение будет ссылаться на файл.

<copy_file/>

если он присутствует, файл будет создан в каталоге слот, и скопировать в каталог проекта, после работы закончен. Используйте это для унаследованных приложений.

<generated_locally/>

всегда включают это для выходных файлов.

<max_nbytes>

Максимальный размер файла. Если фактический размер превышает этот, файл не будет загружен, и работа будет отмечена как ошибка.

<url>

Адрес обработчика загрузки файла. Вы можете вставить это в явном виде, или использовать <UPLOAD_URL />, чтобы использовать URL-адрес в файле config.xml вашего проекта.

<optional>

если 0 или отсутствует, ваше приложение должно создать файл, в противном случае работа будет отмечена как ошибка.

<no_validate>

если это true, не включайте этот файл в процессе проверки (результат относится только если вы используете простой побитовый валидатор).

<no_delete/>

если он присутствует, файл не будет удален на сервере даже после завершения задания.

<report_immediately/>

если он присутствует, клиенты будут сообщать работу сразу же после того как выходные файлы загружены. В противном случае они могут ждать до дня. (Реализовано в 6.12.27+ клиентах только).

Примечание: при его создании, имя его шаблона выходного файла сохраняется в базе данных. Файл читается, когда выходные файлы создаются, которые могут использоваться в течении нескольких дней или недель спустя. Таким образом, редактирование файла шаблона вывода может повлиять на существующие файлы вывода. Если это не желательно, необходимо создать новый файл шаблона вывода.

Вы можете безопасно удалить файл шаблона ввода после создания последнего файла работы с ним. Тем не менее, файлы шаблонов вывода должен существовать до тех пор, пока любая задача, что относится к нему, не будет завершена (т.е. копии больше не будут созданы).

Шаблон вывода, связаны с именами файлов и URL-адресов, хранится в поле базы данных с лимитом 64 КБ. Это накладывает ограничение около 50 выходных файлов; Точное количество зависит от длины ваших файлов и URL-адресов. Если вам нужно больше файлов, вы можете использовать BOINC сжатие файлов, чтобы поместись несколько файлов в одну ссылку на файл для загрузки, до завершения каждой задачи на клиентской машине. После того как вы запустите несколько рабочих мест за счет вашего проекта, вы можете сравнить размер расширенного XML с 65535 предела, выполнив следующую MySQL запрос:

Теперь все готово к созданию рабочего задания нашего проекта. Запускаем следующую команду:

-appname meapp -wu_name test -wu_template templates/meapp_wu

-result_template templates/meapp_result in

Где:

· --appname <название> - название приложения;

· --wu_name <название> - название рабочего задания;

· --wu_template <имя файла> - локальный путь и имя файла шаблона рабочего задания, принадлежащего проекту. Обычно шаблоны располагается в templates/ ;

· --result_template <имя файла> - локальный путь и имя файла шаблона результата, принадлежащего к проекту.

В утилите create_work имеется множество дополнительных, но необязательных, параметров, узнать о которых можно на странице BONC-wiki.

2.7 Запуск фоновых процессов

Далее следует этап запуска проекта, что представляет собой запуск его фоновых процессов:

Entering ENABLED mode

Starting daemons

Starting daemon: feeder -d 3

Starting daemon: transitioner -d 3

Starting daemon: file_deleter -d 3

Утилита status выводит какие фоновые процессы запущены и какие файлы используются.

BOINC is ENABLED

Таблица 2. Выходные сообщения команды status

DAEMON

pid

status

lockfile

disabled

commandline

1

40782

running

locked

no

-d 3

2

40810

running

locked

no

transitioner -d 3

3

40787

running

locked

no

file_deleter -d 3

4

44922

running

locked

no

my_work_generator -d 3

5

40792

running

locked

no

sample_bitwise_validator -d 3 --app meapp

6

40795

running

locked

no

sample_assimilator -d 3 --app meapp

Данная утилита, полезна в том случае, если возникли какие то проблемы с проектом, если в какой-то из служб неполадки, существуют log-файлы, они находятся в каталоге log, он расположен в oincadm/projects/test/log_debian7.

3. Программа-клиент BOINC

3.1 Установка программы-клиента BOINC

Дистрибутивы программ-клиента хранятся на странице загрузки официального сайта BOINC, так же для unix и мас систем пакеты включены в списки стандартных репозиториев(в случае с unix, это будут boinc-client, boinc-mаnаger и boinc-gui).

Вне зависимости от способа установки программы-клиента, все основные данные по проектам хранятся в \data\projects\.

Для начала нужно запустить графический менеджер программы(см. рисунок 5)

Рисунок 5. Менеджер проектов BOINC

При первом запуске вам будет предложено подключиться к какому-либо проекту, упрощать этот процесс будет специальный помощник (см. рисунок 6).

Рисунок 6. Добавление проекта BOINC

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

Всю информацию по проекту можно получить на сайте проекта.

3.2 Подключение к стороннему проекту

В качестве стороннего проекта выберем “SETI (Search for Extraterrestrial Intelligence, Поиск ВнеЗемного Разума) - это научное направление, цель которого - обнаружить разумную жизнь вне Земли. На первом этапе, известном как radio SETI (радио SETI), используются радио телескопы для слежения за узкополосными радиосигналами космоса. Естественные источники таких сигналов не известны, поэтому их обнаружение может дать подтверждение о существовании внеземной технологии.”[10]

Программа-клиент BOINC после регистрации в проекте, начнет загрузку данных, необходимых для выполнения заданий. Необходимо учесть что в различных проектах время затраченное на получение кредитов различное, так же объем затраченного дискового пространства так же может отличаться, но в программе-клиент BOINC есть квотирование объема выделенного объема памяти. Главное окно показывает текущий прогресс задания, затраченное время и сколько времени осталось до завершения (см. рисунок 7).

Рисунок 7. Выполнение задания

Помимо упрощенного вида окна программы-клиента BOINC, есть “полный вид” - нажмите на кнопку “полный вид” в вкладке “вид” (см. рисунок 8).

Рисунок 8. Полный вид окна программы-клиента BOINC

Данный вид более информативный, можно получить дополнительную информацию о проекте: общую статистику, информацию об использованных компьютером ресурсов и многое другое.

Некоторые настройки специфичны для различных проектов, другие же являются общими и отражаются на работе программы в целом. В полном виде окна программы-клиента менеджера в пункте меню «Дополнительно» - «Настройки клиента», можно изменить множество параметров описанных выше, а так же время и расписание использования компьютера для вычислений. Настройки интуитивно понятны, и не составит труда изменить их так, чтобы клиент работал так как вам необходимо.

3.3 Подключение к проекту к созданному

Отличий от способа подключения описанного выше нет, но на этапе разработки, для отладки работоспособности созданного проекта необходимо сделать несколько проверок.

Сначала подключаемся к проекту, введя адрес вашего проекта:

Далее, если все шаги были выполнены верно, предлагается зарегистрироваться на проекте, тем самым вы проверяете работоспособность Веб-интерфейса.

После этого вы должны увидеть сообщение об успешном подключении к проекту (рисунок 9).

Далее необходимо перейти в “полный вид”, и открыть “просмотр событий”, в этом окне подробно описываются все этапы работы клиента с проектом:

1. Подключение к серверу.

2. Соединиться с планировщиком.

3. Проверить настройки клиента.

4. Скачать исполняемый файл и входные данные, соответствующий рабочей клиентской платформе.

5. Сверить контрольные суммы скаченных файлов.

6. Выполнить вычисления.

7. Отправить решение на сервер.

8. Получить новую порцию заданий.

В случае ошибки какого либо этапа будет выведено сообщение начинающееся с “[error]”, что позволит увидеть проблемы с проектом.

Рисунок 9. Результат - успешное подключение к проекту

Заключение

Для моей работы я использовал, описанный выше, образ виртуального сервера представленный сайтом разработчика, но в связи с тем что образ необходимо было запустить через программу Hyper-V, потребовалось с конвертировать образ в подходящее расширение. После запуска образа и проведения, описанных выше, подготовительных настроек, был был запущен сервер «92.242.57.37». После чего был использован скрипт make-project, чтобы получить шаблон приложения для изменения. Перед тем как приступить непосредственно к решению поставленной проблемы, были проведены ряд настроек для работоспособности тестового приложения, после чего можно было подключится к проекту используя ссылку «92.242.57.37/test» В дальнейшем были использованы исходные коды предоставленные разработчиками в качестве примера приложений для системы BOINC, Поставленная передо мной задача была уже реализована для системы MPI, но первоначальная архитектура данного решения не подходила для системы BOINC, необходимо было адаптировать исходные коды используя шаблон. В связи с этим, мной было принято решение по переводу программы в формат подключаемых библиотек, чтобы, после модификации архитектуры, приложение вызывало входные данные и использовала их в функциях библиотек. После этого необходимо обеспечить функциональность проекта в рамках сервера BOINC, для чего были изменены основные демоны и документы (такие как work_generator, config.xml, шаблоны входных/выходных данных и т.д.) .В конечном итоге приложение работает на сервере и используя стандартный менеджер проектов BOINC, предоставленный на сайте разработчиков, по ссылке «92.242.57.37/test» можно подключится для помощи в вычислениях по поставленной задачи.

Размещено на Allbest.ru

...

Подобные документы

  • Проектирование, кодирование и отладка службы Windows: "Контроль приложений", осуществляющей контроль набора приложений и управление ими; разработка приложения, управляющего этой службой. Взаимодействие службы и приложения; тестирование и сопровождение.

    курсовая работа [1,1 M], добавлен 22.05.2013

  • Разработка приложений на платформе Win32 для исследования взаимодействия между процессами через отображение файла в память. Модель приложений "клиент - сервер". Описание алгоритма работы программы-клиента и программы-сервера. Результаты работы приложений.

    курсовая работа [869,3 K], добавлен 18.05.2014

  • Изучение и реализация системы, использующей возможности Microsoft Azure для распределенного обучения нейронной сети. Рассмотрение функционирования распределенных вычислений. Выбор задачи для исследования; тестирование данного программного ресурса.

    дипломная работа [2,0 M], добавлен 20.07.2015

  • Составление программы на языке Pascal для обработки результатов соревнований по фигурному катанию, проводившихся по трем видам многоборья. Генератор случайных чисел. Блок-схема программы. Ввод данных, выбор пользователя, оформление результатов вычислений.

    курсовая работа [471,8 K], добавлен 21.12.2012

  • Разработка на языке C++ службы, осуществляющей контроль набора выполняющихся приложений. Проектирование, кодирование, отладка, тестирование и сопровождение службы Windows. Взаимодействие службы и приложения. Интерактивность разрабатываемой службы.

    курсовая работа [964,9 K], добавлен 01.06.2013

  • Технология CORBA для написания распределенных приложений, ее предназначение, преимущества и правила использования. Язык IDL и его использование в качестве универсальной нотации для определения границ объекта и для подержания наследования интерфейсов.

    лабораторная работа [25,3 K], добавлен 30.06.2009

  • Разработка распространяемого приложения MS Access. Создание программы установки для законченных приложений. Разработка расчетной ведомости за выполненные работы и представление результатов в графическом виде с помощью MS Excel. Алгоритм решения задачи.

    курсовая работа [268,4 K], добавлен 13.11.2011

  • Современное состояние рынка мобильных приложений. Основные подходы к разработке мобильных приложений. Обоснование выбора целевой группы потребителей приложения. Этапы проектирования и разработки мобильного приложения для операционной системы Android.

    курсовая работа [987,1 K], добавлен 27.06.2019

  • Устройство веб-приложений, преимущества их построения. Характеристика технологий веб-программирования, используемых на стороне сервера и на стороне клиента. Формирование и обработка запросов, создание интерактивного и независимого от браузера интерфейса.

    контрольная работа [76,4 K], добавлен 08.07.2014

  • Характеристики распределенных систем баз данных, формируемые путем "интеграции" разнородных аппаратных и программных средств. Концепция дифференциального файла для различных приложений. Сравнение разных технологий файлового сервера и "клиент-сервера".

    курсовая работа [411,9 K], добавлен 28.05.2015

  • Определение, свойства и характеристики распределенных систем баз данных. Основная задача систем управления ими. Архитектура распределения СУБД. Сравнение технологий файлового сервера и "клиент-сервера". Стратегия распределения данных по узлам сети ЭВМ.

    курсовая работа [601,3 K], добавлен 24.05.2015

  • Написание прикладного Windows-приложения на примере программы-органайзера, позволяющей вести электронный ежедневник и телефонную записную книжку. Описание блок-схемы программы и операционной системы. Листинг результатов обработки на контрольном примере.

    дипломная работа [2,5 M], добавлен 29.12.2014

  • Методика разработки и листинг программы для управления динамиком системного блока, обеспечения установки частоты и длительности формируемых сигналов. Алгоритм и этапы работы проектируемого приложения, анализ полученных результатов. Пример его работы.

    лабораторная работа [79,0 K], добавлен 17.12.2015

  • Выбор состава технических и программных средств для создания данного приложения "Экзаменатор", использование среды разработки Borland Delphi. Основные компоненты и спецификация программы. Используемые технические средства, описание и запуск программы.

    курсовая работа [540,8 K], добавлен 18.07.2012

  • Описание технологии ASP.NET исполняемой на платформе Net FrameWork, ее преимущества. Возможности применения коллекции ViewState. Примеры использования шаблонов. Основные контролы Web приложений. Разработка программы-словаря с использованием ASP.NET.

    курсовая работа [1,2 M], добавлен 13.09.2012

  • Визуальная разработка приложений баз данных. Характеристика визуальных компонентов среды разработки Builder 6.0, используемых в данном приложении. Программная реализация приложения, разработка форм и вкладок. Тестирование приложения, листинг программы.

    курсовая работа [3,1 M], добавлен 28.03.2011

  • Описание приложения в виде пользовательского сценария. Проектирование обмена сообщениями между модулями. Разработка общей структуры приложения. Обзор структуры файлов. Разработка получения данных со страницы. Характеристика результата работы программы.

    дипломная работа [1,5 M], добавлен 22.03.2018

  • Объекты автоматизируемых процессов. Функции и формы программы, листинг программного кода. Концептуальная и реляционная модели данных. Порядок установки и запуск программы, выполнение пользовательских операций. Требования к аппаратному обеспечению.

    курсовая работа [545,9 K], добавлен 15.02.2016

  • Анализ информационной системы "Бурятия.INFO". Построение функциональной модели "Как надо", диаграммы прецедентов, диаграммы последовательности действий, диаграммы классов. Разработка программного приложения в интегрированной среде Intellij IDEA.

    дипломная работа [1,3 M], добавлен 13.04.2014

  • Проектирование службы Windows и приложения для управления этой службой, которое позволит контролировать данные приложения - запускать и завершать определенные процессы по желанию пользователя через определенные промежутки времени. Инструкция по установке.

    курсовая работа [2,8 M], добавлен 05.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.