Design patterns in communications software - Rising, Linda (ed) (Cambridge university press, United Kingdom, 2001)