domingo, marzo 20, 2005

Advantage lo hace de nuevo !!!!

Acabo de regresa de pasar una semana en la ciudad de Chetumal, Capital del Estado Mexicano de Quintana Roo, para que se ubiquen mis lectores no mexicanos, es el estado (provincia/departamento) donde se encuentra el mundialmente conocido centro turístico de CanCun.

No, no estaba en una playa del Caribe Mexicano tumbado al sol, estuve trabajando en la dirección de informática de la Secretaría de Hacienda del Estado, dándole los toques finales al sistema ISTUV y poniendo a punto un ADS para 100 usuarios.

ISTUV son la iniciales de Impuesto Sobre Tenencia y Uso de Vehículos, y es el sistema que utiliza el gobierno del estado para controlar automóviles, moticicletas, jets ski, botes, yates, etc. Todos los vehículos del estado y el cobro de los impuestos que el uso de estos genera, están controlados por el sistema ISTUV, el cual posteriormente los reporta al gobierno Federal.

ISTUV originalmente estaba desarrollado en Clipper 5.2, e instalado en redes de area local con servidores Novell 4.11 dentro de los centros de atención al público del gobierno del Estado, esto dificultaba contar con información en línea debido a que las redes no estaban conectadas a la central, lo cual demoraba la integración de la información hasta en 5 días.

Con el programa de modernización del gobierno, se decidió enlazar a todas las oficinas de atención al publico y centralizar la información de tal forma que todas las operaciones del padrón vehicular se pudieran llevar a cabo en tiempo real.

Se hizo una importante inversión tecnológica para conectar a todas las oficinas remotras a través de un enlace dedicados E3 a un super servidor HP Xeon Dual processor 2 procesadores de 2.8 GHertz cada uno, 2 Gbytes de memoria ram y un array de 8 discos duros de 40 gigas cada uno... un sueño de servidor.

Con tan buen hardware y excelente ancho de banda, nadie tomó en cuenta el software... y cuando se montó la version Clipper en este ambiente WAN, con todas las bases de datos a su maxima capacidad.... ¡ oh desilusión !, los sitios remotos tardaban más de 20 minutos solo en abrir la tabla del padrón vehicular (mas de 200 mil registros) y mas de 3 horas en abrir los movimientos del padrón (1,200,000 registros), fue entonces cuando entramos en acción nosotros, para sugerirles el uso de Advantage Database Server como su solución.

Cabe señalar que no es la primera vez que voy a Chetumal, ya he estado allí 3 veces, la primera fue para hacer una demostración del ADS y dejarles instalada una copia de evaluación, enseñarles las bondades de los indices CDX contra los NTX que estaban utilizando y mostrarles las técnicas de programación que debían seguir para migrar su aplicación a ADS. La dirección quedó sumamente satisfecha con los resultados de esta primera visita, que quedó pendiente una segunda visita.

La segunda vez que los visité, fue para impartir un curso intesivo de (x)Harbour y FiveWin, ya que en las pruebas efectuadas, vimos que la aplicación de Clipper DOS se volvía mas rápida usando ADS, pero debido al uso del ADSDosIP (interfaz ADS para que aplicaciones DOS puedan utilizar el protocolo TCP/IP) , había cierta caída de velocidad que no resultaba satisfactoria para el uso del programa en oficinas remotas, así que se decidió mover la aplicación completa a una Interfaz Visual de 32 bits, y dada la amplia experiencia de los programadores en Clipper, el camino obvio fue utilizar (x)Harbour con FiveWin Harbour como interfaz gráfica.

Para esta última visita, el avance del proyecto era ya del 90% y durante 5 días nos dedicamos a resolver dudas técnicas de programación y a hacerle un ajuste fino al servidor ADS.

El sistema está programado en FiveWin Harbour 2.4, con xHarbour 0.92, los reportes están hechos con Crystal Reports 8.5 utilizando el Cliente Crystal de ADS, adicionalmente cuenta con una aplicación PHP para Internet que le permite consultar al público los importes correspondientes a los impuestos de sus vehículos.

Los usuarios no son pocos, en total 75 estaciones de trabajo remotas están conectadas en la WAN via Advantage Internet Server, 10 Estaciones más utilizan el servidor ADS remoto dentro de las instalaciones del departamento de informática, y 20 usuarios adicionales se conectan utilizando Clientes Delgados de Windows Terminal Server.

Las bases de datos no son precisamente pequeñas, el padrón vehicular sobre pasa los 220 mil registros, mientras que el archivo que contiene los movimientos del padrón son aproximadamente 1,200,000 registros.

Durante los días de prueba, el servidor ADS registró mas de 300 mil operaciones a las mas de 50 tablas DBF e índices CDX que componen el sistema, sin experimentar absolutamente ningún problema y entregando la información a las estaciones remotas casi como si fuera una red de área local.

Surgieron algunos problemas con la aplicación PHP, debido a que los programadores deseban integrar algunas cosas adicionales a las tablas, como procesos almacenados (store procedures) y esquemas de seguridad a las tablas, por esa razón se decidió migrar todos los DBF y sus índices CDX al formato nativo de ADS, archivos ADT, con índices ADI todos integrados dentro de un Diccionario de Datos Advantage.

Debido a la premura del tiempo, me tocó realizar a mí la parte de la migración de los DBFs a ADT, para lo cual escribí un pequeño programa en XAILER que realizara esta tarea, el programa quedó bastante decente, pese a mi evidente inexperiencia utilizando Xailer, pero este pequeño programa cumplió bien su objetivo, con algunos pequeños bugs. Si deseas verlo en acción, puedes descargarlo haciendo click aqui, (proyecto, ejecutable y DLLs incluidos). Necesitarás Xailer para volverlo a construir.

Una vez cambiadas todas las estructuras de las tablas, únicamente tuvimos que agregar a nuestro código fuente la función ADSSetFileType(3) (para definir el formato ADT como predeterminado), volvimos a compilar el programa y ¡ listo !, nuestra aplicación estuvo lista para funcionar con tablas ADT en pocos minutos, ahora hay que cambiar todos los reportes de Crystal, pero eso es lo de menos.

Las tablas ADT se portaron bastante bien con el programa, sentimos que la velocidad del programa se incrementó, no de manera radical, pero si se siente un poco (no mucho) mas rápida que con DBFs e índices CDX, los usuarios remotos nos notificaron también de un incrmento de velocidad.

Dejé Chetumal con el servidor ADS montado y bien configurado, listo para entrar en producción, las dudas de los programadores totalmente resultas y en pocas palabras....

¡ Advantage lo hace de nuevo !

No hay comentarios.: