다음을 통해 공유


Windows Communication Foundation 아키텍처

다음 그래픽에서는 WCF(Windows Communication Foundation) 아키텍처의 주요 계층을 보여 줍니다.

WCF 아키텍처

WCF 아키텍처

계약 및 설명

계약은 메시지 시스템의 다양한 측면을 정의합니다. 데이터 계약은 서비스에서 만들거나 사용할 수 있는 모든 메시지를 구성하는 모든 매개 변수를 설명합니다. 메시지 매개 변수는 XSD(XML 스키마 정의 언어) 문서로 정의되어 XML을 이해하는 모든 시스템에서 문서를 처리할 수 있도록 합니다. 메시지 계약은 SOAP 프로토콜을 사용하여 특정 메시지 파트를 정의하며 상호 운용성이 이러한 정밀도를 요구하는 경우 메시지의 일부를 보다 세밀하게 제어할 수 있습니다. 서비스 계약은 서비스의 실제 메서드 서명을 지정하며 Visual Basic 또는 Visual C#과 같이 지원되는 프로그래밍 언어 중 하나로 인터페이스로 배포됩니다.

정책 및 바인딩은 서비스와 통신하는 데 필요한 조건을 규정합니다. 예를 들어 바인딩은 최소한 사용된 전송(예: HTTP 또는 TCP)과 인코딩을 지정해야 합니다. 정책에는 서비스와 통신하기 위해 충족해야 하는 보안 요구 사항 및 기타 조건이 포함됩니다.

서비스 런타임

서비스 런타임 계층에는 서비스의 실제 작업, 즉 서비스의 런타임 동작 중에만 발생하는 동작이 포함됩니다. 제한은 처리되는 메시지 수를 제어하며, 서비스에 대한 수요가 미리 설정된 제한으로 증가하는 경우 달라질 수 있습니다. 오류 동작은 예를 들어 클라이언트에 전달되는 정보를 제어하여 서비스에서 내부 오류가 발생할 때 발생하는 작업을 지정합니다. (정보가 너무 많을 경우 악의적인 사용자가 공격을 탑재할 때 이점을 얻을 수 있습니다.) 메타데이터 동작은 외부 환경에서 메타데이터를 사용할 수 있는 방법 및 여부를 제어합니다. 인스턴스 동작은 서비스의 실행 가능한 인스턴스 수를 지정합니다(예: 단일 인스턴스는 모든 메시지를 처리하는 하나의 인스턴스만 지정). 트랜잭션 동작을 사용하면 오류가 발생할 경우 트랜잭션된 작업을 롤백할 수 있습니다. 디스패치 동작은 WCF 인프라에서 메시지를 처리하는 방법을 제어하는 것입니다.

확장성을 사용하면 런타임 프로세스를 사용자 지정할 수 있습니다. 예를 들어 메시지 검사는 메시지의 일부를 검사하는 기능이며 매개 변수 필터링을 사용하면 메시지 헤더에서 작동하는 필터에 따라 미리 설정된 작업이 수행됩니다.

메시징

메시징 계층은 채널로 구성 됩니다. 채널은 메시지를 인증하는 등의 방법으로 메시지를 처리하는 구성 요소입니다. 채널 집합을 채널 스택이라고도 합니다. 채널은 메시지 및 메시지 헤더에서 작동합니다. 이는 주로 메시지 본문의 내용을 처리하는 데 관심이 있는 서비스 런타임 계층과 다릅니다.

채널에는 전송 채널과 프로토콜 채널의 두 가지 유형이 있습니다.

전송 채널은 네트워크에서 메시지를 읽고 씁니다(또는 외부 세계와의 다른 통신 지점). 일부 전송은 인코더를 사용하여 네트워크에서 사용하는 바이트 스트림 표현과 메시지를 변환합니다(XML Infosets로 표시됨). 전송의 예로는 HTTP, 명명된 파이프, TCP 및 MSMQ가 있습니다. 인코딩의 예로는 XML 및 최적화된 이진 파일이 있습니다.

프로토콜 채널은 메시지 처리 프로토콜을 구현하며, 종종 메시지에 추가 헤더를 읽거나 쓰면 됩니다. 이러한 프로토콜의 예로는 WS-Security 및 WS-안정성이 있습니다.

메시징 계층은 데이터의 가능한 형식 및 교환 패턴을 보여 줍니다. WS-Security 메시지 계층에서 보안을 사용하도록 설정하는 WS-Security 사양의 구현입니다. WS-Reliable 메시징 채널을 사용하면 메시지 배달을 보장할 수 있습니다. 인코더는 메시지의 요구 사항에 맞게 사용할 수 있는 다양한 인코딩을 제공합니다. HTTP 채널은 HyperText 전송 프로토콜이 메시지 배달에 사용되도록 지정합니다. TCP 채널도 마찬가지로 TCP 프로토콜을 지정합니다. 트랜잭션 흐름 채널은 트랜잭션된 메시지 패턴을 제어합니다. 명명된 파이프 채널을 사용하면 프로세스 간 통신이 가능합니다. MSMQ 채널을 사용하면 MSMQ 애플리케이션과의 상호 운용이 가능합니다.

호스팅 및 활성화

최종 형식으로 서비스는 프로그램입니다. 다른 프로그램과 마찬가지로 서비스는 실행 파일에서 실행되어야 합니다. 이를 자체 호스팅 서비스라고 합니다.

서비스를 호스트하거나 IIS 또는 WAS(Windows 정품 인증 서비스)와 같은 외부 에이전트에서 관리하는 실행 파일에서 실행할 수도 있습니다. WAS를 사용하면 WAS를 실행하는 컴퓨터에 배포될 때 WCF 애플리케이션을 자동으로 활성화할 수 있습니다. 서비스를 실행 파일(파일.exe)로 수동으로 실행할 수도 있습니다. 서비스를 Windows 서비스로 자동으로 실행할 수도 있습니다. COM+ 구성 요소는 WCF 서비스로 호스트될 수도 있습니다.

참고하십시오