28
FACULTAD DE INGENIERIA U N I V E R S I D A D D E A Q U I N O B O L I V I A 1 RED NACIONAL UNIVERSITARIA SYLLABUS Facultad de Ingeniería Ingeniería de Sistemas OCTAVO SEMESTRE Gestión Académica I/ 2011 Syllabus elaborado por: Ing. Gisela Chumacero Tellez

s8- sistemas_distribuidos.pdf

Embed Size (px)

Citation preview

Page 1: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

1

RED NACIONAL UNIVERSITARIA

SYLLABUS

Facultad de Ingeniería Ingeniería de Sistemas

OCTAVO SEMESTRE

Gestión Académica I/ 2011

Syllabus elaborado por: Ing. Gisela Chumacero Tellez

Page 2: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

2

UDABOL

UNIVERSIDAD DE AQUINO BOLIVIA Acreditada como PLENA mediante R. M. 288/01

VISION DE LA UNIVERSIDAD

Ser la Universidad líder en calidad educativa.

MISION DE LA UNIVERSIDAD

Desarrollar la Educación Superior Universitaria con calidad y competitividad al servicio de la sociedad.

Page 3: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

3

SYLLABUS

I.

Asignatura: Sistemas Distribuidos Código: CMP 521 Requisito: Octavo semestre Carga Horaria: 80 horas Horas teóricas: 80 Horas prácticas: - Créditos: 8

II. OBJETIVOS GENERALES DE LA ASIGNATURA. • Comprender los entornos distribuidos dentro de las organizaciones • Brindar soluciones del tipo distribuido a problemas específicos. • Ejercitar el pensamiento crítico alternativo y reflexivo como rasgo cuantitativo del perfil

profesional. • Determinar el alcance de los sistemas distribuidos

III. PROGRAMA ANALÍTICO DE LA ASIGNATURA.

1. INTRODUCCION 1.1 DEFINICION DE UN SISTEMA DISTRIBUIDO 1.2 TIPOS DE SISTEMAS DISTRIBUIDOS

2. ARQUITECTURAS Y PROCESOS 2.1 ESTILOS 2.2 ARQUITECTURAS DE SISTEMAS 2.3 ARQUITECTURAS VERSUS MIDDLEWARE 2.4 THREADS 2.5 VIRTUALIZACIÓN 2.6 CLIENTES 2.7 SERVIDORES 2.8 MIGRACION DE CODIGOS

3. COMUNICACIÓN Y NOMBRES 3.1 FUNDAMENTACIÓN 3.2 LLAMADA A PROCEDIMIENTOS REMOTOS 3.3 COMUNICACIÓN ORIENTADA AL MENSAJE 3.4 COMUNICACIÓN ORIENTADA AL STREAM 3.5 COMUNICACIÓN MULTICAST 3.6 NOMBRES, IDENTIFICADORES Y DIRECCIONES 3.7 NOMBRAMIENTO FLAT 3.8 NOMBRAMIENTO ESTRUCTURADO 3.9 NOMBRAMIENTO BASADO EN ATRIBUTOS

4. SINCRONIZACION, CONSISTENCIA Y REPLICACIÓN 4.1 RELOJ DE SINCRONIZACION 4.2 RELOJES LOGICOS 4.3 EXCLUSION MUTUA 4.4 POSICION GLOBAL DE NODOS 4.5 ALGORITMOS DE ELECCION 4.6 INTRODUCCION CONSISTENCIA Y REPLICACION

Page 4: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

4

4.7 CONSISTENCIA DE MODELOS CENTRADA EN DATOS 4.8 CONSISTENCIA DE MODELOS CENTRADA EN CLIENTES. 4.9 CONSISTENCIA DE PROTOCOLOS

5. TOLERANCIA A FALLAS Y SEGURIDAD 5.1 INTRODUCCION A TOLERANCIA A FALLOS 5.2 PROCESS RESILIENCE 5.3 COMUNICACIÓN CLIENTE SERVIDOR CONFIABLE 5.4 COMUNICACIÓN EN GRUPO CONFIABLE 5.5 COMMIT DISTRIBUIDA 5.6 RECUPERACION 5.7 INTRODUCCION A SEGURIDAD 5.8 CANALES DE SEGURIDAD 5.9 CONTROL DE ACCESO 5.10 ADMINISTRACION DE SEGURIDAD

6. TIPOS DE SISTEMAS DISTRIBUIDOS

6.1 SISTEMAS BASADOS EN OBJETOS DISTRIBUIDOS 6.2 SISTEMAS ARCHIVOS DISTRIBUIDOS 6.3 SISTEMAS DISTRIBUIDOS EN LA WEB 6.4 SISTEMA DISTRIBUIDOS BASADOS EN COORDINACION

http://docencia.izt.uam.mx/sgm8/nos/sistemas%20distribuidos%2001.pdf VI. SISTEMA DE EVALUACIÓN DE APRENDIZAJES.

El sistema de evaluación hace hincapié en varios tipos de calificación: Diagnóstica: es la evaluación de los saberes o conocimientos previos de los y las estudiantes, así como de sus ritmos y estilos de aprendizaje y sus tipos de inteligencia, que sirve al docente como punto de partida para, el desarrollo curricular, para la mejor organización y estructuración de las secuencias de aprendizaje, de modo que estas tengan en cuenta no sólo el punto de partida del grupo con el que trabajará durante el semestre sino además las diferencias y especificidades de cada estudiante para que los aprendizajes resulten más efectivos y permitan el óptimo desarrollo integral de cada uno(a). Procesual o de desempeño o formativa: en esta forma de evaluación se valora el avance del o de la estudiante de su nivel de desarrollo real (detectado mediante la evaluación diagnóstica) a su nivel de desarrollo potencial (detectado mediante diversas actividades o tareas). Esta forma de evaluación, por su naturaleza, es eminentemente cualitativa aunque puede ser valorada cuantitativamente mediante un sistema de puntaje que permita apreciar los avances del o de la estudiante en su zona de desarrollo próximo (zdp) (o, incluso, fuera de ella, en el caso de que el proceso de aprendizaje rebase la misma y dé lugar a nuevas zdp). La ponderación de la asignatura de Sistemas Distribuidos dentro la Evaluación Procesual, contempla la realización de actividades formativas a desarrollar (Work Papers, Difs, Participación, evaluación diaria, Investigación, Brigadas, Team Teaching, Congresos, Jornadas Científicas, Aula Abierta y Seminarios) y su calificación es sobre el 50 % de la calificación del primer y segundo parcial, estimando un promedio de todas las actividades. De resultados del proceso de aprendizaje: es la valoración de los resultados de los procesos de aprendizaje del o de la, estudiante durante el semestre.

