Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Gambas profesional: Administrando una empresa desde Gambas
#1
Information 

Nada nuevo os digo si os cuento que durante 15 años he estado administrando una empresa casi exclusivamente con Linux como sistema y gambas como herramienta de desarrollo.
Recientemente a raíz de un tutorial que subí al foro, surgió la idea de exportar este sistema a todo aquél que le interese. El sistema no consta de un solo programa, claro, hay programas en los ordenadores clientes y programas en los servidores. Una parte de todo ese desarrollo no es transferible a ningún sitio, pues está restringido a la actividad específica y la estructura de la empresa, pero hay otra parte, la de la gestión de los recursos informáticos, inventarios de material informático, gestión y control de usuarios del sistema permisos de acceso, comunicaciones, etc. que sí es común a cualquier pequeña o mediana empresa.

No tengo ningún inconveniente de extraer (reescribir si es necesario) todo ese desarrollo y aportarlo a lo mucho que ya contiene gambas-es.org si es que interesa a los foreros, por supuesto. Si así fuese, en principio lo único que pido es algo de feedback de lo que se vaya aportando, a saber, módulos del sistema y vídeos explicativos de las técnicas utilizadas en ellos. Por supuesto agradecería colaboraciones en las mejoras que se perciban como posibles y en aquellas áreas en las que mi pobre cerebro de jubilado empiece a flaquear.

Esto le puede interesar a: programadores autónomos con programas instalados en las máquinas de los clientes, programadores aficionados que quieran iniciarse en la "programación profesional" y programadores que trabajen en empresas que usen, o aspiren a usar, software libre en su actividad.

Sería requisito imprescindible contar con una base de datos Mysql conectada (o no, pero mejor que sí) a la red. Yo puedo facilitarla, dado que dispongo de un hosting, pero lo primero que aprende uno cuando hace la conversión de aficionado a profesional es que no es nada bueno, pero nada de nada, oiga, depender de la iniciativa individual de alguien con lo que se podría sugerir que fuese gambas-es quien la facilitase (al ser algo de pruebas no tendría prácticamente tráfico ni datos, por lo que no sería una carga para el hosting). Si esto no fuese posible, se podría intentar traspasar las estructuras de la BD a Sqlite... con la limitación que eso tendría para un uso real y siendo conscientes que dejaría muy rebajadas las posibilidades del sistema.

Ahí lo dejo.

Saludos

No podemos regresar
[-] Los siguientes 4 usuarios dicen gracias a Shordi por este post:
  • Grandamakulo, guizans, jguardon, tincho
    ¡Gracias!
#2

Oído cocina. En breve respondo más extensamente, que estoy unos días lejos de casa.

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
    ¡Gracias!
#3

Aprovechando que tengo como urgencia pulir el Soprano, al que he hecho cambios que luego detallaré, haciendo pruebas y para matar dos pájaros de un tiro, he escrito la primera parte del "Manual de la empresa controlada por Gambas".

Requisitos necesarios para montar una empresa totalmente manejada por gambas sobre linux y que utilice el sistema INTRIGA y software propio desarrollado en gambas para su funcionamiento. Quede claro que NO TODO lo aquí mencionado podría ser necesario según el tipo de empresa, el tipo de software existente y el tipo de usuarios/clientes que se manejen.

Parte Primera:

LOS SERVIDORES

Se necesitan una serie de servidores que pueden residir en una máquina propia de la empresa o en hostings comerciales. Sin embargo, se hace necesario, hasta donde llega mi experiencia, un servidor en el que montar la VPN, cosa que ignoro si ofrecen los hostings. Por tanto se necesita o una máquina propia en la empresa o un servidor, virtual o dedicado, en un hosting comercial.

