I UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO TOMO I TESIS DE GRADO Previa a la obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES AUTOR: ALBERTO CARLOS ARREAGA CAMPOVERDE TUTOR: JOSÉ LUIS RODRÍGUEZ GUAYAQUIL – ECUADOR 2010 II UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO TESIS DE GRADO Previa a la obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES AUTOR: ALBERTO CARLOS ARREAGA CAMPOVERDE TUTOR: JOSÉ LUIS RODRÍGUEZ GUAYAQUIL – ECUADOR 2010 III Guayaquil, 3 de Marzo del 2011. APROBACIÓN DEL TUTOR En mi calidad de Tutor del trabajo de investigación, “ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO”, elaborado por el Sr. ALBERTO CARLOS ARREAGA CAMPOVERDE, egresado de la Carrera de Ingeniería en Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas de la Universidad Estatal de Guayaquil, previo a la obtención del Título de Ingeniero en Sistemas Computacionales, me permito declarar que luego de haber orientado, estudiado y revisado, la Apruebo en todas sus partes. Atentamente: __________________________ Ing. JOSÉ LUIS RODRÍGUEZ TUTOR IV DEDICATORIA Dedico este proyecto de tesis a mi madre, que ha sido un pilar fundamental en el recorrido de esta vida, ya que sin ella jamás hubiese podido conseguir lo que hasta ahora he logrado. También dedico este proyecto a mi esposa, que ha sido una compañera inseparable durante cada jornada de estudio, ella representó un gran apoyo en esos momentos de declive y cansancio. A una pequeña mujer, mi hija, que fue la inspiración para poder culminar con este proyecto mi carrera universitaria que un día inicie. V AGRADECIMIENTO Agradezco en primer lugar a Dios, que me ha permitido llegar hasta esta etapa de mi vida, y así poder cumplir con la meta propuesta. En segundo lugar a mi familia, mi madre, mi esposa, mi hija, mis suegros, por haberme apoyado de manera incondicional en las diferentes etapas de estudio y poder haber llegado a donde ahora estoy, a mi tutor de tesis, que me brindo su ayuda y conocimientos a lo largo de la etapa del Curso de Fin de Carrera. A la Carrera por haberme acogido e iniciado en los conocimientos que ahora tengo. VI TRIBUNAL DE GRADO _______________________________ _______________________________ Ing. Fernando Abad Montero DECANO DE LA FACULTAD CIENCIAS MATEMATICAS Y FISICAS Ing. Juan Chanabá Alcócer DIRECTOR CARRERA DE INGENIERÍA DE SISTEMAS COMPUTACIONALES _______________________________ _______________________________ Ing. Héctor Lara MIEMBRO DEL TRIBUNAL Ing. Barcia MIEMBRO DEL TRIBUNAL _______________________________ _______________________________ Ing. José Luis Rodríguez MIEMBRO DEL TRIBUNAL TUTOR Dr. José Júpiter Wiles SECRETARIO VII UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO Proyecto de trabajo de grado que se presenta como requisito para optar por el título de INGENIERO EN SISTEMAS COMPUTACIONALES Autor: Alberto Carlos Arreaga Campoverde C.I.: 0918791914 Tutor: José Luis Rodríguez Guayaquil, 3 de Marzo del 2011. VIII UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES DECLARACIÓN BAJO JURAMENTO Yo, ALBERTO CARLOS ARREAGA CAMPOVERDE, de nacionalidad. ECUATORIANO mayor de edad, con domicilio en: COOP. COLINAS DE MAPASINGUE 3, MZ. 450 – SL. 12, de la ciudad de GUAYAQUIL, en cumplimiento a lo dispuesto en el Reglamento de Graduación e Incorporación de la Facultad, expreso: Que advertido de la pena de perjurio y de la responsabilidad penal, JURO en honor a la verdad, no encontrarme en estado de insolvencia, ni haber sido llamado a juicio plenario, ni que se hubiere dictado en mi contra auto motivado o sentencia condenatoria; o haber perdido los derechos de ciudadanía, ni haber sido declarado interdicto. ________________________________ ALBERTO CARLOS ARREAGA CAMPOVERDE AUTOR IX CERTIFICADO DE ACEPTACIÓN DEL TUTOR En mi calidad de Tutor del Primer Curso de Fin de Carrera, nombrado por el Departamento de Graduación y la Dirección de la Carrera de Ingeniería en Sistemas Computacionales de la Universidad de Guayaquil, CERTIFICO: Que he analizado el Proyecto de Grado presentado por el egresado ALBERTO CARLOS ARREAGA CAMPOVERDE, como requisito previo para optar por el título de Ingeniero cuyo problema es: “ADMINISTRACION DE LOS RESAPLDOS DE BASESE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVIO DE MESAJES DE CORREO A TRAVES DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO”, considero aprobado el trabajo en su totalidad. Presentado por: ________________________ ________________________ Alberto Carlos Arreaga Campoverde Cédula de ciudadanía N° Tutor: José Luis Rodriguez Guayaquil, 3 de Marzo del 2011. X UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO Autor: ALBERTO CARLOS ARREAGA CAMPOVERDE Tutor: JOSÉ LUIS RODRÍGUEZ RESUMEN Este proyecto fue desarrollado basado en la necesidad de una nueva forma de conexión remota entre el DBA o profesional de Sistemas, que necesita resolver problemas con respecto a los respaldos y restauraciones de Bases de Datos, y poder resolver situaciones que se llegasen a presentar sobre todo cuando él se encuentra fuera de su área de trabajo. Mediante este prototipo de aplicación se podrá, a través de un formato de mensaje, enviar un correo para realizar una tarea determinada como respaldo o restauración de una base de datos que se necesite realizar. XI UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASES DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MENSAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y UNA CUENTA DE CORREO ABSTRACT This project was developed based on the need for a new form of remote connection between the DBA or systems professional, you need to solve problems regarding the backup and restore databases, and solve situations that tend to present mainly when he is outside their area of work. Using this prototype application can be through a message format, send an email to perform a particular task as a backup or restore a database that needs to perform. XII ÍNDICE CARÁTULA I CARTA DE ACEPTACIÓN DEL TUTOR III DEDICATORIA IV AGRADECIMIENTO V TRIBUNAL DE GRADO VI DECLARACIÓN BAJO JURAMENTO VIII CERTIFICADO DE ACEPTACIÓN DEL TUTOR IX RESUMEN EN ESPAÑOL X RESUMEN EN INGLÉS XI ÍNDICE XII ÍNDICE GENERAL XIII ÍNDICE DE CUADROS XVII ÍNDICE DE GRÁFICOS XVIII INTRODUCCIÓN 1 XIII ÍNDICE GENERAL CAPÍTULO 1.- EL PROBLEMA 2 Planteamiento del problema 3 Ubicación del Problema en un contexto 3 Delimitación del Problema 4 Misión 4 Visión 4 Objetivo 5 Objetivos Generales 5 Objetivo Específicos 5 Justificación e Importancia 6 CAPÍTULO II.- MARCO TEÓRICO 8 Antecedentes 9 Respaldo de Base de Datos 10 Restauración de Base de Datos 10 XIV Descripción de las Herramientas 12 MS Visual Studio 6.0 (Visual Basic) 12 MS SQL Server 2005 13 Cuenta de Correo 14 Sistema Operativo 14 Fundamentación Legal 15 Ley de Comercio Electrónico 15 CAPÍTULO III.- METODOLOGÍA 16 Diseño de la investigación 17 La Encuesta 17 Tamaño de la muestra 18 Análisis de la encuesta 18 Tipo de Empresa 19 Lenguajes de Programación 20 Motores de Bases de Datos 21 XV CAPÍTULO IV.- MARCO ADMINISTRATIVO 23 Introducción 24 Cronograma 24 Cronograma de Trabajo 25 Recursos 28 Recurso Humano 28 Recurso Tecnológico 29 Presupuesto 30 Financiamiento 31 CAPÍTULO V.- CONCLUSIONES Y RECOMENDACIONES 35 Conclusiones 36 Recomendaciones 37 ANEXOS.- TOMO 1 Anexo 1 Ley de Comercio Electrónico, Firmas Electrónicas y 38 39 XVI Mensajes de Datos 39 Anexo 2 45 Modelo de Encuesta realizada 46 BIBLIOGRÁFIA 47 Libros 48 Publicaciones 49 Direcciones Web 49 XVII ÍNDICE DE CUADROS Cuadro 1 Tipos de Empresa 17 Cuadro 2 Lenguaje de Programación 18 Cuadro 3 Motores de Base de Datos 19 Cuadro 4 Cronograma de Tareas 24 Cuadro 5 Gráfica de Tareas 25 Cuadro 6 Rubro de Egresos 28 Cuadro 7 Tabla de Financiamiento 30 XVIII INDICE DE GRAFICOS Gráfico 1 Formas de Respaldos 9 Gráfico 3 Fórmula para encontrar la muestra 21 Gráfico 4 Tipos de Empresa 22 Gráfico 5 Lenguajes de Programación 23 Gráfico 6 Motores de Bases de Datos 24 Gráfico 7 Cronograma de tareas 29 XIX Gráfico 8 Gráfica de Tareas 30 Gráfico 9 Formato de Encuesta 47 1 Introducción En la actualidad en las grandes empresas podemos encontrar un DBA (Administrador de Bases de Datos) el cual cuenta con las herramientas y conocimientos para una correcta administración del motor de base implementada en su respectiva organización y bajo la cual se encuentran desarrolladas sus aplicaciones. Pero en las pequeñas y medianas empresas no existe una persona especializada en Bases de Datos, sino que muchas veces existen una o varias personas que realizan múltiples tareas dentro del Departamento de Sistemas, y ello concurre a que no se pueda obtener un excelente rendimiento de la Dase de Datos que se administre, realizándose simplemente tareas básicas y elementales aprendidas en las aulas de la universidad o leídas en un libro al momento de cursar la materia de Bases de Datos. También se da que un DBA, siempre que ocurra algún problema con la Base de datos, ya sea de respaldo o restauración, este deba acceder a través de herramientas de acceso remoto como son: TeamViewer, LogMeIn, Real VNC y otros, para poder dar asistencia en las eventualidades ocurridas cuando él no se encuentra en el lugar de los hechos, siempre y cuando ambos equipos que existen en los extremos del acceso remoto cuenten con la herramienta instalada localmente. Es allí que surge el inconveniente en caso de no se cuente con los medios para el acceso remoto, que el DBA o profesional de Sistemas, deba trasladarse personalmente al lugar de los hechos. 2 Capítulo I EL PROBLEMA 3 Planteamiento del problema Administración de Respaldos de la Base de Datos SQL Server 2005 mediante el envío de mensajes de correo a través de un prototipo de aplicación y una cuenta de correo. Ubicación del Problema El Problema de las pequeñas y medianasempresas, actualmente, es el no poder contar con un especialista en Bases de Datos, DBA, el cual se encarga de mantener la integridad de la información de la empresa. El elevado costo de un DBA, para mantenerlo en una empresa pequeña y mediana, es lo que hace que las empresas no cuenten con un buen Departamento de Sistemas estructurado en cada una de las áreas. El entrenamiento sobre las herramientas existentes dentro de MS SQL SERVER 2005 y otras, tienen un alto costo, ya que esta herramienta no es Open Source, aunque en Internet existen muchas páginas en las que se habla de las herramientas. 4 Delimitación el Problema El realizar este proyecto, poder facilitar una herramienta o conjunto de procedimientos mediantes los cuales podrán administrar desde una cuenta de correo el estado de los respaldos de las Bases de Datos. Mediante una aplicación sencilla ejecutándose en el servidor de datos, este hará de puente entre el envío y recepción de mensajesde correo electrónico. Misión Desarrollar una aplicación sencilla pero muy útil a la vez, para administrar los respaldos de Bases de Datos de manera remota, sin la necesidad que la persona encargada de Sistemas tenga que estar frente al Servidor de Datos, para poder ejecutar una tarea de respaldo o restauración. Visión Administrar de la mejor forma los respaldos de Bases de Datos remotamente, y así se minimizará el tiempo de respuesta ante cualquier eventualidad con respecto a los 5 respaldos y restauraciones, sin la necesidad de que programas remotos se encuentren instalados entre los equipos de comunicación. Objetivos Objetivos Generales Plantear un guía práctica para los estudiantes de la Carrera de Ingeniería en Sistemas Computacionales, que se orientan por la administración de bases de datos, y puedan tener los conocimientos necesarios para poder implementar este tipo de administración en pequeñas y medianas empresas. Desarrollar una aplicación la cual podrá realizar se manera automática lo presentado en la guía, a través del envío de correo electrónico por parte de la persona a cargo del área de sistemas, y será mediante la aplicaciónque se podrá realizar un respaldo o una recuperación en cualquier momento. 6 Objetivos Específicos Mantener informado al administrador de bases de datos sobre el estado de los respaldos realizados a través de los procedimientos almacenados. Realizar una mejor administración de la base de datos SQL Server 2005, y así obtener un mayor rendimiento en la ejecución de respaldos y alertas sobre los estados de la base. Mantener informado a la persona encargada del área de sistemas de los respaldos de la base de datos, a través del envío de mensajes vía correo electrónico Asegurar la disponibilidad de los respaldos de bases de datos en cualquier momento que se los requiera. Justificación e Importancia Cuando una empresa decide utilizar un sistema asociado a una Base de Datos, esta se vuelve dependiente del funcionamiento correcto del sistema. En el supuesto caso de que sufra daño de cualquier porción de la base de datos, ya sea esta por causa de un error humano, o una falla en el equipo o en el sistema que lo apoya, resulta esencial poder reparar los datos implicados en un tiempo mínimo de retraso y afectando lo menos posible el resto del sistema. En teoría, por ejemplo, la disponibilidad de los datos no dañados no tendría que verse afectada. En estos casos se debe definir y poner en práctica 7 un plan de recuperación adecuado que incluya, por ejemplo una descarga o vaciado periódico de la base de datos en un medio de almacenamiento de respaldo, y procedimientos para cargar otra vez la base de datos a partir del vaciado más reciente cuando sea necesario. Una de las tareas más importante de un DBA, dentro de una organización, es la de salvaguardar y garantizar la información, realizando respaldos de bases de datos y recuperación de la misma en momentos críticos. Toda estrategia sobre los respaldos de bases de datos siempre se orientan a garantizar que un DBA pueda restaurar la información hasta el instante mismo de algún conflicto con el motor, sin causar la pérdida de la misma. La mayoría de las pequeñas empresas realizan una copia de seguridad completa, y para ello destinan un horario que fluctúa entre las 08:00 (antes del inicio de las actividades) y 18:00-21:00 (una vez finalizada la jornada de trabajo), y es mas siempre la generan sobre el mismo archivo. 8 Capítulo II MARCO TEÓRICO 9 Antecedentes El objetivo de toda organización es conseguir una estrategia para todas las bases datos existentes. Para establecer una estrategia de respaldo debe medirse la frecuencia de actualización de la DATA, independientemente de que si las bases son pequeñas o grandes. Por ejemplo, algunas empresas si sus bases son pequeñas y tienen una alta frecuencia de actualización, ellas optan por una estrategia de respaldos en la cual mezclan: respaldos completos, mas respaldos diferenciales y respaldos de los LOG. GRAFICO No. 1 FORMAS DE RESPALDOS Diario: 08:00 Respaldos Completos Cada: 4 hrs, desde las 09:00 Base de Datos Cada: 1 hr, desde las 10:00 ELABORACION: Alberto C. Arreaga C. FUENTE: Página de Internet. Respaldos de Archivos LOG Respaldos Diferenciales 10 Respaldo de Bases de Datos Los respaldos de bases de datos se dan con el fin de mantener una copia de la información cada cierto tiempo definido por el DBA, y así salvar la información de la que se dispone hasta el momento que se la realiza, y almacenarla en algún medio tecnológico disponible, estos respaldos servirán en los posterior para poder recuperar información cuando searequerida. Las copias de seguridad de base de datos son una parte fundamental en la creación de esta estrategia, sin una estrategia de copias de seguridad efectiva podríamos encontrarnos en una situación en que tengamos una base de datos corrupta pero no las suficientes copias de seguridad para restaurar. Los tipos de fallas que podrían ocurrir, entre ellas: • Datos inválidos del usuario. • Fallo en disco duro. • Falla en el servidor. Para evitar perder la informacióndurante cualquier tipode falla, se sugiere al DBA seguir las siguientes recomendaciones: 11 • Realizar copias de seguridad con frecuencia (esto depende del uso de la base de datos). • Mantener copias de seguridad completas fuera del sitio. • Realizar comprobaciones de consistencia con cierta frecuencia. • Administrar sus copias de seguridad con efectividad. TIPOS DE COPIAS DE SEGURIDAD Aunque, se puede especificar el modelo de recuperación deseado, también se puede especificar que porciones de la base de datos incluir en las copias de seguridad: • Base de datos completa:es copia incluye todos los objetos de la base de datos (tables, views, storedprocedure) • Base de datos diferencial:solo copia las modificaciones que se le hallan hecho a la base de datos (DML, DDL) desde la última copia de seguridad completa. • Registro de transacciones: Copia el registro de transacciones, todas las transacciones de los usuarios (INSERT, UPDATE, DELETE), como se tienen todas las transacciones se pueden rehacer todo el trabajo que los usuarios haya hecho. 12 • Archivo y grupo de archivos:Nos permite realizar una copia de seguridad de una porción de la base de datos a la vez. Esta se debe de usar cuando la base de datos es muy extensa, también se deben realizar copia del registro de transacción para poder recuperarse. Restauración de Bases de Datos Las restauraciones de bases de datos se dacuando queremos recuperar cierta información hacia el pasado antes de haber sido afectados, o cuando se da errores en las bases en curso. Estas restauraciones se dan a partir de una copia de respaldo completo, que puede ir seguida de una restauración de una copia de respaldo diferencial. Restaurar copias de seguridad realizadas con el comando BACKUP. Este comando le permite: • Restaurar una base de datos completa a partir de una copia de seguridad completa de la base de datos (restauración completa). • Restaurar parte de una base de datos (restauración parcial). 13 • Restaurar archivos, grupos de archivos o páginas específicos en una base de datos (restauración de archivos o páginas). • Restaurar un registro de transacciones en una base de datos (restauración del registro de transacciones). • Revertir una base de datos al punto temporal capturado por una instantánea de la base de datos. Administrador de Bases de Datos El Administrador de Base de Datos, también conocido como DBA, es una personaresponsable de los aspectos ambientales de la base de datos. Las tareas de un Administrador de Bases de Datos, depende de las políticas de tecnología de información dentro de la empresa. Por lo general un DBA, se encarga de: • Recuperabilidad • Integridad • Seguridad • Disponibilidad • Desempeño • Desarrollo y soporte 14 Motor de Bases de Datos El motor de base de datos es un servicio que almacena, procesa y protege la información de un sistema. Además proporciona un acceso controlado y un procesamiento de transacciones para así cumplir con los requisitos necesarios de las aplicaciones consumidoras de datos de una empresa. Un motor de base de datos la usamos para crear bases de datos relacionales para un procesamiento de transacciones en línea Descripción de las Herramientas MS Visual Basic 6.0 Esta herramienta de programación que ofrece una plataforma gráfica para realizar interfaces que utilicen las características del Sistema Operativo Windows, dando al usuario una atractiva interface y que pueda relacionar con los otros programas del sistema que este brinda. 15 Se escogió Visual Basic, como plataforma de trabajo para el desarrollo de la interface, debido a la experiencia obtenida programando aplicaciones, además porque ofrece gran facilidad en el manejo de sus herramientas, un uso mínimo de las líneas de código. Entre las ventajas que presenta este lenguaje de programación esta su facilidad para programar aplicaciones de cierta complejidad para Windows. MS SQL Server 2005 Este motor de base de datos está diseñado para ayudar a las empresas a enfrentar desafíos como la necesidad de tomar decisiones más rápidas y más orientadas a datos, la necesidad de aumentar la productividad y flexibilidad del personal de desarrollo. SQL Server es una solución de dato global, integraday de extremo a extremo que habilita a los usuarios en toda su organización mediante una plataforma más segura, confiable y productiva para datos empresariales y aplicaciones de BI. SQL Server 2005 provee herramientas sólidas y conocidas a los profesionales de IT, así como también a 16 trabajadores de la información, reduciendo la complejidad de la creación, despliegue, administración y uso de aplicaciones analíticas y de datos empresariales en plataformas que van desde los dispositivos móviles hasta los sistemas de datos empresariales. A través de un conjunto global de características, la interoperabilidad con sistemas existentes y la automatización de tareas rutinarias, SQL Server 2005 ofrece una solución completa de datos para empresas de todos los tamaños. Cuenta de Correo A través de una cuenta de correo el Administrador de Bases de Datos podrá enviar peticiones a la aplicación la cual se encargará a su vez de ejecutar la instrucción correspondiente en la petición, y recibir la confirmación de la ejecución de determinada tarea. Sistema Operativo Un sistema operativo (S.O) es un software que actúa de interfaz entre los dispositivos de hardware y los programas dedicados a usuarios para utilizar un computador. Es el responsable de coordinar, gestionar y llevar a cabo el intercambio de los recursos de hardware. Por ello es el programa más complejo e importante de una computadora. 17 Los sistemas operativos más conocidos son: AIX (IBM), GNU/ Linux, MacOS (Macintosh) y Windows(Microsoft). Windows El Sistema operativo Windows, es el producto estrella de Microsoft, y es el más utilizado en computadores personales, servidores pequeños y medianos. Windows es el sistema operativo que se destaca por su facilidad de uso y entorno amigable, acercandolo al público usuario.Se han desarrollado diferentes versiones de Windows para hogares, empresas, servidores y dispositivos móviles. 18 Fundamentación Legal Ley de Comercio Electrónico, Firmas Electrónicas yMensajes de Datos Se considera que el uso de sistemas de información y redes electrónicas, han adquirido importancia en el desarrollo del comercio y la producción, tal que permiten la realización y concreción de múltiples negocios trascendentales para todos los sectores. El objetivo de la ley es regular los mensajes de datos, la firma electrónica, los servicios de certificación, la contratación electrónica y telemática, la prestación de servicios electrónicos, a través de redes de información, incluido el comercio electrónico y la protección a los usuarios de los sistemas. De Los Mensajes de Datos En la actualidad un correo electrónico ya es considerado como un documento legal, por lo que esta ley le da un reconocimiento jurídico y que tiene el mismo valor legal que cualquier documento escrito, y están sometidos a las leyes y reglamentos de la propiedad intelectual, En el Anexo 1, podemos encontrar los artículos de esta ley para mayor ilustración e interpretación de la misma. 19 Capítulo III METODOLOGÍA DE LA INVESTIGACIÓN 20 Diseño de investigación La investigación del proyecto se basó en una encuesta y en la recopilación de información a través de los diferentes medios, como el internet, en mayor parte, y la revisión de bibliografía tanto en libros de relacionados con el tema planteado como en tomos de tesis o proyectos de graduación, anteriormente realizados. Para la realización de la encuesta se tomó la población de los alumnos egresados que actualmente están cursando el tópico o línea de investigación sobre Bases de Datos (aproximadamente 35 egresados), que serían, quien actualmente están involucrados con el área en mención, y quienes se inclinan para en su futuro trabajar en el área. Dentro de esta población también se consideró a profesionales especializados en el área (aproximadamente 15 profesores) para conocer sus puntos de vista a cerca del problema y solución del mismo. La Encuesta Como sabemos la encuesta es una colección de preguntas que son dirigidas hacia una muestra representativa de una determinada población, con el objetivo de conocer los estados de opinión o hechos. El cuestionario que se realizó fue basado en lo referente al tópico de la realización del proyecto de Tesis, de las cuales se describen los gráfico de las 5 más importantes. 21 Tamaño de la Muestra El tamaño de la muestra se la determinó con la fórmula tomada de la documentación de la guía para el desarrollo de la tesis, y demostrada por la Universidad Libertador de Venezuela Cirterplan. Grafico No. 3 Fórmula para encontrar la muestra n = m e ( m − 1) + 1 2 m= Tamaño de la población. E= error de estimación. n = Tamaño de la muestra. Elaboración: Alberto C. Arreaga C. Fuente: Guía de Proyecto de Grado - CISC Análisis de la Encuesta A continuación un breve análisis sobre los resultados de la encuesta realizada. 22 Tipos de empresa Como se puede observar en el cuadro estadístico, sobre una de las preguntas de la encuesta ta realizada, podemos observar el porcentaje de profesionales de sistemas de la carrera de Ingeniería en Sistemas Computacionales (CISC) que laboran en las diferentes áreas del departamento de sistemas, sistemas, mayormente podemos ver que se encuentran entre las empresas presas de tipo Comercial y de Servicios. Tabla No. 1 Tipo de Empresa. Tipo de Empresa Comercial 36.84 Industrial 10.53 4 Servicios 44.74 17 7.89 3 100.00 38 Otras Elaborado: Alberto Arreaga C. Gráfico No. 4 Fuente: Encuesta Anexo 2. Tipo de Empresa. Tipos de Empresas 7.89 36.84 Comercial Industrial 44.74 10.53 Servicios Otras Elaborado: Alberto Arreaga C. Fuente: Tabla No. 1. 14 23 Lenguajes de Programación Aquí observamos, los lenguajes dominantes en cuanto a aplicaciones de escritorio, en los que se encuentran desarrollando los profesionales de sistemas procedentes de nuestra carrera CISC. Vemos Visual Studio 6 se mantiene a pesar del tiempo y de la aparición de nuevas herramientas. Tabla No. 2 Lenguajes de Programación. Lenguajes de Programación Visual Basic 6.0 32.61 15 MS Visual Studio 2005 28.26 13 MS Visual Studio 2008 6.52 3 PowerBuilder 4.35 2 Visual FoxPro 15.22 7 6.52 3 Oracle Form - Report PHP 6.52 3 100.00 46 Gráfico No. 5 Elaborado: Alberto C. Arreaga C. Lenguajes de Pogramación. Fuente: Encuesta Anexo 2. Lenguajes de Programación PHP 6.52 Oracle Form - Report 6.52 15.22 Visual FoxPro Power Builder ms Visual Studio 2008 MS Visual Studio 2005 Lenguajes de Programación 6.52 28.26 32.61 0 5 10 15 20 25 30 35 Visual Basic 6.0 4.35 Elaborado: Alberto C. Arreaga C. Fuente: Tabla No. 2. 24 Motores de Bases de Datos Como podemos ver, el uso de la Bases de datos en aplicaciones de escritorio para Windows, sin lugar a dudas es mayoritario el motor SQL Server 2005, que ofrece varias funcionalidades de administración para el profesional de bases de datos, DBA. Tabla No. 3. Motores de Bases de Datos Motores de Bases de Datos MS SQL Server 2005 53.85 21 MS SQL Server 2008 7.69 3 Oracle 9i 7.69 3 MySql 7.69 3 SyBase 5.13 2 PostgreSQL 0.00 0 Otras 17.95 7 100.00 39 Grafico No. 6 Elaborado: Alberto C. Arreaga C. Motores de Bases de Datos. Fuente: Encuesta Anexo 2. 60.00 50.00 53.85 Motores de Bases de Datos 17.95 40.00 10.00 0.00 Elaborado: Alberto C. Arreaga C. Fuente: Tabla No.3 5.13 0.00 7.69 7.69 20.00 7.69 30.00 Motores de Bases de Datos 25 Podemos ver el formato del contenido de la encuesta en el Anexo 2, que se utilizó para la realización de la misma y que sirvió para la elección de las herramientas a utilizar para en este prototipo de aplicación. 26 Capítulo IV MARCO ADMINISTRATIVO 27 Introducción Todo proyecto, en su diseño, además de indicar los aspectos técnicos ycientíficos del tema y problema propuesto, el cual obedece a sus objetivos, debe contemplarademás los aspectos logísticos del mismo, es decir, cómo se va a lograr la realización delproyecto, para lo cual en la parte administrativa del mismo se indica el manejo de losrecursos, del tiempo y de presupuesto, para el desarrollo de las diversas actividades delproyecto. En este capítulo deben ser respondidas las siguientes preguntas: ¿Cómo se logrará la realización delproyecto? ¿Con qué recursos se organizará la investigación? ¿En qué tiempo se investigará? Cronograma Como es conocido por todos, el cronograma es un instrumento que debe ser planificado y elaboradocuidadosamente, a fin de poder supervisar la ejecución del proyecto de investigación. En este cronograma se describe detalladamente por un lado la naturaleza y secuencia delas actividades; y, por otra el tiempo disponible de duración de cada una de estas. Esto 28 implica que se ha determinado con precisión cuáles son esas actividades, a partir de los aspectos técnicospresentados en el proyecto de tesis. La unidad de tiempo que se ha utilizado es el día, y en función de estaunidad se ha calculado la ejecución de cada etapa y la duración total del proyecto de tesis, con fines deevaluación y determinación de recursos humanos (horas/hombre), materiales y financieros. Cronograma de Trabajo En primera instancia se ha definido un tiempo para la realización de este proyecto de investigación estimado en 120 días incluida la holgura, por los imprevistos, el cual podrá llegar a tener un reajuste. Los tiempos arrancan una vez que se confirme el visto bueno. Basado en las etapas del desarrollo de un sistema, será el siguiente: 1.- Análisis 2.- Diseño 3.- Desarrollo 4.- Pruebas 5.- Implementación 29 Tabla No. 5. Cronograma de Tareas. Elaborado: Alberto C. Arreaga C. Fuente: Cronograma de Trabajo hecho en MS Project. 30 Gráfico No. 8. Gráfica sobre Tareas. Elaborado: Alberto C. Arreaga C. Fuente: Cronograma de Trabajo hecho en MS Project. 31 Para la presentación de este cronograma se utilizó diagramas de barras verticales, lo que permite visualizar mejor el tiempo de cada actividad y, sobre todo, en aquellos casos en que hay varias actividades en un mismo tiempo; ya que se estructuran a partir de coordenadas cartesianas. La Herramienta utilizada para la creación y generación del cronograma fue Microsoft Office Project Proffesional 2003. Recursos Recurso Humano Para el desarrollo de este Proyecto de Tesis de Grado, se utilizó el siguiente recurso humano: 1 Analista Programador, con conocimientos en las herramientas de desarrollo: MS Visual Basic 6.0, MS Sql Server 2005. 1 Guía de Proyecto, con conocimientos y experiencia como Guía o Director de Desarrollo e Implementación de Proyectos. 32 Recurso Tecnológico Computadora Intel Core Duo,2 GHz, RAM 3 GB DDR2, HD 500 GB. Modem Inalámbrico USB, 54 Mbps, para pruebas de tutorías. Disco Externo 500 GB, para respaldos de la documentación y fuentes de desarrollo. MS Windows XP Proffesional + Service Pack 3. MS Visual Basic 6.0 + SP 6, como herramienta de programación. MS SQL Server 2005, como herramienta de almacenamiento de datos. Cuenta de Correo activa, como medio de información y transporte, de un servidor POP3 y SMTP, en este caso YAHOO y GMAIL. Doc-To-Help 2010, para la generación del archivo de ayuda del programa. InstallShield 2009, para la generación del instalador de la aplicación. Smart InstallMaker 5.02, para la generación del instalador de la aplicación. 33 Presupuesto Sabemos que la elaboración de un presupuesto es clave para la administración de cualquier proyecto y consiste en la estimación con fundamentos sobre las necesidades en términos monetarios para poder realizar el proyecto. El presupuesto incluye un aspecto relativo a los rubros de gastos de operación (costode materiales, movilización, honorarios, etc.), fácilmente deducibles delcronograma y de la magnitud del proyecto de investigación. Tabla No. 6 Rubros de Egresos o Gastos. RUBRO DE EGRESOS Suministros de Oficina Fotocopias Libros y documentos Computadores Servicios de Internet Transporte Refrigerio Empastado y anillado Servicios Básicos Tutoría Analista-Programador Gatos imprevistos TOTAL Elaborado: Albert C. Arreaga C. Fuente: Gastos en la elaboración del Proyecto. DOLARES 100.00 20.00 50.00 450.00 120.00 70.00 35.00 50.00 30.00 1000.00 1000.00 300.00 3225.00 de análisis 34 Además de puntualizarse las fuentes de financiamiento del proyecto, es convenienteindicar el número y tipo de especialistas necesarios, materiales y equipos que se van aemplear. Al final de la lista de gastos constan imprevistos, al que he asignado un10% de la suma de los gastos anteriores. Financiamiento El financiamiento de un proyecto se distribuye a través del tiempo de duración del mismo, para poder cubrir los costos de desarrollo, de implementación, de mantención y actualización. La forma de financiamiento para el análisis, desarrollo e implementación de una aplicación siempre viene dada en función del tiempo de estimado que conlleva cada una de las tareas del cronograma de trabajo. Para el caso de este prototipo de aplicación, el tiempo estimado es 120 días por lo que se divide en 5 etapas distribuidas en los porcentajes y tiempos, como se muestran a continuación en el cuadro. 35 Tabla No.7. Tabla de financiamiento. Columna1 FECHAS DESCRIPCION 1 Fecha 1 A la firma del contrato 2 Fecha 2 3 VALOR DIAS 1690.00 0 A 45 días de la firma 633.75 45 Fecha 3 A 90 días de la firma 633.75 45 4 Fecha 4 A 110 días de la firma 633.75 45 5 Fecha 5 A 120 días de la firma 633.75 45 4225.00 180 TOTALES ELABORACION: Alberto C. Arreaga C. Fuente: Elaboración de financiamientos de Proyectos en PanaceaSoft S.A. 36 Capítulo V CONCLUSIONES Y RECOMENDACIONES 37 Conclusiones Con el avance tecnológico, vemos que los Administradores de bases de Datos necesitan poder contar con múltiples y diversas maneras de poder acceder remotamente al Servidor de Bases de Datos para mantener un comunicación constante sobre las tareas o proceso que se desarrollan a través de las diferentes aplicaciones existentes dentro de la organización. Sin embargo, el mismo Administrador de Bases de Datos, a pesar de contar con esas herramientas para poder brindar un mejor soporte a los usuarios y a la administración de la información, no quiere depender de una misma herramienta, sino tener alternativas que le ayuden a dar soluciones inmediatas. Para ello se pensó en este prototipo de aplicación, la cual puede ser ampliamente explotada, ya que el correo electrónico, hoy en día, representa uno de los mayores medios de comunicación entre las personas a través de una computadora, laptop o teléfono móvil, que tenga acceso a internet. 38 Recomendaciones Para un mejor manejo de esta herramienta se debe configurar la cuenta de correo el mismo Administrador de Sistemas de información, ya que es la persona que estará a cargo de esta aplicación y será el responsable de las sentencias que se ejecuten a través de la misma. Esta aplicación debe iniciarse una vez que el equipo de servidor de Bases de Datos este levantados sus servicios, ya que a través de esta habrá la comunicación entre la cuenta de correo y las tareas a ejecutar en la respectiva base. Se recomienda tener un espacio físico lo suficientemente amplio, destinado para las copias de seguridad de las bases, y de los archivos de información de la aplicación. Los cuales deberán ser de uso exclusivo para el administrador de la herramienta. 39 ANEXOS Tomo I 40 Anexo 1 LEY DE COMERCIO ELECTRÓNICO, FIRMAS ELECTRÓNICAS YMENSAJES DE DATOS Título I DE LOS MENSAJES DE DATOS Capítulo I PRINCIPIOS GENERALES Art. 2.- Reconocimiento jurídico de los mensajes de datos.- Los mensajes de datostendrán igual valor jurídico que los documentos escritos. Su eficacia, valoración yefectos se someterá al cumplimiento de lo establecido en esta Ley y su reglamento. Art. 3.- Incorporación por remisión.- Se reconoce validez jurídica a la información nocontenida directamente en un mensaje de datos, siempre que figure en el mismo, enforma de remisión o de anexo accesible mediante un enlace electrónico directo y sucontenido sea conocido y aceptado expresamente por las partes. Art. 4.- Propiedad Intelectual.- Los mensajes de datos estarán sometidos a las leyes,reglamentos y acuerdos internacionales relativos a la propiedad intelectual. Art. 5.- Confidencialidad y reserva.- Se establecen los principios de confidencialidady reserva para los mensajes de datos, cualquiera sea su forma, medio o intención. Todaviolación a estos principios, principalmente aquellas referidas a la intrusión 41 electrónica,transferencia ilegal de mensajes de datos o violación del secreto profesional, serásancionada conforme a lo dispuesto en esta Ley y demás normas que rigen la materia. Art. 6.- Información escrita.- Cuando requiera u obligue que la información conste porescrito, este requisito quedará cumplido con un mensaje de datos, siempre que lainformación que éste contenga sea accesible para su posterior consulta. Art. 7.- Información original.- Cuando requiera u obligue que la información seapresentada o conservada en su forma original, este requisito quedará cumplido con unmensaje de datos, si siendo requerido conforme a la Ley, puede comprobarse que haconservado la integridad de la información, a partir del momento en que se generó porprimera vez en su forma definitiva, como mensaje de datos. Se considera que un mensaje de datos permanece íntegro, si se mantiene completo einalterable su contenido, salvo algún cambio de forma, propio del proceso decomunicación, archivo o presentación. Por acuerdo de las partes y cumpliendo con todas las obligaciones previstas en esta Ley,se podrán desmaterializar los documentos que por ley deban ser instrumentadosfísicamente. Los documentos desmaterializados deberán contener las firmas electrónicascorrespondientes debidamente certificadas ante una de las entidades 42 autorizadas segúnlo dispuesto en el artículo 29 de la presente ley, y deberán ser conservados conforme alo establecido en el artículo siguiente. Art. 8.- Conservación de los mensajes de datos.- Toda información sometida a esta Ley, podrá ser conservada; éste requisito quedará cumplido mediante el archivo delmensaje de datos, siempre que se reúnan las siguientes condiciones: a. Que la información que contenga sea accesible para su posterior consulta; b. Que sea conservado con el formato en el que se haya generado, enviado orecibido, o con algún formato que sea demostrable que reproduce con exactitudla información generada, enviada o recibida; c. Que se conserve todo dato que permita determinar el origen, el destino delmensaje, la fecha y hora en que fue creado, generado, procesado, enviado,recibido y archivado; y, d. Que se garantice su integridad por el tiempo que se establezca en el reglamento aesta ley. Toda persona podrá cumplir con la conservación de mensajes de datos, usando losservicios de terceros, siempre que se cumplan las condiciones mencionadas en esteartículo. La información que tenga por única finalidad facilitar el envío o recepción del mensajede datos, no será obligatorio el cumplimiento de lo establecido en los literalesanteriores. Art. 9.- Protección de datos.- Para la elaboración, transferencia o utilización de basesde datos, obtenidas directa o indirectamente del uso o transmisión de mensajes de datos,se 43 requerirá el consentimiento expreso del titular de éstos, quien podrá seleccionar lainformación a compartirse con terceros. La recopilación y uso de datos personales responderá a los derechos de privacidad,intimidad y confidencialidad garantizados por la Constitución Política de la República yesta ley, los cuales podrán ser utilizados o transferidos únicamente con autorización deltitular u orden de autoridad competente. No será preciso el consentimiento para recopilar datos personales de fuentes accesiblesal público, cuando se recojan para el ejercicio de las funciones propias de laadministración pública, en el ámbito de su competencia, y cuando se refieran a personasvinculadas por una relación de negocios, laboral, administrativa o contractual y seannecesarios para el mantenimiento de las relaciones o para el cumplimiento del contrato. El consentimiento a que se refiere este artículo podrá ser revocado a criterio del titularde los datos; la revocatoria no tendrá en ningún caso efecto retroactivo. Art. 10.- Procedencia e identidad de un mensaje de datos.- Salvo prueba en contrariose entenderá que un mensaje de datos proviene de quien lo envía y, autoriza a quien lorecibe, para actuar conforme al contenido del mismo, cuando de su verificación existaconcordancia entre la identificación del emisor y su firma electrónica, excepto en lossiguientes casos: a. Si se hubiere dado aviso que el mensaje de datos no proviene de quien constacomo emisor; en este caso, el aviso se lo hará antes de que la persona que lorecibe actúe 44 conforme a dicho mensaje. En caso contrario, quien conste comoemisor deberá justificar plenamente que el mensaje de datos no se inició pororden suya o que el mismo fue alterado; y, b. Si el destinatario no hubiere efectuado diligentemente las verificacionescorrespondientes o hizo caso omiso de su resultado. Art. 11.- Envío y recepción de los mensajes de datos.- Salvo pacto en contrario, sepresumirá que el tiempo y lugar de emisión y recepción del mensaje de datos, son lossiguientes: a. Momento de emisión del mensaje de datos.- Cuando el mensaje de datos ingreseen un sistema de información o red electrónica que no esté bajo control delemisor o de la persona que envió el mensaje en nombre de éste o del dispositivoelectrónico autorizado para el efecto; b. Momento de recepción del mensaje de datos.- Cuando el mensaje de datosingrese al sistema de información o red electrónica señalado por el destinatario. Si el destinatario designa otro sistema de información o red electrónica, elmomento de recepción se presumirá aquel en que se produzca la recuperacióndel mensaje de datos. De no haberse señalado un lugar preciso de recepción, seentenderá que ésta ocurrecuando el mensaje de datos ingresa a un sistema deinformación o red electrónica del destinatario, independientemente de haberserecuperado o no el mensaje de datos; y, 45 c. Lugares de envío y recepción.- Los acordados por las partes, sus domicilioslegales o los que consten en el certificado de firma electrónica, del emisor y deldestinatario. Si no se los pudiere establecer por estos medios, se tendrán portales, el lugar de trabajo, o donde desarrollen el giro principal de sus actividadeso la actividad relacionada con el mensaje de datos. Art. 12.- Duplicación del mensaje de datos.- Cada mensaje de datos será consideradodiferente. En caso de duda, las partes pedirán la confirmación del nuevo mensaje ytendrán la obligación de verificar técnicamente la autenticidad del mismo. 46 Anexo 2 Modelo de Encuesta realizada para el desarrollo de la aplicación Se anexa el formato de la encuesta que se realizó a la muestra, para conocimiento e información sobre el desarrollo del prototipo de aplicación para la administración de los respaldos de bases de datos MS Sql Server 2005, mediante envió de correos electrónicos a través de una cuenta de correo. Los resultados de la misma, se detalla en los gráficos de la unidad correspondiente, para su análisis y posterior toma de decisiones. 47 Gráfico No. 9. Formato de encuesta UEG-CISC Encuesta Lee detenidamente las preguntas y responde con una X en el cuadro correspondiente 1.¿Cúal es el tipo de empresa en la que trabaja? Comercial industrial Servicios Otra 2.- ¿Dentro del Dpto de sistemas, en que área se desenvuelve usted? Mantenimiento Programación Base de Datos Administrador de la Red Soporte a Usuario 3.- ¿Qué tareas realiza con herramientas de Acceso Remoto y cuáles utiliza? 4.- ¿Cómo beneficiaría en el desenvolvimiento de sus tareas de administración de respaldos, una aplicación que mediante envío de mensajes, procese y realice el aviso de confirmación o advertencia por la misma vía, sobre los respaldos de las Bases de Datos? 5.- ¿Bajo de que ambiente de desarrollo estan realizadas sus aplicaciones? Ambiente Web Ambiente Desktop Otras 6.- ¿Enumere que Sistema Operativo emplean en su organización y en que versiones manejan? 7.- ¿Qué motor de Base de Datos emplea para guardar la imformacion de la empresa, indique la versión? MS SQL Server Oracle MySql SyBase PostgreSQL Otras 8.- ¿Enumere el lenguaje de programación de desarrolladas la/as aplicaciones empleadas en la empresa? Elaborado: Alberto C. Arreaga C. Fuente: Guia de Proyecto CISC. 48 BIBLIOGRAFÍA 49 Bibliografía Libros Fases para el desarrollo de un sistema, Ingeniería de Software, un enfoque práctico, 5ta. Edición, Roger S. Pressman. Desarrollo de Diagramas de Caso de Uso, Tesis de Grado T-7, Portal Inteligente, Febrero 18 del 2005, desarrollada por J. Rodríguez, A. Agana, D. Del Pino, F. Fernández. Desarrollo del Manual Técnico, Proyecto de Grado PG-116, Portal de Ventas de Supermercado por Internet manejando Pedidos y Listas de Compras recurrentes por Usuario, Febrero 7 del 2008, desarrollado por E. Avilés, E. Loaiza, B. Macías. 50 Desarrollo del Manual de Usuario, Proyecto de Grado PG-276, Desarrollo de un Sistema de Votaciones Electrónicas, Mayo 17 del 2010, desarrollada por A. Vásquez, A. Aroni, S. Rosales. Publicaciones Ley de Comercio Electrónico, Firmas Electrónicas y Mensajes de Datos, Congreso Nacional del Ecuador, Ley 2002-67 (Registro Oficial 557-S, 17-IV-2002). Direcciones Web Componente OSPOP3.dll,.http://www.ostrosoft.com Código Fuente sobre el manejo de entradas de registro, MS Visual Basic 6.0:http://www.recursosvisualbasic.com.ar 51 Código Fuente sobre el manejo de archivos inicio, MS Visual Basic 6.0: http://www.foro.vb-mundo.com Código Fuente sobre el manejo de las API de Windows, MS Visual Basic 6.0: http://www.canalvisualbasic.net Código Fuente sobre el manejo de Envío de correo SMTP, MS Visual Basic 6.0: http://www.elguille.info/vb/default.aspx Como desarrollar una tesis: http://www.monografias.com Sentencias de Respaldo, ayuda cobre los comandos para lograr un respaldo: http://msdn.microsoft.com/es-es/library/ms186865%28v=SQL.90%29.aspx Sentencias de Restauración, ayuda sobre los comandos para lograr una restauración: http://msdn.microsoft.com/es-es/library/ms186858%28v=SQL.90%29.aspx I UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO T O M O II TESIS DE GRADO Previa a la obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES AUTOR: ALBERTO CARLOS ARREAGA CAMPOVERDE TUTOR: JOSÉ LUIS RODRÍGUEZ GUAYAQUIL – ECUADOR 2010 II UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO TESIS DE GRADO Previa a la obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES AUTOR: ALBERTO CARLOS ARREAGA CAMPOVERDE TUTOR: JOSÉ LUIS RODRÍGUEZ GUAYAQUIL – ECUADOR 2010 III Guayaquil, 3 de Marzo del 2011. APROBACIÓN DEL TUTOR En mi calidad de Tutor del trabajo de investigación, “ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO”, elaborado por el Sr. ALBERTO CARLOS ARREAGA CAMPOVERDE, egresado de la Carrera de Ingeniería en Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas de la Universidad Estatal de Guayaquil, previo a la obtención del Título de Ingeniero en Sistemas Computacionales, me permito declarar que luego de haber orientado, estudiado y revisado, la Apruebo en todas sus partes. Atentamente: __________________________ Ing. JOSÉ LUIS RODRÍGUEZ TUTOR IV DEDICATORIA Dedico este proyecto de tesis a mi madre, que ha sido un pilar fundamental en el recorrido de esta vida, ya que sin ella jamás hubiese podido conseguir lo que hasta ahora he logrado. También dedico este proyecto a mi esposa, que ha sido una compañera inseparable durante cada jornada de estudio, ella representó un gran apoyo en esos momentos de declive y cansancio. A una pequeña mujer, mi hija, que fue la inspiración para poder culminar con este proyecto mi carrera universitaria que un día inicie. V AGRADECIMIENTO Agradezco en primer lugar a Dios, que me ha permitido llegar hasta esta etapa de mi vida, y así poder cumplir con la meta propuesta. En segundo lugar a mi familia, mi madre, mi esposa, mi hija, mis suegros, por haberme apoyado de manera incondicional en las diferentes etapas de estudio y poder haber llegado a donde ahora estoy, a mi tutor de tesis, que me brindo su ayuda y conocimientos a lo largo de la etapa del Curso de Fin de Carrera. A la Carrera por haberme acogido e iniciado en los conocimientos que ahora tengo. VI TRIBUNAL DE GRADO _______________________________ _______________________________ Ing. Fernando Abad Montero DECANO DE LA FACULTAD CIENCIAS MATEMATICAS Y FISICAS Ing. Juan Chanabá Alcócer DIRECTOR CARRERA DE INGENIERÍA DE SISTEMAS COMPUTACIONALES _______________________________ _______________________________ Ing. Héctor Lara MIEMBRO DEL TRIBUNAL Ing. Barcia MIEMBRO DEL TRIBUNAL _______________________________ _______________________________ Ing. José Luis Rodríguez MIEMBRO DEL TRIBUNAL TUTOR Dr. José Júpiter Wiles SECRETARIO VII UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO Proyecto de trabajo de grado que se presenta como requisito para optar por el título de INGENIERO EN SISTEMAS COMPUTACIONALES Autor: Alberto Carlos Arreaga Campoverde C.I.: 0918791914 Tutor: José Luis Rodríguez Guayaquil, 3 de Marzo del 2011. VIII UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES DECLARACIÓN BAJO JURAMENTO Yo, ALBERTO CARLOS ARREAGA CAMPOVERDE, de nacionalidad. ECUATORIANO mayor de edad, con domicilio en: COOP. COLINAS DE MAPASINGUE 3, MZ. 450 – SL. 12, de la ciudad de GUAYAQUIL, en cumplimiento a lo dispuesto en el Reglamento de Graduación e Incorporación de la Facultad, expreso: Que advertido de la pena de perjurio y de la responsabilidad penal, JURO en honor a la verdad, no encontrarme en estado de insolvencia, ni haber sido llamado a juicio plenario, ni que se hubiere dictado en mi contra auto motivado o sentencia condenatoria; o haber perdido los derechos de ciudadanía, ni haber sido declarado interdicto. ________________________________ ALBERTO CARLOS ARREAGA CAMPOVERDE AUTOR IX CERTIFICADO DE ACEPTACIÓN DEL TUTOR En mi calidad de Tutor del Primer Curso de Fin de Carrera, nombrado por el Departamento de Graduación y la Dirección de la Carrera de Ingeniería en Sistemas Computacionales de la Universidad de Guayaquil, CERTIFICO: Que he analizado el Proyecto de Grado presentado por el egresado ALBERTO CARLOS ARREAGA CAMPOVERDE, como requisito previo para optar por el título de Ingeniero cuyo problema es: “ADMINISTRACIÓN DE LOS RESPALDOS DE BASESE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO”, considero aprobado el trabajo en su totalidad. Presentado por: ________________________ ________________________ Alberto Carlos Arreaga Campoverde Cédula de ciudadanía N° Tutor: José Luis Rodríguez Guayaquil, 3 de Marzo del 2011. X UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASE DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MESAJES DE CORREO A TRAVÉS DE UN PROTOTIPO DE APLICACIÓN Y LA CUENTA DE CORREO Autor: ALBERTO CARLOS ARREAGA CAMPOVERDE Tutor: JOSÉ LUIS RODRÍGUEZ RESUMEN Este proyecto fue desarrollado basado en la necesidad de una nueva forma de conexión remota entre el DBA o profesional de Sistemas, que necesita resolver problemas con respecto a los respaldos y restauraciones de Bases de Datos, y poder resolver situaciones que se llegasen a presentar sobre todo cuando él se encuentra fuera de su área de trabajo. Mediante este prototipo de aplicación se podrá, a través de un formato de mensaje, enviar un correo para realizar una tarea determinada como respaldo o restauración de una base de datos que se necesite realizar. XI UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ADMINISTRACIÓN DE LOS RESPALDOS DE BASES DE DATOS SQL SERVER 2005 MEDIANTE EL ENVÍO DE MENSAJES DE CORREO A TRAVÉS DE UNPROTOTIPO DE APLICACIÓN Y UNA CUENTA DE CORREO ABSTRACT This project was developed based on the need for a new form of remote connection between the DBA or systems professional, you need to solve problems regarding the backup and restore databases, and solve situations that tend to present mainly when he is outside their area of work. Using this prototype application can be through a message format, send an email to perform a particular task as a backup or restore a database that needs to perform. XII ÍNDICE CARÁTULA I CARTA DE ACEPTACIÓN DEL TUTOR III DEDICATORIA IV AGRADECIMIENTO V TRIBUNAL DE GRADO VI CERTIFICADO DE ACEPTACIÓN DEL TUTOR VII DEDCLARACIÓN BAJO JURAMENTO VIII RESUMEN EN ESPAÑOL IX RESUMEN EN INGLÉS X ÍNDICE XI ÍNDICE GENERAL XII ÍNDICE DE CUADROS XII ÍNDICE DE GRÁFICOS XVIII INTRODUCCIÓN 1 XIII ÍNDICE GENERAL CAPÍTULO 1.- MANUAL TÉCNICO 2 Introducción 3 Diagrama General de flujo del Sistema 4 Diagrama de Flujo de Datos 5 Diagramas de casos de Usos 6 Configuración 6 Envío de Correo 7 Recepción de Correo 8 Ejecución de Tarea 9 Descripción de Escenarios 10 Configuración de la aplicación 10 Configuración de la aplicación incorrecta 11 Envío de Correo 12 Recepción de Correo Válido 13 XIV Lectura de Correo con mensaje inválido 14 Ejecución de tarea sin error 15 Ejecución de tarea con error 16 Diagrama de Objetos 17 Ejecutar la tarea de Respaldo o Restauración 17 Conexión con la Base de Datos 18 Lectura de mensajes de la cuenta de correo 19 Envío de confirmación o mensaje de Error 20 Diagrama de Clases 21 Clase para el registro de las variables 21 Clase para la conexión con la Base dee Datoas 22 Clase para la conexión con la cuenta de correo 23 Clases del Componente OSPOP3 24 Procedimientos y Funciones 28 Función Func_ConsultaValor 28 XV Función Func_EstableceValor 29 Función Func_CrearNuevaClave 30 Función Func_ConexionServidorDB 31 Procedimiento Proc_AbrirConexionDB 32 Procedimiento Proc_CerrarConexion 33 Función Func_ConsultaParametros 34 Función Func_GrabarParametros 35 Función Func_extraeCadena 36 Función Func_Validar_Correo 37 Función Func_Ultimas_Clave 40 Procedimineto Proc_Registor_Historial_Clave 41 Función Func_AvisoCambioClave 43 Función Func_ENVÍOCorreo 45 Función Func_ProcesaCorreo 47 Función Func_ProcesaMensaje 50 XVI Descripción de las Herramientas 65 MS Visual Studio 6.0 65 MS SQL Server 2005 66 Cuenta de Correo (Yahoo-Gmail) 67 Sistema Operativo 67 CAPÍTULO II.- MANUAL DE USUARIO 68 Introducción 69 Inicio de Sesión 69 Cambio de contraseña 70 Pantalla Principal 71 Configuración 72 Respaldos 74 Seguridades 75 Formato de Mensajes de correo 78 Formato de Tarea de respaldo completa 80 XVII Formato de Tarea de respaldo diferencial 80 Formato de Tarea de restauración completa 81 Formato de Tarea de restauración completa y Diferencial 82 Formato de Creación de tareas programadas 83 ANEXOS 85 Componente OSPOP3 86 BIBLIOGRÁFIA 88 Libros 89 Publicaciones 90 Direcciones Web 90 XVIII ÍNDICE DE CUADROS Cuadro 1 Escenario de Configuración correcta . 10 Cuadro 2 Escenario de Configuración incorrecta Cuadro 3 Caso de Uso del envío de correo 12 Cuadro 4 Caso de uso de la recepción. 13 Cuadro 5 Caso de uso de lectura de correo 14 Cuadro 6 Caso de uso de Ejecución de tarea 15 Cuadro 7 Caso de uso de Ejecución de tarea con error 16 Cuadro 8 Clase Registro 21 Cuadro 9 Clase Conexión 22 Cuadro 10 Clase Session 24 Cuadro 11 Clase Email 25 Cuadro 12 Clase MessageListEntry 25 Cuadro 13 Clase Header 26 Cuadro 14 Clase Message 26 . 11 XIX Cuadro 15 Clase Attachment 26 Cuadro 16 Diccionario de Datos 29 Cuadro 17 Licencias de componente OSPOP3 90 XX ÍNDICE DE GRÁFICOS Gráfico 1 Diagrama de flujo de sistema 4 Gráfico 2 Diagrama de flujo de datos 5 Gráfico 3 Caso de Uso de configuración 6 Gráfico 4 Caso de Uso de Envío de Correo 7 Gráfico 5 Caso de Uso de Recepción de correo 8 Gráfico 6 Caso de Uso de Ejecución de tarea 9 Gráfico 7 DIO de Ejecución de tarea 17 Gráfico 8 DIO de Conexión a la Base de Datos 18 Gráfico 9 DIO de Lectura de mensaje 19 Gráfico 10 DIO de Envío de mensaje 20 Gráfico 11 Diagrama de la clase OSPOP3 23 Gráfico 12 Pantalla de Inicio de Sesión 71 Gráfico 13 Pantalla de Inicio de Sesión, cambio de contraseña 72 Gráfico 14 Pantalla principal 73 XXI Gráfico 15 Pantalla de registro de parámetros de correo 75 Gráfico 16 Pantalla de Configuración de respaldos 77 Gráfico 17 Pantalla de configuración de seguridad 78 Gráfico 18 Pantalla de Recepción de mensajes de correo 79 Gráfico 19 Pantalla de Ayuda de la aplicación 80 Gráfico 20 Pantalla de Envío de correo desde GMail 81 Gráfico 21 Tareas de la aplicación 82 1 Introducción En la actualidad en las grandes empresas podemos encontrar un DBA (Administrador de Bases de Datos) el cual cuenta con las herramientas y conocimientos para una correcta administración del motor de base implementada en su respectiva organización y bajo la cual se encuentran desarrolladas sus aplicaciones. Pero en las pequeñas y medianas empresas no existe una persona especializada en Bases de Datos, sino que muchas de las veces existen una o varias personas que realizan múltiples tareas dentro del Departamento de Sistemas, y ello concurre a que no se pueda obtener un excelente rendimiento de la Dase de Datos que se administre, realizándose simplemente tareas básicas y elementales aprendidas en las aulas de la universidad o leídas en un libro al momento de cursar la materia de Bases de Datos. También se da que un DBA, siempre que ocurra algún problema con la Base de datos, ya sea por respaldo o restauración de datos, este deba conectarse a través de alguna herramientas de acceso remoto como son: Teamviewer, LogMeIn, Real VNC y otros, para poder dar asistencia en las eventualidades ocurridas cuando él no se encuentra en el lugar de los hechos, siempre y cuando ambos equipos que existen en los extremos del acceso remoto cuenten con la herramienta instalada localmente. Es allí que surge el inconveniente en caso de no se cuente con los medios para el acceso remoto, que el DBA o profesional de Sistemas, deba trasladarse personalmente al lugar de los hechos. 2 Capítulo I MANUAL TECNICO 3 Introducción El propósito de todo manual técnico es proporcionar la información necesaria y suficiente, para guiar al profesional del área de Sistemas, tanto el Analista como el Programador, para su revisión y conocimientos de cómo fue analizado, diseñado y programado este prototipo de aplicación y poder en cualquier momento poder realizar una actualización a partir de la información contenida, y así adaptarla mas a los requerimientos de la empresa que implemente esta aplicación. Adicionalmente, se describe detalladamente las características físicas y técnicas de cada elemento que se utiliza en esta aplicación. 4 Diagrama General del Flujo del Sistema Aquí se representa de manera gráfica el flujo de datos a través del sistema de información. También se puede visualizar el procesamiento de datos de manera simplificada o detallada. Realizar este tipo de diagramas es muy común entre los diseñadores, ya que con ello dibujan un contexto a nivel de diagramas, en el que primero muestra la interacción entre el sistema y las entidades externas. Gráfico No. 1. Diagrama de Flujo del Sistema. PC - Cuenta de Correo Celular Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación. Base de Datos 1 Aplicación Base de Datos 2 5 Diagrama de Flujo de Datos Gráfico No. 2. Diagrama de Flujo de Datos. Envío de correo ¿Existe cuenta de correo? NO Ignorar el contenido del SI ¿Esta correcto Usuario y Contraseña? NO Emitir mensaje de usuario y contraseña inválidas SI Revisión Contenido de correo ¿Existe Palabra Reservada? NO No ejecuta tarea alguna SI Ejecuta la tarea correspondiente ¿Tarea Realizada? NO Envía mensaje de error de la tarea SI Confirmación del estado de la ejecución de la tarea Envío de mensaje al correo a la cuenta Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación. 6 Diagrama de Casos de Usos Configuración Este proceso consiste en la configuración inicial de los parámetros o variables para el desenvolvimiento de la aplicación. Este es uno de los escenarios más importantes ya que si los parámetros no está completamente correctos y registrados, el proceso de lectura de correo y ejecución de las tareas de respaldo y/o restauración, no lograrán los objetivos esperados. Gráfico No. 3. Caso de Uso de Configuración. Configuración de parámetros iniciales Elaboración: Alberto Arreaga C. Fuente: Diseño del prototipo de la aplicación. 7 Envío de correo Este proceso consiste en el envío del mensaje del correo en el formato establecido, desde la cuenta de correo permitida para el procesamiento de la tarea. Este escenario consiste en que el administrador envíe sus solicitudes a través de la cuenta de correo, conforme el formato de la tarea a realizar que se definió. Gráfico No. 4. Caso de Uso de Envío de Correo. Envió de correo a la cuenta Elaboración: Alberto Arreaga C. Fuente: Diseño del prototipo de la aplicación. 8 Recepción de correo Este proceso consiste en la lectura de los correos desde la cuenta de la aplicación y que procesará los mensajes recibidos de la cuenta permitida, revisar el contenido del mensaje y el posterior procesamiento de la respectiva tarea. Gráfico No. 5. Caso de Uso de Recepción de Correo. Lectura de correo desde la cuenta Revisión del cuerpo del mensaje Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación. Envío de la tarea de ejecución a la base de datos 9 Ejecución de tareas Este proceso se encarga de la ejecución de la tarea de respaldo o restauración, de la base, una vez que ha cumplido todas las exigencias para su final procesamiento. En este escenario empieza una vez que ha sido comprobado el formato de tarea, pasa a realizar la correspondiente tarea solicitada, ya sea esta la de realizar un respaldo de la base o restaurar una base de datos. Gráfico No. 6. Casos de Uso de Ejecución de tareas. Ejecución de tareas de Respaldo Elaboración: Alberto Arreaga C. Fuente: Diseño del prototipo de la aplicación. 10 Descripción de los Escenarios Configuración de la aplicación Tabla No. 1. Escenario de Configuración correcta. Nombre 1.1.- Configuración de la aplicación Configurar parámetros de la aplicación Objetivo El administrador del sistema deberá parametrizar variables iniciales para la Descripción ejecución de la aplicación. • Configurar la cuenta de correo a la que se envía las respuestas. Datos • La misma cuenta servirá para leer las instrucciones a realizar. específicos • Configuración de las bases sobre las cuales se ejecutaran tareas de respaldos. Intervalo Sólo presente. Estabilidad Alta El desenvolvimiento de la aplicación depende de la correcta configuración Comentario de los parámetros iniciales. Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación. 11 Configuración de la aplicación Incorrecta Tabla No. 2. Escenario de Configuración Incorrecta. Nombre 1.2.- Configuración de la aplicación Incorrecta. Configurar parámetros incorrectos de la aplicación. Objetivo En el caso de que el administrador del sistema parametrice las variables Descripción iniciales erroneamente, la ejecución de la aplicación no será confiable al momento de realizar las tareas de respaldos. Datos • Configurar la cuenta de correo equivocada o mal descrita. • Mala descripción del nombre del Servidor de Datos. • Mala elección de las bases sobre las cuales se ejecutaran tareas de específicos respaldos. • Mala asignación de usuario y clave para que pueda ejecutar las tareas de respaldo vía correo electrónico. Intervalo Sólo presente. Estabilidad Alta El desenvolvimiento de la aplicación depende de la correcta configuración Comentario de los parámetros iniciales. Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación. 12 Envío de Correo Tabla No. 3. Caso de uso del Envío de correo. Nombre 2.1.- Envío de Correo Envío del correo con una determinada instrucción para la generación Objetivo de los respaldos de la base. Descripción El envío del correo deberá incluir una palabra clave dentro del cuerpo del mensaje, la cual será procesa para luego ser enviada la instrucción de ejecución sobre los respaldos. Datos • Envío del correo por parte del DBA. específicos • Dentro del correo se enviará una palabra clave para la ejecución de la tarea. • Esperar la confirmación de la recepción y ejecución de la tarea. Intervalo Sólo presente. Estabilidad Alta Comentario Se deberá tener en cuenta las palabras reservadas para el lenguaje SQL, que son conocidas por un DBA. Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación. 13 Recepción de Correo Válido Tabla No. 4. Caso de uso de la recepción. Nombre 3.1.- Recepción de Correo Válido Leer el correo desde una cuenta determinda en la configuración de los Objetivo parámetros iniciales. Descripción Recibir el correo de una cuenta determinada, procesar el contenido del mensaje para evaluar la palabra reservada que dará paso a la ejecución de una tarea de respaldo. Datos • Lectura del mensaje desde la aplicación. específicos • Procesar el contenido del mensaje. • Envío de la instrucción para la ejecución de la respectiva tarea de respaldo. Intervalo Sólo presente. Estabilidad Alta Comentario Una vez que se procesa el contenido del mensaje se dará paso a la ejecución de la tarea de respaldo. Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación. 14 Lectura de Correo con mensaje invalido Tabla No. 5. Caso de uso lectura de correo. Nombre 3.2- Lectura de Correo con mensaje invalido Leer el contenido del correo de la cuenta con un mensaje que no Objetivo va a realizar tarea alguna. Descripción Al recibir el correo con el contenido del mensaje no válido para la ejecución de alguna tarea de respaldo, se ignorará el mensaje. Datos • Revisar el contenido del mensaje. específicos • Comprobar la existencia de palabras reservadas. • Ignorar el correo. Intervalo Sólo presente. Estabilidad Alta Comentario No se enviará ninguna respuesta ya que al no existir las palabras reservadas para la ejecución de tareas no se debe notificar. Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación. 15 Ejecución de Tareas sin error Tabla No. 6. Caso de Uso de ejecución de tarea. Nombre 4.1.- Ejecución de Tareas sin error Ejecutar la correspondiente tarea de respaldo, según el contenido Objetivo del mensaje leído. Descripción Ejecutar la tarea de respaldo sobre el motor de la base de datos. Datos específicos • Ejecución de los respaldos de datos como: • Respaldos completos. • Respaldos diferenciales. • Respaldos del archivo log. • Respaldos de los Archivos de datos y Grupos de datos Intervalo Sólo presente. Estabilidad Alta Una vez procesada la tarea de respaldo se enviará un correo de Comentario confirmación de la tarea, caso contrario el estado de la ejecución de la tarea. Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación. 16 Ejecución de Tareas con error Tabla No. 7. Caso de uso al ejecutar una tarea con error Nombre 4.2.- Ejecución de Tareas con error Confirmar la no ejecución de la tarea por error en el proceso, Objetivo según sea el caso. Descripción Se ejecuta un mensaje de error desde la Base de Datos. Datos • Ejecutar el servicio de mensaje desde SQL Server. • Envío de mensaje descriptivo sobre el error producido al específicos ejecutar la tarea. • Guardar una bitácora del error ocurrido. Intervalo Sólo presente. Estabilidad Alta Una vez procesada la ejecución de la tarea y esta no se pueda Comentario realizar, se enviará un mensaje de correo sobre dicha tarea no realizada. Elaborado: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación. 17 Diagrama de Objetos Ejecutar la Tarea de Respaldo o Restauración Gráfico No. 7. DIO Ejecución de tarea. Conexión Comprobar conexión con la base Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación. Mail Leer y comprobar la cuenta Respaldos Verificar y ejecutar tarea de respaldo 18 Conexión con la Base de Datos Gráfico No. 8. DIO de conexión con la Base de Datos. Conexión Mail Comprobar conexión con la base No existe comunicación con Servidor de Datos Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación. Respaldos 19 Lectura de Mensajes de la Cuenta de Correo Gráfico No. 9. DIO de Lectura de mensaje. Conexión Comprobar conexión con la base Mail Respaldos Leer y comprobar la cuenta Ignorar lectura de mensaje Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación. 20 Envío de confirmación o Mensaje de Error Gráfico No. 10. DIO de Envío de mensaje. Conexión Comprobar conexión con la base Mail Leer y comprobar la cuenta Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación. Respaldos Verificar y ejecutar tarea de respaldo Envía mensaje de error en la ejecución de la tarea 21 Diagrama de Clases Clase para el Registro de las Variables La clase Registro está desarrollada para el acceso a los variables de registros que se necesitan tener guardadas para el buen desenvolvimiento de la aplicación. Esta clase no ayudará a poder obtener los datos en cualquier instancia en que se requiera el contenido del valor de cualquiera de las claves de la aplicación. Tabla No. 8. Clase Registro. DclsRegistro Tipo Func_ConsultarValor Público Func_CrearNuevaClave Público Func_EliminarClave Público Func_EliminarValor Público Func_EstablecerValor Público QueryValueEx Privado SetValueEx Privado GetRegErrorText Privado Elaborado: Alberto C. Arreaga C. Fuente: Clase DclsRegistro. 22 Clase para la Conexión con la Base de Datos La clase Conexión está desarrollada para crear la conexión hacia el Servidor de Base de Datos existente, así poder abrir y cerrar esta conexión en cualquier momento en que se vaya a ejecutar las tareas por la aplicación. Tabla No. 9. Clase Conexión. DclsConexion Tipo Func_ConexionServidorDB Público Proc_AbrirConexionDB Público Proc_CerrarConexion Público Errores Público sCadConexion Público adoConexion Público sNomServidorDB Público sNombreDB Público sUsuarioDB Público sContraseñaDB Público sTipoConexionDB Público Elaborado: Alberto C. Arreaga C. Fuente: Clase DclsConexion. 23 Clase para la Conexión con la Cuenta de Correo La clase OsPop3 es componente desarrollado por la empresa OstroSoft, con el objetivo de recuperar mensajes de correo electrónico mediante programación. Funciona para cuentas de correos con servidores POP3. Soporta correo electrónico seguro (TLS / SSL), correo electrónico (MIME) archivos adjuntos, correo HTML, cabeceras personalizadas, objetos incrustados. La versión utilizada es para Visual Basic 6.0. (Mas sobre este componente en el Anexo 1 de este Tomo II). Gráfico No. 11. Diagrama de la Clase OSPOP3. Header Attachmentt OsPOP3 Email Message Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/. MessageListEntry Session 24 Clases del OSPOP3 La clase Sesion es la de mayor jerarquía dentro del componente OSPOP3, con relación a las demás clases sque conforman el componente, ya que mantiene la conexión directa con el servidor de correo, a través de la cual se recupera las estadísticas del buzón de entrada de la cuenta de correo, así como también la lista de mensajes que los recupera y/o los elimina. Tabla No. 10. Clase Session. Session Métodos Tipo OpenPOP3 Público ClosePOP3 Público GetMessageList Público DeleteMessage Público GetMailboxSize Público GetMessage Público GetMessageCount Público GetMessageHeaders Público ResetSession Público State Público MailboxSize Público MessageCount Público DeleteMessage Público Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/POP3_component.asp 25 La clase Email se encarga del encabezado cada uno de los mensajes que llegan al buzón, es decir del nombre y dirección del correo de quien remite el mensaje y los destinatarios. Tabla No. 11. Clase Email. Email Métodos Tipo Name Público Address Público Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/POP3_component.asp La clase MessageListEntry contiene el tamaño del mensaje la posición del mensaje según la llegada al buzón y el código del mensaje, que identifican los mensajes dependiendo de su número ordinal del servidor de correo, es decir el UIDL. Tabla No. 12. Clase MessageListEntry. MessageListEntry Métodos Tipo UIDL Público ID Público Size Público Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/POP3_component.asp 26 La clase Header se encarga del encabezado del mensaje, su contenido y valor. Tabla No. 13. Clase Header. Header Métodos Tipo Name Público Values Público Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/POP3_component.asp La clase Message devuelve en sus 2 funciones el contenido una vez analizado el mensaje de correo electrónico. Tabla No. 14. Clase Message. Message Métodos Tipo Save Público Sender.Name Público Sender.Address Público Recipients Público RecipientsCC Público UIDL Público Headers Público Body Público Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/POP3_component.asp 27 La clase Attachment se encarga de recoger los datos acerca de los archivos adjuntos, nombre del archivo, el cuerpo, el tipo de archivo adjunto debido al intercambio de información a través del internet, es decir el MIME, el tipo de codificación de los datos adjuntos Tabla No. 15. Clase Attachment. Attachment Métodos Tipo Save Público AttachmentName Público Body Público Filename Público ContentType Público ContentTransferEncoding Público ContentDisposition Público Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/POP3_component.asp 28 Diccionario de Datos Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización. Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño. En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. Los elementos mas importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos. 29 Tabla No. 16. Diccionario de Datos. Objeto Module ClassModule Project Form MDIForm Abrev. mod cls pry frm mdi Objeto Public Private Const Function Sub ClsRegistro ClsConexion String Integer Long Control Boolean Error Object Abrev. g l const Func Proc oClsR oClsC s i l c b err obj Elaborado: Alberto C. Arreaga C. Fuente:Herramienta Visual Basic 6.0. Objeto SmartMenuXP Toolbar XPButton Label StatusBar ListView Frame Skin Timer PictureBox TextBox SSTab ComboBox CheckBox Line CommandButton Abrev. smn tlb cmd lbl stb lvw fme skn tmr pbx txt sst cmb chk lne cmd 30 Procedimientos y Funciones Función Func_ConsultarValor Se encuentra dentro de la clase DclsRegistro. Recibe 3 parámetros, el nombre de la carpeta principal del Editor de Registro (HKEY_CURRENT_USER), el directorio o ruta donde se encuentra el conjunto de valores de la clave (Software\TesisGrado\Proyecto2010), dentro de esta clave se encuentran las subclaves (Conexión, Correo, Parametro, Respaldo, Seguridad), y por último el nombre del valor. Devuelve el contenido o información del valor de la clave que se solicita. Public Function Func_ConsultarValor(lClave As Long, sNombre_Clave As _ String, sNombre_valor As String) Dim lHandle_Clave As Long Dim vValor As Variant Dim lRet As Long lRet = RegOpenKeyEx(lClave, sNombre_Clave, 0, KEY_ALL_ACCESS, lHandle_Clave) lRet = QueryValueEx(lHandle_Clave, sNombre_valor, vValor) ConsultarValor = Mid(Trim(vValor), 1, Len(vValor) - 1) RegCloseKey (lHandle_Clave) End Function 31 Función Func_ EstablecerValor Se encuentra dentro de la clase DclsRegistro. Recibe 5 parámetros, el nombre de la carpeta principal del Editor de Registro (HKEY_CURRENT_USER), el directorio o ruta donde se encuentra el conjunto de valores de la clave (Software\TesisGrado\Proyecto2010), dentro de esta clave se encuentran las subclaves (Conexión, Correo, Parametro, Respaldo, Seguridad), el nombre del valor, el contenido o información a guardar en el valor, y el tipo de valor (Alfanumérico, Binario, DWord, Cadena múltiple). Establece un valor en el contenido o información del valor de la clave que se envía. Public Function EstablecerValor(lClave As Long, sNombre_Clave As String, _ sNombre_Valor As String, vEl_Valor As Variant, lTipo_Valor As Long) Dim lRet As Long Dim lHandle_Clave As Long lRet = RegOpenKeyEx(lClave, sNombre_Clave, 0, KEY_ALL_ACCESS, lHandle_Clave) lRet = SetValueEx(lHandle_Clave, sNombre_Valor, lTipo_Valor, vEl_Valor) RegCloseKey (lHandle_Clave) End Function 32 Función Func_ CrearNuevaClave Se encuentra dentro de la clase DclsRegistro. Recibe 2 parámetros, el nombre de la carpeta principal del Editor de Registro (HKEY_CURRENT_USER), el directorio o ruta donde se grabará la clave (Software\TesisGrado\Proyecto2010), mas el nombre de la subclave (Conexión, Correo, Parametro, Respaldo, Seguridad). Crea la subclave que se envía. Public Function CrearNuevaClave(lClave As Long, sNombre_Clave As String) Dim sHandle_Clave As Long Dim sRet As Long sRet = RegCreateKeyEx(lClave, sNombre_Clave, 0&, vbNullString, _ REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, _ sHandle_Clave, sRet) RegCloseKey (sHandle_Clave) End Function 33 Función Func_ConexionServidorDB Se encuentra dentro de la clase DclsConexion. En esta función se realiza el puente de conexión hacia la base de datos dependiendo de la autenticación (Autenticación Windows o Autenticación SQL) que se registro en la configuración de las variables. Public Function Func_ConexionServidorDB() As Boolean On Error GoTo fin sCadConexion = "" If sTipoConexionDB = "SQLS" Then sCadConexion = sCadConexion & "Provider=SQLOLEDB.1;" sCadConexion = sCadConexion & "Data Source=" & sNomServidorDB & ";" sCadConexion = sCadConexion & "User ID =" & sUsuarioDB & ";" sCadConexion = sCadConexion & "Password=" & sContraseñaDB & ";" sCadConexion = sCadConexion & "DataBase=" & sNombreDB ElseIf sTipoConexionDB = "WIND" Then sCadConexion = sCadConexion & "Provider=SQLOLEDB.1;" sCadConexion = sCadConexion & "Data Source=" & sNomServidorDB & ";" sCadConexion = sCadConexion & "User ID =;" sCadConexion = sCadConexion & "Password=;" sCadConexion = sCadConexion & "DataBase=" & sNombreDB End If 34 sCadConexion = sCadConexion & "DataBase=" & sNombreDB End If Set adoConexion = New ADODB.Connection adoConexion.ConnectionString = sCadConexion adoConexion.ConnectionTimeout = 0 adoConexion.CommandTimeout = 0 adoConexion.Open Func_ConexionServidorDB = True Exit Function fin: msgERROR = msgERROR + " " + Err.Description Func_ConexionServidorDB = False End Function Procedimiento Proc_AbrirConexionDB Se encuentra dentro de la clase DclsConexion. En esta función sirve para abrir la conexión una vez que se armó la cadena de conexión. 35 Public Sub Proc_AbrirConexionDB() On Error GoTo fin adoConexion.ConnectionString = sCadConexion adoConexion.Open adoConexion.ConnectionString, "", "" Exit Sub fin: msgERROR = msgERROR + " " + Err.Description End Sub Procedimiento Proc_CerrarConexion Se encuentra dentro de la clase DclsConexion. En esta función sirve para cerrar la conexión una vez que se haiga realizados las sentencias con la base de datos. Public Sub Proc_CerrarConexion() On Error GoTo fin adoConexion.Close Exit Sub fin: msgERROR = msgERROR + " " + Err.Description End Sub 36 Función Func_ConsultaParametros Se encuentra dentro del Proyecto pryCorreo. Recibe 2 parámetros: el número de la posición subclave, y el nombre del valor o entrada de registro a consulta. Devuelve el contenido o información del valor a consulta. Public Function fg_ConsultaParametros(sNumClave As Integer, _ sValor As String) As String fg_ConsultaParametros = "" Select Case sNumClave Case 1: sClave = "": sClave = const_Clave1 Case 2: sClave = "": sClave = const_Clave2 Case 3: sClave = "": sClave = const_Clave3 Case 4: sClave = "": sClave = const_Clave4 Case 5: sClave = "": sClave = const_Clave5 End Select fg_ConsultaParametros = Trim(oclsRegistro.ConsultarValor _ (HKEY_CURRENT_USER, const_Directorio + sClave, sValor)) End Function 37 Función Func_ GrabarParametros Se encuentra dentro del Proyecto pryCorreo. Recibe 3 parámetros: el número de la posición subclave, el nombre del valor o entrada de registro a consulta y el contenido o información del valor. Devuelve un valor verdadero sí la acción es registrada correctamente. Public Function fg_GrabarParametros(sNumClave As Integer, _ sValor As String, sDatoValor As String) As Boolean Dim sClave As String Select Case sNumClave Case 1: sClave = "": sClave = const_Clave1 Case 2: sClave = "": sClave = const_Clave2 Case 3: sClave = "": sClave = const_Clave3 Case 4: sClave = "": sClave = const_Clave4 Case 5: sClave = "": sClave = const_Clave4 End Select Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _ const_Directorio + sClave) Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _ const_Directorio + sClave, sValor, sDatoValor, REG_SZ) End Function 38 Función Func_ ExtraeCadena Se encuentra dentro del Proyecto pryCorreo. Recibe 3 parámetros: la cadena en que se buscara un determinado valor o dato entre los símbolos, carácter o símbolo inicial que hace de limite, carácter o símbolo final que hace de límite. Devuelve un valor verdadero sí la acción es registrada correctamente. Public Function fg_ExtraeCadena(sCadena As String, _ sCaracterIni As String, sCaracterFin As String) Dim iPosicionIni As Integer Dim iPosicionFin As Integer fg_ExtraeCadena = "" iPosicionIni = InStr(1, sCadena, sCaracterIni) iPosicionFin = InStr(1, sCadena, sCaracterFin) If iPosicionIni > 0 And iPosicionFin > 0 Then fg_ExtraeCadena = Mid(sCadena, iPosicionIni + 1, _ iPosicionFin - iPosicionIni - 1) End If End Function 39 Función Func_Validar_Correo Se encuentra dentro del Proyecto pryCorreo. Recibe 1 parámetros: la cuenta de correo electrónico. Devuelve un valor verdadero sí el formato de la cuenta es correcta. Public Function Func_Validar_Correo(ByVal Email As String) As Boolean Dim strTmp As String Dim n As Long Dim sEXT As String MensajeError = "" Func_Validar_Correo = True sEXT = Email Do While InStr(1, sEXT, ".") <> 0 sEXT = Right(sEXT, Len(sEXT) - InStr(1, sEXT, ".")) Loop If Email = "" Then Func_Validar_Correo = False MensajeError = MensajeError & "No se indicó ninguna dirección" _ & " de " & "mail para verificar!" & vbNewLine ElseIf InStr(1, Email, "@") = 0 Then Func_Validar_Correo = False MensajeError = MensajeError & "La dirección de email con " _ & "contiene el signo @" & vbNewLine 40 ElseIf InStr(1, Email, "@") = 1 Then Func_Validar_Correo = False MensajeError = MensajeError & "El @ No puede estar al " _ & " principio" & vbNewLine ElseIf InStr(1, Email, "@") = Len(Email) Then Func_Validar_Correo = False MensajeError = MensajeError & "El @ no puede estar al final" _ & " de la dirección" & vbNewLine ElseIf Func_Valida_Extension(sEXT) = False Then Func_Validar_Correo = False MensajeError = MensajeError & "LA dirección no tiene un " _ & "dominio válido, " MensajeError = MensajeError & "por ejemplo : " & vbNewLine MensajeError = MensajeError & ".com, .net, .gov, .org, .edu, " _ & ".biz, .tv etc.. " & vbNewLine ElseIf Len(Email) < 6 Then Func_Validar_Correo = False MensajeError = MensajeError & "La dirección no puede ser " _ & "menor a 6 caracteres." & vbNewLine End If strTmp = Email 41 Do While InStr(1, strTmp, "@") <> 0 n=1 strTmp = Right(strTmp, Len(strTmp) - InStr(1, strTmp, "@")) Loop If n > 1 Then Func_Validar_Correo = False MensajeError = MensajeError & "Solo puede haber un @ en " _ & "la dirección de email" & vbNewLine End If Dim pos As Integer pos = InStr(1, Email, "@") If Mid(Email, pos + 1, 1) = "." Then Func_Validar_Correo = False MensajeError = MensajeError & "El punto no puede estar " _ & "seguido del @" & vbNewLine End If If MensajeError <> "" Then MsgBox MensajeError, vbCritical End If End Function 42 Función Func_Ultimas_Claves Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada al momento de realizar el cambio de contraseña, verifica si la nueva contraseña está entre las últimas 5 anteriores contraseñas utilizadas. Recibe 1 parámetro: la nueva contraseña que se va a cambiar. Devuelve un valor verdadero en caso de existir la clave entre las últimas 5 anteriormente usadas. Public Function Func_Ultimas_Claves(sClaveNueva As String) _ As Boolean Dim iIndice As Integer Dim sClaveAnte As String Dim sVariable As String Func_Ultimas_Claves = False iIndice = 5 sClaveNueva = fg_CifrarCaracter(Trim(sClaveNueva), _ sCaracterClave, True) For iIndice = 1 To iIndice sVariable = "Contraseña0" & CStr(iIndice) sClaveAnte = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5, sVariable)) 43 sClaveAnte = fg_CifrarCaracter(Trim(sClaveAnte), _ sCaracterClave, True) If sClaveAnte = sClaveNueva And sClaveAnte <> "" Then Func_Ultimas_Claves = True Exit Function End If Next iIndice End Function Procedimiento Proc_Registro_Hitorial_Clave Se encuentra dentro del Proyecto pryCorreo. Este procedimiento es llamada al momento de que se realiza el cambio de contraseña, guarda el historial moviendo de posición las anteriores contraseñas. Recibe la nueva clave. Public Sub Proc_Registro_Hitorial_Clave(sClaveNueva As String) Dim iIndice As Integer Dim sVariableAnte As String Dim sVariableDesp As String Dim sClaveAnte As String For iIndice = 4 To 1 Step -1 44 sVariableAnte = "Contraseña0" & CStr(iIndice) sVariableDesp = "Contraseña0" & CStr(iIndice + 1) sClaveAnte = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5, sVariableAnte)) Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5) Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5, sVariableDesp, sClaveAnte, REG_SZ) Next iIndice Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5) sClaveNueva = modFuncionesVarias.fg_CifrarCaracter(sClaveNueva, _ sCaracterClave, False) Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5, "Contraseña01", sClaveNueva, _ REG_SZ) End Sub 45 Función Func_AvisoCambioClave Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada cuando la clave del usuario está por caducar, dando aviso los n días que tiene para que pueda cambiar la clave. Public Function Func_AvisoCambioClave() Dim sFechaActual As String Dim sFechaCambio As String Dim sFechaAviso As String Dim nDiasExpira As Integer Dim nDiasVigencia As String Dim nDiasPorcAviso As String sFechaActual = Format(Date, "yyyy/mm/dd") nDiasVigencia = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5, "DiasVigencia")) sFechaCambio = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5, "FechaCambio")) sFechaAviso = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5, "FechaAviso")) 46 nDiasExpira = DateDiff("d", sFechaCambio, sFechaActual) + 1 nDiasPorcAviso = nDiasVigencia * 0.5 nDias = nDiasVigencia - nDiasExpira If nDiasExpira > nDiasPorcAviso Then If sFechaAviso <> sFechaActual Then MsgBox "La Contraseña caduca dentro de " & CStr(nDias) _ & " Días", vbCritical, "SISTEMAS" Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5) Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave5, "FechaAviso", sFechaActual, _ REG_SZ) End If End If End Function 47 Función Func_EnvioCorreo Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada cuando se envía la respuesta a la cuenta de correo sobre la petición solicitada a realizar en la base de datos. Recibe 2 parámetros: el mensaje que se enviará, y el nombre del archivo adjunto, este parámetro es opcional. Public Sub Func_EnvioCorreo(sMensaje As String, _ Optional sArchivoAdjunto As String = "") Dim sFecha As String Dim sHora As String sFecha = Format(Date, "yyyymmdd") sHora = Format(Time, "hhMM") Screen.MousePointer = vbHourglass With frmSession.sendmail1 .SMTPHostValidacion = VALIDATE_HOST_NONE .ValidarEmail = VALIDATE_SYNTAX .Delimitador = ";" .FromDisplayName = "Aplicativo Respaldos " & sFecha & "-" & sHora .Remitente = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave2, "CorreoAdm")) 'txtFrom.Text .SMTPHost = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave2, "ServidorCCS")) 'txtServer.Text 48 .Destinatario = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "CuentaDBA")) 'txtTo.Text .Asunto = "Respuesta a su Requerimiento" 'txtSubject.Text .Mensaje = sMensaje 'txtMsg.Text If sArchivoAdjunto <> "" Then .Adjunto = sArchivoAdjunto Else .Adjunto = "" End If .Prioridad = Baja .UsarLoginSMTP = True .Usuario = "proyecto.mnas" 'txtUserName Dim sCadena As String sCadena = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave2, "ContraseñaAdm")) 'txtPassword .Password = fg_CifrarCaracter(sCadena, sCaracterClave, True) .Codificacion = MIME_ENCODE .EnviarEmail End With Screen.MousePointer = vbDefault End Sub 49 Función Func_ProcesaCorreo Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada cuando se va a procesar todo el contenido mensaje desde la bandeja de entrada, se encarga de que el mensaje tenga un mensaje. Public Function Func_ProcesaCorreo() Dim m As OSPOP3.Message Dim h As OSPOP3.Header Dim s Dim nd As Node Dim e As OSPOP3.Email Dim a As OSPOP3.Attachment Dim iCount As Integer Dim i As Integer Dim j As Integer On Error GoTo err_handler With frmSession .tvw.Nodes.Clear i = .lvwMessages.SelectedItem.Text 50 If .bHeadersOnly Then Set m = frmSession.oSession.GetMessageHeaders(i) Else Set m = frmSession.oSession.GetMessage(i) End If .tvw.Nodes.Add , , "m" & i, "message " & i .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "from", "from" .tvw.Nodes.Add "m" & i & "from", tvwChild, , "name: " _ & m.Sender.Name .tvw.Nodes.Add "m" & i & "from", tvwChild, , "address: " _ & m.Sender.Address .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "to", "to" For Each e In m.Recipients Set nd = .tvw.Nodes.Add("m" & i & "to", tvwChild, , "recipient") .tvw.Nodes.Add nd.Index, tvwChild, , "name: " & e.Name .tvw.Nodes.Add nd.Index, tvwChild, , "address: " & e.Address Next .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "cc", "cc" For Each e In m.RecipientsCC Set nd = tvw.Nodes.Add("m" & i & "cc", tvwChild, , "recipient") .tvw.Nodes.Add nd.Index, tvwChild, , "name: " & e.Name .tvw.Nodes.Add nd.Index, tvwChild, , "address: " & e.Address 51 Next .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "subject", "subject" .tvw.Nodes.Add "m" & i & "subject", tvwChild, , m.Subject .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "date", "date" .tvw.Nodes.Add "m" & i & "date", tvwChild, , m.DateSent .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "ContentType", _ "Content-Type" .tvw.Nodes.Add "m" & i & "ContentType", tvwChild, , m.ContentType .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "ContentTransferEncoding", _ "Content-Transfer-Encoding" .tvw.Nodes.Add "m" & i & "ContentTransferEncoding", tvwChild, _ , m.ContentTransferEncoding .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "char", "Charset" .tvw.Nodes.Add "m" & i & "char", tvwChild, , m.Charset .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "UIDL", "UIDL" .tvw.Nodes.Add "m" & i & "UIDL", tvwChild, , m.UIDL .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "h", "headers" For Each h In m.Headers .tvw.Nodes.Add "m" & i & "h", tvwChild, "m" & i & h.Name, h.Name For Each s In h.Values .tvw.Nodes.Add "m" & i & h.Name, tvwChild, , s Next 52 Next If Not .bHeadersOnly Then .tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "body", "body" tvw.Nodes.Add "m" & i & "body", tvwChild, , m.Body If Func_ProcesaMensaje(m.Body) Then MsgBox "mensaje correcto", vbInformation, "Mensaje Sistemas" Else MsgBox "mensaje incorrecto", vbInformation, "Mensaje Sistemas" End If End If End With err_handler: If Err.Number <> 0 Then MsgBox "Error " & Err.Number & ": " & Err.Description End Function Función Func_ProcesaMensaje Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada cuando se va a procesar el mensaje del correo leído, se encarga de procesar la tarea contenida en el cuerpo del mensaje. Es aquí donde dependiendo de la tarea y de la seguiradad de dicho mensaje, se conecta a la base para ejecutar la correspondiente tarea enviada. 53 Public Function Func_ProcesaMensaje(sMensaje As String) As Boolean Dim sCadena As String Dim sCadenaPermiso As String Dim sNombreRespaldo As String Dim sCadenaBase As String Dim sCadenaTarea As String Dim sCadenaArchivo As String Dim sCadenaArchivo2 As String Dim sCadenaModo As String Dim sCadenaFecha As String Dim sTipoConsulta As String Dim adoRcdset As New ADODB.Recordset On Error GoTo eMensaje Dim sqlQuery As String Dim sMensajeErr As String Dim sDirRespaldo As String Dim sArchivo As String Dim sPosCaracter As Integer Dim sUsuarioPermiso As String Dim sContraseñaPermiso As String Dim sCadenaTipoFrecuncia As String Dim sCadenaIntervaloFrecuencia As String 54 Dim sCadenaTipoSubFrecuencia As String Dim sCadenaIntervaloSubFrecuencia As String Dim sCadenaFechaDesde As String Dim sCadenaFechaHasta As String Dim sCadenaHoraDesde As String Dim sCadenaHoraHasta As String sTipoConsulta = "" Func_ProcesaMensaje = False If sMensaje = "" Then Exit Function Func_ProcesaMensaje = False sMensajeCorreo = Trim(UCase(sMensaje)) sMensajeCorreo = Trim(Replace(sMensajeCorreo, Chr(13), Chr(32), _ 1, -1, vbTextCompare)) sMensajeCorreo = Trim(Replace(sMensajeCorreo, Chr(10), Chr(32), _ 1, -1, vbTextCompare)) sCadenaPermiso = Func_ExtraeBloque("Usuario", ":", ".") If sCadenaPermiso <> "" Then sPosCaracter = InStr(1, sCadenaPermiso, sCaracterClave, _ vbTextCompare) sUsuarioPermiso = Mid(sCadenaPermiso, 1, sPosCaracter - 1) sContraseñaPermiso = Mid(sCadenaPermiso, sPosCaracter + 1, _ Len(sCadenaPermiso)) 55 Else sPosCaracter = 0 sUsuarioPermiso = "" sContraseñaPermiso = "" End If Dim sUsuario As String Dim sClave As String sUsuario = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "UsuarioApl")) sClave = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ContraseñaApl")) sClave = fg_CifrarCaracter(sClave, sCaracterClave, True) If sUsuarioPermiso = UCase(sUsuario) And _ sContraseñaPermiso = sClave Then sCadenaBase = Func_ExtraeBloque("BASE", ":", ".") If sCadenaBase = "" Then GoTo eMensaje sCadenaTarea = Func_ExtraeBloque("TAREA", ":", ".") If sCadenaTarea = "" Then GoTo eMensaje sCadenaModo = Func_ExtraeBloque("MODO", ":", ".") If sCadenaModo = "" And sCadenaTarea <> "LISTARESPALDO" _ Then GoTo eMensaje sCadenaArchivo = Func_ExtraeBloque("Archivo", ":", ".") 56 sCadenaArchivo2 = Func_ExtraeBloque("Archivo", ":", ".") If sCadenaArchivo = "" And sCadenaArchivo2 = "" And _ sCadenaModo = "RESTAURAR" Then GoTo eMensaje sCadenaFecha = Func_ExtraeBloque("FECHA", ":", ".") If sCadenaFecha = "" And sCadenaTarea = "LISTARESPALDO" _ Then GoTo eMensaje sCadenaTipoFrecuncia = Func_ExtraeBloque("TipoFrecuencia", _ ":", ".") If sCadenaTipoFrecuncia = "" And sCadenaTarea <> _ "TAREAPROGRAMADA" Then GoTo eMensaje sCadenaIntervaloFrecuencia = Func_ExtraeBloque _ ("IntervaloFrecuencia", ":", ".") If sCadenaIntervaloFrecuencia = "" And sCadenaTarea <> _ "TAREAPROGRAMADA" Then GoTo eMensaje sCadenaTipoSubFrecuencia = Func_ExtraeBloque _ ("TipoSubFrecuencia", ":", ".") If sCadenaTipoSubFrecuencia = "" And sCadenaTarea <> _ "TAREAPROGRAMADA" Then GoTo eMensaje sCadenaIntervaloSubFrecuencia = Func_ExtraeBloque _ ("IntervaloSubFrecuencia", ":", ".") If sCadenaIntervaloSubFrecuencia = "" And sCadenaTarea <> _ "TAREAPROGRAMADA" Then GoTo eMensaje 57 sCadenaFechaDesde = Func_ExtraeBloque("FechDesde", ":", ".") If sCadenaFechaDesde = "" And sCadenaTarea <> "TAREAPROGRAMADA" _ Then GoTo eMensaje sCadenaFechaHasta = Func_ExtraeBloque("FechHasta", ":", ".") sCadenaHoraDesde = Func_ExtraeBloque("HoraDesde", ":", ".") If sCadenaHoraDesde = "" And sCadenaTarea <> "TAREAPROGRAMADA" _ Then GoTo eMensaje sCadenaHoraHasta = Func_ExtraeBloque("HoraHasta", ":", ".") Dim sContraseña As String oclsConexion.sNomServidorDB = Trim(oclsRegistro.ConsultarValor _ (HKEY_CURRENT_USER, const_Directorio + const_Clave1, _ "ServidorDB")) oclsConexion.sUsuarioDB = Trim(oclsRegistro.ConsultarValor _ (HKEY_CURRENT_USER, const_Directorio + const_Clave1, "UsuarioDB")) sContraseña = Trim(oclsRegistro.ConsultarValor _ (HKEY_CURRENT_USER, const_Directorio + const_Clave1, _ "ContraseñaDB")) oclsConexion.sContraseñaDB = fg_CifrarCaracter(sContraseña, _ sCaracterClave, True) oclsConexion.sTipoConexionDB = Trim(oclsRegistro.ConsultarValor _ (HKEY_CURRENT_USER, const_Directorio + const_Clave1, _ "TipoCuenta")) 58 Call oclsConexion.Func_ConexionServidorDB Dim sAnio As String Dim sMes As String Dim sDia As String Dim sHora As String Dim sMinutos As String Dim sFecha As String Dim sTiempo As String sFecha = Date sTiempo = Time sAnio = Format(Year(Date), "0000") sMes = Format(Month(Date), "00") sDia = Format(Day(Date), "00") sHora = Format(Hour(sTiempo), "00") sMinutos = Format(Minute(sTiempo), "00") sDirRespaldo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave4, "RutaRespaldo")) sqlQuery = "" If sCadenaTarea = "LISTARESPALDO" Then sTipoConsulta = "RETORNA" sqlQuery = " sp_ReporteListadoRespaldos '" & sCadenaBase & _ "','" & sCadenaFecha & "' " 59 ElseIf sCadenaTarea = "RESPALDO" Then If sCadenaModo = "COMPLETO" Then sNombreRespaldo = sAnio + sMes + sDia sqlQuery = " sp_RespaldoCompleto '" & sCadenaBase & "','" & _ sDirRespaldo & "','" & sNombreRespaldo & "' " ElseIf sCadenaModo = "DIFERENCIAL" Then sNombreRespaldo = sAnio + sMes + sDia + sHora + sMinutos sqlQuery = " sp_RespaldoDiferencial '" & sCadenaBase & "','" _ & sDirRespaldo & "','" & sNombreRespaldo & "' " End If sTipoConsulta = "RETORNAD" ElseIf sCadenaTarea = "RESTAURAR" Then sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave4, "RutaRespaldo")) If sCadenaModo = "COMPLETO" Then If Func_ValidaRespaldoExista(sArchivo, sCadenaArchivo + _ ".bak") Then sqlQuery = " sp_RestauracionCompleta '" & sCadenaBase & _ "','" & sDirRespaldo & "','" & sCadenaArchivo & "' " Else sCadena = "El archivo de respaldo no existe o no " _ & "se encuentra disponible en la ruta determinada" 60 sTipoConsulta = "ERRARCHIVO" End If ElseIf sCadenaModo = "COMPLETODIFERENCIAL" Then If Func_ValidaRespaldoExista(sArchivo, sCadenaArchivo + _ ".bak") And Func_ValidaRespaldoExista(sArchivo, _ sCadenaArchivo2 + ".bak") Then sqlQuery = " sp_RestauracionConDiferencial '" & _ sCadenaBase & "','" & sDirRespaldo & "','" & _ sCadenaArchivo & "','" & sCadenaArchivo2 & "'" Else sCadena = "El archivo(s) de respaldo no existen o no " _ & "se encuentran disponibles en la ruta determinada" sTipoConsulta = "ERRARCHIVO" End If End If ElseIf sCadenaTarea = "TAREAPROGRAMADA" Then If sCadenaFechaHasta = "" Then sCadenaFechaHasta = "9999/12/31" End If If sCadenaHoraHasta = "" Then sCadenaHoraHasta = "23-59-59" End If 61 sqlQuery = "" sqlQuery = " sp_CreacionTareaProgramada '" & sCadenaBase & _ "','" & sDirRespaldo & "','" & sNombreRespaldo & "'" sqlQuery = sqlQuery & ",'" & sCadenaFechaDesde & "','" & _ sCadenaFechaHasta & "','" & sCadenaHoraDesde & "','" & _ sCadenaHoraHasta & "'," sqlQuery = sqlQuery & CInt(sCadenaTipoFrecuncia) & "," & _ CInt(sCadenaIntervaloFrecuencia) & "," & CInt _ (sCadenaTipoSubFrecuencia) & "," & CInt _ (sCadenaIntervaloSubFrecuencia) & "" sTipoConsulta = "" ElseIf sCadenaTarea = "TAREAPROGDETENER" Then sCadenaFechaHasta = Format(Now, "yyyy/mm/dd") sCadenaHoraHasta = Format(Time, "HH:MM:SS") sqlQuery = "" sqlQuery = " sp_DetenerTareaProgramada '" & sCadenaModo & "','" _ & sCadenaFechaHasta & "','" & sCadenaHoraHasta & "'" sTipoConsulta = "" End If If sTipoConsulta = "" Then oclsConexion.adoConexion.Execute sqlQuery sCadena = "Ejecucion realizada correctamente: " & sqlQuery 62 sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoAuditoria")) Call Proc_RegErroresArchivo(sCadena, sArchivo) Call Func_EnvioCorreo(sCadena) sCadena = "" sTipoConsulta = "" Func_ProcesaMensaje = True ElseIf sTipoConsulta = "RETORNAD" Then oclsConexion.adoConexion.Execute sqlQuery sCadena = "Ejecucion realizada correctamente: " & sqlQuery sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoAuditoria")) Call Proc_RegErroresArchivo(sCadena, sArchivo) sCadena = "" sCadena = sCadenaBase & " - " & sCadenaBase & sNombreRespaldo _ & " - " & sCadenaModo Call Func_EnvioCorreo("Ejecucion realizada correctamente: " & _ Chr(13) & "Base-Nombre-Tipo" & Chr(13) & sCadena) sTipoConsulta = "" sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoConsulta")) Call Proc_RegErroresArchivo(sCadena, sAnio + sMes + "-" + _ 63 sCadenaBase + sArchivo) sCadena = "" sTipoConsulta = "" Func_ProcesaMensaje = True ElseIf sTipoConsulta = "RETORNA" Then Set adoRcdset = oclsConexion.adoConexion.Execute(sqlQuery) sCadena = "Ejecucion realizada correctamente: " & sqlQuery sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoAuditoria")) Call Proc_RegErroresArchivo(sCadena, sArchivo) sCadena = "" Dim sRutaArchivo As String sRutaArchivo = Trim(oclsRegistro.ConsultarValor _ (HKEY_CURRENT_USER, const_Directorio + const_Clave3, _ "RutaArchError")) + "\" + sAnio + sMes + "-" + sCadenaBase _ + Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoConsulta")) Call Func_EnvioCorreo("Ejecucion realizada correctamente", _ sRutaArchivo) sCadena = "" sTipoConsulta = "" Func_ProcesaMensaje = True 64 ElseIf sTipoConsulta = "ERRARCHIVO" Then sCadena = "Ejecucion no realizada: " & sCadena sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoErrores")) Call Proc_RegErroresArchivo(sCadena, sArchivo) Call Func_EnvioCorreo(sCadena) sCadena = "" sTipoConsulta = "" Func_ProcesaMensaje = True End If oclsConexion.adoConexion.Close Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3) Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "UltimoCorreoLeido", sMsmUidl, _ REG_SZ) With frmSession .oSession.DeleteMessage .lvwMessages.SelectedItem.Text .lvwMessages.ListItems.Remove .lvwMessages.SelectedItem.Index End With Exit Function Else 65 sMensajeErr = "" sMensajeErr = sMensajeErr + ": No se puedo procesar mensaje: " + _ sMensaje sMensajeErr = sMensajeErr + ": No supero la validación de " & _ "seguridad: " sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoErrores")) Call Proc_RegErroresArchivo(sMensajeErr, sArchivo) Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _ const_Directorio + const_Clave2) Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave2, "UltimoCorreoLeido", _ sMsmUidl, REG_SZ) Exit Function End If sMensajeErr = "" sMensajeErr = sMensaje + ": Error al Ejecutar: " + sqlQuery sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoErrores")) Call Proc_RegErroresArchivo(sMensajeErr, sArchivo) adoRcdset.Close Func_ProcesaMensaje = True 66 Exit Function eMensaje: Call Func_EnvioCorreo("Ejecucion no se realizo correctamente: " & _ sqlQuery) sMensajeErr = "" sMensajeErr = sMensaje & ": Error al Ejecutar: " & sqlQuery & _ vbCrLf sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _ const_Directorio + const_Clave3, "ArchivoErrores")) Call Proc_RegErroresArchivo(sMensajeErr, sArchivo) adoRcdset.Close Func_ProcesaMensaje = False End Function 67 Descripción de las Herramientas MS Visual Basic 6.0 Esta herramienta de programación que ofrece una plataforma gráfica para realizar interfaces que utilicen las características del Sistema Operativo Windows, dando al usuario una atractiva interface y que pueda relacionar con los otros programas del sistema que este brinda. Se escogió Visual Basic, como plataforma de trabajo para el desarrollo de la interface, debido a la experiencia obtenida programando aplicaciones, además porque ofrece gran facilidad en el manejo de sus herramientas, un uso mínimo de las líneas de código. Entre las ventajas que presenta este lenguaje de programación esta su facilidad para programar aplicaciones de cierta complejidad para Windows. 68 MS SQL Server 2005 Este motor de base de datos está diseñado para ayudar a las empresas a enfrentar desafíos como la necesidad de tomar decisiones más rápidas y más orientadas a datos, la necesidad de aumentar la productividad y flexibilidad del personal de desarrollo. SQL Server es una solución de datos global, integrada y de extremo a extremo que habilita a los usuarios en toda su organización mediante una plataforma más segura, confiable y productiva para datos empresariales y aplicaciones de BI. SQL Server 2005 provee herramientas sólidas y conocidas a los profesionales de IT, así como también a trabajadores de la información, reduciendo la complejidad de la creación, despliegue, administración y uso de aplicaciones analíticas y de datos empresariales en plataformas que van desde los dispositivos móviles hasta los sistemas de datos empresariales. A través de un conjunto global de características, la interoperabilidad con sistemas existentes y la automatización de tareas rutinarias, SQL Server 2005 ofrece una solución completa de datos para empresas de todos los tamaños. 69 Cuenta de Correo A través de una cuenta de correo el Administrador de Bases de Datos podrá enviar peticiones a la aplicación la cual se encargará a su vez de ejecutar la instrucción correspondiente en la petición, y recibir la confirmación de la ejecución de determinada tarea. Sistema Operativo Desde cualquier sistema operativo basado en Windows, ya sea este XP, Vista, 7, Server 2000/2003/2008. 70 Capítulo IV MANUAL DE USUARIO 71 Introducción Este proyecto fue desarrollado basado en la necesidad de una nueva forma de conexión remota entre el DBA o profesional de Sistemas, que necesita poder resolver problemas con respecto a los respaldos y restauraciones de Bases de Datos, para poder resolver situaciones que se llegasen a presentar sobre todo cuando él se encuentra fuera de su área de trabajo. Mediante este prototipo de aplicación se podrá a través de un formato de mensaje enviar un correo para realizar una tarea determinada como respaldo o restauración de una base de datos que se necesite realizar. Inicio de Sesión Grafico No. 12. Pantalla de Inicio de Sesión Elaborado: Alberto C. Arreaga C.. Fuente: Programa. 72 Para ingresar al sistema se debe ingresar el usuario, que se configura inicialmente al instalar la aplicación, seguido de la contraseña. Una vez autenticado el usuario y la contraseña, se podrá tener acceso al sistema prototipo. Cambio de Contraseña Grafico No. 13. Pantalla Inicio de Sesión, cambio de contraseña. Elaborado: Alberto C. Arreaga C.. Fuente: Programa. Podemos realizar el cambio de contraseña cada que se crea necesario, o cuando este pronto a caducar el tiempo de vigencia de la clave vigente. Para proceder al cambio de la contraseña se accede desde la pantalla de inicio de sesión, en el botón Cambiar Contraseña la cual dará acceso al Cambio de Contraseña. Para ello se requiere de digitar la contraseña actual o anterior, y digitar la 73 contraseña nueva. Por asuntos de seguridad se requiere la confirmación de la contraseña nueva. Una vez que registrado los campos requeridos, se procede a grabar. Para el cambio de la contraseña no se podrá utilizar las últimas 5 contraseñas utilizadas anteriormente, esto se realiza por asuntos de seguridad. Pantalla Principal Grafico No. 14. Pantalla principal. Elaborado: Alberto C. Arreaga C.. Fuente: Programa. 74 Esta es la pantalla principal o Menú principal del prototipo de la aplicación, contiene las 3 opciones Configuración, Proceso y Ayuda. Podemos acceder mediante: • El menú. • Los botones de acceso. • Las teclas de acceso. Configuración Dentro de esta opción tenemos 3 pestañas de ingreso de parámetros, para el correcto desenvolvimiento de la aplicación. La primera pestaña es la de configuración de correo, en la cual se ingresará: La cuenta de correo, cuenta de la aplicación, donde se leerán los mensajes enviados por el administrador del Departamento de Sistemas, debe ser de un Proveedor de correo con servidor de correo POP3 y SMTP, como los es Yahoo. La contraseña, la misma que se definió al crear la cuenta de correo, del proveedor elegido. 75 Grafico No. 15. Pantalla de Registro de parámetros. Elaborado: Alberto C. Arreaga C.. Fuente: Programa. Tipo de cuentas, en este caso el servidor de correo POP3. Servidor Entrante, la dirección del servidor entrante, de acuerdo al proveedor de correo elegido. Así también como el número de puerto del servidor entrante utilizado para la comunicación. 76 Servidor Saliente, la dirección del servidor saliente, de acuerdo al proveedor de correo elegido. Así también como el número de puerto del servidor saliente utilizado para la comunicación. Cuenta de correo destino, la cuenta de correo desde la cual se enviarán los mensajes y la de la cual solo se aceptará correos entrantes, para el procesamiento del mensaje. Autenticación, el tipo de autenticación del servidor de datos de MS Sql Server 2005. Servidor de datos, nombre del servidor de datos en el cual se encuentra la o el grupo de bases y sobre la cual se hará las tareas de respaldo y restauración. Usuario, en caso de que la autenticación sea mediante SQL, se deberá especificar el usuario permitido para las tareas a realizar sobre el servidor. Contraseña, la contraseña asignada al usuario del servidor de base. Respaldos En esta pantalla se configurará los directorios donde se tendra guardados los respaldos generados desde la aplicción, así como también los directorios de los archivos de errores, 77 el cual grabará el tipo de error ya sea por conexion a la cuenta en la lectura y envío, como error en la conexión con el servidor de base de datos y errores en el emnsaje de ejecución Grafico No. 16. Pantalla de Configuración de Respaldos. Elaborado: Alberto C. Arreaga C.. Fuente: Programa. de la tarea de respaldo o restauración. Los archivos de auditorias, contendrán las sentencias que se ejecutan correctamente para poder saber en que tiempo se ejecuto la tarea sobre la base. Los archivos de consulta, que contienen el listado de los respaldos generados desde la aplicación por cada base existente, para ser enviada en el momento en que se la solicite y basarse en ella para una restauración. 78 Seguridades Grafico No. 17. Panalla de Configuración de seguridades. Elaborado: Alberto C. Arreaga C.. Fuente: Programa. En esta pestaña, se registrará variables de seguridad en cuanto a usuario ante la recepción de una tarea, vigencia de la contraseña, y direcciones de respaldos de los archivos. Usuario, el usuario permitido al que se le podrá realizar la ejecución o procesamiento de las tareas recibidas por correo. Contraseña, del usuario permitido. 79 Vigencia de la Contraseña, días de vigencia que tendrá una clave, para proceder al cambio de contraseña. Proceso El proceso consiste en la lectura de los mensajes de correo de la bandeja de entrada de la cuenta de correo de la aplicación ([email protected]), y mostrarlos en la bandeja de entrada de la aplicación, para poder procesar uno a uno según el orden de llegada. Una vez que los correos se encuentran en la bandeja de entrada, serán procesados para ejecutar la correspondiente tarea. Grafico No. 18. Pantalla de Recepción de mensajes de correo. Elaborado: Alberto C. Arreaga C.. Fuente: Programa. 80 Una vez procesado el mensaje según el estado de la resolución de la tarea esta se guardará en un archivo de texto, ya sea para auditoría, error, o consulta de listado. Ayuda Grafico No. 19. Pantalla de Ayuda de la aplicación. Elaborado: Alberto C. Arreaga C.. Fuente: Programa. La aplicación consta de una ayuda rápida dentro de la cual se explica cada uno de los procesos, así como también el significado de algunos términos y la bibliografía en la cual se basó el desarrollo de la aplicación. 81 Formato de mensajes de correo Grafico No. 20. Pantalla de Envío de Correo desde Gmail. Elaborado: Alberto C. Arreaga C.. Fuente: Programa. Para el envio de los mensajes de correo hacia la cuenta de correo de la aplicación, estos deberán seguir un formato, según, la tarea a realizar deberan cumplir con los requisitos de solicitud de datos enviados para poder ejecutar la tarea respectiva, caso contrario se ignorará la tarea y se enviará un mensaje de error, debido a la falta de parámetros. Estos formatos constarán en su primera línea con el nombre del usuario de la aplicación y la contraseña, esto par poder autenticar la tarea a ejecutar, y comprobar que el usuario 82 que envía es el encargado de la aplicación, ya que la clave la actualizará cada cierto tiempo y es el quien sabrá en ese momento la clave de ejecución de la tarea. Gráfico No. 21. Tareas de la aplicación. Completa Tareas de Respaldo Diferencial Completa Tarea de Restauración Completa y Diferencial Conaulta de Listado de Respaldos Creación Trabajos Programados Modificación Eliminación Elaborado: Alberto C. Arreaga C. Fuente: Codificación de la aplicación. 83 Formatos de Tarea Respaldo Completo Usuario: administra&456. Base: AdmDemo. Tarea: Resapldo. Modo: Completo. Este formato consta en la etiqueta Usuario con el nombre del usuario (administra) seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá el nombre de la base de datos a la cual se le realizará el respaldo (AdmDemo). En la eiqueta Tarea, la tarea a realizar (Respaldo). Y finalmente en la etiqueta modo, la forma como se realizará el respaldo (Completo). Formatos de Tarea Respaldo Diferencial Usuario: administra&456. Base: AdmDemo. Tarea: Resapldo. Modo: Diferencial. Este formato consta en la etiqueta Usuario con el nombre del usuario (administra) seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá 84 el nombre de la base de datos a la cual se le realizará el respaldo (AdmDemo). En la eiqueta Tarea, la tarea a realizar (Respaldo). Y finalmente en la etiqueta modo, la forma como se realizará el respaldo (Diferencial). Formatos de Tarea Restauración Completa Usuario: administra&456. Base: AdmDemo. Tarea: Restaurar. Modo: Completo. Archivo: AdmDemo20100721. Este formato consta en la etiqueta Usuario con el nombre del usuario (administra) seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá el nombre de la base de datos dqe lq que se le realizará la restauración (AdmDemo). En la eiqueta Tarea, la tarea a realizar (Restaurar). En la etiqueta Modo, la forma como se realizará la restauración (Completo), ya que se utilizará un solo archivo para resturar. Y finalmente en la etiqueta Archivo, el nombre de archivo de respaldo que tomará como referencia para resturar la base de datos a la fecha que se generó (AdmDemo20100721). 85 Formatos de Tarea Restauración Completo y Diferencial Usuario: administra&456. Base: AdmDemo. Tarea: Restaurar. Modo: CompletoDiferencial. Archivo: AdmDemo20100721. Archivo2: AdmDemo201007211914. Este formato consta en la etiqueta Usuario con el nombre del usuario (administra) seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá el nombre de la base de datos dqe lq que se le realizará la restauración (AdmDemo). En la eiqueta Tarea, la tarea a realizar (Restaurar). En la etiqueta Modo, la forma como se realizará la restauración (CompletoDiferencial), esta vez se utilizará 2 archivo para resturar. En la etiqueta Archivo, el nombre de archivo de respaldo completo que tomará como referencia para resturar la base de datos a la fecha que se generó (AdmDemo20100721). Y finalmente en la etiqueta Archivo2 el nombre de archivo de respaldo diferencial hasta el cual se desea restaurar la base de datos. Esto suele darse cuando solo queremos que se restauren los datos de la base hasta cierto tiempo. 86 Formatos de Listado de Respaldo Usuario: administra&456. Base: AdmDemo. Tarea: ListaRespaldo. Fecha: 2010/07/21. Este formato consta en la etiqueta Usuario con el nombre del usuario (administra) seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá el nombre de la base de datos a la cual se le realizará el respaldo (AdmDemo). En la eiqueta Tarea, la tarea a realizar (ListaRespaldo). Y finalmente en la etiqueta Fecha, la fecha a la que se desea los respaldos (2010/07/21). Formatos de Creación de Tareas Programadas Este formato consta en la etiqueta Usuario con el nombre del usuario (administra) seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá el nombre de la base de datos a la cual se le realizará el respaldo (AdmDemo). En la eiqueta Tarea, la tarea a realizar (TareaProg). En la etiqueta Modo irá completo en referencia al respaldo a realizar en la tarea programada. En la etiqueta TipoFrecuencia, se refiere a la frecuencia con la que se dará la tarea (4: Diaria). 87 Usuario: administra&456. Base: AdmDemo. Tarea: TareaProg. Modo: Completo. TipoFrecuencia: 4. IntervaloFrecuencia: 1. TipoSubFrecuencia: 8. IntervaloSubFrecuencia: 3. FechDesde: 2010/09/01. FechHasta: . HoraDesde: 07-00-00. HoraHasta: 19-00-00. 88 ANEXOS Tomo II 89 OstroSoft - Componente POP3 (OSPOP3) Descripción Componente OstroSoft POP3 (OSPOP3) es un archivo para recuperar mensajes de correo electrónico mediante programación. Funciona con cuentas POP3. Soporta correo electrónico segura (TLS / SSL), correo electrónico (MIME) archivos adjuntos, correo HTML, cabeceras personalizadas, objetos incrustados. Componente permite recuperar y eliminar mensajes de correo electrónico de servidor de correo POP3, estado del buzón de verificación, los mensajes de analizar recuperar mediante programación y lenguajes de script de apoyo. NET y COM. La nueva versión añade soporte para conexiones seguras (SSL / TLS). La nueva versión soporta todos los métodos y las propiedades de una versión anterior, pero no es compatible con versiones anteriores, ya que se basa en una tecnología diferente (. NET frente componente COM). Actualización de 3.0.1 incluye correcciones para la recuperación de archivos adjuntos grandes, restablecer la sesión y la propiedad. Contraseña. Además, se añaden ejemplos de código para VB.NET, Visual Basic 6 y C #. Dentro de las próximas semanas vamos a proporcionar el código de ejemplo para los lenguajes de programación más y entornos. 90 Biblioteca de COM para recuperar mensajes de correo electrónico del servidor de correo POP3, comprobar el estado del buzón, el análisis de los mensajes recuperados desde Visual Basic 6 y otros programas y lenguajes de scripting, soporte COM. Licencias Cuadro No. 17. Licencias de Componente OSPOP3 Tipo Licencia Licencia no comercial Valor free libre El uso ilimitado para el desarrollo de 1 aplicaciones no comerciales. Desarrollador de licencia $19.00 Para un solo programador para desarrollar y 2 distribuir una aplicación comercial único. Licencia de servidor $59.00 Para su uso en una aplicación comercial, 3 instalado en un único servidor. Empresa de licencia $139.00 Para los programadores dentro de una empresa para desarrollar y distribuir un número 4 ilimitado de aplicaciones comerciales. Elaborado: Alberto C. Arreaga C.. Fuente: http://www.ostrosoft.com/. 91 BIBLIOGRAFIA 92 Bibliografía Libros Revisión de las fases para el desarrollo de un sistema, Ingeniería de Software, un enfoque práctico, 5ta. Edición, Roger S. Pressman. Revisión del Desarrollo de Diagramas de Caso de Uso, Tesis de Grado T-7, Portal Inteligente, Febrero 18 del 2005, desarrollada por J. Rodríguez, A. Agana, D. Del Pino, F. Fernández. Revisión del Desarrollo del Manual Técnico, Proyecto de Grado PG-116, Portal de Ventas de Supermercado por Internet manejando Pedidos y Listas de Compras recurrentes por Usuario, Febrero 7 del 2008, desarrollado por E. Avilés, E. Loaiza, B. Macías. Revisión del Desarrollo del Manual de Usuario, Proyecto de Grado PG-276, Desarrollo de un Sistema de Votaciones Electrónicas, Mayo 17 del 2010, desarrollada por A. Vásquez, A. Aroni, S. Rosales. 93 Publicaciones Ley de Comercio Electrónico, Firmas Electrónicas y Mensajes de Datos, Congreso Nacional del Ecuador, Ley 2002-67 (Registro Oficial 557-S, 17-IV-2002). Direcciones Web Componente OSPOP3.dll, que permite recuperar y eliminar mensajes de correo electrónico de un servidor de correo POP3. http://www.ostrosoft.com Ayuda sobre código de la herramienta utilizada, MS Visual Basic 6.0: http://www.recursosvisualbasic.com.ar Ayuda sobre código de la herramienta utilizada, MS Visual Basic 6.0: http://www.foro.vb-mundo.com Ayuda sobre código de la herramienta utilizada, MS Visual Basic 6.0: http://www.canalvisualbasic.net 94 Ayuda sobre código de la herramienta utilizada, MS Visual Basic 6.0: http://www.elguille.info/vb/default.aspx Ayuda sobre desarrollo de una tesis: http://www.monografias.com Sentencias de Respaldo, ayuda cobre los comandos para lograr un respaldo: http://msdn.microsoft.com/es-es/library/ms186865%28v=SQL.90%29.aspx Sentencias de Restauración, ayuda sobre los comandos para lograr una restauración: http://msdn.microsoft.com/es-es/library/ms186858%28v=SQL.90%29.aspx