I am not intimitely familiar with the products you mention, but I think they should all allow you to implement the restrictions you mentioned...
Why does it matter if it is blocking or nonblocking? Whether it blocks affects the caller, but does not directly affect your client program. It...
I'd recommend Thinking in Java by Bruce Eckel. It is available for free online, or you can order a hard copy. http://www.mindview.net/Books/TIJ/
Separate names with a comma.