.NET 리모트

.NET Remoting

.NET 리모팅은 프로세스 간 통신용 Microsoft Application Programming Interface(API; 응용 프로그램프로그래밍 인터페이스)로 2002년에 1.0 버전과 함께 출시되었습니다.NET 프레임워크이는 1990년 16비트 Windows용 OLE(Object Linking and Embedding)의 첫 버전에서 시작된 일련의 마이크로소프트 기술 중 하나입니다.이러한 테크놀로지의 개발의 중간 단계는 1993년에 출시된 컴포넌트 오브젝트 모델(COM), 1995년에 업데이트된 COM-95, 1997년에 출시된 분산 컴포넌트 오브젝트 모델(DCOM), 2000년에 [1]출시된 Microsoft Transaction Server(MTS)를 사용한 COM+입니다.현재는 Windows Communication Foundation(WCF)으로 대체되었습니다.WCF는 의 일부입니다.NET Framework 3.0.

패밀리 및 CORBA(Common Object Request Broker Architecture) 및 Java의 RMI(Remote Method Invocation)와 같은 유사한 테크놀로지와 마찬가지로,NET 리모트는 복잡하지만 본질은 간단합니다.클라이언트 프로세스는 운영 체제 및 네트워크 에이전트의 도움을 받아 서버 프로세스에 메시지를 보내고 [2][3]응답을 받습니다.

개요

.NET Remoteing을 사용하면 응용 프로그램에서 원격 경계를 넘어 객체(터링된 원격 개체)를 사용할 수 있습니다. 여기에는 다른 앱 도메인, 프로세스 또는 네트워크로 연결된 [4]다른 컴퓨터도 포함됩니다..NET Remoteing 런타임은 서버 애플리케이션의 appdomain에 있는 개체에 대한 요청 수신기를 호스트합니다.클라이언트 측에서는 리모터블개체에 대한 모든 요구가 에 의해 프록시 됩니다.NET 원격 실행 시간 초과ChannelTCP 스트림, HTTP 스트림, 이름 있는 파이프 실제 전송 모드를 캡슐화하는 오브젝트.그 결과 적절한 인스턴스화를 통해Channel오브젝트, a.NET Remote 어플리케이션은 어플리케이션을 재컴파일하지 않고 다른 통신 프로토콜을 지원하도록 만들 수 있습니다.런타임 자체는 클라이언트 및 서버 애플리케이션 [4]도메인 전체에서 개체의 직렬화마샬링 작업을 관리합니다.

.NET Remoteing은 클라이언트애플리케이션에서 리모트 가능한 오브젝트를 참조할 수 있도록 합니다.이것에 의해, 리모트 가능한 오브젝트가 인스턴스화되어 로컬 [4]오브젝트인 것처럼 사용됩니다.그러나 실제 코드는 서버 측에서 실행됩니다.리모트 가능 객체는 액티베이션 URL에 의해 식별되며 [5]URL 접속에 의해 인스턴스화 됩니다.서버가 리모트 가능 객체에 접속하기 위해 사용되는 채널을 등록할 때 리모트 실행 시 오브젝트의 리스너가 생성됩니다.클라이언트 측에서는 리모트 인프라스트럭처에 의해proxy리모터블 오브젝트의 유사 복사로 간주됩니다.리모트 오브젝트의 기능은 실장하지 않지만, 같은 인터페이스를 제공합니다.따라서 리모트 인프라스트럭처는 사전에 리모트 객체의 퍼블릭인터페이스를 알아야 합니다.메서드의 ID와 전달된 파라미터를 포함하여 오브젝트에 대해 이루어진 메서드 호출은 바이트 스트림에 직렬화되어 통신 프로토콜에 의존한 방식으로 전송됩니다.Channel 서버측의 수신자 프록시 오브젝트("marshalled")에 대해서, 채널의 트랜스포트 [5]싱크에 기입합니다.서버 측에서는 프록시가 싱크에서 스트림을 읽어 클라이언트를 대신해 리모트 가능한 오브젝트에 콜을 발신합니다.결과는 시리얼화되어 싱크를 통해 클라이언트로 전송됩니다.클라이언트에서는 프록시가 결과를 읽어내 발신측 애플리케이션에 [5]건네집니다.리모트 가능 객체가 일부 서비스에 대해 클라이언트 객체에 콜백을 해야 하는 경우 클라이언트응용 프로그램은 리모트 가능으로 마킹하고 리모트 런타임호스트를 리스너로 해야 합니다.[5]서버는 다른 채널 또는 기본 연결이 양방향 통신을 지원하는 경우 기존 채널 경유로 [5]연결할 수 있습니다.채널은 다수의 다른 채널오브젝트로 구성될 수 있습니다.아마도 이종 전송이 다를 수 있습니다.따라서,[5] 리모트는 인터넷을 포함한 이기종 네트워크의 상호 접속에 의해 분리된 시스템 간에도 작동할 수 있습니다.타입 안전은 CTS 및에 의해 강제됩니다.NET 원격 실행 시간.리모트 메서드콜은 본질적으로 동기적입니다.비동기 콜은 스레드화 라이브러리를 사용하여 구현할 수 있습니다.인증 및 접근컨트롤은 커스텀채널을 사용하거나 IIS에서 리모트 가능한 오브젝트를 호스트하여 IIS 인증 [6]시스템을 사용하여 클라이언트에 구현할 수 있습니다.

레퍼런스

  1. ^ Software Technology Roadmap (2001). "Component Object Model and Related Capabilities". Carnegie-Mellon Software Engineering Institute. Archived from the original on 2008-05-15.
  2. ^ McLean, Scott; Naftel, James; Kim, Williams (2002). Microsoft .NET Remoting. Microsoft Press.
  3. ^ Rammer, Ingo; Szpuszta, Mario (2005). Advanced .NET Remoting. Apress.
  4. ^ a b c ".NET Remoting Overview". Retrieved 2007-10-23.
  5. ^ a b c d e f ".NET Remoting Architecture". Retrieved 2007-10-23.
  6. ^ "Security". MSDN. Retrieved 2007-10-23.

외부 링크