Web Log di Lorenzo Melato

ASP.NET MVC, Castle, NHibernate e altre passioni...
posts - 43, comments - 168, trackbacks - 52

Gestire il problema dell'overbooking

Ciao a tutti,

mi rendo perfettamente conto che questo potrebbe essere un post più adatto al forum, però penso anche che l'argomento (e la discussione che spero ne scaturisca), meriti una visibilità maggiore. Una visibilità da Blog ;->.

Già da tempo mi ponevo questa domanda, ma stò per affrontare un progetto in cui dovrò implementare per l'appunto un tipico sistema di booking in una applicazione multiutente e mi piacerebbe conoscere il parere di voi esìmi colleghi a tal proposito.

La situazione tipica potrebbe essere la prenotazione di posti per il cinema. La sala contiene 200 posti. Il call center ha 5 postazioni. Immaginiamo che le informazioni sui posti liberi siano in un DB server e ogni postazione abbia una applicazione client Windows Forms.

Tizio telefona e vuole prenotare 4 posti, risponde l'operatrice 1.

Contemporaneamente telefona Caio, che ha bisogno di 2 posti, risponde l'operatrice 3.

L'operatrice 1 verifica i posti liberi e individua per il cliente Tizio i posti nella fila G n. 1, 2, 3 e 4.

L'operatrice 3 verifica i posti liberi e individua per il cliente Caio i posti nella file G n. 3 e 4 (l'operatrice 3 non può sapere che l'operatrice 1 ha individuato gli stessi posti).

Al momento di salvare le modifiche nel DB si verifica ovviamente un overbooking e, chiaramente vince l'operatrice che ha scritto per prima nel DB.

OK, l'operatrice che ha scritto per ultima, eventualmente individuerà altri posti liberi, ma se si ripetesse la medesima situazione, ad esempio, con l'operatrice 2? e se i posti disponibili fossero nel frattempo terminati ?

Ovviamente non si può mettere un lock esclusivo su tutti i posti liberi.

La discussione è aperta.

 

powered by IMHO

Print | posted on Thursday, January 27, 2005 10:13 AM |

Powered by:
Powered By Subtext Powered By ASP.NET