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
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