Vous êtes sur la page 1sur 90

1.

Introduccin a los
sistemas distribuidos
Sistema Operativo
Coleccin de Software que sirve de intermediario entre el hardware y las
aplicaciones de usuario

Abraham Silberschatz asegura que


"Desde el punto de vista de la computadora, el sistema operativo es el
programa mas intimamente relacionado con el hardware"

Segn Andrew S.Tanenbaum


"Los verdaderos clientes del sistema operativo son los programas de
aplicaciones. Son los que tratan directamente con el sistema operativo y
sus abstracciones

El Sistema Operativo administra eficientemente los recursos de hardware


de una computadora
Sistema Operativo
Modo Supervisor o Kernel: Acceso completo a todo el hardware,
puede ejecutar cualquier instruccin de maquina.
Modo Usuario: Solo un subconjunto de instrucciones.
Navegador Reproductor Juego Programas Aplicaciones
Modo Resuelven problemas de
Usuario usuario
Compiladores Interpretes Comandos Editores

Programas de Sistema
Controla operacin de PC
Sistema Operativo

Modo
Kernel
Hardware
Sistema Operativo
2 funciones Principales
Presentar un conjunto abstracto de recursos simples a los programas de
usuario y a los programadores

Administra recursos

Que ve el Usuario?
GUI Interfaz Grafica de Usuarios
Interfaz de Lnea de Comandos (Programables)
Administracin de recursos del SO
Administracin Memoria
Administracin procesador
Administracin Dispositivos
Administracin de archivos

Administracin de redes o recursos de red


Administracin Usuarios
Clasificacin de los Sistemas
Operativos vigentes
Clasificacin de los SOs
ADECUACION DE LOS SISTEMAS A ENTORNOS CAMBIANTES

Sistemas Operativos por lotes


Sistemas Operativos Multiprogramacin
Sistemas Operativos Multiusuario
Sistemas Operativos Tiempo Compartido
Sistemas Operativos Tiempo Real
Sistemas Operativos por Lotes
Requieren informacin reunida en bloques o lotes: el programa, los datos,
las instrucciones.
No interaccin Usuarios
Planificacin Sencilla: Los trabajos se procesan en el orden de admisin.
First Come First Served
Anlisis estadsticos, Nominas
Alternativa: Sistemas en lotes con dispositivos de carga (spool)
Sistemas Operativos
Multiprogramacin
Limitado por CPU y Limitado por Entrada-Salida

Multiprogramacin o Multitareas busca maximizar el tiempo


de uso efectivo del procesador Soportan dos o mas procesos
concurrentes mltiples.
En la memoria primaria pueden residir al mismo tiempo las
instrucciones y datos de dos o mas procesos

Necesidad de infraestructura de proteccion de recursos


Un proceso no debe sobrescribir el espacio de memoria de otro (ni
cdigo, ni datos)--> Solucin MMU (unidad de manejo de memoria)
Acceso exclusivo/unico a dispositivos
Sistemas Operativos
Multiusuario
Aparicin de las terminales (primero teletipos seriales,
posteriormente equipos con una pantalla completa como se conocen
hasta hoy)
Permiten acceder simultneamente a un sistema de computadoras a
travs de dos o mas terminales
Fundamental en el manejo de redes de computadoras actualmente.
Sistemas Operativos Tiempo
Compartido
Multiusuarios e Interactivos

Pretenden proporcionar un reparto equitativo de recursos comunes


para que usuarios tengan la percepcin de que poseen una
computadora independiente.
El administrador de memoria debe proporcionar aislamiento y
proteccion de los programas, generalmente los programas no tienen
necesidad de comunicarse entre ellos.
Tipo de control sobre la
multitarea
Multitarea cooperativa o no apropiativa (Cooperative multitasking). La
implementaron los sistemas multiprogramacin: cada proceso tena control del
CPU hasta que ste haca una llamada al sistema (o indicara su disposicin a
cooperar por medio de la llamada yield: ceder el paso).
Un clculo largo no era interrumpido por el sistema operativo, en consecuencia
un error de programador poda congelar la computadora completa.

Multitarea preventiva o apropiativa (Preemptive multitasking). En los


sistemas de tiempo compartido, el reloj del sistema interrumpe peridicamente a
los diversos procesos, transfiriendo forzosamente el control nuevamente al
sistema operativo. ste puede entonces elegir otro proceso para continuar la
ejecucin.
Velocidad de cambio entre una
tarea y otra
En un sistema multiprogramado un cambio de contexto poda
producirse slo cuando la tarea cambiaba de un modo de ejecucin a
otro

En un sistema interactivo, para dar la ilusin de uso exclusivo de la


