Android Cloud to Device Messaging

Last updated
Android Cloud to Device Messaging
C2DM Service Architecture.svg
Overview of the C2DM Service architecture.
Developer(s) Google
Target platform(s) Android, Chrome
Programming language(s) Java
StatusDiscontinued
LicenseOpen-source
Website developers.google.com/android/c2dm/   OOjs UI icon edit-ltr-progressive.svg

Android Cloud to Device Messaging (commonly referred to as Cloud to Device Messaging), or C2DM, is a defunct mobile notification service that was developed by Google and replaced by the Google Cloud Messaging service. It enabled developers to send data from servers to Android applications and Chrome extensions. C2DM originally launched in 2010 and was available beginning with version 2.2 of Android. [1] On June 27, 2012, Google unveiled the Google Cloud Messaging service aimed at replacing C2DM, citing improvements to authentication and delivery, new API endpoints and messaging parameters, and the removal of API rate limits and maximum message sizes. [2] Google announced official deprecation of the C2DM service in August 2012, and released documentation to assist developers with migrating to the new service. The C2DM service was discontinued for existing applications and completely shut down on October 20, 2015. [3]

Contents

Technical details

The C2DM service consisted of sub-services and interfaces necessary with maintaining security and reliability. When an application registered for C2DM messages and data, it received a C2DM Registration ID from the service. This identifier was unique to the application on the device, and was used to identify the device that the data or message request was intended for. This identifier was typically sent by the client application to a server owned by the developer or creator for tracking and statistical purposes. Upon sending a data or push request, the server sent an authentication request and the C2DM Registration ID of the device to the C2DM authentication service, which responded with an authentication token upon success. The third party server then submitted both identifiers within the final data request to be enqueued and sent to the device. When the device received the information from the C2DM, the request was removed from the C2DM queue. [4]

Migration to the Google Cloud Messaging service

Shortly after announcing the Google Cloud Messaging service, Google published documentation to guide application developers with migrating from the C2DM and onto the new service. [5] Migrating to the service required SDK and code changes, as well as a release of an application update to the publishing repository (such as Google Play) for downloading and updating. The C2DM and the Google Cloud Messaging service were not interoperable between each other; you could not send data requests using one service to be received and processed on the client app using the other. The migration also required changes to be made on the third party server operated by the developer (depending on the complexity and use case regarding the data sent). [5]

Related Research Articles

Kerberos is a computer-network authentication protocol that works on the basis of tickets to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner. Its designers aimed it primarily at a client–server model, and it provides mutual authentication—both the user and the server verify each other's identity. Kerberos protocol messages are protected against eavesdropping and replay attacks.

Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network. The protocol is widely used in applications such as email, instant messaging, and voice over IP, but its use in securing HTTPS remains the most well known.

<span class="mw-page-title-main">XMPP</span> Communications protocol for message-oriented middleware

Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

IEEE 802.1X is an IEEE Standard for port-based network access control (PNAC). It is part of the IEEE 802.1 group of networking protocols. It provides an authentication mechanism to devices wishing to attach to a LAN or WLAN.

Push technology, also known as server Push, refers to a communication method, where the communication is initiated by a server rather than a client. This approach is different from the "pull" method where the communication is initiated by a client.

An open API is a publicly available application programming interface that provides developers with programmatic access to a software application or web service. Open APIs are APIs that are published on the internet and are free to access by consumers.

<span class="mw-page-title-main">OpenSocial</span> Public specification aimed at social networking applications

OpenSocial is a public specification that outlines a set of common application programming interfaces (APIs) for web applications. Initially designed for social network applications, it was developed collaboratively by Google, MySpace and other social networks. It has since evolved into a runtime environment that allows third-party components, regardless of their trust level, to operate within an existing web application.

A single-page application (SPA) is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of a web browser loading entire new pages. The goal is faster transitions that make the website feel more like a native app.

An application programming interface (API) key is a unique identifier used to authenticate and authorize a user, developer, or calling program to an API. However, they are typically used to authenticate and authorize a project with the API rather than a human user.

<span class="mw-page-title-main">Android Debug Bridge</span> Tool for debugging Android-based devices

The Android Debug Bridge is a programming tool used for the debugging of Android-based devices. The daemon on the Android device connects with the server on the host PC over USB or TCP, which connects to the client that is used by the end-user over TCP. Made available as open-source software under the Apache License by Google since 2007, its features include a shell and the possibility to make backups. The adb software is available for Windows, Linux and macOS. It has been misused by botnets and other malware, for which mitigations were developed such as RSA authentication and device whitelisting.

