For each of the systems described below, sketch an appropriate software architecture and explain how you would assign key functionalities to the design's components.
(a) A system of automated banking machines, acting as distributed kiosks that bank customers can use to deposit and withdraw cash from their accounts.
(b) Image-processing software that allows users to apply various operations to modify their pictures.
(c) A weather forecasting application that analyzes tens of thousands of data elements collected from various sensors; the sensors periodically transmit new data values.