The core component of the system is the DroidHome component,
which discovers and maintains DLNA and UPnP devices.
DroidHome plays the role of a proxy server for remote devices
and informs these remote devices about the state change of an
indoor device through a message push mechanism. The message
push mechanism is based on an existing push service on the cloud.
A mobile device can be notified in the background by the
message push server if the corresponding user has registered to
the server.