Pergunta

Eu estava olhando para a possibilidade de usar CouchDB. Ouvi dizer que era semelhante ao Lotus Notes que ama a todos a odeiam. Isso é verdade?

Foi útil?

Solução

Desenvolvimento do Lotus Notes começou há mais de 20 anos atrás, com versão 1 lançado em 1989 . Ele foi desenvolvido por Ray Ozzie, atualmente arquiteto-chefe de software da Microsoft.

Lotus Notes (o cliente) e Domino (servidor) foram em torno de um longo tempo e são maduros produtos bem caracterizados. Ele tem:

  • Uma pilha de servidor cliente completo com design rápido de aplicações e implantação de bancos de dados orientados documentos.
  • A infra-estrutura de chave pública total para segurança e criptografia.
  • Um modelo robusto replicação e agrupamento activo activo em todas as plataformas heterogéneas (alguém uma vez mostrou um cluster dominó com um xbox e um enorme servidor AIX ).
  • Um construído no diretório nativo para gerenciamento de usuários que também podem ser acessados ??através de LDAP.
  • Um construído em sistema de correio nativa que pode ser escalado para gerenciar milhões de usuários com arquivos de correio GB multi, com acesso ao servidor ao vivo ou replicado localmente para acesso off-line. Isso pode interagir com correio normal internet através de SMTP e também tem acesso POP e IMAP construído dentro. A infra-estrutura de correio é uma característica fundamental que está disponível para todos os aplicativos criados no Notes Domino (qualquer documento em um banco de dados pode ser enviado para qualquer outro banco de dados com um doc.send simples () de comando).
  • Um construído em HTTP pilha que permite que bancos de dados de servidor hospedado para ser acessado através da web.
  • Uma série de opções de integração para o acesso, transferência e interoperar com sistemas RDBMS e ERP, com uma integração de perto juntamente com DB2 disponível permitindo que dados do Notes a ser apoiado por uma loja relacional onde desejado.
compatibilidade

Backwards sempre foi uma característica forte do Notes Domino e não é raro encontrar bases de dados que foram desenvolvidos para a versão 3 em execução sem falhas na mais as versões mais actualizadas. IBM coloca uma enorme quantidade de esforço para isso e tem uma grande influência sobre a forma como o produto funciona atualmente.

-

CouchDB foi criado por Damien Katz, iniciar o desenvolvimento em 2004. Ele já havia trabalhado para a IBM em Notes Domino, o desenvolvimento de modelos e, eventualmente, reescrever completamente um dos principais recursos, o motor de fórmula, para ND6.

CouchDB compartilha um conceito básico de um banco de dados orientado documento com vistas que Notes Domino tem.

Neste modelo "documentos" são apenas coleções arbitrárias de valores que são armazenados de alguma forma. Em CouchDB os documentos são objetos JSON de complexidade arbitrária. No Notes os valores são pares de valor de nome simples, onde os valores podem ser strings, números, datas ou matrizes daqueles.

As vistas são índices dos documentos no banco de dados, exibindo determinado valor, calculando os outros e excluindo docs indesejados. Uma vez que o índice é de construção são incrementalmente atualizado quando qualquer documento nas mudanças de banco de dados (criado atualizado ou excluído).

vistas no CouchDB são de construção, executando uma função de mapeamento em cada documento no banco de dados. A função de mapeamento chama um método emit com um objeto JSON para cada entrada de índice que pretende criar para o documento dado. Este objeto JSON pode ser arbitrariamente complexa. CouchDB pode, em seguida, executar uma segunda função de redução no índice mapeado da vista.

exibições Em Notes Domino são construídas por executar uma função select (escrito em Notes Domino linguagem de fórmula) em cada documento no banco de dados. A função de seleção simplesmente define se o documento deve estar na vista ou não. design da vista Notes Domino também define um número de colunas para a vista. Cada coluna tem uma fórmula que é executada no documento seleccionada para determinar o valor para a coluna.

CouchDB é capaz de produzir muito mais sofisticados índices de visão do Notes Domino pode.

CouchDB também tem um sistema de replicação.

-

Resumo ( TL; DR ): CouchDB é a marca software novo que está desenvolvendo um núcleo que tem um conceitual semelhante, mas muito mais sofisticado projetar ao usado no Lotus Notes Domino. Lotus Notes Domino é um produto maduro inteiramente caracterizado que é capaz de ser implantado hoje. CouchDB está começando do zero, construindo uma base sólida para o desenvolvimento recurso futuro. Lotus Notes Domino continua a desenvolver novas funcionalidades, mas é fazê-lo em uma plataforma de 20 anos e que se esforça para manter a compatibilidade com versões anteriores. Há recursos em Notes Domino que você poderia desejar estavam no CouchDB, mas há também são características em Notes Domino que são anacrônicas no mundo de hoje.

