Ingenier a del software ii
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

Ingeniería del software II PowerPoint PPT Presentation


  • 50 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Ingenier a del software ii

Ingeniería del software II

Objetos Distribuidos

Sistemas Distribuidos


Sistemas distribuidos

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


Sistemas distribuidos1

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


Sistemas distribuidos2

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


Conceptos relacionados

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


Conceptos relacionados1

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


Transparencia

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


Transparencia1

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


Transparencia2

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


Arquitectura de un sd

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


Arquitectura de un sd1

Arquitectura de un SD

Aplicaciones

JAVA/RMI

CORBA

Middleware

COM/DCOM

SO

WINDOWS

UNIX

HW

Plataforma

Sistemas Distribuidos


Modelo cliente servidor

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


Modelo cliente servidor1

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


Modelo cliente servidor2

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


C digo m vil

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


C digo m vil1

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


Agentes m viles

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


Objetos distribuidos

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


Tecnolog as de objetos distribuidos

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


Tecnolog as de objetos distribuidos1

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


Tecnolog as de objetos distribuidos2

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


Tecnolog as de objetos distribuidos3

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


Tecnolog as de objetos distribuidos4

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


  • Login