RAFDA 배포 정책과 애플리케이션 로직을 분리하는 미들웨어
RAFDA는 객체를 언제든지 원격으로 노출할 수 있게 하여, 배포 구조와 파라미터 전달 방식을 설계 단계나 실행 시점에 자유롭게 결정하도록 지원한다. 클래스·메서드·파라미터 단위의 전송 정책을 정의함으로써 기존 미들웨어가 강제하는 고정된 배포 정책의 제약을 없애고, 애플리케이션의 유연성과 관리성을 크게 향상시킨다.
초록
RAFDA는 객체를 언제든지 원격으로 노출할 수 있게 하여, 배포 구조와 파라미터 전달 방식을 설계 단계나 실행 시점에 자유롭게 결정하도록 지원한다. 클래스·메서드·파라미터 단위의 전송 정책을 정의함으로써 기존 미들웨어가 강제하는 고정된 배포 정책의 제약을 없애고, 애플리케이션의 유연성과 관리성을 크게 향상시킨다.
상세 요약
RAFDA가 제시하는 핵심 아이디어는 “배포 정책을 애플리케이션 로직과 완전히 분리”하는 것이다. 전통적인 미들웨어는 객체가 원격 호출이 가능한지 여부를 컴파일 타임 혹은 배포 시점에 고정한다. 이는 개발자가 객체의 구현과 비즈니스 로직에 집중하기 어렵게 만들고, 배포 토폴로지가 바뀔 때마다 코드 수정이 필요하게 만든다. RAFDA는 이러한 고정성을 깨고, 임의의 객체를 동적으로 원격 서비스로 전환할 수 있는 “노출 메커니즘”을 제공한다. 이 메커니즘은 런타임에 객체 레퍼런스를 캡슐화하고, 필요한 경우 자동으로 프록시와 스텁을 생성한다.
전송 정책은 세 가지 수준에서 정의될 수 있다. 첫째, 클래스 수준에서는 해당 클래스의 모든 메서드 호출에 대해 복사‑전송, 참조‑전송, 혹은 하이브리드 방식을 지정한다. 둘째, 메서드 수준에서는 특정 메서드 호출에만 다른 전송 방식을 적용해, 예를 들어 대용량 데이터는 복사하고, 상태 객체는 참조로 전달한다. 셋째, 파라미터 수준에서는 개별 인자마다 전송 방식을 세밀히 조정할 수 있어, 복합 객체 내부의 일부 필드만 복사하고 나머지는 공유한다는 식의 정교한 제어가 가능하다. 이러한 다중 레벨 정책은 정책 객체나 어노테이션 형태로 선언되며, 런타임에 정책 엔진이 해석해 최적의 직렬화·전송 전략을 선택한다.
RAFDA는 또한 “배포 경계”를 동적으로 재구성할 수 있게 한다. 개발자는 초기 설계 단계에서 객체를 로컬로 두고 시작한 뒤, 부하가 증가하거나 서비스 요구가 변하면 해당 객체를 원격 노드로 이동시키거나 복제한다. 이 과정에서 기존 클라이언트는 투명하게 프록시를 통해 새로운 위치에 접근하므로, 코드 변경이 최소화된다.
성능 측면에서는 정책 선택에 따라 직렬화 비용과 네트워크 트래픽을 최소화하도록 설계되었으며, 정책 캐시와 지연 직렬화 기법을 활용해 오버헤드를 낮춘다. 또한, RAFDA는 기존 RMI, CORBA, Web Services와 같은 표준 프로토콜 위에 구현될 수 있어, 레거시 시스템과의 호환성을 유지한다.
보안과 관리 측면에서도 정책 기반 접근 제어가 가능하다. 전송 정책에 보안 레벨을 부여해 민감 데이터는 암호화된 복사만 허용하고, 참조 전송은 신뢰된 노드에만 제한한다. 모니터링 툴은 정책 엔진에 연결돼 현재 적용 중인 전송 정책과 객체 위치 정보를 실시간으로 수집한다.
요약하면 RAFDA는 “배포와 로직을 독립적으로 설계·운영”할 수 있는 인프라를 제공함으로써, 애플리케이션의 가변성, 확장성, 유지보수성을 크게 향상시킨다.
📜 논문 원문 (영문)
🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...