computadora, el hardware emita peridicamente al sistema operativo
interrupciones (seales) que le indicaban que cambie el proceso activo
(como ahora se le denomina a una instancia de un programa en
ejecucin).

Tambin surgieron las Prioridades!!!


Sistemas Operativos Tiempo
Real
Proporcionar tiempo mas rpido de respuesta, procesar la
informacin sin tiempos muertos. Suave, Duro.
Muchos procesos residen permanentemente en la memoria, el
administrador de memoria es poco solicitado.

Control trafico areo, milicia, bolsa valores, control industrial,


telecomunicaciones
Mas.
Embebidos
Mviles
Servidor Brindar Servicios, Compartir Recursos.
Clasificacin por la forma del
usuario de acceder a los servicios

Sistemas Operativos en Red

Sistemas Operativos Distribuidos


Sistemas Operativos en Red
Tienen la capacidad de interactuar con otros SOs en otras
computadoras a travs de un medio de transmisin
Su objetivo es intercambiar informacin, transferir archivos, ejecutar
comandos remotos, etc.
El usuario debe conocer la sintaxis de un conjunto de comandos o
llamadas al sistema para ejecutar estas operaciones, adems de la
ubicacin de los recursos que desea acceder.
El usuario puede acceder y compartir muchos recursos e informacin
Sistemas Operativos
Distribuidos
Abarcan los servicios de los de red, logrando integrar recursos (impresoras,
unidades de respaldo, memoria, procesos, CPUs) en una sola maquina virtual
que el usuario accede en forma transparente.
El usuario no requiere saber la ubicacin de los recursos, lo conoce por nombre y
los utiliza como si todos fuesen locales a su lugar de trabajo habitual.

Un SO distribuido ideal debera:


Distribuir procesos en las varias unidades de procesamiento
Reintegrar sub-resultados
Resolver problemas de concurrencia y paralelismo
Recuperarse de fallas de algunos recursos distribuidos
Consolidar la proteccin y seguridad entre los diferentes componentes del sistemas y los
usuarios.

Fuertemente acoplados (comparten memoria, reloj global)


Y en Hardware y otras
tecnologas??
Tecnologa de computadoras
Maquinas que costaban 10 millones de dlares, ejecutando 1 instruccin por
segundo
1000 dlares, ejecutando un milln de instrucciones por segundo.

Redes de Computadoras
LAN, WAN

Sistemas de computo compuestos por grandes cantidades de computadoras


interconectadas mediante una red de alta velocidad
-------------: SISTEMAS DISTRIBUIDOS

SISTEMAS CENTRALIZADOS Una sola computadora, sus perifricos y quizs


algunas terminales remotas
1.1 Definicin de sistemas
distribuidos
Un Sistema Distribuido es una coleccin de computadoras
independientes que dan al usuario la impresin de constituir un
nico sistema coherente.

Consta de componentes (computadoras) autnomos.


Los usuarios creen que realmente interactan con un sistema nico.

Los componentes autnomos deben colaborar entre si.


Caractersticas de un Sistema
Distribuido
Las diferencias entre las distintas computadoras y la manera en que
se comunican entre si quedan ocultas para el usuario.
La organizacin interna de un sistema distribuido es oculta al
usuario.
Los usuarios y aplicaciones pueden interactuar con un sistema
distribuido de manera consistente y uniforme, sin importar donde y
cuando tenga lugar.
Deben ser fciles de expandir o escalar.
Consecuencia de tener computadoras independientes
Caractersticas de un Sistema
Distribuido
Disponible de manera continua, aun si algunas partes estn fuera de
operacin.

Usuarios y aplicaciones no deben notar que las partes son reparadas


o que sea agregan nuevas secciones para servir a mas usuarios o
aplicaciones
Organizacin Middleware
Objetivo: Dar soporte a Computadoras y Redes Heterogneas vistas como UN
SISTEMA UNICO
SDs se organizan a menudo en trminos de una capa de software, se colocan de
manera lgica entre una capa de alto nivel: usuarios y aplicaciones y una capa
subyacente: SOs y recursos bsicos de comunicacin.
Organizacin Middleware
Middleware
Se extiende sobre diversas maquinas y
ofrece a cada aplicacin la misma
interfaz.

Proporciona medios para que los


componentes de una sola aplicacin
distribuida se puedan comunicar entre
si, y para permitir comunicacin entre
diferentes aplicaciones

Oculta (lo mejor y mas razonablemente


posible) diferencias entre el hardware y
los SOs para cada aplicacin
Clasificacin dependiendo del
Hardware
2. Objetivos de un SD
I. Recursos fcilmente accesibles

II. Ocultar razonablemente el hecho de que los recursos estn


distribuidos en la red

III. Debe ser abierto

IV. Debe ser escalable


