Domanda di colloquio di Citi

What is protocol oriented programming? How do we use it? Why do we use it? When have you used it?