아디봉의.net

[C#] .NET remoting 서비스 정리 본문

C#

[C#] .NET remoting 서비스 정리

아디봉 2012. 5. 30. 10:18

.net remotiong 이란?

클라이언트에서 원격서버(Remote Server)에 존재하는 원격 객체(Remote Object)의 함수를 호출해서 그결과를 얻어내는 기술

 

- 리모팅은 서비스 개념을 포함한다.

리모팅 자체의 의미는 서비스 개념을 내포하고 있다. 원격 서버에는 원격 객체가 존재하고, 이객체를 클라이언트가 사용하겠다는 의미를 내포하고 있다. 결과적으로 보면 클라이언트가 원격 서버로부터 서비스를 받는 형식이된다.  이것의 장점은 보안상중요해 공개못하는 컴포넌트나 데이터베이스 등과같은 자원을 이용할 수 있다. 클라이언트에서 원격객체의 함수를 호출했을때 함수 자체는 원격서버에서 호출되기에 원격서버의 cpu를 사용함 ,, 만약매개변수가 필요하다면 네트워크로 매개변수를 넘겨주게되며, 이것을 받은 원격객체는 함수를 호출한후, 리턴값이 존재한다면 이것을 클라이언트에게 전송해준다.

 

- 서버원격 시스템의 구성

원격서비스를 하기 위해서는 우선 서버에는 원격 클래스와 원격 객체가 존재해야한다. 그리고 원격서버는 클라이언트와 통신을 하기 위해서 서버채널을 개설해야한다. 채널로 전송되는 메시지들은 적절한 인코딩을 거쳐서 전송된다. 이때 인코딩을 담당하는것을 포맷터 라고함

  1. 포맷터의 종류

    채널로 전송되는 데이터는 필요한 형식에 맞게 인코딩 또는 디코딩됨, 인코더와 디코더의 역할을 담당하고 있는것이 바로 포맷터(formatter)인데 포맷터는 크게 soap포맷터와 binary 포맷터로 나뉜다. 이두가지포멧터는 기본적으로 .net remoting에서 제공되는 포멧터이며, 사용자 포멧터를 이용도  가능                                                                           (Soap포멧터는 데이터를 xmxl형식의 soap방식으로 인코딩하게 되며, binary포멧터는 데이터를 바이너리 형식으로 인코딩하게된다. soap포멧터로 인코딩하는 것보다 binary포멧터를 이용한 인코딩이 속도면에서 효율적이지만, 이기종간의 통신포멧인 soap프로토콜을 사용하는 soap포멧터는 상호운용성이 중요시 되는 곳에서 사용된다.)

  2. 채널의종류                                                                                                        원격시스템의 구조에서 데이터의 전송을 담당. 채널에 포멧터가 등록되며, 등록된 포멧터에 의해서 채널로 전송되어지는 모든 데이터들은 인코딩되고 디코딩된다. 채널은 크게 http채널과 tcp채널로 나뉜다.                                                                                    (http 채널은 내부에서 http프로토콜을 이용한다. 그리고 http채널은 디폴트로 soap포멧터를 이용하게 된다. 반면에 tcp채널은 내부에서 tcp프로토콜을 이용하며 binary 포멧터를 이용하게 된다. )

 

- 클라이언트 원격 시스템의 구성

클라이언트는 원격객체를 원격으로 참조할수 있는 원격참조 객체가 있어야한다. 이 원격 참조객체를 프록시(proxy) 객체라고 한다. 일반적인 프로그램의 경우 객체의 참조값으로 모든 작업을 할수 있다.하지만 원격시스템에서는 클라이언트와 서버 사이를 넘나드는 참조값을 이용하게 되는데, 클라이언트에 존재하는 이원격 참조값을 프록시라고 한다.

 

 

설명은 여기까지 이제 예제로 GOGO~

 

'C#' 카테고리의 다른 글

[C#] getter, setter 의 사용  (0) 2012.07.25
[펌] visual 2010 도움되는기능  (0) 2012.07.12
c# 제네릭(Generic) 완벽정리해보쟈!  (0) 2012.07.11
[펌] 01.overview of Attributes  (0) 2012.07.09
[펌] 02 Custums Attributes 정의  (0) 2012.07.09