Estrategia de Desarrollo de Aplicaciones con xpotronix
Las aplicaciones mencionadas son aplicaciones xpotronix compatibles a la versión 2. Xpotronix es una librería para el desarrollo de aplicaciones web a través de serializaciones XML y transformaciones XSL. Esto permite desarrollar código en forma rápida y segura. Las librerías son complemento de la consultoría en desarrollo de aplicaciones. Se ha cedido en forma gratuita el uso de las liberías para el CMCABA en expediente xxx/2006 a fojas (yyy). El paquete completo incluye liberías y herramientas de terceros para su funcionamiento, como ser:
- apache2
- mysql5
- Saxon HE
- Java
- PHPGacl
- ADODB
destacando las herramientas principales.
Para los sistemas de templates, se utilizan herramientas que requieren licenciamiento:
- ExtJS3 (Sencha.com, es la misma libería que utiliza JusCABA-CAyT)
- Bootstrap (gratuita, cedida por Twitter Inc.)
- SmartAdmin, para los templates de MiPortal (costo 18 u$s)
Ventajas para el uso de las aplicaciones xpotronix:
- Desarrollo rápido en forma segura de código fuente: esto permite que un sólo programador pueda desarrollar varios sistemas completos a la vez y dar soporte
- Facilidad para realizar cambios pequeños en producción en forma segura, sin la necesidad de esperar a un nuevo release del software
- Facilita la implementación de proyectos a través de desarrollo de prototipos incrementales (Agile)
- Lenguaje declarativo, no implementa un lenguaje propio para procedimientos (son procedimientos estándar PHP, SQL y Javascript)
- En caso de migrar a cualquier otro framework de desarrollo el código sigue siendo reutilizable
- Implementa ORM para facilitar la programación y el desarrollo de aplicaciones
- Sistema de templates basado en XSL estándar
- Generación de código a través de templates XSL
- Utiliza herramientas de abstracción de acceso a base de datos permitiéndo implementar interfaces entre dos plataformas de base de datos distintas (interoperación MSSQL y MySQL para la migración de datos entre Payroll y xPay)
- Implementa REST (interoperabilidad Kiwi/JusCABA)
- Implementa SOAP (login entre aplicaciones, ej. WordPress)
- Arquitectura ordenada y reutilizable lo que permite un footprint mínimo para la aplicación resultante transformada
- Implementación modelo MVC
- Implementa ACL lo que permite definir roles de usuario y desarrollar tanto reglas de negocio como templates de usuario de acuerdo a los permisos correspondientes
- Generación automática de código SQL
entre otras facilidades. Para mayor información visitar http://xpotronix.com
Localización de los fuentes de las aplicaciones
En el directorio proyects/priv-projects se encuentran los fuentes de las aplicaciones desarrolladas. Para cada proyecto un subdirectorio donde residen todos los fuentes y declaraciones necesarias para el funcionamiento.
Proyecto | Destino | Ruta |
---|---|---|
juscaba2 | Interoperabilidad CMCABA/MPF | projects/priv-projects/juscaba2 |
xPay | Recursos Humanos (DFH) | projects/priv-projects/xpay (incluye a projects/priv-projects/payroll) |
doCABA | Visor de Documentos Digitales | projects/priv-projects/docaba |
Implementación de las aplicaciones
Las aplicaciones funcionan en en un stack LAMP (Linux, Apache, MySQL, PHP) estándar.
Configuración del PHP5
Para la configuración del servidor PHP deberá contemplar la variable
1 |
short_tags = On |
para su funcionamiento, tanto para los entornos de ejecución apache2 y CLI.
Configuración del Servidor de Aplicaciones Apache2
Las aplicaciones xpotronix son comunes a todas las aplicaciones y deben ser instaladas el el directorio
1 |
/usr/share/xpotronix |
Las liberías quedarán disponibles al DocumentRoot de la aplicación a través de la siguiente configuración en /etc/apache2/sites-enabled
1 2 3 4 5 |
<Directory /var/www/xpotronix/juscaba2/> <IfModule mod_php5.c> php_value include_path ".:/usr/share/php:/usr/share/php/adodb:/usr/share/xpotronix" </IfModule> </Directory> |
Para las librerías ExtJS y propias en Javascript, las aplicaciones requieren de los siguientes liberías Javascript a modo de alias:
1 2 |
Alias /ux /usr/share/xpotronix/templates/ext/ux/ Alias /ext /usr/share/xpotronix/lib/ext/ |
Quedan entonces los archivos completos configurados de la siguiente forma para las aplicaciones mencionadas en el directorio /etc/apache2/sites-enabled:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
### kiwi.juscaba.jusbaires.gov.ar <VirtualHost *:80> ServerName kiwi.juscaba.jusbaires.gov.ar DocumentRoot /var/www/sites/xpotronix/juscaba2/ ErrorLog ${APACHE_LOG_DIR}/juscaba.jusbaires.gov.ar.error.log CustomLog ${APACHE_LOG_DIR}/juscaba.jusbaires.gov.ar.access.log combined <Directory /var/www/sites/xpotronix/juscaba2/> <IfModule mod_php5.c> php_value include_path ".:/usr/share/php:/usr/share/php/adodb:/usr/share/xpotronix" </IfModule> </Directory> Alias /ux /usr/share/xpotronix/templates/ext/ux Alias /ext /usr/share/xpotronix/lib/ext <IfModule mod_deflate.c> SetOutputFilter DEFLATE </IfModule> #Header unset ETag #FileETag None <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|css)$"> Header unset Last-Modified #Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" Header set Cache-Control "public; max-age=6000" </FilesMatch> <FilesMatch "(?i)^.*\.(js)$"> Header unset Last-Modified #Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" Header set Cache-Control "max-age=600" </FilesMatch> </VirtualHost> ### xpay.jusbaires.gov.ar <VirtualHost *:80> ServerName xpay.jusbaires.gov.ar DocumentRoot /var/www/sites/wordpress/xpay/ ErrorLog ${APACHE_LOG_DIR}/xpay.jusbaires.gov.ar.error.log CustomLog ${APACHE_LOG_DIR}/xpay.jusbaires.gov.ar.access.log combined <Directory /var/www/sites/xpotronix/xpay/> <IfModule mod_php5.c> php_value include_path ".:/usr/share/php:/usr/share/php/adodb:/usr/share/xpotronix" </IfModule> </Directory> Alias /ux /usr/share/xpotronix/templates/ext/ux Alias /ext /usr/share/xpotronix/lib/ext Alias /extjs /usr/share/xpotronix/lib/ext <IfModule mod_deflate.c> SetOutputFilter DEFLATE </IfModule> #Header unset ETag #FileETag None <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|css)$"> Header unset Last-Modified #Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" Header set Cache-Control "public; max-age=6000" </FilesMatch> <FilesMatch "(?i)^.*\.(js)$"> Header unset Last-Modified #Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" Header set Cache-Control "max-age=600" </FilesMatch> </VirtualHost> ### miportal.jusbaires.gov.ar <VirtualHost *:80> ServerName miportal.jusbaires.gov.ar DocumentRoot /var/www/sites/xpotronix/xpay/ ErrorLog ${APACHE_LOG_DIR}/xpay.jusbaires.gov.ar.error.log CustomLog ${APACHE_LOG_DIR}/xpay.jusbaires.gov.ar.access.log combined <Directory /var/www/sites/xpotronix/xpay/> <IfModule mod_php5.c> php_value include_path ".:/usr/share/php:/usr/share/php/adodb:/usr/share/xpotronix" </IfModule> </Directory> Alias /ux /usr/share/xpotronix/templates/ext/ux Alias /ext /usr/share/xpotronix/lib/ext Alias /extjs /usr/share/xpotronix/lib/ext <IfModule mod_deflate.c> SetOutputFilter DEFLATE </IfModule> #Header unset ETag #FileETag None <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|css)$"> Header unset Last-Modified #Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" Header set Cache-Control "public; max-age=6000" </FilesMatch> <FilesMatch "(?i)^.*\.(js)$"> Header unset Last-Modified #Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" Header set Cache-Control "max-age=600" </FilesMatch> </VirtualHost> ### Librerías adicionales javascript Alias /ux /usr/share/xpotronix/templates/ext/ux/ Alias /ext /usr/share/xpotronix/lib/ext/ ### Aliases para acceder en formato http://host/aplicacion Alias /xpay /var/www/sites/xpotronix/xpay Alias /miportal /var/www/sites/xpotronix/xpay Alias /juscaba2 /var/www/sites/xpotronix/juscaba2 Alias /docaba /var/www/sites/xpotronix/docaba ### Librerías de ejecución xpotronix <Directory /var/www/sites//xpotronix/> <IfModule mod_php5.c> php_value include_path ".:/usr/share/php:/usr/share/php/adodb:/usr/share/xpotronix" </IfModule> </Directory> |