-Si se opta por una máquina propia es necesario que sea accesible desde la red y sea preferiblemente dedicada. En el hardware no tendrá necesidades mímas muy grandes. Tan sólo el disco necesario según el volumen de archivos compartidos, que depende de la actividad de la empresa, y la mejor, eso sí, conexión a internet posible, dado que ejercerá el papel de proxy al montar la VPN. Los requerimientos de memoria irán en función también del número de conexiones VPN simultáneas que existan, pero no es algo que cargue demasiado la memoria. Queda entendido que cuanto mejor sea ésta máquina y su conexión a la red, más fluido irá todo el software de la empresa.
Si el volumen de datos y la cantidad de conexiones no es excesiva, esta máquina puede no ser una máquina dedicada, y servir como puesto de trabajo para alguien que sea consciente de las limitaciones que la servidumbre impone (No apagarla nunca en horario de oficina, no hacer en lo posible, reinicios cuando haya clientes conectados, defenderlo de los cortes de energía eléctrica con un SAI etc. etc.)

-Si se opta por contratar un servidor, virtual o dedicado, en un hosting comercial, es evidente que cuanto mejor sea, mejor funcionará todo.

Dentro de ésta máquina residirá:

-El servidor de la VPN (openVpn).
    Sólo no sería necesario si todos los ordenadores estuviesen en la misma LAN, en cuyo caso se dejaría el tema de la protección de la red a los Firewall de la empresa.

-Las carpetas compartidas de la aplicación
    Estas se montan vía sshfs en las máquinas clientes, actuando como discos compartidos.

-El servidor de base de datos (optativo en su ubicación) con las bases necesarias para el control (máquinas, ubicaciones, usuarios, etc.)
    Se preferirá MySql o MariaDB símplemente por ser las que se utilizaron para el desarrollo original del sistema. Si fuese postgre u otro tipo de base de datos, habría que adaptar la programación  a los dialectos y peculiaridades de la base utilizada. Este servidor de base de datos puede residir en un hosting público, aunque todo es más sencillo si reside en el propio servidor (Backups directos, etc.).

-El servidor FTP que puedan necesitar las aplicaciones (optativo). Ideal para aplicaciones que menejen documentos confidenciales que no deban residir en las carpetas compartidas de los discos del servidor. Este servidor también puede residir fuera de la máquina, a riesgo de pagar un precio en velocidad y en complejidad de Backups, etc.

-El servidor de internet de la intranet (Apache2 o similar) para páginas web de ayuda de los programas (optativo) y tablones de anuncios de la empresa a los empleados y clientes, si fuese necesarios. Estas web de Ayudas, si existiesen, también pueden residir en servidores externos.

-El repositorio de aplicaciones de la empresa (optativo, pero muy conveniente) para la distribución del software de fabricación propia y paquetes de la distribución preferida de linux.

-Los sistemas de Backup (incluyendo la réplica de sí mismo) de todos los datos públicos y privados de la empresa.

-Optativo, pero muy recomendable: Un servidor espejo que haga las funciones de Backup automático.
    Esta máquina, dentro de la VPN sólo se distingue del servidor principal en que la ip no es la misma y si está fuera de la VPN debe estar en una ubicación que garantize la comunicación sin problemas con el servidor principal. (Por ejemplo dentro de la misma LAN que el principal pero fuera de la VPN. Aunque lo mejor es fuera de la ubicación del servidor principal para casos en los que la avería sea de la conexión a Internet. También es posible contratar dos líneas de internet distintas que conecten a cada servidor por separado) En caso de avería del servidor principal, con cambiar la ip del servidor auxiliar, la actividad de la empresa no se vería afectada.  La frecuencia de sincronización depende de la actividad de la empresa y del volumen de frecuencia de modificación de los datos utilizados.

-Y el sistema INTRIGA (Inventariado, Normalización y Transmisión de Recursos Informáticos y Gestión de Accesos), claro Big Grin Big Grin Cool


Saludos.

No podemos regresar
[-] Los siguientes 3 usuarios dicen gracias a Shordi por este post:
  • Grandamakulo, jguardon, tincho
    ¡Gracias!
#4

