SlideShare una empresa de Scribd logo
1 de 42
Infraestructura en la Web
Curso de la carrera Especialización en Ingeniería Web
UNIVERSIDAD CATÓLICA DE
SANTIAGO DEL ESTERO
Marzo- Abril de 2014
Dra. María de los Ángeles Martín
Univ. Nac. de La Pampa
martinma@ing.unlpam.edu.ar
Introducción al Curso
• Docentes:
 Maria de los Ángeles Martín
 Hernán Molina
• Objetivos:
Que el alumno adquiera los conocimientos relacionados
con:
 Los conceptos teóricos y prácticos básicos relacionados con la
Tecnología Web.
 Las diferencias y semejanzas entre la Ingeniería de Software y
la Ingeniería Web.
 Las funcionalidades básicas de la Web y sus herramientas
asociadas.
Introducción al Curso
• Aplicaciones Distribuidas en la Web
 Desarrollo de Aplicaciones Distribuidas
 Diseño Arquitectónico
 Tecnologías
 Curso Teórico y Práctico
 Trabajo final integrador
Bibliografía (conocimientos previos)
• Distributed Systems, Concepts and Design , George
Coulouris, Jean Dollimore, Tim Kindberg, Ed. Addison
Wesley.
• Data and Computer Communications - W. Stallings. Fifth
Edition. Prentice Hall, NJ-USA, 1997.
• Client/Server Survival Guide 3rd edition , Orfali, R.,
Harkey, D., Edwards, J. , 1999
• Distributed Systems: Principles and Paradigms – Andrew
S Tanenbaum, Maarten Van Steen – Prentice Hall,
2007.
Bibliografía (Conceptos)
• Software Engineering – Ian Sommerville - Addisson
Wesley, 2004.
• Ingenieria del Sosftware – Roger S. Pressman – Mc
Graw Hill
• World Wide Web Consortium, Reportes Técnicos:
http://www.w3c.org/TR/
• Web Services Concepts, Architectures and Applications –
Gustavo Alonso, Fabio Casati, Harumi Kuno, Vijay
Machiraju – Springer, 2004.
• Apuntes de clases.
Bibliografía (Tecnologías)
• Inside Corba. Thomas J. Mowbray, Willian A.
Ruh. Addison-Wesley, 1997.
• Building Web Services with Java, Making sense
of XML, SOAP, WSDL, and UDDI – Steve
Graham, Doug Davis, Simeon Simeonov, Glen
Daniels, Peter Brittenham, Yuichi Nakamura,
Paul Fremantle, Dieter Koenig, Claudia Zentner.
– Sams Publishing, 2004.
• Material disponible en el sitio de la facultad
diversos.
Aplicaciones Distribuidas
• Conceptos
• Desafíos
• Inconvenientes
• Aspectos de diseño
Aplicaciones Distribuidas
Una aplicación con distintos componentes que se
ejecutan en entornos separados, normalmente
en diferentes plataformas conectadas a través
de una red
Sistemas Distribuidos
• El concepto de sistema distribuido se opone al
de sistema centralizado  el basado en una
sola CPU+memoria+disco, con uno o varios
puestos de trabajo.
• Varias CPUs desacopladas (unidas por una red)
Definición de sistema distribuido
• Definición para empezar:
“Un sistema distribuido es una colección de
computadoras y sub-sistemas independientes
que aparecen ante los usuarios del sistema
como una única computadora”
Definición de sistema distribuido
• Definición de Coulouris:
“Un sistema distribuido es aquel en el que los
componentes localizados en computadores,
conectados en red, comunican y coordinan sus
acciones únicamente mediante el paso de
mensajes”
Tipos de sistemas distribuidos
• Procesamiento distribuido
• Datos distribuidos
• Datos y procesos distribuidos
• Objetos distribuidos
Ventajas de los ss.dd.
• Prestaciones relativas: Resulta más rentable
aumentar la potencia del sistema CPU
comprando más ordenadores, que comprando
una CPU más potente.
• Velocidad: Un solo procesador no puede
alcanzar tanta velocidad como queramos
(existen límites físicos)
• Escalabilidad: Si se desea más potencia, en
un s.d. basta con comprar más
microprocesadores. Además, los equipos
antiguos pueden seguir dando servicio.
Ventajas de los ss.dd.
• Aplicaciones distribuidas: Muchas
aplicaciones actualmente sólo se conciben
como distribuidas (correo electrónico, sistemas
de información en Internet, trabajo corporativo,
bancos, etc.)
• Fiabilidad: Si una sola máquina se viene abajo,
el sistema en conjunto puede continuar dando
servicio.
• Disponibilidad: Los servicios en el lugar y
momento que se necesiten
Más ventajas
• Compartición de recursos (discos, CPUs,
impresoras...), Compartición de información
• Flexibilidad de uso:
 todos los servicios están disponibles desde cualquier