I. Recursos fcilmente accesibles
Principal objetivo: Facilitar a usuarios (y aplicaciones)
acceso a recursos remotos.

Compartirlos de manera controlada y eficiente


Impresoras, computadoras, dispositivos de
almacenamiento, datos, archivos, paginas web,
redes, etc.

Cual es la razn para compartir recursos???


Econmica
Facilita la colaboracin
Intercambio de informacin

Y la seguridad? datos no encriptados, servidores no


seguros, rastreo de comunicacin (violacin de
privacidad), Comunicaciones no deseadas (spam)
II. Transparencia en la
distribucin.
Ocultar razonablemente el hecho de que los procesos y recursos estn
fsicamente distribuidos en la red

Transparente: Si es capaz de presentarse ante usuarios y aplicaciones


como si se tratara de una sola computadora
Tipos de transparencia Representacin de datos en
las distintas maquinas y SOs.
Distintos SOs con su propia
convencin para descifrar la
nomenclatura de archivos.
Las diferencias en la
convencin de nombres y la
manera en que se manipulan
archivos debe quedar oculta
para usuarios y aplicaciones
II. Transparencia en la
distribucin Asignar nombres lgicos a los
recursos, la ubicacin no debe quedar
secretamente codificada.

URL no proporciona indicio respecto


a la ubicacin del servidor principal ,
tampoco da ninguna clave sobre si el
recurso siempre tuvo esa ubicacin o
ha sido reubicado.

Si se pueden reubicar los recursos sin


afectar la manera en que se accede a
ellos.

Reubicar los recursos mientras se accede


a ellos sin que el usuario o aplicacin lo
noten.
Una Laptop no se debe desconectar si se
mueve de un lugar a otro.
II. Transparencia en la
distribucin

Replicar recursos para incrementar


disponibilidad o mejorar el
rendimiento
Todas las replicas deben tener el
mismo nombre.

El acceso concurrente debe dejar el recurso compartido


en estado consistente.
Mecanismo de bloqueo
Principal dificultad: Distinguir entre un recurso muerto o
penosamente lento.
Si el servidor web esta ocupado se genera un error de
time out , mensaje: pagina no disponible.
No siempre se requiere toda la
transparencia

Buscar la transparencia de distribucin puede ser un buen


objetivo al disear e implementar un SD, pero se deben
considerar otros problemas como rendimiento y
comprensibilidad
III. Grado de abertura
Un SD abierto en un sistema que ofrece servicios de acuerdo con las reglas
estndar que describen la sintaxis y la semntica de dichos servicios.

En redes existen protocolos: gobiernan contenido, significado de mensajes

En SDs los servicios se especifican a travs de interfaces


Lenguaje de definicin de interfaz (IDL) define las interfaces.
Las definiciones de interfaz escritas en IDL solamente capturan la sintaxis de los
servicios, especifican los nombres de funciones disponibles (tipos de parmetros,
valores de retorno, posibles excepciones, entre otros elementos)
Semntica de interfaces: especifican de modo preciso lo que hacen esos servicios.
En la practica se usa un lenguaje natural.
III. Grado de abertura
Una especificacin apropiada es completa y neutral.
Completo: todo lo necesario para efectuar una implementacin ha quedado
especificado.
Neutral: no describen la manera en que se deben ver.

Factor importante para lograr la interoperabilidad y la portabilidad


Interoperabilidad: define la extensin mediante la cual dos
implementaciones de sistemas o componentes de distintos fabricantes
pueden coexistir y trabajar juntos si se apoyan en sus servicios mutuos
Portabilidad: Define la extensin mediante la cual una aplicacin
desarrollada para un SD A se pueda ejecutar, en un sistema distribuido B
que comparte la misma interfaz que A.
III. Grado de abertura
Debe ser mas fcil configurar el sistema para componentes diferentes.
Fcil agregar nuevos componentes o reemplazar los existentes

Debe ser extensible: Fcil agregar partes que se ejecutan en SOs


diferentes, o incluso reemplazar todo un sistema de archivos.

Como lograr flexibilidad en SDs abiertos?? Deben estar organizados


como una coleccin de componentes relativamente pequeos y fciles de
reemplazar o adaptar.

Sistema monoltico tiende a ser cerrado en lugar de abierto.


IV. Escalabilidad
Se mide de acuerdo con al menos 3 dimensiones (Neuman, 1994):

Escalable con respecto a su tamao: se pueden agregar fcilmente usuarios


y recursos.

Escalable geogrficamente: los usuarios y recursos pueden radicar muy


lejos unos de otros

Escalable administrativamente: Fcil de manejar incluso si involucra


muchas organizaciones administrativas diferentes.
IV. Escalabilidad
Limitaciones en la escalabilidad en tamao
Servidor almacenamiento y
procesamiento ilimitado
Comunicacin con el servidor?
Seguridad??

