Архитектура системы BOINC

Разработка приложения на систему распределенных вычислений на BOINC. Создание образа виртуального сервера. Архитектура системы BOINC. Описание работы Web-сервера, характеристики его основных служб. Преимущества использования виртуализации в BOINC.

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

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

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

Размещено на http://www.allbest.ru/

Введение

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

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

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

Одной из форм реализаций GRID, является Volunteer Computing (Добровольные вычисления), её специфика заключается в использовании времени простоя компьютеров обычных пользователей.

На 2015 год, самый крупный проект Volunteer Computing по числу участников, является Einstein@home.

Einstein@home нацелен на поиск гравитационных волн от очень плотных и быстро вращающихся тел - таких как нейтронные или кварковые звёзды. В проекте участвуют 5,375,352 активных узлов, суммарная мощность системы составляет 680.339 TeraFLOPS.

В тоже время, самая высокая производительность у другого проекта, Folding@home запущенный учеными из Стэндфордского университета для симуляции свертывания молекул белка, мощность системы составляет 48,524 TeraFLOPS, в то время как активных узлов всего 170,755.

Различия этих проектов не только в цели, количестве участников и суммарной мощности, а так же в использованном ПО.

Folding@home - использует узкоспециализированное ПО, разработанное специально для задачи проекта, и дальнейшее использование в других проектах является затруднительным.

Einstein@home - построен в системе BOINC, которая предоставляет возможность создания на своей основе разнообразных научных проектов, начиная с поиска наибольшего простого числа заканчивая поиском внеземных цивилизаций.

BOINC (Berkeley Open Infrastructure for Network Computing) - это открытая программная платформа университета Беркли, для реализации GRID сетей. Причиной создания стала нехватка свободных вычислительных мощностей для обработки данных, поступающих с радиотелескопов. И в связи с этим, разработчики решили объединить несколько проектов и сообществ, для решения масштабной задачи.

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

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

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

Все программы-клиенты подключаются к серверу и получают задание на обработку. После выполнения задания, ответ высылается на обработку сервером, после чего получает новое задание. За выполнение задачи зарегистрированным участникам проекта насчитываются кредиты, характеризующие количество процессорных вычислений потраченных на решение задания.

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

Первая проблема решается путем постановки сроков отклика программы-клиента.

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

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

Постановка Задачи

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

Техническое задание.

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

Обзор предметной области.

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

Архитектура системы BOINC

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

Идеальной задачей можно считать, к примеру, прямой подбор пароля методом “brute force” -он заключается в том, что для каждого вариантов (которых, возможно, сотни, тысячи - в зависимости от количества символов) пароля отдельный компьютер вычисляет хэш и сравнивает его с исходным.

При первом совпадении задача считается решенной. Другие результаты не влияют на нахождение правильного ответа, только лишь отметают неверные варианты, подзадачи не зависят друг от друга (из-за свойств хэш-функций паролей). Для такого рода задач, подзадачи которых независимы, и разработали архитектуру системы BOINC(см. рисунок 1).

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

В основном, система состоит из сервера BOINC (есть возможность распределения на несколько физических серверов),

групп клиентов, вычисляющих задачи сервера и нескольких дополнительных компонентов, представляющих собой присоединенные GRID-сети, к примеру, инструментарий Globus Toolkit.

Рисунок 1. Архитектура системы BOINC

Globus Toolkit

Это набор инструментов для создания вычислительных Grid-сетей предоставленный в общем доступе(Open Source). В его составе набор сервисных программ и библиотек которые, ведут учет ресурсов, обнаруживают и управляют вычислительными узлами, обеспечивают безопасность и управление файлами. Разработкой и поддержкой занимается организация Globus Аlliаnce.

Сервер BOINC состоит из следующих частей:

Web-сервер (один или несколько), обрабатывающий входные и выходные сообщения;

сервер баз данных, хранящий данные клиентов о набранных ими баллах, а также отслеживает состояние всех выполненных задач и результаты к ним;

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

Далее более подробно рассмотрим компоненты, составляющие сервер BOINC.

1. Web-сервер

Web-сервер является второстепенным звеном структуры сервера BOINC. Причиной наличия сервера является сама сущность "volunteer computing" - необходимость привлечения внимания участников к проектам. С этой целью создан сайт, рассказывающий насколько важную задачу для всего человечества решаете вы. Значит и те кто присоединился к вам, добровольцы - выполняют: ищут внеземные цивилизации (SETI@HOME), разрабатывают новые лекарственные препараты (Docking@Home), предсказывают погоду (ClimаtePrediction.net) или же решение сложных математических задач... Рассказав о своем проекте, вы сможете привлечь добровольцев, потенциальные вычислительные мощности. Все проекты по распределенным вычислениям на базе BOINC дают своим участникам возможность объединения в команды, и следить за изменениями набранных ими баллов...

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

