come esporre determinate tabelle di un database interno su un sito pubblico

0

Ho un database interno al mio lavoro. Al momento stiamo usando Excel per importare i dati, ma questo è molto soggetto a errori, quindi vorrei sostituirlo con qualche applicazione basata su javascript che espone alcuni dei dati nelle tabelle di ricerca nei menu a discesa, affinché i nostri clienti possano compilare, su un sito web pubblico.

Quindi il mio database interno risiede su un server interno non visualizzabile dal pubblico.

Come dovrei fare per creare un'applicazione che comunica con il database interno e espone solo determinate tabelle?

C'è un middleware come Django, che invece di usare un database SQL usa un altro modo per ottenere i valori di ricerca (ho un'interfaccia REST installata nel database principale).

(Per chiarire, sto cercando una tecnologia lato server che posso mettere su un server pubblico, che comunicherà con il server interno).

    
posta wobbily_col 19.04.2013 - 15:40
fonte

2 risposte

1

Poiché hai già una configurazione dell'interfaccia REST per accedere ai tuoi dati, prenderei in considerazione l'uso di Javascript, jQuery e Backbone per creare un client browser per interagire con i dati. Backbone racchiude molto REST, quindi dovresti trovarlo abbastanza semplice da usare. Se segui un approccio simile a questo, dovrai assicurarti che il tuo REST I / F sia accessibile ai tuoi clienti. Se il tuo REST I / F fa parte del tuo DB, sarei piuttosto preoccupato di esporlo direttamente al "mondo". Se il tuo REST I / F è un middleware diverso, questo può probabilmente essere esposto rimanendo al sicuro. Quando esplori Backbone, puoi anche dare un'occhiata a backbone-relational , che fornisce un buon modo per mettere in relazione diversi modelli insieme (se hai un set complesso di tabelle / dati). Potresti anche considerare l'utilizzo di Marionette con Backbone, che fornisce alcuni simpatici aiutanti e organizzazione all'impostazione Backbone predefinita (per impostazione predefinita, Backbone ti permette di prendere un sacco di decisioni, il che significa scrivere più codice - Marionette prende un sacco di decisioni per te, il che significa meno codice da scrivere).

Un approccio alternativo sarebbe quello di usare un approccio più standard non-AJAX-ish, non-REST-ish ... più tradizionale "web app": potresti usare Rails o Java o PHP, ecc., e i loro molti framework per costruire un'app Web che fornisce l'accesso ai dati. A seconda di come ti avvicini a questo, dovresti scrivere il codice per quell'App Server che crea l'HTML offerto al browser e probabilmente ha un piccolo Javascript (anche se è ancora un'opzione), ma molto più codice sul lato server.

Questi sono trade-off che devi decidere in base alla tua esperienza e ai dettagli del progetto. Inoltre, ricorda che Backbone e Marionette sono tecnologie molto più recenti, quindi potresti trovare meno documentazione e utili siti Web, ma potresti anche trovare più persone entusiaste di lavorare su quel progetto da quando sono esposte a tali tecnologie. Dato che hai già un'API REST, probabilmente mi propongo per l'approccio del tipo Backbone. Ovviamente, tutto questo è solo la mia opinione basata sulle mie esperienze di lavoro con queste tecnologie. Esistono sicuramente altri approcci e tecnologie che potresti prendere in considerazione anche.

    
risposta data 19.04.2013 - 16:00
fonte
1

Il tuo sito web pubblico ha un suo database?

Se è così, puoi farlo con Replica di tabelle specifiche dal tuo lavoro interno database al tuo database pubblico.

Puoi utilizzare la replica circolare se hai bisogno di recuperare i dati nel tuo database di lavoro, ma sembra che sia solo per scopi di presentazione.

Questo sarà un modo più sicuro per risolvere il problema perché devi solo gestire una connessione sicura permanente tra i server.

    
risposta data 20.04.2013 - 02:34
fonte

Leggi altre domande sui tag