1 / 23

Ingeniería del software II

Ingeniería del software II. Objetos Distribuidos. Sistemas Distribuidos.

vesna
Download Presentation

Ingeniería del software II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ingeniería del software II Objetos Distribuidos 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 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 • ... 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 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 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 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 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 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 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 Sistemas Distribuidos

  11. Arquitectura de un SD Aplicaciones JAVA/RMI CORBA Middleware COM/DCOM SO WINDOWS UNIX HW Plataforma 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) 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 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 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 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 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 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 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. 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 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 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 Sistemas Distribuidos

  23. Tecnologías de Objetos distribuidos • Se construyen sobre las tecnologías de objetos distribuidos Ej.: 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+) Sistemas Distribuidos

More Related