MANUAL DEL PROGRAMADOR: SOFTWARE...

16
MANUAL DEL PROGRAMADOR: SOFTWARE MIGRADOR DE SCRIPTS .SQL ORACLE PARA BASES DE DATOS SQLSERVER EN LA EMPRESA EXPINN TECHNOLOGY Brallam Santiago Morales García Jineth Tatiana Camacho Aya Universidad Distrital Francisco José de Caldas Facultad Tecnológica Tecnología en sistematización de datos Bogotá, Colombia 2017

Transcript of MANUAL DEL PROGRAMADOR: SOFTWARE...

MANUAL DEL PROGRAMADOR: SOFTWARE MIGRADOR DE SCRIPTS .SQL ORACLE PARA BASES DE DATOS SQLSERVER EN LA EMPRESA EXPINN

TECHNOLOGY

Brallam Santiago Morales García Jineth Tatiana Camacho Aya

Universidad Distrital Francisco José de Caldas Facultad Tecnológica

Tecnología en sistematización de datos Bogotá, Colombia

2017

TABLA DE COTENIDO

1. OBJETIVOS DEL SOFTWARE ............................................................................ 4

2. INSTALACIÓN DE JAVA Y CONSIDERACIONES DE CONTINGENCIA CUANDO SE PRESENTEN PROBLEMAS CON LA VERSIÓN DE JAVA .............. 5

2.1. LA INSTALACIÓN DE UNA VERSIÓN MÁS RECIENTE DE JAVA: ............. 5

2.2. PROBLEMAS CON EL ENTORNO DE MÁQUINA VIRTUAL. ...................... 5

2.3. PROBLEMAS EN EL ENTORNO DE EJECUCIÓN DEBIDOS A DAÑOS POR INTRUSOS O PARCHES EN LAS VERSIONES EXISTENTES DEL ENTORNO DE EJECUCIÓN DE JRE. ................................................................. 5

2.4. EJECUCIÓN POCO ESTABLE EN ENTORNOS DIFERENTES DE EJECUCIÓN ......................................................................................................... 6

2.5. SI PERSISTEN LOS PROBLEMAS CON JAVA ........................................... 6

2.5.1 EL PRIMERO ES USANDO LA VENTANA DE PROPIEDADES DEL SISTEMA DE WINDOWS. ................................................................................ 7

2.5.2 MEDIANTE LA VENTANA DE LÍNEA DE COMANDOS: ......................... 9

2. ACERCA DEL SOFTWARE ............................................................................... 12

2.1 VALIDACIONES ........................................................................................... 12

2.2 PROXIMOS DESARROLLOS ...................................................................... 12

2.3 EXPRESIONES REGULARES ..................................................................... 14

2.4 INTERFAZ GRAFICA ................................................................................... 15

TABLA DE ILUSTRACIONES Ilustración 1 Ventana de propiedades del sistema................................................... 7

Ilustración 2 Variables de entorno ............................................................................ 8

Ilustración 3 Configuración de variable de sistema .................................................. 8

Ilustración 4 Modificación de la variable Path. ......................................................... 9

Ilustración 5 Ingresar al cmd de windows ................................................................ 9

Ilustración 6 Agregar variable al Path .................................................................... 10

Ilustración 7 Agregar variables a AUTOEXEC.BAT ............................................... 11

Ilustración 8 Validaciones en generación de archivo ............................................. 12

Ilustración 9 Creación de objetos relacionados a procesamiento de estructuras .. 13

Ilustración 10 Procesamiento de código. ............................................................... 13

Ilustración 11 Expresiones regulares para validación de tipos de estructura ......... 13

Ilustración 12 Cadena y expresión regular ............................................................. 14

Ilustración 13 Asignación de expresión regular...................................................... 14

Ilustración 14 Validación de expresión en cadena de texto ................................... 14

Ilustración 15 E expresión regular ejecutada en cadena de texto .......................... 15

Ilustración 16 LookAndFeel del sistema ................................................................ 15

Ilustración 17 Animación de paneles ..................................................................... 15

Ilustración 18 Actualización de frame .................................................................... 16

4

1. OBJETIVOS DEL SOFTWARE

Suministrar una herramienta migrador de scripts .SQL Oracle a SQL Server en la empresa Expinn Technology. Módulo de lectura En primer lugar se encuentra un módulo que permite la carga, lectura y almacenamiento dinámico del contenido de los scripts de entrada .SQL que contiene instrucciones DDL desarrolladas en Oracle que son proporcionadas por la empresa y que posteriormente son procesadas en el módulo de procesamiento.

