Upload
arturo-terceros
View
82
Download
2
Embed Size (px)
Citation preview
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.
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.
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.
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.
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.
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:
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.