.NET Framework Remoting 개요
응용 프로그램 구성 요소가 모두 한 컴퓨터에 있든지 전세계에 퍼져 있든지 간에 .NET Remoting을 통해 널리 분산된 응용 프로그램을 쉽게 빌드할 수 있습니다. 같은 컴퓨터나 네트워크의 다른 컴퓨터에 있는 다른 프로세스의 개체를 사용하는 클라이언트 응용 프로그램을 빌드할 수 있습니다. .NET Remoting을 사용하여 같은 프로세스에 있는 다른 응용 프로그램 도메인과 통신할 수도 있습니다. 응용 프로그램 도메인 프로그래밍에 대한 자세한 내용은 응용 프로그램 도메인으로 프로그래밍을 참조하십시오.
.NET Remoting은 특정 클라이언트 또는 서버 응용 프로그램 도메인에서와 특정 통신 메커니즘에서 원격화할 수 있는 개체를 분리하는 추상적인 프로세스 간 통신 방법을 제공합니다. 따라서 .NET Remoting은 융통성 있고 쉽게 사용자 지정할 수 있습니다. 사용자는 클라이언트나 서버를 다시 컴파일하지 않고도 특정 통신 프로토콜을 다른 통신 프로토콜로 대체하거나 특정 serialization 형식을 다른 serialization 형식으로 대체할 수 있습니다. 또한 원격 시스템에서는 특정 응용 프로그램 모델을 가정하지 않습니다. 웹 응용 프로그램, 콘솔 응용 프로그램, Windows 서비스 등 사용하고자 하는 거의 모든 응용 프로그램에서 통신할 수 있습니다. 또한 원격 서버는 모든 유형의 응용 프로그램 도메인일 수 있습니다. 모든 응용 프로그램은 원격 개체를 호스팅할 수 있으므로 응용 프로그램이 속한 컴퓨터나 네트워크의 모든 클라이언트에 서비스를 제공합니다.
참고
보안을 위해 보안 채널을 통해 원격 끝점을 노출하는 것이 좋습니다. 보안이 되지 않은 원격 끝점을 인터넷에 노출해서는 안 됩니다.
.NET Remoting을 사용하여 두 구성 요소가 응용 프로그램 도메인 경계를 넘어 직접 통신하는 응용 프로그램을 빌드하려면 다음을 빌드하기만 하면 됩니다.
원격화할 수 있는 개체
이 개체에 대한 요청을 수신하는 호스트 응용 프로그램 도메인
이 개체에 대한 요청을 수행하는 클라이언트 응용 프로그램 도메인
복잡한 다중 클라이언트 또는 다중 서버 응용 프로그램에서도 .NET Remoting은 이런 방식으로 사용될 수 있습니다. 호스트 및 클라이언트 응용 프로그램도 원격 인프라로 구성되어야 하므로 사용자는 원격 인프라로 인해 생기는 수명 및 활성화 문제에 대해 이해하고 있어야 합니다.
단원 내용
- 기본 .NET Framework Remoting 응용 프로그램 빌드
원격화할 수 있는 형식, 수신기 응용 프로그램 및 구성 파일, 클라이언트 응용 프로그램 및 구성 파일을 빌드하여 기본 .NET Remoting 시나리오를 보여 줍니다.
- .NET Framework Remoting 아키텍처
.NET Remoting 시스템의 아키텍처에 대해 설명합니다.
- 개체 원격화
원격 경계와 이 경계를 넘어 활성화될 수 있는 형식의 구현 방법에 대해 설명합니다.
- 개체 활성화 및 수명
여러 가지 유형의 원격 활성화와 원격 개체의 수명 관리 방법에 대해 설명합니다.
- 채널
시스템 정의 채널에 대해 설명하고 사용자의 시나리오에 가장 적합한 채널을 결정하는 데 필요한 정보를 제공합니다.
- 원격 응용 프로그램의 구성
.NET Remoting 인프라의 기본 구성 요구 사항, 이러한 요구 사항을 만족시키는 데 사용될 수 있는 구성 유형, 그리고 다양한 서버 및 클라이언트 응용 프로그램 도메인에 필요한 사항에 대해 설명합니다.
- Remoting의 버전 정보
원격 시나리오의 버전 관리 방식에 대해 설명합니다.
- 원격 작업의 보안
원격 서비스를 사용하기 위한 보안 요구 사항과 보안 원격 응용 프로그램을 빌드하는 기본 방법에 대해 설명합니다.
- 비동기 원격 서비스
원격 시나리오에서의 비동기 프로그래밍 방법에 대해 설명합니다.
- 방법: 원격 개체의 메서드를 비동기로 호출
원격 개체의 메서드에 대한 비동기 호출을 만드는 방법을 보여 줍니다.
- 원격 개체의 매서드를 비동기식으로 호출할 때 발생하는 문제
원격 개체의 메서드에 대한 비동기 호출을 만들 때 발생할 수 있는 문제를 설명합니다.
- CallContext 및 직접 원격 서비스
CallContext를 사용한 원격 메서드 호출로 추가 데이터를 전달하는 방법과 원격 사용을 위해 개체를 동적으로 게시하는 방법에 대해 설명합니다.
참조
- 원격 설정 스키마
구성 파일을 사용하여 .NET Remoting을 구성하는 데 사용할 수 있는 요소에 대한 참고 정보를 제공합니다.
- System.Runtime.Remoting
.NET Remoting을 수행하는 데 사용할 수 있는 형식에 대한 참고 정보를 제공합니다.
- System.Runtime.Remoting.Activation
원격 개체를 서버와 클라이언트에서 활성화할 수 있게 하는 클래스와 개체를 포함합니다.
- System.Runtime.Remoting.Channels
원격 개체의 메서드를 클라이언트에서 호출할 때의 전송 미디어로 사용되는 채널 및 채널 싱크를 지원 및 처리하는 클래스를 포함합니다.
- System.Runtime.Remoting.Channels.Http
HTTP 프로토콜을 사용하여 원격 위치 간에 메시지와 개체를 전송하는 채널의 클래스를 포함합니다.
- System.Runtime.Remoting.Channels.Ipc
Windows 운영 체제의 IPC(프로세스 간 통신)를 사용하는 원격 통신 채널을 정의하는 클래스를 포함합니다.
- System.Runtime.Remoting.Channels.Tcp
TCP 프로토콜을 사용하여 원격 위치 간에 메시지와 개체를 전송하는 채널을 정의하는 클래스를 포함합니다.
- System.Runtime.Remoting.Contexts
모든 원격 개체가 상주하는 컨텍스트를 정의하는 개체를 포함합니다.
- System.Runtime.Remoting.Lifetime
원격 개체의 수명을 관리하는 클래스를 포함합니다.
- System.Runtime.Remoting.Messaging
메시지를 만들고 전송하는 데 사용되는 클래스를 포함합니다.
- System.Runtime.Remoting.Metadata
개체 및 필드에 대한 SOAP의 생성 및 처리를 사용자 지정하는 데 사용할 수 있는 클래스를 포함합니다.
- System.Runtime.Remoting.Metadata.W3cXsd2001
2001년에 W3C(World Wide Web 컨소시엄)에서 정의한 XSD(XML 스키마 정의)를 포함합니다.
- System.Runtime.Remoting.MetadataServices
원격 인프라를 위해 Soapsuds 도구(Soapsuds.exe) 명령줄 도구 및 사용자 코드가 XML 스키마 간에 메타데이터를 변환하는 데 사용하는 클래스를 포함합니다.
- System.Runtime.Remoting.Proxies
프록시의 기능을 제어하고 제공하는 클래스를 포함합니다.
- System.Runtime.Remoting.Services
.NET Framework에 기능을 제공하는 서비스 클래스를 포함합니다.
관련 단원
- 고급 원격 서비스
.NET Remoting 아키텍처를 사용자 지정하는 데 사용할 수 있는 확장 및 차단에 대한 기본 사항을 설명합니다.
- 원격 서비스 예
원격 인프라의 다양한 요소를 사용하는 완전한 샘플 응용 프로그램 몇 가지를 제공합니다.