<span class="mw-page-title-main">Google Cloud Messaging</span> Mobile notification service

Google Cloud Messaging (GCM) was a mobile notification service developed by Google that enables third-party application developers to send notification data or information from developer-run servers to applications that target the Google Android Operating System, as well as applications or extensions developed for the Google Chrome internet browser. It was available to developers free of charge. The GCM Service was first announced in June 2012 as a successor to Google's now-defunct Android Cloud to Device Messaging (C2DM) service, citing improvements to authentication and delivery, new API endpoints and messaging parameters, and the removal of limitations on API send-rates and message sizes. It has been superseded by Google's Firebase Cloud Messaging (FCM) on May 29, 2019.

Backend as a service (BaaS), sometimes also referred to as mobile backend as a service (MBaaS), is a service for providing web app and mobile app developers with a way to easily build a backend to their frontend applications. Features available include user management, push notifications, and integration with social networking services. These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs). BaaS is a relatively recent development in cloud computing, with most BaaS startups dating from 2011 or later. Some of the most popular service providers are AWS Amplify and Firebase.

Google APIs are application programming interfaces (APIs) developed by Google which allow communication with Google Services and their integration to other services. Examples of these include Search, Gmail, Translate or Google Maps. Third-party apps can use these APIs to take advantage of or extend the functionality of the existing services.

<span class="mw-page-title-main">Threema</span> Instant messaging smartphone service

Threema is a paid cross-platform encrypted instant messaging app developed by Threema GmbH in Switzerland and launched in 2012. The service operates on a decentralized architecture and offers end-to-end encryption. Users can make voice and video calls, send photos, files, and voice notes, share locations, and make groups. Unlike many other popular secure messaging apps, Threema does not require phone numbers or email addresses for registration, only a one-time purchase that can be paid via an app store or anonymously with Bitcoin or cash.

IBM API Management is an API Management platform for use in the API Economy. IBM API Connect enables users to create, assemble, manage, secure and socialize web application programming interfaces (APIs).

<span class="mw-page-title-main">Microsoft Push Notification Service</span> Push Notification Service for the Windows Phone

Microsoft Push Notification Service is a mobile service developed by Microsoft. It allows for developers to send push data from servers to Windows Phone applications. The MPNS is natively supported on applications that target the Windows Phone 8 Operating System. Microsoft announced the Windows Notification Service for Windows 8 and Windows Phone 8.1 in 2011, effectively replacing the MPNS with this service. The MPNS can be used on applications that are installed on Windows Phone 8.1 if the source code is migrated to a Microsoft Silverlight application, modified to target Windows Phone 8.1, and was already registered to use the MPNS before the upgrade.

<span class="mw-page-title-main">Windows Push Notification Service</span> Notification service developed by Microsoft

Windows Push Notification Service is a notification service developed by Microsoft for all devices running Microsoft Windows platforms. It allows for developers to send push data to Windows and Universal Windows Platform applications which implement the feature. Designed as a successor to the Microsoft Push Notification Service, it was first supported on Windows 8 and subsequently on Windows Phone 8.1 upon its release.

Firebase Cloud Messaging (FCM), formerly known as Google Cloud Messaging (GCM), is a cross-platform cloud service for messages and notifications for Android, iOS, and web applications, which as of May 2023 can be used at no cost. Firebase Cloud Messaging allows third-party application developers to send notifications or messages from servers hosted by FCM to users of the platform or end users.

The SafetyNet API consists of several application programming interfaces (APIs) offered by the Google Play Services to support security sensitive applications and enforce DRM. Currently, these APIs include device integrity verification, app verification, recaptcha and web address verification. It is an extension of AVB2.0 and dm-verity.

References

  1. Vogel, Lars (September 12, 2011). "Android Cloud to Device Messaging (C2DM) - Tutorial" . Retrieved September 4, 2016.
  2. Rubio, Daniel (August 12, 2012). "Google Cloud Messaging for Android (GCM) Unveiled, to Replace C2DM Framework" . Retrieved October 15, 2015.
  3. "Cloud to Device Messaging (Deprecated)". Google . Retrieved October 15, 2015.
  4. Meier, Reto (March 22, 2012). Professional Android 4 Application Development . 2. Indianapolis, Indiana: John Wiley and Sons, Inc. ISBN   978-1118102275 . Retrieved October 15, 2015. c2dm registration id.
  5. 1 2 "Migration from C2DM". Google. Archived from the original on September 6, 2015. Retrieved October 15, 2015.

Official website