http://www.javaworld.com/javaworld/jw-04-2001/jw-0406-jmf1_p.html
A good introductory article.