首先祝所有程序员们节日快乐(今天是程序员日 :))
其次,我正在开发一个项目,规格要求使用一个服务器作为前端和一个应用程序作为后端。这个项目是一个高级智能家居系统。服务器将通过互联网处理来自客户端的命令(就像从房屋外部的遥控器一样),并将它们发送(通过通信渠道)到应用程序(计划使用JAVA应用程序),后者将处理主要的逻辑,如控制硬件设备(灯...),从麦克风(本地麦克风)读取,并访问数据库以充当语音识别系统(离线)。
现在我还在规划阶段,我不确定哪些技术最适合这个项目。我考虑使用Node.js或Apache作为服务器,使用Java应用程序作为后端,以及任何SQL数据库作为应用程序的SRS。
我希望这个插图清楚地说明了系统的工作原理:
主要问题是:
如何使Java应用程序与服务器通信(通信渠道[必须是双向])?
并且您是否推荐除上述服务器之外的特定服务器来完成此工作?
到目前为止,我想到了以下几点:
1-JSP和Servlet(使服务器也是应用程序)。但我不希望服务器处理离线内容,我也不确定Java Servlet是否可以访问硬件接口。我还希望服务器与做出关键决策的系统分开(不同层出于安全原因,而且由于它不像本地[离线]系统那样经常使用)。
2-通信渠道:
A- 这是一个共享文件,但这是一个不好的想法,因为我不希望应用程序时常检查文件内容(接收命令)是否有变化(过多操作)。
B- 通过端口(套接字通信)进行进程间通信似乎是最好的解决方案,但我不知道在操作成本和通信错误方面会出现什么情况。
所用操作系统:Linux Raspbian
编辑:
我确定ZMQ+Apache足以完成此任务,但与Web服务(如SOAP)相比如何?从标准实现和安全性方面来看,Web服务是否是更好的解决方案?
欢迎提出所有相关建议,谢谢!