In the spirit of learning new things, Matt Wood, one of my co-workers wanted to try his hands at writing an Android Phone application that connects with the mesh work I have been doing. I had been building a mobile version of the mesh web site that works on most new smart phones including the android, but having a native application has a few extra advantages. The most significant advantage is that with a native application you can perform end-to-end security operations. For example: If I want to remotely turn off a computer, performing this operation on the web site requires the web site be given authority to do this. It better be really secure because if the web site is hacked, someone can remotely turn off all your computers. A different security model involves not giving the web site any authority except for monitoring what is going on. If you want to perform a management operation, a native application can perform an end-to-end secure operation that the web site forwards but can't understand. So, even if building a mobile version of a site is interesting, building a native application can get you a lot more security.Another benefit of a native application is the you can implement a binary two-way protocol that allows you to do a lot more. In the future, I want to be able to remotely reboot and change BIOS settings of a Intel AMT computer, and I need to be able to display a two-way VT100 terminal on the phone. HTTP is not really practical for this. Two way protocols allow events to be sent down when this change, etc.
This brings me to the Android application my co-worked Matt Wood is building. Like other Android applications, it's built in a Java-like language and performs a TLS connection to the server to exchange binary data. The screens so far are basic and from what I understand use the standard Android styles. A user can change the styles and it will change the application accordingly. Right now, the application can turn on and off computers and monitor their state. In an upcoming version, Matt is adding power graphs to try to estimate how much power is being used by all the computers a user manages. Since the estimate is based only on the power state of the computers, it's a big estimate, but still quite interesting.
This application not available yet, but we will post it as open source at some point. Also a note to say that I gave Matt a account that allows him to can turn on and off my home computers... for real! This could be bad.
Ylian
opentools.homeip.net
