원격 요청 디스패처
RRD(Remote Request Dispatcher)는 애플리케이션 프레임워크, 서블릿 및 JavaServer Pages에 현재 실행 중인 자원 JVM(Java™ Virtual Machine) 외부에서 컨텐츠를 클라이언트에 전송된 응답의 일부로 포함하기 위한 웹 컨테이너의 플러그 가능 확장입니다.
원격 요청 디스패처는 기타 컴포넌트 및 스택 제품이 생성자 및 핸들러와 같은 사용자 정의 확장을 RRD 확장에 추가하는 확장 가능한 인프라입니다. 원격 요청 디스패처 확장은 표준 Java Platform, Enterprise Edition(Java EE) javax.servlet.RequestDispatcher 구현에서 웹 서비스를 사용하여 원격 자원 찾기를 인식함으로써 WebSphere® Application Server, Network Deployment (ND) 코어 그룹의 시스템 간에 통신할 수 있도록 개선되었습니다. 원격 요청 디스패처 확장은 원격 서버에서 발생하는 오류를 원래 서버에 다시 보고합니다. 또한 서버 간의 WS-Security 보안 컨텍스트 전파 및 보안 통신에 SSL을 사용할 수도 있습니다. 자세한 정보는 "rrdSecurity.props 파일" 주제를 참조하십시오.
RRD 포틀릿 지원은 원격 요청 디스패처 개념을 포틀릿에 전달하고 현재 실행 중인 JVM 자원의 외부에서 포틀릿 호출을 위해 포틀릿 컨테이너를 개선합니다.
RRD 확장을 사용하여 원격 서버를 셀 내에 포함시킴으로써 여러 시스템 및 JVM에서 요청 로드를 공유할 수 있습니다. RRD 자원이 메모리 또는 프로세서 집약형인 경우 호출 자원이 동일한 JVM 내에서 실행하는 표준 RequestDispatcher만큼 영향을 많이 받지 않습니다. RRD는 자원을 다른 JVM으로 분리시켜서 이 문제점을 해결합니다.
기능
- 원격 서버의 요청은 포함 요청으로 간주됩니다. 필터 및 요청 리스너는 디스패치 유형이 INCLUDE인 경우처럼 시작됩니다.
- 직렬화 가능 요청 속성 및 조회 매개변수는 원격 서버로 전송됩니다.
- 보안 컨텍스트는 LTPA 토큰을 통해 원격 서버로 전송됩니다.
- 서블릿 매개변수 및 OutputStream
요청 매개변수는 원격 서버로 전달됩니다.
- 원격으로 포함된 자원이 설정하는 응답 헤더는 로컬 서버의 포함과 유사하게 무시됩니다. Set-Cookie와 같은 내부 헤더는 여전히 설정 가능하며 다시 전파할 수 있습니다.
- 모든 원래 요청 헤더는 원격 서버로 전달됩니다.
- WebSphere Application Server용 플러그인과 유사합니다.
- 메소드 호출은 로컬 서버에 있는 것처럼 상태를 리턴합니다. 예를 들어, getServer는 로컬 서버 이름을 리턴하거나 isSecure는 ‘로컬’ 서버에 대한 요청이 안전하지 여부를 리턴합니다.
- 쿠키 및 세션
- 쿠키는 원격 서버에 헤더의 일부로 전달됩니다.
- 로컬 및 원격 서버의 세션은 동일한 서버의 포함과 유사한 제공된 클라이언트에 대해 동일한 쿠키 또는 세션 ID를 사용합니다. 세션이 원격 서버에 존재하는 경우 세션 쿠키는 원격 서버에 대한 유사성을 유지할 두 서버 모두에 대한 정보를 포함합니다.
- 예외
- 원격 서버에 예외가 있으면, 서버는 애플리케이션에서 작성한 원래 예외를 랩핑하는 RRD 특정 웹 서비스 결함을 리턴합니다.
- 두 서버 모두에 예외 클래스가 존재하는 경우 로컬 서버에서 원래 예외를 다시 작성하려 시도하십시오. 원래 예외를 다시 작성할 수 없으면, 대신 RRD 특정 ServletException이 구성되어 사용됩니다.
- 로컬 서버는 오류를 핸들링하기 위해 예외를 다시 작성합니다.
- 동적 캐시
동적 캐시가 사용 가능하면 로컬 및 원격 시스템에서 캐싱이 수행됩니다.
- 보안
SSL을 사용하여 Application Server 사이의 RRD 메시지를 암호화할 수 있습니다. SSL은 기본적으로 사용 가능하지만, 원격 시스템에서 보안 상태가 사용 가능하도록 RRD를 통해 보안 컨텍스트 요구사항도 전달해야 합니다. RRD는 WS-Security를 사용하여 이 정보를 전달하지만, 이 보안 컨텍스트 전파는 기본적으로 사용 불가능합니다. 추가 정보는 "rrdSecurity.props 파일" 주제를 참조하십시오.