Использовать кеш в удаленном интерфейсе EJB - PullRequest
1 голос
/ 24 января 2012

У меня есть приложение, которое развернуто на сервере Glassfish, для которого методы вызываются удаленно (с использованием стандартных функций JNDI и RMI поверх IIOP).Я хотел бы установить некоторые функции кэширования на клиенте, чтобы избежать как нескольких сетевых вызовов, так и оптимизировать поведение приложения.

Итак, как я могу иметь функцию кэширования, для которой, оптимально,

  • Я объявляю, что вызовы удаленного интерфейса могут быть кэшированы с помощью аннотации на интерфейсе
  • все кэширование выполняется прозрачно

Опционально, я должен упомянуть, что мое клиентское приложение использует удаленные экземпляры EJB, используяСварка, которая может использоваться для перехвата вызовов метода EJB.

Ответы [ 2 ]

1 голос
/ 24 января 2012

Один из вариантов - использовать шаблон ServiceLocator на клиенте, который инкапсулирует поведение кэширования. Класс заглушки кэша, который вы получаете после поиска JNDI. И позже вы можете использовать его повторно. Это позволяет избежать дополнительных вызовов JNDI.

0 голосов
/ 25 января 2012

Похоже, что, начиная с JCache JSR , большинство «поставщиков» кеша с открытым исходным кодом сегодня предоставляют некоторые квази-стандартизированные аннотации кеширования:

И это все.Согласно моему текущему стеку, лучшим выбором (на данный момент) может быть Infinispan, поскольку реализация ehcache помечена как «экспериментальная» и развивается вместе со спецификацией.

...