Que bien Shordi, me parece una buena idea que lo hagas tipo manual, y además ya era hora de que conociéramos INTRIGA que me daba mucha intriga Smile
Saludos.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • Shordi
    ¡Gracias!
#5

La parte Cliente.

Requisitos necesarios a instalar en las máquinas de los usuarios

Los escenarios pueden ser distintos según quién sea el propietario de la máquina.

-Si la máquina es propiedad del usuario, este puede no estar conforme con todos los requisitos que el sistema INTRIGA en su máxima implementación requiere. Eso ha de tenerse en cuenta y acotar los requisitos según se manifieste por su parte.

Si la máquina pertenece a la empresa, entonces bastará con informar al usuario de los datos que se recogen y de las limitaciones que se imponen.
Dicho esto, si la máquina no tiene limitaciones específicas los requisitos son:

-Un S.O. Linux compatible con el requerido por el software desarrollado. Eso implica la existencia de una "Distribución Oficial de la Empresa", cuya instalación en todas las máquinas facilitaría mucho los sistemas de mantenimiento remoto de las mismas.
-Una conexión a internet.
-Acceso a la paquetería de Gambas con versión compatible con la usada en el desarrollo del software. En ese sentido es muy conveniente la existencia en el servidor de un repositorio propio en el que residan los paquetes de la versión "Oficial" de Gambas y los paquetes de los programas propios, así como los de las utilidades externas que fuesen requeridas por el software desarrollado.
-Instalación de los programas de la parte cliente del sistema INTRIGA (Mensajería interna, conexión a la VPN, envíos de informes, etc)
-Instalación de los programas propios de la Empresa.

(08-09-2021, 11:39)tincho escribió:  Que bien Shordi, me parece una buena idea que lo hagas tipo manual, y además ya era hora de que conociéramos INTRIGA que me daba mucha intriga Smile
Saludos.

La ventaja del Soprano, lo que escriba quedará todo junto como manual fácil de exportar luego.

Saludos.

No podemos regresar
    ¡Gracias!
#6

Cuando todo esto esté más o menos finalizado, podría crear un wiki online para tenerlo a mano bien ordenado e ilustrado convenientemente además de accesible al resto del mundo, si además lo traducimos como mínimo a inglés.

Respecto a la puesta a disposición de una BD MySQL para el proyecto, voy a ver qué posibilidades hay de crearla y dar acceso a cada desarrollador con su nombre de usuario y contraseña para un mejor control de los cambios y auditorías. Además tengo que mirar cuáles son los mecanismos de seguridad más adecuados, porque al estar en el mismo servidor de la comunidad, esto puede resultar en algún fallo crítico de funcionamiento o de seguridad, ya que habría que exponer o abrir el puerto en Internet.

Os digo algo en breve y a partir de dicha decisión, todas las conversaciones relativas a las conexiones a la BD deberían ir por un grupo privado y tener mucho cuidado con las contraseñas al publicar código, evidentemente. Mi consejo es que los datos de conexión no se escriban en el código, sino que se pida una sola vez al inicio del programa al logearse como usuario y se guarden en un Settings, por ejemplo.

También tengo en mente la creación de un programa para gestión de avisos de averías y mantenimientos como el de mi empresa, pero usando software libre. La central genera avisos de averías sobre una cartera de clientes y desde cada delegación provincial se asignan los avisos a los técnicos según su zona. Los técnicos en campo disponemos de una aplicación para Android desde la que se gestionan los avisos y se cierran o posponen, con sus materiales, horas de trabajo, desplazamientos, firma del cliente y generación de un parte de trabajo en pdf que se envía automáticamente al cliente al cerrar el aviso, etc. Seguramente gran parte del desarrollo de INTRIGA sirva de base para este otro proyecto, si cabe, casi tan ambicioso o más debido a la inclusión de la app móvil (que realmente está basada en un interfaz web empaquetada en una app Android).

Muchas empresas usan este tipo de gestión, por lo que veo bastante clara su viabilidad de cara a la prestación de servicios por contrato. 

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
    ¡Gracias!