Page 5: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

5

Esta forma de evaluación es tanto cualitativa como cuantitativa, por su naturaleza y por la función que cumple dentro de la evaluación. La evaluación de resultados en la asignatura específica se llevará a cabo de forma teórica y práctica aplicada a sistemas reales. La ponderación de esta evaluación es sobre 50 % de la calificación del primer y segundo parcial, en el caso del examen final es de 100%.

EVALUACION PROCESUAL DE RESULTADO TOTAL PARCIAL 1 50% 50% 100% PARCIAL 2 50% 50% 100%

FINAL 0% 100% 100% EVALUACION FINAL PROMEDIO PARCIAL 1, 2 Y FINAL 100%

VI. BIBLIOGRAFÍA.

• Principios y Paradigmas - SISTEMAS DISTRIBUIDOS, Andrew Tanenbaum. Edit. Prentice Hall • DISTRIBUTED SYSTEMS, Colouris DillMore, edit Addison Wesley

Page 6: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

6

VII. PLAN CALENDARIO

UNIVERSIDAD DE AQUINO-BOLIVIA

UNIDAD ACADÉMICA DE ORURO

CALENDARIO ACADÉMICO GESTIÓN I/2011

TURNOS REGULAR-TRABAJO ESTUDIANTES NUEVOS-ANTIGUOS

SEMANA DEL AL ACTIVIDADES OBSERVACIONES

1ra. 09-mar 12-mar Avance de materia TEMA 1 2da. 14-mar 19-mar Avance de materia TEMA 1 3ra. 21-mar 26-mar Avance de materia TEMA 2 4ta. 28-mar 02-abr Avance de materia TEMA 2 5ta. 04-abr 09-abr Avance de materia TEMA 3 6ta. 11-abr 16-abr Avance de materia Inicio Primera Evaluación Parcial Presentación de Notas

7ma. 18-abr 23-abr Avance de materia Conclusión Primera Evaluación Parcial Presentación de Notas 8va. 25-abr 30-abr Avance de materia TEMA 3 9na. 02-may 07-may Avance de materia TEMA 4

10ma. 09-may 14-may Avance de materia TEMA 4 11ra. 16-may 21-may Avance de materia TEMA 5 12da. 23-may 28-may Avance de materia Inicio Segunda Evaluación Parcial Presentación de Notas 13ra. 30-may 04-jun Avance de materia Conclusión Segunda Evaluación Parcial Presentación de Notas 14ta. 06-jun 11-jun Avance de materia TEMA 5 15ta. 13-jun 18-jun Avance de materia TEMA 6 16ta. 20-jun 25-jun Avance de materia TEMA 6

17ma. 27-jun 02-jul Avance de materia TEMA 6 18va. 04-jul 09-jul Inicio Evaluación Final Presentación de Notas 19na. 11-jul 16-jul Conclusión Evaluación Final Transcripción de Notas 20va. 18-jul 23-jul Evaluación del segundo turno Transcripción de Notas 21ra. 25-jul 26-jul Cierre de Gestión

FERIADOS 22 de abril Viernes Santo 1 de mayo Día del Trabajo 23 de junio Corpus Christi

Page 7: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

7

Planificación de Actividades Contenidos

Mínimos Contenidos Analíticos Actividad Períodos

Académicos Recursos Didácticos

Introducción, Arquitectura de un

Sistema Distribuido

Definición de Sistemas

distribuidos, Ventajas y

desventajas, Sistemas

Distribuidos vs centralizados,

Sistemas distribuidos vs PC

independiente.

Clases Regulares

2 Cpu, Data

Display,Material Digital e Impreso,

ejemplos de Aplicación Clases

Regulares 2

Comunicación, sincronizacion

Sistemas Distribuidos, Diseño

de un Sistema distribuido,

Transparencia, Flexibilidad,

Confiabilidad, Desempeño.

Clases Regulares

2 Cpu, Data

Display,Material Digital e Impreso,

ejemplos de Aplicación Clases

Regulares 2

Tolerancia a fallas, tipos de sistemas

distribuidos

Modelos y estructuras de bases de datos, Semántica de las Bases de datos,

Conectividad de las bases de datos,

Acceso distribuido, Estrategias de

situación y distribución.

Clases Regulares

2 Cpu, Data

Display,Material Digital e Impreso,

ejemplos de Aplicación

Clases Regulares

4

VI. CONTROL DE EVALUACIONES

1° evaluación parcial Fecha: Nota: 2° evaluación parcial Fecha: Nota: Examen final

Page 8: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

8

Fecha: Nota: APUNTES

Page 9: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

9

WORK PAPER # 1

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO: APRO 07 No. DE HOJAS: 3

ELABORÓ: Ing. Reynaldo Einar Zabaleta Rioja CÓDIGO: CMP 521

TÍTULO DEL WORK PAPER: INTRODUCCIÓN A LOS SISTEMAS DISTRIBUIDOS

DPTO.: Facultad de Ingeniería

DESTINADO A:

DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura Sistemas Distribuidos