1.1 База данных

Демон

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

База данных - это основная часть всего проекта BOINC,

В базе данных расположено:

все данные, которые относятся к BOINC серверу;

данные и версии приложений;

данные приложений-клиентов BOINC включая их версии;

сведения зарегистрированных участниках и связанных с ними хостами;

данные подзадач c результатами их вычислений.

С информацией взаимодействуют специальные служебные демоны. Система BOINC первоначально разработана для работы с СУБД MySQL, развитие этой идеи привело к нынешней системе.

Необходимо учесть, что вся нагрузка, связанна с активной передачей данных внутри проекта BOINC, вся она приходится на базу данных, и как правило, является тем самым "узким местом" производительности сервера.

1.2 Служба обработки состояния подзадач (Trаnsitioner)

Эта служба является обработчиком статуса вычисляемых подзадач и результатов их решения. Служба не зависима от приложений и едина для всех проектов, таких как поиск решения математической задачи или предсказание погоды. Задачей службы обработки является проверка текущего статуса подзадачи в базе данных и обновление соответствующих полей, в момент готовности подзадачи, переход в новый статус. Основной сложностью является то, что подзадачи имеют множество различных статусов. Эти статусы содержат в себе состоянии результатов вычислений. К примеру, результаты готовые к проверке, и данных хватает для осуществления проверки кворумом, то статус подзадачи изменяется на “готова к проверке”. Служба обработки дает высокую нагрузку на процессоры, в связи с этим ее можно разделить на несколько демонов, все отвечают за определенную подзадачу или несколько подзадач. Исходя из этого, демоны могут функционировать не только на одном физическом сервере, их можно разделить на несколько.

1.3 Служба проверки результатов (Vаlidаtor)

Grid, Грид

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

Создание Grid -задача нетривиальная, в частности, требующая решения проблем по взаимодействию, управлению и обнаружению вычислительных узлов.

Задачей службы является организация проверки входящих результатов. В целях обеспечения верности решения каждая из подзадач решается на нескольких различных машинах-клиентах. Получив результат, его нужно проверить, сверив между собой полученные от других машин-клиентов результаты и определив "конечное" решение - результат, получается кворумом клиентов. Для каждого типа задачи необходим свой алгоритм проверки. Реализацией алгоритма проверки является служба.

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

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

1.4 Служба освоения (Аssimilаtor)

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

1.5 Служба удаления файлов (File deleter)

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

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

1.6 Служба подачи (Feeder)

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

1.7 Планировщик (Scheduler)

Планировщик - это CGI-программа, запускаемая в момент, когда к серверу проекта подключается клиент и запрашивает часть задания и входных данных.

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

К примеру, один клиент может использовать Mac-версию клиента и выделить 126 MБ дискового пространства и 300 MБ оперативной памяти, а другой клиент может запустить только Android-версию и выделить использование не более 16 MБ дискового пространства и 16 MБ оперативной памяти. В этом планировщик решает дать более вычислительно-емкое задание Mac -клиенту, а наиболее простые подзадачи Android -клиенту.

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

1.8 Мост (Bridge)

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

Приложения BOINC вызывают функции BOINC через систему интерфейсов, реализованных в клиенте и выполняющих такие специфические работы как, к примеру, передача файлов. Исходя из этого, запуск подзадачи проекта BOINC не может быть напрямую (необходимы дополнительные модификации) расчет в инфраструктуре Grid. Помимо этого, Grid не способна, как клиент BOINC, на прямое соединение с планировщиком проекта и запрос подзадач для расчета. Для решения подобных проблем, в взаимодействии разных архитектур распределенных вычислений требуются реализации дополнительных механизмов, делающих возможным соединение BOINC-Grid. Для этого создан программный мост, при этом реализация моста зависит от особенности подключаемого Grid и проектов, в рамках которого проводятся вычисления.

1.9 Приложения BOINC

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

Преобразование программы в приложение BOINC происходит с помощью добавления библиотек и функций BOINC АPI, реализованные на языке Си.

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

Функции BOINC АPI перед открытием преобразуют все имена файлов что проходят через приложение. Есть необходимость в этом для тех приложений, которые запускают большое количество различных входных файлов и сгенерируют большое количество различных выходных файлов. Возможен случай, когда при запуске имена файлов не меняются, тогда при новом запуске необходимо создавать отдельные каталоги на сервере и на машине-клиенте для предотвращения конфликтных ситуаций. Приложение после нескольких запусков не меняется, нет возможности в смене имен внутри приложения и не логично каждый раз перекомпилировать все приложение. Для решения этих проблем, приложение использует логические имена файлов, эти имена переводятся приложением-клиентом в физические имена при запуске. Имена файлов физические определяются только при создании подзадачи.

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

