27 KiB
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Система удаленного доступа к камерам мобильных устройств "GodEye"
Версия: 1.0
Дата: 6 октября 2025 г.
1. ОБЩИЕ ПОЛОЖЕНИЯ
1.1 Наименование системы
GodEye Signal Center - система удаленного доступа к камерам мобильных устройств через WebRTC с централизованным управлением.
1.2 Назначение системы
Система предназначена для организации удаленного доступа операторов к камерам Android устройств в режиме реального времени через веб-интерфейс.
1.3 Цели разработки
- Обеспечение безопасного удаленного доступа к камерам мобильных устройств
- Централизованное управление подключениями и сессиями
- Масштабируемая архитектура для поддержки множественных подключений
- Минимальная задержка передачи видео (< 500ms)
2. ХАРАКТЕРИСТИКИ ОБЪЕКТА АВТОМАТИЗАЦИИ
2.1 Краткие сведения об объекте
- Тип системы: Распределенная система реального времени
- Область применения: Удаленный мониторинг, техническая поддержка, безопасность
- Пользователи: Операторы мониторинга, администраторы системы
- Устройства: Android смартфоны/планшеты, десктопные рабочие станции
2.2 Функциональные требования
2.2.1 Основные функции
-
Регистрация и аутентификация устройств
- Уникальная идентификация Android устройств
- Регистрация операторов с правами доступа
- Система разрешений и контроля доступа
-
Управление камерой
- Запрос доступа к камере устройства
- Переключение между типами камер (основная, фронтальная, широкоугольная, телеобъектив)
- Контроль качества видеопотока
- Завершение сессий
-
Видеотрансляция
- WebRTC peer-to-peer соединение
- Адаптивное качество в зависимости от пропускной способности
- Поддержка разрешений: 480p, 720p, 1080p
- Кодеки: H.264, VP8, VP9
-
Мониторинг и логирование
- Отслеживание состояния устройств
- Логирование всех операций
- Статистика использования
- Система уведомлений
2.2.2 Дополнительные функции
-
Администрирование
- Панель управления системой
- Управление пользователями и устройствами
- Мониторинг производительности
- Конфигурация системы
-
Безопасность
- Шифрование всех соединений (TLS/SSL)
- Аутентификация устройств по токенам
- Аудит действий пользователей
- Контроль сессий
3. АРХИТЕКТУРА СИСТЕМЫ
3.1 Компоненты системы
3.1.1 Backend Server (Node.js)
- Технологии: Node.js, Express.js, Socket.IO
- Функции:
- Сигнальный сервер для WebRTC
- Управление сессиями и устройствами
- REST API для управления
- Система логирования
- Порт: 3001 (конфигурируемый)
3.1.2 Android Client Application
- Технологии: Kotlin, Android SDK, WebRTC Android
- Функции:
- Регистрация в системе
- Управление камерой устройства
- WebRTC видеопоток
- Обработка команд переключения камер
- Минимальная версия Android: API 21 (Android 5.0)
3.1.3 Desktop Operator Application
- Технологии: Electron, HTML5, CSS3, JavaScript
- Функции:
- Интерфейс оператора
- Управление подключениями к устройствам
- Просмотр видеопотоков
- Переключение камер
- Платформы: Windows 10+, macOS 10.14+, Linux (Ubuntu 18.04+)
3.1.4 Web Demo Interface
- Технологии: HTML5, CSS3, JavaScript, Socket.IO
- Функции:
- Демонстрационный интерфейс
- Тестирование функциональности
- Имитация Android устройства и оператора
3.2 Схема взаимодействия
Android Device <--WebSocket--> Backend Server <--WebSocket--> Desktop Operator
| | |
| | |
Camera API Session Video Display
WebRTC Management WebRTC
Stream Device Registry Controls
4. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ
4.1 Требования к Backend Server
4.1.1 Функциональные требования
- Протоколы: HTTP/HTTPS, WebSocket (Socket.IO)
- API: RESTful API + Socket.IO events
- База данных: В памяти (session storage) с возможностью подключения PostgreSQL/MongoDB
- Логирование: Winston с ротацией логов
- Конфигурация: JSON файлы + переменные окружения
4.1.2 Socket.IO Events
Входящие события:
register:android- регистрация Android устройстваregister:operator- регистрация оператораcamera:request- запрос доступа к камереcamera:response- ответ устройства на запрос камерыcamera:switch- переключение типа камерыcamera:disconnect- завершение сессииwebrtc:offer- WebRTC offerwebrtc:answer- WebRTC answerwebrtc:ice-candidate- ICE кандидатыping- проверка соединения
Исходящие события:
register:success/error- результат регистрацииdevice:connected/disconnected- изменение статуса устройстваcamera:request- передача запроса камерыcamera:stream-ready- готовность видеопотокаcamera:denied- отказ в доступеsession:status-update- обновление статуса сессииwebrtc:offer/answer/ice-candidate- WebRTC сигнализация
4.1.3 REST API Endpoints
Операторы:
GET /api/operators/devices- список доступных устройствPOST /api/operators/camera/request- запрос камерыPOST /api/operators/camera/:sessionId/switch- переключение камерыDELETE /api/operators/camera/:sessionId- завершение сессииGET /api/operators/sessions- активные сессии оператора
Администрирование:
GET /api/admin/stats- статистика системыGET /api/admin/health- состояние системыGET /api/admin/devices- все устройстваGET /api/admin/sessions- все сессииPOST /api/admin/cleanup- очистка неактивных сессий
Мониторинг:
GET /api/status- общий статус системы
4.2 Требования к Android Application
4.2.1 Функциональные требования
- Разрешения: CAMERA, RECORD_AUDIO, INTERNET, ACCESS_NETWORK_STATE
- Архитектура: MVVM с использованием Android Architecture Components
- WebRTC: Последняя стабильная версия WebRTC Android
- Socket.IO: Socket.IO Android Client
4.2.2 Основные классы и функции
MainActivity:
- Основной экран приложения
- Управление разрешениями
- Отображение статуса подключения
- Список активных сессий
SocketManager:
- Подключение к серверу
- Обработка Socket.IO событий
- Отправка ответов на запросы камеры
CameraManager:
- Инициализация камеры
- Переключение между камерами
- Управление параметрами видео
WebRTCManager:
- Создание peer connection
- Обработка offer/answer
- Управление ICE кандидатами
- Потоковая передача видео
4.2.3 Пользовательский интерфейс
- Главный экран: Device ID, статус подключения, настройки сервера
- Экран сессий: Список активных запросов и сессий
- Настройки: URL сервера, качество видео, разрешения
4.3 Требования к Desktop Operator
4.3.1 Функциональные требования
- Framework: Electron (последняя LTS версия)
- UI Framework: Собственный CSS/JavaScript
- WebRTC: Встроенный в Chromium
- Архитектура: Main process + Renderer process
4.3.2 Основные модули
ConfigManager:
- Управление настройками приложения
- Сохранение конфигурации
- Валидация параметров
SocketManager:
- Подключение к backend серверу
- Обработка событий
- Переподключение при обрывах
DeviceManager:
- Отображение списка устройств
- Управление подключениями
- Фильтрация и поиск
SessionManager:
- Управление активными сессиями
- Отображение статусов
- История операций
VideoManager:
- Отображение видеопотоков
- Управление качеством
- Фильтры изображения
4.3.3 Пользовательский интерфейс
Главное окно:
- Панель подключения (статус, настройки)
- Список доступных устройств
- Область просмотра видео
- Панель управления камерой
- Логи операций
Дополнительные окна:
- Настройки приложения
- История сессий
- Справочная информация
5. ТРЕБОВАНИЯ К ПРОИЗВОДИТЕЛЬНОСТИ
5.1 Пропускная способность
- Минимальная: 1 Мбит/с для SD качества (480p)
- Рекомендуемая: 5 Мбит/с для HD качества (720p)
- Оптимальная: 10 Мбит/с для Full HD (1080p)
5.2 Задержка
- WebRTC соединение: < 500ms
- Команды управления: < 100ms
- Отклик интерфейса: < 50ms
5.3 Масштабируемость
- Одновременные устройства: до 100
- Одновременные операторы: до 50
- Активные сессии: до 30
- Время работы без перезагрузки: 24/7
5.4 Ресурсы сервера
- ОЗУ: минимум 2 ГБ, рекомендуется 8 ГБ
- CPU: минимум 2 ядра, рекомендуется 4 ядра
- Сеть: 100 Мбит/с
- Дисковое пространство: 10 ГБ для логов
6. ТРЕБОВАНИЯ К БЕЗОПАСНОСТИ
6.1 Шифрование
- WebSocket соединения: WSS (WebSocket Secure)
- WebRTC: DTLS (по умолчанию)
- REST API: HTTPS
- Конфигурационные файлы: шифрование чувствительных данных
6.2 Аутентификация
- Устройства: уникальный Device ID + токен регистрации
- Операторы: логин/пароль + сессионные токены
- Администраторы: двухфакторная аутентификация
6.3 Авторизация
- Ролевая модель: администратор, оператор, устройство
- Права доступа: по устройствам и функциям
- Аудит: логирование всех действий
6.4 Защита данных
- Персональные данные: минимальный объем сбора
- Видеопотоки: не сохраняются на сервере
- Логи: автоматическая очистка через 30 дней
- Backup: шифрованные резервные копии конфигурации
7. ТРЕБОВАНИЯ К НАДЕЖНОСТИ
7.1 Отказоустойчивость
- Автоматическое переподключение при обрыве связи
- Graceful shutdown с сохранением состояния
- Обработка ошибок с информативными сообщениями
- Восстановление сессий после сбоев
7.2 Мониторинг
- Health checks для всех компонентов
- Метрики производительности в реальном времени
- Система алертов при критических событиях
- Логирование с различными уровнями детализации
7.3 Резервное копирование
- Конфигурация: ежедневное автоматическое резервирование
- Логи: архивирование и ротация
- Состояние системы: snapshot при критических изменениях
8. ТРЕБОВАНИЯ К ИНТЕРФЕЙСАМ
8.1 Пользовательский интерфейс
8.1.1 Desktop Operator Application
- Современный дизайн: Material Design или аналогичный
- Адаптивность: масштабирование под разные разрешения
- Темная/светлая тема: переключение в настройках
- Локализация: русский и английский языки
- Доступность: поддержка screen readers
8.1.2 Android Application
- Material Design 3: соответствие последним гайдлайнам Google
- Адаптивность: поддержка планшетов и различных размеров экранов
- Простота использования: минимальное количество действий для основных функций
- Обратная связь: четкие индикаторы состояния и прогресса
8.1.3 Web Demo Interface
- Responsive design: работа на мобильных и десктопных устройствах
- Cross-browser compatibility: Chrome, Firefox, Safari, Edge
- Интерактивность: real-time обновления интерфейса
- Отладочная информация: детальные логи для разработчиков
8.2 API интерфейсы
8.2.1 REST API
- OpenAPI 3.0 спецификация: полная документация API
- Стандартные HTTP коды: правильное использование статусов
- JSON формат: все запросы и ответы
- Версионирование: поддержка версий API
- Rate limiting: защита от злоупотреблений
8.2.2 WebSocket API
- Документация событий: полный список с примерами
- Схемы данных: JSON Schema для всех событий
- Обработка ошибок: стандартизированные коды ошибок
- Heartbeat: механизм проверки соединения
9. ТРЕБОВАНИЯ К ТЕСТИРОВАНИЮ
9.1 Модульное тестирование
- Backend: покрытие кода минимум 80%
- Android: unit тесты для бизнес-логики
- Desktop: тестирование основных модулей
- Автоматизация: запуск тестов при каждом коммите
9.2 Интеграционное тестирование
- API тестирование: все endpoints и сценарии
- WebSocket тестирование: все события и error cases
- WebRTC тестирование: установка соединений и качество
- Cross-platform: тестирование на различных ОС
9.3 Нагрузочное тестирование
- Одновременные подключения: до максимальных значений
- Долговременная работа: 24 часа непрерывной работы
- Деградация сервиса: поведение при превышении лимитов
- Memory leaks: отсутствие утечек памяти
9.4 Безопасности тестирование
- Penetration testing: поиск уязвимостей
- Authentication bypass: проверка обхода аутентификации
- Data validation: валидация всех входных данных
- SSL/TLS: проверка конфигурации шифрования
10. ТРЕБОВАНИЯ К ДОКУМЕНТАЦИИ
10.1 Техническая документация
- Архитектура системы: диаграммы и описания компонентов
- API документация: полная OpenAPI спецификация
- Database schema: структура данных
- Deployment guide: инструкции по развертыванию
10.2 Пользовательская документация
- Руководство администратора: установка, настройка, обслуживание
- Руководство оператора: работа с desktop приложением
- Инструкция для пользователей: настройка Android приложения
- FAQ: часто задаваемые вопросы и решения
10.3 Документация разработчика
- Setup guide: настройка среды разработки
- Code style: стандарты кодирования
- Contributing guidelines: правила участия в проекте
- Changelog: история изменений
11. ТРЕБОВАНИЯ К ПОСТАВКЕ
11.1 Исходный код
- Git repository: структурированная история коммитов
- Branching strategy: GitFlow или аналогичная стратегия
- Code review: все изменения проходят ревью
- CI/CD: автоматическая сборка и тестирование
11.2 Сборки приложений
- Backend: Docker образ + npm package
- Android: APK файл + source code
- Desktop: инсталляторы для Windows, macOS, Linux
- Web Demo: статические файлы
11.3 Конфигурация
- Environment templates: примеры конфигурационных файлов
- Docker Compose: готовая конфигурация для развертывания
- Kubernetes manifests: для enterprise развертывания
- Monitoring setup: конфигурация систем мониторинга
12. КРИТЕРИИ ПРИЕМКИ
12.1 Функциональные критерии
- ✅ Регистрация и подключение Android устройств
- ✅ Регистрация и подключение операторов
- ✅ Запрос и получение доступа к камере
- ✅ Переключение между типами камер
- ✅ Стабильная WebRTC видеотрансляция
- ✅ Завершение сессий и отключение устройств
- ✅ Административные функции
- ✅ Система логирования и мониторинга
12.2 Технические критерии
- ✅ Задержка видео < 500ms
- ✅ Стабильная работа 24 часа
- ✅ Поддержка 30 одновременных сессий
- ✅ Покрытие тестами > 80%
- ✅ Безопасность соединений (HTTPS/WSS)
- ✅ Cross-platform совместимость
12.3 Качественные критерии
- ✅ Удобство использования интерфейсов
- ✅ Полнота документации
- ✅ Качество кода (code review passed)
- ✅ Отсутствие критических уязвимостей
- ✅ Соответствие техническому заданию
13. УПРАВЛЕНИЕ ПРОЕКТОМ
13.1 Этапы разработки
Этап 1: Архитектура и Backend (4 недели)
- Проектирование архитектуры системы
- Разработка Backend Server
- Создание REST API и Socket.IO events
- Базовое тестирование API
Этап 2: Android Application (3 недели)
- Разработка Android клиента
- Интеграция с Backend
- Реализация WebRTC функциональности
- Тестирование на различных устройствах
Этап 3: Desktop Operator (3 недели)
- Разработка Electron приложения
- Пользовательский интерфейс
- Интеграция с Backend
- WebRTC клиент для операторов
Этап 4: Интеграция и тестирование (2 недели)
- Интеграционное тестирование
- Нагрузочное тестирование
- Исправление критических багов
- Подготовка документации
Этап 5: Финализация и поставка (1 неделя)
- Финальное тестирование
- Подготовка релизных сборок
- Документация и инструкции
- Передача заказчику
13.2 Команда проекта
- Tech Lead / Architect - 1 человек
- Backend Developer - 1 человек
- Android Developer - 1 человек
- Frontend Developer - 1 человек
- QA Engineer - 1 человек
13.3 Коммуникации
- Ежедневные standups: 15 минут
- Еженедельные ретроспективы: 1 час
- Демонстрации заказчику: каждые 2 недели
- Отчеты о прогрессе: еженедельно
14. РИСКИ И ОГРАНИЧЕНИЯ
14.1 Технические риски
- WebRTC совместимость между различными платформами
- Производительность при высокой нагрузке
- Сетевые ограничения (NAT, firewall)
- Безопасность peer-to-peer соединений
14.2 Проектные риски
- Изменение требований в процессе разработки
- Недоступность экспертизы по WebRTC
- Задержки в тестировании на реальных устройствах
- Интеграционные проблемы между компонентами
14.3 Митигация рисков
- Прототипирование критических компонентов
- Раннее тестирование на целевых устройствах
- Резервные планы для критических функций
- Регулярная коммуникация с заказчиком
15. ЗАКЛЮЧЕНИЕ
Данное техническое задание определяет полный объем работ по созданию системы удаленного доступа к камерам мобильных устройств "GodEye". Система должна обеспечивать безопасную, надежную и производительную работу в условиях реального времени.
Все компоненты системы должны быть разработаны в соответствии с современными стандартами и best practices, обеспечивать высокое качество пользовательского опыта и соответствовать требованиям безопасности.
Документ подготовлен: 6 октября 2025 г.
Версия: 1.0
Статус: Для согласования с подрядчиком