XMPP is already implemented and supported through the
Clayster.Metering.Xmpp module that we mentioned earlier. This module models each entity in XMPP as a separate node in the
Topology data source. Connections with provisioning servers and thing registries are handled automatically through separate nodes dedicated to this task. Friendships are handled through simple child creation and removal operations. It can be done automatically through requests made by others or recommendations from the provisioning server, or manually by adding friends in the CMT. All we need to do is provide specialized classes that override base class functionality, and add specific features that are needed.