Телеграм бот для десктопной учетной программы

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Телеграм бот для десктопной учетной программы

Сообщение Ichthyander » 20.11.2020 12:36:52

Захотел поделиться одним кейсом недавним. Возможно пригодится как идея кому-нибудь.

Проблема:
Старое легаси дельфи приложение, которое заказчик ни в коем случае не хочет трогать или переводить на более свежую версию дельфи. Разработка и внедрение новой системы должно происхолить одновременно с работой старой архитектуры, не влияя на нее, а дополняя.
СУБД: firebird+UDF - работает внутри локальной сети. "Сервер" на десктопном компьютере. IP серый, но выход в интернет есть.
Задача у клиента: обеспечить некоторые функции по работе с приложением через удаленные клиенты. Максимально просто для пользователей и с минимальной разработкой. Встраивать сервис в существующее приложение заказчик не хочет тоже.
Ему понравилась идея реализации работы с приложением через телеграм бота. И хотя идея использования телеграм бота не моя, а заказчика, она меня заинтересовал как интересное решение по плавному переходу от двухзвенной архитектуры СУБД + тонкие клиенты внутри сети к [практически] трехзвенной архитектуре с минимальными усилиями. Возможно было бы конечно для заказчика проще возможно встроить бота прямо в приложение, но он именно хочет отдельно и независимо. Ок. Мне так даже лучше и буду это я делать на Lazarus IDE.


Что я сделал
. Небольшое приложение - сервис, которое коннектится к Firebird СУБД, создает и работает SQLite базу для хранения некоторых сессионных и временных данных и некоторых персональных настроек телеграм пользователей. Запускается это все на том же компьютере с СУБД, где уже работает эта учетная программа (которую я кстати в глаза даже не видел). Разработанный сервис обеспечивает работу телеграм бота с удаленными пользователями через лонгполлинг.

Отмечу минимальные усилия как со стороны программиста, так и со стороны администратора учетной программы (со стороны администратора вообще никаких на самом деле). Также не нужно создавать клиенты для мобильных устройств с каким-то своим API или новый веб-сервис (для которого в таком случае потребуется и обеспечить веб-сервер на компьютере с СУБД). Хотя в данном случае я оставил в своем сервисы возможность для масштабирования и создании на его базы веб-сервиса или API для каких-нибудь будущих удаленных клиентских программ.

Используемые библиотеки помимо нативных: fp-telegram (обертка для построения телеграм ботов), dOPF (несложное ОРМ для работы Firebird и SQLite3 в сервисе). Lazarus IDE 2.0

Дисклеймер: возможно где-то был неточен в терминологии и в русском синтаксисе
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 668
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru