SISTEMA ELECTRONICO PARA EL CONTROL DE APLICACIONES EN UN PC NICOLAS RIOS RODRIGUEZ UNIVERSIDAD DE LA SALLE FACULTAD DE INGENIERÍA DE DISEÑO Y AUTOMATIZACIÓN ELECTRÓNICA BOGOTA 2005 SISTEMA ELECTRONICO PARA EL CONTROL DE APLICACIONES EN UN PC NICOLAS RIOS RODRIGUEZ Trabajo de Grado Doctor JAIME HUMBERTO CARVAJAL ROJAS Asesor del Proyecto UNIVERSIDAD DE LA SALLE FACULTAD DE INGENIERÍA DE DISEÑO Y AUTOMATIZACIÓN ELECTRÓNICA BOGOTA 2005 La responsabilidad de los conceptos emitidos en el presente escrito es exclusiva de su Autor. Este trabajo en primer lugar lo dedico a Dios, a mis Padres: Maria Elena una ejemplar mujer, madre y profesional que con su iniciativa y amor por las cosas que emprende nos ayuda a comprender el significado de la vida, Gracias Mama y Hernando que con su dedicación, apoyo, esfuerzo y cariño hizo posible que las cosas difíciles se tornaran divertidas y emotivas, Gracias Papa, siendo ellos quienes aportaron a éste trabajo su experiencia profesional, que ante todo siempre me apoyaron y creyeron en mí, y son mi orgullo y ejemplo a seguir, agradezco a Rex, su apoyo y determinación en momentos cruciales, agradezco a mis amigos: Andres, Ronald, William su invaluable amistad.. Pero Definitivamente éste trabajo se basó en el amor y confianza ilimitada de la mujer que alegra los días de mi vida, Diana Lorena Sarmiento Rodríguez, mujer a la que Admiro, Respeto, Amo, Thanks Lips of FIRE. CONTENIDO I Objetivo General 1 II Objetivos Específicos 1 1 Capitulo I Introducción 2 2 Capitulo II Sistemas Distribuidos 3 2.1 Definición 3 2.2 Características 2.2.1 Concurrencia 2.2.2 Carencia de reloj global 2.2.3 Aislamiento del sistema 3 3 3 4 2.3 Desarrollo tecnológico 2.3.1 Historia 2.3.2 Modelo de procesamiento central 2.3.3 Modelo de servidores 2.3.4 Modelo Cliente Servidor 4 4 8 9 9 2.4 Conceptos Generales 2.4.1 Protocolo 2.4.2 Redes Lan 2.4.3 Redes Wan 2.4.4 Sockets 2.4.5 Mensajes 2.4.6 Modelo de referencia OSI 10 10 11 12 12 14 14 2.5 Modelo Cliente Servidor 2.5.1 Definición 2.5.2 Categorías del Servicio 2.5.3 Componentes de Software 2.5.4 Arquitecturas 2.5.5 Clasificación de los Sistemas Distribuidos 16 16 18 20 21 23 2.6 3 4 5 Protocolo de comunicaciones TCP/IP 2.6.1 Definición 2.6.2 Arquitectura 26 26 26 Capitulo III Sistemas Inalámbricos 29 3.1 Breve Introducción 29 3.2 Conceptos Generales 3.2.1 Transmisión Inalámbrica de datos 3.2.2 Medio de transporte 3.2.3 Modulación 3.2.4 Modulación ASK 30 30 31 33 33 3.3 Redes inalámbricas 3.3.1 Características 3.3.2 Redes Wi-Fi 3.3.3 Redes Bluetooth 3.3.4 Redes Gsm 35 35 37 39 43 Capitulo IV Identificación del entorno de Trabajo 46 4.1 4.2 47 47 Elementos Disponibles Viabilidad del proyecto Capitulo V Diseño de los Sistemas de Transmisión y Recepción de Datos 53 5.1 Modelo de Comunicación 53 5.2 Requerimientos de Hardware 55 5.3 Selección de componentes 55 5.4 5.3.1 Módulos RF 5.3.2 Lenguaje de Programación 55 57 Implementación del Sistema Inalámbrico 58 5.4.1 Consideraciones técnicas 5.4.2 Desarrollo y Construcción del Sistemas Transmisor y Receptor 58 61 5.5 5.4.2.1 Circuito Transmisor 5.4.2.2 Circuito Receptor 5.4.3 Pruebas piloto 5.4.4 Puesta en funcionamiento 64 68 69 72 Implementación del Sistema Distribuido 74 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.5.6 5.5.7 Identificación del entorno Requisitos previos Desarrollo de la Aplicación Servidor Desarrollo de la Aplicación Cliente Diseño de la base de Datos Pruebas Iniciales Puesta en funcionamiento 74 74 76 84 86 88 95 6 Conclusiones 98 7 Bibliografía 101 8 ANEXOS Anexo A Anexo B Anexo C Anexo D 102 103 110 117 OBJETIVO GENERAL Optimización de las tareas y procedimientos a los cuales se someten las computadoras, con el fin de garantizar una alta cobertura, soporte adecuado, a fin de que las actividades desarrolladas en el laboratorio sean más eficientes, y fáciles de llevar a cabo. OBJETIVOS ESPECÍFICOS 1. Implementar un medio efectivo de comunicación entre la aplicación y los dispositivos electrónicos de RF. 2. Desarrollar una interfaz de aplicación interactiva y de fácil manejo para el usuario. 3. Construir un circuito electrónico que garantice la conectividad y versatilidad actual con un computador y su sistema operativo. 4. Supervisar el estado particular de alguna estación en servicio a fin de generar un reporte de su operabilidad. 5. Diseñar estrategias que permitan el mejoramiento en cuanto a la asignación programación y control de seguridad. 1 INTRODUCCIÓN El presente trabajo contiene la descripción clara y detallada del diseño y construcción de un sistema para personalizar el uso de las funciones de un computador, es decir controla la forma en la cual uno o más usuarios hacen uso de aplicaciones del computador. Dada las condiciones de uso de los computadores o PC´S y el avance en las aplicaciones que se pueden llevar a cabo con estos equipos es lógico pensar que se debe implementar una forma de controlar el uso de los computadores debido a que ni todas las personas que los utilizan lo usan todo ni todo el tiempo se usa el mismo tipo de aplicaciones, es por eso que con este trabajo académico se pretende dar a conocer una solución que integra la tecnología electrónica y la tecnología de sistemas para brindar al usuario como al administrador del computador facilidad y eficiencia al momento de utilizar el equipo. En este trabajo se encontraran los requerimientos básicos o necesidades a satisfacer con el proyecto: la recopilación de datos, la planeación de las soluciones, la escogencia de métodos y componentes, la evaluación de los procesos que intervienen y su puesta en funcionamiento. Apoyado en el uso de aplicaciones basadas en el modelo cliente servidor que permitirán un control justo de las acciones a tomar. 2 CAPITULO II SISTEMAS DISTRIBUIDOS 2.1 DEFINICIÓN Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor”. 2.2 CARACTERÍSTICAS 2.2.1 Concurrencia Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red. 2.2.2 Carencia de reloj global Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, esta más bien distribuida a los componentes. 3 2.2.3 Aislamiento del Sistema Cada componente del sistema puede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando. 2.3 DESARROLLO TECNOLÓGICO 2.3.1 Historia Los sistemas distribuidos han estado relacionados históricamente con la arquitectura de las computadoras en las cuales se ejecutan, razón por la cual su historia puede analizarse según las siguientes generaciones y sus principales características: 1. Generación Cero (década de 1940): • Carencia total de sistema operativo. • Completo acceso al lenguaje de máquina. 2. Primera generación (1945-1955): bulbos y conexiones: • En los años cincuenta comienzan como transición entre trabajos, haciendo la misma más simple. 3. Segunda generación (1955-1965): transistores y sistemas de procesamiento por lotes (batch): 4 • En los años sesenta aparecen los sistemas distribuidos con: • Multiprogramación: varios programas de usuarios se encuentran al mismo tiempo en el almacenamiento principal, cambiando el procesador rápidamente de un trabajo a otro. • Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para incrementar el poder de procesamiento. • Posteriormente aparece la independencia de dispositivo: • El programa del usuario especifica las características de los dispositivos que requieren los archivos. • El sistema asigna los dispositivos correspondientes según los requerimientos y las disponibilidades. 4. Tercera generación (1965-1980): circuitos integrados y multiprogramación: • Difusión de la multiprogramación: • Partición de la memoria en porciones, con trabajos distintos en cada una de ellas. • Aprovechamiento del tiempo de espera consecuencia de operaciones de e / s, para utilizar la CPU para otros procesos. 5 • Protección por hardware del contenido de cada partición de memoria. • Aparición de técnicas de spooling: • Simultaneous Peripheral Operation On Line: operación simultánea y en línea de periféricos. • Almacenamiento de trabajos de entrada y de salida en dispositivos transitorios rápidos (discos), para disminuir el impacto de los periféricos más lentos. • Son sistemas de modos múltiples, es decir que deben soportar sistemas de propósitos generales; son grandes y complejos pero muy poderosos. • Interponen una capa de software entre el usuario y el hardware. • Aparecen los lenguajes de control de trabajos, necesarios para especificar el trabajo y los recursos requeridos. • Soportan timesharing (tiempo compartido), variante de la multiprogramación con usuarios conectados mediante terminales en línea, permitiendo la operación en modo interactivo o conversacional. • Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes, especialmente para usos industriales o militares. 6 • Se difunden las computadoras de rango medio. 5. Cuarta generación (1980-1990): computadoras personales: • Aparición de software amigable con el usuario, destinado a usuarios no profesionales y con una interfase gráfica muy desarrollada. • Desarrollo de sistemas operativos de red y sistemas operativos distribuidos. • Sistemas operativos de red: • Los usuarios están conscientes de la existencia de varias computadoras conectadas. • Cada máquina ejecuta su propio sistema operativo local. • Son similares a los sistema operativo de un solo procesador pero con el agregado de: • Controlador de interfaz de la red y su software de bajo nivel. • Software para conexión y acceso a archivos remotos, etc. • Sistemas operativos distribuidos: • Aparece ante los usuarios como un sistema. de un solo procesador, aún cuando de soporte a varios procesadores. • Los usuarios no son conscientes del lugar donde se ejecutan sus programas o donde se encuentran sus 7 archivos, ya que lo debe administrar el sistema automáticamente. • Deben permitir que un programa se ejecute mediante varios procesadores a la vez, maximizando el paralelismo. • Aparición de emuladores de terminal para el acceso a equipos remotos desde computadoras personales (PC). • Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones de datos. • El sistema crea un ambiente de trabajo según el concepto de máquina virtual, que lo aísla del funcionamiento interno de la máquina. • Proliferación de sistemas de bases de datos, accesibles mediante redes de comunicación. 2.3.2 Modelo de Procesamiento central (Host) Uno de los primeros modelos de ordenadores interconectados, llamados centralizados, donde todo el procesamiento de la organización se llevaba a cabo en una sola computadora, normalmente un Mainframe, y los usuarios empleaban sencillos ordenadores personales. Los problemas de este modelo son: 8 • Cuando la carga de procesamiento aumentaba se tenía que cambiar el hardware del Mainframe, lo cual es más costoso que añadir más computadores personales clientes o servidores que aumenten las capacidades. • El otro problema que surgió son las modernas interfases gráficas de usuario, las cuales podían conllevar a un gran aumento de tráfico en los medios de comunicación y por consiguiente podían colapsar. 2.3.3 Modelo de Servidores Otro modelo que entró a competir con el anterior, también un tanto centralizado, son un grupo de ordenadores actuando como servidores, normalmente de archivos o de impresión, poco inteligentes para un número de Minicomputadores que hacen el procesamiento conectados a una red de área local. Los problemas de este modelo son: • Podría generarse una saturación de los medios de comunicación entre los servidores poco inteligentes y los minicomputadores, por ejemplo cuando se solicitan archivos grades por varios clientes a la vez, podían disminuir en gran medida la velocidad de transmisión de información. 2.3.4 Modelo Cliente Servidor Este modelo, que predomina en la actualidad, permite descentralizar el procesamiento y recursos, sobre todo, de cada uno de los servicios y de la visualización de la Interfaz 9 Gráfica de Usuario. Esto hace que ciertos servidores estén dedicados solo a una aplicación determinada y por lo tanto ejecutarla en forma eficiente. 2.4 CONCEPTOS GENERALES 2.4.1 Protocolo Es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicación entre procesos que realizan una determinada tarea. Se requieren dos partes: • Especificación de la secuencia de mensajes que se han de intercambiar. • Especificación del formato de los datos en los mensajes. Un protocolo permite que componentes heterogéneos de sistemas distribuidos puedan desarrollarse independientemente, y por medio de módulos de software que componen el protocolo, haya una comunicación transparente entre ambos componentes. Es conveniente mencionar que estos componentes del protocolo deben estar tanto en el receptor como en el emisor. Los protocolos de comunicaciones definen las normas que posibilitan que se establezca una comunicación entre varios equipos o dispositivos, ya que estos equipos pueden ser diferentes entre sí. A continuación se presentan ejemplos de protocolos usados en los sistemas distribuidos: 10 • IP: Protocolo de Internet Protocolo de la capa de Red, que permite definir la unidad básica de transferencia de datos y se encarga del direccionamiento de la información, para que llegue a su destino en la red. • TCP: Protocolo de Control de Transmisión Protocolo de la capa de Transporte, que permite dividir y ordenar la información a transportar en paquetes de menor tamaño para su transporte y recepción. • HTTP: Protocolo de Transferencia de Hipertexto Protocolo de la capa de aplicación, que permite el servicio de transferencia de páginas de hipertexto entre el cliente WEB y los servidores. • SMTP: Protocolo de Transferencia de Correo Simple Protocolo de la capa de aplicación, que permite el envío de correo electrónico por la red. • POP3: Protocolo de Oficina de Corre Protocolo de la capa de aplicación, que permite la gestión de correos en Internet, es decir, le permite a una estación de trabajo recuperar los correos que están almacenados en el servidor. 2.4.2 Redes LAN (Local Area Network) Son las redes de área local. La extensión de este tipo de redes suele estar restringida a una sala o edificio, aunque también podría utilizarse para conectar dos o más edificios próximos. 11 2.4.3 WAN (Wide Area Network) Son redes que cubren un espacio muy amplio, conectando a ordenadores de una cuidad o un país completo. Para ello se utilizan las líneas de teléfono y otros medios de transmisión más sofisticados, como pueden ser las microondas. La velocidad de transmisión suele ser inferior que en las redes locales. 2.4.4 Sockets Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro proceso incluso estando estos procesos en distintas máquinas. Esta característica de interconectividad entre máquinas hace que el concepto de socket nos sirva de gran utilidad. Esta interfaz de comunicaciones es una de las distribuciones de Berkeley al sistema UNIX, implementándose las utilidades de interconectividad de este Sistema Operativo (rlogin, telnet, ftp, ...) usando sockets. Un socket es al sistema de comunicación entre ordenadores lo que un buzón o un teléfono es al sistema de comunicación entre personas: un punto de comunicación entre dos agentes (procesos o personas respectivamente) por el cual se puede emitir o recibir información. La forma de referenciar un socket por los procesos implicados es mediante un descriptor del mismo tipo que el utilizado para referenciar ficheros. Debido a esta característica, se podrá realizar redirecciones de los archivos de E/S estándar a los sockets y así combinar entre ellos aplicaciones de la red. Todo nuevo proceso creado 12 heredará, por tanto, los descriptores de sockets de su padre. La comunicación entre procesos a través de sockets se basa en la filosofía CLIENTESERVIDOR: un proceso en esta comunicación actuará de proceso servidor creando un socket cuyo nombre conocerá el proceso cliente, el cual podrá "hablar" con el proceso servidor a través de la conexión con dicho socket nombrado. El proceso crea un socket sin nombre cuyo valor de vuelta es un descriptor sobre el que se leerá o escribirá, permitiéndose una comunicación bidireccional, característica propia de los sockets y que los diferencia de los pipes, o canales de comunicación unidireccional entre procesos de una misma máquina. El mecanismo de comunicación vía sockets tiene los siguientes pasos: El proceso servidor crea un socket con nombre y espera la conexión. * El proceso cliente crea un socket sin nombre. * El proceso cliente realiza una petición de conexión al socket servidor. * El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con nombre. Es muy común en este tipo de comunicación lanzar un proceso hijo, una vez realizada la conexión, que se ocupe del intercambio de información con el proceso cliente mientras el proceso padre servidor sigue aceptando conexiones. Para eliminar esta característica 13 se cerrará el descriptor del socket servidor con nombre en cuanto realice una conexión con un proceso socket cliente. 2.4.5 Mensajes Es la implementación de los sockets para enviar desde un punto de origen, hasta un punto de destino información. Esta información esta catalogada como “Mensaje”, el cual se compone como en el caso de la lingüística de elementos como una introducción, y el objeto del mensaje, un ejemplo de mensaje es el siguiente: MENSAJE DE SOLICITUD DE INFORMACIÓN DE USUARIO: ______nicolas rios;00080040538;00003115784;000123456789 Donde el mensaje esta dividido en secciones o campos separados por punto y coma, este mensaje en esencia es una cadena de caracteres que se transporta bajo el esquema del socket hacia una máquina que pueda entender y resolver el tipo de solicitud requerida. 2.4.6 Modelo de Referencia OSI El modelo OSI (Open System Interconection) es utilizado por prácticamente la totalidad de las redes del mundo. Este modelo fue creado por el ISO (Organización Internacional de Normalización), y consiste en siete niveles o capas donde cada una de ellas define las 14 funciones que deben proporcionar los protocolos con el propósito de intercambiar información entre varios sistemas. Esta clasificación permite que cada protocolo se desarrolle con una finalidad determinada, lo cual simplifica el proceso de desarrollo e implementación. Cada nivel depende de los que están por debajo de él, y a su vez proporciona alguna funcionalidad a los niveles superiores. Los siete niveles del modelo OSI son los siguientes: El nivel de aplicación es el destino final de los Aplicación datos donde se proporcionan los servicios al usuario. Se convierten e interpretan los datos que se Presentación utilizarán en el nivel de aplicación. Encargado de ciertos aspectos de la Sesión comunicación como el control de los tiempos. Transporta la información de una manera Transporte fiable para que llegue correctamente a su destino. Red Nivel encargado de encaminar los datos hacia 15 su destino eligiendo la ruta más efectiva. Enlace de datos. Controla el flujo de los Enlace mismos, la sincronización y los errores que puedan producirse. Se encarga de los aspectos físicos de la Físico conexión, tales como el medio de transmisión o el hardware. Tabla 1. Modelo de Referencia OSI 2.5 MODELO CLIENTE SERVIDOR 2.5.1 Definición La arquitectura cliente-servidor es una forma específica de diseño de aplicaciones, aunque también se conoce con este nombre a los ordenadores en los que se estas aplicaciones son ejecutadas. Por un lado, el cliente es el ordenador que se encarga de efectuar una petición o solicitar un servicio. El cliente no posee control sobre los recursos, sino que es el servidor el encargado de manejarlos. Por otro lado, el ordenador remoto que actúa como servidor evalúa la petición del cliente y decide aceptarla o rechazarla consecuentemente. 16 Una vez que el servidor acepta el pedido la información requerida es suministrada al cliente que efectuó la petición, siendo este último el responsable de proporcionar los datos al usuario con el formato adecuado. Finalmente debemos precisar que cliente y servidor no tienen que estar necesariamente en ordenadores separados, sino que pueden ser programas diferentes que se ejecuten en el mismo ordenador. Básicamente, se basa en la existencia de dos elementos enlazados dentro de un proceso de comunicación; El Cliente y El Servidor, el cliente es una máquina que solicita un determinado servicio y se denomina servidor a la máquina que lo proporciona. Los servicios pueden ser: • Ejecución de un determinado programa. • Acceso a un determinado banco de información. • Acceso a un dispositivo de hardware. Es un elemento primordial, la presencia de un medio físico de comunicación entre las máquinas, y dependerá de la naturaleza de este medio la viabilidad del sistema. 17 Solicitud de Recurso CLIENTE SERVICIO Respuesta PROG BD SERVICIOS Figura 1. Esquema Cliente Servidor 2.5.2 Categorías de Servicio • Servicio de archivos Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los usuarios que comparten esos archivos no fueran muchos, esto sería una gran opción de almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los ubica y se los envía. • Servicio de Base de Datos Son los que almacenan gran cantidad de datos estructurados, se diferencian de los de archivos pues la información que se envía está ya resumida en la base de datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae solo la información pertinente y envía esa respuesta al cliente. 18 • Servicio de Software de Grupo El software de grupo es aquel, que permite organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las listas de correo electrónico. El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo envía al resto del grupo. • Servicio WEB Son los que guardan y proporcionan Páginas HTML. El cliente desde un browser o link hace un llamado de la página y el servidor recibe el mensaje y envía la página correspondiente. • Servicio de correo Gestiona el envío y recepción de correo de un grupo de usuarios (el servidor no necesita ser muy potente). El servidor solo debe utilizar un protocolo de correo. • Servicio de objetos Permite almacenar objetos que pueden ser activados a distancia. Los clientes pueden ser capaces de activar los objetos que se encuentran en el servidor. • Servicio de impresión Gestionan las solicitudes de impresión de los clientes. El cliente envía la solicitud de impresión, el servidor recibe la solicitud y la ubica en la cola de impresión, ordena a la impresora que lleve a cabo las operaciones y luego avisa a la computadora cliente que ya acabo su respectiva impresión. 19 • Servicio de aplicación Se dedica a una única aplicación. Es básicamente una aplicación a la que pueden acceder los clientes. 2.5.3 Componentes de Software Se distinguen tres componentes básicos de software: • Presentación Tiene que ver con la presentación al usuario de un conjunto de objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y los devueltos por el servidor. • Lógica de aplicación Esta capa es la responsable del procesamiento de la información que tiene lugar en la aplicación. • Base de datos Esta compuesta de los archivos que contienen los datos de la aplicación. 20 2.5.4 Arquitecturas Arquitectura Cliente-Servidor de Dos Capas Consiste en una capa de presentación y lógica de la aplicación; y la otra de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: § Cuando se requiera poco procesamiento de datos en la organización. § Cuando se tiene una base de datos centralizada en un solo servidor. § Cuando la base de datos es relativamente estática. § Cuando se requiere un mantenimiento mínimo. CLIENTE SERVIDOR * Presentación * Lógica de la Aplicación. Base de Datos Figura 2. Cliente Servidor de 2 Capas Arquitectura Cliente-Servidor de Tres Capas Consiste en una capa de la Presentación, otra capa de la lógica de la aplicación y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: 21 § Cuando se requiera mucho procesamiento de datos en la aplicación. § En aplicaciones donde la funcionalidad este en constante cambio. § Cuando los procesos no están relativamente muy relacionados con los datos. § Cuando se requiera aislar la tecnología de la base de datos para que sea fácil de cambiar. § Cuando se requiera separar el código del cliente para que se facilite el mantenimiento. § Esta muy adecuada para utilizarla con la tecnología orientada a objetos. Capa de Presentación Capa de la Aplicación Capa de Base de Datos Objetos de Negocios B/D CLIENTES SERVIDOR SERVIDOR Figura 3. Cliente Servidor de Tres Capas 22 2.5.5 Clasificación de los sistemas cliente servidor Representación distribuida La interacción con el usuario se realiza en el servidor, el cliente hace de pasarela entre el usuario y el servidor. Figura 4. Usuario Servidor Representación Remota La lógica de la aplicación y la base de datos se encuentran en el servidor. El cliente recibe y formatea los datos para interactuar con el usuario. Figura 5. Cliente Servidor Remotos Lógica Distribuida 23 El cliente se encarga de la interacción con el usuario y de algunas funciones triviales de la aplicación. Por ejemplo controles de rango de campos, campos obligatorios, etc. Mientras que el resto de la aplicación, junto con la base de datos, están en el servidor. Figura 6. Cliente Servidor de Control Gestión Remota de Datos El cliente realiza la interacción con el usuario y ejecuta la aplicación y el servidor es quien maneja los datos. Figura 7. Cliente Servidor de Gestión Remota Base de Datos Distribuidas El cliente realiza la interacción con el usuario, ejecuta la aplicación, debe conocer la topología de la red, así como la disposición y ubicación de los datos. Se delega parte de la gestión de la base de datos al cliente. 24 Figura 8. Cliente Servidores de Datos Cliente servidor de tres niveles El cliente se encarga de la interacción con el usuario, el servidor de la lógica de aplicación y la base de datos puede estar en otro servidor. Figura 9. Cliente Servidor de Gestión y Base de datos 25 2.6 PROTOCOLO DE COMUNICACIONES TCP/IP 2.6.1 Definición TCP/IP es el protocolo común utilizado por todos los ordenadores conectados a Internet, de manera que éstos puedan comunicarse entre sí. Hay que tener en cuenta que en Internet se encuentran conectados ordenadores de clases muy diferentes y con hardware y software incompatibles en muchos casos, además de todos los medios y formas posibles de conexión. Aquí se encuentra una de las grandes ventajas del TCP/IP, pues este protocolo se encargará de que la comunicación entre todos sea posible. TCP/IP es compatible con cualquier sistema operativo y con cualquier tipo de hardware. 2.6.2 Arquitectura TCP/IP no es un único protocolo, sino que es en realidad lo que se conoce con este nombre es un conjunto de protocolos que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son el TCP (Transmission Control Protocol) y el IP (Internet Protocol), que son los que dan nombre al conjunto. En Internet se diferencian cuatro niveles o capas en las que se agrupan los protocolos, y que se relacionan con los niveles OSI de la siguiente manera: • Aplicación: Se corresponde con los niveles OSI de aplicación, presentación y sesión. Aquí se incluyen protocolos destinados a proporcionar servicios, tales como correo electrónico (SMTP), transferencia de ficheros (FTP), conexión 26 remota (TELNET) y otros más recientes como el protocolo HTTP (Hypertext Transfer Protocol). • Transporte: Coincide con el nivel de transporte del modelo OSI. Los protocolos de este nivel, tales como TCP y UDP, se encargan de manejar los datos y proporcionar la fiabilidad necesaria en el transporte de los mismos. • Internet: Es el nivel de red del modelo OSI. Incluye al protocolo IP, que se encarga de enviar los paquetes de información a sus destinos correspondientes. Es utilizado con esta finalidad por los protocolos del nivel de transporte. • Enlace: Los niveles OSI correspondientes son el de enlace y el nivel físico. Los protocolos que pertenecen a este nivel son los encargados de la transmisión a través del medio físico al que se encuentra conectado cada host, como puede ser una línea punto a punto o una red Ethernet. El Protocolo TCP/IP funciona sobre algún tipo de red o de medio físico que proporcione sus propios protocolos para el nivel de enlace de Internet. Por este motivo hay que tener en cuenta que los protocolos utilizados en este nivel pueden ser muy diversos y no forman parte del conjunto TCP/IP. Sin embargo, esto no debe ser problemático puesto que una de las funciones y ventajas principales del TCP/IP es proporcionar una abstracción del medio de forma que sea posible el intercambio de información entre medios diferentes y tecnologías que inicialmente son incompatibles. 27 Para transmitir información a través de TCP/IP, ésta debe ser dividida en unidades de menor tamaño. Esto proporciona grandes ventajas en el manejo de los datos que se transfieren y, por otro lado, esto es algo común en cualquier protocolo de comunicaciones. En TCP/IP cada una de estas unidades de información recibe el nombre de "datagrama" (datagram), y son conjuntos de datos que se envían como mensajes independientes. 28 CAPITULO III SISTEMAS INALAMBRICOS 3.1 BREVE INTRODUCCIÓN El simple hecho de ser seres humanos nos hace desenvolvernos en medios donde tenemos que estar comunicados. Por eso la gran importancia de la transmisión y la recepción de información, y en la época actual donde los computadores hacen parte de la cotidianidad, es necesario establecer medios de comunicación eficaces entre ellos. Una de las tecnologías más prometedoras y discutidas en esta década es la de poder comunicar computadoras mediante tecnología inalámbrica. La conexión de computadoras mediante Ondas de Radio o Luz Infrarroja, actualmente está siendo ampliamente investigado. Las Redes Inalámbricas facilitan la operación en lugares donde la computadora no puede permanecer en un solo lugar, como en almacenes o en oficinas que se encuentren en varios pisos. Pero la realidad es que esta tecnología está todavía en pañales y se deben de resolver varios obstáculos técnicos y de regulación antes de que las redes inalámbricas sean utilizadas de una manera general en los sistemas de cómputo de la actualidad. No se espera que las redes inalámbricas lleguen a remplazar a las redes cableadas. Estas ofrecen velocidades de transmisión mayores que las logradas con la tecnología inalámbrica. Mientras que las redes inalámbricas actuales ofrecen velocidades de 2 Mbps, las redes cableadas ofrecen velocidades de 10 Mbps y se espera que alcancen 29 velocidades de hasta 100 Mbps. Los sistemas de Cable de Fibra Óptica logran velocidades aún mayores, y pensando futuristamente se espera que las redes inalámbricas alcancen velocidades de solo 10 Mbps. Sin embargo se pueden mezclar las redes cableadas y las inalámbricas, y de esta manera generar una "Red Híbrida" y poder resolver los últimos metros hacia la estación. Se puede considerar que el sistema cableado sea la parte principal y la inalámbrica le proporcione movilidad adicional al equipo y el operador se pueda desplazar con facilidad dentro de un almacén o una oficina. 3.2 CONCEPTOS GENERALES 3.2.1 Transmisión y Recepción Inalámbrica de Datos La transmisión en este esquema se basa en radiar energía electromagnética por medio de una antena y luego se recibe esta energía con otra antena. Hay dos configuraciones para la emisión y recepción de esta energía: direccional y omnidireccional. En la direccional, toda la energía se concentra en un haz que es emitido en una cierta dirección, por lo que tanto el emisor como el receptor deben estar alineados. En el método omnidireccional, la energía es dispersada en múltiples direcciones, por lo que varias antenas pueden captarla. Cuanto mayor es la frecuencia de la señal a transmitir, más factible es la transmisión unidireccional. 30 Por tanto, para enlaces punto a punto se suelen utilizar microondas (altas frecuencias) Para enlaces con varios receptores posibles se utilizan las ondas de radio (bajas frecuencias). 3.2.3 Medios de Transporte * Microondas terrestres Suelen utilizarse antenas parabólicas. Para conexionas a larga distancia, se utilizan conexiones intermedias punto a punto entre antenas parabólicas. Se suelen utilizar en sustitución del cable coaxial o las fibras ópticas ya que se necesitan menos repetidores y amplificadores, aunque se necesitan antenas alineadas. Se usan para transmisión de televisión y voz. La principal causa de pérdidas es la atenuación debido a que las pérdidas aumentan con el cuadrado de la distancia (con cable coaxial y par trenzado son logarítmicas). La atenuación aumenta con las lluvias. Las interferencias es otro inconveniente de las microondas ya que al proliferar estos sistemas, pude haber más solapamientos de señales. * Microondas por satélite El satélite recibe las señales y las amplifica o retransmite en la dirección adecuada. 31 Para mantener la alineación del satélite con los receptores y emisores de la tierra, el satélite debe ser geoestacionario. Se suele utilizar este sistema para: à Difusión de televisión. à Transmisión telefónica a larga distancia. à Redes privadas El rango de frecuencias para la recepción del satélite debe ser diferente del rango al que este emite, para que no haya interferencias entre las señales que ascienden y las que descienden Debido a que la señal tarda un pequeño intervalo de tiempo desde que sale del emisor en la Tierra hasta que es devuelta al receptor o receptores, ha de tenerse cuidado con el control de errores y de flujo de la señal. Las diferencias entre las ondas de radio y las microondas son: • Las microondas son unidireccionales y las ondas de radio omnidireccionales • Las microondas son más sensibles a la atenuación producida por la lluvia. • En las ondas de radio , al poder reflejarse estas ondas en el mar u otros objetos 32 3.2.3 Modulación La modulación nace de la necesidad de transportar una información a través de un canal de comunicación a la mayor distancia y menor costo posible. Este es un proceso mediante el cual dicha información (onda moduladora) se inserta a un soporte de transmisión. 3.2.4 Modulación ASK ASK (Amplitudes-shift keying), es una modulación de amplitud donde la señal moduladora (datos) es digital. Los dos valores binarios se representan con dos amplitudes diferentes y es usual que una de las dos amplitudes sea cero; es decir uno de los dígitos binarios se representa mediante la presencia de la portadora a amplitud constante, y el otro dígito se representa mediante la ausencia de la señal portadora. En el caso de la señal moduladora se representa de la siguiente manera: Figura 10. Valores para la señal moduladora Mientras que el valor de la señal de transmisión (señal portadora) es dado por: 33 vp(t) = Vp sen(2ð fp t) Figura 11. Valores para la Señal Portadora Donde Vp es el valor pico de la señal portadora y fp es la frecuencia de la señal portadora. Figura 12. Modulación ASK 34 3.3 Redes Inalámbricas 3.3.1 Características Actualmente el término se refiere a comunicación sin cables, usando frecuencias de radio u ondas infrarrojas. Entre los usos más comunes se incluyen a IrDA y las redes inalámbricas de computadoras. Ondas de radio de bajo poder, como los que se emplean para transmitir información entre dispositivos, normalmente no tienen regulación, en cambio, transmisiones de alto poder requieren un permiso del estado para poder trasmitir en una frecuencia específica. Es una red en la cual los medios de comunicación entre sus componentes son ondas electromagnéticas. Sus principales ventajas son que permiten una amplia libertad de movimientos, facilita la reubicación de las estaciones de trabajo evitando la necesidad de establecer cableado y la rapidez en la instalación, sumado a menores costos que permiten una mejor inserción en economías reducidas. Existen dos amplias categorías de redes Inalámbricas: 1. De Larga Distancia.- Estas son utilizadas para transmitir la información en espacios que pueden variar desde una misma ciudad o hasta varios países circunvecinos (mejor conocido como redes de Área Metropolitana 35 MAN); sus velocidades de transmisión son relativamente bajas, de 4.8 a 19.2 Kbps. 2. De Corta Distancia.- Estas son utilizadas principalmente en redes corporativas cuyas oficinas se encuentran en uno o varios edificios que no se encuentran muy retirados entre si, con velocidades del orden de 280 Kbps hasta los 2 Mbps. Existen dos redes de larga distancia: redes de Conmutación de Paquetes (públicas y privadas) y redes Telefónicas Celulares. Estas últimas son un medio para transmitir información de alto precio. Debido a que los módems celulares actualmente son más caros y delicados que los convencionales, ya que requieren circuiteria especial, que permite mantener la pérdida de señal cuando el circuito se alterna entre una célula y otra. Esta pérdida de señal no es problema para la comunicación de voz debido a que el retraso en la conmutación dura unos cuantos cientos de milisegundos, lo cual no se nota, pero en la transmisión de información puede hacer estragos. Otras desventajas de la transmisión celular son: à La carga de los teléfonos se termina fácilmente. à La transmisión celular se intercepta fácilmente (factor importante en lo relacionado con la seguridad). 36 à Las velocidades de transmisión son bajas. Todas estas desventajas hacen que la comunicación celular se utilice poco, o únicamente para archivos muy pequeños como cartas, planos, etc... Pero se espera que con los avances en la compresión de datos, seguridad y algoritmos de verificación de errores se permita que las redes celulares sean una opción redituable en algunas situaciones. La otra opción que existe en redes de larga distancia son las denominadas: Red Pública De Conmutación De Paquetes Por Radio. Estas redes no tienen problemas de pérdida de señal debido a que su arquitectura está diseñada para soportar paquetes de datos en lugar de comunicaciones de voz. Las redes privadas de conmutación de paquetes utilizan la misma tecnología que las públicas, pero bajo bandas de radio frecuencia restringidas por la propia organización de sus sistemas de cómputo. 3.3.2 Redes Wi – Fi Wi-Fi (o Wi-fi, WiFi, Wifi, wifi) es un conjunto de estándares para redes inalámbricas Creado para ser utilizado en redes locales inalámbricas, es frecuente que en la actualidad también se utilice para acceder a Internet. Wi-Fi es una marca de la Wi-Fi Alliance (anteriormente la Wireless Ethernet Compatibility Alliance). 37 El problema principal que pretende resolver la normalización es la compatibilidad. No obstante existen distintos estándares que definen distintos tipos de redes inalámbricas. Esta variedad produce confusión en el mercado y descoordinación en los fabricantes. Para resolver este problema, los principales vendedores de soluciones inalámbricas (3com, Airones, Intersil, Lucent, Technologies, Nokia y Symbol Technologies) crearon en 1999 una asociación conocida como WECA (Wireless Ethernet Compability Aliance, Alianza de Compatibilidad Ethernet Inalámbrica) . El objetivo de esta asociación fue crear una marca que permitiese fomentar más fácilmente la tecnología inalámbrica y asegurase la compatibilidad de equipos. De esta forma en abril de 2000 WECA certifica la interoperatibilidad de equipos según la norma IEEE 802.11b bajo la marca Wi-Fi (Wíreless Fidelity, Fidelidad Inalámbrica). Esto quiere decir que el usuario tiene la garantía de que todos los equipos que tenga el sello Wi-Fi pueden trabajar juntos sin problemas independientemente del fabricante de cada uno de ellos. Se puede obtener un listado completo de equipos que tienen la certificación Wi-Fi en www.wirelessethernet.org/certified_products.asp. En el año 2002 eran casi 150 miembros de la asociación WECA. Como la norma 802.11b ofrece una velocidad máxima de transferencia de 11 Mbps ya existen estándares que permiten velocidades superiores, WECA no se ha querido quedar atrás. Por ese motivo, WECA anunció que empezaría a certificar también los equipos IEEE 802.11a de la banda de 5 Ghz mediante la marca Wi-Fi5. La norma IEEE.802.11 fue diseñada para sustituir a las capas físicas y MAC de la norma 802.3 (Ethernet). Esto 38 quiere decir que en lo único que se diferencia una red Wi-Fi de una red Ethernet, es en la forma como los ordenadores y terminales en general acceden a la red; el resto es idéntico. Por tanto una red local inalámbrica 802.11 es completamente compatible con todos los servicios de las redes locales de cable 802.3 (Ethernet). 3.3.3 Redes Bluetooth Bluetooth es el nombre común de la especificación industrial, que define un estándar global de comunicación inalámbrica que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia segura, globalmente y sin licencia de corto rango. Los principales objetivos que se pretende conseguir con esta norma son: • Facilitar las comunicaciones entre equipos móviles y fijos. • Eliminar cables y conectores entre éstos. • Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre nuestros equipos personales. Los dispositivos que con mayor intensidad utilizan esta tecnología son los de los sectores de las telecomunicaciones y la informática personal, como PDAs, teléfonos celulares, ordenadores portátiles, PCs, impresoras y cámaras digitales. La tecnología Bluetooth comprende hardware, software y requerimientos de interoperatividad, por lo que para su desarrollo ha sido necesaria la participación de los 39 principales fabricantes de los sectores de las telecomunicaciones y la informática, tales como: Ericsson, Nokia, Motorola, Toshiba, IBM e Intel, entre otros. Posteriormente se han ido incorporando muchas más compañías, y se prevé que próximamente lo hagan también empresas de sectores tan variados como automatización industrial, maquinaria, ocio y entretenimiento, fabricantes de juguetes, electrodomésticos, etc., con lo que en poco tiempo se nos presentará un panorama de total conectividad de nuestros aparatos tanto en casa como en el trabajo. El nombre Bluetooth procede del rey danés y noruego Harald Blåtand cuya traducción al inglés sería Harold Bluetooth (Diente Azul, aunque en lengua danesa significa 'de tez oscura') conocido por unificar las tribus noruegas, suecas y danesas. De la misma manera, Bluetooth intenta unir diferentes tecnologías como las de los ordenadores, los teléfonos móviles y el resto de periféricos. El símbolo de Bluetooth es la unión de las runas nórdicas H y B. En 1994, Ericsson inició un estudio para investigar la viabilidad de una nueva interfaz de bajo costo y consumo para la interconexión vía radio (eliminando así cables) entre dispositivos como teléfonos móviles y otros accesorios. El estudio partía de un largo proyecto que investigaba unos multicomunicadores conectados a una red celular, hasta que se llegó a un enlace de radio de corto alcance, llamado MC link. Conforme este proyecto avanzaba se fue haciendo claro que éste tipo de enlace podía ser utilizado ampliamente en un gran número de aplicaciones, ya que tenía como principal virtud que se basaba en un chip de radio. 40 Bluetooth proporciona una vía de interconexión inalámbrica entre diversos aparatos que tengan dentro de sí esta tecnología, como móviles (Nokia 6600), consolas (Nokia NGage), dispositivos PDA, cámaras digitales, computadoras portátiles, impresoras, o simplemente cualquier dispositivo que un fabricante considere oportuno, usando siempre una conexión segura de radio de muy corto alcance. El alcance que logran tener estos dispositivos es de 10 metros para ahorrar energía ya que generalmente estos dispositivos utilizan mayoritariamente baterías. Sin embargo, se puede llegar a un alcance de hasta 100 metros (similar a Wi-Fi) pero aumentando el consumo energético considerablemente. Para mejorar la comunicación es recomendable que nada físico como por ejemplo una pared se interponga. El primer objetivo para los productos Bluetooth de primera generación eran los entornos de la gente de negocios que viaja frecuentemente. Esto originaba una serie de cuestiones previas que deberían solucionarse tales como: • El sistema debería operar en todo el mundo. • El emisor de radio deberá consumir poca energía, ya que debe integrarse en equipos alimentados por baterías. • La conexión deberá soportar voz y datos, y por lo tanto aplicaciones multimedia. • La tecnología debería tener un bajo costo. Como objetivo se quiso alcanzar los 5 US $ por dispositivo. • Muchos celulares han adquirido esta característica que por lo general es un gran avance. 41 La especificación de Bluetooth define un canal de comunicación de máximo 720 kb/s (1 Mbps de capacidad bruta) con rango óptimo de 10 metros (opcionalmente 100 m con repetidores). La frecuencia de radio con la que trabaja está en el rango de 2,4 a 2,48 GHz con amplio espectro y saltos de frecuencia con posibilidad de transmitir en Full Duplex con un máximo de 1600 saltos/s. Los saltos de frecuencia se dan entre un total de 79 frecuencias con intervalos de 1Mhz; esto permite dar seguridad y robustez. La potencia de salida para transmitir a una distancia máxima de 10 metros es de 0 dBm (1 mW), mientras que la versión de largo alcance transmite entre 20 y 30 dBm (entre 100 mW y 1 W). Para lograr alcanzar el objetivo de bajo consumo y bajo costo, se ideó una solución que se puede implementar en un solo chip utilizando circuitos CMOS. De esta manera, se logró crear una solución de 9x9 mm y que consume aproximadamente 97% menos energía que un teléfono celular común. El protocolo de banda base (canales simples por línea) combina conmutación de circuitos y paquetes. Para asegurar que los paquetes no lleguen fuera de orden, los slots pueden ser reservados por paquetes síncronos, un salto diferente de señal es usado para cada paquete. Por otro lado, la conmutación de circuitos puede ser asíncrona o síncrona. Tres canales de datos síncronos (voz), o un canal de datos síncrono y uno asíncrono, pueden ser soportados en un solo canal. Cada canal de voz puede soportar una tasa de 42 transferencia de 64 kb/s en cada sentido, la cual es suficientemente adecuada para la transmisión de voz. Un canal asíncrono puede transmitir como mucho 721 kb/s en una dirección y 56 kb/s en la dirección opuesta, sin embargo, para una conexión asíncrona es posible soportar 432,6 kb/s en ambas direcciones si el enlace es simétrico. 3.3.4 Redes GSM Global System for Mobile communications (Sistema Global para las Comunicaciones Móviles), anteriormente conocida como "Group Special Mobile" (GSM, Grupo Especial Móvil) es un estándar mundial para teléfonos móviles digitales. El estándar fue creado por la CEPT y posteriormente desarrollado por ETSI como un estándar para los teléfonos móviles europeos, con la intención de desarrollar una normativa que fuera adoptada mundialmente. El estándar es abierto, no propietario y evolutivo (aún en desarrollo). Es el estándar predominante en Europa, así como el mayoritario en el resto del mundo (alrededor del 70% de los usuarios de teléfonos móviles del mundo en 2001 usaban GSM). GSM difiere de sus antecesores principalmente en que tanto los canales de voz como las señales son digitales. Se ha diseñado así para un moderado nivel de seguridad. GSM emplea una modulación GMSK (Gaussian Minimum Shift Keying) obtenida a partir de una modulación MSK que es un tipo especial de FSK. Para el acceso en el interfaz radio o Abis se utiliza el sistema TDMA de banda estrecha (Time Division Multiple Access) entre la estación base y el teléfono celular utilizando 2 de canales de 43 radio de frecuencia dúplex. Para minimizar las fuentes de interferencia y conseguir una mayor protección se utiliza el (frequency hopping) o salto en frecuencia entre canales, con una velocidad máxima de 217 saltos/S. y siempre bajo mandato de la red. GSM tiene cuatro versiones principales basadas en la banda: GSM-850, GSM-900, GSM-1800 y GSM-1900. GSM-900 (900 MHz) y GSM-1800 (1,8 GHz) son utilizadas en la mayor parte del mundo, salvo en Estados Unidos, Canadá y el resto de América Latina que utilizan el CDMA, lugares en los que se utilizan las bandas de GSM-850 y GSM-1900 (1,9 GHz), ya que en EE.UU. las bandas de 900 y 1800 MHz están ya ocupadas para usos militares. Inicialmente, GSM utilizó la frecuencia de 900 MHz con 124 pares de frecuencias separadas entre si por 200 kHz, pero después las redes de telecomunicaciones públicas utilizaron las frecuencias de 1800 y 1900 MHz, con lo cual es habitual que los teléfonos móviles de hoy en día sean tribanda. El GSM, se puede dedicar tanto a voz como a datos, una llamada de voz utiliza un codificador GSM específico a velocidad total de 13Kbits/s, posteriormente se desarrolló un codec a velocidad mitad de 6,5 kbits/s que permitirá duclicar la capacidad de los canales TCH, se denomina FR (Full Rate) y HR (Half Rate) Una conexión de datos, permite el que el usuario utilice el móvil como un módem de 9600 bps, ya sea en modos circuito o paquetes en régimen síncrono/asíncrono. También 44 admiten servicios de datos de una naturaleza no transparente con una velocidad neta de 12 kbits/s. Las implementaciones más veloces de GSM se denominan GPRS y EDGE, también denominadas generaciones intermedias o 2.5G, que conducen hacia la tercera generación 3G o UMTS. Los nuevos teléfonos GSM pueden ser controlados por un conjunto de comandos estandarizados Hayes AT, mediante cable o mediante una conexión inalámbrica (IrDA o Bluetooth, este último incorporado en los teléfonos actuales). 45 CAPITULO IV IDENTIFICACIÓN DEL ENTORNO DE TRABAJO 4.1 Elementos Disponibles Sin duda alguna este es uno de los puntos vitales para este proyecto, puesto que dependiendo de la cantidad de equipos con las características requeridas (1), se puede estimar características propias para la atención del personal que ingresa al laboratorio como son: • Tiempo de atención. • Tiempo de espera en fila. • Disponibilidad de Equipos. Para determinar el impacto que tienen los anteriores aspectos sobre el funcionamiento del laboratorio se han identificado los elementos más relevantes para este proyecto: HARDWARE: à Computadores: 15 computadores de escritorio. à Monitores: 15 monitores asociados a cada computador. à Puntos de Red: 30 puntos de acceso a la red local del laboratorio. à Dispositivos de red: 2 switch´s. 46 à Cables de comunicación: 30 cables de red. SOFTWARE (estándar instalado): à Sistema operativo: Windows Xp sp1, con un total de 37 copias. à Software específico: Mplab 7.0, Labview 7.0 Express, FluidSim 3.0 demo, Microgrades, Acrobat Reder 5.0. 4.2 Viabilidad del proyecto Entrando en detalle, se debe garantizar el correcto funcionamiento del proyecto, para lo cual se utilizó un sistema de simulación probabilística, con el cual se pueden analizar elementos y condiciones de uso, lo que en últimas es valioso para la implementación del sistema de control. Para determinar las condiciones de atención y disponibilidad de los equipos existentes, se ha utilizado para este fin el software de simulación discreta WINQSB, y particularmente en su entorno de trabajo Queuing Analysis: 47 Figura 13. Software de Simulación Discreta Por medio de este programa se procede a elaborar un proyecto nuevo: Figura 14. Gestor de Proyectos 48 Luego se asignan los campos de nombre y unidades de tiempo. Figura 15. Asignación de Unidades Una vez asignados los parámetros de nombre y unidad de tiempo procedemos a definir nuestro problema el cual se establecen las siguientes condiciones: • Se dispone de 1 Laboratorista. • La tasa disponibilidad es de 30 personas por clase. • El promedio de usuarios que llegan al laboratorio es de 30 por clase. 49 Figura 16. Condiciones Iniciales del Problema Con la anterior información se procede a configurar la simulación con 1000 iteraciones con el método FIFO: Figura 17. Configuración del Análisis 50 Luego de esto procedemos a dar inicio al proceso de simulación el cual arroja los siguientes resultados: Figura 18. Resultados de la Simulación Con lo que podemos determinar lo siguiente: ** El porcentaje de uso del sistema es 66.01%, lo que indica que es medio, lo que sugiere que en una situación donde el número de alumnos puede superar levemente los 20 habría una capacidad de atención adecuada hasta los 30 alumnos. 51 ** El número promedio de usuarios en el sistema es de 20, lo cual concuerda con el número de usuarios por computador que existe. ** La probabilidad de encontrar todos los computadores ocupados dentro del sistema es del 33%. ** El promedio de alumnos en la fila de espera es de 1. 52 CAPITULO V DISEÑO DE LOS SISTEMAS DE TRANSMISIÓN Y RECEPCIÓN DE DATOS 5.1 MÓDELO DE COMUNICACIÓN Como una forma de comprender el funcionamiento y operación del sistema para el control de aplicaciones se ha diseñado un esquema en el cual un computador central, atiende las solicitudes de los clientes quienes hacen sus respectivos requerimientos por medio de la red ethernet y dependiendo del estado o disponibilidad de la misma reciben la respuesta por medio del la red ethernet o a través del sistema inalámbrico. Se escogió este modelo de funcionamiento ya que ofrece características de cobertura y respuesta optimas ya que si el sistema solo hubiese sido concebido para ejercer la comunicación por medio de la red de computadoras, no se podría sobre llevar o controlar un evento como lo es el mantenimiento de la red o algún tipo de sabotaje, cabe aclarar que el sistema inalámbrico propuesto es un sistema auxiliar de apoyo y que en ningún momento reemplaza la totalidad de las funciones de la comunicación por red ethernet. Es decir, en que en el momento que se suspenda el servicio de la red ethernet o sistema principal de información entra en funcionamiento la red inalámbrica para soportar el control de los equipos y su uso, como se muestra en el siguiente esquema: 53 54 5.2 Requerimientos de Hardware Los requisitos para el funcionamiento del proyecto son: à Computador basado en el procesador x86 à Procesador con frecuencia mínima de Pentium 200 MHz. à Espacio libre en disco de 10 Mb à Sistema operativo Windows 95 o superior. à Puerto serial de 9 pines 5.3 Selección de componentes 5.3.1 Módulos RF Los módulos de radio frecuencia escogidos para este proyecto son componentes para el control de aplicaciones de forma inalámbrica: à TLP434A (Transmisor) à RLP434A (Receptor) Estos dos componentes se caracterizan por su buena calidad al momento de acondicionar las señales para ser transmitidas, lo que los hace ser una de las mejores 55 opciones para el control de aplicaciones vía radio frecuencia, a continuación se detallan más características de estos módulos: Dimensiones Voltaje de Trabajo Frecuencia de Modulación Potencia Entregada Temperatura de Trabajo Transmisión de Bits TLP434A (Transmisor) Ancho 10.3 Mínimo 2 Mínimo 314.8 Mínimo 14 Mínimo -2 Mínimo 512 Alto 13.3 Máximo 12 Máximo 315.2 Máximo 16 Máximo 25 Máximo 200K Unidad Milímetros Unidad Voltios Unidad MHz Unidad dBm Unidad Centígrados Unidad bps Tabla 2. Características principales del Circuito Transmisor Dimensiones Voltaje de Trabajo Frecuencias de Demodulación Ancho de Banda Distancia Máxima de Recepción Potencia Disipada RPL434A (Receptor) Ancho 43.42 Mínimo 3.3 315 MHz Mínimo 0 Mínimo -20 Mínimo 512 Temperatura de Trabajo Transmisión de Bits Alto 11.5 Máximo 6 418 MHz 4 KHz 100 metros Máximo -110 Máximo 80 Máximo 200K Tabla 3. Características principales del Circuito Receptor 56 Unidad Milímetros Unidad Voltios 433.92MHz Unidad dBm Unidad Centígrados Unidad bps Dadas las características anteriores de los módulos y a su fácil consecución en el mercado, se utilizaron para este proyecto por su buen alcance de transmisión. Sin lugar a dudas una de las más fascinantes características de estos módulos es su fácil instalación ya que poseen pocos pines y su interfase de comunicación es serial, lo que implica un considerable ahorro de espacio. 5.3.2 Lenguaje de Programación La herramienta de programación utilizada para este proyecto es Borland C++ Builder 6.0 de la Compañía Borland Software Inc. Este es un entorno de programación desarrollado para aplicaciones de alto rendimiento y eficiencia, su interfaz gráfica y su buena documentación hicieron que fuera la herramienta indicada para desarrollar las aplicaciones del proyecto. Borland C++ Builder provee soporte para el lenguaje de programación C, el cual es antecesor de C++, incluye innumerables herramientas para el desarrollo de aplicaciones como lo son control integrado de excepciones lo que quiere decir que se pueden monitorear “trazar” las anomalías de un programa cuando falla y en consecuencia corregirlas. Borland C++ Builder no solo incluye soporte para la tecnología basada en C, también incluye herramientas como el diseño de librerías, aplicaciones gráficas, procesos remotos, entre otros. Sin duda este paquete de software esta acorde al desarrollo que se desea de en el proyecto por lo anterior y por ser un ambiente robusto y seguro por esto se escogió para desarrollar la plataforma distribuida de esta Tesis. 57 5.4 Implementación del Sistema Inalámbrico 5.4.1 Consideraciones Técnicas Como se vio en la sección 5.1.1 de este capitulo, se escogieron módulos RF dada su versatilidad y fácil instalación, ahora bien, estos módulos pueden operar entre voltajes comprendidos entre 5 y 12 voltios los cuales podemos obtener de diversas formas: à Transformación de energía à Uso de baterías En este caso utilizaremos el método de Transformación de energía, provisto por el mismo PC, es decir la fuente de alimentación de los circuitos del computador. En esencia usaremos 5 voltios, como es de suponer es muy engorroso tomar la energía de uno de los conectores libres de la salida de la fuente, por lo cual utilizaremos la energía provista por el puerto serial del computador. Cabe anotar que del mismo puerto obtendremos: à Alimentación à Comunicación serial 58 Y en detalle la descripción de los pines y su función: Pin Señal Descripción E/S 1 - Masa chasis - 3 TxD Transmit Data S 2 RxD Receive Data E 7 RTS Request To Send S 8 CTS Clear To Send E 6 DSR Data Set Ready E 5 SG Signal Ground - 1 CD/DCD (Data) Carrier Detect E - TxC(*) Transmit Clock S - RxC(*) Receive Clock E 4 DTR Data Terminal Ready S 9 RI Ring Indicator E - RTxC(*) Transmit/Receive Clock S Tabla 4. Pines y funciones del puerto serial Como el tipo de sincronización entre los datos enviados y recibidos será asíncrona utilizaremos 4 de los 9 pines para este propósito: Pin Señal Descripción E/S 3 TxD Transmit Data S 2 RxD Receive Data E 4 DTR Data Terminal Ready S 5 Sg Signa Ground E Tabla 5. Pines del puerto utilizados en el proyecto 59 Pero hasta este momento no es claro ¿Cómo? ó ¿De Dónde? Se va a sustentar el suministro de un voltaje continuo, así que se realizó lo siguiente: <<Provocar que el pin 4 tenga siempre una señal alta ósea 5 voltios, con esto podemos aprovechar la diferencia de potencial para que el sistema se alimente, como se observa en la figura: >> Figura 19. Alimentación desde el puerto serie Para lograr un nivel alto en el puerto lógicamente debemos programar el PC para que brinde esta configuración. Otro aspecto técnico a considerar para la implementación del sistema inalámbrico tiene que ver con la adquisición y recepción de datos desde y hacia el puerto serial. Para lo cual utilizaremos un dispositivo que sirva de interfase entre el puerto de comunicaciones y el sistema inalámbrico, para lo cual se escogió un semiconductor integrado, el MAX232, este semiconductor es típicamente utilizado en el sector de las comunicaciones seriales por su eficiencia, operabilidad, y fácil montaje. 60 El Max232 es la herramienta que servirá de puente entre el computador y el sistema electrónico acoplando las señales de niveles TTL (0-5 voltios) a niveles lógicos de puerto (-15 a 15 voltios). A continuación se presentan más características de funcionamiento del semiconductor: Tabla 6. Características del max232 5.4.2 Desarrollo y Construcción de los Sistemas Transmisor y Receptor Teniendo en cuenta las consideraciones técnicas y requisitos para la puesta en marcha del sistema inalámbrico y de comunicaciones, se procede al diseño propio del sistema, lo primero es localizar el puerto que se usará en este proyecto el cual está ubicado en la parte posterior de los computadores. Una vez se identifica el puerto se escribe un programa de computador para generar la señal de alimentación del circuito, el programa se realizó con el lenguaje de programación Borland C++ Builder, aunque realmente no importa cual sea el lenguaje 61 de programación ya que en este caso se trabajó con una aplicación la cual esta escrita en lenguaje C, así que cualquier herramienta intérprete de este lenguaje funciona, a continuación se muestra tanto el algoritmo como el programa desarrollado: Inicio Configuración del puerto Encender el puerto Estado del puerto SÍ ON / OFF Notificación al Usuario NO Fin Figura 20. Algoritmo Generador de Voltaje continuo en el Puerto Serial 62 #include “iostream.h” Int estado = 0; Int main() { While(1) { If(estado == 0) { __asm { Mov al, 32 Mov dx, 3F8 Out dx, al Lea dx, estado } } Else { cout<<”Error en el puerto, revise la configuración local !”; return(0); } } Return(0); } Tabla 7. Rutina para generar una señal alta en el puerto serial Con la anterior solución por software, obtenemos una fuente segura de alimentación para alimentar tanto el circuito transmisor como el receptor. 63 5.4.2.1 CIRCUITO TRANSMISOR Para empezar, y como ya se hablo, el circuito se compone de 3 bloques funcionales que son; el computador, la unidad de acople serial y la unidad de transmisión inalámbrica: PC INTERFASE RF Figura 21. Diagrama de Bloques Funcionales del Circuito Transmisor La interfase se realiza utilizando el circuito integrado MAX232, dado que este ofrece alto aislamiento eléctrico entre las partes, garantizando la no interferencia de perturbaciones desde los componentes. Es claro que como se necesita una comunicación de tipo Simplex, lo que quiere decir que solo se realiza el proceso de transmisión ó el de recepción de datos pero no los dos, utilizaremos ambos canales del MAX232 para tal propósito: Figura 22. Canales de datos del MAX232 64 Además como la comunicación es de tipo asíncrona, utilizaremos los pines correspondientes a Rx(recepción), Tx(transmisión) y Gnd(tierra), una vez hecho esto, se procede a enlazar la interfase con el computador que actúa como dispositivo de procesamiento con el cual se manejarán las respectivas instrucciones que serán enviadas hasta un destino remoto que será analizado en detalle más adelante. Siguiendo el esquema de conexión y distribución de pines brindado por el fabricante de la interfase se conectan tanto el buffer de entrada como el de salida del MAX232 hacia los pines 3 y 5 del puerto serial. Figura 23. Diagrama de conexión pin a pin entre el puerto serial y el max232 65 Con el objetivo de detectar la presencia del dispositivo electrónico y otras funciones se han escrito una serie de tramas o secuencia de caracteres que se utilizaran para el proceso de comunicación entre el PC y el circuito transmisor como se muestra a continuación: Trama Enviada Trama de Respuesta Descripción Cok Cok Indica la conexión. c = conectado ok = ok Dok Dok Indica la desconexión. d = desconectado ok = ok Txxxux Txok Asigna tiempo a un usuario t = tiempo xxx = cifra en minutos u = usuario x = número de usuario Hux Huxok Habilita un usuario h = habilita u = usuario x = número del usuario ok = ok 66 Dux Duxok Deshabilita un usuario d = deshabilita u = usuario x = número del usuario ok = ok Pxux Pxuxok Asigna perfil a un usuario p = perfil x = tipo de perfil u = usuario x = número del usuario ok = ok Tabla 8. Tramas enviadas desde El PC hacia el Circuito Transmisor Con las anteriores tramas se pretende simplificar la transmisión directa de las instrucciones desde el puerto hacia el módulo RF ya que es una forma mucho más simplificada de realizarlo ya que no se satura el puerto de información voluminosa sino de instrucciones sutiles para ser interpretadas, cabe anotar que evidentemente todo esto se logra gracias al SISTEMA DISTRIBUIDO, ya que este en últimas se encarga de generar las tramas hacia el puerto para que sean transmitidas, por lo cual a éste sistema se le dedica el próximo capitulo para su análisis. 67 5.4.2.2 CIRCUITO RECEPTOR Al igual que el circuito transmisor, el receptor se compone de 3 bloques funcionales que son; la unidad de Recepción Inalambrica, la unidad de acople serial y el computador: RF INTERFASE PC Figura 24. Diagrama de Bloques Funcionales del Circuito Transmisor Y considerando que el receptor también deberá comunicarse de forma simplex, se hace conexión con el pín 2 del puerto serial hacia el circuito de interfase ya que este recibe los datos provenientes del exterior, como se muestra en la figura: Figura 25. Conexión entre Reeceptor RF, el circuito de Interfase Max232 y el Puerto Serie 68 El circuito receptor, recibe las tramas (véase la tabla 8) emitidas por el transmisor, las cuales son remoduladas por el circuito RPL434 que las convierte de nuevo a formato digital por medio del adaptador de puerto MAX232 quien por último entrega estos datos al puerto serie para su procesamiento en la aplicación Cliente, la cual se analizará más adelante. Las conexiones se realizaron en base a la hoja de datos técnicos suministrada por el fabricante y se encuentra en el anexo A de éste documento. 5.4.3 Pruebas Piloto Puesto que hasta este momento no contamos con una aplicación para la generación y recepción de las tramas de control del sistema podemos utilizar una opción de comunicación serial, que en este caso es Hyperterminal, la cual es un programa de comunicaciones ofrecido con el sistema operativo Windows, para lo cual debemos configurarlo y conectar el dispositivo de transmisión inalámbrica al puerto: 69 Figura 26. Hyperterminal de Windows Figura 27. Selección del puerto 70 Figura 28. Configuración del puerto en Hyperterminal La prueba piloto que se realizó para comprobar que el dispositivo respondía a las instrucciones enviadas desde el PC, fueron simuladas por medio de Hyperterminal de la siguiente forma: à En la consola de edición de hyperterminal se escribió la trama “cok” para la cual se recibió la respuesta esperada “cok” à En la consola de edición de hyperterminal se escribió la trama “T001u1” para la cual se recibió la respuesta esperada “T001u1ok” 71 Figura 29. Respuesta del Sistema Inalámbrico Una vez comprobado que el sistema responde se puede decir que las pruebas fueron satisfactorias ya que las tramas fueron respondidas correctamente por el Microcontrolador lo que supone que el proceso de comunicación fue exitoso y que las instrucciones son correctas. 5.4.4 Puesta en funcionamiento Una vez aprobadas las pruebas piloto es necesario montar el sistema inalámbrico en una placa especial para poder soldar los componentes de tal forma que estén sujetos, así que por medio del programa Eagle 4.11 de CadSoftUsa, se diseño el circuito impreso para 72 su posterior “quemado” en una baquela o placa universal, a continuación se presenta el diseño de la baquela para el transmisor y el receptor: Figura 30. Placa de conexión del sistema Transmisor de datos Figura 31. Placa de Conexión del sistema Receptor de datos 73 5.5 Implementación del Sistema Distribuido 5.5.1 Identificación del Entorno En una visita programada realizada el día 1 de Agosto de 2006 se encontraron 15 computadores para uso de los estudiantes y 2 computadores para uso de los laboratoristas, se encontró que los 9 computadores tenían sistema operativo Windows XP; puerto serial; puerto de red ethernet, y que todos ellos pueden ser conectados a una red local que existente en el sitio por medio de un switch de 24 puertos, por lo que se puede perfectamente implementar el Sistema Distribuido sin inconvenientes. 5.5.2 Requisitos previos Para implementar las aplicaciones tanto cliente como servidor en los computadores objeto de estudio es necesario que los mismo cuenten con el sistema operativo Windows 95 o superior, puerto serial y un procesador superior o igual al Pentium MMX de 200 MHz, puerto de comunicación en red ethernet, y estar conectados a una red como se muestra en la siguiente figura: 74 Figura 32. Computadores en Red por medio de un Switch Es necesario que el dispositivo de permite la comunicación entre los computadores preferiblemente sea un switch con capacidad para manejar canales de 10Mb hasta 100Mb con el objetivo de que la comunicación entre el computador que esta provisto con la aplicación servidor sea más rápida con los computadores que tienen incorporado la aplicación cliente. Una vez tenidos estos requisitos se puede dar inicio al proceso de instalación del software cliente y servidor en los computadores. 75 5.5.3 Desarrollo de la Aplicación Servidor Teniendo en cuenta que el sistema se basa en la metodología Cliente-Servidor y de acuerdo al propósito de este sistema en particular se tienen 2 servidores: à Servidor de Aplicación de Control à Servidor de Base de Datos Esto con el objetivo de descentralizar las operaciones, el Servidor de Aplicación se encarga de recibir y procesar las solicitudes de los clientes mientras que el Servidor de Base de Datos contiene la información concerniente a los permisos de los clientes para realizar alguna actividad, con esto las operaciones de los clientes son recibidas por el Servidor son interpretadas por el y consultadas ante el Servidor de Base de Datos para enviar una respuesta al cliente, como se muestra en la figura: Figura 33. Modelo Cliente Servidor Propuesto 76 El esquema cliente servidor propuesto como se puede apreciar requiere para su funcionamiento 2 máquinas que sirvan de servidores para atender a un número indeterminado de clientes, por lo que la aplicación de aplicación estará ubicada en el computador de la persona encargada del laboratorio, mientras que la base de datos se ubicó en un computador alterno al sitio de operación. El protocolo de comunicaciones utilizado en toda la red es el TCP – IP que en realidad es el uso de dos protocolos el TCP y el IP vistos en la sección 6.4.1 de este documento, evidentemente el esquema que se esta siguiendo es de tipo LAN ya que el alcance de esta red en particular se define para un conjunto definido de computadores. Los servicios que ofrece este modelo son el servicio de Base de Datos y el de Servicio de Software de Grupo vistos en la sección 2.5.2 de este documento, la arquitectura que se decidió entonces implantar se adapta a una arquitectura Cliente Servidor de Tres capas (sección 2.5.4) donde las capas son: à Clientes (capa de Presentación) à Servidor (capa de Aplicación) à Base de Datos (capa de datos) Como ya se había mencionado la herramienta de programación escogida para desarrollar las aplicaciones fue Borland C++ Builder 6.0, así que se lo primero que se 77 hizo fue evaluar que requerimientos debía tener el servidor, que en ultimas seria manejado por los laboratoristas para hacer la gestión correspondiente a la asignación de equipos, por lo que se diseño una aplicación con ambiente gráfico con las siguientes funciones: • Detección de los clientes conectados. • Habilitación o Deshabilitación de los clientes. • Asignación de Tiempo. • Reportes históricos de uso A continuación se explican estas funciones: Detección de los clientes conectados Función que permite establecer cuando un computador está conectado al servidor, es de gran utilidad cuando se requiere saber rápidamente el estado de un equipo. Habilitación o Deshabilitación de los Clientes Esta función permite que desde el computador central el laboratorista asigne el uso de un equipo a la persona interesada en utilizarlo. 78 Asignación de Tiempo Permite al laboratorista asignar el uso de un equipo con un límite de tiempo para la persona que lo utiliza, la medida del tiempo esta definida en minutos. Reportes históricos de uso Consiste en almacenar información en la base de datos para luego ser presentado en forma de reportes gráficos que informan el estado, y características de uso de las estaciones, estos reportes pueden ser emitidos según fecha o por equipos solicitados. Figura 34. Interfase gráfica de la aplicación Servidor. Como se puede ver en la figura 34, existe un pequeño panel de control por cada cliente que exista dentro del sistema, este panel consiste en 2 botones que son: Activar y 79 Desactivar, los cuales de forma inmediata cambian sobre el cliente específico su estado de operación bajo cualquier situación, es decir, si un cliente se encuentra en funcionamiento ejecutando cualquier tarea dejara de interactuar con el usuario y continuar con su tarea sin necesidad de apagar el computador en cuestión. Y sólo se puede activar o habilitar desde el computador donde esté instalada la aplicación servidor que en este caso es el computador de la persona encargada en el laboratorio. También se puede ver que en cada cliente se tiene una casilla, el propósito de esta casilla es asignar un determinado número que equivale a los minutos que estará dicha estación activa, una vez se vence el tiempo fijado el computador cliente queda en un estado de no interacción con el usuario o inactivo. También se puede observar dentro de la aplicación servidor, las opciones Reporte y Salir. El botón identificado como Reporte se encarga de presentar al usuario un formulario de criterios para la generación de un reporte de uso de la máquina cliente, esto con el objeto de determinar: à Tiempos de Mantenimiento à Operación de la Máquina à Rendimiento à Nivel del Servicio Prestado 80 Figura 35. Generador de Reportes Figura 36. Resultado del Reporte 81 Como los computadores de los usuarios en estado inicial estarán limitados a la aprobación del laboratorista lo que quiere decir que las aplicaciones cliente y servidor se deben comunicar por medio de la red, se hará uso de sockets para transportar las tramas de información (sección 5.4.2.1) desde el cliente hasta el servidor. Para que la comunicación se pueda llevar a cabo de forma satisfactoria se debe seguir un orden el cual establece que el servidor debe estar listo a recibir peticiones de sus clientes para procesarlas por lo que se debe crear y configurar el socket en el servidor para que “Escuche” todas y cada una de las peticiones que se le hagan, si la petición que se le hace al servidor es comprendida por el según las tramas de información entonces el servidor de Aplicación hará una consulta al Servidor de la Base de Datos para determinar que permisos se pueden asignar al cliente, ya con esta información el Servidor de Aplicación devolverá una respuesta consecuente a la solicitud. De una manera más formal, se hizo uso de las herramientas de análisis vistas en la asignatura Ingeniería de Software, para la identificación de los componentes que intervienen en la aplicación Servidor, dicho análisis se muestra a continuación: 82 REPORT Atributos: Campos Formato Funciones: Mostrar la información del Cliente SOCKET Atributos: Puerto IP Dirección IP Buffer de entrada Buffer de Salida Funciones: Establecer la comunicación con los clientes Enviar información a los clientes Recibir información de los clientes Enviar información a la base de datos Recibir información de la base de datos PARAMETROS Atributos: Estado del cliente Nombre del cliente Trama generada Funciones: Configurar el futuro estado del cliente Enviar la configuración al socket VISUALIZADOR Atributos: Características del cliente Estado actual del cliente Funciones: Informar el estado actual del cliente Informar el estado asignado al cliente Figura 37. Diagrama de Objetos de la Aplicación Servidor Como se puede apreciar el objeto más importante es el socket puesto que este se encarga de establecer la comunicación, envío y recepción de información a los objetos locales como lo son el visualizador y el reporte, el socket como elemento central de esta aplicación es en ultimas quien dirige el funcionamiento de la aplicación cliente, la cual no es autónoma para tomar decisiones sin antes haber sido notificada y por el servidor. El código Fuente de la aplicación se encuentra en el Anexo B de este documento. 83 5.5.4 Desarrollo de la Aplicación Cliente Esta aplicación cumple con la función de atender las solicitudes de los usuarios con respecto al uso que le quieran dar al computador, el principal requisito para que esta aplicación sea funcional es que la aplicación servidor esté funcionando, puesto que si no es así la aplicación no podrá realizar las solicitudes indicadas. Dentro de las funciones principales de la aplicación están: à Bloquear el equipo hasta que se haga una solicitud de habilitación y a su vez esta sea validada. à Informar al servidor el estado del equipo à Controlar que la solicitud realizada al servidor sea cumplida a cabalidad. à Interactuar fácilmente con el usuario. Figura 38. Ambiente Gráfico de la aplicación Cliente. Al igual que la aplicación Servidor, la aplicación cliente debe crear y configurar un socket para que se “conecte” al servidor, al cual por medio del socket se le enviara la solicitud en forma de tramas para que sea procesada y respondida. 84 Una vez más utilizando Ingeniería de Software se identificaron los objetos que intervienen en la aplicación como se muestra a continuación: SOCKET VISUALIZADOR Atributos: Tiempo transcurrido Tiempo Asignado Funciones: Informar al cliente el estado de la conexión Informar al cliente el tiempo de activación Atributos: Puerto IP Dirección IP Buffer de entrada Buffer de Salida Funciones: Establecer la comunicación con el servidor Enviar información al servidor Recibir información de los clientes Enviar información del servidor SISTEMA DE BLOQUEO Atributos: Evasión de ordenes del cliente Tiempo de ejecución de bloqueo Funciones: Impedir que el cliente interactúe luego de un tiempo Deshabilitar las funciones del escritorio Deshabilitar el uso de aplicaciones Figura 39. diagrama de objetos de la Aplicación Cliente Como se puede apreciar en la figura, el objeto central es el socket ya que como en el caso del servidor el socket es el elemento de comunicación entre las aplicaciones, y en este caso se encarga de no interactuar con el usuario de forma activa, sino de traducir las tramas de información en tiempo y restricciones al sistema donde se ejecuta, por medio de la información recibida en el socket otros objetos como lo son el visualizador y el sistema de bloqueo pueden ejercer sus funciones de forma adecuada. El visualizador indica el tiempo de actividad asignado y el transcurrido, el sistema de bloqueo en base a 85 la comparación de los anteriores tiempos actúa como un elemento de restricción a las funciones de entrada para el usuario, como lo es el bloqueo del teclado, y la pantalla. El código Fuente de esta aplicación se encuentra en el Anexo C de éste documento. 5.5.5 Diseño de la base de Datos Siguiendo el esquema de la Figura 33, es necesario realizar el diseño de un diagrama entidad relación el cual es una herramienta para determinar que alcance y que tipo de información maneja el sistema de base de datos, para el diseño de la base de datos se utilizó Microsoft Access 2003, puesto que para utilizar una herramienta más especializada como lo es SQL Server 2000 se requieren licencias de uso que la Universidad no dispone, así que se procede primero a establecer que necesidades se generaran para que se construya la base de datos: Necesidades: à Almacenamiento de la información de forma sistemática y ordenada à Descentralización de las actividades en un solo computador à Seguridad que se ofrece al aislar los sistemas 86 USUARIOS CLASES * Código * Código Clase * Código Alumno Duración Nombre Apellido 1 Apellido 2 Semestre Store SCORE *Código Alumno Store Figura 40. Diagrama Entidad Relación de la Base de Datos Con el anterior diagrama se procede a explicar la función de la base de datos: En primer lugar, como la asignación de los equipos se puede hacer por clases lo que facilita el proceso de identificación de los alumnos involucrados en ella, se creo una tabla llamada CLASE en donde se registran los alumnos que ven esa clase, además de esto se cuenta con la información detallada de los alumnos por clase, una característica muy importante es el “Comportamiento” que tiene un alumno en algún determinado momento, lo que se califica y envía a una tabla llamada SCORE, donde si se requiere por el laboratorista se puede mirar que alumnos deben ser vigilados por conductas sospechosas o recurrentes que puedan llegar a afectar el estado del lugar. Cabe aclarar que el símbolo (*) se utiliza para denotar la no duplicidad de datos dentro de una de las entidades, dado que por ejemplo no pueden existir dos alumnos con el mismo código, se implementan estas medidas de control sobre las entidades o Tablas de la base de datos. 87 5.5.6 Pruebas Iniciales Como parte fundamental de las pruebas primero se deben inicializar las aplicaciones Cliente y Servidor en computadoras aparte, pero conectadas en Red por medio del cable correspondiente al puerto ethernet, una vez realizado esto, la aplicación servidor detectará por si misma la cantidad de clientes conectados a ella, que en este caso es uno solo: Figura 41. Inicialización de la Aplicación servidor reconociendo 1 cliente en estado de conexión. Cuando se detecta la presencia de un cliente, el servidor automáticamente permite la edición de la casilla Tiempo, justamente para asignar si se requiere el tiempo de uso al computador cliente. 88 Ahora que sabemos que hay cliente, además de probar las funciones de habilitación, deshabilitación y tiempo, se debe probar la cobertura del sistema ante situaciones de emergencia, para lo cual se optó por desconectar los computadores de la red, provocando errores en la transmisión por sockets tanto del cliente como del servidor, aprovechando estos eventos de error se enrutan todos los datos hacia el puerto COM1, con la misma estructura de datos presentada en la sección (8.4.2.1 tabla 8). Como medida de precaución antes de que el sistema RF actúe como mecanismo de apoyo sobre el computador, se analizó la posibilidad de que el servicio de comunicación por red ethernet dejara de funcionar en plena asignación de una instrucción al cliente y por lo tanto la información se enviara a medias, ante este problema surgieron 3 soluciones: 1. Reenviar automáticamente el dato. 2. Enviar una petición de reenvío. 3. Colocar el o las instrucciones no enviadas en una cola de recuperación. La primera opción no es la mejor dado que hacer esto implicaría resetear los parámetros a la aplicación cliente al poco tiempo de haberle asignado parámetros. La segunda opción es una solución lógica ante el problema de la falta de comunicación, pero si definitivamente durante un largo periodo de tiempo la comunicación no se 89 presenta, se estaría perdiendo tiempo de procesamiento en la aplicación servidor, ya que siempre estará haciendo un test del estado del puerto ethernet hasta que obtenga una respuesta. La tercera opción se adapta mejor a las necesidades de este proyecto ya que tras la primera caída de la red ethernet, la aplicación evalúa y reconstruye la trama enviada al cliente y la aloja en un archivo para colocarla en cola, y así sucesivamente con todas las instrucciones atrasadas que se generen en el momento: Figura 42. Alistamiento de las aplicaciones ante fallas en el puerto Ethernet. Con la anterior explicación se probó que el procesamiento de instrucciones no se vio afectado por la desconexión de los dispositivos de red de los computadores, cabe 90 recordar que como ya se había mencionado el sistema RF es solo de apoyo que en ningún momento reemplaza todas las funciones del sistema principal de comunicaciones ethernet. Test: Sistema de alimentación Con el fin de detectar posibles peligros para el circuito transmisor y receptor, se procedió a medir durante 30 minutos el comportamiento del voltaje, obteniendo los siguientes resultados para 10 segundos de medición: Time (s) Volts (V) 1 5.210 2 5.113 3 5.023 4 5.027 5 5.300 6 5.347 7 5.344 8 5.327 9 5.322 10 5.330 Tabla 9. Medición del voltaje sobre el puerto serie 91 Y a continuación se presenta un gráfico histórico durante 30 minutos: Figura 43. Medición histórica de voltaje Donde se observa que el sistema se energiza alrededor de los 5 voltios durante su medición con un multímetro de interfase infrarroja para la adquisición de datos. CPU: El siguiente ítem a comprobar es el nivel del recurso de procesamiento requerido por las aplicaciones, para lo cual se decidió hacer un seguimiento de 1 hora tanto al cliente como al servidor, y al cabo de una hora se registro el comportamiento del procesador mediante la herramienta TaskManager de Windows: 92 Figura 44. Rendimiento de la aplicación servidor 93 Figura 45. Rendimiento de la Aplicación Cliente Se observa que en ningún momento las aplicaciones superan el 30% de procesamiento, lo cual favorece el rendimiento general del PC, sin ocasionar interrupciones o molestias a los usuarios. Comunicaciones: Por último se prueba que el sistema de transmisión y recepción inalámbrica funcione correctamente, para lo cual se tomaron muestras de envió y aceptación de tramas cada 10 minutos durante 1 hora, obteniendo los siguientes resultados: 94 Minuto Trama Enviada Respuesta Acertada o Nó 1 Hux Huxok 10 Dux Sin respuesta 20 Hux Huxok 30 Dux Duxok 40 Hux Huxok 50 Dux Duxok 60 Hux Huxok Tabla 10. Pruebas de Envío y recepción de tramas Se observa que el rendimiento que alcanzó durante 1 hora de pruebas el sistema en un ambiente ruidoso fue del 85.71% al fallar la prueba una vez de 7 veces. 5.5.7 Puesta en Funcionamiento Por ultimo se debe instalar de forma adecuada los componentes de hardware y software para el óptimo funcionamiento del proyecto. En primer lugar se instalan en la parte posterior del computador las tarjetas de cliente y servidor que se encuentran identificadas por una etiqueta en la superficie de las mismas, luego se deben encender los PC, hasta hora solo están previamente listos los 95 computadores cliente y servidor quedado pendiente el computador que porta la base de datos. Para configurar el computador servidor de base de datos se procede a copiar e instalar el archivo llamado bd.mdb en la ruta “c:\” del computador destinado para ello, luego de esto se procede a enlazar este archivo para que el computador con la aplicación servidor pueda comunicarse con la base de datos, para ello se le asigna bd.mdb un enlace ODBC como se muestra a continuación: Figura 46. Configuración del enlace ODBC y el computador de base de datos. Una vez configurado esto, se puede dar inicio a la aplicación servidor y luego a todas o cada una de las aplicaciones cliente para que se conecten al servidor, hagan la solicitud 96 de un servicio y este consulte con la base de datos por medio del enlace ODBC, obteniendo resultados similares a los de la sección (8.4.3) de este documento. 97 CONCLUSIONES • Se implementó un medio efectivo de comunicación, entre las aplicaciones y el dispositivo electrónico, dado que se obtuvo un nivel de voltaje continuo por medio del uso de un algoritmo el cual hace que el puerto genere una diferencia de potencial de 5 voltios (sección 5.5.6, Test Alimentación), lo que permitió el optimo funcionamiento del circuito de interfase RS232, el cual adapta voltajes comprendidos entre +15 y -15 voltios en niveles TTl, manejables para los módulos RF. • Se desarrolló una plataforma totalmente interactiva con los usuarios tanto clientes como servidores, siendo esta desarrollada con el entorno de programación Borland C++ Builder, el cual ofrece componentes de desarrollo altamente estables y personalizables. Además la plataforma resulto ser lo bastante estable para manejar unos niveles realmente bajos de procesamiento los cuales no comprometen de una forma alarmante el uso de recursos del sistema, siendo para la aplicación servidor un consumo de procesamiento cercano al 16%, mientras que para la aplicación cliente el nivel de procesamiento estuvo el 17% y 19%, (sección 5.5.6, Test CPU), lo cual garantiza el aprovechamiento optimo del procesador sin llegar a 98 perturbar el modo de operación de los computadores donde se tiene instalado el sistema. • El circuito electrónico garantizó la conectividad de los sistemas cliente y servidor, como se vio en las pruebas iniciales de la sección 5.5.6, durante una prueba de desconexión de los cables de red de los computadores el sistema de apoyo inalámbrico tubo un rendimiento del 85.71% dado que el ambiente donde se realizaron las pruebas fue un ambiente contaminado por emisiones electromagnéticas fuertes como se llegó a determinar causadas en su mayoría por las luces fluorescentes, las cuales perturbaban el medio de transmisión y recepción, lo que ocasionó fallas en la transmisión de instrucciones de control por parte del servidor hacia el cliente más no se registro ningún cambio de estado con los clientes ante la interferencia magnética. • Se logró establecer el estado particular de las estaciones, ya que Modelo Cliente Servidor Propuesto en la sección 5.5.3, permitió que datos como los de conexión y desconexión de la estación cliente llegaran sin ningún contratiempo, esto asociado a las múltiples consultas que se realizan a la base de datos para establecer que permisos efectivos tiene durante un determinado periodo de tiempo la estación cliente. 99 • El diseño de estrategias como lo son la asignación de tiempo, habilitar o deshabilitar clientes, y el control en el estado de conexión y desconexión permitió realizar un seguimiento que se encuentra en el Anexo D, del cual se pudo determinar: a. las actividades propias de los computadores se estabilizan a los 3.5 segundos de su asignación. b. El tiempo promedio para que una estación cliente entre en funcionamiento es de aproximadamente 3.75 segundos. c. el grado de conformidad con el sistema fue del 79.16%. Con los anteriores indicadores se puede afirmar entonces que el sistema de control de aplicaciones ayuda y permite organizar mejor las actividades en un grupo de computadores, al controlar su tiempo de uso y su estado, generando control y seguridad sobre los equipos cubiertos por estas medidas. 100 BIBLIOGRAFIA TANENBAUM, ANDREW S.: "Redes de Ordenadores", 3 Ed., Prentice Hall International, 1996. STEVENS, W. R.: "TCP/IP Illustrated Vol. 1 The protocols" Prentice Hall, 1994 P. Mähönen, T Saarinen and Z Shelby, " Wireless internet over LMDS: Architecture and Experimental Implementation, " IEEE Magazine, Topic in Wireless, May 2001,Vol. 39, N° 5, p.p 126-132. J. Kuri and M. Gagnaire, ENST Paris, France "ATM Traffic Management in an LMDS Wireless Access Network," IEEE Magazine-Inelligence in Optical Network. September. 2001. Vol 39, N° 9, p.p 133-128. Kalev, D. (1999). "The ANSI/ISO C++. Programmer's Handbook". Professional. ISBN 0-7897-2022-1 (ING 1627) Main, M., Satvich, W. (2001). "Data Structures and Other Objects Using C++". Addison-Wesley. ISBN 0-201-70297-5 101 ANEXO A 102 ANEXO B 103 #include <vcl.h> AnsiString Men; #pragma hdrstop #include "INTERCOMC.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma link "trayicon" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------void __fastcall TForm1::Timer1Timer(TObject *Sender) { ClientSocket1->Socket->SendText("Equipo1 conectado"); } //--------------------------------------------------------------------------void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose) { ClientSocket1->Socket->SendText("Equipo1 desconectado"); } //--------------------------------------------------------------------------void __fastcall TForm1::Timer2Timer(TObject *Sender) { //keybd_event(VK_ESCAPE, NULL, NULL, 0); //Application->Restore(); //Application->BringToFront(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ClientSocket1->Port = 9921; if(ClientSocket1->Active) { ClientSocket1->Active = false; } 104 else { ClientSocket1->Host = Edit1->Text; ClientSocket1->Active = true; } Timer1->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket) { Men = Socket->ReceiveText(); if(Men == "chao") { ClientSocket1->Socket->SendText("Equipo1 desconectado"); exit(0); } } //--------------------------------------------------------------------------COMPORTAMIENTO DEL SOCKET #include <vcl.h> #include <winsock.h> #include <iostream.h> #include <stdio.h> #include <stdarg.h> #include <string.h> hostent *p; char *alias; int i; IN_ADDR add; char x[30]; int k = 0; #pragma hdrstop #include "NIKO.h" 105 //--------------------------------------------------------------------------#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------#pragma argsused //--------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender) { Memo1->Text = "***"; } //--------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender) { if(Edit1->Text == "") { Edit1->Text = "error debe escribir un dominio!!"; } WSADATA wsaData; if (WSAStartup(MAKEWORD(1, 1), &wsaData) !=0) { Edit1->Text = "WSAStartup fallo"; } p=gethostbyname(x); if (p==NULL) { strerror(errno); Edit1->Text = "error obteniendo el nombre"; } else { Label7->Caption = p->h_name; 106 memcpy(&add.S_un,p->h_addr_list[0],p->h_length); Label8->Caption = inet_ntoa(add); Label9->Caption = p->h_addrtype; Label10->Caption = p->h_length; if(p->h_aliases[0]!=NULL) { Label12->Caption = p->h_aliases[0]; } i=0; Memo1->Text = ""; while(p->h_addr_list[i]) { memcpy(&add.S_un,p->h_addr_list[i],p->h_length); Memo1->Text = Memo1->Text + inet_ntoa(add) + " / "; i++; } } WSACleanup(); } //--------------------------------------------------------------------------void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { x[k] = Key; k++; } //--------------------------------------------------------------------------void __fastcall TForm1::Edit1Click(TObject *Sender) { Edit1->Text = ""; Label7->Caption = "***"; Label8->Caption = "***"; Label9->Caption = "***"; Label10->Caption = "***"; Label12->Caption = "***"; 107 Memo1->Text = ""; for(k=0;k<=30;k++) {x[k] = NULL;} k=0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { if(Edit1->Text == "") { Edit1->Text = "Debe escribir un dominio"; } WSADATA wsaData; if (WSAStartup(MAKEWORD(1, 1), &wsaData) !=0) { Edit1->Text = "Error Externo"; } p=gethostbyname(x); if (p==NULL) { strerror(errno); Edit1->Text = "No se pudo obtener el nombre"; } else { Label7->Caption = p->h_name; memcpy(&add.S_un,p->h_addr_list[0],p->h_length); Label8->Caption = inet_ntoa(add); Label9->Caption = p->h_addrtype; Label10->Caption = p->h_length; if(p->h_aliases[0]!=NULL) { 108 Label12->Caption = p->h_aliases[0]; } else { Label12->Caption = "***"; } i=0; Memo1->Text = ""; while(p->h_addr_list[i]) { memcpy(&add.S_un,p->h_addr_list[i],p->h_length); Memo1->Text = Memo1->Text + inet_ntoa(add) + " / "; i++; } } WSACleanup(); } 109 ANEXO C 110 CONFIGURACION DEL SOCKET //--------------------------------------------------------------------------#include <vcl.h> #include <winsock.h> #include <iostream.h> #include <stdio.h> #include <stdarg.h> #include <string.h> hostent *p; char *alias; int i; IN_ADDR add; char x[30]; int k = 0; #pragma hdrstop #include "NIKO.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------#pragma argsused //--------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender) { Memo1->Text = "***"; } //--------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender) { if(Edit1->Text == "") { 111 Edit1->Text = "error debe escribir un dominio!!"; } WSADATA wsaData; if (WSAStartup(MAKEWORD(1, 1), &wsaData) !=0) { Edit1->Text = "WSAStartup fallo"; } p=gethostbyname(x); if (p==NULL) { strerror(errno); Edit1->Text = "error obteniendo el nombre"; } else { Label7->Caption = p->h_name; memcpy(&add.S_un,p->h_addr_list[0],p->h_length); Label8->Caption = inet_ntoa(add); Label9->Caption = p->h_addrtype; Label10->Caption = p->h_length; if(p->h_aliases[0]!=NULL) { Label12->Caption = p->h_aliases[0]; } i=0; Memo1->Text = ""; while(p->h_addr_list[i]) { memcpy(&add.S_un,p->h_addr_list[i],p->h_length); Memo1->Text = Memo1->Text + inet_ntoa(add) + " / "; i++; 112 } } WSACleanup(); } //--------------------------------------------------------------------------void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { x[k] = Key; k++; } //--------------------------------------------------------------------------void __fastcall TForm1::Edit1Click(TObject *Sender) { Edit1->Text = ""; Label7->Caption = "***"; Label8->Caption = "***"; Label9->Caption = "***"; Label10->Caption = "***"; Label12->Caption = "***"; Memo1->Text = ""; for(k=0;k<=30;k++) {x[k] = NULL;} k=0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { if(Edit1->Text == "") { Edit1->Text = "Debe escribir un dominio"; } WSADATA wsaData; if (WSAStartup(MAKEWORD(1, 1), &wsaData) !=0) { Edit1->Text = "Error Externo"; } 113 p=gethostbyname(x); if (p==NULL) { strerror(errno); Edit1->Text = "No se pudo obtener el nombre"; } else { Label7->Caption = p->h_name; memcpy(&add.S_un,p->h_addr_list[0],p->h_length); Label8->Caption = inet_ntoa(add); Label9->Caption = p->h_addrtype; Label10->Caption = p->h_length; if(p->h_aliases[0]!=NULL) { Label12->Caption = p->h_aliases[0]; } else { Label12->Caption = "***"; } i=0; Memo1->Text = ""; while(p->h_addr_list[i]) { memcpy(&add.S_un,p->h_addr_list[i],p->h_length); Memo1->Text = Memo1->Text + inet_ntoa(add) + " / "; i++; } } WSACleanup(); } 114 //--------------------------------------------------------------------------CLIENTE #include <vcl.h> AnsiString Men; #pragma hdrstop #include "INTERCOMC.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma link "trayicon" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------void __fastcall TForm1::Timer1Timer(TObject *Sender) { ClientSocket1->Socket->SendText("Equipo1 conectado"); } //--------------------------------------------------------------------------void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose) { ClientSocket1->Socket->SendText("Equipo1 desconectado"); } //--------------------------------------------------------------------------void __fastcall TForm1::Timer2Timer(TObject *Sender) { //keybd_event(VK_ESCAPE, NULL, NULL, 0); //Application->Restore(); //Application->BringToFront(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ClientSocket1->Port = 9921; if(ClientSocket1->Active) 115 { ClientSocket1->Active = false; } else { ClientSocket1->Host = Edit1->Text; ClientSocket1->Active = true; } Timer1->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket) { Men = Socket->ReceiveText(); if(Men == "chao") { ClientSocket1->Socket->SendText("Equipo1 desconectado"); exit(0); } } 116 ANEXO D 117 Hora de Inicio Tiempo de Tiempo De Conformidad (hh:mm:ss) Habilitación(mm:ss) Estabilización (s) Escala (1 - 10) 9:00 AM 3 5 8 9:00 AM 4 4 8 9:00 AM 4 4 5 9:00 AM 4 2 8 9:00 AM 5 4 8 9:01 AM 3 3 10 9:01 AM 4 2 9 9:01 AM 4 4 7 9:01 AM 3 4 8 9:01 AM 3 3 8 9:07 AM 4 3 9 9:07 AM 4 4 7 Tabla 10. Registro de Operaciones para la Asignación de equipos 118 SISTEMA ELECTRONICO PARA EL CONTROL DE APLICACIONES EN UN PC Rios Rodríguez Nicolás Abstract- En este artículo se expone el diseño, construcción e implementación de un circuito electrónico para el control de aplicaciones en un computador, lo cual permitirá un control más específico por parte de los laboratoristas, de las actividades y usos dados a los computadores, garantizando el buen desempeño de los equipos bajo el control del sistema inalámbrico. Algunas de las características más importantes del puerto serie son: Palabras ClavesTramas, datos, transmisor, receptor, Interfase gráfica, puerto serial, sistema operativo. 3. SISTEMA DE COMUNICACIÓN 1. INTRODUCCIÓN El constante aumento del uso inadecuado de los computadores en la actualidad los convierte definitivamente en herramientas subutilizadas, sin ni siquiera llegar en la actualidad a un nivel de uso del 50% útil, generando así el desgaste de los equipos en actividades secundarias lo que preocupa tanto a propietarios como a administradores. 2. PUERTO SERIAL El puerto serial es sin duda alguna el 50% del proyecto ya que este es el encargado de disponer al alcance del dispositivo de control los pines necesarios para el manejo de señales tanto de datos como de alimentación. Para que el proyecto funcione adecuadamente se espera que el puerto serial que será utilizado, esté libre de todo uso por parte de otro dispositivo como lo puede ser Mouse, teclado, impresora, etc. • Buena velocidad transmisión. • Mínimo espacio ocupado. • Gran soporte actual. 3.1 de TRANSMISOR Y RECEPTOR Para la transmisión de información de un punto de origen a un punto de destino se requiere el uso indispensable de un mecanismo electrónico el cual pueda transportar el dato necesario de forma eficiente, Los módulos de radio frecuencia escogidos para este proyecto son componentes para el control de aplicaciones de forma inalámbrica: à à TLP434A (Transmisor) RLP434A (Receptor) Estos dos componentes se caracterízan por su buena calidad al momento de acondicionar las señales para ser transmitidas, lo que los hace ser una de las mejores opciones para el control de aplicaciones vía radio frecuencia. Dadas las características anteriores de los módulos y a su fácil consecución en el mercado, se utilizaron para este proyecto por su buen alcance de transmisión. Sin lugar a dudas una de las más fascinantes características de estos módulos es su fácil instalación ya que poseen pocos pines y su interfase de comunicación es serial, lo que implica un considerable ahorro de espacio. 3.2 LENGUAJE DE PROGRAMACIÓN La herramienta de programación utilizada para este proyecto es Borland C++ Builder 6.0 de la Compañía Borland Software Inc. Este es un entorno de programación desarrollado para aplicaciones de alto rendimiento y eficiencia, su interfaz gráfica y su buena documentación hicieron que fuera la herramienta indicada para desarrollar las aplicaciones del proyecto. Borland C++ Builder provee soporte para el lenguaje de programación C, el cual es antecesor de C++, incluye innumerables herramientas para el desarrollo de aplicaciones como lo son control integrado de excepciones lo que quiere decir que se pueden monitorear “trazar” las anomalías de un programa cuando falla y en consecuencia corregirlas. Borland C++ Builder no solo incluye soporte para la tecnología basada en C, también incluye herramientas como el diseño de librerías, aplicaciones gráficas, procesos remotos, entre otros. Sin duda este paquete de software esta acorde al desarrollo que se desea de en el proyecto por lo anterior y por ser un ambiente robusto y seguro por esto se escogió para desarrollar la plataforma distribuida de esta Tesis. 3.3 SISTEMA DISTRIBUIDO Teniendo en cuenta que el sistema se basa en la metodología Cliente-Servidor y de acuerdo al propósito de este sistema en particular se tienen 2 servidores: à à Servidor de Aplicación de Control Servidor de Base de Datos Esto con el objetivo de descentralizar las operaciones, el Servidor de Aplicación se encarga de recibir y procesar las solicitudes de los clientes mientras que el Servidor de Base de Datos contiene la información concerniente a los permisos de los clientes para realizar alguna actividad, con esto las operaciones de los clientes son recibidas por el Servidor son interpretadas por el y consultadas ante el Servidor de Base de Datos para enviar una respuesta al cliente. Figura 1. Sistema Distribuido Propuesto Funciones del sistema distribuido: Detección de los clientes conectados Función que permite establecer cuando un computador está conectado al servidor, es de gran utilidad cuando se requiere saber rápidamente el estado de un equipo. Habilitación o Deshabilitación de los Clientes Esta función permite que desde el computador central el laboratorista asigne el uso de un equipo a la persona interesada en utilizarlo. Asignación de Tiempo Permite al laboratorista asignar el uso de un equipo con un límite de tiempo para la persona que lo utiliza, la medida del tiempo esta definida en minutos. Reportes históricos de uso Consiste en almacenar información en la base de datos para luego ser presentado en forma de reportes gráficos que informan el estado, y características de uso de las estaciones, estos reportes pueden ser emitidos según fecha o por equipos solicitados. 3.3.1 Trama de Datos Con el objetivo de detectar la presencia del dispositivo electrónico y otras funciones se han escrito una serie de tramas o secuencia de caracteres que se utilizaran para el proceso de comunicación entre el PC y el circuito transmisor como se muestra a continuación: Trama Enviada Cok Dok Txxxux Hux Trama de Descripción Respuesta Cok Indica la conexión. c = conectado ok = ok Dok Indica la desconexión. d = desconectado ok = ok Txok Asigna tiempo a un usuario t = tiempo xxx = cifra en minutos u = usuario x = número de usuario Huxok Habilita un usuario h = habilita Dux Duxok Pxux Pxuxok u = usuario x = número del usuario ok = ok Deshabilita un usuario d = deshabilita u = usuario x = número del usuario ok = ok Asigna perfil a un usuario p = perfil x = tipo de perfil u = usuario x = número del usuario ok = ok Tabla 1. Trama de datos para la comunicación de instrucciones 3.4 SISTEMA INALAMBRICO El sistema inalámbrico es aquel componente que se encarga de la adquisición y recepción de datos desde y hacia el puerto serial. Para lo cual utilizaremos un dispositivo que sirva de interfase entre el puerto de comunicaciones y el sistema inalámbrico, para lo cual se escogió un semiconductor integrado, el MAX232, este semiconductor es típicamente utilizado en el sector de las comunicaciones seriales por su eficiencia, operabilidad, y fácil montaje. El Max232 es la herramienta que servirá de puente entre el computador y el sistema electrónico acoplando las señales de niveles TTL (0-5 voltios) a niveles lógicos de puerto (-15 a 15 voltios). serial hacia el circuito de interfase ya que este recibe los datos provenientes del exterior. 3.4.1 Transmisor 4. CONCLUSIONES Para empezar, y como ya se hablo, el circuito se compone de 3 bloques funcionales que son; el computador, la unidad de acople serial y la unidad de transmisión inalámbrica: Se implementó un medio efectivo de comunicación, entre las aplicaciones y el dispositivo electrónico, dado que se obtuvo un nivel de voltaje continuo por medio del uso de un algoritmo el cual hace que el puerto genere una diferencia de potencial de 5 voltios (sección 5.5.6, Test Alimentación), lo que permitió el optimo funcionamiento del circuito de interfase RS232, el cual adapta voltajes comprendidos entre +15 y -15 voltios en niveles TTl, manejables para los módulos RF. PC NTERFASE RF Figura 2. Diagrama de Bloques Funcionales del Circuito Transmisor La interfase se realiza utilizando el circuito integrado MAX232, dado que este ofrece alto aislamiento eléctrico entre las partes, garantizando la no interferencia de perturbaciones desde los componentes. Es claro que como se necesita una comunicación de tipo Simplex, lo que quiere decir que solo se realiza el proceso de transmisión ó el de recepción de datos pero no los dos. 3.4.2 Receptor Al igual que el circuito transmisor, el receptor se compone de 3 bloques funcionales que son; la unidad de Recepción Inalambrica, la unidad de acople serial y el computador: RF INTERFASE PC Figura 3. Diagrama de Bloques Funcionales del Circuito Transmisor Y considerando que el receptor también deberá comunicarse de forma simplex, se hace conexión con el pín 2 del puerto Se desarrolló una plataforma totalmente interactiva con los usuarios tanto clientes como servidores, siendo esta desarrollada con el entorno de programación Borland C++ Builder, el cual ofrece componentes de desarrollo altamente estables y personalizables. Además la plataforma resulto ser lo bastante estable para manejar unos niveles realmente bajos de procesamiento los cuales no comprometen de una forma alarmante el uso de recursos del sistema, siendo para la aplicación servidor un consumo de procesamiento cercano al 16%, mientras que para la aplicación cliente el nivel de procesamiento estuvo el 17% y 19%, (sección 5.5.6, Test CPU), lo cual garantiza el aprovechamiento optimo del procesador sin llegar a perturbar el modo de operación de los computadores donde se tiene instalado el sistema. El circuito electrónico garantizó la conectividad de los sistemas cliente y servidor, como se vio en las pruebas iniciales de la sección 5.5.6, durante una prueba de desconexión de los cables de red de los computadores el sistema de apoyo inalámbrico tubo un rendimiento del 85.71% dado que el ambiente donde se realizaron las pruebas fue un ambiente contaminado por emisiones electromagnéticas fuertes como se llegó a determinar causadas en su mayoría por las luces fluorescentes, las cuales perturbaban el medio de transmisión y recepción, lo que ocasionó fallas en la transmisión de instrucciones de control por parte del servidor hacia el cliente más no se registro ningún cambio de estado con los clientes ante la interferencia magnética. Se logró establecer el estado particular de las estaciones, ya que Modelo Cliente Servidor Propuesto en la sección 5.5.3, permitió que datos como los de conexión y desconexión de la estación cliente llegaran sin ningún contratiempo, esto asociado a las múltiples consultas que se realizan a la base de datos para establecer que permisos efectivos tiene durante un determinado periodo de tiempo la estación cliente. El diseño de estrategias como lo son la asignación de tiempo, habilitar o deshabilitar clientes, y el control en el estado de conexión y desconexión permitió realizar un seguimiento que se encuentra en el Anexo D, del cual se pudo determinar: a. las actividades propias de los computadores se estabilizan a los 3.5 segundos de su asignación. b. El tiempo promedio para que una estación cliente entre en funcionamiento es de aproximadamente 3.75 segundos. c. el grado de conformidad con el sistema fue del 79.16%. Con los anteriores indicadores se puede afirmar entonces que el sistema de control de aplicaciones ayuda y permite organizar mejor las actividades en un grupo de computadores, al controlar su tiempo de uso y su estado, generando control y seguridad sobre los equipos cubiertos por estas medidas. 5. REFERENCIAS [1] TANENBAUM, ANDREW S.: "Redes de Ordenadores", 3 Ed., Prentice Hall International, 1996. [2] STEVENS, W. R.: "TCP/IP Illustrated Vol. 1 The protocols" Prentice Hall, 1994 [3] P. Mähönen, T Saarinen and Z Shelby, " Wireless internet over LMDS: Architecture and Experimental Implementation, " IEEE Magazine, Topic in Wireless, May 2001,Vol. 39, N° 5, p.p 126-132. [4] J. Kuri and M. Gagnaire, ENST Paris, France "ATM Traffic Management in an LMDS Wireless Access Network," IEEE MagazineInelligence in Optical Network. September. 2001. Vol 39, N° 9, p.p 133128. [5] Kalev, D. (1999). "The ANSI/ISO C++. Programmer's Handbook". Professional. ISBN 07897-2022-1 (ING 1627)