Off Topic - Aplicaciones o Sistemas Web

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 3 puestos en Off Topic (en relación al último mes)
Gráfica de Off Topic

Aplicaciones o Sistemas Web

Publicado por Arlyns (2 intervenciones) el 22/01/2021 22:45:49
Ante todo, saludos. Soy "nuevo" usuario de este Foro, aunque admito que desde hace muchos años lo he visitado a fin de buscar ideas y soluciones a situaciones que se me han presentado. Me permito crear este tema con la finalidad de profundizar mas sobre el Desarrollo de Aplicaciones o Sistemas WEB.

No soy novato en la materia, de echo soy programador con mas de 30 años de experiencia, me inicie a los 12 años con mi primer programa en Basic. Mucha agua ha pasado bajando el puente desde entonces. Diseñe e Implemente exitosos programas empresariales Cliente-Servidor, todos basados en plataforma Windows. Sin embargo hace alguno años decidí cambiar mi enfoque del negocio, la web era el futuro (definitivamente no me equivoque) asi que comencé por migrar mis sistemas hacia plataformas abiertas y múltiples, enfocado en el trabajo en ambientes web con conexiones remotas para el trabajo a distancia.

La filosofía y el esquema de trabajo era muy distinto al que, durante años desarrolle, asi que me rodee de personas capaces que me ayudaron a desarrollar esa idea. Actualmente puedo decir que ha sido exitoso, sin embargo aun estamos aprendiendo (nunca se deja de hacer).

Luego de esta intro, paso a comentarles mi inquietud. Tengo un sistema que trabaja con bases de datos anuales, anteriormente mis sistemas podían crear tantas base de datos como fueran necesarios y trabajar en ellas sin problemas. Actualmente mi equipo dice que por la "naturaleza" del entorno que hemos escogido no es posible replicar ese comportamiento, por lo que, anualmente se debe desplegar una aplicación con su respectiva base de datos.Para ser mas preciso, este es mi entorno de desarrollo: Netbeans para la el desarrollo del sistema, PostgreSQL para manejar las bases de datos, Wildfly como servidor de aplicaciones.

¿Qué deseo? Que mi aplicación web, pueda crear bases de datos en tiempo real y trabajar con ellas según el criterio del usuario. Me dicen que no es posible, pero tengo mis dudas al respecto, no lo veo imposible, aunque pudiera estar equivocado.

Es importante aclarar que no es factible tener solo una base de datos con identificadores de propietarios de los registros, ese enfoque ya fue estudiado y, dada la naturaleza de los datos, los riegos de seguridad son muy altos para lllevarlo a cabo, y por supuesto, el mantenimiento es mucho mas engorroso. Lo ideal seria que cada cliente tenga sus bases de datos.

Espero no haber sido tan largo, solo me gustaría compartir ideas sobre este enfoque y de ser posibles, llegar a soluciones practicas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 160
Oro
Ha mantenido su posición en Off Topic (en relación al último mes)
Gráfica de Off Topic

Aplicaciones o Sistemas Web

Publicado por joel (36 intervenciones) el 23/01/2021 09:12:29
Hola Arlyns, primeramente, decirte que lo normal, y lo que hacemos la mayoría de empresas web, es trabajar con una sola base de datos ya que el mantenimiento con muchas bases de datos es un verdadero problema, ya que si utilizan todos la misma web, es muy importante que todos los clientes utilicen la misma base de datos, ya que cualquier cambio esta actualizado para todos... Pero esto es la manera que utilizamos la mayoría... una empresa que tenga 1000 clientes que los 1000 utilicen la misma web, no tiene ningún sentido que haya 1000 bases de datos. eso es muy complicado de mantener.
Diferente seria que cada cliente tenga su web en un dominio diferente... ahí si podría tener cabida que cada uno tenga su base de datos, ya que pueden estar en diferentes servidores o servidores del cliente, y las actualizaciones no pueden ser las mismas cada uno.

Respondiendo a tu pregunta, si deseas crear una base de datos para cada cliente en postgreSQL, sin ninguna duda, puedes crear tantas bases de datos como quieras, siempre y cuando el usuario tenga permisos para ello.

Espero que te sirva de ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha disminuido su posición en 3 puestos en Off Topic (en relación al último mes)
Gráfica de Off Topic

Aplicaciones o Sistemas Web

Publicado por Arlyns (2 intervenciones) el 23/01/2021 14:29:35
Muchas gracias Joel, pero como dije en mi comentario, por la naturaleza de los datos no es posible tener una sola base de datos, ademas los sistemas están alojados en servidores dentro de una Intranet, por lo tanto cada cliente tiene su base de datos y accede a ella localmente o remotamente, según sus requerimientos. Además son aplicaciones coorporativas muy particulares y no masivas, por lo tanto el número de clientes es reducido. Gracias a nuestra experiencia hemos desarrollados herramientas de mantenimiento de las bases datos que hacen el trabajo pesado, lo que antes tardaba uno o dos días, actualmente lo hacemos en pocos minutos. Por allí no es el problema planteado.

Voy a intentar ser mas preciso (aclaro antes que mi idea es aprender mas sobre esta metodología, soy de la veja escuela, no estoy pidiendo una solución especifica, solo conocer experiencias de quienes mas saben, para resolver mis dudas):

..."Tienes un sistema web en tu red que maneja tus operaciones mensuales del año. Para poder implementarlo, se utilizo Wildfly como servidor de aplicaciones, PostgresSQL como gestor de la BDD, y Netbeans como el entorno donde se desarrollo la aplicación en si, todo instalado en tu servidor. En las maquinas clientes, solo hay accesos a tu aplicación vía navegadores. Lo importante es que saber que este entorno trabaja con espacios de trabajo (no profundizare mucho en esto, ya que no es la idea, aunque es precisamente la base de la duda), por ejemplo para que la aplicación se comunique con la base de datos debes tener definidos en archivos los "conectores" que lo permitan.

Al finalizar el año, se debe "cerrar" la base de datos de ese año y crear la nueva base de datos del siguiente (esto es indispensable para el uso de la aplicación y de la actividad de los clientes), esto significa que deben agregarse "manualmente" los nuevos conectores (editando los archivos donde están), generar un nuevo ejecutable (es un war) ya que el mismo contiene embebido dichos archivos.

Aquí es precisamente donde discrepo con mi equipo, quiero automatizar ese proceso, que sea el mismo sistema que lo haga, solo el usuario le indicaría "Cierra" el año X y "Crea" el año Y. Ellos alegan, y puedan que tengan razón, que como la aplicación posee estos archivos ya definidos hay que modificarlo y desplegar uno nuevo, yo pienso que pudiera existir la forma de que esos conectores sean buscados en "alguna" parte distinta y que esta pueda ser dinámica.

Mi equipo resolvió de manera satisfactoria la forma para que, al iniciar la aplicación, tú como usuario decides en que año trabajar. Esto fue creando y desplegando una pequeña aplicación que le pregunta al usuario en qué año va a trabajar y ella lo envía a la aplicación desplegada respectiva que posee ya el conector a la base de datos correspondiente. Sin embargo ellos insisten en que no puedo utilizar más de una base de datos en tiempo de ejecución dentro de una aplicación war, alegan que se pueden crear las bases de datos pero no conectarse a ellas en ejecución.

Por ejemplo, que tengas un menu Año en tu aplicación, y que al seleccionar allí, el sistema automáticamente cambie sus conector hacia la base de datos de ese año (asi lo hacia en mis sistemas desarrollados en Visual Basic, con base de datos en SQL Server o MySql y, por supuesto en redes Windows... que recuerdos pero no volveré a eso jamas, jajaja, me quedo con servidores Linux)"...

Ojalá puedan alguien opinar sobre si esto es posible o no, y mediante que técnicas. Mientras tanto seguiré estudiando, porque como dice mi esposa: "hasta que no lo consigues no descansas y si no existe lo creas".

De mas esta decirles, que si tienen alguna duda, sobre como implemente mis aplicaciones, estoy dispuesto a compartir mi conocimientos, ya que creo que de eso se trata este Foro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha disminuido su posición en 7 puestos en Off Topic (en relación al último mes)
Gráfica de Off Topic

Aplicaciones o Sistemas Web

Publicado por Miche (3 intervenciones) el 12/03/2021 17:02:40
Hola, sé que esto no tiene mucho que ver con tu solicitud, pero dada la naturaleza de tu trabajo me gustaría recomendarte un software llamado GanttProject.

Este es un software que te permite automatizar el proceso de creación de diagramas de Gantt, los cuales son extremadamente útiles para este tipo de proyectos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar