Ablility to create, send and receive messages from the same device. The only third party service needed is to store user's GCM device registration ids. Advantages of this method include being able to write the server-side code in Java, less server set up, and possibly no server costs.