Windows Communication Foundation 정의

|

응용 프로그램 간 통신을 위한 표준 프로토콜을 포함한 웹 서비스의 전반적인 적용으로 소프트웨어 개발 양상이 변화되었습니다. 예를 들어, 현재 웹 서비스가 제공하는 기능에는 보안, 분산 트랜잭션 코디네이션 및 안정적인 통신이 있습니다. 웹 서비스의 변경에 따른 이점은 개발자가 사용하는 도구 및 기술에 반영되어야 합니다. WCF(Windows Communication Foundation)는 분산 컴퓨터 작업, 광범위한 상호 운용성 및 서비스 지향성과 관련한 직접적인 지원을 위하여 사용하기 간편한 방식을 제공하도록 개발되었습니다.

WCF는 새로운 서비스 기반 프로그래밍 모델을 통해 관련된 응용 프로그램의 개발을 단순화합니다.
WCF는 계층화된 아키텍처를 제공하여 다양한 스타일의 분산 응용 프로그램 개발을 지원합니다.
기본적으로 WCF 채널 아키텍처는 비동기식 형식화되지 않은 메시지 전달 형식을 제공합니다.
이와 같은 기반을 바탕으로 안전하고 안정적이며 트랜잭션된 데이터 교환을 위한 프로토콜 기능과 다양한 전송 및 인코딩 옵션이 제공됩니다.

형식화된 프로그래밍 모델(서비스 모델)은 분산 응용 프로그램의 개발을 쉽게 하고, 개발자에게 ASP.NET 웹 서비스, .NET Framework remoting 및 엔터프라이즈 서비스에 대한 전문 지식과 WCF 사용자에게 익숙한 개발 경험을 제공하도록 디자인되었습니다. 서비스 모델의 특징은 Visual C# 또는 Visual Basic과 같은 언어로 서비스 구현에 대한 유연하고 확장 가능한 메시지 매핑을 포함하여 웹 서비스 개념을 .NET Framework CLR(공용 언어 런타임)의 개념에 바로 매핑할 수 있다는 것입니다. 여기에는 느슨한 결합과 버전 관리를 사용할 수 있는 serialization 기능이 포함되어 있으며 통합 및 상호 운용성을 위해 MSMQ(메시지 큐), COM+, ASP.NET 웹 서비스, WSE(Web Services Enhancements) 및 다양한 기타 기능과 같은 기존의 .NET Framework 분산 시스템 기술을 제공합니다.

문제 예

다음 예제에서는 WCF에서 해결할 수 있는 문제를 보여 줍니다. 자동차 렌트 회사에서 차량 예약용 응용 프로그램을 새로 만들기로 결정합니다. 차량 대여 예약 응용 프로그램의 개발자는 응용 프로그램을 구현하는 비즈니스 논리가 회사 내부 및 외부에서 실행 중인 다른 소프트웨어에서 액세스할 수 있어야 한다는 점을 알고 있습니다. 따라서 잘 정의된 서비스 집합을 통해 다른 소프트웨어에 노출된 응용 프로그램의 논리를 사용하여 서비스 기반 스타일로 구축하기로 결정합니다. 이러한 서비스를 구현하여 다른 소프트웨어와 통신하기 위해 새로운 응용 프로그램은 WCF를 사용합니다.

차량 대여 시나리오