FECHA DE DIFUSIÓN: Marzo 2011

FECHA DE ENTREGA: Marzo 2011

Page 10: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

10

INTRODUCCIÓN A LOS SISTEMAS DISTRIBUIDOS La computación desde sus inicios ha sufrido muchos cambios, desde los grandes ordenadores que permitían realizar tareas en forma limitada y de uso un tanto exclusivo de organizaciones muy selectas, hasta los actuales ordenadores ya sean personales o portátiles que tienen las mismas e incluso mayores capacidades que los primeros y que están cada vez más introducidos en el que hacer cotidiano de una persona. Los mayores cambios se atribuyen principalmente a dos causas, que se dieron desde las décadas de los setenta:

1. El desarrollo de los microprocesadores, que permitieron reducir en tamaño y costo a los ordenadores y aumentar en gran medida las capacidades de los mismos y su acceso a más personas.

2. El desarrollo de las redes de área local y de las comunicaciones que permitieron conectar ordenadores con posibilidad de transferencia de datos a alta velocidad.

Es en este contexto que aparece el concepto de "Sistemas Distribuidos" que se ha popularizado tanto en la actualidad y que tiene como ámbito de estudio las redes como por ejemplo: Internet, redes de teléfonos móviles, redes corporativas, redes de empresas, etc. En consecuencia, el presente articulo de al materia de Sistemas Distribuidos, tiene como principal objetivo: "describir panorámicamente los aspectos relevantes que están involucrados en los Sistemas Distribuidos". sistemas distribuidos Definición: "Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor". Características: Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la

red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red. Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes

componentes para la realización de una tarea, no tienen una temporización general, esta más bien distribuida a los componentes.

Fallos independientes de los componentes.- Cada componente del sistema puede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.

Evolución: Procesamiento central (Host).- Uno de los primeros modelos de ordenadores interconectados, llamados centralizados, donde todo el procesamiento de la organización se llevaba a cabo en una sola computadora, normalmente un Mainframe, y los usuarios empleaban sencillos ordenadores personales. Los problemas de este modelo son: Cuando la carga de procesamiento aumentaba se tenía que cambiar el hardware del Mainframe, lo cual es

más costoso que añadir más computadores personales clientes o servidores que aumenten las capacidades.

El otro problema que surgió son las modernas interfases gráficas de usuario, las cuales podían conllevar a un gran aumento de tráfico en los medios de comunicación y por consiguiente podían colapsar.

Page 11: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

11

Grupo de Servidores.- Otro modelo que entró a competir con el anterior, también un tanto centralizado, son un grupo de ordenadores actuando como servidores, normalmente de archivos o de impresión, poco inteligentes para un número de Minicomputadores que hacen el procesamiento conectados a una red de área local. Los problemas de este modelo son: Podría generarse una saturación de los medios de comunicación entre los servidores poco inteligentes y los

minicomputadores, por ejemplo cuando se solicitan archivos grades por varios clientes a la vez, podían disminuir en gran medida la velocidad de transmisión de información.

La Computación Cliente Servidor.- Este modelo, que predomina en la actualidad, permite descentralizar el procesamiento y recursos, sobre todo, de cada uno de los servicios y de la visualización de la Interfaz Gráfica de Usuario. Esto hace que ciertos servidores estén dedicados solo a una aplicación determinada y por lo tanto ejecutarla en forma eficiente. Cliente-Servidor Definición: Sistema donde el cliente es una máquina que solicita un determinado servicio y se denomina servidor a la máquina que lo proporciona. Los servicios pueden ser: Ejecución de un determinado programa. Acceso a un determinado banco de información. Acceso a un dispositivo de hardware.

Es un elemento primordial, la presencia de un medio físico de comunicación entre las máquinas, y dependerá de la naturaleza de este medio la viabilidad del sistema. Categorías de Servidores: A continuación se presenta una lista de los servidores más comunes:

Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los usuarios que comparten esos archivos no fueran muchos, esto sería una gran opción de almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los ubica y se los envía. Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos estructurados, se diferencian de los de archivos pues la información que se envía está ya resumida en la base de datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae solo la información pertinente y envía esa respuesta al cliente. Servidores de Software de Grupo.- El software de grupo es aquel, que permite organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las listas de correo electrónico. El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo envía al resto del grupo. Servidores WEB.- Son los que guardan y proporcionan Páginas HTML. El cliente desde un browser o link hace un llamado de la página y el servidor recibe el mensaje y envía la página correspondiente. Servidores de correo.- Gestiona el envío y recepción de correo de un grupo de usuarios (el servidor no necesita ser muy potente). El servidor solo debe utilizar un protocolo de correo. Servidor de objetos.- Permite almacenar objetos que pueden ser activados a distancia. Los clientes pueden ser capaces de activar los objetos que se encuentran en el servidor. Servidores de impresión.- Gestionan las solicitudes de impresión de los clientes. El cliente envía la solicitud de impresión, el servidor recibe la solicitud y la ubica en la cola de impresión, ordena a la impresora que lleve a cabo las operaciones y luego avisa a la computadora cliente que ya acabo su respectiva impresión.

Page 12: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

12

Servidores de aplicación.- Se dedica a una única aplicación. Es básicamente una aplicación a la que pueden acceder los clientes.

Componentes de Software: Se distinguen tres componentes básicos de software:

Presentación.- Tiene que ver con la presentación al usuario de un conjunto de objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y los devueltos por el servidor. Lógica de aplicación.- Esta capa es la responsable del procesamiento de la información que tiene lugar en la aplicación. Base de datos.- Esta compuesta de los archivos que contienen los datos de la aplicación.

CUESTIONARIO 1. Cuando y porque surgen los sistemas distribuidos 2. Cuales son las características del modelo cliente servidor 3. Que entiende por cliente servidor 4. Cual es al definición de cliente servidor y cual es su opinión de la categorización de los servidores 5. Dentro de los componentes del software de los sistemas distribuidos, explicar los componentes básicos

