Please enable JavaScript.
Coggle requires JavaScript to display documents.
Arquitectura de sistemas distribuidos - Coggle Diagram
Arquitectura de sistemas distribuidos
Vista de Arquitectura
La arquitectura de un sistema es su estructura
Las aplicaciones distribuidas comprenden varios componentes que se comunican entre sí y controlan las relaciones con otros componentes.
La arquitectura física describe la configuración de las computadoras y su interconectividad.
Por otro lado, la arquitectura lógica es determinada por una aplicación en donde todos los procesos se llevan a cabo en una misma computadora física.
Heterogeneidad
Los sistemas heterogéneos son aquellos en donde todas las computadoras cuentan con las mismas características de hardware, configuración, recursos y sistema operativo
Existen tres causas principales de heterogeneidad:
• Causas tecnológicas: gracias a los avances tecnológicos se puede avanzar hacia nuevas plataformas con mejores recursos, así como mejoras en los sistemas operativos, lenguajes de programación y nuevos protocolos de conexión.
• Causas del destino: un claro ejemplo de esto es cuando Windows es escogido como punto de acceso para workstation debido a que es popular entre los usuarios o por otro lado, cuando Unix es escogido por el servicio de hosting altamente configurable que ofrece.
• Causas accidentales: esto se sucede cuando existen mejoras en el hardware del sistema o cuando existe alguna actualización disponible de un sistema operativo y es instalado en todas las computadoras.
Sistemas y hardware a nivel de arquitectura
Con el fin de que los diferentes componentes dispersos de una aplicación distribuida operen como una única aplicación se necesita de algunos medios para que estos componentes se comunican, por ello debería existir alguna forma de comunicación entre los procesos subyacentes en donde se ejecute un software de comunicación.
Existen dos enfoques fundamentales para conectar procesos entre sí:
• Arquitecturas acopladas estrechamente: son aquellas en los procesos son parte de un único sistema físico en donde la comunicación puede ser implementada por conexiones dedicadas directamente.
• Arquitecturas informáticas independientes: son aquellas en donde cada proceso es el núcleo de una computadora completa con su propio conjunto de recursos como por ejemplo: la computadora, celulares inteligentes, talblets y laptops.
Arquitecturas de software
En las aplicaciones distribuidas, la lógica del negocio es dividida a través de dos o más componentes.
Un buen diseño del sistema debe asegurar que esta división está hecha para lograr separar las preocupaciones lo mayor posible
Por lo tanto, si la lógica del negocio está dividida entre varios componentes sobre una base arbitrario con el fin de mantener cada componente del mismo tamaño, esto tendrá mejores resultados en cuando a comunicación e interdependencia entre los componentes resultantes.
Taxonomía de las clases de arquitectura de software
• Aplicaciones de una capa son aquellas en donde los tres principales parámetros de funcionalidad están combinados entre un sólo componente, por lo que no existe distribución.
• Aplicaciones de dos capas: este tipo de aplicaciones dividen sus principales parámetros de funcionalidad a través de dos tipos de componentes como por ejemplo las aplicaciones en base a la arquitectura cliente-servidor.
• Aplicaciones de tres capas: estas aplicaciones dividen sus ramas principales de funcionalidad a través de tres tipos de componentes. En general, el objetivo de esta arquitectura es la de separar cada rama principal en un nivel propio. Esta clase de arquitectura ofrece mayor rendimiento y escalabilidad.
• Arquitectura multicapas: estas aplicaciones tienen muchas funcionalidades y requieren del uso de servicios adicionales más allá de llevar a cabo la lógica del negocio, como por ejemplo una aplicación bancaría la cual necesita funcionalidades asociadas como seguridad y autenticaciones.
Peer-to-Peer
El término peer significa "con igual posición" por lo que se usa para describir a las personas con un status igual.
Por lo tanto, peer-to-peer se puede describir como una aplicación que, para alcanzar la funcionalidad total, necesita de múltiples peers o compañeros interactuando con la aplicación principal.
Por ejemplo, si el propósito de una aplicación es la de facilita la compartición de archivos, entonces cada peer deberá tener algunos archivos de apoyo almacenados localmente para poder compartirlos con otros peers.
Objetivos distribuidos
La característica principal de los objetos distribuidos es que se dividen las funcionalidades en varios componentes pequeños, permitiendo que se puedan distribuir en formas muy flexibles a través de las computadoras disponibles.
Middleware: soporte para
arquitecturas de software
Middleware es principalmente una capa de software ubicada entre los procesos y la red.
Proporciona a las aplicaciones la capacidad de abstracción de una única plataforma de procesamiento, ocultando detalles reales del sistema físico como el número de procesadores y la ubicación de estos recursos.
Virtualización de hardware
Partiendo de la computación tradicional o no virtualizada, ésta consiste en un modelo de computadora en donde cada una tiene un sistema operativo instalado y posee un planificador que ejecuta los procesos.
Mientras que la virtualización es el término usado para describir la adición de una etiqueta de software la cual está encima de la verdadera plataforma de software y actúa como la propia plataforma de la computadora, lo que se conoce como una máquina virtual.
Modelos de sistemas de recursos colectivos y provisión de recursos de computación.
Para implementar aplicaciones distribuidas exitosas es necesario considerar cuidadosamente el diseño de los sistemas de computadoras en donde se ejecutan estas aplicaciones.
Como resultado de esto, existen varias categorías en la que los sistemas de provisión de recursos han evolucionado para agrupar estos recursos y proveer servicios de computación como:
• Clusters: este tipo de computación se basa en el uso de un grupo dedicado de unidades de procesamiento para ejecutar aplicaciones. Estos procesadores suelen estar conectados por una red y administrados con software especial para ser utilizados por los clientes como un solo sistema.
• Grids: la computación en cuadrículas se basa en recursos informáticos distribuidos físicamente que se utilizan de manera cooperativa para ejecutar una o más aplicaciones.
• Data Centers: la capacidad de procesamiento es ofrecida como un servicio a las organizaciones que necesiten de grandes grupos de recursos computacionales.
• Clouds: la computación en la nube se puede considerar como un conjunto de servicios informáticos que se proporcionan de manera virtual. Este concepto de computación provee transparencia tal que la infraestructura y su configuración no son perceptibles para los usuarios.