nica BD, nico DNS

Necesidad de ruteo de mensajes


Recopilar informacin acerca de carga en todas las maquinas y lneas y ejecutar un
algoritmo para calcular rutas optimas.

Diseminar esta informacin a lo largo del sistema para mejorar el ruteo.

Recopilado es mala idea : sobrecarga de la red


IV. Escalabilidad
Algoritmos descentralizados
1. Ninguna maquina tiene informacin completa con respecto al estado
del sistema
2. Las maquinas toman decisiones con base en la informacin local
3. La falla de una sola maquina no arruina todo el algoritmo
4. No existen suposiciones implcitas con respecto a la existencia de un
reloj global, tomar en cuenta falta de sincronizacin entre relojes.
En una LAN es posible, no as en una WAN
IV. Escalabilidad
Limitaciones escalabilidad geogrfica

En una LAN se tiene comunicacin sncrona. La comunicacin toma unos cuantos cientos
de microsegundos.
En una WAN la comunicacin puede ser de cientos de milisegundos, tres veces mas
pequea en magnitud.

En una LAN puede existir comunicacin por difusin y respuesta solo por las maquinas
que proporcionan el servicio.
En las WAN la comunicacin no es fiable, siempre es de punto a punto.

Limitacin escalabilidad administrativa

Como solucionar lo relacionado con polticas conflictivas con respecto al uso de recursos (y
pagos), a la administracin y a la seguridad.
Tcnicas para hacer
escalamiento
Tcnicas para efectuar el escalamiento: (resolviendo problemas de
escalabilidad)

I. Ocultar las latencias de comunicacin, para lograr escalabilidad geogrfica


Construccin de aplicaciones que hacen solicitudes utilizando comunicacin asncrona. Al
requerir un servicio, en la espera de respuesta hacer otras cosas tiles.
Tcnicas para hacer
escalamiento
II. Distribucin
Tomar un componente, dividirlo en partes mas pequeas, dispersar dichas
partes a lo largo del sistema.

DNS, organizado de manera jerrquica dentro de 3 dominios, los


cuales estn divididos en zonas.

nl.vu.cs.flits
Tcnicas para hacer
escalamiento
Si el problema de escalabilidad genera degradacin del rendimiento
III. Replicacin
Replicar los componentes del sistema

Se incrementa la disponibilidad
Ayuda a balancear la carga entre los componentes para obtener un mejor
rendimiento
Tener una copia cercana puede ocultar problemas de latencia de
comunicacin.

Otra forma: utilizar el cache. Elaborar una copia en la proximidad del


cliente que accede a dicho recurso. Decisin tomada por el cliente.
Desventaja en el uso del cache y la replicacin. Puede provocar problemas de
consistencia (incoherencia en la informacin)
Trampas
1.3 Tipos de sistemas
distribuidos
Sistemas Distribuidos de Computo
Computo en Cluster
Computo en malla (grid)
Computo Cooperativo

Sistemas Distribuidos de Informacin


Sistemas de procesamiento de transacciones
Integracin de aplicaciones empresariales EAI

Sistemas Distribuidos Masivos


Sistemas caseros
Sistemas electrnicos para el cuidado de la salud
Redes de Monitoreo
Sistemas Distribuidos de
Computo
Usado para tareas de computo de alto rendimiento

Solucionar un problema proporcionado pequeas partes del problema


a varias unidades de calculo para solucionarlos y despus combinar
las soluciones parciales para encontrar una solucin al problemas
Supercomputadora vs. Computo
distribuido
Supercomputadora
Conjunto de procesadores fuertemente acoplados
Soporte de algoritmos inter-procesadores
Cumplen un propsito especifico
Alto Costo

Computo Distribuido
Dbilmente acoplado
Costo Variable
Diferentes opciones en software
Computo en Clster
Conjunto de recursos de hardware reunidos para llevar a cabo una
tarea en comn

Mejor rendimiento
Disponibilidad
Menor costo a una supercomputadora
Alta disponibilidad

Coleccin de estaciones de trabajo similares, o computadoras


personales, conectadas cercanamente por medio de una red de rea
local de alta velocidad.
Cada nodo ejecuta el mismo SO
Computo en Clster
Adquirio popularidad cuando mejoro la relacin precio-rendimiento
de las PCs y estaciones de trabajo

Se utiliza para la programacin en paralelo donde un solo programa


(de calculo intensivo) corre paralelamente en mltiples maquinas

Configuracin general de clster basado


en Linux-Beowulf

Coleccin de nodos de computo


