В компании, в которой я работаю, мы создаем кластер веб-приложений для совместной работы. Такие вещи, как бухгалтерский учет, биллинг, CRM и т. Д.
Мы используем технику RESTfull:
- Для базы данных мы используем CouchDB
- Различные приложения взаимодействуют друг с другом и с базой данных через http.
- Кроме того, у нас есть решение для единого входа, так что, когда вы входите в одно приложение, вы автоматически входите в другое.
- Для всех приложений мы используем Python (Pylons).
Теперь нам нужно добавить в стек обмен мгновенными сообщениями. Нам необходимо поддерживать как веб-клиенты, так и клиенты для настольных ПК. Но просто общаться в чате недостаточно. Нам необходимо достичь всего следующего (и более похожих вещей).
- Когда кому-то назначается задача, он должен получить сообщение. Я думаю, это возможно с каким-то системным демоном.
- Должна быть возможность автоматически группировать людей в группы по множеству различных свойств. Например, должны быть группы, разделенные как по географическому положению, так и по подразделению компании, по типу работы (все программисты из разных городов и разных подразделений компании должны сформировать группу), чтобы можно было отправлять массовые сообщения выбранной группе.
- Комнаты должны создаваться и уничтожаться автоматически. Например, когда несколько человек посещают один и тот же счет-фактуру, для них должна быть автоматически создана комната (и они должны автоматически присоединяться). А когда все оставят накладную, комнату надо уничтожить.
- Аутентификация и авторизация из наших приложений.
Я могу реализовать это с помощью специальных решений, таких как Hackbox http://hookbox.org/docs/intro.html но тогда у меня будет много проблем с поддержкой настольных клиентов.
У меня нет опыта работы с мгновенными сообщениями. Я читал об этом в последнее время. Я смотрел в основном на такие вещи, как ejabberd. Но это были тяжелые времена, и я не могу понять, возможно ли вообще то, что я хочу.
Поэтому я был бы счастлив, если бы люди с опытом в этой области могли помочь мне советами, статьями, рассказами о том, что возможно, и т. Д.