Назначение системы: мониторинг явлений (несколько явлений) по расписанию и оповещение (несколько способов оповещения) подписчиков о наступлении ожидаемого события.
Пояснение вольным текстом:
Изначально систему планировалось использовать для внутренних нужд нашего сервиса cashelec.ru. А именно, отслеживать доступность сайта, баланс на счетах системы (на случай взлома), состояние операций. Т.к. к сервису имеют отношение несколько людей (и они могут добавляться) – хардкод не подходит.
Сервис планируется расширять (добавлять новые возможности) и количество отслеживаемых явлений увеличится.
Эту же систему планируется использовать для оповещения наших клиентов о состоянии их заказа (сейчас прописано жестко в коде).
Так как для наших внутренних нужд УЖЕ требуется:
1. Отслеживание нескольких явлений, с возможностью добавлять новые явления (расширение сервиса).
2. Управление подписками. Подписчики должны иметь возможность изменять параметры своей подписки самостоятельно.
3. Разные права для пользователей (подписчиков).
4. Разные способы оповещения (e-mail, SMS, WM-сообщение). Оповещение осуществляется по шаблону. Текст зависит от события и способа оповещения.
, то было принято решение сделать сервис публичным. То есть главное назначение сервиса – корпоративное использование. Вторичное – предоставить его нашим клиентам как SAS-решение (c оплатой за использование).
«Фишкой» будет оплата за количество/тип проверок и количество/способ оповещений. То есть клиент платит только за то, что использует.
Публичные явления:
1. Доступность сервера.
2. Изменение HTML-страницы.
3. Google PR, Яндекс ТИЦ.
4. Изменение информации WHOIS.
5. Безусловное оповещение (по времени).
Нужно обеспечить минимум 100 проверок в секунду и 20 оповещений в секунду для каждого явления, кроме 3 (это экспериментальная функциональность).
Явления, доступные только нашей системе (права настраиваются для каждого пользователя):
1. Мониторинг изменения средств на счетах системы (будет уточнение алгоритма).
2. Проверка наличия оборотных средств.
3. Мониторинг состояния операций (оповещение о проблемных операциях).
Основные модули системы:
1. База данных (MySql).
2. Ядро (Windows Service), взаимодействующий с базой и сервисами. Доступ к ядру осуществляется через SOAP-интерфейсы. Сайт – это один из клиентов, могут быть еще другие клиенты (для мобильных устройств и пр.).
3. Web-сайт (связь с ядром через интерфейсы).НА ДАННОМ ЭТАПЕ САЙТ ДЕЛАТЬ НЕ НУЖНО (переносим на второй этап).
Платформа и технологии:
1. База данных MySql (ORM Entity Framework, метод Code First).
2. Ядро (Windows Service): язык разработки C# 4.0, OS Windows Server 2008 R2.
3. Web-сайт: языкразрабокти Java, Tomcat 7, CentOS 5.5 (по web-платформебудетуточнение).
Требования по нагрузке: система должна корректно работать на многопроцессорной машине (с распределением нагрузки по процессорам). Обеспечить ~100 проверок в секунду и ~20 оповещений в секунду на одной машине.
Требования к коду: к коду есть требования [см. приложение ниже]. Обязательно требуется применение ООП-парадигмы разработки (Rich Domain Model).
Дополнительные требования: требуется предварительное создание проекта системы и согласование изменений архитектуры.