A Discipline of Multiprogramming: Programming Theory for Distributed Applications (Monographs in Computer Science)