Jump to content

Transmitting test data over internet using TCP or HTTP?


Recommended Posts

I'd like it if my test stations sent their test results to a web server. I'm wondering if anyone has done this. As I see it, I can probably do some port forwarding and expose a Maria/MySQL database over the internet or I could give that database a thin web interface and send the data over PUSH http requests. Are there pro/cons to one over the other? TLS is an option for either. Do you think HTTP would be more firewall friendly?

Link to comment

I don't know how secure the database itself would be when exposed to the internet. I suppose in theory it could be hardened, but theres a lot of surface area you have to understand. I'd lean towards a web server myself, as this lets you tightly restrict what you're going to let clients do. For encryption, I know the labview http client supports tls, and it looks like mysql does too, if configured. From labview you'd have to use the odbc/activex connector, since labview doesn't have built-in tls support (just the http client). Https is almost certainly more firewall friendly.

  • Like 1
Link to comment

I would definitely recommend a thin client. It should be easier to secure (you just don't build in the ability to do anything you don't want it to) and HTTP is going to be much more firewall friendly.

It does require building that thin client though! If the load is low this could be LabVIEW web services though (but if you have experience with a more suitable technology I would consider that).

Link to comment

Never expose a database directly and always always use TLS or SSH tunnelling. Use certificate pinning wherever possible.

The preferred method is a web server to authenticate and then HTTPS or websockets depending on the type and frequency of data. The current trend is for web APIs which you can easily do in LabVIEW and insulates your software, somewhat, from SQL injection.

Edited by ShaunR
Link to comment

Depends on what you mean by "test data". If you just mean data, theres a small company that has a web service platform (I think they do hosted AWS but I may be wrong): https://www.daq.io
Or you could ask your sales rep about the NI data management software suite: http://www.ni.com/data-management-software-suite/
You could also use a more non-labview option, like influx cloud: https://www.influxdata.com/products/editions/

If you mean test data like "textual logs of stuff", then the common open source option would probably be elastic search https://www.elastic.co/products/elasticsearch which Ive read and heard is hard to set up, but might be easy enough if you use bitnami: https://bitnami.com/stacksmith which is how I exclusively set up anything I want to use that consists of more than a single executable. Docker might also be an option in that realm.

If you mean test data like "teststand reports", maybe the new systemlink from NI would be a good fit: http://www.ni.com/en-us/shop/electronic-test-instrumentation/application-software-for-electronic-test-and-instrumentation-category/systemlink/monitor-automated-tests-with-systemlink.html
This also supports the plain data use case by letting you upload tdms files and store tags to be displayed in a dashboard.

Edit: Just because, I thought I'd google "test result storage database" and it came up with this: https://maintainable.com ...for a cloud based company their website is odd. But, they have a bullet point: "Integrates with industry software like NI TestStand".

Edited by smithd
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.