Contributed by Neev Technologies on 29 May 2013
Google, a prodigy of today’s mobile technologies, has announced improvements to its cloud messaging system in the Google I/O-2013 Keynotes session. Any third party server can now carry out bi-directional and asynchronous communications with android devices through the services provided by Google’s Cloud Connection Server (CCS). CCS uses XMPP protocol over a TCP connection for communications.
Extensible Messaging and Presence Protocol (XMPP) that was founded and primarily used by Jabber for instant messaging(IM), information about near real-time presence and contact list maintenance is an Extensible Markup Language (XML)-based communication protocol - a system of digital message formats and rules for exchanging messages and presence-related information between computing devices. Many predominant IM services such as Google talk, Cisco web-ex connect and the chat feature in Facebook use XMPP in the backend. And now Google CCS is also added to this list. However, all these IM services do not necessarily have a native XMPP implementation. This is because XMPP is based on open standards and open systems for development. Despite the existence of the XMPP Standards Foundation (XSF) in-charge of developing and standardizing the protocols of XMPP, any individual developer, software project or organization can still customize the extensions of XMPP to suit it’s software requirements.
Initially, Transmission Control Protocol (TCP) which is native to XMPP was used for communications. Later, XMPP was developed to perform data transfers via HTTP for web clients and via websockets for real-time messaging.
XMPP can use HTTP in two different ways: Polling, where data transfer is done through HTTP POST and GET methodologies and Binding, which is used for data PUSH methodologies. The native design of the XMPP server component has an in-built entity called ‘transports’ or ‘gateways’ that aids the communication of messages between XMPP and non-XMPP systems.
The CSS uses the XMPP protocol over a long-lasting TCP connection for communications. Before the introduction of CCS, Google had Google Cloud Messaging (GCM). GCM helped servers downstream data of up to 4KB of the payload size to devices and devices to upstream data to GCM using HTTP requests. Now, CCM performs both device-to-cloud and cloud-to-device communications (through XMPP) over the same connection (TCP) and thereby helps developers achieve a better device power management in their apps than GCM.
CCS requires a Transport Layer Security (TLS) connection and Simple Authentication and Security Layer (SASL)-based authentication. This is because a strong security feature (via TLS and SASL) has been built into the core of XMPP specification. CCS incorporates JSON-based payload messages into the XMPP-supported XML structure and uses it for communications. CCS could send up to 1000 such messages asynchronously before it receives any acknowledgement from the device.
These features have improved the options for application owners and servers to easily listen in and update theirs clients due to improved efficiency and speed. Way to go GOOGLE!!!
- Contributed by Yokesh Thirumoorthi
Visit us at Neevtech.com to know more about our offerings.
© 2016 Neevtech Blog | Neev Technologies