主にクラウドベースのアプリケーションを設計しています。アプリケーションの実質的にすべての機能は.NETMVC4になります。
ただし、アプリケーションには、2つの特定のハードウェアを両方ともUSB経由で駆動するために必要な2つの要素があります。
MacとWindowsの両方で、これらのハードウェアデバイスの両方に必要なドライバーを作成します。
問題は、ブラウザベースのアプリケーションがクライアント側にインストールされ実行されているドライバと通信する必要があることです。
これはマルチサイトロールアウトであるため、サーバー側はさまざまなクライアントとリアルタイムで通信する必要があります。
たとえば、問題を説明するためにふりをするシナリオを見てみましょう。
「外部でホストされているクラウドベースのセキュリティシステム。特定の建物のドアにあるマグロックと通信する必要があります。」
ドライバーは、クライアントPC/Mac上でデーモンまたはサービスとして実行されます。
サーバー上で実行されているバックエンドアプリケーションとドライバーの間、またはフロントエンドWebアプリ(java / html)がドライバーと通信できるようになったことを嬉しく思います(可能な場合)。
また、クロスブラウザーとクロスプラットフォームで動作する必要があるため、Flash、Silverlight、ActiveXは方程式から外れています(幸いなことに!!)
堅牢でスケーラブルでパフォーマンスの高いソリューションは何でしょうか?ブラウザで要求が行われてから、デバイスドライバにヒットするコマンドまでの遅延時間はごくわずかである必要があります。たとえば、Webアプリでコマンドを発行してからドライバーに到達するまでに10秒かかることは受け入れられません。
そのため、クラウド全体で迅速に機能できる、信頼性の高いクライアントサーバーサービスバスが必要です。
考慮事項:AWSをホスティング環境として検討しています。AWSには、このアーキテクチャに必要な形のクライアントサーバーサービスバスがありますか?アマゾンAWSルートに行った場合、これで必要な処理が実行されますか:http: //aws.amazon.com/sns/?
別の考慮事項:JavaScriptは、デーモン/サービスによって取得される可能性のある何かをクライアントでトリガーできますか?実質的に遅延がないため、これは非常に単純なソリューションになります。(明らかな理由で)多くのセキュリティ制限があることを知っているので、JavaScriptがクライアントで何ができるかわかりません。実行中のサービスにXMLコマンドを送信するだけです。
誰かがアドバイスできることを願っています。