c'e' parecchia letteratura al riguardo, basta cercare

per esempio trovi questo
http://weblogs.asp.net/bleroy/archiv...nt-system.aspx
che cita un sistema gia' funzionante da adattare a richieste asincrone non gestite da librerie
http://onjava.com/pub/a/onjava/2005/...ck-button.html

il resto e' reverse engineering...