Skip to content

6. Complementarios

John F. Arroyave Gutiérrez edited this page Aug 17, 2022 · 2 revisions

6.1. Arquitectura de la aplicación

Del lado del cliente se encuentra un dispositivo dotado con navegador web (PC, Tableta, SmartPhone) el cual hace las diferentes solicitudes a la aplicación.

Práctico cuenta con un motor propio que despliega en pantalla los diferentes objetos (controles de formulario, informes, menús y gráficas) de acuerdo a cada solicitud del cliente y lo establecido por la lógica de la aplicación, la cual hace el puente como el núcleo de Práctico con el motor de base de datos para el almacenamiento.

Este núcleo permite también la interacción con otras aplicaciones mediante el acceso a bases de datos compartidas y la ejecución de funciones personalizadas por el desarrollador para extender las funcionalidades de la herramienta.

image

6.2. Capa de datos

Se ha incluido dentro de la herramienta un archivo con funciones destinadas a realizar todas las operaciones con el motor de base de datos, de manera que todo sea adaptable a diferentes motores de bases de datos. Para la estandarización de estas instrucciones se ha seleccionado la extensión PDO44 de PHP y que permite tener métodos uniformes para acceder a diferentes motores de bases de datos de acuerdo a los controladores disponibles en la configuración de PHP.

image

Aunque el desarrollo oficial de la herramienta se hace sobre motores MySQL y MariaDB de manera oficial, algunos de los drivers actualmente disponibles para PDO facilitan la adaptación y/o ejecución del código con los siguientes motores de base de datos:

  • MySQL (3.x/4.x/5.x)
  • MariaDB (5.x)
  • SQLite2
  • SQLite3
  • FreeTDS/Microsoft SQL Server: Win32 [versión 2008]
  • FreeTDS/Microsoft SQL Server: Win32&Linux [versión 2000]
  • PostgreSQL
  • IBM (DB2)
  • DBLIB/Sybase
  • Microsoft Access (ODBC v3: IBM DB2, unixODBC, Win32 ODBC)
  • ORACLE (OCI Oracle Call Interface)
  • Informix (IBM Informix Dynamic Server)
  • Firebird (Firebird/Interbase 6)
  • 4D

6.3. Lógica de programación

Para su correcto funcionamiento, Práctico cuenta con algunas funciones internas que permiten realizar las validaciones y controles de flujo del programa mientras se trabaja sobre la herramienta, sin embargo, todas estas funciones internas se encuentran disponibles también para ser utilizadas dentro de la aplicación misma que es diseñada mediante Práctico a manera de funciones de Framework.

Así pues, lo módulos de Práctico trabajan de manera articulada mediante estas funciones garantizando las operaciones entre el cliente (navegador web), el motor de Práctico generador de las interfaces de usuario e informes y el motor de bases de datos sobre el cual se almacena la aplicación y sus datos.

La representación de la lógica de programación, validaciones y demás formalismos asociados a los procesos y lógica de negocio que se desee implementar con la aplicación mediante Práctico estarán implícitos en el diseño de cada uno de los formularios y las opciones de menú asociadas para su cargue por parte de los usuarios finales de la aplicación, componentes que son los que definen el comportamiento general de la aplicación.

Si bien el diseño de los formularios puede contemplar los aspectos clave asociados a procesos de validación, también se puede hacer el llamado a las funciones internas mediante la creación de funciones o módulos personalizados que tomen los datos ingresados por el usuario y los procesen de manera diferente, por ejemplo, mediante una nueva función definida sobre los archivos disponibles en Práctico para personalización de funciones o sobre módulos independientes.

6.4. Escenarios para despliegue de aplicaciones

Práctico se compone de un conjunto de scripts en PHP, archivos HTML, scripts SQL, imágenes y otros elementos que sirven para la creación de aplicaciones mediante esta herramienta, y como tal, puede ser desplegado sobre cualquier servidor web que soporte PHP o bajo diferentes modalidades ofrecidas por algunos proveedores en la red como PaaS (Palaforma como servicio), VPS (Servidores privados virtuales, o dedicados), servidores compartidos, entre otros.

Todos los archivos y componentes necesarios para hacer una instalación de Práctico se encuentran dentro de su archivo de paquete comprimido que puede ser descargado desde la web del proyecto. Este paquete sirve para instalar la herramienta en modo de producción o en modo de pruebas.

Las aplicaciones diseñadas en Práctico son desplegadas “en caliente”, ya que a medida que son creados los objetos como tablas, formularios, informes y menús éstos quedan disponibles de manera inmediata para los usuarios. De esta manera si estas tareas son desarrolladas sobre una instalación en producción bastará con asignar los permisos de cada objeto diseñado a los usuarios correspondientes y las nuevas opciones estarán disponibles en la siguiente carga del sistema que haga el usuario.

Aquellos desarrolladores que deseen tener un escenario de pruebas podrán realizar una segunda instalación de Práctico sobre una base de datos diferente a la de producción, o sobre la misma base de datos pero con prefijos de tabla diferentes para poder realizar primero sus diseños antes de ser creados nuevamente en el entorno de producción.

Gráficamente, como posibles escenarios para el despliegue de Práctico, y a su vez, el despliegue de las aplicaciones desarrolladas en éste se tienen:

6.4.1. Servidor de web y base de datos dedicado a producción

