Question

Je cherchais la possibilité d’utiliser CouchDB. J'ai entendu dire que c'était semblable à Lotus Notes, que tout le monde aime détester. Est-ce vrai?

Était-ce utile?

La solution

Le développement de Lotus Notes a débuté il y a plus de 20 ans avec la version 1 publiée dans 1989 . Il a été développé par Ray Ozzie, actuellement architecte logiciel en chef pour Microsoft.

Lotus Notes (le client) et Domino (le serveur) existent depuis longtemps et constituent des produits bien développés et bien développés. Il a:

  • Une pile de serveurs client complète avec une conception rapide des applications et le déploiement de bases de données orientées document.
  • Une infrastructure à clé publique complète pour la sécurité et le chiffrement.
  • Modèle de réplication robuste et clustering actif actif sur des plateformes hétérogènes (quelqu'un a déjà montré un cluster domino avec un xbox et un énorme serveur AIX ).
  • Un répertoire natif intégré pour la gestion des utilisateurs, également accessible via LDAP.
  • Un système de messagerie natif intégré pouvant évoluer pour gérer des millions d'utilisateurs avec des fichiers courrier multi-Go, avec un accès direct au serveur ou répliqué localement pour un accès hors ligne. Il peut s’interfacer avec la messagerie Internet standard via SMTP et intègre également un accès POP et IMAP. L’infrastructure de messagerie est une fonctionnalité essentielle disponible pour toutes les applications basées sur Notes Domino (tout document d’une base de données peut être envoyé à toute autre base de données avec une simple commande doc.send ()).
  • Pile HTTP intégrée permettant d’accéder aux bases de données hébergées sur le serveur par le Web.
  • Une multitude d'options d'intégration permettant d'accéder à, de transférer et d'interagir avec les systèmes SGBDR et ERP, avec une intégration étroitement couplée à DB2 disponible permettant de sauvegarder les bases de données Notes par un magasin relationnel, le cas échéant.

La compatibilité avec les versions antérieures a toujours été une caractéristique essentielle de Notes Domino et il n'est pas rare de trouver des bases de données développées pour la version 3 qui fonctionnent parfaitement dans les versions les plus récentes. IBM y consacre beaucoup d’efforts et influe beaucoup sur le fonctionnement actuel du produit.

-

CouchDB a été créé par Damien Katz à partir du développement en 2004. Il avait précédemment travaillé pour IBM sur Notes Domino, développant des modèles et finissant par réécrire complètement l’une des fonctionnalités principales, le moteur de formule, pour ND6.

CouchDB partage un concept de base de base de données orientée document avec des vues de Notes Domino.

Dans ce modèle, "documents". ne sont que des collections arbitraires de valeurs stockées en partie Dans CouchDB, les documents sont des objets JSON de complexité arbitraire. Dans Notes, les valeurs sont de simples paires nom-valeur, les valeurs pouvant être des chaînes, des nombres, des dates ou des tableaux de celles-ci.

Les vues sont des index des documents de la base de données, affichant une certaine valeur, en calculant d’autres et excluant les documents indésirables. Une fois que l'index est construit, il est mis à jour de manière incrémentielle lorsqu'un document de la base de données est modifié (créé, mis à jour ou supprimé).

Dans CouchDB, les vues sont créées en exécutant une fonction de mappage sur chaque document de la base de données. La fonction de mappage appelle une méthode emit avec un objet JSON pour chaque entrée d'index à créer pour le document donné. Cet objet JSON peut être arbitrairement complexe. CouchDB peut alors exécuter une deuxième fonction de réduction sur l'index mappé de la vue.

Dans Notes Domino, les vues sont créées en exécutant une fonction de sélection (écrite en langage de formule Notes Domino) sur chaque document de la base de données. La fonction select définit simplement si le document doit être dans la vue ou non. La conception de la vue Notes Domino définit également un nombre de colonnes pour la vue. Chaque colonne a une formule qui est exécutée sur le document sélectionné pour déterminer la valeur de cette colonne.

CouchDB est capable de produire des index de vue beaucoup plus sophistiqués que Notes Domino.

CouchDB dispose également d’un système de réplication.

-

Résumé ( TL; DR ): CouchDB est un tout nouveau logiciel qui développe un noyau doté d'un concept similaire, mais beaucoup plus sophistiqué. similaire à celle utilisée dans Lotus Notes Domino. Lotus Notes Domino est un produit mature complet pouvant être déployé aujourd'hui. CouchDB part de zéro et construit une base solide pour le développement de futures fonctionnalités. Lotus Notes Domino continue de développer de nouvelles fonctionnalités, mais sur une plate-forme vieille de 20 ans qui s'efforce de maintenir la compatibilité avec les versions antérieures. Vous pouvez souhaiter que certaines fonctionnalités de Notes Domino soient dans CouchDB, mais certaines fonctionnalités de Notes Domino sont anachroniques dans le monde actuel.

Autres conseils

C'est l'application Notes et l'interface utilisateur que les gens détestent généralement. Pas l'architecture derrière.

Damien Katz travaillait chez Iris (Lotus), mais il n’était pas le responsable de la base de données Notes. Il est bien connu dans la communauté Lotus Notes pour avoir remodelé le moteur de formule Notes .
Il existe certes des similitudes entre CouchDB et Lotus Notes, telles que leurs capacités de réplication et de données non relationnelles orientées document, mais elles sont plus disparates que similaires. CouchDB est un serveur de base de données et Lotus Notes est une plate-forme de collaboration au niveau de l'entreprise.

@Lex, vous devriez peut-être préciser la version de Notes / Domino sur laquelle vous travaillez car vos commentaires sont incorrects.

" Pas de support de transaction " - Domino dispose d'une journalisation transactionnelle. Si vous souhaitez une journalisation plus complexe des transactions, elle est également disponible dans le codage.

"Convient mal au traitement de plusieurs transactions de données" - En fait, ça les gère très bien. Vous avez le verrouillage de documents et la résolution des conflits de réplication. Cela dépend beaucoup de la manière dont vous configurez votre application pour gérer le flux de travail.

"Aucune séparation entre les environnements de production / développement." - Faux. Cela pourrait être vrai uniquement si votre environnement était mal déployé. Les développeurs doivent normalement avoir un accès nul pour déployer les modifications de conception dans l'environnement de production. Ils travailleraient sur un modèle qui ne serait pas répliqué sur les serveurs principaux. Une fois les mises à jour terminées et approuvées, l'administrateur les déploie. Pour ce faire, ils prennent le modèle et le signent avec une signature contrôlée autorisée à s'exécuter en production, puis déposent le modèle et mettent à jour la conception des applications connexes.

"Plus il y a de données dans Lotus Notes, plus il y aura de vues créées" - Ce commentaire n'a absolument aucun sens. Je ne pense pas que vous ayez utilisé Notes / Domino à titre professionnel.

"Le script de lotus n'est pas orienté objet" - Oui, vous faites de bons arguments là-bas. Cependant, cela ne signifie pas que le langage est imparfait. En outre, ils ont apporté de nombreuses améliorations depuis la version 8.x et 8.5.1. Par exemple, le support de services Web intégré (pointez sur WSDL et le code LS est fait pour vous). 8.5.1 Intègre également de nombreuses nouvelles fonctionnalités de concepteur telles que les modèles de code, la saisie automatique, l’aide contextuelle de LSDoc sur vos propres fonctions, etc.

Vous ne touchez également que LotusScript. Mais vous pouvez aussi coder en: Java, SSJS / DOJO (XPages), Javascript, langage @Formula, services Web (SOAP / REST), C-API, plugins Eclipse (RCP). Sortie en JSON et XML.

Le client Designer 8.5.1 est maintenant gratuit à télécharger si vous souhaitez le tester.

Par conséquent, même si je ne suis pas en mesure de commenter CouchDb, vous n’êtes certainement pas sur Notes / Domino.

Le client / serveur Domino Lotus Notes comprend un objet ("document") - un mécanisme de stockage (non relationnel), une gestion des modèles de sécurité / utilisateurs reposant sur des certificats et une résolution des conflits pour la synchronisation des modifications hors connexion / en ligne. data - c’est une plate-forme pour les applications distribuées.

" CouchDB est un serveur de gestion de base de données non relationnel orienté document (NRDBMS). "

CouchDB est accessible via une API de style REST.

Il existe une interview en podcast avec Jan Lehnardt de l'équipe CouchDB ici .

Sans revenir en arrière et écouter à nouveau, je pense que Damien Katz, qui était l'initiateur et qui est toujours le développeur principal de CouchDB, était également le responsable de la base de données Notes. Il y a donc un sens dans lequel CouchDB est une meilleure base de données Notes, je suppose. Il explique certaines des différences entre sur son blog .

Cela ressemble à la façon dont Notes traite les données en ce sens que tout est un document de structure arbitraire et que vous avez des vues sur ces documents au lieu de tables et d'enregistrements comme dans une base de données relationnelle. La réplication, etc. présente également certaines similitudes.

Il n'y a rien de mal avec l'architecture du serveur Notes, les gens ne le détestent pas autant. Il s’agit plutôt de la mise en œuvre et de la lourdeur de Notes.

CouchDB n’a pas non plus de front-end, juste un composant serveur. Le client Notes est nul, et c’est ce que les gens détestent VRAIMENT. Avez-vous déjà essayé d'envoyer par e-mail à euh un mot "notes de service" à partir de Notes? Pas agréable: (

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top