.Net General

WCF Architecture

탑~! 2025. 8. 28. 13:38

1. WCF 아키텍처

 

 

(1) Contracts

Contracts 레이어는 WCF 메시징 시스템의 다양한 측면을 정의합니다. 데이터 계약은 서비스와 클라이언트 간에 전달되는 데이터와 해당 데이터를 직렬화하는 방법을 설명합니다. 메시지 계약은 클라이언트와 서비스 간의 통신을 위해 WCF 런타임에서 제공하는 기본 SOAP 메시지 형식을 정의하며 요구 사항에 맞게 사용자 지정할 수 있습니다. 서비스 계약은 서비스의 실제 메소드 서명을 지정하며 대개 인터페이스로 정의됩니다. 정책 및 바인딩은 전송 프로토콜 HTTP 또는 TCP, 인코딩, 보안 요구 사항 등과 같은 서비스와 통신하는 데 필요한 조건을 정의합니다. 

 

(2) 서비스 런타임

서비스 런타임 레이어는 서비스의 실제 작동 중에 만 발생하는 서비스의 런타임 동작을 포함합니다 .

 

동작 설명
Throttling Behavior 서비스의 수요가 증가한 경우 처리되고 구성할 수 있는 메시지 수를 제어합니다. 
Error Behavior 서비스에서 내부 오류가 발생할 때 발생하는 동작을 지정합니다. 이렇게하면 예외가 발생할 때 클라이언트에 전달되는 정보를 구성할 수 있습니다.
Metadata Behavior 외부 세계에서 메타 데이터를 사용할 수 있는지 여부와 방법을 알려줍니다.
Instance Behavior 실행 중에 생성해야 하는 서비스의 인스턴스 수를 지정합니다. 예를 들어, 싱글톤은 모든 메시지를 처리하기 위해 하나의 인스턴스만 지정했습니다.
Transaction Behavior 오류가 발생하면 트랜잭션된 작업을 롤백 할 수 있습니다.
Dispatched Behavior WCF 인프라에서 메시지를 처리하는 방법을 제어합니다.

 

(3) 메시징

메시징 계층은 채널로 구성됩니다. 채널은 메시지를 인증하는 등의 방법으로 메시지를 처리하는 구성 요소입니다. 채널은 일반적으로 메시지 및 메시지 헤더에서 작동하며 이는 주로 메시지 본문 내용 처리에 관심이 있는 서비스 런타임 계층과 다릅니다. 두 가지 유형의 채널이 지원됩니다. 전송 채널 네트워크에서 메시지를 읽고 씁니다. HTTP, TCP, MSMQ, 명명된 파이프 등이 그 예입니다. 프로토콜 채널은 메시지에 추가 헤더를 읽거나 쓰는 방법으로 메시지 처리 프로토콜을 구현합니다. 이러한 프로토콜의 예로 WS-Security 및 WS-Reliability가 있습니다. 

 

(4) 활성화 및 호스팅

모든 WCF 서비스는 클라이언트 요청 수신을 시작하기 전에 호스팅 되어야합니다. WCF 서비스는 다음과 같은 방법으로 호스팅 할 수 있습니다.

 

① IIS : 인터넷 정보 서비스는 서비스가 HTTP를 프로토콜로 사용하는 경우 많은 이점을 제공합니다. IIS 호스팅 옵션은 ASP.NET과 통합되어 있으며 프로세스 재활용, 유휴 종료, 프로세스 상태 모니터링 및 메시지 기반 활성화와 같은 이러한 기술이 제공하는 기능을 사용합니다. 가용성이 높고 확장성이 뛰어난 웹 서비스 응용 프로그램을 호스팅하는 데 선호되는 솔루션입니다.

 

② WAS(Windows Activation Service) : IIS 7.0에서 제공되며 Windows Server 2008 또는 Windows 7에서 사용할 수 있는 새로운 프로세스 활성화 메커니즘입니다. WCF는 HTTP 기반 통신 외에도 WAS를 사용하여 다른 서버 프로토콜(예 : TCP 및 명명된 파이프)

 

③ 자체 호스팅 : WCF 서비스는 관리 콘솔, Windows Forms 또는 WPF 응용 프로그램으로 자체 호스팅 될 수 있습니다. 최소의 인프라 스트럭처가 필요하기 때문에 매우 유연한 옵션입니다. 서비스를 사용 가능하게 만들기 위해 ServiceHost의 인스턴스를 만들고 열려면 관리되는 응용 프로그램 내에 코드를 임베드해야합니다. 이처럼 호스트된 서비스는 개발 중에 매우 유용합니다. 추적 정보를 쉽게 디버깅하고 추적 정보를 얻어 어플리케이션 내부에서 일어나는 일을 파악할 수 있기 때문입니다.

 

④ Windows Service : WCF 서비스는 Service Control Manager(SCM)가 제어할 수 있도록 Windows 서비스로 호스팅 될 수도 있습니다. 자체 호스팅 옵션과 마찬가지로 일부 호스팅 코드는 어플리케이션의 일부로 작성해야했습니다. 서비스의 수명은 장기 실행 WCF 서비스를 위한 더 나은 옵션인 운영 체제에 의해 제어됩니다.

[출처] WCF Architecture|작성자 islove8587

728x90
반응형