Если подсчет очков клиента разрешен клиентом, то приложение автоматически подсчитает очки, и передаст в другую функцию BOINC АPI информацию о завершении подсчета.

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

Жизненный цикл задания из проекта.

Жизненный цикл заданий выглядят для всех проектов системы BOINC примерно одинаково (см. рисунок 2):

Генератор заданий (разрабатывается для каждого проекта отдельно) создает и дублирует входные данные;

Планировщик BOINC распределяет данные между клиентскими программами и отсылает их;

Клиентская программа делает вычисления и передает выходные данные на сервер;

Служба проверки результатов (разрабатывается для каждого проекта) занимается проверкой выходных данных, полученных от клиентов, сравнивает выходные данные разных клиентских программ с одинаковыми входными данными;

Служба освоения (разрабатывается для каждого проекта отдельно) занимается обработкой результатов;

Служба удаления занимается очищением базы данных от ненужных файлов и информации после завершения работы службы освоения.

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

Рисунок 2. Жизненный цикл задания

Используемое оборудование.

B качестве сервера использовалась виртуальная машина созданная на кафедре в программе Hyper-V, на основе 4х ядерного процессора Intel core i7 2.60 ГГц с 8 ГБ оперативной памяти.

Подготовительные шаги для развертывания BOINC сервера.

Аппаратные конфигурации.

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

Некоторые факторы:

Ваш сервер должен иметь статический IP адрес.

Интернет-соединение должно иметь достаточную скорость и надежность.

Ваш сервер должен иметь 64-bit процессор, минимум 8 GB оперативной памяти, минимум 40 GB свободного места на жестком диске.

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

Защитите фаерволом; разрешите доступ на порт 80 (HTTP) и при необходимости на порт 443 (HTTPS).

Обеспечьте безопасность; выключите все не нужные сетевые сервисы, особенно те которые используют пересылку пароль в открытую (такие как FTP или Telnet).

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

Программное обеспечение.

Есть несколько способов развертывания программного обеспечения сервера BOINC:

Наиболее простой способ установки BOINC сервера - это использование “BOINC server VM”, на которой уже предустановлено необходимое программное обеспечение. Вы можете запустить "виртуальную машину" используя VirtualBox на любом компьютере основанном на intel (Windows, Linux или Mac OS X).

Встроенные репозитории Debian и Ubuntu предлагают пакет "boinc-server-maker" для создания BOINC проекта более простым способом на локальном или удаленном компьютере.

Вы можете использовать любую Unix систему как BOINC сервер, кроме SELinux, рекомендуется использовать последние версии системы.

Виртуализация.

Виртуализация - это программная технология, которая позволяет устройству запускать различные операционные системы в отдельной "виртуальной машине" (virtual machine). Пример, она позволяет на компьютере с предустановленной операционной системой Windows запустить Linux, без необходимости установки системы Linux отдельно на жесткий диск, или же перезагрузки для смены системы. Виртуальные образы системы называются VM apps.

Виртуализация и BOINC.

BOINC использует виртуализацию, чтобы позволить ученым разработку приложений на той операционной системе, которой они хотят (обычно Linux), а затем запустить их на Windows и Mac компьютерах добровольцев.

BOINC виртуализация использует систему называемую - VirtualBox, которая имеет открытый исходный код и поставляется Oracle.

Для того чтобы запустить VM apps, на ваш компьютер должен быть установлен VirtualBox. Начиная с версии 7.2.28, рекомендуемый BOINC установщик для Windows уже содержит в себе VirtualBox. Вы также можете установить VirtualBox отдельно.

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

Преимущества виртуализации.

Использование виртуализации в BOINC обеспечивает несколько преимуществ:

Позволяет упростить ученым разработку приложений для BOINC, так как им больше не придется собирать и поддерживать версии их программ для Windows и Mac.

Повышение уровня безопасности для добровольцев. Виртуальные машины предоставляют сильный защитный барьер; программа запущенная на виртуальной машине не имеет доступа к файлам на родительской операционной системе.

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

Установка сервера BOINC на Unix

Группы и права доступа

Серверные программы BOINC работают как два разных пользователя:

Планировщик, обработчик загрузки файлов, и сетевое программное обеспечение запускается с правами аккаунта веб-сервера (в Fedora это пользователь 'apache'; в Debian это 'www-data').

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

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

Не используйте root в качестве собственника проекта.

По умолчанию, директории созданные пользователем apache не доступны в сети. Это вызывает проблемы, к примеру, обработчик создает каталог в иерархии загрузки, он принадлежит (Apache, Apache), и файл деструктор (который работает как boincadm) не сможет удалить файлы.

