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

    Consiglio su realizzazione applicazione client server

    Salve ragazzi,

    ho bisogno di un vostro consiglio.

    Devo realizzare una piccola applicazione(gestionale)

    in pratica voglio realizzae un programma gestionale che abbia la seguente funzionalità.

    Installo in un pc la versione server che può operare tranquillamente, in altri n pc la versione client. Ovviamente i vari pc devono essere collegati in rete lan o wireless....

    Però ogni programma deve essere identico all'altro cioè su ogni macchina ciascun utente può utilizzare le stesse funzioni di chi ha installata la versioen client.

    Mi potete dare dei consigli????

    In pratica quello che mi lascia più perplesso è questo, se contemporaneamente due utenti effettuano la modifica ad un prodotto ad esempio come devo gestire la situazione?????

    Spero di essere stato sufficentemente chiaro.

    Aspetto con ansia le vostre risp......

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Consiglio su realizzazione applicazione client server

    Originariamente inviato da bircastri
    Installo in un pc la versione server che può operare tranquillamente, in altri n pc la versione client. Ovviamente i vari pc devono essere collegati in rete lan o wireless....

    In pratica quello che mi lascia più perplesso è questo, se contemporaneamente due utenti effettuano la modifica ad un prodotto ad esempio come devo gestire la situazione?????
    Il punto è solo cosa intendi che sia o faccia quel "server". Perché altrimenti se è solo una questione di gestione dei dati, nessuno ti vieta di installare su una macchina un DBMS client/server (MySQL, Oracle, altro) e su ogni PC client la tua applicazione Java usa JDBC (o qualunque altro "strato" software più astratto, es. ORM come Hibernate o altro) per connettersi al DB. Già questo permetterebbe a più macchine di accedere al DB comune.

    Per quanto riguarda la modifica di una serie di dati che vengono innanzitutto presentati all'utente e possibilmente (quasi) contemporaneamente da più utenti (è questo il problema), non è tanto questione della architettura usata!

    Se un utente apre una pagina/finestra che mostra un record di dati (per modificarlo) e poi poco dopo fa lo stesso un altro utente e sullo stesso record .... come si fa? Ci sono diverse strade. Una è il "lock" del singolo record ma dipende dal supporto del DBMS. Altrimenti una strada anche semplice è una "marcatura" della modifica ad esempio con un "timestamp".

    L'utente A legge un record che contiene un timestamp X. Poco dopo l'utente B fa lo stesso e ottiene ancora quel timestamp X. L'utente A è più veloce, modifica i campi a video e conferma, scrivendo un timestamp Y successivo a X, ovviamente.
    L'utente B, ha ancora i vecchi dati a video, li modifica e anche lui conferma. Qui attenzione. La procedura è questa e varrebbe in generale (anche per A): si usa una "transazione" per avere la "atomicità" in cui: si rilegge il record, se il timestamp è lo stesso cioè coincide, ok si fa l'update, altrimenti si notifica all'utente "guarda che i dati sono stati modificati da altri: che vuoi fare?".

    Non è l'unico scenario, di certo. Prima di tutto chiarisci le questioni sulla architettura client/server.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Consiglio su realizzazione applicazione client server

    Originariamente inviato da bircastri
    Salve ragazzi,

    ho bisogno di un vostro consiglio.

    Devo realizzare una piccola applicazione(gestionale)

    in pratica voglio realizzae un programma gestionale che abbia la seguente funzionalità.

    Installo in un pc la versione server che può operare tranquillamente, in altri n pc la versione client. Ovviamente i vari pc devono essere collegati in rete lan o wireless....

    Però ogni programma deve essere identico all'altro cioè su ogni macchina ciascun utente può utilizzare le stesse funzioni di chi ha installata la versioen client.

    Mi potete dare dei consigli????

    In pratica quello che mi lascia più perplesso è questo, se contemporaneamente due utenti effettuano la modifica ad un prodotto ad esempio come devo gestire la situazione?????

    Spero di essere stato sufficentemente chiaro.

    Aspetto con ansia le vostre risp......
    La persistenza dei dati la puoi gestire con un dbms (mysql,postgres...) la concorrenza sull'accesso ai dati sarà gestita in automatico in questo modo. Ovviamente questa non è la sede adatta per ottenere delle basi sul come strutturare un applicativo che si basa su un database, devi documentarti per questo. In linea di principio ti posso dare alcune linee guida che ti aiutino nel documentarti però.
    -Innanzitutto per realizzare la parte server, a meno che tu non abbia dei problemi di spazio disco o di prestazioni in genere, ti consiglio di realizzare una webapplication che giri su un container (tomcat, glassfish, jboss....) in modo da non reinventare la ruota.
    -Sempre lato server progetta il tuo modello di oggetti (prodotto, cliente eccetera...) e trasformalo in un database sql (anche qui è necessario un minimo di studio, ma del resto senza quello non puoi sperare di fare nulla di decente )
    -Sempre lato server scrivi il modello in termini di classi java (classe prodotto, classe cliente) e il codice che gestisce il popolamento da db, e salvataggio da db (DAO = data access objects)
    -Sempre lato server scrivi del codice che gestisca la trasformazione dei dati nel modello in una forma interscambiabile via http (xml o json ad esempio, ma anche csv (che sconsiglio)).
    -Lato client scrivi del codice che invochi il server mediante url http , legga la risposta (che sarà in xml. json o quello che è) e ne faccia ciò percui il client è stato scritto.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    [OT]ops...risposta in contemporanea [/OT]
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    allora io per architettura client server intendo questo....


    Ho 3 pc collegati tramite LAN.

    Su uno di questi ci metto la versione SERVER se questo PC è acceso, allora l'utente che lo utilizza può visualizzare tutti i record ed eseguire tutte le operazioni che desidera.

    Ora passiamo agli altri 2 PC, se ad esempio la macchina su cui è installato il programma SERVER è spenta, ovviamente essi non potranno effettuare nessuna operazione poichè il DBMS è sulla macchina SERVER

    eccocosa intendo io per client server.

    Ora però io nelle mie precedenti applicazioni ho utilizzato MYSQL come database e JavaDb per i database embedded.

    Ritengo che MYSQL sia anche sufficente per fare quello che voglio.... (GIUSTO)?

    Ora però come mi dicevi tu il problema sorfge nel come gestire i record quando 2 o + utenti modificano contemporaneamente un record......

  6. #6
    Anche la realizzazione proposta da uomochisada mi alletta, e sinceramente avevo anche iniziato a vedere qualcosa sui webserver.

    Per quanto riguarda progettare classi clienti prodotti ecc ecc scrivere query progettare un database non ho problemi, è solo che non mi sono mai trovato di fronte ad una esigenza simile.

    Se avete alcuni esempi io son ben lieto di studiarmeli

    grazie cmq a tutti

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    28

    Re: Consiglio su realizzazione applicazione client server

    Originariamente inviato da bircastri
    In pratica quello che mi lascia più perplesso è questo, se contemporaneamente due utenti effettuano la modifica ad un prodotto ad esempio come devo gestire la situazione?????
    qui si parla di concorrenza e quando si presentano problemi di questo tipo si fa uso del synchronized. se lo si applica a un metodo su un determinato oggetto, tutti i client che chiamano quel metodo acquisiscono un lucchetto sull'oggetto (in pratica si mettono in coda).
    ovviamente nel tuo caso è il server che deve avere metodi sincronizzati

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Consiglio su realizzazione applicazione client server

    Originariamente inviato da J-Hard
    qui si parla di concorrenza e quando si presentano problemi di questo tipo si fa uso del synchronized
    Qui NON centra il synchronized (e nemmeno i thread). Si parla di "concorrenza" nella gestione "visuale" di un record da parte di più utenti. L'utente A apre una pagina/finestra che mostra dei dati di un record e poco dopo fa lo stesso (e per lo stesso record) l'utente B.
    Uno dei due può confermare prima le modifiche al record. E cosa dovrebbe succedere quando l'altro utente cerca di fare lo stesso .... dipende, gli scenari sono svariati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Originariamente inviato da bircastri
    Anche la realizzazione proposta da uomochisada mi alletta, e sinceramente avevo anche iniziato a vedere qualcosa sui webserver.

    Per quanto riguarda progettare classi clienti prodotti ecc ecc scrivere query progettare un database non ho problemi, è solo che non mi sono mai trovato di fronte ad una esigenza simile.

    Se avete alcuni esempi io son ben lieto di studiarmeli

    grazie cmq a tutti
    Il problema del fornirti un esempio è che ormai li applicativi si basano quasi tutti su qualche framework, si apre la struttura (spring, struts, webwork, wicd,jsf....) sia per la persistenza (ibatis, hibernate....) e trovarti un esempio da cui partire che ne sia privo è abbastanza arduo, dovrei mettermi a scrivertelo io e non il tempo . Mi appello ad altri membri del forum per la ricerca di un esempio online che faccia al caso tuo.
    Ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    28

    Re: Re: Re: Consiglio su realizzazione applicazione client server

    Originariamente inviato da andbin
    Qui NON centra il synchronized (e nemmeno i thread). Si parla di "concorrenza" nella gestione "visuale" di un record da parte di più utenti. L'utente A apre una pagina/finestra che mostra dei dati di un record e poco dopo fa lo stesso (e per lo stesso record) l'utente B.
    Uno dei due può confermare prima le modifiche al record. E cosa dovrebbe succedere quando l'altro utente cerca di fare lo stesso .... dipende, gli scenari sono svariati.
    quindi neanche il pattern observer/observable può aiutare?

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.