Come ti avvicineresti allo sviluppo di un sistema di prenotazione alberghiera?

4

Fino ad ora, ho avuto l'esperienza di sviluppo di un'applicazione desktop o di un sito web. Ma con questo sistema di prenotazione alberghiero, sto affrontando un problema che richiede entrambi.

L'applicazione deve soddisfare i seguenti requisiti:

  • Manager può effettuare le prenotazioni / checkout dei clienti in arrivo al sistema di sportello reception.
  • I clienti dovrebbero essere in grado di prenotare se stessi online.

Come puoi vedere, il secondo requisito indica chiaramente che è necessaria un'app Web, mentre il primo può essere realizzato tramite lo sviluppo del desktop.

Questo tipo di requisito è abbastanza comune. Ad esempio, in caso di prenotazioni di posti al cinema, siamo liberi di prenotare noi stessi online oppure possiamo andare alla biglietteria e acquistarne uno. La domanda è come si soddisfano questi requisiti simultanei e diversi per un singolo progetto. Ci deve essere una sincronizzazione, altrimenti il cliente potrebbe prenotarsi in una stanza già prenotata.

Da quanto ho capito, ci sono due modi per sviluppare questa soluzione.

  1. Si sviluppa un'applicazione Web con un back-end (pannello di amministrazione) e la si ospita su un server. I clienti possono prenotarsi sul front-end, mentre il manager (alla reception) può utilizzare il pannello di amministrazione per effettuare le proprie prenotazioni e checkout. Poiché sia front-end che back-end utilizzano un singolo database, non è necessario sincronizzare.

  2. Sviluppa un'applicazione desktop da utilizzare in Hotel e un sito Web che i clienti possono prenotare online. Le due applicazioni mantengono un singolo database, quindi entra in gioco la sincronizzazione. Alcuni sviluppi definiti per la sincronizzazione sono obbligatori oppure il sistema fallirà.

Quale delle soluzioni di cui sopra dovrei scegliere? Questo è anche uno scenario comune per le banche. Gestiscono le transazioni nella filiale locale e su Internet. Come ottengono questa cosa. Molto come ho detto sopra o qualcosa di diverso.

    
posta Pankaj Upadhyay 22.09.2011 - 16:24
fonte

4 risposte

3

Sono d'accordo con le altre risposte che includono i servizi web, ma i servizi web sono davvero solo un modo per implementare la soluzione. L'importante è separare il sistema di prenotazione dai vari client di quel sistema. Pensa in termini di creazione di un server di prenotazione che implementa tutta la logica e l'archiviazione dei dati necessari per tenere traccia delle prenotazioni indipendentemente da una particolare interfaccia utente. Il server di prenotazione presenta solo un'interfaccia, tutti i client parlano con quel server attraverso quell'unica interfaccia.

Questo design ha molti vantaggi:

  • Puoi aggiungere tutti i client che desideri:

    • client web per prenotazioni online
    • client desktop da utilizzare nell'hotel
    • client amministrativo per la produzione di rapporti
    • verifica il client per la convalida delle modifiche al server
    • client personalizzati per l'interfaccia con gli aggregatori
  • Puoi aggiornare il server con un impatto minimo o nullo sui client, a condizione che non cambi l'interfaccia

  • Evita completamente qualsiasi problema di sincronizzazione - nulla può andare fuori sincrono perché i dati sono memorizzati solo in un posto

I servizi Web sono un modo molto popolare per implementare l'interfaccia con questo tipo di server, e direi che è probabilmente la scelta giusta nella maggior parte delle situazioni. Ci sono altre possibilità, come la definizione del proprio protocollo, ma non vedo alcun motivo per entrare in questo se non è necessario.

    
risposta data 22.09.2011 - 17:13
fonte
3

Il mio approccio è lo sviluppo di un servizio Web che includa tutte le regole aziendali e le regole dei dati codificate in esso e espone oggetti che possono essere utilizzati sia da un'app Web sia da un'app desktop.

    
risposta data 22.09.2011 - 16:32
fonte
3

Per gli hotel c'è un terzo requisito a cui non stai pensando: esponiti ai siti di aggregazione (pensa Expedia) per le prenotazioni.

Se questo è un requisito (e probabilmente è quando chiedono "così come vendiamo tramite Expedia") allora la sincronizzazione va via dalla finestra (ci sono modi per aggirarla ma davvero tutti voi volete guardare il stessa origine dati).

Quindi un unico database ospitato, un singolo set di servizi Web e quindi chiama i servizi Web sia dall'interfaccia dello staff dell'hotel (desktop o web) che dall'interfaccia cliente. Se mai vogliono vendere attraverso qualcun altro, i servizi web possono essere utilizzati anche per questo.

Ma dovresti anche cercare di comprare questa roba - è un problema risolto e ci sono soluzioni off-the-shelf. La maggior parte di questi è relativamente bassa per l'esborso di capitale, essi prendono solo una commissione per prenotazione.

(Rispondendo alla tua altra domanda: le banche dispongono di sistemi centralizzati, i singoli archivi dati sono accessibili dal vivo su una WAN - almeno lo fanno in questi giorni).

    
risposta data 22.09.2011 - 16:42
fonte
2

Descrivi 2 approcci e ti è già stato suggerito che potresti avere un desktop & l'app web parla allo stesso database o allo stesso servizio web - entrambi sono ovviamente possibili.

Il problema è come scegliere l'approccio, e per questo suggerisco di considerare i seguenti scenari:

Qual è l'impatto se il sistema diventa non disponibile per il personale dell'hotel?

Qual è l'impatto se il sistema diventa non disponibile per i clienti online?

Se sia il cliente online che lo staff dell'hotel desiderano prenotare la stessa stanza, sarà il primo arrivato / primo servito o verrà data priorità alla tariffa più alta? (generalmente gli hotel scontano le prenotazioni non per quella notte)

L'hotel dispone di strutture / procedure per il backup / ripristino se il sistema è gestito localmente?

Suppongo che la tua priorità sarà quella di mantenere l'accesso all'hotel, non l'accesso online.

Questo porterebbe alla domanda, l'hotel potrebbe funzionare se il sistema non fosse disponibile a causa della connessione Internet dell'hotel che si sta offline? possono accettare questo rischio?

Tutte queste domande devono essere inviate al cliente prima che tu possa decidere un approccio.

Modifica: per quanto riguarda le banche, si verifica in molti modi diversi, probabilmente in tutti i modi possibili e ci sono alcune ipotesi sorprendenti fatte (almeno nel sistema ATM del Regno Unito) su quanti soldi un bancomat rilascerà se non è in grado per comunicare con l'infrastruttura della banca.

    
risposta data 22.09.2011 - 16:39
fonte