2012-01-24 4 views
1

Glassfish 서버에 배포 된 응용 프로그램이 있습니다.이 응용 프로그램은 (표준 JNDI 및 IIOP를 통한 RMI를 사용하여) 원격으로 호출됩니다. 여러 네트워크 호출을 피하고 응용 프로그램 동작을 최적화하기 위해 일부 캐싱 기능을 클라이언트에 설치하고 싶습니다. 그래서EJB 원격 인터페이스에서 캐시 사용

, 나는 optimaly에 대한 캐싱 기능을 가질 수있는 방법을

  • 나는 원격 인터페이스 호출이 모든 캐싱
투명하게 처리되어
  • 인터페이스에 주석을 사용하여 캐시 할 수있는 선언

    선택적으로, 필자는 클라이언트 메소드가 Weld를 사용하여 원격 EJB 인스턴스를 사용한다는 것을 알아야합니다.이 메소드는 선택적으로 EJB 메소드 호출을 가로 채기 위해 사용할 수 있습니다.

  • +0

    필자는 1998 년에이 문제에 대해 정확히 작업했습니다 (주석, 인터셉터 또는 CDI 제외). 나는 우리가 좋은 해결책을 찾지 못했다고 생각합니다! –

    +0

    글쎄, [javax.cache] (http://gregluck.com/blog/archives/2011/10/javax-cache-the-new-java-caching-standard/)는 좋은 출발점입니다. (블로그 항목은 심지어 Weld 애플리케이션에서 캐시를 소개하는 방법을 언급합니다). – Riduidel

    +0

    @Riduidel javax.cache는 Java EE 7에서 소개 될 것입니다. – yatskevich

    답변

    0

    그것은 대부분의 오픈 소스 캐시 "공급 업체"오늘 JCache JSR과 함께 약간의 준 표준 캐싱 주석을 제공 시작처럼 보인다 :

    그게 전부입니다. 현재 스택에 따르면, ehcache 구현이 "실험적"으로 표시되고 사양이 진화함에 따라 최상의 선택 (현재로서는)이 Infinispan이 될 수 있습니다.

    1

    옵션 중 하나는 클라이언트에서 ServiceLocator 패턴을 사용하여 캐싱 동작을 캡슐화하는 것입니다. JNDI 조회 후 수신하는 캐시 스텁 클래스. 그리고 나중에 그것을 다시 사용할 수 있습니다. 추가 JNDI 호출을 피할 수 있습니다.

    관련 문제