Our team is building an application to warn motorists of approaching emergency responder vehicles to help minimize crash rates. Our team is also divided into a mobile side and a server side--myself being a part of the server side. We have decided that our server will be using the Tornado framework for its asynchronous networking library (as briefly discussed previously)

On the server side, we have mainly researched the possible tools and frameworks we could use (Erlang, Twisted, Go, etc.) and have also read about certain heuristics to help in choosing the I/O strategy. We looked at benchmarks, python frameworks, and other resources to help decide on what to use. In the end, we chose the Tornado framework because:

  1. It is fast, has a low error rate, and can handle thousands of connections

  1. It is based on Python, which is simple to use and is supported with many libraries and documentation

  1. We need to build a working "final" prototype quickly

The speed of prototyping is, I think, the most important of the criteria used in choosing the tools; therefore the reason we chose Python is for its quick prototyping capabilities and available resources.

Aside from research, I have gotten a simple chat server working with SSL to familiarize myself with the tools at hand. We also encountered a situation of sending unsigned data in Java, but I think Python struct should fix that.