1. 7 .NET 리모팅

.NET 리모팅 기술은 서버 측에 있는 개체를 클라이언트 측에서 마치 자신에게 있는 개체를 사용하는 것처럼 사용할 수 있게 서비스를 하는 기술입니다.

.NET 리모팅 서비스를 위해서는 서비스를 제공하는 서버와 서비스를 제공받는 클라이언트가 필요하며 서버 측에서 클라이언트에 제공하는 개체를 정의한 클래스 라이브러리가 필요합니다.

서버 측에서 클라이언트에 제공하는 개체는 MashalByReference에서 파생한 개체로 원격 개체라고 말합니다.

서버 측에서는 채널을 등록하여 원격 개체를 사용할 수 있게 등록합니다. 클라이언트 측에서는 서버 측 채널에 접근하여 원격 개체를 참조하여 사용하는데 클라이언트 측에서 원격 개체를 참조하여 사용할 수 있는 개체를 Proxy 개체라 부릅니다.

클라이언트 측에서 Proxy 개체를 통해 메서드를 호출하면 포멧터를 통해 메서드 이름과 인자 등을 Masharing하여 서버 측에 전달하면 서버 측의 Stub에서 이를 수신하여 실제 개체인 원격 개체를 제어합니다. 그리고 결과를 같은 방법으로 서버 측의 Stub에서 클라이언트 측의 Proxy 개체에게 전송하고 Proxy개체는 수신한 정보로 결과를 반환하는 원리입니다.

.NET 리모팅 구조
[그림 1.26] .NET 리모팅 구조

 간단하게 .NET 리모팅 서비스를 구축하고 이를 사용하는 클라이언트를 구현해 봅시다.

여기에서 실습할 내용은 0~9 사이의 숫자를 입력받으면 이를 “one”~”nine”으로 변환하는 서비스를 제공하는 것으로 할게요.