Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339

    Due o più utente stesso documento in modifica. -

    Ciao a tutti, devo fare una pagina dove più utenti potrebbero modificare la stessa risorsa la domanda che mi è sorta subito è la seguente :
    1. come posso evitare la sovrapposizione dei dati?

    Mettiamo che segno in una tabella Condivisione gli utenti che aprano la risorsa X, e quando un altro cede alla stessa risorsa mostro il messaggio "In consultazione da X" domanda:

    1. Come poi faccio a sapere quando esce? potrebbe chiudere il browser, potrebbe da cellulare chiudere APP Browser o metterla ad icona, insomma tutte queste situazioni.


    Voi come fareste?
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    107
    Devi appoggiarti ad uno script su base javascript (sfruttando jquery, magari) che rilevi la presenza dell'utente. Esempio banale, puoi usare questa funzione:

    https://api.jquery.com/mousemove/

    Per rilevare i movimenti del mouse. Puoi usarne un'altra per rilevare lo scroll della pagina. L'interazione con determinate componenti o, più semplicemente, puoi fare un detect dei campi di testo. Se scrivono sono presenti, se non scrivono per un tempo superiore ai 10min, non lo sono. Sta a te valutare quanto dev'essere preciso il rilevatore di presenza.

    Registri per ogni evento data\ora, passi a php, memorizzi su database e ricorsivamente interroghi per valutare il tempo passato. Superati i 10minuti fai apparire un box di avviso che la pagina, potrà essere modificata da un'altro utente e da quel momento si perde la possibilità di modifica (fintanto che l'altro utente è presente).

  3. #3
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    L'argomento che stai cercando si chiama optimistic locking, cerca su google per saperne di più.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    Come quando google usi Google document con più utenti. Perchè tipo joomla blocca la risorsa quando un utente è dentro, però per sbloccarla nel caso in cui lui chiude il pc hanno fatto la sezione sblocca risorsa.
    Provo a guardare optimistic locking, grazie
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  5. #5
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    1) non si può fare, neppure in via teorica (così dicono i libri che sto studiando!!!! eeheheheh passo da niubbo a 0,5 niubbo)
    Avendo una latenza enorme tra i due client, connessi suppongo via internet, ogni meccanismo di tipo "intercomunicazione tra i client - problema dei generali non so che - non funziona e non può farlo
    Puoi invece crearti una tabella LOCK che aggiorni da PHP mediante transazioni, e magari con un timeout di pulizia, e una pagina del tipo "checksepossomodificare"
    Purtroppo, come detto, il protocollo per una sincronizzazione vera con latenze molto grandi è tra il difficile e l'impossibile

  6. #6
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Avendo una latenza enorme tra i due client, connessi suppongo via internet, ogni meccanismo di tipo "intercomunicazione tra i client - problema dei generali non so che - non funziona e non può farlo
    Di che anno è il libro? 1980?

  7. #7
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    Di che anno è il libro? 1980?
    Boh, so che c'era una dimostrazione matematica lunghissima (e complicatissima), non credo quindi sia rilevante anche se fosse del 1780
    Posso dirti che la copertina è rosa-rossa, magari lo ritrovo

    EDIT: trovato su wikipedia
    "problema dei generali bizantini".
    Poi c'è un gran pippone su meccanismo di sincronizzazione a messaggi (che dovrebbe essere proprio il caso PHP-ajax qualcosa) dove concludeva che non si poteva fare comunque.


    EDIT2: ci hai preso perfino sull'anno dell'articolo, è proprio il 1980!
    Journal of the Association for Computing Machinery 27, 2 (April 1980).
    Ultima modifica di brancomat; 07-10-2015 a 11:31

  8. #8
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    non credo quindi sia rilevante anche se fosse del 1780
    Fai attenzione a questi ragionamenti, soprattutto in questo campo. Qualche centinaio d'anni fa si pensava che la cura della malaria fosse ingerire dei ragni. Ma dubito che si trovino ancora medici che pensino che questa soluzione sia ancora attuale.
    Internet nel 1980 esisteva già, ma il web no. HTTP verrà pubblicato solo 11 anni dopo.

    Non puoi leggere un libro che parla del web, se quel libro è stato scritto prima del web. PHP e AJAX sono arrivati molto dopo. Hai più possibilità di trovare qualcosa di attuale nelle profezie di Nostradamus.

    Ma anche se il libro fosse più recente, l'http del 1991 non più l'http dei giorni nostri. Questa è una professione in cui ti devi costantemente aggiornare, ogni giorno c'è qualcosa di nuovo.

    Poi c'è un gran pippone su meccanismo di sincronizzazione a messaggi (che dovrebbe essere proprio il caso PHP-ajax qualcosa) dove concludeva che non si poteva fare comunque.
    Ti basta fare un semplice ragionamento per negare la tua affermazione: se fosse vera, non sarebbe possibile creare giochi multiplayer in realtime. Ma esistono.

    Va bene leggere libri un po' datati, ma devi farlo tenendo conto del contesto in cui sono stati scritti. Così come farebbe un medico con un testo del 1700.
    Ultima modifica di .Kurt; 07-10-2015 a 12:55

  9. #9
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    Fai attenzione a questi ragionamenti, soprattutto in questo campo. Qualche centinaio d'anni fa si pensava che la cura della malaria fosse ingerire dei ragni. Ma dubito che si trovino ancora medici che pensino che questa soluzione sia ancora attuale.
    Internet nel 1980 esisteva già, ma il web no. HTTP verrà pubblicato solo 11 anni dopo.

    Non puoi leggere un libro che parla del web, se quel libro è stato scritto prima del web. PHP e AJAX sono arrivati molto dopo. Hai più possibilità di trovare qualcosa di attuale nelle profezie di Nostradamus.

    Ma anche se il libro fosse più recente, l'http del 1991 non più l'http dei giorni nostri. Questa è una professione in cui ti devi costantemente aggiornare, ogni giorno c'è qualcosa di nuovo.


    Ti basta fare un semplice ragionamento per negare la tua affermazione: se fosse vera, non sarebbe possibile creare giochi multiplayer in realtime. Ma esistono.

    Va bene leggere libri un po' datati, ma devi farlo tenendo conto del contesto in cui sono stati scritti. Così come farebbe un medico con un testo del 1700.
    Non sono d'accordo.
    Il teorema di pitagora ha 2500 anni (più o meno), ed è valido oggi come ieri e come domani.
    Approcciandomi ai problemi di concorrenza ho scoperto che esistono un sacco di teoremi già dimostrati che spiegano cosa si può e non si può fare.

    Nel problema in oggetto, ad esempio, non c'entra nulla se si parla di Web, PHP, Ajax o quello che vuoi, così come non ci sono veri generali bizantini che devono fare un assedio.

    Sono tutti concetti astratti:
    "c'è qualcuno" (un processore, un server, un generale bizantino...) che vuole sincronizzarsi con altri, mediante messaggi
    (messaggi spediti a cavallo? con una chiamata Ajax, con non so che? è irrilevante).
    Supponiamo che i messaggi possano andare persi o addirittura essere contraffatti, allora => (bruuummm un sacco di ragionamenti
    strani) => conclusione => non si può fare.

    Così come il teorema di pitagora lo puoi applicare alle piramidi o ai fogli di carta, e rimane sempre valido, analogamente i teoremi dell'informatica sono validi (sotto le condizioni date) a prescindere dai dettagli implementativi.

    Ad esempio io giochi in real time semplicemente non esistono, hanno tutti un lag dovuto alla latenza dei segnali.
    Quindi se la domanda è "puoi fare un gioco in cui i comandi vengono mostrati a tutti gli utenti nello stesso momento" la risposta è NO (c'è anche qui il teorema derivato della sincronizzazione degli orologi o non so che).
    Se la cambi in "i comandi li vedi dopo un TOT" allora SI'

    ...
    cavolo ma danno le lauree in ingegneria informatica a honorem?

  10. #10
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Puoi definire cosa significa "real time" per te? L'informazione trasmessa ad una velocità uguale o superiore a quella della luce?
    Attualmente siamo intorno ai ~50ms, non è sufficiente per parlare di realtime? Se non lo è, di quanto dovremmo ridurre la latenza prima di poter usare questo termine, e perchè?
    Ultima modifica di .Kurt; 07-10-2015 a 13:21

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.