Tesis Completa-281-2011.pdf

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