Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Perché java non ha mai pensato alla condivisione di database per il software desktop?

    Supponete 30 client che si collegano ad un sito dinamico (supponiamo un forum) per interagire e scambiarsi informazioni mediante la condivisione di un database MySQL comune.

    In seconda analisi prendete 30 client dotati di un software realizzato in java che giri sul client e che si connetta ad un database MySQL comune presente su di un server online per interagire (pensate sempre allo stesso forum).

    La seconda soluzione (forum su swing) non funzionerebbe perché il codice puro di java presente sul desktop non sarebbe in grado di capire quando un altro client tenterebbe di accedere allo stesso database con una query allo stesso database (NOTA: il problema non è la lettura ma la scrittura). Infatti tomcat, jsf, ecc... si occupano di gestire tutte le richieste dei client come fa php, c# e molti altri.

    La domanda è questa:

    Perché, a vostro avviso, non si è mai pensato ad una tecnologia capace di sostituire il server java con la mole di pc client connessi al database MySQL comune? Per quale motivo, una tecnologia di questo tipo, non servirebbe a nulla o sarebbe irrealizzabile?

    Più pratica in futuro...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non ho capito cosa c'entri Java, ma la problematica che stai sollevando ha una risposta molto semplice: i DBMS servono a contenere (e mantenere) dati in modo sicuro, efficiente e garantire integrità e performances. Non devono occuparsi di altro. I server Web hanno tutt'altro scopo e non devono occuparsi di altro.

    Questo vale in assoluto per qualunque DBMS (è una delle prime cose che insegnano ad un corso sui database).

    Quindi la domanda: che c'entra Java?

    La risposta alla tua domanda è semplice: a ciascun software il suo scopo. Lo scopo di un DBMS non ha nulla a che vedere con quello di un server web. I due "mondi" esistono anche l'uno senza l'altro e ciascuno svolgerà il suo compito in modo "migliore" senza doversi occupare delle prerogative dell'altro.


    (sempre se ho capito correttamente la tua domanda)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    per come capisco la domanda ti manca un elemento, ovvero chr mysql con InnoDB e una buona progettazione ed utilizzo delle transazioni gestisce la concorrenza in scrittura secondo le regole acid.

  4. #4
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Non ho capito cosa c'entri Java, ma la problematica che stai sollevando ha una risposta molto semplice: i DBMS servono a contenere (e mantenere) dati in modo sicuro, efficiente e garantire integrità e performances. Non devono occuparsi di altro. I server Web hanno tutt'altro scopo e non devono occuparsi di altro.

    Questo vale in assoluto per qualunque DBMS (è una delle prime cose che insegnano ad un corso sui database).

    Quindi la domanda: che c'entra Java?

    La risposta alla tua domanda è semplice: a ciascun software il suo scopo. Lo scopo di un DBMS non ha nulla a che vedere con quello di un server web. I due "mondi" esistono anche l'uno senza l'altro e ciascuno svolgerà il suo compito in modo "migliore" senza doversi occupare delle prerogative dell'altro.


    (sempre se ho capito correttamente la tua domanda)


    Ciao.
    Mai fatto corsi su database! Si, hai capito perfettamente la domanda e hai risposto, grazie.
    Più pratica in futuro...

  5. #5
    Quote Originariamente inviata da MySQL Visualizza il messaggio
    per come capisco la domanda ti manca un elemento, ovvero chr mysql con InnoDB e una buona progettazione ed utilizzo delle transazioni gestisce la concorrenza in scrittura secondo le regole acid.
    Chr mysql con InnoDB non lo conosco. Transazioni e concorrenza sono parole oscure, acid pure. Mi stai dicendo che c'è un tipo di database che funziona senza server tomcat, apache o di altro tipo e che può essere gestito in lettura e scrittura da diversi client con un semplice applicativo in java?
    Più pratica in futuro...

  6. #6
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Chr mysql con InnoDB non lo conosco. Transazioni e concorrenza sono parole oscure, acid pure. Mi stai dicendo che c'è un tipo di database che funziona senza server tomcat, apache o di altro tipo e che può essere gestito in lettura e scrittura da diversi client con un semplice applicativo in java?
    i database software (mariadb, sql server, mysql, oracle,...) sono indipendenti dal web server installato.
    le due cose sono distaccate.
    se crei un gestionale, non basato sul web, non è che sei costretto a installare un web server come tomcat.

    e, se posso permettermi, con tutte le domande che hai fatto ultimamente, mi stupisco che tu non sappia cosa voglia dire InnoDB, acid, o in generale un minimo di teoria di base!

  7. #7
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Chr mysql con InnoDB non lo conosco. Transazioni e concorrenza sono parole oscure, acid pure. Mi stai dicendo che c'è un tipo di database che funziona senza server tomcat, apache o di altro tipo e che può essere gestito in lettura e scrittura da diversi client con un semplice applicativo in java?
    MySQL (visto che di quello stiamo parlando) può essere usato anche da riga di comando, stile "DOS" (per capirci).
    Puoi usarlo contemporaneamente da un programma Java, da uno PHP, da uno C, Delphi, C## o quello che ti piace

    InnoDB è l'engine di MySQL (che poi in realtà non è di Oracle, ma proprio di InnoDB) che consente una gestione delle transazioni con livelli di isolamento ACID, che significa in parole povere che puoi decidere di rendere più o meno sicuro l'utilizzo contemporaneo (in scrittura) dei database MySQL sacrificando le prestazioni.

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    @giannino1995: quel Chr era un errore di battitura... la frase doveva essere questa:

    per come capisco la domanda ti manca un elemento, ovvero che mysql con InnoDB e una buona progettazione ed utilizzo delle transazioni gestisce la concorrenza in scrittura secondo le regole acid.

    Ma qui stiamo andando abbondantemente off-topic: siamo nel forum di Java e stiamo parlando di database (che ha un forum dedicato).

    Ti basti capire queste differenze:

    1) Un DBMS è un contenitore di dati: ce ne sono di diversi tipi (file-based, client/server, embedded, ecc).
    2) Un Web Server è un programma che risponde a determinate richieste (HTTP) fornendo al client i contenuti (tipicamente pagine HTML)
    3) Un Servlet Container (come Tomcat) è una specie di Web Server un po' più evoluto, che serve a far funzionare web applications.

    I DBMS possono essere usati da diversi tipi di applicazione: gestionali, programmi desktop, web applications, servizi, ecc.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Prima di postare avevo letto un po’ qui e un po’ là ma avevo capito una cosa diversa. Se io ho un software per il desktop che scrive, edita, cancella o legge dati su un database in locale il problema non sussiste. Nell’istante in cui io imposto nelle righe di codice un nuovo url del database (perdonate ma ora non ricordo più la sintassi) che non risiede più sul pc in cui si trova il programma ma è online (server Netsons, Aruba, ecc…) il programma continua a funzionare correttamente. Il software diventa solo un pochetto più lento. Se poi decido di copiare lo stesso programma su un altro computer il software continua a funzionare ma a patto di non usare i due programmi contemporaneamente. Se decido di usare i 2 programmi contemporaneamente lo posso fare ma a patto che uno invii solo query di lettura. In pratica un programma fa quello che vuole e le altre 100 copie su altri 100 pc possono solo leggere, 2 che fanno tutto e 99 solo leggere no. Sempre in questo articolo che in realtà credo fosse un post in un forum (ora non lo trovo più) si diceva che esisteva anche la possibilità di far funzionare in lettura e scrittura un numero illimitato di programmi ma a patto di riscrivere completamente il programma iniziale fatto per il desktop. Inoltre si diceva che un lavoro di questo tipo sarebbe stato un bagno di sangue e che conveniva usare tomcat o apache (dipende da quello che uno preferisce usare). Da qui è nata la domanda che vi ho presentato. Quindi vi vorrei chiedere se siete sicuri di quello che dite o se avete frainteso/dimenticato qualcosa?
    Ultima modifica di giannino1995; 23-05-2015 a 14:14
    Più pratica in futuro...

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Se poi decido di copiare lo stesso programma su un altro computer il software continua a funzionare ma a patto di non usare i due programmi contemporaneamente. Se decido di usare i 2 programmi contemporaneamente lo posso fare ma a patto che uno invii solo query di lettura.
    E chi l'ha detto? Se la base dati (proprio le tabelle, le relazioni ecc..) e l'accesso al DB vengono fatti in modo appropriato, cioè sfruttando anche le "transazioni" e quant'altro è in grado di offrire il DBMS .... non ci sono problemi.
    I DBMS client-server servono proprio a questo ... avere 1 server DBMS (qui non c'entra Tomcat o altro, parlo proprio del server DBMS, es. MySQL, che è in ascolto su una certa porta) e N client, anche in contemporanea.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.