Connettere Java a MySql attraverso PHP (Pro e Contro)

di il
14 risposte

Connettere Java a MySql attraverso PHP (Pro e Contro)

Non trovo in rete un granchè di documentazione in merito , da cui mi sorge il dubbio che stò percorrendo una "strada" sconsigliata..

Il problema è che ho degli applicativi da mè sviluppati in java e che ad oggi comunicano con MySql sul cloud senza PHP, in modo diretto, classico si può dire? Ed invece di convertire tutto in PHP pensavo di cambiare "solo" il collegamento Java-MySql portando quest'ultimo da database remoto senza hosting, ad un database MySql classico su hosting con cui si dialoga tramite PHP (solitamente).

La funzione "connessione remota" di MySql sul mio hosting web (***) non sono mai riuscito a farla funzionare

Ho bisogno di fare questo perchè a questi applicativi sto implementando delle APP su android, e li' ancor di più che su java SE è quasi obbligatorio usare PHP per comunicare con MySql.

Insomma.., un bel macello Voi che nè pensate? Vi siete mai trovati di fronte a queste scelte e come le avete risolte?

Thk in advance!

14 Risposte

  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    Ciao!

    quello che dovresti fare è cambiare proprio approccio.
    non puoi usare l'istanza di connessione di php remota, ma puoi eseguire le query con php, ed elaborare i dati lato client con java.

    facendo un esempio banale:
    - dall'applicativo java lanci una http request al programma php remoto
    - questo si connette al db, ed esgue la query che hai impostato
    - elabora i dati e li manda in output ben strutturati (tipicamente json o xml)
    - da java raccogli questi dati, e ci fai quello che devi

    il concetto dei webservice insomma.
    ed è quello che devi fare per le app tra l'altro, che invece non possono connettersi direttamente al db.
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    @fermat, non serve PHP per fare quello che @LucaM ha indicato, si puo' fare TUTTO in Java.
    A parte il fatto c'e' c'e' un po' di confuzione sia concettuale sia architetturale.

    L'architettura corretta dovrebbe essere:

    app android che si collega ad un Web Service JSON su una URL accessibile da Internet.

    un'applicazione Java (piu' correttamente una Web Application), basata, ad esempio, su Tomcat (un Web Server scritto tutto in Java, ma ne esistono diversi altri, sempre in Java, e piu' semplici, come Jetty) che implementa il Web Service JSON ed accede al database.

    Il Web Service JSON puo' essere consumato SIA dalla app Android, SIA da una qualunque applicazione scritta in qualunque altro linguaggio.

    Dove sta' la comodita' della cosa? Semplice, non serve scomodare PHP per fare qualcosa che puo' essere fatto (anche meglio) in Java.

    Ma questa e' solo la parte ARCHITETTURALE, perche', ad esempio, si possono fare cose anche piu' strane, come accedere a MySQL usando un driver JDBC che comunica con il DBMS via HTTP.

    Ad esempio:

    https://github.com/bjornharrtell/jdbc-http-serve
    http://vjdbc.sourceforge.net

    Perche' non conviene accedere al DBMS DIRETTAMENTE dalla app Android?
    Perche' l'accesso DIRETTO al db fa si che un qualunque male intenzionato possa estrarre i dati contenuti nel database. Anche se i dati non sono 'sensibili', il cattivone di turno, magari per ripicca, potrebbe, ad esempio, cancellare il contenuto delle tabelle, rimuove le tabelle. Insomma, fare disastri.
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    Si lo so che non serve per forza php.
    lato server, puoi esporre i dati con tutti i linguaggi che vuoi.
    io stesso sto usando java in un mio progetto (con grizzly e jersey).
    ho detto php perchè lo ha richiesto lui...

    però non conoscevo jdbc http server, interessante.
    ma a quanto pare mysql non è stato testato, ed è un peccato.
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    Ottime info! Ora mi studio quanto mi avete detto

    In generale è meglio che nessuno prenda per buone le architetture che "inseguo" io , perchè dettate dalla fretta e dalla inesperienza (non come programmatore ma come architetture "moderne"..), nonchè dal "casino" che ho nella testa (per ora).

    Comunque effettivamente si può accedere da una APP ad un database MySql senza PHP nè JSON come spiegato in questo video che sono andato poi a testare https://www.youtube.com/watch?v=cDGc28XQnR , anche se rimangono tutte le problematiche legate alla sicurezza come da voi ben spiegate.
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    LucaM ha scritto:


    Il problema è che ho degli applicativi da mè sviluppati in java e che ad oggi comunicano con MySql sul cloud senza PHP, in modo diretto, classico si può dire?
    Francamente non ho capito praticamente un corno di quello che vuoi fare.
    Ma soprattutto ecco la domandona: parliamo di telefoni rootati, oppure no?
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    No.. , non sono telefoni rootati, ma normali smartphone con sistema operativo android.

    Ho fatto un gestionale per gestire le consegne dei fattorini, quindi c'è la maschera di inserimento, quella di gestione e quella dell'anagrafica clienti, nonchè lo storico. Questi girano sul PC con java SE e relativa GUI, il database MySql invece è in remoto, ad accesso diretto:
    
       conn = DriverManager.getConnection("jdbc:mysql://xxx.nomehosting.com:3306/DbName", "User", "Psw"); 
    
    Ora vorrei creare uno strumento ai fattorini (una APP sullo smartphone), che interroghi il database MySql, per quello che è il loro giro di consegne.

    E qui son nati i miei problemi , perchè mi sono accorto che le APP sono decompilabili, e quindi devo passare ad un RESTful Web Service come suggeritomi qui nel forum , per cui devo "portare" il database sul classico hosting web (che lavora in localhost e PHP etc..), e non più con accesso remoto diretto .

    Un bel casino.., appunto
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    No root? No tunnel ssh (nel qual caso avresti potuto tranquillamente risolvere i problemi di sicurezza)
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    Il Root.. se ho ben capito dal quel poco che mi sono documentato al volo dopo che hai postato tu, da dei privilegi a livello di sistema operativo ed effettivamente potrebbe già essere sufficiente. Ma gli smartphone non sono aziendali, non tutti perlomeno, e poi i fattorini vanno e vengono in continuazione.. quindi non credo sia una strada percorribile.

    Per il tunneling mi trovi impreparato.. so di che si parla ma al momento non saprei farlo.
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    LucaM ha scritto:


    Il Root.. se ho ben capito dal quel poco che mi sono documentato al volo dopo che hai postato tu, da dei privilegi a livello di sistema operativo ed effettivamente potrebbe già essere sufficiente. Ma gli smartphone non sono aziendali, non tutti perlomeno, e poi i fattorini vanno e vengono in continuazione.. quindi non credo sia una strada percorribile.

    Per il tunneling mi trovi impreparato.. so di che si parla ma al momento non saprei farlo.
    La tecnica normale per collegarsi ad un server mysql remoto è quello di adottare un tunnel ssh, ovvero (avendo la disponibilità di un server, quindi non un hosting stile aruba per capirci) fai creare un tunnel cifrato (una sorta di VPN dei poveri) per instradare il traffico tra il dispositivo (es. PC portatile) e il server.
    Una volta che veicoli il traffico del server mysql (esempio la password, che viaggia in chiaro) sulla connessione VPN vivi tranquillo.

    Però per un telefonino android (per poter usare un software che ti crea il tunnel) devi avere i privilegi root, cosa che non è normalmente un problema se i telefoni sono aziendali (cioè ci fai quello che vuoi), mentre lo è se sono di proprietà di qualcun altro (il root è potenzialmente pericoloso perchè consente l'installazione di software "birichino").

    Detto questo ricorda che la connessione sulla porta 3306 (come quella che penso tu stia facendo) è totalmente priva di cifratura; se utilizzi poi telefoni con tendenza ad agganciarsi a wifi hai una voragine di sicurezza enorme.
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    Vero.. il problema "sicurezza" c'è e ci metterò una pezza.

    Per gli smartphone la vedo dura rootarli, oltretutto seguirà una APP anche per i clienti (per chi lo vorrà, dietro incentivo economico) per inserirsi la loro richiesta del servizio senza chiamarci come fanno ad oggi (fargli inserire la corsa su un sito web non funziona, già sperimentato). A quel punto decade ogni tipo di possibilità di rootare il telefono.

    Sul fatto di "farsi" creare un tunnel cifrato, in ogni caso, la vedo una strada in salita perchè partendo prorpio dal fornitore di hosting da tè citato per una semplice richiesta di servizio remoto MySql obbligatoriamente presentata via mail ai tempi, dopo 3 giorni mi fù risposto cosi' (riporto la mail integrale di risposta):

    Gentile cliente,

    per tali esigenze potrà valutare l'utilizzo di un server dedicato/cloud:

    *******

    Rimaniamo a disposizione.


    Per un esperto sistemista nulla di chè immagino.., per uno NON esperto sistemista come mè una DOCCIA FREDDA . Come sempre, ti tocca "migrare" all'estero dove chiedi e ti viene risposto in meno di 60 min.. ok, questa è la cifra xxx. FINE

    Cosi' ho fatto!
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    1) lascia stare java del tutto, fai un programmello PHP e fai lavorare su QUELLO coi telefonini.
    Fine del dramma, fine di tutto quanto, spesa praticamente zero con hosting vergognosi

    2) per quanto riguarda la macchina in affitto riesci a fartene preparare una nel giro di un paio d'ore (con pagamento con carta di credito). Ovviamente ha un costo mensile >> di un banale hosting, quindi torni al punto 1
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)



    Azz... addirittura abbandonare java?? Hooooo!!!

    Aspe.. che metabolizzo, poi mi toccherà aprire un thread Java VS php, ma non è più smart java??
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

    LucaM ha scritto:




    Azz... addirittura abbandonare java?? Hooooo!!!

    Aspe.. che metabolizzo, poi mi toccherà aprire un thread Java VS php, ma non è più smart java??
    Non so se è smart, ma se il programma gira sull'hosting "dei poveri" te le cavi con una ciotola di riso all'anno.
  • Re: Connettere Java a MySql attraverso PHP (Pro e Contro)

Devi accedere o registrarti per scrivere nel forum
14 risposte