목차
Ⅰ. 서론
Ⅱ. 본론
1. .NET Remoting의 개념은 Web Services AnyWhere와 CLR Object Remoting로 표현할 수 있다.
2. .NET Remoting의 개요
3. .Net Remoting 아키텍처의 고찰과 주요 구성요소
4. 활성화(Activation)
5. 어트리뷰트와 프로퍼티
6. 원격 객체(Remote Object)
7. 예외 전파
8. 개체 수명 관리
Ⅲ. 결론
Ⅱ. 본론
1. .NET Remoting의 개념은 Web Services AnyWhere와 CLR Object Remoting로 표현할 수 있다.
2. .NET Remoting의 개요
3. .Net Remoting 아키텍처의 고찰과 주요 구성요소
4. 활성화(Activation)
5. 어트리뷰트와 프로퍼티
6. 원격 객체(Remote Object)
7. 예외 전파
8. 개체 수명 관리
Ⅲ. 결론
본문내용
집성/낮은 결합도를 포기해야 할 수도 있다. 클라이언트로 활성화되는 유형의 인스턴스를 만들려면 응용 프로그램을 프로그래밍 방식으로 구성하거나 정적 구성을 사용하면 된다. 서버에서의 클라이언트 활성화 구성은 꽤 단순하다. 예를 들어 다음 코드는
objectUri="HelloService.soap" />
ClientActivated 유형을 기술하고 있다. 클라이언트로 활성화되는 유형에서는 유형 자체만으로도 활성화가 가능하므로 더 이상 URL이 필요하지 않습니다. 또한 wellknown 태그 대신 activated 태그가 사용되었다.
7. 예외 전파
.NET Remoting은 Remoting 전체에 걸쳐 예외 전파를 지원한다. 이는, 예를 들어 DCOM에서와 비교했을 때 오류 코드 사용에 대한 주요한 개선 사항이라고 할 수 있다.
Remoting 예외에서 예외 클래스를 순차 가능화하고 ISerializable 인터페이스를 구현하는 것은 좋은 방법이다. 이렇게 하면 예외가 Remoting 영역에 걸쳐 올바르게 일련화되며 생성하는 동안 사용자 지정 데이터가 예외에 추가된다. 원격화되고 일관성 있게 사용되어야 하는 예외를 위해 자체 예외 클래스를 정의하는 것이 좋다. 모든 예외는 이런 식으로 Catch되고 올바르게 전파되어야 하며 처리되지 않은 예외를 Remoting 영역에서 허용하면 안된다.
8. 개체 수명 관리
.NET Remoting은 원격 개체의 수명을 관리하기 위한 풍부한 메커니즘을 제공한다. 서버 개체가 어떠한 상태도 대기시키지 않을 경우, 예를 들어 SingleCall 개체의 경우처럼 이 프로세스에 대해서는 염려할 필요가 없다. Remoting 인프라가 작업하는 대로 그냥 두면 개체는 필요할 때 garbage로 수집된다. 서버 활성화 Singletons든 클라이언트 활성화 개체든 상태를 대기시키면 수명 관리 프로세스, 즉 개체 임대에 관여해야 할 수도 있다. 이미 최소로만 관여하면 되는 단순하고 유용한 방법 한 가지를 살펴보았는데, 이는 위 Singletons 설명에서와 같이 InitializeLifetimeService 메서드를 다시 정의하는 것이다. 이렇게 하면 개체를 호스트하는 프로세스가 실행되는 동안에는 개체를 보유할 수 있다. 개체 관리를 위해 Remoting이 제공하는 메커니즘은 임대 원리를 기반으로 하고 있다. 개체를 소유하지는 못하지만 값을 치르는 동안에는 계속 사용할 수 있다.
DCOM은 개체가 여전히 실행 중인지를 확인하기 위해 Ping과 참조 계수 메서드를 결합해 사용한다. 둘 다 오류가 발생하기 쉬우며 네트워크 대역폭에 의존적이다. 참조 계수의 전체 원리는 매우 이해하기 어려우며 제대로 사용한 경우에도 불안정하다. 참조 계수로 작업하기 위해 적용해야 할 간단한 규칙이 여러 가지 있었으며 현재도 많이 존재한다. COM 개체를 위한 IUnknown 인터페이스에는 AddRef와 Release 메서드가 포함되며 개발자는 이를 적절한 때에 호출해 주어야 한다. 때로 프로그래머가 이를 잘못 처리해 개체가 제거되지 않고 관련 메모리가 누수되는 경우도 발생한다.
반면 Remoting의 임대 기반 수명 관리 시스템은 임대 개체, 스폰서, 임대 관리자를 결합하여 사용한다. 응용 프로그램 도메인은 각기 임대 관리자를 포함하고 있어 Singleton 또는 클라이언트로 활성화된 각 개체를 위한 임대 개체 참조를 도메인 내에서 대기시킨다. 각 임대는 0 이상의 관련 스폰서를 가지며 임대 관리자가 임대가 만료된 것을 확인할 경우 임대를 갱신할 수 있다. 이 임대 기능은 ILease 인터페이스를 통해 Remoting 인프라가 제공하며 이미 살펴본 InitializeLifetimeService 호출을 통해 얻는다. ILease 인터페이스는 개체 수명을 관리하는 데 사용되는 수많은 속성을 정의한다.
InitialLeaseTime : 임대가 처음 얼마 동안 유효한지를 결정한다.
RenewOnCallTime : 각 메서드 호출 후 임대는 이 시간 단위에서 갱신된다.
SponsorshipTimeout : 스폰서의 임대 만료 알림 후 Remoting이 기다리는 시간이다.
CurrentLeaseTime : 임대가 만료될 때까지의 시간이다(읽기 전용).
임대가 만료되면 임대 관리자는 임대 스폰서에게 임대를 갱신할지를 묻는다. 원하는 스폰서가 없을 경우에는 관련 개체 참조가 해제된다.
스폰서는 원격 개체에 대한 임대를 갱신할 수 있는 개체아다. 스폰서가 되려면 클래스는 MarshalByRefObject로부터 파생되어야 하며 ISponsor 인터페이스를 구현해야 한다. 임대 하나가 여러 스폰서를 가질 수 있다. 위에서 언급했던 대로 임대 메커니즘을 완전히 무시하거나 프로세스 컨테이너가 실행되는 동안 메모리에 개체를 대기시키기 위해 사용하거나 본격적으로 사용할 수도 있다.
Ⅲ. 결론
.NET Remoting은 특정 유형의 분산 솔루션에서 채택할 수 있는 유용한 도구이다. 지원할 수 있는 프로토콜과 메시지 형식면에서 확장성 있는 모델이며 특정 시나리오에서 우수한 성능을 제공한다. .NET Remoting은 인트라넷에 직접 배포할 수는 없으며, 서버 개체는 IIS로 호스트해야 IIS 통제 내에서 실행되는 프로세스에 ISS가 제공하는 보안 및 성능 혜택을 얻을 수 있다.
Remoting은 클라이언트와 서버 모두 CLR로 관리되는 프로세스인 “폐쇄형” 분산 솔루션을 대상으로 고려해야 할 것이다. IPSec 등의 보안 TCP 채널이나 HTTP를 통해 인트라넷 솔루션 내의 어떤 계층에 있는 구성 요소, 방화벽을 통해 .NET 웹 계층과 대화하는 중간 계층 응용 프로그램 구성 요소를 예로 들 수 있다. 이 경우 SOAP 포맷터를 사용해 솔루션을 증명하고 나면 HTTP 채널을 Binary 포맷터와 함께 선택해야 한다. 또 CLR이 아닌 클라이언트와의 상호 운용성이 필요한 시스템에는 데이터 형식과 관련한 일부 위험을 방지해 주는 ASMX 웹 서비스를 사용하는 것이 좋을 것이다.
ClientActivated 유형을 기술하고 있다. 클라이언트로 활성화되는 유형에서는 유형 자체만으로도 활성화가 가능하므로 더 이상 URL이 필요하지 않습니다. 또한 wellknown 태그 대신 activated 태그가 사용되었다.
7. 예외 전파
.NET Remoting은 Remoting 전체에 걸쳐 예외 전파를 지원한다. 이는, 예를 들어 DCOM에서와 비교했을 때 오류 코드 사용에 대한 주요한 개선 사항이라고 할 수 있다.
Remoting 예외에서 예외 클래스를 순차 가능화하고 ISerializable 인터페이스를 구현하는 것은 좋은 방법이다. 이렇게 하면 예외가 Remoting 영역에 걸쳐 올바르게 일련화되며 생성하는 동안 사용자 지정 데이터가 예외에 추가된다. 원격화되고 일관성 있게 사용되어야 하는 예외를 위해 자체 예외 클래스를 정의하는 것이 좋다. 모든 예외는 이런 식으로 Catch되고 올바르게 전파되어야 하며 처리되지 않은 예외를 Remoting 영역에서 허용하면 안된다.
8. 개체 수명 관리
.NET Remoting은 원격 개체의 수명을 관리하기 위한 풍부한 메커니즘을 제공한다. 서버 개체가 어떠한 상태도 대기시키지 않을 경우, 예를 들어 SingleCall 개체의 경우처럼 이 프로세스에 대해서는 염려할 필요가 없다. Remoting 인프라가 작업하는 대로 그냥 두면 개체는 필요할 때 garbage로 수집된다. 서버 활성화 Singletons든 클라이언트 활성화 개체든 상태를 대기시키면 수명 관리 프로세스, 즉 개체 임대에 관여해야 할 수도 있다. 이미 최소로만 관여하면 되는 단순하고 유용한 방법 한 가지를 살펴보았는데, 이는 위 Singletons 설명에서와 같이 InitializeLifetimeService 메서드를 다시 정의하는 것이다. 이렇게 하면 개체를 호스트하는 프로세스가 실행되는 동안에는 개체를 보유할 수 있다. 개체 관리를 위해 Remoting이 제공하는 메커니즘은 임대 원리를 기반으로 하고 있다. 개체를 소유하지는 못하지만 값을 치르는 동안에는 계속 사용할 수 있다.
DCOM은 개체가 여전히 실행 중인지를 확인하기 위해 Ping과 참조 계수 메서드를 결합해 사용한다. 둘 다 오류가 발생하기 쉬우며 네트워크 대역폭에 의존적이다. 참조 계수의 전체 원리는 매우 이해하기 어려우며 제대로 사용한 경우에도 불안정하다. 참조 계수로 작업하기 위해 적용해야 할 간단한 규칙이 여러 가지 있었으며 현재도 많이 존재한다. COM 개체를 위한 IUnknown 인터페이스에는 AddRef와 Release 메서드가 포함되며 개발자는 이를 적절한 때에 호출해 주어야 한다. 때로 프로그래머가 이를 잘못 처리해 개체가 제거되지 않고 관련 메모리가 누수되는 경우도 발생한다.
반면 Remoting의 임대 기반 수명 관리 시스템은 임대 개체, 스폰서, 임대 관리자를 결합하여 사용한다. 응용 프로그램 도메인은 각기 임대 관리자를 포함하고 있어 Singleton 또는 클라이언트로 활성화된 각 개체를 위한 임대 개체 참조를 도메인 내에서 대기시킨다. 각 임대는 0 이상의 관련 스폰서를 가지며 임대 관리자가 임대가 만료된 것을 확인할 경우 임대를 갱신할 수 있다. 이 임대 기능은 ILease 인터페이스를 통해 Remoting 인프라가 제공하며 이미 살펴본 InitializeLifetimeService 호출을 통해 얻는다. ILease 인터페이스는 개체 수명을 관리하는 데 사용되는 수많은 속성을 정의한다.
InitialLeaseTime : 임대가 처음 얼마 동안 유효한지를 결정한다.
RenewOnCallTime : 각 메서드 호출 후 임대는 이 시간 단위에서 갱신된다.
SponsorshipTimeout : 스폰서의 임대 만료 알림 후 Remoting이 기다리는 시간이다.
CurrentLeaseTime : 임대가 만료될 때까지의 시간이다(읽기 전용).
임대가 만료되면 임대 관리자는 임대 스폰서에게 임대를 갱신할지를 묻는다. 원하는 스폰서가 없을 경우에는 관련 개체 참조가 해제된다.
스폰서는 원격 개체에 대한 임대를 갱신할 수 있는 개체아다. 스폰서가 되려면 클래스는 MarshalByRefObject로부터 파생되어야 하며 ISponsor 인터페이스를 구현해야 한다. 임대 하나가 여러 스폰서를 가질 수 있다. 위에서 언급했던 대로 임대 메커니즘을 완전히 무시하거나 프로세스 컨테이너가 실행되는 동안 메모리에 개체를 대기시키기 위해 사용하거나 본격적으로 사용할 수도 있다.
Ⅲ. 결론
.NET Remoting은 특정 유형의 분산 솔루션에서 채택할 수 있는 유용한 도구이다. 지원할 수 있는 프로토콜과 메시지 형식면에서 확장성 있는 모델이며 특정 시나리오에서 우수한 성능을 제공한다. .NET Remoting은 인트라넷에 직접 배포할 수는 없으며, 서버 개체는 IIS로 호스트해야 IIS 통제 내에서 실행되는 프로세스에 ISS가 제공하는 보안 및 성능 혜택을 얻을 수 있다.
Remoting은 클라이언트와 서버 모두 CLR로 관리되는 프로세스인 “폐쇄형” 분산 솔루션을 대상으로 고려해야 할 것이다. IPSec 등의 보안 TCP 채널이나 HTTP를 통해 인트라넷 솔루션 내의 어떤 계층에 있는 구성 요소, 방화벽을 통해 .NET 웹 계층과 대화하는 중간 계층 응용 프로그램 구성 요소를 예로 들 수 있다. 이 경우 SOAP 포맷터를 사용해 솔루션을 증명하고 나면 HTTP 채널을 Binary 포맷터와 함께 선택해야 한다. 또 CLR이 아닌 클라이언트와의 상호 운용성이 필요한 시스템에는 데이터 형식과 관련한 일부 위험을 방지해 주는 ASMX 웹 서비스를 사용하는 것이 좋을 것이다.
키워드
추천자료
구조주의와 소쉬르(쏘쒸르)의 기호학 그리고 레비스트로스의 구조주의에 관하여
문화연구 - 리비스주의, 문화주의, 구조주의, 후기 구조주의, 마르크스주의, 포스트모
복리후생과 산업재해 (복리후생의 정의, 특성, 유형, 효율성, 사례, 산업재해의 원인, 실태,...
유아사회교육의 정의, 목표, 접근방법 고찰과 주제 3개의 활동계획 < 30점 만점 >
프랜차이즈 기업 불평등 사례, 조직 구조, 수익 구조, 우리나라 사회구조, 불평등 구조 사회...
한국 기업의 지배구조의 문제점 및 개선방향,한국의기업지배구조 실태와문제점,기업지배구조,...
[사고구조, 사고구조와 창의성, 사고구조와 등산학습법, 사고구조와 영어교육, 사고구조와 수...
[이자율기간구조, 이자율기간구조와 기간구조모형, 이자율기간구조와 무위험채권, 국고채]이...
[정치구조, 정치구조와 자본주의체제, 정치구조와 국가, 정치구조와 제3세계, 전쟁, 고대사회...
[재구조화, 초등교육과정, 중등교육과정, 고등교육과정]학교교육의 재구조화, 초등교육과정의...
[구조화, 한국공군, 고부가가치산업, 조직]한국공군의 구조화, 고부가가치산업의 구조화, 기...
[경쟁력][국가이미지][경제지표][사회자본][지배구조]경쟁력과 국가이미지, 경쟁력과 경제지...
[존 롤스]존 롤스의 사상, 존 롤스의 정치적 정의관, 존 롤스 정의론(정의관)의 제도, 존 롤...
심리학개론-심리학의 다양한 관점에 대해 간단히 설명하고 비교분석하여 각 관점별로 일상생...