[NTLUG:Discuss] What is the best method to communicate between a device and a server?

Kipton Moravec kip at kdream.com
Fri Apr 4 16:00:25 CDT 2008


Thanks all. I think I have it narrowed to SSH and HTTP that is a big
help.

This is for a $8 16-bit microcontroller, so it does not have a *nix, but
has a Ethernet stack and already supports HTTP, SNMP, SMTP, and FTP. I
do not know if it supports SSH. But I am looking into it.

Kip

On Fri, 2008-04-04 at 08:34 -0500, Kipton Moravec wrote:
> I am designing a device or appliance (it does not matter what) that
> needs to report results to a server, over the Internet and get new
> instructions once a day or whenever it powers up. (Or had a power
> failure). There could be thousands of these devices.
> 
> I have to assume the device will be behind a firewall so the device will
> have to contact the Linux server and the server will not be able to
> initiate the communications to the device.
> 
> The device will send a progress report each day, reporting a few
> statistics (probably 100 - 200 bytes). The only other time it will
> report is when things go wrong.
> 
> When it checks in, it will look for any new commands for itself,
> including software updates. A command may be to provide additional data,
> or a recommendation to check in at a specific time (for load balancing
> on the server). It may be required to download a new program revision,
> and reprogram itself.
> 
> I do need to keep track of time, so I am thinking of implementing NTP
> also. It will have its own clock that is good to a couple of seconds per
> month.
> 
> What application protocols are best for something like this?
> 
> I can see using FTP to upload and download files with the data.
> 
> I can see using SMTP and a POP server (email) for sending and receiving
> messages.
> 
> Some have suggested SNMP which I am not familiar with.
> 
> Another way is to open a socket to socket custom connection.
> 
> Someone suggested opening up a secure telnet connection.
> 
> I am sure there are more ways to do this. But what I do not know is what
> is the best way to do this. I want something that is robust, and easy.
> (KISS) And preferably small. 
> 
> It is hard to predict what will be required in the future so flexibility
> is good for both sides, the device and the server.
> 
> Any suggestions? And more importantly why one way would be better than
> another?
> 
> Kip
-- 
Kipton Moravec KE5NGX
"Always do right; this will gratify some people and astonish the rest."
--Mark Twain





More information about the Discuss mailing list