Проект начал разрабатываться по следующим причинам:
В какой-то момент возникла необходимость в клиент-серверном
приложении под Линукс. Задачи проекта - сугубо бухгалтерские.
Имеющиеся решения типа - питон/гтк, веб-интерфейс, с/с++ были
опробованы, однако проблема осталась - слишком много усилий
необходимо затрачивать на разработку интерфейса и описывание
вещей, не относящихся напрямую к задаче.
Вместе с тем решение должно быть легко масштабируемым и по
возможности мало связанным с логикой приложения.
Архитектуру желательно было бы сделать клиент-серверной,
с выделенным сервером приложений.
Клиентская часть должна работать как под Windows (tm),
так и под Линукс.
Что получилось:
Получился сервер приложений, написанный на python. Он взаимодействует с клиентом,
написанным на с++ с использованием кросс-платформенной библиотеки qt.
Взаимодействие клиента и сервера организовано по принципу броузера -
в специализированном формате клиент и сервер обмениваются xml-сообщениями;
в результате такого обмена сервер получает или изменяет данные интерфейса клиента.
Клиент в соответствии с сообщениями со стороны сервера изменяет интерфейс,
генерирует новые окна и т.д. Вся бизнес-логика выполняется только на стороне
сервера. Дополнительно были разработаны некоторые специализированные библиотеки
- формирование интерфейса, отчетность, прикладные функции и т.д. Дополнительно
было выяснено, что работа собственно сервера возможна также под Windows при
использовании ActivePython.