Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/04/2015, 13:25
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Necesito Apoyo: Desarrollo de sistema Java y MySQL

Buenas K_J,

Como bien apuntas, el problema abrir el servidor MySQL a internet es problemático ya que sobre todo que cualquiera podrá capturar y ver los datos intercentando las peticiones.


La opción de hacer un VPN podría efectivamente solucionar el problema, ya que crea un tunel SSL/TLS que encripta la información. No me parece nada descabellado, pero por desgracia para hacerlo bien exige unos conocimiento técnicos muy altos y solo alguien muy experto podría montarlo y mantenerlo con éxito y garantías.


La opción de arquitectura SOA no no creo que aplique en este caso. SOA está enfocada a conectar sistemas heterogéneos. Por ejemplo, una aplicación Java en CentOS con otra .Net en Windows server, con otra COBOL en Host, con otra C/Unix etc.
Poner una capa de web services, exigiría instalar en cada sucursal un servidor capaz de alojarlos, así como desarrollar la lógica de cada uno de éstos para que interaccione con la base de datos. Eso terminaría siendo inmantenible a la hora de evolucionar las bases de datos y/o si el número de sucursales aumenta. Por otro lado ni siquiera solucinarías tu problema, ya que lo único que harías es exponer en Internet un servidor en lugar del otro.
Por otro lado, el hecho de poner una interfaz Web service en cada sucursal no constituye ni mucho menos una arquitectura SOA. Para ello, se debería partir como mínimo de un bus de servicios, proporcionado por un middleware ESB, que proporcionaría la columna vertebral del sistema. Los web services rest/soap no son más que una posible pieza dentro de la arquitectura. Se puede hacer SOA sin Web Services. Pero bueno, esto es un tema ya muy antiguo que no viene al caso:
http://www.infoq.com/news/2007/07/soa-ws-relation
http://www.onlamp.com/pub/wlg/8951


En fin, yo te recomiendo una solucion parecida a la de la VPN pero mucho más sencilla. Sería securizar MySQL mediante SSL. De esta forma, la comunicación entre la aplicación cliente y cada una de las bases de datos viajaría por Internet, si, pero encriptada.
Configurar MySQL para que utilice SSL es relativamente sencillo:
https://dev.mysql.com/doc/refman/5.7/en/ssl-basics.html


Posteriormente solo necesitas conectarte desde tu aplicación cliente. Para ello la propia documentación de MySQL indica como hacerlo usando el conector JDBC y JSSE:
http://dev.mysql.com/doc/connector-j...using-ssl.html


Un saludo y suerte
__________________
If to err is human, then programmers are the most human of us