Pregunta

Estaba investigando la posibilidad de usar CouchDB. Escuché que era similar a Lotus Notes, que a todos les encanta odiar. ¿Es esto cierto?

¿Fue útil?

Solución

El desarrollo de Lotus Notes comenzó hace más de 20 años, con versión 1 lanzada en 1989 . Fue desarrollado por Ray Ozzie, actualmente arquitecto jefe de software para Microsoft.

Lotus Notes (el cliente) y Domino (el servidor) han existido durante mucho tiempo y son productos maduros y bien presentados. Tiene:

  • Una pila completa de servidores de clientes con un rápido diseño de aplicaciones e implementación de bases de datos orientadas a documentos.
  • Una infraestructura de clave pública completa para seguridad y cifrado.
  • Un modelo de replicación robusto y una agrupación activa activa en plataformas heterogéneas (una vez alguien mostró un grupo dominó con una xbox y un enorme servidor AIX ).
  • Un directorio nativo incorporado para administrar usuarios a los que también se puede acceder a través de LDAP.
  • Un sistema de correo nativo integrado que puede escalar para administrar a millones de usuarios con archivos de correo de múltiples GB, con acceso al servidor en vivo o replicado localmente para el acceso fuera de línea. Esto puede interactuar con el correo de Internet estándar a través de SMTP y también tiene acceso POP e IMAP incorporado. La infraestructura de correo es una característica central que está disponible para todas las aplicaciones creadas en Notes Domino (cualquier documento en una base de datos puede enviarse por correo a cualquier otra base de datos con un simple comando doc.send ()).
  • Una pila HTTP integrada que permite acceder a las bases de datos alojadas en el servidor a través de la web.
  • Una gran cantidad de opciones de integración para acceder, transferir e interoperar con los sistemas RDBMS y ERP, con una integración estrechamente acoplada con DB2 disponible que permite que las bases de datos de Notes estén respaldadas por un almacén relacional donde se desee.

La compatibilidad con versiones anteriores siempre ha sido una característica importante de Notes Domino y no es infrecuente encontrar bases de datos desarrolladas para la versión 3 que se ejecuten sin problemas en las versiones más actualizadas. IBM pone un gran esfuerzo en esto y tiene una gran influencia en cómo funciona actualmente el producto.

-

CouchDB fue creado por Damien Katz, comenzando el desarrollo en 2004. Anteriormente había trabajado para IBM en Notes Domino, desarrollando plantillas y, finalmente, reescribiendo completamente una de las funciones principales, el motor de fórmulas, para ND6.

CouchDB comparte un concepto básico de una base de datos orientada a documentos con vistas que Notes Domino tiene.

En este modelo, " documentos " son solo colecciones arbitrarias de valores que se almacenan de alguna manera. En CouchDB los documentos son objetos JSON de complejidad arbitraria. En Notes, los valores son simples pares de valores de nombre, donde los valores pueden ser cadenas, números, fechas o matrices de esos.

Las vistas son índices de los documentos en la base de datos, muestran cierto valor, calculan otros y excluyen documentos no deseados. Una vez que se crea el índice, se actualizan gradualmente cuando cambia cualquier documento de la base de datos (creado, actualizado o eliminado).

En CouchDB, las vistas se crean ejecutando una función de mapeo en cada documento de la base de datos. La función de mapeo llama a un método de emisión con un objeto JSON para cada entrada de índice que desea crear para el documento dado. Este objeto JSON puede ser arbitrariamente complejo. CouchDB puede ejecutar una segunda función de reducción en el índice mapeado de la vista.

En Notes, las vistas de Domino se crean ejecutando una función de selección (escrita en el lenguaje de fórmulas de Notes Domino) en cada documento de la base de datos. La función de selección simplemente define si el documento debe estar en la vista o no. Notas El diseño de la vista de Domino también define una serie de columnas para la vista. Cada columna tiene una fórmula que se ejecuta contra el documento seleccionado para determinar el valor de esa columna.

CouchDB es capaz de producir índices de vista mucho más sofisticados que Notes Domino.

CouchDB también tiene un sistema de replicación.

-

Resumen (TL;DR ): CouchDB es un nuevo software que está desarrollando un núcleo que tiene un concepto similar pero mucho más sofisticado diseño al usado en Lotus Notes Domino. Lotus Notes Domino es un producto maduro con todas las funciones que se puede implementar hoy. CouchDB está comenzando desde cero, creando una base sólida para el desarrollo de funciones futuras. Lotus Notes Domino continúa desarrollando nuevas características, pero lo está haciendo en una plataforma de 20 años que se esfuerza por mantener la compatibilidad con versiones anteriores. Hay características en Notes Domino que desearía que estuvieran en CouchDB, pero también hay características en Notes Domino que son anacrónicas en el mundo de hoy.