puesto
 la ejecución puede realizarse en otras máquinas que
estén menos cargadas
Características problemáticas de
un s.distr.
• Comunicación no fiable: fallos en la red
• Comunicación insegura
• Comunicación costosa: ahora no tanto
• Heterogeneidad de los nodos
• Sincronización
Inconvenientes
• Actualmente no hay software para gestionar
apropiadamente un sistema distribuido
• La probabilidad de fallos en partes del
sistema es mayor
• Hay más problemas de seguridad
• Hay más problemas de administración
• Nuestro sistema local puede verse afectado
por fallos en máquinas de otros lugares
Desafío: Transparencia
• Las Aplicaciones Distribuidas dan a los usuarios
una visión de maquina única sobre un conjunto
heterogéneo de redes y computadores.
• Esta transparencia debe ser considerada sobre
varios aspectos:
 . Ubicaciones
 . Nombres
 . Paralelismo
Aspectos de diseño: Transparencia
Transparencia de
localización
Los recursos tienen nombres que no
denotan la máquina en la que están
Transparencia de
migración
Los recursos deben poder moverse de
una posición a otra sin tener que
cambiar sus nombres
Transparencia de
réplica
Se debe poder mantener copias de los
recursos sin que lo noten los usuarios
Transparencia de
concurrencia
Varios usuarios deben poder compartir
recursos sin problemas
Transparencia de
paralelismo
Los programas deberían aprovechar el
paralelismo sin intervención de los
usuarios
Desafío: Heterogeneidad
• Las Aplicaciones Distribuídas permiten que los usuarios
accedan a recursos y servicios sobre un conjunto
heterogéneo de redes y computadores.
• Esta heterogeneidad se aplica a todos los siguientes
elementos:
 . Redes.
 . Hardware de computadores.
 . Sistemas operativos.
 . Lenguajes de programación.
 . Implementaciones de diferentes desarrolladores.
Desafío: Heterogeneidad
• Middleware: se aplica al software que provee una
abstracción de programación que permite soslayar la
heterogeneidad de los sistemas operativos y redes
empleadas
• Se crean para facilitar la creación de aplicaciones
distribuidas
• Ejemplos: Sun RPC, Java RMI y CORBA
• CORBA, por ejemplo, proporciona invocación sobre
objetos remotos, sin que el programador sepa cómo y
por dónde se realiza la comunicación necesaria para
realizarla
Desafío: Extensibilidad
• La extensibilidad de un sistema de cómputo es
la característica que determina si el sistema
puede ser extendido y reimplementado en
diversos aspectos.
• La extensibilidad de los sistemas distribuidos
se determina en primer lugar por el grado
en el cual se pueden añadir nuevos servicios de
compartición de recursos y ponerlos a
disposición para el uso por una variedad de
programas cliente.
Desafío: Seguridad
• Entre los recursos de información que se ofrecen y
se mantienen en los sistemas distribuidos, muchos
tienen un alto valor intrínseco para sus usuarios. Por
esto su seguridad es de considerable importancia.
• La seguridad de los recursos de información tiene
tres componentes:
• confidencialidad
• integridad
• disponibilidad
Desafío: Escalabilidad
• Las aplicaciones distribuidas operan efectiva
y eficientemente en muchas escalas
diferentes, desde pequeñas intranets a Internet.
• Se dice que un sistema es escalable si conserva
su efectividad cuando ocurre un incremento
significativo en el número de recursos y el
número de usuarios.
Aspectos de diseño: Escalabilidad
• hay que evitar:
 los componentes centralizados: p.ej. un
supercomputador servidor central
 tablas –bases de datos- centralizadas
 algoritmos centralizados: hay que intentar que:
 ninguna máquina tenga información global acerca del
estado del sistema
 las máquinas tomen decisiones solo en base a la
información local
 no se confíe en un reloj global