#7

(08-09-2021, 13:32)jguardon escribió:  También tengo en mente la creación de un programa para gestión de avisos de averías y mantenimientos como el de mi empresa, pero usando software libre. La central genera avisos de averías sobre una cartera de clientes y desde cada delegación provincial se asignan los avisos a los técnicos según su zona. Los técnicos en campo disponemos de una aplicación para Android desde la que se gestionan los avisos y se cierran o posponen, con sus materiales, horas de trabajo, desplazamientos, firma del cliente y generación de un parte de trabajo en pdf que se envía automáticamente al cliente al cerrar el aviso, etc. Seguramente gran parte del desarrollo de INTRIGA sirva de base para este otro proyecto, si cabe, casi tan ambicioso o más debido a la inclusión de la app móvil (que realmente está basada en un interfaz web empaquetada en una app Android).

Muy buena idea, hace un tiempo había hecho algo para instalaciones de gas y aire acondicionado pero finalmente lo deje sin terminar para dedicar el tiempo a otros desarrollos.
Saludos.
    ¡Gracias!
#8

Cita:Respecto a la puesta a disposición de una BD MySQL para el proyecto, voy a ver qué posibilidades hay de crearla y dar acceso a cada desarrollador con su nombre de usuario y contraseña para un mejor control de los cambios y auditorías. Además tengo que mirar cuáles son los mecanismos de seguridad más adecuados, porque al estar en el mismo servidor de la comunidad, esto puede resultar en algún fallo crítico de funcionamiento o de seguridad, ya que habría que exponer o abrir el puerto en Internet.
En realidad no es necesario tanto. Intriga se enfrentó en su momento al problema inmenso de que los usuarios eran un flujo constante e incontrolable. La solución adoptada es que básicamente todo el mundo usa el mismo usuario y es el software de gambas el que discrimina a qué se tiene acceso y quién hace qué. La contraseña de dicho usuario de la BD está encriptada en el código (eso sí con un algoritmo malísimo, totalmente susceptible de mejorarse) pero en esencia el tema es así: una BD con dos usuarios: uno administrador y otro manejador de los datos.
Eso no quita para que el funcionamiento de la empresa (bases de clientes, facturaciones, almacén, lo que sea) pueda disponer de otras bases de datos independientes pero relacionadas... o no (más simple).

De todas formas si prevees que esto va a ser un problema, puedo instalar dicha base sobre una de las raspberrys, que para hacer pruebas y demás es suficiente (creo) eso sí: pagaríamos un precio muy alto en lo que a velocidad se refiere que en casa tengo un anchode banda de 10 MB de bajada y 3 de subida, o sea que tendríais 3 de bajada, como mucho...
 
Cita:También tengo en mente la creación de un programa para gestión de avisos de averías y mantenimientos como el de mi empresa, pero usando software libre. La central genera avisos de averías sobre una cartera de clientes y desde cada delegación provincial se asignan los avisos a los técnicos según su zona. Los técnicos en campo disponemos de una aplicación para Android desde la que se gestionan los avisos y se cierran o posponen, con sus materiales, horas de trabajo, desplazamientos, firma del cliente y generación de un parte de trabajo en pdf que se envía automáticamente al cliente al cerrar el aviso, etc. Seguramente gran parte del desarrollo de INTRIGA sirva de base para este otro proyecto, si cabe, casi tan ambicioso o más debido a la inclusión de la app móvil (que realmente está basada en un interfaz web empaquetada en una app Android).

Muchas empresas usan este tipo de gestión, por lo que veo bastante clara su viabilidad de cara a la prestación de servicios por contrato. 
Intriga tiene ese módulo más o menos solucionado (por supuesto nada de Android, ahí soy un ignorante absoluto). Si bien me da vergüenza admitir que es casi de lo último que hice antes de jubilarme y no recuerdo ni cómo esta hecho ni siquiera si lo terminé, pero eso sí: la base en cuanto a tablas, formularios y demás, ya la tiene.
Los avisos de avería se hacen vía una aplicación de notas de escritorio que sirve como
a) notas recordatorio para el propio usuario
b) mensajería instantánea entre usuarios
y
c) envío de partes de incidencia a los administradores.

