Duda sobre diagrama de arquitectura a raíz del video de clientes HTTP #571
Replies: 1 comment 1 reply
Correcto. No existe un servidor genérico que resuelva todo, ni tampoco un adapter genérico que se integre con todos los servicios externos, cada uno representado por un servidor. En su lugar, tenemos n clientes HTTP y n implementaciones de la interfaz del servicio de clima, cada una dialogando con un servicio externo particular. A su vez, existirá un componente cliente de la interfaz común que usará insistentemente a una implementación y otra. El gran corolario de esto es que en tiempo de ejecución no existe un único componente adaptador: el patrón adapter se expressa a lo largo de una serie de componentes y una interfaz común.
Si, pero... En toda mí explicación anterior estoy intencionalmente combinando ideas lógicas (la estructura polimorfica, el uso de composición, etc) con ideas físicas (múltiples servidores). Si bien podríamos expresar todo esto en un diagrama físico, suele ser más útil expresar las ideas lógicas y estructurales en un diagrama de clases (el patrón adapter) y dejar los aspectos físicos (la existencia de múltiples servidores que proveen cada uno un servicio externo) para un diagrama de despliegue. De lo contrario, el diagrama de puede volver un tanto engorroso en la práctica.
A partir de lo que comento más arriba, mí respuesta sería: en el diagrama de arquitectura podes expresar, por ejemplo, que hay un solo nodo con tu servidor, que éste corre un proceso servidor y que en el hay varios componentes, cada uno interactuando con un cliente HTTP y cada uno dialogando con un servidor externo. En este diagrama la estructura polimorfica no quedará clara y problemente sea demasiado detalle. Con expresar que existen múltiples servicios externos probablemente alcance para buena parte de los casos. Por otro lado en el diagrama de clases podes expresar que estos componentes son polimorficos, que cada implementación es específica para un servicio externo y a lo sumo que cada una usa un componente externo. No podrás expresar que estos componentes externos (ejemplo, clientes HTTP) dialogan con servicios/servidores externos. Decime si se entiende. |


Correcto. No existe un servidor genérico que resuelva todo, ni tampoco un adapter genérico que se integre con todos los servicios externos, cada uno representado por un servidor.
En su lugar, tenemos n clientes HTTP y n implementaciones de la interfaz del servicio de clima, cada una dialogando con un servicio externo particular. A su vez, existirá un componente cliente de la interfaz común …