http://www.javaworld.com/javaworld/jw-04-2001/jw-0406-jmf1_p.html

A good introductory article.