Practical Distributed Processing (Undergraduate Topics in Computer Science)