WCF-아키텍처

WCF에는 다양한 분산 응용 프로그램 개발을위한 충분한 지원을 제공하는 계층화 된 아키텍처가 있습니다. 아키텍처는 아래에 자세히 설명되어 있습니다.

계약

계약 계층은 응용 프로그램 계층 바로 옆에 있으며 서비스 운영 및 서비스가 만드는 액세스 가능한 정보의 종류를 지정하는 실제 계약과 유사한 정보를 포함합니다. 계약은 기본적으로 아래에서 간략하게 설명하는 네 가지 유형입니다.

  • Service contract −이 계약은 엔드 포인트의 제공 및 통신 프로세스에 사용되는 프로토콜에 대한 정보를 클라이언트와 외부 세계에 제공합니다.

  • Data contract− 서비스에 의해 교환되는 데이터는 데이터 계약에 의해 정의됩니다. 클라이언트와 서비스는 모두 데이터 계약에 동의해야합니다.

  • Message contract− 데이터 계약은 메시지 계약에 의해 제어됩니다. 주로 SOAP 메시지 매개 변수의 유형 형식화를 사용자 정의합니다. 여기서 WCF는 통신을 위해 SOAP 형식을 사용한다는 점을 언급해야합니다. SOAP는 Simple Object Access Protocol을 나타냅니다.

  • Policy and Binding− 서비스와 통신하기위한 특정 전제 조건이 있으며 이러한 조건은 정책 및 구속력있는 계약에 의해 정의됩니다. 고객은이 계약을 따라야합니다.

서비스 런타임

서비스 런타임 계층은 계약 계층 바로 아래에 있습니다. 런타임 중에 발생하는 다양한 서비스 동작을 지정합니다. 구성을 거치고 서비스 런타임에 포함될 수있는 여러 유형의 동작이 있습니다.

  • Throttling Behavior − 처리 된 메시지 수를 관리합니다.

  • Error Behavior − 내부 서비스 오류 발생 결과를 정의합니다.

  • Metadata Behavior − 외부 세계에 대한 메타 데이터의 가용성을 지정합니다.

  • Instance Behavior − 클라이언트에서 사용할 수 있도록 생성해야하는 인스턴스 수를 정의합니다.

  • Transaction Behavior − 오류 발생시 트랜잭션 상태를 변경할 수 있습니다.

  • Dispatch Behavior − WCF 인프라에서 메시지가 처리되는 방식을 제어합니다.

  • Concurrency Behavior − 클라이언트-서버 통신 중에 병렬로 실행되는 기능을 제어합니다.

  • Parameter Filtering − 메서드가 호출되기 전에 매개 변수의 유효성 검사 프로세스를 특징으로합니다.

메시징

여러 채널로 구성된이 계층은 주로 두 엔드 포인트간에 전달되는 메시지 콘텐츠를 처리합니다. 채널 세트는 채널 스택을 형성하며 채널 스택을 구성하는 두 가지 주요 채널 유형은 다음과 같습니다.

  • Transport Channels − 이러한 채널은 스택 맨 아래에 있으며 HTTP, TCP, Peer-to-Peer, Named Pipes 및 MSMQ와 같은 전송 프로토콜을 사용하여 메시지를 보내고받을 책임이 있습니다.

  • Protocol Channels − 스택의 맨 위에있는 이러한 채널은 계층 형 채널이라고도하며 메시지를 수정하여 유선 수준 프로토콜을 구현합니다.

활성화 및 호스팅

WCF 아키텍처의 마지막 계층은 서비스가 실제로 호스팅되거나 클라이언트가 쉽게 액세스 할 수 있도록 실행될 수있는 곳입니다. 이는 아래에서 간략하게 설명하는 다양한 메커니즘에 의해 수행됩니다.

  • IIS− IIS는 인터넷 정보 서비스를 의미합니다. 서비스에서 HTTP 프로토콜을 사용하여 수많은 이점을 제공합니다. 여기서는 서비스 코드를 활성화하기위한 호스트 코드가 필요하지 않습니다. 대신 서비스 코드가 자동으로 활성화됩니다.

  • Windows Activation Service− WAS로 널리 알려져 있으며 IIS 7.0과 함께 제공됩니다. TCP 또는 Namedpipe 프로토콜을 사용하여 HTTP 및 비 HTTP 기반 통신이 모두 가능합니다.

  • Self-hosting− WCF 서비스가 콘솔 응용 프로그램으로 자체 호스팅되는 메커니즘입니다. 이 메커니즘은 원하는 프로토콜을 선택하고 자체 주소 지정 체계를 설정하는 측면에서 놀라운 유연성을 제공합니다.

  • Windows Service −이 메커니즘으로 WCF 서비스를 호스팅하면 서비스가 활성화 된 상태로 유지되고 런타임 활성화가 없기 때문에 클라이언트가 액세스 할 수 있으므로 유리합니다.