Network Speeds: As a developer you should be mindful!



Network? What Network?

In any complex enterprise application system network communications is an inevitable part of how the system will get accessed. Web applications are accessed through a complicated infrastructure of communication devices. Developers never take notice nor care about the network (most of the time) that delivers application to users, but developers should care, specially now that more applications are accessed through mobile devices.

Here is a link that talks about how mobile networks might affect the performance of applications from Google IO. This talk really presents a valid point on how you can develop a strategy around your application in order to be more responsive within the constraints of mobile networks.
Mobile Performance


Wifi Networks!

After seeing this talk I started wondering about Wifi networks. Even though mobile networks are becoming ubiquitous, the speed and performance are still not comparable to Wifi networks. Any enterprise system application will surely be accessed through a Wireless network and not only that, an enterprise system application will surely be accessed in different devices. (BYOD (Bring Your Own Device) is surely becoming an acceptable norm in organizations).

I have been reading the 802.11ac specification just out of curiosity. The 802.11 ac is the new wireless specification after 802.11n that promises to be much faster. It promises up to 4900 Mbps in the 5GHz band.
That is fast, at those speeds you can probably watch up to 100 Ultra HD 4K Videos simultaneously (If I got the math right Netflix 4K Streaming).  At those speeds, should we still be mindful of any network performance that might affect the delivery of web applications ? Surely most enterprise systems will not require streaming videos like Netflix but in my opinion any developer should develop the basic understanding of how this networks work.


TCP/IP

At least a developer should know the TCP/IP stack and how each layer of the TCP/IP plays a role in how the data are sent through the network. Knowledge of the protocol that holds the internet together can come in handy in terms of what strategy you can put in place for your applications in order to best utilize its network resources. Asynchronous and synchronous strategies are already in place in most enterprise systems. I think it is important to keep in mind when and how these strategies should be used.



In the end.

Any data being sent or received by any enterprise application will always travel through a complicated network of communication devices. How this devices work and knowing the network limitations can help you put a nice strategy in place in order to mitigate network limitations, whether caching, synchronous or asynchronous communication or even up to a level of manipulating data packets the reality is that any application today will eventually need to send or receive data. So the question is are you ready to face the fact that the networks of today has its limitations ?



Comments

Popular posts from this blog

OAuth 1.0a Request Signing and Verification - HMAC-SHA1 - HMAC-SHA256

Spark DataFrame - Array[ByteBuffer] - IllegalAurmentException

Gensim Doc2Vec on Spark - a quest to get the right Vector