Programming a Distributed System in Ada