Módulo de procesamiento En segundo lugar se encuentra un módulo para el procesamiento del script de entrada, que analiza las líneas de código PL/SQL y genera el nuevo código para SQL Server, adicionalmente guarda el contenido dinámicamente para el módulo de escritura.

Módulo de escritura

Como tercer y último se encuentra el módulo de escritura, que es el encargado de generar el script .SQL para SQL Server y realizar la escritura del código procesado y generado en el módulo de procesamiento.

5

2. INSTALACIÓN DE JAVA Y CONSIDERACIONES DE CONTINGENCIA CUANDO SE PRESENTEN PROBLEMAS CON LA VERSIÓN DE JAVA

Los problemas en los cambios de la plataforma java se deben a diversas situaciones entre las que se cuentan:

2.1. LA INSTALACIÓN DE UNA VERSIÓN MÁS RECIENTE DE JAVA:

En algunas ocasiones es probable que el usuario desee instalar algunos complementos en el software que impliquen agregar otras librerías y entornos de ejecución. En teoría estas versiones inicialmente no deberían alterar la ejecución del entorno de ejecución de jdk, sin embargo el software requiere la versión de java 8.0 o superior pero siempre con el jdk 7.0. En el caso de detectarse errores en las diversas clases, se aconseja corregirlas y hacer de nuevo la compilación con todas las clases.

2.2. PROBLEMAS CON EL ENTORNO DE MÁQUINA VIRTUAL.

Es probable que el software frente a cambios futuros de java, produzca errores debido a entornos de máquina virtual coexistentes o entornos incompatibles. En estos casos, se aconseja volver a instalar el IDE Netbeans, instalar una versión de java 8.0 o superior, el jdk 7.0 y compilar el proyecto bajo estas reglas, generar un jar ejecutable y tener la nueva versión de la aplicación lista para su ejecución.

2.3. PROBLEMAS EN EL ENTORNO DE EJECUCIÓN DEBIDOS A DAÑOS POR INTRUSOS O PARCHES EN LAS VERSIONES EXISTENTES DEL ENTORNO DE EJECUCIÓN DE JRE.

En algunas ocasiones el entorno de ejecución puede sufrir daños debidos a vulnerabilidades en el entorno de ejecución de jre. En estos casos se aconseja a parte de la instalación normal de antivirus y sistemas de detección de intrusos, la actualización de la plataforma java a partir del sitio original de quien en ese momento sea el representante legal de la marca java.

6

2.4. EJECUCIÓN POCO ESTABLE EN ENTORNOS DIFERENTES DE EJECUCIÓN

Es probable que el prototipo propuesto en el presente proyecto de grado no obtenga el rendimiento adecuado en otros entornos de ejecución. Bajo estas condiciones se aconseja habilitar las actualizaciones automáticas. Instalar desde las versiones más antiguas e irlas actualizando con el fin de obtener todos los parches de java. Tener mucho cuidado de no saltarse las versiones de java con el fin de asegurarse que todas las cosas de seguridad que java proporciona a sus usuarios estén disponibles en su ambiente de ejecución.

En la consola de java se pueden usar las siguientes opciones para asegurar los anteriores beneficios.

Opción para habilitar las actualizaciones automáticas:

Opción para recibir actualizaciones de seguridad importantes cuando estén disponibles.

Opción para obtener información sobre la actualización de Java

Opción para borrar la caché de Java periódicamente

Opción para informar cuando java está desactivado para estar pendiente que aplicaciones potencialmente están deshabilitando java por fallos, incompatibilidades y parches no instalados en su sistema de ejecución.

2.5. SI PERSISTEN LOS PROBLEMAS CON JAVA

En caso de presentarse los problemas anteriores se aconseja seguir los siguientes lineamientos:

Normalmente cuando estamos comenzando a usar Java nos encontramos con que tenemos que agregar el JAVA_HOME (el directorio de instalación de Java) a las variables de entorno de Windows. Por ello se deben seguir las siguientes especificaciones.

PATH: Que es donde el intérprete de comandos buscará los comandos de ejecución que escribamos en la consola, siempre y cuando no usemos una ruta específica para llamar al comando.

La idea del JAVA_HOME es agregar una nueva variable de entorno al sistema. En este caso JAVA_HOME es el nombre de facto, aunque podría ser cualquier otro, lo importante es que además lo agreguemos al PATH para que Windows pueda reconocer los comandos de Java. Incluso podríamos no definir la variable JAVA_HOME y hacerlo todo directamente sobre la variable PATH, pero por convención y practicidad es mejor definirla, esto te será más claro conforme sigas

7

usando Java. Para agregar la nueva variable de entorno hay dos caminos a seguir.