Desafío: Escalabilidad
• Retos:
• Control del costo de los recursos físicos.
• Control de las pérdidas de prestaciones.
• Prevención de desbordamiento de recursos
software.
• Evitar cuellos de botella de prestaciones
Aspectos de diseño: Confiabilidad
• Si alguna máquina falla, alguna otra máquina se encargue del trabajo
• En teoría la confiabilidad total del sistema debería ser la suma de la
confiabilidad de los distintos componentes
• En la práctica esto no suele ser así:
“un s.d. es aquel del cual no puedo obtener un trabajo debido a que cierta
máquina de la cual nueca he oído se ha roto”, Leslie Lamport
• Disponibilidad: la fracción de tiempo en que se puede utilizar el sistema
• Tolerancia a fallos: ¿cómo de bien tolera el sistema los fallos? Si un
servidor falla y se rearranca ¿se recupera el sistema fácilmente?
Aspectos de diseño: Eficiencia
• Eficiencia: además de transparente y confiable,
un s.d. debe ser rápido y eficiente
• A este respecto, en los s.d. es muy importante
la velocidad de la red utilizada.
• Los cálculos pueden ser de grano fino (p.ej
sumar dos números) o de grano grueso
• Para cálculos de grano fino no compensa que se
realicen en otras máquinas, porque se tarda
más en la comunicación que en el cálculo
Transacciones atómicas
• Necesitamos una operación de mayor nivel, de mayor capacidad
• Tal abstracción existe y se utiliza mucho en sistemas distribuidos:
la transacción atómica
• Supongamos que queremos viajar de Las Palmas a Bata (ciudad de
Guinea Ecuatorial)
• Iremos a la agencia de viajes para intentar reservar un billete a
Madrid. Lo conseguimos
• Luego intentaremos reservar un billete de Madrid a Malabo, (en
fecha posterior al del primer viaje, naturalmente). Lo conseguimos
• Intentamos ahora buscar un vuelo de Malabo a Bata. Pero resulta
que no hay disponibles
• En ese caso deberíamos ser capaces de deshacer lo hecho, las dos
reservas anteriores
• O SE HACE TODO O NO SE HACE NADA
Transacciones atómicas
• Ejemplo en el ámbito informático: supongamos un
banco al que podemos conectarnos por Internet, con la
intención de retirar dinero de nuestra cuenta para
transferirlo a otra:
Retirar(cantidad, cuenta1)
Ingresar(cantidad, cuenta)
• Si la conexión telefónica falla después de la primera
operación pero antes de la segunda ?
• El problema debe resolverse haciendo que ambas
acciones constituyan una transacción atómica: o se
hacen ambas o no se hace ninguna
Tolerancia a fallos
• Un sistema falla cuando no cumple su
especificación
• Los fallos de un sistema pueden estar en un
fallo en algún componente. Los fallos de
componentes pueden ser:
 fallos transitorios: una erupción solar que inutiliza un
momento un satélite??
 fallos intermitentes: mal contacto en un cable,...
 fallos permanentes: circuito quemado, error
software,...
Tolerancia a fallos
• El método más usado en tolerancia a fallos es el empleo
de redundancia
• La redundancia puede ser:
 de información: p.ej. añadiendo bits con código de Hamming
que permita recuperar errores
 de tiempo: se realiza una acción, y en caso necesario, se repite
en el tiempo. P.ej. la transacción atómica. La redundancia en el
tiempo es muy útil en fallos intermitentes y transitorios
 física: se agregan equipos o procesadores adicionales. Se puede
hacer de dos formas:
 réplica activa
 respaldo primario
Comunicación en los ss.dd.
Comunicación en los ss.dd.
• La diferencia más importante entre un s.d y un sistema
con un solo procesador es la comunicación entre
procesos
• En un sistema con un procesador, la comunicación entre
procesos supone de manera implícita la existencia de
memoria compartida
• Incluso la forma más básica de sincronización, el
semáforo, supone la existencia de una variable
compartida (la propia variable del semáforo)
• En los ss.dd. no contamos con esa memoria compartida,
hemos de replantear la comunicación de procesos desde
cero
Comunicación en los ss.dd.
• Debido a la ausencia de memoria compartida, la
comunicación en los ss.dd. se basa en la
transferencia de mensajes a través de la red
• Las redes se suelen estudiar en base al modelo
de referencia para interconexión de sistemas
abiertos (OSI)
• El modelo OSI divide en 7 capas los diferentes
elementos y servicios que intervienen en las
comunicaciones
Comunicación en los ss.dd.
• Tipo de conexión:
 circuito virtual u orientado a conexión: al conectar se
