Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have designed/built a number of small web apps. Most have been used by clients who operate in a specific geographic area, mostly within the same state/province. For these I would follow best practices but normally didn't worry too much about issues caused by distance from the server.

I have a potential client whose locations are spread out in several countries around the world. What specific considerations should I make in designing an app that will be used in locations that are not near each other?

Some of the more obvious ones I've thought about:

  • i18n/localized strings
  • Static content delivery via CDN
  • Reducing instances where the client needs to communicate with the server
  • Communicating with the server in the background while the client is doing other things

I feel that list should be longer, but I don't have the breadth of experience to be sure.

I am mostly concerned about the marginal issues presented by serving a geographically-distributed userbase that would not otherwise be high-ranking concerns for clients in closer proximity.

share|improve this question
1  
Consider minimizing the amount of data transferred and using compression where possible. –  Bernard Feb 7 '12 at 2:11
    
Check out a similar question I asked on StackOverflow: stackoverflow.com/questions/644100/… –  VirtuosiMedia Feb 7 '12 at 3:26
add comment

2 Answers

up vote 1 down vote accepted

Well it will depend on details of your client but what I would ask includes the following

  • What Kind of network connection will the end users have? Both bandwidth and latency
  • Will they have Modern browsers? If using HTML5's offline options may make sense
  • Can we put servers near the main places where the clients will be?
  • Can we put caching proxies in useful locations

I would also do the following

  • Ensure that all data is sent over the wire compressed
  • Minimize the amount of sent data.
share|improve this answer
    
I wold also ask: Is the network having web caches in remote locations? –  Emilio Garavaglia Feb 7 '12 at 7:49
add comment

I am not web developer, however can add a few pointers as an end user. Living down under, I appreciate when developers think about this. The main things to consider :

  • Latency. The time it takes an photon to travel halfway around the world is fixed by the laws of physics, and you can't change that. What you can do is design tasks so high latency is not a concern. For instance streaming HD video is not affected by high latency, but text entry processing each key press server side is. Essentially if you are waiting for a response, it should be for a few big tasks, not a large number of small tasks.

  • Bandwidth - often not fast, sometimes data is expensive (We have data caps on most internet plans).

The best web sites you won't know where the server is, and don't care, the worst ones you just cannot and do not use.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.