I have a project about SCADA of production machines. I need to retrieve informations about when the production is started, stopped, and causes of stops, etc…
Currently, Java program saves informations on SQL database, and a light web server in PHP and CodeIgniter are used for exploit data. I use AJAX for automaticly update every 1 second the state of each machine on web interface. The Java program queries all PLC every seconds too.
PLC --- (Modbus TCP/IP) --- Java program --- (SQL Database) --- Web server ---(HTML/AJAX) --- Web client
The hardware part is realized with PLCs and a Java program for query of each PLC with Modbus TCP.
I’m wonder about the use of a really real-time system, like Meteor, if I’m not mistaken.
Do you think Meteor is adapted for my application ? An external Java program can accessed to the Meteor’s MongoDB database for add information ?
Without knowing the details of your system, more than provided:
Can the UI be made to be built using Meteor too, or does it have to stay in the other client?
The reason for asking is that Meteor’s real-time effect is made possible via a technology called DDP. In the client there is a DDP/minimongo instance that receives content changes from the database. If you use Meteor for the full app then the DDP/minimongo server/client sync comes for “free”.
From your question it seems that you are willing to replace the database with MongoDB. It seems that you can also run a server somewhere that acts as the DDP server. But, for the client you want to stick with what you have. If you can’t switch client-tech then I’d suggest looking into ddp client packages from node, like this one: https://www.npmjs.com/package/ddp
But, it’s yet possible to change the architecture for having : PLC --- (Modbus TCP) --- Java program --- (MongoDB) --- Metero --- (HTTP) --- Web client
I will read your links about DDP.
I have understand that we link on the client informations with a MongoDB record ? And when the record is updated, the client is automatically updated too ? That’s right ?
Maybe, it’s possible to have : PLC --- Modbus TCP --- Java program --- MongoDB (for historic of states) --- Web client PLC --- Modbus TCP --- Java program --- DDP (for real time state of PLC) --- Web client
Right ?