We’ve just deployed our new Looking Glass system, which allows you to execute various network-diagnosis tasks directly on systems at our points of presence – web 2.0 style.
What makes this Looking Glass different, is the fact that we wanted something different and thus developed a completely new system from scratch.
If you’ve been using a web-based looking glass in the past, you know the drill: click a few buttons, write the target address into an input field, click “Submit” and wait (this is the perfect time to grab a coffee), wait some more and at some point be presented with the results. That’s annoying, isn’t it?
As we, as a company in general and our R&D depertment in particular, are constantly evaluating new and upcoming technologies (okay, it’s more tinkering and less evaluating most of the time) we gave a different approach a go: WebSocket to the rescue.
If you haven’t heard of WebSocket yet, this technology allows your browser to establish a bidirectional communications channel with a webserver, inside an HTTP connection.
A regular HTTP exchange is a request initiated by a client (like a browser) and a response for that request handed out by a server. When using WebSocket the initial request is still there, but it contains a special message for the server, telling the server to upgrade that HTTP session to a WebSocket session. As soon as the upgrade has happened both the client and server may send and receive messages at any point in time.
Getting back to our Looking Glass, we came up with a distributed system, which uses WebSockets for communication both internally as well as with browsers. In general this approach enables us to relay all information our system obtains back to you as soon as possible, with the results being updated in near real-time.
This may sound great already, but give it a try yourself.
Point your browser to https://lg.anexia-it.com/, select a node of your choice, a tool (note from the author: mtr is my personal favourite), enter a target and off you go.
For the tech-savvy readers: the whole system is based on Python, Django, Tornado and socket.io.
Finally, we are considering making the code that powers our looking glass available to the public in the future. Rest assured that you will read about that here as soon as we release something.