Zusammenfassung der Ressource
Arquitectura de Sistemas Distribuidos
- La arquitectura de un sistema es su estructura. Las aplicaciones distribuidas
comprenden varios componentes quetener relaciones de comunicación y
relaciones de control con otros componentes
- Separación de
intereses
- Debería ser posible identificar
los componentes de software
específicos que proporcionan
una funcionalidad
- Redes y
distribución
- No todas las aplicaciones que
utilizan la red para
comunicarse se clasifican
como aplicaciones distribuidas
- Complejidad en sistemas distribuidos
- El tamaño total del sistema
- El alcance de la funcionalidad
- El grado de interacción
- La velocidad a la que opera el sistema
- Simultaneidad
- Reconfiguraciones
- Condiciones externas o ambientales
- Arquitectura de
capas
- comprenden varias capas de componentes
que se colocan enagrupaciones basadas en
el tipo de funcionalidad que proporcionan o
en función de sus interacciones con otras
empresas componentes, de modo que la
comunicación entre capas se produce entre
capas adyacentes
- Arquitecutras
Jerárquicas
- comprende múltiples niveles de
componentes conectados de tal
manera que reflejan las relaciones de
control y comunicación entre ellos
- Heterogeneidad
- De Rendimiento
- todas con la misma plataforma de hardware
y sistema operativo
- De la Plataforma
- tiene una plataforma de hardware diferente, pero las
tres ejecutan variantes compatibles del mismo sistema
- Del Sistema Operativo
- tienen diferentes sistemas operativos
pero la misma plataforma de hardware
- son aquellos en los que todas las computadoras son
iguales, en términos de su hardware y configuración,
recursos y sistema operativo
- Fuentes
- son tecnológicas,
intencionales y accidentales
- Impacto
- Requiere interfaces y protocolos estándar para
garantizar que el contenido de los mensajes y
la semántica de la comunicación en sí se
conservan cuando se pasa un mensaje entre
dos sistemas informáticos diferentes
- Portabilidad
de Software
- Portar aplicaciones de
un sistema a otro
- puede ser muy complejo porque los dos
sistemas hostpuede ser muy diferente
- Clases de Arquitecturas
- A nivel de Sistemas y Hardware
- Sistemas (hardware) estrechamente acoplados
- comprenden varias unidades de
procesador integrados juntos en
la misma computadora física
- Sistemas (hardware) débilmente
acoplados
- consisten en una serie de computadoras
autónomas capaces de funcionar
independientemente de las demás
- Procesamiento en paralelo
- comprende una serie de procesos que
realizan todos los mismos cálculos pero con
diferentes datos y en diferentes procesadores
- De Software
- la lógica empresarial se divide en
dos o más componentes
- Acoplamiento entre componentes de
software
- Acoplamiento estrecho (o fijo)
- se caracteriza por el diseño de conexiones
decididas en el tiempo entrecomponentes
- Débilmente acoplados (desacoplados)
- no tienen conexiones con otros componentes
específicosdecidido en tiempo de diseño
- Acoplamiento directo
- se caracteriza por el hecho de que las conexiones de
nivel de proceso a proceso se corresponden con la
comunicación de nivel empresarial de la aplicación
- Acoplamiento indirecto
- describe la situación en la que los componentes
interactúan a través de un intermediario
- Acoplamiento aislado
- describe la situación en la que los componentes
no están acoplados entre sí y nono se comunican
entre sí aunque formen parte del mismo sistema
- Taxonomía
- Aplicaciones de un solo nivel
- las tres principales líneas de funcionalidad se
combinan dentro de un solo componente, es
decir, no hay distribución
- Aplicaciones de dos niveles
- dividen las principales líneas de
funcionalidad en dos tipos de componentes
- Aplicaciones de tres niveles
- dividen las principales líneas de funcionalidad
en tres tipos de componentes
- Aplicaciones de varios niveles
- Muchas aplicaciones tienen una amplia funcionalidad y
requieren el uso de varios servicios adicionales
porquerealizando el rol empresarial subyacente
- Modelos
- Cliente - Servidor
- Este es un modelo de dos niveles en el quelas tres líneas principales
de funcionalidad se dividen en dos tipos de componentes
- Duración del cliente
y del servidor
- el servidor se ejecuta continuamente y el
cliente se conecta cuando es necesario
- Lados activos y pasivos
de la conexión
- El componente que inicia una
conexión se describe como el lado
activo y el componente que
esperapara las solicitudes de conexión
se describe como el lado pasivo
- El modelo
arquitectónico de CS
- es una arquitectura lógica; no especifica
las ubicaciones físicas relativas de los
componentes, por lo quepuede estar
tanto en la misma computadora como
en diferentes computadoras
- Variantes del
modelo CS
- fat server
- (cliente ligero) la mayoría del
trabajo se realiza en el servidor
- fat client
- (servidor ligero), la mayor parte del
trabajo es realizado en el cliente
- Variantes
equilibradas
- el trabajo se comparte de manera más
uniforme entre loscomponentes
- Servicios con estado versus
servicios sin estado
- proporciona una
comparación de servicios
- con estado, en la que el
proceso del servidor realiza
un seguimiento de el
estado de la aplicación
- con servicios sin estado, en el que el servidor trata
cada nueva solicitud de cliente independientemente
y no conserva información de estado
- Sistemas CS modulares
y jerárquicos
- Modular
- Tiene ventajas adicionales
en términos de
transparencia y seguridad
- Jerárquico
- un solo componente
necesita acceder a
dos bases de datos
separadas
- Arquitecturas de tres y varios
niveles
- Seguridad
- No debe haber acceso no autorizado a los datos
- Robustez
- No debe haber corrupción de datos y el sistema
debe permanecerconsistente en todo momento
- Escalabilidad
- Debería haber una forma sencilla de ampliar
la capacidada medida que crece la base
- Flexibilidad
- Poder cambiar o agregar funciones
- Disponibilidad
- Los clientes deben poder acceder al
servicio enen cualquier momento
- Peer-to-Peer
- Características de las aplicaciones
- Los compañeros se comunican con otros
para lograr su función
- Las aplicaciones suelen tener un alcance limitado
- La conectividad es ad hoc (es decir, puede ser
espontánea, no planificada y no estructurada)
- Los compañeros pueden interactuar con otros
en cualquier orden y en cualquier momento
- Peer-to-peer se adapta bien a aplicaciones
móviles en dispositivos móviles.
- Complejidad de la conectividad
- Es la cantidad de conexiones
- donde P es el número de pares presentes y C es
el número máximo de conexiones resultante
- C = (C * (C - 1)) / 2
- Exploración del comportamiento
- una aplicación popular para arquitecturas
peer-to-peer es el intercambio de medios
(como fotos y canciones)
- y es especialmente popular en plataformas
móviles como teléfonos y tabletas.
- Objetos distribuidos
- divide la funcionalidadde una aplicación en muchos componentes
pequeños (basados en los objetos en el código)
- El código orientado a objetos separa la lógica del programa en secciones
relacionadas funcionalmente y / o específicas relacionadas con datos (los objetos)
- El enfoque de los objetos distribuidos apoya mejor las decisiones en tiempo de ejecución
para la ubicación de instancias de componentes
- Middleware: soporte para arquitecturas de software
- es esencialmente una capa de software que se encuentra
conceptualmente entre los procesos y la red.de computadoras
- Funcionamiento
- proporciona un identificador único para cada objeto
- almacenada de qué objetos y recursos
están presentes, y donde están ubicados
- no forma parte de ninguna de las aplicaciones que admite
- los objetos no necesitan tener ningúna información
relativa a la dirección de los otros componentes
- Proporciona a las aplicaciones la abstracción
de una única plataforma de procesamiento
- Proporciona una serie de servicios a las aplicaciones
para admitir software basado en componentes
- Modelos de sistema de recursos colectivos y provisión de recursos de cómputo
- Clústers
- se basa en el uso de un grupo dedicado de unidades de
procesamiento, generalmente de propiedad por una sola organización
y, a menudo, reservado para ejecutar aplicaciones específicas
- Grid
- se basa en recursos informáticos distribuidos
físicamente que se utilizan de manera cooperativa
para ejecutar una o más aplicaciones
- Data Centers
- se caracterizan por colecciones muy grandes de
recursos de procesamiento y almacenamiento
propiedad de una empresa de prestación de servicios
- Clouds
- se puede considerar como un conjunto de servicios informáticos,
incluidos el procesamiento y el almacenamiento,que es
proporcionado de forma virtualizada por un proveedor de servicios.
- Virtualización de hardware
- Máquina virtual Java
- Java implementa una máquina virtual específica, la JVM, que ofrece
una interfaz coherente para los programas Java
independientemente del sistema operativo y la arquitectura reales.
- Máquinas virtuales
- es un proceso que se ejecuta en la computadora
física y presenta una interfaz para el proceso de la
aplicación, que imita la de la computadora real
- Configuraciones estáticas y dinámicas
- Configuración estática
- se logra de forma predeterminada al crear
aplicaciones multicomponente
- Configuración dinámica
- aumenta la flexibilidad del tiempo de ejecución y
potencialmente mejora la eficiencia y la solidez
- Conciencia del
contexto
- ajusta dinámicamente su comportamiento o
configuración para adaptarse al entorno o condiciones de
operación
- Requisitos no funcionales de aplicaciones distribuidas
- Robustez, disponibilidad, consistencia,
rendimiento, escalabilidad,
extensibilidad, transparencia, usabilidad
- Replicación
- 1. Los datos son de solo lectura en todas las réplicas
- 2. La replicación se implementa de modo que solo se pueda
escribir una copia de los datos y la otralas copias son legibles.
- 3. La replicación se implementa de manera que
todas las copias de los datos se pueden escribir
- Semántica de replicación
- ¿Qué debería suceder cuando la copia
maestra deja de estar disponible?
- si se producen actualizaciones en la copia
de seguridad y luego también falla
- ¿Están preasignados los roles de maestro y de
respaldo o surgen dinámicamente del sistema?
- Bibliotecas de software
- es una colección de funciones de programa que
están relacionadas de alguna manera
- Refactorizar
- existen oportunidades para mejorar la
estructura del código dividiéndolo en métodos
adicionales y posiblemente incluso creando
clases adicionales
- Vinculación
- Enlace Estático
- se realiza cuando se crea un
componente de software
- Enlace
Dinámico
- se realiza en tiempo de
ejecución
- Característica dependiente del idioma
- contiene la definición de la clase y sus métodos y
declarará cualquier variable miembro a nivel de clase
- puede contener las definiciones de constantes, estructuras,
enumeraciones y otros constructos utilizados en la clase
- La relación entre aplicaciones distribuidas y redes
- Los sistemas distribuidos agregan administración, estructura y, lo que es
más significativo, transparencia además defuncionalidad proporcionada
por las redes subyacentes para lograr su conectividad y comunicación
- Por lo tanto, las aplicaciones distribuidas deben considerarse como si
estuvieran en una capa conceptualmente por encima de la parte superior.de
la pila de protocolos de red y no como parte de la capa de aplicación
- Transparencia desde el punto de vista de la arquitectura
- Acceder a la transparencia
- Transparencia de ubicación
- Transparencia de replicación
- Transparencia de fallas
- Escala de transparencia
- Transparencia en el desempeño