Решением проблемы является, добавление apache в группу boincadm используя

$ usermod -G -a boincadm apache

Или изменив файл /etc/group, внеся в строку

boincadm:x:577:

строку

boincadm:x:577:apache

("577" это ID группы; оно может отличаться в вашей системе).

Apache будет необходимо перезапустить, чтобы изменения вступили в силу.

Оба boincadm и apache должны иметь umasks которая позволяет группе читать и изменять файлы. Место, где необходимо добавить эту опцию, зависит от вашей операционной системы. Обычно вы можете использовать umasks 0002 или 0007.

Когда вы создадите BOINC проект используя make_project, все важные каталоги будут принадлежать boincadm и иметь Set-GID битный набор; это значит что любой директорий или файл созданный пользователем apache, в этих директориях будет иметь права группы boincadm(не группы apache).Программное обеспечение BOINC создает все группы директорий с возможностью чтение/запись. Таким образом, как Apache так и boincadm будут иметь доступ на чтение/запись ко всем каталогам и файлам, но другие пользователи не будут иметь доступа.

Чтобы исправить права доступа на существующем проекте, сделайте следующее:

chmod 02770 upload

chmod 02770 html/cache

chmod 02770 html/inc

chmod 02770 html/languages

chmod 02770 html/languages/compiled

chmod 02770 html/user_profile

Вам также может понадобиться изменить владельца этих каталогов и всех их подкаталогов в boincadm/boinc. Если вы запустили несколько проектов на одном сервере, и хотите, изолировать их друг от друга, вы можете создать другого пользователя и группу для каждого проекта, и добавить права Apache для всех групп.

При исполнении ваши файлы проекта из Apache, обратите внимание, что все каталоги вплоть до каталога HTML, должны иметь права на исполнение. Например, если вы используете make_project для создания шаблона проекта в вашей домашней директории, директория должна иметь права 711, тогда как по умолчанию стоит 700. Если выполнить неверно, то будет ошибка 403 Forbidden, в момент подключения из браузера к странице проекта.

Некоторые правки MySQL

После установки MySQL, создайте аккаунт MySQL для владельца проекта. В качестве примера будет использовано имя boincadm, такое же как и у Unix аккаунта. Все MySQL аккаунты должны быть защищены паролем; в качесте примера использован пароль "foobar" (используйте что-то другое).

mysql -u root -p

CREATE USER 'boincadm'@'localhost' IDENTIFIED BY 'foobar';

GRANT ALL ON *.* TO 'boincadm'@'localhost';

Это дает boincadm доступ к всем базам MySQL находящимся на хосте; если вы используете MySQL для других целей на хосте, установите права доступа более ограниченно.

Другие замечания:

Добавте программы MySQL в переменную среды boincadm PATH. (обычно они находятся /usr/local/mysql и /usr/local/mysql/bin).

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

BOINC берет MySQL компилятор и линковщик флагов из программы называемой mysql_config которая поставляется вместе с дистрибутивом MySQL. Иногда программа может просить библиотеки, которые не являются частью входящую в предустановленную базу вашей системы, например -lnsl или -lnss_files. Вам может понадобиться установить дополнительные пакеты(чаще всего вы можете использовать что-то называемое 'mysql-dev' или 'mysql-devel') или повозиться с Makefile.

MySQL может стать узким местом в BOINC сервере.

MySQLclient замечания

Настройте mysql с опцией --enable-thread-safe-client switch.

Установите вашу LD_LIBRARY_PATH для обращения к правильной библиотеке.

Apache замечания

В httpd.conf, установить тип MIME по умолчанию, следующим образом (в противном случае вы получите ошибку загрузки файла верификации подписи):

DefaultType application/octet-stream

Чтобы уменьшить частоту отказов в обслуживании, мы рекомендуем выключить индексацию каталогов, добавив -Indexes директиве Options.

Убедитесь, что расширения файлов, используемые вашим приложением или файлы данных, не обрабатываются нежелательным образом на Apache. Например, если некоторые из ваших файлов есть ''.map расширение, удалить строку

AddHandler imap-file map

из httpd.conf

Apache имеет ограничение на размер запроса по умолчанию 1 Мб. Если вероятность того что ваш проект превысит этот размер (большие выходные файлы, большие сообщения планировщика запросов) увеличьте его например до 128 MB:

LimitXMLRequestBody 134217728

LimitRequestBody 134217728

Настройки PHP

Вам может понадобиться добавить GD и XML библиотеки на ваш PHP; Вы можете сделать это с помощью следующей команды:

yum install php-gd php-xml

затем перезагрузите Apache.

PHPMailer

