J-GroupDesk – модуль регистрации пользователей и управления группами

Модуль регистрации пользователей и управления группами разработанный с использованием языка Golang.

Задача

В рамках работы над HelpDesk-системой были поставлены задачи по разработке ПО для управления регистрацией пользователей и их группами. Необходимо было обеспечить возможность автоматической регистрации, создать сиcтему приглашений в коммерческие группы, а также систему рассылки e-mail нотификаций и внутригрупповых рассылок.

  • Разработан модуль для обработки и маршрутизации POST запросов в зависимости от типа события.
  • Взаимодействие с основной частью наших сервисов реализовано с помощью REST.
  • Создана организованная рассылка необходимых e-mail сообщений.

Подход

Команда разработчиков СКЭНД приняла решение использовать язык программирования Go. Go или Golang — эффективное и современное средство сетевого программирования. Поэтому Golang и соответствующие frameworks и были выбраны для реализации необходимой функциональности проектируемого модуля.

Используя стандартные средства (пакеты http, net, websocket, html и xml) в максимально приемлимые сроки было создано распределенное приложение (Distributed Applications) со сложной внутренней структурой. Таким образом мы получили меньшее количество легко читаемого кода.

Поддержка конкурентности (concurrent programming) в Golang и использование балансировщика нагрузки (HTTP load balancer) позволило обрабатывать и отправлять достаточное количество запросов, распределив их в упорядоченном виде по доступным ресурсам. При наличии минимального количества системных ресурсов, Golang позволяет использовать “green threads” поверх основных системных путей. Благодаря использованию динамического стека (dynamic stack) и конкурентного сборщика мусора (concurrent Gargabe Collector) наше приложение обходится меньшим количетвом ресурсов.

Ключевые решения

Модуль должен реализовывать следующие основные возможности:

  • Автоматическое создание учётной записи, отсылка соответствующего e-mail, а также приглашение о вступлении в уже существующие группы.
  • Организация запросов на вхождение в группу пользователей либо возможность приглашения в группу модератором.
  • Обеспечение возможности отправки сообщений всем членам группы.
  • Обеспечение надежной и стабильной работы с достаточно большим количеством пользователей и запросов, отправляемых одновременно.
  • Поддержка REST и\или SOAP технологий взаимодействия компонентов.
  • Обеспечение достаточной скорости и минимального потребления памяти при обработке большого количества запросов.
  • Интеграция с Atlassian Jira Service Desk.

Результат

Модуль регистрации пользователей и управления группами разработанный с использованием языка Golang.

Модуль J-GroupDesk разрабатывался непосредственно для системы HelpDesk и является ее частью, но в дальнейшем на базе нашего модуля могут создаваться расширения для интеграции с любыми информационными системами и сервисами, имеющими REST API (такими как Atlassian Jira Service Desk, Atlassian Confluence, Slack).

Нуждаетесь в разработке похожего проекта?

Свяжитесь с нами

Мы любим новые проекты! Напишите нам, и мы ответим вам в ближайшее время.

Спасибо, что написали нам! Ваше сообщение было успешно отправлено. Мы обязательно ответим на него в ближайшее время. Пожалуйста, проверьте, получили ли Вы от нас письмо-подтверждение на указанную Вами почту.