Page 13: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

13

WORK PAPER # 2

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO: APRO 07 No. DE HOJAS: 4

ELABORÓ: Ing. Reynaldo Einar Zabaleta Rioja CÓDIGO: CMP 521

TÍTULO DEL WORK PAPER: OBJETOS DISTRIBUIDOS

DPTO.: Facultad de Ingeniería

DESTINADO A:

DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura Sistemas Distribuidos

FECHA DE DIFUSIÓN: Marzo 2011

FECHA DE ENTREGA: Marzo 2011

Page 14: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

14

OBJETOS DISTRIBUIDOS Definición: En los sistemas Cliente/Servidor, 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. Tecnologías orientadas a los objetos distribuidos: Las tres tecnologías importantes y más usadas en este ámbito son:

1. RMI.- Remote Invocation Method.- Fue el primer framework 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.

2. 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.

3. 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.

Introducción a las bases de datos distribuida

Definición: Es una colección de datos (base de datos) construida sobre una red y que pertenecen, lógicamente, a un solo sistema distribuido, la cual cumple las siguientes condiciones: La información de la base de datos esta almacenada físicamente en diferentes sitios de la red. En cada sitio de la red, la parte de la información, se constituye como una base de datos en sí misma. Las bases de datos locales tienen sus propios usuarios locales, sus propios DBMS y programas para la

administración de transacciones, y su propio administrador local de comunicación de datos. Estas base de datos locales deben de tener una extensión, que gestione las funciones de sociedad

necesarias; la combinación de estos componentes con los sistemas de administración de base de datos locales, es lo que se conoce como Sistema Administrador de Base de Datos Distribuidas.

Este gestor global permite que usuarios puedan acceder a los datos desde cualquier punto de la red, como si lo hicieran con los datos de su base de datos local, es decir, para el usuario, no debe existir diferencia en trabajar con datos locales o datos de otros sitios de la red.

En consecuencia, la base de datos distribuida, es como una unidad virtual, cuyas partes se almacenan físicamente en varias bases de datos "reales" distintas, ubicadas en diferentes sitios. Ejemplo de base de datos distribuida: Considere un banco que tiene tres sucursales, en cada sucursal, un ordenador controla las terminales de la misma y el sistema de cuentas. Cada computador con su sistema de cuentas local en cada sucursal constituye un "sitio" de la BDD; las computadoras están conectadas por la red. Durante las operaciones normales, las aplicaciones en las terminales de la sucursal necesitan sólo acceder la base de datos de la misma. Como sólo acceden a la misma red local, se les llaman aplicaciones locales.

Page 15: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

15

Desde el punto de vista tecnológico, aparentemente lo importante es la existencia de algunas transacciones que acceden a información en más de una sucursal. Estas transacciones son llamadas transacciones globales o transacciones distribuidas. La existencia de transacciones globales será considerada como una característica que nos ayude a discriminar entre las BDD y un conjunto de base de datos locales. Una típica transacción global sería una transferencia de fondos de una sucursal a otra. Esta aplicación requiere de actualizar datos en dos diferentes sucursales y asegurarse de la real actualización en ambos sitios o en ninguno. Asegurar el buen funcionamiento de aplicaciones globales es una tarea difícil. Ventajas de las base de datos distribuidas

Descentralización.- En un sistema centralizado/distribuido, existe un administrador que controla toda la base de datos, por el contrario en un sistema distribuido existe un administrador global que lleva una política general y delega algunas funciones a administradores de cada localidad para que establezcan políticas locales y así un trabajo eficiente. Economía: Existen dos aspectos a tener en cuenta.

El primero son los costes de comunicación; si las bases de datos están muy dispersas y las aplicaciones hacen amplio uso de los datos puede resultar más económico dividir la aplicación y realizarla localmente.

El segundo aspecto es que cuesta menos crear un sistema de pequeños ordenadores con la misma potencia que un único ordenador. Mejora de rendimiento: Pues los datos serán almacenados y usados donde son generados, lo cual permitirá distribuir la complejidad del sistema en los diferentes sitios de la red, optimizando la labor. Mejora de fiabilidad y disponibilidad: La falla de uno o varios lugares o el de un enlace de comunicación no implica la inoperatividad total del sistema, incluso si tenemos datos duplicados puede que exista una disponibilidad total de los servicios. Crecimiento: Es más fácil acomodar el incremento del tamaño en un sistema distribuido, por que la expansión se lleva a cabo añadiendo poder de procesamiento y almacenamiento en la red, al añadir un nuevo nodo. Flexibilidad: Permite acceso local y remoto de forma transparente. Disponibilidad: Pueden estar los datos duplicados con lo que varias personas pueden acceder simultáneamente de forma eficiente. El inconveniente, el sistema administrador de base de datos debe preocuparse de la consistencia de los mismos. Control de Concurrencia: El sistema administrador de base de datos local se encarga de manejar la concurrencia de manera eficiente.

Inconvenientes de las base de datos distribuidas. El rendimiento que es una ventaja podría verse contradicho, por la naturaleza de la carga de trabajo, pues

un nodo puede verse abrumado, por las estrategias utilizadas de concurrencia y de fallos, y el acceso local a los datos. Se puede dar esta situación cuando la carga de trabajo requiere un gran número de actualizaciones concurrentes sobre datos duplicados y que deben estar distribuidos.

La confiabilidad de los sistemas distribuidos, esta entre dicha, puesto que, en este tipo de base de datos existen muchos factores a tomar en cuanta como: La confiabilidad de los ordenadores, de la red, del sistema de gestión de base de datos distribuida, de las transacciones y de las tazas de error de la carga de trabajo.

La mayor complejidad, juega en contra de este tipo de sistemas, pues muchas veces se traduce en altos gastos de construcción y mantenimiento. Esto se da por la gran cantidad de componentes Hardware,

Page 16: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

16

muchas cosas que aprender, y muchas aplicaciones susceptibles de fallar. Por ejemplo, el control de concurrencia y recuperación de fallos, requiere de personal muy especializado y por tal costoso.

El procesamiento de base de datos distribuida es difícil de controlar, pues estos procesos muchas veces se llevan a cabo en las áreas de trabajo de los usuarios, e incluso el acceso físico no es controlado, lo que genera una falta de seguridad de los datos.

CUESTIONARIO

1. Que son los objetos distribuidos 2. Que son las tecnologías orientadas a los objetos distribuidos 3. Ejemplificar y explicar por lo menos dos 4. Que se puede hablas inicialmente de las bases de datos distribuida 5. Dar una definición 6. Dar un ejemplo de una base de datos distribuida 7. Cuales son las ventajas de las bases de datos distribuidas 8. Explicar por lo menos 3 ventajas 9. Cuales son los inconvenientes de las bases de datos distribuidos 10. Explicar por lo menos 3.

Page 17: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

17

WORK PAPER # 3

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO: APRO 07 No. DE HOJAS: 2

ELABORÓ: Ing. Reynaldo Einar Zabaleta Rioja CÓDIGO: CMP 521

TÍTULO DEL WORK PAPER: REDES PRIVADAS VIRTUALES

DPTO.: Facultad de Ingeniería

DESTINADO A:

DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura Sistemas Distribuidos

FECHA DE DIFUSIÓN: Marzo 2011

FECHA DE ENTREGA: Marzo 2011

Page 18: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

18

REDES PRIVADAS VIRTUALES Básicamente, una VPN es una red privada que utiliza un red pública (generalmente Internet) para conectar varios lugares o usuarios remotos entre ellos. En vez de utilizar una conexión dedicada o líneas alquiladas, una VPN usa una "conexión virtual" a través de Internet desde la red privada de la compañía hasta el sitio o empleado remoto. En este artículo intentaremos llegar a un entendimiento más acabado sobre las redes privadas virtuales y sus diferentes usos. Ventajas:

- Mejorar el tiempo de ROI (retorno de la inversión) con respecto a las redes WAN tradicionales.

Una VPN bien diseñada puede traer, además, los siguientes beneficios a una empresa: - Extender su alcance geográfico. - Mejorar la seguridad de la información. - Reducir costos operativos en relación con aquellos producidos por una red tradicional. - Reducir tiempos y costos de transporte para los usuarios remotos. - Mejorar la productividad de la empresa. - Simplificar la topología de la red empresarial. - Encontrar oportunidades de negocios a nivel global. - Proveer facilidades de telecomunicaciones. - Permitir un mejor uso de redes con buen ancho de banda.

Tipos de VPN Existen varios tipos de arquitecturas de conexión VPN: 1. Acceso remoto También denominadas VPDN (Virtual Private Dial-up Network), es quizás uno de los modelos más usados actualmente y consiste en usuarios -generalmente empleados- que se conectan con la empresa desde sitios remotos (oficinas comerciales, domicilios, hoteles, aviones, etc.) utilizando Internet como vínculo de acceso. 2. Sitio a sitio Mediante la utilización de equipamiento dedicado, una empresa puede conectar múltiples sitios con ubicación fija a través de una red pública como Internet. Este esquema se utiliza para conectar, por ejemplo, oficinas o sucursales remotas de una empresa con su sede central.

1. Que es una red privada virtual y cual es el acrónimo explicar brevemente

Esta configuración puede ser de dos tipos: Tipo Intranet, si la empresa tiene una o más sucursales remotas que quiere unir en una única red privada, puede hacerlo creando una VPN para conectar ambas redes locales. Tipo Extranet, cuando la empresa tiene una relación cercana con otra compañía (por ejemplo, una empresa asociada, un proveedor o cliente), entonces pueden desarrollar una VPN que conecte sus redes y permita a estas empresas trabajar en un ambiente compartido. 3. Interna Es una variante del tipo "acceso remoto" pero, en vez de utilizar Internet como medio de conexión, emplea la misma red local de la empresa. Sirve para aislar zonas y servicios de la red interna. Esta capacidad también la hace muy conveniente para mejorar las prestaciones de seguridad de las redes inalámbricas. CUESTIONARIO

2. Cuales son las ventajas de una red privada virtual 3. Ejemplificar donde se puede implementar una red privada virtual 4. Que tipos de redes privadas virtuales existen 5. Explicar y justificar donde se puede implementar cada una de ellas

Page 19: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

19

PROGRAMA DE CALIDAD UDABOL DIF – 001

SISTEMAS DISTRIBUIDOS

Recuerde: Es necesario leer muy bien el texto para poder interpretarlo correctamente. Un sistema distribuido es aquel en el que los componentes localizados en computadores, conectados en red, comunican y coordinan sus acciones únicamente mediante el paso de mensajes. Esta definición lleva a las siguientes características de los sistemas distribuidos: concurrencia de los componentes, carencia de un reloj global y fallos independientes de los componentes. Proporcionamos tres ejemplos de sistemas distribuidos: • Internet. • Una Intranet, que es una porción de Internet gestionada por una organización. • La computación móvil y ubicua. Compartir recursos es uno de los motivos principales para construir sistemas distribuidos. Los recursos pueden ser administrados por servidores y accedidos por clientes o pueden ser encapsulados como objetos y accedidos por otros objetos clientes. Se analiza el Web como un ejemplo de recursos compartidos y se introducen sus principales características. Los desafíos que surgen en la construcción de sistemas distribuidos son la heterogeneidad de sus componentes, su carácter abierto, que permite que se puedan añadir o reemplazar componentes, la seguridad y la escalabilidad, que es la capacidad para funcionar bien cuando se incrementa el número de usuarios, el tratamiento de los fallos, la concurrencia de sus componentes y la transparencia. Existen redes de computadores en cualquier parte. Una de ellas es Internet, como lo son las muchas redes de las que se compone. Las redes de teléfonos móviles, las redes corporativas, las de las empresas, los campus, las casas, redes dentro del coche, todas, tanto separadas como combinadas, comparten las características esenciales que las hacen elementos importantes para su estudio bajo el título de sistemas distribuidos. En este libro se pretenden explicar las características de los computadores en red que deben considerar los diseñadores e implementadores de sistemas y presentar los conceptos y técnicas fundamentales que han sido desarrolladas para ayudar en las tareas de diseño e implementación de sistemas que se basan en dichas características. Definimos un sistema distribuido como aquel en el que los componentes hardware o software, localizados en computadores unidos mediante red, comunican y coordinan sus acciones sólo mediante paso de mensajes. Esta definición sencilla cubre el rango completo de sistemas en los que se utilizan normalmente computadores en red. Internet Internet es una vasta colección de redes de computadores de diferentes tipos interconectados. Programas ejecutándose en los computadores conectados a ella interactúan mediante paso de mensajes, empleando un medio común de comuni cación. El diseño y la construcción de los mecanismos de comunicación Internet (los protocolos Internet) es una realización técnica fundamental, que permite que un programa que se está ejecutando en cualquier parte dirija mensajes a programas en cualquier otra parte. Internet es también un sistema distribuido muy grande. Permite a los usuarios, donde quiera que estén, hacer uso de servicios como el World Wide Web, el correo electrónico, y la transferencia de ficheros (de hecho, a veces se confunde incorrectamente el Web con Internet). El conjunto de servicios es abierto, puede ser extendido por la

Page 20: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

20

adición de servidores y nuevos tipos de servicios. Los proveedores de servicios de Internet (ISP1) son empresas que proporcionan enlaces de módem y otros tipos de conexión a usuarios individuales y pequeñas organizaciones, permitiéndolas el acceso a servicios desde cualquier parte de Internet, así como proporcionando servicios como correo electrónico y páginas web. Las intranets están enlazadas conjuntamente por conexiones troncales (backbones). Una conexión o red troncal es un enlace de red con una gran capacidad de transmisión, que puede emplear conexiones de satélite, cables de fibra óptica y otros circuitos de gran ancho de banda. En Internet hay disponibles servicios multimedia, que permiten a los usuarios el acceso a datos de audio y vídeo, incluyendo música, radio y canales de televisión y mantener videoconferencias. La capacidad de Internet para mantener los requisitos especiales de comunicación de los datos multimedia es actualmente bastante limitada porque no proporciona la infraestructura necesaria para reservar capacidad de la red para flujos individuales de datos. La implementación de Internet y los servicios que mantiene ha implicado el desarrollo de soluciones prácticas para muchas cuestiones de sistemas

Intranets Una intranet es una porción de Internet que es, administrada separadamente y que tiene un límite que puede ser configurado para hacer cumplir políticas de seguridad local. Está compuesta de varias redes de área local (LANs) enlazadas por conexiones backbone. La configuración de red de una intranet particular es responsabilidad de la organización que la administra y puede variar ampliamente, desde una LAN en un único sitio a un conjunto de LANs conectadas perteneciendo a ramas de la empresa u otra organización en diferentes países. Una intranet está conectada a Internet por medio de un encaminador (router), lo que permite a los usuarios hacer uso de servicios de otro sitio como el Web o el correo electrónico. Permite también acceder a los servicios que ella proporciona a los usuarios de otras intranets. Muchas organizaciones necesitan proteger sus propios servicios frente al uso no autorizado por parte de usuarios maliciosos de cualquier lugar. Por ejemplo, una empresa no querrá que la información segura esté accesible para los usuarios de organizaciones competidoras, y un hospital no querrá que los datos sensibles de los pacientes sean revelados. Las empresas también quieren protegerse a sí mismas de que programas nocivos, como los virus, entren y ataquen los computadores de la intranet y posiblemente destrocen datos valiosos. El papel del cortafuegos es proteger una intranet impidiendo que entren o salgan mensajes no autorizados. Un cortafuegos se implementa filtrando los mensajes que entran o salen, por ejemplo de acuerdo con su origen o destino. Un cortafuegos podría permitir, por ejemplo, sólo aquellos mensajes relacionados con el correo electrónico o el acceso web para entrar o salir de la intranet que protege. Algunas organizaciones no desean conectar sus redes internas a Internet. Por ejemplo, la policía y otras agencias para la seguridad y la vigilancia de la ley prefieren disponer de algunas redes internas que están aisladas del mundo exterior, y el Servicio Nacional de Salud del.Reino Unido ha tomado la opción de que los datos médicos sensibles relacionados con los pacientes sólo pueden ser protegidos adecuadamente manteniéndolos en una red interna separada físicamente. Algunas organizaciones militares desconectan sus redes internas de Internet en tiempos de guerra. Pero incluso dichas organizaciones desearán beneficiarse del amplio rango de aplicaciones y software de sistemas que emplean los protocolos de Internet. La solución que se adopta en tales organizaciones es realizar una intranet como se ha indicado, pero sin conexiones a Internet. Tal intranet puede prescindir de cortafuegos, o, dicho de otro modo, dispone del cortafuegos más efectivo posible, la ausencia de cualquier conexión física a Internet.

Page 21: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

21

Una intranet tipica

Recuerde: Las redes intranets son redes de comunicación en un cierto entorno cerrado.

Page 22: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

22

PROGRAMA DE CALIDAD UDABOL DIF – 002

ARQUITECTURAS CLIENTE / SERVIDOR Recuerde: Es necesario leer muy bien el texto para poder interpretarlo correctamente. A continuación mostramos las arquitecturas cliente-servidor más populares: Arquitectura Cliente-Servidor de Dos Capas.- Consiste en una capa de presentación y lógica de la aplicación; y la otra de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: Cuando se requiera poco procesamiento de datos en la organización. Cuando se tiene una base de datos centralizada en un solo servidor. Cuando la base de datos es relativamente estática. Cuando se requiere un mantenimiento mínimo.

Cliente/servidor de dos capas Arquitectura Cliente-Servidor de Tres Capas- Consiste en una capa de la Presentación, otra capa de la lógica de la aplicación y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: Cuando se requiera mucho procesamiento de datos en la aplicación. En aplicaciones donde la funcionalidad este en constante cambio. Cuando los procesos no están relativamente muy relacionados con los datos. Cuando se requiera aislar la tecnología de la base de datos para que sea fácil de cambiar. Cuando se requiera separar el código del cliente para que se facilite el mantenimiento. Esta muy adecuada para utilizarla con la tecnología orientada a objetos.

Cliente/servidor de tres capas Clasificación de los sistemas cliente servidor: A continuación mostramos la clasificación de de los sistemas cliente/servidor de acuerdo al nivel de abstracción del servicio que ofrecen:

1. Representación distribuida.- La interacción con el usuario se realiza en el servidor, el cliente hace de pasarela entre el usuario y el servidor.

2. Representación Remota.-La lógica de la aplicación y la base de datos se encuentran en el servidor. El

cliente recibe y formatea los datos para interactuar con el usuario.

Page 23: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

23

3. Lógica Distribuida.- El cliente se encarga de la interacción con el usuario y de algunas funciones triviales

de la aplicación. Por ejemplo controles de rango de campos, campos obligatorios, etc. Mientras que el resto de la aplicación, junto con la base de datos, están en el servidor.

4. Gestión Remota de Datos.- El cliente realiza la interacción con el usuario y ejecuta la aplicación y el

servidor es quien maneja los datos.

5. Base de Datos Distribuidas.- El cliente realiza la interacción con el usuario, ejecuta la aplicación, debe

conocer la topología de la red, así como la disposición y ubicación de los datos. Se delega parte de la gestión de la base de datos al cliente.

6. Cliente servidor a tres niveles.- El cliente se encarga de la interacción con el usuario, el servidor de la

lógica de aplicación y la base de datos puede estar en otro servidor.

Page 24: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

24

Protocolo Definición: Es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicación entre procesos que realizan una determinada tarea. Se requieren dos partes: Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Un protocolo permite que componentes heterogéneos de sistemas distribuidos puedan desarrollarse independientemente, y por medio de módulos de software que componen el protocolo, haya una comunicación transparente entre ambos componentes. Es conveniente mencionar que estos componentes del protocolo deben estar tanto en el receptor como en el emisor. Ejemplos de protocolos usados en los sistemas distribuidos: IP: Protocolo de Internet.- Protocolo de la capa de Red, que permite definir la unidad básica de

transferencia de datos y se encarga del direccionamiento de la información, para que llegue a su destino en la red.

TCP: Protocolo de Control de Transmisión.- Protocolo de la capa de Transporte, que permite dividir y ordenar la información a transportar en paquetes de menor tamaño para su transporte y recepción.

HTTP: Protocolo de Transferencia de Hipertexto.- Protocolo de la capa de aplicación, que permite el servicio de transferencia de páginas de hipertexto entre el cliente WEB y los servidores.

SMTP: Protocolo de Transferencia de Correo Simple.- Protocolo de la capa de aplicación, que permite el envío de correo electrónico por la red.

POP3: Protocolo de Oficina de Correo.- Protocolo de la capa de aplicación, que permite la gestión de correos en Internet, es decir, le permite a una estación de trabajo recuperar los correos que están almacenados en el servidor.

Recuerde: Un buen administrador de bases de datos debe saber distribuir adecuadamente la base de datos en capas Recuerde: Mientras mas capas se pueda implementar el trabajo será mas eficiente

Page 25: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

25

PROGRAMA DE CALIDAD UDABOL

DIF – 003

Al igual que con los

PROGRAMACIÓN DISTRIBUIDA CON RMI Recuerde: Es necesario leer muy bien el texto para poder interpretarlo correctamente

RPC (Remote Procedure Call o Llamada a Procedimientos Remotos) de C en linux, es posible hacer que un programa en java llame a métodos de objetos que están instanciados en otro programa distinto, incluso que estén corriendo en otra máquina conectada en red. Estos métodos, aunque los llamemos desde este ordenador, se ejecutan en el otro. Como se comentó en el RPC, este sistema tiene la ventaja de que si, por ejemplo, tenemos un ordenador capaz de realizar cuentas muy deprisa y otro capaz de dibujar gráficos maravillosos y además necesitamos hacer un programa con muchas cuentas y muchos gráficos, podemos implementar en el ordenador de las cuentas aquellas clases que echan cuentas, en el ordenador de gráficos aquellas clases de pintado y hacer que cada ordenador haga lo que mejor sabe hacer. Cuando al hacer un gráfico necesitemos echar cuentas, llamaremos a la clase remota que echa las cuentas, y estas se harán en el ordenador de las cuentas, devolviendo el resultado al de los gráficos. RMI (Remote Method Invocation) es un mecanismo que permite realizar llamadas a métodos de objetos remotos situados en distintas (o la misma) máquinas virtuales de Java, compartiendo así recursos y carga de procesamiento a través de varios sistemas. La arquitectura RMI puede verse como un modelo de cuatro capas:

