modelos de sistema (1) pontificia universidad javeriana sistemas distribuidos (2007/01)
Post on 24-Jan-2016
225 Views
Preview:
TRANSCRIPT
Modelos de Sistema (1)
Pontificia Universidad Javeriana
Sistemas Distribuidos (2007/01)
Agenda Introducción Modelos arquitectónicos
Capas de Software Plataforma Middleware
Arquitecturas de sistema Modelo cliente-servidor Servicios proporcionados por múltiples servidores Servidores proxy y cachés Procesos <<de igual a igual>>
Variaciones en el modelo de cliente-servidor Código móvil Agentes móviles Computadores de red Clientes ligeros Dispositivos móviles y enlace espontáneo a red
Taller
Introducción Los modelos arquitectónicos en un s.d. tratan sobre
la colocación de partes y las relaciones entre ellas.
Ejs.: modelo cliente-servidor
modelo de procesos <<de igual a igual >>
En un sistema distribuido no hay tiempo global, por lo tanto toda comunicación entre procesos se realiza por medio de entrega de mensajes.
Introducción La comunicación entre mensajes y los procesos pueden
sufrir varios fallos y es vulnerable a los ataques de seguridad. Esos aspectos se consideran en tres modelos: Modelo de interacción: Trata de las prestaciones y de la
dificultad de poner límites temporales en un S.D.. Modelo de fallos: Trata de dar una especificación
detallada de los fallos que se pueden producir en los procesos y en los canales de comunicación. Define comunicación fiable y procesos correctos.
Modelo de seguridad: Trata de las posibles amenazas para los procesos y canales de comunicación.
Introducción Los sistemas distribuidos deben ser diseñados para funcionar
correctamente en un rango de circunstancias más amplio posible y considerando todas las dificultades y amenazas.
Ambiente/Problemas Modos de utilización muy variables: Las partes
componentes de los sistemas están sujetas a grandes variaciones en la carga de trabajo.
Amplio rango de entornos: Un S.D. debe acomodarse a hardware, sistemas operativos y redes heterogéneas.
Problemas internos: Relojes no sincronizados, actualizaciones conflictivas de datos, fallos de HW y SW implicando a componentes individuales de un sistema.
Amenazas externas: Ataques a la integridad y el secreto de los datos, denegación del servicio.
Modelos arquitectónicos La arquitectura de un sistema es su estructura en términos
de componentes especificados por separado. El objetivo es asegurar que la estructura satisfará con las demandas presentes y previsibles sobre él.
El modelo arquitectónico simplifica y abstrae, inicialmente, las funciones de los componentes individuales de dicho sistema y posteriormente considera: Ubicación de componentes en la R.C., buscando definir
patrones utilizables para la distribución de datos y carga de trabajo.
Las interrelaciones entre los componentes, es decir, papeles funcionales y los patrones de comunicación entre ellos.
Modelos arquitectónicos Una simplificación inicial en clasificar los procesos en:
Servidores Clientes Iguales
Esta clasificación ayuda a valores de cargas y determinar impactos de fallo en cada uno.
Se pueden construir otros sistemas dinámicos con variaciones del modelo cliente-servidor: Posibilidad de mover código (clientes descargar código
de los servidores) Algunos S.D. permiten que los computadores y
dispositivos móviles se añadan y eliminen sin incidencia, permitiendo el descubrimiento de servicios disponibles y el ofrecer sus servicios a otros.
La ubicación de los procesos esta también influenciada en prestaciones, fiabilidad, seguridad y coste.
Modelos arquitectónicos (Capas de Software) El termino arquitectura de SW se refería
inicialmente a la estructuración del SW como capas o módulos en un único computador.
Ahora se refiere en términos de los servicios ofrecidos y solicitados entre procesos localizados en el mismo o diferentes computadores.
Modelos arquitectónicos (Capas de Software)
Applications, services
Computer and network hardware
Platform
Operating system
Middleware
Modelos arquitectónicos (Capas de Software) Middleware: Capa de SW cuyo propósito es enmascarar la
heterogeneidad/complejidad y dar un modelo de programación conveniente para los programadores de aplicaciones.
Entre los middleware orientados a objetos más utilizados están: CORBA (Common Object Request Broker Architecture de
OMG). RMI (Invocación de objetos remotos en Java). DCOM (Modelo Común de Objetos Distribuidos de
Microsoft).
Modelos arquitectónicos (Capas de Software) Dependencia 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. Por lo tanto se ha conseguido mucho en la simplificación, aunque algunos aspectos de la confiabilidad precisan soporte de aplicación.
Se puede pensar que todas las actividades de comunicación pueden abstraerse de la programación mediante la introducción de capas de middleware. Es funcionalmente correcto que las comprobaciones, mecanismos de corrección de errores y medidas de seguridad en distintos niveles, PERO es muy probable que se este duplicando: Trabajo Malgasto esfuerzo en la programación Más importante añadiendo complejidad innecesaria y realizando
cómputos redundantes.
Modelos arquitectónicos (Arquitecturas de sistema) 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.
Sus implicaciones fundamentales están en las prestaciones, fiabilidad y seguridad del sistema redundante.
Las convenciones son: Procesos (elipses) Computadores (Rectángulos) Mensajes etiquetas como invocación o resultado
(Flechas).
Modelos arquitectónicos (Arquitecturas de sistema)
Modelo cliente-servidor:
Server
Client
Client
invocation
result
Serverinvocation
result
Process:Key:
Computer:
Un servidor a su vez puede ser cliente de otro servidor.
Modelos arquitectónicos (Arquitecturas de sistema) Servicios proporcionados por múltiples servidores: Los servicios pueden implementarse
como distintos procesos de servidor en computadores separados interaccionando, cuando es necesario, para proporcionar un servicio a los procesos clientes. 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 máquinas.
Server
Server
Server
Service
Client
Client
Modelos arquitectónicos (Arquitecturas de sistema) Servidores proxy y cachés: Un caché es un almacén de objetos de
datos utilizados recientemente, y se encuentra más próximo que los objetos en sí.
Client
Proxy
Web
server
Web
server
serverClient
Modelos arquitectónicos (Arquitecturas de sistema) Procesos <<de igual a igual>>: Todos los procesos desempeñan tareas
semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cómputo sin distinción entre clientes y servidores.
Coordination
Application
code
Coordination
Application
code
Coordination
Application
code
Modelos arquitectónicos (Variaciones en el modelo de Cliente-Servidor)
Se pueden considerar diferentes variaciones dependiendo de: Uso de código móvil y agentes móviles. Las necesidades de los usuarios de computadoras de
bajo costo y con recursos de hw limitados, que son muy sencillos de manejar.
El requisito de añadir o eliminar de una forma conveniente dispositivos móviles.
Modelos arquitectónicos (Variaciones en el modelo de Cliente-Servidor)
Código Móvil: Ejemplo más conocido son los applets.
a) client request results in the downloading of applet code
Web server
ClientWeb serverApplet
Applet code
Client
b) client interacts with the applet
Modelos arquitectónicos (Variaciones en el modelo de Cliente-Servidor) Agentes móviles: Un agente móvil es un
programa en ejecución (código + datos) que se traslada de un computador a otro en la red utilizando una tarea para alguien.Ejemplo: Recolectar información, y retornar
eventualmente los resultados.
Modelos arquitectónicos (Variaciones en el modelo de Cliente-Servidor) Computadores de red: En las computadoras “normales”
gran parte del código y de los datos activos están ubicados localmente. Pero la gestión de archivos de aplicación y el mantenimiento de sw de base local precisa un esfuerzo técnico considerable.
El “computador de red” es una solución a este problema desacargando el sistema operativo y cualquier aplicación de software desde un servidor de archivos remotos.
Modelos arquitectónicos (Variaciones en el modelo de Cliente-Servidor)
Clientes ligeros: El término cliente ligero se refiere a una capa de aplicación que soporta una interfaz de usuario basada en ventanas sobre un computador local del usuario mientras se ejecutan programas de aplicación en un computador remoto.
ThinClient
ApplicationProcess
Network computer or PCCompute server
network
Modelos arquitectónicos (Variaciones en el modelo de Cliente-Servidor) Dispositivos móviles y enlace espontáneo a red: Debido
a la difusión de dispositivos móviles es necesario contemplar estos dispositivos entre los entornos de red y los beneficios de los servicios locales y remotos según se mueven.
Las características esenciales de la conexión a red espontánea son: Conexión fácil a la red local. Integración fácil con servicios locales.
Modelos arquitectónicos (Variaciones en el modelo de Cliente-Servidor) Para usuarios móviles se presentan problemas diferentes. Éstos ven limitada su conectividad cuando viajan, y la
naturaleza espontánea de su conexión incrementa los problemas de seguridad. Conectividad limitada: El tema es si se puede dar
soporte a un usuario que está desconectado. Seguridad y privacidad: Intentos de conexiones no
supervisadas. Además su los usuarios pueden acceder a los datos mientras se mueven puede exponer los datos, que se suponen permanecen detrás del cortafuegos de la intranet, o pueden abrir la intranet a ataques del exterior.
Modelos arquitectónicos (Variaciones en el modelo de Cliente-Servidor) Servicios de detección: La pregunta a resolver es ¿cómo pueden
conectarse los clientes a los servicios que necesitan para completar sus tareas habituales?. Lo que se necesita es aceptar y almacenar detalles de los servicios que están disponibles en la red y responder a las consultas de los clientes sobre los mismos. Es así como un servicio de descubrimiento ofrece dos interfaces: Servicio de admisión: Acepta solicitudes de ingreso de los
servidores y almacena sus detalles en la b.d. del servicio de descubrimiento.
Servicio de búsqueda: Acepta consultas relacionadas con los servicios disponibles, y busca en la b.d. aquellos servicios registrados que coincidan con las consultas.
top related