Back in 2003 I realized the importance of Push in mobile. But Push has been a "closed" feature. As such I have been wanting to build a Push framework for mobile devices which as the project name implies is simple (but effective).
SimplePush is a client and server infrastructure that allow developers to embed (and leverage) Push functionality into their applications using a simple yet flexible API, XML or JSON for data-exchange, and well-known TCP port numbers.
SimplePush (shall) expose the following characteristics:
Messaging is asynchronous
Sending and consuming pushed messages shall be an asynchronous operation.
Use of compact but standard data-exchange formats
SimplePush defines to data-exchange schemes a) XML, and b) JSON. The data-exchange message format is described in the Data-Exchange Format wiki page.
Occurs over well-known communication channels
simple-push 3687/tcp simple-push simple-push 3687/udp simple-push simple-push-s 3688/tcp simple-push Secure simple-push-s 3688/udp simple-push Secure # C. Enrique Ortiz -- January 2003
Work on clients that lack public IP visibility
Since mobile clients IP addressability typically are dynamic, restricted to a specific subnet and translated are not publicly visible. For this reason SimplePush uses a surrogate architecture and push-pull to simulate Push.
Allow endpoints to register or subscribe to receive Push(ed) messages
Endpoints wanting to received Push messages can subscribe to receive messages. Registration is based on the concept of "owners", "queues" and "tags" which are used for filtering. The concept of owners, queues and tags are covered in the About Owners, Queues and Tags page.
Allow endpoints to publish (Push) messages
Endpoints wanting to push messages out to do by creating messages which are appropriately authoring i.e. "tagging" and "queuing" messages. The concept of owners, queues and tags are covered in the About Owners, Queues and Tags page.
Provide APIs for Android, JavaME and iPhone
Must be CPU and battery-friendly
Because of resource constraint nature of mobile handsets, SimplePush must be CPU and battery-friendly. SimplePush must be configurable and shall implement a fast/cheap algorithm to discover push messages and investigate the use of dynamic algorithms for such discovery, based on message priority techniques.