воскресенье, 8 декабря 2013 г.

BeagleBone Black - Web control: Рart 1 - Review

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



Общее описание
ПО собрано на базе веб-фреймворка Django 1.5.4. Выбор этого фреймворка был обусловлен тем, что я программирую на языке Python и как среда для разработки веб приложений он мне ближе. Также он был выбран из-за простоты реализации того функционала, который используется в данном проекте. В качестве готового внешнего оформления для интерфейса был выбран Twitter Bootstrap 2.3.2. Также применён ряд библиотек, как поставляемых с Python 2.7, так и  сторонней разработки, например psutil для получения ряда сервисной информации. В целях демонстрации ПО запущено на плате BeagleBone Black в режиме сервера разработчика.

Общий вид интерфейса:
Как видно из снимка экрана, интерфейс состоит из боковой навигационной панели и центральной панели для вывода основной информации. Также на центральной панели могут присутствовать элементы управления для взаимодействия с пользователем.

Навигационная панель
Эта панель может принимать три состояния в зависимости от привилегий пользователя. Для неавторизованного пользователя отображаются лишь основное (Base) меню, а также, доступны ссылки из раздела Common и ссылка для авторизации в системе:
Для авторизованного пользователя доступны все предыдущие пункты, единственным отличием является то, что у него есть доступ в пункт меню System Info, а также возможность выхода из системы:
Кроме этого присутствует возможность авторизации для администратора системы, в этом случае в меню доступен пункт для перехода к администраторскому разделу системы:
Разделы
Так как административный раздел - это стандартная админка Django, то имеет смысл рассмотреть раздел системной информации - System Info.

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

Память:
Информация по памяти и её использовании, присутствует деление на ОЗУ и SWAP.
Диски:
Примонтированные разделы со статистикой по ним, также прогресс бар использования дискового пространства.
Сетевые соединения:
Полная информация по статистике сетевых соединений.
Система:
В настоящее время есть информация только по времени работы системы (uptime).
Процессы:
Статистика по выборке из двадцати процессов, которые максимально нагружают процессорное ядро.

На этом, обзор функционала ПО закончен.