Automatic Server-Driven Registration
The backend server is informed about new devices by an out-of-band mechanism and initiates a registration procedure: It requests the required information from the devices. From the responses, it creates and stores a device model instance for future reference.
Context:
Some devices should be connected to a backend server. Often, the backend server has to allocate resources for each device, for example, communication queues or storage space for stored events.
Problem:
Usually, many devices will be connected to one backend server, but not any device should be able to connect at will. Some information about the authorized devices has to be known to the backend in order to be able to contact and manage them. You want to automate this process, but not all devices support Automatic Client-Driven Registration.
Forces:
-
Scalability: In some cases, a large number of devices might be intended to connect to one backend server. Allocating the necessary resources and managing the registration by hand would involve a lot of work.
-
Security: Automatically registering devices may lead to security issues. Manual control over the registration process can increase security.
-
Compatibility: Not all devices support automated registration. If compatibility with these devices is necessary and automation is needed, then automated registration has to be initiated on the server side.
Solution:
Implement automatic registration on the server side. Inform the server of new devices through out of band communication channels or have it scan for new devices periodically. Once a new device is found, have the server establish communication with it and ask for the registration information. Add the device to the registered devices if it is able to provide the information.
Solution Details:
Benefits:
Variants:
Related Patterns:
Known Uses:
- L. Reinfurt, U. Breitenbücher, M. Falkenthal, F. Leymann, and A. Riegg, “Internet of Things Patterns for Device Bootstrapping and Registration,” in Proceedings of the 22nd European Conference on Pattern Languages of Programs (EuroPLoP), New York, NY, USA, 2017. Available at https://dl.acm.org/citation.cfm?doid=3147704.3147721