El primero es usando la ventana de Propiedades del sistema de Windows.

La segunda forma es haciéndolo directamente desde la ventana de línea de comandos

2.5.1 EL PRIMERO ES USANDO LA VENTANA DE PROPIEDADES DEL SISTEMA DE WINDOWS.

Hacer la combinación de teclas Inicio(la tecla de la ventanita) + Pausa para abrir la ventana de Propiedades del sistema.

Ilustración 1 Ventana de propiedades del sistema

Dentro de la ficha Opciones avanzadas, oprimir el botón Variables de entorno, lo que abrirá una nueva ventana titulada Variables de entorno.

8

Ilustración 2 Variables de entorno

Dentro de las variables de entorno se tienen las Variables de usuario y las Variables del sistema, las primeras funcionan durante la sesión del usuario para la cual está como abierta, las otras funcionan para todos los usuarios y se necesitan permisos de administrador para definirlas. Preferentemente usar las Variables de sistema, a menos que haya una situación particular que requiera que use las variables de usuario.

En la sección de las Variables del sistema haremos clic sobre el botón Nueva, esto nos abrirá un pequeño cuadro de diálogo donde se agregan los siguientes valores:

Caja Nombre de variable: JAVA_HOME

Caja Valor de variable: la ubicación donde se haya instalado el JDK, en mi caso C:\Archivos de programa\Java\jdk1.7.0_80 y hacer clic en Aceptar.

Ilustración 3 Configuración de variable de sistema

9

4. Buscar la variable de sistema llamada Path y hacer clic en Modificar.

5. En el campo Valor de variable de la ventana de diálogo Modificar variable de sistema agregaremos nuestra nueva variable de entorno al final del valor existente separándolo por un punto y coma (;) de la siguiente forma: ;%JAVA_HOME%\bin;

Ilustración 4 Modificación de la variable Path.

De esta forma estamos haciendo referencia a la carpeta bin (donde están los comandos de ejecución) de la instalación de Java usando la variable JAVA_HOME que hemos creado en los pasos anteriores. También podríamos haber escrito directamente la ruta de la instalación del JDK en el Path, pero se ha mencionado es preferible hacerlo de esta forma.

Después de estos pasos simplemente deberemos hacer clic en el botón Aceptar de cada ventana y tendremos agregada nuestra nueva variable de entorno.

2.5.2 MEDIANTE LA VENTANA DE LÍNEA DE COMANDOS:

Hacer la combinación de teclas Inicio + R para abrir la ventana Ejecutar, y escribir cmd y hacer clic en Aceptar. Esto abrirá una ventana de línea de comandos.

Ilustración 5 Ingresar al cmd de windows

En la ventana de línea de comandos escribir: set JAVA_HOME=, nuevamente, en mi caso la ruta de instalación es "C:\Archivos de programa\Java\jdk1.6.0_18"

10

Algo a tener en cuenta es que las comillas no son necesarias a menos que se tengan espacios en blanco en la ruta, como es el caso.

Posteriormente, en la misma ventana, habrá que agregar esta variable al Path de esta forma: set Path=%Path%;%JAVA_HOME%\bin;

Ilustración 6 Agregar variable al Path

Con se habrá agregado la nueva variable de entorno, pero solo estará disponible mientras permanezca abierta la sesión de la línea de comandos. Para hacer permanente las variables de otra forma, podemos agregarlas al Autoexec.bat para que se carguen siempre que arranque el sistema.

Agregar las variables de entorno en el Autoexec.bat para ello se deben seguir los siguientes pasos

Abrir una ventana de Ejecutar como en el paso uno de la sección anterior y escribimos sysedit y hacer clic en Aceptar.

En la ventana de AUTOEXEC.BAT agregamos las líneas

@echo off

JAVA_HOME="C:\Archivos de programa\Java\jdk1.6.0_18"

Path=%Path%;%JAVA_HOME%\bin;

Por último, después de guardar el archivo, preferentemente, reiniciar el sistema.

11

Ilustración 7 Agregar variables a AUTOEXEC.BAT

12

2. ACERCA DEL SOFTWARE

Alrededor del programa, se deben seguir varios parámetros s asociados con la estructuración con la que se desarrolló el software.

2.1 VALIDACIONES

El software está estructurado para crear, procesar y genera un archivo, siguiendo estos parámetros no se deben alterar las validaciones realizadas, de lo contrario causaría problemas de excepciones asociados con parámetros nulos.

Ilustración 8 Validaciones en generación de archivo

