RSend Project - Free Windows Instant Messenger for LAN and WAN

RSend - бесплатное программное обеспечение для обмена мгновенными сообщения в сетях Microsoft Windows

RSend эффективно работает с большим количеством компьютеров в распределенных сетях и с медленными каналами связи. RSend не требует инсталляции и сопровождения, интегрирован с Active Directory, имеет простой и функциональный интерфейс, развертывание осуществляется с использованием групповых политик.

Основные характеристики RSend

  • MS Windows XP/V/7/8/10/2003-2012;
  • Обмен сообщениями с подсетями;
  • Минимальное потребление трафика;
  • Мгновенная доставка сообщений большим группам получателей;
  • Количество пользователей 1000+;
  • Использование учетных записей пользователей и/или компьютеров в качестве получателей сообщений;
  • Возможность формирования списков получателей по различным критериям с помощью встроенного фильтра;
  • Использование общих доменных (пользователи и/или компьютеры, вложенные, теневые) групп для формирования списков получателей;
  • Возможность создания личных групп;
  • Max размер сообщений - 1000 знаков;
  • Удобный интерфейс пользователя;
  • Встроенный поиск, "горячие" клавиши, онлайн справка, протоколирование;
  • Утилита командной строки RSendAlert;

  • Видео (HD) с демонстрацией RSend в реальной производственной среде (!) Вы можете посмотреть по ссылке youtube.com/watch?v=m8pwtwxtl3k

    Скриншоты







    Почему появился проект RSend


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

    В предыдущие годы в нашей компании для обмена сообщениями использовались средства ОС Novell Netware, а после перехода на доменную структуру Microsoft Windows - утилита Net Send. По мере увеличения компании (в настоящее время это несколько сотен компьютеров, половина из которых находится в региональных подразделениях со своими подсетями и соединены VPN каналами с главным офисом) дальнейшее использование Net Send стало невозможным ввиду ограничений при работе с подсетями через маршрутизаторы (UDP протокол). Ситуация усугубилась после появления операционных систем Windows Vista и выше, в которых утилита Net Send вообще была исключена по вопросам безопасности. Были попытки использования других продуктов для передачи мгновенных сообщений. К сожалению, по ряду причин они также не совсем соответствовали нашим потребностям. В первую очередь - это возможность работы с большим количеством компьютеров в других подсетях.

    При более детальном изучении данного вопроса пришло понимание, что возможным решением является использование продукта с “клиент-сервер” архитектурой. В результате взор был обращен на различные программы для чата. С одной стороны, они позволяли решить вопрос обмена сообщений с подсетями, с другой стороны вставали вопросы о дополнительных трудозатратах на конфигурирование пользователей, увеличении лишнего трафика на VPN каналах. Чат предполагает активное участие пользователя в переписке. Реализуется это, как правило, частым обращением клиента к серверу за проверкой поступивших сообщений и, как следствие, генерируется трафик между сервером и клиентом, как во время общения, так и в режиме ожидания. Можно снижать объем ненужного трафика путем увеличения таймаута между обращениями клиента к серверу, но это в свою очередь приведет к задержкам при доставке сообщений.

    Обмен мгновенными сообщениями является вспомогательным программным обеспечением в производственной среде и отдавать ему трафик на VPN каналах было бы неправильным. Поэтому было принято решение реализовать новый продукт - мессенджер, отвечающий новым реалиям работы компании. В задании на проектирование были определены следующие основные характеристики (смотрите слева).

    Для реализации “клиент-сервер” архитектуры проекта была выбрана технология .NET Remoting, которая уже давно и успешно используется. К тому же на всех компьютерах с операционной системой Windows XP уже имелась среда .NET Framework 3.5, которая была развернута ранее для использования технологии Windows Remoting. В качестве языка разработки использовался С#.

    В большинстве случаев .NET Remoting используется по классической схеме: клиент инициирует подключение к серверу по TCP (или HTTP) каналу, осуществляет регистрацию и затем периодически вызывает на нем функции для передачи/получения необходимых данных. Этот подход решает большинство требований, определенных в задании на проектирование, за исключением двух: быстрой доставки сообщений и минимизации трафика.

    Клиент --------------- > Сервер
    

    Для реализации двух этих требований классическая схема работы была изменена следующим образом: клиент инициирует подключение к серверу по TCP каналу, осуществляет регистрацию и переходит в режим ожидания сообщений (listening). При получении сервером сообщения от клиента, сервер в соответствии со списком получателей инициирует обратное подключение к этим клиентам и вызывает соответствующие удаленные функции на клиенте (сервер и клиент меняются местами).

    Клиент --------------- > Сервер
    Клиент < --------------  Сервер
    

    В результате отпала необходимость частого обращения клиента к серверу для проверки наличия входящих сообщений и, как следствие, снижение трафика в режиме ожидания. Клиент обращается к серверу только для подтверждения своего присутствия в сети. Частота обращения клиента регулируется с помощью параметра в конфигурационном файле. Например, при установленном таймауте в 90 секунд дневной трафик между клиентом и сервером составляет менее 150 Kb. Чтобы снизить время доставки сообщений их передача сервером была реализована в асинхронном многопоточном режиме на конкурентной основе. Первые же тестовые испытания показали достаточно высокую скорость передачи. 5 сотрудников одновременно отправляли 400 пользователям сообщения, которые были доставлены в среднем за 2-3 секунды (для размещения серверной части RSend использовался файловый сервер на базе HP G5 с Windows 2003 R2).
    * В 2015 году в компании было уже более 900 сотрудников, однако быстродействие RSend осталось на прежнем уровне.

    Разработанный алгоритм передачи сообщений полностью отвечал поставленной задаче. Оставалось реализовать пользовательский интерфейс и придумать название программы. После недолгих раздумий программа получила название RSend (Remoting Send) в честь технологии .NET Remoting.

    В процессе разработки пользовательского интерфейса родилось несколько новых идей, которые впоследствии были реализованы: личные группы, встроенный фильтр, быстрый ответ отправителю, горячие клавиши, онлайн помощь, многоязыковой интерфейс и др. Развертывание RSend в производственной среде было осуществлено с использованием групповой политики, и с сентября 2012 года RSend успешно эксплуатируется.

    Более подробную информацию о проекте RSend можно найти в Руководстве администратора и Руководстве пользователя.


    С уважением, Игорь Грунт
    MCSD App Builder
    MCSA Windows Server 2012

    P.S. Хочу поблагодарить Федоренко Владимира за идею разработки RSend и Васильца Сергея за полезные советы при реализации пользовательского интерфейса.