Необходимо написать мидллэйер между сервером базы данных и клиентами многопользовательского приложения. Сейчас это выглядит примерно так есть куча клиентских приложений, есть удаленный сервер Базы данных. Проблема в том, что клиенты работают с большими объемами данных и поэтому трафик между клиентами БД очень большой. Тратится огромное количество времени на запросы к БД. Проблему попытались решить тем, что все необходимые для работы данные клиентские приложения загружают на старте приложения в некоторую свою объектную модель. Сейчас такая загрузка доходит до 10-20 минут. Как вариант предлагается вынести данную объектную модель на серверную часть, а все клиентские приложения будут играть роль терминалов, которые не напрямую обращаются в базу а работают с данной моделью через некоторый мидллэйер. Но поскольку данный миддлэйер посути является подменой сервера БД, то на него накладываются и соответствующие требования: транзакционность, асинхронность, целостность данных. Подскажите что можно в данном случае использовать из готовых решений?