2013-01-10 2 views

답변

2

저는 이것을 2001 년도 저서에서 Remote Session 패턴으로지었습니다.

아이디어는 login() 메서드를 사용하여 레지스트리에 바인딩 된 단일 RMI 개체를 갖는 것입니다. 이 메서드는 성공적으로 수행되면 세션에 필요한 API가 포함 된 모든 호출에 대해 새로운 RemoteSession 개체를 반환합니다. RemoteSession은 물론 다른 원격 인터페이스입니다. 또한 개체를 unexports logout() 메서드가 포함되어 있으며 또한 세션을 종료하는 또 다른 방법으로 Unreferenced, 구현합니다.

각 RemoteSession 인스턴스는 클라이언트 상태를 유지할 수 있으므로 세션 개체이므로 RemoteSession 개체를 얻는 유일한 방법은 login()이며 첫 번째 근사값은 안전합니다.

+0

이 책의 이름은 무엇입니까? –

+0

이제이 객체 GC'd가 참조 할 구현 된 원격 서버 객체가 있습니다. 이 사용자가 로그 아웃 할 때이 개체를 GC로 보내서 해당 사용자와의 세션이 종료되도록하고 싶습니다. 동일한 세션에서 더 많은 사용자가있을 경우 (두 명의 사용자가 서로 채팅하는 경우) 어떻게 될까요? 우리가 세션을 추적합니까? –

+0

1. java.rmi : Java에서의 원격 메소드 호출 안내서. 2. 할당 된 클라이언트가 스텁을 해제하고 JVM을 종료 할 때 GCd입니다. 동일한 세션에서 둘째 사용자를 설명하는 방식으로 둘 이상의 사용자를 가질 수는 없습니다. logout() 메소드는 클라이언트 수가 0이 될 때를 추적 한 다음 자체를 unexport합니다. unreferenced() 메서드는 동일하게 작동합니다. – EJP

관련 문제