2011-08-13 4 views
1

다른 응용 프로그램이 내 상태 정보와 통신 할 수있게 해주는 외부 API 라이브러리를 제공하고자하는 미디어 응용 프로그램에서 작업하고 있습니다. 내 응용 프로그램은 C#으로 작성되었으며 API DLL은 동일합니다. 처음에는 전체 인터페이스를 코딩하는 매우 쉬운 방법을 제공 할 것이므로 WCF와 Named Pipes를 사용하는 것이 내 생각이었습니다.가장 적합한 호환 프로세스 간 통신 프로토콜

그러나 나는 예를 들어 안드로이드 나 웹 리모컨으로 만들고 싶다면 다른 언어 나 플랫폼이 응용 프로그램과 통신하는 것을 거의 배제 할 수 있다는 것을 깨달았습니다.

그래서 C# 코드 내에서 빠르고 간단한 인터페이스를 허용하는 프로토콜을 사용할 수있을뿐만 아니라 다른 플랫폼에서도 API를 작성할 수 있습니다.

기본 요구 사항은 다음과 같습니다

  • 로컬 및 원격 통신
  • 낮은 오버 헤드
  • 절차 (미디어 전송하는)
  • 기존의 C#, 오픈 소스 라이브러리 것
  • 파일 전송 호출 착하게 굴 어라.

이전에 XML-RPC와 JSON-RPC를 사용했지만 커뮤니티가 최선의 방법이라고 생각하는 것을 알고 싶습니다.

답변

2

WCF를 사용하면 원하는대로 할 수있는 최선의 방법이라고 생각합니다. 유지 보수가 간단하고 모든 요구 사항을 포괄하며 쉽게 확장 할 수 있습니다. net.pipe를 통해서만 API에 대한 액세스를 제한하지 마십시오. net.pipe, net.tcp 및 기본 http로 기본 바인딩을 사용해야합니다 생각합니다. 나는 각 서비스에 대해 여러 개의 끝점을 의미합니다. 따라서 클라이언트 응용 프로그램은 작성된 언어와 상관없이 API 서버에 액세스하기 위해 사용할 바인딩을 선택할 수 있습니다. 예를 들어

: 동일한 시스템에

  • C#을 클라이언트 응용 프로그램 - 사용 net.pipe 웹에서
  • PHP 클라이언트 응용 프로그램 - 다른 컴퓨터에 기본 HTTP에게
  • Java 클라이언트 응용 프로그램을 사용 - 그물을 사용합니다. 예로서 TCP

:

http://www.kevingao.net/wcf-java-interop/java-client-and-wcf-server.html