Communication method for data exchange between a server and several clients for 10+ years

101 Views Asked by At

We're running an experiment which will involve collecting data from multiple stations around the world. Each station will be providing HDF5 files with magnetic field measurements in a rate of 1 kHz and some auxiliary data in real time. The latency is going to be a few minutes.

I'm assigned to design this program (in C++, with clients/server model, with server being in linux and clients being cross-platform), and apparently I'll be designing this from scratch. My first concern is not to really do everything from scratch because this will be more error prone and pure wrong, so my question here is: What information/file transfer protocols/libraries should I use so that

  1. The program can live for 10+ years with minimal maintenance

  2. I can have very good support from the community for when I need help.

Since we need something relatively secure, my first thought was libssh (the only cross platform opensource library available out there for ssh), but then after discussing with some pros there I realized that the support there isn't so wonderful because only a few people work with libssh. The pros there hesitated in suggesting OpenSSL, but with OpenSSL I'll have to write my own authentication (apparently, I'm not an expert and that's why I'm asking).

What would you suggest? Please share your vision to whether I should go for OpenSSL, libssh, or something else.

PS: Please, if you're going to start off by saying this question is off-topic, move on and ignore it. Consider being helpful rather than critical.

If you require any additional information, please ask.

1

There are 1 best solutions below

0
On

I think that OpenSSL might be a good choice. No you do not have to "write you own authentication" - you just need to generate certificates and keys and put them in the right places - that is all. I would suggest to look at the examples in <openssl-source-dir>/demos and <openssl-source-dir>/apps to get you started. Reading a book about OpenSSL would also be a good idea - for many other reasons (sometimes not directly related with SSL/TLS).

I hope that helps.