Service End Point
Host application(Service)은 클라이언트가 요청을 보낼 수 있는 End-Point를 제공함으로서 클라이언트 어플리케이션이 사용할 수 있는 서비스를 만든다.
Service Binding
Service Binding에서는 서비스와 연결하는 방식과 서비스가 제공하는 데이터 포멧을 나타낸다.
- 전송 프로토콜 : IIS의 지원시에는 전송프로토콜로 Http, Https를 설정, TCP 등의 전송 스킴에 대한 주소의 명세화
- 메세지 엔트포인트 포멧 : 일반적으로 XML형태로 데이터 전송, 특별한 image등의 데이터를 보낼때는 다른 방식으로 encoding
- 서비스 보안 요구사항 : 전송 레벨과 메세지 레벨에서의 보안의 구현
- 서비스 트랜젝션 요구사항 : 트랜잭션 서비스의 구현
- 서비스 커뮤니케이션의 신뢰성 : 데이터 교환의 무결성 확인
Client process
WCF Runtime에서 보안, 신뢰성, 트랜젝션을 만족하는지에 대한 확인에 대한 채널 객체의 컬랙션 제공
WCF Runtime에서는 Channel과 Service Instance간의 연결 방법을 명시할 수 있다. 이는 서비스 계약을 구현한 Class에 [ServiceBehavior] 속성을 추가하는 것으로 WCF Runtime이 서비스를 초기화하는 방식을 수정할 수 있다.
- InstanceContextMode.PerCall : Method를 호출할 때마다 서비스의 새로운 Instance가 호출된다.
- InstanceContextMode.PerSession : Session을 구현하면, Client의 Session별로 Instance가 생성된다. Session이 만료되면 Instance는 제거가 되며, Session이 유지되고 있는 도중에는 Instance는 계속 유지가 된다.
- InstanceContextMode.Single : Service의 Instance는 하나만이 생성되며, 모든 client와 Session은 하나의 Instance에 의해서 공유가 되게 된다.
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
public class ProductServiceImpl : IProduct