수명 기간 동안 차량 대여 예약 응용 프로그램은 다른 응용 프로그램의 범위에 한해 액세스할 수 있습니다. 그러나 차량 대여 예약 응용 프로그램의 설계자는 앞의 그림과 같이 세 가지의 다른 소프트웨어에서 이 프로그램의 비즈니스 논리를 액세스함을 알고 있습니다.

  • 해당 조직의 콜 센터 직원이 사용하는 Windows 데스크톱에서 실행 중인 콜 센터 클라이언트 응용 프로그램. 또한 새로운 예약 시스템에 맞게 생성된 이 응용 프로그램은 Microsoft .NET Framework 및 WCF를 사용하여 구축됩니다. 이 응용 프로그램은 새로운 시스템의 클라이언트로만 수행되기 때문에 새로운 차량 대여 예약 응용 프로그램과 거의 같습니다. 서비스 지향적 관점에서 이 프로그램은 예약 시스템의 비즈니스 논리에 대한 또 다른 클라이언트일 뿐입니다.

  • 비Windows 시스템에서 실행하는 J2EE 서버에 구축된 기존 예약 응용 프로그램. 최근에 다른 자동차 렌트 회사와의 병합으로 인해 이 기존 시스템은 병합된 회사의 고객에게 일관된 서비스 환경을 제공하도록 새로운 응용 프로그램의 논리에 액세스할 수 있어야 합니다.

  • 각각 자동차 렌트 회사와 비즈니스 측면에서 조율된 회사 내에 위치한 다양한 플랫폼에서 실행하는 파트너 응용 프로그램. 파트너에는 여행사, 항공사 및 차량 대여 예약을 하기 위해 필요한 비즈니스 요건을 갖춘 기타 회사가 포함될 수 있습니다.

새로운 차량 대여 예약 응용 프로그램에 대한 다양한 통신 요구 사항은 간단하지 않습니다. 예를 들어, 콜 센터 클라이언트 응용 프로그램과의 상호 작용을 위해 성능이 중요한 반면에, .NET Framework에서 둘 다 구축되기 때문에 상호 운용성은 간단합니다. 그러나 기존 J2EE 기반 예약 응용 프로그램 및 다양한 파트너 응용 프로그램과의 통신의 경우 상호 운용성이 최우선 목표가 됩니다. 또한 보안 요구 사항은 로컬 Windows 기반 응용 프로그램, 다른 운영 체제에서 실행하는 J2EE 기반 응용 프로그램 및 인터넷을 통해 실행되는 다양한 파트너 응용 프로그램에 따라 매우 다릅니다. 트랜잭션 요구 사항도 트랜잭션 요청을 수행할 수 있는 내부 응용 프로그램의 경우에만 다를 수 있습니다. 어떻게 하면 새로운 응용 프로그램 작성자가 복잡한 상황에 빠지지 않고, 이러한 다양한 비즈니스 및 기술 요구 사항을 충족시킬 수 있을까요?

WCF는 이렇게 다양하지만 실질적인 시나리오에 맞게 디자인되었으며 서비스를 노출하고 액세스하는 Windows 응용 프로그램을 위한 기본 기술입니다. 이 항목에서는 WCF에 대해 소개하며, 제공되는 기능과 사용 방법을 보여 줍니다. 이 소개 과정에서 나오는 시나리오는 단지 예제일 뿐입니다. 이러한 예제의 목적은 WCF의 정의를 명확하게 설명하고 해결할 수 있는 문제를 보여 주며, 이러한 문제 해결 방법에 대해 설명하는 것입니다.


문제 해결

새로운 Windows 기반 응용 프로그램의 토대는 .NET Framework입니다. 이에 따라 WCF는 주로 .NET Framework CLR의 최상위에 있는 클래스 집합으로 구현됩니다. 익숙한 환경의 연장이기 때문에 WCF를 사용하면 현재 .NET Framework를 사용하여 개체 지향 응용 프로그램을 작성하는 개발자는 익숙한 방법으로 서비스 지향 응용 프로그램도 구축할 수 있습니다.

WCF 클라이언트 및 서비스 간 통신

클라이언트 및 서비스는 WCF의 기본 메시지 표현 방식인 SOAP를 사용하여 상호 작용하므로, 그림에는 둘 다 WCF에 구축되어 있지만 반드시 그래야 하는 것은 아닙니다. WCF는 .NET Framework 2.0을 기반으로 구축됩니다.

앞서 설명한 시나리오에서 제안한 것처럼 WCF는 응용 프로그램 통신 범위의 문제를 해결합니다. 그러나 다음 세 가지 사항은 WCF의 가장 중요한 측면을 설명합니다.

  • 기존 .NET Framework 통신 기술의 통합.

  • 안정성, 보안 및 트랜잭션을 포함한 공급업체 간 상호 운용성 지원.

  • 명시적 서비스 오리엔테이션.

And