Сервис лотереи и клиент лотереи.
Серверная часть лотереи.
Серверная часть лотереи представляет собой сервер специализированного протокола,
принимающего запросы клиентских терминалов и выполняющего соответствующие изменения в базе данных.
Протокол организован аналогично системе удаленного вызова процедур.
В функционал протокола входит:
- Реакция на отчет о работоспособности терминала, находящегося online.
- Продажа билета лотереи терминалу и функция перераспределения денег между клиентами
с начислением процентов и выплатой выигрышей.
- Сохранение состояния терминала с указанием количества денег на терминале.
- Загрузка обновлений на терминал, если они появляются. Обновления загружаются
внутри протокола терминала, для чего существуют соответствующие вызовы.
- Обслуживание терминалов с разными версиями протокола, на случай если обновления не происходило.
- Загрузка на терминал новых настроек.
- Ведение циклических логов всех возникающих событий.
- Настройка всех параметров сервера через файлы конфигурации.
При необохдимости сервер мог использовать SSL соединение для повышения безопасности соединения.
Основу протокола составляют кодированные в нумерованном виде ссылки на функцию с сериализованными аргументами
и сериализованными ответами сервера. Запросы от сервера к терминалу сделаны в виде "обратного вызова"
функции. Таким образом существует набор функций, позволяющий выполнить удаленный псевдокод на терминале.
Библиотека протокола реализована отдельно и используется одновременно в клиенте терминала и сервере, гарантируя
совместимость кода терминала и сервера между собой. Код компилируется одинаково для Windows и Linux, что позволяет
использовать идентичные версии сервера на обеих платформах и безболезненно переходить на серверы с различными платформами.
Клиентская часть лотереи.
Представляет собой сервис клиентской части, выполненный в виде сервиса для Windows, административный инструмент
управления терминалом и Flash приложение, работающее в окне броузера. Терминал лотереи совмещен с терминалом оплаты
и взаимосвязан с ним.
В функции сервиса терминала входит.
- Отправка на сервер отчетов о состоянии терминала.
- Закупка билета лотереи на сервере лотери, учет входящих средств, выплата вознаграждения за выигрыш.
- Изменение параметров терминала по запросу сервера.
- Загрузка с сервера обновления, запрос обновления и проверка наличия обновлений на сервере.
- Ведение циклических логов всех возникающих событий.
- Настройка всех параметров сервера через файлы конфигурации.
- Поддержка связи с аппаратурой терминала: хоппером, монетоприемником, кюпюроприемником.
- Мониторинг оборудования и мониторинг переподключения оборудования на COM портах, с автоматическим
обновлением конфигурации оборудования без участия оператора.
- Прием монет в монеториемник, их учет, отправка отчета об изменении счета и запрос билета.
- Размен купюр через купюроприемник, определение возможностей для размена и принятие решения
о выдаче монет на размен.
- Выплата выигрыша через хоппер с учетом монет, находящемся в нем.
- Мониторинг состояния модема, запрос баланса на счету мобильного оператора, поддержка состояния интернет
соединения в актовном режиме.
- Отключение терминала на случай отсутствия денежных средств, отсутствия интернет соединения, неготовности
любого оборудования.
- Проксирование обмена купюроприемника и терминала оплаты при активном терминале оплаты.
- Переключение между терминалом оплаты и терминалом лотереи с деакцивацией терминала лотереи
при работающем терминале оплаты.
Во время старта сервис автоматически определяет наличие аппаратуры и производит первичную конфигурацию оборудования.
При необходимости запускается программа терминала оплаты с пропусканием трафика терминала оплаты через виртуальный
или реальный нуль-модем, который предварительно автоматически детектируется. Это позволяет прозрачно работать
терминалу оплаты, не зная о существовании сервиса лотереи. Управление окном терминала (свернуть/развернуть)
осуществляется средствами Win32 API.
Административный инструмент управления терминалом.
Инструмент представляет из себя программу на языке C, использующую Win32 API для интерфейса.
Инструмент начинается с диалогового окна ввода пароля с цифровой виртуальной клавиатуры.
Внутренние диалоги дают доступ к настройкам терминала, просмотру логов, командному модулю теримнала.
В функции административного инструмента входят:
- Авторизация пользователя терминала с проверкой прав на сервере и созданием
пользовательской сессии.
- Управление настройками терминала.
- Просмотр текущей конфигурации оборудования терминала в режиме реального времени.
Отключение и переподключение оборудования отображается в состоянии терминала.
- Конфигурация настроек модемного соединения и автодозвон модемом с отображением состояния.
- Управление денежными средствами терминала. Размен, снятие сресдтв, перезаправка терминала
монетами.
- Просмотр событий терминала.
- Обновление ПО терминала с отображением процесса и перезапуском обновленного ПО.
- Взаимодействие с сервисом терминала, взаимодействующего с сервером лотереи.