Whats new? | Login
Cadastre-se | Atendimento | RSS
 
Live chat by Netwatts
Home Entenda o site Revistas Canais Cursos Palestras Suporte Fórum +Serviços Assine Compre Créditos
Você está em: / canal Java [artigos]
   + Java:   artigos   |   vídeos   |    cursos   |    mais
 
 
Outras seções:
Home 
Entenda o site 
Revistas 
Canais 
Cursos 
Palestras 
Suporte 
Fórum 
Oportunidades 
 Todos os links 

 
  Ir para o Canal Java  
+Canais:
Canal Delphi 
Canal Java 
Canal .net 
Canal Banco de dados 
Canal Mobile 
Canal Ruby on Rails 
Canal PHP 
Canal ASP 
Canal WebDesign 
Canal Engenharia de Software 
Canal Linux 
Canal Scripting 
Canal Outros 
  Todo conteúdo DevMedia 

 
  ver cursos de Java  
+Cursos:
Cursos de Java 
Cursos de .net 
Cursos de Banco de dados 
Cursos de Delphi 
Cursos de Engenharia de Software 
Cursos de Ruby on Rails 
Cursos de ASP 
Cursos de WebDesign 
Cursos de PHP 
Cursos de PalmOS 
Cursos de Linux 
Cursos de Scripting 
  Formações completas 
  Todos os cursos 

 
Canal de conteúdo Java
Revista Java Magazine
Suporte Java
Palestras de Java
E-books de Java
Downloads de Java
 

+Revistas:
ClubeDelphi 
.net Magazine 
Java Magazine 
webMobile Magazine 
SQL Magazine 
Engenharia de Software Magazine 
  Edições anteriores impressas 
  Todas as revistas 


[Fechar]
Este post está disponível para quem é assinante da Java Magazine, SQL Magazine ou para quem possui Créditos DevMedia.


  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 0,00 (assinante) ou R$ 0,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 0,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia


DB4Objects na terra de gigantes do BD relacional com Java – Parte I

DB4Objects na terra de gigantes do BD relacional com Java – Parte I
Banco de dados orientado a objetos pode ser a alternativa para reduzir custos e aumentar a praticidade frente ao mercado BD relacional

 

Enquanto Índia, Estados Unidos, Austrália, Canadá, Espanha, Nova Zelândia e Alemanha já deram a largada para o uso do DB4Objects com cerca de 2% de abrangência – de acordo com estimativas do mercado –, o resto do mundo ainda está apegado ao tradicional banco de dados relacional. A alternativa é recente, acredita-se que tenha surgido em 2000, sendo um software open-source (GPL). Adquirindo a licença, o recurso pode gerar uma economia que impacta diretamente no bolso das empresas, tendo ainda como aliado a redução do tempo de desenvolvimento, já que não demanda mapeamento objeto-relacional.  


O db4o é um banco de dados inteiramente orientado a objetos, projetado para aplicações tipo embarcada, cliente-servidor e desktop. A ferramenta permite armazenar classes Java diretamente no banco, sem precisar utilizar consultas SQL ou qualquer tipo de framework que faça o mapeamento objeto-relacional (Hibernate por exemplo). A natureza open-source do software não descarta, no entanto, que a empresa interessada em implementar esse tipo de banco de dados pague uma taxa de uso caso não queira disponibilizar o código fonte.

 

Empresas como a Bosch, Hertz, BMW, Intel, Seagate entre outras, já utilizam o db4o. São inúmeras as vantagens em relação ao banco de dados relacional: a ferramenta é nativa em Java (ou .Net), oferece rapidez de inserção e consulta (processamento de 200 mil objetos por segundo), utiliza pouco recurso computacional, tem fácil aprendizado, não possui nenhuma linha de código SQL para CRUD (Create, Read, Update e Delete), e disponibiliza acesso direto ao banco sem utilizar ORM (Mapeamento Objeto-Relacional).

 

db4objectsfig01.JPG

(*) RDBMS – Relational Database Management System                                               Fonte: www.db4o.com

 

Armazenamento de objetos em um B.D relacional e em um B.D db4o.  

 

Desconstruindo o DB4Objects – Conhecendo as funcionalidades da ferramenta

 

O db4o é simples ao extremo para inserir e recuperar dados e executar manutenção. Com apenas uma linha de comando é possível armazenar um objeto. Além disso, não precisa ser submetido a um administrador, já que as rotinas de melhoria de performance podem ser feitas por um programador.


Com um tamanho de 400k de utilização de memória, comparativamente aos bancos de dados relacionais, o db4o reduz agressivamente o uso de recurso computacional. E ainda, é possível executar consultas nativas tanto do seu código Java quanto do ObjectManager Browser (que será mostrado mais adiante).

 

Desempenho

De acordo com o site do db4o (www.db4o.com), este banco roda até 44 vezes mais rápido que os B.Ds que já conhecemos (Hibernate com Mysql). Mais detalhes no site que gerou o benchmark PolePosition (www.polepos.org).


db4objectsfig02.JPG

 

Estrutura de armazenamento / segurança do db4o

O armazenamento dos dados é feito através de um ou mais arquivos (a escolha é sua) gravados de forma binária. Há a possibilidade de inserir senha e de “encripitar” as informações no banco, caso seja de interesse do usuário. O algoritmo utilizado é o XTEA (eXtend Tiny Encryption Algorithm)  com chave de até 128 bits. A capacidade máxima de um arquivo de objetos é de 254 GB.

 

Recuperação dos dados

Quanto à recuperação de dados, que pode ser feita através query nativas, há também a  possibilidade de recuperar as informações através de QbE (Query by Example), S.O.D.A e XML ( que será mostrado mais adiante).

 

Plataformas

Em Java é possível utilizar em JSE, JEE, JME com reflexão, Servlets e Java WebStart. Para os programadores.Net segue a dica das plataformas suportadas: .Net 1.X, 2.0, CompactFramework, Windows Móbile 5.0 e Mono.

 

Controle de transações

Além do suporte a transações (Commit e Rollback) o db4o oferece a criação de Sessions (início e fim), fácil manipulação do arquivo de B.D (Criar, abrir, fechar e pagar) e CRUD em objetos.

 

Indexação

Em apenas uma linha de comando é possível criar / desfazer um índice. Escolha uma propriedade de sua classe para ser o índice e pronto: o índice foi criado. Com a mesma facilidade que é criado, o índice também é removido.

 

Replicação de dados

Para o controle de replicação é necessário ter a garantia da unicidade de um objeto. Para isso, o db4o utiliza o UUID (Unique Universal IDs), que é um dispositivo que fornece uma chave única para uma instância de objeto. Pode ser aplicado de forma global ou para uma classe individualmente. Por padrão, este dispositivo não está habilitado devido ao espaço utilizado no armazenamento e à perda de performance para a manutenção deste índice.

 

Refatoração

Caso seja feita alguma modificação em suas classes, não será necessário fazer absolutamente nada no banco, já que nele as modificações serão transparentes sem a necessidade de reestruturação ou algo parecido. Adicionar novas funcionalidades ao sistema será algo natural, aumentando o desempenho do desenvolvimento do software.

 

Tipos de dados suportados

Os tipos suportados vão desde classes wrappers até arrays multidimensionais de objetos. É possível ter campos blob, mas estes são armazenados fora do arquivo de banco de dados.

 

Ferramentas de Gerenciamento

O ObjectManager é uma ferramenta gráfica utilizada para acessar, navegar, executar querys e editar arquivos db4o. O download pode ser feito nas versões Windows, Linux e .net (msi Installer).

 

db4objectsfig03.JPG

 

Plugin do Eclipse

Para quem prefere manter tudo em uma mesma IDE (como eu) está disponível o download do plugin db4o para o Eclipse. Atualmente está na versão 0.2.0 com as seguintes funcionalidades:

  • Abrir e criar Banco de dados db4o
  • Conectar a um servidor de B.D
  • Navegação no conteúdo
  • CRUD nos objetos
  • Executar querys
  • Backup

  • Perspectivas
    • Explorer View
      • Leitura e conexão com o Banco de Dados e exibição das classes
    • Object View
      • Visualiza as propriedades dos objetos em forma de tabulação
    • Query View
        • É utilizada para a criação de querys no banco. Também pode ser adicionada na Explorer View.

Apesar de todas essas funcionalidades, ainda não saiu uma versão do plugin que atenda à versão db4o 5.5. Funciona somente na versão 5.0.

 

db4objectsfig04.JPG

 

Estudo de Caso

Aconteceu na Espanha: a Indra Sistemas, uma empresa de desenvolvimento de softwares, foi contratada para criar um centro de controle do sistema espanhol de trens bala AVE. Neste projeto, o db4o foi utilizado como a base de dados de tempo real para controlar o tráfego. A capacidade de processamento do sistema da Indra fica em torno de 200 mil objetos por segundo. Além disso, a administração do banco é zero, com um tamanho reduzido de utilização de memória.


De acordo com José Miguel Rubio Sánchez, gerente técnico da Indra Sistemas, “possivelmente o benefício mais importante é a habilidade de consultar diretamente os objetos, permitindo ter um projeto em Java muito complexo sem necessidade de transformar os  dados. Outro benefício chave é o ambiente de administração zero, o que é obrigatório em  sistemas de tempo real.





GLAUCIO GUERRA
Há cinco anos atuando com desenvolvimento de software, Glaucio Guerra (glaucioguerra@gmail.com) trabalha como Analista de Sistemas no ambiente Petrobras, no Rio de Janeiro, sendo bacharelando em Ciência da Computação. Atualmente, concentra seus proje...
Ver space do autor


Estatísticas deste post:
Visualizações:  20468
Favoritado:  7 vez(es)
 
Conteúdo:
Didática:
Utilidade:
4 0
Feedbacks: 5

  Central de Serviços:
Inclua seu próprio artigo! (ajuda)
Participe! Inclua um comentário
Adicionar este post a Favoritos
Marcar este post como lido/assistido
Inclua uma anotação pessoal (ajuda)
RSS Feeds
Versão para impressão



Participe! Inclua um comentário
[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


[Fechar]

Você precisa estar logado para dar seu feedback.

Clique aqui para efetuar o login

Caso não tenha um cadastro DevMedia, clique aqui para se cadastrar (gratuito)
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
2009 - Todos os Direitos Reservados a DevMedia Group