티스토리 뷰

1. WCF

- WCF(Windows Communication Foundation)의 약자로 네트워크 분산 서비스를 구축, 구성 및 배포를 위해 만들어진 플렛폼 및 런타임 시스템으로 서비스(Service), 서비스 호스트(Service Host), 서비스 클라이언트(Service Client)로 구성되어 진다. 2006년에 처음 출시하여 지속적으로 업데이트되고 있다. 

2. WCF에서의 중요한 개념

1) 메시지(Message): WCF를 통해서 전송되는 데이터 블럭으로 SOAP XML로 되어 있다. 
2) 엔드포인터(EndPoint): 메시지를 송,수신하는데 사용하는 주소, 메시지 세트 정의, 메시지 전송방법등을 정의한다. 
3) 주소(Address): 메시지를 수신할 정확한 위치를 URL형태로 진정한다. 
4) 바인딩(Binding): 엔드포인터가 사용하게 될 프로토클, 메시지 인코딩 형식, 보안과 관련된 통신방식을 정의한다. 
5) 계약(Contracts): 엔드포인터가 클라이언트에 제공하는 기능을 정의하며 인터페이스 이름으로 구성된다.
6) 호스팅(Hosting): 서비스를 운영하는 방식으로 자체호스팅, IIS 호스팅, WAS 호스팅등의 방법이 있다. 
7) 메타데이터(Metadata): 
8) 클라이언트(Client): 
9) 채널(Channel): 클라이언트가 서비스와 통신하는데 사용하는 매체를 말한다. 
10) SOAP(Simple Object Access Protocol)로 Header, Body로 구성된 xml 문서다.
11) 이점
   - 다른 서비스와 상호 운용이 가능하다. 
   - ASMX(Active Server Method) 웹 서비스 보다 더 나은 안전성과 보안을 제공한다. 
   - 접속 설정 및 보안 적용에 코드를 크게 변경할 필요가 없다. 
   - 구성 파일의 변경으로 접속 설정을 통합할 수 있다. 
   -  AJAX를 통합하며 JSON을 지원한다. 
12) 단점
   - 요구사항에 맞는 서비스 설계가 어렵다. 
13) WCF에 결합된 기술

원본주소 : http://www.wcftutorial.net/Images/020100_Features.jpg

 

3. WCF 와 WEB Service 의 차이점

구분 WCF Windows Web Service
호스팅(Hosting) IIS, Windows activation service, Self-hosting, Windows Service 모두 지원한다. IIS에서만 지원한다. 
프로그램작성(Programming) [ServiceContract] 속성을 추가한다. [WebService] 속성을 추가한다.
모델(Model) [OperationContract]를 사용한다. [WebMethod]를 사용한다. 
운영(Operation) One-Way, Request-Response, Duplex One-Way, Request-Response, Duplex
XML System.Runtime.Serialization 사용 System.Xml.serialization 사용
해석(Encoding) XML1.0, MTOM, Binary, Custom XML1.90, MTOM, DIME, Custom
전송(Transports) HTTP, TCP, Named pipes, MSMQ, P2P, Custom HTTP, TCP, Custom
프로토클(Protocols) Security, Reliable messaging, Transactions Security

 

4. WCF 구성

WCF를 구성하는 각 계층은 아래 그림과 같이 구성되어 있다. 

원본주소: https://docs.microsoft.com/en-us/dotnet/framework/wcf/media/wcf-architecture.gif

1) 계약(Contracts) 계층
   계약(Contracts)계층은 서비스에서 전달할 정보에 대한 정의와 어떤 서비스를 제공할지를 선언한다.
   - Data Contracts: 서비스 제공자가 송, 수신할 데이터 타입과 변수를 선언한다.
   - Message Contract: 서비스의 송,수신되는 SOAP 메시지를 통제한다. 
   - Service Contract: 서비스의 엔드포인터(Endpoint)가 무엇을 제공하고 통신하는지를 선언한다. 
   - Policy and Binding: 프로토콜과 같이 통신에 사용할 정책들에 대하여 선언한다. 
2) 서비스 실행(Service Runtime) 계층
   서비스 런타임 계층은 서비스 운영 또는 서비스 런타임 중에 발생하는 서비스의 동작을 선언하고 관리한다. 
   - Throttling Behavior: 동시에 처리할 수 있는 메시지의 수를 정의한다. 
   - Error Behavior: 서비스 런타임 중에 오류가 발생할 경우 수행할 작업을 정의한다. 
   - Metadata Behavior: 메타 데이터가 외부에 노출되는지 여부를 정의한다. 
   - Instance Behavior: 메시지를 처리할 수 있는 인스턴스의 수를 정의한다. 
   - Message Inspection: 서비스 제공자가 메시지의 전체 또는 일부를 검사할 수 있도록 한다. 
   - Transaction Behavior: 서비스가 런타임중에 실폐할 경우 드랜잭션을 롤백할 수 있는 기능을 제공한다. 
   - Dispatch Behavior: 메시지를 처리하고 처리하는 방법을 결정한다. 
   - Concurrency Behavior: 서비스또는 서비스의 인스턴스가 병렬로 처리하는 기능을 제공한다. 
   - Parameter Filtering: 메시지의 해더에 따라 사전 설정작업을 실행한다. 
3) 메시지(Messaging) 계층
   메시징 계층은 서비스 통신중에 사용할 수 있는 형식과 데이터 교환 패턴을 정의한다.
   - WS Security Channel: WS 보안 형태의 메시지 전달을 가능하게 한다.
   - WS Reliable Message Channel: WS 신뢰성 메시지 규격의 메시지 전달을 가능하게 한다. 
   - Encoders: Binary/MTOM/Text/XML: 메시지를 어떤 형태로 해석하는지를 정의한다. 
   - HTTP Channel: HTTP 프로토클을 통해서 메시지가 전달되도록 정의한다.
   - TCP Channel: TCP 프로토클을 통해서 메시지가 전달되도록 정의한다. 
   - Transaction Flow Channel: 전송된 메시지 패턴을 관리한다. 
   - NamedPipe Channel: 프로세스간 통신을 가능하게 한다. 
   - MSMQ Channel: MSMQ를 가능하게 한다. 
4) 활성화 및 호스팅(Activation and hosting) 계층
   서비스 활성화를 어떤 형태로 할지를 결정한다. 
   - IIS: Internet Information Service를 사용하여 COM+를 등록하고 HTTP 프로토클을 사용한다. 
   - Windows Activation Service: Windows WAS이며IIS와 같이 제공되며 HTTP, HTTP 기반 통신이 가능하다. 
   - .EXE: 실행파일을 실행하여 서비스로 프로토클 선택과 자체 주소 체계를 설정하는데 있어 유연성을 제공한다. 
   - Windows Service: Windows Service에 등록하여 호스팅을 제공한다. 

'C# Language > C# NetCore' 카테고리의 다른 글

Open SSL 사용 방법  (0) 2021.08.09
[PLC] PLC 연계 프로그램  (0) 2019.12.18
[NetCore] IIS를 사용하여 배포하기  (2) 2019.11.28
[WCF] 5. 자체호스팅(Self Hosting)  (0) 2019.10.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함