controlados, se accede a ellos mediante un
solo nodo maestro
Computo en Clster
NASA 1994
Computo en Clster
Los nodos solo requiere un SO.
El nodo maestro:
Manipula la ubicacin de los nodos para un
programa paralelo en particular
Mantiene una cola de procesamiento por
lotes de trabajos enviados
Proporciona interface para los usuarios del
sistema.
Ejecuta el middleware necesario para
ejecutar programas y administrar el
clster.

El middleware debe conformarse por


bibliotecas necesarias para ejecutar
programas paralelos con facilidades de
comunicacin basada en mensajes
Computo en Clster
El SO distibuido MOSIX es simtrico y no jerrquico.
Multicomputer Operating System for Unix

Intenta proporcionar una imagen de sistema nico de un clster.


Ofrece al proceso la mayor transparencia de distribucin.
Proporciona el grado de transparencia mas alta
Permite que los procesos migren de manera dinmica y preferencial
entre los nodos que conforman al clster.

Permite a un usuario comenzar la aplicacin en cualquier nodo (nodo


de inicio), permitiendo migracin hacia otros nodos para eficientar
recursos. Balanceo dinmico de carga.
Computo en Malla o Grid
En un clster se tiene como caracterstica la homogeneidad: HW, SO,
red.
En grids se tiene un alto grado de heterogeneidad: HW, SOs, Tecnologa
de Redes, Dominios administrativos, polticas de seguridad, etc.
Reunir recursos de diferentes organizaciones para permitir la
colaboracin de un grupo de personas o instituciones: Organizacin
Virtual
Consta de SDs construidos generalmente como un conjunto de sistemas
de computo

Definicin: Infraestructura de Software y Hardware para coordinar el


proceso de compartir recursos y resolver problemas en organizaciones
virtuales dinmicas
Computo en Malla o Grid
La gente que pertenece a la misma organizacin virtual tiene
derechos de acceso a los recursos de la misma.
Servidores
Supercomputadoras
Supercomputadoras implementadas como clsteres de computadoras
Facilidades de almacenamiento
Bases de Datos
Telescopios, Sensores, etc.
Computo en Malla o Grid
El software para elaborar un sistema en grid debe
Otorgar privilegios a los recursos desde diferentes dominios
administrativos
Para aquellos usuarios y aplicaciones que pertenecen a una organizacin
virtual especifica.

Arquitectura en capas:
Fabricacin proporciona interfaces para recursos
locales ubicados en un sitio especifico
Interfaces adaptadas para permitir
intercambio de recursos dentro de la
Organizacin virtual
Proporcionan funciones para consultar estado
y capacidades de un recursos, y funciones para
la Administracin real del recurso (Ej.
Bloqueos)
Computo en Malla o Grid
Conectividad: protocolos de comunicacin
para dar soporte a transacciones del grid
que abarcan el uso de mltiples recursos.
Protocolos, seguridad autentificacin.

Recursos: Responsable de la administracin


de un solo recurso.
Utiliza funciones proporcionadas por capa
conectividad y llama de manera directa a
las interfaces puestas a disposicin
mediante la capa de fabricacin.
Obtener informacin de configuracin sobre un
recurso especifico
Crear proceso
Lectura de datos
Control de acceso
Computo en Malla o Grid
Capa colectiva: Manipula acceso a mltiples
recursos. Consta de servicios para descubrir
recursos, ubicacin y calendarizacin de
tareas dentro de mltiples recursos,
replicacin de datos, etc.
Capa de aplicaciones: Aplicaciones que
operan dentro de una organizacin virtual y
hacen uso del ambiente de computo en grid.

Arquitectura alternativa: arquitectura


abierta de servicios en grid (OGSA)
Distintos tipos de capas y componentes.
Sistemas Distribuidos de
Informacin
Organizaciones trabajando con una gran variedad de aplicaciones en
red, las cuales resultaba difcil interoperar
Muchas soluciones middleware existentes integran aplicaciones
dentro de un sistema de informacin corporativa.
Varios niveles de integracin:
Transaccin distribuida o procesamiento de transacciones
Integracin de aplicaciones empresariales

Distribuir informacin entre varios servidores a travs de modelos de


comunicacin como RMI (Remote Method Invocations) y RPC
(Remote Procedure Calls)
Sistemas Procesamiento
transacciones
Servidor corriendo aplicaciones de red (muchas veces junto con una BD)
accesibles para programas remotos (clientes)

Los clientes enviaban peticin al servidor para ejecutar operaciones


especificas.

TPS permita a los clientes alojar cierto numero de peticiones


(posiblemente para distintos servidores) dentro de una peticin mas
grande y ejecutarla como transaccin distribuida.

Caracterstica clsica: Todas o ninguna de las peticiones se ejecutaban


