-
Serveur java mysql ?
Le titre n'est pas très révélateur mais je ne savais pas trop quoi écrire lol
Voilà, j'ai une application faite en vb6 qui communique avec un serveur mysql dont on lui spécifie l'adresse, login, mot de passe pour se connecter au démarrage.
Ce que je voudrais c'est faire un petite application java qui sert de relais entre le serveur mysql et mon application. Dabord pour une question de sécurité, le client se sent plus à l'aise s'il sait que son serveur de base de données n'est pas sur le web. Ensuite pour gérer un genre de login au niveau de l'application, savoir qui est en train d'utiliser le logiciel, etc.
D'abord, faire l'application java en tant que tel ne me pose pas trop de problème, pas besoin d'interface graphique, donc quelque chose de bien simple qui utilise jdbc pour envoyer des requêtre SQL. Puis un genre d'objet recordset pour les select, je trouverai bien comment faire sur le web quelque part.
Ce que j'aurais besoin c'est un exemple de code, comment accepter plusieurs connexions en multi-thread, donc faire un serveur multi-thread, cela va de soi si je veux que plusieurs clients se connecte en même temps, ssh peut-être pas, le login qu'ils utiliseront sera celui de leur session windows, pas besoin de cacher ça pour l'extérieur selon moi. Sinon il faudra que j'implante ssh dans mon application, mais ce sera pour plus tard.
Ensuite j'imagine que pour chaque thread j'aurais une fonction qui fait un listen pour ce que le client m'envoit comme information.
C'est là que je bloques, admettons mon application client demande une requête SQL supposons: "SELECT * FROM table" je lui envoie cela brut ou dans un format quelconque ? Comment dans mon listen quand je reçois ça je peux déterminer si il sajit d'une requête SQL ou autre chose ? Car je pourrais avoir par exemple une demande d'authentification, il faudrait que je me fasse une sorte de protocol ?
Et inversement, le serveur java envoie la requête SELECT à Mysql, il met le résultat dans un recordset, comment je revois ce recordset au client ? Je dois me concaténer une string de fou de tout les enregistrements et de l'autre côté refaire le tout ?
-
Je comprends pas bien si tu veux faire communiquer Vb6 a Java ou seulement si tu veux developper une appli en java sur laquelle i y aurait une interface utilisateur ?
Dans la deuxieme hypothese, tu peux tout a fait developpe une application web type J2EE avec des servlets(et plus si affinites)
-
Je voudrais faire communiquer vb6 avec java :)
Je sais déjà le principe pour la communication, winsock par exemple, le serveur java écoute un port et fait un thread par connexion. Mais c'est la réception de data par vb6 et l'envoie a vb6 que je ne sais pas trop comment faire.
Si vb6 envoie par exemple une requête sql, disons: SELECT * from table1
L'app serveur en java faisant un listen sur la socket de cette connexion recevra cette chaîne brut, à moins que je me définisse une encryption, ssh ou autre, enfin peu importe. J'éxécute cette requête sous java qui me donne un recordset avec jdbc.
Si je veux envoyer les résultats de cette requête (le recordset jdbc) à vb6, je l'envoie comment ? Je dois concaténer tout les enregistrements de tout les champs dans une grosse string et envoyer cette string a vb6 par la socket ?
-
Tu devrais peut etre te tourner vers les Webservices et SOAP en particulier pour faire communiquer des donnees entre 2 applications distinctes et distantes.
-
un object "recordset" est l'un des rares cas non serializable (du fait de la connexion a la base). Il faudrat forcement le convertir en tableau ou autre chose.
-
Il y a un truc que je me demande, lorsque le client et le serveur reçoivent des données.
Admettons que je me suis fait une chaîne spéciale qui dit si toute l'information est bien reçu. Qu'arrive-t-il si il y a une erreur de connexion ou de crc, comment détecter cela et envoyer un message à l'envoyeur pour lui demander de recommencer son envoie ?