Cuenta con un servidor web y de base de datos alojados en la misma máquina, sobre el cual se hace una o varias instalaciones de Práctico con fines de producción y que servirá las aplicaciones a los usuarios finales:

image

En este escenario el desarrollador también puede acceder directamente a la plataforma en producción y diseñar sobre esta los nuevos objetos, quedando disponibles de manera inmediata sobre la aplicación servida por Práctico.

Es un escenario orientado a desarrolladores experimentados en la herramienta pues los cambios realizados sobre tablas o formularios pueden afectar el funcionamiento de la aplicación. Es recomendable adoptar un escenario que contemple un entorno de pruebas para el diseño de los objetos antes de ser publicados.

6.4.2. Servidor web y de base de datos dedicado a producción y pruebas

Cuenta con un servidor web y de base de datos alojados en la misma máquina, sobre la cual se hacen dos o más instalaciones de Práctico sobre diferentes path en el servidor web y la misma base de datos con fines de producción o pruebas:

image

En este escenario el desarrollador puede tener otras instalaciones de Práctico sobre la misma máquina donde residen los scripts y base de datos del sistema en producción.

Contar con al menos una segunda instalación para pruebas cuando no se cuenta con experiencia en la herramienta es fundamental para garantizar la continuidad de las operaciones previniendo una posible falla del servicio por diseños mal realizados y publicados en el entorno de producción.

6.4.3. Servidor de web y base de datos independientes dedicados a producción

Cuenta con un servidor web y de base de datos en máquinas diferentes, sobre el servidor web se pueden tener múltiples instalaciones de Práctico y sobre el servidor de bases de datos múltiples bases de datos asociadas a cada instalación de la herramienta con fines de producción:

image

6.4.4. Servidor de web y base de datos independientes dedicados a producción y pruebas

Este y otros escenarios pueden ser considerados como híbridos de los anteriormente descritos debido a que los tipos de configuración de la plataforma sobre la cual reside la herramienta pueden ser múltiples.

El paso de una aplicación de pruebas a un entorno de producción puede ser realizado de dos maneras:

  1. Copiando (total o parcialmente) la base de datos de pruebas y sus objetos sobre la base de datos que será dedicada al sistema de producción.
  • Copia de tablas con el prefijo del núcleo de la herramienta (predeterminado en “core”) harán un traspaso de objetos como formularios, informes y credenciales de usuario.
  • Copia de las tablas con el prefijo de aplicación (predeterminado en “app”) harán un traspaso de los objetos tipo tabla de datos que han sido definidos por el desarrollador. Aquí se podrá decidir entre hacer una copia completa incluyendo los datos o hacer una copia limpia con sólo la estructura de la tabla.
  • El proceso de copia de estos elementos puede ser ejecutado por el desarrollador mediante cualquier herramienta que tenga disponible de acuerdo a su motor de base de datos.
  1. Cambiando las variables de configuración asociadas a los parámetros de conexión con el motor de base de datos, aunque esto puede implicar la desconexión temporal de un sistema que ya se encuentra en producción. Lo ideal es contar con una instalación de pruebas independiente y replicar los elementos sobre la instalación del sistema en producción

En esencia, el despliegue de Práctico se podría comparar con aplicaciones que funcionan de manera similar como Joomla!, las cuales se descomprimen sobre el servidor web y se ejecuta un asistente de instalación que genera las tablas necesarias para trabajar y donde cada contenido agregado es servido inmediatamente.

6.4.5. Despliegue en Heroku

Práctico le permite desplegar sus aplicaciones y entornos de producción de manera rápida de uno a cientos de miles de usuarios de manera rápida utilizando Heroku.

En esencia, una vez registrado en Heroku, sin importar si su cuenta es gratuita o de pago, usted podrá sincronizar el repositorio de Práctico con su plataforma mediante el botón destinado para esto en el repositorio del proyecto en GitHub o en la página web oficial.

image

A partir de allí siga las instrucciones propias de Heroku para realizar el despliegue de la aplicación.

6.4.6. Modo de demostración

Práctico cuenta con un modo especial que le permite generar instalaciones (o convertir las existentes) en aplicaciones en modo de demostración, para sus desarrolladores, clientes, visitantes de la web, etc.

Este módulo es habilitable únicamente por el administrador del servidor o quien tenga acceso a la raíz de instalación, ya que es controlado por un archivo que solamente puede ser puesto allí por quien tenga permisos de escritura.

Para cambiar a Práctico a modo de demostración simplemente deberá crear un archivo llamado DEMO (en mayúscula) en la raíz de su instalación. Cuando Práctico detecta que existe ese archivo inmediatamente pasa a modo demostración muchas de sus funcionalidades dentro de las cuales pueden estar, sin limitarse a éstas, las siguientes:

  • Pantallas de configuración de motor, prefijos y modos de autenticación
  • Cambio de contraseña del usuario
  • Actualización de perfiles del usuario
  • Modo de escritura del PCoder
  • Modo de escritura para exploradores de archivos embebidos

Esto permitirá que usted despliegue aplicaciones donde los usuarios puedan explorar todo lo creado e incluso los administradores puedan realizar diseños nuevos o editar los existentes pero sin realizar cambios graves a la plataforma para que otros puedan seguir ingresando.

Adicionalmente, Práctico genera una variable de sesión que puede servir a usted para controlar sus módulos propios y conocer el estado del modo demo. La variable es PCO_ModoDemo y toma valores de cero o uno si está desactivado o activado correspondientemente.