Sistemas Procesamiento
transacciones
Las operaciones en una BD se llevan a cabo generalmente en forma
de transacciones
Programar utilizando transacciones requiere de primitivas de
transaccin especiales que sern proporcionadas por el SD o por el
lenguaje del sistema en ejecucin.
Las operaciones entre estas
dos, forman el cuerpo de la
Delimitan el alcance de transaccin pueden ser:
una transaccin llamadas del sistema,
procedimientos de biblioteca,
o instrucciones de un lenguaje
encerradas entre parntesis,

Las llamadas a procedimientos de servidores remotos (RPC) con frecuencia tambin se


encapsulan en una transaccin, dando paso a lo que se conoce como RPC transaccional
Propiedades transacciones
ACAD o ACID
Atomicidad
Desde el punto de vista externo la transaccin es indivisible
Ocurre completamente o se omite

Consistencia
Un transaccin transforma un estado consistente de la BD en otro estado consistente,
aunque la transaccin no tiene porque preservar la consistencia en todos los puntos
intermedios de su ejecucin.
Una transaccin no viola sistemas invariantes

Aisladas (Isolated)
Transacciones concurrentes no deben interferir entre ellas
Asegura que la realizacin de dos transacciones sobre la misma informacin sean
independientes y no generen ningn tipo de error
El resultado final luce como si todas las transacciones se ejecutaran secuencialmente

Durables
Una vez que se confirma la transaccin (commit), los cambios son permanentes
Ninguna falla despus de completada puede deshacer los resultados
Monitor de procesamiento de
transacciones o monitor TP,
Componente que manejaba transacciones distribuidas (o anidadas)
conformaba la parte central para integrar aplicaciones al nivel de
servidor o de base de datos.

Permitir a una aplicacin el acceso a mltiples servidores/bases de datos ofreciendo un


modelo de programacin transaccional
Integracin de Aplicaciones
Empresariales EAI
Las aplicaciones se fueron separando de manera gradual en
componentes independientes (componentes de base de datos y
componentes de proceso)

A medida que las aplicaciones se separan de las BDS, mas evidente se


hace la necesidad de facilidades para integrar aplicaciones
independientemente de sus bases de datos

Permitir que las aplicaciones se comuniquen entre ellas de forma directa: EAI

Los componentes de las aplicaciones deben poder comunicarse entre ellos


y no necesariamente a travs del modelo de peticin/respuesta
Integracin de Aplicaciones
Empresariales EAI
Middleware como facilitador de la comunicacin al integrar aplicaciones
empresariales
Permite que las aplicaciones intercambien informacin de manera directa
Comunicacin Middleware
RPC llamadas a procedimiento remotos.
Un componente de aplicacin puede enviar de manera efectiva una peticin a otro
componente de aplicacin, si realiza una llamada a un procedimiento local, la peticin se
empaca como un mensaje y se enva al componente invocado (remoto)
El resultado se enva de regreso y se devuelve a la aplicacin como resultado de la
llamada al procedimiento.

RMI llamadas a objetos remotos.


Opera sobre objetos en lugar de aplicaciones.

Desventaja: el que llama y el llamado deben estar en ejecucin y activos al


momento de la comunicacin.
Deben saber exactamente como referirse el uno al otro.
Comunicacin Middleware
Otro enfoque: Middleware orientado a mensajes MOM
Aplicaciones envan mensajes a puntos de contacto lgicos (descritos mediante un
sujeto)
Las aplicaciones pueden indicar su inters por un tipo especifico de mensaje

El middleware de encarga de que los mensajes se entreguen a aquellas


aplicaciones. SISTEMAS DE PUBLICACION-SUSCRIPCION
Tipos Sistemas Distibuidos
Hasta este punto: SDs estable
Nodos fijos, conexin mas o menos permanente hacia una red.
O eso aparentan al tener transparencia y tcnicas que se analizaran mas
tarde!

Sistemas Distribuidos de Computo


Sistemas Distribuidos de Informacin

Introduccin de dispositivos de computo mviles y embebidos


Inestabilidad!
Sistemas Distribuidos Masivos
Sistemas Distribuidos Masivos

Computadora embebidas, dispositivos como Monitores, Cmaras


Inalmbricas, PDAS, Sensores, mviles
Dispositivos se caracterizan por ser pequeos, de bateras, porttiles,
y tienen slo una conexin inalmbrica, aunque no todas estas
caractersticas son aplicables a todos los dispositivos.
Parte del ambiente que nos rodea (Inherentemente distribuido)
Carencia general de control administrativo humano.
En algunos casos, los dispositivos se configuran por el dueo, de otra
manera ellos deben descubrir automticamente su ambiente y adaptarse
de la mejor manera posible.
Sistemas Distribuidos Masivos
Grimm y colaboradores (2004) precisaron bastante esta adaptacin al
formular los tres siguientes requerimientos para aplicaciones mviles:
1. Incluir cambios contextuales. Consciente de que su ambiente puede
cambiar en cualquier momento
2. Fomentar composiciones a la medida. Se utilizan en formas muy
diferentes por distintos usuarios, la suite de aplicaciones debe ser sencilla
de configurar, ya sea por el usuario o mediante la interpolacin
automatizada (pero controlada).
3. Reconocer el intercambio como algo comn. Ingresan al sistema para
acceder a informacin (y probablemente proporcionarla). El espacio donde
reside la informacin puede cambiar a cada momento.