Outras dicas

É a aplicação Notes e UI que as pessoas normalmente odeia. Não a arquitetura por trás.

Damien Katz trabalhou no Iris (Lotus), mas ele não era o cara por trás do banco de dados Notes. Ele é bem conhecido na comunidade do Lotus Notes para redesenhar o Notas Motor Fórmula .
Definitivamente, existem algumas semelhanças entre CouchDB e Lotus Notes, tais como os seus dados orientados a documentos, não-relacionais e recursos de replicação, mas eles são mais díspares do que similar. CouchDB é um servidor de banco de dados e Lotus Notes é uma plataforma de nível empresarial colaboração.

@lex, Você deve prehaps dizer qual a versão do Notes / Domino que está a trabalhar, porque os seus comentários estão incorretos.

"suporte a transações Não" - Domino tem registro transacional. Se você quiser log de transações mais complexas, que também está disponível dentro de codificação.

"não é bem adequado para lidar com várias transações de dados" - Na verdade, manipula-los muito bem. Você tem bloqueio de documento e resolução de conflitos de replicação. Depende muito de como você configurar seu aplicativo para fluxo de trabalho alça.

"Nenhuma separação entre os ambientes de produção / dev." - False. A única maneira isso poderia ser verdade é que se você tinha um ambiente mal implantado. Desenvolvedores normalmente deve ter 0 acesso a implantar mudanças de design no ambiente de produção. Eles iriam trabalhar fora de um modelo que não replicar para servidores principais. Uma vez que as atualizações são feitas e aprovadas, em seguida, o administrador implanta-lo. Eles fazem isso tomando o modelo e assiná-lo com uma assinatura controlada permissão para executar em produção, em seguida, solte o modelo e atualizar o design das aplicações relacionadas.

"Os mais notas de lótus de dados contém, os pontos de vista mais provavelmente irá obter criado" - Este comentário faz absolutamente nenhum sentido que tão nunca. Eu não acredito que você tenha usado Notes / Domino em qualquer habilidade profissional.

"roteiro de lótus não é orientada a objeto" - Sim, você fazer bons pontos lá. No entanto, isso não significa que a linguagem é falho. Também fez um grande número de melhorias desde 8.x e com 8.5.1. Por exemplo suporte embutido serviços web (ponto a WSDL e LS código é feito para você). 8.5.1 também tem um monte de novo designer apresenta como modelos de código, auto-realização, LSDoc pop-up de ajuda em suas próprias funções, etc.

Você também tocar somente no LotusScript. No entanto, você também pode código: Java, SSJS / DOJO (XPages), Javascript, língua @Formula, Serviços Web (SOAP / REST), C-API, Eclipse Plugins (RCP). Saída em JSON, bem como XML.

8.5.1 cliente Designer agora está livre para download se você quiser testá-lo.

Assim, enquanto eu acredito que eu não estou em posição de comentar sobre o CouchDB você certamente não estão no Notes / Domino.

cliente Lotus Notes servidor / Domino é composto de um objeto ( "documento") - de armazenamento (não relacional) mecanismo, tem gerenciamento de usuários com base em certificado modelo de segurança / e de resolução de conflitos totalmente integrado para sincronização offline / alterações on-line a dados -. é uma plataforma para aplicativos distribuídos

" CouchDB é, um banco de dados não-relacional orientado a documentos Management Server ( NRDBMS). "

CouchDB é acessível através de uma API estilo REST.

Há uma entrevista em podcast com Jan Lehnardt da equipe CouchDB aqui .

Sem voltar e ouvi-lo novamente, eu acredito que Damien Katz, que foi o iniciador e ainda é o desenvolvedor líder em CouchDB também foi o cara atrás do banco de dados do Notes. Portanto, há um sentido em que CouchDB é um melhor Notas DB, eu acho. Ele explica algumas das diferenças em seu blog .

É semelhante à forma como Notas lida com dados em que tudo é um documento de estrutura arbitrária, e tem vista sobre os documentos em vez de tabelas e registros como você teria em um banco de dados relacional. A replicação etc também tem algumas semelhanças.

Não há nada de errado com a arquitetura de servidor Notes, as pessoas não odeio isso tanto. É mais a implementação e inchaço que vem com o Notes.

CouchDB não tem fim frente, quer, apenas um componente do servidor. O cliente Notes é uma porcaria, e é isso que as pessoas realmente odeiam. Alguma vez você já tentou e-mail uh eu quero dizer "memo" algo de Notas? Não agradável: (

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top