저는 외부 하드웨어와 대화 할 책임이있는 "서버"응용 프로그램을 작성하려고합니다. 응용 프로그램은 클라이언트의 요청을 처리합니다. 클라이언트는 서버에 메시지를 보내고, 서버가 하드웨어를 가지고 작업하는 것으로 바쁘면 새로운 메시지가 나중에 처리 될 큐에 저장됩니다.응용 프로그램 간의 통신 (프로세스 간)?
클라이언트는 요청을 취소 할 수 있어야합니다 (서버의 대기열에있는 경우). 서버 응용 프로그램이 하드웨어로 끝나면 결과를 요청한 클라이언트에게 다시 보낼 수 있어야합니다.
서버 및 클라이언트 응용 프로그램은 동일한 PC에있을 수도 있고 그렇지 않을 수도 있습니다. 모든 개발은 .NET (C#) 2005에서 수행됩니다.
그래서 제 질문은 다음과 같습니다.이 통신 문제를 해결하는 가장 좋은 방법은 무엇입니까?
MSMQ? 비누? WCF? 원격? 다른?
Remoting은 NetNamedPipeBinding이있는 WCF를 대신 사용합니다! –
나는 리모팅을 할 것이다. Remoting은 나의 필요를 너무 잘 맞는 것처럼 보입니다. .Net 3.0을 사용할 수 있다면 WCF를 선택했을 것입니다.하지만 지금은 옵션이 아닙니다. 앞으로는 마이그레이션을 위해 준비 할 수 있도록 많은 준비를 할 것입니다. (.NET Remoting을 WCF로 마이그레이션 : http://blogs.msdn.com/mattavis/archive/2005/10/10/479280.aspx) – anra
@marc_s, remoting은 죽었을 수도 있지만 VS 2005 (at $는 M $에 따르면)입니다. VS 2008/.NET3.5 또는 향후 2010/.NET4에서 개발할 경우 WCF를 고려해야합니다. 그렇지 않으면 Remoting을 계속 사용하는 것이 좋습니다 ... – Mugunth