sistema distribuido

6

Click here to load reader

Upload: wilmer-z-cotrina-barzola

Post on 26-Oct-2015

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema Distribuido

Sistema distribuido

Conjunto de ordenadores intercomunicados por una red. Que tiene como objetivo el compartimiento fácil y eficiente de los recursos.

Consistencia

• Inconsistencia de actualizaciónCuando varios procesos acceden concurrentemente a un dato para actualizarlo se puede producir una inconsistencia

• Inconsistencia de replicaciónTener datos replicados en diversos ordenadores puede producir situaciones en las que los datos no son iguales en todos los ordenadores al mismo tiempo.

• Inconsistencia de CacheCuando un cliente accede a un recurso se puede guardar copias de seguridad en la memoria local del cliente. El problema es cuando el cliente actualiza datos que también residen en las memorias caché de otros clientes.

• Inconsistencia de RelojAl momento que el usuario realiza una acción se guarda de todos los ordenadores. Pero cada ordenador tiene que estar sincronizado sino tendrían horas distintas de proceso. Una solución es enviar la hora por la red a todos los ordenadores.

• Inconsistencia de Interfaz de UsuarioAl realizar una acción un usuario el retardo con la interfaz no debe ser mayor a una décima de segundo .

Page 2: Sistema Distribuido

TRANSPARENCIA

• Compartimiento de Recursos• Sistema abierto• Escalabilidad• Tolerancia a fallos • Seguridad

Java RMI

Sirve para invocar un método de forma remota y provee un mecanismo simple para la comunicación de servidores.TerminologiasMarshalling: es el proceso de codificación de los parámetros.Stub: es un objeto que encapsula el método que deseamos invocar remotamenteSkeleton: es el objeto del lado del servidor que decodifica los parámetros

ObjetivoEl objetivo principal de RMI es la de permitir a los programadores el desarrollo de programas distribuidos en JAVA, usando la misma sintaxis y semántica de los programas no distribuidos.

Capas:

Segunda capa : Esta capa es la que interactúa directamente con la capa de aplicación.

Page 3: Sistema Distribuido

LimitaciónNo permite la interacción con aplicaciones escritas en otro lenguaje.

RPC (llamadas a procedimientos Remotos)El Remote Procedure Call (RPC) (del inglés, Llamada a Procedimiento Remoto) es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos.

Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando éste de vuelta el resultado de dicha operación al cliente.

Objetivos de RPC

Proporcionar un middelware que simplifique el desarrollo de aplicaciones distribuidas

Evitar que programador tenga que interactuar directamente con el interfaz de Sockets

Abstraer (ocultar) los detalles relativos a la red

El Servidor ofrece procedimientos que el cliente llama como si fueran procedimientos locales

Se busca ofrecer un entorno de programación lo mas similar posible a un entorno no distribuido.

El sistema RPC oculta los detalles de implementación de esas llamadas remotas Implementa la llamada remota mediante un dialogo petición respuesta -- Mensaje de petición: identifica procedimiento llamado, contiene parámetros de la llamada -- Mensaje de respuesta: contiene valor/es devuelto/s se encarga de enviar/recibir mensajes para comunicar ambas partes se encarga de gestionar los contenidos de esos mensajes (empaquetado y formateado de datos)

Mecanismo RPC

• El stub del Cliente: se encarga de empaquetar los parámetros y las solicitudes enviarlos al servidor.•El programa principal del servidor : se encarga de recibir peticiones, desempacar los parámetros, obtener un resultado y enviarlo al cliente.•Rutinas de Datos: Maquinas Cliente – servidor puedes ser de diferentes arquitecturas no compatibles.

Page 4: Sistema Distribuido

•Servidor Binding: Realiza la búsqueda del skeleton de la implementación concreta del procedimiento remoto llamado por un cliente.

Caracteristicas Stub• En el lado del cliente, el representando del servidor se denomina Stub (proxy)•Presenta transparencia en la invocación del cliente•el cliente invoca las llamadas stub “como si” fuese el servidor.

Caracteristicas Skeleton• es quien proporciona transparencia del lado del servidor.• reconoce las llamadas ofrecidas por el servidor.• Skeleton invoca la llamada al servidor como si fuera cliente.

Ejemplos

Java RMICORBASOAPDCOM

¿Qué es una aplicación distribuida?es aquella cuyo objetivo final se alcanza mediante la ejecución de diversos procesos independientes que por lo general se ejecutan en equipos diferentes y que de una forma u otra se pasan datos entre ellos mediante protocolos de comunicaciones bien establecidos.

Evolucion

• Aplicaciones Distribuidas• Aplicaciones cliente/servidor

• Aplicaciones de 2 ,3 capas• Aplicaciones monolíticas

Las aplicaciones constan de 3 partes: Una interfaz de usuario: Elemento con el que interacciona el usuario de la aplicación,

ejecutando acciones, introduciendo u obteniendo información. Lógica ó Reglas de negocio: Son las que procesan la información para generar los

resultados que persiguen, siendo el elemento fundamental que diferencia unas aplicaciones de otras.

Gestión de datos: Se ocupa del almacenamiento y recuperación de la información.

Page 5: Sistema Distribuido

Escenarios de utilización de aplicaciones•php (administrar bd en web. Creación de blogs, educación a distancia)• ASP( chats, sistemas postales)Ejemplo:FacebookMercado libreClasificados Liverpool

Problemas en el desarrollo y uso de sistemas distribuidosO Disponibilidad de los servidores.O Acceso a los sistemas de manera remota.O Posibilidad de que pueden ser vistos (pero no accesados) por muchas personas.O Capacidad de los equipos donde se almacenan las fuentes.