One of the things that stump those more familiar with the web (or mobile web) when dealing with messaging is how different the two are.
In web and mobile web we’re essentially working on a Request/Response model. This is not the case for messaging where both Send and Receive channels are disjoint. For example, if you send a MO to an app (eg. a chat app) like “send mikey hey dude, how’s it going?” to a shortcode say 112233 – it may take some time for the response to reach you
The main reason for this is the architecture. If you look at The Mobile Messaging Architecture you will see this: there are many links in the messaging chain. This is even the case within the operator network and cross operator networks. Between links there may be network latency issues and message congestion – hence slowing down message transfer. Message congestion occurs mainly because SMS systems eg. SMSC, Aggregators work on the store-and-forward model – this means that messages are queued until delivered to the next party in the chain. Queue buildups due to bad messages or network issues are very common. Another cause of message congestion is high message load – think American Idol voting via SMS kind of situations.
So let’s take an example of an MO initiated app eg. chat. When the user sends “send mikey hey dude, how’s it going?” to say shortcode 112233 – it first goes to the operator network, then to the operator SMSC, then the operator SMS gateway, then the aggregator, then finally to your app. The MT response to this MO follows the reverse path to the user’s handset. Now if there is message congestion on any of the links then the message delivery is delayed.
For web and mobile web – there isn’t this long convoluted chain. There are usually proxies and operator gateways (which I will cover in another chapter) but the essential transaction model is request/response. In this case, when there are network latencies – it usually results in connection timeouts.
Another thing to note is that unlike web and mobile web, the SMS messages are limited to 140 bytes (or 160 using the 7bit GSM encoding) and there are no headers or cookies.