t o m o i - ug
TRANSCRIPT
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 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
_______________________________
Dr. José Júpiter Wiles SECRETARIO
_______________________________
Ing. Héctor Lara MIEMBRO DEL TRIBUNAL
_______________________________
Ing. Barcia MIEMBRO DEL TRIBUNAL
_______________________________
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. José Luis Rodríguez MIEMBRO DEL TRIBUNAL
TUTOR
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:
Tutor: José Luis Rodriguez
Guayaquil, 3 de Marzo del 2011.
________________________
Alberto Carlos Arreaga Campoverde
________________________
Cédula de ciudadanía N°
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 38
Anexo 1 39
Ley de Comercio Electrónico, Firmas Electrónicas y
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.
Base de
Datos
Respaldos
Completos
Respaldos de
Archivos LOG
Respaldos
Diferenciales
Diario: 08:00
Cada: 4 hrs, desde las 09:00
Cada: 1 hr, desde las 10:00
GRAFICO No. 1
FORMAS DE RESPALDOS
ELABORACION: Alberto C. Arreaga C.
FUENTE: Página de Internet.
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.
Análisis de la Encuesta
A continuación un breve análisis sobre los resultados de la encuesta realizada.
nm
e m=
− +2 1 1( )
m= Tamaño de la población.
E= error de estimación.
n = Tamaño de la muestra.
Grafico No. 3
Fórmula para encontrar la muestra
Elaboración: Alberto C. Arreaga C.
Fuente: Guía de Proyecto de Grado - CISC
Como se puede observar en el cuadro estadístico, sobre una de las preguntas de la
encuesta realizada, podemos observar el porcentaje de profesionales de sistemas de la
carrera de Ingeniería en Sistemas Computacionales
áreas del departamento de sistemas
las empresas de tipo Comercial y de Servicios.
44.74
Tipos de Empresas
Gráfico No. 4
Tipo de Empresa.
Elaborado: Alberto Arreaga C.
Fuente: Tabla No. 1.
Tipos de empresa
se puede observar en el cuadro estadístico, sobre una de las preguntas de la
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, mayormente podemos ver que se encuentran entre
presas de tipo Comercial y de Servicios.
36.84
10.53
7.89
Tipos de Empresas
Comercial
Industrial
Servicios
Otras
Elaborado: Alberto Arreaga C.
Comercial
Industrial
Servicios
Otras
Tabla No.
Tipo de
Elaborado: Alberto Arreaga C.
Fuente: Encuesta Anexo 2.
22
se puede observar en el cuadro estadístico, sobre una de las preguntas de la
ta realizada, podemos observar el porcentaje de profesionales de sistemas de la
que laboran en las diferentes
, mayormente podemos ver que se encuentran entre
Tipo de Empresa
Comercial 36.84 14
Industrial 10.53 4
Servicios 44.74 17
7.89 3
100.00 38
Tabla No. 1
Tipo de Empresa.
Elaborado: Alberto Arreaga C.
Fuente: Encuesta Anexo 2.
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.
Visual Basic 6.0
MS Visual Studio 2005
ms Visual Studio 2008
Power Builder
Visual FoxPro
Oracle Form
Lenguajes de Programación
Gráfico No. 5
Lenguajes de Pogramación.
Elaborado: Alberto C. Arreaga C.
Fuente: Tabla No. 2.
Lenguajes de Programación
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
Lenguajes de Programación
Visual Basic 6.0
MS Visual Studio 2005
MS Visual Studio 2008
PowerBuilder
Visual FoxPro
Oracle Form - Report
PHP
Tabla No. 2
Lenguajes de Programación.
Elaborado: Alberto C. Arreaga C.
Fuente: Encuesta Anexo 2.
0 5
10
15
20
25
30
35
Visual Basic 6.0
MS Visual Studio 2005
ms Visual Studio 2008
Power Builder
Visual FoxPro
Oracle Form - Report
PHP
32.61
28.26
6.52
4.35
15.22
6.52
6.52
Lenguajes de Programación
Lenguajes de
Programación
Lenguajes de Pogramación.
Elaborado: Alberto C. Arreaga C.
Tabla No. 2.
23
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
Lenguajes de Programación
32.61 15
28.26 13
6.52 3
4.35 2
15.22 7
6.52 3
6.52 3
100.00 46
Lenguajes de Programación.
Elaborado: Alberto C. Arreaga C.
Programación
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.
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
Tabla No. 3.
Motores de Bases de Datos
Elaborado: Alberto C. Arreaga C.
Fuente: Encuesta Anexo 2.
53
.85
7.6
9
7.6
9
7.6
9
5.1
3
0.0
0
17
.95
0.00
10.00
20.00
30.00
40.00
50.00
60.00
Motores de Bases de Datos
Motores de
Bases de Datos
Grafico No. 6
Motores de Bases de Datos.
Elaborado: Alberto C. Arreaga C.
Fuente: Tabla No.3
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
Tabla No. 5.
Cronograma de Tareas.
Elaborado: Alberto C. Arreaga C.
Fuente: Cronograma de Trabajo hecho en MS Project.
Elaborado: Alberto C. Arreaga C.
Trabajo hecho en MS Project.
29
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 de análisis
delcronograma y de la magnitud del proyecto de investigación.
RUBRO DE EGRESOS DOLARES
Suministros de Oficina 100.00
Fotocopias 20.00
Libros y documentos 50.00
Computadores 450.00
Servicios de Internet 120.00
Transporte 70.00
Refrigerio 35.00
Empastado y anillado 50.00
Servicios Básicos 30.00
Tutoría 1000.00
Analista-Programador 1000.00
Gatos imprevistos 300.00
TOTAL 3225.00
Tabla No. 6
Rubros de Egresos o Gastos.
Elaborado: Albert C. Arreaga C.
Fuente: Gastos en la elaboración del Proyecto.
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
Columna1 FECHAS DESCRIPCION VALOR DIAS
1 Fecha 1 A la firma del contrato 1690.00 0
2 Fecha 2 A 45 días de la firma 633.75 45
3 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
TOTALES 4225.00 180
Tabla No.7.
Tabla de financiamiento.
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
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?
Gráfico No. 9.
Formato de encuesta
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
_______________________________
Dr. José Júpiter Wiles SECRETARIO
_______________________________
Ing. Héctor Lara MIEMBRO DEL TRIBUNAL
_______________________________
Ing. Barcia MIEMBRO DEL TRIBUNAL
_______________________________
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. José Luis Rodríguez MIEMBRO DEL TRIBUNAL
TUTOR
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:
Tutor: José Luis Rodríguez
Guayaquil, 3 de Marzo del 2011.
________________________
Alberto Carlos Arreaga Campoverde
________________________
Cédula de ciudadanía N°
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 . 11
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
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.
Base de
Datos 2
Cuenta
de
Correo
PC -
Celular
Aplicación
Base de
Datos 1
Gráfico No. 1. Diagrama de Flujo del Sistema.
Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación.
5
Diagrama de Flujo de Datos
Gráfico No. 2. Diagrama de Flujo de Datos.
Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación.
Envío de correo
¿Existe
cuenta
de correo?
Revisión Contenido
de correo
¿Existe
Palabra
Reservada?
Ejecuta la tarea
correspondiente
Confirmación del estado de
la ejecución de la tarea
Envío de mensaje al correo
a la cuenta
Ignorar el
contenido del
No ejecuta
tarea alguna
¿Tarea
Realizada?
Envía mensaje de
error de la tarea
NO
SI
NO
NO
SI
SI
¿Esta correcto
Usuario y
Contraseña?
Emitir mensaje de usuario
y contraseña inválidas NO
SI
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.
Configuración de parámetros iniciales
Elaboración: Alberto Arreaga C. Fuente: Diseño del prototipo de la aplicación.
Gráfico No. 3. Caso de Uso de Configuració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ó.
Envió de correo a la
cuenta
Gráfico No. 4. Caso de Uso de Envío de Correo.
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.
Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación.
Lectura de correo
desde la cuenta
Revisión del cuerpo del
mensaje
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.
Elaboración: Alberto Arreaga C. Fuente: Diseño del prototipo de la aplicación.
Ejecución de tareas
de Respaldo
10
Descripción de los Escenarios
Configuración de la aplicación
Nombre 1.1.- Configuración de la aplicación
Objetivo Configurar parámetros de la aplicación
Descripción El administrador del sistema deberá parametrizar variables iniciales para la
ejecución de la aplicación.
Datos
específicos
• Configurar la cuenta de correo a la que se envía las respuestas.
• La misma cuenta servirá para leer las instrucciones a realizar.
• Configuración de las bases sobre las cuales se ejecutaran tareas de
respaldos.
Intervalo Sólo presente.
Estabilidad Alta
Comentario El desenvolvimiento de la aplicación depende de la correcta configuración
de los parámetros iniciales.
Tabla No. 1. Escenario de Configuración correcta.
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.
Objetivo Configurar parámetros incorrectos de la aplicación.
Descripción
En el caso de que el administrador del sistema parametrice las variables
iniciales erroneamente, la ejecución de la aplicación no será confiable al
momento de realizar las tareas de respaldos.
Datos
específicos
• 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
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
Comentario El desenvolvimiento de la aplicación depende de la correcta configuración
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
Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación.
Tabla No. 3. Caso de uso del Envío de correo.
Nombre 2.1.- Envío de Correo
Objetivo Envío del correo con una determinada instrucción para la generación
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
específicos
• Envío del correo por parte del DBA.
• 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.
13
Recepción de Correo Válido
Tabla No. 4. Caso de uso de la recepción.
Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación.
Nombre 3.1.- Recepción de Correo Válido
Objetivo Leer el correo desde una cuenta determinda en la configuración de los
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
específicos
• Lectura del mensaje desde la aplicación.
• 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.
14
Lectura de Correo con mensaje invalido
Tabla No. 5. Caso de uso lectura de correo.
Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación.
Nombre 3.2- Lectura de Correo con mensaje invalido
Objetivo Leer el contenido del correo de la cuenta con un mensaje que no
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
específicos
• Revisar el contenido del mensaje.
• 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.
15
Ejecución de Tareas sin error
Tabla No. 6. Caso de Uso de ejecución de tarea.
Elaboración: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación.
Nombre 4.1.- Ejecución de Tareas sin error
Objetivo
Ejecutar la correspondiente tarea de respaldo, según el contenido
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
Comentario
Una vez procesada la tarea de respaldo se enviará un correo de
confirmación de la tarea, caso contrario el estado de la ejecución
de la tarea.
16
Ejecución de Tareas con error
Tabla No. 7. Caso de uso al ejecutar una tarea con error
Elaborado: Alberto C. Arreaga C. Fuente: Etapa de diseño de la aplicación.
Nombre 4.2.- Ejecución de Tareas con error
Objetivo
Confirmar la no ejecución de la tarea por error en el proceso,
según sea el caso.
Descripción Se ejecuta un mensaje de error desde la Base de Datos.
Datos
específicos
• Ejecutar el servicio de mensaje desde SQL Server.
• Envío de mensaje descriptivo sobre el error producido al
ejecutar la tarea.
• Guardar una bitácora del error ocurrido.
Intervalo Sólo presente.
Estabilidad Alta
Comentario
Una vez procesada la ejecución de la tarea y esta no se pueda
realizar, se enviará un mensaje de correo sobre dicha tarea no
realizada.
17
Diagrama de Objetos
Ejecutar la Tarea de Respaldo o Restauración
Mail Conexión Respaldos
Comprobar
conexión
con la base Leer y
comprobar
la cuenta
Verificar y
ejecutar
tarea de
respaldo
Gráfico No. 7. DIO Ejecución de tarea.
Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación.
18
Conexión con la Base de Datos
Mail Conexión Respaldos
Comprobar
conexión
con la base
No existe
comunicación
con Servidor
de Datos
Gráfico No. 8. DIO de conexión con la Base de Datos.
Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación.
19
Lectura de Mensajes de la Cuenta de Correo
Mail Conexión Respaldos
Comprobar
conexión con
la base Leer y
comprobar
la cuenta
Ignorar
lectura de
mensaje
Gráfico No. 9. DIO de 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.
Elaborado: Alberto C. Arreaga C. Fuente: Diseño del prototipo de la aplicación.
Mail Conexión Respaldos
Comprobar
conexión
con la base Leer y
comprobar
la cuenta
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.
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
Tabla No. 8. Clase Registro.
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.
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
Tabla No. 9. Clase Conexión.
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).
Attachmentt
Header
Session
MessageListEntry
Message
OsPOP3
Gráfico No. 11. Diagrama de la Clase OSPOP3.
Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/.
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.
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
Tabla No. 10. Clase Session.
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.
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.
Métodos Tipo
Name Público
Address Público
Tabla No. 11. Clase Email.
Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/POP3_component.asp
MessageListEntry
Métodos Tipo
UIDL Público
ID Público
Size Público
Tabla No. 12. Clase MessageListEntry.
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.
La clase Message devuelve en sus 2 funciones el contenido una vez analizado el mensaje
de correo electrónico.
Header
Métodos Tipo
Name Público
Values Público
Tabla No. 13. Clase Header.
Elaborado: Alberto C. Arreaga C. Fuente: http://www.ostrosoft.com/POP3_component.asp
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
Tabla No. 14. Clase Message.
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
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
Tabla No. 15. Clase Attachment.
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
Objeto Abrev. Module mod ClassModule cls Project pry Form frm MDIForm mdi
Objeto Abrev. SmartMenuXP smn Toolbar tlb XPButton cmd Label lbl StatusBar stb ListView lvw Frame fme Skin skn Timer tmr PictureBox pbx TextBox txt SSTab sst ComboBox cmb CheckBox chk Line lne CommandButton cmd
Objeto Abrev. Public g Private l Const const Function Func Sub Proc ClsRegistro oClsR
ClsConexion oClsC
String s Integer i Long l Control c Boolean b Error err Object obj
Tabla No. 16. Diccionario de Datos.
Elaborado: Alberto C. Arreaga C. Fuente:Herramienta Visual Basic 6.0.
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
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.
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
35
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_AbrirConexionDB()
On Error GoTo fin
adoConexion.ConnectionString = sCadConexion
adoConexion.Open adoConexion.ConnectionString, "", ""
Exit Sub
fin:
msgERROR = msgERROR + " " + Err.Description
End Sub
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
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.
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
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
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.
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
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
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
Grafico No. 13. Pantalla Inicio de Sesión, cambio de contraseña.
Elaborado: Alberto C. Arreaga C.. Fuente: Programa.
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
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.
Grafico No. 15. Pantalla de Registro de parámetros.
Elaborado: Alberto C. Arreaga C.. Fuente: Programa.
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
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.
Grafico No. 16. Pantalla de Configuración de Respaldos.
Elaborado: Alberto C. Arreaga C.. Fuente: Programa.
78
Seguridades
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.
Grafico No. 17. Panalla de Configuración de seguridades.
Elaborado: Alberto C. Arreaga C.. Fuente: Programa.
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
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.
Grafico No. 19. Pantalla de Ayuda de la aplicación.
Elaborado: Alberto C. Arreaga C.. Fuente: Programa.
81
Formato de mensajes de correo
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
Grafico No. 20. Pantalla de Envío de Correo desde Gmail.
Elaborado: Alberto C. Arreaga C.. Fuente: Programa.
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.
Completa
Diferencial
Tareas de Respaldo
Tarea de Restauración
Completa
Completa y Diferencial
Conaulta de Listado de Respaldos
Creación
Trabajos Programados Modificación
Eliminación
Gráfico No. 21. Tareas de la aplicación.
Elaborado: Alberto C. Arreaga C. Fuente: Codificación de la aplicación.
83
Formatos de Tarea Respaldo 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
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á
Usuario: administra&456.
Base: AdmDemo.
Tarea: Resapldo.
Modo: Completo.
Usuario: administra&456.
Base: AdmDemo.
Tarea: Resapldo.
Modo: Diferencial.
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
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).
Usuario: administra&456.
Base: AdmDemo.
Tarea: Restaurar.
Modo: Completo.
Archivo: AdmDemo20100721.
85
Formatos de Tarea Restauración Completo y 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á
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.
Usuario: administra&456.
Base: AdmDemo.
Tarea: Restaurar.
Modo: CompletoDiferencial.
Archivo: AdmDemo20100721.
Archivo2: AdmDemo201007211914.
86
Formatos de Listado de Respaldo
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).
Usuario: administra&456.
Base: AdmDemo.
Tarea: ListaRespaldo.
Fecha: 2010/07/21.
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
Tipo Licencia Valor
1
Licencia no comercial free libre
El uso ilimitado para el desarrollo de aplicaciones no comerciales.
2
Desarrollador de licencia $19.00
Para un solo programador para desarrollar y distribuir una aplicación comercial único.
3
Licencia de servidor $59.00
Para su uso en una aplicación comercial, instalado en un único servidor.
4
Empresa de licencia $139.00
Para los programadores dentro de una empresa para desarrollar y distribuir un número ilimitado de aplicaciones comerciales.
Cuadro No. 17. Licencias de Componente OSPOP3
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