If connecting a smart device can create substantial customer value and you do not do it, your competitors will. Terry Ess provides a checklist of questions to consider and methods to evaluate. How much code is necessary for different options is covered in detail as well as the business case.
It is a given that we are moving device-specific data using a reliable but unsecured transport, TCP/IP. But all that TCP/IP provides is the transport of “stuff”, any stuff. What we need above this is a means for our software to access TCP/IP and the structuring of how and what is being transported. We can break this into three areas of investigation, TCP/IP access, high-level transport protocols and data format protocols.
There are two primary access methods. The most common is the socket interface which provides a simple means to access a software TCP/IP stack. Almost (if not all) platforms of any sophistication provide a socket interface. It can even be found on eight bit micro-controllers. However, this is not the only access method. The TCP/IP stack and the underlying physical connection issues can be off loaded. This is possible using the fairly recent “internet chips” or by front ending your device with another internet capable device. The only typical hard resource requirement on the current device is an RS-232 serial interface.
The primary transport protocol choices are:
Proprietary
File transfer protocol (FTP) or its “simple” version (TFTP)
The world wide web protocol (HTTP)
Email protocols (SMTP and POP3)
Network management protocol (SNTP)
The principal data format choices are:
Proprietary
De facto and industry standards (e.g. comma delimited files, …)
Extensible Markup Language (XML)
Finally there is the combination of high-level transport and data format protocols to define the most versatile standard, the web service. Web services are pretty new and the idea of standards is still very much a moving target (though zeroing in quickly). For our purposes web services can be broken into three levels of standardization:
Comply with the premise of web service (HTTP 1.0 and XML 1.0).
Comply with the WS-I Basic Profile (XML 1.0, XML Schema, HTTP 1.1, SOAP 1.0, WSDL 1.0).
Comply with an industry specific definition of a web service (e.g. OPC XML data access 1.0).
More detail on the technical options is provided at: