INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA “APLICACIÓN WEB PARA EL MANEJO DE SUSTANCIAS Y RESIDUOS QUÍMICOS” T E S I S QUE PARA OBTENER EL TÍTULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA P R E S E N T A N Gallardo Martínez Erick Silva Sohn Servando So Yong ASESORES: M. en C.Felipe Durán Federico M. en C. Zavala Mejía Genaro MÉXICO, D.F. 2011 INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA y ELECTRICA UNIDAD PROFESIONAL" ADOLFO LOPEZ MATEOS" REPORTE TECNICO QUE PARA OBTENER EL TITULO DE INGENIERO EN COMUNICACIONES Y ELECTRÓNICA POR LA OPCION DE TITULACION CURRICULAR DEBERA(N) DESARROLLAR C. ERICK GALLARDO MARTÍNEZ C. SERVANDO SO YONG SILVA SOHN "APLICACIÓN WEB PARA EL MANEJO I?E SUSTANCIAS Y RESIDUOS QUÍMICOS" DISEÑAR E IMPLEMENTAR UNA APLICACIÓN WEB LA CUAL CONTENGA UNA BASE DE DATOS DEL INSTITUTO POLITÉCNICO NACIONAL PARA APOYAR LOS MATERIALES QUÍMICOS Y RESIDUOS QUE NO SE UTILICEN EN CIERTOS LABORATORIOS REASIGNÁNDOLOS A OTROS LABORATORIOS PARA SU APROVECHAMIENTO. • • ANALIZAR Y ESTRUCTURAR EL DISEÑO DE LA APLICACIÓN WEB y BASE DE DATOS DISEÑAR Y ELABORAR LA APLICACIÓN WEB Y LA BASE DE DATOS EN BASE A LOS PLANTEADO EN LA RPOPUESTA DE SOLUCIÓN PARA FINES DE PRUEBA Y AFINACIÓN MÉXICO D.F. A 16 DE NOVIEMBRE DE 2011 ASESORES FELIPE DURAN M. EN C. ÁZQUEZ ÁLVAREZ JEFE DEL D RTAMENTO ACADÉMICO DE INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Objetivo Diseñar e implementar una aplicación WEB la cual contenga una base de datos del Instituto Politécnico Nacional para aprovechar los materiales químicos y residuos que no se utilicen en ciertos laboratorios reasignándolos a otros laboratorios para su aprovechamiento. Objetivos Particulares Analizar y estructurar el diseño de la aplicación WEB y base de datos. Diseñar y elaborar la aplicación WEB y la base de datos en base a lo planteado en la propuesta de solución para fines de prueba y afinación. Instalar el servidor WEB donde se alojará la información y portal. Lanzar la prueba o piloto del servicio en una unidad académica (UPIBI). Verificar y/o corregir los errores de la aplicación para poder trabajar en la versión final. 2 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Justificación Actualmente con los múltiples problemas ambientales que han sido provocados por el abuso de los recursos naturales por parte del hombre ha planteado la necesidad de crear la llamada “conciencia ecológica” o “conciencia verde”. Las acciones usualmente enfocadas a cuidar el medio ambiente es la reutilización de los materiales, y esto es precisamente el enfoque que se le quiere dar a nuestro proyecto, en lugar de tirar los residuos químicos por la cañería sería mejor ponerlos a disposición de otros laboratorios que puedan darle algún uso útil. Además, derramar sustancias químicas al drenaje ocasiona deterioro en las tuberías teniendo que dar mayor mantenimiento preventivo y/o correctivo a las instalaciones lo cual ocasiona gastos adicionales, sin tomar en cuenta la contaminación que pueda ocasionar al sistema fluvial nacional. La ingeniería de comunicaciones y electrónica ha desarrollado herramientas que permiten la comunicación e interacción a distancia entre personas y organizaciones. Entre estas herramientas se encuentran las bases de datos, redes de computadoras e internet. Los puntos anteriores están enfocados al medio ambiente pero existen ventajas económicas al mismo tiempo. El sistema de cómputo que se propone para el proyecto va a permitir el intercambio de sustancias y reactivos químicos entre las distintas unidades académicas del Instituto Politécnico Nacional con lo cual se podrían ahorrar grandes cantidades de dinero al no adquirir material químico nuevo y mejor recibirlo por parte de otra unidad académica. Adicionalmente se evitaría tener llenos los estantes y almacenes de sustancias que no son utilizadas o sustancias ya caducas. 3 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Resumen Ejecutivo La evolución de la tecnología ha modificado drásticamente los sistemas de información en los últimos años. Anteriormente, una base de datos tenía que estar guardada en un medio de almacenamiento y para tener acceso a ella, había que tener este último físicamente para poder leerlo con algún dispositivo y posteriormente agregar más información. Con la revolución en la última década de los servicios de internet y la alta difusión que los proveedores de este servicio han tenido, hoy en día es posible acceder a bases de datos que se encuentran en servidores al otro lado del mundo, desde la comodidad de nuestros hogares, o en general desde cualquier lugar donde exista una conexión a internet. El concepto de aplicación WEB es diferente al de una página WEB por el hecho de que esta aplicación tiene la posibilidad de realizar operaciones avanzadas, y trabajar en conjunto con bases de datos. Para esto, se requiere un servidor que mantenga el sitio, y realice los procesos en la base de datos y los almacene para que posteriormente puedan ser accedidos de manera remota desde una computadora por medio de internet. A medida que avanza la tecnología el internet se ha vuelto una herramienta bastante importante dado que este tipo de aplicaciones pueden ser utilizadas de manera remota, con tan solo acceder a una determinada IP. Con el paso de los años la tendencia es más que clara; poco a poco todos los servicios y programas que utilizamos hoy en día se verán trasladados a servidores WEB a los cuales podremos acceder de manera remota sin siquiera tener la aplicación instalada. A este tipo de computación a la que nos dirigimos se le denomina “Cloud Computing”, o computación en nube, haciendo referencia a que siempre se pueden acceder a los datos que se encuentran “arriba”, en la “nube” como una metáfora de internet. Con este nuevo paradigma, grandes empresas como Google y Microsoft, han decidido ofrecer nuevos servicios utilizando el cómputo en nube para satisfacer varias necesidades. Uno de los servicios más prestados en la actualidad es el servicio de almacenamiento de información mediante una base de datos que puede ser utilizada para cientos de objetivos mediante una aplicación WEB. La mayoría de los sitios de internet incluyen una base de datos de sus clientes, siendo esta la manera más básica del uso de bases de datos. Sin embargo, otras empresas han decidido ir un paso adelante con la aplicación de base de datos, y le han dado distintos usos como el servicio de compra y ventas en un sitio WEB, páginas de intercambios de distintos materiales, venta de archivos digitales multimedia (videos, música, libros, etc.) y hasta las más recientes redes sociales que han crecido de manera acelerada en la última década. Bajo la gran necesidad de aprovechar las sustancias y residuos químicos en instituciones públicas y privadas, es que se ha decidido realizar una aplicación WEB que fomente y eduque a las personas a tener la cultura de aprovechar en la medida de 4 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos lo posible todo tipo de sustancias y residuos químicos que por alguna razón no son útiles para otros. Por medio de un sistema de datos, se pretende realizar poco a poco un gran centro de información donde los profesores, investigadores, estudiantes y profesionistas puedan acceder a ofertar y demandar toda aquella sustancia, materia, reactivo o residuo químico que requiera de otro lugar, o que desee poner a disposición para ser aprovechado por alguien más. De igual manera, se creará una base de datos de todas aquellas personas que trabajan en este medio, con la información del lugar y laboratorio donde trabajan, la institución a la que pertenecen, su área, y datos personales para contactarse en caso de necesario. Dentro de los servicios que cumplen con estas funciones, se destacan 2 lenguajes de programación orientados a diseño y creación de páginas WEB orientadas a ser interpretadas del lado del servidor. Por un lado se encuentra el Pre-procesador de hipertexto (PHP), creado en 1994 y categorizado como software libre. Por otro lado se encuentran las Páginas de Servidor Activo (ASP), tecnología creada por Microsoft y que requiere de Licencia. Dado el conocimiento de lenguajes de programación como Visual C# y las ventajas que ofrece, se ha elegido la tecnología ASP de Microsoft para realizar la aplicación WEB en conjunto con Microsoft SQL Server 2008 para trabajar con bases de datos. Para el servidor se utilizará el sistema operativo Windows Server 2003 o en su defecto la versión más reciente 2008. Una de las razones principales por las cuales se ha decidido realizar este proyecto, es que además de ser un proyecto con un enfoque “ecológico”, existen un sinfín de instituciones y personas que podrían participar. En un inicio, la aplicación podría aplicarse a una institución en particular, pero posteriormente más empresas o instituciones podrían irse añadiendo, y finalmente convertirse en un estándar de la disposición de residuos, que si bien no parece ser un proceso difícil, en realidad es laborioso, tardado, costoso y complicado por las amplias situaciones que se pueden llegar a dar. Para la realización de este proyecto, nos apoyamos en técnicas de diseño de páginas WEB, así como el planteamiento y generación de bases de datos. Adicionalmente se utilizaron procesos de ingeniería de software enfocados a la creación de aplicaciones WEB. El proyecto consta en general de cuatro partes básicas: Estudio de las necesidades de laboratorios químicos y la manipulación y desecho de sustancias y residuos químicos Diseño y creación de un sitio WEB de manera superficial aun sin manejar bases de datos (y por lo tanto no ser una aplicación WEB) 5 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Creación y vinculación de bases de datos a la página WEB para formar la aplicación Instalación de servidor WEB y montaje del sitio en una IP con su respectivo dominio Parametrización y Optimización de operaciones y seguridad de acuerdo a las necesidades que vayan surgiendo mediante el uso de la plataforma. Para la correcta realización de este proyecto, se ha decidido que se forme un equipo interdisciplinario, juntando así la Escuela Superior de Ingeniería Mecánica y Eléctrica ESIME con un profesor y alumna de la Unidad Profesional Interdisciplinaria de Biotecnología UPIBI, quienes nos apoyarán con los puntos de planteamiento de necesidades y Parametrización y optimización de acuerdo a las necesidades obtenidas en los estudios. En relación de los puntos de diseño y programación del sitio WEB, existen varias alterativas en el mercado para la correcta realización de los mismos. Los programas seleccionados fueron: Adobe Dreamweaver CS5 y Microsoft Visual Studio 2010 en conjunto con Microsoft SQL Server 2008. La razón de utilizar Adobe Dreamweaver CS5 es que este programa es mucho más completo y flexible en cuanto a diseño de páginas WEB, permitiéndonos crear plantillas y diseños de manera dinámica y más fácil en comparación de tal manera que se trabajare el resto del desarrollo en Visual Studio. Por otro lado, MS Visual Studio se utilizó para realizar la programación en ASP y la conexión de bases de datos en SQL Server 2008 con los formularios del sitio WEB. MS Visual Studio tiene la propiedad de ser extremadamente amigable con el usuario al momento de trabajar con idiomas como C# bajo la plataforma .NET de Microsoft. Se ha decidido utilizar las últimas versiones del software para aprovechar las últimas tecnologías pero a la vez teniendo en cuenta que sea posible la retrocompatibilidad con versiones más antiguas del mismo. Por último, para montar la aplicación WEB al servidor, se utilizará IIS ya que como se mencionó anteriormente, ASP funciona con este servicio de información de internet. 6 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Introducción Para desarrollar este proyecto se siguió la siguiente metodología: Se realizó una investigación previa por parte de la unidad académica UPIBI la cual identificó el problema del mal uso y desecho de sustancias y residuos químicos. De aquí se planteó una propuesta general de solución la cual era realizar un sitio WEB para poder realizar cierto intercambio de las sustancias y residuos que ya no se utilizan dentro de todas las unidades académicas y centros de investigación del Instituto Politécnico Nacional. Una vez que nos fue planteada la solución, se decidió que lo más adecuado era realizar una aplicación WEB, en vez de un simple sitio WEB. Esta aplicación trabajará con bases de datos y se podrá acceder a él desde cualquier dispositivo con acceso a Internet. Con la información recopilada se procedió a elaborar un plan de trabajo y juntas para realizar cambios y mejoras de los planes y posteriormente desarrollar la solución y realizar la etapa de pruebas (piloto). La presente Tesis está estructurada de la siguiente manera: Antes del capítulo 1 se presentan todos los antecedentes de las aplicaciones WEB y los sistemas de información. Posteriormente se realizó el Estado del Arte para investigar acerca de aplicaciones que tuvieran propósitos similares, así como el lugar donde radican y que alcance tienen. En el capítulo 1 se presentan los puntos más básicos y relevantes de las bases de datos. Se explican los modelos de datos, los lenguajes de bases de datos y la estructura de un sistema de bases de datos. El capítulo 1 también menaje brevemente la arquitectura de las aplicaciones y conceptos básicos acerca de Microsoft SQL y el sistema Operativo Windows Server 2008. En el capítulo 2 se estudian cuáles son los procesos de la ingeniería de software. Se detallan los modelos del proceso de software y la iteración de procesos, así como se elige el proceso a utilizar en nuestro proyecto en las conclusiones. En el capítulo 3 se muestra la identificación del problema y la propuesta general de solución. De igual manera se muestra un diseño previo de la aplicación WEB así como se explican las facilidades y dificultades analizadas previas al desarrollo de la aplicación WEB. Por último, el capítulo 4, llamado “Desarrollo Técnico” plantea las diferencias entre distintos lenguajes para el desarrollo de aplicaciones WEB y el porqué de la elección de ASP.net. Posteriormente se derivan el planteamiento del diseño final del sitio WEB y el análisis del diseño de bases de datos con sus respectivos esquemas y 7 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos diagramas. Finalmente se realiza el desarrollo de la aplicación y se plantean las conclusiones así como las observaciones y las recomendaciones al momento de realizar la Aplicación WEB. Dado que este es un sistema cuyo ciclo de vida apena comienza, se dejan claros los siguientes objetivos y algunas optimizaciones que pueden aplicar para el siguiente ciclo de vida del software. 8 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos ÍNDICE Resumen ejecutivo Introducción Glosario técnico Antecedentes Estado del arte CAPÍTULO 4 7 13 16 21 1: Marco Teórico 1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.6 1.7 1.7.1 1.8 1.8.1 1.8.2 1.9 1.9.1 1.10 Bases de datos Aplicaciones de los sistemas de bases de datos Modelos de los datos Modelo Entidad-Relación Modelo Relacional Otros modelos de datos Lenguajes de bases de datos Lenguaje de definición de datos Lenguaje de manipulación de datos Estructura de un sistema de bases de datos Gestor de almacenamiento Procesador de consultas Arquitectura de aplicaciones SQL Estructura básica de SQL Windows server 2008 Características Ediciones Internet Information Services (IIS) Windows Server 2008 y IIS Conclusiones del capitulo 23 23 24 24 25 26 26 26 27 27 28 28 29 31 31 32 32 32 33 33 35 2.1 2.2 2.2.1 2.2.2 2.2.3 2.3 2.3.1 2.3.2 2.4 CAPÍTULO 2: Marco Teórico Procesos del software Modelos del proceso del software El modelo en cascada Desarrollo evolutivo Ingeniería del software basada en componentes Iteración de procesos Entrega incremental Desarrollo en espiral Conclusiones del capitulo 36 37 38 39 41 42 43 44 47 9 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 3.1 3.2 3.3 3.4 3.5 CAPÍTULO 3: Análisis de condiciones actuales Identificación del problema Propuesta general de solución Diseño preliminar a detalle Facilidades y dificultades previas al desarrollo de la solución Conclusiones del capitulo CAPÍTULO 4.1 4.2 4.3 4.4 4.5 4.5.1 4.5.2 4.5.3 4.5.4 4.6 4.6.1 4.6.2 48 48 51 62 64 4: Desarrollo Técnico Diferencias entre lenguajes/plataforma para el desarrollo de aplicaciones WEB Elección de lenguajes/plataformas para el desarrollo de aplicaciones WEB Análisis y diseño de modelos entidad-relación Análisis y diseño de la estructura del sitio WEB (mapa del sitio) Desarrollo Diseño de la hoja de estilo (CSS) en adobe Dreamweaver CS5 Creación y diseño de la plantilla principal en Visual Studio 2010 Desarrollo de la aplicación WEB en ASP.NET con Visual Studio 2010 Creación de bases de datos y vinculación a la aplicación Instalación y puesta en marcha Instalación de Internet Information Services (IIS) Montaje de una aplicación ASP.NET en un servidor WEB Evaluación Económica Conclusiones Comentarios y Recomendaciones Fuentes de información 65 66 67 69 70 71 72 74 82 86 89 99 103 104 105 10 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos INDICE DE FIGURAS CAPÍTULO 1.1. 1.2. 1.3. Ejemplo de Diagrama Entidad-Relación Estructura del Sistema Arquitectura de dos y tres capas CAPÍTULO 2.1 2.2 2.3 2.4 2.5 4.1 4.2 38 40 42 43 45 3 Diseño preliminar de la página de inicio Diseño preliminar de la sección de búsqueda Diseño preliminar de los resultados de la búsqueda Diseño preliminar de la sección oferta/demanda Diseño preliminar del proceso de oferta/demanda Diseño preliminar al no existir resultados encontrados Diseño preliminar del inicio de sesion Diseño preliminar de la etapa de registro de usuarios Diseño preliminar del ingreso de una oferta/demanda Diseño preliminar de la confirmación de nueva oferta/demanda Diseño preliminar del cierre de sesión Diseño preliminar de la actualización de datos Diseño preliminar de la sección de eventos Diseño preliminar de la sección de enlaces Diseño preliminar de la sección de asesoria Diseño preliminar de la sección de noticias CAPÍTULO 25 29 30 2 El ciclo de vida del Software Desarrollo Evolutivo Ingeniería de Software basada en Componentes (CBSE) Entrega Incremental Modelo en Espiral de Boehm para el proceso de Software CAPÍTULO 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 1 51 52 52 53 54 55 55 56 57 58 58 59 60 60 61 61 4 Modelo Entidad-Relación previo al desarrollo de la base de datos Modelo Entidad-Relación una vez creada la base de datos en SQL Server 2008 4.3 Diagrama de flujo del desarrollo de una aplicación WEB 4.4 Hoja de estilo cascada en Dreamweaver CS5 4.5 Hoja de estilo cascada en Dreamweaver CS5 4.6 Código aspx.cs de plantilla maestra “Site Master” 4.7 Vista Diseño de la plantilla “Site Master” 4.8 Página de Inicio “default.aspx” 67 68 70 71 72 73 73 74 11 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31 4.32 4.33 Vista Diseño de la sección de Búsqueda de Residuos y Sustancias Vista Diseño de la sección de Ofertas y Demandas Vista Diseño de la Sección de Enlaces Vista Diseño de la Sección “Conócenos” Vista Diseño de la Sección Eventos y Noticias Vista Diseño de la Sección Inicio de Sesión Vista Diseño de la Sección Registro de Usuario Definición de atributos y tipos de datos de la tabla Usuarios Definición de atributos y tipos de datos de la tabla Formulario Código aspx.cs para realizar la conexión con la base de datos Exportación de los archivos para su posterior publicación Carpeta con los archivos exportados desde VS 2010 Ventana de programas y características del panel de control Ventana del Administrador del Servidor Ventana del Asistente para agregar funciones Proceso de selección de funciones del servidor Ventana del administrador de Servicios de Administración de Internet Página principal de Default WEB site Opciones de configuración al crear un sitio WEB Página principal del sitio WEB “TesisIntercambio” Vista contenido del Sitio WEB “TesisIntercambio” Sitio WEB visto en un navegador Grupos de aplicaciones Configuración básica del grupo de aplicaciones Sitio WEB visto correctamente en un navegador 75 76 77 78 79 80 81 82 83 83 85 85 86 87 88 89 90 91 92 93 94 95 96 97 98 12 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos GLOSARIO TÉCNICO .NET Framework Adobe Dreamweaver ADP ASLR ASP AWE Back-up Base de datos C# CAS CASE CBSE Cintas Magnéticas Cluster COTS CPU CPR CSS DDL Disco Duro DML DNSSEC FTP GB Hardware HTML HTTP HTTPS IBM IIS Internet Explorer iSCSI Componente de software que provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programación de aplicaciones, y administra la ejecución de los programas escritos específicamente con la plataforma. Aplicación en forma de estudio enfocada a la construcción y edición de sitios y aplicaciones WEB. Access Data Project. Address Space Load Randomization Active Server Pages Address Windowing Extensions Copia de seguridad Conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. Es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET Numero de identificador único para las sustancias químicas. Computer Aided Software Engineering. Component-based software Engineering. Medio de almacenamiento de información que se graba en pistas sobre una banda plástica con un material magnetizado. Conjuntos de computadoras construidos mediante la utilización de componentes de hardware comunes y que se comportan como si fuesen una única computadora. Commercial off-the-shelf Central Processing Unit Se refiere al Código de Peligrosidad de los Residuos. Cascading Style Sheets Data Definition Language Dispositivo de almacenamiento de datos no volátil que emplea un sistema de grabación magnética para almacenar datos digitales. Data Manipulation Language DNS Security Extensions File Transfer Protocol Gigabyte; Un GB igual a 1024MB. Corresponde a todas las partes físicas y tangibles de una computadora. HyperText Markup Language Hypertext Transfer Protocol Hypertext Transfer Protocol Secure International Business Machines Internet Information Services Es un navegador WEB desarrollado por Microsoft para el sistema operativo Microsoft Windows desde 1995 Internet Small Computer System Interface 13 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Iteración Se refiere a la acción de repetir una serie de pasos un cierto número de veces. JAVA Lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de los años 90 Javascript Lenguaje de scripting orientado a objetos, basado en prototipos, liviano, utilizado para acceder a objetos en aplicaciones. JDBC Java Database Connectivity LOB Line of Business Macromedia Es una aplicación en forma de estudio que trabaja sobre flash "fotogramas", destinado a la producción y entrega de contenido interactivo. MB Megabyte; un MB es igual a 1024KiloBytes. Microsoft Empresa multinacional dedicada al sector de la informática. Microsoft SQL Un sistema para la gestión de bases de datos producido Server por Microsoft basado en el modelo relacional. Microsoft Un entorno de desarrollo integrado (IDE) para sistemas Visual Studio operativos Windows. Modelo Modelo de datos basado en la lógica de predicados y en la teoría de Relacional conjuntos. modem Dispositivo que sirve para enviar una señal llamada moduladora mediante otra señal llamada portadora. Sistema de gestión de base de datos relacional, multiMySQL hilo y multiusuario. Netscape Netscape fue el primer navegador comercial. Navigator NNTP Network News Transport Protocol NTFS Sistema de archivos de Windows NT incluido en las versiones de Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista y Windows 7. OBDC Object Data Base Conector Oracle Sistema de gestión de base de datos relacional Perl Lenguaje de programación que toma características del lenguaje C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. PHP Hypertext Pre-processor. Lenguaje de PHP programación interpretado, diseñado originalmente para la creación de páginas WEB dinámicas. RAM Random-access memory RTM Release to manufacturing SGBD Sistema de gestión de base de datos SMB2 Server Message Block 2 SMTP Simple Mail Transfer Protocol software Comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas. SQL Lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. 14 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Super-Clave TB Tupla UDDI VBA Visual Basic W3c WEB WHEA Windows server www XML Conjunto de uno o más atributos que, tomados colectivamente, permiten identificar de forma única una entidad en el conjunto de entidades. TeraByte. Conjunto de elementos de distinto tipo que se guardan de forma consecutiva en memoria. Universal Description, Discovery and Integration Visual Basic for Applications El lenguaje de programación es un dialecto de BASIC, con importantes agregados. World Wide WEB Consortium World Wide WEB Windows Hardware Error Architecture Windows Server es una marca que abarca una línea de productos servidor de Microsoft Corporation. World Wide WEB Extensible Markup Language 15 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos ANTECEDENTES El diseño WEB original fue evolucionando y ha pasado por distintas generaciones, principalmente debido a mejoras en la tecnología, hardware y software. Estos cambios han generado a día de hoy 4 generaciones del diseño WEB. Primera generación de diseño WEB El primer diseño WEB de una página se realizó en 1993, la página WEB tenía el nombre Mosaic, y en menos de un año había recibido 2 millones de visitantes. El navegador WEB era capaz de mostrar tanto imágenes como textos, aunque con una limitación muy alta a la hora de diagramar la información de la página WEB. El diseño WEB de estas páginas era lineal y estaba orientado para científicos que eran los usuarios que compartían su información alrededor de todo el mundo mediante estas páginas WEB. La tecnología de los navegadores WEB era limitada y no disponía de la capacidad de transmitir información gráfica para la comunicación visual. Las principales características de esta primera generación de diseño WEB eran las velocidades de transmisión de datos, ya que era conexión vía MODEM, lo que limitaba el peso de las páginas WEB. Otro detalle era el uso de monitores monocromáticos. Respecto al diseño WEB en particular, la estructuración era bastante desordenada con imágenes dispuestas horizontalmente y líneas de texto separadoras. Debido a este caos en el diseño WEB, un año más tarde se estableció un consorcio para establecer unas normas y pautas para el futuro desarrollo de la WEB, el W3C. Se comenzaron entonces a desarrollar unos estándares de lenguaje HTML para una unificación del diseño WEB que trajo consigo la aparición de una serie de navegadores WEB con el constante desarrollo de nuevas funcionalidades y progresos en este ámbito. Segunda generación de diseño WEB El diseño WEB de esta generación está basado en los conceptos de la primera salvo por que empieza a utilizar iconos en lugar de algunas palabras, las páginas WEB comienzan a poseer imágenes de fondo, aparece el diseño y uso de botones con relieve para la navegabilidad, el uso de publicidad en lugar de cabeceras, la estructuración de texto de forma jerárquica mediante menús o listados, propiedades del código HTML Standard definido. La aparición de estos elementos gráficos en el diseño WEB generó un deseo de todos los diseñadores de añadir estos archivos en sus páginas WEB, pero sin control, lo que generó una saturación en las páginas WEB, sin tener en cuenta la accesibilidad ni la utilidad. Aun así seguían habiendo algunos diseñadores que utilizaban estos elementos de manera adecuada para generar unos diseños innovadores y elegantes, usando correctamente tanto etiquetas como el resto del código HTML. Se comenzaron 16 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos a usar tablas para la organización de los contenidos, posicionamiento de los elementos y generación de diseño similar a libros o revistas. En esta generación está la aparición de monitores y tarjetas gráficas con mayores resoluciones y definición de color, lo cual generó la consecuente mejora en la calidad del diseño WEB. Pero apareció un problema, la diferencia en la adaptación de estándares de los 2 principales navegadores: Internet Explorer y Netscape Navigator. Tercera Generación del diseño WEB En la tercera generación, el diseño WEB sigue teniendo muchas restricciones con el uso del lenguaje para los dos navegadores WEB. El diseño WEB se orienta en esta generación a los diseñadores, los cuales tienen mucho más dinamismo al aparecer el plug-in de Macromedia Flash, el cual revolucionaría la concepción de diseño WEB. Es una era de enfocar las páginas WEB según el objetivo de las mismas: vender productos o servicios, comunidades, información, noticias. Para esta especialización del diseño WEB de acuerdo al objetivo de las páginas se necesita ayudar al usuario a encontrar la información, generando una navegabilidad estructurada e intuitiva. La gran mayoría de páginas WEB que aparecen en esta generación son de publicidad y venta de productos y servicios, con lo que es este el diseño más utilizado. Conseguir acercarles al producto, que deseen ver más páginas del sitio WEB. Cuarta Generación de diseño WEB En la cuarta generación, el diseño WEB ya está enfocado totalmente a la multimedia, integrando en las páginas WEB los elementos multimedia de última generación. Con usuarios de todos los tipos, cualquiera tiene una página WEB a día de hoy y la variedad de diseño es enorme debido a todas las posibilidades que ofrecen las últimas tecnologías para los programadores. A esto le podemos añadir que las últimas versiones de los navegadores soportan muchas más prestaciones y elementos en las páginas WEB. Quinta Generación de diseño WEB Se podría añadir una última generación de diseño WEB que representaría el auge de las páginas de televisión IP o televisión online. La integración de televisión en la WEB para empresas, ayuntamientos o asociaciones representa el movimiento más notable del diseño WEB en la actualidad. Un ejemplo de empresas de diseño que ya ofrecen la posibilidad de integración de televisión en WEB es Hooping.net mediante su plataforma de televisión IP Hooping.tv. 17 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Concepto de bases de datos Las bases de datos son una herramienta de vital importancia para el desarrollo de la actividad profesional. Existen dos colectivos que a menudo son el mismo especialmente beneficiados por las bases de datos. Por una parte, los investigadores y, por otra, los profesionales. Se podría considerar como base de datos cualquier recopilación organizada de información sobre la que haya habido análisis documental y que disponga de un sistema de búsqueda específica. Partiendo de esta idea, se podrían incluir los catálogos bibliotecarios. Sin embargo, en este trabajo se ha optado por emplear como criterio el seleccionar sólo aquellas bases formadas principalmente por descripciones de documentos impresos o electrónicos de libre acceso procedentes de revistas y artículos en Ciencia de la Información. Historia de los sistemas de bases de datos El uso de sistemas de bases de datos automatizadas, se desarrolló a partir de la necesidad de almacenar grandes cantidades de datos, para su posterior consulta, producidas por las nuevas industrias que creaban gran cantidad de información. Herman Hollerit (1860-1929) fue denominado el primer ingeniero estadístico de la historia, ya que invento una computadora llamada “Máquina Automática Perforadora de Tarjetas. Para hacer el censo de Estados Unidos en 1880 se tardaron 7 años para obtener resultados, pero Herman Hollerit en 1884 creo la máquina perforadora, con la cual, en el censo de 1890 dio resultados en 2 años y medio, donde se podía obtener datos importantes como número de nacimientos, población infantil y número de familias. La máquina uso sistemas mecánicos para procesar la información de las tarjetas y para tabular los resultados. A diferencia con la máquina de Babbage, que utilizaba unas tarjetas similares, estas se centraban en dar instrucciones a la máquina. En el invento de Herman Hollerit, cada perforación en las tarjetas representaba un número y cada dos perforaciones una letra, cada tarjeta tenía capacidad para 80 variables. La máquina estaba compuesta por una perforadora automática y una lectora, la cual por medio de un sistema eléctrico leía los orificios de las tarjetas, esta tenía unas agujas que buscaban los orificios y al tocar el plano inferior de mercurio enviaba por medio del contacto eléctrico los datos a la unidad. Este invento disparo el desarrollo de la tecnología, la industria de los computadores, abriendo así nuevas perspectivas y posibilidades hacia el futuro. Historia de los sistemas de bases de datos-Década de 1950 En este lapso de tiempo se da origen a las cintas magnéticas, las cuales sirvieron para suplir las necesidades de información de las nuevas industrias. Por medio de este mecanismo se empezó a automatizar la información de las nóminas, como por 18 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos ejemplo el aumento de salario. Consistía en leer una cinta o más y pasar los datos a otra, y también se podían pasar desde las tarjetas perforadas. Simulando un sistema de Back-up, que consiste en hacer una copia de seguridad o copia de respaldo, para guardar en un medio extraíble la información importante. La nueva cinta a la que se transfiere la información pasa a ser una cinta maestra. Estas cintas solo se podían leer secuencial y de manera ordenada. Historia de los sistemas de bases de datos-Década de 1960 El uso de los discos en ese momento fue un adelanto muy efectivo, ya que por medio de este soporte se podía consultar la información directamente, esto ayudo a ahorrar tiempo. No era necesario saber exactamente donde estaban los datos en los discos, ya que en milisegundos era recuperable la información. A diferencia de las cintas magnéticas, ya no era necesaria una secuencia, y este tipo de soporte empiezo a ser ambiguo. Los discos dieron inicio a las Bases de Datos, de red y jerárquicas, pues los programadores con su habilidad de manipulación de estructuras junto con las ventajas de los discos era posible guardar estructuras de datos como listas y árboles. Historia de los sistemas de bases de datos-Década de 1970 Edgar Frank Codd (23 de agosto de 1923 – 18 de abril de 2003), en un artículo "Un modelo relacional de datos para grandes bancos de datos compartidos" ("A Relational Model of Data for Large Shared Data Banks") en 1970, definió el modelo relacional y publicó una serie de reglas para la evaluación de administradores de sistemas de datos (DBSM) relacionales y así nacieron las bases de datos relacionales. A partir de los aportes de Codd el multimillonario Larry Ellison desarrollo la base de datos Oracle, el cual es un sistema de administración de base de datos, que se destaca por sus transacciones, estabilidad, escalabilidad y multiplataforma. Inicialmente no se usó el modelo relacional debido a que tenía inconvenientes por el rendimiento, ya que no podían ser competitivas con las bases de datos jerárquicas y de red. Ésta tendencia cambio por un proyecto de IBM el cual desarrolló técnicas para la construcción de un sistema de bases de datos relacionales eficientes, llamado System R. Historia de los sistemas de bases de datos-Década de 1980 Las bases de datos relacionales con su sistema de tablas, filas y columnas, pudieron competir con las bases de datos jerárquicas y de red, ya que su nivel de programación era bajo y su uso muy sencillo. En la década de 1980 a 1990 el modelo relacional ha conseguido posicionarse del mercado de las bases de datos. Y también en este tiempo se iniciaron grandes investigaciones paralelas y distribuidas, como las bases de datos orientadas a objetos. 19 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Historia de los sistemas de bases de datos-Principios década de los 90 Para el manejo de bases de datos se creó el lenguaje SQL, que es un lenguaje programado para consultas. SQL es un lenguaje de alto nivel estructurado que analiza grandes cantidades de información el cual permite especificar diversos tipos de operaciones frente a la misma información, a diferencia de las bases de datos de los 80 que eran diseñadas para las aplicaciones de procesamiento de transacciones. Los grandes distribuidores de bases de datos incursionaron con la venta de bases de datos orientada a objetos. Historia de los sistemas de bases de datos-Finales de la década de los 90 El boom de esta década fue la aparición de la WWW “Word Wide WEB‿ ya que por éste medio se facilitaba la consulta a las bases de datos. Actualmente tienen una amplia capacidad de almacenamiento de información, también una de las ventajas es el servicio de siete días a la semana las veinticuatro horas del día, sin interrupciones a menos que haya planificaciones de mantenimiento de las plataformas o el software. Historia de los sistemas de bases de datos-Siglo XXI En la actualidad existe gran cantidad de alternativas en línea que permiten hacer búsquedas orientadas a necesidades específicas de los usuarios, una de las tendencias más amplias son las bases de datos que cumplan con el protocolo Open Archives Initiative – Protocol for Metadata Harvesting (OAI-PMH) los cuales permiten el almacenamiento de gran cantidad de artículos que permiten un mayor acceso en el ámbito científico y general. En el capítulo 1 se explicará más a fondo acerca de los modelos de bases de datos y su modo de funcionar. 20 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos ESTADO DEL ARTE El manejo y desecho correcto de sustancias y residuos químicos es un tema ampliamente debatido y concurrido entre organizaciones que se dedican a la industria química o que tienen que ver en algún aspecto con ella como lo son las Instituciones Educativas Públicas y Privadas que entre sus grandes laboratorios y la enorme cantidad de estudiantes y docentes que las frecuentan. El problema principal radica en que en muchos lugares se manejan grandes cantidades de químicos los cuales en muchas ocasiones quedan guardados en almacenes durante mucho tiempo y finalmente terminan siendo tirados a la basura. En el mejor de los casos, este tipo de sustancias se utilizan para un proceso simple o para un objeto educativo y finalmente terminan siendo descartadas de manera impropia y sin categorizarse ni haber registro de ello. En este caso, se podría pensar que existen métodos para aprovechar al máximo el uso de estas sustancias, así como sistemas que se dedican de manera independiente a ello, pero no es así. En los mejores casos, existen instituciones que se dedican al correcto manejo correcto de las sustancias, pero todas estas terminan sin ser utilizadas normalmente, y no existe una re-ubicación de estas para que sean aprovechados en otros lugares. Por lo mismo, las Instituciones Educativas son una excelente opción para iniciar este proceso. En México no existe como tal un sistema que permita el intercambio de sustancias y residuos químicos hasta la fecha. Por lo menos no que esté documentado y que sea fácil acceder a él de manera pública. Algunas instituciones educativas grandes como la UNAM, el ITESM, el IPN o la UAM contratan empresas que se encargan de desechar los residuos de manera apropiada, pero intercambios incluso entre sus propias unidades académicas son procesos espontáneos y que probablemente no tienen algún registro oficial en un sistema dedicado. Es raro pensar que en países desarrollados como Estados Unidos de América o en algunas regiones de Europa no existan sistemas como el que se quiere aplicar hoy en día, sin embargo, al realizar la investigación no logramos encontrar algún sistema o aplicación WEB dedicado única y exclusivamente al intercambio de sustancias y residuos químicos tanto de manera interna (en una misma institución) como de manera abierta. Sin embargo, en Latinoamérica existe la Bolsa de Residuos y Subproductos Industriales (BORSI), la cual representa un sistema de intercambio similar al que se quiere realizar, pero enfocado principalmente a residuos industriales. BORSI está ubicado en Costa Rica, Colombia y Ecuador, ofreciendo distintos servicios de Bolsa y Mercado de productos industriales en distintas ciudades de cada país. 21 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Por más raro que parezca, la BORSI tiene presencia en áreas donde son necesarias y no en países primer-mundistas y realiza un trabajo bastante completo en su área correspondiente ofreciendo una solución interesante para las industrias. Por último, cabe recalcar que existe una empresa llamada Quiminet, la cual tiene su oficina matriz en México D.F pero se extiende a países como Estados Unidos, Canadá, España, regiones de Centroamérica, el Caribe y el Resto del mundo, así como tiene oficinas en la región del Mercosur y la región Andina en Sur-América. Quiminet ofrece la facilidad de realizar solicitudes y ofertas de un sinfín de productos de origen químico, como lo son: Empaques, envases y embalajes Plásticos Industria Alimenticia Minería Industria Farmacéutica Pinturas Transporte y Logística Eléctrica Textil Naturista Como puede observarse, Quiminet se encarga de ofrecer un sistema de búsqueda en un rango mucho más amplio y no es dedicada a las sustancias y residuos químicos, por lo que no existe competencia directa con la aplicación que se quiere realizar. Se menciona finalmente porque es la opción más parecida a esta en la región de Norte América y específicamente en México. 22 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos CAPÍTULO 1 1.1. Bases de datos Un sistema gestor de bases de datos (SGBD) se conforma de una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos. La colección de datos, normalmente se les denomina base de datos, contienen información relevante. El objetivo principal de un SGBD es proporcionar una forma de almacenar y recuperar la información de una base de datos de manera que sea práctica como eficiente. Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de información. La administración de los datos significa la definición de estructuras para almacenar la información como la provisión de herramientas para la manipulación de la información. Además, los sistemas de bases de datos deben proporcionar fiabilidad en la información almacenada, a pesar de las fallas del sistema o los intentos de acceso no autorizados. Si los datos van a ser compartidos entre varios usuarios, el sistema debe evitar posibles resultados anómalos. Dado que la información es muy importante en la mayoría de las organizaciones, los científicos informáticos han desarrollado un amplio conjunto de conceptos y técnicas para la gestión de los datos. 1.2. Aplicaciones de los sistemas de bases de datos Las bases de datos son ampliamente usadas en diferentes áreas. Las siguientes son algunas de sus aplicaciones más representativas y comunes en la actualidad: Bancos. Para almacenar la información de los clientes, cuentas, préstamos, y transacciones bancarias. Aéreo líneas. Para reservaciones e información de planificación. Las líneas aéreas fueron de los primeros en usar las bases de datos de forma distribuida geográficamente (los terminales situados en todo el mundo accedían al sistema de bases de datos centralizado a través de las líneas telefónicas y otras redes de datos). Universidades. Para la información de los estudiantes, calificaciones, matriculas de las asignaturas y cursos. Tarjetas de crédito. Para compras con tarjeta de crédito y generación mensual de estados de cuentas. Telecomunicaciones. Para guardar un registro de las llamadas realizadas, generación mensual de facturas y para almacenar información sobre las redes de comunicaciones. Finanzas. Para almacenar información sobre grandes empresas, ventas y compras de documentos formales financieros, como bolsa y bonos. 23 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Ventas. Para información de clientes, productos y compras. Producción. Para la gestión de la cadena de producción y para el seguimiento de la producción de elementos en las factorías, inventario en almacenes y pedidos de elementos. Recursos humanos. Para información sobre los empleados, salarios, impuestos, beneficios, y para la generación de las nóminas. Las bases de datos forman una parte esencial de casi todas las empresas actuales. A lo largo de las últimas cuatro décadas del siglo veinte, el uso de las bases de datos se extendió en empresas de todo tipo de giros comerciales. El acceso a internet para las masas a finales de la década de 1990 aumento significativamente el acceso directo del usuario a las bases de datos. Las organizaciones convirtieron muchas de sus interfaces telefónicas a las bases de datos en interfaces WEB, y pusieron disponibles en línea muchos servicios. Así, aunque las interfaces WEB ocultan el acceso a las bases de datos, y la mayoría de la gente ni siquiera se da cuenta de que están interactuando con una base de datos, el acceso a las bases de datos forma una parte esencial de las actividades de casi todas las personas actualmente. 1.3. Modelos de los datos Bajo la estructura de la base de datos se encuentra el modelo de datos: una colección de herramientas conceptuales para describir los datos, las relaciones, la semántica y restricciones de consistencia. Los diferentes modelos de datos que se han propuesto se clasifican en tres grupos diferentes: modelos lógicos basados en objetos, modelos lógicos basados en registros y modelos físicos. 1.3.1 Modelo entidad-relación El modelo de datos de entidad-relación (E-R) está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados entidades, y de relaciones entre estos objetos. Una entidad es una “cosa” u “objeto” en el mundo real que es distinguible de otros objetos. Las entidades se describen en una base de datos mediante un conjunto de atributos. Los atributos son cualidades o características de las entidades. Por ejemplo, los atributos numero-cuenta y saldo describen una cuenta particular de un banco y pueden ser atributos del conjunto de entidades cuenta. Una relación es una asociación entre una o varias entidades. Por ejemplo, una relación impositor asocia un cliente con cada cuenta que tiene. La estructura lógica general de una base de datos se puede expresar gráficamente mediante un diagrama E-R, que consta de los siguientes componentes: 24 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Rectángulos, que representan los conjuntos de entidades. Elipses, que representan atributos. Rombos, que representan relaciones entre conjuntos de entidades. Líneas, que unen los atributos con los conjuntos de entidades y los conjuntos de entidades con las relaciones. Figura 1.1. Ejemplo de diagrama Entidad-Relación. Elaboración propia sobre la base de Silberschatz, Korth y Sudarshan, Fundamentos de bases de datos. 1.3.2 Modelo relacional En el modelo relacional se utiliza un grupo de tablas para representar los datos y relaciones entre ellos. Cada tabla está compuesta por varias columnas, y cada columna tiene un nombre único e irrepetible. El modelo relacional es un modelo basado en registros. Los modelos basados en registros se denominan así porque la base de datos se estructura en registros de formato fijo de varios tipos. Cada tabla contiene registros que pueden ser de varios tipos. Cada tipo de registro define un número fijo de campos, o atributos. Las columnas de la tabla corresponden a los atributos del registro. El modelo de datos relacional es el modelo de datos más usado, y una amplia mayoría de sistemas de bases de datos actuales se basan en el modelo relacional. Los diseños de bases de datos a menudo se realizan en el modelo E-R, y después se traducen al modelo relacional por la facilidad que esto conlleva en el diseño de las bases de datos. 25 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 1.3.3 Otros modelos de datos El modelo de datos orientado a objetos es otro modelo de datos que está recibiendo una atención creciente. El modelo orientado a objetos se puede observar como una extensión del modelo E-R con las nociones de encapsulación, métodos (funciones) e identidad de objeto, muy típico en la programación orientada a objetos. El modelo de datos relacional orientado a objetos combina las características del modelo de datos orientado a objetos y el modelo de datos relacional. Los modelos de datos semi-estructurados permiten la especificación de datos donde los elementos de datos individuales del mismo tipo pueden tener diferentes conjuntos de atributos. A diferencia de los modelos de datos mencionados anteriormente, en los que cada elemento de datos de un tipo particular debe tener el mismo conjunto de atributos. Históricamente, existen otros dos modelos de datos, el modelo de datos de red y el modelo de datos jerárquico, ambos precedieron al modelo de datos relacional. Estos modelos estuvieron ligados fuertemente a la implementación subyacente y complicaban la tarea del modelado de datos. Como resultado se usan muy poco actualmente, excepto en el código de bases de datos antiguo que aún está en servicio en algunos lugares. 1.4. Lenguajes de bases de datos Un sistema de bases de datos proporciona un lenguaje de definición de datos para especificar el esquema de la base de datos y un lenguaje de manipulación de datos para expresar las consultas a la base de datos y modificaciones. En la práctica, los lenguajes de definición y manipulación de datos no son dos lenguajes separados; en su lugar simplemente forman parte de un único lenguaje de bases de datos, tal como SQL Server de Microsoft. 1.4.1 Lenguaje de definición de datos Un esquema de base de datos se especifica mediante un conjunto de definiciones expresadas mediante un lenguaje especial llamado lenguaje de definición de datos (LDD). Se define el almacenamiento y los métodos de acceso usados por el sistema de bases de datos por un conjunto de instrucciones en un tipo especial de LDD denominado lenguaje de almacenamiento y definición de datos. Estas instrucciones definen los detalles de implementación de los esquemas de base de datos, que se ocultan usualmente a los usuarios. Los valores de los datos almacenados en la base de datos deben satisfacer ciertas restricciones de consistencias. El LDD proporciona facilidades para especificar 26 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos tales restricciones. Los sistemas de base de datos comprueban estas restricciones cada vez que se actualiza la base de datos. 1.4.2 Lenguaje de manipulación de datos La manipulación de datos cumple las siguientes tareas: La recuperación de información almacenada en la base de datos. La inserción de información nueva en la base de datos. El borrado de información de la base de datos. La modificación de información almacenada en la base de datos. Reporte de parámetros y propiedades de la base de datos. Un lenguaje de manipulación de datos (LMD) es un lenguaje que permite a los usuarios acceder y/o manipular los datos organizados mediante el modelo de datos apropiado. Hay dos tipos de LMD básicamente: LMDs procedimentales. Requieren que el usuario especifique que datos se necesitan y como obtener esos datos. LMDs declarativos (también conocidos como LMDs no procedimentales). Requieren que el usuario especifique que datos se necesitan sin especificar como obtener esos datos. Los LMDs declarativos son más fáciles de aprender y usar que los LMDs procedimentales. Sin embargo, como el usuario no especifica cómo conseguir los datos, el sistema de bases de datos tiene que determinar un medio eficiente de acceder a los datos. El componente LMD del lenguaje SQL es no procedimental. 1.5. Estructura de un sistema de bases de datos Un sistema de base de datos se divide en módulos que se encargan de cada una de las funciones del sistema completo. Los componentes funcionales de un sistema de base de datos se pueden dividir a grandes rasgos en los componentes de administrador de almacenamiento y procesador de consultas. El administrador de consultas es importante porque las bases de datos requieren normalmente una gran cantidad de espacio de almacenamiento. Las bases de datos corporativas tienen un tamaño de cientos de gigabytes y, para la mayores bases de datos, terabytes. Debido a que la memoria RAM de las computadoras no puede almacenar esta gran cantidad de información, esta se almacena en discos duros. Los datos se trasladan entre los discos duros de almacenamiento y la memoria RAM cuando es necesario. Como la transferencia de datos desde el disco duro es lenta comparada con la velocidad de la unidad central de procesamiento, es fundamental que el sistema de base de datos los datos para minimizar la necesidad de movimiento de datos entre el disco duro y la memoria RAM. 27 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos El procesador de consultas es importante porque ayuda al sistema de base de datos a simplificar y facilitar el acceso a los datos. Las vistas de alto nivel ayudan a conseguir este objetivo. Es trabajo del sistema de base de datos el traducir las actualizaciones y las consultas escritas en un lenguaje no procedimental, en el nivel lógico, en una secuencia de operaciones en el nivel físico. 1.5.1 Gestor de almacenamiento Un gestor de almacenamiento es un módulo de programa que proporciona la interfaz entre los datos de bajo nivel en la base de datos, los programas de aplicación y consultas emitidas al sistema. Es también responsable de la interacción con el gestor de archivos. Los datos en bruto se almacenan en disco duro usando un sistema de archivos, que está disponible habitualmente en un sistema operativo convencional. Los componentes del gestor de almacenamiento incluyen los siguientes elementos : Gestor de Autorización e integridad, comprueba que se satisfagan las restricciones de integridad y la autorización de los usuarios para acceder a los datos. Gestor de transacciones, asegura que la base de datos quede en un estado consistente (correcto) a pesar de los fallos del sistema, y que las ejecuciones de transacciones concurrentes ocurran sin conflictos. Gestor de Archivos, gestiona la reserva de espacio de almacenamiento de disco y las estructuras de datos usadas para representar la información almacenada en disco. Gestor de memoria intermedia, responsable de traer los datos del disco duro a la memoria RAM y decidir qué datos almacenar en memoria caché. El gestor de memoria intermedia es una parte crítica del sistema de bases de datos, ya que permite que la base de datos maneje tamaños de datos que son mucho mayores que el tamaño de la memoria RAM instalada. El Gestor de almacenamiento implementa varias estructuras de datos como parte de la implementación física del sistema: 1.5.2 Archivos de Datos, almacena la base de datos en sí. Diccionario de datos, almacena metadatos acerca de la estructura de la base de datos, en particular, el esquema de la base de datos. Índices, proporcionan acceso rápido a elementos de datos que tienen valores particulares. Procesador de consultas Los componentes del procesador de consultas incluyen: Intérprete del LDD, interpreta las instrucciones del LDD y registra las definiciones en el diccionario de datos. 28 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Compilador del LMD, traduce las instrucciones del LMD en un lenguaje de consultas a un plan de evaluación que consiste en instrucciones de bajo nivel que entiende el motor de evaluación de consultas. Motor de evaluación de consultas, ejecuta las instrucciones de bajo nivel generadas por el compilador LMD. Figura 1.2. Estructura del sistema. (Silberschatz, Korth y Sudarshan, 2002) 1.6. Arquitectura de Aplicaciones La mayoría de usuarios de un sistema de bases de datos no se encuentran físicamente junto al sistema de bases de datos, sino que se conectan a él a través de una red. Se puede definir entonces las máquinas cliente, en donde trabajan los usuarios 29 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos remotos de la base de datos, y las máquinas servidor, en las que se ejecuta el sistema de bases de datos. Las aplicaciones de bases de datos se dividen usualmente en dos o tres partes, como se ilustra en la figura 1.3. En una arquitectura de dos capas, la aplicación se divide en un componente que reside en la máquina cliente, que llama a la función del sistema de bases de datos en la máquina servidor mediante instrucciones del lenguaje de consultas. Los estándares de interfaces de programas de aplicación como OBDC y JDBC se usan para la interacción entre el cliente y el servidor. Figura 1.3. Arquitectura de 2 y 3 capas. Elaboración propia sobre la base de Silberschatz, Korth y Sudarshan, Fundamentos de bases de datos. En cambio, en una arquitectura de tres capas, la máquina cliente actúa simplemente como interfaz y no contiene ninguna llamada directa a la base de datos. En su lugar, el cliente se comunica con un servidor de aplicaciones, usualmente mediante una interfaz de formularios. El servidor de aplicaciones, a su vez, se comunica con el sistema de bases de datos para acceder a los datos. La lógica de negocio de la aplicación, que establece las acciones a realizar bajo determinadas condiciones, se incorpora en el servidor de aplicaciones, en lugar de ser distribuida a múltiples usuarios. Las aplicaciones de tres capas son más apropiadas para grandes aplicaciones, y para las aplicaciones que se ejecutan en World Wide WEB. 30 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 1.7. SQL El lenguaje Sequel ha evolucionado desde los principios de la década de los 70s y su nombre ha pasado a ser SQL (Structured Query Language; Lenguaje estructurado de consultas). El lenguaje SQL tiene varios componentes: Lenguaje de definición de datos (LDD). El LDD de SQL proporciona órdenes para la definición de esquemas de relación, borrado de relaciones, creación de índices y modificación de esquemas de relación. Lenguaje interactivo de manipulación de datos (LMD). El LMD de SQL incluye un lenguaje de consultas, basado tanto en el álgebra relacional como en el cálculo relacional de tuplas. Incluye también órdenes para insertar, borrar y modificar tuplas de la base de datos. Definición de vistas. El LDD de SQL incluye órdenes para la definición de vistas. Control de transacciones. SQL incluye órdenes para la especificación del comienzo y final de transacciones. SQL incorporado y SQL dinámico. SQL dinámico e incorporado define cómo se pueden incorporar las instrucciones SQL en lenguajes de programación de propósito general, tales como C, C++, Java. Integridad. El LDD de SQL incluye órdenes para la especificación de las restricciones de integridad que deben satisfacer los datos almacenados en la base de datos. Las actualizaciones que violen las restricciones de integridad se rechazan. Autorización. El LDD de SQL incluye órdenes para especificar derechos de acceso para las relaciones y vistas. 1.7.1 Estructura básica de SQL Una base de datos relacional consiste en un conjunto de relaciones, a cada una de las cuales se le asigna un nombre único. Cada relación tiene una estructura similar. SQL permite el uso de valores nulos para indicar que el valor o bien es desconocido, o no existe. Se fijan criterios que permiten al usuario especificar a qué atributos no se puede asignar el valor nulo. La estructura básica de una expresión SQL consiste en tres cláusulas: select, from y where. La cláusula select corresponde a la operación proyección del álgebra relacional. Se usa para listar los atributos deseados del resultado de una consulta. La cláusula from corresponde a la operación producto cartesiano del álgebra relacional. Lista las relaciones que deben ser analizadas en la evaluación de la expresión. 31 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos La cláusula where corresponde al predicado selección del álgebra relacional. Es un predicado que engloba a los atributos de las relaciones que aparecen en la cláusula from. 1.8 Windows Server 2008 Windows Server 2008 es el nombre de un sistema operativo diseñado para servidores de Microsoft. Es el sucesor de Windows Server 2003, distribuido al público casi cinco años antes. Al igual que Windows Vista, Windows Server 2008 se basa en el núcleo Windows NT 6.0. Posteriormente se lanzó una segunda versión, denominada Windows Server 2008 R2. 1.8.1 Características Hay algunas diferencias con respecto a la arquitectura del nuevo Windows Server 2008, que pueden cambiar drásticamente la manera en que se usa este sistema operativo. Estos cambios afectan a la manera en que se gestiona el sistema hasta el punto de que se puede llegar a controlar el hardware de forma más efectiva, se puede controlar mucho mejor de forma remota y cambiar de forma radical la política de seguridad. Entre las mejoras que se incluyen, están: Nuevo proceso de reparación de sistemas NTFS: proceso en segundo plano que repara los archivos dañados. Creación de sesiones de usuario en paralelo: reduce tiempos de espera en los Terminal Services y en la creación de sesiones de usuario a gran escala. Cierre adecuado de Servicios. Sistema de archivos SMB2: de 30 a 40 veces más rápido el acceso a los servidores multimedia. Address Space Load Randomization (ASLR): protección contra malware en la carga de controladores en memoria. Windows Hardware Error Architecture (WHEA): protocolo mejorado y estandarizado de reporte de errores. Virtualización de Windows Server: mejoras en el rendimiento de la virtualización. PowerShell: inclusión de una consola mejorada con soporte GUI para administración. Server Core: el núcleo del sistema se ha renovado con muchas y nuevas mejoras. 1.8.2 Ediciones La mayoría de las ediciones de Windows Server 2008 están disponibles en 64 bits y x86 (32 bits). Windows Server 2008 para sistemas basados en Itanium soporta procesadores IA-64. La versión IA-64 se ha optimizado para escenarios con altas cargas de trabajo como servidores de bases de datos y aplicaciones de línea de 32 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos negocios (LOB). Por ende no está optimizado para su uso como servidor de archivos o servidor de medios. Windows Server 2008 está disponible en distintas ediciones, similar a Windows Server 2003. Server Core está disponible en las ediciones WEB, Standard, Enterprise y Datacenter, aunque no es posible usarla en la edición Itanium. Server Core es simplemente una opción de instalación alterna soportada y en sí no es una edición propiamente dicha. 1.9 Internet Information Services (IIS) Internet Information Services o IIS es un servidor WEB y un conjunto de servicios para el sistema operativo Microsoft Windows. Los servicios que ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS. Este servicio convierte a una PC en un servidor WEB para Internet o una intranet, es decir que en las computadoras que tienen este servicio instalado se pueden publicar páginas WEB tanto local como remotamente. Los servicios de Internet Information Services proporcionan las herramientas y funciones necesarias para administrar de forma sencilla un servidor WEB seguro. El servidor WEB se basa en varios módulos que le dan capacidad para procesar distintos tipos de páginas. Por ejemplo, Microsoft incluye los de Active Server Pages (ASP) y ASP.NET. También pueden ser incluidos los de otros fabricantes, como PHP o Perl. 1.9.1 Windows Server 2008 y IIS Windows Server 2008 proporciona los servicios de Internet Information Server (IIS) 7.0 que permiten incorporar en una empresa las siguientes tecnologías de Internet: Un servidor de aplicaciones WEB (no solo de documentos WEB) que permite utilizar diferentes mecanismos de autenticación de usuarios remotos, ejecutar CGI (Common Gateway Interface) y filtros ISAPI (Internet Server Application Programming Interface), aplicaciones .NET, etc. Conjuntamente con ASP.NET, es una plataforma completa para ofrecer servicios WEB basados en estándares como XML (Extensible Markup Languaje) y SOAP (Simple Object Access Protocol). También es posible instalar un servidor UDDI (Universal Description, Discovery and Integration) para disponer de un servicio de directorio de servicios WEB. Para crear dichas aplicaciones se ha de disponer de herramientas de diseño, como Microsoft WEB Expression, o lenguajes como XHTML 33 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos (eXtensible HyperText Markup Language), Javascript, CSS (Cascading Style Sheets), etc. Un servidor FTP que permite la transferencia de archivos desde y hacia cualquier ordenador conectado a la red. Herramientas de administración que proporcionan la infraestructura para administrar un servidor WEB que ejecuta ISS 7 (como la Consola de Administración de IIS). Si desea administrar un servidor SMTP o un servidor FTP, deberá instalar y usar la Consola de Administración de ISS 6. 34 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 1.10 Conclusiones del capítulo Debido a que el uso de las bases de datos está implícito en un sinfín de acciones que realizamos en nuestras actividades diarias, incluso sin darnos cuenta de ello. Es por eso que es de gran importancia saber las principales aplicaciones que se le pueden dar a las bases de datos. Las bases de datos pueden tener arquitecturas de 2 capas o 3 capas, en una arquitectura de 2 capas la máquina del cliente tiene interacción directa con el sistema de bases de datos. Mientras que en una arquitectura de 3 capas la máquina del cliente se debe conectar con un servidor de aplicaciones y este a su vez con el sistema de bases de datos. La arquitectura de 3 capas es la más usada en las aplicaciones. Actualmente el modelo más utilizado por las bases de datos es el modelo relacional debido a su simplicidad comparado con otros modelos que facilita la tarea a los programadores. Una práctica común es hacer el diseño de la base de datos en el modelo entidad-relación y posteriormente traducirlo al modelo relacional. Por otro lado, el lenguaje SQL nos permite realizar operaciones en una base de datos como búsquedas, borrado, inserción y actualización de los registros por medio de una sintaxis sencilla. En el área de los sistemas operativos (SO) orientados a servidores, se analizó que estos contienen características y funciones que difícilmente se podrán encontrar en sistemas operativos orientados a usuarios domésticos, entre estas funciones exclusivas de los SO para servidores se encuentra el soporte a múltiples procesadores, soporte a grandes cantidades de memoria RAM, servidores DNS, protocolo DHCP, servidores WEB, servidores FTP, entre otras características. Los sistemas operativos Windows tienen su versión para servidores, siendo la más reciente el Windows Server 2008 R2. En los últimos sistemas operativos Windows para servidores o para usuarios domésticos se integra la función “Servicios de información de internet”, conocido como IIS, el cual nos permite convertir a una PC en un servidor WEB para Internet o una intranet. 35 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos CAPÍTULO 2.1 2 Procesos del software El proceso del software es un “conjunto de actividades que conducen a la creación de un producto software. Estas actividades pueden consistir en el desarrollo de software desde cero en un lenguaje de programación estándar como Java o C” (Sommerville 2008). Sin embargo, cada vez más, se desarrolla nuevo software ampliando y modificando los sistemas existentes y configurando e integrando software comercial o componentes del sistema. Los procesos de software son complejos, intelectuales y creativos, y por ende dependen de las personas que toman juicios y decisiones. Debido a la necesidad de juzgar y crear, los intentos para automatizar estos procesos han tenido un éxito limitado. Las herramientas de ingeniería del software asistida por computadora (CASE) pueden ayudar a algunas actividades del proceso, pero no existe posibilidad alguna de una automatización mayor en el diseño creativo del software realizado con el proceso del software. La principal razón por la cual las herramientas CASE y su eficacia están limitadas se haya en la inmensa diversidad de procesos del software ya que no existe un proceso ideal, y muchas organizaciones han desarrollado su propio enfoque para el desarrollo del software. Los procesos han evolucionado para explotar las capacidades de las personas de una organización, así como las características específicas de los sistemas que se están desarrollando. Para algunos sistemas, como los sistemas críticos, se requiere un proceso de desarrollo muy estructurado. Para sistemas de negocio, con requerimientos rápidamente cambiantes, un proceso flexible y ágil probablemente sea más efectivo. Aun existiendo muchos procesos del software, las siguientes actividades fundamentales son comunes para todos ellos: 1. Especificación del software. Se debe definir la función del software y las restricciones en su operación. 2. Diseño e implementación del software. Se debe producir software que cumpla su especificación. 3. Validación del software. Se debe validar el software para asegurar que hace lo que el cliente desea. 4. Evolución del software. El software debe evolucionar para cubrir las necesidades cambiantes del cliente. “Aunque no existe un proceso del software ideal, en las organizaciones existen enfoques para mejorarlos. Los procesos pueden incluir técnicas anticuadas o no aprovecharse de las mejores prácticas en la ingeniería del software industrial. De 36 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos hecho, muchas organizaciones aún no aprovechan los métodos de la ingeniería del software en el desarrollo de su software” (Somerville 2008). Cabe mencionar que los procesos del software se pueden mejorar por la estandarización del proceso donde la diversidad de los procesos del software en una organización sea reducida. Esto puede conducir a mejorar la comunicación, reducir el tiempo de formación, y hace al proceso automatizado más económico. La estandarización también es un primer paso importante para introducir nuevos métodos y técnicas de ingeniería del software. 2.2 Modelos del proceso del software Ian Somerville dice que: “Un modelo de procesos del software es una representación abstracta de un proceso del software. Cada modelo de proceso representa un proceso desde una perspectiva particular, y así proporciona sólo información parcial sobre ese proceso”. Los modelos del proceso del software no son descripciones definitivas de los procesos del software. Más bien, son “abstracciones de los procesos que se pueden utilizar para explicar diferentes enfoques para el desarrollo de software. Puede pensarse en ellos como marcos de trabajo del proceso que pueden ser extendidos y adaptados para crear procesos más específicos de ingeniería del software (Sommerville 2008). Los modelos de procesos que se incluyen son: 1. El modelo/enfoque en cascada. Considera las actividades fundamentales del proceso de especificación, desarrollo, validación y evolución, y los representa como fases separadas del proceso, tales como la especificación de requerimientos, el diseño del software, la implementación, las pruebas, etcétera. 2. Desarrollo evolutivo o iterativo. Este enfoque entrelaza las actividades de especificación, desarrollo y validación. Un sistema inicial se desarrolla rápidamente a partir de especificaciones abstractas. Este se refina basándose en las peticiones del cliente para producir un sistema que satisfaga sus necesidades. 3. Ingeniería del software basada en componentes (CBSE). Este enfoque se basa en la existencia de un número significativo de componentes reutilizables. El proceso de desarrollo del sistema se enfoca en integrar estos componentes en el sistema más que en desarrollarlos desde cero. Estos tres modelos de procesos del software se utilizan ampliamente en la práctica de la ingeniería del software actual. A menudo se utilizan juntos, especialmente para el desarrollo de sistemas grandes. Los subsistemas dentro de un sistema más grande pueden ser desarrollados utilizando enfoques diferentes. Por lo tanto, aunque es conveniente estudiar estos modelos separadamente, debe entenderse que en la práctica a menudo se combinan. 37 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Durante los años se han propuesto todo tipo de variantes de estos procesos genéricos. La variante más importante es probablemente el desarrollo formal de sistemas, donde se crea un modelo formal matemático de un sistema. Este modelo se transforma utilizando transformaciones matemáticas que preservan su consistencia, en código ejecutable. Sin embargo, fuera de ciertos ámbitos especializados, los procesos basados en transformaciones formales no se utilizan en general ya que requieren una pericia especializada y, para la mayoría de los sistemas este proceso no ofrece ventajas importantes de coste o calidad sobre otros enfoques para el desarrollo de sistemas. 2.2.1 El modelo en cascada El primer modelo de proceso de desarrollo de software que se publicó se derivó de procesos de ingeniería de sistemas más generales (Royce, 1970). Este modelo se muestra en la Figura 2.1. Debido a la cascada de una fase a otra, dicho modelo se conoce como modelo en cascada o como ciclo de vida del software. Las principales etapas de este modelo se transforman en actividades fundamentales de desarrollo: 1. 2. 3. 4. 5. Análisis y definición de requerimientos. Diseño del sistema y del software. Implementación y prueba de unidades. Integración y prueba del sistema. Funcionamiento y mantenimiento. Fig. 2.1. Ciclo de Vida del Software. Elaboración propia sobre la base de Ian Sommerville, Ingeniería del Software, 7ª Edición. 38 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos En principio, el resultado de cada fase es uno o más documentos aprobados. La siguiente fase no debe empezar hasta que la fase previa haya finalizado. En la práctica, estas etapas se superponen y proporcionan información a las otras. Durante el diseño se identifican los problemas con los requerimientos; durante el diseño del código se encuentran problemas, y así sucesivamente. Debido a los costos de producción y aprobación de documentos, las iteraciones son costosas e implican rehacer el trabajo. Por lo tanto, después de un número reducido de iteraciones, es normal congelar partes del desarrollo, como la especificación, y continuar con las siguientes etapas de desarrollo. Los problemas se posponen para su resolución, se pasan por alto o se programan. Este congelamiento prematuro de requerimientos puede implicar que el sistema no haga lo que los usuarios desean. También puede conducir a sistemas mal estructurados debido a que los problemas de diseño se resuelven mediante trucos de implementación. Por último, durante la fase final del ciclo de vida, el software se pone en funcionamiento. De aquí se descubren errores y omisiones en los requerimientos originales del software. Los errores de programación y de diseño emergen y se identifica la necesidad de una nueva funcionalidad. Por lo tanto, el sistema debe evolucionar para mantenerse útil. La desventaja es que hacer estos cambios puede implicar repetir etapas previas del proceso. Las ventajas del modelo en cascada son que la documentación se produce en cada fase y que éste cuadra con otros modelos del proceso de ingeniería. Su principal problema es su inflexibilidad al dividir el proyecto en distintas etapas. Se deben hacer compromisos en las etapas iniciales, lo que hace difícil responder a los cambios en los requerimientos del cliente. Por lo tanto, el modelo en cascada sólo se debe utilizar cuando los requerimientos se comprendan bien y sea improbable que cambien radicalmente durante el desarrollo del sistema. Sin embargo, el modelo refleja el tipo de modelo de proceso usado en otros proyectos de la ingeniería. Por consiguiente, los procesos del software que se basan en este enfoque se siguen utilizando para el desarrollo de software, particularmente cuando éste es parte de proyectos grandes de ingeniería de sistemas (Sommerville 2008). 2.2.2 Desarrollo Evolutivo El desarrollo evolutivo se basa en la “idea de desarrollar una implementación inicial, exponiéndola a los comentarios del usuario y refinándola a través de las diferentes versiones hasta que se desarrolla un sistema adecuado” (Sommerville 2008) como se muestra en la Figura 2.2. Las actividades de especificación, desarrollo y validación se entrelazan en vez de separarse, con una rápida retroalimentación entre éstas. 39 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 2.2. Desarrollo Evolutivo. Elaboración propia sobre la base de Ian Sommerville, Ingeniería de Software 7ª Edición. Existen dos tipos de desarrollo evolutivo: 1. Desarrollo exploratorio, donde el objetivo del proceso es trabajar con el cliente para explorar sus requerimientos y entregar un sistema final. El desarrollo empieza con las partes del sistema que se comprenden mejor. El sistema evoluciona agregando nuevos atributos propuestos por el cliente. 2. Prototipos desechables, donde el objetivo del proceso de desarrollo evolutivo es comprender los requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos para el sistema. El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo. En la producción de sistemas, un enfoque evolutivo para el desarrollo de software suele ser más efectivo que el enfoque en cascada, ya que satisface las necesidades inmediatas de los clientes. La ventaja de este proceso del software es que la especificación se puede desarrollar de forma creciente. Tan pronto como los usuarios desarrollen un mejor entendimiento de su problema, éste se puede reflejar en el sistema software. Sin embargo, desde una perspectiva de ingeniería y de gestión, el enfoque evolutivo tiene dos problemas: 1. El proceso no es visible. Los administradores tienen que hacer entregas regulares para medir el progreso. Si los sistemas se desarrollan rápidamente, no es rentable producir documentos que reflejen cada versión del sistema. 2. A menudo los sistemas tienen una estructura deficiente. Los cambios continuos tienden a corromper la estructura del software. Incorporar cambios en él se convierte cada vez más en una tarea difícil y costosa. 40 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Para sistemas pequeños y de tamaño medio (hasta 500.000 líneas de código), el enfoque evolutivo de desarrollo es el mejor. Los problemas del desarrollo evolutivo se hacen particularmente agudos para sistemas grandes y complejos con un periodo de vida largo, donde diferentes equipos desarrollan distintas partes del sistema. 2.2.3 Ingeniería del software basada en componentes En la mayoría de los proyectos de software existe algo de reutilización de software. Por lo general, esto sucede informalmente cuando las personas que trabajan en el proyecto conocen diseños o código similares al requerido. Los buscan, los modifican y los incorporan en el sistema. En el enfoque evolutivo, la reutilización es a menudo indispensable para el desarrollo rápido de sistemas (Sommerville 2008). La reutilización informal es independiente del proceso de desarrollo que se utilice. Sin embargo, en los últimos años, ha surgido un enfoque de desarrollo de software denominado ingeniería del software basada en componentes (CBSE) que se basa en la reutilización, el cual se está utilizando de forma amplia. De acuerdo a Ian Somerville, las etapas intermedias en el proceso orientado a la reutilización son diferentes. Estas etapas son: 1. Análisis de componentes. Dada la especificación de requerimientos, se buscan los componentes para implementar esta especificación. Por lo general, no existe una concordancia exacta y los componentes que se utilizan sólo proporcionan parte de la función requerida. 2. Modificación de requerimientos. En esta etapa, los requerimientos se analizan utilizando información acerca de los componentes que se han descubierto. Entonces, estos componentes se modifican para reflejar los componentes disponibles. Si las modificaciones no son posibles, la actividad de análisis de componentes se puede llevar a cabo nuevamente para buscar soluciones alternativas. 3. Diseño del sistema con reutilización. En esta fase se diseña o se reutiliza un marco de trabajo para el sistema. Los diseñadores tienen en cuenta los componentes que se reutilizan y organizan el marco de trabajo para que los satisfaga. Si los componentes reutilizables no están disponibles, se puede tener que diseñar nuevo software. 4. Desarrollo e integración. Para crear el sistema, el software que no se puede adquirir externamente se desarrolla, y los componentes y los sistemas COTS se integran. En este modelo, la integración de sistemas es parte del proceso de desarrollo, más que una actividad separada. La ingeniería del software basada en componentes tiene la ventaja obvia de reducir la cantidad de software a desarrollarse y así reduce los costos y los riesgos. Por lo general, también permite una entrega más rápida del software. Sin embargo, los 41 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos compromisos en los requerimientos son inevitables, y esto puede dar lugar a un sistema que no cumpla las necesidades reales de los usuarios. Más aún: si las nuevas versiones de los componentes reutilizables no están bajo el control de la organización que los utiliza, se pierde parte del control sobre la evolución del sistema. La CBSE tiene mucho en común con un enfoque que está surgiendo para el desarrollo de sistemas que se basa en la integración de servicios WEB de una serie de proveedores. Figura 2.3. Ingeniería de Software basada en componentes (CBSE). Elaboración propia sobre la base de Ian Sommerville, Ingeniería de Software 7ª Edición. 2.3 Iteración de procesos Los cambios son inevitables en todos los proyectos de software grandes. Los requerimientos del sistema cambian cuando el negocio que procura el sistema responde a las presiones externas. Cuando se dispone de nuevas tecnologías, cambian los diseños y la implementación. Esto significa que el proceso del software no es un proceso único; más bien, las actividades del proceso se repiten regularmente conforme el sistema se rehace en respuesta a peticiones de cambios (Sommerville 2008). El desarrollo iterativo es fundamental para el software. Se describen dos modelos de procesos que han sido diseñados explícitamente para apoyar la iteración de procesos: 1. Entrega incremental. La especificación, el diseño y la implementación del software se dividen en una serie de incrementos, los cuales se desarrollan por turnos; 2. Desarrollo en espiral. El desarrollo del sistema gira en espiral hacia fuera, empezando con un esbozo inicial y terminando con el desarrollo final del mismo. La esencia de los procesos iterativos es que la especificación se desarrolla junto con el software. Sin embargo, esto crea conflictos con el modelo de obtención de muchas organizaciones donde la especificación completa del sistema es parte del contrato de desarrollo del mismo. 42 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 2.3.1 Entrega Incremental El modelo de desarrollo en cascada “requiere que los clientes de un sistema cumplan un conjunto de requerimientos antes de que se inicie el diseño y que el diseñador cumpla estrategias particulares de diseño antes de la implementación” (Sommerville 2008). Los cambios de requerimientos implican rehacer el trabajo de captura de éstos, de diseño e implementación. Sin embargo, la separación en el diseño y la implementación deben dar lugar a sistemas bien documentados susceptibles de cambio. En comparación con el enfoque de desarrollo evolutivo permite que los requerimientos y las decisiones de diseño se retrasen, pero también origina un software que puede estar débilmente estructurado y difícil de comprender y mantener. La entrega incremental (figura 2.4) es un enfoque intermedio que combina las ventajas de ambos modelos. En un proceso de desarrollo incremental. Los clientes identifican, a grandes rasgos, los servicios que proporcionará el sistema. Identifican qué servicios son más importantes y cuáles menos. Entonces, se definen varios incrementos en donde cada uno proporciona un subconjunto de la funcionalidad del sistema. La asignación de servicios a los incrementos depende de la prioridad del servicio con los servicios de prioridad más alta entregados primero (Somerville 2008). Figura 2.4. Entrega Incremental. Elaboración propia sobre la base de Ian Sommerville, Ingeniería de Software 7ª Edición. Cuando los incrementos del sistema han sido identificados, los requerimientos para los servicios que se van a entregar en el primer incremento se definen, y éste se desarrolla. Durante el desarrollo, se puede llevar a cabo un análisis adicional de requerimientos para los requerimientos posteriores, pero no se aceptan cambios en los requerimientos para el incremento actual. Una vez que un incremento se completa y entrega, los clientes pueden ponerlo en servicio. Pueden experimentar con el sistema, lo cual les ayuda a clarificar sus requerimientos para los incrementos posteriores y para las últimas versiones del incremento actual. Tan pronto como se completan los nuevos incrementos, se integran en los existentes de tal forma que la funcionalidad del sistema mejora con cada incremento. Los servicios comunes se pueden implementar al inicio del proceso o de forma incremental tan pronto como sean requeridos (Sommerville 2008). 43 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Este proceso de desarrollo incremental tiene las siguientes ventajas: 1. Los clientes no tienen que esperar hasta que el sistema completo se entregue para sacar provecho de él. El primer incremento satisface los requerimientos más críticos de tal forma que pueden utilizar el software inmediatamente. 2. Los clientes pueden utilizar los incrementos iniciales como prototipos y obtener experiencia sobre los requerimientos de los incrementos posteriores del sistema. 3. Existe un bajo riesgo de un fallo total del proyecto. Aunque se pueden encontrar problemas en algunos incrementos, lo normal es que el sistema se entregue de forma satisfactoria al cliente. 4. Puesto que los servicios de más alta prioridad se entregan primero, y los incrementos posteriores se integran en ellos, es inevitable que los servicios más importantes del sistema sean a los que se les hagan más pruebas. Esto significa que es menos probable que los clientes encuentren fallos de funcionamiento del software en las partes más importantes del sistema. Existen algunos “problemas” en el desarrollo incremental. Los incrementos deben ser relativamente pequeños (no más de 20.000 líneas de código) y cada uno debe entregar alguna funcionalidad del sistema. Más aún, muchos de los sistemas requieren un conjunto de recursos que se utilizan en diferentes partes del sistema. Dado que los requerimientos no se definen en detalle hasta que un incremento se implementa, puede ser difícil identificar los recursos comunes que requieren todos los incrementos. Se ha desarrollado una variante de este enfoque incremental denominada programación extrema (Beck, 2000). Ésta se basa en el desarrollo y la entrega de incrementos de funcionalidad muy pequeños, en la participación del cliente en el proceso, en la mejora constante del código y en la programación por parejas. 2.3.2. Desarrollo en espiral El modelo en espiral del proceso del software (figura 2.5) fue originalmente propuesto por Boehm (1988). En vez de representar el proceso del software como una secuencia de actividades con retrospectiva de una actividad a otra, se representa como una espiral y cada ciclo en la espiral representa una fase del proceso del software. Así el ciclo más interno podría referirse a la viabilidad del sistema, el siguiente ciclo a la definición de requerimientos, el siguiente ciclo al diseño del sistema, y así sucesivamente. Ian Sommerville menciona que cada ciclo de la espiral se divide en cuatro sectores: 1. Definición de objetivos. Para esta fase del proyecto se definen los objetivos específicos. Se identifican las restricciones del proceso y el producto, y se traza un plan detallado de gestión. Se identifican los riesgos del proyecto. Dependiendo de estos riesgos, se planean estrategias alternativas. 44 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 2. Evaluación y reducción de riesgos. Se lleva a cabo un análisis detallado para cada uno de los riesgos del proyecto identificados. Se definen los pasos para reducir dichos riesgo. Por ejemplo, si existe el riesgo de tener requerimientos inapropiados, se puede desarrollar un prototipo del sistema. 3. Desarrollo y validación. Después de la evaluación de riesgos, se elige un modelo para el desarrollo del sistema. Por ejemplo, si los riesgos en la interfaz de usuario son dominantes, un modelo de desarrollo apropiado podría ser la construcción de prototipos evolutivos. Si los riesgos de seguridad son la principal consideración, un desarrollo basado en transformaciones formales podría ser el más apropiado, y así sucesivamente. El modelo en cascada puede ser el más apropiado para el desarrollo si el mayor riesgo identificado es la integración de los subsistemas. 4. Planificación. El proyecto se revisa y se toma la decisión de si se debe continuar con un ciclo posterior de la espiral. Si se decide continuar, se desarrollan los planes para la siguiente fase del proyecto. Figura 2.5. Modelo en espiral de Boehm para el proceso de Software (IEEE, 1988). La diferencia principal entre el modelo en espiral y los otros modelos del proceso del software es la consideración explícita del riesgo en el modelo en espiral. Informalmente, el riesgo significa sencillamente algo que puede ir mal. Por ejemplo, si la 45 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos intención es utilizar un nuevo lenguaje de programación, un riesgo es que los compiladores disponibles sean poco fiables o que no produzcan código objeto suficientemente eficiente. Los riesgos originan problemas en el proyecto, como los de confección de agendas y excesos en los costos; por lo tanto, la disminución de riesgos es una actividad muy importante en la gestión del proyecto (Somerville 2008). Un ciclo de la espiral empieza con la elaboración de objetivos, como el rendimiento y la función. Entonces se enumeran formas alternativas de alcanzar estos objetivos y las restricciones impuestas en cada una de ellas. Cada alternativa se evalúa contra cada objetivo y se identifican las fuentes de riesgo del proyecto. El siguiente paso es resolver estos riesgos mediante actividades de recopilación de información como la de detallar más el análisis, la construcción de prototipos y la simulación. Una vez que se han evaluado los riesgos, se lleva a cabo cierto desarrollo seguido de una actividad de planificación para la siguiente fase del proceso (Sommerville 2008). 46 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 2.4 Conclusiones del capítulo Los procesos de Ingeniería de Software nos guían hacia una mejor creación de una aplicación o servicio. Los procesos del software consisten tanto en el desarrollo desde cero de los lenguajes de programación, y posteriormente ampliando y modificando los sistemas existentes. Todo proceso del software es completo y depende completamente de las decisiones que tomen las personas que lo desarrollan, ya que no existe una automatización general en el diseño del proceso del software. Los modelos de software son representaciones abstractas de los procesos y los representan particularmente desde distintas perspectivas. De igual forma, estos modelos no son definitivos, sino que simplemente se pueden utilizar para explicar distintos enfoques para el desarrollo del software, así como pueden ser flexibles y adaptables para crear procesos específicos. Todo software tiene cambios a lo largo de su ciclo de vida, y requieren actualizarse para que su utilidad no se vea reducida rápidamente. Las iteraciones de procesos cambian de acuerdo a la gestión, actividades y necesidades del usuario, por lo que existen 2 tipos de iteraciones de procesos: entrega incremental y desarrollo en espiral. El Desarrollo en espiral representa el desarrollo del software en distintas fases divididos en 4 sectores: Definición de Objetivos, Evaluación y Reducción de Riesgos, Desarrollo y Validación y por último la planificación, y en forma de espiral se repiten las fases para ir optimizando y actualizando el software para alargar su ciclo de vida, por lo cual será el modelo de proceso a utilizar en el desarrollo de nuestra aplicación. Este modelo además considera siempre el factor de riesgo para minimizar los problemas que pueden aparecer durante el desarrollo del software, por lo cual se puede considerar como una alternativa bastante segura. Cabe recalcar que el modelo en espiral de Boehm simplemente será una base a seguir, pero no estaremos limitados a ella, ya que como se ha explicado, no existe proceso del software 100% confiable y elegible para una aplicación en específico. Por lo cual siempre habrá cierta especificación y una modificación o combinación de distintos modelos para el desarrollo del software de acuerdo a las necesidades de los desarrolladores. 47 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos CAPÍTULO 3 Análisis de Condiciones Actuales 3.1 Identificación del Problema Los laboratorios que realizan procesos químicos en todo el mundo requieren una enorme cantidad de sustancias químicas. Por la naturaleza de los experimentos que realizan con las sustancias químicas quedan remanentes de las mismas que ya no se pueden utilizar para otros experimentos. Esta situación genera varios problemas, entre estos el almacenamiento indefinido de substancias y gastos por manejo de materiales peligrosos, entre otros tantos problemas. El Instituto Politécnico Nacional cuenta con veinticinco unidades donde se imparte educación superior y once unidades de estudios de investigación en donde se imparten postgrados, en las cuales no existe una política de desecho de sustancias químicas y de residuos, mucho menos existe un control sobre estas. En muchas ocasiones se tienen sustancias químicas almacenadas en un laboratorio que podrían ser utilizadas en otro laboratorio de las escuelas del Instituto Politécnico Nacional. Esta problemática fue identificada por un docente y un grupo de alumnos de la Unidad Profesional Interdisciplinaria de Biotecnología (UPIBI) del Instituto Politécnico Nacional. Ellos han sido quienes han propuesto este proyecto interdisciplinario para dar solución a un problema al cual no se le ha dado la importancia que merece. 3.2 Propuesta General de Solución El docente y grupo de alumnos de la Unidad Profesional Interdisciplinaria de Biotecnología (UPIBI) del Instituto Politécnico Nacional han propuesto el desarrollo de un sitio WEB basándose en los sitios BORSI y Quiminet. Al momento de sernos planteada esta idea, se propuso que fuese una aplicación WEB, ya que este podría interactuar directamente con una base de datos (idea principal) y por las razones que se explican a continuación. Las ventajas que ofrece una aplicación WEB son las siguientes: Ahorro de tiempo: Se pueden realizar tareas sencillas sin necesidad de descargar ni instalar ningún programa. No existen problemas de compatibilidad: Basta tener un navegador actualizado para poder utilizarlas. No ocupan espacio en los discos duros. 48 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Actualizaciones inmediatas: Como el software lo gestiona el propio desarrollador, cuando se conecta a la aplicación se está usando siempre la última versión que se haya lanzado. Consumo bajo de recursos: Dado que toda (o gran parte) de la aplicación no se encuentra en la PC del cliente, muchas de las tareas que realiza el software no consumen recursos de la PC del cliente porque se realizan desde otro PC remoto. Multiplataforma: Se pueden usar desde cualquier sistema operativo porque sólo es necesario tener un navegador WEB. Portable: Es independiente de la PC donde se utilice (un PC de sobremesa o un portátil) porque se accede a través de una página WEB. La disponibilidad suele ser alta porque el servicio se ofrece desde múltiples localizaciones para asegurar la continuidad del mismo. Los virus no dañan los datos porque éstos están guardados en el servidor de la aplicación. Colaboración: Gracias a que el acceso al servicio se realiza desde una única ubicación es sencillo el acceso y compartición de datos por parte de varios usuarios. Las desventajas que tiene una aplicación WEB son las siguientes: Depende de una conexión a Internet permanente (generalmente) y una conexión promedio para una óptima navegación. La seguridad de los datos, depende de la seguridad de la aplicación WEB y del servidor donde se encuentre alojada la aplicación WEB. Se tiene limitado el espacio para guardar la información por cada usuario. Poco soporte para varios idiomas. Depende mucho de la configuración de la privacidad del navegador para trabajar al 100% (Javascript, Cookies, Flash). La estabilidad de la aplicación está sujeta al número de visitas en un mismo lapso de tiempo, puede existir sobre carga en el servidor. 49 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos En este caso, las ventajas representan una utilidad mayor y de más importancia que las desventajas de una aplicación WEB. Debido a que sería muy complicado instalar un programa en cada una de las máquinas desde donde se quiera acceder a esta aplicación y mantener actualizados a los docentes, la aplicación WEB tiene una mayor accesibilidad y una rápida penetración entre los usuarios a los que va dirigida. Ya que se pretende utilizar la herramienta de intercambio de sustancias químicas y residuos a nivel institucional, significa que habrá un gran número de usuarios y se piensa que lo más conveniente es una aplicación WEB alojada en un servidor del Instituto Politécnico Nacional para ser utilizada únicamente dentro de las instalaciones del Instituto. Esto también aumentaría el grado de seguridad de la aplicación al no ser expuesta al público en general, lo cual garantiza una mayor seguridad en los datos y una conexión permanente para quienes la utilicen dentro del instituto. 50 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 3.3 Diseño Preliminar a Detalle En base a las necesidades encontradas en la identificación del problema se nos ha proporcionado el diseño preliminar de la aplicación WEB que estará basada en la tecnología ASP.NET. Esta es la plantilla general de la aplicación de intercambio de sustancias y residuos químicos. Figura 3.1. Diseño preliminar de la página de inicio. La página de Inicio muestra una presentación con una breve descripción del proyecto y un menú para navegar. En las siguientes imágenes se detalla cada una de las operaciones que se pueden realizar en la aplicación WEB. A continuación se detalla la sección de búsqueda de residuos y sustancias. 51 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 3.2. Diseño preliminar de la sección de búsqueda. Al momento de realizar la búsqueda se mostrarían los resultados en enlistados de la siguiente manera: Figura 3.3. Diseño preliminar de los resultados de la búsqueda. 52 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Una vez dando clic en los detalles del residuo o sustancia debe aparecer la información de la sustancia o residuo de la siguiente manera. Figura 3.4. Diseño preliminar de la sección de Oferta/Demanda. Si se desea ofertar o demandar un reactivo aparece el formulario de los datos personales. Sin embargo, si el usuario está registrado y ha iniciado sesión los datos aparecerían por default pero con la opción de modificarlos. 53 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 3.5. Diseño preliminar del proceso de oferta/demanda. Una vez enviados los datos aparece un mensaje de notificación al usuario para hacerle saber que los datos han sido enviados correctamente. En caso de que no haya resultados obtenidos en la búsqueda aparece el siguiente mensaje. 54 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 3.6. Diseño preliminar al no existir resultados encontrados. El siguiente formulario corresponde al inicio de sesión de los usuarios. Figura 3.7. Diseño preliminar del Inicio de sesión. 55 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Se pide que se ingresen los datos del usuario en caso de que sea la primera vez que entra a la aplicación WEB. En caso de que ya se encuentre registrado solo se pedirá el email y contraseña para iniciar sesión. Figura 3.8. Diseño preliminar de la etapa de registro de usuarios. 56 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos El siguiente formulario aparece al momento de iniciar el proceso de demanda u oferta. Figura 3.9. Diseño preliminar del ingreso de una oferta/demanda. Una vez llenados los campos del formulario se da una confirmación al usuario. 57 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 3.10. Diseño preliminar de la confirmación de nueva Oferta/demanda. Al momento de cerrar sesión. Se debe regresar automáticamente a la página de inicio después de unos segundos. Figura 3.11. Diseño preliminar del Cierre de sesión. 58 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Si se desean actualizar los datos de usuario, se tendrá un formulario como el mostrado en la imagen. Figura 3.12. Diseño preliminar de la Actualización de datos. Las demás secciones (eventos, enlaces, asesorías y noticias) de la aplicación WEB son secciones que no realizaran operaciones en la base de datos. Simplemente son secciones de carácter informativo para mostrar noticias, información o eventos las cuales no requieren una base de datos. 59 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 3.13. Diseño preliminar de la sección de eventos. Figura 3.14. Diseño preliminar de la sección de enlaces. 60 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 3.15. Diseño preliminar de la sección de Asesoría. Figura 3.16. Diseño preliminar de la sección de noticias. 61 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 3.4 Facilidades y Dificultades previas al desarrollo de la Solución Al realizar un sistema de información para realizar una aplicación WEB se deben tomar varios puntos a considerar, muchos de los cuales generan bastantes complicaciones a la hora de realizar el análisis para el diseño del sitio y las bases de datos. Una de las dificultades más grandes previas al desarrollo de sistema es la correcta especificación de las entidades y sus propiedades. Debido a que se está hablando de un sistema de sustancias y residuos químicos, existen varios puntos a considerar. Las sustancias tienen que seguir una terminología que marcan los estándares internacionales para ser denominadas. En conjunto con la Unidad Académica UPIBI y el departamento de Comité Ambiental del IPN se definieron las normas que seguir, así como se hizo una cierta definición de parámetros como el tipo de manejo de sustancias, su grado de riesgo y su estado actual. La siguiente dificultad era identificar bien las necesidades de los usuarios y la interfaz con la cual se iba a trabajar por medio de la aplicación WEB. Se tuvieron varias sesiones definiendo cada una de las páginas del sitio, así como sus descripciones y elementos para que cualquier usuario por muy nuevo que sea (en el caso de los docentes e investigadores, hay algunos que no tienen mucho acercamiento con la tecnología) puedan utilizarlo de manera amigable. Entre otros aspectos, se tiene pensado que el ciclo de vida de esta aplicación sea de aproximadamente 5 años, pero el primer ciclo (prueba) será de 1-2 años. Para que el intercambio de sustancias y residuos químicos se dé de manera exitosa, se debe definir a nivel administrativo un sistema de jerarquías para realizar los procesos de validación entre cada proceso de intercambio por parte del sistema de control escolar o jefes de laboratorio de cada Unidad Académica, así como se debe definir los perfiles de cada uno de los responsables de los laboratorios, pero esto por el momento queda fuera de los alcances de este proyecto. Cada sustancia química tiene una denominación química y un código de identificación única (CAS). La lista de los CAS existentes para meterlos en una base de datos es enorme, y asciende a varios miles, por lo cual el realizar una base de datos de manera inicial no sería rentable tampoco. Un último problema es el correcto nombramiento de las sustancias que se reporten para oferta y/o demanda. Ya que una persona puede poner agua, en vez de óxido de hidrógeno, y algunas pueden diferenciar entre mayúsculas y minúsculas, así como abreviaciones, sería complicado realizar búsquedas confiables teniendo varios nombres definidos, por lo cual también se buscará la manera de ir perfeccionando este tipo de detalles. Pasando al apartado de facilidades, primero que nada hay que mencionar que no se tienen limitantes a la hora de elegir una plataforma de trabajo y lenguaje de programación como en muchas empresas. Es decir, que podemos elegir cualquier tipo de software y plataformas, así como el administrador de base de datos (DBMS) sin 62 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos tener conflictos con el departamento de comité ambiental o con las demás unidades académicas. Gracias a esto, podemos ahorrar tiempo utilizando las herramientas que ya conocemos y no tener que aprender a utilizar otros lenguajes y sus respectivos entornos de desarrollo (IDEs). Otra facilidad es que contamos con contacto directo con las personas que se encargaron de la identificación del problema y propuesta inicial de solución. Gracias a esto, podemos organizar juntas cada 7 o 4 días para ir viendo las mejoras y optimización del software, y a medida que se va desarrollando, se pueden ir viendo algunas otras notas y necesidades, siempre conservando un tiempo límite de optimización y no quedar perdidos en una mejora continua sin llegar a las pruebas e instalación del sistema. 63 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 3.5 Conclusiones del capítulo Una vez realizados los análisis de las condiciones actuales, así como una obtención concreta del problema y el planteamiento general de solución, se pudieron analizar las facilidades y dificultades que se tienen al realizar este proyecto. A partir del diseño previo que nos fue facilitado inicialmente y posteriormente optimizado en conjunto con el departamento de comité ambiental y nosotros, podemos empezar a realizar el diseño de la página WEB aún sin funcionalidades, y empezar a realizar la especificación y diseño de las entidades y propiedades de las bases de datos para posteriormente darle funcionalidad y empezar a realizar las pruebas. De igual manera podemos concluir que una vez instalada la aplicación WEB, tendrá un tiempo de vida de 1-2 años en los cuales se deberá utilizar como prueba piloto y se deberán mejorar y optimizar todos los aspectos que salgan en este periodo, para finalmente poder hacerlo accesible a todas las unidades académicas del IPN. 64 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos CAPÍTULO 4 Desarrollo Técnico 4.1 Diferencias entre lenguajes para el desarrollo de Aplicaciones WEB ASP.NET Estrictamente no es un lenguaje de programación sino una arquitectura de desarrollo WEB en la que se pueden usar distintos lenguajes (por ejemplo VB.NET o C# para ASP.NET o VBScript/JScript para ASP). ASP es muy similar en sintaxis e interface a la programación en Visual Basic. Esto es debido a que Visual Basic esta correlacionado con los productos Microsoft y sus programas. ASP necesita de un servidor con plataforma basada en Windows. Además, se necesita tener instalado IIS (Internet Information Services) para que funcione el sitio WEB. Se debe adquirir la licencia de estos dos componentes para que ASP funcione. PHP PHP significa Hyper-text Preprocessor, usa como base C/C++ y su sintaxis son muy similares entre sí. Debido a que una gran cantidad de programadores aun utilizan C++ es por ello que PHP es muy popular. Al utilizar PHP la mayoría de las herramientas asociadas con el programa son de código abierto así que no se necesita pagar por ellas. PHP requiere de un servidor Linux o Unix, el cual se puede adquirir sin costo. También puede correr en Windows y Solaris. JSP JSP (Java Server Pages) sigue la filosofía de la arquitectura JAVA de "escribe una vez ejecuta donde quieras". Así, JSP se puede ejecutar en los sistemas operativos y servidores WEB más populares, como por ejemplo Apache, Netscape o Microsoft IIS. La tecnología JSP usa Java como lenguaje de Script. Java es un lenguaje más potente y escalable que los lenguajes de Script. Las páginas JSP son compilados en Servlets por lo que actúan como una puerta a todos los servicios Java de Servidor y librerías Java para aplicaciones http. Tanto JSP como la mayoría de las herramientas asociadas con el programa son de código abierto así que no es necesario pagar por ellas. Debido a que la tecnología JSP es abierta y multiplataforma, los servidores WEB, plataformas y otros componentes 65 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos pueden ser fácilmente actualizados o cambiados sin que afecte a las aplicaciones basadas en la tecnología JSP. PERL Perl toma características del lenguaje C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script. Python Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible. Se trata de un lenguaje de programación multi paradigma ya que soporta orientación a objetos, programación imperativa y en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y es multiplataforma. 4.2 Elección de Lenguajes/Plataformas para el Desarrollo de Aplicaciones WEB Una vez teniendo conocimiento de los distintos lenguajes de programación para aplicaciones WEB se debe escoger un lenguaje para desarrollar nuestra aplicación WEB. Hemos escogido usar ASP.NET con C#, esto es debido a que nos encontramos muy familiarizados con el IDE Visual Studio 2010 y el lenguaje C#. Esto se debe al constante uso que hemos hecho de ellos en materias de la especialidad de computación de la ingeniería en comunicaciones y electrónica. El usar un lenguaje en el cual se tiene experiencia previa, como lo es C#, y usar un IDE ya conocido nos permite ahorrar tiempo tanto en investigaciones como en aprendizaje y uso del mismo y así poder empezar a desarrollar la aplicación WEB de manera casi inmediata. Por otro lado al decidir usar ASP.NET nos vemos obligados a usar únicamente IIS para alojar nuestra aplicación WEB y un sistema operativo Windows que soporte IIS. De esto concluimos que el servidor tiene que ser estrictamente plataforma Windows con soporte ASP.net en su framework. 66 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 4.3 Análisis y Diseño de modelos Entidad-Relación Al momento de realizar las tablas para la base de datos se deben definir las entidades y atributos de cada una de estas, así como su relación (en caso de existir) con otras tablas en la base de datos. Figura 4.1. Modelo Entidad-Relación previo al desarrollo de la Base de Datos. 67 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos En nuestro caso, las entidades primarias son: “aspnet_Users” y “aspnet_Sustancias”. En la tabla “aspnet_users” se guarda los atributos de ID de aplicación (que en este caso es el mismo siempre), así como el nombre de usuario, alias y atributos de la última vez que se conectó a la base de datos. A partir de este registro, se genera una ID codificada llamada “UserID” la cual es llave primaria y servirá para relacionarse posteriormente con las demás entidades. A partir de esa ID, se generan las tablas “aspnet_Membership” y “User_Data”. La primera contiene el “UserID” (relacionado) y guarda la contraseña, el email en mayúsculas y minúsculas, y la pregunta y respuesta secreta para recuperar la contraseña en caso de haberla olvidado. La contraseña así como la respuesta de la pregunta secreta están codificadas de tal manera que no se puede ver su valor fácilmente con solo realizar una búsqueda. La tabla “User_Data” contiene la información restante del usuario, como lo son su ocupación, unidad académica, extensión, teléfono y demás. Esta de igual manera está relacionada con el “UserId”. Del campo de Unidad Académica, se desprende otra tabla llamada de igual manera, que contiene todos los nombres de los centros de investigación y unidades académicas (ej. UPIBI, ESIME, ESCOM, UPIITA, etc.), las cuales el usuario podrá escoger al momento de llenar su formulario para evitar distintos nombres y formas de escribir cada una de estas. La tabla “aspnet_sustancias” contiene los atributos de las sustancias y residuos químicos como lo son el nombre, cantidad, tipo de residuo, estado, y observaciones. Esta de igual manera está relacionada con el “UserId”. En esta tabla no existen campos primarios ya que pueden existir varias ofertas del mismo residuo o sustancia química con los mismos atributos en distintas unidades académicas o en distintos tiempos. Del atributo CAS se deriva otra tabla que contiene los números de identificación única (CAS) de las sustancias, los cuales no se pueden repetir, y el usuario podrá seleccionar a la hora de realizar una acción de oferta y/o demanda. Cabe resultar que se pide la unidad académica para que al momento de realizar una búsqueda de ofertas y/o demandas, se pueda saber el origen de la acción y posteriormente relacionarse con el usuario que realizó dicha acción. 68 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 4.4 Análisis y Diseño de la Estructura del Sitio WEB (Mapa del Sitio) Tomando como base el diseño preliminar que nos ha otorgado el docente y grupos de alumnos de la UPIBI es que se ha creado el mapa del sitio. El cual puede ser modificado durante la etapa de desarrollo de la aplicación WEB si fuese así requerido para brindar una mejor funcionalidad a los usuarios de dicha aplicación. Mapa de Sitio: Mercado de Residuos y Sustancias Químicas o Inicio o Inicio de sesión o Registro o Búsqueda de residuos y sustancias o Ofertas/demandas o Eventos y noticias o Capacitan a generadores de residuos peligrosos o Seis estados concentran residuos tóxicos o Señala nuevas normas la SCT para traslado y manejo de envases o En Armenia se llevará la cumbre mundial en manejo de rellenos sanitarios o Enlaces o Asesoría o Conócenos Más adelante, en caso de ser necesario pueden ser agregadas más páginas a la aplicación, si es que el proyecto llegara a crecer dentro de unos años, ya que podría manejar también una base de datos de inventarios de unidades académicas y centros de investigación del IPN, o del manejo de otro tipo de materiales (electrónicos por ejemplo) y no solo limitado a químicos. 69 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 4.5 Desarrollo Después de la identificación del problema y planteamiento de solución, la siguiente fase es el desarrollo de la aplicación WEB, el cual principalmente se divide en 3 partes: Diseño de la Hoja de Estilo (CSS) en Adobe Dreamweaver CS5 Creación y Diseño de la plantilla principal (Maestra) en Visual Studio 2010 Desarrollo de la Aplicación WEB en Visual Studio 2010 con ASP.Net Creación de Bases de Datos y ligamiento a la Aplicación Instalación de Servidor WEB en Windows Server 2008 con IIS Figura 4.3. Diagrama de Flujo del Desarrollo de una Aplicación WEB. Dentro de este capítulo, se explicará de manera amplia pero sin entrar tanto en detalles técnicos, los pasos que se utilizaron para el desarrollo de la aplicación WEB, así como los inconvenientes y facilidades que se fueron encontrando dentro del proceso. 70 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 4.5.1 Diseño de la Hoja de Estilo (CSS) en Adobe Dreamweaver CS5 El primer paso es realizar el diseño de la plantilla de la página WEB. Para esto, utilizamos la aplicación Dreamweaver CS5 de la suite de Adobe, la cual por su amplia extensión y optimización para desarrollo de sitios WEB, es la que más facilidades ofrece al momento de realizar la programación. Se realizará una Hoja Estilo Cascada (CSS) la cual servirá como plantilla principal para todo el sitio WEB. Esto es mucho más eficiente que realizar y copiar el diseño principal en cada una de las páginas WEB que se tengan que elaborar. Primeramente, se plantean los formatos de tamaño de página, tipo y tamaño de letra, los estilos de cabecera y pié de página, y los colores principales como el fondo y la base del sitio. Posteriormente se empiezan a afinar detalles como el acomodo de tablas, textos y colores de ciertos botones o imágenes en distintos casos: cuando no están seleccionados, cuando el mouse se encuentra por encima de ellos, cuando se les da clic, etc.). Poco a poco, el sitio WEB empieza a tomar forma, sin embargo, este es el código principal. Finalmente se tendrá que realizar una página de prueba, cuyo nuestro caso fue la página principal, y ligarla con la hoja de estilo para finalmente poder empezar a ver los cambios y el diseño, y en base a la vista, realizar optimizaciones, cambios y arreglos que se deseen. Figura 4.4. Hoja de Estilo Cascada en Dreamweaver CS5. En la figura 4.4 se puede ver una parte del código del CSS, donde se muestra la configuración principal del cuerpo de la página, configuraciones de cuando un link ya ha 71 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos sido visitado, configuraciones de cuando pasa el puntero encima de ciertos objetos y demás. Se requiere definir cada tipo, tamaño, color, forma y demás parámetros de letra para cada una de las partes del sitio WEB. Figura 4.5. Hoja de Estilo Cascada en Dreamweaver CS5. En la figura 4.5 se pueden observar configuraciones del encabezado y pie de página. 4.5.2 Creación y Diseño de la Plantilla Principal (Maestra) en Visual Studio 2010 Una vez que se realizó el CSS del sitio, ahora se puede cargar en Microsoft Visual Studio como la hoja de estilo que se utilizará para realizar la página Maestra del Sitio. 72 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.6. Código aspx.cs de plantilla Maestra “Site Master”. Una vez que abrimos el IDE y cargamos la hoja de estilo, empezamos a agregar el menú principal y los objetos que se encontrarán en todas las páginas del sitio. En este caso, se agregó el Título, el Menú de Navegación, un Logotipo del IPN y el Botón de Inicio de Sesión. Esos son los componentes principales que aparecerán en todo el sitio y por lo tanto se asignarán como elementos fijos en el Site Master. Figura 4.7. Vista Diseño de la Plantilla “Site Master”. Una vez realizado el Site Master, se le da clic derecho a cada una de las páginas creadas y se le aplica la plantilla Maestra. De este modo ya todas las páginas estarán referenciadas al Sitio Maestro y tendrán el Diseño General sin que se pueda modificar. De este modo se vuelve más seguro el desarrollo de las siguientes páginas, ya que la parte del diseño general queda bloqueado. 73 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 4.5.3 Desarrollo de la Aplicación WEB en ASP.Net con Visual Studio 2010 Una vez que se tiene la plantilla Maestra se procede a armar todas las páginas del sitio WEB. Se inició con la página principal y posteriormente se realizaron todas las demás páginas, dejando las que van referenciadas a una base de datos al final por ser más complejas que las demás (donde normalmente solo se involucra HTML y no funciones de ASP). Figura 4.8. Página de Inicio “Default.aspx”. En la página de Inicio se da una introducción al usuario a la Aplicación de Intercambio de Residuos y Sustancias Químicas. De igual manera se le invita a registrarse o a iniciar sesión para iniciar la búsqueda de sustancias y residuos, o realizar una acción de oferta/demanda dentro del mismo. Esta es la página principal que aparecerá al entrar a la página por medio de una IP, por lo cual se ha decidido dejar la interfaz lo más amigable y sencilla (fácil de leer) para el usuario. Información detallada se dará a conocer en otras secciones del sitio. 74 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.9. Vista Diseño de la sección de Búsqueda de Residuos y Sustancias. En la sección de búsqueda se agregó un pequeño formulario con el nombre, tipo y acción que se quiere buscar con el fin de ejecutar un comando y se extraiga información de la base de datos. En esta sección se requiere ligar un botón a la base para poder obtener información, código que se mostrará más adelante ya que por el momento solo se realizará el diseño. 75 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.10. Vista Diseño de la sección de Ofertas y Demandas. La sección de Ofertas y Demandas es la más compleja del sitio, ya que requiere llenar un formulario bastante amplio donde se podrá ofertar y/o demandar alguna sustancia o residuo químico, por lo cual se requiere que llene datos técnicos como el CAS, el CPR, Tipo de Sustancia o Residuo, Estado y demás características de acuerdo a las normas establecidas para el manejo de sustancias. Debido a que inicialmente se lanzará una prueba piloto en la Unidad Profesional Interdisciplinaria de Biotecnología (UPIBI) con un cierto grupo de alumnos y profesores, se asignaron funciones de creación, borrado y actualización de datos en esta sección. Posteriormente se tendría que mantener todo este tipo de actividades bajo un registro y control para que no se haga mal uso de esta aplicación WEB, y con una persona encargada de administrar y validar todos los procesos con previa autorización. Adicionalmente, se agregaron procesos de validación en todos los campos ya sea porque fuesen campos de datos obligatorios, o para validar que esté bien escrito un 76 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos nombre, dirección de correo electrónico y también evitar que se creen bases de datos sin datos ya sea por equivocación o intencionalmente. Esta página solo puede ser vista una vez que el usuarios es registrado y validado por un administrador. Figura 4.11. Vista Diseño de la sección de Enlaces. En la sección de Enlaces se agregaron los logotipos de todos los departamentos e Instituciones a las cuales está ligada esta Aplicación con su respectivo enlace a su página WEB. 77 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.12. Vista Diseño de la sección “Conócenos”. En la sección “Acerca del Sitio” se explica de manera más detallada cual es el propósito y función de la Aplicación de Sustancias y Residuos Químicos. De igual manera, se explican las Normas y Leyes a las cuales está apegada esta aplicación y que se deben tener en cuenta a la hora de hacer uso de la misma. 78 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.13. Vista Diseño de la sección de Eventos y Noticias. La sección de Eventos y Noticias es una sección que será encargada a una persona la cual deberá ser actualizada con Noticias y los últimos Eventos relacionados a la industria química y especialmente al manejo de Sustancias y Reactivos, pero no limitada a esto. 79 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.14. Vista Diseño de la sección de Inicio de Sesión. Finalmente, se crearon 2 páginas para el usuario, donde podrá registrarse para ser miembro de esta aplicación, o en caso de ser ya miembro, iniciar sesión con su cuenta. Primeramente se trabajó en la sección de inicio de Sesión, donde se pide el Nombre de Usuario y Contraseña para poder iniciar sesión. De igual manera se da la opción de guardar la información de las “cookies” para no tener que iniciar sesión cada que se entre al sitio desde una misma PC. 80 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.15. Vista Diseño de la sección de Registro de Usuario. Posteriormente se creó la sección de registro, que lleva un formulario ligado a una base de datos donde se guarda todo el registro de los miembros de esta aplicación, con sus respectivos datos indispensables como lo son: nombre, unidad académica a la que pertenece, correo electrónico y contraseñas. También se incluye los respectivos validadores para que no existan registros vacíos o llenados de manera incorrecta. Una vez que se ha creado un registro se podrá iniciar sesión con su cuenta en la Sección anterior, que es accesible desde cualquier página del sitio WEB incluyendo la página de Inicio. 81 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 4.5.4 Creación de Bases de Datos y Vinculación a la Aplicación Posteriormente se creó la base de datos con sus respectivas tablas. Dentro de este proceso, se definió que se requiere una tabla para las Sustancias y Residuos Químicos, y otra base de Datos con una tabla de los usuarios. Adicionalmente, se requieren tablas para las Unidades Académicas participantes, y posteriormente se piensa realizar una tabla que contenga los números de CAS (que ascienden a miles de registros). Por el momento, se crearon las tablas principales; la de Sustancias y Residuos Químicos para buscar, ofertar y/o demandar, y la de Usuarios para que se empiece a realizar el registro de los mismos. En la figura 4.16 se muestra la tabla para el registro de usuarios y sus respectivas variables y tipos de datos asignados a cada una. Figura 4.16. Definición de atributos y tipos de Datos de la tabla Usuarios. Estas tablas se realizaron directamente en SQL Server 2008 que viene integrado en Visual Studio 2010, sin embargo, para las tablas de prueba que se querían generar en UPIBI, se utilizó Microsoft Access 2007/2010 y posteriormente se convirtieron las tablas a un archivo con extensión .mdf para trabajarse en SQL Server. En la figura 4.17 se muestra la tabla de las Sustancias y Residuos Químicos con sus respectivas variables y tipo de datos a guardar en la base de datos. 82 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.17. Definición de atributos y tipos de Datos de la tabla Formulario. Finalmente, para ligar las Bases de Datos a la aplicación WEB se asignaron distintos botones (Crear, Actualizar y Borrar) y se asignaron los comandos SQL respectivos para cada acción en el código. Figura 4.18. Código aspx.cs para realizar la conexión con la Base de Datos. 83 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos En el archivo aspx.cs se asignan las funciones para trabajar con la base de datos. Se crea una cadena de conexión y se abre para realizar un proceso y posteriormente se cierra. La función BEnvia_Click es el que se encarga de enviar una oferta o demanda a la base de datos. La función BBorra sirve para eliminar alguna oferta/demanda, y la función BActualiza nos permite actualizar la cantidad de material que se está ofertando o demandando. public partial class About : System.WEB.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void BEnvia_Click(object sender, EventArgs e) { SqlConnection tabla = new SqlConnection(SqlDataSource1.ConnectionString.ToString()); SqlCommand cmd; tabla.Open(); cmd = new SqlCommand("INSERT into Formulario values ('" + DDLOD.SelectedItem.Value + "','" + TBNombre.Text + "','" + DDLTipo.SelectedItem.Value + "','" + DDLEstado.SelectedItem.Value + "','" + TBCPR.Text + "','" + DDLCAS.SelectedItem.Value + "','" + RBLCantidad.SelectedItem.Value + "'," + TBCantidad.Text + ",'" + DDLPeriodo.SelectedItem.Value + "','" + TBObservaciones.Text + "','" + DDLVigencia.SelectedItem.Value + "')", tabla); cmd.ExecuteNonQuery(); tabla.Close(); } protected void BBorra_Click(object sender, EventArgs e) { SqlConnection tabla = new SqlConnection(SqlDataSource1.ConnectionString.ToString()); SqlCommand cmd; tabla.Open(); cmd = new SqlCommand("DELETE from Formulario WHERE Nombre='"+TBNombre.Text+"' AND TipoA='"+DDLOD.SelectedItem.Value+"'", tabla); cmd.ExecuteNonQuery(); tabla.Close(); } protected void BActualiza_Click(object sender, EventArgs e) { SqlConnection tabla = new SqlConnection(SqlDataSource1.ConnectionString.ToString()); SqlCommand cmd; tabla.Open(); cmd = new SqlCommand("UPDATE Formulario SET Cantidad="+TBCantidad.Text+" WHERE Nombre='"+TBNombre.Text+"'", tabla); cmd.ExecuteNonQuery(); tabla.Close(); } } 84 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.19. Exportación de los archivos para su posterior publicación. Una vez afinados todos los detalles del prototipo el cual se pondrá a prueba, se da clic derecho en la aplicación que se encuentra en el Explorador de Soluciones y se generan los archivos a utilizar presionando “Publicar Sitio WEB”. Este IDE también permite publicar el Sitio WEB directamente con un FTP o incluso con Servicios de Información de Internet (IIS), demostrando así que es una herramienta muy completa para el desarrollo de software en todas sus etapas. Figura 4.20. Carpeta con los archivos exportados desde VS 2010. 85 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos 4.6 Instalación y Puesta en Marcha 4.6.1 Instalación de Internet Information Services (IIS) Para publicar nuestro sitio WEB se necesita hacer uso del “Servicios de Información de Internet” (IIS), el cual viene integrado en los últimos sistemas operativos Windows. En esta ocasión se hará uso del Microsoft Windows Server 2008 el cual trae integrada la última versión del IIS, la versión 7.0. El servidor que nos fue asignado tiene las siguientes especificaciones: Tabla 4.1. Especificaciones del Servidor WEB CPU Intel Pentium D 3.0GHz (Doble Núcleo) Memoria RAM 1.46 GB Disco Duro 80 GB Sistema Operativo Windows Server 2003 Enterprise Edition Service Pack 2 De manera predeterminada IIS no se encuentra activado en cualquier sistema operativo Windows. Para activarlo hay que entrar en Panel de control >> Programas y características >> Activar o desactivar las características de Windows. Figura 4.21. Ventana de Programas y características del panel de control. Con lo cual aparecerá la ventana del “Administrador del servidor”. En la parte inferior de esta ventana es donde se encuentra la opción de “Agregar funciones”, hay que dar clic en esta. 86 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.22. Ventana del Administrador del servidor. Enseguida aparecerá un asistente que nos guiara en el proceso para agregar funciones en Windows Server 2008. 87 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.23. Ventana del Asistente para agregar funciones. El asistente nos proporcionara la información necesaria para facilitar el proceso de agregado de funciones. Basta dar clic en “Siguiente” para seleccionar las funciones que deseamos agregar. 88 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.24. Proceso de selección de funciones del servidor. Una vez seleccionadas aquella (s) función(es) deseadas solo resta dar clic en “Instalar” y después de varios minutos se cerrara automáticamente el asistente lo cual será indicio que la instalación de las funciones ha terminado. 4.6.2 Montaje de una aplicación ASP.net en un servidor WEB Para entrar a IIS se sigue la siguiente ruta: Inicio >> Herramientas Administrativas >> Administrador de Internet Information Services (IIS). Con lo cual aparecerá la siguiente ventana. 89 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.25. Ventana del Administrador de servicios de información de internet. En la parte lateral izquierda se encuentra el árbol de nuestro servidor, al desplegar las ramas del árbol nos damos cuenta que existe un sitio WEB por Default. 90 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.26. Página principal de Default WEB Site. Pero es mejor configurar un nuevo sitio WEB para nuestra aplicación. Para crear un nuevo sitio se debe dar clic derecho sobre “Sitios” y seleccionar “Agregar Sitio WEB…” con lo cual se abre una pequeña ventana en la cual tendremos que llenar ciertos campos. 91 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.27. Opciones de configuración al crear un sitio WEB El nombre del sitio preferentemente debe ser fácil de recordar y relacionado con la función de nuestro sitio WEB. En “Ruta de acceso física” se debe colocar la ubicación de los archivos que fueron generados por Visual Studio 2010 para la publicación del sitio WEB. En la “Dirección IP” se puede colocar la dirección IP del servidor o dejar cualquiera no asignada. Si se desea poner un nombre de host es necesario tener un servidor DNS. Las demás opciones pueden dejarse sin modificar y seguidamente dar clic en “Aceptar” para finalizar el proceso de creación del sitio WEB. Al volver a la ventana de IIS aparecerá en “Sitios” el sitio recién creado y las carpetas que existan dentro de este. 92 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.28. Página principal del sitio WEB “TesisIntercambio”. Para verificar que todos los archivos se encuentran correctamente asociados a nuestro sitio WEB habrá que cambiar la vista del sitio en la parte inferior a la “Vista Contenido”. 93 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.29. Vista Contenido del sitio WEB “TesisIntercambio”. En la parte lateral derecha dando clic en “Examinar” se ejecuta el sitio WEB en el navegador WEB predeterminado. 94 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.30. Sitio WEB visto en un navegador. Al ejecutar la aplicación WEB resultara en un error en el archivo “WEB.config”. Para corregir este problema se debe modificar el grupo de aplicación de nuestro sitio WEB, el cual tiene el mismo nombre que el sitio WEB creado en IIS. 95 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.31. Grupos de aplicaciones. Dando doble clic izquierdo sobre el grupo de aplicación con el mismo nombre de nuestro sitio aparece una ventana en la cual se debe cambiar la versión del .NET Framework, para nuestro sitio WEB la versión correcta es la 4.0.30319 y dar clic en “Aceptar”. 96 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.32. Configuración básica del grupo de aplicaciones. Para comprobar que nuestro sitio WEB funciona correctamente hay que dar clic sobre nuestro sitio WEB y enseguida dar clic en “Examinar”. 97 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Figura 4.33. Sitio WEB visto correctamente en un navegador. De esta manera la aplicación WEB ha sido exitosamente instalada en un servidor y se puede acceder a ella por medio de la IP del servidor desde cualquier otra computadora que se encuentre en la misma subred. 98 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Evaluación económica Una vez terminada la etapa de desarrollo de la aplicación WEB se puede realizar una evaluación económica de los costos de ingeniería, costo de las licencias del software utilizado y costo del servidor para alojar la aplicación WEB. Tabla 4.2. Costo del software Software Costo Windows server 2008 standard $ 1029 dlls Es necesario adquirir una licencia de Windows server 2008 como sistema operativo del servidor, ya que la aplicación WEB fue desarrollada en ASP.NET (4.0) y es requerimiento que el servidor tenga un sistema operativo basado en Windows. Tabla 4.3. Costo del servidor WEB Componente Modelo Precio CPU Intel Celeron Dual Core E3300 $675 RAM Kingston DDR2 2 GB 800MHz $318 Tarjeta madre Gigabyte GA-G31M-ES2C $685 Disco duro Seagate 250 GB (st3250310/18as) $511 Lector óptico LG gh22ns50 / ns40 $285 Teclado y Raton Microsoft Wired Desktop 500 $200 Gabinete Acteck Orsus ATX con fuente de 500w $394 Monitor Acer X163W 16” 1366x768 pixeles $1129 Costo total $4515 Para alojar la aplicación WEB de Intercambio de sustancias y residuos químicos no se necesita de un servidor de alto rendimiento. Los componentes mostrados en la tabla 4.3 son componentes sugeridos para armar un servidor WEB. El servidor WEB que se nos ha sido asignado en las instalaciones del CFIE tiene menor rendimiento que el servidor que ha sido propuesto en la tabla 4.3, y la razón por la cual se han elegido dichos componentes con precios separados es dado que el costo es más económico que comprar un servidor de marca, además de ser más personalizable de acuerdo a nuestras necesidades. Para asegurar que nuestra recomendación sea la más adecuada (a la fecha de Diciembre 2010), se realizó un estudio de costos de servidores con características y especificaciones similares a las que se proponen en la tabla 4.3 con marcas que tengan mayor disponibilidad en el país. Ya que no todas las marcas que se dedican a venta de equipo de cómputo tienen especialización o una ramificación dedicada a servidores, nuestro estudio se reduce a las siguientes: Acer, Dell, Hewlet Packard. 99 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Tabla 4.4. Servidor Web Acer Altos G320 Componente Modelo Precio CPU Intel Pentium D 3.2GHz RAM 4 GB 800MHz Tarjeta madre Desconocida Disco duro 250 GB Lector óptico DVD-ROM Teclado y Raton No incluidos Gabinete Acer Monitor No incluido Costo total $9,599 Tabla 4.5. Servidor Web HP ProLiant ML110 G6 Componente Modelo CPU Intel Pentium G9650 RAM DDR2 2 GB 800MHz Tarjeta madre Desconocida Disco duro 250 GB Lector óptico DVD-ROM Teclado y Raton No incluídos Gabinete Hewlet Packard Monitor No incluido Costo total Precio $11,999 Tabla 4.6. Servidor Web Dell Poweredge T110 Componente Modelo CPU Intel Xeon X3430 RAM DDR3 2 GB 1333MHz Tarjeta madre Desconocida Disco duro 250GB Lector óptico DVD-ROM Teclado y Raton Incluidos Gabinete Dell Monitor Dell 17” Costo total Precio $13,960 Debido a que los servidores muchas veces se instalan y se manejan de manera remota, nuestra propuesta de Hacer, así como la de HP no incluyen monitor, teclado ni mouse. Dell es más amigable al momento de comprar una PC, y te ofrece incluirte los periféricos, así como un monitor de 17 pulgadas por una cantidad de $2,700. Se deberá tomar en cuenta que ninguna de estas opciones incluye una licencia y sistema operativo integrados, y en caso de quererlos incluidos, se añadían $12,500 pesos a la 100 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos cuenta total (Windows Server 2008 R2 Standard). En todo caso, el uso que se les da a estos equipos es para pequeñas y/o medianas empresas como mucho, lo cual es adecuado y similar al uso que se le piensa dar a la aplicación web que se está desarrollando. Si el cliente lo desea, se puede elegir alguno de estos equipos o en su defecto, buscar uno similar, pero es recomendable comprar los componentes por separado y armar un servidor web de manera personalizada por razones de costo, y manejo (errores, posibles fallas, actualizaciones, etc.), además de que se puede adecuar a las situaciones que se requieran posteriormente. Tabla 4.7. Costo de ingeniería Actividad Desarrollada Análisis y Esquema de la Aplicación WEB Diseño CSS en Adobe Dreamweaver Diseño general de plantilla (Master Page) en Visual Studio Diseño de todas las páginas de la aplicación WEB y su contenido Diseño y Análisis de Bases de Datos Creación y Vinculación de Bases de Datos con la aplicación WEB Previas Optimizaciones y Cambios antes de la fase de pruebas Fase de Pruebas (Servidor Local) Instalación del Servidor así como el Sistema Operativo y Software que requiere Instalación de Aplicación WEB en Servidor Total de horas trabajadas Costo de Ingeniería por hora Costo Total de Ingeniería Tiempo en Horas 10hr 6hr 6hr 10hr 4hr 6hr 4hr 4hr 8hr 2hr 60hr $200 pesos $12,000 pesos En total, se puede estimar que si se requiere que se haga la aplicación WEB para una empresa externa, donde se inicie desde cero y no se tenga ni el servidor instalado ni las licencias del sistema operativo y software, el costo total sería de aproximadamente $25,000 pesos. En caso de que ya se cuente con el servidor y las licencias como es el caso de nuestro proyecto, el costo aproximado sería de $12,000 pesos. Como dato adicional, en el servidor del IPN la seguridad que existe en esta aplicación depende de la seguridad general de los servidores del IPN, pero si se realizara este proyecto para una empresa que no contara con sistemas de seguridad y servidores robustos, se requeriría comprar licencias adicionales para el manejo de 101 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos firewalls y antivirus, o en su defecto equipos electrónicos como ruteadores o switches con firewall a nivel hardware para detener a los intrusos. En cuanto al tiempo estimado, las horas totales de trabajo fueron aproximadamente 60. Pero las pláticas continuas con el cliente para hacer cambios, optimizaciones y agregar cosas que no se habían considerado pueden ser alrededor de 20 horas, por lo que sería un total de 80 horas. Si se trabaja 6hr-8hr al día, el tiempo total sería de 10 días hábiles (2 semanas), pero considerando cualquier error o problema que se presente, es posible que el tiempo tal de trabajo estimado sea de 3 semanas a 1 mes. 102 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Conclusiones El objetivo general del trabajo fue alcanzado con éxito, ya que se ha logrado crear una aplicación WEB con un sistema de base de datos el cual puede almacenar la información de las sustancias y residuos químicos que no se aprovechan en los laboratorios de las distintas unidades académicas del IPN a nivel superior. El sitio WEB fue desarrollado utilizando las últimas versiones de IDEs, sistemas operativos y software de diseño WEB ya que permiten un alto grado de compatibilidad entre ellos mismos, facilitando el diseño, desarrollo e implementación de cualquier sitio WEB. Al mismo tiempo al usar las versiones más recientes se extiende la longevidad de la aplicación WEB por algunos años y se pueden utilizar características que estén a la vanguardia. El alojamiento de la aplicación WEB no requiere de un servidor con características de hardware de altas prestaciones. Sin embargo, la aplicación WEB al manejar información personal de los trabajadores del IPN, y por lo tanto confidencial, necesita de herramientas de seguridad dentro del mismo código del sitio WEB y un sistema operativo en el servidor que brinde mayor seguridad y confiabilidad para las aplicaciones WEB alojadas en el mismo. Es por esto que se ha decidido utilizar un sistema operativo diseñado para servidores como el Windows Server 2008. Una vez terminado el primer prototipo, se logró conseguir un espacio en los servidores del CFIE y por lo tanto se puede montar el sitio WEB para empezar a realizar pruebas en la UPIBI. El desarrollo de esta aplicación está lejos de terminar aquí, ya que una vez que se lance la prueba piloto se tendrán que empezar a realizar correcciones y optimizaciones de acuerdo a las necesidades de los usuarios y así realizar otra iteración en el desarrollo y el ciclo de vida del software. Dentro de la sección de comentarios y recomendaciones se incluirá una lista de optimizaciones y actualizaciones que son viables y en muchos casos necesarias para la aplicación dependiendo del tiempo de vida del software y el manejo administrativo que se le dé. De igual manera se requiere de un departamento que haga análisis de las necesidades y servicios que requieran los usuarios para hacer crecer esta herramienta. 103 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Comentarios y Recomendaciones Como se mencionó en las conclusiones finales, se ha terminado la primera fase del desarrollo del software. En este momento inicia la fase de pruebas piloto con la unidad académica UPIBI y el sitio WEB debería de tener varias recomendaciones y sugerencias para inicios del siguiente ciclo escolar (Enero 2010). El software no es un desarrollo único que no requiera de actualizaciones y evolución durante el paso del tiempo, por lo que una vez hechas las correcciones y optimizaciones de la fase de pruebas, se podría abrir el acceso a más unidades para que empiecen a participar. El ciclo de software para lograr una aplicación totalmente funciona y que se podría considerar como un estado final podría ascender a 2 años fácilmente. Es importante saber que se deben establecer límites en la evolución y corrección del software, ya que no se puede estar meses o años diseñando y programando sin lanzar jamás la aplicación porque los clientes quieran siempre hacer cambios en uno u otro lado. De todos modos se ha hecho un análisis en conjunto con el grupo (profesor y alumnos) de la UPIBI para considerar varias recomendaciones y comentarios para mejorar el software en su siguiente iteración, las cuales se reportan a continuación: Se debe actualizar el sistema operativo del servidor asignado en el CFIE a Windows Server 2008 R2 para total compatibilidad con la aplicación WEB. Homogenizar los nombres que se utilizan para las sustancias y residuos químicos, ya que se presta a confusión y dificulta el manejo de la base de datos. Definir los atributos de las entidades de una manera fija, permanente y confiable para asegurar que el catálogo del sistema funcione de la manera más adecuada. Asignar personal que se encargue de revisar y validar los datos de registro de nuevos usuarios. Asignar personal que se encargue de revisar y validar todas y cada una de las operaciones realizadas por los usuarios. Si se desea conservar actualizada la sección de noticias y eventos, se deberá asignar a una persona encargada. En caso de que el punto anterior sea puesto en marcha, se deberá integrar un editor de texto para la publicación amigable de contenido en la sección de eventos y noticias. En caso de que la aplicación llegue a ser utilizada por varias unidades académicas del IPN, se requerirá una mayor capacidad de procesamiento y almacenamiento en el servidor designado. Para una mejor interpretación y obtención de estadísticas, se puede agregar posteriormente una sección dedicada a dar estadísticas de los movimientos y registros de usuarios, y de ser posible mostrar tablas y graficarlas. Existen muchas posibles mejoras en el desarrollo del software, sin embargo estos fueron los comentarios y sugerencias pensadas en un proyecto interdisciplinario por el momento. 104 Aplicación WEB para el Intercambio de Sustancias y Residuos Químicos Fuentes de Información [1] Silberschatz, Korth, Sudarshan, “Fundamentos de bases de datos”, Mc Graw Hill, España, 2002. [2] Ian Sommerville, “Ingenieria del software”, Pearson, España, 2005. [3] José Luis Raya Cabrera, Laura Raya González, Miguel Ángel Martínez Ruiz, “Domine Microsoft Windows Server 2008”, Alfaomega Ra-Ma, Mexico, 2010. [4] Windows Server 2008 R2 Operating System. www.microsoft.com/windowsserver2008/en/us/default.aspx [5] Microsoft Visual Studio 2010 – El sitio oficial de Visual Studio 2010. www.microsoft.com/spain/visualstudio [6] The Official Microsoft IIS Site. www.iis.net/ [7] MSDN Microsoft www.msdn.microsoft.com/ Development, Suscriptions, Resources and more. 105