Domanda

Stavo esaminando la possibilità di utilizzare CouchDB. Ho sentito che era simile a Lotus Notes che tutti amano odiare. È vero?

È stato utile?

Soluzione

Lo sviluppo di Lotus Notes è iniziato oltre 20 anni fa, con versione 1 rilasciata in 1989 . È stato sviluppato da Ray Ozzie, attualmente Chief Software Architect per Microsoft.

Lotus Notes (il client) e Domino (il server) sono in circolazione da molto tempo e sono prodotti maturi ben dotati. Ha:

  • Uno stack completo di server client con progettazione rapida di applicazioni e distribuzione di database orientati ai documenti.
  • Un'infrastruttura a chiave pubblica completa per sicurezza e crittografia.
  • Un modello di replica robusto e clustering attivo attivo su piattaforme eterogenee (qualcuno una volta ha mostrato un cluster domino con un xbox e un enorme server AIX ).
  • Una directory nativa integrata per la gestione degli utenti a cui è possibile accedere anche tramite LDAP.
  • Un sistema di posta nativo incorporato che può ridimensionare per gestire milioni di utenti con file di posta multi GB, con accesso al server live o replicato localmente per l'accesso offline. Questo può interfacciarsi con la posta Internet standard tramite SMTP e ha anche l'accesso POP e IMAP integrato. L'infrastruttura di posta è una funzionalità di base disponibile per tutte le applicazioni basate su Notes Domino (qualsiasi documento in un database può essere inviato a qualsiasi altro database con un semplice comando doc.send ()).
  • Uno stack HTTP incorporato che consente l'accesso ai database ospitati dal server sul Web.
  • Una serie di opzioni di integrazione per l'accesso, il trasferimento e l'interoperabilità con i sistemi RDBMS ed ERP, con un'integrazione strettamente accoppiata con DB2 disponibile che consente ai database Notes di essere supportati da un archivio relazionale dove desiderato.

La compatibilità con le versioni precedenti è sempre stata una delle caratteristiche principali di Notes Domino e non è raro trovare database sviluppati per la versione 3 in esecuzione impeccabile nelle versioni più aggiornate. IBM si impegna a fondo e ha un forte impatto sul funzionamento del prodotto.

-

CouchDB è stato creato da Damien Katz, iniziando lo sviluppo nel 2004. In precedenza aveva lavorato per IBM su Notes Domino, sviluppando modelli e infine riscrivendo completamente una delle funzionalità principali, il motore delle formule, per ND6.

CouchDB condivide un concetto di base di un database orientato ai documenti con le viste di Notes Domino.

In questo modello " documenti " sono solo raccolte arbitrarie di valori che vengono archiviate in qualche modo. In CouchDB i documenti sono oggetti JSON di complessità arbitraria. In Notes i valori sono semplici coppie di valori dei nomi, in cui i valori possono essere stringhe, numeri, date o matrici di questi.

Le viste sono indici dei documenti nel database, che mostrano determinati valori, calcolano altri ed escludono documenti indesiderati. Una volta creato l'indice, questi vengono aggiornati in modo incrementale quando viene modificato un documento nel database (creato aggiornato o eliminato).

In CouchDB le viste vengono create eseguendo una funzione di mappatura su ciascun documento nel database. La funzione di mapping chiama un metodo emit con un oggetto JSON per ogni voce di indice che desidera creare per il documento specificato. Questo oggetto JSON può essere arbitrariamente complesso. CouchDB può quindi eseguire una seconda funzione di riduzione sull'indice mappato della vista.

In Notes le viste Domino sono costruite eseguendo una funzione select (scritta nel linguaggio delle formule di Notes Domino) su ciascun documento nel database. La funzione di selezione definisce semplicemente se il documento deve essere nella vista o meno. Note Il design della vista Domino definisce anche un numero di colonne per la vista. Ogni colonna ha una formula che viene eseguita sul documento selezionato per determinare il valore per quella colonna.

CouchDB è in grado di produrre indici di visualizzazione molto più sofisticati rispetto a Notes Domino.

CouchDB ha anche un sistema di replica.

-

Riepilogo (TL;DR ): CouchDB è un nuovissimo software che sta sviluppando un core che ha un concetto simile ma molto più sofisticato design a quello utilizzato in Lotus Notes Domino. Lotus Notes Domino è un prodotto maturo con funzionalità complete che può essere distribuito oggi. CouchDB sta iniziando da zero, costruendo una solida base per lo sviluppo delle funzionalità future. Lotus Notes Domino sta continuando a sviluppare nuove funzionalità, ma lo sta facendo su una piattaforma di 20 anni che si sforza di mantenere la retrocompatibilità. Ci sono funzioni in Notes Domino che potresti desiderare fossero in CouchDB, ma ci sono anche funzioni in Notes Domino che sono anacronistiche nel mondo di oggi.

