Scrivere applicazioni Web "server less" [duplicate]

10

TL; DR

Quali sono le prospettive di scrivere applicazioni completamente basate su un server di database REST (CouchDB) e applicazioni web che accedono direttamente al DB invece di avere un server web in mezzo?

Recentemente ho iniziato a cercare alcuni database NoSQL. MongoDB sembra essere una scelta popolare. Mi è piaciuto anche il progetto.

Ma personalmente mi è piaciuta l'interfaccia REST di CouchDB . Quindi quello che volevo sapere è se ci fosse la possibilità di applicazioni (magari app memorizzate nella cache nel browser web, un'estensione chrome ecc.) Che potevano semplicemente interrogare il database direttamente senza necessità di un webserver in mezzo. Tutta la logica computazionale dovrebbe risiedere nell'applicazione client e il database farà ciò che fa, CRUD . Dal momento che per lo più (non so quale non sia) i framework client supportano le query REST, potrebbe essere un buon modo di scrivere applicazioni ottimizzate per il rispettivo framework. Queste applicazioni però non faranno calcoli complicati, ma forniranno comunque abbastanza funzionalità che potrebbero sostituire molte applicazioni convenzionali.

Esistono risorse e progetti che mi aiuterebbero a passare alla scrittura di tali applicazioni e anche alla portata e allo sviluppo in questo modo?

Ci sono problemi tecnici / di sicurezza con questo?

Questo post mi aiuterà a decidere di esaminare un progetto come CouchDB (e magari di immergermi in Erlang in seguito) o di rimanere con i framework convenzionali (come Django) e i database SQL.

Aggiornamento

Un punto specifico di tali app che avevo in mente è la creazione di applicazioni offline semplicemente replicando i dati CouchDB sul client.

    
posta crodjer 23.06.2011 - 14:50
fonte

5 risposte

4

Potresti voler leggere il write-up qui .

Il sommario:

This was an experiment to see how easy it is to develop a simple Web site using CouchDB and (almost) nothing else. Ely Service is essentially a static Web site, and hence barely exploits any of the roaring power of CouchDB's B-Tree index or its distributed capabilities.

    
risposta data 23.06.2011 - 15:03
fonte
4

dipende da quanto ti fidi degli utenti pubblici di CRUD su tutti gli oggetti del tuo database. Hai ancora bisogno di un'API di accesso sul tuo db per convalidare quali operazioni sono valide / consentite e quali no. Ecco perché le persone creano livelli di servizio tra client e database in primo luogo

ora, non conosco abbastanza CouchDB, ma non penso che prenda in considerazione una logica di autorizzazione aziendale così complessa per impostazione predefinita. Ma anche in questo caso, anche il database è il server web, stai solo codificando la logica di business in modo diverso

    
risposta data 23.06.2011 - 19:46
fonte
0

Ho letto questa guida CouchDB

La pagina Applicazioni standalone dice tutto.

Dalla pagina:

Because design documents can be replicated, whole CouchApps are replicated. CouchApps can be updated via replication, but they are also easily “forked” by the users, who can alter the source code at will.

Queste applicazioni sono già più popolari di quanto pensassi.

Aggiornamento

Sembra che questa guida possa rispondere alla maggior parte dei miei dubbi e domande. Non l'ho letto in primo luogo, supponendo che sarà solo un riferimento per l'API e come utilizzare il database. Ma fornisce un'ottima panoramica del progetto CouchDB.

    
risposta data 24.06.2011 - 07:56
fonte
0

Quindi, vuoi scrivere app client / server in HTML con qualche tipo di framework JS? Immagino che funzionerebbe, anche se non sono sicuro di vedere il vantaggio su un semplice web server. Hai già un server per il database, perché non eseguire Jetty o ligHTTPD per pubblicare alcune semplici pagine?

    
risposta data 24.06.2011 - 17:53
fonte
0

Anche se disponi di un livello server per convalidare l'accesso in lettura / scrittura degli utenti ai dati, rischieresti comunque a qualcuno di manipolare il codice lato client per inviare dati non validi.

Qualsiasi vincolo aziendale che potresti voler garantire dovrebbe essere lato server validato. Ad esempio:

  • date entro intervalli validi
  • nomi validi
  • blocca l'aggiornamento agli oggetti in un determinato stato (come evitare di inserire ordini per articoli non disponibili)
  • e qualsiasi altro vincolo commerciale a cui puoi pensare.

Tutti questi potrebbero essere facilmente aggirati se hai solo permessi di scrittura e tutta la tua logica è client side.

    
risposta data 20.12.2012 - 06:22
fonte

Leggi altre domande sui tag