http://www.cnblogs.com/yangjig/p/3913751.html
http://blog.csdn.net/xiliang_pan/article/details/7069802