JNoSQL Book
  • Eclipse JNoSQL
  • LANGS
  • Eclipse JNoSQL one API to many NoSQL databases
    • About me
    • A principal ideia atrás da AP
    • Por que Diana?
    • Bibliografia
    • Credits
    • Introdução ao Diana
      • Value
      • Criando o seu próprio Writer and Reader
      • Element Entity
      • Document
      • Column
      • Entidade
      • ColumnFamilyEntity
      • DocumentEntity
      • KeyValueEntity
      • Manager
      • Column Manage
      • Document Manage
      • Bucket Manager
      • Factory
      • Column Family Manager Factory
      • Document Family Manager Factory
      • Bucket Manager Factory
      • Configuration
      • Document Configuration
      • Column Configuration
      • Key Value Configuration
    • Diversidade nos Bancos não relacionais
      • Utilizando drivers para com o Diana
    • Introdução ao Artemis
      • Anotações para o Modelo
      • Classes templates
      • Template de Documentos
      • Template de Família de Colunas
      • Template de Chave valor
      • CrudRepository
      • Lidando com os eventos da persistência
      • Bean Validation
    • Componentes do Artemis
      • Workflow
      • EventManager
      • Converter
      • As classes respositórios
    • SUMMARY
    • introduction
  • Eclipse JNoSQL one API para vários bancos NoSQL
    • introduction
    • The main idea behind the API
      • Why Diana?
    • Diana Introduction
      • Value
      • Make custom Writer and Reader
      • Element Entity
      • Document
      • Column
      • Entity
      • ColumnFamilyEntity
      • DocumentEntity
      • KeyValueEntity
      • Manager
      • Document Manager
      • Column Manager
      • Bucket Manager
      • Factory
      • [[Column Family Manager Factory](en/part2/chapter2_5_1.md)
      • Document Collection Factory
      • Bucket Manager Factory
      • Configuration
      • Document Configuration
      • Column Configuration
      • Key Value Configuration
    • The diversity on NoSQL databases
      • Using Diana drivers
      • Implementing a Document Driver
    • Artemis introduction
      • Models Annotation
      • Template classes
      • Document Template
      • Column Family Template
      • Key-value Template
      • Repository
      • Persistence events
      • Bean Validation
    • Artemis components
      • Workflow
      • EventManager
      • Converter
      • The repository class
    • SUMMARY
    • README
    • credits
    • About me
  • LICENSE
Powered by GitBook
On this page
  1. Eclipse JNoSQL one API to many NoSQL databases

Introdução ao Diana

PreviousCreditsNextValue

Last updated 6 years ago

Com o intuito de separar melhor as camadas de abstração e de comunicação entre os bancos não relacionais. Nasceu a API Diana, o seu objetivo é criar essa tal camada de comunicação de uma maneira simples, além de ser extensível. A extensibilidade é uma característica muito importante para os bancos não relacionais uma vez que, apesar de possuirem alguns comportamentos em comum, é de suma importância para o desenvolvedor que ele consiga utilizar os recursos específicos de cada banco. A vantagem que a Diana trás para o desenvolvedor é que ela é uma API comum para todos os tipos de bancos não relacionais, assim caso seja necessário realizar uma mudança de banco de dados o impacto em aprender uma nova API é muito menor.

Com o intuito de abranger os quatro tipos de banco de dados, essa API é composta por quatro domínios, cada domínio abrange um tipo específico.

  • org.jnosql.diana.column

  • org.jnosql.diana.document

  • org.jnosql.diana.graph

  • org.jnosql.diana.key

Caso um determinado banco de dados seja multi-model, ele usará duas APIs, uma para cada tipo. Além de possuir uma API para cada tipo, existe também o Technology Compatibility Kit, o TCK. Cada TCK tem como objetivo de realizar os testes para verificar se uma implementação está ou não compatível com a API. Mesmo com APIs diferentes, houve uma tentativa de se utilizar uma nomenclatura comum entre elas:

  • Configuration

  • Factory

  • Manager

  • Entity

  • Value

Projetos do Diana

Diana é composta por quatro partes:

  • diana-core: Camada de comunicação comum do JNoSQL API para todos os tipo.

  • diana-column: Camada de comunicação do JNoSQL API para bancos de dados do tipo colunar.

  • diana-document: Camada de comunicação do JNoSQL API para bancos de dados do tipo documento.

  • diana-key-value: Camada de comunicação do JNoSQL API para bancos de dados do tipo chave-valor.