Escolar Documentos
Profissional Documentos
Cultura Documentos
Ingeniera de Software
2014-II
- semana 01 -
Modelamien
to de
Sistemas
Distribuidos
.
Trabajo en
red.
- semana 03 -
- semana 02 Comunicacin
entre
procesos
- semana 06 -
Comunicaci
n grupal.
Protocolos
de Internet
(continuaci
n)
Practica Calificada
1
Simulacin
de red.
- semana 05 -
- semana 04 Programaci
n de
sockets.
- semana 07 -
Practica
Calificada 2
Objetos
Distribuidos.
- semana 09 -
Eventos y
notificacione
s.
- semana 10 -
Procesos
Sistema de
Archivos y
Nombres.
Sistema de
nombres de
dominios.
Examen
Final
- semana 14 -
- semana 15 -
Practica
Calificada 3
- semana 12 -
semana 13
-
Sistema de Evaluacin
ndice de la Semana I y II
1.- Introduccin a los Sistemas Distribuidos
1.1.- Sistemas
- Definicin, Elementos, Caractersticas, Clasificacin
1.2.- Procesamiento
- Por lotes, en lnea, centralizado, distribuido.
1.3.- Antecedentes a los Sistemas Distribuidos.
1.4.- Los Sistemas Distribuidos.
Definicin, Caractersticas, Ventajas y Desventajas.
1.7.- Comunicacin entre los Sistemas y Procesos.
1.8.- Arquitectura de los Sistemas.
LOS SISTEMAS
Definicin
Elementos
Caractersticas o propiedades
Subsistemas
Retroalimentacin
Homeostasis
Entropa
Adaptabilidad
Estabilidad
Clasificacin
Caja Negra
Tipos de Procesamiento
Por Lotes (batch)
Ejecucin de un programa sin el control o supervisin directa del usuario.
Mecanismo tradicional y antiguo de ejecutar tareas repetitivas sobre
grandes conjuntos de datos.
Se alcanzan tiempos de ejecucin muy altos, ya que los recursos
disponibles estn siendo utilizados casi continuamente.
Sirve para procesar datos histricos.
Procesamiento asncrono (evento registro)
En Lnea (On-line)
Ejecucin de un programa con control y supervisin directa del usuario.
Mecanismo actual de ejecutar tareas transaccionales, individuales y no
repetitivas sobre pequeos conjuntos de datos.
El proceso se efecta en el momento en que esta sucediendo la
transaccin.
Procesamiento sncrono (evento registro)
Procesamiento Secuencial
Es el procesamiento de una tarea despus de otra. Es un proceso lento
en el que si una tarea se enlentece, el sistema completo debe esperar. La
ventaja es que es fcil de entender y de implementar
Procesamiento Paralelo
Es el procesamiento que favorece, la explotacin de los sucesos
concurrentes en el proceso de computacin. Concurrencia implica
paralelismo, simultaneidad y solapamiento.
Pueden producirse en diferentes recursos durante el mismo intervalo de
tiempo.
El rendimiento general del sistema mejora.
El procesamiento paralelo exige la ejecucin concurrente en el
computador de muchos programas.
Procesamiento Distribuido / Descentralizado
Este modelo, que predomina en la actualidad, permite descentralizar el
procesamiento y recursos, de cada uno de los servicios y de la
visualizacin de la Interfaz Grfica de Usuario.
Los sistemas distribuidos tienen una mayor velocidad de respuesta al medio
ambiente pero requieren mayor cantidad de recursos y mtodos de
coordinacin y de control ms elaborados y complejos
Fundamentos del Desarrollo de Sistemas Distribuidos
Definiciones
Un sistema distribuido es una coleccin de computadoras independientes; es decir
autnomas, que aparecen ante los usuarios del sistema como una nica computadora
Los sistemas operativos distribuidos convierten toda la coleccin de hardware y software
Un sistema distribuido es aqul al que sus usuarios ven como un ordinario sistema
operativo centralizado; sin embargo, se ejecuta en diferentes e independientes CPUs
Tanembaum
Heterogeneidad
Es la variedad y diferencia que podemos encontrar en los elementos que componen
una red de computadoras sobre la que se ejecuta un sistema distribuido.
Estos elementos pueden ser redes, lenguajes de programacin, hardware, sistemas
operativos y las aplicaciones de diferentes desarrolladores.
Los protocolos de comunicacin de Internet enmascaran las diferencias entre redes y
el middleware puede tratar con las diferencias restantes. Para que la heterogeneidad
subsista, es necesario el uso de Middleware.
En cuanto a las redes, a pesar de que internet esta compuesta por muchos tipos de
redes diferentes, sus diferencias se encuentran enmascaradas dado que los
computadores conectados a la Internet utilizan los protocolos de Internet para
comunicarse una con otra.
Los programas, escritos por diferentes programadores no podran comunicarse entre
si a menos que utilicen estndares comunes.
Cdigo Mvil
Cdigo que puede ser enviado de una computadora a otra para que sta ltima
la ejecute.
Ejemplo:
Problema:
Applets
Implentar cdigo para una mquina (so) no apropiada. Win. Vs Linux.
Solucin:
Cdigo ejecutable sobre cualquier hardware.
Mquinas Virtuales
Proveen un modo de crear cdigo ejecutable sobre cualquier hardware.
Apertura (openness)
La apertura de los sistemas distribuidos se determina primariamente por
el grado hacia el que nuevos servicios de comparticin de recursos se
pueden aadir sin perjudicar ni duplicar a los ya existentes.
Un sistema abierto, puede estar integrado por diferentes proveedores
sin afectar su funcionamiento.
Un sistema informtico es abierto si el sistema puede ser extendido de
diversas maneras. Un sistema puede ser abierto o cerrado con
respecto a extensiones hardware (aadir perifricos, memoria o
interfaces de comunicacin, etc ) o con respecto a las extensiones
software ( aadir caractersticas al sistema operativo, protocolos de
comunicacin y servicios de comparticin de recursos, etc )
Seguridad
Confidencialidad
Autentificacin
Integridad
No repudio
Disponibilidad
Escalabilidad
Caracterstica importante, que permite que un sistema conserve su efectividad ante
un incremento de usuarios y recursos.
Un sistema distribuido es escalable si el coste de aadir un usuario es una cantidad
constante en trminos de recursos que se debern aadir. Los algoritmos
empleados para acceder a los datos compartidos deberan evitar cuellos de botella
y los datos deberan estar estructurados jerrquicamente para dar los mejores
tiempos de acceso
Escalabilidad de tamao, si se puede agregar usuarios y recursos fcilmente.
Escalabilidad de localizacin, si se pueden separar los usuarios de los recursos
(distantes el uno del otro) sin que el sistema se afecte.
Escalabilidad de administracin, si un sistema es de fcil administracin a pesar que
se utiliza en organizaciones independientes.
Tolerancia a Fallos
Los fallos tanto de hardware como de software en un sistema distribuido, solo afecta a
los servicios que el componente que fallo este prestando, mientras que los otros
servicios que prestan los otros componentes siguen funcionando.
Las tcnicas comunes para el tratamiento a fallos son:
Deteccin de fallos
Enmascaramiento de fallos
Tolerancia a fallos
Recuperacin frente a fallos
Redundancia
Comparticin de Recursos
Es el abanico de entidades que pueden compartirse en un sistema
distribuido
Los recursos en un sistema distribuido estn fsicamente encapsulados en
una de las computadoras y slo pueden ser accedidos por otras
computadoras mediante las comunicaciones (la red).
Un sistema distribuido puede verse de manera abstracta como un conjunto
de gestores de recursos y un conjunto de programas que usan los
recursos.
Concurrencia
Transparencia
La transparencia se define como la ocultacin al usuario y al
programador de aplicaciones de la separacin de los componentes de
un sistema distribuido, de manera que el sistema se percibe como un
todo, en vez de una coleccin de componentes independientes.
En PCs Independientes
Se pueden compartir recursos (perifricos,)
Flexibilidad
Arquitectura de
Sistemas
Arquitectura de Sistemas
Es la organizacin fundamental de un sistema, que incluye sus componentes, las
relaciones entre s y el ambiente, y los principios que gobiernan su diseo y
evolucin
Las Arquitecturas de Sistemas representan la divisin o distribucin de
responsabilidades entre los componentes del sistema (aplicaciones, servidores y
otros procesos) y la ubicacin de los componentes en los computadores en la red.
Sus implicaciones fundamentales estn en las prestaciones, fiabilidad y seguridad
del sistema resultante.
La arquitectura es la representacin usada para transportar informacin abstracta
sobre el sistema, las relaciones entre sus elementos y las reglas que gobiernan esas
relaciones
Actualmente los modelos existentes son bsicamente:
- Monoltico o Tradicional.
- Cliente / Servidor.
- Multiples Capas o Niveles.
Cada uno de estos modelos tiene como cualquier otro modelo sus ventajas y
desventajas.
Fundamentos del Desarrollo de Sistemas Distribuidos
Arquitectura Monoltica
En una arquitectura monoltica las 3 partes de las aplicaciones se
ejecutan en la misma mquina.
Las aplicaciones a ser ejecutadas en este tipo de arquitectura son fciles
de desarrollar, difcil de mantener, poco escalable y precisa de cierta
potencia de proceso.
a interfaz de usuario y las reglas del negocio se alojan en el ordenador del client
La potencia de proceso se
reparte entre la capacidad de
procesamiento de los clientes.
La interfaz de usuario y las
reglas de negocio deben
comunicarse
remotamente
con los datos, siendo por ello
mas compleja, y se requiere
una plataforma de redes.
Arquitectura Multicapa
Esta arquitectura hace referencia a aplicaciones que se ejecutan
en forma distribuidas denominndose nivel o capa a cada una de
las divisiones.
Ejemplo:
Una arquitectura de 3 capas o niveles sera si un cliente ejecuta
la interfaz, un servidor de aplicaciones que procesa las reglas del
negocio y un servidor de datos se encarga del almacenamiento y
recuperacin
de datos.
Un servidor de
aplicaciones puede
ser un servidor web que ejecuta
programas ante solicitudes de
clientes.
La interfaz de usuario esta a cargo
del cliente al ejecutar un browser
en su estacin de trabajo.
MENSAJES
Es la tcnica de ms bajo nivel, y consiste en enviar mensajes entre el cliente y
servidor, para ello el programador debe considerar los detalles de la
comunicacin: apertura del canal, envo y recepcin, interpretacin y proceso.
OBJETOS DISTRIBUIDOS
Este mtodo esta basado en el mecanismo DCE RPC (Distributed Computing
Enviroment Remote Procedure Call).
Es el sistema de llamada a procedimiento remoto desarrollado para el entorno de la
informtica distribuida (DCE).
DCE es ms comnmente usado para interactuar con Windows Network Services.
Los modelos ms representativos son CORBA, JAVA RMI y DCOM.
CORBA
CORBA es una tecnologa probada, cuya finalidad es facilitar la creacin de
aplicaciones distribuidas, con una interoperabilidad entre componentes software
independientemente del lenguaje en que estn desarrollados, la plataforma hardware y
el sistema operativo sobre el que se ejecutan.
Middleware orientado a objetos que permite invocacin de mtodos distribuidos de
forma transparente a las redes, sistemas operativos, arquitecturas y lenguajes de
programacin.
Esta estandarizado por la OMG, el mayor consorcio de mas de 800 empresas.
Solo emite especificaciones aceptadas por consenso que son pblicas y gratuitas.
Se apoya en 3 pilares fundamentales:
IDL (Interface Definition Language)
ORB (Object Request Broker)
Protocolo GIOP (General Inter-ORB Protocol) y sus derivados.
SERVICIOS CORBA
Los CORBA Services, son servicios nuevos accesibles en forma de
mtodos de los objetos ORB y BOA (Bsic Object Adapter).
El desarrollo de aplicaciones distribuidas implica el aprendizaje de
servicios nuevos. Algunos servicios se venden como productos
separados.
Ejemplo, un servicio fundamental es el de nombres o directorio distribuido.
Un ORB realiza una llamada a los mtodos de un objeto siempre
que se disponga de una referencia a ste, referencia que es preciso
obtener de alguna forma.
El servicio de nombres se ejecuta en un determinado puesto de la
red conocido por las aplicaciones.
Los Servidores registran sus implementaciones de interfaces
facilitando la referencia a los objetos que hay disponibles.
Cuando un Cliente necesita una interfaz consulta al servicio de
nombres y obtiene esa referencia.
Todos los servicios CORBA se exponen en forma de objetos CORBA.
Fundamentos del Desarrollo de Sistemas Distribuidos
La Exclusin Mutua
Cuando un proceso debe leer o actualizar ciertas estructuras de datos
compartidas, primero entran en una regin crtica para lograr la
exclusin mutua y garantizar que ningn otro proceso utilice las
estructuras
los datos
al mismo tiempo.
La forma dede
lograr
una exclusin
mutua en ambientes centralizado ,
es el siguiente: Algoritmo centralizado
Se elige un proceso como coordinador.
Siempre que un proceso desee entrar a una regin crtica, enva un
mensaje de solicitud al coordinador, donde indica la regin crtica a la
que desea entrar y pide permiso. Si ningn otro proceso est por el
momento en esa regin crtica, el coordinador enva una respuesta
otorgando el permiso , como se muestra en la siguiente figura.
Si otro proceso (2) pidiera entrar a la misma regin crtica, el
coordinador ya sabe que otro proceso distinto ya se encuentra en la
regin crtica por lo que no le otorga permiso a entrar. El proceso 2
pasa a formar una fila de espera.
Cuando el proceso 1 sale de la regin crtica, enva un mensaje al
coordinador para liberar su uso exclusivo.
Fundamentos del Desarrollo de Sistemas Distribuidos