realiza una búsqueda de un camino libre entre origen
y destino. Se mantiene el camino en toda la conexión
 no orientado a conexión: no se fija un camino. Cada
paquete podrá ir por cualquier sitio. No se garantiza
la recepción secuencial
El modelo cliente-servidor
• Existen procesos servidores, que proporcionan
cierto recurso o servicio, y procesos clientes que
hacen solicitudes a los servidores
• El servidor recibe peticiones y envía respuestas
El modelo cliente-servidor
• Direccionamiento: ¿cuál es la dirección del
servidor que debe usar el cliente?
• Posibilidades:
 máquina.proceso
 el proceso servidor elige una dirección al azar, el
cliente debe emitir un paquete especial de
localización
 usar un servidor de nombres; el cliente interroga
primero al servidor de nombres
El modelo cliente-servidor
• Las primitivas de envío y recepción podrán ser:
 con bloqueo o síncronas
 sin bloqueo o asíncronas. ¿cómo saber que ya se
puede volver a usar el buffer de envío?
send con bloqueo hasta que el mensaje se envie
send sin bloqueo, con copia del mensaje en buffer interno
send sin bloqueo, con interrupción que señaliza que ya se
puede usar el buffer
Inconvenientes
• Actualmente no hay software para gestionar
apropiadamente una aplicación distribuida.
• La probabilidad de fallos en partes del sistema
es mayor.
• Hay más problemas de seguridad.
• Hay más problemas de administración
Diseño de Aplicaciones Distribuidas
• Requerimientos funcionales.
 Si todo lo que importara fuese la funcionalidad, cualquier
software monolítico serviría, ...
• Requerimientos no funcionales
 Transparencia
 Heterogeneidad
 Extensibilidad
 Seguridad
 Escalabilidad
 Confiabilidad
 Eficiencia
 Tolerancia a las fallas
 Transacciones atómicas
Diseño Arquitectónico
• La medida en que un sistema alcanza sus requisitos no
funcionales depende de las decisiones de arquitectura.
• Las cualidades no funcionales del producto deben
diseñarse como parte de la arquitectura.
• Un cambio en la arquitectura que mejora una cualidad
suele afectar las otras cualidades.
• La arquitectura sólo puede permitir, no garantizar, que
cualquier requisito de calidad no funcional se alcance.

Más contenido relacionado

Similar a Aplicaciones Distribuidas.ppt

Seguridad de sistemas distribuidos
Seguridad de sistemas distribuidosSeguridad de sistemas distribuidos
Seguridad de sistemas distribuidosJavierialv
 
01-Conceptos_Basicos.pdf
01-Conceptos_Basicos.pdf01-Conceptos_Basicos.pdf
01-Conceptos_Basicos.pdfRaMa177542
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosTensor
 
Tarea1 programacion-distribuida
Tarea1 programacion-distribuidaTarea1 programacion-distribuida
Tarea1 programacion-distribuidaRJ Manayay Chavez
 
8-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.4 Computaci...
8-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.4 Computaci...8-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.4 Computaci...
8-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.4 Computaci...Luis Fernando Aguas Bucheli
 
sistemas operativos distribuidos2
sistemas operativos distribuidos2sistemas operativos distribuidos2
sistemas operativos distribuidos2Adriana Rodriguez
 
OC 1 Sistemas en la empresa digital 2022.pdf
OC 1  Sistemas en la empresa digital 2022.pdfOC 1  Sistemas en la empresa digital 2022.pdf
OC 1 Sistemas en la empresa digital 2022.pdfGorkyGabrielAriasDaz
 
Unidad 1
Unidad 1Unidad 1
Unidad 1mi casa
 
Servidores informaticos, modelo cliente servdor
Servidores informaticos, modelo cliente servdor Servidores informaticos, modelo cliente servdor
Servidores informaticos, modelo cliente servdor Erivan Martinez Ovando
 
sistemas_Operativos_Distribuidos
sistemas_Operativos_Distribuidossistemas_Operativos_Distribuidos
sistemas_Operativos_DistribuidosAdriana Rodriguez
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2Chulinneitor
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosalbertoisaacs13
 
Portafolio de so en pdf
Portafolio de so en pdfPortafolio de so en pdf
Portafolio de so en pdfNel Marquez
 
Desarrollo de aplicaciones web distribuidas.
Desarrollo de aplicaciones web distribuidas.Desarrollo de aplicaciones web distribuidas.
Desarrollo de aplicaciones web distribuidas.Jomicast
 
