Вакансии для программистов

Сервис лотереи и клиент лотереи.

Серверная часть лотереи.

Серверная часть лотереи представляет собой сервер специализированного протокола, принимающего запросы клиентских терминалов и выполняющего соответствующие изменения в базе данных. Протокол организован аналогично системе удаленного вызова процедур.

В функционал протокола входит:

  • Реакция на отчет о работоспособности терминала, находящегося online.
  • Продажа билета лотереи терминалу и функция перераспределения денег между клиентами с начислением процентов и выплатой выигрышей.
  • Сохранение состояния терминала с указанием количества денег на терминале.
  • Загрузка обновлений на терминал, если они появляются. Обновления загружаются внутри протокола терминала, для чего существуют соответствующие вызовы.
  • Обслуживание терминалов с разными версиями протокола, на случай если обновления не происходило.
  • Загрузка на терминал новых настроек.
  • Ведение циклических логов всех возникающих событий.
  • Настройка всех параметров сервера через файлы конфигурации.

При необохдимости сервер мог использовать SSL соединение для повышения безопасности соединения. Основу протокола составляют кодированные в нумерованном виде ссылки на функцию с сериализованными аргументами и сериализованными ответами сервера. Запросы от сервера к терминалу сделаны в виде "обратного вызова" функции. Таким образом существует набор функций, позволяющий выполнить удаленный псевдокод на терминале. Библиотека протокола реализована отдельно и используется одновременно в клиенте терминала и сервере, гарантируя совместимость кода терминала и сервера между собой. Код компилируется одинаково для Windows и Linux, что позволяет использовать идентичные версии сервера на обеих платформах и безболезненно переходить на серверы с различными платформами.

Клиентская часть лотереи.

Представляет собой сервис клиентской части, выполненный в виде сервиса для Windows, административный инструмент управления терминалом и Flash приложение, работающее в окне броузера. Терминал лотереи совмещен с терминалом оплаты и взаимосвязан с ним.

В функции сервиса терминала входит.

  • Отправка на сервер отчетов о состоянии терминала.
  • Закупка билета лотереи на сервере лотери, учет входящих средств, выплата вознаграждения за выигрыш.
  • Изменение параметров терминала по запросу сервера.
  • Загрузка с сервера обновления, запрос обновления и проверка наличия обновлений на сервере.
  • Ведение циклических логов всех возникающих событий.
  • Настройка всех параметров сервера через файлы конфигурации.
  • Поддержка связи с аппаратурой терминала: хоппером, монетоприемником, кюпюроприемником.
  • Мониторинг оборудования и мониторинг переподключения оборудования на COM портах, с автоматическим обновлением конфигурации оборудования без участия оператора.
  • Прием монет в монеториемник, их учет, отправка отчета об изменении счета и запрос билета.
  • Размен купюр через купюроприемник, определение возможностей для размена и принятие решения о выдаче монет на размен.
  • Выплата выигрыша через хоппер с учетом монет, находящемся в нем.
  • Мониторинг состояния модема, запрос баланса на счету мобильного оператора, поддержка состояния интернет соединения в актовном режиме.
  • Отключение терминала на случай отсутствия денежных средств, отсутствия интернет соединения, неготовности любого оборудования.
  • Проксирование обмена купюроприемника и терминала оплаты при активном терминале оплаты.
  • Переключение между терминалом оплаты и терминалом лотереи с деакцивацией терминала лотереи при работающем терминале оплаты.

Во время старта сервис автоматически определяет наличие аппаратуры и производит первичную конфигурацию оборудования. При необходимости запускается программа терминала оплаты с пропусканием трафика терминала оплаты через виртуальный или реальный нуль-модем, который предварительно автоматически детектируется. Это позволяет прозрачно работать терминалу оплаты, не зная о существовании сервиса лотереи. Управление окном терминала (свернуть/развернуть) осуществляется средствами Win32 API.

Административный инструмент управления терминалом.

Инструмент представляет из себя программу на языке C, использующую Win32 API для интерфейса. Инструмент начинается с диалогового окна ввода пароля с цифровой виртуальной клавиатуры. Внутренние диалоги дают доступ к настройкам терминала, просмотру логов, командному модулю теримнала. В функции административного инструмента входят:

  • Авторизация пользователя терминала с проверкой прав на сервере и созданием пользовательской сессии.
  • Управление настройками терминала.
  • Просмотр текущей конфигурации оборудования терминала в режиме реального времени. Отключение и переподключение оборудования отображается в состоянии терминала.
  • Конфигурация настроек модемного соединения и автодозвон модемом с отображением состояния.
  • Управление денежными средствами терминала. Размен, снятие сресдтв, перезаправка терминала монетами.
  • Просмотр событий терминала.
  • Обновление ПО терминала с отображением процесса и перезапуском обновленного ПО.
  • Взаимодействие с сервисом терминала, взаимодействующего с сервером лотереи.