質問: ### 前提・実現したいこと 方向性の質問になります、ご意見を頂けないでしょうか。 Webでシステムを構築し社内で利用をしています。 仕様変更や、各部署の細かい要望に答える為に Windowsのクライアント化に着手することになりました。 Web上のシステムでは、定期的にサーバとデータの相互通信を 行っていますが仕様追加によってデータの通信量が多くなってしまい、 今回はスリム化目指しています。 Windowsのクライアント上でサーバとのデータの 相互通信を行いたいと思ったときに、WebSocketとポーリングが 思いついたのですが、今どきのデータ通信はどのようは手法で 取り組まれておりますでしょうか。 新しい手法にも取り組んで行きたいと考えております、 よりよい手法はないかと模索し取り組んでいきたいです。 よろしくお願い致します。 ### 補足情報(言語/FW/ツール等のバージョンなど) クライアント:Windows10 PRO 使用ブラウザ:Chrome ブラウザ依存から仕様を変更し Windows UWPでの作成を予定。 社内Windows Serverで、クライアントPCへ自動配布インストール、 更新を行いたいと思案中。 Webアプリケーションサーバは社内にて存在し管理。 DBサーバは外部に存在。 社内PC ブラウザ → 社内Webアプリケーションサーバへは、HTTP。 一部はAPI化にて実装し、Jasonファイル出力しクライアント側の制御を行う。
回答: いくつか社内環境用の通信を含むシステム構築をしたことがありますので、ご参考まで回答させていただきます。 まず現環境や目指すところの違いにより、下記のように方針が分かれてくると思います。 ・現サーバがサーバサイド処理+Webを中心としており、Winクライアントでも極力流用する場合 -> Webサーバと親和性の高い技術 (WebSocket等) を利用する ・スリム化や仕様の高度化に対応できるよう、Winクライアントに極力機能を移して再開発する場合 -> 性能が高く、複雑な処理を構築しやすい技術 (DB通信 / MQ通信 等) を利用する 私の場合は社内システムの限られた環境内だけでしたので、クライアントサイドでのDB通信+データ処理を用いることが多く、相互通信のため、DBポーリング / TCP通信 / MQ通信 等を利用した経験があります。 どのように選択・組合わせしていくかはケースバイケースになると思います。