-
FastCgiServer (класс): класс принимает от веб-серверов по FastCGI протоколу запросы, распарсивает их и выполняет (Получение статистики из БД, отключение StatisticGrabber’ов через методы Supervisor’a и т.д)
-
Parser (интерфейс): класс, реализующий этот интерфейс должен распарсивать запросы (Класс FastCgiServer может реализовывать этот интерфейс)
-
Authentificator (интерфейс): класс, реализующий этот интерфейс должен проводить аутентификацию пользователя (Класс FastCgiServer может реализовывать этот интерфейс)
-
StatisticConverter (интерфейс): класс, реализующий этот интерфейс должен преобразовывать объекты класса StatisticData в определенный формат (JSON, XML и тд)
-
SuperVisor (класс): класс, который следит за StatisticGrabber’ами (запускает их в отдельном потоке, забирает их накопившиеся данные, сохраняет их данные, запускает грабберы в отдельном потоке и тд)
-
Settings (класс): класс, хранящий в себе настройки системы
-
StatSaver (интерфейс): сохраняет стаистику. Классы, реализующие данный интерфейс должны сохранять данные, переданные им в виде объекта StatisticData
-
StatGrabber (абстрактный класс): отвечает за сбор статистики (пропарсивает файлы из /proc/* в бесконечном цикле в отдельном потоке (могут и в одном потоке, все зависит от настроек) и достает из них нужную инфу), собранную статистику временно (пока ее не заберет SuperVisor) хранит в списке объектов StatisticData
-
StatisticData (класс): представляет из себя собранную статистику в виде словаря строк
-
Реализация АПИ, по которому клиентские приложения будут общаться с нашей системой.
классы: FastCgiServer, Parser, Authentificator, StatisticConverter (в JSON и XML) -
Реализация cохранения статистики.
классы: реализации StatSaver’a, StatisticConverter (в строки) -
Реализация сбора статистики
-
Сбор из всех классов демона