This application relates generally to wireless communication and specifically to network messaging for mobile communication devices.
There is a continually increasing number of mobile communication devices in use today, such as mobile telephones, PDAs with wireless communication capabilities, and two-way pagers. Software applications which run on these mobile communication devices increase their utility. For example, a mobile phone may include an application which retrieves the weather for a range of cities, or a PDA may include an application that allows a user to shop for groceries. These software applications take advantage of the mobility of these devices and connectivity to a wireless network in order to provide timely and useful services to users, regardless of where the users are. However, due to the restricted resources of mobile communications devices, and the complexity of delivering data wirelessly to a mobile communication device, developing software applications for mobile communications devices remains a difficult and time-consuming task.
Web Services are emerging as the de-facto mechanism to allow disjoint parties to collaborate on the Internet. Web services allow businesses and other parties to collaborate in a universal, platform and language neutral way and promise to overcome traditional barriers encountered in linking numerous and diverse information systems. Web services are still in their relative infancy, with many technology players cooperating to define the emerging standards, and corporations beginning to throw their weight behind the thirst to link disparate systems over the web using this standard approach. A common model employed in web service offerings is the traditional synchronous request-response type interaction whereby the consumer of the service passes some information and receives something in response. In this scenario the user of the device requests or “pulls” the content from the network. In other words, the content is constantly present in the network, but the user needs to issue a retrieval request to access the information (e.g. using a browser on the mobile device).
In real-life applications there is a lot of information that is available to a user but hardly accessible, as the user doesn't know when the information is posted or when there is a change in the status of the posted content. Such information ideally needs to be “pushed” to the user either periodically or when certain predefined events occur. Some examples of possible push situations are unrequested arrival of new e-mail, stock market information, multi-user game updates, etc. This ability to push information spontaneously implies an asynchronous messaging framework. From a practical point of view, wireless communications have higher cost than wired communications and usually are characterized by higher latency times, making a “pull” from a wireless device inherently expensive. Slow connection times sometimes might be critical to the user's experience. Push technology can be wireless friendly. Its users can benefit in a number of ways: push technology can make useful data instantly available; can improve user perception of the wireless network; can make data delivery cost effective (since the device does not have to repeatedly poll for data); and can extend battery life.
Wireless push would involve a server that, given a user's specific one-time request to be notified with specific data on predefined conditions, would send this data to the user's device as soon as the data is available and/or the conditions have been met. The communication protocol and user/device addressing are device-specific and the server must be aware of them. Web Services have become a ubiquitous standard for access to content resources as well as communicating to back-end servers. Their number and complexity have increased considerably in recent years. However, invoking Web Service operations from a wireless device using the synchronous communication method exclusively can be expensive and impractical.