2. Un modelo arquitectónico de un sistema distribuido
simplifica y abstrae, inicialmente , las funciones de los
componentes individuales de dicho sistema y
posteriormente considera:
•La ubicación de los componentes en la red de
computadores, buscando definir patrones utilizables para la
distribución de datos y carga de trabajo.
•La interrelación entre los componentes, es decir, sus
papeles funcionales y los patrones de comunicación entre
ellos.
3. Una simplificación inicial se obtiene clasificando los procesos
entre Servidores, Clientes e iguales, siendo estos últimos
procesos que cooperan y se comunican de forma simétrica
para realizar una tarea.
Se pueden también construir otros sistemas dinámicos como
variaciones del modelo cliente servidor:
•La posibilidad de mover código de un proceso a otro
permite que un proceso delegue tareas en otro.
• Ej. Los clientes pueden descargar código de los servidores y
ejecutarlo localmente. Los objetos y el código al que
acceden pueden reubicarse para reducir los retardos de
acceso y minimizar el alto trafico de la comunicación.
4. Algunos sistemas distribuidos se diseñan también para
permitir que los computadores y otros dispositivos móviles se
añadan o eliminen sin incidencia, permitiendo el
descubrimiento de servicios disponibles y el ofrecer sus
servicios a otros.
5. El término arquitectura de software se refería inicialmente a
la estructuración del software como capas o módulos en un
único computador y más recientemente en términos de los
servicios ofrecidos y solicitados entre procesos localizados en
el mismo o diferentes computadores. Esta vista orientada a
proceso y a servicio puede expresarse en términos de capas
de servicio.
Ejm. Un servicio de tiempo de red esta implemtado en
Internet basado en el protocolo de Tiempo de Red
mediante procesos servidor, corriendo sobre maquinas de
Internet, que proporcionan el tiempo actual a cualquier
cliente que lo solicite y ajuste su versión de tiempo actual
como resultado de la interacción con otros.
6. Plataforma. El nivel de
hardware y las capas
más bajas de software
se denominan
plataforma, estas
capas más bajas
proporcionan servicios
a las que están por
encima de ellas, y que
son implementadas en
cada computador.
7. Middleware. Capa de software cuyo
propósito es enmascarar la
heterogeneidad y proporcionar un
modelo de programación conveniente
para los programadores de
aplicaciones. Se representa mediante
procesos u objetos para implementar
mecanismos de comunicación de los
programas de aplicación soportando
abstracciones como:
8. Procedimientos de invocación remota
Comunicación entre un grupo de
procesos.
Notificación de eventos.
Replicación de datos compartidos.
Transmisión de datos multimedia en
tiempo real.
9. Entre los productos y estándares de
middleware orientados al objeto están:
› Corba
› Invocación de objetos remotos en java
› Dcom (Modelo común de objetos
distribuidos de Microsoft)
› Modelo de referencia para procesos
distribuidos abiertos de la ISO/ITU-T
10. El middleware también puede
proporcionar servicios para su uso en los
programas de aplicación. Por ejemplo
Corba ofrece una variedad de servicios
que proporcionan a las aplicaciones
funciones que incluyen la gestión de
nombres, seguridad, transacciones,
almacenamiento persistente y
notificación de eventos.
11. Limitaciones del Middleware:
› Muchas aplicaciones distribuidas dependen
enteramente de los servicios
proporcionados por el middleware
disponible, para soportar sus necesidades
de comunicación y compartir datos.
12. La división de responsabilidades entre los
componentes del sistema(aplicaciones,
servidores y otros procesos) y la
ubicación de los componentes en los
computadores en la red, es quizá el
aspecto más evidente del diseño de un
sistema distribuido. Sus implicaciones
fundamentales están en las
prestaciones, fiabilidad y seguridad del
sistema resultante.
13.
14. Es la arquitectura que se cita más a menudo
cuando se discute sobre sistemas distribuidos.
Históricamente es la más importante y
continua siendo la más ampliamente utilizada.
Presenta una estructura sencilla sobre la que
interaccionan los procesos cliente con los
procesos servidores individuales, en
computadores separados con el fin de
acceder a los recursos compartidos que ellos
gestionan.
Los servidores a su vez pueden ser clientes de
otros servidores.
15. Los servidores pueden dividir el conjunto de
objetos en los que está basado el servicio y
distribuírselos entre ellos mismos, o pueden
mantener copias replicadas de ellos en varias
maquinas.
Un usuario puede emplear un navegador para
acceder al recurso en cualquiera de los
servidores. La replicación se utiliza para
aumentar las prestaciones y disponibilidad. Así
mejorar la tolerancia a fallos y proporcionar
múltiples copias consistentes de datos en
procesos que se ejecutan en diferentes
computadoras.
16.
17. Una cache es un almacén de objetos de datos
utilizados recientemente, y se encuentra más
próximo que los objetos en sí. Al recibir un
objeto nuevo en un computador se añade al
almacén de la cache, reemplazando, si fuera
necesario algunos objetos existentes. Cuando
se necesita un objeto en un proceso cliente, el
servicio caché comprueba inicialmente la
caché y le proporciona el objeto de una copia
actualizada. Si no se buscará una copia
actualizada.
Las cachés pueden estar ubicadas en cada
cliente o en un servidor Proxy que pueden
compartirse desde varios clientes.
18. Los servidores Proxy
para la web
proporcionan una
caché compartida de
recursos Web a las
maquinas cliente de
uno o más sitios.
El propósito de los
servidores Proxy es
incrementar la
disponibilidad y
prestaciones del
servicio, reduciendo la
carga en redes de
área amplia y en
servidores web.
19. En esta arquitectura todos los procesos
desempeñan tareas semejantes,
interactuando cooperativamente como
iguales para realizar una actividad
distribuida o computo sin distinción entre
clientes y servidores.
En general n procesos parejos podrán
interactuar entre ellos, dependiendo el
patrón de comunicación de los
requisitos de aplicación.
20.
21. Podemos distinguir distintas variaciones,
dependiendo de la consideración de los
siguientes factores:
› El uso de código móvil y agentes móviles
› Las necesidades de los usuarios de
computadoras de costo bajo y con recursos
hardware limitados, que son muy sencillos
de manejar
› El requisito de añadir o eliminar de una
forma conveniente dispositivos móviles.