# data[].attributes.body
Es responsable de coordinar la comunicación, como el reenvío de solicitudes, así como para transmitir los resultados y excepciones.

# data[].attributes.body
Puede ser usado para estructurar sistemas distribuidos con componentes desacoplados que interactúan mediante invocaciones a sistemas remotos.

# data[].attributes.body
Un sistema de información de la ciudad (CIS):
- Su información se distribuye por la red.
- Se espera que cambie y crezca continuamente.
- Se debe acceder a los servicios sin tener que conocer su ubicación.

# data[].attributes.body
- Se pueden requerir algunos medios de comunicación entre procesos.
- Se requieren servicios de añadir, remover, intercambio, activación y locación.

# data[].attributes.headline
Se utiliza Broker para equilibrar lo siguiente:

# data[].attributes.subject
Se utiliza Broker para equilibrar lo siguiente:

# data[].attributes.body
- Los componentes deben ser capaces de acceder a servicios provistos por otros.
- Necesitas añadir, intercambiar o remover componentes en tiempo de ejecución.
- Se deben ocultar detalles específicos del sistema y la implementación de los componentes y servicios.

# data[].attributes.body
- Mejor desacoplamiento de clientes y servidores.
- Una aplicación puede acceder a los servicios simplemente por el envío de llamadas de mensajes al objeto apropiado.
- Reduce la complejidad involucrada en el desarrollo de aplicaciones distribuidas, pues hace la distribución transparente.

# data[].attributes.body
Se dividió en en 6 componentes:
Clientes: Envia solicitudes a través de client-side proxy
Servidores: Implementa los servicios y envía respuestas de vuelta al cliente a través del server-side proxy
Brokers: Transmite mensajes, recupera errores, localiza servidores.
Puentes: Encapsula funcionalidad de la red, media entre un broker locar y uno remoto.
Client-Side Proxies: Encapsula funcionalidad del sistema, media entre el cliente y el broker.
Server-Side Proxies: Encapsula funcionalidad del sistema, media entre el servidor y el broker.

# data[].attributes.body
Es un mensajero, responsable de la transmisión de solicitudes, respuestas y excepciones entre los clientes y los servidores

# data[].attributes.body
- Los que usan comunicación directa.
- Los que usan comunicación indirecta.

# data[].attributes.headline
1.- Define un modelo de objeto. O bien, usa uno existente.

# data[].attributes.subject
1.- Define un modelo de objeto. O bien, usa uno existente.

# data[].attributes.headline
2.- Define el tipo de interoperabilidad que debe ofrecer el sistema.

# data[].attributes.subject
2.- Define el tipo de interoperabilidad que debe ofrecer el sistema.

# data[].attributes.headline
3.- Especifica las APIs que el sistema Broker deberá ofrecer para la colaboración entre clientes y servidores.

# data[].attributes.subject
3.- Especifica las APIs que el sistema Broker deberá ofrecer para la colaboración entre clientes y servidores.

# data[].attributes.headline
4.- Utiliza objetos proxy para ocultar detalles de de implementación de clientes y servidores

# data[].attributes.subject
4.- Utiliza objetos proxy para ocultar detalles de de implementación de clientes y servidores

# data[].attributes.headline
5.-Diseña el componente broker en paralelo con los pasos 3 y 4. Es iterativo.

# data[].attributes.subject
5.-Diseña el componente broker en paralelo con los pasos 3 y 4. Es iterativo.

# data[].attributes.body
Los clientes se pueden comunicar con los servidores directamente.

# data[].attributes.body
Los servidores usan el tipo de mensaje para determinar qué hacer.

# data[].attributes.body
El broker debe saber que servidores pueden proveer el servicio y pasar la petición al apropiado.

# data[].attributes.body
Una nueva capa, responsable de registrar servicios y de interactúar con servidores.

# data[].attributes.body
Cuando un evento aparece, el broker invoca el método del componente que está registrado para reaccionar al evento.

# data[].attributes.body
Los clientes no necesitan saber donde están los servidores, y viceversa.

# data[].attributes.headline
Cambiabilidad y extensibilidad de componentes

# data[].attributes.subject
Cambiabilidad y extensibilidad de componentes

# data[].attributes.body
Esto es algo claro, ¿No?

# data[].attributes.body
La implementación suele ocasionar lentitud