Altri suggerimenti

È l'applicazione e l'interfaccia utente di Notes che le persone di solito odiano. Non l'architettura dietro.

Damien Katz lavorava a Iris (Lotus), ma non era l'uomo dietro il Database di Notes. È noto nella comunità Lotus Notes per la riprogettazione del Motore formula Notes .
Esistono sicuramente alcune somiglianze tra CouchDB e Lotus Notes, come i dati orientati ai documenti, i dati non relazionali e le capacità di replica, ma sono più disparati che simili. CouchDB è un server di database e Lotus Notes è una piattaforma di collaborazione a livello aziendale.

@Lex, dovresti prima dire su quale versione di Notes / Domino stai lavorando perché i tuoi commenti non sono corretti.

" Nessun supporto per le transazioni " - Domino ha una registrazione transazionale. Se si desidera una registrazione delle transazioni più complessa disponibile anche all'interno della codifica.

"non adatto alla gestione di più transazioni di dati" - In realtà li gestisce bene. Disponi del blocco dei documenti e della risoluzione dei conflitti di replica. Dipende molto da come si configura l'applicazione per gestire il flusso di lavoro.

" Nessuna separazione tra ambienti di produzione / sviluppo. " - Falso. L'unico modo in cui questo potrebbe essere vero è se si avesse un ambiente mal implementato. Gli sviluppatori dovrebbero normalmente avere accesso 0 per distribuire le modifiche di progettazione nell'ambiente di produzione. Lavorerebbero su un modello che non si replica ai server principali. Una volta eseguiti e approvati gli aggiornamenti, l'amministratore lo distribuisce. Lo fanno prendendo il modello e firmandolo con una firma controllata che può essere eseguita in produzione, quindi rilascia il modello e aggiorna il design delle applicazioni correlate.

" Maggiore è il numero di note relative al loto di dati, maggiore sarà la probabilità di creazione di " - Questo commento non ha assolutamente senso che mai. Non credo che tu abbia usato Notes / Domino in nessuna abilità professionale.

"lo script di loto non è orientato agli oggetti" - Sì, fai buoni punti lì. Tuttavia, ciò non significa che la lingua sia difettosa. Inoltre hanno apportato un gran numero di miglioramenti da 8.xe con 8.5.1. Ad esempio il supporto dei servizi Web integrato (punta a WSDL e il codice LS è fatto apposta per te). 8.5.1 Ha anche molte nuove funzionalità di progettazione come Modelli di codice, completamento automatico, aiuto popup LSDoc per le tue funzioni, ecc.

Tocca anche solo LotusScript. Tuttavia puoi anche scrivere il codice in: Java, SSJS / DOJO (XPages), Javascript, linguaggio @Formula, servizi Web (SOAP / REST), C-API, plug-in Eclipse (RCP). Output in JSON e XML.

8.5.1 Il client Designer è ora scaricabile gratuitamente se si desidera testarlo.

Quindi anche se credo di non essere in grado di commentare CouchDb, sicuramente non sei su Notes / Domino.

Il client / server Domino di Lotus Notes è costituito da un oggetto ("documento") - meccanismo di archiviazione (non relazionale), ha un modello di sicurezza / gestione utenti / gestione utenti completamente integrato e certificato per la risoluzione delle modifiche offline / online a dati: è una piattaforma per applicazioni distribuite.

" CouchDB è un server di gestione di database non relazionale orientato ai documenti (NRDBMS) ".

CouchDB è accessibile tramite un'API in stile REST.

C'è un'intervista podcast con Jan Lehnardt del team CouchDB qui .

Senza tornare indietro e ascoltarlo di nuovo, credo che Damien Katz, che era l'iniziatore ed è ancora lo sviluppatore principale di CouchDB, era anche il responsabile del database di Notes. Quindi, credo che CouchDB sia un DB di note migliore. Spiega alcune delle differenze nel il suo blog .

È simile al modo in cui Notes gestisce i dati in quanto ogni cosa è un documento di struttura arbitraria e hai viste su quei documenti invece di tabelle e record come se avessi in un database relazionale. La replica ecc ha anche alcune somiglianze.

Non c'è niente di sbagliato nell'architettura del server Notes, le persone non odiano così tanto. È più l'implementazione e il bloat che viene fornito con Notes.

Anche CouchDB non ha front-end, ma solo un componente server. Il client Notes fa schifo, ed è quello che le persone VERAMENTE odiano. Hai mai provato a inviare via e-mail uh intendo " memo " qualcosa da Notes? Non piacevole :(

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top