Saludos

No podemos regresar
    ¡Gracias!
#9

Informe de progresos:

A pesar de que el Boss ya había atendido al primer requerimiento de una BD en el servidor, ayer me acerqué por el curro a ver a mi sucesor para consultarle cositas sobre la VPN que no tengo claras del todo. Me enteré sorprendido de que han migrado todo a una cosa que se llama "Amazon Web Services", aws para los amigos, y pude confirmar que navego aún en las aguas del triásico inferior en lo que a servidores se trata.

Resumiendo:

Ya nadie usa máquinas físicas como servidores. Si analizas el gasto de compra, instalación, anchos de banda, seguridad eléctrica, etc. etc., pagar lo que sea que paguen, que eso no me lo han dicho, al mes, casi trae cuenta. Visto el tema, ayer me sumergí en las procelosas aguas del siglo XXI y me agencié una maquinita virtual "Gratis" en el susodicho aws.

Es pequeña, claro -gratis-, con 1 GB de ram y 30 de disco ssd. Le he colocado un ubuntu 20 con el LAMP de turno y de momento rula guay. Te la dan gratis un año (¿Quién sabe cómo estaremos de aquí a un año?) lo que parece suficiente para lo que aquí se pretende hacer.
Esta mañana empezaré la creación de bases y tablas del proyecto... ¿Intriga? ¿Intrigados? y a escarbar el viejo código.

Una petición:
Intriga se gestó de abajo arriba, quiero decir: Primero se hicieron las aplicaciones de la empresa, con sus bases de datos y demás independientes unas de otras y luego hice el Intriga "UN ANILLO PARA ATARLAS A TODAS" (perdón). Eso hace que toda la potencia de intriga se pueda ver cuando las aplicaciones de la empresa están hechas en gambas y pensadas para ser "Intrigantes". Si esto no es así, Intriga sigue siendo útil en lo que a inventariado de máquinas y usuarios, control de accesos y comunicaciones entre usuarios se refiere, pero se pierde la parte de la monitorización de accesos a los programas, fuga de datos, etc.

¿Alguien tiene alguna aplicación susceptible de ser "Intrigada"? Es decir: un programa específico de algo que utilice bases de datos y que, por favor, no sea muy complicado, para ir viendo las posibilidades del sistema. De entrada, una agenda teléfonica, un programa de almacén, algo así.  Si existe tal cosa (si no, ya os haría yo algo), ¿me lo puede pasar para su "intrigación"?

Es que tengo pensado hacer dos, o quizá tres, niveles de implantación: El completo, tal como lo usaba en el curro, El mediano, que sería Intriga sólo sin aplicaciones gambas dentro de la empresa, y, quizá, una versión de quita y pon sobre SQLite (es decir sin más servidor que la máquina del "emprendedor solitario") que sólo contemple lo mínimo a contemplar.

En fin, que estamos en el tema.

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • tincho
    ¡Gracias!
#10

Perfecto shordi. Entonces cierro el puerto y doy de baja la BD y el usuario, para mayor seguridad.

No olvides implantar las medidas de seguridad mínimas, como el firewall iptables y otro puerto distinto del 22 para ssh. Si habilitas sólo el autologin por ssh mediante certificado, mucho mejor.

En cuanto al programa para pruebas, no tengo nada hecho. En realidad llevo bastante tiempo sin desarrollar nada serio en Gambas, así que podría ser un buen momento para retomar ese proyecto que tengo en mente, pero seguramente necesite tu ayuda para la ingeniería y diseño de bases de datos, jeje.

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
[-] Los siguientes 1 usuarios dice gracias a jguardon por este post:
  • Shordi
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)