A protocol that enables software components to communicate directly over a network in a reliable and secure way