I am just doing some Research on the SNAP mobile platform. Just want to clarify one issue which has been bothering me and is not mentioned in any of the pdf documents. It says that the client connects to the SNAP mobile gateway via the Operator. But not much details is given about operator connects. It connects by http/tcp. One way communiction is clear. But how does the other part of the communication work. How does the server connect to the client / mobile without a client ping ? can some one explain this to me.
Not exactly. Also if they register a Listener, does the Listener poll automatically in a certain time limit .. But in a case where the user is logged on to the application and a person in their buddy list contacts them, how does this reverse process work. Is it through the operator, with some id or is it because of the pinging of the client continuously to the server ? Basically is some special service running on the Operator like the BlackBerry service ?
From the SNAP Mobile Developer's Guide
"Add the event listener:
Use addSnapEventListener to trigger asynchronous event retrieval. The SNAP Mobile gateway notifies the event listener of community service events on a regular basis (after getting all events). See document SNAP Mobile: Registration and Login Guidelines for Java™ ME Clients  for more detailed information."
Basically the server collects events which it thens sends to the Listener objects on connected handsets (the devices can filter the events to be sent to them)
There is a backend server handling or the connected features.
Basically still doesnt answer my question. I mean is the mobile client forwarded the message calls via the operator, with some service running on the operator like Blackberry service ? Or does the mobile client continuosly ping the server at a particular interval. I am more interested to know what happens at the Operator level.
Ok, I think I get what you are asking. As I have not participated in developing that system so I do not think I am qualified to answer :-)
However, if you are interested in general how this can be achieved I would like to point you to another project, Mobile Web Server (mobile Apache)
The project includes "A connectivity solution that enables HTTP traffic to a mobile device from the Internet."
How does the server connect to the client / mobile without a client ping ? can some one explain this to me.
Essentially client does "ping" the server. As Hartti explained the asyncronous event retrieval is initiated by the client. Client sends requests to the SNAP Mobile server to retrieve events in certain time periods usually at least every 20 seconds. Server then responds to these requests returning events for the client. Server does not contact client without the client sending requests first to the server.
This all happens with HTTP or TCP over the operator network. In a way you could think of SNAP Mobile server as a web service that a phone web browser application connects via operator network with HTTP. The browser sends the HTTP request and the web server responds to that.
Yeah i guessed that was the solution. because there is very few possible ways where the server can contact the mobile phone client directly (eg. Blackberry service). If SNAP could do that, it would be so cool, because the GPRS costs would be minimized on the client side.