По умолчанию, BOINC использует PHP для рассылки писем участникам. С помощью sendmail. Если это не работает, вы можете использовать ?PHPMailer, это очень гибкая система рассылки почты, вместо предыдущего. Необходимо сделать следующее:

Загрузить PHPMailer и положить пакет в директорию PROJECT/html/inc/phpmailer (т.е. файлы class.smtp.php и class.phpmailer.php должны находиться в этой директории).

Измените html/project/project.inc добавив функции function

make_php_mailer() {

$mail = new PHPMailer();

$mail->IsSMTP();

$mail->SMTPAuth = true;

$mail->SMTPSecure = "tls";

$mail->Host = "smtp.gmail.com";

$mail->Port = 587;

$mail->Username = "somebody@gmail.com";

$mail->Password = "xxx";

$mail->SetFrom('admin@boincproject.com', 'somebody');

$mail->AddReplyTo("admin@boincproject.com", "somebody");

return $mail;

}

(подставьте значения, подходящие для вашего SMTP сервера).

Возможные проблемы

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

$ mkdir /home/{username}

$ chown {username}:{username} /home/{username}

Ссылка /usr/bin/gcc что указывает на используемый в настоящее время компилятор может отсутствовать. Это может привести к ошибкам при выполнении команды make. Особенно, когда пытаетесь собрать графическую часть API вам необходима ссылка на /usr/bin/g++ (make дает предупреждение, что он не может найти GL/GLU/GLUT хотя он установлен). Таким образом, вы должны создать символьные ссылки, в зависимости от версий вашего GCC и G ++, сначала:

$ ln -s /usr/bin/gcc-4.11 /usr/bin/gcc

$ ln -s /usr/bin/g++-4.11 /usr/bin/g++

В новых дистрибутивах linux, вы не можете войти в систему как суперпользователь. Вместо этого есть пользователь notroot, кем вы можете войти, но вы не будете иметь привилегии суперпользователя. Если приложение или скрипт должен обладать правами суперпользователя, вы вынуждены ввести пароль, который вы вводили при установке. В окне консоли вы можете получить правами суперпользователя либо с помощью su (Debian), либо sudo (Ubuntu, Fedora). Обратите внимание на одинарные кавычки вокруг команды при использовании su -c!

$ su -c {'command'}

$ sudo {command}

Если у вас есть проблемы выполнения команд sudo, необходимо добавить пользователя в файл /etc/sudoers. Чтобы отредактировать этот файл, просто используйте эту команду:

$ sudo visudo

В этом файле нужно добавить еще одну строку после строки для notroot. Можно использовать это:

{username} ALL=(ALL) ALL

2. Инструкция установки дополнительных пакетов для сервера Debian 6.0

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

Необходимое ПО для установки

Обычные пакеты для сборки BOINC (основывается на требованиях (Unix/Linux)):

m4

make

dh-autoreconf

pkg-config

vim

git

Пакеты необходимые для сервера BOINC:

libapache2-mod-php5

mysql-server-5.1

libmysqlclient-dev

php5-mysql

php5-cli

php5-gd

phpmyadmin

python

python-mysqldb (or MySQL-python)

libssl-dev

libcurl4-openssl-dev

Пакеты необходимые библиотекам BOINC(включая графические):

freeglut3-dev

libxmu-dev

libxi-dev

libjpeg62-dev

Пакеты необходимые для BOINC клиента и менеджера (В дополнение к библиотекам):

libssl-dev

libcurl4-openssl-dev

libxss-dev

libnotify-dev

libxcb-atom1-dev

libsqlite3-dev

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

kdebase

kde-guidance

synaptic

iceweasel

xserver-org

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

2.1 Создание новой учетной записи пользователя BOINC

Лучший способ создания учетной записи пользователя boinc во время инсталляции в тот момент когда вас спрашивают имя пользователя и пароль. Введите 'boincadm', или любое имя на ваше усмотрение, в качестве имени пользователя. В качестве имени по умолчанию будет использоваться 'boincadm'.

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

Следующий шаг, чтобы добавить пользователя 'www-data' (сервер Apache) к группе вновь созданного пользователя:

$ usermod -G -a boincadm www-data

Конфигурация MySQL сервер

Создайте новую базу данных MySQL для пользователя.

$ mysql -h localhost -u root -p

> GRANT ALL ON *.* TO 'boincadm'@'localhost';

> SET PASSWORD FOR 'boincadm'@'localhost'='';

The permissions can be limited to project database only, later; Defining an empty password simplifies the installation, can be changed later.

Инкапсуляция базы данных проекта возможна только позже; Определив пароль пустым, вы упростите установку, пароль может быть изменен позже.

