Over the past decade, concurrent object-oriented network programming
has emerged as an effective paradigm for developing software applications
whose collaborating objects can either be
1. Collocated within one process or computer or
2. Distributed across a set of computers connected by a network, such
as an embedded system interconnect, a local area network (LAN), an
enterprise intranet, or the Internet.