Mysql
 sql >> Database >  >> RDS >> Mysql

Accesso al database GWT senza RPC

Ci sono 2,5 ragioni per cui non puoi usare gwt per accedere direttamente a MySQL.

Il motivo #1.GWT è compilato in Javascript. È necessario aprire un socket sul server del database. GWT non consente di aprire un socket. Infatti, nessun browser non potenziato (prima dell'avvento di html5) è in grado di aprire un socket. Ma puoi aprire un socket usando actionscript Flash o javascript HTML 5.

Motivo #2.OK, diciamo che hai usato socket HTML5. E hai passato 6 mesi a scrivere in Javascript una connettività JDBC. Tuttavia, il tuo websocket dovrebbe comunque indirizzare un servlet sul server che aiuterebbe il tuo websocket a stabilire una connessione persistente e mysql non è in grado di eseguire tale impostazione.

Motivo n. 3.SLD - Restrizione SOP:(Dominio di secondo livello Stesso criterio di origine)Il browser standard limita le sue pagine a essere in grado di richiedere e includere solo contenuti all'interno dello stesso dominio di secondo livello (SLD) del server che fornito quella pagina al browser. I domini di primo livello (e di primo livello e mezzo) sono come .com, .org, .net, .me.us o .co.uk. Quindi, nomi di dominio come google.com, fbi.gov, mit.edu sono domini di secondo livello. Mentre, mail.google.com sarebbe un dominio di terzo livello. Pertanto, GWT funzionerebbe solo entro i confini di un SLD. Anche il tuo server web deve essere accessibile con lo stesso SLD del tuo server mysql.

Il requisito SLD-SOP e tunneling è quello di chiudere una falla di sicurezza che avrebbe potuto consentire a qualsiasi tom-rick-or-mary di accedere al tuo sistema tramite il tuo browser. Il tunneling è sempre necessario affinché un browser si connetta a un server diverso da un server http. Il tunneling si verifica quando un browser sfrutta il server Web come yenta (yiddish per corpo occupato/intermediario/creatore di incontri) per raggiungere un altro server.

Non hai altra scelta che usare GWT-RPC. Forse non desideri utilizzare RPC, puoi utilizzare RequestBuilder o Script-Include o RequestFactory. Ma sono tutti ancora diversi mezzi di tunneling. http://h2g2java.blessedgeek.com /2011/06/gwt-requestbuilder-vs-rpc-vs-script.html .

C'è un motivo per cui puoi connetterti al tuo server di database dal tuo client gwt:il tuo server di database deve eseguire il motore di connessione httpd. Cioè, la tua app gwt accederebbe al server db tramite http. Non ho familiarità con quale database relazionale abbia un accesso http disponibile. Molto probabilmente, dovresti eseguire query su xml o json.

Tuttavia, un'azienda per cui avevo lavorato ha creato il nostro servizio http per consentire l'accesso "diretto" del client. "diretto" è un termine improprio perché abbiamo usato Tomcat. È ancora un tunnel. Qualsiasi società di database che offre un accesso http "diretto" sta ancora effettuando il tunneling. Tunneling:nessuna via di scampo.

È possibile aumentare il browser con Flash e scrivere un'applicazione Flash anziché utilizzare GWT. Se l'accesso diretto è così essenziale per te, dovresti abbandonare GWT e sviluppare in Flash ed eseguire un motore httpd per il tuo server di database.