Middleware para MongoDB ou CouchDB com jQuery Ajax / frontend JSON
Pergunta
Eu tenho usado a seguinte pilha de desenvolvimento web por alguns anos:
java / Primavera / Hibernate / mysql / Pontão / postigo / jQuery
Para determinadas condições, eu estou pensando em mudar para um armazenamento de dados NoSQL com um frontend AJAX. Eu provavelmente iria construir a interface com jQuery e se comunicar com o middleware de aplicações web usando JSON. Eu estou inclinado a MongoDB por causa de mais recursos de consulta dinâmica, mas ainda estou considerando CouchDB.
Eu não tenho certeza o que usar no meio. Provavelmente algo RESTful? Minha preferência é ficar com Java (ou talvez Scala ou Groovy) desde que eu estou usando ferramentas como Drools para regras e Shiro para a segurança. Mas, novamente, eu quero escolher algo que é rápido um fácil de trabalhar, por isso estou aberto a outras soluções.
Se você está construindo soluções Ajax / JSON / NoSQL, eu gostaria de ouvir detalhes sobre quais as ferramentas que você está usando e quaisquer vantagens / desvantagens que você encontrou para usá-los.
Solução
-
Escolha qualquer middleware que você está mais confortável com.
-
CouchApp é muito experimental no momento. A questão principal é ser capaz de adicionar segurança a sua aplicação sem ter um pop-up caixa padrão HTTP. Esta é, obviamente, um grande problema para aplicações web padrão.
-
tentar evitar a análise de cada pedido DB no middleware e reconstruir a consulta para couchdb. Você pode fazer seu ato middleware como um proxy para a maioria dos pedidos são encaminhados sem modificação. Você também pode adicionar uma camada de segurança na middlelayer no topo de todos os pedidos que a autenticação necessidade.
-
Escolha um middleware / quadro com capacidades de roteamento boa URL. Por exemplo, você pode encaminhar todas as solicitações que vão para mydomain.com/db/ para couchdb.
Outras dicas
Se você vai com CouchDB, você pode usar CouchApp que é um conjunto de scripts para implantar um aplicação directamente a uma base de dados CouchDB. Em essência, você pular o middleware e usar exibições, listas e mostra as funções do CouchDB juntamente com clientside JavaScript para implementar o aplicativo inteiro. Se o seu aplicativo funciona nesta arquitetura, é surpreendentemente refrescante, simples e fresco.
Além disso, se você gosta da idéia de JSON / REST e aderindo a cliente JavaScript para o servidor, a nova geração de núcleo de Persevere, Pintura é framework JS JSON / REST pura que é projetado especificamente para trabalhar bem com NoSQL bancos de dados.
Eu fui mexer com alguns. Finalmente, eu gostaria de mudar a minha camada de controlador de MVC do jQuery / frontend javascript e usar puro JSON / REST para conversar com o backend. Embora a infra-estrutura terá uma forte segurança e, para a minha candidatura alguma habilidade para fazer fluxo de trabalho, consultas e regras.
Você também pode querer olhar em:
1) Couldkit, que funciona em Tokyo Cabinet. Suporta JSONQuery e OAuth. Funciona em Ruby / cremalheira pode ter funcionalidade suficiente. Loks como uma implementação RESTO forte. 2) Persevere, que é baseado em Java e fortemente apoiada no Dojo. É RESTO-ish, mas também tem algumas chamadas do tipo RPC. Parece muito poderoso no geral, com server-side scripting java, etc.
Eu não me importaria de ouvir como você está vindo junto.
Cheers, Alex
Eu escrevi uma jóia chamado Rack :: JSON exatamente para este fim, ele age como um básico Interface de repouso para uma db MongoDB. Foi inspirado por Cloudkit e suportes JSONQuery e também roda em Ruby / Rack. Ele permite que você armazenar e, em seguida, documentos de acesso / consulta JSON.