maestría en informática y...

202
Maestría en Informática y Computación

Upload: buinhu

Post on 11-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Maestría en Informática yComputación

Universidad Nacional de Misiones

TESIS DE MAESTRÍA

SISTEMA INTELIGENTE PARA SOLUCIONARPROBLEMAS DE TRÁFICO EN REDES ANIVEL DE LA CAPA DE APLICACIÓN

Presentada por:Estigarribia Oscar Alberto

para la obtención del título deMagister en Informática y Computación

Dirigida por elMgter. David Luis la Red Martínez

Tema de Estudio y Director de tesis aprobados por el Consejo Académico

de la Maestría en Informática y Computación de la Facultad de Ciencias

Económicas de la Universidad Nacional de Misiones.

Page 2: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

ii

Prefacio

El presente trabajo de Tesis de Maestría se ha realizado con el propósitode integrar diversos conocimientos adquiridos en el desarrollo de laMaestríapara resolver de manera novedosa y a bajo costo, el problema de la inte-gración de aplicaciones de legado (legacy) desarrolladas en los años 70s,que requieren intercambiar información entre diferentes equipos conecta-dos mediante Internet, utilizando un gestor de tráfico de requerimientosy respuestas a nivel de capa de aplicación.

El mencionado gestor de tráfico, llamado protocolo YOSUKO, fuedesarrollado utilizando el lenguaje multiplataforma Java y gran parte desus posibilidades de gestión de tráfico y de seguridad.

Contenido

Esta Tesis está dividida en tres partes claramente definidas:

Parte I: Marco Conceptual y Herramientas Utilizadas

Esta parte está integrada por los primeros cinco capítulos.

Se comienza con un capítulo dedicado a los objetivos del trabajo, lashipótesis de partida, la justificación del proyecto planteado y algunosaspectos del marco conceptual empleado.

Se continúa luego con un capítulo dedicado a los protocolos de comu-nicaciones de datos, en especial el TCP/IP.

El tercer capítulo trata de los sistemas distribuidos, revisándose ráp-idamente aspectos relacionados con sockets, RPC, CORBA, RMI, etc.

En el siguiente capítulo se presenta una reseña acerca de los princi-pales aspectos referidos a los sistemas expertos, empleados en el desarrollode la tesis.

Page 3: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

iii

Se continúa con una revisión de los aspectos más sobresalientes de laprogramación orientada a objetos y del lenguaje Java, especialmente losaspectos utilizados en el desarrollo de la tesis, tales como los relativos alos sockets.

Parte II: Desarrollos Efectuados y Conclusiones

Se inicia esta parte con un capítulo dedicado a los principales aspectosdel desarrollo del producto de software.

Se prosigue con un capítulo dedicado a diferentes aspectos de seguri-dad considerados en el producto desarrollado.

Seguidamente se describe la interacción del software desarrollado conotras aplicaciones preexistentes para lograr procesamiento destribuido,con gestión de tráfico inteligente desde la aplicación desarrollada, todoello a través de Internet.

Finalmente se presentan las conclusiones y posibles trabajos futuros.

Parte III: Anexo

En esta parte se describen los objetos más importantes del productodesarrollado, como así también el Manual del Usuario de dicho producto.

Page 4: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

iv

Agradecimientos

Haber llegado a las instancias de presentar esta Tesis de Maestría esel mérito de muchas personas que han sido los mentores, impulsores ymi apoyo para seguir adelante hasta esta meta, a quienes les debo miagradecimiento.

Ante todo quiero expresar la más profunda gratitud a mi familia porel apoyo, la paciencia, la comprensión y tolerancia durante el tiempode desarrollo de la Maestría, y muy especialmente a mi madre, quienfrecuentemente me decía “hijo, te pueden sacar todas tur pertenencias,pero nunca lo que está en tu mente”..

En particular, a dos de mis profesores y guías. En primer lugar,al Prof. Mgr. David la Red Martínez, quien fuera mi docente cuandocursaba mis estudios universitarios, y posteriormente en este postgrado,donde además ha sido un director de tesis ejemplar. En segundo lugar,mi agradecimiento es para el Prof. Dr. Enrique Castillo Ron, quienen una demostración de altruísmo y condiciones académicas y humanassuperiores, nos ha permitido lograr este crecimiento.

A las autoridades de la Universidad Nacional de Misiones, y de laFacultad de Ciencias Económicas. En particular al Decano Mgr. AldoMontini, por su permanente apoyo a la Maestría en Informática y Com-putación en la Facultad de Ciencias Económicas de la UNaM.

A todos los docentes de la Maestría, tanto argentinos como españoles,por su esfuerzo y dedicación.

A mis colegas y compañeros de facultad y de maestría, con quienes hecompartido esta importante experiencia, en especial a Carlos Brys, Myr-iam Kurtz y Marcelo Marinelli, por el permanente aliento para concluirla tarea emprendida.

Oscar Alberto Estigarribia

Maestría en Informática y ComputaciónFacultad de Ciencias EconómicasUniversidad Nacional de Misiones

Posadas-Misiones, Argentina, Febrero de 2006.

Page 5: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Tabla de Contenidos

Prefacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iiContenido . . . . . . . . . . . . . . . . . . . . . . . . . . iiAgradecimientos . . . . . . . . . . . . . . . . . . . . . . . iv

I Marco Conceptual y Herramientas Utilizadas 1

1 Aspectos Conceptuales 2

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . 3

Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . 4

Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Justificación del Estudio . . . . . . . . . . . . . . . . . . . . . 5Definición del Impacto de la Investigación . . . . . . . . . . . 5Marco Conceptual . . . . . . . . . . . . . . . . . . . . . . . . 6

Reseña Sobre Modelos de Diseños de Programas . . . . . 6

2 Protocolos de Comunicación de Datos 8

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Niveles o Capas del Modelo OSI . . . . . . . . . . . . . . . . . 10Protocolo TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . 14

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 14Funciones TCP/IP . . . . . . . . . . . . . . . . . . . . . 16Definición del Nivel IP . . . . . . . . . . . . . . . . . . . 17Estructura del Datagrama . . . . . . . . . . . . . . . . . 18

Ruteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Detalles de Direccionamiento: Subredes y Broadcasting . . . . 21Fragmentación y Reensamblado del Datagrama . . . . . . . . 23

v

Page 6: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

TABLA DE CONTENIDOS vi

ARP: Address Resolution Protocol . . . . . . . . . . . . . . . 23Sistema de Dominios . . . . . . . . . . . . . . . . . . . . . . . 24Protocolos que Trabajan Junto con TCP/lP . . . . . . . . . . 26

Protocolos Usados en el Nivel OSI de Aplicación, Pre-sentación y Sesión . . . . . . . . . . . . . . . . . . 26

Métodos de Comunicación . . . . . . . . . . . . . . . . . . . . 27

3 Sistema Distribuidos 29

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Enfoques al Diseño de Aplicaciones Distribuidas . . . . . . . . 30Aplicaciones Distribuidas en Internet . . . . . . . . . . . . . . 31Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32RPC - Llamadas a Procedimientos Remotos . . . . . . . . . . 35Diferentes Enfoques Para la Contrucción de Aplicaciones Dis-

tribuida . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Entorno de Computación Distribuida . . . . . . . . . . . 37El Modelo de Objeto Componente Distribuido . . . . . . 38

Arquitectura de Intermediación de Solicitud de Objetos Co-munes (CORBA) . . . . . . . . . . . . . . . . . . . . . . 42

Invocación Remota de Métodos de Java . . . . . . . . . . . . . 44El Modelo de Objeto Distribuido de Java . . . . . . . . . . . . 45Las Tres Capas de la RMI de Java . . . . . . . . . . . . . . . 46Pasar Argumentos y Valores de Retorno . . . . . . . . . . . . 49Los Objetos y la Invocación Remota de Métodos . . . . . . . . 50Seguridad de la Aplicación Distribuida . . . . . . . . . . . . . 51Seguridad en el Transporte . . . . . . . . . . . . . . . . . . . . 52Autenticación y Control de Acceso . . . . . . . . . . . . . . . 52

4 Sistemas Expertos 57

Definición de Sistema Experto . . . . . . . . . . . . . . . . . . 57Aspectos Fundamentales de los Sistemas Expertos . . . . . . . 58

Componentes de un Sistema Experto . . . . . . . . . . . 58Tipos de Conocimiento . . . . . . . . . . . . . . . . . . . 59Fuentes de Conocimiento . . . . . . . . . . . . . . . . . . 60

Definición del Conocimiento . . . . . . . . . . . . . . . . 60Clasificación de los Sistemas Expertos . . . . . . . . . . . 61Sistemas Expertos Basados en Reglas . . . . . . . . . . . 62

Page 7: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

TABLA DE CONTENIDOS vii

El Motor de Inferencia . . . . . . . . . . . . . . . . . . . 62

Modus Ponens y Modus Tollens . . . . . . . . . . . . . . 64Resolución . . . . . . . . . . . . . . . . . . . . . . . . . . 65Encadenamiento de Reglas . . . . . . . . . . . . . . . . . 66Encadenamiento de Reglas Orientada a un Objetivo . . . 67Compilación de Reglas . . . . . . . . . . . . . . . . . . . 67Control de la Coherencia . . . . . . . . . . . . . . . . . . 67Metodología de Weiss y Kulikowski . . . . . . . . . . . . 68Base de Conocimiento . . . . . . . . . . . . . . . . . . . 69

Modelado de la Base de Conocimiento . . . . . . . . . . 69

Definiciones y Conceptos Sobre Grafos . . . . . . . . . . . . . 73

5 Programación Orientada a Objetos 77

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Clases y Objetos . . . . . . . . . . . . . . . . . . . . . . 79Propiedades de un Lenguaje Orientado a Objetos . . . . . . . 80

Encapsulamiento . . . . . . . . . . . . . . . . . . . . . . 81Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . 85

Lenguaje Java . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Características Destacables del Lenguaje Java . . . . . . 86Socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Pasos Para Crear un Servidor . . . . . . . . . . . . . . . 96Crear el Socket Servidor . . . . . . . . . . . . . . . . . . 97Aceptar un Cliente . . . . . . . . . . . . . . . . . . . . . 97Obtener el InputStream y / o OutputStream . . . . . . . 98Crear unos InputStream y / o OutputStream Más Ade-

cuados a las Necesidades . . . . . . . . . . . . . . 98Leer y Escribir Datos Del y Al Cliente . . . . . . . . . . 99Cerrar el Socket . . . . . . . . . . . . . . . . . . . . . . . 102Pasos Para Crear un Cliente . . . . . . . . . . . . . . . . 102

II Desarrollos Efectuados y Conclusiones 104

6 Desarrollo del Producto 105

Page 8: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

TABLA DE CONTENIDOS viii

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Objetivos del Prototipo . . . . . . . . . . . . . . . . . . . . . 106Estudio Comparativo de Ambas Versiones del Prototipo . . . 106Protocolo YOSUKO V. 2.0. . . . . . . . . . . . . . . . . . . . 107

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 107Planteo del Problema . . . . . . . . . . . . . . . . . . . . 108Estudio de Factibilidad para Brindar una Solución al Prob-

lema . . . . . . . . . . . . . . . . . . . . . . . . . 108Conclusión del Estudio de Factibilidad . . . . . . . . . . 109Desarrollo de la Experiencia . . . . . . . . . . . . . . . . 110Arquitectura Utilizada para Desarrollar el Protocolo . . . 115Base de Conocimiento Yosuko V 1.0. . . . . . . . . . . . 115

Almacenamiento de las Reglas . . . . . . . . . . . . . . . 117Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7 Seguridad a Nivel de Información 132

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Seguridad Nivel de Aplicación . . . . . . . . . . . . . . . 133

Seguridad Cuando se Transmite la Información . . . . . 135Seguridad Nivel Usuarios . . . . . . . . . . . . . . . . . . 137

Diagrama en Bloque del Sistema . . . . . . . . . . . . . . . . 138

8 Metodología de Integración de YOSUKO V.2.0 y Aplica-

ciones Informáticas 140

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140El Protocolo YOSUKO V. 2.0 y las Aplicaciones Externas . . 141Descripción Operativa del Sistema de Integración . . . . . . . 146

Algoritmo del Sistema Integración . . . . . . . . . . . . . . . . 152Prueba de la Implementación Efectuada . . . . . . . . . . . . 157

Prueba de Transmisión de Paquetes . . . . . . . . . . . . . . . 160Prueba con Aplicación Externa de Ventas de Boletos . . . . . 162

9 Conclusiones y Futuros Trabajos 168

Page 9: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

TABLA DE CONTENIDOS ix

III Anexo 171

10 Anexo 172

Detalles de los ObjetosMás Importantes del Protocolo YOSUKOV. 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

Manual del Usuario de YOSUKO V. 2.0 . . . . . . . . . . . . 176Pasos Para la Instalación Modo Servidor . . . . . . . . . 176Pasos Para la Instalación Modo Cliente . . . . . . . . . . 177Panel de Control . . . . . . . . . . . . . . . . . . . . . . 178Configuración . . . . . . . . . . . . . . . . . . . . . . . . 178ABM de Actividades . . . . . . . . . . . . . . . . . . . . 179ABM de Terminales (Modo Servidor) . . . . . . . . . . . 179ABM de Procesos . . . . . . . . . . . . . . . . . . . . . . 180

Bibliografía 183

Índice Alfabético 186

Page 10: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Lista de Figuras

2-1 Modelo OSI - Estructura. . . . . . . . . . . . . . . . . . 112-2 Diferencia entre Modelo OSI y TCP/IP. . . . . . . . . . 152-3 Estructura del Datagrama. . . . . . . . . . . . . . . . . . 18

3-1 La organización de sistema distribuido. . . . . . . . . . . 303-2 Estructura del servidor. . . . . . . . . . . . . . . . . . . . 323-3 Ejemplo de aplicación distribuida. . . . . . . . . . . . . . 333-4 Utilización de sockets. . . . . . . . . . . . . . . . . . . . 343-5 Filosofía del RPC. . . . . . . . . . . . . . . . . . . . . . 363-6 COM y DCOM. . . . . . . . . . . . . . . . . . . . . . . . 543-7 Cómo funciona CORBA. . . . . . . . . . . . . . . . . . . 553-8 RMI de Java. . . . . . . . . . . . . . . . . . . . . . . . . 553-9 Las tres capas de RMI. . . . . . . . . . . . . . . . . . . . 56

4-1 Esquema resumido del funcionamiento de un sistema ex-perto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4-2 La cadena del conocimiento. . . . . . . . . . . . . . . . . 614-3 Regla modus ponens. . . . . . . . . . . . . . . . . . . . . 654-4 Regla modus tollens. . . . . . . . . . . . . . . . . . . . . 664-5 Proceso de búsqueda en la base de conocimiento. . . . . 704-6 Diceño de la regla mediante UML. . . . . . . . . . . . . . 704-7 Etapas en el desarrollo de un SE. . . . . . . . . . . . . . 724-8 Tipos de grafos. . . . . . . . . . . . . . . . . . . . . . . . 744-9 Notación de grafos. . . . . . . . . . . . . . . . . . . . . . 744-10 Grafo completo. . . . . . . . . . . . . . . . . . . . . . . . 75

5-1 Terminología de objetos. . . . . . . . . . . . . . . . . . . 795-2 Reutilización de objeto. . . . . . . . . . . . . . . . . . . . 845-3 Interface para RMI. . . . . . . . . . . . . . . . . . . . . . 91

x

Page 11: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

LISTA DE FIGURAS xi

5-4 Objeto remoto. . . . . . . . . . . . . . . . . . . . . . . . 925-5 Permiso de seguridad. . . . . . . . . . . . . . . . . . . . 935-6 Archivo de política de seguridad. . . . . . . . . . . . . . 935-7 Lanzamiento de rmiregristry. . . . . . . . . . . . . . . . . 945-8 Indicación de la ubicación del código base. . . . . . . . . 945-9 Gestor de seguridad. . . . . . . . . . . . . . . . . . . . . 955-10 Instancia y registra un objeto en el servidor rmi. . . . . . 955-11 Solicitud de objeto remoto. . . . . . . . . . . . . . . . . . 965-12 Llamado a un método. . . . . . . . . . . . . . . . . . . . 965-13 Creación del socket servidor. . . . . . . . . . . . . . . . . 975-14 El servidor activa la atención a un cliente. . . . . . . . . 985-15 Lectura y envío de datos. . . . . . . . . . . . . . . . . . 985-16 Objetos para recibir datos (enteros, flotantes, strings). . 995-17 Objetos para recibir o enviar clases. . . . . . . . . . . . . 995-18 Implementa interface Serializable. . . . . . . . . . . . . . 1005-19 Implementa interface Serializable. . . . . . . . . . . . . . 1015-20 Define métodos privados. . . . . . . . . . . . . . . . . . . 1015-21 Método WriteObjet. . . . . . . . . . . . . . . . . . . . . 1025-22 Lectura de objetos por socket. . . . . . . . . . . . . . . . 1025-23 Cierre de una conexión cliente y servidor. . . . . . . . . . 1025-24 Creación de una conexión cliente. . . . . . . . . . . . . . 103

6-1 Presupuesto de servidor. . . . . . . . . . . . . . . . . . . 1116-2 Costo de la comunicación. . . . . . . . . . . . . . . . . . 1146-3 Arquitectura utilizada para el sistema experto. . . . . . . 1156-4 Estructura del almacenamiento de las reglas. . . . . . . . 1176-5 Archivo de reglas. . . . . . . . . . . . . . . . . . . . . . . 1186-6 Algoritmo del motor de inferencia de YOSUKO V.1.0. . . 1196-7 Archivo de nodos. . . . . . . . . . . . . . . . . . . . . . . 1206-8 Archivo contenedor de reglas. . . . . . . . . . . . . . . . 1226-9 Regla 1 del ejemplo. . . . . . . . . . . . . . . . . . . . . 1226-10 Regla 2 del ejemplo. . . . . . . . . . . . . . . . . . . . . 1236-11 Regla 3 del ejemplo. . . . . . . . . . . . . . . . . . . . . 1236-12 Regla 4 del ejemplo. . . . . . . . . . . . . . . . . . . . . 1236-13 Regla 5 del ejemplo. . . . . . . . . . . . . . . . . . . . . 1246-14 Cálculo de ping modelo 1. . . . . . . . . . . . . . . . . . 1266-15 Cálculo TPR segundo método. . . . . . . . . . . . . . . . 129

Page 12: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

LISTA DE FIGURAS xii

6-16 Grafo completo no dirigido. . . . . . . . . . . . . . . . . 130

7-1 Pantalla donde se registra el producto. . . . . . . . . . . 1347-2 Esquema funcional de nodos. . . . . . . . . . . . . . . . . 139

8-1 Diagrama de interacción de YOSUKO con las aplicacionesexternas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

8-2 Estructura del archivo Read.dat. . . . . . . . . . . . . . 1438-3 Archivo binario Activ.dat. . . . . . . . . . . . . . . . . . 1448-4 Archivo binario Control.dat. . . . . . . . . . . . . . . . . 1458-5 Archivo binario Nodos.dat. . . . . . . . . . . . . . . . . . 1468-6 Archivo binario Proc.dat. . . . . . . . . . . . . . . . . . . 1478-7 Ingreso al Servidor MySQL. . . . . . . . . . . . . . . . . 1578-8 Pantalla de registración del producto. . . . . . . . . . . . 1588-9 Pantalla de confirmación. . . . . . . . . . . . . . . . . . . 1588-10 Tabla Usuario de la base de datos YOSUKO. . . . . . . . 1598-11 ABM de servidores y terminales. . . . . . . . . . . . . . . 1598-12 Error en el segundo nivel de seguridad. . . . . . . . . . . 1608-13 Registro del cliente en la aplicación. . . . . . . . . . . . . 1618-14 Registro de la actividad. . . . . . . . . . . . . . . . . . . 1628-15 Registro de procesos. . . . . . . . . . . . . . . . . . . . . 1638-16 Verificación del nivel de seguridad a nivel usuario. . . . . 1638-17 Panel sin nodos. . . . . . . . . . . . . . . . . . . . . . . . 1648-18 Terminal de control con nodos activos. . . . . . . . . . . 1658-19 Pantalla de aplicación de antigua generación (lenguaje Clip-

per 5.2). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1658-20 Transferencia entre dos nodos. . . . . . . . . . . . . . . . 1668-21 Archivo encriptado. . . . . . . . . . . . . . . . . . . . . . 1668-22 Aplicación de ventas de boletos. . . . . . . . . . . . . . . 1678-23 Detección del mejor camino por parte de YOSUKO para

atender una aplicación externa. . . . . . . . . . . . . . . 167

10-1 Contenido del CD de la tesis. . . . . . . . . . . . . . . . 17610-2 Pantalla panel de control. . . . . . . . . . . . . . . . . . 17910-3 Pantalla de configuración del terminal. . . . . . . . . . . 18010-4 Pantalla ABM de actividades. . . . . . . . . . . . . . . . 18110-5 Pantalla de ABM de terminales. . . . . . . . . . . . . . . 18110-6 Pantalla para ABM de procesos. . . . . . . . . . . . . . . 182

Page 13: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Parte I

Marco Conceptual yHerramientas Utilizadas

1

Page 14: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 1

Aspectos Conceptuales

Introducción

La masificación de las redes computacionales, y el exponencial crec-imiento de Internet, han cambiado la forma en que los usuarios com-parten, distribuyen y analizan la información.

Además las nuevas tecnologías en comunicación, han logrado cen-tralizar o distribuir la información en tiempo real, brindando grandesbeneficios a las empresas o al ser humano que utiliza estas herramientaspara la toma de decisiones.

Muchos sistemas actualmente poseen la Tecnología Cliente / Servi-dor con Motores de Bases de Datos, utilizando una conectividad ODBC ,JDBC , en una gran diversidad de redes locales o de área amplia, inter-actuando con diversos dispositivos inteligentes. Esto significa un granbeneficio para algunas empresas (que aprovechan todas las bondades),y un inconveniente para otras, que solo los aprovechan parcialmente, lo

2

Page 15: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Aspectos Conceptuales 3

que no justifica la inversión de implementar dichas tecnologías.

Las mayorías de las empresas de nuestro medio, se encuentran sis-tematizadas con lenguaje de programación que no tienen la capacidadde utilizar las tecnologías actuales, trayendo consecuencias drásticas anivel costo y organización, debido a que tienen que volver a programarlos sistemas existentes, comprar nuevos equipamientos (servidor, router,rack, etc.), licencias de software, capacitación al personal, etc.

Además hay empresas que debido a su actividad, necesitan tener lainformación en tiempo real. Ej.: empresas de transporte de pasajeros quese informatizan, utilizando las técnicas Cliente / Servidor, centralizandola información en un solo servidor, pero existe el inconveniente con lospuntos de ventas remotos, donde no se puede utilizar comunicación debajo costo (ADSL). Debido a que un corte de comunicación representagran perdida de dinero, se ven obligado a contratar proveedores, quegaranticen la comunicación punto a punto, ej.: Telecom, Telefónica.

Objetivo General

Teniendo en cuenta los inconveniente antes mencionados, se propuso de-sarrollar un Sistema Experto Multiplataforma en lenguaje Java, emple-ando comunicación de bajo costo, permitiendo gestionar tráfico entreservidores remotos, teniendo en cuenta como métrica la del camino másrápido, detectado mediante sondeo en tiempo real, e integrando softwaredesarrollado en la década de los 70s, con tecnología Clientes Servidor,Motor de Bases de Datos, e interconexión a Internet, y brindando seguri-dad a la información transmitida.

Para evaluar el sistema se realizarían pruebas con la interfaz, y lasnuevas tecnologías, demostrando la efectividad en costo y velocidad.

Page 16: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Aspectos Conceptuales 4

Objetivos Específicos

Diseñar y desarrollar un Sistema Experto basado en reglas (en lenguajeJava), con el fin de lograr los siguientes objetivos:

1. Gestionar el tráfico entre servidores remotos, utilizando comuni-cación de bajo costo, detectando el mejor camino según el criterioya mencionado.

2. Interactuar con los diferentes Motores de Bases de datos o sistemasde archivos de los distintos servidores mediante comandos de SQL.

3. Integrar aplicaciones, desarrollada en la década de los 70s, a travésde un contenedor de pedidos; estas aplicaciones se podrán ejecutaren forma local o remota.

4. Utilizar algoritmos de seguridad para dar protección a los datosrecibidos o enviados por el contenedor de pedidos.

5. Diseñar pruebas que permitan evaluar la efectividad del software.

Hipótesis

Es posible desarrollar un Sistema Experto para gestión de tráfico, a nivel,de capa de aplicación, capaz de integrar software confeccionado en ladécada de los 70s, con tecnología Cliente / Servidor, Motor de Bases deDatos, interconectado con varios servidores, proveyendo seguridad a lainformación transmitida.

Page 17: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Aspectos Conceptuales 5

Justificación del Estudio

Ante el avance de las exigencias de los negocios, es una necesidad paramuchas empresas PYMES (que carecen de la posibilidad de utilizar lasnuevas soluciones integrales por su elevado costo), el desarrollo de unainterfaz con un Sistema Experto para gestión del tráfico entre servidoresen los que opera el software aplicativo de legado (heredado).

Definición del Impacto de la Investi-gación

Con esta interfaz de software las empresas obtendrán los siguientes ben-eficios:

1. Ahorro en la reprogramación del software.

2. Ahorro en servidores costosos.

3. Ahorro en motores de bases de datos.

4. Ahorro en costo de comunicación.

5. Ahorro en licencias de software.

6. Ahorro en capacitación del personal.

7. Seguridad de datos en el momento de transmitir la información.

Page 18: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Aspectos Conceptuales 6

Marco Conceptual

Reseña Sobre Modelos de Diseños de Programas

Actualmente existen varios modelos de diseño de programas, los que sedetallan seguidamente:

Modelo 1:

Programas de red local. Suelen ser programas de bajo costo conun tratamiento de ficheros y bloqueos dentro de una red local. Poseensistemas más o menos avanzados de generación de informes.

Modelo 2:

Son programas de modelo 1, muy planificados, para realizar ejecu-ción remota. Utilizan lenguaje SQL con tecnología ODBC o JDBC, yéstos se enlazan con bases de datos relacionales, implicando generalmenteservidores costosos y comunicación de alto costo para lograr rendimiento.Además se debe contar con una buena política de seguridad con respectoa la protección de los servidores.

Modelo 3:

Aplicaciones distribuidas, cuyos procedimientos se distribuye pormúlti-ples computadoras de una red, y que son capaces de servir a usuariosmúltiples. Se implementan como sistemas cliente / servidor, organizadosde conformidad con la interfaz de usuario [14, Jaworski-99]. También sedenominan aplicaciones RMI (Invocación Remota de Métodos).

[32, Tanenbaum-97-01] Expresa que “Un sistema distribuido es aquélal que sus usuarios ven como un ordinario sistema operativo centralizado;sin embargo, se ejecuta en diferentes e independientes CPUs. El con-cepto clave aquí es la transparencia; en otras palabras, el uso de diversosprocesadores deberá ser invisible (transparente) al usuario. Otra formade expresar esta misma idea es diciendo que el usuario verá al sistemacomo un uniprocesador virtual y no como una colección de máquinasdiferentes”.

Page 19: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Aspectos Conceptuales 7

Asimismo, [11, Coulouris Dollimire Kindberg -01] indican respectode un sistema distribuido que es un “Sistema en el cual componentes dehardware y software, localizados en computadores diferentes y en red, secomunican y coordinan sus acciones sólo por paso de mensajes”.

¿Por qué utilizar aplicaciones distribuida?. Existen esencialmente treslíneas de justificación:

1. Compartir recursos de una manera más natural, estos pueden serde variados tipos: capacidad de procesamiento, periféricos, infor-mación, accesibilidad, etc.

2. Distribuir la carga, los procesos pueden ser delegados según criterios(posición geográfica, capacidad de procesamiento, seguridad, etc.).

3. Optimizar su ejecución y distribución de resultados, es decir, lograrla ejecución de aplicaciones en ambientes más adecuados.

Se ha propuesto el desarrollo de un Sistema Experto con la

arquitectura del modelo 3.

Antes de tomar la decisión se han evaluado en forma sintética los ben-eficios que se tienen al utilizar diversas tecnologías, tales como las rela-cionadas con los Niveles OSI, Protocolo TCP/IP, Sistema Distribuido,Sistema Experto Basado en Reglas, Lenguaje Java, Programación Ori-entada a Objetos y Programación RMI.

Page 20: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 2

Protocolos de Comunicaciónde Datos

Introducción

Desde tiempos muy remotos los seres humanos han desarrollado y asimi-lado un lenguaje de comunicación, que les ha permitido entenderse, rela-cionarse, compartir conocimientos, y progresar. Del mismo modo, en unared, para establecer la comunicación entre las computadoras, se requiereun lenguaje común, el protocolo es dicho lenguaje.

Los protocolos son estándares software que se instalan en las computa-doras de una red para definir el lenguaje, las reglas, los procedimientos,y las metodología utilizadas, para que las máquinas de la red, puedanentenderse entre ellas. El uso de protocolos, permite a las computado-ras comunicarse, intercambiar información, atender errores que puedanproducirse durante el intercambio, etc.

8

Page 21: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 9

En resumen, se podría decir que los protocolos son el lenguaje común

que utilizan las computadoras para poder comunicarse dentro de una redLAN (red de área local) o WAN (red de área extensa).

Todo protocolo deberá tener muy bien estudiado tres aspectos:

• La sincronización temporal.

• La sincronización en el orden de los campos de un paquete.

• La sincronización en el significado que se dé a los mensajes de loscampos de un paquete.

Estos tres requisitos deben ser cumplidos a la perfección por los pro-tocolos para un correcto funcionamiento de la red.

A continuación se describe cada uno de ellos:

• Sincronización temporal : Hace referencia a las reglas que debe tenerdefinidas el protocolo, para que los paquetes enviados y recibidos através de la red sean cronometrados y sincronizados en el tiempo.Por ejemplo, cada paquete enviado tiene un tiempo de vida útil,y después de que dicho tiempo expira, el paquete no es tenido encuenta y carece de validez. Esa marca de tiempo que tienen lospaquetes es útil cuando una computadora destino recibe, de otra,varias versiones de un mismo paquete.

• Sincronización en el orden de los campos de un paquete: Todopaquete de datos que viaja a través de la red está subdividido endiferentes campos. Una analogía similar a ello serían los camposque tiene el registro de un archivo de datos. Cada campo cumpleuna función específica dentro del paquete de datos; por ejemplo,hay campos para indicar la dirección de destino del paquete, ladirección de origen del paquete (remitente), la sección de datos oinformación, la longitud del paquete, el código de verificación deerror o paridad, el tiempo de vida del paquete, la identificación delpaquete, el tipo de servicio para el que será usado el paquete, laversión del protocolo.

Page 22: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 10

• Sincronización en el significado de los mensajes: No sólo basta quelos campos de un paquete estén en el lugar apropiado y tengan unalongitud fija para lograr que un paquete sea correctamente inter-pretado. Además, los protocolos deben tener reglas que definanla sintaxis o el lenguaje apropiados en cada uno de los mensajesinmersos en los campos del paquete, durante la transmisión o re-cepción de los mensajes a través de la red, para así lograr unacorrecta interpretación y evitar el uso de idiomas diferentes.

Niveles o Capas del Modelo OSI

La comunicación entre las computadoras de una red requiere proced-imientos muy complejos, en los que intervienen el hardware, el softwarey los lenguajes de comunicación (también denominados protocolos).

Varias arquitecturas basadas en capas partieron del modelo OSI y apartir de éste se generaron muchas otras como TCP/IP y B-ISDN .

El modelo de referencia OSI (Open Systems Interconnection, Inter-conexión de Sistemas Abiertos) es un modelo de siete capas desarrolladopor la Organización Internacional de Normas (ISO). En la figura 2-1 dela pág. 11 se describe el modelo de capas de OSI.

Los niveles OSI se caracterizan por ser :

• Lógicos: Independientes de lo físico; independientes de las agrupa-ciones de software y hardware que existen actualmente.

• Funcionales: Cada nivel cumple una tarea específica.

• Jerárquicos: Cada nivel tiene autoridad sobre su inmediato inferiory desarrolla tareas más generales o menos especializadas que sunivel inferior.

• Ideales: Actualmente su implementación es más un modelo, unmarco de referencia, una norma, un deseo o una utopía que una re-

Page 23: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 11

Figura 2-1 Modelo OSI - Estructura.

alidad totalmente llevada a la práctica por los fabricantes de hard-ware, software y protocolos de red.

El modelo de referencia OSI tiene como función:

• Facilitar el estudio de los elementos que componen las redes y losprocesos que permiten la comunicación entre ellas.

• Mejorar la compatibilidad, estandarización y reglamentación entrelos diferente fabricantes de software y hardware de red.

• Minimizar las actualizaciones provocadas por los avances y cambiosen la tecnología de software y hardware.

Funciones de cada uno de los niveles OSI:

Cada uno de los niveles OSI posee una función particular, las que sedetallan brevemente a continuación:

• Nivel l (físico): En este nivel se definen las normas y especifica-ciones técnicas del hardware de red (tarjetas de red, Hub, cableado,

Page 24: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 12

conectores, topologías, arquitectura, etc.) y la forma de trans-misión de las señales eléctricas u ópticas (bits) de un ordenador aotro a través del cableado.

• Nivel 2 (enlace de datos): En este nivel se definen las normas yespecificaciones técnicas de los controladores (drivers) de la arqui-tectura de red usada (Ethernet, ARCnet, Token Ring, ATM, etc.)y de las especificaciones (ODI, NDIS, etc.) que permiten:

— Establecer una sesión de enlace de datos con igual nivel deotra computadora de la red.

— La conversión de los datagramas recibidos desde el nivel dered (nivel 3) en “tramas”; la trama es la estructura de datosusada en este nivel a través de la cual viaja la información.

— La detección y corrección de errores que se puedan presentar.

— El reenvío de tramas que no llegaron a destino.

• Nivel 3 (red): En este nivel se definen las normas y especificacionestécnicas de los protocolos de red instalados en las computadoras(por ejemplo, IPX de SPX/PX, o IP del TCP/IP), que permitenfragmentar los paquetes del nivel de transporte en data gramasy encaminarlos de una computadora a otra mediante ruteadores,hasta llegar a la computadora destino; cada ruteador (servidor quese encuentra en el medio, es decir, entre la computadora que envíael mensaje y la que lo recibe) debe elegir el camino correcto de lospaquetes que arriban a él, para que éstos se encaminen a través delos ruteadores que hay en las distintas sub redes y puedan llegar a lacomputadora destino, para ello, esos ruteadores deben actuar comoun agente de tránsito, dando prioridad a determinados paquetes yevitando las redes muy congestionadas (donde la pérdida de tiempoes muy grande) o los caminos poco seguros (donde el número lepérdidas de paquetes es muy alto).

• Nivel 4 (transporte): En este nivel se definen las normas y especi-ficaciones técnicas de los protocolos de transporte instalados en lascomputadoras (por ejemplo, SPX de SPX/IPX o TCP de TCP/IP),que permiten hacer agrupaciones de datos, llamadas “paquetes”.

Page 25: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 13

La ventaja de usar paquetes, en vez de, por ejemplo, enviar unarchivo completo, es que si éste llega defectuoso, habría que man-darlo todo nuevamente en vez de enviar un solo paquete, con laconsecuente pérdida de tiempo y aumento del congestionamientode tráfico. Además, si se enviara el archivo entero, los datos ocu-parían la red por un cierto tiempo, impidiendo que otras computa-doras puedan también enviar sus archivos. Como consecuencia, lared se volvería muy impredecible respecto del tiempo de transferen-cia. Además, se debe controlar el orden en que se envían o recibenlos paquetes y si los paquetes enviados llegan; de lo contrario, volvera trasmitirlos; si los paquetes enviados no llegan porque en ese mo-mento la red está muy congestionada, este nivel deberá reducir elnúmero de paquetes trasmitidos, para evitar reenvíos de paquetesque congestionan aún más la red.

• Nivel 5 (sesión): En este nivel se definen las normas y especifi-caciones técnicas que permiten a dos computadoras abrir, estable-cer y cerrar una sesión (diálogo, transmisión) entre ellas. Al abriruna sesión, ambas máquinas efectúan un reconocimiento mutuo yacuerdan detalles como la seguridad, el tamaño de los paquetes o lavelocidad de transmisión. Un vez abierta la sesión, este nivel definecuál de las dos computadoras transmite y durante cuánto tiempo.

• Nivel 6 (presentación): Aquí se definen las normas y especifica-ciones técnicas que permiten traducir, encriptar y comprimir losdatos recibidos (caracteres o gráficos) del nivel de aplicación, paraentregarlos en un lenguaje comprensible al nivel de sesión, y a lainversa. Es decir, este nivel permite procesar los datos recibidosdel nivel de sesión que vienen de otra computadora y entregarlos alnivel de aplicación en un lenguaje comprensible.

• Nivel 7 (aplicación): Su función es proporcionar servicios a losprogramas de aplicación de red (correo electrónico, transferenciade archivos, acceso a bases de datos o servicios de directorio), porejemplo, visualizar en pantalla, transferir archivos o imprimir haciaotras computadoras que se encuentren en la misma red.

Page 26: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 14

Protocolo TCP/IP

Introducción

Sobre la base del modelo de referenciaOSI se desarrollaron otros modelosde red y arquitecturas completas para las redes de comunicación. Estemodelo se desarrolló a partir de un proyecto de investigación patroci-nado por el Departamento de Defensa de los Estados Unidos denominadoARPANET .

Esta red debería permanecer funcionando en caso de que algunos delos nodos de la red o incluso sus conexiones fueran dañados por algúnmotivo. La red ARPANET empezó conectando centros de investigacióndel gobierno y luego universidades hasta convertirse en la red más popularde uso público hasta el momento: Internet.

Las computadoras de Arpanet tenían la capacidad de fragmentar ungran archivos de información en pequeños paquetes de datos, para luegoenviarlos por la red. Este envío fragmentado de información imposibil-itaba que cualquier PC se adueñara de la red durante mucho tiempo.Cada paquete de datos lanzado a la red tenía una dirección de origen (dela computadora que lo enviaba) y otra de destino (de la computadoraque lo recibía).

Los paquetes enviados por una PC a la red Arpanet podían ser en-caminados por la mejor ruta alternativa, lo que hacía que muchas vecesllegaran a su destino final desordenados y por diferentes caminos. Gra-cias a que los paquetes enviados por la red eran numerados, la máquinaque se hallaba en la dirección de destino, al recibir dichos paquetes, lospodía ordenar, agrupar y reconstruir para crear el archivo original.

Si algún paquete se extraviaba, la computadora destino pedía que se lereenviara el paquete faltante. A esa habilidad conseguida en ARPANET(poder encaminar los paquetes de datos) se la conoce como conmutaciónde paquetes. Esto cumplía los objetivos buscados por el Departamentode Defensa de los Estados Unidos dado que, si durante la guerra quedabadestruido algún enlace (fibra óptica, microonda o satélite), los paquetes

Page 27: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 15

de datos se encaminaban por otra ruta disponible de la red ARPANET.

Como fruto de las investigaciones de esa red, en 1974 nació el proto-colo de comunicaciones TCP/IP (Transfer Control Protocolo / lnternetProtocol, lo que en español significa Protocolo de Control de Transmisión/ Protocolo Internet).

TCP/IP difiere del modelo de referencia OSI en que no maneja sietecapas sino cinco (en el modelo de TCP/IP no hay capas para sesión ypresentación), según muestra la siguiente figura 2-2 de la pág. 15.

Figura 2-2 Diferencia entre Modelo OSI y TCP/IP.

Este lenguaje común que se instala en las computadoras de la red per-mite llevar a cabo la comunicación entre diferentes plataformas, sistemasoperativos, topologías y arquitecturas por el mejor camino disponible.Eso significa que, en las redes interconectadas, si existe algún camino de-teriorado o congestionado con excesivo tráfico de información, los ruteadoresTCP/IP buscan el mejor camino alternativo.

Luego del éxito y difusión que tuvo el protocolo TCP/IP, la Agenciade Investigaciones Avanzadas de Proyectos de Defensa de Estados Unidos

Page 28: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 16

(DARPA) lo puso a disposición del mundo entero en forma gratuita y sinningún tipo de restricciones, y así, llegó a ser el protocolo de comunicaciónque usan hoy las computadoras en Internet.

Funciones TCP/IP

En realidad, el protocolo TCP /IP no es un solo protocolo, sino dos:TCP pertenece al nivel OSI de transporte; IP, al nivel de red.

Funciones de TCP

Las funciones son las siguientes:

• Controlar y asegurar el orden en que se envían y reciben los paque-tes de datos durante una transmisión a través de la red, entre dosmáquinas remotas.

• Asegurar que los paquetes enviados y recibidos lleguen a destino;en caso contrario, arbitrar los medios para que sean reenviados.

• Asegurar que los paquetes enviados y recibidos lleguen en buenestado; en caso contrario, arbitrar los medios para que sean reen-viados.

Funciones de IP

Las funciones son las siguientes:

• Elegir el camino correcto (rutear) de los paquetes de datos que vi-ajan mediante la red pasando a través de los diferentes ruteadorespara llegar a la computadora destino. Los ruteadores son dispos-itivos o computadoras que vinculan las redes entre sí. Su funciónes encaminar los paquetes de datos recibidos para que continúen eltrayecto hacia su destino final. Tanto las PCs que envían o recibendatos a través de la red como los ruteadores que encaminan dichospaquetes, hacen uso del protocolo IP para lograr una comunicaciónestandarizada, y así, entenderse y cumplir sus objetivos.

Page 29: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 17

Definición del Nivel IP

El protocolo IP surgió para interconectar redes. El principal trabajo deIP es buscar una ruta para que los datos lleguen al destino. Con respectoal modelo OSI (7 capas) podemos ubicar a este protocolo en el tercer nivel(Capa de Red).

Una de las principales características de IP es que no esta orientadoa conexión, esto quiere decir que

para la transmisión de datos entre dos host no se construye ningúnvínculo que los conecte antes del envío de los mismos.

IP utiliza como unidad de transmisión el datagrama.

Cada host se individualiza mediante una dirección de 32 bits, divi-dida en 4 octetos. En ella se especifica un identificador de red y unidentificador de host.

Para administrar estas direcciones se definieron diferentes clases:

• Clase A: 8 bits para red, 24 bits para hosts.

• Clase B: 16 bits para red, 16 bits para hosts.

• Clase C: 24 bits para red, 8 bits para hosts.

• Clase D y E: reservadas (D para multicasting).

Las direcciones origen y destino a nivel IP nunca cambian en lavida de una trama.

Para permitir a los dispositivos intermedios transmitir datagramas,éste cuenta con un encabezado en el que se especifican todos los parámet-ros de control necesarios para que el datagrama llegue a destino (direcciónorigen, dirección destino, tipo de protocolo, etc.).

Además del encabezado, el datagrama contiene la porción de datosque se está queriendo transmitir.

El encabezado tiene una parte fija de 20 octetos y una parte opcionalde longitud variable.

Page 30: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 18

Estructura del Datagrama

La estructura se muestra en la figura 2-3 de la pág. 18.

Figura 2-3 Estructura del Datagrama.

Versión: Indica a qué versión del protocolo pertenece cada uno de losdatagramas. Mediante la inclusión de la versión en cada datagrama, nose excluye la posibilidad de modificar los protocolos mientras la red se

encuentra en operación.

H Len: Especifica la longitud que tiene el encabezado en palabras de32 bits, es necesario puesto que la longitud del encabezado es variable.

Tipo Servicio: Indica el tipo de servicio, es posible tener varias com-binaciones con respecto a la seguridad y a la velocidad.

Longitud Total del Datagrama: Incluye todo el datagrama, tanto elencabezado como los datos, está expresado en bytes.

Identificador del Datagrama: Se necesita para permitir al destinodeterminar a qué datagrama pertenece el fragmento recién llegado. To-dos los fragmentos de un datagrama contienen el mismo identificador (elidentificador se asigna aleatoriamente).

Page 31: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 19

Bit D: Si este campo está seteado con 1 indica que el datagrama nose puede fragmentar.

Bit M : Si este bit se encuentra en 1 significa que existen más frag-mentos, todos los fragmentos excepto el último deberán tener este bitseteado en 1.

Offset: Es el desplazamiento del fragmento dentro del datagramaoriginal. Se utiliza para regenerar el datagrama original.

TTL (Time To Live): Es un contador que se utiliza para limitar eltiempo de vida de los paquetes. Cada vez que el datagrama pasa porun router el campo TTL se decrementa en 1, cuando llega a cero eldatagrama se descarta.

Protocolo: Indica el protocolo de nivel superior que el datagrama estátransportando.

Checksum: Es el campo que se utiliza para el reconocimiento de er-rores en IP, el alcance es sobre el encabezado. Divide al encabezadoen palabras de 16 bits, las suma en complemento a 1 y al resultado loscomplementa a 1.

Direcciones Origen y Destino: Especifican las direcciones IP del hostorigen y del host destino respectivamente.

Opciones: Este campo se utiliza con fines de seguridad, informe deerrores, depuración, así como para otro tipo de información. Permitetambién incluir a versiones de protocolos subsiguientes información queno está presente en el diseño original.

Ruteo

Como se mencionó anteriormente, IP es responsable de llevar un data-grama al destino indicado en el encabezado, pero poco se dijo de cómose hace. La tarea de encontrar cómo llevar un datagrama al destino es

Page 32: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 20

conocida como routing.

Es necesario conocer el modelo en que IP está basado. IP asume quecada host esta conectado a una red local, también se asume que el hostpuede enviar el datagrama dentro de la misma red. Pero el problemasurge cuando se quiere enviar un datagrama a un host que se encuentraen una red diferente.

Este problema es manejado por los gateways (dispositivos interme-dios). Un gateway es un sistema que conecta a una red con una o másredes, generalmente son computadoras normales con más de una inter-face de red. En muchos casos, gateways de propósitos especiales proveenmejor performance y confiabilidad que los gateways de propósitos gen-erales.

El ruteo en IP se basa en el número de red de la dirección destino.Cada computadora tiene una tabla de números de red. Para cada númerode red se tiene un gateway que es el que se intentará alcanzar si se deseaenviar un datagrama a la red asociada.

Hay que notar que el gateway no tiene que estar conectado directa-mente a la red, pero éste debe ser teóricamente el mejor ubicado paraacceder a la red.

Cuando una computadora desea enviar un datagrama, primero chequeasi la dirección destino está en su red local, si esto ocurre el datagramapuede enviarse directamente, de otra manera el sistema espera encontraruna entrada en la tabla para la dirección destino y utiliza ese gatewaypara enviar el datagrama.

Las tablas pueden volverse muy grandes por lo cual existen técnicaspara reducir el tamaño de las mismas. Una de estas técnicas consiste endefinir un “default gateway” que es la única salida hacia fuera de la red.Este gateway debe conectar a la red local con las demás redes. En estecaso no necesitaremos tener una entrada por cada red en el mundo, sinoque simplemente tenemos un gateway como default, y si no encontramosuna ruta específica para un datagrama, éste es enviado al gateway default.

Un gateway por default se puede definir aunque existan varios gate-ways en la red.

Page 33: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 21

Existe la posibilidad de que un gateway mande un mensaje especifi-cando que él no es la mejor opción e informando cual sí lo es.

La mayor parte de las interfaces de red son diseñadas para usar estetipo mensajes para agregar o modificar entradas en la tabla.

Se recomienda que los host en forma individual no traten de buscar elcamino hacia el destino final por ellos mismos, sino que dejen esta tareaa los gateways.

Para que los gateways puedan armar sus tablas de ruteo se necesitanprotocolos de ruteo.

Detalles de Direccionamiento: Sub-redes y Broadcasting

Algunas organizaciones creen conveniente dividir su número de red ensubredes, esto se realiza utilizando algunos de los bits de la dirección IPreservados para host. Para determinar a que subred pertenece una direc-ción se utiliza una máscara (se efectúa un AND lógico entre la direccióny la máscara).

Supongamos que se cuenta con una red R1 a la que le fue asignadauna dirección de Clase B 128.6; y se desea usar el tercer octeto de ladirección IP para indicar cuáles host son Ethernet dentro de la red.

Esta división no tiene sentido fuera de R1, una computadora de otrared enviará los datagramas direccionados a 128.6 de la misma manera.De esta manera las computadoras fuera de R1 no tendrán diferentes rutaspara 128.6.4 o 128.6.5. Pero dentro de la red R1, a las direcciones 128.6.4y 128.6.5 se las ve como redes separadas. En efecto los gateways dentrode la Red R1 tienen entradas separadas para cada subred, mientras quelos gateways que se encuentran afuera de R1 cuentan con una entradapara 128.6.

Page 34: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 22

Dentro de las direcciones IP los números 0 y 255 tienen un significadoespecial, o son reservado para máquinas que no conocen su dirección . Enciertas circunstancias es usado por máquinas que no conocen el númerode red en la que se encuentra, aún conociendo su propio número de host,por ejemplo 0.0.0.23 es un máquina que conoce su número de host perodesconoce el número de red a la cual pertenece.

El número 255 es usado para “broadcast”. Un mensaje de broadcastes aquel que todos los host pueden leer. Este es usado en algunas situa-ciones donde se desconoce la dirección del host con el que se desea unacomunicación. Algunas veces no se conoce la dirección del “name server”más cercano, en este caso se debe enviar un Request como broadcast.

Existen casos en donde un host está interesado en enviar la mismainformación a varios host. Es más simple entonces, enviar un simplebroadcast a las máquinas en cuestión que enviar un datagrama individ-ualmente a cada host. Para enviar este tipo de broadcast se debe usar unadirección que está construida usando el número de red seguido de unos enla parte de la dirección que corresponda al número de host (por ejemplosi la máquina se encuentra sobre la red 128.6.4 deberá usar 128.6.5.255como broadcast).

La implementación de broadcast depende del medio físico, en muchoscasos no es posible usarlo, sin embargo sí es posible sobre Ethernet.

Debido a que 0 y 255 son usados para direcciones desconocidas yde broadcast respectivamente, un host nunca debe tener asignado comodirección ni la 0 y ni la 255.

Las direcciones nunca deben comenzar con 0 o 127.

Page 35: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 23

Fragmentación y Reensamblado delDatagrama

TCP/IP está diseñado para usarse para diferentes clases de redes. De-safortunadamente los diseñadores de redes no se ponen de acuerdo acercadel tamaño optimo del paquete a ser enviado. Ethernet puede usar pa-quetes de 1500 octetos de longitud, mientras que los paquetes de Arpanettienen un máximo de alrededor de 1000 octetos. Hay redes de gran ve-locidad que pueden usar paquetes de mayor longitud. En principio sepuede pensar que IP utiliza el paquete más pequeño, pero esto causaserios problemas de performance; cuando se transfiere archivos grandes,los grandes paquetes son más eficientes que los chicos. Por lo tanto loque es deseable es usar el tamaño más largo posible.

Se supone que se cuenta con dos host en diferentes redes Ethernet(capaces de transmitir paquetes de 1500 octetos) conectadas a través deuna red que las vincula pero que transmite paquetes de 200 octetos. Lamáquina origen transmite un datagrama de 1500 octetos. Cuando éstepaquete llega al link de 200 octetos debe ser fragmentado a este númeropara poder llegar a la red destino y ser reensamblado en el host destino.A este proceso se lo llama fragmentación y reensamblado.

ARP: Address Resolution Protocol

El ARP es un protocolo para resolver el mapeo de direcciones IP a di-recciones de nivel 2. Trabaja en forma paralela a IP. Se describirá elfuncionamiento de este protocolo mediante un ejemplo:

Se supone que se tiene un Host 128.6.4.194 (A) que se quiere conectarcon el Host 128.6.4.7 (B). Verificamos primero que B se encuentre sobrela misma red, entonces se examina la tabla de ARP local para verificarque existe la dirección Ethernet asociada a la dirección IP en cuestión,si es así se envía el datagrama.

Page 36: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 24

Ahora se supone que el host no encuentra la dirección Ethernet asoci-ada en la tabla de ARP local, entonces se utiliza el protocolo ARP paraenviar un Request. Todos los Host escuchan el ARP Request. Cuandoun host interpreta que el ARP Request es para él, responde. Esta re-spuesta se hace mediante un ARP Reply informando al que originó elrequest la dirección Ethernet del que responde. El host origen salvarála información en la tabla de ARP local para enviar futuros paquetesdirectamente.

La mayoría de los host tratan a las tablas de ARP como una caché ylimpian periódicamente las entradas que no son usadas.

Se debe notar que la forma de enviar en ARP Request es por mediode un paquete de “broadcast”. Los ARP request no se pueden enviardirectamente a un Host determinado. Muchos host utilizan los ARPRequest que le arriban para actualizar su propia tabla ARP.

Sistema de Dominios

Generalmente, el software de red utiliza direcciones IP de 32 bits paraenviar datagramas, sin embargo los usuarios prefieren utilizar nombresen lugar de números. De esta manera se podría contar con una basede datos que permita asociar nombres a direcciones IP, esto implicaríatener una tabla con las direcciones-nombres del resto de los Host. Estasolución es simple si contamos con una red pequeña, pero se vuelve pocopráctica para redes de gran tamaño.

En el caso de redes grandes en lugar de tablas se tiene un conjuntode servidores de nombres interconectados.

Los servidores de nombres forman un árbol que se corresponde conuna estructura institucional. Estas instituciones conforman el sistemade dominios y delegan la autoridad sobre los nombres a institucionesjerárquicamente inferiores en el árbol del sistema de dominios.

Un ejemplo de un nombre es AYELEN.INFO.UNLP.EDU. Este nom-

Page 37: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 25

bre representa a una computadora del Departamento de Informática.Para saber dónde se encuentra EDU, se debe consultar a un servidorraíz. EDU mantiene a las instituciones educacionales. El servidor raízcuenta con varios servidores para EDU, por lo tanto se debe consultar aEDU acerca del servidor para UNLP y así sucesivamente hasta completarla dirección. Cada uno de estos niveles es conocido como “dominio”.

Afortunadamente, generalmente no es necesario realizar este proced-imiento. Se debe notar que el servidor de nombres raíz es el servidorde nombres del nivel más alto de los dominios tal como EDU. De estamanera un simple query sobre el server raíz llevará a UNLP.

Además el software recuerda las consultas anteriores, esto permiterecordar dónde buscar los servidores para un nombre dado. Cada una deéstas piezas de información tiene un tiempo de vida asociado (del ordende días), luego de este tiempo la información expira y debe ser obtenidanuevamente.

Cada nombre de dominio es un nodo en una base de datos. El nodopuede tener registros que especifican un número de propiedades diferentes(por ejemplo: direcciones IP, tipo de computadora y una lista de serviciosprovistos para una computadora). Un programa puede preguntar por unapieza específica de información, o por toda la información acerca de unnodo dado. También es posible definir un alias para un nodo de la basede datos.

El sistema de dominios también puede usarse para almacenar infor-mación acerca de los usuarios, listas de mail y otros objetos.

Existe un standard que define la operación sobre las base de datos,tales como protocolos usados para realizar consultas sobre ellas. Cadared debe ser capaz de realizar tales consultas.

Page 38: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 26

Protocolos que Trabajan Junto conTCP/lP

El protocolo TCP/IP trabaja en el nivel OSI de transporte y red. Pero enlos niveles de aplicación, presentación y sesión, trabajan otros protocolosque colaboran para desempeñar determinadas funciones.

Protocolos Usados en el Nivel OSI de Aplicación,

Presentación y Sesión

HTTP (protocolo de transferencia de hipertexto): Desde una aplicaciónllamada “navegador”, permite a una computadora cliente leer y ejecu-tar páginas web (archivos HTML) de un servidor web que se encuentradentro de la Intranet o en Internet. Estas páginas pueden incluir texto,imágenes, sonido, video y vínculos a otros archivos HTML, a los que sepuede acceder con un simple clic del mouse.

Windows permite instalar un servidor web, mediante Internet Infor-mation Server (es un servidor web y FTP). Puede ser instalado en elsistema operativoWindows NT 4.0, Windows 2000 o Windows XP (Pro-fesional).

FTP (protocolo de transferencia de archivos): Permite a una com-putadora cliente transferir archivos (subir o bajar) desde un servidorFTP situado dentro de la Intranet o en Internet. En Windows NT 4.0,2000 Y XP (Profesional), se puede crear un servidor FTP mediante laaplicación Internet Información Server (IIS).

TELNET : Permite que una computadora tenga acceso remoto sobreotra, e incluso, que ejecute sus programas a distancia a través de Internet.

SMTP (Protocolo Simple de Transferencia de Correo): Permite queuna computadora con TCP/IP pueda enviar a través de Internet correoelectrónico (e-mail) a un servidor SMTP, proporcionado generalmentepor el proveedor de Internet, que será el encargado de reenviar los men-

Page 39: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 27

sajes recibidos para que lleguen a destino.

POP3 (Protocolo de Oficina de Correo versión 3): Permite que unacomputadora con TCP/IP pueda recibir correo electrónico desde un servi-dor POP3, proporcionado por el de Internet. En Internet encontraremosmuchos servicios que nos ofrecen la posibilidad de tener una cuenta decorreo de tipo POP3. Esto significa, justamente, la posibilidad de admin-istrar una aplicación denominada “cliente de correo electrónico”, comopuede ser Outlook Express, Eudora entre otros programas.

Métodos de Comunicación

Los protocolos de transporte se utilizan para enviar información de unpuerto a otro consiguiendo así que haya comunicación entre los programasde aplicación. Utilizan un método de comunicación orientada a conexióno bien un método sin conexión.

TCP es un protocolo orientado a conexión y UDP es un protocolode transporte sin conexión.

El protocolo TCP orientado a conexión establece un vínculo de comu-nicación entre una dirección del puerto fuente y una dirección del puertodestino. Los puertos se conectan entre sí a través de este vínculo hastaque la conexión finaliza y el vínculo se rompe. Un ejemplo de protocoloorientado a conexión es una conversación telefónica. Esta se establece,la comunicación tiene lugar y la conexión finaliza.

La fiabilidad de la comunicación que se establece entre los progra-mas fuente y destino se asegura a través de mecanismos de detección ycorrección de errores que se implementan en el TCP.

TCP implementa la conexión como un flujo de bytes desde la fuentehasta el destino. Esta característica permite el uso de clases de E/S deflujo que ofrece Java.io.

El protocolo sin conexión UDP difiere del protocolo orientado a conex-

Page 40: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Protocolos de Comunicación de Datos 28

ión en que no establece un vínculo mientras dura la conexión. Un ejemplode protocolo sin conexión es el correo postal. Para enviar algo por correo,simplemente se escribe la dirección de destino (y opcionalmente un re-mitente) en el sobre y se echa al buzón.

Cuando se usa UDP, un programa de aplicación escribe el puertode destino y la dirección IP en un datagrama y envía este último a sudestino. UDP es menos de fiar que TCP debido a que en el protocolono hay seguridad de entrega o mecanismos de detección y corrección deerrores.

Los protocolos de aplicación como son FTP, SMTP y HTTP utilizanTCP para ofrecer una comunicación fiable y basada en un flujo entre losprogramas clientes y servidor. Otros protocolos utilizan UDP, cuando lavelocidad de entrega es más importante que la fiabilidad.

Page 41: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 3

Sistema Distribuidos

Introducción

La forma más elemental de interpretar un sistema distribuido es la deun sistema computacional compuesto por diferentes procesadores inter-conectados. Normalmente, esta interconexión estará soportada por unared abierta, basada en un conjunto de protocolos estándar que permitala colaboración entre aplicaciones, escalabilidad y portabilidad.

Esta interpretación no es, sin embargo, completa; los componentesde una aplicación distribuida pueden residir en la misma máquina o endistintos nodos de la red y, por lo tanto, al hablar de las interconexionesno se trata tanto de que se produzcan a través de enlaces hardware, sinode comunicaciones entre procesos.

Las siguientes secciones muestran los principales conceptos: enfoquesal diseño de aplicaciones distribuidas, aplicación distribuida en Internet,sockets, RPC - llamadas a procedimientos remotos, diferentes enfoques

29

Page 42: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 30

para la construcción de una aplicación distribuida, el modelo de objetodistribuido de Java y seguridad en una aplicación distribuida.

Enfoques al Diseño de AplicacionesDistribuidas

Una aplicación distribuida es una aplicación cuyo procesamiento se dis-tribuye por múltiples computadoras de una red.

Las aplicaciones distribuidas son capaces de servir a la vez a usuariosmúltiples y, dependiendo de su diseño, hacer uso más adecuado de losrecursos de procesamiento.

Las aplicaciones distribuidas se implementan típicamente como sis-temas cliente / servidor , organizados de conformidad con la interfaz deusuario, el procesamiento de la información y las capas de procesamientode la información como se ilustra en la figura 3-1 de la pág. 30.

Figura 3-1 La organización de sistema distribuido.

La capa de interfaz de usuario viene implementada por una aplicacióncliente. Los programas de correo electrónico y navegadores web consti-tuyen ejemplos del componente de interfaz de usuario de las aplicacionesdistribuidas.

La capa de procesamiento de la información la implementa la apli-cación cliente, una aplicación servidor o una aplicación con soporte deservidor. Por ejemplo, una aplicación puede utilizar un cliente de bases

Page 43: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 31

de datos para convertir las selecciones del usuario en instrucciones SQL;un servidor con acceso, a base de datos, puede ser utilizado para admitirla comunicación entre el cliente y un servidor de base de datos, y el servi-dor de base de datos puede usar software de información para procesarla información solicitada por un cliente.

La capa de almacenamiento de la información la implementan servi-dores de bases de datos, servidores Web, servidores FTP, servidores dearchivo y cualquier otro servidor cuya finalidad sea la de almacenar yrecuperar información.

Aplicaciones Distribuidas en Inter-net

La popularidad de la Internet y de la Web ha supuesto la congestión dela red. Las computadoras son accesibles directamente entre sí a travésdel protocolo TCP/IP.

Esta conectividad mundial ha hecho crecer las aplicaciones distribuidasque se ejecutan en la estructura cliente / servidor de Internet. Estas apli-caciones de primera generación admiten la comunicación cliente / servi-dor en base a protocolos específicos de la capa de aplicación como sonHTTP, FTP Y SQL*NET (ver figura 3-2 de la pág. 32).

Normalmente un programa cliente se ejecuta en múltiples computa-doras Host. El cliente utiliza TCP para conectarse con un servidor queescucha en un puerto conocido. El cliente realiza una o más solicitudes alservidor. Este servidor procesa las solicitudes del cliente, posiblementeutilizando programas de pasarela o servidores de fondo y reenvía la re-spuesta al cliente.

Por ejemplo, una aplicación financiera que se esté ejecutando en laPC puede invocar métodos de objetos que se estén ejecutando en otraPC que pertenezca a la Intranet de la empresa. Puede ser que estos

Page 44: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 32

Servidor De aplicación

cliente

ServidorBlack-end

ServidorBlack-end

cliente

cliente

Figura 3-2 Estructura del servidor.

objetos busquen en las bases de datos de empresas la información quela aplicación financiera está utilizando, que procesen esta información deacuerdo con las reglas comerciales de la empresa y que la faciliten a suaplicación financiera.

Los resultados que haya calculado la aplicación financiera pueden serautomáticamente reenviados a un objeto de distribución de información,el cual pondrá los resultados a disposición de otros empleados de la em-presa, además de a los agentes y clientes seleccionados. La figura 3-3 dela pág. 33 ilustra este ejemplo de aplicación distribuida.

Sockets

La comunicación entre cliente / servidor se realiza a bajo nivel sobre undeterminado protocolo de red, siendo TCP/IP el más empleado. Cadadispositivo en red recibe una dirección IP única (al menos en el ámbito

Page 45: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 33

Aplicación Financiera

Objeto deBúsqueda

Objeto deDistribución de Información

Objetos de Normas Comerciales

Figura 3-3 Ejemplo de aplicación distribuida.

de esa red) que la identifica para sus comunicaciones. Un punto finalde comunicaciones queda definido por la dirección IP y un número depuerto, es decir, un mismo dispositivo puede tener múltiples líneas decomunicación abiertas, al menos una por cada puerto empleado.

La popularidad actual de TCP/IP se debe a Internet, que lo empleacomo protocolo de red, y ha sido el protocolo empleado en máquinasUnix desde su inicio.

A principios de los ’80 la distribución UNIX de Berkeley introdujo elmodelo de sockets como un mecanismo de comunicación entre procesos[16, Leffler McKusick Karels-89], que se ha convertido en el estándarde facto para programación en red sobre TCP/IP. Sin embargo, su API(interfaz de programación de aplicaciones) puede en principio usarse con

Page 46: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 34

otros protocolos de red.

Un socket [24, Stevens-90] es un punto final de comunicación, iden-tificado en TCP/IP mediante la dirección IP y un puerto. Existen dostipos de sockets: orientados a conexión (TCP) y sin conexión, tambiénllamados datagramas (UDP).

TCP crea un circuito virtual entre los procesos que comunica, por loque los sockets sobre TCP se consideran fiables. Los datagramas no sonfiables ni se asegura el orden o no duplicación de los datos enviados, peropermiten el envío de mensajes broadcast, a más de un destino final.

Un servidor que emplea sockets debe asociarse a una determinadadirección, donde espera continuamente la llegada de datos.

Un cliente debe conocer cuál es esa dirección específica para enviarledatos.

La información que se transmite no tiene ningún significado para lossockets, que actúan únicamente como puntos de entrada y salida paralas comunicaciones. Es la aplicación la que debe interpretar esos datos yproducir, posiblemente, una respuesta (ver figura 3-4 de la pág. 34).

Figura 3-4 Utilización de sockets.

Page 47: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 35

RPC - Llamadas a ProcedimientosRemotos

Se hamencionado que las aplicaciones distribuidas se implementan típica-mente como sistemas cliente / servidor; seguidamente se verá un ejemplosencillo de autentificación.

Un cliente suministra un nombre (login) y una clave (password), yel servicio comprueba su validez. Empleando sockets, el cliente debeconectarse al servidor y enviar en una cadena de bytes la informaciónnecesaria, el nombre y la clave, que se supone son cadenas de caracteres.

No existe ningún requisito, sobre cómo enviar esa información, y elservidor debe especificar qué formato espera. Por ejemplo, un primerbyte que indique la longitud del nombre, seguido por tantos bytes comocaracteres tengan el nombre, y luego otro byte que indique la longitudde la clave y tantos bytes como caracteres tenga esa clave.

Es responsabilidad del cliente, aplicar correctamente el formato es-perado. Y este formato debe especificarse con mayor detalle: qué ordende bytes se espera, qué codificación de caracteres, ASCII o EBCDIC, etc.Además, la aplicación debe gestionar los errores de comunicaciones.

Desde el punto de vista del servidor [22, Smith Ungar-95], si precisasoportar varios clientes simultáneamente, es también la aplicación la quedebe incluir toda la lógica de concurrencia y de gestión de múltiplesclientes.

Una librería puede soportar el formateo/deformateo de determinadostipos de datos, definiendo cómo transferir cadenas de caracteres, tipos en-teros, etc. Si tanto el servidor como el cliente emplean la misma librería,parte de los anteriores problemas se solucionan. suministra este soportede librería, a la vez que realiza una abstracción de llamadas a proced-imientos. Siguiendo el ejemplo anterior, el servidor puede especificarsecomo una función definida de la siguiente manera:

int validate (in char* login, in char *password).

Page 48: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 36

Al emplear un compilador RPC sobre esta definición, se generan dosporciones de código. Una se llama stub del cliente, y lo que hace esproporcionar un procedimiento con la misma definición dada.

El cliente invoca este procedimiento (ver la figura 3-5 de la pág. 36),y éste automáticamente prepara la cadena de bytes a enviar al servidor,formateando los datos y enviándolos a través del socket.

La segunda porción de código se denomina stub del servidor, verificacontinuamente el socket donde recibe la información, que deformatea yenvía al servidor. Cuando se elabora la respuesta, ésta se envía por elcamino inverso.

De esta forma, se accede al servidor como si fuera local, al que se in-voca mediante procedimientos, tal como si fuera una librería del sistema.

Figura 3-5 Filosofía del RPC.

Page 49: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 37

Diferentes Enfoques Para la Contruc-ción de Aplicaciones Distribuida

Entorno de Computación Distribuida

El Entorno de Computación Distribuida (DCE) constituye otro enfoquepara la construcción de aplicaciones distribuidas.

El DCE fue desarrollado por la Open Software Foundation, a la quese llama ahora Open Group. DCE integra una serie de servicios y tec-nologías fundamentales para construir aplicaciones distribuidas.

Los sistemas distribuidos están organizados en celdas, que son gruposde recursos, servicios y usuarios de procesamiento que admiten funcionescomunes y que comparten un conjunto común de servicios del DCE. Porejemplo, se pueden organizar las celdas de acuerdo con las funcionesde la empresa. En este caso, se puede tener celdas separadas para losdepartamentos financiero, de producción y de marketing.

Los servicios y tecnologías que se usan, en una celda del DCE constande:

• Servicios de Directorio: Almacenan los nombres de los recursosque están disponibles dentro del entorno distribuido. El Serviciode Directorio de Celda (CDS) admite los nombres en una celda,mientras que el Servicio de Directorio Global (GDS) admite losnombres en todas las celdas de una empresa. GDS implementa elservicio de directorio X.500.

• Servicio de Archivos Distribuidos (DFS): Un servicio opcional delOCE que proporciona un sistema de archivos perfecto que operaen todas las computadoras que hay en una celda.

• Servicio de Horas Distribuidas (DTS): Se usa para sincronizar lahora en todas las computadoras que hay en una celda.

• Servicio de Seguridad: Se utiliza para autenticar los usuarios de

Page 50: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 38

celda y controlar el acceso a los recursos que están disponibles den-tro de la misma.

• Llamadas de Procedimientos Remotos (RPC): Reemplazan a lossockets TCP como mecanismo básico para la comunicación cliente/ servidor. Las RPC se implementan como capa que se construyepor encima de la capa de transporte TCP/IP y gestiona de formatransparente las cuestiones relativas al manejo de la conexión y delos protocolos.

• Hilos del OCE : Parecidos a los hilos de Java. Se trata de procesosligeros que simplifican el diseño de aplicaciones cliente / servidor.

• El DCE se dice que es de soporte intermedio, ya que no se tratade un producto autónomo, sino de un paquete de servicios que seintegra en un sistema operativo o entorno operativo. Estos servi-cios se usan como alternativa a la construcción de las aplicacionesdistribuidas.

El Modelo de Objeto Componente Distribuido

ElModelo de Objeto Componente Distribuido, oDCOM, es el planteamientode Microsoft al desarrollo de sistemas distribuidos.

El DCOM se basa en el COM, que constituye el núcleo de la estrate-gia de desarrollo orientado a objetos de Microsoft. Dado que el DCOMes esencialmente una extensión del sistema distribuido del COM, la com-prensión de este último es fundamental para entender el primero.

Comprensión del COM

COM es el fruto de la tecnología Incrustación y Vinculación de Objetos,de Microsoft.

El COM era una solución a los problemas antiguos de OLE (se uti-lizaba en versiones antiguas de Windows para admitir documentos com-puestos, o documentos que son el producto de aplicaciones múltiples.)

Page 51: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 39

Los objetos COM constituyen instancias de las clases y se organizanen interfaces. Las interfaces son simples colecciones de métodos.

A los objetos COM sólo se puede acceder a través de sus métodos,y cada objeto COM se implementa dentro de un servidor. Un servidorse puede implementar como biblioteca de vínculos dinámicos, procesoindependiente o servicio operativo.

El COM evita los detalles de la implementación y presenta una in-terfaz única y uniforme para todos los objetos, independientemente decómo esté implementado cada objeto.

La biblioteca del COM es clave para implementar esta interfaz comúnentre los objetos.

Está presente en todo sistema que admita el COM y proporcionaun directorio de todas las clases que estén disponibles en ese sistema.La biblioteca del COM mantiene información sobre las clases que estándisponibles en el registro del sistema.

Cuando un objeto COM accede a otro, en primer lugar invoca a lasfunciones de la biblioteca del COM. Estas funciones se pueden utilizarpara crear un objeto COM a partir de su clase u obtener un indicador asus interfaces.

El tiempo de ejecución del COM es un proceso que da soporte ala biblioteca del COM para implementar sus funciones. Lo admite elAdministrador de Control de Servicios.

El objeto invocante utiliza señalizadores de interfaz para invocar losmétodos del objeto al que accede a través de la biblioteca del COM.Los señalizadores que usan los objetos COM pueden ser empleados porobjetos que están escritos en cualquier lenguaje de programación.

El lenguaje de definición de interfaz que se usa para definir las in-terfaces y métodos del COM procede del DCE. El COM define tambiénun estándar de interfaz binaria. Este estándar ayuda a promocionar laindependencia del lenguaje.

Nota: El COM difiere de otros sistemas orientados a Objetos en susoporte a la herencia. Las clases del COM no heredan la implementación

Page 52: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 40

de métodos a partir de sus superclases. Solo heredan la definici6n de esasinterfaces. Esto implica que todos los métodos deben ser implementadosde nuevo cada vez que se declare una subclase.

El COM ofrece una solución a este problema, llamada agregación.Utilizando la agregación, una clase puede heredar una interfaz completacopiando la interfaz de su superclase. No obstante,1a clase no puedeomitir los métodos individuales de la interfaz de herencia.

Del COM al DCOM

El DCOM es esencialmente el COM distribuido sobre computadoras múlti-ples. El DCOM permite a los objetos COM que se ejecutan en unacomputadora crear objetos COM en otras computadoras y acceder a susmétodos. La ubicación del objeto remoto es transparente.

Utilizando el DCOM se accede a los objetos remotos de una maneraexactamente igual que a los objetos locales.

Con el fin de que un objeto que está en un sistema local acceda a losmétodos de un objeto que está en un sistema remoto, el sistema localdebe registrar la clase del objeto remoto en su registro local.

El objeto local inconsciente de la ubicación del objeto al que estáaccediendo, crea el objeto remoto y/u obtiene un indicador a sus métodosmediante la invocación de las funciones de su biblioteca del COM local.La biblioteca del COM procesa las llamadas de función por medio de sutiempo de ejecución del COM local.

El tiempo de ejecución del COM comprueba la clase del objeto al quese está accediendo en el registro del sistema.

Si el registro indica que la clase se define en el registro de una máquinaremota, el tiempo de ejecución del COM local contactará con el tiempode ejecución del COM de la máquina remota y le pedirá que cree el objetoremoto o que se invoquen sus métodos.

El tiempo de ejecución del COM remoto llevará a cabo la petición siésta la aceptan las normas de seguridad del sistema.

Page 53: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 41

Los procesos del tiempo de ejecución del COM de máquinas separadasse comunican entre sí por medio de un mecanismo de la RPC que sedenomina RPC de objetos, u ORPC.

La ORPC se basa en la RPC de Microsoft, que es, en esencia, la RPCdel DCE.

La ORPC puede ser configurada para utilizar una serie de protocolosde transporte, pero funciona mejor con el UDP. Dado que la mayoría delos corta fuegos bloquean al UDP, es necesario utilizar el TCP junto a laORPC para construir aplicaciones distribuidas que funcionen en Internet.

Estas normas, por lo general, son las predeterminadas de las nor-mas de seguridad de Windows NT, pero pueden adaptarse o restringirseen una aplicación determinada. La figura 3-6 de la pág. 54 resume elfuncionamiento del DCOM.

Modo de Funcionamiento del DCOM

Si bien el DCOM es un producto de Microsoft, constituye un estándarabierto que se ha transportado a otras plataformas, como UNIX.

Microsoft trata de que el DCOM sea una solución de plataformacruzada para el desarrollo de aplicaciones distribuidas. Así, los usuariosde Windows la han recibido muy bien, pero el éxito en las aplicacionesde plataformas cruzadas ha sido más bien mediocre.

Una de las características a destacar del DCOM es el soporte que daa las aplicaciones.

La seguridad del DCOM integra y amplía el modelo de seguridad deWindows NT. Permite que se tomen decisiones de control de acceso conun alto nivel de granularidad. Por ejemplo, resulta posible especificar sia un objeto se le permite crear o invocar a los métodos de otro.

El DCOM también ofrece una seguridad en la comunicación flexi-ble y fuerte. Se pueden usar una serie de mecanismos de encriptaciónpara proteger la información en la forma en que ésta se transmite de unobjeto COM a otro. Windows NT 5.0 amplía estas posibilidades de en-

Page 54: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 42

criptación a la autenticación basada en Kerberos, a la encriptación y alcontrol de acceso (Kerberos es un potente mecanismo de protección quefue desarrollado por el Instituto de Tecnología de Massachusetts).

Arquitectura de Intermediación de So-licitud de Objetos Comunes (CORBA)

La Arquitectura de Intermediación de Solicitud de Objetos Comunes oCORBA ofrece otra aproximación, a la construcción de sistemas dis-tribuidos. CORBA, al igual que el DCOM pero al contrario que el DCE,está orientada a objetos.

Permite que los objetos de una computadora invoquen los métodosde objetos de otras computadoras. CORBA, al contrario que el DCOM,es una solución abierta y no está vinculada a ningún sistema operativodeterminado.

Debido a esto, CORBA constituye una buena opción a la construcciónde aplicaciones orientadas a objetos distribuidos.

CORBA utiliza los objetos que están accesibles a través de los Inter-mediarios de Solicitud de Objetos (ORB). Estos ORB se emplean paraconectar objetos entre sí por una red. Un objeto de una computadora(objeto cliente) invoca a los métodos de otro objeto de otra computadora(objeto servidor) a través de un ORB.

La interfaz del cliente al ORB es un fragmento adaptador que estáescrito en Lenguaje de Definición de Interfaz (IDL). El fragmento adap-tador es un proxy local de un objeto remoto. El IDL proporciona unmecanismo de programación independiente del lenguaje para describirlos métodos de un objeto.

La interfaz del ORB con el servidor se hace a través de un esqueletodel IDL. Este esqueleto dota al ORB de un mecanismo independiente dellenguaje que sirve para acceder al objeto remoto.

Page 55: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 43

La invocación remota de métodos de CORBA tiene lugar como sigue:

• El objeto cliente invoca los métodos del fragmento adaptador delIDL que se corresponde con un objeto remoto.

• Este fragmento adaptador comunica las invocaciones de métodosal ORB.

• El ORB invoca los métodos correspondientes del esqueleto del IDL.

• Este esqueleto invoca los métodos de la implementación remota deobjetos servidor.

• El objeto servidor devuelve el resultado de la invocación de métodosa través del esqueleto del IDL, que devuelve el resultado al ORB.

• El ORB a su vez devuelve el resultado al fragmento adaptador delIDL, mientras que este fragmento adaptador devuelve el resultadoal objeto diente.

La figura 3-7 de la pág. 55 muestra el ORB como una sola capa delos hosts de cliente y servidor. Esta es la forma normal en que se ve elORB.

Caben una serie de implementaciones del ORB. Por ejemplo, los ORBhermanos pueden ser implementados en los hosts de cliente y servidor, oun ORB de sistema central puede ser implementado en un servidor local.También son posibles otras implementaciones ORB.

Ahora que ya se sabe cómo funciona CORBA, podría preguntarsecómo se usa para desarrollar aplicaciones distribuidas. La respuesta esque CORBA proporciona un enfoque flexible al desarrollo de aplicacionesdistribuidas.

Ofrece un nivel muy bueno de granularidad en la implementación desistemas cliente / servidor. En lugar de depender de clientes y servidoresmonolíticos (como es el caso de los navegadores y servidores Web), tantolos clientes como los servidores se pueden distribuir sobre varios hosts.

Las ventajas que tiene CORBA sobre otros enfoques de integraciónde aplicaciones distribuidas son significativos:

Page 56: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 44

• Proporciona un verdadero enfoque orientado a objetos para el de-sarrollo de aplicaciones distribuidas.

• Es independiente del lenguaje. Se puede utilizar para conectarobjetos que se desarrollen en cualquier lenguaje de programación,siempre y cuando se pueda suministrar a los objetos un fragmentoadaptador del IDL.

• Se reconoce como un estándar internacional y lo admiten casi todaslas principales marcas.

Invocación Remota de Métodos deJava

Habida cuenta de los diferentes enfoques relacionados con el desarrollode las aplicaciones distribuidas de las secciones anteriores, cabría pregun-tarse por qué Java no toma el mejor enfoque en lugar de usar la RMI.Existen varias razones para explicar esto:

• Sockets TCP: Java los admite. Puede construir aplicaciones tradi-cionales cliente / servidor en base a sockets usando Java en unaintranet o en Internet. Los applets y servlets de Java se puedenusar para distribuir la capa de procesamiento de información de laaplicación entre el cliente y el servidor. Aunque Java admita sock-ets TCP, JavaSoft decidió que se necesitaba un enfoque más densopara el desarrollo de las aplicaciones distribuidas, como el que pro-porciona CORBA, con el fin de desarrollar aplicaciones distribuidasavanzadas por medio de Java.

• DCE : Se basa en la RPC, que constituye un enfoque orientado aprocedimientos para el desarrollo de aplicaciones distribuidas. LaRPC no se acopla bien con las aplicaciones distribuidas orientadasa objetos. El enfoque que la invocación remota de métodos que

Page 57: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 45

admite CORBA se adapta mucho mejor al modelo de objetos deJava.

• DCOM : Se basa en la RPC del DCE, pero ofrece posibilidades deprogramación orientadas a objetos a través de objetos, interfacesy métodos del COM. Además, el DCOM proporciona servicios deseguridad amplios. El entorno de desarrollo Java de Microsoft,Visual J++, ofrece la posibilidad de acceder a objetos COM yDCOM desde Java. No obstante, esta posibilidad constituye másbien un puente a las tecnologías de herencia que una extensióndistribuida del modelo de objetos Java.

• CORBA: Proporciona un enfoque excelente a la construcción deaplicaciones distribuidas orientadas a objetos. Y Java sí que ad-mite CORBA. Sin embargo, CORBA está diseñada para admitirun modelo de objetos independiente del lenguaje. La RMI de Javaposee todas las ventajas de CORBA, pero está especialmente adap-tada al modelo de objetos Java. Esto hace que la RMI de Java seamucho más eficaz y fácil de usar que CORBA en lo que respecta aaplicaciones de Java puro.

El Modelo de Objeto Distribuido deJava

El Modelo de Objeto Distribuido que usa Java permite que los objetosque se ejecutan en una JVM invoquen a los métodos de objetos que seejecutan en otras JVM. Estas otras JVM pueden ejecutarse como procesoseparado en la misma computadora o en otras computadoras remotas.

El objeto que hace la invocación del método se denomina objetocliente (Hijo).

El objeto cuyos métodos se están invocando se denomina objeto servi-dor (Padre).

Page 58: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 46

El objeto cliente también recibe el nombre de objeto local y se diceque se ejecuta de forma local.

El objeto servidor también se denomina objeto remoto y se dice quese ejecuta de forma remota.

En el Modelo de Objeto Distribuido de Java, un objeto cliente nuncahace referencia directa a un objeto remoto. En lugar de ello, hace refer-encia a una interfaz remota que implementa el objeto remoto.

El uso de interfaces remotas permite que los objetos servidor se difer-encien entre sus interfaces locales y remotas. Por ejemplo, un objetopodría proporcionar métodos a los objetos que se ejecutaran dentro de lamisma JVM que se sumarían a los que proporciona a través de su interfazremota.

El uso de interfaces remotas también permite que los objetos servidorpresenten modos diferentes de acceso remoto.

Por ejemplo, un objeto servidor puede proporcionar al mismo tiempouna interfaz de administración remota y una interfaz de usuario remota.

Por último, el uso de interfaces remotas permite que la posición delobjeto servidor dentro de su clase jerárquica se abstraiga de la maneraen que éste se utiliza. Esto permite compilar los objetos cliente pormedio de la interfaz remota, eliminando la necesidad de que los archivosde clases del servidor estén presentes localmente durante el proceso decompilación.

Las Tres Capas de la RMI de Java

Aparte de las interfaces remotas, el modelo utiliza clases pertenecientesal fragmento adaptador y al esqueleto de forma muy parecida a como lohace CORBA:

Page 59: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 47

• Las clases de fragmento adaptador actúan como proxies locales delos objetos remotos.

• Las clases de esqueleto actúan como proxies remotos.

• Ambas clases implementan la interfaz remota del objeto servidor.

• La interfaz cliente invoca a los métodos del objeto fragmento adap-tador local.

• El fragmento adaptador local comunica estas invocaciones de méto-dos al esqueleto remoto, mientras que este último invoca a los méto-dos del objeto servidor.

• El objeto servidor devuelve un valor al objeto esqueleto.

• El objeto esqueleto devuelve el valor al objeto fragmento adaptador,mientras que este último devuelve el valor al cliente.

La figura 3-8 de la pág. 55 resume el uso de los fragmentos adapta-dores y esqueletos.

Si se es un programador de CORBA, se notará la ausencia de los IDLy ORB en la figura 3-8 de la pág. 55 (IDL Y ORB se requieren por partede CORBA, ya que es neutral al lenguaje).

Las clases de fragmento adaptador y esqueleto las genera automáti-camente el compilador RMIC a partir del objeto servidor (el compiladorRMIC es una herramienta estándar del JDK ). Estas clases son clasesverdaderas de Java y no dependen de un IDL externo.

No se necesita un ORB, ya que la RMI de Java es una solución deJava puro. El objeto cliente y el fragmento adaptador se comunican pormedio de las invocaciones normales de métodos de Java, al igual quelo hacen el esqueleto y el objeto servidor. El fragmento adaptador y elesqueleto se comunican a través de una capa de referencia remota.

Esta capa de referencia remota admite la comunicación entre el frag-mento adaptador y el esqueleto. Si el fragmento adaptador se comunica

Page 60: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 48

con más de una instancia de esqueleto (no admitida activamente), el ob-jeto fragmento adaptador se comunicará con esqueletos múltiples de unmodo multidifusión.

Hoy por hoy, la API RMI sólo define las clases que admiten una comu-nicación unidifusión entre un fragmento adaptador y un solo esqueleto.La capa de referencia remota también puede ser utilizada para activarlos objetos servidor cuando se invoquen remotamente.

La capa de refencia remota del host local se comunica con la capa dereferencia remota del host remoto a través de la capa de transporte de laRMI.

La capa de transporte configura y administra las conexiones que se danentre objetos a los que se puede acceder normalmente y determina cuándolas conexiones están en compás de espera y se vuelven inoperativas. Lacapa de transporte utiliza por defecto sockets TCP para comunicarseentre los hosts local y remoto, no obstante, se puede usar también otrosprotocolos de capa de transporte, como SSL y UDP.

La figura 3-9 de la pág. 56 ilustra las tres capas que se usan paraimplementar la RMI de Java.

En esta vista ampliada del modelo:

• El objeto cliente invoca a los métodos del fragmento adaptadorlocal del objeto servidor.

• El fragmento adaptador local utiliza la capa de referencia remotapara comunicarse con el esqueleto del servidor.

• La capa de referencia remota utiliza la capa de transporte paraestablecer una conexión entre los espacios de direciones locales yremotas y para obtener una referencia del objeto esqueleto.

Con el fin de que se pueda acceder remotamente a un objeto servidor,éste se debe registrar a sí mismo con el registro remoto. Esto lo haceasociando su instancia de objeto a un nombre.

Page 61: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 49

El registro remoto es un proceso que se ejecuta en el host del servidory se crea ejecutando el programa rmiregistry, otra herramienta del JDK.

El registro remoto mantiene una base de datos de objetos servidory los nombres en virtud de los cuales se puede hacer referencia a esosobjetos.

Cuando un cliente crea una instancia de la interfaz de un objeto servi-dor (es decir, su fragmento adaptador local):

• La capa de transporte del host local se comunica con la capa detransporte del host remoto para determinar si el objeto al que se hahecho referencia existe y para ver el tipo de interfaz que implementael objeto al que se ha hecho referencia.

• La capa de transporte del lado del servidor utiliza el registro remotopara acceder a esta información.

• Un proceso separado, al que se llama Demonio de Sistema de Ac-tivación de la RMI de Java, da soporte a la activación de objetosremotos. Este proceso se ejecuta por medio del programa rmid delJDK en el sistema remoto.

Pasar Argumentos y Valores de Re-torno

Para que un objeto cliente pase un argumento como parte de la invocaciónremota de métodos, el tipo de argumento deberá ser serializable.

Un tipo serializable es un tipo primitivo, o de referencia, susceptiblede ser escrito o leído en un flujo. En la práctica, todos los tipos primitivosde Java son serializables, y también lo son todas las clases e interfaces queimplementan o amplían la interfaz Serializable. Esta interfaz se defineen el paquete java.io.

Page 62: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 50

Las referencias a objetos se usan dentro de la JVM que contiene elobjeto.

Cuando un objeto local se pasa como argumento a una invocaciónremota de métodos, el objeto local se copiará de la JVM local a la JVMremota. Sólo se copian las variables de campo no estáticas y no transi-torias.

Cuando se pasa un objeto remoto a través de una invocación remotade métodos dentro de la misma JVM, se pasará la referencia al objetoremoto. Esto se debe a que la JVM remota contiene el objeto al que seestá haciendo referencia.

Cuando un objeto servidor está devolviendo un objeto como conse-cuencia de la invocación remota de métodos, el objeto se copiará de laJVM remota a la JVM local.

Los Objetos y la Invocación Remotade Métodos

ElModelo de Objeto Distribuido de Java constituye una extensión naturaldel Modelo de Objetos de Java que hay en una sola JVM. Este modeloimplementa la RMI de un modo fácil de usar y establece unos requisitosmínimos para que se pueda acceder a los objetos remotamente. Estosrequisitos son:

• La clase del objeto debe implementar una interfaz que amplíe la in-terfaz Remote. Esta interfaz debe definir los métodos que el objetova a permitir que se invoquen remotamente. Estos métodos debenarrojar la excepción RemoteException.

• La clase del objeto debe ampliar la clase RemoteServer. Esto sehace normalmente ampliando la subclase UnicastRemoteObject deRemoteServer.

Page 63: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 51

• Las clases de fragmento adaptador y el esqueleto de la clase de ob-jeto deben ser creados por medio del compilador rmic. El fragmentoadaptador debe ser distribuido al host del cliente.

• La clase, interfaz y clase del esqueleto del objeto remoto debenestar en la CLASSPATH del host remoto. El demonio de activaciónremota y el registro remoto deben estar activados.

• .Se debe crear una instancia de objetos remotos, y se debe registraren el registro remoto. Los métodos bind ( ) y rebind ( ) de la claseNaming se ulizan para registrar un objeto con su nombre asociado.El objeto remoto debe instalar un administrador de seguridad parapermitir la carga de las clases de la RMI.

Seguridad de la Aplicación Distribuida

El modelo de objetos distribuidos de Java implementa la seguridad através del uso de cargadores de clase y administradores de seguridad dela misma forma que lo hace para applets y aplicaciones.

El cargador de clases confía en las clases que se cargan desde el hostlocal. No se permite cargar las clases desde una red, a menos que unadministrador de seguridad esté presente y permita la carga de clases deforma remota.

Se coloca automáticamente un administrador de seguridad para quelos applets se vayan cargando.

El administrador de seguridad que se usa en las aplicaciones dis-tribuidas de Java es la clase RMISecurityManager.

Se debe establecer una instancia de esta clase a través del métodosetSecurityManager() de la clase System al principio de la ejecución deun objeto cliente o servidor.

Se pueden desarrollar administradores de seguridad menos restrictivos

Page 64: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 52

subclasificando RMISecurityManager y omitiendo sus métodos.

Seguridad en el Transporte

Dado que la RMI utiliza TCP/IP para la comunicación en redes, estásujeto a las debilidades del paquete de protocolos TCP /IP.

Las mejoras del JDK 1.2 a la RMI ofrecen la posibilidad de crearsockets personalizados sobre una base objeto a objeto.

Los sockets personalizados pueden hacer que la RMI utilice el pro-tocolo SSL de Netscape para proteger la información a medida que secomunica entre los objetos locales y remotos. Esto se hace creando unaRMI- SocketFactory personalizada.

Autenticación y Control de Acceso

La autenticación es el proceso de verificación de la identidad de unapersona u objeto que actúa en nombre propio.

El control de acceso es el proceso de restringir el acceso a los recursoso servicios que están basados en la identidad de un objeto o de unapersona.

La autenticación y el control de acceso trabajan mano a mano. Sinuna autenticación consistente, las personas sin escrúpulos podrían hac-erse pasar por personas de toda confianza. Sin control de acceso, laautenticación no tiene dientes.

La autorización y el control de acceso son importantes en las aplica-ciones distribuidas. Por ejemplo, puede ser que se desee limitar los obje-tos capaces de invocar remotamente a los métodos de un objeto servidor

Page 65: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 53

determinado a aquellos objetos que se ejecutan en un host específico oen un conjunto de hosts, o que actúan en nombre de una persona deter-minada.

La API RMI no proporciona las clases e interfaces que admiten di-rectamente la autenticación y el control de acceso.

No obstante, se pueden construir estas posibilidades por encima delas clases que ofrece la API RMI. Por ejemplo, el método getClientHost() de la clase RemoteServer puede utilizarlo un objeto servidor paradeterminar el nombre del host desde el que se inicia la invocación remotade métodos. Esto se puede usar para limitar el acceso de la RMI a unalista especificada de hosts, pero este enfoque no es infalible.

Existen formas de que hosts maliciosos se hagan pasar por hosts deconfianza. No obstante, puede ser usado para proporcionar un nivellimitado de protección.

Se pueden implementar una autenticación y un control de acceso másavanzados a través del uso de certificados digitales en la aplicación dis-tribuida general que admita la RMI.

Los corta fuegos pueden ser utilizados para proteger las aplicacionesdistribuidas que se ejecutan en una intranet. Se utilizan normalmentepara restringir el acceso a la aplicación distribuida a aquellos hosts queestén en una intranet corporativa o en un segmento seleccionado de unaintranet.

Sin embargo, los corta fuegos crean problemas propios. Si hay uncorta fuego en la ruta de comunicación entre objetos cliente y servidor,este corta fuego puede evitar que se produzcan invocaciones remotas demétodos.

Afortunadamente, JavaSoft ha reconocido el problema, y la claseRMISocketFactory ofrece la posibilidad de usar una RMI con un cortafuego. Esta clase utiliza enfoques alternativos a la comunicación cliente/ servidor susceptibles de emplearse para burlar las restricciones de se-guridad que imponen muchos corta fuegos.

Page 66: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Servidor de objetos

Objeto remoto COM

Servidor de objetos

Objeto local COM

Biblioteca COM

Tiempo de Ejecución COM(SCM)

Tiempo deEjecuciónCOM(SCM)

nivel detransporte

nivel detransporte

registro registro

Figura 3-6 COM y DCOM.

Page 67: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 55

Host del cliente Host del cliente

Objetivo cliente Objetivo cliente

ORB

FRAGMENTO IDL

ESQUELETO DE IDL

Figura 3-7 Cómo funciona CORBA.

OBJETO CLIENTE

FRAGMENTO ESQUELETO

OBJETO SERVIDOR

Figura 3-8 RMI de Java.

Page 68: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistema Distribuidos 56

Objeto Cliente

Fragmento

Nivel de Transporte

Nivel de Transporte

Esqueleto

Objeto Servidor

Nivel deReferencia Remota

Nivel deReferencia Remota

Figura 3-9 Las tres capas de RMI.

Page 69: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 4

Sistemas Expertos

Definición de Sistema Experto

Un sistema experto (SE) puede definirse como un sistema informático(hardware y software) que simula a los expertos humanos en un área deespecialización dada [5, Castillo Gutierrez Haidi-96].

La más poderosa contribución de los sistemas expertos es poner alservicio de los analistas noveles la experiencia adquirida por aquellaspersonas consideradas verdaderos especialistas en el área.

Un SE es un software que imita el comportamiento de un expertohumano en la solución de un problema. Pueden almacenar conocimien-tos de expertos para un campo determinado y solucionar un problemamediante deducción lógica de conclusiones.

Son programas que contienen tanto conocimiento declarativo (hechosa cerca de objetos, eventos y/o situaciones) como conocimiento de control

57

Page 70: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 58

(información acerca de los cursos de una acción), para emular el procesode razonamiento de los expertos humanos en un dominio en particulary/o área de experiencia [5, Castillo Gutierrez Haidi-96].

Los sistemas expertos son programas que reproducen el proceso int-electual de un experto humano en un campo particular, pudiendo mejo-rar su productividad, ahorrar tiempo y dinero, conservar sus valiososconocimientos y difundirlos más fácilmente.

El esquema resumido de funcionamiento de un SE se muestra en lafigura 4-1 de la pág. 58.

Figura 4-1 Esquema resumido del funcionamiento de un sistema experto.

Aspectos Fundamentales de los Sis-temas Expertos

Componentes de un Sistema Experto

Una característica decisiva de los SE es la separación entre conocimiento(reglas, hechos) por un lado y su procesamiento por el otro. A ello seañade una interfaz de usuario y un componente explicativo.

Page 71: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 59

A continuación se muestra una breve descripción de cada uno de loscomponentes:

1. La Base de Conocimientos de un SE contiene el conocimiento delos hechos y de las experiencias de los expertos en un dominio de-terminado.

2. El Mecanismo de Inferencia de un SE puede simular la estrategiade solución de un experto.

3. El Componente Explicativo explica al usuario la estrategia de solu-ción encontrada y el porqué de las decisiones tomadas.

4. La Interfaz de Usuario sirve para que éste pueda realizar una con-sulta en un lenguaje lo más natural posible.

5. El Componente de Adquisición ofrece ayuda a la estructuración eimplementación del conocimiento en la base de conocimientos.

Tipos de Conocimiento

Existen dos tipos de conocimiento:

• Conocimiento abstracto: Es de validez general y se almacena per-manentemente.

• Conocimiento concreto: Es de validez particular y se almacenatemporalmente. Son los datos o hechos de un problema específicoque es resuelto por el SE.

Para el presente trabajo se usarán los dos tipos de conocimiento.El primero, como se usarán marcos de problema elementales, seránde validez general y se almacenarán permanentemente y el tipo deconocimiento concreto será empleado cuando se resuelva un prob-lema específico partiendo de lo general a lo particular.

Page 72: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 60

Fuentes de Conocimiento

Existen dos tipos de fuentes de conocimiento:

• Fuentes Primarias: acceso directo al conocimiento (experto hu-mano, libros, textos, Internet, etc.).

• Fuentes Secundarias: acceso indirecto a la información (referencias,publicaciones, etc.).

Definición del Conocimiento

El conocimiento es materia de estudio de distintas disciplinas, tales comola filosofía, la gestión empresarial y, más recientemente la informática;existe varias definición, según el punto de vista e interés de quienes sepronuncien.

Para la definición de conocimiento varios autores interesados en lainformática, se apoyan en la definición, de dato e información.

Según la Real Academia Española dice:

• Dato: Antecedente necesario para llegar al conocimiento exacto, deuna cosa o para deducir las consecuencias legítimas de un hecho.

• Información: Acción y efecto de informar o informarse.

• Conocimiento: Acción y efecto de conocer. Noción, ciencia, sabiduría.Cada una de las facultades sensoriales del hombre en la medida enque están activas.

• Sabiduría:Conocimiento reutilizado y proceso de retroalimentaciónde los conocimientos (el aprendizaje como cuna del conocimiento).

En la figura 4-2 de la pág. 61 se señala la llamada cadena del conocimiento.

Page 73: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 61

Figura 4-2 La cadena del conocimiento.

Clasificación de los Sistemas Expertos

Los sistemas expertos se clasifican de acuerdo al tipo de conocimiento

que se utiliza:

• SE basado en reglas: La construcción de la base de conocimiento esen base a reglas, lo cual, en algunos casos se elabora sencillamente;la explicación de las conclusiones es simple. El motor de inferenciase realiza con algoritmos complejos, lo cual es relativamente lento,además de que el aprendizaje estructural es complejo.

• SE basado en probabilidades: La construcción de la base de conocimientoes en base a frecuencias lo cual requiere de mucha información,la explicación de las conclusiones resulta más compleja. El mo-tor de inferencia se realiza con algoritmos simples, el aprendizajeparamétrico es sencillo.

Se empleará el conocimiento basado en reglas porque la informacióncon que se cuenta es de tipo determinístico.

Page 74: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 62

Sistemas Expertos Basados en Reglas

Los sistemas basados en reglas son los más comúnmente utilizados. Susimplicidad y similitud con el razonamiento humano han contribuido parasu popularidad en diferentes dominios. Las reglas son un importante par-adigma de representación del conocimiento [5, Castillo Gutierrez Haidi-96].

Una regla es una afirmación lógica que relaciona dos o más objetos eincluye dos partes, la premisa y la conclusión. Cada una de estas partesconsiste en una expresión lógica con una afirmación objeto - valor conec-tadas mediante los operadores lógicos y, o, o no [5, Castillo GutierrezHaidi-96].

Las reglas representan el conocimiento utilizando un formato SI -ENTONCES (IF - THEN), es decir tienen 2 partes:

• La parte SI (IF): Es el antecedente, premisa, condición o situación.

• La parte ENTONCES (THEN): Es el consecuente, conclusión, ac-ción o respuesta.

Las reglas pueden ser utilizadas para expresar un amplio rango deasociaciones.

Una declaración de que algo es verdadero o es un hecho conocido, esuna afirmación.

El conjunto de afirmaciones se conoce frecuentemente con el nombrede base de afirmaciones. De igual forma, al conjunto de reglas se lodenomina base de reglas.

El Motor de Inferencia

Se ha mencionado que hay dos tipos de elementos: los datos (hechos oevidencia) y el conocimiento (el conjunto de reglas almacenado en la basede conocimiento).

Page 75: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 63

El motor de inferencia usa ambos para obtener nuevas conclusioneso hechos. Por ejemplo, si la premisa de una regla es cierta, entonces laconclusión de la regla debe ser también cierta.

Los datos iniciales se incrementan incorporando las nuevas conclu-siones. Por ello, tanto los hechos iniciales o datos de partida como lasconclusiones derivadas de ellos forman parte de los hechos o datos de quese dispone en un instante dado.

Las conclusiones pueden clasificarse en dos tipos: simples y compues-tas.

Las conclusiones simples son las que resultan de una regla simple.

Las conclusiones compuestas son las que resultan de más de una regla.

Para obtener conclusiones, los expertos utilizan diferentes tipos deregla y estrategias de inferencias y control.

Las reglas son las siguientes:

• Modus Ponens.

• Modus Tollens.

• Resolución.

Las estrategias de inferencias son las siguientes:

• Encadenamiento de reglas.

• Encadenamiento de reglas orientado a un objeto.

• Compilación de reglas, que son utilizadas por el motor de inferencia

para obtener conclusiones simples y compuestas.

Las dos primeras reglas de inferencia se usan para obtener conclu-siones simples y el resto de reglas y estrategias para obtener conclusionescompuestas.

Nótese, sin embargo, que ninguna de las estrategias anteriores, si seimplementan solas, conduce a todas las conclusiones posibles. Por ello

Page 76: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 64

deben implementarse varias reglas y estrategias en el sistema expertopara que el motor de inferencia sea capaz de obtener tantas conclusionescomo sea posible.

Modus Ponens y Modus Tollens

El Modus Ponens es quizás la regla de inferencia más comúnmente uti-lizada.

Se usa para obtener conclusiones simples. En ella se examina lapremisa de la regla y, si es cierta, la conclusión pasa a formar partedel conocimiento.

Como ilustración, supóngase que se tiene la regla, “Si A es cierto,entonces B es cierto” y que se sabe además que “A es cierto”. Entonces,tal como muestra la figura 4-3 de la pág. 65, la regla Modus Ponensconcluye que “B es cierto”.

Esta regla de inferencia, que parece trivial, debido a su familiaridad,es la base de un gran número de SE.

La regla de inferencia Modus Tollens se utiliza también para obtenerconclusiones simples.

En este caso se examina la conclusión y si es falsa, se concluye que lapremisa también es falsa. Por ejemplo, supóngase de nuevo que se tienela regla, “Si A es cierto, entonces B es cierto”, pero se sabe que “B esfalso”.

Entonces, utilizando la regla Modus Ponens no se puede obtenerninguna conclusión, pero, tal como se muestra en la figura 4-4 de lapág. 66, la regla Modus Tollens concluye que “A es falso”.

Aunque muy simple y con muchas aplicaciones útiles, la regla ModusTollens es menos utilizada que la Modus Ponens.

La reglaModus Ponens se mueve hacia delante, es decir, de la premisaa la conclusión de una regla, mientras que la regla Modus Tollens semueve hacia atrás, es decir, de la conclusión a la premisa.

Page 77: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 65

Figura 4-3 Regla modus ponens.

Las dos reglas de inferencia no deben ser vistas como alternativas sinocomo complementarias.

La regla Modus Ponens necesita información de los objetos de lapremisa para concluir, mientras que la regla Modus Tollens necesita in-formación sobre los objetos de la conclusión.

De hecho, para un motor de inferencia que solamente utiliza ModusPonens, la incorporación de la regla de inferencia Modus Tollens puedeser considerada como una expansión de la base de conocimiento mediantela adición de reglas.

Resolución

Las reglas de inferencias Modus Ponens y Modus Tollens puede ser uti-lizada para obtener conclusiones simples. Por otra parte, las conclusionescompuestas, que se basan en dos o más reglas, se obtienen usando el lla-mado mecanismo de resolución.

Page 78: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 66

Figura 4-4 Regla modus tollens.

Encadenamiento de Reglas

Una de las estrategias de inferencia más utilizada para obtener conclu-siones compuestas es el llamado encadenamiento de reglas.

Esta estrategia puede utilizarse cuando las premisas de ciertas clasescoinciden con conclusiones de otras.

Cuando se encadenan las reglas, los hechos pueden dar lugar a nuevoshechos. Esto se repite sucesivamente hasta que no pueda obtenerse másconclusiones.

El tiempo que consume este proceso hasta su terminación depende,por una parte, de los hechos conocidos, y por otra, de las reglas que seactivan.

Page 79: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 67

Encadenamiento de Reglas Orientada a un Objetivo

El algoritmo de encadenamiento de reglas orientado a un objetivo re-quiere del usuario seleccionar, en primer lugar, una variable o nodo obje-tivo; entonces el algoritmo navega a través de reglas en búsqueda de unaconclusión para el nodo objetivo.

Si no se obtiene ninguna conclusión con la información existente, en-tonces el algoritmo fuerza a preguntar al usuario en busca de nueva infor-mación sobre los elementos que son relevantes para obtener informaciónsobre el objetivo.

Compilación de Reglas

Otra forma de tratar con reglas encadenadas consiste en comenzar con unconjunto de datos (información) y tratar de alcanzar algunos objetivos.Esto se conoce con el nombre de compilación de reglas.

Cuando ambos, datos y objetivos, se han determinado previamente,las reglas pueden ser compiladas, es decir, pueden escribirse los objetivosen función de los datos para obtener las llamadas ecuaciones objetivo.

En el presente trabajo se ha utilizadoModus Ponens y encadenamientode reglas.

Control de la Coherencia

En situaciones complejas, incluso verdaderos expertos pueden dar in-formación inconsistente (por ejemplo, reglas inconsistentes y/o combi-naciones de hechos no factibles). Por ello es muy importante controlarla coherencia del conocimiento tanto durante la construcción de la base

de conocimiento como durante los procesos de adquisición de datos yrazonamiento.

Si la base de conocimiento contiene información inconsistente (porejemplo, reglas y/o hechos), es muy probable que el SE se comporte deforma poco satisfactoria y obtenga conclusiones absurdas.

Page 80: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 68

El objetivo del control de la coherencia consiste en:

• Ayudar al usuario a no dar hechos inconsistentes, por ejemplo, dán-dole al usuario las restricciones que debe satisfacer la informacióndemandada.

• Evitar que entre en la base de conocimiento cualquier tipo deconocimiento inconsistente o contradictorio.

El control de la coherencia debe hacerse controlando la coherencia delas reglas y la de los hechos.

Un conjunto de reglas se denomina coherente si existe, al menos, unconjunto de valores de todos los objetos que producen conclusiones nocontradictorias.

En consecuencia, un conjunto coherente de reglas no tiene por quéproducir conclusiones no contradictorias para todos los posibles conjuntosde valores de los objetos. Es decir, es suficiente que exista un conjuntode valores que conduzcan a conclusiones no contradictorias.

Metodología de Weiss y Kulikowski

Para el desarrollo de un sistema experto Weiss y Kulikowski sugieren lassiguientes etapas para el diseño e implementación de un SE :

• Planteamiento del problema: La primera etapa en cualquier proyectoes normalmente la definición del problema a resolver. Puesto queel objetivo principal de un SE es responder a preguntas y resolverproblemas, esta etapa es quizás la más importante en el desarrollodel mismo. Si el sistema está mal definido, se espera que el sistemasuministre respuestas erróneas.

• Encontrar expertos humanos que puedan resolver el problema: Enalgunos casos, sin embargo, las bases de datos pueden jugar el papeldel experto humano.

Page 81: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 69

• Diseño de un SE : Esta etapa incluye el diseño de estructuras paraalmacenar el conocimiento, el motor de inferencia, el subsistema deexplicación, la interfaz de usuario, etc.

Base de Conocimiento

No es el único componente de un SE. Si lo fuera un SE podría ser tan

solo una lista de reglas condicionales if - then.

Lo que se necesita es un mecanismo para operar a lo largo de la base

de conocimiento para resolver un problema. A tal mecanismo se le conoce

como motor de inferencia.

Otra pieza necesaria es el área de trabajo que contenga las condi-

ciones del problema; esta captura puede realizarse mediante una lista

de verificación, preguntas y respuestas de opción múltiple o un sistema

extremadamente sofisticado sentado en el idioma natural.

Para interactuar con el sistema experto el usuario captura las condi-

ciones de un problema en la interfaz del usuario, y las almacena en el

área de trabajo.

El motor de inferencia se vale de tales condiciones para buscar una

solución en la base de conocimiento. La figura 4-5 de la pág. 70 muestra

un diagrama de secuencias de este proceso1.

Modelado de la Base de Conocimiento

La representación de UML para las reglas es similar a la de objetos.

Se debe contar con uno de los atributos para que sea la parte if, otra

la parte then, y agregar otros atributos conforme sea necesario.

El diseño de una regla mediante UML se esquematiza en la figura 4-6

de la pág. 702.

1Joseph Schmuller-2000.2Joseph Schrnuller-2000.

Page 82: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 70

Figura 4-5 Proceso de búsqueda en la base de conocimiento.

Figura 4-6 Diceño de la regla mediante UML.

Para balancear la proliferación respecto a la necesidad de la simplici-dad, primero se crea un sencillo icono que representa a la regla, se llenala parte de if y la parte de then, seguidamente se debe de incorporarcierta información de identificación para cada regla, se agrega su nombre

en la parte superior; con esto se logra:

1. Convertir a cada regla en única.

2. Mostrar adónde ir en el catálogo de reglas para obtener una de-scripción y explicación completa de la regla.

Page 83: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 71

Si una regla es parte de un subgrupo de reglas, se puede trataral subconjunto como un paquete. Luego agregar el paquete deinformación al identificador de la forma usual propia del UML,hacer que el nombre del paquete anteceda a un par de dos puntos(::), que antecedan al identificador.

Concluido el paso de análisis de requisitos, se pasa al siguiente paso,el diseño del SE :

• Elección de la herramienta de desarrollo: Debe decidirse si realizarun SE a medida utilizando lenguaje de programación.

• Desarrollo y prueba de un prototipo: Si el prototipo no pasa laspruebas requeridas, las etapas anteriores (con las modificacionesapropiadas) deban ser repetidas hasta que se obtenga un prototiposatisfactorio.

• Refinamiento y generalización: En esta etapa se corrigen los fallosy se incluyen nuevas posibilidades no incorporadas en el diseñoinicial.

• Mantenimiento y puesta al día: En esta etapa el usuario planteaproblemas o defectos del prototipo, corrige errores, actualiza el pro-ducto con nuevos avances, etc.

Todas estas etapas influyen en la calidad del SE resultante, que siem-pre debe ser evaluado en función de las aportaciones de los usuarios.

Las etapas en el desarrollo de un SE se indican en la figura 4-7 de lapág. 723.

La diferencia fundamental entre un programa tradicional y un SE

puede resumirse como sigue:

Un programa tradicional puede esquematizarse de la siguiente man-era:

3Enrique Castillo, José Manuel Gutiérrez, y Ah S. Hadi. [CAT, 1999].

Page 84: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 72

Figura 4-7 Etapas en el desarrollo de un SE.

Page 85: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 73

Un SE estaría definido de la siguiente forma:

Las ventajas que se obtiene al utilizar un SE son las siguientes:

• Mayor acceso al conocimiento experto.

• Rápida obtención de conclusiones y soluciones.

• Resultados objetivos.

• Conclusiones realistas en situaciones críticas.

Definiciones y Conceptos Sobre Grafos

Un grafo es un conjunto de vértices V (o nodos) y un conjunto de arcosE que se conectan entre sí.

El concepto de grafos puede definirse de forma más general, por ejem-plo, puede permitirse que dos nodos estén conectados por más de unaarista, o incluso que un nodo esté conectado consigo mismo.

Sin embargo, en el campo de los SE, los grafos se utilizan para repre-

sentar un conjuntos de variables proposicionales (nodos) y una relación

de dependencia entre ellas (aristas).

Page 86: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 74

Las aristas de un gráfico pueden ser dirigidas o no dirigidas, depen-diendo de si se considera o no, el orden de los nodos.

En la práctica esta distinción dependerá de la importancia del ordenen que se relacionan los objetos.

En la figura 4-8 de la pág. 74 de muestran ejemplos de grafos y en lafigura 4-9 de la pág. 74 notaciones de los mismos.

Figura 4-8 Tipos de grafos.

Figura 4-9 Notación de grafos.

Los grafos pueden ser extendidos mediante la adición de rótulos (la-bels) a los arcos. Estos rótulos pueden representar costos, longitudes,distancias, pesos, etc.

Un grafo no dirigido se denomina completo si contiene una aristaentre cada par de nodos (ver figura 4-10 de la pág. 75).

Un grafo puede ser representado en memoria numéricamente, uti-lizando determinado tipos de matrices, como la matriz de adyacencia.

Page 87: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 75

Figura 4-10 Grafo completo.

Un grafo se puede representar mediante una matriz A tal que A[i,j] =1 si hay un arco que conecta vi con vj, y 0 si no. La matriz de adyacenciade un grafo no dirigido, es simétrica.

Una matriz de adyacencia permite determinar si dos vértices estánconectados o no en tiempo constante, pero requieren O(n2) bits de memo-ria. Esto puede ser demasiado para muchos grafos que aparecen en apli-caciones reales, en donde |E|<<n2.

Otro problema es que se requiere tiempo O(n) para encontrar la listade vecinos de un vértice dado.

La matriz de adyacencia permite comprobar si existe algún caminoentre cada par de nodos, también puede calcularse la longitud de todoslos caminos que unan cada par de nodos

La representación mediante listas de adyacencia consiste en almace-nar, para cada nodo, la lista de los nodos adyacentes a él.

Ejemplo:

v1: v2

v2: v2, v3

Page 88: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Sistemas Expertos 76

v3: v1, v4

v4: v3

Esto utiliza espacio O(|E|) y permite acceso eficiente a los vecinos,pero no hay acceso al azar a los arcos.