No habr transparencia en distribucion


Sistemas Caseros
Una o mas PCs, TVs, equipos de audio y video, consolas, telfonos,
tablets, etc
Implementos de cocina, cmaras de vigilancia, relojes, controladores de
alumbrado, etc

Un usuario no aceptara componentes que son propensos a errores


Algunos retos
Auto administracin
Auto configuracin
Actualizacin automtica
Espacios personales: dispositivos compartidos, as como personales.
Almacenamiento masivo
Asesores, para identificar gustos similares
Sistemas electrnicos de cuidado
de salud
Dispositivos monitoreo de salud de personas que solicitan ayuda
medica de manera automtica en casos necesarios
Dispositivos con sensores organizados dentro de una BAN (Body
Area Network) de preferencia inalambrica
No debe estorbar al usuario
Debe funcionar aun si la persona esta en movimiento, sin cables
atados a dispositivos no mviles
Sistemas electrnicos de cuidado
de salud

Dos organizaciones
Hub Central es parte de la BAN y rene informacin necesaria, cada cierto tiempo libera la informacin en
un dispositivo de almacenamiento mas grande
El hub puede controlar la BAN
La BAN esta conectada de modo continuo a una red externa para enviar la informacin monitoreada.
Pueden existir conexiones adicionales con el mdico u otras personas.
Sistemas electrnicos de cuidado
de salud
1. En dnde y cmo debe almacenarse la informacin monitoreada?
2. Cmo puede evitarse la prdida de informacin crucial?
3. Qu infraestructura se necesita para generar y propagar alertas?
4. Cmo pueden proporcionar los mdicos retroalimentacin en lnea?
5. Cmo puede lograrse una fortaleza extrema en el sistema de
monitoreo?
6. Cules son los temas de seguridad y cmo se pueden reforzar las
polticas adecuadas?

Como procesar los datos dentro de la red? Monitorear informacin, agregarse,


almacenarse o enviarse permanentemente a un medico
Redes de Monitoreo
Se utilizan para procesar informacin no solo para comunicacin
Constituida por decenas, centenas o miles de nodos pequeos con un
dispositivo sensorial
Usan comunicacin inalmbrica y bateras
Limitacin en recursos, capacidad de comunicacin y consumo de energa

La eficiencia debe ser un punto clave cuando se disean


Se pueden ver como una base de datos distribuida
Redes usadas para aplicaciones de medicin y vigilancia
Operador extrae informacin de la red, o parte de esta, a travs de queries
Requiere colaboracin de algunos sensores de la red.
Redes de Monitoreo
Procesamiento de datos dentro de la red
Consulta a los sensores a lo largo de un rbol , la agregacin tendr
lugar en donde se junten dos o ms ramas del rbol
1. Cmo configuramos (dinmicamente) un rbol eficiente en
una red de monitoreo?
2. Cmo se lleva a cabo la agregacin de resultados? Es
posible controlarla?
3. Qu sucede cuando los vnculos de la red fallan?
Redes de Monitoreo
Los sensores no cooperan,
nicamente envan sus datos a una
BD centralizada, ubicada en el lugar
del operador.
Desperdicio recursos de red y energa

Las consultas se envan a sensores


importantes y cada sensor debe
calcular una respuesta, el operador
debe agregar las respuestas
devueltas.
Desperdicio de recursos en la capacidad
de agregacin de los sensores
Como hacer el procesamiento de
datos dentro de la red?
1.4 Arquitectura
Que componentes forman un SD?

Como interaccionan entre si?

SDs son complejas piezas de software cuyos componentes estas dispersos en diversas maquinas.

Organizacin de un SD
Organizacin fsica real
Organizacin lgica de la coleccin de componentes de software

Arquitectura de software: como se organizaran los componentes de software y como deben


interactuar.

La organizacin real de un SD requiere generar las instancias y colocar los componentes del
software en maquinas reales.

Arquitectura de Sistema: Creacin de instancias finales de una arquitectura de software.


Arquitectura de Software
Estilos (modelos) arquitectnicos
Organizacin lgica de los sistemas distribuidos en componentes de
software y su interaccin
Un Estilo arquitectnico se formula en trminos de:
Componentes
la forma en que interactan entre si
el intercambio de datos entre los componentes
como estos elementos se configuran juntos en un sistema