La primera capa es la de aplicación y se corresponde con la implementación real de las aplicaciones cliente y servidor. Aquí tienen lugar las llamadas a alto nivel para acceder y exportar objetos remotos. Cualquier aplicación que quiera que sus métodos estén disponibles para su acceso por clientes remotos debe declarar dichos métodos en una interfaz que extienda java.rmi.Remote. Dicha interfaz se usa básicamente para "marcar" un objeto como remotamente accesible. Una vez que los métodos han sido implementados, el objeto debe ser exportado. Esto puede hacerse de forma implícita si el objeto extiende la clase UnicastRemoteObject (paquete java.rmi.server), o puede hacerse de forma explícita con una llamada al método exportObject() del mismo paquete. La capa 2 es la capa proxy, o capa stub-skeleton. Esta capa es la que interactúa directamente con la capa de aplicación. Todas las llamadas a objetos remotos y acciones junto con sus parámetros y retorno de objetos tienen lugar en esta capa. La capa 3 es la de referencia remota, y es responsable del manejo de la parte semántica de las invocaciones remotas. También es responsable de la gestión de la replicación de objetos y realización de tareas específicas de la implementación con los objetos remotos, como el establecimiento de las persistencias semánticas y estrategias adecuadas para la recuperación de conexiones perdidas. En esta capa se espera una conexión de tipo stream (stream-oriented connection) desde la capa de transporte.

Page 26: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

26

La capa 4 es la de transporte. Es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una máquina a otra. El protocolo de transporte subyacente para RMI es JRMP (Java Remote Method Protocol

• Un

), que solamente es "comprendido" por programas Java. Toda aplicación RMI normalmente se descompone en 2 partes:

servidor

• Un

, que crea algunos objetos remotos, crea referencias para hacerlos accesibles, y espera a que el cliente los invoque.

cliente, que obtiene una referencia a objetos remotos en el servidor, y los invoca.

Crear un servidor RMI Un servidor RMI consiste en definir un objeto remoto que va a ser utilizado por los clientes. Para crear un objeto remoto, se define una interfaz, y el objeto remoto será una clase

1.

que implemente dicha interfaz. Veamos como crear un servidor de ejemplo mediante 3 pasos:

Definir el interfaz remoto

Cuando se crea un interfaz remoto:

o El interfaz debe ser públicoo Debe extender (heredar de) el interfaz java.rmi.Remote, para indicar que puede llamarse desde

cualquier máquina virtual Java.

.

o Cada método remoto debe lanzar la excepción java.rmi.RemoteException en su claúsula throws

Veamos un ejemplo de interfaz remoto:

, además de las excepciones que pueda manejar.

public interface MiInterfazRemoto extends java.rmi.Remote { public void miMetodo1() throws java.rmi.RemoteException; public int miMetodo2() throws java.rmi.RemoteException; }

2.

public class MiClaseRemota extends java.rmi.server.UnicastRemoteObject implements MiInterfazRemoto { public MiClaseRemota() throws java.rmi.RemoteException { // Código del constructor } public void miMetodo1() throws java.rmi.RemoteException { // Aquí ponemos el código que queramos System.out.println("Estoy en miMetodo1()"); }

Implementar el interfaz remoto

Page 27: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

27

public int miMetodo2() throws java.rmi.RemoteException { return 5; // Aquí ponemos el código que queramos } public void otroMetodo() { // Si definimos otro método, éste no podría llamarse // remotamente al no ser del interfaz remoto } public static void main(String[] args) { try { MiInterfazRemoto mir = new MiClaseRemota(); java.rmi.Naming.rebind("//" + java.net.InetAddress.getLocalHost().getHostAddress() + ":" + args[0] + "/PruebaRMI", mir); } catch (Exception e) { } } }

3. Como se puede observar, la clase MiClaseRemota implementa el interfaz MiInterfazRemoto que hemos definido previamente. Además, hereda de UnicastRemoteObject, que es una clase de Java que podemos utilizar como superclase para implementar objetos remotos.

4. Luego, dentro de la clase, definimos un constructor (que lanza la excepción RemoteException porque también la lanza la superclase UnicastRemoteObject), y los métodos

5. Finalmente, en el método

de la/las interfaz/interfaces que implemente.

main

6.

, definimos el código para crear el objeto remoto que se quiere compartir y hacer el objeto remoto visible para los clientes, mediante la clase Naming y su método rebind(...). Nota: Hemos puesto el método main() dentro de la misma clase por comodidad. Podría definirse otra clase aparte que fuera la encargada de registrar el objeto remoto.

3. Compilar y ejecutar el servidor

Ya tenemos definido el servidor. Ahora tenemos que compilar

o Compilamos el interfaz remoto. Además lo agrupamos en un fichero JAR para tenerlo presente tanto en el cliente como en el servidor:

sus clases mediante los siguientes pasos:

javac MiInterfazRemoto.java jar cvf objRemotos.jar MiInterfazRemoto.class

o Luego, compilamos las clases que implementen los interfaces. Y para cada una de ellas generamos los ficheros Stub y Skeleton para mantener la referencia con el objeto remoto, mediante el comando rmic:

Page 28: s8- sistemas_distribuidos.pdf

F A C U L T A D D E I N G E N I E R I A

U N I V E R S I D A D D E A Q U I N O B O L I V I A

28

set CLASSPATH=%CLASSPATH%;.\objRemotos.jar;. javac MiClaseRemota.java rmic -d . MiClaseRemota

Observamos en nuestro directorio de trabajo que se han generado automáticamente dos ficheros .class (MiClaseRemota_Skel.class y MiClaseRemota_Stub.class) correspondientes a la capa stub-skeleton de la arquitectura RMI. Para ejecutar

o Se arranca el

el servidor, seguimos los siguientes pasos:

registro de RMI

start rmiregistry 1234

para permitir registrar y buscar objetos remotos. El registro se encarga de gestionar un conjunto de objetos remotos a compartir, y buscarlos ante las peticiones de los clientes. Se ejecuta con la aplicación rmiregistry distribuida con Java, a la que podemos pasarle opcionalmente el puerto por el que conectar (por defecto, el 1099):

o Por último, se lanza el servidor

java -Djava.rmi.server.hostname=127.0.0.1 MiClaseRemota 1234

:

Recuerde: Primero se debe definir la interfaz remota luego se debe implementar y por ultimo compilar.