Presentacion final tics Lic en primaria
Presentacion final tics Lic en primariaPresentacion final tics Lic en primaria
Presentacion final tics Lic en primariaNoe Perez Villanueva
 

Similar a Aplicaciones Distribuidas.ppt (20)

Seguridad de sistemas distribuidos
Seguridad de sistemas distribuidosSeguridad de sistemas distribuidos
Seguridad de sistemas distribuidos
 
01-Conceptos_Basicos.pdf
01-Conceptos_Basicos.pdf01-Conceptos_Basicos.pdf
01-Conceptos_Basicos.pdf
 
Base expo
Base expoBase expo
Base expo
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Tarea1 programacion-distribuida
Tarea1 programacion-distribuidaTarea1 programacion-distribuida
Tarea1 programacion-distribuida
 
Sistemas Operativos Distribuidos
Sistemas Operativos DistribuidosSistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
 
8-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.4 Computaci...
8-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.4 Computaci...8-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.4 Computaci...
8-Unidad 2: Tecnologías y Tendencias de Sistemas de Información-2.4 Computaci...
 
sistemas operativos distribuidos2
sistemas operativos distribuidos2sistemas operativos distribuidos2
sistemas operativos distribuidos2
 
OC 1 Sistemas en la empresa digital 2022.pdf
OC 1  Sistemas en la empresa digital 2022.pdfOC 1  Sistemas en la empresa digital 2022.pdf
OC 1 Sistemas en la empresa digital 2022.pdf
 
Arquitectura software
Arquitectura softwareArquitectura software
Arquitectura software
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Servidores informaticos, modelo cliente servdor
Servidores informaticos, modelo cliente servdor Servidores informaticos, modelo cliente servdor
Servidores informaticos, modelo cliente servdor
 
sistemas_Operativos_Distribuidos
sistemas_Operativos_Distribuidossistemas_Operativos_Distribuidos
sistemas_Operativos_Distribuidos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2
 
sistemas distribudos Semana 1
sistemas distribudos Semana 1sistemas distribudos Semana 1
sistemas distribudos Semana 1
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Portafolio de so en pdf
Portafolio de so en pdfPortafolio de so en pdf
Portafolio de so en pdf
 
Desarrollo de aplicaciones web distribuidas.
Desarrollo de aplicaciones web distribuidas.Desarrollo de aplicaciones web distribuidas.
Desarrollo de aplicaciones web distribuidas.
 
Presentacion final tics Lic en primaria
Presentacion final tics Lic en primariaPresentacion final tics Lic en primaria
Presentacion final tics Lic en primaria
 

Último

el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 

Último (20)

el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 