Вы так же установить это, используя интерфейс phpmyadmin доступны через http://{server-IP}/phpmyadmin

2.2 Установка сервера

Скачивание исходного кода BOINC

Последняя версия разработок может быть скачена с помощью:

$ cd ~

$ git clone git://boinc.berkeley.edu/boinc-v2.git boinc-src

Чтобы обновить исходный код необходимо просто пойти в основной каталог и введите:

$ cd ~/boinc-src

$ git pull

Последняя версия клиента может быть получена с сайта BOINC. Обычно вам не надо самостоятельно собирать приложение клиент, так как на сайте представлен автоматический установщик.

Совет, проверяйте последние обновления.

Компиляция исходного кода проекта BOINC

Введите следующие команды в окне консоли:

$ cd ~/boinc-src

$./_autosetup

$./configure --disable-client --disable-manager

$ make

Скрипт configure означает, что компиляция будет только серверной части и дополнительных библиотек - если установка идет успешно об этом скажет последняя строчка, выведенная с помощью скрипта:

--- Build Components: ( libraries server) ---

Обратите внимание на сообщения, выдаваемые в ходе работы скрипта configure, возможно, будут выведены предупреждения наподобие этого:

checking if CFLAG '-include fcgi_stdio.h' works... no

configure: WARNING: fcgi-stdio.h not found.

------------------------------------------------------------

Disabling FCGI. Will not build components that require FCGI

------------------------------------------------------------

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

Так же если не найдены, к примеру, библиотеки apache, то скомпилировать сервер не удастся.

После удачного исполнения скрипта необходимо запустить команду:

boincadm@boincserver:~/server_stable> sudo make install

компиляция компонент сервера займет некоторое время.

Виртуальная машина BOINC-сервер

Это виртуальная машина для использования в качестве сервера BOINC. Она имеет все предпосылки сервера BOINC установлены, программное обеспечение BOINC-установки и компиляции и учетные записи пользователей и права доступа настроить. Он готов работать

Эта виртуальная машина создана в качестве BOINC сервера. На ней предустановлены все необходимые библиотеки, программные пакеты BOINC уже собраны и установлены, аккаунты пользователей и группы доступа так же уже настроены. Все уже готово к запуску ~/boinc-master/tools/make_project.

Пароли хранятся в файле README-vbox-image который находиться в архиве с образом виртуальной машины. Root (или su) пароль 'rootpw'. Так же установлен пользователь 'boincadm' с паролем 'boincadmpw'. Эти пароли должны быть заменены на более надежные. Создавайте программное обеспечение под этим пользователем.

Программное обеспечение на виртуальной машине BOINC необходимо обновить, так как возможно, что на образе есть устаревшие пакеты, используйте:

$ ~/update_master.sh

$ ~/configure_server.sh

$ ~/make_server.sh

Программное обеспечение Linux/PHP/MySQL/Apache на образе так же необходимо обновлять с помощью 'apt-get update' или 'apt-get upgrade'.

Команды "sudo" доступны для пользователя "boincadm" так же на сервере предустановлено и запущено OpenSSH.

Сетевой доступ.

VirtualBox предоставляет два пути сетевого доступа VM: Bridged Ethernet и NAT (Network Address Translation). Один из способов можно выбрать в настройках VirtualMachine. Перед сменой этой опции отключите VirtualMachine. Рекомендовано использовать Bridged Ethernet.

Если вы каким то образом измените MAC адрес виртуальной машины (например клонируя виртуальную машину) измените файл /etc/udev/rules.d/70-persistent-net.rules после запуска виртуальной машины. Файл должен выглядеть примерно так:

$ cat /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules

# program, run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100e (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:bc:85:01", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100e (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:bc:85:02", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Удалите строку, содержащую NAME="eth0" и переименуйте eth1 на eth0. Используйте команду:

$ sudo nano /etc/udev/rules.d/70-persistent-net.rules

После этого перезагрузите виртуальную машину.

Больше информации по системе Debian можно найти на сайте разработчика.

Bridged Ethernet

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

Рекомендовано, чтобы виртуальная машина имела статический IP адрес. Чтобы сделать это, необходимо изменить файл /etc/network/interfaces.Пример:

# The primary network interface

auto eth0

iface eth0 inet static

address 121.132.134.0

netmask 255.255.255.0

gateway 121.132.134.1

dns-search yoursimpledomain.edu

dns-nameservers a.b.c.d

Где a.b.c.d это IP адрес вашего DNS сервера (их возможно несколько одновременно).

Измените /etc/resolv.conf добавив

nameserver a.b.c.d

Где a.b.c.d это IP адрес вашего DNS сервера.

