http://www.computer.org/csdl/proceedings/cse/2008/3193/00/31...
http://www.freepatentsonline.com/y2009/0144380.html