inter-database

1.0.3 • Public • Published

<a href="https://gitlab.com/Desenho-2017-1/Inter-Database/commits/development"><img src="https://gitlab.com/Desenho-2017-1/Inter-Database/badges/development/build.svg" alt="DSW 2017.1"></a>
<a href="https://codecov.io/gl/Desenho-2017-1/Inter-Database"><img src="https://codecov.io/gl/Desenho-2017-1/Inter-Database/branch/development/graph/badge.svg?token=i3Cu8etR2n" alt="DSW 2017.1"></a>

DSW 2017.1 DSW 2017.1 Node.js Version SQL Server Version SQL Server Version PostgreSQL Version License: MIT

Inter Database Framework

1. O que é o Inter Database?

  O Inter Database é um framework que visa facilitar a comunicação entre uma aplicação em Node.js e um Banco de Dados. Essa comunicação inclui toda a parte de configuração do Banco, no âmbito da conexão, que é uma das dificuldades encontradas pela maioria dos desenvolvedores mais inexperientes, e inclui também a parte das querys, onde através de um simples método, o desenvolvedor pode realizar uma operação extremamente complexa no banco.

  Além disto, o Inter Database também serve como uma forma de unificar a comunicação entre vários Bancos de Dados e uma aplicação, onde o desenvolvedor não necessita saber a sintaxe específica de cada banco para realizar comandos nos SGBDs.

  Em linhas gerais, o framework é dividido em duas vertentes, que são as visões mais amplas de suas capacidades. A primeira vertente é a capacidade de se conectar à vários bancos diferentes e executar seus comandos específicos e a segunda é sua extensibilidade à novos bancos. Essas duas visões serão melhor detalhadas nos próximos tópicos.

1.1. Conexão com o Banco

  Em uma aplicação mais complexa que use vários Bancos diferentes, exige que o desenvolvedor seja muito qualificado ou que na equipe de desenvolvimento tenha várias pessoas que entenda cada tecnologia diferente, e que saiba muito bem cada comando para utilizar com eficiência cada um dos seus bancos. Com o uso deste framework esta exigência é quebrada, onde o a complexidade é reduzida pois, com uma simples instância do Inter Database, qualquer desenvolvedor é capaz de utilizar uma gama de Bancos diferentes, sem ter que saber nenhuma sintaxe específica sobre eles.

  Abaixo, segue uma representação figurativa da capacidade do Inter Database de se conectar há vários bancos diferentes de uma forma simples, de acordo com a necessidade do desenvolvedor em sua aplicação.

Figura 1 - Conexão entre o Inter Database e dois Bancos de Dados distintos.

  Em uma aplicação cliente, o desenvolvedor pode herdar o Inter Database em uma classe Modelo, e por exemplo, utilizar seus métodos para funcionamento dos Getters e Setters.

  Na figura abaixo, o desenvolvedor em uma parte do seu código tem a necessidade de fazer uma pesquisa em determinado banco, então utiliza o objeto do Inter Database para mandar as informações requeridas.

Figura 2 - Cliente realizando uma busca utilizando uma instância do Inter Database.

  Após isso, o Inter Database processa as informações recebidas e, internamente, analisa qual o Banco que foi solicitado para realizar a operação. Após a análise, o framework abre a devida conexão com o banco correto para possibilitar a troca de informações e envia os dados para o Banco. Abaixo, segue uma pequena representação do que foi explicado.

Figura 3 - Processamento das informações e conexão com o Banco correto.

  Em seguida, o Banco acionado retorna as informações que foram requeridas para o Inter Database. Com isso, o mesmo trata as informações recebidas do Banco e as converte para o formato JSON, que facilita seu uso na aplicação cliente do desenvolvedor. Após isso, a conexão com Banco utilizado é fechada. A imagem a seguir representa essa transação entre o framework e o Banco, e a aplicação recebendo os dados, onde, após a utilização do objeto, a conexão é fechada e o desenvolvedor segue escrevendo o seu código com os dados recebidos.

Figura 4 - Banco retornando as informações para a aplicação.

  Ao projetar esta vertente do framework, foi utilizado o conceito de Caixa Preta, que é uma reutilização provida por composição e orientado por Frozen Spots. Ao utilizar a conexão com o Banco, o usuário apenas utiliza a composição dos serviços já desenvolvidos dentro do Inter Database, de acordo com a sua demanda específica.

1.2. Configuração de um Novo Banco

  Atualmente, há uma gama de SGBDs diferentes e, para o escopo de desenvolvimento deste framework para a disciplina de DSW, foi possível abranger apenas a configuração/conexão de poucos bancos especificamente. Apesar disto, ele foi projetado com um ponto flexível que permite a adição de qualquer banco, apenas utilizando uma herança das classes principais de configuração e de conexão. Isto torna possível uma boa extensibilidade por parte do Inter Database, pois a adição de novos Bancos pode enriquecer mais ainda o projeto e ajudar um grupo maior de desenvolvedores que tem tais problemas.

  Já para projetar esta vertente do framework, foi utilizado o conceito de Caixa Branca, que é a reutilização provida por pontos flexíveis, utilizando heranças, normalmente. Este ponto flexível do Inter Database. A figura a seguir representa o processo citado acima, onde o Inter Database (que é o "Pai"), contêm os pontos maleáveis, onde um Banco novo tem suporte para se integrar facilmente ao framework.

Figura 5 - Adição de um Banco novo por Herança.

  Com isso, o Inter Database por completo é um framework Caixa Cinza, que engloba tanto Frozen Spots e Hot Spots e é hibrido por utilizar em sua arquitetura pontos Caixa Preta e Caixa Branca.

2. Instalação

2.1. Pré-requisitos

2.2. Instalando o Framework

3. Utilizando o Framework

4. Licença

Inter Database é distribuído sob a licença MIT. Consulte MIT LICENSE para obter detalhes.

Package Sidebar

Install

npm i inter-database

Weekly Downloads

7

Version

1.0.3

License

ISC

Last publish

Collaborators

  • thiagocmoreira
  • vitorbertulucci