首先向所有程序员干杯[今天=程序员日:)]
其次,我正在开展一个项目,其中规范要求使用服务器作为前端,并在后端使用应用程序。该项目是一个先进的智能家居系统。服务器将通过互联网处理来自客户端的命令(比方说,就像来自屋外的遥控器)并将它们(通过通信渠道)发送到将处理主要逻辑的应用程序(计划使用 JAVA 应用程序)像控制硬件(灯...),从麦克风(本地麦克风)读取和访问数据库以充当语音识别系统(离线)。
现在我仍处于规划阶段,我不确定哪种技术最适合这个项目。我正在考虑使用Node.js或Apache作为服务器,使用JAVA应用程序作为后端,并为应用程序的 SRS 使用任何SQL 数据库。
我希望这张图清楚地展示了系统是如何工作的:
主要问题是:
使 Java 应用程序与服务器通信的最佳方式是什么(通信通道 [必须是双向的])?
并且您是否为此工作推荐了除上述服务器之外的特定服务器?
到目前为止我的想法是:
1- JSP 和 servlet(使服务器也是应用程序)。但我不想让服务器处理离线的东西,而且我不确定 java servlet 是否可以访问硬件接口。我还希望服务器与做出关键决策分开(出于安全原因的不同层,因为它不会像本地 [离线] 系统那样频繁使用)。
2-沟通渠道:
A-共享文件,但这是一个坏主意,因为我不希望应用程序不时检查文件内容是否更改(收到命令)或不更改(过度操作)。
B- A 通过端口的进程间通信(套接字通信)似乎是最好的解决方案,但我不知道在操作成本和通信错误方面会如何转变。
使用的操作系统: Linux Raspbian
编辑:
我确信 ZMQ+Apache 足以胜任这项任务,但与 WebServices(如 SOAP)相比如何?就标准实现和安全性而言,WebServices 会是更好的解决方案吗?
欢迎所有相关建议,TQ