2016-06-23 12 views

答えて

0

これは広範な質問であり、あなたはアイデアを求めて、私にいくつかの考えを注ぐようにしました。

どこから始めますか?双方が理解しているWebサービスのプロトコルを定義します。たとえば、アンドロイドクライアントが(PUTまたはPOSTを使用して)メッセージをプッシュできるURIを定義し、vb.netクライアントが(GETを使用して)更新をポーリングできるようにします。ここで1つのURIを使用するので、URIに送信されるペイロードは何をすべきかを定義しなければなりません。例えば、アンドロイドクライアントは '{command:restart}'というメッセージを投稿すると、vb.netクライアントはメッセージが受信された場合にマシンを再起動する必要があることを知る必要があります。

ここにはいくつかの注意点があります。 vb.netクライアントはURIをポーリングしてコマンドを取得する必要がありますので、コマンドを送信して実行するまでに時間がかかりますが、現在ではコマンドが実行されたかどうかは分かりません。他の当事者のために、最後に、実行されたか更新された場合は、URIからコマンドをクリアする必要があります。そうでなければ、マシンは、この例では、再起動ループに入ります。

したがって、最初の問題はとext ra URI。ここで、アンドロイドクライアントはvb.netクライアントが提供するシステム状態のいくつかの王をポーリングできます。たとえば、vb.netクライアントは、再起動する前に '{state:restarting}'というメッセージをURIに送信することがあります。もちろん、vb.netクライアントは、何らかのイベントが発生するたびにそのURIを更新する必要があります。セキュリティの問題?セキュリティは難しい。証明書を作成し、サーバーに送信された要求に署名することができます。それから、サーバーは、あなたが本当にこの要求を送信したかどうかを確認できます。またはあなたの証明書を持っている誰かが、要求を再生したり、すべてのものを壊す何らかの方法を見つけました。したがって、TLScertificate pinningのキングを使用することもできます。あなたはすでにこれを知っているかもしれませんが、とにかくそれを繰り返すつもりです。安全でないネットワークで資格情報を送信しないでください。また、base64(basic authenticationで使用)は何らかの種類の暗号化ではありません。最後の問題は、コマンドに含めることができるノンスで解決することができます。または、vb.netクライアントは、コマンドを受信したときに、そのコマンドをURIから削除します(DELETE付き)。アンドロイドクライアントがリクエストを再度送信しないようにステータスURIを更新する必要があります。

また、Web SocketsのようなWebサービスの使用技術を削除することもできます。その後、アンドロイドクライアントはソケットにコマンドを送信できます。サーバーはコマンドを受信し、vb.netソケットに送信します。コマンドがvb.netソケットで受信されると、サーバーに何らかの種類の配信確認が送信され、コマンドが実行されます。サーバは領収書を受信し、コマンドが実行されることを知らせるようにアンドロイドクライアントに確認メッセージを送信します。が実行されます。

あなたはので、私がまとめてみましょう、このようなソリューションを実装する際に行うのですかたくさんあります見ての通り:

  • あなたはケースを使用定義が。どのような操作がシステムでサポートされなければならないのか、どのような場合に参加パーティーが関与するのか。
  • 各ユースケースのコーナーケースを見つける。たとえば、解決する必要がある認証の問題です。
  • 可能な限り最良の方法であなたのアイデアをサポートする技術に関するいくつかの研究を行います。多分、Webサービスが最善の解決策ではないでしょうか?とにかくWebサービスとは何ですか? (誰でも使用する流行語のいくつかの王と思われる)。たぶんWeb SocketsXML RPC、さらにはSOAPが良い候補ですか?
  • コンポーネント
  • はそれを

最後の一つのノートを実装するためのプロトコルを定義します。私はこれがかなり長い答えであることを知っていますか?読者の頭にたくさんの質問が出るかもしれません。しかし、落胆しないでください!あなたは私がここに書いた何もする必要はありません。多分セキュリティーの事を除いて。

+0

ありがとう 私はまだ学生ですが、これは私の卒業プロジェクトです 私はこれらのトピックについてたくさん知らない –

関連する問題