Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

닷넷! Ver 2.0~

.NET은 순식간(?)에 버전업 되었습니다. 이는 신기술의 탄생도 동반했습니다 .NET 2.0 , .NET 3.0, .NET 3.5 등 새로운 기능 및 확장된 기능에 대해 다룹니다

[WCF] WCF란?

작성자 : 박종명
최초 작성일 : 2008-05-13 (화요일)
최종 수정일 : 2008-05-13 (화요일)
조회 수 : 3882

WCF 개요

 

WinFx 의 핵심 구성요소중 분산환경 어플리케이션 개발 측면에 대한 새로운 대안인 WCF 는 최초 코드네임 Indigo(인디고) 로 출발하였다. Indigo 란 사전적인 의미로 (진한)남색이라는 뜻을 가지고 있다. 이 코드명의 의미론적인 해석은 남색은 바다색으로 바다를 상징 한다고 한다. WCF 가 기존의 분산어플리케이션 기술을 통합한다는 취지로 출발하였는데 모든것을 흡수하고 통합한다는 바다의 이미지를 부각하여 Indigo 라는 코드명이 붙여졌다고 한다.

 

기존의 분산 어플리케이션 개발을 위해 웹서비스(WebService), 닷넷리모팅(Remoting) , MSMQ, WSE(WebService 확장)등이 사용되었는데 MS 기술 자체에서도 분산을 위한 프로그래밍 모델의 다양화로 일관된 프로그래밍을 지원하지 못하였다. 또한 각각의 프로그래밍 모델은 어플리케이션 개발스펙이나 통신환경등에 따라 각각 장/단점을 가지고 있어 어플리케이션 성격에 맞는 모델을 선택하여 개발하여야 했었다. WCF 는 이렇게 다양 한 분산 환경 프로그래밍 모델을 통합(통일)하여 분산환경 구축을 위한 일관된 프로그래밍 환경을 보장하고 기존 분산환경의 각각의 장점들을 흡수 하여 상황에 맞는 통신을 지원하며 나아가 쉬운 개발과 높은 생산성을 가져다 주며 SOAP 를 지원함으로써 상호운영성을 지원하는 차세대 분산환경 어플리케이션을 위한 개발 플랫폼의 총칭이라 할 수 있겠다.

 

 

WCF 특징

 

a. Unification(통일성) , Integration(통합)

 

WCF는 분산환경 어플리케이션 개발을 위한 WebService, Remoting,MSMQ,WSE MS 의 분산 프로그래밍 모델들을 통일하여 새로운 개념의 분산환경 어플리케이션 플랫폼이다. 기존의 프로그래밍 모델들을 하부구조는 유지한채 이것들의 표현방식을 일관되게 하여 통일성을 이룩하였으며 기존 모델들이 가지는 각각의 장점과 기능들을 조합가능토록 하였다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b. Service Orientation(서비스 지향)

WCF SOAP 를 지원함으로써 상호운영성을 보장하며 이기종간 통신인프라 구축을 가능케 한다. 또한 WSE(웹서비스 확장 , WS-*) 를 모두 지원하여 확장된 형태의 서비스 구축이 가능하다



Endpoint

 

WCF Endpoint(끝점) 를 통해 서버(서비스)와 클라이언트간의 메시지 교환을 한다. Endpoint 는 닷넷 리모팅의 채널과 포멧터를 합친 개념이라고도 볼 수 있는데 서버(서비스)에는 여러 개의 Endpoint 를 구성할 수 있으며 클라이언트는 이중 하나 이상의 Endpoint 와 메시지 교환을 하게 된다.



ABC 컴포넌트 모델

 

WCF Endpoint는 서버와 클라이언트간의 통신을 위한 포털역할을 한다고 볼 수 있는데 이를 자세히 들여다 보면 통신을 위해 가장 기본적으로 서비스의 위치(Where)를 알아야 하며 통신방식(How)이 무엇인지 알아야 하며 서비스가 무엇(What)을 제공하는지 알아야 한다. Endpoint 는 아래와 같은 구성요소로 이루어 진다.

 

구성 요소

키워드

설명

Address

Where?

서비스가 어디에 위치해 있는가?

서비스 주소 및 연결 포트 정보등

Binding

How?

서비스는 어떤 통신을 하는가?

통신 프로토콜,인코딩 방법, 보안 요구사항 등

Contract

What?

서비스는 무엇을 제공하는가?

서비스가 제공하는 대상등

 

WCF 에서 서버(서비스)와 클라이언트간의 메시지 교환을 위한 Endpoint ABC 모델을 가지고 있으며 ABC 모델은 어디에 있는 무엇을 어떻게 사용할 것인가?’ 에 해당하는 모델이다. 아래 그림은 WCF 분산환경에서의 ACB 모델을 도식화 한 그림이다.



Binding 은 설명했듯이 통신방식에 대한 사항을 나타낸다. 아래 그림을 참고하자.



WCF 에서는 개발자로 하여금 Contract , 즉 무엇을 제공할 지만 신경쓰면 되도록 프로그래밍 환경을 단순화 하였다. 개발자는 서비스로 제공될 것만 개발하면 되고 나머지는 구성파일에 속성 변경등의 방법으로 쉽게 적용할 수 있도록 하여 개발 생산성 및 쉬운 개발을 가능케 한다.

 

 

WCF 핵심 네임스페이스 및 어셈블리

 

Namespace

             System.ServiceModel

             System.Runtime.Serialization

             System.Security.Authorization

             System.Transaction

 

Assembly Reference

             System.ServiceModel.dll ? Core Library

             System.Runtime.Serialization.dll ? Serialization Library

             System.Secruity.Authorization ? Security Library

             System.Transactions.dll ? Transaction Library

이름
비밀번호
홈페이지
LV <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요