Paradigma para la comunicación interactiva entre objetos, utilizado en el diseño y especificación de aplicaciones distribuidas. La interacción básica que implica es la invocación de una operación por un objeto y su ejecución por otro, posiblemente seguida de un informe del resultado de la operación que se devuelve al invocador.