Como se puede observar en el evento relacionado con la generación del archivo se hace obligatoria la validación de la carga y el procesamiento, con la finalidad de que esta sección del código se ejecute correctamente. La misma aclaración aplica para los eventos asociados con la carga del archivo y el procesamiento del contenido.

2.2 PROXIMOS DESARROLLOS

La estructuración del software está dada para trabajar en el desarrollo de las estructuras que se establecieron inicialmente, sin embargo es posible aplicar el desarrollo para la migración de otras estructuras un tanto más complejas. Se sugiere seguir el mismo modelo, al crear una clase que maneje todos los procesos de migración recibiendo el código a procesar y que retorne o genere como salida el nuevo código procesado.

Esta sección hace referencia al módulo de procesamiento, sin embargo en la clase procesamiento se debe instanciar las nuevas clases para poderlas usar desde el controlador y luego agregar el código faltante al controlador, de esta forma funciona para las clases ya existentes asociadas con la migración de las

13

estructuras (tablas, vistas, funciones, procedimientos y triggers) La siguiente imagen explica lo expuesto.

Ilustración 9 Creación de objetos relacionados a procesamiento de estructuras

Como se puede observar en la siguiente imagen además de desarrollar estos pasos (los más complicados), para finalizar en la interfaz se debe agregar un nuevo CheckBox referente al nuevo tipo de estructura e implementarse la validación en el método.

Ilustración 10 Procesamiento de código.

También se debe realizar una expresión regular (Que se explican más adelante) para la detección de este tipo de estructura. Esto se realiza en la clase DeteccionEstructuras.

Ilustración 11 Expresiones regulares para validación de tipos de estructura

14

2.3 EXPRESIONES REGULARES

Las expresiones regulares para el caso de proyecto expuesto, juegan un papel fundamental porque son las que permiten las detecciones de patrones de caracteres en cadenas de texto y con ello realizar validaciones que permitan modificar las instrucciones y generar nuevas líneas de código.

Como la importancia de las expresiones regulares es crucial se sugiere al desarrollador interesado tener una buena fundamentación en este tipo de tecnología, puesto que no es fácil comprensión y maneja código a bajo nivel.

Las expresiones regulares también están estructuradas para desarrollarse en determinadas clase según así se necesite, puesto que el software se generó a partir de un proceso de prueba y error para el testeo de las expresiones regulares se sugiere desarrollar un pequeño programa con las siguientes características.

Declaración de una variable String que almacene la cadena de texto que se desea validar.

Declaración de una variable Pattern para definir el patrón mediante la expresión regular.

Ilustración 12 Cadena y expresión regular

Se debe definir una variable Matcher que permita aplicar la expresión regular sobre la cadena de texto.

Ilustración 13 Asignación de expresión regular

Por último se hace la validación de la expresión regular y con ello se habrá aprendido a detectar patrones de caracteres en cadenas de texto.

Ilustración 14 Validación de expresión en cadena de texto

15

Comprobación de expresión regular.

Ilustración 15 E expresión regular ejecutada en cadena de texto

2.4 INTERFAZ GRAFICA

La interfaz se desarrolló de una forma sencilla, con la finalidad de hacerla intuitiva y de fácil usabilidad, si es necesario, se propone el desarrollo de nuevos paneles o pequeñas modificaciones al Frame principal, siempre y cuando no irrumpa con la razón por la cual fue elaborada así. Se aconseja no cambiar el LookAndFeel del programa, de forma que no se afecten los cuadros de dialogo asociados con el sistema operativo en el que sea ejecutado el software.

Ilustración 16 LookAndFeel del sistema

Aunque no es muy propio en el desarrollo de aplicaciones de escritorio basadas en java el uso de animaciones, estas proporcionan organización y optimización del campo de trabajo del usuario, por lo cual se aconseja que en la creación de nuevos módulos se implementen paneles animados que permitan al usuario siempre manipular la configuración necesaria sin necesidad de estar regresando entre ventanas o estar abriéndolas y cerrándolas.

Ilustración 17 Animación de paneles

16

Como se puede observar en la anterior imagen se muestra el código desarrollado para la animación de paneles y actualización de componentes asociados en el frame y respecto a otro(s) paneles con animación.

La línea de código que realmente es de interés es la línea once dodne se hace uso del método mover_izquierda y se le suministran los parámetros relacionados con las posiciones de inicio y de fin en el eje x, el valor de retardo y los pixeles que se mueve cada retardo.

Además de ello es necesario configurar mediante el evento ComponentMoved el tamaño del frame de forma que este se adapte a los nuevos tamaños cada vez que se abre o se cierra un panel. La siguiente imagen muestra el código que realiza esta acción.

Ilustración 18 Actualización de frame