The Machine-to-machine (M2M) communication is a emerging domain of the telecommunication sector. M2M communication enables the interactcion of intelligent devices in order to share their status or control each other. A M2M device is a platform usually consisting of an application component and a connectivity component. The application component is a set of sensors (smart meter, camera, GPS) and actuators (robotic arm, vehicle controller electronics, servo motor) and solves a problem relating to the given domain. For example measure the room's temperature, switch the light on, if detecting the presence of the user, or determine the vehicle's position. The connectivity component is responsible for the communication with the back-end server, where the other parts of the system is running.
A common problem of the M2M application development is the diversity of the devices providing connectivity, and the general handling of the initial connection to the server. Solving this problem realizes the vision of easy installation of the devices, meaning that after switching on the device everything happens automatically: the device connects to the network, configures itself, authenticates itself to the remote server, collects measurements, uploads data to the server. Then this data is processed and displayed by the server automatically. For example by browsing on the application server a pop-up windows immediately displays the data in diagrams when the user turns on the M2M device.
In order to solve the problem it is practical to implement an universal software agent being able to configure different communication related parameters of the modem, and supporting the bootstrap i.e. connecting to the server for the first time. Implementing this agent with use of standardized interfaces and communication protocols hides the diversity of devices from the M2M application developer. This enables the unified management of devices which make development easier and more cost effective.
I have implemented this kind of agent for a Cinterion M2M device. My implementation uses the standardized interface specified by the ETSI M2M, and the server side component is the Cumulocity provided by Nokia Siemens Networks.