Sistemas distribuidos

Embed Size (px)

Citation preview

  • 1. Ing. Ral Jaziel torres torres
    Matrcula: 1162800
    Sistemas Distribuidos

2. Introduccin
A lo largo del tiempo, se ha pretendido lograr que el
procesamiento de la informacin no se haga en un solo
equipo, sino que mas bien se haga en diferentes incluso
que estn en lugares lejanos.
Es as como nacieron los sistemas distribuidos, en esta
presentacin conoceremos las principales plataformas
que trabajan como sistemas distribuidos.
Al finalizar se escoger una sola para implementar el
proyecto propuesto, mostrando las razones por las cuales
se eligi .
3. Definicin Sistemas Distribuidos
Un sistema distribuido se define como una coleccin de computadores
autnomos conectados por una red, y con el software distribuido
adecuado para que el sistema sea visto por los usuarios como una
nica entidad capaz de proporcionar facilidades de computacin.
Entre las plataformas en las cuales se pueden implementar esta
metodologa estn:
Sockets
CORBA
RMI
DCOM
SERVLETS
Java Beans
4. Sockets
Son puntos o mecanismos de comunicacin entre procesos que
permiten que un proceso que se ejecuta en un ordenador, hable (emita
o recibainformacin) con otro proceso,incluso estando estos
procesos en distintas mquinas de una red.
Las implementaciones de sockets soportan los siguientes protocolos
de comunicaciones:
Dominio Unix
Dominio Internet (TCP/IP)
Dominio Xerox NS
La comunicacin entre procesos a travs de sockets se basa en la
filosofa CLIENTE-SERVIDOR
5. Sockets
El mecanismo de comunicacin va sockets tiene los
siguientes pasos:
El proceso servidor crea un socket con nombre y espera laconexin.
El proceso cliente crea un socket sin nombre.
El proceso cliente realiza una peticin de conexin al socketservidor.
El cliente realiza la conexin a travs de su socket mientras el proceso servidor mantiene el socket servidor original consunombre.
6. CORBA
Es un middlewaremarco de trabajo estndar y abierto
de objetos distribuidos que permite a los componentes
en la red interoperar en un ambiente comn independiente de la
plataforma, lenguaje de desarrollo, sistemaoperativo o el tipo
de red que se este utilizando.
Trabaja con 2 pilares fundamentales, que son: ORB(Object
RequestBroker), que es un componente software que dirige la
comunicacin entre objetos CORBA, y el segundo es el IDL, que
se encarga de definir las interfaces de los componentes de la
aplicacin sobre los que se construyen las aplicaciones CORBA
7. CORBA
Tres de las principales diferencias entre el modelo de
objetos de CORBA y los modelos tradicionales radican
en la forma semi-transparente de distribuir los objetos
en CORBA, el tratamiento de las referencias a objetos y
el uso de los llamados adaptadores de objetos (como el
BOA -Basic ObjectAdapter-).
Para un cliente CORBA, una llamada a un mtodo
remoto es exactamente igual a una llamada a un
mtodo local.
8. RMI
Es el sistema de invocacin remota de mtodos, que
permite a un objeto que se est ejecutando en una
Mquina Virtual Java (VM) llamar a mtodos de otro
objeto que est en otra VM diferente. RMI proporciona
comunicacin remota entre programas escritos en Java
Las aplicaciones RMI normalmente comprenden dos
programas separados: un servidor y un cliente. RMI
proporciona el mecanismo por el que se comunican y se
pasan informacin del cliente al servidor y viceversa
9. RMI
Cuando se utiliza RMI para desarrollar aplicaciones distribuida,
se deben seguir los siguientes pasos:
Disear e implementar los componentes de la aplicacin: Lo primero es definir la arquitectura de la aplicacin y determinar los componentes que seran objetos locales y los que seran remotos.
Compilar fuentes y generar los Stubs: Este es un proceso de dos pasos. En el primer paso, se utiliza el compilador javac para compilar los ficheros fuentes de Java, los cuales contienen las implementaciones de las interfaces remotas, las clases del servidor, y del cliente. En el segundo paso es utilizar el compilador rmic para crear los stubs de los objetos remotos. RMI utiliza una clase stub del objeto remoto como un proxy en el cliente para que los clientes puedan comunicarse con un objeto remoto particular
10. RMI
Hacer accesible las Clases a travs de la Red: Los ficheros de clases Java con sus interfaces remotas, los stubs y otras clases que necesitamos descargar en los clientes, deben estar accesible a travs de un servidor Web.
Ejecutar la Aplicacin: Se debe ejecutar o lanzar el registro de objetos remotos y luego el servidor y el cliente.
11. DCOM
El Modelo de Objeto Componente Distribuido, es un protocolo que
permite a componentes de software comunicarse de una manera
segura, eficiente y confiable con otros componentes, localizados en
otro computador de una red Microsoft.
La arquitectura DCOM esta basada en:
Objeto DCOM: Es un componente que soporta una o mas interfaces.
Interface DCOM: no es mas que un grupo predefinido de funciones relacionadas.
Clase DCOM : Es aquella que implementa una o mas interfaces.
Servidor DCOM: Provee la estructura necesaria alrededor de un objeto para hacerlo disponible a los clientes.
12. DCOM
Para implementar DCOM se pueden seguir estos pasos, usando
como lenguaje de programacin el lenguaje Java.
Crear el IDL DCOM (y ODL) para su objeto
Generar GUIs para sus interfaces IDL
Crear el archivo de typelibrary
Crear los wrappers java para las clases DCOM en Java
Implementar sus clases DCOM en Java
Compilar su implementacin
Registrar su clase Java
Escribir el Cdigo Cliente
Compilar el Cliente
Registrar el Cliente
Iniciar el cliente
13. SERVLETS
Son mdulos que extienden los servidores orientados
a peticin-respuesta, como los servidores web
compatibles con Java.
Los Servlets son un sustituto eficaz de los CGI s ya que
proveen la forma de generar documentos dinmicos
que son fciles de escribir y ejecutar. Tambin evitan el
problema de desarrollar la programacin segn la
plataforma utilizada.
14. SERVLETS
La interfaz ServletRequest permite al servlet acceder a
informacin como, los nombres de parmetros pasados
por el cliente, el protocolo usado por el cliente, y los
nombres de los hosts remotos que hacen la solicitud y el
servidor que la recibe.
Esta interfaz permite a los servlets el acceso a mtodos
que permiten manejar la presentacin de la respuesta
como salida en el navegador, a travs de los cuales
consiguen los datos desde el cliente que usa protocolos
como HTTP POST , etc.
15. Java Beans
Un Java Bean oBean es un componente hecho en
software que se puede reutilizar y que puede ser
manipulado de forma visual por una herramienta de
programacin en lenguaje Java.
Para tal manipulacin se define una interfaz en el
momento de diseo, a travs de la cual se puede
interrogar al componente y conocer sus propiedades y
los tipos de eventos o sucesos que puede generar como
respuesta a diversas acciones.
16. Las caractersticas de los Java Beans son:
Introspection: Permite analizar a la herramienta de programacin o IDE como trabaja el Bean
Customization: El programador puede alterar la apariencia y la conducta del Bean.
Events: Informa al IDE de los sucesos que puede generar en respuesta a las acciones del usuario o del sistema, y tambin los sucesos que puede manejar.
Properties: Una propiedad es un atributo del JavaBean que afecta a su apariencia o a su conducta
Persistence: Se puede guardar el estado de los Beans que han sido personalizados por el programador, cambiando los valores de sus propiedades
17. Arquitectura Elegida para el Proyecto
La arquitectura que eleg para que en dado caso se
implementara el proyecto propuesto como sistema
distribuido es: Sockets
Las razones por las cuales eleg esta arquitectura son:
Fcil implementacin
Se tiene un mayor control sobre la comunicacin
Consume menos ancho de banda
Es mas seguro
18. Implementacin
Como vimos en la presentacin la implementacin
de sockets se hacen mediante 4 pasos que son:
El proceso servidor crea un socket con nombre y espera laconexin.
El proceso cliente crea un socket sin nombre.
Para estos primeros dos pasos tenemos que escoger el
tipo de socket y el dominio sobre el cual se quiere
implementar este.
19. Implementacin
Entre los diferentes tipos que existen y dominios eleg
los siguientes:
SOCK_STREAM: Sirve para establecer comunicaciones
confiables en modo conectado ningn dato transmitido se
pierde, los datos llegan en el orden que han sido
transmitidos). En eldominioInternet est asociado al protocolo
TCP.
AF_INET: Protocolos de Internet, donde el cliente y el servidor
pueden estar en cualquier mquina de la red Internet.
20. Implementacin
Los pasos que siguen son:
3) El proceso cliente realiza una peticin de conexin al socket servidor.
4) El cliente realiza la conexin a travs de su socket mientras el proceso servidor mantiene el socket servidor original consunombre.
En el servidor se hara asi la llamada:
intsocket ( intdominio, inttipo, intprotocolo )crea un
socket sin nombre de un dominio, tipo y protocolo especfico
dominio : AF_INET,
tipo : SOCK__STREAM
protocolo : 0 ( protocolo por defecto )
21. Implementacin
intbind ( intdfServer, structsockaddr* direccServer, intlongDirecc )
intlisten ( intdfServer, intlongCola )
Intaccept ( intdfServer, structsockaddr* direccCliente, int* longDireccCli)
En el cliente se seguiran las siguientes instrucciones:
intsocket ( intdominio, inttipo, intprotocolo )
intconnect ( intdfCliente, structsockaddr* direccServer, intlongDirecc )
22. Implementacin
Por ltimo en esta tabla se muestra las llamadas que se
produciran en el sistema: