the software process in which computer components interact over a network and send messages to communicate on their actions.