21

Modelos de sistema

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.