Вы также должны добавить IP-адрес и имя хоста виртуальной машины в файл хостов. Чтобы сделать это измените C:\Windows\system32\drivers\etc\hosts (если в качестве хоста используется Windows) или /etc/hosts (в качестве root; если в качестве хоста используется Unix) используя текстовый редактор добавив к примеру:

121.132.134.0 debian6.localdomain

С помощью этого вы можете подключить клиента из вашей машины к виртуальной машине. Если вы используете прокси-сервер для доступа в Интернет, вы должны добавить "debian6.localdomain" в свой список исключений в вашем браузере. Вам будет не нужен прокси чтобы разрешить локальный адрес.

Кроме того, вы можете получить IP-адрес с помощью DHCP. Не рекомендуется делать это, поскольку клиенты будут путаться, если изменения IP-адрес. Чтобы сделать это, редактировать /etc/network/interfaces, добавив:

iface eth0 inet dhcp

Это будет работать, если в вашей сети есть DHCP сервер, настроенный на добавление IP-адреса новых хостов.

Чтобы изменения вступили в силу необходимо перезапустить виртуальную машину:

$ sudo reboot

NAT

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

Тем не менее, это ограничение можно обойти, используя перенаправление портов. Чтобы сделать это, используйте VirtualBox Manager (Edit > Network), изменить Attached to: на NAT, нажать Advanced затем Port Forwarding.

3. Создание тестового проекта

Начнем создание тестового проекта под управлением сервера BOINC.

Перед этим убедитесь что все запущены фоновые процессы(демоны), которые отвечают за Apache и MySQL.

Далее следует выполнять все поэтапно.

3.1 Создание инфраструктуры проекта

Скрипт make_project занимается выполнением всех необходимых работ, связанных с созданием инфраструктуры проекта системы BOINC.

Располагается в каталоге скомпилированного сервера в подкаталоге tools.

Запустите этот скрипт с именем нового проекта:

boincadm@boincserver:~/server_stable>./tools/make_project my_example_app

Скрипт выводит сообщения процесса сборки нового проекта.

Прежде всего, устанавливаются параметры, связанные с доступом к Web-странице проекта (здесь *server -IP*- это имя сервера в сети):

Creating project ' my_example_app ' (short name ' meapp '):

PROJECT_ROOT = /home/boincadm/projects/ meapp /

URL_BASE = http://*server -IP*/

HTML_USER_URL = http://* server -IP*/ meapp /

HTML_OPS_URL = http://* server -IP*/meapp_ops/

CGI_URL =://*server -IP*/meapp_cgi/

KEY_DIR = /home/boincamd/projects/meapp/keys/

DB_NAME = meapp

DB_HOST =

Затем создаются необходимые каталоги...

Setting up server: creating directories

происходит генерация криптографических ключей.

Keys don't exist in /home/boincadm/projects/meapp/keys/; generate them? [Y/n] y

Setting up server files: generating keys

Копирование необходимых файлов, создание таблиц базы данных и файлов настроек, установка независимых от приложения служб:

Setting up server files: copying files

Setting up database

Setting up server files: writing config files

Setting up server files: linking cgi programs

update_translations finished

Done installing default daemons.

У скрипта make_project есть набор параметров для изменения стандартных настроек выполнения.

Все параметры скрипта можно узнать, добавив параметр --help.

На начальном этапе разработки наиболее полезными параметрами будут: --delete_prev_inst и --drop_db_first, они позволяют переписать (или удалить) данные уже существующего проекта.

В домашнем каталоге администратора проекта BOINC (в примере, приведенном в статье, это /home/boincadm) находится подкаталог projects/meapp со следующим содержимым:

boincadm@boincserver:~/server_stable> ls ~/projects/meapp

Таблица 1. Содержимое каталога.

apps/

bin/

cgi-bin/

config.xml

db_dump_spec.xml

db_revision

download/

html/

keys/

local.revision

log_linuxserver/

meapp.cronjob

meapp.httpd.conf

myapp.readme

project.xml

py/

templates/

upload/

Все эти подкаталоги (и их содержимое) и файлы, а также записи о проекте в базе данных сервера BOINC, созданы скриптом make_project.

Назначение большей части из этих файлов и каталогов будет рассмотрено далее.

основным рабочим каталогом для являеться каталог /home/boincadm/projects/meapp.

3.2 Web-страница проекта

Настройки Web-сервера Apache для нового проекта содержатся в файле meapp.httpd.conf. Содержимое файлов настроек подключается либо напрямую, либо подключая через основной файл настроек (все действия необходимо выполнить с правами root):

root@boincserver:/home/boincadm/projects/meapp>

cat meapp.httpd.conf >> /etc/apache2/httpd.conf

Необходимо перезапустить сервер Apache:

root@boincserver:/home/boincadm/projects/meapp>

