Universidad Rafael Urdaneta. Facultad De Ingeniería Escuela de Computación. Escuela de Eléctrica. S O D VA R E S E R S HO EC R E D DESARROLLO DE UN SISTEMA PROTOTIPO DE MONITOREO REMOTO DEL CONSUMO DE GASOLINA EN ESTACIONES DE SERVICIOS. Autores: Br. Aparicio Sánchez, Raúl Enrique. Br. Labarca Córdova, Daniel Enrique. Tutor Académico: Ing. Carlos Urdaneta. Tutor Metodológico: Lic. Betilia Ramos. Maracaibo, Mayo de 2005. VEREDICTO Nosotros, ________________________ titular de la C.I. Nº ______________ ________________________________ titular de la C.I. Nº ______________ Integrantes del jurado, evaluamos el Trabajo Especial de Grado titulado: S O D DESARROLLO DE UN SISTEMA PROTOTIPO DE MONITOREO REMOTO VA R E S DEL CONSUMO DE GASOLINA ENE ESTACIONES DE SERVICIOS. R S O H C E Realizado porR E el Bachiller Raúl Enrique Aparicio Sánchez, titular de la C.I. Nº D 15.718.993 como requisito para optar al titulo de Ingeniero Electricista; el cual recibe la siguiente calificación ________________ ( ) puntos. Realizado por el Bachiller Daniel Enrique Labarca Córdova, titular de la C.I. Nº 16.119.092 como requisito para optar al titulo de Ingeniero en Computación; el cual recibe la siguiente calificación ________________ ( ) puntos. Fechado el día ______________ del mes de ______________ de 2005. ________________________ ________________________ Jurado Jurado II DEDICATORIA A Dios, quien es y será el guía de mis sueños, logros y metas. Gracias A mi Querida Madre, por ser la más grande fuente de fortaleza, Gracias por todo el apoyo y consejos. Tú siempre me diste fuerzas para continuar en los momentos más difíciles. A mi Gran Padre, siempre lo has dado todo por tus hijos, tu constancia y S O D VA R E S A mis Hermanos, por siempre mantenerse unidos y darme todo su apoyo. E R OS H C E A DanielE a la Sra. Lilia por todo su apoyo y hacerme sentir como parte de su D yR dedicación es el ejemplo más grande, gracias por todo el apoyo a lo largo de mi carrera. familia. Gracias por sus consejos. A Todos mis Amigos que de una u otra manera ayudaron con la realización de este proyecto. Gracias. Raúl Aparicio. III DEDICATORIA A Dios, quien es y será el guía de mis sueños, logros y metas. Gracias A mi Querida madre, mi gran admiración, gracias por todo el esfuerzo y apoyo que hiciste para que yo llegara hasta donde estoy en estos momentos. A Chela, que junto con mi madre, lo ha dado todo por mi, las amo muchísimo. S O D todo, gracias por todos sus consejos, los quiero mucho. VA R E S E R S O H A mi hermana Andreina y su esposo Jorge por todo su apoyo, sinceridad y C E ER aprecio, los D quiero mucho. A mi tía Leti y tío Alfredo, mi modelo a seguir, que siempre me han ayudado en A mi Gran Amigo Raúl, sus Padres y Hermanos, por todo su apoyo y hacerme sentir como parte de su familia. Muchas gracias. A Todos mis Amigos y Familiares que de una u otra manera ayudaron con la realización de este proyecto. Gracias. IV S O D VA R E S E R S HO EC R E D AGRADECIMIENTO En primer lugar a Dios y la Virgen, quienes nos permitieron culminar una etapa importante en nuestras vidas y nos brindaron la luz para que los problemas grandes se hicieran pequeños. “Que Grande es Dios”. Agradezco infinitamente a nuestros grandes maestros, Arnaldo Largo, Carlos Urdaneta, Gerik Núñez, Nesky Tapia, Nerio Villalobos, David Márquez y Edmundo Antoranz, de quienes nos llevamos conocimientos. Mil nuestros mejores gracias y que Dios los bendiga. A todos nuestros compañeros por hacernos saber que somos un gran equipo. Gracias V INDICE GENERAL Veredicto…………………………………………………………………. II Agradecimiento…………………………………………………………... III Dedicatoria………………………………………………………….......... IV Agradecimiento…………………………………………………………... V Índice…………………………………………………………................... VI Resumen………………………………………………………….............. IX Introducción…………………………………………………………........ X Capitulo I…………………………………………………………............ 11 Planteamiento y Formulación del Problema……………………… 11 Objetivo general………..………..………..………………………. 13 Objetivos específicos………..………..………..…………………. 13 Justificación e Importancia de la investigación………..…………. 14 Delimitación Espacial………..………..………..………………… 16 Delimitación Temporal………..………..………..………..……… 16 Capitulo II………..………..………..………..………..………..……….. 17 Marco Teórico………..………..………..………..………..……… 17 Antecedentes de la investigación………..………..………..……… 17 Fundamentación Teórica………..………..………..……………… 19 Sistema………..………..………..………………………… 19 Sistema de Información………..………..…………. 19 Programación………..………..………..………………….. 19 Programación e ingeniería de software……………. 20 Programación Lineal………..………..……………. 20 Programación Estructurada………..………..……… 21 Programación Orientada a Objetos………………… 22 S O D VA R E S E R S HO EC R E D VI Redes………..………..………..………..………..………… 23 Clasificación de las redes………..………..………..………. 23 La red Internet………..………..………..………………….. 24 Protocolo………..………..………..……………………….. 24 El protocolo TCP/IP………..………..………..…………… 25 Protocolo http………..………..………..………………….. 25 Controlador………..………..………..……………………. 30 S O D Microcontrolador………..………..………..……………… VA R E S E R Interrupciones…………………………………………….. OS H C EREcomunes a todos los microcontroladores………. DRecursos Microprocesador………..………..………..………………. Arquitectura básica de los microcontroladores…………… 31 31 32 33 33 Herramientas para el desarrollo de aplicaciones con microcontroladores…………………………………… 34 Definición de términos básicos………..………..………..……….. 35 Sistema de Variables e Indicadores………..………..………..…... 41 Definición operacional de las Variables………..………..……….. 41 Capitulo III………..………..………..………..………..………..………. 43 Marco Metodológico………..………..………..…………………. 43 Tipo y nivel de investigación………..………..………….. 43 Población y muestra………..………..………..………….. 44 Técnicas y recolección de datos………..………..……….. 45 Metodología del diseño………..………..………..………. 48 VII Capitulo IV………..………..………..………..………..………..………. 42 Análisis e Interpretación de los Resultados………………………. 42 Análisis del Sistema Actual………..………..………..…………... 42 Análisis del Sistema Propuesto………..………..………..……….. 42 Conclusiones………..………..………..………..………..………..…….. Recomendaciones………..………..………..…………………………… Referencia Bibliográfica………..………..………..……………………. S O D VA R E S E R S HO EC R E D VIII APARICIO SÁNCHEZ, RAÚL. LABARCA CÓRDOVA, DANIEL. “DESARROLLO DE UN SISTEMA PROTOTIPO DE MONITOREO REMOTO DEL CONSUMO DE GASOLINA EN ESTACIONES DE SERVICIOS” Universidad Rafael Urdaneta. Maracaibo. Edo. Zulia, 2005. RESUMEN La presente investigación tiene como finalidad el desarrollo de un sistema S O D VA R E Sesta constituida por las estaciones de análisis, diseño e implementación. La población E R S tomando de esta como muestra el modelo O servicio de Maracaibo Estado Zulia, H C E TOCKHEIM PREMIER DER C. Para el desarrollo de esta investigación, se estudió el prototipo de monitoreo remoto del consumo de gasolina en estaciones de servicios, para su realización se utilizó un tipo de investigación descriptiva, conjuntamente con su comportamiento eléctrico de la muestra, realizando así un simulador utilizado para la captura, transmisión, recolección, y registro de ventas a un servidor de base de datos, llevándose a cabo el monitoreo de la información mediante una aplicación Web, donde se le aplicó rigurosas pruebas con la finalidad de obtener la confiabilidad para luego analizar e interpretar los resultados, los cuales fueron satisfactorios, llegando a las conclusiones y recomendaciones pertinentes. IX INTRODUCCIÓN A continuación se les presenta un trabajo de investigación titulado desarrollo de un sistema prototipo de monitoreo remoto del consumo de gasolina en estaciones de servicios, el cual tiene como finalidad dar a conocer la información necesaria para abordar dicho tema. Teniendo a su vez como único propósito generar el comportamiento eléctrico de S O D VA R E S maquinas surtidoras de gasolina, captura, recolección y registro de estas ventas en una base de datos para poder controlar esta información mediante una aplicación Web. E R S Este trabajo está sustentado HOapoyándonos en teoría de microprocesadores, la red C E Internet, el protocolo DERHTTP, teoría de base de datos, multiprogramación, programación modular, estructurada y orientada a objetos, arquitectura y uso de los microcontroladores, entre otras. Capitulo I, denominado Planteamiento y Formulación del Problema, objetivo general y específicos, Justificación, delimitación, de igual manera el Capitulo II denominado Marco Teórico, donde planteamos antecedentes a la investigación, fundamentación teórica y las diferentes teorías, seguido del Capitulo III, Marco Metodológico, donde se expone el tipo de investigación, la población y muestra, etc. Luego establecemos el Capitulo IV donde encontramos el análisis e interpretación de los resultados. X CAPÍTULO I Formulación del Problema Planteamiento y Formulación del Problema El mundo ha presenciado el vertiginoso crecimiento de Internet y el impacto que S O D VA R actualmente es utilizada por grandes empresas S como por ejemplo la supervisión del E Ela temperatura, potencia generada, etc., R S estado de transformadores de potencia como O H C E todo desde una estación ER remota sin tener un empleado encargado que esté presente para D el monitoreo de el estado de dichos transformadores. Internet no solo se ha convertido ha tenido en la vida diaria de toda persona. La necesidad de controlar y monitorear sistemas complejos remotamente desde cualquier parte del mundo es una realidad que en un medio de comunicación masivo, sino una plataforma de integración de sistemas. Debido al rápido progreso de la tecnología, muchas áreas están convergiendo rápidamente, y las diferencias entre juntar, transportar, almacenar y procesar información desaparecen con rapidez. La fusión de las computadoras y las comunicaciones han tenido una profunda influencia de la forma en que los sistemas de cómputo se organizan, de este modo, al crecer la habilidad para obtener, procesar y distribuir información también crece la demanda de técnicas de procesamiento de información más avanzada. Actualmente las compañías surtidoras de gasolina poseen métodos de control inexactos que están expuestos al error humano. En Venezuela este problema es muy común en estaciones de servicios de compañías tanto nacionales como internacionales. En el estado Zulia, específicamente en Maracaibo, estaciones surtidoras de gasolina transnacionales como la British Petroleum (BP), TEXACO, SHELL, MOBIL y nacionales como PDV, LLANOPETROL, entre otras, tienen actualmente este sistema manual de control de consumo de gasolina. 11 12 El problema del actual registro se manifiesta debido a que por cada turno se debe hacer un conteo de las ventas, y la probabilidad de que existan errores es alta porque son conteos manuales que fácilmente son alterados por el operador de isla para beneficio personal, lo que genera un control poco confiable para los dueños o gerentes de estaciones de servicio que se demuestra fácilmente por los siguientes factores: perdida de tiempo y dinero al momento de presentar el empleado el cierre de turno. El actual sistema manual e ineficiente difiere notablemente con el alto nivel de automatización y eficiencia del nuevo sistema de registro a implementar. Para solventar S O D VA R E Sde servicio puede estar al corriente de mediante el cual el dueño o gerente de la estación E R S es decir, tiene el registro exacto de los Omomento, todo lo que ha sucedido hasta el H C E montos que se generen DER de cualquier turno de operador de isla. dichos inconvenientes y lograr un mejor uso de dichos recursos se plantea el Análisis, diseño, desarrollo e implementación de un sistema de registro de consumo de gasolina Entonces, lo anteriormente planteado lleva a formular la siguiente pregunta: ¿Como desarrollar un sistema prototipo de monitoreo remoto del consumo de gasolina en estaciones de servicios? 13 Objetivos de la investigación. Objetivo general. Desarrollar un sistema prototipo de monitoreo remoto del consumo de gasolina en estaciones de servicios. Objetivos específicos. • S O D VA R E S Detectar las vías de recolección de la información requerida de una maquina surtidora de gasolina. • E R S Elaborar una aplicación HdeOsimulación de datos generados por una estación de C E servicio. DER • Diseñar un sistema de captura de datos de las transacciones de consumo de gasolina • Implementar una interfase de recepción y Control. • Realizar un protocolo de comunicaciones entre el sistema de recolección de datos y el control central. • Diseñar una aplicación de registro de datos del control central a la base de datos • Diseñar una aplicación que calcule el consumo de gasolina por turno de los empleados de la estación de servicio que permita ser consultado vía Web. • Describir los análisis y técnicas implementadas que se empleen para desarrollar un sistema prototipo de monitoreo remoto del consumo de gasolina en estaciones de servicios. 14 Justificación e Importancia de la investigación. El desarrollo de un sistema de registro de consumo de gasolina para estaciones de servicios tendrá como consecuencia una serie de beneficios tales como la optimización de la contabilidad de las ventas realizadas. Importancia relevante de esta investigación es eliminar la dependencia que tiene el operador de isla con las tareas diarias de contabilidad, y suprime el efecto que tiene el empleado sobre las mismas, otorgándole al Gerente o dueño de estación de servicio la garantía del control absoluto del consumo de gasolina. S O D VA R E Scualquier inconsistencia rápida y manejará de manera digital, se corrige E R S en la disminución de los costos al suprimir O efectivamente sin mencionar el impacto H C E la contratación de un empleado extra que se encargue de realizar esta contabilidad. DER Debido a que la información de todos los registros de consumo por isla se Otra de las grandes ventajas de este sistema de control radica en el fácil acceso que tendrá el gerente o dueño de la estación de servicio a toda esta información relacionada con las ventas, manejando una o varias estaciones de servicio con un método rápido y confiable sin la necesidad de estar presente en la estación lo cual traerá como consecuencia un incremento de los ingresos económicos en cada estación. Con la investigación y desarrollo de este sistema e implementando tecnología de punta, se brindará a dueños y gerentes de estaciones de servicio soluciones escalables y de valor agregado para sus operaciones de negocios. Este diseño se ha desarrollado como un sistema amigable a cualquier usuario, pensando en esto las pantallas de captura de información de islas, turnos, créditos de combustibles, control de cierre y tanques, se han integrado de tal forma que son idénticas a una planilla manual. Esta investigación tiene como objetivo generar valor agregado a las operaciones de negocios de los clientes, con un excelente recurso tecnológico, cuyo 15 propósito es diseñar, desarrollar, fabricar y comercializar software de alta calidad para el control y administración de estaciones de gas y gasolina, con el fin de satisfacer las necesidades y expectativas de los mismos. Este sistema esta orientado a conseguir la integración total en los procesos Administrativos. Es una herramienta imprescindible para la toma de decisiones Gerenciales. Un gran aporte de esta investigación es proveer tecnología especializada S O D VA R E relacionados, siempre desarrollados conE laS más alta tecnología y calidad para R S venezolano. satisfacer las necesidades H del O mercado C E DER y competitiva para satisfacer las necesidades de gerentes o dueños de estaciones de servicio para transferencia de combustible y fluidos, administración y productos 16 Delimitación Delimitación Espacial El Desarrollo del sistema de monitoreo remoto del consumo de gasolina en estaciones de servicio se llevara a cabo en Venezuela, estado Zulia. Específicamente en la Universidad Rafael Urdaneta. E R S HO S O D VA R E S Delimitación Temporal EC R E D La investigación se inició en un periodo comprendido entre Mayo 2004 – Mayo 2005. CAPÍTULO II Marco Teórico Antecedentes de la investigación Para la realización y desarrollo de este sistema se han tomado trabajos de investigación previos con características y tecnologías similares. Estos trabajos son: S O D VA R E S E R S HO EC R E D Barios Olavarreta, Jackni Rosario y Mora Soto, Hugo Rafael (1999). Diseño de un Prototipo de un Sistema Integrado para el acceso, monitoreo y administración de redes en forma remota. El presente proyecto de investigación tiene como propósito diseñar un prototipo de un sistema integrado para el acceso, monitoreo y administración de redes en forma remota, el cual consiste en una interfaz de conexión a través de Internet entre un usuario y el servidor de su empresa, estableciendo la posibilidad de gestión operativa de la red desde cualquier punto geográfico. Esta investigación es de tipo exploratoria y explicativa. Para el desarrollo de este proyecto se aplica la metodología de Edward Yourdon “Análisis Estructurado Moderno” 1996 y se obtuvo información a través del estudio de las alternativas existentes en el mercado. Luego de realizar el análisis diseño y construcción del prototipo se realizaron las pruebas. Los resultados indican la operabilidad del sistema. La importancia de este proyecto esta basada en la capacidad de conectar los usuarios con la red local desde cualquier sitio remoto utilizando un enlace de Internet para realizar tanto las operaciones comunes como las administrativas. El uso de este sistema reducirá la necesidad de la presencia permanente del administrador de red en el área local. Velásquez Marcano, Frank Enrique (1999), Desarrollo de un sistema de Monitoreo y control Multi-entradas basados en una PC. El desarrollo de monitoreo y control basados en una PC atiende la necesidad de sustitución y mejora de sistema de 17 18 monitoreo de fabricación propia, relacionadas con su incapacidad para tomar acciones de control, para visualizar varias señales simultáneamente y la dificultad para conseguir sus repuestos en caso de requerirlos. Por esta razón esta investigación tiene como objetivo principal el desarrollo de monitoreo y control basados en una PC. El tipo de investigación es aplicada y la metodología utilizada para el desarrollo de la investigación fue propia de los autores de este estudio; representadas en los siguientes pasos: Análisis de la Investigación practica y teórica del sistema de monitoreo, Determinación de las necesidades y mecanismos para el desarrollo de este trabajo de grado, Diseño de Hardware, Estudio de la factibilidad, Elaboración de Hardware y S O D VA R E S personal y de gran facilidad en el entradas de varias señales asistidas por el computador E R S relación entre el sistema desarrollado y el O manejo, estableciendo así una buena H C E operador, logrando con ello cumplir con los objetivos propuestos. DER Software, Realización de pruebas y análisis de los resultados. Por medio de esta investigación de un sistema de monitoreo y control con capacidad de registrar las Márquez, David Julio(2004)Desarrollo del Modulo de de trascripción y consignación de notas para el sistema académico administrativo de la Universidad Rafael Urdaneta. El desarrollo de un módulo de aplicaciones web o de servicios virtuales tendría como consecuencia una serie de beneficios tales como disponibilidad de la información de los inscritos en las materias asignadas a un profesor en tiempo real, es decir, dicha información se actualiza en forma automática durante el proceso de inscripción y modificación de inscripciones de los alumnos. Así mismo el cuello de botella o retraso generado por la verificación y distribución de planillas en la dirección de control de estudios desaparecerá después de la implantación de dicho modulo. Debido a que la información de todos los cursos de cada periodo se manejará de manera digital, es posible corregir cualquier inconsistencia rápida y efectivamente sin mencionar el impacto en la disminución de los costos de tinta y papel que conlleva un proceso informático altamente automatizado. Finalmente la inclusión de los profesores de una manera mas activa en dicho proceso disminuirá la carga de trabajo del personal adjunto de la dirección de control de estudios permitiéndole desempeñar eficientemente otros servicios mejorando su tiempo de respuesta en la atención a los profesores y el alumnado. 19 Fundamentación Teórica Sistema Siendo el objetivo principal de este trabajo es desarrollar un sistema de información apoyado en varias tecnologías como los microcontroladores y tecnología Web para la disponibilidad remota de información, es necesario definir el concepto de sistema, más adelante el de sistema de información. Se puede definir un sistema como un conjunto de elementos que tiene funciones diferentes pero que se integran para lograr S O D VA R E S un objetivo común. La definición de cada uno de estos elementos es a su vez un sistema más pequeño, o sea que los sistemas pueden estar formados por niveles de sistemas o E R S HO subsistemas. EC R E D de Información Sistema Un sistema de información es un sistema cuyos elementos están compuestos por personas, procesos y equipos que tienen el objetivo de coleccionar y procesar información para llevar a cabo tareas específicas, tales como gerencia, tomas de decisiones o coordinación de procesos. Dentro de una organización, el sistema de información es el canal que une a las personas o departamentos, ya que por medio de este fluyen los datos que son generalmente compartidos. Programación Como termino se utiliza para designar la creacion de programas a pequeña escala, el desarrollo de sistemas complejos se denomina ingenieria de software. Una computadora es totalmente inutil si no dispone de un programa capaz de procesar información. Para que se realize dicho procesamiento de información habra sido necesario construir un ordenador (hardware), pensar y crear un programa (software) y ejecutar dicho programa o aplicación en el computador. La ultima de estas fases es la que realiza el usuario, las anteriores son realizadas por tecnicos que construyen el hardware y por programadores que desarrollan el software. 20 Programación e ingeniería de software: Son complementarias entre si. Para el desarrollo de grandes sistemas informáticos se divide el trabajo en tareas que diversos programadores desarrollaran. Al terminar se unen las piezas como en un puzzle para completar el sistema en si. Así programación tambien se aplica para el desarrollo de grandes sistemas en las ingenierias de software. La programación tiene como objetivo el tratamiento de la información S O D VA R E S correctamente, con lo que se espera que un programa de el resultado correcto y no uno erroneo. Asi que cada aplicacion debe funcionar segun lo esperado en terminos de E R S Otro objetivo fundamental HOde la programación es que sean de codigos claros y C E R si un programador inicia un programa y no lo termina, otro legibles, con DloEque programación. programador sea capaz de entender la codificacion y poder terminarlo. Normalmente en programación existen ciertas normas no escritas de como han de nombrarse los componentes, objetos o controles de cada sistema, asi como sus variables que deben ser relativas al termino al cual se van a vincular. Por ejemplo el texto que contenga la edad del individuo se llamaria TxtEdad, y su variable se llamaria Edad. Por ultimo la programación pretende que sus programas sean utiles y eficientes. De multitud de maneras la programación nos dara el mismo resultado de un programa, un buen programador llegara al mismo resultado con un minimo de codigo y de la forma más clara y logica posible. De los anteriormente nombrados objetivos de la programación el más importante es el de la correccion, ya que un codigo claro y legible facilita el mantenimiento de la aplicacion o sistema. Programación Lineal En programación lineal se habla de términos tales como restricciones, que vienen a ser la manipulación del tamaño de funciones que se encuentran sujetas a ciertas limitaciones. 21 Podemos decir que la programación lineal es el conjunto de técnicas matemáticas que intentan resolver la maximización o minimización de una función objetivo, función lineal de varias variables, sujeta a ciertas restricciones, expresadas por inecuaciones lineales. En problemas de programación lineal intervienen: La función f(x,y) = ax + by + c conocida también como función objetivo (a la cual deberemos optimizar). Aquí x e y son las variables de decisión, mientras que a, b y c son constantes. S O D A V R E impuesto por las limitaciones, que son: inferioresS a ... ( menores: < o ); como mínimo de E R ... (mayores: > o ) . Maximizando OoSminimizando, las desigualdades pueden darse en H C E cualquiera de los DEdosRsentidos. Las restricciones que deben ser inecuaciones lineales, donde su número depende del problemaen que trabajemos. También ver que el carácter de desigualdad viene Valores de x e y que verifican todas y cada una de las restricciones, lo que se conoce como conjunto o región factible. La solución óptima del problema será un par de valores (x0, y0) del conjunto factible que haga que f(x,y) tome el valor máximo o mínimo. Se utilizan las siglas PPL para indicar problema de programación lineal. Programación Estructurada La programación estructurada es una teoría de programación que consiste en construir programas de facil comprensión. La programación estructurada es especialmente util, cuando se necesitan realizar correciones o modificaciones después de haber concluido un programa o aplicacion. Al haberse utilizado la programación estructurada, es mucho más sencillo entender la codificacion del programa, que se habra hecho en diferentes secciones. La programación estructurada se basa en una metodologi de desarrollo de programas llamda refinamiento sucesivos: Se plantea una operacion como un todo y se divide en segmentos más sencillos o de menor complejidad. Una vez terminado todos los segmentos del programa, se procede a unificar las aplicaciones realizadas por el pool 22 de programadores. Si se ha utilizado adecuadamente la programación estructurada, esta integracion debe ser sencilla y no presentar problemas al integrar la misma , y de presentar algun problema, sera rapidamente detectable para su correccion. Programación Orientada a Objetos La programación orientada a objetos, intenta simular el mundo real a traves del significado de objetos que contiene caracteristicas y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generacion. S O D A y procedimientos la idea de un objeto, que es una combinacion de variables Vlocales R E S de programación. llamados metodos que juntos conforman una entidad E R S O H C El termino encapsulacion se usa para describir la combinacion de estructuras de E R E D que son manipulados por el objeto. La llamada a un objeto es lo que datos y de metodos Como su mismo nombre indica, la programación orientada a objetos se basa en se denomina pasar un "aviso" a un objeto. En la programación orientada a objetos, encapsular significa, reunir y controlar el grupo resultante como un todo y no individualmente. En la programación orientada a objetos la abstraccion es un termino externo al objeto, que controla la forma en que es visto por los demas. En la programación orientada a objetos la modularidad se considera de la siguiente manera: Un programa grande siempre sera más complicado que la suma de varios programas pequeños, con lo que se considera ventajoso dividir un gran sistema en diversos modulos. En la programación orientada a objetos tenemos la jerarquia, la cual consiste en la clasificacion y organizacion de las abstracciones segun su naturaleza. El más claro ejemplo de jerarquia es la herencia. En la programación orientada a objetos se define la herencia como una jerarquia de extracciones, y la relacion entre clases, donde se comparte la estructura y el comportamiento de una o más clase considerada como clases superiores o una superclase, con lo cual se resume que la herencia es una unidad independiente por si misma heredada de una abstraccion o superclase. Un ejemplo cotidiano lo encontramos en las aplicaciones que existen cactualmente en el mercado, donde un formulario 23 cualquiera hereda las caracteristicas de uan ventana del sistema operativo Windows (Maximizar, Minimizar, Cerrar). Redes Las redes de comunicación de datos son utilizadas para que varias computadoras se comuniquen y puedan intercambiar datos y información. A si como compartir recurso de computo, almacenamiento, impresión. S O D VA R LAN (Local Area Network): Redes de Área Local E S E R OS H C EREde comunicación entre computadoras que permite compartir Es un Dsistema Clasificación de las redes información, con la característica de que la distancia entre las computadoras debe ser pequeña. Estas redes son usadas para la interconexión de computadores personales y estaciones de trabajo. Se caracterizan por: tamaño restringido, tecnología de transmisión (por lo general broadcast), alta velocidad y topología. Son redes con velocidades entre 10 y 100 Mbps, tiene baja latencia y baja tasa de errores. Cuando se utiliza un medio compartido es necesario un mecanismo de arbitraje para resolver conflictos. Dentro de este tipo de red podemos nombrar a INTRANET, una red privada que utiliza herramientas tipo internet , pero disponible solamente dentro de la organización. Ej.: IEEE 802.3 (Ethernet), IEEE 802.4 (Token Bus), IEEE 802.5 (Token Ring) MAN (Metropolitan Area Network): Redes de Área Metropolitana Es una versión de mayor tamaño de la red local. Puede ser pública o privada. Una MAN puede soportar tanto voz como datos. Una MAN tiene uno o dos cables y no tiene elementos de intercambio de paquetes o conmutadores, lo cual simplifica bastante el diseño. La razón principal para distinguirla de otro tipo de redes, es que para las MAN's se ha adoptado un estándar llamado DQDB (Distributed Queue Dual Bus) o IEEE 802.6. Utiliza medios de difusión al igual que las Redes de Área Local. 24 WAN (Wide Area Network): Redes de Amplia Cobertura Son redes que cubren una amplia región geográfica, a menudo un país o un continente. Este tipo de redes contiene máquinas que ejecutan programas de usuario llamadas hosts o sistemas finales (end system). Los sistemas finales están conectados a una subred de comunicaciones. La función de la subred es transportar los mensajes de un host a otro. En la mayoría de las redes de amplia cobertura se pueden distinguir dos S O D A V R E de intercambio son computadores especializados Sutilizados para conectar dos o más E R líneas de transmisión. OS H C E ER Las D redes de área local son diseñadas de tal forma que tienen topologías componentes: Las líneas de transmisión y los elementos de intercambio (Conmutación). Las líneas de transmisión se conocen como circuitos, canales o truncales. Los elementos simétricas, mientras que las redes de amplia cobertura tienen topología irregular. Otra forma de lograr una red de amplia cobertura es a través de satélite o sistemas de radio. Ej. : X.25, RTC, ISDN, etc. La red Internet Internet, interconexión de redes informáticas que permite a los ordenadores o computadoras conectadas comunicarse directamente, es decir, cada ordenador de la red puede conectarse a cualquier otro ordenador de la red. El término suele referirse a una interconexión en particular, de carácter planetario y abierto al público, que conecta redes informáticas de organismos oficiales, educativos y empresariales. Protocolo Los protocolos son reglas y procedimientos para la comunicación. El término «protocolo» se utiliza en distintos contextos. Por ejemplo, los diplomáticos de un país se ajustan a las reglas del protocolo creadas para ayudarles a interactuar de forma correcta con los diplomáticos de otros países. De la misma forma se aplican las reglas del 25 protocolo al entorno informático. Cuando dos equipos están conectados en red, las reglas y procedimientos técnicos que dictan su comunicación e interacción se denominan protocolos. El protocolo TCP/IP 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 S O D hardware y software incompatibles en muchos casos, además VAde todos los medios y R E S de las grandes ventajas del TCP/IP, formas posibles de conexión. Aquí se encuentra una E R OdeSque la comunicación entre todos sea posible. pues este protocolo se encargará H C E TCP/IP es compatible DERcon cualquier sistema operativo y con cualquier tipo de hardware. en Internet se encuentran conectados ordenadores de clases muy diferentes y con Protocolo http El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un sencillo protocolo cliente-servidor que articula los intercambios de información entre los clientes Web y los servidores HTTP. La especificación completa del protocolo HTTP 1/0 está recogida en el RFC 1945. Fue propuesto por Tim Berners-Lee, atendiendo a las necesidades de un sistema global de distribución de información como el World Wide Web. Desde el punto de vista de las comunicaciones, está soportado sobre los servicios de conexión TCP/IP, y funciona de la misma forma que el resto de los servicios comunes de los entornos UNIX: un proceso servidor escucha en un puerto de comunicaciones TCP (por defecto, el 80), y espera las solicitudes de conexión de los clientes Web. Una vez que se establece la conexión, el protocolo TCP se encarga de mantener la comunicación y garantizar un intercambio de datos libre de errores. 26 HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden adjuntar un objeto o recurso sobre el que actúan; cada objeto Web (documento HTML, fichero multimedia o aplicación CGI) es conocido por su URL. Los recursos u objetos que actúan como entrada o salida de un comando HTTP están clasificados por su descripción MIME. De esta forma, el protocolo puede intercambiar cualquier tipo de dato, sin preocuparse de su contenido. La transferencia se realiza en modo binario, byte a byte, y la identificación MIME S O D VA R E S permitirá que el receptor trate adecuadamente los datos. E R S HO Etapas de una transacción http EC R E D Para profundizar más en el funcionamiento de HTTP, se verá primero un caso particular de una transacción HTTP; en los siguientes apartados se analizarán las diferentes partes de este proceso. Cada vez que un cliente realiza una petición a un servidor, se ejecutan los siguientes pasos: 1. Un usuario accede a una URL, seleccionando un enlace de un documento HTML o introduciéndola directamente en el campo Location del cliente Web. 2. El cliente Web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo de acceso, la dirección DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del servidor. 3. Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente. 4. Se realiza la petición. Para ello, se envía el comando necesario (GET, POST, HEAD,…), la dirección del objeto requerido (el contenido de la URL que sigue a la dirección del servidor), la versión del protocolo HTTP empleada (casi siempre HTTP/1.0) y un conjunto variable de información, que incluye datos sobre las capacidades del browser, datos opcionales para el servidor,… 27 5. El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la información de retorno, seguido de la propia información. 6. Se cierra la conexión TCP. Este proceso se repite en cada acceso al servidor HTTP. Por ejemplo, si se recoge un documento HTML en cuyo interior están insertadas cuatro imágenes, el proceso anterior se repite cinco veces, una para el documento HTML y cuatro para las imágenes. En la actualidad se ha mejorado este procedimiento, permitiendo que una misma conexión se mantenga activa durante un cierto periodo de tiempo, de forma que S O D A Esta mejora es Vmodernos. R Alive, es empleado por la mayoría de los clientes y servidores E S el establecimiento de cada nueva E R imprescindible en una Internet saturada, en la que S O H C conexión es un procesoE lento y costoso. DER sea utilizada en sucesivas transacciones. Este mecanismo, denominado HTTP Keep Veamos el proceso completo con un ejemplo: 1. Desde un cliente se solicita la URL http://www.unican.es/invest/default.html 2. Se abre una conexión TCP/IP con el puerto 80 del sistema www.unican.es. 3. El cliente realiza la solicitud, enviando algo similar a esto: GET /invest/default.html HTTP/1.0 Operación solicitada+objeto+versión de HTTP Accept: text/plain Lista de tipos MIME que acepta o entiende Accept: text/html el cliente Accept: audio/* Accept: video/mpeg ...... Accept: */* Indica que acepta otros posibles tipos MIME User-Agent: Mozilla/3.0 (WinNT; I) Información sobre el tipo de cliente Línea en blanco, indica el final de la petición 28 4. El servidor responde con la siguiente información: HTTP/1.0 200 OK Status de la operación; en este caso, correcto Date: Monday, 7-Oct-96 18:00:00 Fecha de la operación Server: NCSA 1.4 Tipo y versión del servidor MIME-version: 1.0 Versión de MIME que maneja Content-type: text/html Definición MIME del tipo de datos a devolver Content-length: 254 Longitud de los datos que siguen S O D VA R E S Last-modified: 6-Oct-96 12:30:00 Fecha de modificación de los datos Línea en blanco E R S HO <HTML> Comienzo de los datos EC R E D <HEAD><TITLE>Recursos de investigación en UNICAN</TITLE></HEAD> <BODY> ...... ...... </HTML> 5. Se cierra la conexión. Arquitectura cliente/servidor Arquitectura hardware y software adecuada para el proceso distribuido, en el que la comunicación se establece de uno a varios. Un proceso es un programa en ejecución. Proceso cliente es el que solicita un servicio. Proceso servidor es el capaz de proporcionar un servicio. Un proceso cliente se puede comunicar con varios procesos servidores y un servidor se puede comunicar con varios clientes. Los procesos pueden ejecutarse en la misma máquina o en distintas máquinas comunicadas a través de una red. Por lo general, la parte de la aplicación correspondiente al cliente se optimiza para la interacción con el usuario, ejecutándose en su propia máquina, a la que se denomina terminal o cliente, mientras que la parte correspondiente al servidor proporciona la funcionalidad 29 multiusuario centralizada y se ejecuta en una máquina remota, denominada de forma abreviada, simplemente, servidor. Los servidores hardware tienen fundamentalmente dos funciones, bien “servidores de aplicaciones”, que alojan distintos tipos de programas que pueden llamarse desde y ejecutarse en los terminales, bien “servidores de bases de datos”, que alojan archivos con datos que pueden ser consultados y/o editados y modificados en las máquinas terminales o clientes; también pueden ser servidores de ambos tipos simultáneamente. S O D VA R E Si se trata de una red de área local, la S interconexión entre el o los servidores E R S y los clientes es directa, mediante HO un sistema de cable o red inalámbrica; si es una C E red corporativa DERdistribuida o a través de Internet, la interconexión es indirecta, y la alternativa más común es mediante un módem y vía telefónica. Una aplicación cliente/servidor típica es un servidor de base de datos al que varios usuarios realizan consultas simultáneamente. El proceso cliente realiza una consulta, el proceso servidor le envía las tablas resultantes de la consulta y el proceso cliente las interpreta y muestra el resultado en pantalla. Los sistemas distribuidos pueden consistir en diversos servidores que alojen datos, de forma que el cliente no tiene por qué conocer exactamente dónde se encuentran, simplemente hace una petición de servicio, y es el sistema servidor el encargado de localizarlos y proporcionar el resultado de la consulta al usuario que hizo la petición. Seguridad en el Web Hasta el momento, se ha presentado un Web que ofrece un acceso abierto a un conjunto de información que explícitamente se hace pública. Sin embargo, en determinadas circunstancias, es interesante poder limitar el acceso a documentos reservados o útiles para un conjunto restringido de personas. Se pueden establecer dos tipos de restricciones: 30 1. Limitación de acceso en función de direcciones IP o dominio. Sólo los usuarios de un dominio u organización tendrán acceso a la información. 2. Limitación de acceso por nombres de usuario y claves de acceso. Sólo los usuarios que conozcan una clave de acceso válida pueden acceder a la información. Otro aspecto que está cobrando especial importancia es la seguridad de la información que se intercambia en el Web. La explotación comercial de Internet exige disponer de sistemas de comunicación seguros, capaces de adaptarse a las necesidades de los nuevos servicios, como la compra electrónica o la banca a distancia. En estos S O D VA de información son R tanto el usuario de un cliente Web como un determinado servidor E S E R quienes dicen ser) y la confidencialidad (hacer que la información intercambiada no S O H pueda ser interceptada E porC terceros). R E D servicios, se manejan dos conceptos fundamentales, la autentificación (garantizar que Con los sistemas de comunicación actualmente en uso, es técnicamente posible ‘pinchar’ un enlace de comunicaciones e interceptar el contenido de las comunicaciones TCP/IP que por él se transmiten. Cuando se envía información privada, por ejemplo un número de tarjeta de crédito en un formulario de compra, es vital garantizar que la información sea recibida exclusivamente por su destinatario, y que la identidad es la esperada. Controlador Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna y, cuando traspasa los límites prefijados, genera las señales adecuadas que accionan los efectores que intentan llevar el valor de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores se construían exclusivamente con componentes de lógica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip, el cual recibe el nombre de 31 microcontrolador. Realmente consiste en un sencillo pero completo computador contenido en el corazón (chip) de un circuito integrado. Microprocesador Circuito electrónico que actúa como unidad central de proceso de un ordenador, proporcionando el control de las operaciones de cálculo. Los microprocesadores también se utilizan en otros sistemas informáticos avanzados, como impresoras, S O D VA R E S automóviles o aviones. El microprocesador es un tipo de circuito sumamente integrado. E R S HO EC R E D Microcontrolador Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador. Un microcontrolador dispone normalmente de los siguientes componentes: Procesador o UCP (Unidad Central de Proceso). Memoria RAM para Contener los datos. Memoria para el programa tipo ROM/PROM/EPROM. Líneas de E/S para comunicarse con el exterior. Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. Los productos que para su regulación incorporan un microcontrolador disponen de las siguientes ventajas: Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo. Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado número de elementos disminuye el riesgo de averías y se precisan menos ajustes. 32 Reducción del tamaño en el producto acabado: La integración del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks. Mayor flexibilidad: las características de control están programadas por lo que su modificación sólo necesita cambios en el programa de instrucciones. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller). Interrupciones S O D VA R E S E R S HO Existen tres tipos de interrupciones, a saber: interrupciones por hardware, EC R E D interrupciones por software e interrupciones de excepción. Se entiende como interrupción por hardware aquella interrupción solicitada por un dispositivo de hardware. Existen dos tipos de estas interrupciones, a saber: las mascarables y las no mascarables. Las interrupciones de hardware mascarables son aquellas que pueden ser deshabilitadas. Las no mascarables son aquellas que no pueden ser deshabilitadas. Se entiende como interrupción por software aquella interrupción solicitidada a través de una instrucción de interrupción, como por ejemplo la instrucción INT 30, donde INT es la instrucción de interrupción de la serie de microprocesadores Intel (8088, 80286, 80386, 80486, Pentium, Pro Pentium) y 30 es el número del Puntero de la subrutina de servicio de dicha interrupción. Se entiende como interrupción de excepción aquella interrupción del programa en curso a consecuencia de alguna anormalidad durante la ejecución de dicho programa o un error en el sistema. 33 Después que una de estas interrupciones halla sido activada, el microprocesador almacena todos sus registros programables en la Pila (Stack). Luego se accesa el puntero de la interrupción activada, con el fin de comenzar a ejecutar la subrutina de servicio pertinente. La localidad de memoria donde se encuentran todos los punteros de las diferentes subrutinas de servicio es conocida con el nombre de Tabla de Vectores de Interrupción. La localidad de memoria de la tabla de vectores de interrupciones y como se procesan las solicitudes de interrupciones en un microprocesador depende de la arquitectura del microprocesador. S O D VA R E S E R S Recursos comunesC a todos HOlos microcontroladores E R los microcontroladores integrados en un chip, su estructura DEtodos Al estar fundamental y sus características básicas son muy parecidas. Todos deben disponer de los bloques esenciales Procesador, memoria de datos y de instrucciones, líneas de E/S, oscilador de reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones a las que se destinan preferentemente. En este apartado se hace un recorrido de todos los recursos que se hallan en todos los microcontroladores describiendo las diversas alternativas y opciones que pueden encontrarse según el modelo seleccionado. Arquitectura básica de los microcontroladores Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de Von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de Von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes una, que contiene sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o 34 escritura) simultáneamente en ambas memorias. Los microcontroladores PIC responden a la arquitectura Harvard. Herramientas para el desarrollo de aplicaciones con microcontroladores Uno de los factores que más importancia tiene a la hora de seleccionar un microcontrolador entre todos los demás es el soporte tanto software como hardware de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo en la elección, ya que pueden suponer una ayuda inestimable en el desarrollo del proyecto. S O D VA R E S Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores son: E R S HO EC R E D Desarrollo del software: Ensamblador. La programación en lenguaje ensamblador puede resultar un tanto ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una versión gratuita para los microcontroladores más populares. Compilador. La programación en un lenguaje de alto nivel (como el C ó el Pascal) permite disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa con cuidado, el código resultante puede ser mucho más ineficiente que el programado en ensamblador. Las versiones más potentes suelen ser muy caras, aunque para los microcontroladores más populares pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos. Depuración: debido a que los microcontroladores van a controlar dispositivos físicos, los desarrolladores necesitan herramientas que les permitan comprobar el buen funcionamiento del microcontrolador cuando es conectado al resto de circuitos. Simulador. Son capaces de ejecutar en un PC programas realizados para el microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecución de un programa, siendo ideales para la depuración de los mismos. Su gran inconveniente es que es difícil simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el 35 paso físico de la implementación de un modo más seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ. Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC anfitrión y el zócalo de la tarjeta de circuito impreso donde se alojará el microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la tarjeta de aplicación es como si lo hiciese el mismo microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información tal y como luego sucederá cuando se coloque la cápsula. Definición de términos básicos E R S HO EC R E D Microprogramación S O D VA R E S La microprogramación es una característica importante y esencial de casi todas las arquítecturas CISC. Como por ejemplo: Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840. La microprogramación significa que cada instrucción de máquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. Software Elementos funcionales no físicos que son necesarios para el funcionamiento del ordenador (instrucciones de uso, programas, etc.). Hardware Concepto general usado para denominar a todos aquellos componentes mecánicos, magnéticos, eléctricos y electrónicos de un sistema informático. 36 Puertos Son puntos de conexión en la parte exterior del chasis de la computadora a los que se conectan algunos canales. El puerto permite una conexión directa con el bus eléctrico común de la PC. los puertos pueden ser: • Puertos series: Permiten la transmisión en serie de datos, un bit a la vez. Este tipo de puertos permiten una interfaz con impresoras y módems de baja velocidad. • Puertos paralelos: Permiten la transmisión paralela de datos, es decir que S O D VA R E magnética de respaldo y otras computadoras. S E R OS H C RE E D Comunicación serial síncrona: se transmiten varios bits simultáneamente. Permiten la interfaz con dispositivos tales como impresoras de alta velocidad, unidades de cinta Comunicación síncrona es aquella en donde los dispositivos de envío y recepción de la comunicación son sincronizados utilizando un reloj que cronometra con precisión el tiempo que separa cada bit. Al verificar el tiempo el dispositivo receptor puede determinar si un bit se ha perdido o si un bit extra, usualmente inducido eléctricamente, ha sido introducido en el flujo de bits. Base de datos Conjunto de datos organizados para su almacenamiento en la memoria de un ordenador o computadora, diseñado para facilitar su mantenimiento y acceso de una forma estándar. La información se organiza en campos y registros. Un campo se refiere a un tipo o atributo de información, y un registro, a toda la información sobre un individuo. SQL Es un lenguaje estándar de comunicación con bases de datos. El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, 37 determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras. Script Un script es el código que puede ejecutarse en cliente (scripts del lado del cliente) o en el servidor (scripts del lado del servidor) embebido en código HTML. HTML (HyperText Markup Language) S O D VA R documentos que circulan en la World Wide Web (WWW). Los documentos HTML E S E R contienen dos tipos de información: OlaSque se muestra en la pantalla (texto, imágenes...) H C E y los códigos (tagsR DE o etiquetas), transparentes al usuario, que indican cómo se debe Lenguaje de marcas de hipertexto. En informática, formato estándar de los mostrar esa información. PHP Es un lenguaje de scripting server-side. Se trata de un lenguaje "embeeded" en las páginas que lo incluyen, por citar un ejemplo, el lenguaje Javascript. La principal diferencia es que el PHP lo ejecuta en el servidor en lugar de en el cliente directamente. Por lo tanto, no se necesitan compatibilidades particulares o estándar definidos por otros (como el ejemplo más clásico del Javascript). Mysql Es una base de datos cliente/servidor, lo cual quiere decir que tenemos un server que se ejecuta en segundo plano, a la escucha de las peticiones del programa cliente. En mysql, el servidor es mysqld y el cliente, mysql. Apache Es un servidor http dedicado a publicar información (en formato HTML) en una intranet o en Internet, realizando esta tarea por medio de el protocolo de transferencia 38 de hipertexto (HTTP), la WEB funciona básicamente por medio de peticiones y respuestas, es decir, el navegador solicita información enviando una dirección URL a un servidor, el cual, responde enviando una página en código HTML (Hipertext Markup Languaje). Multi-Threads (Programación Multi-Hilos) Un thread es una secuencia de instrucciones ejecutadas dentro del contexto de un proceso. Cuenta con su propio contador de programa (PC) así como con un stack para S O D A V R E instrucciones del proceso y casi todos los datos.S Los ambientes multithreads permiten E R S general de un solo proceso. que varios threads residan dentro O del contexto H C E DER llevar un control de variables locales y direcciones de regreso en las llamadas a funciones. Los threads se ejecutan independiente y concurrentemente; comparten Circuitos integrados Los circuitos integrados, también conocidos como microchips o chips, son circuitos electrónicos complejos formados por componentes extremadamente pequeños formados en una única pieza plana de poco espesor de un material conocido como semiconductor. Semiconductor Todos los circuitos integrados se fabrican con semiconductores, sustancias cuya capacidad de conducir la electricidad es intermedia entre la de un conductor y la de un no conductor o aislante. El silicio es el material semiconductor más habitual. CPU (Unidad Central de Procesamiento) Es en sí en cerebro, el cual se compone a su vez de Unidad Aritmética, Lógica y de control. Esta unidad trabaja en base a un reloj maestro que coordina la ejecución de todas las operaciones que realiza el microprocesador. 39 La unidad fundamental de trabajo de este reloj es la cantidad de instrucciones que el microprocesador puede ejecutar en un segundo. Así uno de 12 Mhz. puede realizar 12 millones de ciclos por segundo. Memoria Circuitos que permiten almacenar y recuperar la información. En un sentido más amplio, puede referirse también a sistemas externos de almacenamiento, como las unidades de disco o de cinta. Por lo general se refiere sólo al semiconductor rápido de S O D VA R E S almacenaje (RAM) conectado directamente al procesador. E R S HO EC R E D Memoria RAM (Random Access Memory) Memoria basada en semiconductores que puede ser leída y escrita por el microprocesador u otros dispositivos de hardware tantas veces como se quiera. Es una memoria de almacenamiento temporal, donde el microprocesador coloca las aplicaciones que ejecutan el usuario y otra información necesaria para el control interno de tareas; su contenido desaparece cuando se apaga el ordenador o computadora, de ahí que los datos que se quieran conservar a largo plazo se tengan que almacenar en los discos. Memoria ROM (Read Only Memory) Memoria basada en semiconductores que contiene instrucciones o datos que se pueden leer pero no modificar. En las computadoras IBM PC y compatibles, las memorias ROM suelen contener el software necesario para el funcionamiento del sistema y permanece aunque se apague el ordenador; este contenido se establece cuando se fabrican. Memoria EPROM (Erasable Programmable Read Only Memory) Son chips de memoria que se programan después de su fabricación. Son un buen método para que los fabricantes de hardware inserten códigos variables o que cambian 40 constantemente en un prototipo, en aquellos casos en los que producir gran cantidad de chips PROM resultaría prohibitivo. Los chips EPROM se diferencian de los PROM por el hecho de que pueden borrarse por lo general, retirando una cubierta protectora de la parte superior del chip y exponiendo el material semiconductor a radiación ultravioleta, después de lo cual pueden reprogramarse. Memoria EEPROM (EEPROM (Electrically Erasable Programmable ReadOnly Memory) S O D VA R E S Memoria de lectura solamente borrable y programable eléctricamente al nivel de bytes. E R S HO EC R E D Memoria FLASH Chip de memoria no volátil —su contenido permanece aunque el aparato se desconecte de la corriente—, que se puede reescribir. Se puede borrar y reprogramar en unidades de memoria llamadas bloques, cuyo tamaño puede ir desde los 512 bytes hasta los 256 KB. ALU (Unidad Lógica Aritmética) Es la Unidad que efectúa cálculos con números y toma decisiones lógicas. Timestamp En informática se utiliza el vocablo timestamp (proveniente del mundo Unix) como una forma genérica de designar el tiempo cronológico de forma completa; fecha; hora; minutos y segundos. 41 Sistema de Variables e Indicadores - Programa simulador de surtidores de gasolina. - Sistema de monitoreo remoto. Definición operacional de las Variables S O D Programa simulador de surtidores de gasolina. RVA SE E R • Definición OS H C E Es un programa DER que se encarga de generar el comportamiento de una estación • Variable independiente de gasolina • Operacionalización Esta variable será medida con la realización constantes de diversas pruebas para corroborar resultados que arroja el simulador construido con respecto a lo que genera una maquina surtidora de gasolina. o Indicadores Octanajes de gasolina Maquinas Surtidoras Salida y Entrada de Vehículos • Variable Dependiente Sistema de monitoreo remoto. 42 • Definición Es un conjunto de módulos que se encarga de la obtención de la data de los surtidores generados por el simulador mediante un protocolo de comunicaciones, para su registro y monitoreo remoto. • Operacionalización Esta variable será medida con la realización constante de diversas pruebas para corroborar resultados que toma el sistema de monitoreo simultáneamente con el S O D VA R E S sometimiento a prueba de la variable independiente, anteriormente señalada. E R S HO EC R E D Indicadores Protocolo de comunicaciones Recolección de datos generados por el simulador Registro de datos al servidor Eficiencia y rapidez CAPÍTULO III Marco Metodológico 1.- Tipo y nivel de investigación El presente estudio es un tipo de investigación descriptiva, que buscan especificar las propiedades, las características y los perfiles importantes de personas, grupos, comunidades o cualquier otro fenómeno que vaya a ser sometido a análisis, S O D VA R E S según lo planteado por Danhke. E R S Los estudios descriptivos HOpretenden medir o recoger información de manera C E independiente oEconjunta D R sobre los conceptos o las variables a las que se refieren. También pueden integrar las mediciones o información de cada una de dichas variables o conceptos para decir cómo es y cómo se manifiesta el fenómeno de interés. Los estudios descriptivos se centran en recolectar datos que muestren un evento, una comunidad, un fenómeno, hecho, contexto o situación que ocurre (para los investigadores cuantitativos: medir con la mayor precisión posible). Este es su valor máximo. Los estudios descriptivos pueden ofrecer la posibilidad de predicciones o relaciones aunque sean poco elaboradas. Por ejemplo, un analista de opinión publica basándose en datos descriptivos obtenidos en una encuesta llevada a cabo entre todos los sectores de la población de futuros votantes, para determinada elección, intenta predecir probabilísticamente, qué candidato triunfara en la elección. En el estudio de Estaciones de Servicio se recolecto la información necesaria, como la cantidad de automóviles por hora, la cantidad de gasolina por automóvil, y el tiempo que toma cada uno de ellos para surtirse de gasolina y poder predecir el comportamiento real de una estación de servicio por medio de estudios probabilísticos. 43 44 2.- Población y muestra. Población La Población es todo conjunto de elementos, finito o infinito, definido por una o más características, de las que gozan todos los elementos que lo componen, y sólo ellos. En muestreo se entiende por población a la totalidad del universo que interesa considerar, y que es necesario que esté bien definido para que se sepa en todo momento que elementos lo componen. No obstante, cuando se realiza un trabajo puntual, S O D quieren extrapolar los resultados, y población estudiada: conjunto de elementos VA R E S accesibles en dicho estudio. E R OSpor todas las estaciones de servicio de gasolina H C La Población está conformada E R E D que utilizan las máquinas surtidoras TOKHEIM PREMIER B, localizados en el conviene distinguir entre población teórica: conjunto de elementos a los cuales se municipio Maracaibo, estado Zulia, Venezuela. Muestra En todas las ocasiones en que no es posible o conveniente realizar un censo, lo que se hace es trabajar con una muestra, entendiendo por tal una parte representativa de la población. Para que una muestra sea representativa, y por lo tanto útil, debe de reflejar las similitudes y diferencias encontradas en la población, ejemplificar las características de la misma. Cuando decimos que una muestra es representativa indicamos que reúne aproximadamente las características de la población que son importantes para la investigación. La Muestra está constituida por la estación de servicio de gasolina BP D’Empaire, la cual emplea el tipo de máquina surtidora mencionada anteriormente. 45 3.- Técnicas y recolección de datos. Como procedimiento de recolección de información acerca de las variables estudiadas, se siguieron los siguientes pasos: Se evaluaron las distintas maneras de obtención de datos necesarios para efectuar una adecuada telemetría arrojada por la máquina surtidora, con el fin de determinar la forma óptima de este tipo de obtención en cuanto a seguridad, efectividad, entre otros. S O D surtidor, opción eliminada debido a la imprecisión arrojadaV porA el tipo de muestreo que R E Ses análogo y no digital. puede implementarse sobre este mecanismo, elE cual R OporSestudiar la captura de datos a partir de el circuito H C Por lo consiguiente, se optó E R E D impreso de los dispensadores de gasolina, donde se consiguió una manera más eficiente Se estudió la obtención de la data por medio del odómetro instalado en el y segura de captura, que consiste en tomar los pulsos generados por el dispensador desde el circuito impreso mismo, de manera tal de lograr registrar la cantidad precisa de litros de gasolina surtidos digitalmente. A continuación se muestra los diagramas esquemáticos de los circuitos esquemáticos que sirven de soporte a la captura de información en este tipo de surtidores en particular. 46 S O D VA R E S E R S HO EC R E D También, en siguiente esquema, se puede observar la descripción de Tarjeta Madre de Tockheim Premier B&C series dispensers, de donde se toman los datos digitales directamente de los Jacks, J3, J4, J11 y J12 respectivamente, dependiendo del tipo de 47 producto seleccionado por el operador del surtidor y de ahí obtener los datos digitales representativos del consumo. EC R E D E R S HO S O D VA R E S 48 La referencia de pulsos por unidad de despacho, se muestra en la tabla de referencia siguiente: Dado que los dispensadores utilizados son los Tockheim Premier C, se empleará S O D VA R E S la equivalencia de un litro equivale a 100 pulsos en el sistema métrico de medición. E R S HO C E R E 4.- Metodología D del diseño. Para el desarrollo del estudio se ubican una serie de pasos o fases lo cuales no pertenecen a un autor en especifico, sino que se diseñó las necesidades que requiere el sistema para su realización. Para la implementación de las alternativas mas viables se realizo un estudio detallado del diseño del sistema de información, una vez establecida las conclusiones de dicho estudio se inicia la construcción y programación del hardware necesario que permita la demostración del funcionamiento del mismo. En resumen se puede decir que la metodología de los autores consta de las siguientes etapas: Estudio de las posibilidades tecnológicas, económicas y de recursos humanos disponibles: Se debe estudiar la factibilidad tanto económica como tecnológica, y de recursos humanos disponibles para obtener una visión general y precisa del entorno de la situación o problema a resolver. Estudio técnico de las maquinas surtidoras de gasolina: Consiste en describir el funcionamiento general de las maquinas surtidoras concretando necesidades y características mediante el esclarecimiento de las bases teóricas y conceptuales, y por medio del asesoramiento de personas involucradas con el área. 49 Recopilación del material del funcionamiento técnico de las maquinas surtidoras: La recopilación de de la información de los surtidores utilizados como muestra se facilito por personas calificadas que trabajan directamente con estas maquinas en estaciones de servicio y otra parte importante del material recopilado es información técnica obtenido del sitio Web de la empresa que diseña dichos surtidores. S O D A V R E necesarios para la realización del sistema. S E R OS H C E R E D Análisis de la información de las maquinas surtidoras: El propósito de este Filtrado de la información de las maquinas surtidoras: Después de la recopilación de la información, se selecciona solo los datos de relevancia proceso es conseguir la especificación detallada del sistema de información, a través de modelos que cubran las necesidades de información de los usuarios para los que se desarrollará el sistema de información y que serán la entrada para el proceso de Diseño del Sistema de Información. Captura de la información de las maquinas surtidoras: El propósito de este proceso es diseñar e implementar un método de obtención de los datos generados por la maquina surtidora al momento de haber ocurrido una venta, para su posterior transmisión. Análisis de los posibles medios de transmisión a utilizar: Se observan los diferentes medios de transmisión que pueden utilizarse para la recolección de la información. 50 Selección del medio de transmisión a utilizar: en este proceso después de haber analizado todos los métodos de transmisión se selecciona el medio basándose es factores de seguridad y aspectos económicos. Diseño e Implementación del sistema de recolección de datos: Este proceso consta en diseñar el hardware que registre los datos transmitidos provenientes de todos los surtidores para su posterior envió al servidor. S O D de recolección de datos y el servidor: En esta etapa VAse estudian las diversas R E S de comunicaciones asegure el la necesidades para diseñar un R protocolo E S integridad de laC data alO ocurrir dificultades de diferentes índoles. H E DER Estudio para el diseño de un protocolo de comunicación entre el sistema Diseño de protocolo de comunicaciones: A partir del estudio de las necesidades obtenidas anteriormente se diseña un protocolo de comunicaciones entre el hardware recolector de datos y el servidor. Desarrollo de aplicación monitor para el servidor: Este software esta encargado del monitoreo de la existencia de ventas en el hardware, así como la implementación del protocolo de comunicaciones seleccionado para registrar las ventas en la base de datos. Desarrollo de aplicación Web: En esta etapa se desarrolla una aplicación Web para el monitoreo de las ventas de todos los surtidores por Internet. Pruebas y análisis de los resultados obtenidos: En esta etapa se analiza los resultados obtenidos de la implementación realizada. El Sistema se someterá a las Pruebas de Implementación con la participación del usuario de operación cuya responsabilidad, entre otros aspectos, es comprobar el comportamiento del sistema bajo las condiciones más extremas. También se 51 someterá a las Pruebas de Aceptación cuya ejecución es responsabilidad del usuario final. En este proceso se elabora el plan de mantenimiento del sistema de forma que el responsable del mantenimiento conozca el sistema antes de que éste pase a producción. También se establece el acuerdo de nivel de servicio requerido una vez que se inicie la producción. El acuerdo de nivel de servicio hace referencia a servicios de gestión de operaciones, de soporte a usuarios y al nivel con el que se prestarán dichos servicios. EC R E D E R S HO S O D VA R E S CAPÍTULO IV Análisis e Interpretación de los Resultados Con la finalidad de cumplir el objetivo de describir los análisis y técnicas implementadas que se empleen para desarrollar un sistema prototipo de monitoreo remoto del consumo de gasolina en estaciones de servicios, a continuación se realiza una descripción de la implementación de la metodología propuesta en el capítulo III de la presente tesis. S O D A continuación se describe el sistema actual de la contabilización de ventas de VA R E S gasolina por turno en estaciones de servicios: E R S O H C Como primer proceso del sistema actual se encuentra el inicio de turno en el cual E R E el operador D de isla notifica al encargado o gerente la apertura de la isla donde se va a 1.- Análisis del Sistema Actual surtir gasolina. Durante el periodo de su turno, esta dado el segundo proceso que es el surtido de gasolina. Al momento de contabilizar las ventas el operador de isla junto con el encargado de la estación de servicio realizan la lectura del odómetro y luego de esto, se compara con la lectura del turno anterior para totalizar la cantidad de gasolina vendida en el respectivo turno. 2.- Análisis del Sistema Propuesto Siguiendo la metodología planteada en el capítulo III tenemos las siguientes fases del modelo solución del prototipo. 1) Estudio técnico de las maquinas surtidoras de gasolina. 2) Captura de la información de las maquinas surtidoras. 3) Transmisión de la Información 4) Sistema de recepción de datos. 5) Diseño de protocolo de comunicaciones. 52 53 6) Desarrollo de aplicación monitor para el servidor. 7) Desarrollo de aplicación Web. 8) Pruebas y análisis de los resultados obtenidos. En la primera fase se analizo los posibles medios para la captura de datos, derivando que existen 2 posibilidades técnicas de extraer datos de la maquina surtidora las cuales son el odómetro y el pulser de las bombas electromecánicas. A continuación S O D VA R E S se presenta un cuadro comparativo entre estas dos opciones: E R S PULSERHO C E R E Señal digital Ddel motherboard ODOMETRO Movimiento mecánico 100 pulsos por litro según especificación de Conversión de vueltas mecánicos manual técnico para obtención de pulsos eléctrico Está direccionado por dispensador Está direccionado por dispensador De este análisis se determinó que la manera mas eficiente de capturar los datos generados por este surtidor es la de tomar esta señales directamente de la tarjeta madre ya que de utilizar el odómetro se necesitaría de un hardware aparte para convertir la señal analógica a digital que pueda acarrear con perdida de datos (señales referenciadas en el capítulo III). Con este estudio se completo el primer objetivo de esta investigación. Por motivos de seguridad y la dificultad de realizar pruebas frecuentemente en sitio con las maquinas surtidoras debido que existen riesgos de ignición en el área de surtido de gasolina, se desarrolló un simulador que genera el comportamiento eléctrico necesario para capturar los datos específicos de una venta. Para la ejecución de la segunda fase, la captura de la información de las maquinas surtidoras, se desarrolló un sistema simulador hardware/software el cual se describe a continuación. 54 Simulador El Simulador esta compuesto por un computador con una aplicación que se encarga de generar el comportamiento eléctrico del modelo de maquina surtidora utilizada en la muestra. Esto lo hace con ayuda de un hardware con la función de multiplexar las señales digitales que genera el simulador, teniendo así como resultado S O D VA R E S las señales eléctricas necesarias para poder capturar ventas. E R S HO EC R E D Al ser este un sistema prototipo, se desarrollo dicho simulador que genera datos de manera similar a estos surtidores generando por cada surtidor activo 100 pulsos por litro a una frecuencia mucho mayor de un surtidor real para así demostrar y asegurar el correcto funcionamiento del registro de ventas. Este simulador es una aplicación desarrollada en Delphi 7 utilizando una librería para controlar el puerto paralelo y generar dichos pulsos eléctricos. La razón de la escogencia de esta herramienta de desarrollo es que el programador es totalmente independiente de las particularidades de Windows, tales como manejadores (Handlers), punteros y funciones del API de Windows (Application Programming Interface). La programación se realiza con los cómodos componentes de Delphi y no con las complejas llamadas al sistema de Windows. Esto simplifica enormemente la hasta ahora poco clara programación bajo Windows. El simulador genera 8 surtidores (4 islas) el cual tiene 2 productos que son gasolina con plomo y sin plomo. Este simulador implementa el comportamiento de 2 señales eléctricas por producto que tiene el surtidor, según el manual de la tarjeta principal del modelo estudiado. El puerto escogido para utilizarse en la generación de estas señales es el puerto paralelo, por la cantidad de pines y la velocidad de respuesta que tiene este. 55 De las especificaciones del puerto paralelo, se emplean los siguientes pines para ejecutar funciones requeridas para la correcta simulación de la estación de servicio al prototipo planteado. Cada surtidor tiene 2 dispensadores y la isla tiene 2 surtidores. Como el simulador genera 4 islas, entonces estos dispensadores se mapean en direcciones desde el 0000 hasta el 1111 usando 4 pines, del pin5 al pin2. El Pulser es representado por el S O D VA R E S pin6. Esta señal cuando está multiplexada por el hardware se utiliza para el conteo de pulsos por el hardware de captura y el Handle indica el inicio y fin de venta, es E R S HO representada por el pin7. EC R E D Son 16 dispensadores de gasolina, la cual cada uno de ellos tiene 2 señales eléctricas para simular que son el pulser y handle, se necesitó desarrollar un programa en un microcontrolador PIC que hace la función de un multiplexor. La principal función de esta es registrar el estado de cada una de estas señales eléctricas de cada producto. Cada dispensador, representado por una dirección del pin5 al pin2, sirve al multiplexor para direccionar el estado de un dispensador en específico en ese momento (Pin06Pulser y Pin07-Handle), mediante el Clock (Pin08). Para demostrar la eficiencia del registro de ventas, la velocidad del comportamiento eléctrico simulado es mucho mayor al real. Para multiplexar estas señales a tan alta velocidad, se eligió un microcontrolador 56 PIC18F458 y un PIC18F248, que son capaces de multiplicar la frecuencia de oscilación de entrada por 4, trabajando a un máximo de 40 MHZ. S O D VA R E S E R S HO EC R E D El desarrollo de este simulador esta orientado a objetos, dado por la naturaleza del problema. Para simular varios surtidores generando pulsos al mismo tiempo se utilizo la técnica de programación Multi-Threading. Cada producto del surtidor es una instancia de una clase dispensador, que a su vez hereda métodos de la clase TThread de Delphi. Esta clase dispensador es la responsable de la existencia de los objetos que genera la data a través del puerto. Dado que lo más importante es asegurar la integridad de la data generada por el simulador, al usar la técnica de programación multi-threading se debió tomar en cuenta algunas problemáticas. Antes de enviar el clock para que el multiplexor registre el pulso y el handling del dispensador indicado por la dirección se deben preparar todas estas señales en varias líneas de instrucción asegurándose de que todos estos comandos se 57 ejecuten en el thread principal del programa simulador, y así no todos los dispensadores estarían generando estas señales al mismo tiempo ya que habría colisión de data en el puerto paralelo. La clase surtidor tiene 2 propiedades principales, que son dos objetos dispensadores que representan los 2 productos de gasolina. La clase surtidor tiene un método especial que determina si el surtidor esta ocupado en ese momento, o sea, no se puede generar pulsos de los 2 productos al mismo tiempo en un mismo surtidor. Al generar ventas de una forma automática, si se intenta surtir gasolina en un surtidor que S O D A que el simulador Vnecesita R esa clase. Para que exista un auto surtimiento aleatorio, se E ES R llame a la subrutina de surtir gasolinaS en un surtidor en específico en rangos de tiempo HO C random. E DER esta ocupado en ese momento, el simulador no dejara que esto ocurra por ese método de Para esto se usa el objeto en delphi que se llama TTimer que consiste en generar un evento en un intervalo de tiempo especificado, que el simulador, es generado aleatoriamente. Así, se tiene un auto surtimiento ejecutando esta subrutina en tiempos aleatorios. Con el desarrollo de este simulador se completo el segundo objetivo de esta investigación. Con el desarrollo del simulador, se continúa con el diseño de un sistema digital para la Captura de la Información. A continuación se presenta un diagrama explicando el funcionamiento del simulador: 58 EC R E D E R S HO S O D VA R E S 59 Captura de la Información Para obtener una Captura integra de la información se necesito un hardware capaz de registrar conteo de pulsos externos, uno por cada producto de gasolina, además de ser capaz de manejar interrupciones externas para adquirir las transacciones de ventas y al mismo tiempo poder transmitir una venta en cola. Asimismo Para el respaldo de la data en caso de contingencias o fallas eléctricas se necesito de un hardware con capacidad de memoria EEPROM para respaldo de ventas. S O D Con todas estas características y necesidades para VelAhardware colector, se R E seleccionó el microcontrolador PIC16F876A ya S que el mismo posee dos timers para el E R S O contarán respectivamente los pulsos por producto conteo de pulsos externosC losH cuales E ERde esto este microcontrolador es realmente efectivo para esta de gasolina,D además aplicación debido a su tamaño y costo. Se utilizaron las interrupciones de este microcontrolador para incrementar los litros de gasolina contados y el cierre de venta del surtidor dado por la señal de handle. Esta venta es guardada de la memoria RAM a la EEPROM, ya que así es posible seguir con el conteo de otra venta y enviar de ventas anteriores en caso de fallas eléctricas, debido a que esta data puede permanecer el la memoria EEPROM por un periodo de hasta 40 años según especificaciones eléctricas del microcontrolador seleccionado. Cada venta esta constituida por 4 bytes, tres bytes de cantidad de gasolina y un byte de identificación de isla y producto. Con la ejecución de este proceso se completo el tercer objetivo de esta investigación y da paso al inicio de la siguiente fase de transmisión de la información. A continuación se presenta el diagrama de conexión eléctrica del PIC16F876A, utilizado para el conteo de pulsos externos: 60 EC R E D E R S HO S O D VA R E S 61 Transmisión de la Información Para el diseño de este sistema, se ha tenido como una premisa importante el asegurar la integridad de la data en todo momento, por lo cual se decidió darle más importancia a la atención de las ventas. Por ello, para el conteo de pulsos, que representan las ventas, se asignó la funcionalidad de las interrupciones de los microcontroladores. Quedando así, como tarea secundaria y no menos importante, la de establecer la S O D A V R E comunicaciones en el cual están manejados por un Sdispositivo maestro, de manera que E R S en la cual cada uno de los contadores de se diseño una comunicación serial Osíncrona H C surtidor es el que RE los pulsos y datos de su información, para así poder dejar en Ecanaliza D “stand by” la comunicación mientras se esta atendiendo una venta por medio de las comunicación entre el hardware colector y receptor. Estos microcontroladores al tener su enfoque principal en la captura de ventas no pueden depender de un bus de interrupciones, sin perder información de datos entre el esclavo y el maestro de la comunicación serial. Para la transmisión se utilizó una comunicación serial de envío de datos bit a bit hasta completar el byte, con ello se logra la continuidad de la data de todos los surtidores al mismo tiempo. Además, se agrego a esta comunicación una señal para cada contador la cual indica que tiene ventas acumuladas en la memoria, así el microcontrolador encargado de recibir dichas ventas, solo pedirá datos a los que así lo requieran. En esta transmisión se envían los 4 bytes correspondientes al tipo de gasolina y el byte de identificación del surtidor. Además, se utilizaron dos microcontroladores PIC16F876A para cumplir con las funciones de monitoreo de la señales indicativas de requerimiento de transmisión de ventas realizadas en cada uno de los microcontroladores de captura de las ventas, así como la recepción de los bytes contentivos de la información correspondientes en cada microcontrolador. 62 Recepción de la Información En caso de fallas por parte del servidor en un tiempo prolongado, es importante que las ventas recibidas queden registradas con la fecha específica y no depender del mismo para el registro de fecha, si no que esta fecha sea calculada desde el mismo hardware. La fecha actual debe configurase desde el hardware por medio de una interfaz con el usuario. S O D A de 1970, se calculan una fecha Unix determinada “hora cero” que es el 1ero deV Enero R E S los segundos transcurridos desde la mismaR hasta la fecha actual. Este número calculado E S O el cual representa el tiempo cronológico en forma es denominado TimeStamp deH Unix, C E R minutos y segundos. completa; fecha; DEhora; Teniendo esta fecha y además una fecha de predeterminada de inicio la cual es Entonces con estas necesidades como premisas para el diseño del hardware receptor de información, se tiene que los requerimientos de procesamiento deben ser mayores que el hardware de captura, debido a que los mismos deben poseer instrucciones nativas de multiplicación de 8 bits para el cálculo de la fecha y hora desde un punto inicial y prioridades en niveles de interrupciones para el envío del TimeStamp vía serial, y asimismo seguir con el conteo de los segundos de la hora, por lo que se seleccionó un PIC18F248. El TimeStamp consta de 4 bytes de datos, con lo que se asegura más de 50 años en segundos para el registro. Para el registro de la venta se necesita también gran capacidad de memoria, por lo que se seleccionó el microcontrolador PIC18F458 para grabar la información de las ventas en la memoria flash. Al momento de recibir una venta este microcontrolador pide solicitud de TimeStamp al microcontrolador PIC18F248, y teniendo la gasolina registrada y el TimeStamp generado estos se concatenan y conforma así la venta que se guarda en la memoria Flash del microcontrolador 18f458 para luego ser enviado al servidor. 63 A continuación se muestran los diagramas de conexión eléctrica del control central y TimeStamp: EC R E D E R S HO S O D VA R E S 64 EC R E D E R S HO S O D VA R E S 65 Entonces el modelo esquemático del hardware es el siguiente: S O D VA R E S E R S HO EC R E D Con la ejecución de este proceso se completo el cuarto objetivo de esta investigación. Protocolo de comunicación entre el sistema de recolección de datos y el servidor La información a transmitir va a ser enviada al servidor por medio del puerto paralelo, estos datos serán capturados por una aplicación en Delphi usando una librería dinámica para el control de dicho puerto. El motivo de la selección de este compilador Delphi es debido a que es una potente herramienta de desarrollo de programas que permite la creación de aplicaciones para sistemas operativos Windows, además de esto 66 es posible acceder de forma muy cómoda a servidores de bases de datos de otros sistemas (por ejemplo UNIX) por medio del SQL (Structured Query Language) que constituye un estándar de lenguaje de uso general para consultar y modificar datos administrados por servidores especiales de bases de datos como Oracle, Sybase, MySQL, etc. La comunicación entre el hardware recolector de ventas y el servidor se desarrollo de la siguiente manera: S O D • El microcontrolador PIC encargado de registrar VAlas ventas envía una R E E señal a la aplicación monitor delS servidor cuando el mismo tenga una R S O venta en cola aH transmitir. C E ER •DDicha aplicación al detectar esta señal, se establece entre el hardware y esta aplicación un reconocimiento (Server Acknowledge). • El hardware envía un byte al servidor de que hubo o no Acknowledge, para proseguir con el envío de la información ó el reinicio del proceso de transmisión. • Si hubo acknowledge se envía la venta 2 veces de manera serial a la aplicación monitor. • Esta aplicación compara las 2 ventas recibidas, de ser iguales se insertan en la base de datos para el uso de la aplicación Web y luego de esto envía al hardware un byte de control para notificar al mismo que la venta fue satisfactoria y que puede liberar el espacio de memoria que ocupaba dicha venta. • La Aplicación queda en espera de otra transacción de venta. El diagrama de flujo de este proceso es el siguiente: 67 " " "% " " "% % " &" ' #! # (#$# $ " "$) $ !"#$ % % "" % " " "% % " " "% $ " /' &" % % + % % "" %) S O D VA R E S $ " "$ " +" $% , " E R S HO EC R E D % # (* ! % (#$#$ -' # !#$"# + # ".'#+ % ".'#+ +# ! $ ""# ) !"#$ (#+# $# % $%+#+ % $%+ $#+ "" % -' +# $# # "% % /' &" % # " # " $ #$ # # % +# ! # !"#$ (#+# $# % $%+#+ % $%+ $#+ (#$# -' +" " # +# ! # !"# # +# %+# " " "% " " "% El proceso completo del registro de ventas se puede observar en el siguiente grafico: 68 S O D VA R E S E R S HO EC R E D Con la ejecución de este proceso se completaron los objetivos quinto y sexto de esta investigación. 69 Aplicación Web Las fases ejecutadas para el desarrollo de esta aplicación Web son las siguientes: • Planificación del sistema. • Análisis y diseño del sistema. • Construcción del sistema. • Implementación del sistema. Fase de planificación del sistema S O D VA R E S E R S HO EC R E D En esta fase se tuvo como objetivo principal la obtención de un marco de referencia para el desarrollo de este sistema de información que responda a los objetivos estratégicos de la estación de servicio. Esto se logro por diversas reuniones con gerentes para así poder llevar a cabo el análisis, diseño y construcción del sistema. Los principales procesos a automatizar obtenidos de las diversas reuniones fueron: • Monitoreo de toda la información de una forma remota. • Los reportes de ventas deben calcular y mostrar la sumatoria de litros de gasolina de octanaje con plomo y sin plomo, así como la cantidad de dinero total que se obtuvo por las ventas de gasolina. • La generación de dichos reportes de ventas mediante la selección de surtidores en específico y fechas exactas. • Ingreso de turnos de operadores de isla al sistema, así como la generación de dichos reportes de ventas de gasolina desde el momento en que se ingresó esta, hasta que se cierra. 70 • Se debe diseñar el sistema manera que existan niveles de accesos restringidos según el tipo de usuario y obtener niveles de seguridad para el control de la data, específicamente al modificar información. Análisis y diseño del sistema Ya teniendo unos objetivos planteados provenientes de la planificación del sistema, se procedió a una identificación del entorno tecnológico. Uno de los alcances S O D A forma remota. Por esto, en esta fase de análisis, se hace una del entorno Videntificación R E E tecnológico a usar y la definición de estructura deS datos. R S O tecnológico, como premisa inicial se plantea Hentorno C En la identificación del E R de una forma remota, por lo tanto la solución más atractiva DEinformación monitorear toda principales para el desarrollo de este sistema es el poder controlar la información de una de realizar esto es mediante una aplicación Web. La estructura de datos de las ventas, es de la siguiente manera: Tanto el surtidor y la fecha exacta de venta, en conjunto, representan la clave principal de esta tabla, ya que no se puede surtir gasolina en el mismo surtidor y a su vez en ese mismo segundo. El surtidor es representado por un número del 1 al 8, lo cual representan las 4 islas de la estación de servicio. Al momento de registrar una venta en esta tabla mediante el sistema protocolo, se realiza una consulta el precio del octanaje por litro indicado en la variable booleana de la tabla venta. Este precio consultado, se registra en esta tabla. La tabla con los precios de los octanajes es la siguiente, la cual es configurable mediante el sistema por el Súper Usuario: 71 Esta es una tabla que consta de una sola fila que indica el precio de la gasolina con plomo y sin plomo por litro. La estructura de datos que representa los usuarios que controlan la información S O D VA R E S del sistema, es la siguiente: E R S HO EC R E D Cada usuario del sistema debe ser único, así que como clave principal se tiene la cedula. Para el ingreso y acceso a la información, se debió ingresar a esta tabla campos clave y tipo de usuario. El tipo de usuario es representado por 3 números: Súper Usuario (1), Administrador (2) y Usuario (3). EL Súper Usuario es un usuario único, y tiene la posibilidad de controlar toda la información como agregar otros administradores, usuarios y operadores de isla al sistema. Las únicas diferencias entre el Administrador y el Súper Usuario es que el Administrador no puede modificar los precios de los octanajes de la gasolina ni agregar otros administradores. Tanto como el Súper Usuario y el Administrador, pueden ingresar nuevos operadores de isla, la estructura de datos de esta es la siguiente: % " 0 # 72 Los 3 tipos de usuario, pueden ingresar turnos al sistema para la generación de reportes en base a estas. Estos registros son para indicarle a un reporte, la hora de inicio y fin de turno exacto, la persona encargada de ese turno y los surtidores a su nombre. La estructura de datos de los turnos es la siguiente: E R S HO S O D VA R E S EC R E D ! # $ % & ' ( ) " " " " " " " " El Id es un numero que auto incrementa el manejador de base de datos cada vez que se inserta un turno al sistema, es decir, cada registro tiene un Id diferente. Esto es la clave principal del Turno. Al ingresar un turno, se necesita la cedula del operador de isla, la fecha exacta de inicio del sistema que es generada por el servidor, la fecha de ingreso y los surtidores correspondientes a ese turno representados por 8 variables booleanas. Toda esta información es suficiente para generar reportes de turno. Teniendo una estructura de datos establecida, se procede al desarrollo del sistema. 73 Construcción del sistema Las herramientas utilizadas para el desarrollo y funcionamiento de esta aplicación son el servidor http Apache, un manejador de base de datos MySQL y el compilador PHP para la conexión a base de datos y cálculos del sistema por parte del servidor. El motivo de la escogencia de estas herramientas es porque son software de libre acceso. El servidor Apache esta encargado de recibir las peticiones del cliente y dar respuesta a estas mismas, así como llamar al modulo PHP cuando este lo requiere. S O D A V R E sistema, desde que entra hasta que sale. Esto es Simportante para saber que tipo de E R usuario ingresó al sistema. OS H C E DER El sistema esta desarrollado utilizando sesiones, las sesiones son un método para mantener variables provenientes del cliente durante toda la estadía del usuario en el El usuario al entrar al sistema mediante su cedula y clave, se registra en la sesión el tipo de usuario y cedula. El encargado de hacer este trabajo es PHP. Con esto se obtienen varios niveles de seguridad y accesos restringidos con solo saber la cedula y tipo de usuario. Cada vez que el usuario intenta ejecutar algún proceso, se consulta si tiene permiso para hacerlo o no. Esta aplicación Web esta dividida en 2 módulos para separar los procesos que tiene que ver con la configuración y operación del sistema. Modulo de configuración del Sistema Se alimenta la base de datos con los usuarios del sistema y operadores de isla, así como también los precios del octanaje de gasolina. Existen tres niveles de jerarquía, 74 que son el Súper Usuario, Administrador y Usuario del sistema. Esto se diseño de esta manera para que sea un sistema multiusuario, accesos restringidos según el tipo de usuario y obtener niveles de seguridad para el manejo de la data. El Súper Usuario tiene acceso a la manipulación de todo el sistema, como la configuración de los precios de los octanajes. Es la única persona que puede agregar otros Administradores del sistema. Tanto como el Súper Usuario y los Administradores pueden alimentar la base de datos con Usuarios del sistema y los operadores de isla que están activos en la estación de servicio. A continuación, se muestran algunas imágenes de este modulo: S O D VA R E S E R S HO EC R E D En este modulo del sistema, se pueden observar todos los usuarios clasificados según tipo de usuario, mostrando información importante como su cedula, nombre y apellido. Lo mismo sucede con los operadores de isla. Para modificar o eliminar los datos de los usuarios u operadores de isla, se puede entrar a esa área mediante un clic a cualquier cedula que se vea en esa lista. Al hacer esto, se observa lo siguiente: El Súper Usuario es capaz de ver las claves de todos los administradores y usuarios del sistema. Ni los administradores ni usuarios del sistema pueden ver la clave de ingreso al sistema del Súper Usuario. Los administradores si pueden observar claves de los usuarios. Esto se desarrolló de esta manera porque existen casos en donde a algún 75 usuario o administrador no recuerde su clave de ingreso, entonces alguien perteneciente al sistema con mayor jerarquía le puede recuperar esa clave. En este modulo, también se puede modificar los precios del octanaje de la gasolina con plomo y sin plomo. Esto nada más lo puede hacer el Súper Usuario, ya que son de gran importancia estos valores para el sistema que recibe las ventas del control central. Ese sistema consulta estos precios antes de insertar la data que recibe del control central. S O D VA R E S E R S HO EC R E D Ya teniendo un módulo para la configuración de los octanajes de gasolina y administración de usuarios, se procede a desarrollar el módulo de operación Modulo de Operación del Sistema En este modulo, todos los niveles de jerarquía tienen acceso al mismo, como generar reportes de turno y monitoreo de los turnos activos. Cuando un operador de isla va a iniciar su tuno, se debe seleccionar el nombre de dicho operador y surtidores a operar, registrándose la hora exacta de entrada para contabilizar ventas de dicha hora a su nombre hasta el cierre de turno. De igual manera funciona para el cierre de turno, donde se puede ver los operadores de isla activos y cerrar su turno correspondiente para el registro de fecha y hora exacta de culminación de turno. Esta aplicación tiene la capacidad de generar reportes de surtidores y operadores activos en determinado momento para ver el total de las ventas hasta la hora exacta donde se genero dicho reporte. También es posible generar reportes de ventas por turno en determinada fecha. Estos requerimientos de reportes de ventas vienen dados de diversas reuniones con gerentes de estaciones de servicios de la ciudad, los cuales se mostraron satisfechos por la eficiencia e importancia del sistema y los reportes 76 generados por el mismo. Con el soporte de esta aplicación Web, el inicio de turno de un operador de isla se da al ingresar la cedula de dicho operador, momento en el cual se registra la hora exacta del inicio de turno del mismo. También se pueden generar reportes mediante un rango de fechas específicas y surtidores, generando así todas las ventas que se hicieron en ese lapso de tiempo de los surtidores especificados al generar el reporte. S O D VA R E S E R S HO EC R E D Este es el formulario que se encarga de generar los reportes de ventas en un rango de fechas y surtidores específicos. El resultado que se obtiene al generar ese tipo de reporte es la siguiente: 77 En este reporte se puede observar el listado de todas las ventas que ocurrieron en el rango de tiempo especificado, totalizando todos los litros con plomo y sin plomo vendidos. Cuando un operador de isla inicia su turno, se ingresa este mediante el siguiente formulario: S O D VA R E S E R S HO EC R E D Mediante la selección del operador de isla y los surtidores en la que él estará establecido para cumplir sus horas, al enviar toda esta información al servidor, se obtiene la fecha exacta de inicio de turno. Si se intenta ingresar un operador de isla en algún surtidor que esta actualmente activo por otro operador, el sistema mostrará un mensaje de error diciendo que no se puede ingresar ese turno debido a esa colisión. Para visualizar los turnos que están registrados al sistema, se pueden filtrar esta información en el menú principal como la imagen siguiente: Como se puede observar, se puede filtrar todos los turnos ingresados por activos, no activos o mediante fechas especificas. 78 A continuación se presenta una imagen de un listado de turnos encontrados buscándolos por alguna fecha en específica: S O D VA R E S E R S HO EC R E D Al seleccionar una fecha específica en el formulario, se obtiene el listado de turno de esa fecha. Cada turno muestra el operador de isla, la hora de inicio generado por el servidor cuando este se ingreso, surtidores en la que ese operador estuvo trabajando, un enlace para configurar el turno, cerrarlo en caso de que este esté activo y ver las ventas que han transcurrido bajo la responsabilidad del operador de isla. Si el turno está activo en ese momento, al ver las ventas, se genera un reporte desde la fecha de inicio del turno hasta el momento donde se genero esa petición al servidor. De lo contrario, se genera el listado de ventas desde que se ingresó el turno, hasta que se cerró, como se puede observar en la siguiente imagen: 79 S O D VA R E S E R S HO EC R E D En caso de hacer modificaciones a un turno en específico, solo el Súper Usuario y los administradores pueden hacerlo. En el listado de turnos, al darle clic al campo “Configurar”, es posible hacer esto. 80 Implementación del sistema La instalación del sistema consiste en la implementación del sistema protocolo que recibe las ventas que le envía el control central y las inserta en la base de datos MySQL mediante el controlador ODBC, la instalación del servidor http Apache con el modulo PHP para la ejecución de los scripts del lado del servidor y conexión a base de datos, y la creación de un directorio virtual en el servidor donde se aloje los archivos S O D A V R E del sistema, como la carga de datos al entornoS de operación, ingresando usuarios y E R operadores de isla, se confirma que OelSsistema protocolo reciba las ventas y las ingrese a H C la base de datosE RE rigurosas pruebas, se entrena al personal para el ingreso de D mediante utilizados por el sistema. Después de la instalación de todas estas herramientas en un sistema operativo Windows, se procede a ejecutar procesos para la entrega y aceptación turnos, generación de reportes, administración y configuración del sistema. Con el cumplimiento de este proceso se completa el séptimo y octavo objetivo de esta investigación. 81 CONCLUSIONES Tomando en cuenta los resultados obtenidos de esta investigación se formulan las siguientes conclusiones: Se desarrolló un sistema prototipo de monitoreo remoto del consumo de gasolina en estaciones de servicio el cual presentó características funcionales esperadas tales S O D registros para generar reportes de las ventas de manera remota. VA R E S E R OS H C E Las vías deR DE recolección de información estudiadas fueron: La transmisión de la como el correcto registro de las ventas generadas por los surtidores y el uso de dichos data de forma inalámbrica, la información generada desde el odómetro y finalmente la vía escogida dentro de la investigación que fue el conteo de pulsos provenientes de la maquina surtidora, con la que se pudo comprobar que la implementación del sistema es viable ya que existe factibilidad técnica. Los resultados obtenidos de la aplicación de simulación de datos generados por una máquina surtidora fueron satisfactorios ya que se comportó de manera similar a estas máquinas, además de esto y arrojo información con una velocidad de hasta mas de 10 veces a la velocidad normal con la que trabajan dichas máquinas. Con la implementación del sistema de recepción y control se comprobó que el protocolo de comunicaciones entre el sistema de recolección de datos y el control central fue diseñado adecuadamente porque el nivel de error en la recolección de datos fue nulo. Con todas las pruebas realizadas durante la investigación, se observo que los registros de venta mostrados por la aplicación Web se corresponden con los generados por el simulador inclusive en caso de fallas por parte del servidor. 82 RECOMENDACIONES Tomando en cuenta los resultados obtenidos de esta investigación se recomienda lo siguiente: • Dado que el sistema es un prototipo se recomienda el desarrollo del mismo de forma industrial cumpliendo con normativas de seguridad que apliquen en este proyecto, ejemplo, Nema y UL. S O D VA de servicios. el sistema en su implementación en otras estaciones R E S E R OS H C EREmemorias EEPROM seriales para ampliar la cantidad •DUtilizar • Ampliar la gama de dispensadores de gasolina para hacer más atractivo de información a reservar en caso de contingencias en el circuito de recepción de la información. • Ampliar la gama de reportes estadísticos de las ventas registradas, para optimizar la toma de decisiones con respecto a la gerencia de la estación de servicio y sus productos ofrecidos. • Desarrollar un sistema administrativo en conjunto con esta aplicación Web, para controlar al máximo ingresos y egresos de la estación de servicio. • Implementar un sistema de monitoreo del estado de los tanques de gasolina, con sus parámetros como la temperatura, volumen, masa, pureza del producto, entre otros, para eliminar la supervisión manual de los mismos. 83 REFERENCIAS BIBLIOGRÁFICAS Angulo U., José Maria e Angulo M., Ignacio (1999) Microcontroladores PIC, diseño practico de aplicaciones. Editorial McGraw Hill. Angulo U., José Maria , Angulo M., Ignacio y Yesa R.,Susana (2000) Microcontroladores PIC, diseño practico de aplicaciones( Segunda Parte ). Editorial McGraw Hill. S O D VAde Datos Volumen 1. R C.J., Date (1990) Introducción a los Sistemas de Bases E S E R Editorial Addison-Wesley. 5ta Edición. OS H C E DER Hernández, Fernández y Baptista (2002). Metodología de la Investigación. Editorial McGraw Hill. 3era Edición. Rubio G., Francisco j., Tejedor, Jorge (2001) Creación de Sitios Web con PHP 4. Editorial McGraw Hill. Silberchatz, Abraham (1998) Fundamentos de Bases de Datos. Editorial McGraw Hill. 3era Edición. Tanenbaum, Andrew (1997) Redes de Computadoras. Editorial McGraw Hill. 3era Edición. Teixeira, Steve y Pacheco, Xavier (2000) Guía de Desarrollo Delphi 5. Editorial Prentice Hall.