기본 원격 작업 목록
.NET Remoting은 .NET Framework를 사용하여 응용 프로그램 도메인 간의 통신을 가능하게 하는 몇 가지 방법 중 하나입니다. 분산 응용 프로그램의 특정 개발 모델을 선택하기 전에 먼저 응용 프로그램에 필요한 기능을 결정하고 사용할 수 있는 리소스를 고려해야 합니다. 자세한 내용은 .NET에서 통신 옵션 선택을 참조하십시오. 다음 작업 목록에서는 기본적인 .NET Remoting 응용 프로그램을 빌드하는 데 필요한 기본 단계에 대해 설명합니다.
호스트 작업
다음 단계는 응용 프로그램 도메인의 외부에서 사용할 서비스를 게시하는 데 필요합니다.
서비스를 디자인합니다.
호스트 응용 프로그램 도메인을 선택합니다.
활성화 모델을 선택합니다.
채널 및 포트를 선택합니다.
클라이언트에서 서비스의 메타데이터를 얻을 방법을 결정합니다.
호스트 응용 프로그램 도메인을 구현합니다. 원격 호스트는 Windows 서비스, 콘솔 응용 프로그램, Windows Forms 응용 프로그램, IIS(인터넷 정보 서비스) 프로세스 또는 ASP.NET 응용 프로그램이 될 수 있습니다. 각 응용 프로그램 유형마다 요구 사항이 다르므로, 설명서를 참조하여 사용할 유형의 응용 프로그램을 빌드하는 방법을 확인해야 합니다. 자세한 내용은 Windows 기반 응용 프로그램 또는 .NET Framework의 ASP.NET 웹 응용 프로그램을 참조하십시오. 호스트에서 활성화 모드와 응용 프로그램 이름 및 끝점 등의 기타 정보에 대해 원격 시스템을 구성합니다. 시스템을 프로그래밍 방식으로 구성하려는 경우에는 구성 파일을 사용할 필요가 없습니다. 구성 파일을 사용하는 경우에는 RemotingConfiguration.Configure를 호출하여 해당 파일을 시스템으로 로드해야 합니다.
호스트에서 적절한 채널을 만들고 ChannelServices.RegisterChannel을 호출하여 시스템에 해당 채널을 등록합니다. 구성 파일을 사용하는 경우에는 RemotingConfiguration.Configure를 호출하여 해당 파일을 시스템으로 로드해야 합니다.
게시된 클래스 없이는 호스트가 실행되지 않지만, 서비스 구현과 함께 호스트 환경을 빌드하는 방법은 서비스의 공용 인터페이스를 공유하려는 방법에 따라 달라집니다.
HttpChannel을 기본 SOAP serialization과 함께 사용하여 XML Web service를 구현하는 경우 클라이언트에서는 다음과 같은 세 가지 방법으로 정보를 얻을 수 있습니다.
Soapsuds 도구(Soapsuds.exe)를 사용하여 끝점에서 정보를 추출하는 방법
메타데이터가 포함된 어셈블리를 다운로드하는 방법
인터페이스의 소스 코드를 다운로드하는 방법
참고
소스 코드 사용은 두 가지 경우에 적용됩니다. 서버 활성화를 사용할 때는 서버에서의 실제 구현과 같은 이름의 어셈블리로 해당 코드를 컴파일하는 경우에만 구현, 추상 클래스 또는 인터페이스의 소스 코드를 사용할 수 있습니다. 이 때 형식 ID는 형식 이름과 어셈블리 이름 모두를 기반으로 합니다. 클라이언트 활성화를 사용할 때는 실제 서버 구현과 외형적으로 동일한 클래스를 빌드해야 합니다. 특히 클라이언트 클래스는 서버에서와 동일한 이름의 어셈블리에 있어야 하며 동일한 클래스 선언을 갖고 동일한 시그니처의 멤버를 가져야 합니다. 대리 클라이언트 클래스의 구현은 중요하지 않으며, 메타데이터가 일치하는 경우에는 원격 서버가 호출됩니다. Soapsuds.exe에서는 클라이언트에 대한 대리 클래스를 빌드하므로 사용자가 이 작업을 수행하지 않아도 됩니다.
TcpChannel 개체 등을 사용하여 다른 형식의 서비스를 구현하는 경우, 클라이언트에서는 다음과 같은 두 가지 방법으로 정보를 얻을 수 있습니다.
메타데이터가 포함된 어셈블리를 다운로드하는 방법
인터페이스의 소스 코드를 다운로드하는 방법
참고
소스 코드 사용은 두 가지 경우에 적용됩니다. 서버 활성화를 사용할 때는 버전 정보를 비롯하여 서버에서의 실제 구현과 같은 이름의 어셈블리로 해당 코드를 컴파일하는 경우에만 구현, 추상 클래스 또는 인터페이스의 소스 코드를 사용할 수 있습니다. 이 때 형식 ID는 형식 이름 및 어셈블리 이름 정보 모두를 기반으로 합니다. 클라이언트 활성화를 사용할 때는 실제 서버 구현과 외형적으로 동일한 클래스를 빌드해야 합니다. 특히 클라이언트 클래스는 서버에서와 동일한 이름의 어셈블리에 있어야 하며 동일한 클래스 선언을 갖고 동일한 시그니처의 멤버를 가져야 합니다. 대리 클라이언트 클래스의 구현은 중요하지 않으며, 메타데이터가 일치하는 경우에는 원격 서버가 호출됩니다.
두 경우 모두 사용자 고유의 호스트 응용 프로그램 도메인에서 서비스를 패키징하는 방법은 다른 응용 프로그램 도메인에서 해당 서비스를 소비하는 데 필요한 메타데이터를 게시하려는 방법에 따라 달라집니다.
클라이언트 작업
다음의 기본 단계는 응용 프로그램 도메인의 외부에서 사용할 서비스를 소비하는 데 필요합니다.
클라이언트를 디자인합니다.
클라이언트 응용 프로그램 도메인을 선택합니다.
활성화 모드를 결정하고 원격 형식의 클라이언트 활성화 URL 또는 잘 알려진 개체 URL 중 하나를 결정합니다.
채널 및 포트를 등록해야 하는지 여부를 고려합니다.
원격 형식의 메타데이터를 가져옵니다.
클라이언트 응용 프로그램 도메인을 구현합니다. 원격 호스트는 Windows 서비스, 콘솔 응용 프로그램, Windows Forms 응용 프로그램, IIS(인터넷 정보 서비스) 프로세스 또는 ASP.NET 응용 프로그램이 될 수 있습니다. 각 응용 프로그램 유형마다 요구 사항이 다르므로, 설명서를 참조하여 사용할 유형의 응용 프로그램을 빌드하는 방법을 확인해야 합니다. 자세한 내용은 Windows 응용 프로그램 또는 .NET Framework의 ASP.NET 웹 응용 프로그램을 참조하십시오.
활성화 모드와 응용 프로그램 이름 및 개체 URI(Uniform Resource Identifier) 등의 기타 형식 정보에 대해 클라이언트 원격 시스템을 구성합니다. 시스템을 프로그래밍 방식으로 구성하려는 경우에는 구성 파일을 사용할 필요가 없습니다. 구성 파일을 사용하는 경우에는 RemotingConfiguration.Configure를 호출하여 해당 파일을 시스템으로 로드해야 합니다.
적절한 채널을 만들고 ChannelServices.RegisterChannel을 호출하여 시스템에 해당 채널을 등록합니다. 구성 파일을 사용하는 경우에는 RemotingConfiguration.Configure를 호출하여 해당 파일을 시스템으로 로드해야 합니다.
참고 항목
개념
기타 리소스
기본 .NET Framework Remoting 응용 프로그램 빌드
.NET Framework Remoting 개요
원격 서비스 예