Author Topic: Aplicaciones/Sistemas Web  (Read 9622 times)

FoxNew

  • Newbie
  • *
  • Posts: 2
  • Karma: 0
    • View Profile
Aplicaciones/Sistemas Web
« on: Enero 22, 2021, 11:16:12 pm »
Ante todo, saludos. Soy "nuevo" usuario de este Foro. 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.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5541
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Aplicaciones/Sistemas Web
« Reply #1 on: Enero 23, 2021, 08:16:09 pm »
Hola:

Antes de nada, bienvenido al foro.

Como comentas no es imposible, pero tiene sus "peros".

En el momento que usas un servidor de aplicaciones "potente", como wildfly, te da muchas cosas hechas, te facilita mucho trabajo, pero te quita libertad o te complica el hacer cosas que no tiene previstas. Wildfly (y otros servidores de aplicaciones similares) parten de la base de que las bases de datos están creadas y que wildfly tiene en sus ficheros de configuración toda la información necesaria para conectarse y manejar esas bases de datos. Así que si nos vamos a lo que wildfly presupone, no, no es posible crear bases de datos dinámicas.

Pero nada te impide, dentro de tu aplicación sobre wildfly, el crear tu las bases de datos que necesites de forma dinámica con código java sin usar lo que te de Wildfly. Puedes usar el JDBC puro y duro de Java y hacer lo que necesites. Esta sería la opción más rápida, pero posiblemente la menos elegante, te estas saltando Wildfly para hacerte las cosas a más bajo nivel.

Y luego está la opción intermedia, pero que seguramente requiere "investigación". No serás el primero que tiene este problema y Wildfly seguramente tiene algo de soporte para esto. El problema es que al no ser lo habitual, te va a costar buscar y hacer pruebas hasta que lo consigas. Por ejemplo, buscando por google "wildfly create dynamically database" hablan de cosas como

https://stackoverflow.com/questions/11339736/how-to-dynamically-add-datasources-to-jboss-7   (JBoss y Wildfly son primos hermanos)
https://stackoverflow.com/questions/39618226/jsf-wildfly-connect-in-many-databases-dynamically
https://stackoverflow.com/questions/28494959/is-it-possible-to-configure-jboss-wildfly-datasources-to-use-changing-client-cre

Como ves, salen preguntas similares a las tuyas en los foros y la gente más o menos aporta ideas, pero te tocará leer documentación, hacer los experimentos de truno y ver si consigues hacerlo funcionar para cubrir tus necesidades.

Saludos.

FoxNew

  • Newbie
  • *
  • Posts: 2
  • Karma: 0
    • View Profile
Re: Aplicaciones/Sistemas Web
« Reply #2 on: Enero 24, 2021, 12:16:30 am »
De verdad muy agradecido con tu respuesta, estoy gratamente impresionado por que captaste muy bien la inquietud y sin necesidad de pedir otros detalles, lo que habla muy bien de tu nivel en nuestro mundo. Por eso me mantengo alejado de los Foros, muchas personas solo responden por lo que "leen" y no por lo que "deben" comprender, haciendo que se pierda tiempo.

Precisamente mi equipo me informo eso que me apuntas, pero de la forma como lo describiste en el primer párrafo largo es muy convincente. Y por si fuera poco, lograste darme 2 opciones, la primera (JDBC puro y duro) la propuse (tenemos miles de horas/hombre de experiencia en esa área) pero la descartamos porque no queríamos dejar a un lado Wildfly, que definitivamente nos ahorra mucho trabajo, lo que nos hace mas productivo.

Espero me entiendas, tenemos unos productos bien diseñados, con aspecto inigualables, funcionales, eficientes, con interfaz visual bien cuidada (html y css) y en plena producción, que ademas tienen a nuestros clientes felices y que de repente quieras hacerle unos arreglos internos, que pudieran llevarte a reescribir todo, no, definitivamente no era opción.

En cuanto a tu segunda opción intermedia, es la que seguiré, precisamente estoy en eso desde esta semana. Te agradezco sinceramente tu opinión has sido muy esclarecedor y preciso. Ademas escribes muy bien, cosa que cuido mucho, siempre he opinado que si alguien dice ser programador pero escribes mal, con errores ortográficos, gramaticales o faltas de acento, no quiero ni imaginar el basurero en el código fuente que desarrolla, ademas que habla muy mal del su nivel profesional.

Te felicito.