Desarrollo de Sistemas ERP/CRM y Software Libre, Linux, Desarrollo de Proyectos, Programación OpenSource. Web
lunes, febrero 27, 2006
Especificacion XMLREG para Registros
En esta primera version se exponen la forma de definicion de Registros y una forma de Serializacion propuesta para la exportacion, importacion y edicion/visualizacion offline de los datos.
El Proyecto en CubaForge tendra el nombre de XMLREG ya esta registrado, solo falta la respuesta de los administradores del Forge.
La primera version del documento se publicara en la carpeta de proyectos de XMLREG en el Forge.
Espero sus revisiones y criticas.
lunes, febrero 13, 2006
Dockable Data
Para lo cual se me ha ocurrido este termino (buzzword) "Dockable Data", que aunque no se si este ya acuñado a otro significado pero me ilustra perfectamente lo que se deberia permitir por todo sistema de gestion, si bien no por todos los usuarios y algunas veces hasta de forma automatica.
En estos momentos me encuentro haciendo una definicion de "Dockable Data" como lenguaje de marcado XML extensible pero con un conjunto de funcionalidades que podrian hacer mucho mas facil la tarea de desarrollar sistemas de gestion, con captura, busquedas, reporting, y otro termino que tambien viene en camino "Navigate & Report" (Navegacion y Reporte) que aparejado a Dockable Data pueden hacer mucho por el desarrollo de sistemas a medida en el pais.
Saludos
jueves, febrero 09, 2006
Mis Registros, herramienta para la gestión de información
Resumen
Mis Registros es un sistema sencillo de gestión de registros de datos, con funcionalidades básicas de gestión de información que abarca desde la captura, edición, borrado e impresión de la información hasta la interrelación entre registros, las búsquedas con filtrado inteligente, el reporting automático, los eventos de registro, la importación y exportación desde fuentes de datos externas, brindando la base necesaria para que complejos sistemas de gestión sean modelados progresivamente de acuerdo a las necesidades y capacidades de las entidades que lo implementen.
Objetivos
Los objetivos de este proyecto son simples en su complejidad programatica pero ambiciosos en el alcance objetivo que el mismo posee. Las necesidades de sistemas de gestión que le brinden a las empresas cubanas la capacidad de automatizar y controlar los recursos de la misma de manera efectiva, progresiva, documentada y accesible a todos los trabajadores se hacen más evidentes cada día, en la medida que las nuevas tecnologías de la información y las comunicaciones van abarcando todos los campos del desarrollo empresarial cubano y mundial.
Soluciones a sistemas empresariales existen muchas y de calidad en el mercado internacional, y Cuba posee la fuerza y la capacidad necesarias para ir supliendo las necesidades de software de este tipo que las empresas nacionales tienen, y que, ante la falta de opciones efectivas para su implantación se ven en la necesidad de sub-contratar los servicios de empresas de software que les modelen y programe su software, no siempre resultando en soluciones validas que se adapten a los cambios constantes en el sector empresarial nacional. Donde muchas de estas soluciones carecen de consideraciones de tipo legal, al utilizar tecnologías propietarias no licenciadas, ya sean de gestores de bases de datos, de plataformas de desarrollo o de sistemas operativos y al no contar la empresa con los códigos fuentes de los sistemas que tiene en funcionamiento, bien porque forma parte de un desarrollo cerrado de los proveedores de software o porque ni siquiera los proveedores pueden contar con él.
De cara a la migración hacia software libre, las necesidades de software de gestión se hacen mas patentes, siendo una de las principales causas de que todavía muchas instituciones no realicen la tan “deseada” migración, argumentando que no poseen sistemas de reemplazo para aquellos que no son susceptibles de migrar hacia plataformas de software libre (en particular Linux) especialmente el software de gestión, contables, financieros, de producción, etc.
La posibilidad de contar con una herramienta para la definición e implementación efectiva de sistemas de gestión de información es un imperativo en las empresas nacionales de todos los sectores. Herramientas que deben tener requisitos mínimos de usabilidad, accesibilidad, disponibilidad, eficiencia, fiabilidad, seguridad y modularidad, básicos para poder, en el marco de la empresa, contar con un sistema que dé respuesta a las necesidades de automatización de toda la información y los procesos asociados a esta que en la misma se generen y además sea factible su adecuación a los cambiantes entornos de trabajo.
Los requisitos del sistema/herramienta son descritos debajo de manera que puedan ser implementados en su totalidad. Siempre con la posibilidad de extender esta para dar soluciones a problemas más complejos cada vez.
1. Estar programado en una (o varias) plataformas de desarrollo libres.
2. Código abierto.
3. Independencia en los gestores de bases de datos.
4. Estructura de datos única para cualquier registro configurado en el sistema (esto es que la definición de las tablas y sus relaciones en la base de datos es única, que de cabida a todas las funcionalidades y los registros configurados)
5. Integración con esquemas independientes de seguridad (Ej. ActiveDirectory para Windows o LDAP para Linux, etc.)
6. Asegurar esquemas de Cliente/Servidor con alta disponibilidad y soporte para bitácoras de acciones por usuario.
1. Definición de Registros, ya sea a nivel central como a nivel personal (Todos los registros están al mismo nivel en teoría, pero en la practica el grado de alcance y de interrelación los sitúa a niveles distintos, Ej. Un registro de Contratos es de nivel empresarial y el registro de un usuario de tareas por cumplir es de corte personal, el primero tendrá evidentemente muchas relaciones con otros registros de nivel empresarial, accesible por muchos usuarios y el segundo solo por el usuario que lo creó con fines muy particulares, pudiendose crear relaciones entre ellos visibles solamente a los usuarios que tengan los permisos)
2. Los registros deberán tener, nombre, creador, usuarios con acceso, descripción del mismo y tratamiento particular, eventos, formatos de impresión. Así como los campos de los registros, tendrán información relacionada al tipo, validación, formulas, relaciones con otros registros, descripción para auto-documentación, restricciones de unicidad, resúmenes.
3. Se proveerá de una herramienta de Importación y Exportación de datos, inicialmente para XML y CSV.
4. Se podrán navegar los registros hacia abajo y filtrar hacia arriba los registros relacionados en las relaciones teniendo un grado de dependencia primario-secundario (Ej. Clientes-Contratos donde Clientes es primario y Contratos secundario, de manera que se pueden navegar desde Clientes todos los contratos para un cliente determinado, pero en Contratos solamente puedo filtrar el registro por un Cliente determinado y ver todos los contratos con ese cliente en particular)
5. Cuando se hace una impresión de un dato de registro particular, se podrá solicitar que imprima sucesivamente todos los listados de registros asociados (hacia abajo) según sus filtros aplicados (Ej. Si imprimo un Contrato, me mostrara sucesivamente, a petición, todas las Facturas asociadas, etc.)
6. La definición de los esquemas de impresión, (layouts) configurable por los usuarios, permitiendo el uso de múltiples esquemas, para lo cual es necesario implementar una herramienta de confección de estos.
7. Archivador de registros, con la posibilidad de crear CDs (o DVDs) con toda la información salvada de un periodo largo de trabajo, autoejecutable con un navegador de datos (sin posibilidad de edición, inserción ni borrado)
La implementación practica del proyecto esta pendiente de realizarse, es necesaria la ayuda de personal comprometido y capacitado. Además de contar con los recursos necesarios, de tiempo, de infraestructura, documentación, comunicación, etc.
La implementación puede ser hospedada en un sitio con CVS (Concurrent Versioning System) de manera que los cambios que vayan haciéndose en el proyecto sean de conocimiento publico y donde las versiones puedan ser publicadas con cierta periodicidad así como los cambios y las adiciones de funcionalidades y las mejoras continuas en el sub-sistema subyacente.
Recomiendo el uso de tecnologías libres de desarrollo, multiplataformas, en particular Java y .NET, por ser de gran efectividad y por su facilidad de uso, programación y la potencia de sus soluciones.
Para ilustrar un caso practico de aplicación del sistema supongamos una empresa comercializadora de artículos de uso general (de consumo) que tiene puntos de venta en varios lugares del país y que no tienen una infraestructura de red conectada 24 horas y solo cuentan con servicio de correo nacional y una casa matriz donde se lleva a cabo el proceso de contabilidad y gestión de marketing, etc.
Algunos problemas que presenta esta empresa serian la gestión de los clientes (Fichas de clientes), La emisión de facturas y el control de la deuda (conocido en el ámbito comercial como
Pues bien, contando cada punto de venta con el sistema de registros se podrían tener fácilmente.
miércoles, febrero 08, 2006
Freyre, como Ambigrama
Es evidente que necesita un poco de retoque para que queda tan estilizado como en el libro de Brown, pero es un primer acercamiento al mundo de los ambigramas, que puede mejorarse.Si tienen dudas de que se pueda leer al reves, denle vuelta al monitor.
SIG Mis Registros, posibilidades
El Modulo SIG Mis Registros ha demostrado ser una herramienta de gran utilidad practica, aun careciendo de algunas funcionalidades básicas sugeridas por usuarios del sistema, me he propuesto incorporarle algunas de estas funcionalidades que podrían convertirlo en un kill-module que podría inclusive competir con todos los restantes módulos al poder dar soporte a todas las funcionalidades básicas y los casos posibles de uso para las relaciones que se establecen en el sistema.
Para esto son necesarias algunas funcionalidades básicas que incluyen:
- Soporte para sub-registros relacionados, comprende la posibilidad de incorporar varios sub-registros a un registro principal
- Registro nomenclador, posibilidad para hacer selección de un dato como nomenclador de otro registro.
- Impresión personalizada de registros, con soporte para formulas.
- Importación y Exportación de datos de fuentes de datos externas (XML, CSV, etc.)
- Replicación de datos automatizada desde registros, con sub-registros.
- Campos de formula, campos auto-numéricos (o de consecutivo)
- Enlaces directos desde menú y/o barra de herramientas.
Un extra en este listado de funcionalidades seria la posibilidad de crear flujos de trabajo asociados a eventos en registros de manera que sea posible redirigir actividades a través del SIG conformando enlaces de datos que puedan convertir al SIG programado en ese modo en completo sistema, sin necesidad de otros módulos particulares.
Este modulo así implementado podría dar solución a las necesidades de software de gestión existentes en el país, y de cara a la migración hacia software libre, al brindar un modulo que prácticamente podría convertirse en gestor de casi cualquier tipo de información, incluyendo las funcionalidades básicas de reportes, integración, usabilidad, modularidad, extensibilidad necesarias. Para esto evidentemente es necesaria una implementación libre que cumpla con la especificación de SIG Mis Registros incluyendo las características expuestas aquí.
miércoles, enero 25, 2006
Localizacion en SIG, preparados para todo
Inicialmente se proveeran 3 idiomas (Ingles, Español, Portugues)
lunes, enero 16, 2006
SIG Mis Registros, comenzo a ser usado

jueves, enero 12, 2006
SIG Mis Registros
Los tipos de datos estándares son:
- Cadena de caracteres alfanuméricos.
- Numero entero
- Numero decimal
- Fecha
- Fichero asociado
- Verdadero/Falso
- Nomencladores sencillos (Valor a escoger, textual de selección, Ej. Femenino, Masculino, con posibilidades de operaciones sobre estos datos, adicionar, editar, borrar)
Espero que ayude en la implantacion del SIG en la empresa.
martes, enero 10, 2006
SIG Updates Listo, proximo feature: Replicacion de datos
Proxima feature: Replicacion de datos.
lunes, enero 09, 2006
ERP y la mentalidad de cambio
Pero mentalidad de cambio ante todo (acabo de discutir con mi jefe) sobre el sistema y me dice que a el le presionan por poner "algo" (una funcionalidad banal que el sistema SIG de Proyectos, Logistica y Facturacion incluye) y que lo que yo hice no fue lo que se pidio y que esta de mas y que (horror) las departamentos de la empresa son independientes y no tienen nada que ver unos con otros, que cada cual hace lo suyo (mi jefe tiene 78 o mas).
Es evidente que la mentalidad de cambio empieza por el Departamento Tecnico.
viernes, enero 06, 2006
ERP Orientados a actividad Empresarial, Viabilidad y una alternativa.
De ahi que la tarea de desarrollar ERP's Cubanos que suplan las necesidades de automatizacion de las empresas, con vistas a la migracion a software libre, se vera afectada economicamente, pues no creo que exista voluntad por parte de estos especialistas de involucrarse en tales encomiendas y mucho menos siguiendo el patron de reconocimiento y remuneracion que viene aparejado con los proyectos libres. Quedando el terreno listo para las empresas y casas de software cubanas o a saber particulares asociados a ellas de hacer la labor de estudio de casos y/o contratar a los especialistas que aporten el conocimiento necesario para este fin. o.....
La alternativa que se puede seguir es definir una metodologia donde estos especialistas involuntariamente se involucren en el desarrollo de los sistemas, y donde las particularidades especificas a la empresa sean cubiertas por él en el ejercicio de la modelacion de los procesos, datos y tareas que evidentemente generan todos los sistemas de ERP, mediante herramientas que siempre con un nivel de accesibilidad, facilidad, seguridad, eficiencia y correccion garantizadas, logren acercar la tarea del desarrollo de sistemas al usuario final.
Tales herramientas deberan contar con al menos todas las funcionalidades especificadas en la Primera Propuesta a Linux-Prog hecha en este blog y comentada en la lista Linux-Prog del sitio www.softwarelibre.cu. Ademas de preveer actualizaciones de definiciones, extension de funcionalidades (como auditorias, workflow, comunicaciones, etc.), en fin un cambio infinito que suponga mejoras en las caracteristicas de los sistemas y la forma en que estos interactuan con los usuarios y entre ellos con vista a una integracion mucho mayor que suponga una mejorar en el panorama informatico y la sociedad de la informacion cubana.
martes, enero 03, 2006
Sistema de Updates para el SIG
Ya en el SIG se venia trabajando para mejorar la disponibilidad, desde el cambio en caliente de DLLs de modulos, las mejora de rendimiento en cuanto a usuarios, hilos de ejecucion, recolector de usuarios inactivos, etc. Ahora presentamos una manera de actualizar los sistemas sin que estos dejen de funcionar, al punto de añadir funcionalidades completamente nuevas, hacer reparaciones de bugs, parches de seguridad, etc.
El sistema de Updates del SIG
- Se le incorpora al Editor una herramienta para configurar Updates, que genera ficheros compactados con la informacion a actualizar.
- Se le incorpora al Server una opcion para actualizarse, donde se escogera el fichero de actualizacion y se aplicara este sin que el Servidor deje de funcionar, aplicandosele a los nuevos usuarios la actualizacion hecha y a los usuarios que aun esten conectados hasta el nivel de DLLs.
- Los Updates son jerarquicos, (o sea un Update tiene precedencia sobre otros)
- Los Updates contienen Modulos y sus componentes internos (Modulos, DLLs, etc.), Scripts SQL (para transformacion de bases de datos), Identificador, Definicion de Precedencia y Descripcion.
martes, diciembre 20, 2005
SIG Proyectos y Logistica, avances
Primera Propuesta a LINUX-PROG
Haciendo un poco de abstraccion sobre los datos podemos llegar a que estos:
1.Son definidos (la estructura sintactica y semantica de los datos)
2.Producidos (se compone una informacion reflejando las particularidades del hecho)
3.Validados (la sintaxis de escritura de los datos pueden ser validada e inclusive la semantica)
4.Procesados (los datos son procesados, transformados, en procesos donde se puede mediante operaciones especificas, obtener nuevos datos, recombinar los existentes, resumir conjuntos de datos, etc.)
5.Almacenados (la posibilidad de registrar en el tiempo los datos y de recuperarlos cuando sea necesario, ya sea de forma exacta a como son representados o mediante una transformacion que permita su rapida consulta en estructuras mas eficientes.)
6.Trasmitidos (la transmision de informacion es inherente a los procesos, nada mas logico que existan metodos para transmitir los datos)
7.y Consumidos finalmente. (El usuario final consume los datos al disponer de informes sobre los cuales realiza valoraciones, emision de criterios y tomar desiciones)
2.Facil producir (texto plano, con reglas sintacticas que garantizan la correccion de los datos)
3.Validacion a traves de parsers mediante los documentos de definicion.
4.Tecnologias para el procesamiento, DOM, SAX, XSLT, etc.
5.Bases de datos XML o relacionales.
6.XML al ser texto plano puede ser enviado por correo, trasmitirlo a traves de proxys, como WebService, y con la seguridad de que no contendra (hasta ahora) codigo malicioso adjunto.
7.Aunque XML no es facilmente leible por humanos (o sea, no le das un reporte de contabilidad a un director de empresa en XML para que lo lea directamente) si forma parte de todas las tecnologias de reportes innovadoras (JasperReports, phpreports, Report Rendering Engine, RTK::Report Toolkit, etc.)
La idea general es que como cada institucion/organismo tienen sus particularidades es mas conveniente que ellas definan sus propios datos/procesos y los metodos de trabajo con ellos, de manera que internamente cuenten con herramientas comunes a otras instituciones/organismos pero adaptadas por definiciones a sus necesidades y con la posibilidad de integracion y agrupacion que brindan las tecnologias XML.

Aqui se puede observar que para una Entidad, esta tiene definidos los tipos de documentos internos para con ellos realizar sus operaciones, donde ademas para su marco (o marcos) institucional tambien tiene un conjunto de definiciones que agrupan las necesidades de la institucion/organizacion que la agrupa para proveer integracion con otras Entidades en su mismo nivel y de caracter organizativo.
Asi mismo una Institucion/Organizacion se agrupa mediante otras definiciones en un marco de nivel superior para integrarse con otras Instituciones/Organizaciones y con ello intereactuar en comunidad con estas.
Este es un grafico hipotetico de organizacion en la sociedad de la informacion, jerarquico, organizado, integrado, pero al fin y al cabo hipotetico, donde solo se ilustra la capacidad del modelo de definicion-produccion-validacion-procesamiento-almacenamiento-transmision-consumo de los datos, de manera que sea coherente con el desarrollo necesario a todos los niveles interesados.
Conclusiones.
Las posibilidades que proveen las tecnologias XML para integracion de sistemas constituyen la mejor opcion y un metodo viable de desarrollo de sistemas y aplicaciones verticales acoplables entre si a todos los niveles segun definicion, sin restarle importancia a los desarrollos horizontales de aplicaciones que resuelven problemas puntuales, donde es en definitiva que se intensifican los esfuerzos.
Quizas el enfoque no sea coherente con otras metodologias ya estudiadas/aceptadas nacionalmente pero a nivel mundial los esfuerzos de integracion vienen caminando en esta direccion, ya sean el estandar ebXML, aprobado y patrocinado por la ONU (creo que el unico, corrijanme), XML/EDI (Electronic Data Interchange), XBRL (eXtensible Bussiness Reporting Language), etc.
El objetivo de este documento es el desarrollo de aplicaciones de gestion que soporten funcionalidades de este tipo y con ello contribuir a incentivar la conciencia y la cultura informatica de la sociedad de la informacion cubana.
domingo, diciembre 18, 2005
Proyectos de desarrollo de software libre
Viendo el esfuerzo que estan realizando los compañeros del grupo de desarrollo de Cygnus, quisiera proponerles una idea, que puede no ser buena, pero que en definitiva podria ser una solucion al problema de la migración en Cuba hacia Software Libre.
La idea es:
1- Identificar un conjunto de software con caracteristicas exclusivamente nacionales y que necesiten ser desarrollados desde cero o hacer un fork de versiones libres de otros.
2- Creacion por afiliación propia y voluntaria de grupos de desarrollo que den solucion a uno o varios problemas identificados, mediante el desarrollo del software necesario. Sin que por ello exista unicamente un grupo para cada problema en particular. Con estructura propia y autonomia.
3- Buscar el apoyo de instituciones estatales y/o gubernamentales para que den respaldo legal, de infraestructura y del know how de las aplicaciones.
4- Promover la incorporación de personas a estos grupos que puedan ayudar en el desarrollo del software (no solo programadores, sino tambien economistas, contadores, metodologos, diseñadores graficos, lingüistas, etc.)
5- Realizar encuentros donde sobre la base de la competitividad se motive la inventiva y el compromiso con la calidad de las soluciones implementadas.
De momento y dado que pertenezco a una empresa bastante grande y con necesidad de varios sistemas identifico los siguientes:
- Contabilidad y Finanzas
- Medios basicos
- Inventarios
- Facturación
- Personal y Nominas.
- Gestion Comercial (donde puede hacerse una sublista de casos particulares)
Es importante remarcar que no creo que las empresas de software cubanas tengan previsto cambiar su modelo de negocios, básicamente hago el software, lo vendo y doy soporte sin dar nunca las fuentes e inclusive haciendo la instalacion ellas mismas. Aunque usen Debian como plataforma y desarrollen aplicaciones en make y gcc.
Espero por sus opiniones.
sábado, diciembre 17, 2005
Linux de vuelta
Quizas el rendimiento se heche en falta (comparable a Eclipse) y esta maquina no creo que aguante un empujon. Por lo demas las ideas de desarrollo del UDMS creo que iran sobre Linux.
martes, diciembre 13, 2005
Increible desempeño en SIG Server
lunes, diciembre 12, 2005
Completa Lista de mejoras de rendimiento y features al Kernel y Server del SIG
Tenemos:
- Implementacion de ObjectRepository para realizar cache de objetos de datos que requieran consultas a la base de datos.
- Bitacora de actividad por usuario, personalizable para aplicaciones.
- Serializacion manual completa, (supone un 50% de velocidad en consultas) incluyendo los eventos SignIn, SignOut, CheckIP, DllQuery.
- Recolector de usuarios inactivos, configurable por el servidor.
- Cambio de DLLs en caliente (sin necesidad de desconectar a los usuarios para reiniciar el servidor)
- Cache de DLLs funcional (actualiza las versiones de las DLLs locales)
- Barra de herramientas de Accesos directos con orientacion personalizable por el cliente.
viernes, diciembre 09, 2005
SIG Server High-End Performance
Aun quedan varios aspectos a resolver en el area de rendimiento:
- Convertir el SIG Server en servicio
- Bitacora de actividad por usuario.
- Soporte para Internacionalizacion (I11N)
El resto de los modulos se iran mejorando paulatinamente, ademas de que ya todos seran actualizados a las nuevas interfaces de datos mas rapidas y eficientes.
lunes, diciembre 05, 2005
Medidores de desempeño del Servidor SIG
Otro aspecto importante es que hemos podido realizar un timing benchmark sobre los dos metodos de serializacion utilizados (BinaryFormater y Manual) y compararlos.
Los resultados arrojaron que la serializacion manual es un 50% mas rapida por lo tanto seria la opcion definitiva en el traspaso de informacion en el SIG, donde aun quedan mensajes de comunicaciones (SignIn, SignOut, CheckIP) que se realizan con el serializado a traves de BinaryFormater, por la complejidad que reviste (sobre todo en el tema de SignIn) la serializacion manual de una estructura de datos bastante compleja.
Asi todo. El SIG es hoy mas rapido, mas seguro y mas accesible.
Proximos features:
- Recolector de usuarios desconectados o inactivos. (parcialmente implementado)
- Serializacion Manual completa (SignIn, SignOut, CheckIP)
- Cambio de DLLs en caliente (sin reinicio del Servidor)
Datos personales
- Lic. Ernesto Freyre G.
- Licenciado en Ciencias de la Computacion, Facultad de Matematicas y Computacion, Universidad de la Habana, 2004. Telefono: 45-3619, Cel: 282-8661
Archivo del blog
-
►
2006
(44)
- ► septiembre (7)