Nota : En el presente trabajo se utiliza modus ponens, encade-namiento de reglas en la versión Yosuko 1.0, y en la versión Yosuko2.0 se utiliza la técnica de grafos completos, con matriz de adyacencia,destacándose los beneficios e inconveniente encontrados en cada caso.

Page 89: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 5

Programación Orientada a Ob-jetos

Introducción

La programación orientada a objetos (POO) es una técnica de progra-mación que trata de mejorar las antiguas técnicas de programación lineal

y programación estructurada.

Con los lenguajes estructurados fue posible escribir programas mod-eradamente complejos de una forma bastante sencilla; sin embargo, us-ando incluso la programación estructurada, cuando los proyectos alcan-zan cierto tamaño, su complejidad se vuelve demasiado difícil para sercontrolada por un programador.

La POO toma las mejores ideas de la programación estructurada ylas combina con nuevos y poderosos conceptos que animan o alientan unanueva visión de la tarea de la programación.

77

Page 90: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 78

La POO permite descomponer fácilmente un problema en subgruposde partes relacionadas. Entonces, se puede traducir estos subgrupos enunidades autocontenidas llamadas objetos.

Las principales ventajas de utilizar la técnica de programación orien-tada a objeto son las siguientes:

• Los programas son más fáciles de modificar.

• Los programas son fáciles de mantener.

• El código desarrollado es mucho más portable y reutilizable quecon otros paradigmas.

Objeto

Un objeto es un conjunto constituido por una o varias variables y, op-cionalmente por métodos.

Un objeto es cualquier entidad lógica del mundo real que se puedaimaginar.

Objetos fisicos: Automóviles, aviones, animales mamíferos etc.

También se puede decir que tienen determiandas característica, ycomportamiento, ej. una casa.

Características: Número de pisos, altura total en metros, color de lafachada, número de ventanas, número de puertas, ciudad, calle y númerodonde está ubicada, etc.

Operaciones: Construir, destruir, pintar fachada, modificar algunade las características, como por ejemplo, abrir una nueva ventana, etc.

Evidentemente, cada objeto puede definirse en función de multitudde características y se pueden realizar innumerables operaciones sobre él.

Page 91: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 79

Ya en términos de programación, será misión del programador deter-minar qué características y que operaciones interesa mantener sobre unobjeto. Por ejemplo, sobre el objeto casa puede no ser necesario conocersu ubicación y por lo tanto, dichas características no formarán parte delobjeto definido por el programador. Lo mismo podría decirse sobre lasoperaciones.

En terminología de programación orientada a objetos, a las caracterís-ticas del objeto se les denomina atributos y a las operaciones métodos (verfigura 5-1 de la pág. 79).

Cada uno de estos métodos es un procedimiento o una función pertenecientea un objeto.

Figura 5-1 Terminología de objetos.

Un objeto está formado por una serie de características o datos (atrib-utos) y una serie de operaciones (métodos). No puede concebirse única-mente en función de los datos o de las operaciones sino en su conjunto.

Clases y Objetos

En la POO hay que distinguir entre dos conceptos íntimamente ligados,la clase y el objeto.

De forma análoga a cómo se definen las variables en un lenguaje deprogramación, cuando se declara un objeto hay que definir el tipo de

objeto al que pertenece. Este tipo es la clase.

En C, se definen dos variables X e Y de tipo entero de la formasiguiente: int X,Y;.

Page 92: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 80

En este caso, X e Y son variables, y el tipo de dichas variables esentero.

La forma de declarar objetos en Java es la misma:

Ccasa casa1, casa2

En este caso, casa1 y casa2 son efectivamente variables, pero untanto especiales, son objetos.

Además, el tipo de objetos es Ccasa. Este tipo es la clase del objetos.

Analogía

VARIABLE = OBJETO

TIPO = CLASE

Al declarar casa1 y casa2 como objetos pertenecientes a la claseCcasa, se está indicando que casa1 y casa2 tendrán una serie de atribu-tos (datos) como son nPuertas, nVentanas y color ; y, además, una seriede métodos (operaciones que se pueden realizar sobre ellos) como son:abrirVentanas(), cerrarVentanas(), etc.

Propiedades de un Lenguaje Orien-tado a Objetos

Las propiedades que debe cumplir un lenguaje para ser considerado OO(orientado a objetos) son las siguientes:

• Encapsulamiento.

• Herencia.

• Polimorfismo.

Page 93: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 81

Encapsulamiento

El encapsulamiento consiste en la propiedad que tienen los objetos deocultar sus atributos, e incluso los métodos, a otras partes del programau otros objetos.

La forma natural de construir una clase es la de definir una seriede atributos que, en general, no son accesibles fuera del mismo objeto,sino que únicamente pueden modificarse a través de los métodos que sondefinidos como accesibles desde el exterior de esa clase.

class Ccasa {

int nPuertas, nVentanas;

String color;

public Ccasa(int np, int nv, String co) {

nPuertas=np;

nVentanas=nv;

color=co;

}

public void pintar(String co) {

color=co;

}

public void abrirVentanas(int n) {

nVentanas=nVentanas+n;

}

public void cerrarVentanas(int n) {

nVentanas=nVentanas-n;

if (nVentanas<0)

Page 94: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 82

nVentanas=0;

}

public void abrirPuertas(int n) {

nPuertas=nPuertas+n;

}

public void cerrarPuertas(int n) {

nPuertas=nPuertas-n;

if (nPuertas<0)

nPuertas=0;

}

}

Ccasa casa1,casa2;

La forma normal de declarar la clase Ccasa consiste en definir unaserie de atributos no accesibles desde cualquier parte del programa, sinoúnicamente a través de determinados métodos. Así, si se quiere abrir unanueva ventana en la casa casa1, la filosofía tradicional de un programadorconsistiría en realizar lo siguiente:

casa1.N_VENTANAS := casa1.N_VENTANAS + 1;

Sin embargo, la forma natural de hacerlo en POO es llamando almétodo casa1.abrirVentanas(1). Ese método (procedimiento) se encar-gará de incrementar en 1 el atributo nVentanas. Esto no quiere decir queel atributo nVentanas no pueda ser accedido de la forma tradicional (sise hubiera definido como “public”) pero, para que el lenguaje pueda serconsiderado como OO, debe permitir la posibilidad de prohibir el accesoa los atributos directamente.

Page 95: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 83

Herencia

Es una de las principales ventajas de la POO.

Esta propiedad permite definir clases descendientes de otras, de formaque la nueva clase (la clase descendiente) hereda de la clase antecesoratodos sus atributos y métodos.

La nueva clase puede definir nuevos atributos y métodos o inclusopuede redefinir atributos y métodos ya existentes (por ejemplo: cam-biar el tipo de un atributo o las operaciones que realiza un determinadométodo).

Es la forma natural de definir objetos en la vida real. La mayoría de lagente diría, por ejemplo, que un chalet es una casa con jardín. Tiene lasmismas características y propiedades u operaciones que pueden realizarsesobre una casa y, además, incorpora una nueva característica, el jardín.

En otras ocasiones, se añadirá funcionalidad (métodos) y no atrib-utos. Por ejemplo: un pato es un ave que nada. Mantiene las mismascaracterísticas que las aves y únicamente habría que declarar un métodosobre la nueva clase (el método nadar).

Esta propiedad permite la reutilización del código, siendo muy fácilaprovechar el código de clases ya existentes, modificándolas mínimamentepara adaptarlas a las nuevas especificaciones.

Ejemplo: Se supone que tenemos construida la clase Ccasa y quer-emos definir una nueva clase que represente a los chalets. En este casopuede ser conveniente definir un nuevo atributo que represente los met-ros cuadrados de jardín. En lugar de volver a definir una nueva clase“desde cero”, puede aprovecharse el código escrito para la clase Ccasa dela siguiente forma (ver además la figura 5-2 de la pág. 84):

class Cchalet extends Ccasa {

int mJardin;

public Cchalet(int np, int nv, String co, int nj) {

super(np,nv,co);

Page 96: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 84

mJardin=nj;

}

}

Cchalet chalet1,chalet2;

Figura 5-2 Reutilización de objeto.

Como puede verse, únicamente hay que declarar que la nueva claseCchalet es descendiente de Ccasa (extends Ccasa) y declarar el nuevoatributo.

Evidentemente, el método constructor hay que redefinirlo para poderinicializar el nuevo atributomJardin. Pero los método para Abrir/Cerrarpuertas ventanas no es necesario definirlos, son heredados de la claseCcasa y pueden utilizarse, por ejemplo de la siguiente forma:

chalet1.pintar(”Blanco”);

Page 97: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 85

Polimorfismo

El polimorfismo permite que un mismo mensaje enviado a objetos declases distintas haga que estos se comporten también de forma distinta(objetos distintos pueden tener métodos con el mismo nombre o inclusoun mismo objeto puede tener nombres de métodos idénticos pero condistintos parámetros). Por ej.:

class Ccasa {

public Ccasa(int np, int nv, String co) {

nPuertas=np;

nVentanas=nv;

color=co;

}

public Ccasa() {

nPuertas=0;

nVentanas=0;

color=“”;

}

Tiene dos métodos con el mismo nombre pero parámetros distintos.En el primer caso se inicializarán los atributos del objeto con los parámet-ros del método y en el segundo caso se inicializarán a cero, por ejemplo.

Además, si tenemos dos objetos casa1 y chalet1 y se llama al métodochalet1.abrirVentanas(2) se ejecutará el código del procedimiento abrir-Ventanas de la clase Cchalet y no de la clase Ccasa.

Lenguaje Java

Page 98: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 86

Características Destacables del Lenguaje Java

Independencia en la Plataforma

Una de las razones más importante para utilizar Java, es la indepen-dencia de la plataforma.

Java se ejecuta en la mayor parte de plataformas de hardware y soft-

ware, entre las que se incluyenWindows 95, 98, NT, 2000, XP,Macintosh,

y varias gamas de UNIX.

Los navegadoresWeb compatibles con Java, como Netscape Navigator

e Internet Explorer, admiten los applets de Java.

Cambiando el software existente a Java, se podrá hacer inmediata-

mente compatibles estas plataformas de software. Sus programas serán

más portátiles y se eliminará toda dependencia con el sistema operativo.

Si bien C y C++ son compatibles en todas las plataformas com-

patibles con Java, estos lenguajes no son compatibles al margen de la

plataforma. Las aplicaciones en C y C++ que se implementan en una

plataforma de sistema operativo, por regla general se entrelazan demasi-

ado con el sistema nativo de ventanas y con las posibilidades de red

específicas del sistema operativo. El cambio de plataforma de sistema

operativo requiere como mínimo una recompilación, así como un redis-

eño importante en la mayoría de casos.

Orientación a Objetos

Java es un lenguaje verdaderamente orientado a objetos. No sólo

ofrece la posibilidad de implementar principios orientados a objetos, sino

que también pone en práctica tales principios.

Se pueden desarrollar programas orientados a objetos en C++, pero

no es necesario hacerlo; también se puede usar C++ para escribir pro-

gramas en C.

Java no permite salirse de la estructura orientada a objetos. O se

suscribe totalmente al enfoque del desarrollo orientado a objetos o no se

podrá programar en Java

Page 99: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 87

Seguridad

Java es uno de los primeros lenguajes de programación que tiene en

cuenta la seguridad como parte de su diseño.

El lenguaje, el compilador, el intérprete y el entorno de tiempo de

ejecución de Java fueron desarrollados pensando en la seguridad.

El compilador, el intérprete, la API y los navegadores compatibles

con Java contienen todos ellos varios niveles de medidas de seguridad,

diseñados para reducir el riesgo del compromiso de seguridad, pérdida de

datos, integridad del programa y daños a los usuarios del sistema.

Características Varias

El lenguaje Java ofrece muchas características que lo hacen más atrac-

tivo que C o C++ para el desarrollo de software moderno.

Al principio de la lista nos encontramos con el soporte intrínseco de

Java al multihilo, lo cual falta tanto en C como enC++.

Otras características son sus posibilidades de manipulación de ex-cepciones, que fueron recientemente introducidas en C++, su adherencia

estricta al desarrollo de software orientado a clases y objetos, y su soporte

de recolección automática de basura.

Aparte de estas características, Java implementa un estilo de pro-

gramación común que elimina la posibilidad de salirse del paradigma de

programación orientado a clases y a objetos para desarrollar programas

orientados a funciones del tipo C.

La API Java

Las clases predefinidas de la API Java ofrecen una base conjunta e in-dependiente de la plataforma que se usa para el desarrollo de programas.

Estas clases ofrecen la posibilidad de desarrollar programas de ventana

y de red que se ejecutan en una amplia gama de hosts.

El soporte para la API Java, con la invocación remota de métodos,

conectividad de bases de datos y seguridad, no lo supera la API de ningún

otro lenguaje. Además, ningún otro lenguaje ofrece una potencia inde-

Page 100: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 88

pendiente de la plataforma que se utilice como la API Java.

Su distribución ha recorrido un largo camino para dar soporte a

la computación totalmente distribuida con su soporte RML CORBA y

JDBC.

Estas API ofrecen la posibilidad de desarrollar e integrar objetos re-

motos en programas autónomos y aplicaciones Web basadas en applets.

Generación Rápida de Código

Dado que Java es un lenguaje de interpretación, se puede utilizar para

hacer rápidamente prototipos de aplicaciones que requerirían bastante

más soporte en lenguajes como C o C++.

La API Java también contribuye a la posibilidad de admitir la gen-

eración rápida de código. Las clases de la API Java ofrecen un receptáculo

integrado y fácil de utilizar para el desarrollo de software específico de la

aplicación.

Dado que la API Java ofrece soporte para ventanas de alto nivel, redes

y bases de datos, se pueden construir más rápidamente los prototipos

personalizados de aplicación teniendo estas clases como fundamento.

Facilidad de Documentación y Mantenimiento

En esencia, el software de Java se documenta automáticamente cuandose utilizan los comentarios doc y la herramienta javadoc para generar

documentación para el software.

La excelente documentación de la API Java constituye un ejemplo de

las posibilidades superiores de documentación que ofrece Java.

Dado que el software de Java está inherentemente mejor estructurado

y documentado que el de C o C++, por lo general es más fácil de

mantener. Aparte de esto, la orientación de paquete del software de

Java ofrece una modularidad considerable en el diseño, desarrollo, docu-

mentación y mantenimiento del software.

RMI (Remote Method Invocation o Invocación de MétodosRemotos)

Page 101: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 89

Introducción

Al igual que con los RPC (Remote Procedure Call o Llamada a Pro-cedimientos 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 pro-

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

Este método tiene la ventaja de que si, por ejemplo, tenemos un orde-

nador capaz de realizar cuentas muy rápidamente y otro capaz de dibujar

gráficos maravillosos y además necesitamos hacer un programa con varias

cuentas y varios gráficos, podemos implementar en el ordenador de las

cuentas aquellas clases que calculan cuentas, en el ordenador de gráficos

aquellas clases de pintado y hacer que cada ordenador haga lo que mejor

puede hacer.

Cuando al hacer un gráfico necesitemos calcular cuentas, llamaremos

a la clase remota que hace las cuentas, y éstas se harán en el ordenador

de las cuentas, devolviendo el resultado al de los gráficos.

Las clases que se necesitan para configurar un RMI son las siguientes:

• InterfaceRemota: Es una interfaz Java con todos los métodos quese quiera poder invocar de forma remota, es decir, los métodos sellaman desde el cliente, pero se ejecutarán en el servidor.

• ObjetoRemoto: Es una clase con la implementación de los métodosde InterfaceRemota. A esta clase sólo la ve el servidor de rmi.

• ObjetoRemoto_Stubs: Es una clase que implementa InterfaceRe-

mota, cada método se encarga de hacer una llamada a través de lared al ObjetoRemoto del servidor, espera el resultado y lo retorna.Esta clase es la que ve el cliente y no necesita codificarla, Java lohace automáticamente a partir de ObjetoRemoto.

Política de Seguridad

Page 102: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 90

Se precias también un archivo de política de seguridad. En estearchivo se indica al servidor de rmi y al cliente de rmi, qué conexionespueden o no establecerse. Debe haber un fichero de política de seguridaden el servidor de rmi y otro en el cliente.

En la pc/máquina servidor de rmi se debe correr dos programas:

• rmiregistry: Este es un programa que proporciona Java. Una vezarrancado, admite que se registren en él objetos para que puedanser invocados remotamente y admite peticiones de clientes paraejecutar métodos de estos objetos.

• Servidor : Este es un programa que se debe confeccionar. Se debeinstanciar el ObjetoRemoto y registrar en el rmiregistry. Una vezregistrado el ObjetoRemoto, el servidor no muere, sino que quedavivo. Cuando un cliente llame a un método de ObjetoRemoto, elcódigo de ese método se ejecutará en este proceso.

En la pc/máquina del cliente se debe correr el programa:

• Cliente: Este programa debe pedir al rmiregistry de la pc/máquinaservidor una referencia remota al ObjetoRemoto. Una vez que laconsigue (obtiene un ObjetoRemoto_Stbus), se pueden hacer lasllamadas a sus métodos. Los métodos se ejecutarán en el Servidor,pero el Cliente quedará bloqueado hasta que el Servidor terminede ejecutar el método.

Ejemplo: cómo realizar una operación suma en un objeto remoto.

La interface de la clase remota Hacer es una interfaz, con los métodosque se quiera, llamar remotamente. Esta interface sería como la se indicaen la figura 5-3 de la pág. 91.

Se tiene que heredar de la interface Remote de Java, si no el objetono será remoto. Se añade además los métodos que se quiera, pero todosdeben lanzar la excepción java.rmi.RemoteException, que se producirási hay algún problema con la comunicación entre los dos ordenadores ocualquier otro problema interno de rmi.

Page 103: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 91

Figura 5-3 Interface para RMI.

Todos los parámetros y valores devueltos de estos métodos deben sertipos primitivos de Java o bien clases que implementen la interfaz Seri-

alizable de Java. De esta forma, tanto los parámetros como el resultadopodrán “viajar” por red del cliente al servidor y al revés.

El Objeto Remoto

Se debe hacer una clase que implemente esa InterfaceRemota, es decir,que tenga los métodos que se quiere llamar desde un cliente rmi.

El servidor de rmi se encargará de instanciar esta clase y de ponerlaa disposición de los clientes. Esa clase es la que se llama objeto remoto.

Esta clase remota debe implementar la interfaz remota que se hadefinido (y por tanto implementará también la interfaz Remote de Java),definir métodos como hashCode(), toString(), equals (), etc., de formaadecuada a un objeto remoto. También debe tener métodos que permitaobtener referencias remotas, etc.

La forma sencilla de hacer esto es hacer que la clase herede de Uni-

castRemoteObject.

El código sería similar al mostrado en la figura 5-4 de la pág. 92.

Otra opción es no hacerlo heredar de UnicastRemoteObject.

Una vez compilado se obtiene el fichero ObjetoRemoto.class, se nece-sita crear la “clase de stubs”.

Para que desde un programa en un ordenador se pueda llamar a unmétodo de una clase que está en otro ordenador, está claro que de alguna

Page 104: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 92

Figura 5-4 Objeto remoto.

manera se debe enviar un mensaje por la red de un ordenador a otro,indicando que se quiere llamar a determinado método de determinadaclase y además pasar los parámetros de dicha llamada.

Una vez ejecutado el método, el ordenador que lo ha ejecutado debeenviar un mensaje con el resultado.

La clase de stubs es una clase con los mismos métodos que ObjetoRe-moto, pero en cada uno de esos métodos está codificado todo el tema delenvío del mensaje por la red y la recepción de la respuesta.

Afortunadamente para el programador, no se tiene que codificar todoeste problema de mensajes de ida y vuelta. Java proporciona una her-ramienta llamada rmic a la que se le pasa la clase ObjetoRemoto y de-vuelve la clase de stubs ObjetoRemoto_stubs.

Sólo se tiene que poner en la variable de entorno CLASSPATH eldirectorio en el que está la clase ObjetoRemoto y ejecutar rmic.

Además se tiene el archivo de política de seguridad, que se muestraen la figura 5-5 de la pág. 93.

Con este contenido, se dan todos los permisos a todo el mundo. Noes la opción más segura, pero de momento sirve.

También se puede cambiar la propiedad “java.security.policy” de lamanera indicada en la figura 5-6 de la pág. 93.

Una propiedad no es más que un nombre que lleva asociado un valor.

Page 105: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 93

Figura 5-5 Permiso de seguridad.

Figura 5-6 Archivo de política de seguridad.

Así, por ejemplo, la propiedad “java.version” dice cuál es la versión deJava en la que está corriendo el programa, “os.name” devuelve el nombredel sistema operativo, “user.home” devuelve el directorio por defecto delusuario, etc.

System.getProperties() devuelve una lista de todas las propiedadesdisponibles. De hecho, en la API de Java, para este método, sale unalista con bastantes de las propiedades existentes.

System.setProperty() fija el valor para una propiedad y System. get

Property() permite obtener el valor de una propiedad.

Lanzar rmiregistry

Antes de registrar el objeto remoto, se debe lanzar desde una ventanade ms-dos o una shell de linux el programa rmiregistry. Este programaviene con Java y está en el directorio bin de donde se tenga instaladoJava.

Es importante borrar la variable CLASSPATH para que no tenganingún valor que permita encontrar nuestros objetos remotos, por lo quese aconseja eliminar antes de lanzar rmiregistry.

Si rmiregistry está en el PATH de búsqueda de ejecutables (o si seestá situado en el directorio en el que está), se lanzaría de la siguiente

Page 106: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 94

manera indicada en la figura 5-7 de la pág. 94.

Figura 5-7 Lanzamiento de rmiregristry.

Además se debe poder indicar cuál es el path en el que se puedeencontrar la clase correspondiente al objeto remoto, en el ejemplo, elpath en el que se puede encontrar ObjetoRemoto.class.

Dicho path se da en formato URL, por lo que no admite espacios nicaracteres extraños.

Si se dejó las clases ObjetoRemoto.class, InterfaceRemota.class y Ob-

jetoRemoto_Stubs.class en c:\prueba_servidor, el path, en formato URL,sería como sigue “file://localhost/prueba_servidor”. En vez de localhostpuede ponerse la IP.

El código para indicar esto se muestra en la figura 5-8 de la pág. 94.

Figura 5-8 Indicación de la ubicación del código base.

Consiste en fijar una propiedad de nombre java.rmi.codebase con elpath donde se encuentran los ficheros .class remotos.

Se debe ver que haya un gestor de seguridad. Para ello se compruebasi existe y si no hay, se añade. El código para ello se muestra en la figura5-9 de la pág. 95.

Page 107: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 95

Figura 5-9 Gestor de seguridad.

Para instanciar una clase remota y luego registrarla en el servidor de

rmi es suficiente el sencillo código que se muestra en la figura 5-10 de lapág. 95.

Figura 5-10 Instancia y registra un objeto en el servidor rmi.

La instanciación no tiene problemas. Para registrarla hay que lla-mar al método estático rebind() de la clase Naming. Se le pasan dosparámetros. Un nombre para poder identificar el objeto y una instanciadel objeto. El nombre que se ha dado debe conocerlo el cliente, paraluego poder pedir la instancia por el nombre.

El método rebind() registra el objeto. Si ya estuviera registrado, losustituye por el que se acaba de pasarle.

El Cliente de RMI

Ahora sólo se tiene que hacer el programa que utilice este objeto deforma remota.

Los pasos que debe realizar este programa son los siguientes:

Pedir el objeto remoto al servidor de rmi. El código para ello se indicaen la figura 5-11 de la pág. 96.

Se llama al método estático lookup() de la clase Naming. Se le pasaa este método la URL del objeto. Esa URL es el nombre (o IP) del

Page 108: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 96

Figura 5-11 Solicitud de objeto remoto.

host donde está el servidor de rmi (en este caso localhost) y por últimoel nombre con el que se registró anteriormente el objeto (en el ejemploObjetoRemoto).

Este método devuelve un Remote, así que se debe hacer un “cast” aInterfaceRemota para poder utilizarlo. El objeto que se recibe aquí esrealmente un ObjetoRemoto_Stubs.

Se procede a llamar al método de suma() según se muestra en la figura5-12 de la pág. 96.

Figura 5-12 Llamado a un método.

Para que el código del cliente compile necesita ver en su classpath a In-terfaceRemota.class. Para que además se ejecute sin problemas necesitaademás ver a ObjetoRemoto_Stubs.class, por lo que estas clases debenestar accesibles desde el servidor o bien tener copias locales de ellas.

Socket

Pasos Para Crear un Servidor

Los pasos requeridos son los siguientes:

1. Crear el socket servidor.

Page 109: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 97

2. Aceptar un cliente.

3. Obtener los InputStream y / o OutputStream del cliente.

4. Crear unos InputStream y / o OutputStream más adecuados a lasnecesidades.

5. Leer y escribir datos del y al cliente.

6. Cerrar el socket.

Crear el Socket Servidor

Para hacer el servidor en Java se teine la clase ServerSocket. Al instan-ciarla se usará el constructor al que se le pasa un número de servicio (depuerto).

Este número de puerto puede ser cualquier entero entre 1 y 65535.

Los números de 1 a 1023 están reservados para servicios del sistema(como ftp, mail, www, telnet, etc, etc).

Del 1024 en adelante se puede usarlos a gusto. Lo único es que nopuede haber dos servidores atendiendo al mismo puerto / servicio (verfigura 5-13 de la pág. 97).

Figura 5-13 Creación del socket servidor.

Aceptar un Cliente

Una vez creado el servidor, se le dice que empiece a atender conexionesde clientes.

Para ello se llama al método accept(). Este método se queda blo-queado hasta que algún cliente se conecta. Devuelve un socket, que es laconexión con dicho cliente (ver figura 5-14 de la pág. 98).

Page 110: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 98

Figura 5-14 El servidor activa la atención a un cliente.

Se puede aceptar simultáneamente varios clientes, pero para atender-los se necesita programación multitarea o algo similar.

Obtener el InputStream y / o OutputStream

Ahora en cliente se tiene la conexión con el cliente (valga la redundancia).

Lo único que se tiene que hacer es obtener de él el OuputStream oInputStream con los métodos getOutputStream() o getInputStream().

La clase OutpuStream sirve para enviarle datos al cliente.

La clase InputStream sirve para leer datos del cliente (ver la figura5-15 de la pág. 98).

Figura 5-15 Lectura y envío de datos.

Crear unos InputStream y / o OutputStream Más

Adecuados a las Necesidades

Si se quiere enviar o recibir tipos normales (enteros, flotantes, strings) setiene las clases DataInputStream y DataOutputStream.

Estas clases tienen un constructor que admite un InputStream y unOutputStream respectivamente (ver la figura 5-16 de la pág. 99).

Page 111: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 99

Figura 5-16 Objetos para recibir datos (enteros, flotantes, strings).

Si se quiere enviar o recibir clases enteras propias nuestras, se tienelas clases ObjectInputStream y ObjectDataStream.

Al igual que las anteriores, se usa el constructor que admite un In-putStream y un OutputStream (ver figura 5-17 de la pág. 99).

Figura 5-17 Objetos para recibir o enviar clases.

Estas nuevas clases tienen métodos como writeInt(), writeChar(), etc.

Leer y Escribir Datos Del y Al Cliente

Envio / lectura de datos normales (enteros, flotantes, strings)

El envío / lectura de datos normales se hace con las clases DataIn-putStream y DataOutputStream.

No tienen ningún truco especial, basta usar el método adecuado(writeInt(), writeFloat(), readInt(), etc).

Para strings se usan los métodos writeUTF () y readUTF (), que en-vían / leen las cadenas en formato UTF.

Envio / lectura de clases enteras

Para el envio / lectura de clases normales se usan los métodos read-Object() y writeObject() de ObjectInputStream y ObjectOutputStream.

Para poder usar estos métodos las clases deben implementar la inter-

Page 112: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 100

face Serializable.

Las clases de tipos de Java (Integer, Float, String, etc.) implementanesa interface, así que se pueden enviar / leer a través de estos métodos.

Si una clase nuestra contiene atributos que sean primitivos de Java(int, float, etc) o clases primitivas (Float, Integer, String, etc.), bastacon hacer que implemente la interface Serializable para poder enviarlas.

No hace falta que se escriba ningún método, simplemente poner quese implementa (ver figura 5-18 de la pág. 100).

Figura 5-18 Implementa interface Serializable.

Si alguno de los atributos no es primitivo de Java, basta con queimplemente la misma interface Serializable.

Si es así, no se tendrá ningún problema (ver figura 5-19 de la pág.101).

Si alguna de las clases no es Serializable, se tendrán que implementarlos métodos privados (ver figura 5-20 de la pág. 101).

En el método writeObject() se debe enviar por el ObjectOutputStreamtodos los atributos de nuestra clase, en el orden que se considere ade-cuado.

En el método readObject() se debe ir leyendo del ObjectInputStreamtodos los atributos de nuestra clase e ir rellenando nuestros atributos.

El orden en que se lee debe ser el mismo que en el que se escribe y elformato leído el mismo que el escrito.

Page 113: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 101

Figura 5-19 Implementa interface Serializable.

Figura 5-20 Define métodos privados.

Para enviar una de estas clases el código es sencillo (ver figura 5-21de la pág. 102).

Para leerlo es igual de simple, sólo que se tiene que saber qué tipo declase se está recibiendo para hacer el “cast” adecuado (ver figura 5-22 dela pág. 102).

Se debe ir haciendo varios if con las posibles clases que se nos envíendesde el otro lado.

Page 114: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 102

Figura 5-21 Método WriteObjet.

Figura 5-22 Lectura de objetos por socket.

Cerrar el Socket

Para cerrar un socket hay que llamar a la función close() (ver figura 5-23de la pág. 102).

Figura 5-23 Cierre de una conexión cliente y servidor.

Pasos Para Crear un Cliente

Para el cliente se tiene la clase Socket.

Basta instanciarla indicándole contra qué máquina conectarse y elpuerto con el que debe conectarse.

Debe ser el mismo que el puerto que está atendiendo el servidor (verfigura 5-24 de la pág. 103).

El resto es igual que en el servidor.

Page 115: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Programación Orientada a Objetos 103

Figura 5-24 Creación de una conexión cliente.

Los objetos SocketC.java, objMsg.java, objRem.java implementan losconceptos enunciado en este capítulo.

Page 116: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Parte II

Desarrollos Efectuados yConclusiones

104

Page 117: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 6

Desarrollo del Producto

Introducción

En concordancia con los objetivos que propone esta Tesis, se elaborandos versiones del prototipo a los cuales el autor los denomina YOSUKOVersión 1.0 y YOSUKO Versión 2.0.

Las versiones del prototipo han sido elaboradas con diferentes técnicasde programación de Sistema Experto Basado en Reglas, con la finalidadde detectar en tiempo real el camino óptimo de comunicación de losdatos entre las computadoras que tienen la función de servir información(servidores) a las distintas computadoras conectadas a la red.

105

Page 118: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 106

Objetivos del Prototipo

Los objetivos perseguidos en la construcción del prototipo fueron lossiguientes:

• Utilizar software de bajo costo para la función de servir informa-ción entre las distintas máquinas que tienen el rol de servidoresconectadas a la red con tipología remota.

• Detectar la señal más estable para la transmisión de los datos.

• Detectar la ruta óptima de comunicación entre los servidores.

• Transmitir información al Sistema Gestor de Bases de Datos (My

SQL) desarrollado bajo la filosofía de código abierto que puede serutilizado gratuitamente. El lenguaje normalizado que se utilizapara llevar adelante esta comunicación con la base de datos es elStructured Query Language (SQL), que no es más que un lenguajeestándar de comunicación con bases de datos.

• Integrar aplicaciones informáticas construidas en la década de los’70 con las aplicaciones de última generación, utilizando un proced-imiento lógico que las comunica.

Estudio Comparativo de Ambas Ver-siones del Prototipo

El estudio comparativo permite resumir lo siguiente:

• YOSUKO Ver. 1.0: Se construyó como simulador del objetivo,fue construido con un procedimiento lógico que integra el lenguaje

Page 119: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 107

de programación orientado a objetos “Java” con el lenguaje de pro-gramación procedural “Clipper 5.2”. El potencial de esta versiónradica en la utilización de la técnica de programación que se utilizapara la confección del Motor de Inferencia, la regla Modus Ponensy estrategias de inferencias Encadenamiento de Reglas, la cual serepresenta en la sintaxis como “&”, ejemplo: if &reglas (Ver archivofuente Lectorre.prg).

• YOSUKO Ver 2.0: Es el producto final, que se detalla en formacompleta durante el desarrollo de este capítulo.

Los objetivos generales de la Tesis rigen el desarrollo de cada versióndel prototipo, con la premisa de encontrar la mejor solución para elplanteamiento del problema.

A continuación se detalla el funcionamiento del protocolo YOSUKOV2.0, donde se visualiza la diferencia de versiones del prototipo, desta-cando las técnicas de programación utilizadas.

Protocolo YOSUKO V. 2.0.

Introducción

Esta versión del prototipo está desarrollada totalmente con el lenguajede programación Java, utilizando los conceptos vistos en el capítulo 3:

• Programación con el modelo de Sockets, como un mecanismo decomunicación entre procesos.

• Protocolo TCP/IP.

• Programación RMI.

• Conexión al motor de base de datos MySQL, por medio del lenguajeestándar de comunicación SQL.

Page 120: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 108

• Lectura y grabación de archivos binarios.

Planteo del Problema

El problema estudiado se puede resumir con el siguiente planteo:

1. La mayoría de las aplicaciones informáticas comerciales dela provincia de Misiones se encuentran programadas con tec-nologías que carecen de la capacidad de utilizar comunicaciónsobre protocolos de red TCP/IP, sintaxis del lenguaje están-dar SQL, programación con el modelo de Sockets, Gestor deBases de Datos, entre otros, debido a que el lenguaje de pro-gramación utilizado para la construcción de las aplicacionesno está diseñado para la comunicación entre cliente / servidorque requiere la época actual. Este hecho, exige al programadoremigrar a otros lenguajes de programación de última gen-eración que contemplen mayores funcionamientos, situaciónque implica costo en la licencia del software, reprogramacióndel sistema de información, capacitación del recurso humano,modernización de la infraestructura tecnológica, etc.

2. Hoy en día las empresas deben ser competitivas, la informa-ción debe estar a disposición en cualquier parte del mundolas 24 hs., a disponibilidad de los directivos de las mismas.Situación que conlleva a estar conectado a un motor de Basede Datos, disponer de aplicaciones informáticas que accedana la información en tiempo real.

Estudio de Factibilidad para Brindar una Solución al

Problema

Los aspectos más relevantes son los siguientes:

• Los sistemas operativosWindows 9“x” o superior y Linux Ver. “x”,han creado un método de conexión a través de la red de Internet,

Page 121: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 109

que crea el efecto de un túnel, a través del cual la información setransmite en forma segura, denominado Red Privada Virtual, Vir-tual Private Networks (VPN ), permitiendo a las aplicaciones quese ejecuten en una Intranet a través de la red Internet. El riesgode este método de conexión se presenta cuando la comunicaciónes inestable, existiendo la posibilidad de corromper los archivos.Otra debilidad que presenta es en el momento de ejecutar una apli-cación informática que no sea de arquitectura cliente / servidor, yaque produce lentitud en el funcionamiento del sistema operativo,ocasionando conflicto en la red de comunicaciones.

• Otra solución que se le presenta al programador de aplicaciones, esutilizar programas de control remoto, por ejemplo VNC que sonlas siglas en inglés de Virtual Network Computing (Computación

en Red Virtual), o el pcAnywhere, entre otros, que están basados enuna estructura cliente / servidor, la cual permite tomar el control dela computadora servidor remotamente a través de una computadoracliente; el inconveniente que presenta esta solución es que el controldel teclado o del mouse (ratón) es mono usuario.

• Otra opción que se presenta como alternativa, es ejecutar unasesión remota, utilizando el sistema operativo Linux que es unode los paradigmas del desarrollo de software libre (y de códigoabierto), con el inconveniente de que su funcionamiento se vuelvelento cuando la comunicación es inestable.

Conclusión del Estudio de Factibilidad

Como conclusión del estudio de soluciones posibles para resolver el prob-lema formulado, se presentan dos métodos:

• Servidor Centralizado.

• Servidor Descentralizado.

Page 122: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 110

Desarrollo de la Experiencia

Para desarrollar el protocolo que propone esta Tesis, y mostrar una solu-ción factible a los problemas mencionados, así como los beneficios de tenerservidores descentralizados a nivel de costo, balanceo de carga, etc., setoma como ejemplo experimental una empresa de transporte de pasajerosde larga distancia de la ciudad de Posadas, provincia de Misiones, te-niendo en cuenta que la información de disponibilidad de asientos debeestar en tiempo real, y centralizada.

Cliente: Empresa de transporte de pasajero de larga distancia de laciudad de Posadas, provincia de Misiones.

Problema: Resolver las ventas de boletos en tiempo real, teniendo encuenta que posee Puntos de Ventas en Chile, Paraguay, Brasil, Argentina.

Análisis del Método de Resolución con Servidor Centralizado

Fortaleza: La información depende de una sola central.

Debilidad: Todos los puntos que poseen grandes movimientos de ven-tas deben tener conexiones punto a punto, estables y eficientes, teniendoen cuenta que la caída de los enlaces de comunicación representa pé rdidade dinero para la empresa. El costo aproximado de un enlace punto apunto en la Argentina por punto de venta es de $ 4.500 Acceso Frame

Relay (desde 64 K a 2 Mb). Si se tiene en cuenta que las boleteríasestán en países limítrofes, requieren utilizar comunicación internacional,la única opción en línea estable a niveles de enlace es el Acceso Satelital

(desde 128 K hasta 512 K), con un costo de $ 1.500 por punto.

Análisis del Costo de un Servidor Centralizado

Debido a que la información debe estar centralizada, el servidor debetener la capacidad de soportar las solicitudes de los puntos remotos deventas (balanceo de carga), y los ataques de intrusos.

Se requiere de un servicio de recuperación del servidor en caso decaída, y demanda que las aplicaciones informáticas sean construídas conestructura cliente / servidor, y sistema gestor de bases de datos.

Page 123: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 111

A modo ilustrativo se adjunta un presupuesto de Infraestructura Tec-nológica con un requerimiento mínimo (ver figura 6-1 de la pág. 111.

Figura 6-1 Presupuesto de servidor.

A su vez, el presupuesto del Sistema Gestor de Bases de Datos SQLServer asciende a un monto de $ 8.000.

Costo total de un servidor centralizado con los accesorios

que se detallan: $26.887,40.

Análisis del Método de Resolución con Servidores Descentral-

izados

Fortaleza: Los principales aspectos son los siguientes:

• Optimiza el balanceo de carga, porque se distribuye la información.

Page 124: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 112

• La empresa no depende de la comunicación, dado que los servidorescentrales se encuentra en los puntos de venta con mayor demandade pasajes, es decir una central en Chile, Paraguay, Argentina yBrasil.

• Utiliza aplicaciones de legado (legacy) desarrolladas en la décadade los ’70, esto implica el requerimiento de servidores de bajo costo.

Debilidad: Los principales puntos son los siguientes:

• Demanda mantenimiento de la información.

• Demanda mantenimiento de los servidores.

• Si el sistema de venta estuviera automatizado a través de aplica-tivos informáticos desarrollados con un lenguaje de programaciónde última generación que requiere de motor de base de datos, notendría sentido este método por el costo que demanda por servidor,aproximadamente $26.887,40.

Análisis del Costo de un Servidor Descentralizado

Con una aplicación informática desarrollada con un lenguaje de pro-gramación no de última generación, no se requiere utilizar un SistemaGestor de Bases de Datos, como así también un servidor con las carac-terísticas que se describen en el análisis de costos del Método de Resolu-ción con Servidor Centralizado, tratado en el apartado anterior.

Por lo tanto, con un servidor de muy bajos requerimientos, se puedenimplementar aplicaciones informáticas, dando solución al problema for-mulado en el enunciado de la experiencia.

Costo Aproximado y Especificaciones Técnicas

1 Placa Materborad Standar.

2 Discos de 80 GB.

1 Banco de memoria de 1 GB.

Page 125: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 113

1 Micro procesador tipo Intel 2.3 Ghz.

1 Disquetera.

1 Grabadora de DVD.

1 Monitor de 17 pulgadas.

El costo total aproximado es de $2.000.

El costo aproximado de la UPS es de $1.500.

Costo total del equipamiento: $3.500.

Análisis de Costo por Tipos de Enlaces de Comunicación

Se utiliza la Lista de Precios de proveedores locales de la ciudad dePosadas, Misiones, Argentina, para observar los valores que tiene cadatipo de conexión:

• Comunicación a través de Módem (máxima velocidad de trans-misión: 56 K): $25,00.

• ADSL (máxima velocidad de transmisión: 5 Mb): $350,00.

• Acceso Frame Relay (desde 64 K a 2 Mb): $4.500,00.

• Acceso Satelital (desde 128 K hasta 512 K): $1.500,00.

Teniendo en cuenta que el protocolo YOSUKO V. 2.0 se desarrollócon la premisa de funcionar con comunicaciones inestables, de bajo

costo, se va a utilizar el segundo método de resolución propuesto.

Planteo de Base

Se parte de la hipótesis que existen tres centrales y dos proveedoresde comunicación por punto, los cuales utilizan comunicación ADSL conun costo de $ 350,00.

Objetivo: Detectar el mejor camino.

Cada servidor tiene dos salidas de comunicación: “CPA” (Comuni-cación Proveedor A) y “CPB” (Comunicación Proveedor B).

Page 126: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 114

Existen tres servidores A-B-C (MAQUINA A (Posadas), MAQUINAB (Retiro), MAQUINA C (Neuquén) (ver figura 6-2 de la pág. 114).

Figura 6-2 Costo de la comunicación.

El Servidor Máquina “A” Solicita Información al Servidor Máquina

“C”.

Caminos posibles:

• CAMA + CAMD.

• CAMC + CAMB.

• CAMA + CAMB.

• CAMC + CAMD.

• CAME.

En la introducción de la Tesis, se menciona que el protocoloYOSUKOdebe estar programado en lenguaje Java, y utilizar un Sistema Experto

Basado en Reglas.

Page 127: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 115

Arquitectura Utilizada para Desarrollar el Protocolo

La arquitectura se muestra en la figura 6-3 de la pág. 115.

Figura 6-3 Arquitectura utilizada para el sistema experto.

Base de Conocimiento Yosuko V 1.0.

Reglas de Inferencia: Generadas por el Experto o Ingeniero del Conocimiento.

Se parte de un ejemplo con la finalidad de observar cómo se generala base del conocimiento.

El servidor “A” solicita información al servidor “C” (también esaplicable al caso en que el servidor “C” solicita información al servidor“A”).

Caso 1 : Un pasajero quiere viajar de Posadas a Neuquén, o Neuquéna Posadas.

(CAMA + CAMB) < (CAMC + CAMD) AND (CAMA + CAMB) <CAME ME VOY POR CAMA + CAMB.

Page 128: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 116

(CAMA + CAMD) < (CAMB + CAMC) AND (CAMA + CAMD) <CAME ME VOY POR CAMA + CAMD.

(CAMB + CAMC) < (CAMA + CAMD) AND (CAMB + CAMC) <CAME ME VOY POR CAMB + CAMC.

(CAMC + CAMD) < (CAMA + CAMB) AND (CAMC + CAMD) <CAME ME VOY POR CAMC + CAMD.

(CAME < (CAMA + CAMB)) AND (CAME < (CAMC + CAMD))ME VOY POR CAME.

El servidor “A” solicita información al servidor “B” (aplicable al casoen que el servidor “B” solicita al servidor “A”).

Caso 2 : Un pasajero quiere viajar de Posadas a Retiro, o de Retiro aPosadas.

CAMA < CAMC AND CAMA < (CAME + CAMB) AND CAMA <(CAMD + CAME) ME VOY POR CAMA.

CAMC < CAMA AND CAMC < (CAME + CAMB) AND CAMC <(CAMD + CAME) ME VOY POR CAMC.

(CAME + CAMB) < CAMA AND (CAME + CAMB) < CAMC AND(CAME + CAMB) < (CAME + CAMD) ME VOY POR CAME+ CAMB.

(CAME + CAMD) < CAMA AND (CAME + CAMD) < CAMC AND(CAME + CAMD) < (CAME + CAMB) ME VOY POR CAME+ CAMD.

El servidor “B” solicita información al servidor “C” (aplicable al casoen que el servidor “C” solicita al servidor “B”).

Caso 3 : Un pasajero quiere viajar de Retiro a Neuquén, o de Neuquéna Retiro.

CAMB < CAMD AND CAMB < (CAMA + CAME) AND CAMB <(CAMC + CAME) ME VOY POR CAMB.

Page 129: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 117

CAMD < CAMB AND CAMD < (CAMA + CAME) AND CAMD <(CAMC + CAME) ME VOY POR CAMD.

Nota: Los campos CAMA, CAMB , CAMC y CAMD contienen elpromedio del tiempo exacto que tardan los paquetes de datos en ir yvolver a través de la red, desde un Servidor a otro Servidor al cual el autordenomina Tiempo Promedio de Respuesta (TPR); elMotor de Inferencia

toma estos valores, analiza las reglas y obtiene el menor tiempo, con locual establece el mejor camino.

Almacenamiento de las Reglas

Para tomar la decisión, y decidir la programación delMotor de Inferencia,se desarrolla tres métodos de configuración de reglas.

Almacenamiento de Reglas YOSUKO V1.0. (Método 1)

La estructura del archivo donde se almacenan las reglas del protocoloYOSUKO V1.0. se muestra en la figura 6-4 de la pág. 117.

Figura 6-4 Estructura del almacenamiento de las reglas.

Page 130: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 118

El archivo en el que se graba el conocimiento o reglas se muestra enla figura 6-5 de la pág. 118.

Figura 6-5 Archivo de reglas.

Debilidades del Primer Método de Resolución

Las principales debilidades se señalan a continuación:

— El Experto o Ingeniero del Conocimiento, debe generar lasreglas.

— Si el lenguaje de programación no tiene el comando “&” (porejemplo: “If &reglas”), no se podría programar el algoritmo,tal como se observa en la figura 6-6 de la pág. 119, y se ten-drían que agregar internamente las reglas dentro del lenguaje.De esta manera, el costo que demandaría generar el conocimientosería muy alto, y sería difícil mantenerlo.

• El acceso a la información es secuencial.

Almacenamiento de Reglas YOSUKO V2.0. (Método 2)

Page 131: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 119

Figura 6-6 Algoritmo del motor de inferencia de YOSUKO V.1.0.

Teniendo en cuenta los problemas de la versión anterior, y el objetivode encontrar el Motor de Inferencia más eficiente, se desarrollan 2 (dos)métodos:

• Reglas de encadenamiento.

• Grafos completos (Matriz de Adyacencia).

Generación de Reglas por Medio del Método Encadenamiento

de Reglas

Se parte del supuesto que se cuenta con un objeto Java en todos los nodosactivos del sistema, el cual tiene por objetivo informar a todos los nodosque se encuentran en la tabla de nodos activos el valor (TPR), hora,minuto, segundo. Esta información sirve al nodo emisor para analizar sihay comunicación con el nodo destino, cuando va a transmitir los datos.

Proceso Para Transmitir

El proceso realizado para transmitir se detalla a continuación:

Page 132: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 120

• Por primera vez se carga en memoria el nodo inicial, con todas lasdirecciones IP, que van a existir en la red (ver la Tabla de NodosHabilitados en la figura 6-7 de la pág. 120, archivo Nodos.dat).

Figura 6-7 Archivo de nodos.

• Se ejecuta el proceso de informar la dirección IP a todos los nodosque conforman el sistema.

• Una vez que todos los nodos tienen grabada la tabla de direccionesIP, se puede ejecutar el objeto aprender las rutas posibles (encade-namiento de reglas), para llegar a todos los nodos; esto significaque se realizan dos procesos:

Proceso 1 (Generar el Primer Camino):

1. Lee la tabla de nodos activos.

2. Conecta al nodo destino, por medio de la programación a travésdel modelo Socket utilizando el puerto XXXX.

3. Verifica si existe el nodo destino, caso afirmativo se transmite elregistro según diseño de la figura 6-8 de la pág. 122.

4. Se graba en el campo reglas la IP del nodo origen. En este campose registran todos los nodos que el archivo recorrió para llegar alnodo destino. También se lo denomina a este campo IP del quepide.

5. Termina el proceso (generar la primera ruta alternativa).

Page 133: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 121

6. El nodo destino lee el archivo contenedor de reglas (ver figura 6-8de la pág. 122), extrae del campo reglas la IP (IP del que pide).Ejecuta el comando Ping a la IP que se extrajo, calcula el promedio(TPR), transmite ese valor a la IP que se hizo el cálculo.

Proceso 2 (Generar Otro Camino Alternativo):

1. El nodo origen toma la siguiente IP, que está en la tabla nodos (verfigura 6-7 de la pág. 120).

2. Transmite el registro (paquete), según diseño de la figura 6-8 de lapág. 122, a la IP seleccionada.

3. Recibe el paquete la IP seleccionada.

4. Analiza el nodo destino. En caso que no sea igual al nodo destino,realiza el siguiente proceso:

(a) Toma la IP destino que está grabado en el registro que recibió.

(b) Transmite ese pedido al nodo destino, previa alteración campoReglas (IP del que pide), agregando en dicho campo la IP delnodo que transmite.

5. Una vez que el pedido llegó al nodo destino, éste le transmite alnodo origen el registro según diseño de la figura 6-8 de la pág. 122.Concluido el proceso, el nodo destino lee el archivo contenedor dereglas (ver figura 6-8 de la pág. 122), extrae del campo reglas la IP(IP del que pide). Ejecuta el comando Ping a la IP que se extrajo,calcula el promedio (TPR), transmite ese valor a la IP que se hizoel cálculo.

A continuación se muestra un ejemplo:

Dados cuatro nodos IP 1.1 , 1.2 , 1.3 , 1.4, se generan las rutas posiblesentre los nodos 1.1 y 1.3.

Regla No. 1

Page 134: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 122

Figura 6-8 Archivo contenedor de reglas.

Figura 6-9 Regla 1 del ejemplo.

Ver la figura 6-9 de la pág. 122.

Regla No. 2

Ver la figura 6-10 de la pág. 123.

Regla No. 3

Ver la figura 6-11 de la pág. 123.

Regla No. 4

Ver la figura 6-12 de la pág. 123.

Para confeccionar la regla, se realiza el siguiente proceso: el nodo 1.2

Page 135: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 123

Figura 6-10 Regla 2 del ejemplo.

Figura 6-11 Regla 3 del ejemplo.

envía al nodo 1.4, el nodo 1.4 envía al nodo 1.3.

Figura 6-12 Regla 4 del ejemplo.

Regla No. 5

Ver la figura 6-13 de la pág. 124.

Para confeccionar la regla, se realiza el siguiente proceso: el nodo 1.4envía al nodo 1.2, el nodo 1.2 envía al nodo 1.3.

Se definen reglas coherentes, estableciendo ciertas restricciones.

No se puede pedir a la IP, que esté, en el campo reglas (del quepide); ejemplo: El nodo 1.4, no envía (paquete) al nodo 1.2, porque la

Page 136: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 124

Figura 6-13 Regla 5 del ejemplo.

IP 1.2 está en el campo reglas (IP del que pide). Si no se establece estarestricción, entraría en un ciclo repetitivo, entre el nodo 1.2 y el nodo1.4.

Terminado el proceso y respetada la restricción, se transmite el archivocontenedor de reglas, al nodo origen.

Pasos Para Calcular el Valor TPR Los pasos son los siguientes:

• Se ejecuta el comando Ping.

• Selecciona y suma el valor de los tiempos exactos que tardan lospaquetes de datos en ir y volver a través de la red, desde un Servidora otro Servidor (promedio).

• Divide por 4 (se tomó 4 muestra).

El valor obtenido se denomina TPR.

En el caso de que uno de los valores diga tiempo espera agotado,

se penaliza con un valor alto (1000), cosa que el promedio de IPsea el mayor.

Pasos para Transmitir el Promedio de IP Se toma la última IPque se encuentra en el campo reglas (del que pide), y se transmite el TPR(promedio).

A continuación, se observa un ejemplo analizando la cuarta regla:

Page 137: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 125

• El Nodo 1.3 mira la regla No. 4.

• Saca la última IP, en este caso es 1.4.

• Hace un Ping a 1.4.

• Calcula el TPR (promedio) contra ese punto.

• Transmite el promedio.

• El nodo IP 1.4 recibe ese valor y graba en el campo fecha-hora-min.seg. que recibió el pedido (se considera la fecha-hora del servi-dor que recibe el pedido, porque hay que considerar que los servi-dores pueden tener diferencias horarias). Este dato es muy impor-tante, para determinar si la comunicación es reciente.

• El Nodo 1.4 analiza el campo IP origen (1.1).

• EL Nodo 1.4 es distinto al origen (1.1).

• Toma la IP del campo Reglas (del que pide), teniendo en cuentaque debe ser la IP que se encuentra detrás del nodo que analiza(1.4), en este ejemplo es 1.2.

• Hace Ping a 1.2. y calcula TPR.

• Acumula el valor anterior, más el nuevo valor, y transmite al nodo1.2.

• El Nodo 1.2 analiza el campo IP origen (1.1).

• El Nodo 1.2 es distinto al origen (1.1).

• Toma la IP del campo Reglas (el que pide), teniendo en cuenta quedebe ser la IP que se encuentra detrás del nodo que analiza(1.2),en este caso es 1.1.

• Hace Ping a 1.1. y calcula TPR.

• Acumula y le transmite al nodo 1.1.

• El nodo 1.1 detecta que es igual a la IP origen, toma el valor recibidoy actualiza el campo TPR de la regla No. 4.

Page 138: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 126

• Termina el proceso.

Pasos Para Calcular el Promedio de IP Los pasos se detallanseguidamente.

• Se Ejecuta el comando Ping.

• Se extraen los valores de medición (ver figura 6-14 de la pág. 126).

1.

Figura 6-14 Cálculo de ping modelo 1.

Pedidos de la Aplicación Externa al Nodo 1.1.

El nodo 1.1 recibe un pedido de una aplicación externa que necesitatransmitir un archivo al nodo 1.3.; para detectar el mejor camino, realizael siguiente proceso:

• Abre el Archivo Reglas.dat.

• Selecciona todas las Reglas (camino) que tienen IP destino 1.3.

• Busca el menor valor del campo TPR.

• Saca el camino del campo regla (el que pide) y transmite el archivoen esa secuencia.

Page 139: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 127

Grafos Completos (Matriz de Adyacencia)

En la versión YOSUKO V.2. se utiliza técnica de grafos completo nodirigido, y se carga el TPR (promedio) en una matriz de adyacencia.

Se configura una matriz de 100 nodos como máximo en el objetoSocketC.java, permitiendo a este protocolo escuchar 100 direcciones IP.

String Des [] = new String [100]; // Descripción de los Nodos

String Puertos[] = new String [100]; // Puerto de los Nodos

String IP [] = new String [100]; // IP de los Nodos

Float Ping [][] = new Float [100][100]; // Matriz con los valores TPR

Generación de Reglas Se generan las reglas en el objeto ABMNo-dos.java, en el evento (botón) crear reglas cmdCrearR_Click(int Nivel).

Criterio Para Generar las Reglas Dados cuatro nodos: 1,2,3,4, serealizan todas las combinaciones posibles de ese número (rutas posibles),en el nodo que ejecutó el evento. Ejemplos: 1000, 1001, 1002, 1003, 1100,etc., 2000, 2001, –— ,2223, etc.

Control de Coherencia Para que sea un Nodo Válido Las condi-ciones que se deben cumplir para que una ruta sea válida son las sigu-ientes:

• Debe existir un nodo origen y un nodo destino, al principio de lacombinación, (se guarda, en la posición 1 y 2 del vector Regla), sialgunos de estos lugares esta vacío (0), se descarta la regla. Ej:1200 correcto, 1030: incorrecto, 1000: incorrecto.

• Verificar que no exista un cero después del último número mayor acero de la combinación. Ej.: 1200 correcto, 1201: incorrecto, 1302incorrecto, 1340 correcto.

Page 140: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 128

• Verificar que no se repita un nodo en toda la regla. Ej.: 1230correcto, 1321: incorrecto, 2123: incorrecto.

• Una vez generadas todas las reglas, de todos los nodos, se grabanen el archivo reglas.txt.

Nota: El único que tiene derecho a modificar o borrar reglas, en esteobjeto, es el servidor, los nodos clientes sólo tienen derecho a generarlas reglas. A este proceso se hace referencia en el manual del usuarioYOSUKO V2.0.

Ventajas del Algoritmo Utilizado Las ventajas se pueden resumircomo sigue:

• Muy fácil de programar, se mantiene la información en memoria.

• La cantidad de nodos depende de la cantidad de memoria disponibleen el procesador de cada aplicación.

• El acceso es directo, para detectar el mejor camino sobre la matriz,únicamente hay que ingresar el nodo origen, y el nodo destino.

Procedimiento Para Calcular el Promedio de IP El procedimientoes el siguiente:

• Se Ejecuta el comando Ping.

• Se selecciona el valor TPR (promedio), que viene incorporado enel comando Ping (ver figura 6-15 de la pág. 129).

Para seleccionar el promedio, el algoritmo busca la palabra “ms”, yextrae el número.

Se observa que cuando uno de los valores exprese “tiempo esperaagotado”, el promedio aumenta.

Page 141: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 129

Figura 6-15 Cálculo TPR segundo método.

Ahora, en el caso de que no haya comunicación, la sigla “ms” noaparece, entonces se penaliza con un valor alto (1000), con el propósitode que el promedio de IP sea el mayor.

Procedimiento Para Transmitir el Promedio de IP El métodoque se utiliza es de un grafo completo no dirigido (ver figura 6-16 de lapág. 130), es decir todos los nodos del sistema YOSUKO V.2., hacenping contra todos los nodos leyendo la tabla nodos.dat.

El Nodo “X”, captura la respuesta del Ping extrayendo elTPR (prome-dio), y graba en laMatriz ; se considera el nodo origen como fila y el nododestino como columna M (Origen,Destino).

El nodo origen toma el valor TPR (promedio), e informa a todos losnodos de la red. El beneficio con este método, es que, cualquier nodode la red conoce el estado de toda la red de cualquier nodo, en todomomento.

Page 142: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 130

Figura 6-16 Grafo completo no dirigido.

Estudio Comparativo Entre los dos Métodos de Resolución

Se llega a la conclusión de que el segundo método es mejor, por lassiguientes razones:

Calculo de IP: Las consideraciones son las siguientes:

• El cálculo del promedio en el segundo método lo hace el comandoPing, en cambio en el primer método lo hace la aplicación.

• En el caso de que el comando Ping cambie la forma de presentarlos datos, el primer método requiere que se reprograme la rutinade cálculo TPR.

• En cambio utilizando el segundo método, únicamente se deberáreprogramar, si no aparece la palabra “ms”.

Generación de Reglas: Las consideraciones son las siguientes:

• El segundo método es más fácil de programar.

Page 143: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Desarrollo del Producto 131

• En el primer método se debe tener en cuenta que puede caer algúnnodo, cuando está generando las reglas, y no se percibirá si le faltanalgunas de ellas. En cambio el segundo método genera las reglasen forma local, y no depende de la comunicación.

• En el segundo método, todas las reglas de todos los nodos estánen cada nodo, en cambio en el primer método se encuentran única-mente las reglas de ese nodo.

Transmición del Promedio de TRP para las IP: Las consideracionesson las siguientes:

• El primer método tiene la desventaja de que debe transmitir alnodo destino por cada regla que tiene en el archivo contenedor dereglas; es decir, N reglas x N nodos.

• En cambio, el segundo método únicamente transmite 1 x cantidadde nodos; por lo tanto es más eficiente el segundo método cuantomayor es el número de nodos.

Conclusión

El estudio comparativo de los métodos de resolución propuestos lleva a lasiguiente conclusión: el protocolo YOSUKO V.2.0 se basará en el métodoGrafo completo no dirigido (Matriz de adyacencia).

Page 144: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 7

Seguridad a Nivel de Informa-ción

Introducción

Existen varios factores a la hora de evaluar la seguridad de un sistema.A continuación se resumirán algunos conceptos:

• Confidencialidad: La información sólo ha de poder ser accedidapor las personas autorizadas. Puede ser de datos (protegiéndolospor encriptación), o confidencialidad de flujo (en la que se trata deocultar quién es el destinatario).

• Integridad: Se necesita saber que los datos recibidos no han podidoser modificados por alguien distinto del emisor. Además la integri-dad de secuencia asegura que los bloques de información recibidahan llegado en el orden en que fueron enviados.

132

Page 145: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Seguridad a Nivel de Información 133

• No repudio: Herramienta que permite probar que se tuvo una co-municación con un determinado usuario, de modo que alguien nopueda negar el haber recibido algo, ni otro pueda negar haber man-dado algo. Esto se suele conseguir con la firma digital.

• Control de acceso: Los sistemas deben estar protegidos, de modoque sólo pueda acceder a sus recursos la persona autorizada. Estose consigue mediante passwords (contraseñas).

• Seguridad física: Los soportes físicos de un sistema deben estar pro-tegidos de descargas, incendios, acceso de personas no autorizadas.

• Autentificación: Se trata de poder saber si algo es de quien dice ser,si algo no ha sido falsificado. Se suelen usar mecanismos asimétricoscomo la firma digital.

Teniendo en cuenta los conceptos de seguridad, se estableció en elprotocoloYOSUKO V2.0., la Seguridad Control de Acceso, y la Seguridadde Confidencialidad.

Se organizó de la siguiente forma:

• A Nivel de Aplicación.

• Cuando se Transmite la Información.

• A Nivel Usuarios.

Seguridad Nivel de Aplicación

El objetivo de este módulo es controlar la piratería del software, para

ello, se estableció, como medida de seguridad, el siguiente esquema de

trabajo:

• Tener una licencia, que habilite a cada servidor de nodos instalado.

• Registrar el producto, cuando se instala por primera vez.

Page 146: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Seguridad a Nivel de Información 134

Pasos Para Registrar el Producto

El producto se encuentra comprimido, en una la carpeta que se denomina

YOSUKO.

Se debe ejecutar el botón instalar, y cargar los datos que solicita la

figura 8-8 de la pág. 158.

Figura 7-1 Pantalla donde se registra el producto.

Una vez concluida esta operación, el sistema YOSUKO se conecta

con el proveedor, que generó el producto, para registrar, verificar si es

válido, y que no esté duplicado el registro del producto, a través de una

conexión SQL.

Una vez que se comprobó la validez, internamente, el sistemaYOSUKO,

con los datos ingresados genera un registro, en el archivo control.dat.

Este método permite controlar que la aplicación esté registrada una

sola vez.

Page 147: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Seguridad a Nivel de Información 135

Seguridad Cuando se Transmite la Información

Este módulo tiene por objetivo verificar si la información transmitida es

de un nodo válido, activado por la aplicación.

Se utiliza el método de comparación entre dos puntos, por medio de

un valor denominado dígito verificador.

Dígito Verificador

Seguidamente se detalla cómo funciona el control.

Ejemplo: Dados dos nodos A,B, el nodo A transmite una informaciónal nodo B y realiza el siguiente proceso:

• El nodo A toma su IP y calcula el dígito verificador de la siguienteforma:

— Multiplica por 3 cada número que conforma el IP.

— Acumula el valor del producto.

— El resultado final del producto acumulado se divide por 11.

— El algoritmo se encuentra programado en el objeto socketC.java(),clase CalcDV():

∗ // Esta rutina devuelve como resultado un número, quese va a usar como dígito verificador

∗ // entre los paquetes de transmisión.

∗ public int CalcDV (String strIP) {

∗ // Recibe como parámetro la IP de la máquina y la con-vierte en un array de bytes,

∗ // para luego poder procesarlos.

∗ byte IP[] = strIP.getBytes();

∗ int i;

∗ int dv = 0;

∗ // Realiza un bucle por todos los elementos del array (IP),lo multiplica * 3

Page 148: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Seguridad a Nivel de Información 136

∗ // y acumula sus valores en la variable dv.

∗ for (i=0; i<10; i++) dv+=IP[i] * 3;

∗ // Luego la sumatoria se divide por 11 y termina el pro-ceso.

∗ dv/=11;

∗ return dv;

∗ }

∗ //––––––––––––––––––––

— Inserta en el registro a transmitir el dígito verificador.

• El nodo B toma la IP del nodo A leyendo el archivo read.dat, yejecuta el mismo algoritmo para calcular el dígito verificador.

• Verifica si el dígito enviado por el nodo A es el mismo valor calcu-lado, por el nodo B.

• En el caso que no sea igual al dígito, ignora el pedido, y graba enel archivo log el mensaje “Intruso a nivel transferencia de datos,controle”.

• En el caso de que sea igual al dígito, continúa el proceso normal-mente.

Encriptar y Desencriptar los Datos

Se realiza en el objeto ObjMsg.java() en la clase Encrip() y DesEncrip().

Se comprobó que al sumar o restar cualquier número positivo, en unarchivo binario, se altera el contenido del mismo.

Se consideró que este algoritmo cumple con los niveles de seguridada nivel encriptación.

Los pasos para lograr la encriptación son:

• Alterar el contenido, del archivo binario, sumando un número uno.

Page 149: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Seguridad a Nivel de Información 137

• Transmitir el archivo alterado.

• Volver al estado normal. Una vez recibido el nodo receptor, debellegar al mismo estado original del archivo. Para lograrlo resta ununo.

Este método se puede transformar en un algoritmo de alta seguridad.

Se realiza el siguiente proceso:

• Sumar un número aleatorio byte x byte.

• Tomar el número aleatorio, pasarlo a binario previa alteración,sumando un uno.

• Grabar este número en una posición determinada, en el archivobinario.

• Transmitir el archivo.

Una vez que se recibe los datos, el nodo receptor, procede a:

• Buscar la posición donde está el número aleatorio.

• Transformar al número aleatorio en el número original (restandoun uno).

• Transforma el archivo binario restando el número aleatorio.

Seguridad Nivel Usuarios

En este módulo se registran los usuarios y las claves de todos los nodos(servidores,clientes) que van a estar activos en la aplicación.

Secuencia de Control

Cuando la aplicación se ejecuta a nivel usuario se deben ingresar lossiguientes datos:

Page 150: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Seguridad a Nivel de Información 138

— Nombre de usuario.

— Contraseña.

— IP del servidor.

El sistema verifica si existe el servidor (primer padre).

En caso afirmativo, transmite el nombre de usuario y contraseña.

El servidor padre captura estos datos, analiza si existe un usuario conlos datos ingresados, leyendo la tabla control.dat.

En caso afirmativo emite al nodo cliente el número 1. Este dígito lehabilita al nodo cliente para empezar a operar el sistema. Caso contrarioel servidor padre registra en el archivo log un mensaje Intruso a nivel

clave de aplicación e ignora a este nodo.

En el caso de que no exista el servidor (primer padre), el usuario dela aplicación cliente ingresa la IP del servidor (segundo padre).

En caso de que no exista este servidor, no se podrá ejecutar la apli-cación.

En los dos servidores debe estar registrado el usuario (objeto ABMno-

dos.java).

Diagrama en Bloque del Sistema

En la figura 7-2 de la pág. 139, se indica el funcionamiento del protocoloYOSUKO V.2.0.

Cada nodo tiene los mismos objetos. La diferencia que existe entreun nodo servidor y nodo cliente, es solo el objeto RMI, que está activoúnicamente en el nodo servidor.

Page 151: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Figura 7-2 Esquema funcional de nodos.

Page 152: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 8

Metodología de Integraciónde YOSUKO V.2.0 y Aplica-ciones Informáticas

Introducción

En el presente capítulo se desarrolla la metodología incorporada en el

protocolo YOSUKO V. 2.0, para lograr el objetivo de integrar las aplica-ciones informáticas construidas con tecnologías de programación antiguascon aplicaciones informáticas construidas con las tecnologías de progra-mación de última generación.

Se parte de la base de que conviven aplicaciones informáticas quecarecen de capacidad de comunicación, con las aplicaciones informáticasprogramadas bajo los nuevos conceptos de tecnologías de la informacióny de la comunicación.

140

Page 153: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 141

Con el objetivo de brindar una solución de bajo costo a este prob-lema que presenta el escenario descripto, se incorpora al algoritmo delprotocolo YOSUKO V. 2.0, las siguientes funciones:

• Comunicación entre procesos.

• Comunicación entre cliente / servidor.

• Invocación de los métodos remotos, a través de la programaciónRMI.

• Conexión al motor de base de datos MySQL, por medio del lenguajeestándar de comunicación SQL.

• Lectura y grabación de archivos binarios.

El Protocolo YOSUKO V. 2.0 y lasAplicaciones Externas

El diagrama de interacción del protocolo YOSUKO V.2.0 para integraraplicaciones externas se muestra en la figura 8-1 de la pág. 142.

Contenido del Archivo Read.dat

El archivo Read.dat es un archivo binario con la estructura que semuestra en la figura 8-2 de la pág. 143.

El contenido de los campos del archivo binario Read.dat se detalla acontinuación:

• Estado del Proceso: Este campo se utiliza para que la AplicacionExterna y YOSUKO V. 2.0, se pongan de común acuerdo.

— Significado del Campo:

Page 154: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 142

Figura 8-1 Diagrama de interacción de YOSUKO con las aplicaciones

externas.

1. YOSUKONodo Local recibe una orden de una AplicaciónExterna para emitir un pedido a un Nodo Remoto.

2. YOSUKO informa a la Aplicación Externa que está real-izando el pedido solicitado por dicha Aplicación Externa.

3. YOSUKO informa a la Aplicación Externa que terminó elproceso de transmitir el pedido.

4. La Aplicación Externa informa que está realizando unatarea, YOSUKO espera que termine para continuar el pro-ceso.

5. La Aplicación Externa informa que terminó la tarea yYOSUKO trasmite el archivo generado por la AplicaciónExterna.

• Código de Actividad: Este campo se utiliza para relacionar elarchivo Read.dat con el archivo Activ.dat y proc.dat.

• Número Orden de Trabajo: Es un número mayor a cero que seutiliza para relacionar con el archivo proc.dat.

• Nombre del Archivo que se va a Transmitir : Este campo contieneel nombre del archivo que se va a transmitir al Nodo Destino.

Page 155: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 143

Figura 8-2 Estructura del archivo Read.dat.

• Identificador de Procesos: Es un campo mayor a cero, no repet-itivo. La Aplicación Externa lleva el control, y sirve para que sediferencien los procesos.

• Tiempo de Espera en Minuto: Este campo contiene el tiempo máx-imo que va a esperar la Aplicación Externa, al protocolo YOSUKO,para que realice el pedido solicitado.

• Tiempo de YOSUKO: Este campo es utilizado por el protocolo; segraba la hora, minuto, segundo, del nodo que recibe el pedido.

El protocolo YOSUKO V. 2.0 utiliza otros archivos en forma interna

Page 156: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 144

para poder realizar las tareas encomendadas por la Aplicación Externa.

El diseño del modelo físico de datos se detalla a continuación.

• Activ.dat : En este archivo se define el nombre de la actividad;ejemplo: empresa xxxx, administración, depósito. etc. (ver lafigura 8-3 de la pág. 144).

Figura 8-3 Archivo binario Activ.dat.

• Control.dat: Se utiliza para registrar el nodo local (objeto Con-

fig.java). Si este archivo está vacío, se activa el módulo registrar elproducto en el servidor de la empresa que va a distribuir el mismo(ver en el capítulo 7, Seguridad a Nivel de Aplicación (ver estruc-tura del archivo en la figura 8-4 de la pág. 145.

— Nodos.dat: Se registran los nodos (Servidores, Clientes) quevan a estar activos en la red. Además este archivo se uti-liza para verificar si es un usuario válido dentro del sistema(ver capítulo 7, Seguridad a Nivel Usuario (ver estructura delarchivo en la figura 8-5 en la pág. 146).

• Proc.dat: En este archivo se graban los procesos que el progra-mador de la Aplicación Externa quiere que realice el protocoloYOSUKO. El detalle de los campos es el siguiente:

Page 157: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 145

Figura 8-4 Archivo binario Control.dat.

— Código de Actividad: Se utiliza para relacionar el archivo Ac-tiv.dat.

— Orden de Trabajo: Es un número mayor a cero, no se puederepetir, y se utiliza para diferenciar, los distintos procesos quepueda tener el protocolo YOSUKO V.2.0.

— Tipos de procesos: Puede tener dos estados:

∗ Transmite el pedido y termina el proceso.

∗ Transmite el pedido, espera respuesta, y retrasmite el pe-dido.

— Número de Nodo Destino: Indica el punto final de la trans-misión de paquetes, emitidos por el nodo emisor.

— Tipos de transmisión: Puede tener 2 estados:

∗ Transmite archivos al nodo destino.

∗ Transmite y ejecuta comandos SQL (Select, Insert, Up-date, Delete) en el nodo destino.

— ID Usuario: Se utiliza para identificar el nombre de usuarioque tiene derecho a ingresar al motor de Base de Datos, yejecutar el comando SQL, provisto por la Aplicación Externa.

— Contraseña: Clave para acceder al motor de Base de Datos.

Page 158: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 146

Figura 8-5 Archivo binario Nodos.dat.

— URL Base de Datos: Es la dirección IP donde reside física-mente el Motor de Base de Datos.

— Puerto: Puerta de entrada donde escucha el Motor de Basede Datos.

— Separador de Campos: Indica al protocolo YOSUKO V.2.0

cómo tiene que presentar la información, después de haberejecutado el comando Select.

La estructura del archivo se muestra en la figura 8-6 de la pág. 147.

Descripción Operativa del Sistema de

Integración

La Aplicación Externa, denominado “ApliExt” a modo de ejemplo, so-licita a YOSUKO V. 2.0 que envíe un archivo del Nodo 1 al Nodo 3 .

Page 159: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 147

Figura 8-6 Archivo binario Proc.dat.

Se realiza de la siguiente forma:

• El programador de la ApliExt graba en él Nodo 1:

— Archivo Activ.dat:

∗ Actividad = 1, Nombre de la actividad = “Sistema Dinámicode Transferencia”, Carpeta de trabajo = “D:/ACT1/”.

— Archivo Proc.dat:

∗ Actividad =1, Orden de trabajo = 1, Tipo de proceso =1, Nodo destino = 3, Tipo de transmisión = 1.

— Archivo Read.dat:

Page 160: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 148

∗ Estado = 1, Código de Actividad = 1, Orden de Trabajo= 1, Nombre del Archivo = “MisFotos.zip”, Número deproceso = 100, Tiempo de espera = 2.

• YOSUKO V 2.0 , en el Nodo 1, realiza el siguiente proceso:

— Lee el archivo Read.dat, detecta que tiene un proceso pendi-ente, porque tiene un uno en el campo estado.

— Graba el campo estado un dos.

— Toma el campo Actividad, y lee el archivo Activ.dat, realizauna búsqueda secuencial para extraer el nombre de la activi-dad, y la carpeta del lugar de trabajo.

— Lee el archivo Proc.dat, compara los campos Actividad, Ordende trabajo. Si encuentra un registro con iguales característi-cas, toma los datos tipo de proceso, nodo destino, tipo detransmisión.

— Detecta el mejor camino. Transmite el archivo, primero alNodo 2, y despues al Nodo 3. Ver Capítulo 6, Grafos Completo(Matriz de Adyacencia).

— Transmite la información al Nodo 2.

La Aplicación Externa denominada “ApliVtaBoleto” a modo ejem-plo, solicita a YOSUKO V. 2.0. que envíe un archivo del Nodo 1 al Nodo

3. Espera recibir un archivo procesado por la otra aplicación externa queestá en el Nodo 3.

Se realiza de la siguiente forma:

• El programador de la ApliVtaBoleto graba en el Nodo 1:

— Archivo Activ.dat:

∗ Actividad = 2, Nombre de la actividad = “Empresa deTransporte de Pasajeros de Larga Distancia”. Carpeta detrabajo = D:/ACT2/.

— Archivo Proc.dat:

Page 161: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 149

∗ Actividad = 2, Orden de trabajo = 2, Tipo de proceso =2, Nodo destino = 3, Tipo de transmisión = 1.

— Archivo Read.dat:

∗ Estado = 1, Código de Actividad = 2, Orden de Trabajo= 2, Nombre del Archivo = “Vtaremo.dbf”, Número deProceso = 101, Tiempo de espera = 1.

• YOSUKO V 2.0 en el Nodo 1, realiza el siguiente proceso:

— Lee el archivo Read.dat, determina que tiene un proceso pen-diente, porque tiene un uno en el campo estado.

— Graba el campo estado un dos.

— Toma el campo Actividad, y lee el archivo Activ.dat, realizauna búsqueda secuencial para extraer el nombre de la Activi-dad, y la Carpeta del lugar de trabajo.

— Lee el archivo Proc.dat, compara los campos Actividad, Ordende trabajo. Si encuentra un registro con iguales característi-cas, toma los datos tipo de proceso, nodo destino, tipo detransmisión.

— Detecta el mejor camino. Pasa el archivo, primero por el Nodo2, y después por el Nodo 3.

• YOSUKO V 2.0 en el Nodo 2 determina que no es el nodo final dela transmisión. Pasa el pedido al Nodo 3.

• YOSUKO V 2.0 en el Nodo 3 determina que es el final de la trans-misión y realiza lo siguiente:

— Analiza el campo Tipo de proceso. En este caso es dos.

— Lee el archivo Activ.dat, saca la ubicación de la carpeta.

— Graba el archivo “vtaremo.dbf”, en la carpeta donde se es-tableció para esa actividad.

— Marca con un cuatro el campo estado, la aplicación externa,del nodo 3, determina que tiene que hacer un trabajo, porqueel protocolo YOSUKO del nodo 3, está esperando una re-spuesta, para enviar de vuelta el archivo.

Page 162: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 150

— Terminado el proceso de la Aplicación Externa ApliVtaBoleto,se graba en el archivo Read.dat un valor 5 en el campo estado.

— Se determina que la aplicación externa terminó el proceso. En-tonces, se analiza el tiempo de espera de la aplicación externa,si está fuera del límite de tiempo, marca con un tres el campoEstado del archivo Read.dat y termina el proceso.

— En el caso de que está dentro del tiempo establecido por laaplicación externa, toma el archivo “vtaremo.dbf”, y trans-mite al nodo 1.

— Graba un tres en el campo Estado del archivo Read.dat.

— Termina el proceso.

La Aplicación Externa denominada “ApliSql”, a modo ejemplo, so-licita a YOSUKO V. 2.0 . que envíe un archivo, del Nodo 1 al Nodo 3.Espera recibir un archivo procesado, con la información que se extrajodel Motor de Base de Datos RRRR, que está en el Nodo 3.

Se realiza de la siguiente forma:

• El programador de la ApliSql graba en él Nodo 1:

— Archivo Activ.dat:

∗ Actividad = 2, Nombre de la actividad = “Empresa deTransporte de Pasajeros de Larga Distancia”. Carpeta detrabajo = D:/ACT2/.

— Archivo Proc.dat:

∗ Actividad = 2, Orden de trabajo = 3, Tipo de proceso =2, Nodo destino = 3, Tipo de transmisión = 2.

— Archivo Read.dat:

∗ Estado = 1, Código de Actividad = 2, Orden de Tra-bajo = 3, Nombre del Archivo = “comando.txt”, Númerode Proceso = 102, Tiempo de espera = 3, Id Usuario =KOKI, Contraseña = 123, Base de Datos = RRRR, URL=192.168.1.1, Puerto = 4000, Separador de Campo = “,”.En el campo comando.txt, va la sentencia SQL Select.

Page 163: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 151

• YOSUKO V. 2.0 en el Nodo 1, realiza el siguiente proceso:

— Lee el archivo Read.dat, determina que tiene un proceso pen-diente, porque tiene un uno en el campo estado.

— Graba el campo estado un dos.

— Toma el campo Actividad, y lee el archivo Activ.dat, realizauna búsqueda secuencial, para extraer el nombre de la Activi-dad, y la Carpeta del lugar de trabajo.

— Lee el archivo Proc.dat, compara los campos Actividad, Ordende trabajo. Si encuentra un registro con iguales característi-cas, toma los datos tipo de proceso, nodo destino, tipo detransmisión.

— Detecta el mejor camino. Pasa el archivo, primero por al Nodo2, y despues al Nodo 3.

• YOSUKO V. 2.0 en el Nodo 2, determina que no es el nodo finalde la transmisión. Pasa el pedido al Nodo 3.

• YOSUKO V. 2.0 en el Nodo 3, determina que es el final de latransmisión y realiza lo siguiente:

— Analiza el campo Tipo de proceso. En este caso es dos.

— Lee el archivo Comand.txt, que vino en el paquete recibido.

— Analiza el tipo de comando SQL, en este caso es una orden

Select.

— Ejecuta el comando SELECT.

— Graba en memoria la consulta.

— Arma un paquete con la información.

— Agrega el delimitador de campo“,”.

— Marca con un tres el campo estado.

— Analiza el tiempo máximo de espera establecido por la apli-cación externa. Si está fuera del límite de tiempo, marca conun tres el campo estado del archivo Read.dat.

— Transmite el pedido al Nodo 1.

Page 164: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 152

— Termina el proceso.

En caso que sea una orden SQL Insert, Update, Delete, el proceso esel mismo. Sólo que no transmite el archivo al Nodo 1.

Algoritmo del Sistema Integración

El algoritmo del sistema de integración se detalla seguidamente:

public void run() {

int IDAct;

int IDOrden;

int IDProc = 0;

long pedTime;

int waitTime;

int i,j,k;

String FileNam;

boolean valid = false;

try {

dbRead = new DB(”Read.dat”, 7, 20, ”rw”);

dbProc = new DB(”Proc.dat”, 15, 30, ”rw”);

for (i=0; i<dbRead.getRecCount(); i++) {

dbRead.Go(i);

// Nombre del archivo a transmitir.

Page 165: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 153

FileNam = null;

Est = (int) Integer.valueOf (dbRead.getValue(0).trim());

IDAct = (int) Integer.parseInt(dbRead.getValue(1).trim());

IDOrden = (int) Integer.parseInt(dbRead.getValue(2).trim());

FileNam = dbRead.getValue(3).trim();

IDProc = (int) Integer.parseInt(dbRead.getValue(4).trim());

waitTime = (int) Integer.valueOf(dbRead.getValue(5).trim());

pedTime = (long) Long.valueOf(dbRead.getValue(6).trim());

valid = true;

Term.dbAct.Go(IDAct-1);

// Si es 1, tiene que realizar un proceso.

if (Est == 1) {

for (j=0; j<dbProc.getRecCount(); j++) {

dbProc.Go(j);

if (Integer.valueOf(dbProc.getValue(0).trim()) == IDAct &&

Integer.valueOf(dbProc.getValue(1).trim()) == IDOrden) {

Term.TipoProc = Integer.valueOf(dbProc.getValue(2));

Term.NodDes = (int) Integer.valueOf(dbProc.getValue(3));

Term.IDProc = IDProc;

Term.TSQL = (int) Integer.valueOf(dbProc.getValue(4));

// Solo cuando es SQL

if (Term.TSQL == 2) {

Page 166: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 154

Term.DatosDB[0] = dbProc.getValue(5).trim();

Term.DatosDB[1] = dbProc.getValue(6).trim();

Term.DatosDB[2] = dbProc.getValue(7).trim();

Term.DatosDB[3] = dbProc.getValue(8).trim();

Term.DatosDB[4] = dbProc.getValue(9).trim();

Term.DatosDB[5] = dbProc.getValue(10).trim();

}

// En el caso de que el proceso sea de tipo 1 (enviar y no esperar respuesta),

// se graba un valor 3, indicando que ha terminado.

if (Term.TipoProc == 1) {

dbRead.setValue(0, ”3”);

Term.addTask(”Pedido No ” + String.valueOf(IDProc).trim() + ” termi-

nado.”);

} else {

// Si es de tipo 2 (enviar y esperar respuesta), marca con un 2, que significa

// en proceso y guarda la hora en que se ejecuto el pedido

dbRead.setValue(0, ”2”);

dbRead.setValue(6, String.valueOf(actTime.getTime()));

Term.addTask(”Esperando respuesta para el Pedido No: ” + String. valueOf

(IDProc) + ”...”);

}

dbRead.SaveRec();

Term.cmdSend_Click(Term.dbAct.getValue(2), FileNam, IDAct, waitTime);

Page 167: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 155

break;

}

}

}

// Si es 2, se esta realizando un proceso y tengo que verificar que espere una

// respuesta hasta cierto tiempo.

if (Est == 2) {

if (((actTime.getTime() - pedTime) / 60000) >= waitTime) {

Term.addTask(”Tiempo de espera agotado para el Pedido No” + String.

valueOf (IDProc));

dbRead.setValue(0, ”3”);

dbRead.SaveRec();

}

}

if (Est == 4) {

if (((actTime.getTime() - pedTime) / 60000) >= waitTime) {

Term.addTask(”Tiempo de espera agotado para Transmitir el Pedido No” +

String. valueOf (IDProc));

dbRead.setValue(0, ”3”);

dbRead.SaveRec();

}

}

// Si es 5 tengo que re-transmitir. Este valor puso la aplicacion externa a

Java.

Page 168: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 156

if (Est == 5) {

Term.addTask(”Pedido No ” + String.valueOf(IDProc) + ”: OK”);

dbRead.setValue(0, ”3”); // 3: proceso terminado.

dbRead.SaveRec();

Term.TipoProc = 1;

Term.NodDes = IDOrden;

Term.IDProc = IDProc;

Term.cmdSend_Click(Term.dbAct.getValue(2), FileNam, IDAct, 0);

}

}

dbRead.Close();

} catch (Exception e) {

if (!valid && Est == 1) Term.addTask(”El Pedido No ” + String. valueOf

(IDProc).trim() +

” posee parametros incorrectos.”);

dbRead.setValue(0, ”3”);

dbRead.SaveRec();

dbRead.Close ();

}

}

Page 169: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 157

Prueba de la Implementación Efec-

tuada

Los pasos son los siguientes:

• Se ingresa al servidor de Base de Datos, como se ilustra en la figura8-7 de la pág. 157.

Figura 8-7 Ingreso al Servidor MySQL.

• Se registra el número de serie del producto (ver figura 8-8 de la pág.158 y figura 8-9 de la pág. 158).

• Se instala el primer servidor padre YOSUKO V. 2.0, máquina 1(ver Manual del Usuario en el Anexo).

• Se instala el segundo servidor padre YOSUKO V. 2.0, máquina 2(ver Manual del Usuario en el Anexo).

• Se verifica el primer nivel de seguridad, a nivel de aplicación (vercapítulo 7 y la figura 8-10 de la pág. 159).

Page 170: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 158

1.

Figura 8-8 Pantalla de registración del producto.

Figura 8-9 Pantalla de confirmación.

• Una vez registrado el producto, se registra en la aplicación YOSUKOlos dos servidores (nodos), indicando el nombre de usuario, con-traseña, IP, puerto, actividad (ver figura 8-11 de la pág. 159).

• Se da de alta a los Nodos clientes (usuarios o servidores comunes),en el servidor primer padre.

• Se instala en la máquina 3 la versión cliente YOSUKO V. 2.0.

• Se verifica el segundo nivel de seguridad a nivel usuario, ingresandomal los datos del usuario cliente. La verificación la realiza el servi-

Page 171: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 159

Figura 8-10 Tabla Usuario de la base de datos YOSUKO.

Figura 8-11 ABM de servidores y terminales.

dor RMI Primer Servidor padre 192.168.80.5 (ver la figura 8-12 dela pág. 160).

• Una vez pasado el nivel de seguridad, el usuario cliente se registraen la aplicación (ver figura 8-13 de la pág. 161).

• Se registra la actividad (ver figura 8-14 de la pág. 162).

Page 172: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 160

Figura 8-12 Error en el segundo nivel de seguridad.

• Se cargan los procesos (ver figura 8-15 de la pág. 163).

• Se apagan los dos servidores, y se verifica el nivel de seguridad anivel usuario (ver figura 8-16 de la pág. 163).

• Una vez cargados los datos obligatorios en cada Nodo, se prueba laopción informar nodos. Este módulo se utiliza para que los demásusuarios sepan la cantidad de nodos que existe en la red teniendoen cuenta la actividad. Una vez completado este paso, se podrácalcular las reglas o rutas, que existen entre los nodos.

La figura 8-17 de la pág. 164 muestra la consola sin nodos, en esperade que se le informe sobre los demás nodos.

La figura 8-18 de la pág. 165 muestra nodos activos.

Prueba de Transmisión de Paquetes

Los pasos para realizar la prueba de transmisión son los siguientes:

Page 173: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 161

Figura 8-13 Registro del cliente en la aplicación.

• Se ejecuta el programa de vieja generación (legacy o aplicaciónlegada o heredada), para probar los enlaces de comunicación (verfigura 8-19 en la pág. 165.

• Se transmite un paquete del nodo Posadas (IP 192.168.80.4) alservidor 5 (IP 192.168.80.1) (ver figura 8-20 de la pág. 166).

• Se verifica la encriptación de los datos (ver figura 8-21 de la pág.166).

Page 174: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 162

Figura 8-14 Registro de la actividad.

Prueba con Aplicación Externa deVentas de Boletos

Los pasos son los siguientes:

• Solicita un pedido de ventas de boletos, desde Posadas a Retiro,fecha 19/02/2006, 20 horas, como se ve en la figura 8-22 de la pág.167.

• En la figura 8-23 de la pág. 167 se muetra cómo el protocoloYOSUKO toma el pedido de la aplicación externa y busca el mejorcamino.

Page 175: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Figura 8-15 Registro de procesos.

Figura 8-16 Verificación del nivel de seguridad a nivel usuario.

Page 176: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 164

Figura 8-17 Panel sin nodos.

Page 177: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 165

Figura 8-18 Terminal de control con nodos activos.

Figura 8-19 Pantalla de aplicación de antigua generación (lenguaje Clipper5.2).

Page 178: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 166

Figura 8-20 Transferencia entre dos nodos.

Figura 8-21 Archivo encriptado.

Page 179: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Metodología de Integración de YOSUKO V.2.0 y Aplicaciones Informáticas 167

Figura 8-22 Aplicación de ventas de boletos.

Figura 8-23 Detección del mejor camino por parte de YOSUKO paraatender una aplicación externa.

Page 180: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 9

Conclusiones y Futuros Traba-jos

Los objetivos generales de la tesis, enunciados en la introducción, se re-sumen como sigue:

• Se deberá desarrollar un sistema experto basado en reglas (en lenguajeJava).

• Se deberá gestionar el tráfico entre servidores remotos, utilizandocomunicación de bajo costo, detectando el mejor camino.

• Se deberá poder interactuar con los diferentes motores de bases dedatos o sistemas de archivos de los distintos servidores mediantecomandos de SQL.

• Se integrará aplicaciones, desarrolladas en la década de los años70s, a través de un contenedor de pedidos.

• Se deberá utilizar algoritmos de seguridad para dar protección alos datos recibidos o enviados por el contenedor de pedidos.

168

Page 181: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Conclusiones y Futuros Trabajos 169

Luego de haberse realizado el presente trabajo, se llegó a las siguientesconclusiones principales:

• Se ha desarrollado un sistema experto en lenguaje Java. Se adjuntaun CD con las fuentes del sistema.

• Se pudo utilizar con el sistema de protocolo desarrolado enlaces decomunicación de bajo costo (ADSL) (ver, Análisis de Costo portipo de Enlaces de Comunicación, capitulo 6).

• La aplicación desarrollada para gestión de tráfico entre aplicaciones,permite interactuar con motores de bases de datos (ver capítulo 8).Por razones de tiempo y costo sólo se ha probado con el motor deBase de Datos MySQL. Quedan como pruebas futuras trabajar conlos motores de base de datos Oracle, Informix, DB2 UDB, etc.

• En cuanto a integrar aplicaciones desarrolladas en la década delos años 70s, se realizaron pruebas intensivas con la aplicación deVentas de Boletos, programada en su oportunidad con el lenguajeClipper 5.0. para una conocida empresa de transporte colectivo conamplia cobertura en el país y en países vecinos (ver capítulo 8).

• Respecto al uso de algoritmos para dar protección a los datos, seimplementaron algoritmo de encriptación y de dígito verificador(ver capítulo 6).

• El trabajo desarrollado, una vez implementado a nivel comercial,permitiría:

— Ahorro en la reprogramación del software.

— Ahorro en servidores costosos.

— Ahorro en motores de bases de datos.

— Ahorro en costo de comunicación.

— Ahorro en licencias de software.

— Seguridad de datos en el momento de transmitir la informa-ción.

Page 182: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Conclusiones y Futuros Trabajos 170

En cuanto a los posibles trabajos futuros se menciona lo siguiente:

• Se deberá implementar el protocolo desarrollado en los dispositivosmóviles (celulares, pocket PC, asistentes personales, etc.).

• Se desarrollarán pruebas con transmisión de imágenes entre celu-lares, para obtener un sistema de video conferencia.

• Se efectuarán verificaciones de funcionamiento con otros motoresde bases de datos, tales como Oracle, Informix, DB2 UDB, etc.

Nota: Además se destaca que los fuentes de la aplicación serán uti-lizados en futuros cursos de postgrado que se tiene previsto impartir.

Page 183: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Parte III

Anexo

171

Page 184: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Capítulo 10

Anexo

Detalles de los Objetos Más Impor-tantes del Protocolo YOSUKOV. 2.0

En esta sección se describen los objetos más importante del protocoloYOSUKO V. 2.0.

Main.java(): Arranca la aplicación:

• LoginC.Java(): Solicita el Nombre del Usuario, Clave, IP del Servi-dor. Verifica por RMI los datos ingresados.

• LoginS.Java(): Registra el producto en el Motor de Base de DatosMySQL. Este módulo activa la protección a nivel software:

— Solicita el Nombre del Usuario, Clave, IP local, Puerto.

— Conecta a un Motor de Base de Datos MySQL.

172

Page 185: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 173

— Registra en el servidor la licencia.

— Graba los datos del servidor en el archivo control.dat.

Una vez hecha la consistencia, se convoca a la pantalla principal.

FrmMain.java(): Formulario principal del sistema:

• ABMAct.java(): Se define la actividad, puede ser el nombre deuna empresa, o algún nombre representativo. Ej. Administración,Finanzas etc.:

— Es obligatorio ingresar la carpeta de trabajo, el Servidor re-aliza su transacción de actividad, en ese espacio del disco.

— Los datos ingresado se graban en el archivo Activ.dat.

• ABMNodos.java(): En este objeto se registran los nodos (Servi-dores o Clientes), que estarán activos en la red. Los datos ingresa-dos se utilizan para verificar, a través de RMI, si el usuario tienepermitido estar en la red.

• ABMProc.java(): En este objeto se definen los proceso que puederealizar un nodo, con una Aplicación Externa.

• ABMUsers.java(): Es una interfaz de usuario. Se utiliza para cap-turar los datos, conectar con el servidor (primer padre), y verificarpor RMI la veracidad de los datos.

• Config.java(): En este objeto se configura el servidor local o clientelocal.

• DB.java(): Este objeto se utiliza como contenedor de archivos conextensiones variables (XLS, DOC, EXE, BMO, JPG, etc.). Lee ygraba cualquier tipo archivo.

• Grafico.java(): Se utiliza para representar gráficamente los nodosque están conectados, y mostrar el mejor camino, cuando se va atransmite información.

Page 186: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 174

• ObjMsg.java(): Este es un objeto Serializable. Se utiliza paratransmitir la información entre los diferentes nodos.

• DesEncrip(): Descencripta los datos.

• Objrem.java(): En este objeto se implementa la programación RMI.

• SocketC.java(): Se encarga de crear sockets Servidor y socketsClientes. Esta clase se extiende de la clase Thread (hilo), parapoder escuchar peticiones de los clientes.

• Escribir(ObjMsg Pedido): Se ejecuta cuando se intenta transmitirun paquete al nodo destino.

• LeerNodos(): Se encarga de leer todos los nodos que están registra-dos en la tabla Nodos.dat.

• CalcDV(): Devuelve como resultado un número que se usa comodígito verificador para los paquetes de transmisión.

• run(): Evento que convoca objetos.

• ActNodos(): Actualizar Nodos.

• RecPed:(): Entrada de Pedidos.

• setPing(): Actualizar todos los Valores Ping.

• ExecSQL(): Consulta SQL.

• InfNodos(): Envía información a los Nodos.

• LeerPing(): Calcula el Ping.

• EnviarMsg(): Envía mensajes.

• ClientThread(): Crea un hilo.

• ActNodos(): Se ejecuta cuando se recibe un paquete que contieneinformación de Nodos, para actualizar.

• getPing(): Crea un hilo para leer un ping.

Page 187: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 175

• Terminal.java(): Pantalla principal del sistema. Muestra una ven-tana con todos los Nodos y los estado de la interfaz que se comunicacon la clase SocketC para poder enviar y recibir datos.

• timer.setInitialDelay(): Tiempo 1.

• timer2.setInitialDelay(): Tiempo 2.

• Graph.setEstNodo(): Verifica el estado del Nodo y lo pinta.

• Graph.repaint(): Dibuja todos los nodos.

• Server.LeerPing(): Lee los valores de Ping.

• Server.InfNodos(): Informa los nodos activos a toda las terminales.

• LeerNodos(): Carga en memoria todos los Nodos que actúan en laActividad seleccionada.

• DrawNodos(): Dibuja en memoria el gráfico.

• Graph.repaint(): Baja en pantalla el gráfico.

• cmdBegin_Click(): Activa el servidor con una conexión Socket.

• cmdSend_Click(): Envía un mensaje por medio de Socket.

• DrawNodos(): Dibuja los Nodos en forma circular en la pantalla.(para realizar el gráfico utiliza la función Seno, Coseno).

• ActNodos(): Informa el estado de los Nodos.

• addTask(String Task()): Agrego el proceso en el área de texto,muestra los eventos del Nodo.

• CalcRegla(): Calcula la mejor ruta o camino, teniendo en cuentael Nodo destino.

• ProcThread extends Thread: Se ejecuta cuando se dispara el 1er.temporizador, cada 2,5 seg. Lee toda la tabla Read.dat en buscade procesos a realizar.

Page 188: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 176

Manual del Usuario de YOSUKO V.2.0

Se adjunta un CD con el contenido que se indica en la figura 10-1 de lapág. 176.

Figura 10-1 Contenido del CD de la tesis.

Pasos Para la Instalación Modo Servidor

Los pasos son los siguientes:

• La PC en donde se ejecutará el sistema YOSUKO V.2.0 deberátener instalado el Runtime de Java V.5.0_03 o superior, el cual seadjunta en el CD de Instalación.

• Copiar todos los archivos de instalación a una carpeta (ej.: C:/Yosuko),con excepción del driver paraMySQL (mysql-connector-java-3.1.12-bin.jar). Esta carpeta será la “Carpeta de Trabajo” del Sistema,la cual se deberá configurar en la pantalla Configuración Terminal,como se ve en la figura 10-3 de la pág. 180.

• Copiar el archivo mysql-connector-java-3.1.12-bin.jar a la carpetaen donde se instaló elRuntime de Java (ej.: C:\jre1.5.0_03\lib\ext\).Si se encuentra en otra ubicación, buscar el subdirectorio ..\lib\ext\.

Page 189: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 177

• Ejecutar el archivo rmiRegistry.exe, que se encuentra en el directo-rio bin delRuntime de Java (ej.: C:\jre1.5.0_03\bin\rmiregistry.exe).

• Minimizar la aplicación rmiregistry.exe y ejecutar Servidor.jar.

• Luego de crear las Actividades en la pantalla ABM de Actividades.

• Se deberán crear las respectivas carpetas de trabajo, caso contrario,no se podrá enviar o recibir información. Ver la figura 10-4 de lapág. 181.

Pasos Para la Instalación Modo Cliente

Los pasos son los siguientes:

• La PC en donde se ejecutará el sistema YOSUKO V.2.0 deberátener instalado el Runtime de Java v.5.0_03 o superior, el cual seadjunta en el CD de Instalación.

• Copiar todos los archivos del paquete de Instalación a una carpeta(ej.: C:/Yosuko), con excepción del driver para MySQL (mysql-connector-java-3.1.12-bin.jar). Esta carpeta será la “Carpeta deTrabajo” del Sistema, la cual deberá configurarse en la pantalla deConfiguración del Terminal, como se ve en la figura 10-3 de la pág.180.

• Copiar el archivo mysql-connector-java-3.1.12-bin.jar a la carpetaen donde se instalo elRuntime de Java (ej.: C:\jre1.5.0_03\lib\ext\).Si se encuentra en otra ubicación, buscar el subdirectorio ..\lib\ext\.

• Ejecutar la aplicación Cliente.jar. Luego de crear las Actividadesen la pantalla ABM de Actividades, como de ve la figura 10-4 de lapág. 181.

• Se deberá crear las respectivas carpetas de trabajo, caso contrario,no se podrá enviar o recibir información.

• Deberá existir el primer Servidor Padre, caso contrario no se podráingresar al sistema.

Page 190: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 178

Panel de Control

La pantalla Panel de Contol tiene el diseño que se muestra en la figura10-2 de la pág. 179; el usuario podrá poner en marcha el Servidor,presionando el botón Arrancar.

El grafico de la derecha mostrará el estado de los nodos de la red dela actividad seleccionada en el combo Actividad.

• Estado del Nodo: Nodo Local (amarillo), Nodo Activo (verde),Nodo Inactivo (rojo).

• Area de Texto Procesos: Muetra todas las acciones que el sistemaestá realizando, las que pueden ser, iniciar servidor, recibir pedidos,enviar pedidos, recibir información de Nodos, redireccionar pedidos,etc.

• Botón Grabar Log: Permite grabar las actividades que tubo el Nodoen un archivo denominado Proceso.log.

Nota: Sólo para la versión Servidor estará disponible el botón Infor-

mar Nodos.

Configuración

La pantalla Configuración del Terminal (ver figura 10-3 de la pág. 180,permite configurar el nodo local.

Datos solicitados: ID del Nodo , descripción, contraseña, IP local,puerto “escucha” de pedidos, y la Carpeta de Trabajo. Esta carpeta esde suma importancia, ya que todos los archivos del paquete de insta-lación deberán estar ubicados allí. La ruta deberá colocarse con barrasinvertidas y terminar con una de ellas (ej.: “c:/Yosuko/”).

Page 191: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 179

Figura 10-2 Pantalla panel de control.

ABM de Actividades

Esta pantalla permite realizar Altas, Bajas y Modificaciones de las dis-tintas “Actividades” que el Sistema YOSUCO deberá ejecutar (ver lafigura 10-4 de la pág. 181.

Datos a Ingresar : ID de Actividad, Descripción, Carpeta de Trabajo(deberá colocarse con barras invertidas y terminar con una barra, ej.:“d:/Actividad1/”).

Los archivos de transferencia, dependiendo de la actividad, debenestar situados en esta carpeta.

ABM de Terminales (Modo Servidor)

Permite realizar Altas, Bajas y Modificaciones a todos los Nodos de laRed. Sólo está activo modo servidor (ver la figura 10-5 de la pág. 181).

Page 192: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 180

Figura 10-3 Pantalla de configuración del terminal.

Una vez que el Administrador (Servidor) registra los datos (ID deNodo, Descripción, Contraseña, Puerto, IP, Actividad) de los Nodosque posean la versión Cliente de YOSUKO, éste deberá informar a susClientes quiénes son los que participan en el intercambio de informacióndentro de la red.

Para ambas versiones (Cliente y Servidor), el botón “Crear Reglas”permitirá generar todas las rutas posibles, grabando en el archivo Re-

glas.dat, para que YOSUKO pueda elegir el mejor camino, para el envíode pedidos de un Nodo Origen a otro Final.

ABM de Procesos

Esta pantalla es la interfaz de usuario, entre la Aplicación Externa y elprotocolo YOSUKO V.2.0.

Se registran procesos, que podrá realizar el protocolo (ver figura 10-6de la pág. 182).

Page 193: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Anexo 181

Figura 10-4 Pantalla ABM de actividades.

Figura 10-5 Pantalla de ABM de terminales.

Estos procesos tendrán un No de orden auto numérico dependiendode la actividad.

Datos a Ingresar : Tipo de Proceso (Transmitir; Transmitir y es-perar respuesta), Nodo destino, Tipo de Transmisión (cualquier tipo dearchivos o comando SQL).

En el caso de que sea un comando SQL, se deberá ingresar el Nombrede Usuario de la Base de Datos, la contraseña de la Base de Datos, elnombre de la Base de Datos, la dirección URL de la Base de Datos, elpuerto, y el separador de campo (se utiliza cuando ejecuta el comandoSELECT, sirve para diferenciar los campos, de la consulta.).

Page 194: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Figura 10-6 Pantalla para ABM de procesos.

Page 195: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Bibliografía

[1] Abramson, N., Teoría de la Información y Codificación - 6/E,Paraninfo, España, 1986. ISBN 84-283-0232-4.

[2] Bourdette, J., Aplicaciones de Negocio en Java, PC Fornum S.A.,ISBN 987-9131-79-1, 1998.

[3] Carracedo Gallardo, J., Seguridad en Redes Telemáticas. Mc GrawHill, España, 2004. ISBN 84-481-4157-1.

[4] Castillo, E.; Cobo, A.; Gómez, P.; Solares, C., Java - Un Lenguaje

de Programación Multiplataforma para Internet, Paraninfo, ISBN84-283-2368-2, 1997.

[5] Castillo, E.; Gutiérrez, J. M.; Haidi, A. S., Sistemas Expertos y

Modelos de Redes Probabilísticas, Academia de Ingeniería, ISBN 84-600-9395-6, 1996.

[6] Castro Marcel (2002). Sistemas Expertos. Consultado en http://strix.ciens.ucv.ve/ ~iartific/ Material/ PP_Sistemas_Expertos.pdf.

[7] Cathan Cook, Microsoft Corporation, Arquitectura de Bases de

Datos: El Motor de Almacenamiento, artículo publicado en el portalde Microsoft el 13 de Enero del 2003.

[8] Comer, D. E., Computer Networks and Internets, with Internet Ap-

plications - 3/E, Prentice Hall, USA, 2001. ISBN 0-13-091449-5.

[9] Comer, D. E., Hands-On Networking with Internet Technologies -1/E, Prentice Hall, USA, 2002. ISBN 0-13-048003-7.

183

Page 196: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

BIBLIOGRAFÍA 184

[10] Comer, D. E., Internet Book, The: Everything You Need to Know

About Computer Networking and How the Internet Works - 3/E,Prentice Hall, USA, 2000. ISBN 0-13-030852-8.

[11] Coulouris G.; Dollimire J.; Kindberg, E. Distributed Systems: Con-

cepts and Design, Addison - Wesley, 3sd Edition, 2001.

[12] A. M. Davis; Remontando: Una Necesidad Simple. IEEE Software,12(5), Septiembre 1995.

[13] Huidobro, J. M., Tecnologías Avanzadas de Telecomunicaciones,

Thomson Paraninfo, España, 2003. ISBN 84-283-2853-6.

[14] Jaworski, J., Java 1.2 al Descubierto, Prentice - Hall, ISBN 84-8322-061-X, 1999.

[15] Kennedy, D., Microsoft Corporation, Agrupación de Conexiones con

Analisys Services de SQL Server 2000, publicado originalmente enmayo de 2001, actualizado en noviembre de 2002.

[16] Leffler, M. McKusick, M. Karels, The Design and Implementation

of the 4.3BSD UNIX Operating System, S.J, Quaterman Addison-Welsey, 1989

[17] Microsoft,Windows NT Workstation Kit de Recursos, McGraw-Hill/ Interamericana de España, ISBN 84-481-1095-5, 1996.

[18] Poratti, G. G., Redes: La Guía de Referencia Actual y Definitiva,Mp. Ediciones S.A., ISBN 987-526-208-0, 2004.

[19] Recio, M. J., Redes Locales, ISBN 84-89245-17-7, 1997.

[20] Sheldon, T., Encyclopedia of Networking and Telecommunications -3/E. Mc Graw Hill, USA, 2001. ISBN 0-072-12005-3.

[21] Sheldon, T., LAN Times - Enciclopedia de Redes - Networking -2/E. Mc Graw Hill, España, 1997.

[22] Randall B. Smith, David Ungar. Programming as an Experience:

The Inspiration for Self. Sun Microsystems Laboratories. 1995.

Page 197: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

BIBLIOGRAFÍA 185

[23] Stallings, W., Comunicaciones y Redes de Computadores - 5/E.Prentice Hall, España, 1999. ISBN 84-89660-01-8.

[24] Stevens Englewood Cliffs, UNIX Network Programming, NJ: Pren-tice Hall, 1990.

[25] Stallings, W., Cryptography and Network Security: Principles and

Practice - 2/E, Prentice Hall, USA, 1999. ISBN 0-13-869017-0.

[26] Stallings, W., Data & Computer Communications - 6/E, PrenticeHall, USA, 2000. ISBN 0-13-084370-9.

[27] Stallings, W., High-Speed Networks and Internets: Performance andQuality of Service - 2/E, Prentice Hall, USA, 2002. ISBN 0-13-032221-0.

[28] Stallings, W., Local and Metropolitan Area Networks - 6/E, PrenticeHall, USA, 2000. ISBN 0-13-012939-9.

[29] Stallings, W., Network Security Essentials: Applications and Stan-

dards - 1/E., Prentice Hall, USA, 2000. ISBN 0-13-016093-8.

[30] Stallings, W., Wireless Communications and Networks - 1/E, Pren-tice Hall, USA, 2002. ISBN 0-13-040864-6.

[31] Subramanian, M., Network Management: Principles and Practice -1/E. Addison Wesley, USA, 2000. ISBN 0-201-35742-9.

[32] Tanenbaum, A. S., Redes de Computadoras - 3/E. Prentice HallHispanoamericana, México, 1997. ISBN 968-880-958-6.

[33] Tanenbaum, A. S., Van Oteen, M., Distributed Systems: Principles

and Paradigms - 1/E. Prentice Hall, USA, 2002. ISBN 0-13-088893-1.

[34] J.E. White, A High-Level Framework for Network-Based Resource

Sharing RFC 707, December 1975

[35] Weiss y Kulikowski, Sistemas Expertos, Prentice-Hall, 1984.

Page 198: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

Índice Alfabético

actividades, 179ADSL, 3, 113anexo, 172API, 33, 87aplicación distribuida

seguridad de la, 51aplicaciones distribuidas

construcción de, 37diseño, 30en Internet, 31

applet, 86ARP, 23ARPANET, 14Arpanet, 23arquitecturas, 10aspectos

conceptuales, 2ATM, 12autenticación, 52autentificación, 35

seguridad, 133

B-ISDN, 10base

de conocimiento, 69modelado, 69

bases de datos, 2broadcasting, 21

código, 88

CDS, 37clases, 79cliente, 97, 99, 102, 177coherencia

control de, 67COM, 38, 40computación

distribuida, 88entorno de, 37

conclusiones, 168confidencialidad

seguridad, 132configuración, 178conocimiento

abstracto, 59cadena del, 60concreto, 59de control, 58declarativo, 57definición, 60fuentes, 60tipos de, 59

controlde acceso, 52

control de accesoseguridad, 133

CORBA, 42, 88CPA, 113CPB, 113

186

Page 199: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

ÍNDICE ALFABÉTICO 187

dígitoverificador, 135

DARPA, 16datagrama, 17, 23

estructura, 18DCE, 37, 39DCOM, 38, 40

funcionamiento, 41desencriptar

datos, 136DFS, 37direccionamiento, 21dominio, 25DTS, 37

encapsulamiento, 81encriptar

datos, 136Ethernet, 12, 23excepciones, 87

FTP, 26futuros

trabajos, 168

gateways, 20GDS, 37grafos, 73, 127

herencia, 83hipótesis, 4HTTP, 26

IDL, 42IIS, 26impacto

de la investigación, 5implementación

prueba, 157

InputStream, 98integridad

seguridad, 132Internet, 2, 14, 26intranet, 26introducción

a la seguridad, 132a los protocolos de comuni-

cación de datos, 8a los sistemas distribuidos, 29al producto desarrollado, 105

IP, 16, 17IPX, 12ISO, 10

Java, 4, 27, 80, 85, 176características, 86invocación remota de méto-

dos, 44modelo de objeto distribuido

de, 45runtime, 176

JDBC, 2, 88JDK, 47, 49justificación

del estudio, 5JVM, 45, 50

kerberos, 42

LAN, 9lenguaje

orientado a objetospropiedades, 80

listade adyacencia, 75

métodos

Page 200: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

ÍNDICE ALFABÉTICO 188

de comunicación, 27marco

conceptual, 6matriz

de adyacencia, 74MIT, 42modelos

de diseño de programas, 6modus ponens, 64modus tollens, 64motor

de inferencia, 69motor de inferencia, 62multihilo, 87MySQL, 106

navegador, 26no repudio

seguridad, 133

objetivogeneral, 3

objetivosespecíficos, 4

objeto, 78, 79componente distribuidomodelo de, 38

remoto, 91objetos

invocación remota de méto-dos, 50

OCE, 37, 38ODBC, 2OLE, 38OO, 82, 86ORB, 42ORPC, 41OSI

función, 11funciones de los niveles, 11modelo de referencia, 10niveles, 10

OutputStream, 98

panelde control, 178

pasarargumentos y valoresde retorno, 49

plataformaindependencia de la, 86

polimorfismo, 85POO, 77POP3, 27procesos, 180producto

desarrollo, 105programación

orientada a objetos, 77protocolos

de comunicación de datos, 8prototipo

diferentes versiones, 106objetivos, 106

pruebaaplicación externaventa de boletos, 162

de transmisiónde paquetes, 160

PYMES, 5

read.dat, 141reglas

compilación, 67encadenamiento, 66, 67

Page 201: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

ÍNDICE ALFABÉTICO 189

RMI, 45, 50, 88, 107, 138, 141,177

cliente de, 95de Java, 48capas, 46

invocación remota de méto-dos, 6

rmic, 92rmiregistry, 93RML, 88routing, 20RPC, 35, 36, 38, 41ruteo, 19

seguridad, 87en transmisión de información,

135física, 133nivel aplicación, 133nivel usuario, 137niveles de información, 132política de, 89

servidor, 96, 176, 179centralizado, 110

servidoresde nombres, 24descentralizados, 111

sesiónremota, 109

sistemade dominios, 24de integración, 146, 152diagramaen bloque, 138

experto, 3basado en reglas, 105componentes, 58

definición, 57sistemas

cliente / servidor, 30distribuidos, 29expertos, 57basados en reglas, 62clasificación, 61

SMTP, 26socket, 96, 102

servidor, 97sockets, 32SPX, 12SQL, 4, 106, 107, 141, 145SSL, 48, 52stub

del cliente, 36del servidor, 36

stubs, 92subredes, 21

TCP, 16, 27, 31, 34, 48TCP/IP, 10, 12, 15, 32, 107

protocolo, 14protocolos que trabajan junto

con, 26tecnología

cliente / servidor, 2Telnet, 26Token Ring, 12transporte

seguridad en el, 52TRP, 117, 119, 124

UDP, 27, 34, 48UNIX, 33

VNC, 109VPN, 109

Page 202: Maestría en Informática y Computaciónexa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/... · iii Se aúnconti ocn una revisión de los aspectos ás sobresastliene ed

ÍNDICE ALFABÉTICO 190

WAN, 9Weiss y Kulikowski

metodología de, 68

YOSUKO, 105, 107, 113, 115, 127,138, 140, 141

manual de usuario, 176objetos, 172