Componente: Unidad modular con interfaces requeridas bien definidas.


Ducha unidad puede ser reemplazable dentro de su ambiente, a
condicin de respetar sus interfaces.
Conector: Mecanismo que media la comunicacin, coordinacin o
cooperacin entre componentes.
Formado por los medios disponibles para hacer llamadas a procedimientos
(remotos), paso de mensajes o flujo de datos.
Arquitectura de Software
Estilos (modelos) arquitectnicos
Estilos arquitectnicos formados por componentes y conectores.

1. Arquitecturas en capas.
2. Arquitecturas basadas en objetos.
3. Arquitecturas centradas en datos.
4. Arquitecturas basadas en eventos.
Arquitectura de Software
Estilos (modelos) arquitectnicos
Estilos arquitectnicos formados por componentes y
conectores.
1. Arquitecturas en capas
Los componentes se estructuran (organizan) a modo de capas,
donde al componente de la capa L(i) se le permite llamar a
componentes de la capa subyacente L(i-1), pero no del resto de
capas.

2. Arquitecturas basadas en objetos


Cada objeto es un componente, estos componentes se conectan a
travs de un mecanismo de llamadas a procedimientos
(remotos)
Coincide con la arquitectura de sistemas cliente-servidor
Arquitectura de Software
Estilos (modelos) arquitectnicos
3. Arquitecturas centradas en datos.
Idea: los procesos se comunican a travs de un repositorio
comn (activo o pasivo)
Sistemas de archivos distribuidos compartidos, las comunicaciones
se realizan a travs de archivos
Sistemas distribuidos basados en la web

4. Arquitecturas basadas en eventos.


Procesos se comunican a travs de propagacin de eventos, los
cuales opcionalmente transportan datos.
Los procesos publican eventos, el middleware asegura que solo
aquellos procesos suscritos a tales eventos lo recibirn.
Sistemas de publicacion-suscripcion.

Espacios de datos compartidos


Arquitectura de Sistema
Arquitectura de Sistema: Creacin de instancias finales de una arquitectura
de software.
Organizacin de componentes de software, su interaccin y ubicacin

Centralizadas
Cliente-Servidor

Descentralizadas
Peer-to-Peer
Arquitectura cliente-servidor
Conjunto de servicios que se proporcionan a los clientes que hacen uso de
dichos servicios. Los servidores y los clientes se tratan de forma
diferente en estos sistemas.

Cliente: procesos que quiere acceder a datos, usar recursos o realizar


operaciones en una computadora diferente

Servidor: Proceso que administra datos o cualquier otro recurso


compartido, es capaz de hacerlos disponibles a otros procesos presentes
en otros dispositivos

Los clientes necesitan conocer que servidores estn disponibles, pero


normalmente no conocen la existencia de otros clientes
Arquitectura cliente-servidor
Interaccin
Comportamiento solicitud-respuesta
Cliente Servidor RPC
1988, Xerox
Transparencia del paso de mensajes
Enfocarse en la aplicacin bajo el paradigma de llamado de funciones
Versin orientada a objetos_ RMI
Arquitectura cliente-servidor
Variante: Servicios proporcionados por mltiples servidores
Los servidores mantienen bases de datos replicadas o distribuidas
Ej. Muchos servicios de comercio Web estn implementados en
diferentes servidores
Arquitectura cliente-servidor
Variantes: Servidores proxy, Suministrar replicacin/distribucin
trasparente
Los servidores proxy mantienen caches, como almacenes de recursos
solicitados recientemente
Utilizados frecuentemente en motores de bsqueda
Arquitectura cliente-servidor
Como establecer una diferencia clara entre cliente servidor?
Ej. Servidor base de datos distribuida

Solucin: Cliente - Servidor en niveles o capas


1. El nivel de interfaz de usuario: contiene lo necesario para interfaz
directa con el usuario
2. El nivel de procesamiento: contiene generalmente las aplicaciones
3. El nivel de datos: administra los datos reales sobre los que se esta
actuando
Arquitectura cliente-servidor
Motor de bsqueda en internet
Arquitectura cliente-servidor
Organizaciones alternativas
Arquitecturas de objetos
distribuidos
No hay distincin entre servidores (proveedor de servicios) y clientes
(usuario de los servicios)
El sistema puede ser visto como un conjunto de objetos que
interaccionan cuya localizacin es irrelevante.
Arquitectura igual a igual
Los procesos tienen un rol similar, aunque pueden asumir un rol
cliente/servidor en ciertos momentos
Mejora la tolerancia a falla y la escalabilidad
Difcil de coordinar

Ej
Bsqueda distribuida
Enrutamiento
Calculo Distribuido

Vous aimerez peut-être aussi