2011-08-13 9 views
1

私は他のアプリケーションが私のクエリステータス情報と通信できるようにする外部APIライブラリを提供したいメディアアプリケーションに取り組んでいます。私のアプリケーションはC#で書かれており、API DLLは同じものです。最初は、WCFとNamed Pipesを使用するのは、インターフェイス全体をコード化する非常に簡単な方法を提供するということでした。最も互換性のあるプロセス間通信プロトコル

しかし、これを実行すると、他の言語やプラットフォームがアプリケーションと通信できなくなることがわかりました。例えば、アンドロイドやWebリモートを作成したい場合に便利です。

私の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

関連する問題