多串口网关与Web APP更新

此篇针对物联网网关和Web APP设计做些更新总结。

物联网网关

基于ARM Cortex-M4的MicroPython,基于ARM/MIPS/OpenWRT的Python,以及基于Ubuntu/Debian的Python,其主体是类似的,但存在许多差异。Twisted仅仅支持Python2.7,而且是否能够安装到OpenWRT上存疑。所以需要采用多种方式来实现,先使用Twisted,然后在不同平台上,使用多进程、多线程和协程来编写这个物联网网关。

PySerial中有个多端口RFC2217代码,可以作为一个基础设计。该设计中,多个端口运行于单个进程中,监听多个端口,并分别监听多个串口。而物联网网关中,如果支持多路相同模块,则是在单一进程中监听多个串口,并共享单一TCP客户端连接。

Web APP

之前使用F.A.B设计的Web APP,但是有诸多让我用起来不舒服的地方。今天完成了两件事情,即采用Gunicorn替换了FAB自带的Werkzeug WSGI,并考虑使用supervisor管理Gunicorn。替换后,的确速度上有了改观。但很明显,每个Gunicorn worker都是一个单独的进程,所以这是一个多进程的设计,可以充分利用多核处理器了。多进程设计和Ngnix + Twisted/Tornado/Cyclone有区别,但都提升了性能。

此外,用MySQL替代了FAB原先使用的sqlite3。中间会出现一些报错,需要开发者自己酌情修改。

但总的来说,我还是有将其替换成最简flask以及配合其他扩展来开工的冲动。

你可能感兴趣的:(多串口网关与Web APP更新)