Кэш клиента для сервисов на платформе SOA

У нас есть платформа на основе SOA, которая состоит из множества сервисов и набора приложений, использующих эти сервисы. Каждая служба предоставляет свои функции через клиент, который становится частью хост-приложения и вызывает службу.

Чтобы уменьшить количество сетевых вызовов, я создал структуру клиентского кэша, в которой объекты кэшируются на клиентском уровне. Клиент регулярно опрашивает службу, чтобы проверить, какие объекты были изменены, и соответствующим образом аннулирует кеш. Таким образом, входящие запросы в большинстве случаев обслуживаются из кэша клиента, вызов службы выполняется только тогда, когда кэш клиента не содержит запрошенного элемента.

Моя проблема в том, что если у меня есть 10 разных приложений, которые зависят от конкретной службы/клиента, один и тот же кеш будет реплицироваться во всех приложениях, что кажется слишком избыточным, и каждое приложение будет иметь больший объем памяти.

Каковы мои варианты здесь?


person Vivek Yadav    schedule 20.12.2012    source источник
comment
В зависимости от вашей бизнес-среды доступно несколько вариантов. Каков ваш технический стек? В среде JEE будет работать Singleton SLSB и т. д.   -  person kolossus    schedule 22.12.2012
comment
@kolossus .. Наш технический стек в основном состоит из J2SE с инфраструктурой Spring и ehcache.   -  person Vivek Yadav    schedule 23.12.2012


Ответы (1)


Вы можете установить «внешний интерфейс» или прокси для службы, которая будет находиться на том же компьютере, что и приложения. Он может предоставлять тот же API удаленной службы и использовать внутри него кеш. Если вы используете что-то вроде OSGI, вы все равно можете развернуть его как независимый компонент.

person Arnon Rotem-Gal-Oz    schedule 15.04.2013