apache2ctl restart

Если настройки верны, то при переходе по ссылке в браузере по адресу http://localhost/meapp (с сервера, непосредственно на котором находится проект) или http://*server-IP*/meapp (доступно с сетевых компьютеров в локальной или глобальной сетях) вы увидите начальную страницу проекта, как показано на рисунке 3.

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

Рисунок 3. Главная страница тестового проекта BOINC

3.3 Периодический запуск фоновых процессов

Для того чтобы запустить периодически выполняемые службы (такие, как служба генерации входных данных - work_generator), нужно воспользоваться системной службой cron.

Чтобы выставить правильную периодичность, следует выполнить команду:

boincadm@boincserver:~/projects/meapp/> crontab meapp.cronjob

В файле meapp.cronjob записаны правила для службы cron, на запуск скрипта ~/projects/myapp/bin/start с пяти минутным интервалом:

boincadm@boincserver:~/projects/meapp/> more meapp.cronjob

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/boinc/projects/meapp/bin/start -cron Эта служба запускает необходимые периодические утилиты сервера BOINC.

3.4 Известные платформы и имя приложения

Используем шаблон приложения предоставленного разработчиками BOINC,в качестве примера приложения запускаемого участниками распределенного проекта. Изначально разработчиками были сделаны некоторые подготовительные шаги. Рассмотрим файл project.xml, который находится в корневом каталоге проекта:

boincadm@boincserver:~/projects/meapp> more project.xml

<boinc>

<platform>

<platform>

<name>i686-pc-linux-gnu</name>

<user_friendly_name>Linux running on an Intel x86-compatible CPU</user_friendly_name>

</platform>

<app>

<name>uppercase</name>

<user_friendly_name>upperCASE</user_friendly_name>

</app>

</boinc>

В файле project.xml (рассмотрим его частично) описаны программно-аппаратные платформы, “известные” проекту.

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

В конце файла записана информация о приложении:

имя программы, используемое в служебных целях

имя для вывода пользователям.

Чтобы занести в базу данных проекта платформы и имена приложения занесенные в project.xml, следует выполнить команду:

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

Processing <Platform#None windows_intelx86>...

Committed <Platform# windows_intelx86>; values:

{'_dirty': False,

'_lazy_lookups': {},

'create_time': 1258736642L,

'deprecated': 0,

'id': 3L,

'name': 'windows_intelx86',

'user_friendly_name': 'Microsoft Windows (98 or later) running on an Intel x86-compatible'}

Processing <App#None meapp>...

Committed <App#1 meapp >; values:

{'_dirty': False,

'_lazy_lookups': {},

'beta': 0,

'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}

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

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

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

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

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

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

#include "boinc_api.h"

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

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

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

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

boinc_init();

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


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

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

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

  • Обзор существующих объектных архитектур. Архитектура программного обеспечения. Создание веб-сервиса "Библиотека", предоставляющего механизмы работы с данными на стороне клиентского приложения. WEB-сервис и трехуровневая архитектура в основе приложения.

    лабораторная работа [1,5 M], добавлен 16.06.2013

  • Разработка приложений для смартфонов на ОС Android для сети аптек "Фармация". Архитектура операционной системы Android. Архитектура и реализация приложения. Его функциональность. Описание работы мобильного приложения. Расчет затрат на создание продукта.

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

  • Сущность, развитие и применение СОМ-технологий, их достоинства, недостатки, терминология. Особенности СОМ-интерфейса, сервера, клиента, расширений. Локальные и удаленные серверы, их функции и реализация. Технология OMG CORBA и архитектура комплекса.

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

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

    контрольная работа [126,8 K], добавлен 08.02.2015

  • Архитектура и функции СУБД. Инфологическая модель данных "Сущность-связь". Ограничения целостности. Характеристика связей и язык моделирования. Манипулирование реляционными данными. Написание сервера на Java.3 и приложения-клиента на ActoinScript 3.0.

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

  • Анализ решений и выбор платформы виртуализации. Обоснование выбора VMwareESXi в качестве платформы для создания учебного класса. Системные требования к аппаратной части для выбранной платформы. Создание макета на основе сервера виртуализации VMwareESXi.

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

  • История и основные сведения о сервере. Классификация и ресурсы серверов. Важность системы охлаждения для сервера. Выбор компонентов для сборки сервера. Основные неисправности и способы их устранения. Проведение технического обслуживания и ремонта сервера.

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

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

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

  • Организация корпоративного файлового сервера, выполняющего функции прокси-сервера на базе ОС Linux. Процесс его реализации. Выбор оптимальной аппаратно-программной платформы. Расчёт сметы затрат на выполнение объёма работ по созданию FTP-сервера.

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

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