In the last few years, the smart devices became part of our lives and must be taken into account in designing software solutions. Mobile operating systems are evolving faster and faster and they are offering the full functionality of a desktop robust operating system, however the scarce resources and unique environments are bringing new challenges and problems to solve during software development. Both cellular coverage and battery are scarce resources, so optimal network communication strategies have to be taken into consideration during the design process of a network application.
On these devices the applications mainly communicate via HTTP protocol. Data synchronization most of the time is a series of periodic Pull requests. This is a very expensive method, uses quite a lot of battery and creates unnecessary network traffic. To solve this problem in the last couple of years Push technologies are started to thrive and evolve.
Using push notifications causing less battery drain and less network traffic. Push messages are sent from the server to the client, so there is no unnecessary communication for syncing. Moreover these Push technologies are designed to use as less resource as possible and maintaining push connection is a much cheaper solution than periodic pull requests.
In my thesis I implement a Push solution to communicate via a Java Enterprise Application and a Google Android device by using MQTT protocol designed by IBM.