Aplicaciones Distribuidas.ppt

  • 1. Infraestructura en la Web Curso de la carrera Especialización en Ingeniería Web UNIVERSIDAD CATÓLICA DE SANTIAGO DEL ESTERO Marzo- Abril de 2014 Dra. María de los Ángeles Martín Univ. Nac. de La Pampa martinma@ing.unlpam.edu.ar
  • 2. Introducción al Curso • Docentes:  Maria de los Ángeles Martín  Hernán Molina • Objetivos: Que el alumno adquiera los conocimientos relacionados con:  Los conceptos teóricos y prácticos básicos relacionados con la Tecnología Web.  Las diferencias y semejanzas entre la Ingeniería de Software y la Ingeniería Web.  Las funcionalidades básicas de la Web y sus herramientas asociadas.
  • 3. Introducción al Curso • Aplicaciones Distribuidas en la Web  Desarrollo de Aplicaciones Distribuidas  Diseño Arquitectónico  Tecnologías  Curso Teórico y Práctico  Trabajo final integrador
  • 4. Bibliografía (conocimientos previos) • Distributed Systems, Concepts and Design , George Coulouris, Jean Dollimore, Tim Kindberg, Ed. Addison Wesley. • Data and Computer Communications - W. Stallings. Fifth Edition. Prentice Hall, NJ-USA, 1997. • Client/Server Survival Guide 3rd edition , Orfali, R., Harkey, D., Edwards, J. , 1999 • Distributed Systems: Principles and Paradigms – Andrew S Tanenbaum, Maarten Van Steen – Prentice Hall, 2007.
  • 5. Bibliografía (Conceptos) • Software Engineering – Ian Sommerville - Addisson Wesley, 2004. • Ingenieria del Sosftware – Roger S. Pressman – Mc Graw Hill • World Wide Web Consortium, Reportes Técnicos: http://www.w3c.org/TR/ • Web Services Concepts, Architectures and Applications – Gustavo Alonso, Fabio Casati, Harumi Kuno, Vijay Machiraju – Springer, 2004. • Apuntes de clases.
  • 6. Bibliografía (Tecnologías) • Inside Corba. Thomas J. Mowbray, Willian A. Ruh. Addison-Wesley, 1997. • Building Web Services with Java, Making sense of XML, SOAP, WSDL, and UDDI – Steve Graham, Doug Davis, Simeon Simeonov, Glen Daniels, Peter Brittenham, Yuichi Nakamura, Paul Fremantle, Dieter Koenig, Claudia Zentner. – Sams Publishing, 2004. • Material disponible en el sitio de la facultad diversos.
  • 7. Aplicaciones Distribuidas • Conceptos • Desafíos • Inconvenientes • Aspectos de diseño
  • 8. Aplicaciones Distribuidas Una aplicación con distintos componentes que se ejecutan en entornos separados, normalmente en diferentes plataformas conectadas a través de una red
  • 9. Sistemas Distribuidos • El concepto de sistema distribuido se opone al de sistema centralizado  el basado en una sola CPU+memoria+disco, con uno o varios puestos de trabajo. • Varias CPUs desacopladas (unidas por una red)
  • 10. Definición de sistema distribuido • Definición para empezar: “Un sistema distribuido es una colección de computadoras y sub-sistemas independientes que aparecen ante los usuarios del sistema como una única computadora”
  • 11. Definición de sistema distribuido • Definición de Coulouris: “Un sistema distribuido es aquel en el que los componentes localizados en computadores, conectados en red, comunican y coordinan sus acciones únicamente mediante el paso de mensajes”
  • 12. Tipos de sistemas distribuidos • Procesamiento distribuido • Datos distribuidos • Datos y procesos distribuidos • Objetos distribuidos
  • 13. Ventajas de los ss.dd. • Prestaciones relativas: Resulta más rentable aumentar la potencia del sistema CPU comprando más ordenadores, que comprando una CPU más potente. • Velocidad: Un solo procesador no puede alcanzar tanta velocidad como queramos (existen límites físicos) • Escalabilidad: Si se desea más potencia, en un s.d. basta con comprar más microprocesadores. Además, los equipos antiguos pueden seguir dando servicio.
  • 14. Ventajas de los ss.dd. • Aplicaciones distribuidas: Muchas aplicaciones actualmente sólo se conciben como distribuidas (correo electrónico, sistemas de información en Internet, trabajo corporativo, bancos, etc.) • Fiabilidad: Si una sola máquina se viene abajo, el sistema en conjunto puede continuar dando servicio. • Disponibilidad: Los servicios en el lugar y momento que se necesiten
  • 15. Más ventajas • Compartición de recursos (discos, CPUs, impresoras...), Compartición de información • Flexibilidad de uso:  todos los servicios están disponibles desde cualquier puesto  la ejecución puede realizarse en otras máquinas que estén menos cargadas
  • 16. Características problemáticas de un s.distr. • Comunicación no fiable: fallos en la red • Comunicación insegura • Comunicación costosa: ahora no tanto • Heterogeneidad de los nodos • Sincronización
  • 17. Inconvenientes • Actualmente no hay software para gestionar apropiadamente un sistema distribuido • La probabilidad de fallos en partes del sistema es mayor • Hay más problemas de seguridad • Hay más problemas de administración • Nuestro sistema local puede verse afectado por fallos en máquinas de otros lugares
  • 18. Desafío: Transparencia • Las Aplicaciones Distribuidas dan a los usuarios una visión de maquina única sobre un conjunto heterogéneo de redes y computadores. • Esta transparencia debe ser considerada sobre varios aspectos:  . Ubicaciones  . Nombres  . Paralelismo
  • 19. Aspectos de diseño: Transparencia Transparencia de localización Los recursos tienen nombres que no denotan la máquina en la que están Transparencia de migración Los recursos deben poder moverse de una posición a otra sin tener que cambiar sus nombres Transparencia de réplica Se debe poder mantener copias de los recursos sin que lo noten los usuarios Transparencia de concurrencia Varios usuarios deben poder compartir recursos sin problemas Transparencia de paralelismo Los programas deberían aprovechar el paralelismo sin intervención de los usuarios
  • 20. Desafío: Heterogeneidad • Las Aplicaciones Distribuídas permiten que los usuarios accedan a recursos y servicios sobre un conjunto heterogéneo de redes y computadores. • Esta heterogeneidad se aplica a todos los siguientes elementos:  . Redes.  . Hardware de computadores.  . Sistemas operativos.  . Lenguajes de programación.  . Implementaciones de diferentes desarrolladores.
  • 21. Desafío: Heterogeneidad • Middleware: se aplica al software que provee una abstracción de programación que permite soslayar la heterogeneidad de los sistemas operativos y redes empleadas • Se crean para facilitar la creación de aplicaciones distribuidas • Ejemplos: Sun RPC, Java RMI y CORBA • CORBA, por ejemplo, proporciona invocación sobre objetos remotos, sin que el programador sepa cómo y por dónde se realiza la comunicación necesaria para realizarla
  • 22. Desafío: Extensibilidad • La extensibilidad de un sistema de cómputo es la característica que determina si el sistema puede ser extendido y reimplementado en diversos aspectos. • La extensibilidad de los sistemas distribuidos se determina en primer lugar por el grado en el cual se pueden añadir nuevos servicios de compartición de recursos y ponerlos a disposición para el uso por una variedad de programas cliente.
  • 23. Desafío: Seguridad • Entre los recursos de información que se ofrecen y se mantienen en los sistemas distribuidos, muchos tienen un alto valor intrínseco para sus usuarios. Por esto su seguridad es de considerable importancia. • La seguridad de los recursos de información tiene tres componentes: • confidencialidad • integridad • disponibilidad
  • 24. Desafío: Escalabilidad • Las aplicaciones distribuidas operan efectiva y eficientemente en muchas escalas diferentes, desde pequeñas intranets a Internet. • Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en el número de recursos y el número de usuarios.
  • 25. Aspectos de diseño: Escalabilidad • hay que evitar:  los componentes centralizados: p.ej. un supercomputador servidor central  tablas –bases de datos- centralizadas  algoritmos centralizados: hay que intentar que:  ninguna máquina tenga información global acerca del estado del sistema  las máquinas tomen decisiones solo en base a la información local  no se confíe en un reloj global
  • 26. Desafío: Escalabilidad • Retos: • Control del costo de los recursos físicos. • Control de las pérdidas de prestaciones. • Prevención de desbordamiento de recursos software. • Evitar cuellos de botella de prestaciones
  • 27. Aspectos de diseño: Confiabilidad • Si alguna máquina falla, alguna otra máquina se encargue del trabajo • En teoría la confiabilidad total del sistema debería ser la suma de la confiabilidad de los distintos componentes • En la práctica esto no suele ser así: “un s.d. es aquel del cual no puedo obtener un trabajo debido a que cierta máquina de la cual nueca he oído se ha roto”, Leslie Lamport • Disponibilidad: la fracción de tiempo en que se puede utilizar el sistema • Tolerancia a fallos: ¿cómo de bien tolera el sistema los fallos? Si un servidor falla y se rearranca ¿se recupera el sistema fácilmente?
  • 28. Aspectos de diseño: Eficiencia • Eficiencia: además de transparente y confiable, un s.d. debe ser rápido y eficiente • A este respecto, en los s.d. es muy importante la velocidad de la red utilizada. • Los cálculos pueden ser de grano fino (p.ej sumar dos números) o de grano grueso • Para cálculos de grano fino no compensa que se realicen en otras máquinas, porque se tarda más en la comunicación que en el cálculo
  • 29. Transacciones atómicas • Necesitamos una operación de mayor nivel, de mayor capacidad • Tal abstracción existe y se utiliza mucho en sistemas distribuidos: la transacción atómica • Supongamos que queremos viajar de Las Palmas a Bata (ciudad de Guinea Ecuatorial) • Iremos a la agencia de viajes para intentar reservar un billete a Madrid. Lo conseguimos • Luego intentaremos reservar un billete de Madrid a Malabo, (en fecha posterior al del primer viaje, naturalmente). Lo conseguimos • Intentamos ahora buscar un vuelo de Malabo a Bata. Pero resulta que no hay disponibles • En ese caso deberíamos ser capaces de deshacer lo hecho, las dos reservas anteriores • O SE HACE TODO O NO SE HACE NADA
  • 30. Transacciones atómicas • Ejemplo en el ámbito informático: supongamos un banco al que podemos conectarnos por Internet, con la intención de retirar dinero de nuestra cuenta para transferirlo a otra: Retirar(cantidad, cuenta1) Ingresar(cantidad, cuenta) • Si la conexión telefónica falla después de la primera operación pero antes de la segunda ? • El problema debe resolverse haciendo que ambas acciones constituyan una transacción atómica: o se hacen ambas o no se hace ninguna
  • 31. Tolerancia a fallos • Un sistema falla cuando no cumple su especificación • Los fallos de un sistema pueden estar en un fallo en algún componente. Los fallos de componentes pueden ser:  fallos transitorios: una erupción solar que inutiliza un momento un satélite??  fallos intermitentes: mal contacto en un cable,...  fallos permanentes: circuito quemado, error software,...
  • 32. Tolerancia a fallos • El método más usado en tolerancia a fallos es el empleo de redundancia • La redundancia puede ser:  de información: p.ej. añadiendo bits con código de Hamming que permita recuperar errores  de tiempo: se realiza una acción, y en caso necesario, se repite en el tiempo. P.ej. la transacción atómica. La redundancia en el tiempo es muy útil en fallos intermitentes y transitorios  física: se agregan equipos o procesadores adicionales. Se puede hacer de dos formas:  réplica activa  respaldo primario
  • 34. Comunicación en los ss.dd. • La diferencia más importante entre un s.d y un sistema con un solo procesador es la comunicación entre procesos • En un sistema con un procesador, la comunicación entre procesos supone de manera implícita la existencia de memoria compartida • Incluso la forma más básica de sincronización, el semáforo, supone la existencia de una variable compartida (la propia variable del semáforo) • En los ss.dd. no contamos con esa memoria compartida, hemos de replantear la comunicación de procesos desde cero
  • 35. Comunicación en los ss.dd. • Debido a la ausencia de memoria compartida, la comunicación en los ss.dd. se basa en la transferencia de mensajes a través de la red • Las redes se suelen estudiar en base al modelo de referencia para interconexión de sistemas abiertos (OSI) • El modelo OSI divide en 7 capas los diferentes elementos y servicios que intervienen en las comunicaciones
  • 36. Comunicación en los ss.dd. • Tipo de conexión:  circuito virtual u orientado a conexión: al conectar se realiza una búsqueda de un camino libre entre origen y destino. Se mantiene el camino en toda la conexión  no orientado a conexión: no se fija un camino. Cada paquete podrá ir por cualquier sitio. No se garantiza la recepción secuencial
  • 37. El modelo cliente-servidor • Existen procesos servidores, que proporcionan cierto recurso o servicio, y procesos clientes que hacen solicitudes a los servidores • El servidor recibe peticiones y envía respuestas
  • 38. El modelo cliente-servidor • Direccionamiento: ¿cuál es la dirección del servidor que debe usar el cliente? • Posibilidades:  máquina.proceso  el proceso servidor elige una dirección al azar, el cliente debe emitir un paquete especial de localización  usar un servidor de nombres; el cliente interroga primero al servidor de nombres
  • 39. El modelo cliente-servidor • Las primitivas de envío y recepción podrán ser:  con bloqueo o síncronas  sin bloqueo o asíncronas. ¿cómo saber que ya se puede volver a usar el buffer de envío? send con bloqueo hasta que el mensaje se envie send sin bloqueo, con copia del mensaje en buffer interno send sin bloqueo, con interrupción que señaliza que ya se puede usar el buffer
  • 40. Inconvenientes • Actualmente no hay software para gestionar apropiadamente una aplicación distribuida. • La probabilidad de fallos en partes del sistema es mayor. • Hay más problemas de seguridad. • Hay más problemas de administración
  • 41. Diseño de Aplicaciones Distribuidas • Requerimientos funcionales.  Si todo lo que importara fuese la funcionalidad, cualquier software monolítico serviría, ... • Requerimientos no funcionales  Transparencia  Heterogeneidad  Extensibilidad  Seguridad  Escalabilidad  Confiabilidad  Eficiencia  Tolerancia a las fallas  Transacciones atómicas
  • 42. Diseño Arquitectónico • La medida en que un sistema alcanza sus requisitos no funcionales depende de las decisiones de arquitectura. • Las cualidades no funcionales del producto deben diseñarse como parte de la arquitectura. • Un cambio en la arquitectura que mejora una cualidad suele afectar las otras cualidades. • La arquitectura sólo puede permitir, no garantizar, que cualquier requisito de calidad no funcional se alcance.