Desenvolvimento de uma interface WEB com PHP para gerenciamento de banco de dados CouchDB

O artigo traz um estudo de uma abordagem prática para a implementação de um protótipo de interface web com PHP para gerenciamento da base de dados CouchDB.

[ Hits: 39.201 ]

Por: kassiano em 28/09/2010


Implementação do protótipo



O protótipo tem por fim gerenciar bancos de dados CouchDB, bem como criar o controle para acesso por usuário sobre estes bancos, além de suprir algumas deficiências encontradas em sua interface de administração original, o Futon.

Preparação do ambiente

Para a preparação do ambiente foram utilizados os seguintes equipamentos:
  • 1 Computador Pentium 4, 3.4 ,com sistema operacional Ubuntu 9.10;
  • 1 Notebook Acer Aspire 5920 Core 2 Duo, com sistema operacional Windows Xp Pro.

Também foram usados os seguintes softwares:
  • Software Geany 0.18, este usado para programação PHP, Java Script e edição de arquivos;
  • Software Xampp 1.7.3, neste software foram utilizados as ferramentas PhpMyAdmin e o Servidor Apache;
  • Software DBDesigner, este usado para modelagem relacional do protótipo;
  • Sofware Apache CouchDB 0.10, este instalado no microcomputador Ubuntu 9.10 com objetivos de testes para o protótipo da interface.

Pré-requisitos para o funcionamento do protótipo

É necessário observar alguns itens para o pleno funcionamento da interface, antes de usá-la. São eles:
  • O firewall do servidor deve estar desativado, ou deve conter regras para liberação de leitura e escrita para os clientes;
  • O servidor deve conter o Apache CouchDB 0.10 ou superior instalado para funcionamento, uma vez que o protótipo foi construído para uso nestas versões;
  • É necessário que o bind_adress do servidor CouchDB esteja setado com o ip "0.0.0.0", isso fará com que o banco de dados libere acessos a conexões externas;
  • É necessário que as duas pontas estejam conectadas minimamente a uma rede;
  • A porta deve estar configurada como 5984/tcp no momento de cadastros de novos bancos.

Interface

Abaixo uma das telas correspondentes a interface produzida.
Linux: Desenvolvimento de uma interface WEB com PHP para gerenciamento de banco de dados CouchDB
Figura 1: Tela para adicionar documento e atributos
Nesta Figura 1, o administrador pode cadastrar um documento passando um nome para o documento, um atributo e um valor; as validações são feitas com javascript, codificação pode ser vista na continuidade.

$curl = curl_init();//Inicia a seção
$aux_conect = "http://".$ip_v.":".$porta_v."/".$bde_v."/".$documento["_id"];
// Remove a chave _id do documento, necessário quando se vai adicionar mais um //atributo ao documento, caso isso não seja feito o banco retorna um erro de //conflito
$documento["_id"] = false;
$documento = array_filter($documento);
curl_setopt($curl, CURLOPT_URL, $url);
//Define o tipo do conteúdo das mensagens a serem criadas, no caso text/json
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: text/json"));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//Definindo a entrada dos dados ao documento
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($documento));
$retorno = curl_exec($curl);
curl_close($curl);
$retorno = json_decode($retorno);
//Quando um documento é criado com sucesso ele retorno a mensagem {ok ,true}
//sendo assim faço a verificação abaixo
if(isset($retorno->ok) && $retorno->ok == "true") {
    //retorna menssagem
}

O Quadro 1 acima corresponde à codificação da criação de documentos e atributos.

Vantagens da interface produzida

Abaixo algumas vantagens correspondentes a nova interface produzida:
  • Gerenciamento multiplataforma;
  • Gerenciamento distribuído;
  • Controle de acesso;
  • Segurança;
  • Flexibilidade;
  • Controle de usuários;
  • Controle sob os dados com maior facilidade;
  • Controle de níveis de acesso sobre os bancos aos usuários;
  • Com adaptações no código pode ser usada para gerenciar outros bancos de dados SGBD NoSQL.

Página anterior     Próxima página

Páginas do artigo
   1. Início
   2. Introdução
   3. Modelo orientado a documento
   4. Apache CouchDB
   5. Desenvolvimento do protótipo
   6. Implementação do protótipo
   7. Conclusões / Referências
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalando Interbase 2007 Developer em Linux OpenSuSE 10.2

Gambas2: Inserindo dados em tabela SQLite

Apache Cassandra NoSQL, uma tecnologia emergente

Instalar o Microsoft SQL Server no Debian e no Ubuntu

Desafios da Segurança de Informação

  
Comentários
[1] Comentário enviado por dastyler em 28/09/2010 - 22:37h

Muito bom o artigo e bem esclarecedor, apesar do CouchDb nao ser novidade.
Mas vejo que a tecnologia (que vem sendo usada por muitos rubistas há algum tempo), vem ganhando mais adeptos no mundo PHP.
eu pretendo me aprofundar mais na tecnologia assim que finalizar alguns projetos que estao em andamento e em fase final, projetos estes que ainda rodam sob bancos relacionais.

Parabéns!!

[]'s


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts