ingeniería del software ii
Post on 10-Jan-2016
22 Views
Preview:
DESCRIPTION
TRANSCRIPT
IS II Sistemas Distribuidos 1
Ingeniería del software II
Objetos Distribuidos
IS II Sistemas Distribuidos 2
Sistemas Distribuidos Un sistema distribuido es un sistema donde sus
componentes, ubicados en distintas computadoras conectadas en red, se comunican y coordinan a través de mensajes. Hay concurrencia de componentes, carencia de reloj global y fallos independientes de los componentes
Los recursos pueden ser administrados por servidores y accedidos por clientes o encapsularse como objetos y accedidos por objetos clientes
El objetivo es compartir recursos
IS II Sistemas Distribuidos 3
Sistemas Distribuidos Definición de servicio:
Un servicio es una parte del sistema de computadoras que gestiona una colección de recursos relacionados presentando su funcionalidad a usuarios y aplicaciones
Ejemplos de servicios: Cola de impresión para acceder a una impresora
compartida en red Servidor de paginas web Servidor de base de datos que nos proporciona
los mecanismos de acceso a la misma ...
IS II Sistemas Distribuidos 4
Sistemas Distribuidos Los sistemas distribuidos son por naturaleza
heterogeneos, La Heterogeneidad (variedad y diferencia) en estos sistemas se aplica a : Redes HW de computadoras SO Lenguajes de programación
En gran parte de las organizaciones el ambiente es multiplataforma, es decir, conviven distintas arquitecturas con distintos sistemas operativos. Problema: ofrecer un ambiente integrado
IS II Sistemas Distribuidos 5
Conceptos relacionados Extensibilidad: determina si el sistema puede
ser extendido y reimplementado, como añadir nuevos servicios para compartir recursos
Escalabilidad: es aquel sistema que mantiene su funcionalidad cuando aumentan el número de recursos y usuarios significativamente
Tratamiento de fallos: En un SD hay componentes que fallan y otros que siguen trabajando. Es importante proveer detección de fallos, enmascaramiento de fallos, tolerancia, recuperación, redundancia
IS II Sistemas Distribuidos 6
Conceptos relacionados Enmascaramiento (ocultar o atenuar): puede
lograrse retransmitiendo mensajes o a traves de espejados de discos
Tolerancia: en ocasiones no se pueden detectar y ocultar todos los fallos.
Recuperación: hacer software que permita hacer roll back ante la caída del servidor (llevarse a un estado anterior)
Redundancia: poner más componentes, si uno falla se puede recurrir a otro para realizar la función que corresponda
IS II Sistemas Distribuidos 7
Transparencia Es clave en un ambiente distribuido que el
usuario tenga la "sensación" de estar trabajando en un único sistema, abstrayéndose de la cantidad de computadoras, los vínculos y la ubicación de los archivos. Cuando se logra este objetivo, se dice que el sistema es transparente
Transparencia es por tanto la ocultación al usuario y al programador de la separación de componentes en un sistema distribuido. De esa manera, se ve al sistema como un todo más que como una colección de componentes independientes
IS II Sistemas Distribuidos 8
Transparencia Existen diversos tipos de transparencia que se
deben tener en cuenta en un SD: Transparencia de acceso: Usar las mismas operaciones si
es remoto o si el local Transparencia de ubicación: Poder acceder a los
recursos sin que el usuario o programadores sepan donde están. Los usuarios no indican localización de los recursos
Transparencia de migracion o movilidad: Reubicar clientes y recursos sin afectar operación de usuarios y programas
IS II Sistemas Distribuidos 9
Transparencia Transparencia de replica: Tener múltiples
ejemplares de cada recurso para usar el disponible, sin intervención del usuario o programador. Útil ante fallos
Transparencia de concurrencia: Varios usuarios pueden compartir recursos de manera automática. Los procesos trabajan concurrentemente sobre recursos compartidos
Transparencia de paralelismo: Las actividades pueden ocurrir en paralelo sin el conocimiento de los usuarios
IS II Sistemas Distribuidos 10
Arquitectura de un SD La arquitectura de un SD define la forma en que
los componentes de un sistema interactúan uno con otro y se vinculan con la red subyacente
En un SD la plataforma es el nivel de HW y capas más bajas de software. Estas capas dan servicio a las que están por encima de ellos
El middleware es la capa de soft que enmascara la heterogeneidad ofreciendo al programador de aplicaciones un ambiente unificado
IS II Sistemas Distribuidos 11
Arquitectura de un SD
Aplicaciones
Middleware
SO
HW
Plataforma
CORBA
COM/DCOMWINDOWS
UNIX
JAVA/RMI
IS II Sistemas Distribuidos 12
Modelo Cliente/Servidor es una forma de dividir y especializar programas y equipos
de computo a fin de que la tarea que cada uno de ellos realiza se efectúe con la mayor eficiencia, y permita simplificar las actualizaciones y mantenimiento del sistema
En esta arquitectura la capacidad de proceso está repartida entre el servidor y los clientes
En la funcionalidad de un programa distribuido se pueden distinguir 3 capas o niveles:
Manejador de Base de datos (Nivel de almacenamiento),
Procesador de aplicaciones o reglas del negocio (Nivel lógico)
Interface del usuario (Nivel de presentación)
IS II Sistemas Distribuidos 13
Modelo Cliente/Servidor De acuerdo con la distribución
estas capas existen dos posibilidades: Clientes ligeros: Cuando el cliente
solo se hace cargo de la presentación Clientes pesados: si el cliente asume
también la lógica del negocio
IS II Sistemas Distribuidos 14
Modelo Cliente/Servidor Ejemplo: un cliente necesita realizar
estadísticas sobre un fichero que reside en otro ordenador: Enfoque con cliente ligero: el servidor recibe
una petición de tipo “estadísticas de fichero X”, procesa el fichero y devuelve un informe con las estadísticas al cliente
Enfoque con cliente pesado: el servidor recibe una petición de tipo “obtener fichero X”, posteriormente es el cliente el encargado de realizar la estadística sobre el fichero recibido
IS II Sistemas Distribuidos 15
Código Móvil El código móvil es aquel que reside en un
servidor WEB y ante la solicitud que realiza un browser (navegador) de un usuario es descargado desde el servidor al navegador y allí se ejecuta, en el cliente. Applets de Java ActiveX de Microsoft
Restricciones de seguridad: no se puede permitir que el código movil haga “cualquier cosa” en el ordenador cliente
IS II Sistemas Distribuidos 16
Código Móvil El código móvil puede obtener
permisos para efectuar determinadas tareas en principio prohibidas a través de certificados de seguridad
Nuevos mecanismos para código Móvil: Java Web Start: permite descargar y
ejecutar aplicaciones de escritorio
IS II Sistemas Distribuidos 17
Agentes móviles Los agentes móviles son programas inteligentes
y autónomos que pueden moverse a través de la red, buscando servicios que el usuario necesita e interactuando con ellos
Un agente móvil tiene una inherente autonomía que le permite navegar por la red, para ello pregunta si debe ser enviado a otros nodos.
Los agentes móviles son capaces de ejecutarse en varias máquinas de la red sin necesidad de que su código esté instalado en cada uno de los ordenadores que visita. Por lo tanto, utilizan código móvil
IS II Sistemas Distribuidos 18
Objetos Distribuidos Un objeto distribuido es aquel que esta
gestionado por un servidor y sus clientes invocan sus métodos utilizando un "método de invocación remota"
El cliente invoca el método mediante un mensaje al servidor que gestiona el objeto, se ejecuta el método del objeto en el servidor y el resultado se devuelve al cliente en otro mensaje
IS II Sistemas Distribuidos 19
Tecnologías de Objetos distribuidos
RMI (Remote Invocation Method): Fue el primer fremework para crear sistemas distribuidos de Java. El sistema de Invocación Remota de Métodos (RMI) de Java permite, a un objeto que se está ejecutando en una Máquina Virtual Java (VM), llamar a métodos de otro objeto que está en otra VM diferente. Esta tecnología está asociada al lenguaje de programación Java, es decir, que permite la comunicación entre objetos creados en este lenguaje.
IS II Sistemas Distribuidos 20
Tecnologías de Objetos distribuidos
DCOM.- Distributed Component Object Model.- El Modelo de Objeto Componente Distribuido, esta incluido en los sistemas operativos de Microsoft. Es un juego de conceptos e interfaces de programa, en el cual los objetos de programa del cliente, pueden solicitar servicios de objetos de programa servidores en otros ordenadores dentro de una red. Esta tecnología esta asociada a la plataforma de productos Microsoft
IS II Sistemas Distribuidos 21
Tecnologías de Objetos distribuidos
CORBA.- Common Object Request Broker Architecture.- Tecnología introducida por el Grupo de Administración de Objetos OMG, creada para establecer una plataforma para la gestión de objetos remotos independiente del lenguaje de programación
IS II Sistemas Distribuidos 22
Tecnologías de Objetos distribuidos
Problemas con l uso directo de las tecnologías de objetos distribuidos Complejas de utilizar para construir
aplicaciones empresariales (transacciones, persistencia, seguridad,replicación, etc.)
El programador necesita hacer uso de servicios complejos
Tecnologías de componentes distribuidos Permiten construir aplicaciones
empresariales sin que el programador tenga que conocer el API de los servicios necesarios
IS II Sistemas Distribuidos 23
Tecnologías de Objetos distribuidos
Se construyen sobre las tecnologías de objetos distribuidosEj.: un componente EJB es un objeto Java RMI que transparentemente al programador puede usar transacciones,persistencia, seguridad, replicación, etc.
Tecnologías: EJB Componentes CORBA .NET (COM+)
top related