Otros consejos

Es la aplicación de Notas y la interfaz de usuario que la gente suele odiar. No la arquitectura detrás.

Damien Katz trabajó en Iris (Lotus), pero no era el tipo detrás de la base de datos de Notes. Es conocido en la comunidad de Lotus Notes por rediseñar el Motor de fórmulas de notas .
Definitivamente existen algunas similitudes entre CouchDB y Lotus Notes, como sus datos orientados a documentos, datos no relacionales y capacidades de replicación, pero son más dispares que similares. CouchDB es un servidor de base de datos y Lotus Notes es una plataforma de colaboración a nivel empresarial.

@Lex, debe decir previamente en qué versión de Notes / Domino está trabajando porque sus comentarios son incorrectos.

" Sin soporte de transacciones " - Domino tiene registro transaccional. Si desea un registro de transacciones más complejo que también está disponible dentro de la codificación.

" no es adecuado para manejar múltiples transacciones de datos " - En realidad los maneja bien. Tiene bloqueo de documentos y resolución de conflictos de replicación. Depende mucho de cómo configure su aplicación para manejar el flujo de trabajo.

" No hay separación entre los entornos de producción / desarrollo. " - falso La única forma en que esto podría ser cierto es si tuviera un entorno mal implementado. Los desarrolladores normalmente deben tener acceso 0 para implementar cambios de diseño en el entorno de producción. Trabajarían con una plantilla que no se replique en los servidores principales. Una vez que se realizan y aprueban las actualizaciones, el administrador las implementa. Para ello, toman la plantilla y la firman con una firma controlada que se puede ejecutar en producción, luego colocan la plantilla y actualizan el diseño de las aplicaciones relacionadas.

" Cuantos más datos contenga las notas de loto, probablemente se crearán más vistas " - Este comentario no tiene ningún sentido en absoluto. No creo que hayas usado Notes / Domino en ninguna habilidad profesional.

" el script de lotus no está orientado a objetos " - Sí, haces buenos puntos allí. Sin embargo, no significa que el lenguaje sea defectuoso. También han realizado una gran cantidad de mejoras desde 8.xy con 8.5.1. Por ejemplo, soporte de servicios web integrado (apunte a WSDL y el código LS está hecho para usted). 8.5.1 También tiene muchas características nuevas de diseñador como Plantillas de código, autocompletado, ayuda emergente de LSDoc en sus propias funciones, etc.

También solo toca LotusScript. Sin embargo, también puedes codificar: Java, SSJS / DOJO (XPages), Javascript, @Formula language, Servicios web (SOAP / REST), C-API, Complementos de Eclipse (RCP). Salida en JSON y XML.

8.5.1 Designer client ahora se puede descargar gratis si desea probarlo.

Entonces, aunque creo que no estoy en condiciones de comentar sobre CouchDb, ciertamente no está en Notes / Domino.

El cliente de Lotus Notes / el servidor de Domino se compone de un objeto (" documento ") - mecanismo de almacenamiento (no relacional), tiene un modelo de seguridad / gestión de usuarios completamente certificado basado en certificados y resolución de conflictos para sincronizar cambios offline / online a datos: es una plataforma para aplicaciones distribuidas.

" CouchDB es un servidor de gestión de bases de datos no relacional orientado a documentos (NRDBMS). & Quot;

Se puede acceder a CouchDB a través de una API de estilo REST.

Hay una entrevista de podcast con Jan Lehnardt del equipo de CouchDB aquí .

Sin volver atrás y escucharlo de nuevo, creo que Damien Katz, quien fue el iniciador y aún es el desarrollador principal de CouchDB, también fue el responsable de la base de datos de Notes. Entonces, creo que CouchDB es una mejor base de datos de Notes. Explica algunas de las diferencias en su blog .

Es similar a cómo Notes trata los datos, ya que todo es un documento de estructura arbitraria, y tiene vistas sobre esos documentos en lugar de tablas y registros como los que tendría en una base de datos relacional. La replicación, etc. también tiene algunas similitudes.

No hay nada malo con la arquitectura del servidor de Notes, la gente no odia tanto. Es más la implementación y la hinchazón que viene con Notes.

CouchDB tampoco tiene front-end, solo un componente de servidor. El cliente Notes apesta, y eso es lo que la gente REALMENTE odia. ¿Alguna vez ha intentado enviar un correo electrónico a uh me refiero a " memo " algo de Notes? No es agradable :(

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top