Meteor is it suitable for my project?

Hello everybody,

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 ?

Thanks you in advance ! :slight_smile:
Aurélien, from France

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

There are java ddp clients available too: https://github.com/kenyee/java-ddp-client seems to be popular. Other ddp-clients: http://meteorpedia.com/read/DDP_Clients

Thanks you for your response @spiralis !

I see no downside to using MongoDB.

Currently, the project run away with only one PLC for testing.

The PLC used, it’s a specific equipment : http://i.ebayimg.com/images/g/GuMAAOSwNSxVMA0L/s-l300.jpg

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 ?

I’m listening to all views :slight_smile:

If you are willing to leverage the full meteor stack:

PLC --- Modbus TCP --- Java program --- MongoDB --- Meteor (server/client/mobile)

You will get realtime updates between MongoDB and Meteor whenever you add information in MongoDB via your Java program, for free.

I second @akryum on his comments. If you can, I’d suggest using Meteor for the full right hand side of your diagram. :thumbsup:

Thanks for your responses.

In a first time and because a lack of time, I will continue to finalize my project with Java, PHP, Ajax,…

(because I’m apprentice and I go back to school for 6 months in September, therefore I need to finish the project before leaving)

When I will come back at my company, I will study a better solution with Meteor and Mongo DB.

:slight_smile: